diff --git a/.github/workflows/sphinx.yaml b/.github/workflows/sphinx.yaml new file mode 100644 index 0000000..516475a --- /dev/null +++ b/.github/workflows/sphinx.yaml @@ -0,0 +1,30 @@ + +name: Build Documentation +on: + pull_request: + branches: + - "*" + +jobs: + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Cache conda + uses: actions/cache@v2 + env: + CACHE_NUMBER: 0 + with: + path: ~/conda_pkgs_dir + key: ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-${{ hashFiles('docs/environment.yaml') }} + - uses: conda-incubator/setup-miniconda@v2 + with: + activate-environment: xesn + auto-update-conda: false + python-version: 3.11 + environment-file: docs/environment.yaml + use-only-tar-bz2: true # IMPORTANT: This needs to be set for caching to work properly! + - name: Build Docs + shell: bash -l {0} + run: | + cd docs ; make html diff --git a/docs/.gitignore b/docs/.gitignore index fd95f96..03065c8 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1 +1,2 @@ source/xesn +generated/ diff --git a/docs/_templates/autosummary/class.rst b/docs/_templates/autosummary/class.rst new file mode 100644 index 0000000..425da24 --- /dev/null +++ b/docs/_templates/autosummary/class.rst @@ -0,0 +1,26 @@ +{{ objname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + + {% block methods %} + {% if methods %} + .. rubric:: Methods + .. autosummary:: + :toctree: + {% for item in methods %} + {{ name }}.{{ item }} + {% endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: Attributes + .. autosummary:: + {% for item in attributes %} + {{ name }}.{{ item }} + {% endfor %} + {% endif %} + {% endblock %} diff --git a/docs/api.rst b/docs/api.rst index 6f61f22..b2b22b9 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -1,37 +1,36 @@ -API -### +API Reference +############# + + +ESN Models and Utilities +------------------------ .. autosummary:: - xesn.Driver + :toctree: generated/ + xesn.ESN xesn.LazyESN xesn.from_zarr -.. autoclass:: xesn.Driver - :members: - -.. autoclass:: xesn.ESN - :members: - -.. autoclass:: xesn.LazyESN - :members: +Optimization Tools +------------------ -.. autofunction:: xesn.from_zarr - -.. autoclass:: xesn.XData - :members: - -.. autoclass:: xesn.RandomMatrix - :members: +.. autosummary:: + :toctree: generated/ -.. autoclass:: xesn.SparseRandomMatrix - :members: + xesn.cost.CostFunction + xesn.optim.optimize + xesn.optim.transform + xesn.optim.inverse_transform -.. autoclass:: xesn.cost.CostFunction - :members: -.. autofunction:: xesn.optim.optimize +Everything Else +--------------- -.. autofunction:: xesn.optim.transform +.. autosummary:: + :toctree: generated/ -.. autofunction:: xesn.optim.inverse_transform + xesn.Driver + xesn.RandomMatrix + xesn.SparseRandomMatrix + xesn.XData diff --git a/docs/basic_usage.ipynb b/docs/basic_usage.ipynb deleted file mode 100644 index 16c2deb..0000000 --- a/docs/basic_usage.ipynb +++ /dev/null @@ -1,720 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "3baa9199", - "metadata": {}, - "source": [ - "# Basic ESN Usage\n", - "\n", - "Tutorial on using the basic ESN class. Note that this class assumes all data can be pulled into memory." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "2e902196", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "from ddc import DataLorenz96" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "b3d17ce5", - "metadata": {}, - "outputs": [], - "source": [ - "from xesn import ESN, from_zarr" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "0f353e8b", - "metadata": {}, - "outputs": [], - "source": [ - "plt.style.use(\"./xesn.mplstyle\")" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "fb025baf", - "metadata": {}, - "outputs": [], - "source": [ - "data = DataLorenz96(system_dimension=6)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "f6011456", - "metadata": {}, - "outputs": [], - "source": [ - "esn = ESN(\n", - " n_input=data.system_dimension,\n", - " n_output=data.system_dimension,\n", - " n_reservoir=500,\n", - " input_factor=0.863,\n", - " adjacency_factor=0.713,\n", - " connectedness=5,\n", - " bias=1.76,\n", - " leak_rate=0.874,\n", - " tikhonov_parameter=6.9e-7,\n", - " input_kwargs={\n", - " \"normalization\": \"svd\",\n", - " \"random_seed\": 0,\n", - " },\n", - " adjacency_kwargs={\n", - " \"random_seed\": 1,\n", - " },\n", - " bias_kwargs={\n", - " \"random_seed\": 2,\n", - " },\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "ed9d30d8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "ESN\n", - " n_input: 6\n", - " n_output: 6\n", - " n_reservoir: 500\n", - "--- \n", - " connectedness: 5\n", - " bias: 1.76\n", - " leak_rate: 0.874\n", - " tikhonov_parameter: 6.9e-07\n", - "--- \n", - " Input Matrix:\n", - " factor 0.863\n", - " distribution uniform\n", - " normalization svd\n", - " is_sparse False\n", - " random_seed 0\n", - "--- \n", - " Adjacency Matrix:\n", - " factor 0.713\n", - " density 0.01\n", - " distribution uniform\n", - " normalization eig\n", - " is_sparse True\n", - " format csr\n", - " random_seed 1" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "esn" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "1ec12ebf", - "metadata": {}, - "outputs": [], - "source": [ - "esn.build()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "313d11e1", - "metadata": {}, - "outputs": [], - "source": [ - "data.generate(n_steps=42_000)\n", - "xda = data.to_xda()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "246493e8", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1.84 s ± 116 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)\n" - ] - } - ], - "source": [ - "%timeit esn.train(xda, batch_size=5_000)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "0d2c4156", - "metadata": {}, - "outputs": [], - "source": [ - "data.generate(n_steps=1_000)\n", - "data.generate(n_steps=1_501)\n", - "\n", - "tester = data.to_xda()" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "4f2e8f1d", - "metadata": {}, - "outputs": [], - "source": [ - "xds = esn.test(tester, n_steps=1_000, n_spinup=500)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "1d6b12bc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Text(0.5, 0, 'Forecast Time (MTU)')]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAysAAAJjCAYAAAAMK47pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddXwU1xbA8d9K3D3BSSC4u7u7u7uVYqV4kZYWilOc4k5bKC3u7hrcggSJu6zMvD/2sZASIEpCuN/P531eM7szczdsdufMPfcchSzLMoIgCIIgCIIgCBmMMr0HIAiCIAiCIAiCkBARrAiCIAiCIAiCkCGJYEUQBEEQBEEQhAxJBCuCIAiCIAiCIGRIIlgRBEEQBEEQBCFDEsGKIAiCIAiCIAgZkghWBEEQBEEQBEHIkDJFsCLLMpGRkYiWMYIgCIIgCIKQeWSKYCUqKopSpUoRFRWV3kMRBEEQBEEQBCGVZIpgRRAEQRAEQRCEzEcEK4IgCIIgCIIgZEgiWBEEQRAEQRAEIUMSwYogCIIgCIIgCBlSioOVHTt2kC9fPk6fPp3g44GBgUyZMoU6depQtGhRatWqxcyZM8VieEEQBEEQBEEQPipFwcr169eZOnXqBx/39/enbdu2bNiwAXNzc6pXr44kSaxYsYIOHToQGRmZktMLgiAIgiAIgpCJJTtYOXz4ML169fpowDFt2jT8/Pzo27cvu3btYv78+ezbt48GDRpw9+5dFi5cmNzTC4IgCIIgCIKQySU5WHn9+jVjxoxh4MCBaLVanJ2dE3ze06dPOXDgAB4eHnzzzTfG7aampkydOhUrKyu2bNlCbGxs8kcvCIIgCIIgCEKmleRgZc6cOfz5558UKlSILVu24OnpmeDzjh8/jiRJVKtWDRMTk3iP2djYUL58eaKjozl37lzyRi4IgiAIgiAIQqaW5GDF09OTX375hW3btpEvX74PPu/evXsAeHt7J/h4njx54j1PEARBEARBEAThXeqk7tC3b99EPS8gIAAAFxeXBB9/sz0wMDBJ5/f39zce+43o6OgkHUMQBEEQBEEQhIwvycFKYr0JIMzNzRN8/M32pAYaW7ZsEQvzBUEQhGSRZZlbt25x9uxZHj16hEKhIFeuXFSvXh3nbK6cenKBq69u8ioyELVCRVZbd6rkKkuZLMVQKkVrMkEQ0lZcXBx///039+/fp0CBAjRp0gS1Os0u178IafbqVSoVAAqFIsHHZVmO9/+J1a5dO2rWrBlvW3R0NJ07d07GKAVBEISvgSzL/P333yxYsIDbt2/He0xpquL3C5vJVi0PqOJ/Z/lFvOK831VyO2RnWMU+uFsnnC0gCIKQUs+fP6dbt27cuXPHuG39+vWsX78eCwuLdBxZ+kqzYMXS0hIwRIgJebM9qb98V1dXXF1d420T/VoEQRCEDzlz5gzTpk3j6tWr7z1mnd0e784lsXCxjrfdQm2OXtaj0WsBeBzyjO/3T2dctSHkdcr9OYYtCMJXJCQkhLZt2/LkyZN428+ePcv48eOZNWtWOo0s/aXZnPabgOK/60ve+NSaFkEQBEFIibt379KtWzdat24dL1ApUaIEk6dMZszqyZQYVs0YqEhaPS+OP8Rn9kkGZmvP2lZzGVt1MB42hu+zaG0M04//xvOwl+nxcgRByKRkWWb48OHGQCV37txMmzYNa2vDZ9PmzZsTvNnytUizYOVNFbCHDx8m+Pj9+/cBPlpRTBAEQRCSys/Pj+HDh1O7dm0OHjxo3F6gQAHWr1/P6i1r8fOM4HjwJSQMqci57LKhOhLJ4x03CXseTM+ePXn86DHFPQrxc50xFHI1fKdFaqL49dRS4nSadHltgiBkPuvWrWP//v0A2Nvbs2XLFnr06MHo0aONz1m8eHF6DS/dpVmwUqVKFQCOHDmCXq+P91hERATnzp3D0tKSUqVKpdUQBEEQhK+Ir68vEyZMoHLlymzZsgVJkgBwd3dn9uzZ7Nu3D8u89oza/yM3/Q1l8xUoaFmwPj/V/Z71S9ZQrVo1AEJDQxkwYAAajQYLE3NGVe5PTvtsALyIeM2aq9vT50UKgpCp+Pv7M336dOPPc+fOJWvWrAB06tTJ2Hx99+7d+Pv7p8sY01uaBStZs2alRo0aPH/+nJkzZxoX0ms0GiZOnEhUVBTt27c3TnEJgiAImVNkZCTbtm1j2LBhdOvWjd69e/PTTz+xf//+FK85jImJYe/evXTr1o3KlSvz+++/o9EYZj3s7OwYM2YMJ0+epGnLZiy/tJFZp5YRpTFUoXSycGBSjW9pX6QZaqUKExMTli5dSt68eQG4efOmMU/c0sSCYRV6YaYyBeDgwxPcDriforELgiBMmTKF8PBwANq0aUOdOnWMj5mZmdG+fXsAJEnin3/+SZcxpjeFnNRyXP/RpUsXzp8/z6pVq6hYsWK8x/z8/Gjfvj3+/v54enqSN29ebty4wYsXLyhUqBDr1q3DysoqRS8ADF+EpUqV4tKlSyL4yQRkWWb/+cP8e/UAgZoQANwtnOleowNFvQqn8+gEQUiK7du3M23atA+uX1Sr1ZQsWZJKlSpRsWJFSpYs+cGS9wB6vZ7bt29z8eJFTp8+zZEjR94rgW9ubk7v3r0ZMGAA9vb23A64z8JzawiICjI+p3y2kvQt3RFrs/e/g3x8fGjcuDFarRaVSsW+ffsoUKAAAPvuH2Pl5c0A5LTPxi91xoiSxoIgJMuJEyeMwYi9vT3Hjx/Hyckp3nPu3r1rrIJbrlw5/vzzz88+zvSWpsEKwOvXr1mwYAFHjx4lLCyMLFmyUL9+ffr06ZNqgYUIVjKPv0/sZs3V7ahczd57TNJJFJByMqXzmA+WxBYEIWOQJImpU6eybNmy9x6zdLfB1tMJlYUaSaMn+nUkEY+DkbR6lEolOXLkIEeOHNjZ2WFqaopGoyEsLIynT5/y4sUL48zJf2XJkoXu3bvToUMHHB0dCYsNZ9P1nRx5fAb5/2tTzNVmdC/Rlhq5K3z0c2TOnDn8+uuvAFSoUIFt27ahUCiQJInvD0zHN/Q5AP1Kd6KWV+WU/roEQfjKxMXFUbt2bR49egTAr7/+SocOHRJ8buXKlXn8+DFqtZqbN29+dde6KQ5WMoKMEqyERoTx3N+Pwl4F020MX6rwyAhGrp5IqEvsJ5+bJcKBub1/+gyjEgQhOWRZZsKECaxatcq4rWHDhtTp2JCz0Td4Hvl+NS29Vk/YvQCCrr8k6MZL9LG6RJ3L3t6e+vXr07BhQ6pVq4ZarSZWF8fBhyfYfnM30doY43PzO3sxqFw33BLRKyU2NpZatWrh6+sLwLJly2jUqBEAtwPuM+nwbACcLR2Z33AyatXX3bRN+DKFxoZz+YUPvqHPQAYXKyfKZSuOq7Vzeg8t05s7dy4zZ84EoHTp0vz1118fnKUdN24cq1evBmDVqlXUrVv3cw0zQxDBSiqJjo2m87ohqG1NcQ21ZX6f6SI1IJGOXT7JvDMrUTu/Tf3QhcRRyq4Q9UvURKFQsuzgGoKd31501LQqS//GPdJjuIIgfMKKFSuYNGkSAEqlkuk/T0cqaM4/9w4lan9JJxFy5zWBV18Q7PMKSWMo0mJlZUWOHDnIkycPpUuXplSpUhQpUsTY3flVhD/HfM+x/8ExIjRRxuNZmJjTtlBjGuStkaTP5f3799Ojh+FzJl++fBw8eNC4//TjC7ny8iYAvUt1oG6eqok+rpAwWZaJ0EQRGBVMcEwIwTFhhMSEEaExrGtSK9U4WtiRwy4b+Zw9sTD5cLqg8HHB0aFs9vmbk08uoJPi3xhQKpQ08q5JhyLNRBCeRp48eULNmjWJjY1FpVKxd+9eChb88I3uffv20bNnTwB69OjBtGnTPtdQMwQRrKSSp6+eM/zgFJQmKgAcgyxYMnB2uozlSyFJEpPX/YKP8jEqU8PvTdJJFNDnZFz7EZibxk8FG//7NO5Z+QGgi9LyW7NpeDi5f/ZxC4LwYRcuXKBVq1bGKpCzZs/iRbYIzj6/bHxObvvsVM1VDhcrJyI10dwPeszlFzcIiQ1773hqhZq89jnJ65QbbzcvnC0dsTQxR0ImMi6KgOggHgY94WbAPR6HPHtv/+q5K9CxaHPszW2T/FpkWaZp06ZcvmwY+6JFi2jWrBkAD4J8GXvwFwBcLB2Z32gKKqUqyefITGK0sdwPeoxv6DNCYsIJj4vg3UsMpVKJUqFEpVChVCjQS3qitbFEa2MIigkhMDqEOF3CjaT/S61UUzZrMZrkr4OXY860ekmZjizLHHp0ijVXt3/yd13CozCjKvUTAUsqk2WZrl27cvjwYQD69u1rvLnzIRERERQqVAi9Xo+XlxfHjx9P1rn1kp79D45z4/UdGnrXoLBb/mQd53MTwUoqmrbhV64pH6BQGvKgC2lyManL6E/s9XW6//Qh4/+cjuxhYtymD4ljaIXeVC32/tonMPyBt5/Xx7iPXbA5ywfM+SzjFQTh00JDQ6lbty5+foabCoMGD8K9rhd7HxwFQKVQ0q1EG+rmqYpSEX+GQ5Zl7gc95vTTi5x5djnBwCWxFAoFlXKUoXn+uuSwz5rs4wAcP37cmEfu5eXFkSNHUKkMQclPxxZw9dUtAIZX7EP57CVTdK4vkSRJnH1+mUOPTuHjf5f0uKSomqscPUu0w9LU4rOf+0sSrY1h2cWNnH560bjNytSSWp6VKe5eEFOVCVdf3WTH7f3G2ZaGeWvQvWTb9BpyprRz504GDhwIGMqqHzt2LFHXrs2bN+fChQuA4aZQlixZknTewOhg5p/5nTuBhv6HeR1z8WOdL+MaVYTLqWh8p5FM3zSbKxjKWfqoHvH3qT00rdQgnUeWcciyzG9/LedwyDnUHqbG7Q4hFszsMgNbK5sP7qtQKJjQZDiTTs5GZW5CiF00d57eI38O788xdEEQPkKWZUaNGmUMVMqWLUvBZqXYeGMHYAhUvqsygBIeCVf0UygUeDt74u3sSdfirbkT+IDTTy9x7vkVwuIiEjWGXPbZqJyzDJVzlMXR0j41XhZVqlShXLlynDt3jocPH7Jr1y6aN28OQON8tY3Byr93D311wcqN13dYdXkrz8PfX4OUVCYqE1wsHXGxcsTZ0gknS3scLexxsLDD1swGBaDRa/GPCuJu4EPOPr9CRJwhPey47znuBj5idOUBZLPzSPFYMiPfkGfMOb2Cl5Fv+3TU9KxEp6LNsTF7e6Hs7exJYdd8TDu2AJ2kY/f9IxRwzUu5bCXSY9iZzqtXrxg7dqzx58mTJyf6Jnv58uWNwcqVK1eSFKw8DfVj2rH5hMaGG7dVzVU+0funNzGzkgYGLR5FgKPhQ1QXEsfvneZgb2OXzqNKfzfu32T6v/PReby9o6qP1tLYowY96ndK9HEGLxqFv5Ph9+scas2ifjNTfayCICTNmjVrjF/C9vb2/LJhDmvv/mV8fGDZrlTPXSHJx5VlmdeRAdwP8uV1VCBB0SFo9BoUKDA3McPVyoksNm7kd86TYBni1HDy5EnatWsHQJEiRdizZw8KhQJZlhm5bxrPwl4A8FPt0eRxypUmY8hIdJKetVe2G2fM3nCzcqaYR0G8nTxxtXLC1szamBonyzKSLKGXJcP/SxIqpRIrE0ssTSywMDFPUpVHnV7HgYcn2OKzy1hEwcbUinHVvsHTMUeqvdYvnSzLHHh4gjVXtqH9/2yJhYk5/ct0pkJ2Q1NuvV5PVFQU1tbWxjVZBx6cYPmljYChH9Hchj9gpjZN+CRCovw3/atJkyYsWbIk0fu/u4auf//+TJgwIVH73Qt8xPQTvxn7S7lYOvJNhZ7kc/ZK4itIPyJYSQNxmjg6Lh+Aytmw5sIp2IrFA35N51Gln0fPHzNn12JeWIegMn07mWcSCD+2HEMuj6R9sTx49ojRR6ejMlUjafUsaDBFrF0RhHR069YtGjduTFycIQf+x6W/sD/mnDGVpE2hRrQp3Dg9h5gisizToEEDbty4AcC2bduMpfoPPzrFkgvrAaiYozTfVuiVbuP8HCLiIpl9ejk3/e8Zt+V1yk27wk0o4pY/1crKh4WF4ePjw5MnT/D390ehUODq6krevHkpXry4saiCf2Qgs04t43GoYb2SjZk1P9b+DvdEVHzL7CLiIll6YQPn/a4at3k65ODbir1xs3Lm+PHjLFu2jAsXLhiDlbp16zJ06FC8vLz4+cQirrz0AaBd4Sa0KtQwnV5J5rBs2TImT54MgKurK4cOHcLR0THR+wcGBlKsWDEg8f1Wrr+6zcxTS43rk/I45mJM1UHxZtO+BCJYSSOnfc4x++pKlCYqJL3E8KI9qVi4XHoP67PRaDX8cfRv9t0+QoSD1riAHgyzKZXtSvJtiwHJ/mLrNf8bIty0ABSRPJnQYVSqjFsQhKSJjo6mQYMGPHjwAIBOA7oSUDCOqP/f7a6RuyL9y3T+4nsj/fXXXwwePBiAWrVqsXbtWsCQmjRw11jC4yJRKVUsbTIdW/MPp7N+ycJiw5l0eDYvIl4DYKJU06V4qwTXICXH69ev2bJlC/v37+fatWtIkpTg8+zs7GjZsiV9+vQhZ86cRGtimH7iN+7+Pxc/i40bP9UenSHXsERqoojURKNSKLExs8Zc/X5PsdRw/dVtfju/hpCYt2u/GuStQediLQgPDefbb7813uH/L3Nzc+bMmUPJ6mUYuXcakixhrjZjcZOfsDK1TJPxZnYnT56kY8eOxsIja9eupVatWkk+Tvny5Xn27Bnm5ubcuXMHExOTDz733PMrzDvzu/GmUWHXfIyq3P+LrKIngpU0NGz5WPxsDR3YFf46tgxZns4jSpif/wv+PLWLm6/uEaaLQKPSISsABSgkUOmVqFFhrjDDSm2BjZk19pa2OFk7YGdlh0arIVYTS2BkMC9CX/EqNhCNrYzaMv4fkayXcI6wYWLrUXg4uaVozAfOH2H5460ASMFatg9YkaLjCYKQdLIs88033xjv8BUuUxSvniUIjDF87hVzL8joKgNRZ4IqWVqtlooVK/LihSHl6+jRo+TNmxeA9df+4u87+wHoWrwVjfPVTrdxppUYbSxTjszlYcgTAOzMbBhVuT/ezp4pOq4kSZw8eZJ169axf/9+dLrE9dcBMDU1pX///nz77bfoFHomHPrVuH6mYvZSDK3QK92DZL2k5+KL65x+eonbAffjrRkAw0yQl0MOvJ09KeFRmNwO2VMU+AVHh7L22h/xFtHbmFrRv2wXymQtxoMHD2jXrh2vXr0yPu7u7k6ePHnw8fEhNDTUuH3mzJlE5JU59OgkAJ2LtaBp/q+rv0dqePLkCY0bNyY4OBiAIUOG8P333yfrWAMHDmTnzp2AoZxx4cIJrwE8/Og0Sy+uNxa8KJO1GEMr9MJU9eHgJiMTwUoaCo0Io+fmYahtDXdO2rrVo3X15uk7qP+TJIn1B7fy791DSM4qYwWzNDmXRo9rtB2D6/WiYK7UKZMnyzKtFvZE7Wq4QzC4QGeqFq2UKscWBCFxZs+ezaxZswCwdbGnxg/NCIwzBCq57bPzQ83hX+RdvA9ZsmQJU6dOBaB79+78+OOPALwIf8W3ewzpHVlt3Zldf2K6XySnJp1ex/QTv3Hj9R0AHC3smVJzRIoaBwYFBbFlyxY2bNhgbLz5rgIFClChQgW8vLzIkiULsizj5+fH+fPnOXjwIDExb/tulShRgqVLl2JiZ8bo/T8ZZ/WSu04qNciyzLnnV9h4fQevIgMSvZ+duS0l3AtR3KMgRd0KJHod1ouI1/x79xBHH58xrk0BKOpWgIHluuJoYc+zZ89o0aIFL18aAjoXFxcmT55MkyZNUCqVREdHM27cOLZuNdwIVKvVLNmwnFV+hrVnThYOLGg8NVPcfPhcXr58ScuWLXn69CkANWrUYM2aNcaKgkm1fPlyfvjhBwCmT59O165d4z0uyzJ/3trDFp9dxm3VcpWnf5nOX3RpdRGspLEZW+ZxEcMHvOyvYduQlek8Ijh94xxzjy4H14QjbEkvIWslkGWUZupkBTL6aC3mUWrKZStBl1rtcLCxT+Go3zdx9U/csTDkKbuG2bKw7y+pfg5BEBK2ZcsWhg8fDoCpjRl1p7YmRDJU7XKzcmZKrZE4WGSuwiJhYWGUKlWKmJgYrK2tuXz5MlZWhovJSYdncTvAkAo3rdaoFM84ZBSSLDH/7CrjnXorEwsm1xyRrJLQkiRx9uxZNmzYwO7du9FoNPEed3V1pX379nTs2JHs2bN/8DghISEsWbKEpUuXotUa0oHd3d3ZsmULgWbhzD693DjWOQ1/SFaPnZSI1sSw+MI6zj2/Em+7lYkFuRyy42Buh07SExYXwfPwl8aqZv+lUCjI45CTAq55yWmXDTdrZ2zMrFEoFMRqY3kVGcDjkGdcfunDk9Dn8fa1MbWiQ9Hm1PSsiFKh5PXr17Rs2dIYGBYsWJANGzbg6uoabz9Zlpk0aRIrVxquVdzc3Gj1a3euBdwG4NsKvaiYo3Rq/JoyPX9/f9q2bcv9+4YKsXnz5uWvv/7CwcEh2ce8cOGCsRphp06dmDFjhvExvaRn1ZWt7H/wtgdLQ++adC3eKlXSNNOTCFbSWJwmjg6rBqC2N8yutHGtS5saLdJtPNM3z+GS9jbKd9aQaEPjcNPbU8GzNKW9S+CdIw8makMgI0kSoRGhvAh6xaug1/iHBRIQHkRIVCjhsZHE6uNQK1SoVSqsTa3I4ZyVwrkKUSZ/iTSP4h/7+fLdsekoVEr04Rq2916Rqe5mCkJGtWnTJkaNGoUsy1i4WlNxVH1iVYYLTydLB6bUHIGLlVM6jzJtjBw5kk2bNgHwyy+/0LlzZwCOPj7DovOGdSw1c1ekf9ku6TbG1CLLMquvbGPP/SOAobzwhGpDye+StCpCvr6+bN++ne3bt/Ps2fuNO6tWrUrnzp2pW7fuR3Pw/8vHx4fevXsbj+ns7MyOHTv45/VRTjw5D0DlnGX5pnyPJI03JV5HBvDziUX4hb9Nsyrk6k2z/HUp4pb/ve9FWZYJiAri+uvbXH7hw43Xd4jTa/572EQzV5tRx6sKLQrUN87KBAcH07p1a+7evQtAnjx5+OOPP3B2TnhmTKfT0alTJ06eNKR/tezfjtfehtmqYu4FGVdtSLLH97W4e/cuXbt25flzQxCZM2dO/vzzT9zdU1YMKDIykvz58yPLMsWLF+fff/8FIDw2grlnVuLjf9f43M7FWtIkX+1McV0kgpXPYObW+VyQDXcl0mt2RafXMXTFWALs3/Yr0IXGUcOlHP2b9jQGJ1+a1vN6onQ3BIKD8nemWjGRCiYIaUWWZVasWGFMQ3Aq5kHBTmWR1IavEScLBybV+BZ3G9ePHOXLdv36dRo0MPTOKlSoEPv27TPc6dbF0e/v74nRxmKmNmNZ05+/+BS4v27tZdMNQ368UqFkVOX+lMpS5JP7SZLE1atXOXjwIIcOHcLHx+e95zg6OtKuXTs6depE7ty5kz3GoKAgOnTowM2bNwHIlSsXG7ZvYsrZ+URqogAYX+0biroXSPY5EutFxGsmH5ljXNRuZWpJn1IdqZC9ZKIvGDV6LbcD7nPt5S2uvbrFs0T2sMnjmIsK2UtRw7MC1qZvU8ciIiJo27Yt169fByB79uz8+eefn+zR4efnR40aNYiKigIFNJzXkTBdJAoULGryI06WyZ8dyOz27NnD8OHDCQ83rE/KmjUr27dvJ0eO1CmpXblyZR4/foy5uTl3797FN+w5s04vIyjakIKrUigZULYrVXNlnqJOoinkZ/BN8350+H0AagczFK6mn71RpCRJDFw6ilCnWOM2G38TZvf4GTvrLztNo6BdHu5guKv298U9nz1YOXr5JKtPbSbcNBrUCkxilFTKVpp+jbpjZpI2VV4EIT1oNBrGjRvHxo0bUVuZ4tWqCM7FsyJhCFRy2mdjTJVBqdaMMaMqWrQoxYsX5+rVq9y8eZPLly9TqlQpzNVmVMpRhoMPTxCni+P004vU8qqcpmOJiIjg9evX2NjY4OLiYuyRkRoOPzplDFQA+pfpnGCgIkkSjx494saNG1y/fp3r16/j4+NDZOT7qU1KpZKqVavStm1b6tevj5lZyj8jnZyc2Lp1Ky1btjRcuPn6MqTvIAb/OpKVVzcDsOryVmbWH5+may2e+D9j/KGZxCkNaWna4FiUd/Q80zygpGshzM0TF7iaqkwo5l6QYu4FAQiJCeNxyDOehvkRHBNKZFwUMjIWanPsLezIZZ8NL8ecCQYPMTExdOvWzRiouLm5sXnz5kQ1E8yaNSvff/+9oZeHDMFXXqIqYoOMzDHfs7QsKJpd/1dISAjTpk1j8+bNxm1FihRhzZo1uLmlrKjQuwoXLszjx4+J08ax4tQGjr0+j142VM6zM7dleMXeFHDJm2rnywjEzMpn8vPmOVxWGOrSm/jLbBiS+EZAKTVixXie2QQBIEsyRXS5mdhl9Gc7f1q6+fA2P5yfh0KpQB+i4Y/+n2fWSpIkw5oZs6co1e9/AUrBWr6rMZCy+b/MjtYBUUFceniNZwF+yMhkc8pCxXxlsbf4vLnfX7poTQxPQp/zPPgl/qEB6JGwtbTBw8ENT8ccX0yq1OPHjxkyZAhXrlzBqZgHXq2KYmL99kKzXLYSDCzb9YufSUisd9frtGnThrlz5wLwMPgJYw78DEA+Zy+m1hqZ6ueOi4tjw4YNbNy4kdu3bxu329vbU6NGDTp16kT58uVTlPpxwe8av55aaqwk1LFoc5oXqAfAixcvuHz5MpcvX+b69evcuHEjwcDkXUWLFqVx48a0bNkSD4+06TDv5+dH06ZNjVWuOnfpjGltZ+4GPQKgV8n21MtbLdXPK8syazet44+AA5i7G64/ol6E4bP4DLooQzqXs7Mz48aNo02bNp8tJScuLo6ePXty9OhRABwcHPjjjz/Ily9foo+h0+moWbMmDx8+xMzBgtIT6gCGIhJzGkxKi2F/kcLDw1m/fj0LFy4kLOxtqeiGDRsyd+5c47q21LJgwQIWrF9MnnbFsc769oZzPmcvhlXsjaOFfaqeLyMQwcpnEhkdRddN36C2NkWWZMaWGkgJ76Jpft5ftszlEm9zGEuTn+/aDU3z835OLef3QO1muEgaXaIfpbyLp/k5v1k8mleOb0tQSho9kkaP2vpth199nI5ueVrQtOKX0UgrNCaMNUc3c+7FVXQJ/BnJsoxllAmdS7akTokan3+AGZwsyzwJfs6Bq0e59uImgVIY0ieu3c01JlTMUZpO5VtmyCZdsiyzadMmJk2ahEahw6tlEZxLvF1YbW1qRa9S7aiYvXSmyItOrJiYGEqVKkVYWBjm5uZcvHgRBweH9zraz2s4GY9UTIm7desWQ4YM4c6dOx99XpkyZfjhhx8oXrx4ks9x9eVNZpxcYuzN0CBPDfJEe7B//372799vzMH/mCxZslC8eHFq1qxJzZo1U/Wu8sf4+PjQrFkzYmMNWQRTFv7EPs1ZwFAieEHDKanaeyU2NpaRo0Zyx/EFjgUNrzE2KIoHyy8RFx5rHMcbNWvWZN68eUlqBJgcWq2WgQMHsnv3bgBsbGzYunUrRYsm/Zpjz5499O7dG4By39VB7W74/c2qP4Hsdp+eocloYmNj8ff3Jzg4mJCQEPR6PUqlErVajb29PQ4ODjg6OmJpafnRz7SQkBDOnj3LwYMH2blzZ7zqdFZWVkydOpW2bdum+udiUHQIc/Yv5W6Mr7H4kVKhpHmBerQu2BC1KnMmTIlg5TMasXw8z2wNMxwOQRYsHTg7Tc936OJRFt/ZiNLEcOc/T3QWfuoxIU3PmR6+Wz4JX1t/APLEZuGnbmn7Gn9aP4urJg+MP7uE2fBTx3FYW1iz6cB2/ni0BxMnwwe6pNXTxbM5zTJwwBIeE8HMnQu5rX0cr/DCx9iFW/Bz+wk42Xy9ecuyLHP/5SP2Xj6Ez+u7hKgiUFgkM81EJ1MrS0V6Ve2YYb5sgoODGTVqFHv37sWpqAeerYpiavN2NqVs1uL0Lt3hs1dayigmTZrEihWG/k4TJ06kX79+APx95wDrrxn6zrQs2ID2RZqmyvnOnTtH165d481iFC1alDx58hAaGsqlK5eIxXAnXxMWiyzJtGnThrFjx75X8elDrr+6zS8nFhlL3zpFWXN2wUH8/f0/uE+WLFkoWrRovP85OaXfjOHmzZsZMWIEYLho7PrbIK4HG4K7Zvnr0qlY6hS4iY6OpkePHjw2fUWuxoaULYUWBhbsRNUSlZAkicuXL7N06VL27Nlj3C9r1qwsX77c2Ik8tel0OgYNGsQ///wDGBo8btq0ibJlyybreLIs06hRI65du4ZH5dx4tjSkArYu1JC2hZuk2rjTgizL3Lp1i+PHj3P58mXu3LnD48ePScxlr6mpKXZ2dtja2mJra4uNjQ06nY6YmBiePXtGYGDge/soFAratWvHiBEjEpVqlxRB0SHsunuQgw9PoNFr3z4Qpufn1uPwdMyZqufLaESw8hk9ffWc4QemoDRVoY/TsbDhVDycU1YZ4kNeB/szYNv3xipktgGmrBg8L03Old7O3rjA7Fu/AyAHadk2MO0aRJ69cZ6ZV5ejMjVcUBbQ5WBypzHxnhMYEsSA1aNQZDH87vWxOsZUGEhp7xJpNq7kiNHEMufvxVyOvIXSIv4FctTzMGxizHG1cAKFgoCYIKIcdJg7ve1eLIVrGV9jKMXzfHrBbWYRFhXO32f2cPbxJV4rQlDafDiw0MfpiH4ZgTJSxlo2x1JlgRIFMdpYQrUR6B2V2OZyjFca3DxGzY9Nx5DdMX3vWB49epRhw4YRHBWa4GxKz5LtqJTj65pN+a8HDx5QrZohrSh37twcP34cpVJJSEwYA3aNRZIlnC0dWdh4aorLht64cYMWLVoY794WLFiQWbNmUbRoUXxe32H3vSNceXkTvWzoji3pJCJ8gwnyeUXM3RCG9B1Mz549MTU1/eA5jj4+w9KLG9BLhmMEXXvJnXUXQXp7iWBiYkKZMmUoXbo0pUqVonjx4h+sKJVeZFnm22+/Zfv27QAUKlMEl0550Uo6TJRq5jT8AdcUpl9qNBq6dOnCtec3KTKoEgqV4d/3Qwv5Dx06xLBhwwgKMtysNDMzY/r06bRr1y5F40hoXEOHDuXvv/8GDBfcq1evNr5Pk2v37t306dMHU1szSk+qi0KhIKuNO7MbpE8/IUmWOP/8KmefXSYoJhQ7MxtKZy1K+WwlMFObcfHiRf744w/27t1LQEDie9wkl42NDS1btqR79+54e3un2nFlWeZ+0GMOPDzByacXjH+bAPoYLU/23SXuVhjXr17L9J/Fny1YOX/+PEuWLOH27dvExsaSL18+unXrZqyqkhJfSrAC0HvhUMJdDHe/PKPc+bln2uR9dlswiBhXw4IrfWAcq7vPx8YqY/9ukkuWZVou6oGJs2E2Y0a1MeRyT52qG+/SaDV0WNQPlbsht8cuxJxl/WYn+CERERVJj2XfoHwTsERomd1kEjndPtw74HPR6nX89s9yTgZdRmn19mJb0ksofTU0K1SP1vVbvLf4NSQ0hJ83zeG+xQvUFobqcfooLd+W7kWVounTeO1zePbaj41Ht3HF/xY6RwVKdcIXnvpYHZqX0bgo7CmRtRDVS1TFO0/eDy4ifv36NVt2bWPv42NYFXYyBi1ynJ5BJbpSvUjaLs5OiEaj4eeff2bp0qU4FnLHq22xeLMpZbIWo0+pDthnsv4pydWuXTtjeddNmzZRtWpVAKYf/40rLw0VsCZWH0pht+Q3ww0MDKRBgwa8eGFILatRowbLly9HZaJi9ZVtHPx/d/EPkfUSIXcDUD7T0LN+Z5o3bR5vsXdwdCirLm7h3Murxm1BN15yd81FZElGpVJRp04dmjZtSo0aNbC1zfgzadHR0TRs2NDY36LR6DaEusUBUClHaYZW6JXsY8uyzLBhw/jznx0UH1ENc0fDDZxPzaK9ePGCAQMGcPHi287yPXv2ZOLEiUkq1/wh4eHh9O3blxMnTgCGQGXFihXUqlUrxceWJIkaNWrw4MEDCg+qhJ2XIdj7td74ZPXbSYmXEf7MP/M7D0OevPeYmWTCi933uXP4eoL7mpub4+3tTc6cOXFycsLBwQGVSoUsy2g0GkJDQwkJCTGmiIWHhxMeHk5ERES847i5uZEzZ06KFi1KlSpVqFixIpaWlgmeMzleRwZw7vkVjvmeM6aUvmGqMqGOV1X2zv2L4wePAnDx4sU0WwuWUXyWYGXXrl2MGjUKtVpNuXLlUKlUnDlzBo1Gw5AhQxg8eHCKjv8lBSvnbl7k1+srUCgV6CI0rO+8AEvz1HuTA6zdt4l/Qg1NgfQxWsZXGEKJfGkz5ZxRDPxtJIHOhjKVZVQFGNX6m1Q/x6wtCzjHLQD04RqWt/8Vx4+kQb3wf8nALWMwdf1/jnSIjtU95mFplrr/3oml1+tZsX8dB/xOorR5++UoSzI8jaNvlc7UqfjpL7bTV88y89QSY3Coi9QwtuIgShf4MosJJCQyKpKVu9dxyu8ikos6wQBF0knoX8fioXKmTM7i1C1Xi6weSZ8R0Wg0zFm9gFPaa5g7GxZiSlo97XI2ok2VZil+LYn15MkTBg0axNVrV8nZqABZa+QxPmaYTWlLpRxlMv0dvKT4999/6du3LwANGjQwpoWdeXaJOacN/101ZzkGl++erOPLskzXrl05fPgwACVLlmTbtm0o1UpmnFzC9ddvF9g7WNiR1yk3yPAk9Dmvo95PU9HFaAm/G4iLmSN2DvbEmmuJstXGm917efIxj3b44OzoROfOnenUqVOqp7R8Dnfv3qVhw4bExsaiMldT7afmxP0/TW5qrZHkc05ar5g3Zs+ezaxZs8jXvTTORQ2/l/zOXkyqMeyTvcU0Gg2TJk1i7dq1xm0VKlRgyZIlKZqhevDgAf369TOuZTIzM2Pp0qXUqVMn2cf8r61btzJs2DDcK+fCq6Vh7Uurgg1pV+TzpYI9CPJl+onfPthE841nB+/xdM8dzM3MqVy5MtWqVaNSpUp4eXmhVic9zVav1xMVFYWJiQmmpqbJ7j7/IVq9lvtBvvj43+WC37X3GnyCoaFovbzVaZi3BrbmNvz4448sWrQIgDVr1lC7du1UHVNGk+bBSlBQEDVr1kSpVLJ27VqKFDGkjDx8+JCuXbsSFBTEjh07yJ8/+XeevqRgBaDD/L7o3Qxv9nLKQoxok7Jg7V1BYcH02ToSta3hbmhxKS9jOwxPteNnVH8d3cWm14bFhCYBMhsGp261tThNHO1X9MfEyXBHsoVrLTrUaP3J/W7c82Hi0VmY2Bn2sw01Y3nfOZ/1gk+v1/P7gQ3se3IcpX38O3i6p9F0LdWaZjUaJ2lMT18+49vtE1G7Gl6XLiyOXxqMI2/25F0AZBTnb1zk9yMbeG0ZhonN+zMi2vA47GMsKZmlME0rNCRn1tSbwbt07TJT9s/BLIfhM0zWSzRyrEb3+h1T7Rwfsnv3boYPH06cQoN319LYeb5NkymdtRh9xWxKgrRaLeXKleP169eoVCrOnTuHh4cHGr2WfjtHE6WNwUxlyrJmvySrUtq76y9cXFzYt28fLq4u/HpyKRdfGO4em6lM6VK8FbU9K8crXfw87CXHn5zj8P1ThOs+fnEHoI3W8PgvH5yjbejTpw/NmjVLdLndjGrTpk2MHGmoyJarZj6yNjZUwvJyyMmPdb5Lcnqe8YK9Yi68Whsu2K1NrZhRbyzOlolfNL9p0ybGjh2LRmMInlxcXPjpp59o2DBpaxvfFMCYOHGiMUXQ3t6e1atXU6ZMmSQd61O0Wi2VKlXCPzyQMpPqolAqyGLjxpwGkz7L99mryADGHvjF2DvH3coFm8cqti/aiMLBhGx1vXEs8LaQQy7cGd9wGLY2GWsmUJZlgmJC8A15xqOQZ9wOuM+9oMdo312H8o58zl7U8qxE+ewlMVe//U7asWMHgwYNAuC7775j6NDMVTjpv1KvKPsHbNiwgdjYWDp16mQMVAC8vLwYPnw4siyzZs2atB5GhtKqaCPjf58OuIwkSal27LEbphkDFdlfw/ftvk21Y2dkjSrVQxthmOaPs5cIiwr/xB5Js+DPpcZAhSAd7au3StR+RbwL0zN/G/Qaw4LVcPs4ftj0S6qO7UP0ej0r9q6l3cp+HAg7Ey9Q0fpF09SmGn+MXE3zmk2S/GWTwyM789tNQxds+J2r7cwYvWMaoeFhn9gzY9p76gAdZvVhxvXlBLvFxgtU9JEanEOt6Zq9Gdt7LmfVNwsZ0rp/qgYqAKWKleT33vOQnxkqCClUSv4JPMqqXetT9Tzv0ul0TJ06lT59+qBwNaXYiOrGQEWlVNGzZDtGVeonApUPMDExoWNHQzCp1+vZuHEjYEjVqJTDcLEYp9dw9tnlJB87ODiYKVOmGH+eMWMGbm5u/H3ngDFQsVCbM776N9TNU/W9HivZ7DzoWLQ5y1r+woTqQylsnReFnvdoI+MIPfuS/E/cWTJ2HgcOHKBdu3ZffKAC0L59e1q0MCyo9z16DynEEBw8DHnCcd9zSTrWiRMnGDVqFJZZbMndrJBx+8CyXZIUqAB06NCB7du3G7uZBwQE0KdPH7p3725sbvkpFy5coEmTJowaNcoYqOTJk4e///471QMVMLzXBwwYgDYijvDHhrU3LyJe8zTML9XP9V+xujh+ObHIGKg4Y8/xybtY/fMyIsMjiXgSwqO1V3F8aoYCw3eZL6/YeHsnkpx611dJJUkSz8NecsL3POuu/sHUo3PpvWMUA3eNY8bJJWy/+S83/e+9F6jkccxFx6LNmddwMlNrjaR67grxAhUwNKR9I7HvmS9Zms+stGzZkps3b7J169b3ql+EhoZSvnx5HB0dOX36dLLP8aXNrEiSRJvFvVE5G958LZxq0aH2p+/Sf8rfJ3ez7tnfKJQKJI2e70v3z1SpOZ/Sbd4gYtwNH0wN7CvTo16nVDnuf2dV2rjXo0215kk6xqxNCzinNKSQyZJMM7eadK7ZNlXG91+xmjgW/7OSkwGXUNnHX1CrfRVDo1w16NmkS6o0kLv1+A7jD84wBsjq5zrWDl2crKn2z02SJDbv28afN/egyGoeLxVG1ktYhKlpXLA2rao0/WR6R2qKjommz/JhaN0M/z66GC1N7KrSo0XXVD2Pv78/AwcO5MzZM2StkYecDQsYfwdOlg4Mr9jHkFYkfNSLFy8oX748er0ed3d3zp49i4mJCfeDHjPu4AwACrrk5YeaSZvhfrfaWMuWLVmwYAGPgp8w9uAMJFlCgYIxVQdT3KNgoo+p0Wl4EurHfb+HRIZHYG9qRwmvIrg4uyRpbF+SyMhI6tWrh6+vL3Z5nSk8oCJgaJ43t8EkrEw/nZbr4+NDq1atiNHGUmxYVSxcDdcZDfLWoEfJ5H+O+/v7891333HgwIF422vWrEnz5s2pUKECHh4eKBQK9Ho9T5484fjx42zevJkbN27E26dTp05MnjwZC4vUK838XzExMZQrVw6T/DZ4tTLMLLUsWJ/2RdI2XXX9tT/5+47hdySH6Tj3y370sYYbgGq1mk6dOjF06FDc3Nw49/wKc0+vMDZJrO1VhT6lOqT57I8kSzwN9eNBsC+PQ57hG/KMJ2F+8St3fYCLlROFXLwp6JqXIm75E2zw+V96vR5vb29iY2PJlSsXp06dSo2XkWGlebBStGhR4uLiuHz5coKNcSpXrkxAQACnT59OdrnDLy1YAZj/5xJOaq8BoPTXsXnI8hQdLyommi6rB6N2NFw0ekV7ML3HxBSP80uyZMdKDscZFi/aBJmycmDqVD+bsWkeF5X/72sQpGPLgGXJ+uAbtGAkAa6GO0OSRs/wUr2pWDB55SQTEhQezLydS/GJfYDa9v0gpUGu6vRq3CXV822PXj3BQp91xhLZHv62zBvyeWaPkkOj0bBsxyoOPj+Fadb4n0n6WB15FNkYVL8XOVyzpdMIIU4bR++Vw4hzMHw8ayPiaGRThd7teqTK8Xfv3s3YsWMJjgzFu0MJHAu/rUpYzL0AQ8r3xDYD9n3JqHr16sXevXsBWL58OQ0bNkSWZYbvmYJfhKFJ4cJGU3G1Tty6BF9fX6pXr45Wq8Xc3JyTJ0/i6ubK2AO/8Dj0GZC6ZZEzuxs3btC0aVM0Gg35u5fBqahhMXJNz0r0L9P5o/s+ffqUZs2a4e/vT76upXEublinkts+O9Nqj8JElbLF8bIss2PHDqZOncrr16/fe9zc3BwLCwuioqKMaWPv8vb2ZtKkSVSvXj1F40is+fPnM3vRXGMqmLu1C/MaTk6zYMA35DnfH5iOJEtIWj1Xfz1KTIDhe7Rhw4aMHz+enDnjl+098+wSc8+sNJYorutVlV6l2qf6GP2jgrjodw0f/3vcDrhPlCb6k/vYmduS2z4buRyyk8s+O3mcciW7Ol3jxo25cuUKAHfu3MHGxiZZx/kSpOntz7CwMOLi4rCysvpgB09XV1cCAgIICAhIVLDi7+//Xim66OhPv0Eymn6Ne3B09QDUdmZIrmpOXT9LpaLlk3288et/NAYq+sA4fuiTOTrUJ0XbGi058PdZVKZqQs2j0Ov1Kb4wj42L5UzIVeOsSrvCSU+ZemNu/+l0nj8AOZsJSlMVs84vR6VUUS5/qRSN8fGLJ8z7dynPTPxRWZigfqc8qe51LPVzVKXX4K6pHqS8Ub14FR689mV/qGF29IVTKPM2LmJox4Fpcr7kioyKZO62xVwIu4GZu1W8QEUfpaWEdQG+adMXW8v0/8A3MzFjWc/Z9F07kjgbPSY2ZvwdfBT9Wh39uvZJ9nF9fHyYPXs2+/btwy6vMyX6V8fMwXAnVoGCVoUa0rpgw1SZdfuadOvWzRisrFmzhoYNG6JQKKiWuzwbr+8A4JjvWdoUbpyo402fPh2t1nBHtl+/fnh4eLD73mFjoJLdLgutCzX62CGEdxQpUoRJkyYxbtw4Hu3wwT6fCyozNYcfnaJC9pIUc094durp06e0a9cOf39/slT1NAYqliYWDK/UJ8WBChh6c7Ro0YIGDRqwceNGFi9ebKz8BoYmhv9tLglQrFgxunXrRqtWrT7rTHa3bt347bffCHsYiH1eF15FBuAb+pzcDqlf6VKSJBae+t2YyvXs4H1iAqLImTMn06ZNo2bNmgnuVyF7KfSSngXnViPLMvsfGgoO9SzVLsVlxMPjIjn6+Axnnl5KsCLZu9ytXf4flGQjt0N2cttnT9WU2kKFChmDlVu3blGuXLlUO3ZGk6bv8DdBxMemJd+U9UxswLFlyxYWLlyY8sGlMzNTMwqaenIPQ77n0mNrkx2sHL96imeWgShRIuklBpTriplpwuVSMzNHOwfUQTKyB6isTNh/6QgNyqasQsa8PxYbAxVFkI6WbZNf+cTExISFPX6m77oRmLhborJQM+PMYkZIfahYMOkfMpfuXmXxodWE2kajtFWh4u0Xp+KVjlZFGtK6TbPPcuHZu14XHm7w5aH6BQqVkqNRl/A6uofG1VNemjylnr18zvwdS7knP8XMyRIzi7dBihSuo6p7Gfq17IaZScb6m7EwNWdxl18YsGk0cRZ6zB0t2fX6GLoVOgb1HpCkY507d46FCxdy+PBhzBwsyNO+OG5l3665sTG1Ykj5nklKKRLeqly5Mrly5cLX15eTJ0/y8OFDvLy8qJKzLJuu70RG5pjvWVoVavjJi6WLFy8aG/o5OzszcOBAojUx/HFzt/E5/Up3Qv0ZUxMzg27duvHo0SNWrlyJ765bxgXy88+u4pe6Y95bd3L58mX69OnDq1evcCziTq531qkMLtcNN+vUTZ0zNzenZ8+edO/enfPnz3Ps2DGuX7+On58fWq0WCwsLcuTIQYkSJahRowaFCxdO1fMnlp2dHd26deOPy/9gn9fwOzj99GKaBCszts/jqfwSgOjXEbw8+oghQ4YwdOjQT6a7Vc5ZFlmGheffBiwRmigGlu2KmfrD/YYSIssyD4J92Xf/GGeeXTI2TX2XjakVBVzzUtAlL7kdspPTPhuWJmmXkgfEew/4+PiIYCW53lwkfexO9JtpusRmo7Vr1+69aDo6OprOnT8+lZsRDW3en35/fY/a0oQYZylZsytanZb5J1eidDFcaHlE2FO7dPU0GO2XoYhzPq7zCIC91w6lKFiJjYvlbNh1TBwNwUr7os1SPI3s4ujM3DZTGbptAqbulqgsTZh9eSU+T27Tp363Tx5fkiR2nvyX7df+ReMMCicFSgwXLZJOwjJIRY9K7anRrmqKxpkcP3YYR6/fhxFlo8HEypTlNzeTyyMHhfMV+vTOqUySJPaePsC2838TZh+L2tEUM97mpivC9DTOW5tObVpn6FkEazMr5redxpA/J6Ax0WHpZsM/T48RPTeKEd8M/+jYZVnm8OHDLFy4kPPnz2PpboNX22K4ls4erxRzEbd8DCjbNcmLhIW3lEolXbp0YerUqQCsW7eOH374ASdLB4q65+faq9v4RwVxJ+AhBV3zfvA4siwbjwEwYsQIrK2t2Xh9BxH/X1xcOWdZvJ090/YFZUIKhYJJkyYRHBzMXzv+wqGQG44F3IiIi+THw/OZWmcU1mZWhIWFsWTJEhYvXoxWq8WhoBv5u7xtgNqyYANKZ027VgBKpZLy5ctTvnzyMy3SWu/evVldaw2yJKNQKjjpe4GORZunWpqVRqNh3NQJPPQKMvb0ijzxmj+2bU9S8YAqucqiUGCcYTnz7BKvIwMYXrFPolIy43QaTj29wL4Hx3gc8uy9x3PbZ6d89pKUzFKY7HZZUjxrk1TvFq367xqmzCZN16y8WUtiY2MTrxHSu94swN+xYwcFCrzf+TUp5/mS1qy88f3vk3lkZchpNvGX2TAkaSV3v181mUeWhv11IXGs7jIPW6v0T2NJL/d87zPuzCwUSgX6EA1/9F+Z7GNN3zCbK2pDUzFFkJ7NA5am2ofxkxdPGbp1AqYeby+gzYIV9KncmapFKr73/Fu+d9hyYgc3Iu8Z0/3e0MfqcIm0ZXD9XhT2St874xGxkfRePwLZxvChHfcskpU95uDslLZdrmVZ5tbD2+y/fASf13cJUoZj6vz+XS3TUAUdSjanYek6X1S/kNcRAQzfNRmtylDOKfJ5GHY+CqaNn4KXV/xy0dHR0Wzfvp3ff/+d+w/u45DflSxVvbDPF/9OsJWJBW0LN6Fe3mqf/Us2MwoODqZ06dLExcVha2vL+fPnsbGx4eST88w/uwqA6rkrMLDshwslvNu3JU+ePBw6dIhwTSTf7J6IRq9FrVQzNxU6sH/N9Ho9Y8aMYctfWyk2rCrmToaZVl1QHLHHArh59jo6nQ6UCrJW8yJno7eFJ6rmLMegcp++qfQ1GDt2LBfN7xk/V36qPZo8TrlSfNyXL1/St29fogopcC5haDhp6a9iYY+fk319d+nFDeadWUmszlC90kxlSrMC9aiftxrWpvGXKEiyxKPgp5x8cp6jvmeJ1sbEe9zK1JIauStSx6sKHjauyRpPaomNjcXb2xu9Xk+BAgU4ePBguo4nLaVpsCLLMiVLliQ6Oppr164lWArxzQL7U6dOJbsp0pccrISEh9Jr2wjU1oZpyT6ebalTpkai9j1+9RTzb65FqVYiSzIdszWmRZXE5URnZi3n90DtZnivjS01kOJ5inxij/fFxMbQcdVA46xKx2yNaV4pdXPEA4MDGfL79+izx897lsK1WGstMFOaEKOPI0od+15VLzA0Y/SSs/Jt0/5kdc04Tdt8/Z8ycvdUlBaGiVv5SSxrv1mEhXnqTok/ePyQjYe3cSf4IVEWGsxcEq7qI+klnKNt6FmlA2XzpWx9UHp6GurHmD3T0SoNAYsmLJYHm65SPGshSpYsiUKh4M6dOxw9epRoTQyuZbOTpbKnsXLRGxZqc+rnrU7T/HUSVQlJSLwRI0awefNmAMaPH8+AAQOI02no+/doYrSxmKvNWNr05wR7rmg0GmrUqIGvry8Aq1atom7duiy5sJ7DjwyVfhp616R7iTaf7fVkVrIss3XrVqbNm45XjxKY2hr+PSSdnpBb/mjCY3Es6IaZ49u/j0o5SjOobDfUqoxf6fBzePnyJc2+bUeuloaZ86oeZRlcNWUFQM6ePUu/fv3QOSsp1Ncws2SKCYub/4RNCgt+PA3145eTiwmICjJuUyvVFHDxwsPGDZVCRVB0CPeDHhMS+34Jfk+HHNTLU41KOUpjmsQ0srRUu3Ztbt++jUql4u7du2laDS49pentNIVCgbe3N2BoAvlfoaGhBAYG4ujomKLurV8yB1t7Cpu8vTO67Nx69FICxfD/IzI6inmnVxrTOVxCrUWg8n+eFm+rOP159p9kHWPO9kXGQEUZpE/1QAXA2dGZDcOXUVqXH214nHG70taEaCcdIQ4xxDpL7wUqev84yioKsqrdHGb2npKhAhWAXK45GFq2F5LOsChSkdOc7gsGExUdleJjy7LM9j1/0XJKF747+hM+1k/Q5VC/F6jIkowiRE8JhTe/NZzKkt6/ftGBCkAO+6zMaDQea6XhtZramVOwf3leeUax9shmlv7xO2eeXcKtoRdlJtXFq2XReIGKm7UL3Uu0YXHTn+hQtJkIVNLAgAEDjHfdly1bRmxsLGZqUypmLw0Y+kUc8z2b4L7r1q0zBioVKlSgTp06PA9/yZHHhsIVFibmtCyY/mvAMgOFQkG7du049s9hSkbmQR9mqLKlVKtwKuqBR+XcxkBFgYJm+esypHwPEai8w8PDg8Yl6iDpDNcrJ56cQ6d/fy1HYsiyzIoVK2jbti3BYSF4tXp7g7F32Q4pDlTA8Pn5a73x1MtTzfg3qpN03Hh9l/0PjrPn/hHO+12NF6iYqEyonqsCP9Uezc91x1DDs2KGClTgbSqYXq/nzp076TyatJPmc/9VqlQBSHB66uDBg8iyTLVq1dJ6GBnaqFbfoAs1XKwqXEyZuW3BJ/f5dtU4VE6GdCBdcBw/d52UpmP8kjQpVc/437fD3w+SPyU6JpoLkT7GnzsUb54aw0qQUqnku05DWd5qBt6RWdG9jEHSx29iJekldP6xZA11YECeDvwx5HdGth2CnXXG6sz7rioFy9M6Wz3k/78WOYcp3X4bzMuAV8k+5t7jB2j1Uze2hOxFnc8ateXbL403wUmWSEeaOddkaaPpbOm/jDFth+Fmn75T9akpq607sxtPpKDz23UPjoXc8e5ciqJDKpO/Wxncy+c05nkDFHbNx3eVBzCvwQ809K6Z5os+v2Z58uShUSPDjQ1/f3+2bt0KQP28b7/j9t4/+l6juuDgYGbPnm38eeLEiSgUCjZe32lcz9ksf11RTjqVOTo6MnHYODb2XEzTfHXi/X4VCgXF3AsytdZIOhVrIVIlE/BN/yFE3g0GQDZVsGb/piQfIzo6msGDBzNp0iT0ej3Z63obU/MKuXpTLVfqrd2xMDGnV6n2zG84mYZ5ayTYz8RUZULJLEXoW7ojS5tMZ2C5rqmS3pZWvpZ1K2neZ+Xly5c0aNAAhULBypUrKVnS0KTw0aNHdO3alcDAQHbu3Em+fPmSfY4vOQ3sjXX7NrMr9BhgWIMwslQfKhROuAfHtI0zua4yLCKXtHr6erenbtmES/h9jWRZpuVvPTBxMVyUjSzWm7JJKA88Ze0v+Jj5AqAM1LN50LK0GOYH+Qf6c/vJPSJiIrGzsqW4dxFsvtB1SBuObmPHi4MoVIYvek1ADINKdaVOhcS/X89ePs+c3UvQ51Ibe7kAyFoJd70j9QrVoEaRyliZfT0zBZIkcfjxabbd/IeQmPdTFszUZlTIXpJG3jXJaZ9+/WK+Rj4+PtSrZ7hhki1bNo4fP46ZmRmTj8zhpv89AMZUHUQJj7eVfMaMGcPatWsBaNWqFfPnz+dOwEMmHv4VAAdzO+Y3mpLkKkZC0kiSxNMwP2J1GrLYuGJr/mV+7n5OC7Yu4YRs6BkX9SCUdQN+w9ExccU6Hj58SN++fY0zApYetpQYWR0UhhStX+uNI4ut+8cPkgKyLBMSG0ZgVDBKhRJrU0tcrZwzdNGV/7pw4QLNmzcHDI1BZ8yYkb4DSiNpHqwAbN26lQkTJqBSqShXrhympqacOXOGuLg4RowYYVxQmFyZIVgB6Dp/ILFuhn8OXUgcs5pOIneW+M2OZmyZxwXptnHBX0k5H9+3//ZzDzXDG7NyMg+tDXfxPcLtmddneqL2CwoNpve2kZj8vyN7t5zNaVS+3if2Ej7mj1O72Pjwb1RmhhQKSavHMdCCUS2GkDdnngT3kWWZI2eOsfLwemKyyvFmUaQ4PaVsCzKkQR+szRLu3/S10El67gTc507gQ6I0MVibWpLTPhtF3PKLC9t01KVLFw4fPgzAuHHjGDhwIOefX+XXU0sB8HbyZGqtkSgUCm7evEn9+vWRJAlLS0tOnDiBm5sbEw/P4m6gYWa4b+lO1PaqnG6vRxA+RK/X02HtALBUIUsypkeiWLt49Sf7eu3atYtRo0YREREBgLWtDTWmNCdYMtx8aV2oEW0T2ZfoaxYVFUW+fPmQZZlixYqxe/fuT+/0BfoswQrA8ePHWb58OT4+PqhUKvLkyUPPnj2pW7duio+dWYKV4LBgem8YifpNeldYHH2KdaBBuTo88vNl+s65hDm9XdvgEmzNbwNmptdwM7R7vvcZe/pXlColukgNm7ouxszk0xdvw5eM47mDYVrbJAg2DFyc1kP9Klx5cJ0fj8xHafs2PUkfp0MdIOPtkIs8bp5YmVsSFBbMnRf3eRT5DJPslijV78yk6CTyq3Mxsulg7CzEHU8h47p16xb16tVDkiSsra05fvw4Lq4ujNo7jWfhhr4RY6sOprBLPlq0aMHly5cN28aOZdCgQZx5dok5p1cAkNXGnV/rj0cl+qoIGdSac1v51/cIAC+OP6Ko7MX8+fMTbFYZGBjI+PHj2bVrl3Gbt7c3Hab04uALQyGJ7LYe/Fx3TKo03fwaVKtWjQcPHmBqasq9e/cwMcl8v7fPFqykpcwSrABcvH2Fn04tRG3zThfySA1KCzVK1dupSbtAM5YOmP1FTVd+bu3m9kb2MPzRVjYrzjfN+330+Y/8fBl5YBpqCxNkSWZEsV6UL5j4mu7Cx0XGRjFpyy88NXltTAtLDFmSySa58F2jwXjYu6XhCAUh9YwePZr169cDULVqVTZs2MB5v6vMPr0cgJz22XC5Ycq8OXMByJUrF4cPH0an0DNsz2RCY8MB+K5y/zTt6yEIKRURF0m/nd+jk/Xo43RcnHqAIvkKM2nSJEqXNhSXePLkCVu2bGHlypVERb0tttKsWTOGjP+WKafmo5f0KBVKfqz9HV6OOT90OuE/Bg8ezF9//QXAvn370q1haFoSV7oZTOkCJZhacyS6wFjjNrW1qTFQkbR6img9RaCSCM0Kvk3fOv7qPJIkfeTZMGnbL8aFyfZh5iJQSWXW5lbM6jaFaVVH4Rphiz7245Vj5Bg9+RU5mdfgB+Z0mioCFeGLMnr0aNzcDO/Z48ePM3fuXMpmK06u/68hehL6nD+u/wuASqVi/vz5mJqasuryVmOgUipLEUplKZo+L0AQEsnGzJqaXpUAUJmpyVYrL1euXKF58+YUKFCAwoULU6lSJebPn28MVOzt7Vm0aBEz5sxk0ZW3VVCb5q8jApUkKlr07WfEm1nazEZc7WZAhTwLsK7nQgppciH5a9BFaNAFxeIcbMWUSsOZ0HmUCFQSoX3tVuj8DUGf0sGUVfs2fPC5q/5dT5yH4b/1cTpGN/7mcwzxq5QvWx4W9v6FTZ1+o4dnK4riRZZIB5zDrcke40wly+KMKtWXLd2WMKXt92SxT7sFloKQVhwdHZk/f76xTOqsWbMYP248NezKwv/zGbLX88YmlwMjRoygVKlS7Lp7kONPzgGGIgm9SrYXDQiFL0Lz/PWMaVtZqnpi7mQoeBIREUFoaKjxeSqVii5dunD06FEaNWnMgnOreB0ZAICXQ07aFEr9NgGZ3ZvZKzAsuM+MRBqYkKn99udyjmkNdxp0ERpWtPsVR5v45Qqv3bvBD8fnYvL/1LuSinx83/bbzz1UQRAyoSVLljB16tR423I2Lki2mobiEgo9tCnamKCYUA49Oml8zrcVelMxx5fdG0j4umy+sZM/b+0FwBk7wv/1w/fRYzQaDZ6enlSuXJlWrVrh4eGBJEksOr/WGJxbm1rxc90xuFo5pedL+CJpNBoKFChAbGwsOXLk4MyZM+k9pFQnghUhU9Pr9bRf0AeFh6FogW2wKcv7zzXerXzw7BGjdk7FxOX/DSAD9WwYsFgsZhUEIdWsW7eOH374gdhYw0yvQqWgYJ/y2Hu7JPh8UQlJ+BLFamMZtmcKQTEhADTyrkXX4q3emx2M1cay4NxqLvgZSh6bKNWMqzaEgq7en33MmUWrVq04e9bQcPby5cvGFNTMQgQrQqZ3/uZFfrm8DJWpIQCxDTJlQK0eXHtwg13Pj2Bi/6b6mob5LaaSzSVjdYQXBOHL9+LFC/766y98fX1xd3enYZNGHA29YOxQD2CmMqVj0ebUz1tdpH8JX6Q7AQ+ZfGQ2+v83Pq2euwJdirXExswaSZK4+OI6a69uxz8qCACVQsmwin0om614Oo76yzd9+nQWLlwIwNKlS2ncOHPd7BDBivBVmLFpHheVdz74uC5Cw6gK/ahQKOFGnIIgCGnhRcRr7gQ8xFxtShG3/NiILvXCF27/g2OsuLTZ+LNaqcbN2pnQ2HCiNNHG7RZqc0ZU6ktR9wLpMcxM5eDBg3Tr1g2AXr16MWXKlHQeUeoSwYrw1fh50xwu6G4bZ1jekII0/Nj4e/LlyJtOIxMEQRCEzOPkkwssPr8WrZRw1ccCLnkYUKYL7jaun3lkmVNYWBiFCxdGkiTy5MnDsWPH0ntIqUoEK8JX5foDH1Ye2kBAXDBmSlPK5ixBn4ZdUaveb14lCIIgCELyBEQFsevuQa68vElQdAi2ZtZ4OuakjldlirkXRKkQVU1TU4sWLTh//jwAp0+fJmfOzFMCWlyhCV+VonkKMy/P9PQehiAIgiBkai5WTvQs2S69h/HVqFmzpjFYOXz4MD169EjnEaUeEdYKgiAIgiAIwhesZs2axv8+fPhwOo4k9YlgRRAEQRAEQRC+YAULFsTd3dBE+dSpU4SHh6fziFKPCFYEQRAEQRAE4QumUCho0KABAHFxcfz777/pPKLUI4IVQRAEQRAEQfjCtWrVyvjf69evJxPU0AJEsCIIgiAIgiAIX7zixYtTqFAhAK5evcqZM2fSeUSpQwQrgiAIgiAIgvCFUygU9OvXz/jz1KlT0ekS7nXzJRHBiiAIgiAIgiBkAs2bN6dAgQIAXL9+nR9++AFJkgDQarXs2bOH6dOn8+DBg/QcZpKIppCCIAiCIAiCkElcunSJFi1aoNfrAfD29sbV1ZWbN28SEhICQLly5fjzzz/Tc5iJJmZWBEEQBEEQBCGTKFWqFDNnzkShUABw7949Tp48aQxUAEqWLJlew0sy0cFeEARBEARBEDKRdu3akT17dqZPn87ly5cBsLW1pUaNGrRp04bq1aun7wCTQKSBCYIgCIIgCEImFRUVhVarxc7Ozjjb8iXJFDMrb+KtyMjIdB6JIAiCIAiCIGQsarWaqKio9B5GgqysrD4aRGWKYOXNL79atWrpPBJBEARBEARBEBLrU5lRmSINTJIk/P39PxmZpbXbt2/TuXNn1q9fbywbJwjvEu8R4VPEe0T4GPH+ED5FvEeET8lo75GvYmZFqVTi7u6e3sPA0tLS+P9i7YyQEPEeET5FvEeEjxHvD+FTxHtE+JQv7T0iShcLgiAIgiAIgpAhiWBFEARBEARBEIQMSQQrgiAIgiAIgiBkSCJYSUUuLi4MHjwYFxeX9B6KkEGJ94jwKeI9InyMeH8InyLeI8KnfGnvkUxRDUwQBEEQBEEQhMxHzKwIgiAIgiAIgpAhiWBFEARBEARBEIQMSQQrgiAIgiAIgiBkSCJYEQRBEARBEAQhQxLBiiAIgiAIgiAIGVKmCFZkWSYyMhJR2EwQBEEQBEEQMo9MEaxERUVRqlQpoqKi0nsogiAIgiAIgiCkkkwRrAiCIAiCIAiCkPmIYEUQBEEQBEEQhAxJBCuCIAiCIAiCIGRIKQ5WduzYQb58+Th9+nSCjwcGBjJlyhTq1KlD0aJFqVWrFjNnzhTrSwRBEARBEARB+KgUBSvXr19n6tSpH3zc39+ftm3bsmHDBszNzalevTqSJLFixQo6dOhAZGRkSk4vCIIgCIIgCEImluxg5fDhw/Tq1eujAce0adPw8/Ojb9++7Nq1i/nz57Nv3z4aNGjA3bt3WbhwYXJPLwiCIAiCIAhCJpfkYOX169eMGTOGgQMHotVqcXZ2TvB5T58+5cCBA3h4ePDNN98Yt5uamjJ16lSsrKzYsmULsbGxyR+9IAiCIAiCIAiZVpKDlTlz5vDnn39SqFAhtmzZgqenZ4LPO378OJIkUa1aNUxMTOI9ZmNjQ/ny5YmOjubcuXPJG7kgCIIgCIIgCJmaOqk7eHp68ssvv9C0aVOUyg/HOvfu3QPA29s7wcfz5MnDoUOHuHfvHtWqVUvqMARBEARBEL5KWr2WC37XOP/8Kg+Dn+AfHYQsyzhY2OHlmIvKOcpQNmsx1KokX+YJQoaT5Hdx3759E/W8gIAAAFxcXBJ8/M32wMDApA5BEARBEAThq6OT9Oy9f5Sdd/YTFhv+3uMhMWFc9LvGRb9reFi70qtUe4q6F0iHkQpC6kmzkDs6OhoAc3PzBB9/s/3N8xLL39/fGAj991yCIAiCIAiZ0Z2AByy/uJFn4S/jbTdTm+Fh7YJKoeJVpD9R2hgAXkb6M+3YfNoUakSrQg1RKkRrvYxElmUUCkV6D+OLkGbBikqlAvjgP4Qsy/H+P7G2bNkiqogJgiAIgvBVkGSJv27tZevNf4zXTAoUlMtegjpeVSjokheVUmV87k3/e2z1+Ye7gQ8B2HbzX8JiI+hVqr24OE5nMTExrFq1is2bN/Po0SPc3Nzo2LEjgwcPxszMLL2Hl2GlWbBiaWkJQFxcXIKPv9luYWGRpOO2a9eOmjVrxtsWHR1N586dkzFKIS09ffWMTcf+4E7AQ6KIQVLKqCUVHuYuNChWi7plan76IIIgCILwlYrVxjL3zEouv/QxbsvjmItepdrj5ZjzvecrFUqKuOWnsGs+/r5zgI3XdyAjs//hcSxNLehYtPlnHL3wrjt37jBo0CDu3Llj3Pbq1Stmz57NhQsXWLt2Laampuk4wowrzYIVV1dXgPdStt741JqWjx33zbHfEM0lM5Yjl4+z8uRGYp0klGoVuACYoAQkwI9gVjzaxu/nNvNN9V5ULFwufQcsCIIgCBlMWGw4Px9fxMOQJ4BhNqVt4ca0KFj/kyldCoWCZgXq4mRpz4Kzq5GR2XF7H54OOSifveTnGL7wjhMnTtCrVy+ioqIAw79P/vz5uX//PjqdjhMnTvDzzz8zceLEdB5pxpRmwcqbKmAPHz5M8PH79+8DkC9fvrQagvCZ3Xlyjx93ziHODXBToEQV73FZklEo305BSy4qZl9dydm7FxneatBnHq0gCIIgZExPA57z8+nFBMYGA2CmMKGWdTksnyrY9WAXWq0WrVaLLMvY2tri5OSEt7c3Tk5O8Y5TOWdZwuMiWX1lGwCLz68jl0N23K2TdqNYSL5//vmHIUOGoNFoAChQoAALFiygQIECXLhwgbZt26LRaFi+fDnt2rUT18UJSLNgpUqVKgAcOXKEMWPGGNewAERERHDu3DksLS0pVapUWg1B+EwkSeKXLfO4qLmFyu3tW0oXrcU9zoHaBapSuUh57G3suON7jz/P/MO1mLuY2JujNFFxVufDT1tmM7bd8HR8FYIgCILw+Wk0Gk6cOMGpU6c4f/48T18/J0fnwli62wAQFxrDlWVHOPzqj08ey9PTk4YNG9K9e3c8PDwAaJC3Bg+CfDn59AIxuliWXljPxOrfivUrn8GWLVsYOXIkkiQBULduXRYtWmRcAlGmTBm+/fZbZsyYgSRJzJs3j0WLFqXonEHRITwMfkJ4XARKhQpPhxzksM/yRRdYUMhJXeH+H126dOH8+fOsWrWKihUrxnusf//+HDlyhB49ejB69GgUCgUajYbRo0eze/duevbsyejRo1P0AsCQBlaqVCkuXbqEtbV1io8nJJ5/cADDNkxA6/r2Q08fo6UAuRjV+hvsrG0T3C80Ioxvfx9LtLtk3FbNohSDmvZO8zELgiAIQnoLCwtj6dKlrF+/nqCgIABU5moKD6yEdTY7AGKDorjx22k0oTFJOrapqSm9e/dm5MiRmJmZEauNZcTeqQREG2Zq+pXuRC2vyqn7goR4Vq9ezbhx44w/t2vXjhkzZqBWx58niImJoWzZsgQHB6NSqTh79ixZsmRJ0rmiNNEc8z3LCd/zxrTBd2WxcaNj0eaUzVY8Wa8lvaVpsOLn50f79u3x9/fH09OTvHnzcuPGDV68eEGhQoVYt24dVlZWKXoBIIKV9HL08knmn/8dtcPbChYW/kqmtR1Ldresn9xfkiQGLRpFkIuh9LSk0TO8ROZdw6LRavjz5C5OP7hIuDYChUKBvZktpXIVo2n5Btha2qT3EAVBEIQ0JssyO3bsYPz48YSGhhq3K9RKCvevgK2nIZVLESvjcdcSe1NbLC0tMTExwdTUNN7/y7JMeHg4r1694vr161y6dMl4Fx+gYMGCrFmzhixZsnDt1S1+PLYAABsza+Y3nIyVqeVnfe1fiyVLljB16lTjz7169WLy5MkfnM2aOXMmc+fOBWDs2LEMGpS41PjwuEh23zvEnvtHidHGfvL5jb1r0bl4yy9uliVNgxWA169fs2DBAo4ePUpYWBhZsmShfv369OnTJ9UCCxGsfH4rdq9lT+AJVGaGOwS6GC31nCrRr0mPJB1HkiS6zR9EnGG2Gn2Ihg09f8PcNOH+PF8iSZJYtHMFhwPOorZLuDShpNHjHGtLxwotqVr4/b8jQRCEjComJoawsDAArK2txffwR8TGxjJ69Gi2b99u3GZiYkKDhg2wq5WVRzo/AGzNrJlccwRZbd2TdPyAgABWrFjBsmXLjGsksmXLxpYtW8iVKxdzz6zk9NOLADTJV5suxVul0isTAPR6PT/++CNLly41bhs8eDDff//9R9Punjx5YryGzp8/P4cOHfroeUJjwth19yD7H54gThe/6m5u++wU9yiEm7UL0dpozj2/aixjDVA/b3V6lmyXnJeXblIcrGQEIlj5vKasn8EN1SPjYnl9UBxja35DqfzFk3W8kPBQeq4bhomzIUDxjHHn5+6TUmu46So8MoLBv48m1i3xf2aqMJkGeWvQsVpr1ErVp3cQhM8oJiaG27dvY2JiQr58+USpza9QYGAgBw4c4NChQ9y4cYPnz5/He9zd3Z2CBQtSp04d6tWrh5ubWzqNNGOJjIw03uB9o0mTJowbN45z4dfZ6vMPAGYqUybXHIGnY45kn+vWrVv07t2bJ08MKUGenp7s2rULrYmeb3f/gFbSoVaqmd9oMs6Wjil7YQJgWI89ZMgQDhw4YNz23XffMXTo0ETt36RJEy5fvgzAuXPnyJYt23vP8Y8KYtedAxx+fBqtXmvcrlKqqJ6rAg29a5DdLn4KmSzLHHx4khWXNxn79HxTvgeVc5ZN8mtMLyJYERJNkiSGLR/LS/sw4zaT1zK/9fgFexu7FB3731N7Wf3kLxQqJZJOYkL5IRTzKpzSIaerkPBQ+qwejtLtndkUfw0VPUpT0rMokqTnysMbXHp+nWgnPWoLk3j7y9F6StoXpH+9HjhYpuz3Kwgp9eDBA3755RcOHTpk7JNlb2/PoEGD6NevX7wiKkLmdOHCBX7//Xd2796NTqdL1D5KpZJGjRoxcOBAihYtmsYjzLiio6Pp1KmTMVCxsLBg1qxZNGvWjNNPLzH3zArAUJ54RKW+qbK24PXr17Rr185YfbVq1aps2LCBTTd2svPOfgDq5alGr1LtU3yur92FCxcYMmQIz549AwyN0X/88Ue6dOmS6GPMnTuXmTNnAjB9+nS6du1qfOxxyDN23T3I6acXkeS3aX4mSjW1PCvTNH8dnK0+HnQefnSKJRfWA2CmNmN2/Qm4WDl9dJ+MQgQrQqJIksTApaMIdow2bnMJtmZe3+moValTVK7vwmGEuhhyLi2DVKweuDBVjpseomKi6bFsCLgb7jpLGj1VrEowpHk/lMr3c0X9Xvnx298ruBn7EDO3+Ou4JJ2EQ7QlZXOVpGbRKuRyyW7sVvwuWZbR6LVEaaIJj40kMDyIoPBgwqLC0cZpsDS1IJdbDvJly4ulWdKasQpft3Xr1jF+/Pj3LlCVpirUlibUqFCdpYuXYGJi8oEjCF+y27dv89NPP3H48OH3HrO1tcXLywt3d0O6UmBgIPfv34+3FuONJk2aMGHCBLJm/fSaxsxEo9HQpUsXTp48CRiC/E2bNlG0aFH8wl/x/YGfjak8nYu1oGn+uql27qdPn9K4cWPjAv7JkyfTtkt7Bv0znjhdHCZKNQsaT8XRwj7Vzvk1CQkJYdasWaxZs8a4VsjOzo4lS5ZQtWrVJB3r+vXrNGjQAIA6deqwZPkSTj29yMGHJ99bNG+mNqOOVxWa5KuNg0Xib2b+dm4Nx3zPAlA1VzkGl+uepDGmFxGsCJ+k1+vpv2QEYc6GD1NZkimgzcGUrmNT9Tx+/i8Y8s8E1FaGC/z+3h2oWSJpf+wZRe953xDubpii1cfp6JO/HfXL1v7kfrGxsazYuZqDvqcwyWEVry/NG7JeQo6VUOoVhildFcgqBQpTBQpV4hbNyaFa3BVONCvdgNolqyfptQlfD1mWmTNnDrNmzTJuc3FxoXzbaoQ7xqG1A4VSgaTTYxNlzuS2o8lh/3VdiGZmfn5+zJw5k+3bt/PupYKTkxPt2rWjQYMGFC9eHIVCwYNgXy74XeN+0GNCYsKIi4tDExaL7+X7PD//mMhnoYBhRmHs2LH06NHjqymd+8MPP7B8+XLAcCG7ZcsWihQpQpxOw9iDv/As7AUAVXOWY1C5bqn+ezlx4gTt2xtmT8zNzTlw4ACnI67y9x1DulJD75p0L9EmVc+ZkWj1WiRZxkydeimrwcHBrFmzhhUrVsQLzMuUKcOCBQvInj17ko8pSRKlypdGclHhWjI7bsWyo9Fr4j3HxtSKBt41qJ+nOtZmSS9QFa2J4ds9PxAaG04Bl7xMrvlltIwQwYrwUTq9jr6LhhHparijKksypcjH9x2Gpcn5xqycwkPrlwCYBMKGQYvT5DxpadbmhZxT3AQMsyKdczaheeXGSTqGLMv8c2QPG87+gSaL4r0UsdSkC4ilTo7K9GvcI8FZH+HrpNfrmTBhAmvWrDFu6zKgO8qyNjxIoDQmgBIlg8p1o0quLycXWnhfaGgoCxcu5Pfffzem/AFkzZqV4cOH06JFC8zMzJBlmSsvb7L5xk58Q59/5IgQ4xfBw503CHsQCECNGjWYM2cOLi6Zuznhnj176N3bUJLf1NSUbdu2Ubp0aQAWnVvLUd8zAGS39eDHOqMxVydchCWlJk6cyMqVKwGoXbs285YuYPA/49HotZiqTFjU+EdszTNPRcrbAfc5+PAk117dIjwuEjBc6Hs7e1ImazEq5iid5N91dHQ0J0+eZOfOnezdu5fY2LfVtywsLPj222/p37//e6WJP0aSJB6FPMXH/y43Xt/mxsu7kMDXcG777NTyqkzVXOVS/B55FRnAscdnqZyzTJILOKQXEawIHyTLMgOXjSLIPsrwsyRTTlWIkW2HpNk5I6Ii6LpxKCa2hj/GkcV6Uzb/l9M49PpDHyafnIfK3PBhVULhzZi2KQvs/AP92X54J1f8fAjShqIzl1FaqFCZqpGRkTR6JJ2ErJFAI6PUg0pSYooaU4UJ5iozTMxM0UhaIqVook00mLpYvDdro38Zy5AqPaleqkqKxit8+eLi4hg6dCi7du0ybhs4ZSj3HF7GK4/pYeOKHKbjacQLTO0MBTIUKBhbbTDF3At+9nELKRMZGcnvv//O0qVL490ttre3Z8iQIXTv3h1zc8O/88sIf5Zd3MBN/3vvHefNxVTsf6oUAQRc8ePxDh+0EXFkyZKFVatWUbjwl70+8UOePHlC/fr1CQ8PB2DatGn06GGomHnk0WkWX1gHGFJ6ptcZTTZbjzQbS3R0NFWqVOHVq1cArF+/nif2gey+Z0jta1+kKS0LNkiz8ydHQEAA169f5/Hjx/j6+vLq1StCQ0MJCwsjIiICrVaLJEno9XokScLU1BRLR2uc6uTELNfHrwXVsgpPZVZKWOfHxdrJWMXuTTuNkJAQgoODefz4Mffv38fHx4erV6+i1WrjHUelUtGiRQu+//57YxPOjwmPi+RBkC8Pgn15GOzLvcBHRGkT7qGj1quo7l2R2p6V8HTMmcjfWuYkghXhg8auncoDM8P0tCzJVDIrxrctB6T5eb9bPhFf2wAAbINNWTFgXpqfMzVIkkSHRf2QXQyBikWgitUDF6RJqoNOpyMqKgoTExPUajUmJiZJOs+j549Zf3gb16LuonJ8OzUuafV4R2Vlau/xYsF0EkiyxPOQlzz0e0xQRDBKhRI7C1sK5cqPu71reg8vSSIjI+nduzcnTpwADF/GQ34dyUXuGFOBPKxd6VmqHUXdCgDQolULgnPE4V4hFwCWJhb8UncMbtaZ+655ZhEdHc3q1atZtGgRISEhxu1mZmb06tWLQYMGYW9vDxje63vvH2Xj9R1o3qlGlNshO/XyVKOER2FjDn1wTCiXX/iw7/5RnoT5GZ+ri9RwZ+0Fwh4EYWFhwdy5c2ncOGmzzxldXFwczZs35/r16wA0btyYJUuWoFAoeBL6nLEHZxirOX2uykx//vknQ4YYbjYWKFCA9X9tYuieSciyjIO5Hb81npZqa1CTQ5Zlrly5wo4dOzh06BC+vr5J2t86pwMFepTB1PZt6wNdrJaoF+Egg4WrNaY28WclJJ1EwMVnPD/ygNiAqESfy97enlatWtGnT58PpnxpdBoehz7jQZAv94N9eRjky+uowI8f19SW24evEXT9BcWzF2Hj+g2JHlNmJoIVIUGz//iNszof48/FdXkY22nEZzn3y4BXDPp3PGoLEySdxC/Vv8cra+7Pcu6UmLl1Phfk2wBow+NY3HI67k4Zu2SnJEms3LOOvS9PoLJ5m2qmfKJlcb9fcbCz/yzj0Et6AiKCkBUyLlZO6fqFmVh+wS/ZcHQbPkH3iDbXoDRNOLjTR2mxjDGlqFM+OtZsQ1bXpHUm/pyCgoLo0qUL165dAwz57YPmjuRs9HXjc8pnK8nAsl0wN3l7QXD69GnatG1D/u5lcCpiuLtY0qMw31dNXGOz1Hbjxg02bNjAo0ePcHNzo2XLllSvXv2rWSORWDExMaxZs4ZFixYZF2CDoYJXmzZtGDFiRLzF8P6Rgfx2fi23A+4bt7laOdGpWAvKZyv5wd+vJEscfXyGDdd3EPH/lBxZkvHddZMXxx4BhjSlfv36pcXLTBfjxo1j9erVAOTKlYu9e/diY2NDjDaW7w9M52WEPwC1varQt3THzzImWZZp1KiR8e/7999/54a1L+efXwVgSLke6ZLCKUkSe/bsYc6cOdy+ffuTzzcxMcHW1hYTExNUKhUqlQqLHLY4Ns5p/BzWhMfy5N/bBFx+jqz//2WuAqyz2+NeIRfOJbOiMnn7mS1LMkHXX/D80H2i/MITPK+npycVK1akTp06VK1aNV7Zdr2kxy/8FY9CnnI/6DEPgn15GuqH/p3KXQmxMbOmkIs3RdzyU8QtH65WzpQqVQp/f39sbGy4efOmuHGICFaEBGw4uJUd/oeMi7WzhTgyu/+Pn3UMA34bQZCzofKYR4QD83r/9FnPn1T3nz7g+8M/o/r/2pJ61hXo1ajrJ/bKOCKiIxm9cTKBNpHGbZonkcxuNwXPnGkTKOr1en7/dx1Hnp4lzlZCZWb4QJb1MlYaM+rkq0rrMk1SdVFkSsmyzIErR9hw/k+i7XQJFkD4GL1Gh+lLQx+ddg1bY2aWNvnpyXH37l26d+/O06dPAcOdw16zh3A29JrxOQ3y1qBbidYJdj9u27YtZy+epcTompjZG6rNfV9lICWzFPk8LwDDv8/8+fOZMWPGe4+1bNmSX3/9NUP9ztNLTEwM69ev57fffiMgIMC4XaFQ0KJFC7799lu8vLyM22VZ5vCjU6y5uj1ealf9PNXpWKx5onPow2LDWXB2Nddfv70g9Tv6EN9dN0GGYcOGMWLEiC8+qNy5cycDBw4EDLNTf//9N4ULF0aWZeadWcnpZ5cAwzqEqbVHYar6fFX0Dhw4QPfu3QEoUqQIs9cu4IcjswHwcsjJT3VGf9bf/+3btxkxYoQxgHrDxMSE4sWLU7p0afLmzYunpydZs2bFwcEBc3PzeGN8GPyEHw7PJu7/i9ELuXoztHwvLJRmREVFGf8XGRlp/O+giGBuaR/jq3qFXhk/oFCGy9hGmOGssMfLOSeFvQuRN29eHB0d0Ul6AqOD8Y8M5GWEP49Dn/Ek5DlPw/zQSh8v522iMsHTIQd5HHOR1ykXeRxz4WLl9N7vu0+fPuzevRsw/HsVLJh6KbVnzpxh4cKFhIaGMmTIEOrXr59qx05LIlgR4jlw8TBLbm0ydqa3fq1mxeB5n33h9e3Hd5lwejZKtRJ9tJb1HRdgkUHL7cqyTKcF/dG5GX5HZq8VrPtmUTqPKnmW71/LvoBTKNWG1xL7PIJfmo2nQJ78qXqePSf3s+ziBkw8LD/6PGUcdC7ekkZFaqf7BcyF25eYfXgZeuf3/xbiQmNQhklYyRZYmVggKyBWiiNKGYPsoE6wQELkw2AKqj3p3bQb+fMn7/er1+vRaDTGdMDk2rNnD8OGDSMiIgIAdw932v3ck4tBb2dX2xZuQquCDT7477B371569eqFc4ms5OtiWGeW3S4Lv9Yb/9n+7caPH8+qVas++HiTJk2YNGMyp55d4mXEa6xMLCmZpTDF3Aum+/vrc9DpdGzdupVZs2YZ1y6AIUhp2rQpw4YNI2/evPH2CY0JY8nFDVx+ccO4zcXKiYFlu1LI1TvJY5AkiW03/+WPW7uN2wKv+HFv4xVkvUSvXr2YPHnyF/vv8fDhQxo2bEhkpOHGz4wZM+jUqRMA++4fY+XlzQBYmJjzS92xuH/mVElZlqlfvz4+Poa/7dWrV3NQvsDjEEN/kKm1RpLP2etjh0g169evZ/z48fHWgZQoUYIuXbpQv3597Ow+XZLXPyqIcQdnEBZrmA0pnaUo31bsnegAMFoTw/6Hx/n37iHC4iISfI5KocRcbYZW0sVLffwYBQqy2bqTxyk3eRxzkccpF9ntsiSq0fPSpUuZMmUK8H6/lZTYuXMngwYNMqbzFi9enH///TdVjp3WRLAiGF29f4MpJ+ahtjL8kStf6lg76DdMTdLnznbHuX3ReRj+sKtblGJg097pMo5P+e2v5RzTGLrO6qK0zG04iRzuSS9bmFEcuHqUpTc2GqfTY19EMq3+dxQtkPI75Hq9nrELf+CB42tU76RNaSM1KEP06LU69NYKLFzj/x1nUTgzsfEIHC3tUzyGpAqPiuCHjT/z1CIA5TtpA5qwWJwirGlcvA71K9bBwiLhYDo2Lpbd5/az//YxAi0j3ksXi3wehukTPe0qNadenXo4Oibc2Cs2NpYbN25w6dIlLvhc4lHEM3TWMioLEySdHnPJFGelPcWyFqJcmbKULFkSW1vbj742X19ffvnlF/7++2/jtiLFi1JleAOuBRrufitQ0LNkO+rlrfbRY2m1WsqWLYu/vz/FhlbBOqcDAGOqDqKER9ovoN6wYQPfffed8eeRI0fSvXt3Dh8+zHfffUecJo4cDfKTrWZe+M91sOFObE/sk9Cv4Etz6NAhJk+ezMOHD+Ntb9SoEcOHD38vYJZkicOPTrPx+g4iNW9z+Wt6VqJb8dZYvJMGmByHH51i2cWNxgZ3wTdfcWf1xS86YImJiaFJkybGVKaWLVsyf/58FAoFD4OfMOHQr+j+f/d9RKW+lMtWIl3G+ebGAkDp0qUZPncMv503VP2rlKM0Qyv0StPzy7LMDz/8wIoVK4zb8ubNy8SJE6lRo0ai/90jNVFMOPQrfuGGwLuAS17GVxuCSTJmqjQ6DUcen+HI49M8CnmapH0VKPCwcSWXfTZyOWQnr1NuPB1yJPtv5PLlyzRp0gQwvIcWLFiQrOO869GjR9SpU8dYwczR0ZGpU6fSvHnzFB/7cxDBigCA76unDP/7B9R2hul8/etYVvaYm+LO9Cmxbu9mdoUdA0ARqGPLoOXpNpYPefbaj6H/TERtbQjoKpkUY2jL/uk8qpS79PAa00/+htL8/wHLy0gm1viW0sWSX5ktIiKCAbOHEeetNqZPSRFa6mWpQve6HTFRG75ggoODWbb1d476n8M2n7Nxf4VGpl/ZztTMVzkFryxpNhzYyh8P96J2eJvmog2Po5gqL9+2Hoi9bdL+PiLjolh9ZBMnX19C+s/3WGxwNAGXnmMXZUFO+2y4u7qh1WoJDQvlwYtHBEqhWOd2wC6PMxYuH/6c00VrCLz2Av8Lz8lm4UaZMmUoU6YMWbNmxcLCgvDwcO7du8eRI0c4evSosZEZQIM2jbGrl41n4YbCGiqFksHlu1MpR5lEvb7p06ezcOFCHAu7U6CnIfe9kKs3k2qkTanzN27fvk3Dhg3RaAxpILNnz6Zdu3bGx//Z+y8LLq3GLo/zhw5BVlt3ptYaibVp0nsXZGT+/v5MmDCBf/75J972OnXqMGrUKAoVKvTePg+CfFl1ZSv3gx4bt9mZ29K/TGdKpWJa3+UXN5h9ernxbrUhYLmArJfp168fEyZM+KICllGjRrFx40YA8uTJw+7du7GysiJSE8X3+6fjH2VYF5TefU0kSaJ27drcvXsXgL//+ZtFTzYTEReJSqFkUZOfktRoMClkWWbs2LGsXbvWuK1Xr16MHTvWWGkuMbR6LT8eW8Ct/6+fymLjxrRao5LVe+S//KOCuP7qNk9Cn+MX/ooobTSx2jhMVCaYq81wtLDH1doZNytnctpnJYd91lQtOa3RaMiXLx8ajQYvLy+OHz+e4mN269aNgwcPAoaU3V9//fWLWgsjghWB0IhQeq8dgdLZcMGtDYplfqtpZHdL3+ZuOp2ONsv7YOJo+AD7rnhfSudLnztRH9J1/kBi3Qx/QuoAifUDF2eaXiU3ntxi8pG5KC0MH2gxryL5rkI/qpRNerDw5NlThqz8HvMCb78A3eLs+aXdRCw/kN4XFBTEqNnjCM4VF6+6SyErL76rNzjFd3Y/5v7TB0zZMYu4d+ojyHoJ1zBbpnQcg5NdwrMfiaWX9By+e5ItV/4mXBX93uOSVk9cWCxIMiY2ZsnusxP1MpzXZ58QcOk5uugPpy/YO9jTeWJv7qifGksTm6lMGVGpL8U93r+Y/ZAHDx5QrVo1UECFSQ1Q2hrGPbPeOHLaZ0vWa/gUSZJo1qwZly8bZjd79eplTKEAwx3T6Sd+M5bYlfQSVs+U/Nh/Is/DX7L6yjaCY0IBw53ZCdWHJipV40tw5MgRhg4dGm/xfNmyZRk7dixlyrwfgD4KfsrWm//ES/kCqJyzLN2Lt06TPhw3/e8x/fjCtwGLzyvurDEELIMHD+b777//IgKWjRs3MmrUKMBQmGL37t3ky5cPSZaYcXKJ8Xea1yk3k2sMT/ciIu/ORLZu3ZpyvWqw4/Y+ANoWbkzrQo3S5Lxz585l5syZgKGQw4wZM+jQoUOSjiHJEgvPreHkk/MA2JnZ8GPt73C1/vDNiC9No0aNuHr1KgB37tzBxib5f3vXrl2jYcOGAHh4eHD8+HEsLT+egp3RiGDlKxeniaP70iHoXQ1fztrwOCbXGEHRPIm/QElLo1dM4rGNoWqKa5gNC/u+v3A2vSzZsZLDcRcB0Mfq+LH6KPLnTHoOd0Z22+8eEw/8iuJNwPI6kkFFOlO/Rr1EH+P0hTP8eGAeVl4Oxm1lrQszouHARF2EbPv7D1Ze3oRtgbe53aZaFWNqDaGQR74kvJpP0+q0/LhpFjekh8ZeOQBSgIbBFbtTvWTq9qCRZZmb/vfYcP4PHkY9ey89KSEKWUF2Kw9K5yxKQVdvHC3t0ei0PA9/yZlHF7kWcBsd+nj7SFo9ofcCCL0fSNSzUEMgBGTzzk6pBhWIcZEIjg01Pj+LjRsjKvUlu13SK5fVrl2b27dv414pF16tigJpeyd5/fr1jB49GgAvLy8OHDhgXEQvyzK/nV/Dcd9zAOhjdNxcdoaIJyHs27ePwoUL8zoygPEHZxrz1TsVbUGzAnXTZKyfiyRJzJw5k/nz5xu3OTo6MmnSJFq1avXe351vyDO23vyXi37xFzlntXWnd6kOyVqbkhQ+r+/w84lFxoAl8PoL7q69BJLMyJEjGTYsbWfmUurKlSu0bNnSOLM3b948WrduDcCO2/vYeH0HYGhK+EvdsThbpexmR2qIiYmhdOnShIaGYmpqyt7j+5l4Zs7bMsZNfkz1oH3Xrl307/8282DBggW0bNkySceQZZnVV7ax5/4RAExVJvxQYzh5nHKl5lDT3ZgxY4yzT1u3bqVSpUrJPtY333zDH3/8AaTuGpjPSQQrXzFJkui9+FsinQ1fEPoYLQMLd6FW6Y/npn9Oj/x8+e7ITyhNVOhjdKxtPxcr8/RP03j83Jfhe6YYm1eWVuTnu7ZD03lUaePha1/G7P4JLP8fsPhH0jF7Yzo0b/eJPWHlplX89foQlh6Gu0KyXqKtVyPalGuapDH4+fnx7ZzRSEUsjEGELMmUsS/M4Nq9sDRJefGFv0/tYc3Vbaic307n66K1lLUoxMg2Q9L8TmhITBiXXlznyoub+AY/I1IThYSMpdqCnA5ZyeOcm/zOXng7e3405SBWF8fZZ5c59OgUdwMffvB5H1Ijd0W6l2iT7JmrOXPmGFIMLEyoOK0hkkLGxtSKJU2nJyuX/GOioqKoWLEigYGG3gXbtm2jYsWKxsffXdBspjKlWLgncyYYbnjUqVPHWFr2XuAjJhz+FVmWMVGZ8Gu98XjYfFn9cd6IiYlh2LBh8Rp61qpVizlz5uDk5BTvuU9Cn7PN51/O+12Nt93JwoGWBRtQI3eFzzYDcOP/Acub3iOvzj7h4VZD8DRhwoR4F7kZiZ+fH02bNjUWLOjRowfTpk0DwOf1XaYem4csyyhQMKbqYIp7ZJxmqT/99BO//fYbYFjjpS9jaXwvfFuhFxVzlE61c929e5eGDRuiU0nY5HSgRduWtGzcnJz22XC0sE/UMWRZZtvNf9h+01CcQaFQMLJSP8pkLZZq48wotmzZwvDhwwFDGew31eWSKiIigmLFihEXF4e9vT0XL1784PrKjEwEK1+xYcvH4WcbDBgaI7Vyq0OH2q3TeVTv6zS3H1oPQ2pVJdNiDG2Rvl9aer2ejgv6IXsYLrzUgRLrB2Se9K+EPAl6zne7piFbGO7IxgREUjg8JxOHjUvwgy88PJzv507kZdZwTKz/f5c7TmJkpb6U80reuhdJkpi7fD4Hws5ik/PtLI0iTqaZd11al2mSrBKgPg9vMWP3QmJd438UWgWomNx69BddLOF52EsOPTrFySfnP1jp5o2SWYrQskB9vJ09U3TOe/fuUaNGDQAqDK2DMqfh/TG8Yh/KZy+ZomP/15vACAxN95YuXWp8zC/8Fd/t/8l48ftthd6UcitM5cqVefHCsCbn+PHjxhK9a65s5997hwAom604Iyt9eT0/oqOj6dKlC2fPngUMaTbjxo2jX79+8WZTnoW9YJvPv5x9fjne/o4W9rQoUJ+anhVTPbBMjGuvbvHziUXoJcPM4LMD93i65w5guLDu1q3bZx/TxwQGBtKiRQsePTL0iilTpgxbt27F1NSU4JhQRu/7yfh317pQI9oWzliNL/38/ChfvjySJOHm5sbvu9bx08mFAOR39mJKrZGpch6NRkPTji3QFTTFoYDbeyXfvZ08qZyzDJVzlvngmjG9pGfNle3sfXDUuG1g2a5Uz10hVcaY0dy5c4datWoBhpSwZcuWJes427dvZ+hQw43UdwPpL40IVr5SP26cxTXVA8Bwh7qKWXG+yaALwzcf/IM/gwwLwwjUsTWdF9qPWDqOZ/aGIE8fo2NG3bF4Zcn4TStT6mXYa4bvmIze3PCRoY/TEX7mFZ0qtKJBvQa4urry/Plz/vp3B7seHMK+lLvxS8kkTsn0xmPJ4ZjydVDXb1xn3LofMStmh1L9Nk1BESdTyb0UHSq1xMXK6SNHMDhz6wIrjq4nzC7WWKoZQBccR+dCLWhZtUmKx5pRyLLMs7AX3Aq4z4uI10TERSLLMvYWduSwy0ox9wI4WTp8+kCJVKVKFR49eoRDflcK9i0PpH4AEB4eTpkyZYiMjESlUnHkyBFj4KGX9Ew49CsPgn0BqJ+3Oj1LGmYClyxZwtSpUwHo2rUr06dPBwwzUkP/nURIbBgAP9f5Hk/HnKk23rQWFxdHjx49OHbMUJTE0tKSxYsXU7t2beNz/KOC2OqzixO+55F5+9XvYG5H8wL1qOVV+bP2/EjIqacXmH9mlXF8j/66wcsThoX+c+bMoW3btuk5PKPAwEA6duzIzZs3AUPDwL/++gtnZ2fidBp+ODKbh8FPACjmXoAxVQZnyBta7/b0WLBgASctfHge/hKAGXXHkssh5TdrRi4ch69DQLzP64SYqkyomKM0NXNXwtspN0qlEkmW8Hl9lw3X/uJx6DPjc7sVb02jfLVSPLaMSq/Xkz9/fqKjo8mWLRvnzp1L1nG6du3KoUOGmzA7duxIcK3al0AEK1+h5f+sYX/EGeOFZN7orPzYY3w6j+rD9Ho9rZf2xsTJkJYyvEhPyhdMnz+4GZvncVFxx/hzI/uqdKuXtMWBX7KAqCBG//0jkcoY4zZNeCwht1+jjdRg7myFQwFXVKZvU0c8cObHFt+napUlvV7P71tW8+f9fdjkjx+YyLKMVawZ+R29KJGrCF4euTFVmxAWEcbVhze4/uQWj+P8UNrHvyjTRWspps7L9+2+xcxUNA5MiUmTJhnKkiqg1qzWxKLBRGXCimYzUq0wwqJFi/jxR0Oz2o4dOxoX7QL8dWsvm27sBMDDxpUZdccZm4uGhYVRunRpoqOjMTc359KlS9jb2wOw9/5Rfr+8BYASHoUYU3Vwqow1rel0Ovr378+ePXsAsLW1ZcuWLRQtalgzFKfTsO3mv/x775Bx1gIMFb5aFKhHbc/KmGag5qt77h1h1ZWtxp/vrb9EwGU/lEolixYtMpZ1TS/37t2jR48e+Pr6AuDu7s7OnTvJli0bkiwx+/RyY1d4Z0tHfq47BluzjHltcvbsWVq1agVAqVKlGDx7BCsuGVIna3pWon+Zzik6/pJDazgceNb4s63ammpe5XG2dCQoJpQrL314Fvbivf0s1ObYW9gSHhtBlPbt941KoaRfmc6ZdkblXS1btjQGKdevX38vjfNTQkNDKV68OFqtFg8PD86fP58hA+bESN9yFMJnt/3oDvaFnjL2i3AOtuLHARk3UAFQqVTkN8vFQww5wetObkuVYCVOE8fBi0e59sQHUJDVyYOaxauQ3fX9qkV6vZ6Ja3/intlzFCrDH3uuGDe6tft6AhUwNINb3OZn5h9byYXA6wCY2prjVi6BO9B6mSZetelUtmWCHc9TQqVS0adjL9pHtGXB+sWc8L+ItbcjCqUChUJBtIWGyzG3uXz7Ntz+z84WoHynupY+RotbtD3jWg8nq2vSF5QL76tZs6YhWJFB9UoP7oZSo5de3KByzpT/7Wo0GlauXAkY8tbfXc/gHxXE9ltvc9oHle1mDFQA7OzsaNeuHatWrSI2Npa//vqLHj16AFDbszK77hwgIDqYKy9v8jTUjxz26VsV8VMkSWL48OHGQMXCwoK1a9caA5WrL2+x4tJGY9lcACtTS1oUqEe9PNXj/W4yigbeNQiPizQ2jvTuVApNpIawewEMHjwYc3Nz6tSp89nHpdfrWbduHdOmTSMmxnAB7e7uzubNm8mWzfC9sen6TmOgYqE25/sqAzNsoAJQrlw5ChQowO3bt7l06RKOkdZYmJgTo43l5JPzdC7aItnlgE/4no8XqHhEOzCjyw/x3nOdi7XgSehzDj06xTHfs8ZqhDG6WGIiYuMdL4ddVvqX6ZzpFtN/SLFixYzByrVr16hZs2aS9j948KCx4Wbjxo2/2EAFPmOwcv78eZYsWcLt27eJjY0lX758dOvWjQYNGnyuIXz1Dlw4wqYn/xoXKJv5K5g/8Od0HlXi9GvQnZGHf0RpouKVaTCRMZFYWyTvC0CSJOb9sZgToZdQ25rB//9+r4bc598jx9GHanBTOFIkSwHcbV24//IR5wOuoXQxQ/H/J9sHm/Nzv4mp9fK+KGZqU0bVGsCj4CesPruVu2GPkN/5DFRJSsq4FaVr+TY4W6Zt1RsbGxvGDviO2NhYNv+9lT03DxPlrMfS9ePvDVmS0fnHkt8qN0Ob98fd2e2jzxeSply5clhYWBATE8Odg9fJ3tlQXfDMs0upEqzs2LHDuKC5Xr16xvQvgLVXthvXqTTMWzPBNTidOnUydrrfsGED3bt3R6FQoFapaZyvtvGu/j93DzGwXMatnCPLMuPGjTNW+jE1NeX333+nTJkyaPVa1l79g30Pjhmfr1aqaZKvNk3z18HKNGOXLm1buDFhcREcfHgCFFCkTwWuzD1GlF8Y/fr1Y/Xq1VStWvWzjEWj0bBz506WLl1qbPgIUKBAAdasWUPWrIaA9p+7B9l5Zz9gCJSHVeyd4YNdhUJBjx49jGWM169eR/WuFdlz/wgavZbDj0/TNH/SA0PfkGf8dna1scJh9IVAfp0+39hP61057bPRs2Q7OhZtztlnl7n80ofHwU8Ji4vAxtSK7HZZqJqrPGWzFc80ZcUTo3jx4sb/Tk6w8iYlFAyfk1+yz5IGtmvXLkaNGoVaraZcuXKoVCrOnDmDRqNhyJAhDB6csql2kQb2aWd8zjPz3FJj80Klv45VfRdgYZZ2vSpSW+e5/dF4GD75krvQPiY2hn5LRxDr/j/27jo8iqsL4PBvJS7EE0iCBHcJ7k5wKO5avFCkBYpLcQrFikuLFC1e3N3dCRKCRolnZb4/tkzIl0ASiHPf5+nTZPTuMtmdM/fec778ss8abMNvPSej+oY+ND8nUhOJb8gbwqLDsTOzwcXKKU2/UAICAjh85ihnHlzALzKQMCkChVKJWqnC2siKvE65qFWyKp6Fk3eytxBb165dOXjwICig3u9tCdWGY6RUs6zZjK/K3iZJErVr1+bePcNwzI/HYd94fZfJxw3perOYWvN7g/GfPFejRo24evUqAHv27JFvDCI1kfTd9QthmghUShWLGv2aYgXyvoYkSUyZMoVFixYBht7GpUuX4uXlxdswf+acWSbPmQAo5JiXXqXbk83aJa2anGR6vZ7ZZ5Zy8b+UyopouDjjEFEB4ZiZmbFhw4YUG4MfFRXFyZMn2bdvH/v37ycgICDW+g4dOjBhwgQ5wcjeB0dYfXWzvL57qTZ45a2eIm1LbhEREXh6ehIcHIyJiQm7j/3L+LNzAXCysGdeg4lJeiqv0Wn4ad+vvAx9Axgyu01tOeqr0u9+i548eULlyoa6ZrVr12bNmjWJ3lev11OqVCnevXuHhYUFt27dwtg4/fWiJlaK96z4+/szevRouWu6aFFD9dvHjx/TuXNnFixYQO3atSlQoEBKN+WbdeLaaeZeXikHKvp30Szt+luGClQAGhepy1b/gwCcfnmJpCYKjtZE023xQPRZYy57xVsNBbLkxkhlhE/QS97pA1HZG8tDvT6mCYjkuzz16NSm7de8jEzH1MiU3OloIrKdnR2tGrWgFS3SuinftBo1ahiCFQksg40JtQhHo9dyyfcGVXOW++LjHjt2TA5UPD095ZtVrU7Lqisx8xw6FGv22aCoQ4cOcrCyfv16OVgxNTKldu4q7Lh3AJ1ex/5Hx2hbtOkXtzelzJ8/Xw5UFAoFc+bMwcvLi7vvHjLj1GLCog3FRo2UarqUbEWd3FUyRHHFjymVSgaV786k4/O47/cYyRjKDK7JuWkHiAiLoEOHDqxYsYIqVZKn/lF0dDTHjh1jx44dHDp0iNDQ0DjblCxZkrFjx1K2bFngQzrdPWy5vUfepk2RxhkmUAHD0MG2bduyZMkSoqKiOLzjAMWLFeL66zu8DfPn6uvbeGYrmujjbb69Rw5UQn2DKRSVQwQqXyBnzpzY2NgQFBTE9evXDSmwE/k3fPfuXd69ewdAxYoVM3SgAvIAmJSzbt06IiMj6dChgxyogKF415AhQ5AkKUnRopA0e88eYO6VVXKgovWP4vc2k7GxSn9PChPSskZTNP7/jWF1MOLs7YtJ2n/gkhFyoKLX6qliUpKNPyxnQueRjO4wjCX9f2PbD6v4rcYYqht54hpsh52fGTlCHWnlXI8tvZbTqY4IVAQhMT4esvD8zCP553Mvrn7Vcf/44w/554/nqvz78Bi+IYahYXntcyUYEDVp0gQLC8NY/O3btxMWFiavq5+3Bqr/5lkdeHSSaG30V7U5ua1cuZLp06fLv0+ZMoUWLVpwzucKk4/NkwMVZ0tHJtf+mbp5qma4QOUDY7Uxwyv3xfW/HiHJQkm5IbVRGqsICwujU6dObN++/avO8fjxY0aNGkXJkiXp1q0b27dvjxWomJmZ0bhxY/755x927dolByqRmkjmnVsZK1BpWbghLQo3+Kr2pIUuXbrI18iff/5JHY+YAHDfw2OJPs5D/yfsuGsYCqfX6vHZeoexo8cka1u/FQqFQp579u7dOznlemKcOHFC/rlatfRTO+9LpXiwcuzYMYB4J8PVqlULhUIRa1ydkHx+3/oHKx9vQW1hGCOq84tifsvJuDpmTeOWfRmVSkVB05gUwX+d2vSZrWObt3UxAY6GCZGSTk8z51r80KxXvNu6Z3Wj33c9mdPrVxb3/42ZPSbSqnozVCox7EsQEsvd3Z28efMCcPnAObIYGwqDXn91W55Em1Q3b97k9OnTgOGp44dx2IERwfINowIFPUq1STCpg4WFBc2aNQMMxSV3794tr7Mzt6HCfwXxQqPDOPU8aQ9GUtLGjRsZMybm5m/06NF07tyZfQ+PMefMcjR6LWBIlzutzghyJUPq2bRmaWLBqKo/xAzHs1VTeYgXCqUCjUZD//79mTBhgjyZODEkSeL06dN07tyZqlWrsnr1aoKCguT1NjY2tGrVilWrVnHz5k0WL15M2bJl5Rv6e+8e8dOBKZx+fgkwXHediregVeGGyfa6U1OOHDnkuh4vX77k7Q1fnP5LAX/99R18379O8BjR2mgWnl8jp532OXCfXm17kC2bSFzypYoXjyl4ef369UTv9/F9dWrN7UpJKR6sPHpkeKKWJ0+eOOtsbGxwcHDA398ff3//OOuFLxMQHMD3C37ktPaGnPVLehfNonbTMny2oz71u6HXGFJvvjEL4nXA2wT3uf34LsfeX5J/L6bIQ8fa6SNXvyBkZh96V/Q6PU5aGwA0ei1XXt38ouMtXrxY/rl3797yA4R1N/4hQmsIgGp5VEp0fZR27WKy+a1fvz7WugZ5a8g/731wlPSQ5X/btm0MGxZTqG/gwIH07tObddf/YeWVjfJNYtWc5RhepX+6n0SfFA4Wdoyq+oM8tE/npKLuiO/k9UuXLqV58+bcunXrs8fR6XTs2rWLhg0b0rp1a7kGBRh6UL777jvWrFnD1atXmTt3LnXr1pXnpeglPVdf3eLX4/MZe2Q2b0INw2xMVMYMq9ybxgVqZ9geLIDu3bvLP69etYq6eWKeyG++tTu+XWL5++ZOXoYYhn+FPA9E/VhDr17xPxQUEuf/J9knRkREBBcuXADAzc0ND4+vK/SbHqRosBIcHExUVBQWFhZyd/v/c3JyApDH1iXk7du33L59O9Z/H2fn+JZpdVoWbl9Gj7+HEewYJS+3eKdmdY/5ONs5pWHrkkf2rO5YBRiGtKlM1MzZ+cdnt9doNYzbNRO1uaF3ycQPRrdNnqq8giB83sdDwfyu+8o/n/NJ+lCwFy9esGvXLuC/eUmtWgFw3+8xJ54a0ntaGJvTtlji55eUKFGCggULAnDp0iUePnwor8tjn5N89oYv+efBvtx59zDeY6SWf/75h0GDBqHX6wHDjeXgoYNZcG61nIEKoHlBL/qX7ZIpsyZlt3Hlp8p9UCsNw3lDHTR0nt4HIyPD5/vVq1fx8vKiZ8+e8qR4SZIIDw/n4sWLTJ48mfLly9OnT59YN36urq6MGTOGS5cuMX/+fGrXrh1rjH+kNooDj44z5N+JTD2xkOuv78jr8tt7MKPeKMq4xjwBz6iqVKkiZ9Y7e/YsjqFWctrlMz6X8f4oYcP/u/P2AXseHAFAr9HxcP1VJk6YiImJqFn1Nb6kZ+X8+fNERRnuAatVq5ahA+gPUnSCfXi4Ydzsh6cS8flwIX/YNiEbN25kwYIFX9+4TOTB80esO7aZm6EPUdubYGRjeE/10TqK4MHYfj9n6Pza/69vrW7MvL4UhUrJI8mHgJBA7Kzir749etVklFkN74c2NJrfWk/KFH+4gpARlC1bFisrK0JCQji1/RgVSjfgfVQoV1/dIlIbhak68Tcyy5YtQ6cz9Kp269YNMzMz9Hq9XMQRDBObk1LTQqFQ0LZtW8aNGwfAhg0bGDs2JiV5/XzVeXDWGzAUKizslC/Rx04ukiSxdOlSJk2aJPfudOrUiZ9HDWfqyYXcfvsAMAxD6l6qDfXyZvzx6Z9T2CkfP5TvytwzK5CQeGz0krGrp7B67GIeP36MJEn8+++/ct0ZpVIpB3j/r0iRIvTr14+GDRuiVse9HfILC2Dfo2McfnwqVmFCMGTJapS/NnVzV800369KpZK+ffvKvXdLFiym9S+d5SxnK69sYmLNoXFeb0hUKPPOrZJ79p7tvUelYuXlYWXCl8uaNSvOzs68efOGGzduJGqSfWYbAgYp3LPy4YL+3Bv74cM3sV3sbdq0Ydu2bbH+W7t27dc3NoN56POY8X9No+W8How6PYu7Js9R28d88Uvvohlepg/jO43INB+kH5Qt7Inxf6O/VOZGTNw4M97tdp/ex2PzmHG2rT0a4OaYsYfBCUJGYmxsLE/uDAoMIpexoeZEtE7D1VefH67zsaCgIHmYlqmpKV26dAHgyJPTPAn0ASBHFlfq5E56VqjvvvtOfoq+efNmoqNjJtOXcyslz5O4+PJ6rMKKqSEyMpLhw4czceLEWIFKn+H9GXt0thyoGKuMGFa5d6YPVD6o4O5Jl5It5d/3vz3FtD9/Y8yYMTg7x66Z9P+BilqtplatWmzYsIF9+/bRtGnTOIGKX3gAC86vZsCeMey8dzBWoFLIMS/DKvVmXoOJeOWtnum+X1u0aEHWrIZ5rQcPHiRbpD0ulo4APPD3Zuf9g7G21+q0zDu3koCIIACCHr4j4IIvEydOTNV2Z2YfJtkHBwfz5MmTBLf/MLleqVRmmixsKdqz8mHoV2TkpydTfvhiMDdP3NhaJycneejYB/GlF8yMNFoNS3et5oTPBfQOShTGSpTOsdPR6f2iaZynNp1atcl0H6IfG1Tne2ZcXYrSSMULM38u37+KZ/6S8vo3/m9ZcWMjRnaG9Mwu77PQto1IZSsIqa127dry5PWQe/7wX428cz5XqeDumahjrF27Vu59b926Nfb29oRGhbHhxg55m26l2nxR7SM7Ozvq16/Pjh07CAgI4MCBAzRq1AgAtVJF3dxV2XhrF5IkceDRcToW/y6BIyaPU6dOMXr06FhD0wb9OIgiTUoz6vBMufCltYklw6v0I699rk8dKlNqkK8mgRHB7Lh3AEmSWHjpT0Y270f37t05duwYJ06c4PHjxwQGBmJhYUGuXLkoVaoUXl5e2NnFX6w2XBPB9rv72fPgiPz+gqGYZuXsZWiQrwY5M0HCgs8xNjamX79+chKHKZN/ZcLCKYw/8hsSEhtv7iSblTNl3UoQrdOw4Pxqrr82DMXXhEbxcN0VBg/8kRw50k86+4yuePHihjTwGIaCfW4Oyps3b+TU7sWLF8fWNv5RJxlNigcr5ubmhISEEBkZialp3Loeb98aHpE7OjqmZFMyNL1ez/I9a9j34gRqO1NwVvNxX5U2KIrsSheal2lI1dYVv4lhTmULl8b5+N+8sw9DqVYy9fAClmebjY2VDYHvg+i3dgRGLobrTe8fzYye49O2wYLwjapZsyYKhQJJkji/+xQeP3gSEh3GlVe3iNJGY6L+fP7/qKgoVq5cCRh66T9M2P371k5Cog3phitlL00hp7xf3Ma2bduyY4ch8NmwYYMcrADUzl2ZrXf+RavXcvjxKVoWbpik4WuJJUkSz58/5+TJk2zevJlLl2KSgljYWdJzTD/eWAVz6VpM4cEcNm4Mrfg9LlYZfz7il2hfrBmBEcGceHYejU7DlBMLGVShO3Xr1qVu3bqJPo5Or+Ow92k239pNcFSIvNzC2JwGeWtQJ09VbEytU+IlpEsdOnRg+fLlPHv2jNOnT/Pi2hOaFqzL9rv70Ul6Zp9eSjGXArwKeSv3Nuo0Ou6tukh2J/dYKcWFr/fxJPtr167RvHnzT26b2VIWf5CiwYpCoSBfvnxcu3aNx48fU7hw4Vjrg4KC8PPzw87ODgcHh5RsSobl8+YFwzdOQuusNAQq/9G+j8ZNcuS7Mg2pWrxSpu5F+ZTx7UbQa+NPGNmaorQ3puefQylqnY/rQfdQ/xeo6CK0jKo9EFPjjFUAUxAyC3t7ezw9Pbl06RIP7j+goU0bLry9TpQ2iiuvbibYu7JlyxbevDFkGKpfvz65cuXCO+AZBx+dBMBEbUKn4l/Xa1q5cmXc3d3x8fHh+PHj+Pr64upq6ALKYmpN5exlOPb0LGGaCI49OZssBf/0ej3Xrl3j7NmzXLt2javXrxFuFo1VTltM81hQqGQ5jCxNMLezRGmh5pJ0D97H7O+Vtzodi3+Hscroq9uSUSkUCvqU7US4JoJLL2+g1Wv57cwyOhX/job5aiX44E6SJK6+usVf17fFSs2rVqrxylud7wp5YWkcf3KgzMzExISRI0fKQceIESM4cPAAfuGBnHp2AQlJ7k0Bw4T6+6svEvosiNVblmf4AoTpzceT7G/cuPHZbTNrsJLid7gfKsseOnQozrpDhw4hSVKmekOT0+4z+xi0cyxa55h/Jr1fNI1tq7Gp+xLm9ZpG9ZJVvslABcDR1oH+nl3QRhi665UOxtw2fora6b9AJUrL94XaUCpfxs/SIggZWe3ateWf9c9ixv8fe3Lus/tptVq5SjtAv3790Ov1LLu8QZ7M26pwA+zMbb6qfUqlkrZtDQVfJUmKm8Y4X0xWsx13D8QaIpRUERERLF++nAoVKtC4cWOmzpjGtbB7uPUqSpF+FcnRoCDOZbNjW9AZS3cblBaxnynmtc/FxJpD6V6qzTcdqHygVqoYUqmXXARUkiT+vLaVGaf+wC8s4JP73Xv3iMnHf2fayUWxApUK7p7MqT+WziVafJOBygeNGjWicuXKALx+/Zqff/qZvqU70q1ka7mXSQGEeQdxfe4JAu++pX///pQr9/lirELS2dnZkT17dsBQa0qr1ca7nU6n4+jRowBYWlpSsmTJeLfLiBRSCiePf/XqFfXr10ehULBixQpKlSoFgLe3N507d8bPz48dO3aQP3/+Lz5HaGgonp6eXL58GUvLxGeCSU56vZ7uCwfyXhVO9xKtaVTR66uOt2bfena+O4bK2DAGWxuuoZZtOfo26fHNBiefsv/8YRZfXYeRbczQDF1QNP1Kd6aWpwiEBSGt3bt3T84MVLp0aVx7FsEvPACFQsHixlNjiv39nx07dtCvXz/A0PuxceNGDjw6wfLLGwBws87KjHqjkiVN76tXryhXrhw6nQ47OzsuXLgQK5PltJOLuPLSUB+mV+n21P6CyfwXLlxg8ODBPH36FAAzJ0vydy6NRbb4hxgpFUqymFjhYGFHQcc8VHT3THQNmW+NXtKz6dYutt3ZJy8zUhlRJUdZyroWx9nSkShtFI8CnnH6+UXuvnsUa/989h50LtGCfA4ZvyZFcnn58iV16tSRi2U2b96cWbNmYWxizNFzxxk+5GdePTdUVa9QoQIbNmyQ00gLyatPnz5y6vZDhw7JKdc/dunSJZo2NaRub9CgAcuWLUvVNqakFB0GBoa0a7/88gtjxoyhY8eOlCtXDmNjY86ePUtUVBRDhw79qkAlvfD2fUK4kw41Jqy8txmPrDkplKvAFx1rzpaFnI6+IQcq0rtofm08nII5Uj9tZkZQr1wtqpaoxIbDm3nu70tu55y0+e47jI1EV7QgpAf58+cnf/783L9/n0uXLtHwp1YcCj+NJEmceHqepgXjzi+QJClWmvoBAwYQHPmeDTe2y8t6erZLtnoiWbNmpXHjxmzfvp2AgAC2bNlCp06d5PUtCzWQg5XNt/dQOUfZJM1d2bRpE0OHDpWzU2XJ60CR7yuA2jBUSYGCMq7FKetWguxZXLE3t8HC2BylQjycSgylQknbok3JY5eLJZfWERz5Ho1OwxHv0xzxPv3J/ZwtHGhfvBnl3Up9E/M9kyJbtmzMmzeP7t27o9Vq+eeffzh9+jTZsmXj+vXrcoa6vHnzsnz5chGopKASJUrIwcrVq1fjDVaOHDki/5zZ0kanyqdg69atWbZsGZ6enly7do3Lly9TqFAh5s+fn2mqm+Zxz43iraFrTm1hzJi9MwgND0vyccb+OYWzulsoVYZ/GqO3Equ6zxOBSgLMTEzp3qAT4zuNoFPdtiJQEYR0RKFQxJoUGng9ZtjNgUfH0el1cfbZt28fd+4Yiu+VKFGCSpUqsezSBjmNbNWc5b5qUn18evfuLf+8ePHiWMMt8tjnxDNbUUP7I4LZee9gnP0/Zfny5QwePFgOVMo0rUTxfpXlQMXdOivT645kWOXeVM1Zjpy2bliZWIpA5QuUdi3G3PrjaJy/NmZGn56rmM3KmX5lOzOnwXgquHuKQOUTatWqxbJly+R5KG/fvuXatWtyoFKhQgW2bNmCjY1NGrYy8ytdurT887Fjx+Ld5vDhw/LPNWrUSOkmpaoUHwaWGtLDMDCA569f8OPOsaizGJ62Gb+FVX3nYaRO+GmDXq9n0NKRvLGNmUFp5WfM4t6zErW/IAhCeubj40P58uUByJMnD16TWnH11W0ABpbvTuUcZeRttVottWrV4tEjw1CdVatWYZLXmoUX1gBgZWLJb15jyJICGZpat27N6dOGJ/EzZ86kffv28rqX718zdN8kdJIeY5URM+uNJutnMnFJksScOXOYPXu2vKzFkPa8cQuT59x4ZivKjxV6JpgVTUi6CE0k11/f4YGfN++jQ1ErVLhYOVHMuQC5bLOLACUJ7t27x6xZszh69CiRkZHkypWLTp060aNHj3gLagrJS6fTUbx4cQIDA7GysuLmzZuxerJ8fX0pW7YsAEWLFmXfvn2fOlSGJB7bJKPsLm70K9kJfbThKWG0E3z/x2CioqM+u19oeBhdFg6IFahkC7ZlWd85IlARBCFTcHd3l4OVR48e4R4Rk65+570D6KWY4n0bN26UA5UyZcpQomIpVl6NqVTfu3SHFAlUAH766Sf559mzZxMREZMQIJu1C/X+ywQWrdOw4NyqeHuFwPAAaty4cbEClfaju/PaLVQOVKrmLMewSr1FoJJCzIxMKe9eis4lWzKgXFf6lO1Es4L18LDLIQKVJCpQoADLly/nwYMHeHt7c+rUKXr37i0ClVSiUqnk3pKQkBAuXLgQa/0///wj/1yvXr1UbVtqEMFKMqtdpgb17Sqj1xm+eMOddHReMgBv36fxbn/x7mW6rPqBKCfDl5eklygYnZ25vaaIifSCIGQqPXv2lH/euXIbHraGDDdPg15w7MlZAPz9/ZkyZYq83bDhw5h1egkRGkNx4ao5y1HWrUSKtbFMmTLUqVMHMGRB+u2332Ktb1u0iVzR+2HAU1Ze2cj/D1DQarUMHTqUFStWyMu6TOnDMzs/+XevPNXpV7bzFxWyFIS0olKpMDFJ/jpDQsJq1ozJSvjx/BRJktiyZYv8+3ffpU7h2tQk7oZTQI+GnalhXhq91hCwSE5qhh2YzM8rxnH+ziXeBLzl33MH6b1oCNOvLEXlYPjD10frqG1ZjgmdRqZl8wVBEFJE3bp1yZkzJwCnT52ijFlM7a111/8hOOI9Y8aMkbMPNW3elDPamzwNegGAs6Uj3Uu2SfF2jho1Sh6jv3jxYq5cuSKvM1Wb8EP5bqj+m09y8PFJ/ry2Ve5hCQ0NpUePHmzatAkAIwsT2vzWk0emL+VjNC1Ql26lWos5KYIgJFr16tXlh9h79uyR58DdvHmThw8fAlCuXDly5Mh8GQPFJ2UK6d/se9q61kcbZsjHrzY34qnlW2bfXMEPB8ex6tk2Au0jUKoN/wTawCi+z9eG3o27pWWzBUEQUoxKpYpV3Xrp5IWUdzOksw+JDuOnbZPYvW8PAHbZHHBsmptLLw1F0EzVJvxcuQ/mxmZxD5zM8ubNy+DBgwHDcK7vv/8eX1/fmPX2uehXtov8+54Hhxl/dA5Hbp2kWfNmHDp0CCMrE9xr5aPq5Ma84K28bduiTWhfrJkYhiQIQpLY2trKdQl9fHzkifYf9+C2bNkyLZqW4sQE+xT25OVTxm6dTqSDhEIZ98tJH63DOcyGie1GYJ/FLg1aKAiCkHo0Gg316tXj/v37ADRu3RRtVQveR4cCEBUUQciTALKVzEE0hmxcxiojfq7cl2IucdN1pmQ7W7RoweXLlwHIlSsXq1evJk+ePPI2Bx+dZOWVv9F9NN9Gr9Gh1+pRm8Web2imNqVfuc6Uc8s8hdoEQUhd//77rzyctnjx4kyZMoXGjRuj1+uxsbHh3LlzWFlZpXErk58IVlLJ5XvXWH9yC68i3qFFhwlG5LPzoEONlni45krr5gmCIKSamzdv0qRJE6KjowGwdLehUO/yGJnHnWhuZWzB0Eq9kz1NcWL4+/vTpEmTmCKOZmZ07doVLy8vnJycePv2LfsuHeaK4j5qm0+P4y/vVoouJVtib26bSi0XBCEz0ul01KtXj7t378ZZN2LECH744Yc0aFXKE8GKIAiCkOoOHDhAnz59iIoyZEs0tTcnV7Mi2BVyAQUYKdVUyl6GjsWbY22adk8KfXx86NatW7w3BzKlAocS2bAr5EzWgu7Y29tjb2FLfofcVMtZjmzWLqnXYEEQMrXz58/TunXrWHWgihUrxo4dO+S5dpmNCFYEQRCENPH48WM5HWq2bNno2LEjRUsW431UCHZmNhink5S+4eHhTJ06lbVr18q9Qf+vUqVK/PTTT5QpUybe9YIgCMnlwIEDTJgwAV9fX2rVqsXMmTOxs8u8UwlEsCIIgiAIifD69WsOHjzIjRs3CAsLw9LSkkKFClGrVi3c3d3TunmCIHxjJEn6JpJ1iGo+giAIgpAILi4udOrUKa2bIQiCAPBNBCogUhcLgiAIgiAIgpBOiWBFEARBEARBEIR0SQQrgiAIgiAIgiCkSyJYEQRBEARBEAQhXRLBiiAIgiAIgiAI6ZIIVgRBEARBEARBSJdEsCIIgiAIgiAIQrokghVBEARBEARBENIlEawIgiAIgiAIgpAuiWBFEARBEARBEIR0SZ3WDUgOkiQBEBoamsYtEQRBEARBEAQhsSwsLFAoFJ9cnymClbCwMACqVauWxi0RBEEQBEEQBCGxLl++jKWl5SfXK6QP3RIZmF6v5+3btwlGZint7t27dOzYkbVr11KwYME0a4eQfolrREiIuEaEzxHXh5AQcY0ICUlv18g30bOiVCpxcXFJ62Zgbm4u//9zEaLw7RLXiJAQcY0InyOuDyEh4hoREpLRrhExwV4QBEEQBEEQhHRJBCuCIAiCIAiCIKRLIlgRBEEQBEEQBCFdEsFKMnJ0dGTAgAE4OjqmdVOEdEpcI0JCxDUifI64PoSEiGtESEhGu0YyRTYwQRAEQRAEQRAyH9GzIgiCIAiCIAhCuiSCFUEQBEEQBEEQ0iURrAiCIAiCIAiCkC6JYEUQBEEQBEEQhHRJBCuCIAiCIAiCIKRLmSJYkSSJ0NBQRGIzQRAEQRAEQcg8MkWwEhYWhqenJ2FhYWndFEEQBEEQBEEQkkmmCFYEQRCEpNPr9aJHWhAEQUjX1GndAEEQBCH1vHv3jmXLlrH/2EECVSFkcbMjh2t2mtVszHeVG6NUimdYgiAIQvqRKSrYh4aG4unpyeXLl7G0tEzr5giCIKRLmzZtYtKMydhWccOptBtKtSrWemOtiv5VulEhu2catVAQBEEQYvvqR2jbt28nf/78nDlzJt71fn5+TJw4kTp16lCsWDFq1arFzJkzxfwSQRCEVCJJElOnTmXCkqnk6Vsal/I54gQqANFqHXPOLmfpxXXoJX0atFQQBEEQYvuqYOXGjRtMmjTpk+vfvn1L69atWbduHaamplSvXh29Xs/y5ctp164doaGhX3N6QRAEIRGmTZvGpvM7KNSzHEaWJgCYqkxokK8mA8t1p0CYG4H338rbH/I+xdJL68V8FkEQBCHNfXGwcuTIEXr06PHZgGPy5Mn4+vrSq1cvdu3axbx589i/fz/169fn/v37LFiw4EtPLwiC8Fl6vZ53wf68C/YjLDr8m73xXr16NRvPbSdvu5IolAoAPLMVZX6jiXQt2YrKOcswsfsoOuZswsMNV5F0hh6VI96n2X3/cFo2XRAEQRCSPmflzZs3zJ07l3/++QdTU1MsLCzw8/Nj1apVVKxYUd7u+fPn1KtXD2dnZw4ePIiRkZG8LiQkhGrVqiFJEmfPnsXU1PSrXoSYsyIIgiRJ7Dm+jz03DvKGABQ2RqhMYnKI6KN0GEercDdzoYFnXSrlK4taGXcoVGZy5coVug7/nnzdSqNUGZ5NNchbg84lW6JUxH1WNXjwYI48OEX+zqUBUClVTK71E7ntcqRquwVBEAThgyT3rMyZM4dt27ZRuHBhNm7ciIeHR7zbnThxAr1eT7Vq1WIFKgBWVlaUL1+e8PBwzp8//2UtFwRBwBCkrNv1N82md+LPNzvxd45A7WwWK1ABUJqo0FrBE/VrFl7/k/Z/9WP6rnkEhAelTcNTWGBgIP2H/UDutsXlQKVunqp0Kdkq3kAFYOLEiRi9kXhx5CEAOr2OPy78hU6vS7V2C4IgCMLHkhyseHh4MH36dDZv3kz+/Pk/ud2DBw8AyJcvX7zr8+TJE2s7QRCEpHr56iXtJnTnn5CjmOSyirVOGxyN9CYa6VUU0S/CiAoIR9J/1JFsquRy+F16/zOcGXsWEB4dkcqtT1k/jxhOljqu8hyVEi6F6V6yDQqF4pP7WFlZ8dNPP/F87z1CfYIAeB7sy6HHp1KjyYIgCIIQR5LrrPTq1StR27179w4AR0fHeNd/WO7n55ek8799+1Y+9gfh4eFJOoYgCBnf6QtnmHJ4PhYFbeSnLlK4jpJWBelQtSU5nNxjbR8dHc2lG5fZcfZfbgc/xMzDGoVKiUKt5FLobbr9PZgeJdtQt2iN1H8xyezAgQPc0j3G3cPwsMjWJAsDy3dLVA2Vli1bsnTpUry33aTYoCoA/H1rJ5VzlMHC2DxF2y0IgiAI/y/FikJ+CCA+NR/lw/KkBhobN24UE/MF4Rv375H9LLq1FgsPGwAkvUQJs/wM/a4fpkYm8e5jbGxMxdIVqFi6Anq9nm3/bmftha2o81miVCuRTBQsv7OJIw9OM77JMEyNvm4uXVoJCwtjwpzJuHYqCIACBUMr98LSxCJR+6tUKgYOHEi/fv14e8kHp9LuhEWH8+/Do7Qs3DAlmy4IgiAIcaRYsKJSGSaufmrIwYd5/UnN0NOmTRtq1qwZa1l4eDgdO3b8glYKgpDR7Dm4lz9ur8M8q7VhQaSeYZV7Uy53qUQfQ6lU0rLhd3xXvxl/blnLpod7scxjC4C31pce64YwscHP5HbKmQKvIGXNmDkDq2pZ5Xkq3xWqTz6H+OcWfkrDhg1xdXXl+b77OJZ0RaFSsuf+YRrkq4m5kVlKNFsQBEEQ4vXVRSE/xdzcMFwgKioq3vUflpuZJe2Lz8nJicKFC8f6r2DBgl/XWEEQMoRL1y7zx82YQEURKTG78dgkBSofUyqVdG3dmXX9/sD8jh5tpAYAjZnEiANT+ffGkWRre2q4efMmu28dwjqXHQAOprY0L+SV5OOo1Wq6d+9OVEA4by+/ACBME8GBRyeStb2CIAiCkJAUC1acnJwA4swv+SChOS2CIAgfe/HiBWP+mYa563+BSpTE7KbjcLdz/epj29rasmr8YhqYViLidYjh+EZKVt7ZxJIjazJEjRatVsvwsSPI0bCAvKxf+c4Yq4w+s9entW3bFhMTE14ceii//gOPDFkeBUEQhM97//49ERGZK3FLWkmxYOVDFrDHjx/Hu/7hQ0NqzM9lFBMEQQDQaDT8MO8nrAo5ACBp9PzqNRw3m6zJdg6FQkHPNt2YXPtnwu4GyMsOvzvHmC3T0v1N+qpVqwjPq0RtbgxAJffSFHEukMBen2ZjY0P9+vWJ9Asj8K6hur1feACXXt5IlvYKgiBkNo8ePeLnn3+mdOnSFCxYkLx589KwYUP27t2bIR56pVcpFqxUqWLIInP06FF0utg5+kNCQjh//jzm5uZ4enqmVBMEQcgkxs//FXXJLPLvfUt3Io9TrhQ5V/HCxVgzYCG6W6Hysgf65/T7aziRmviHtaY1X19f/ti6HCdPNwBMlcZ0LdXqq4/bpk0bAF6d8paX7X907KuPKwiCkJlEREQwbtw4qlevzrp163j16hVgmJd97do1vv/+e0aMGBHnflhInBQLVlxdXalRowYvXrxg5syZckQZHR3N2LFjCQsLo23btqLivCAIn3X4+BFumHijUBqSdVSyK0XNApVT9JwODg5sGLMCO29j9DpDj0qAaSg91wwhMCwoRc+dVJIkMWrsaFwbxdS06lKqFVlMrb/62JUrV8bV1ZWg+++IeBcGwM0393kR/Oqrjy0IgpAZ3Lx5kzp16rB8+XL5XtfMzIzy5ctToEBM7/batWuZPHlyWjUzQ0uxYAVgzJgxODk5sWrVKho0aMDAgQOpV68ee/fupXDhwgwYMCAlTy8IQgYXERHB7AN/YOZgSLubRWvOD7V6pMq5jY2N+WPEXIqHesgT76Ot9PRe/zNP3jxLlTYkxr///st9nmHmaHjwk8cmBzU8KibLsZVKJY0bNwYpdu/KgcfpY6K9X1gAhx+fYs3VLay+sontd/dz3+8xeil9D9kTBCFz2LFjB82aNePJkyeAoSzH8OHDuXr1Klu3buXQoUPMmTNHzpC7dOlSDh06lJZNzpAU0lcOouvUqRMXLlxg1apVVKwY9wvyzZs3zJ8/n2PHjhEcHEy2bNnw8vLi+++/T7ZeldDQUDw9Pbl8+bLoqRGETGTsgkncc3wJgKSV+L3xeLJZu6R6O1Zv/4sdfkcxsjLUcNGFahhRuR9l8n9ZFrLkEhwcTN0W9XHvVhSlWokCBbO8RuOeJVuyneP69es0aNAAlama8pPqg0qBlbEFS5pMQ61Ksez3n/U69B1/XtvKZd8bSMT9CnO1cqFVkUZUcC/1yfT5giB8G/SSnjtvH3D99V18gl8SponA3MgUJwsH8jvkpmTWwkkueKvX65k+fXqsun8lS5Zk7ty55MmTJ872q1evZtSoUQDkzJmTo0ePYmxs/HUv7Bvy1cFKeiCCFUHIfB55P2bw7vGYORv+phu51qBz5dZp1p6DZw6z4NqfmNgbvtR0kVq65vuOxhXqp1mbhgwdwm07H7LkMSQeaFqgLh2KN0/Wc0iSRMWKFXn+/Dn5O3riUMqQfW1Ypd6UdSuRrOf6nDt37nDy5Ekea1/w3D4AvSLh3pOK2UvTu3QHzDJogU9BEL6cJEmcenaRLXf28Crk7Se3M1KqKZmtCPXyVKOIU/4EH3CEhIQwYMCAWD0kbdq0YerUqZiYxF+UWJIkWrduzZkzZwD49ddf6dq1a9Jf1DdKBCuCIKQ7kiTRfnwPdIUMH/xmkUas6jwXpSJFR64m6OaD24zZNwNjZ0PAotfoqGNTgd6NuqV6W06cOMHgeSPI3ao4AHYmNvzeaAIm6uR/WjdlyhQWLlyITT5HCvepAEDpbMX4uUrfZD/X/3v58iUTJkxg9+7duNXJR476MWPAjXQqmhSpS2HnfBirjPEJfsmJZ+e5++6RvE0+ew9+qToAc2NRzFIQvhVBEcH8fm4lt98+SNJ+OW3caJy/DhWze6JSquKs9/b2pnv37nJGW5VKxdixY+nRo0eCQc61a9do2LAhYCjbce7cOUxNE36QEhz5nou+N3jg7413wHP8IwKJ1kZjojYhm5UzBRxzUyVHWXLYuCXptWYkIlgRBCHd2bJnGxv8/kVlqkaSJMZV+ZEirl+ehjc5vXz7ioHrR6HMagikJL1EoegcTOgyMtXaEBgYSP0WjXDtUgiVqWEo1uhqAynmkjIFcm/dukW9evVAARUnNURhrkKpULK4yVRskmEi/6c8evSINm3a8Pr1a1wq5iR3y2Lyulenn/J0120qlCnPmjVrYhUYPvP8MksvrSNcY6hxkN/eg7E1fsToC2vOCEJKCAsL4/r160RHR5M1a1by5csnhi0mg8cBz5h1agn+EYHyssJO+ajlUYmCjnmxNrEkXBPBsyBfrry8yWmfywRHvo91DEcLexrnr03NXBUx/u8B0PHjx+nbty/BwcGAIb37H3/8QdWqVRPdtu+//569e/cC8Pvvv9OyZct4t4vWRnPp5Q1OPD3Ptdd3EjUPr4xrcTqVaIGLZearXyiCFUFIZfeePGDFwb94Gu6L1kwCpQJFlIS13oLKHmXoWKcNpibf7rCV8PBwWs7oimVBewDyqbMzuUXqBQKJERYRTt9lw4h0jvn4tH9rzvy+01GrU3YehyRJdOveHd+c77EtYCi+WyNXRfqW7ZSi56xcuTJPnz4lZ6NCuNY0jMnuXKIFjfLXTpFz+vr60qBBA/z8/MiSx4HCfSrIGeEcX1uwc9ZGufZNzZo1WblyJUZGMcHI08AXTDr+OyFRhhTUNXNVpHeZjuJmUEhzjx49YubMmRw4cIDo6Gh5ea5cuRg0aBAtW7YU1+kXOvXsAn9cXItGZ0iKYm9mS68y7SmZtcgn99HpdVzwvcbOewd5HBA7eYq1iSVeearzaP8tFs5dIH/m5MuXj5UrV5IrV9JS6F+8eJFmzZoB4Onpyc6dO+V1eknPvXePOfHsPGd9LhOhiYyzv0qhxMHCHlO1CeHR4bwLD4i13kxtSt+ynSjvnrbzKZObCFYEIZU8f+XDhE0zCHaIQqmO2738gTY4ilIWhRjWcsA3GbT8Mmccj7L9N744Ss+K1rOxMk1/f9d6vZ4fl//C6yzB8jKVj5bfu03ByT7lnmwtW7aM5SfXkaOhoRcli7EVcxuOT/IE0aSaMGECS5cuxczJklIjagKQy8ad6fV+SfZzaTQaWrZsyaVLl1CZqin7S12UloYgsEmBunQs3pzz58/TuXNnQkMNwciAAQMYOTJ2UOsd8JyxR2YR/d+Ny4ByXamas1yyt1cQEkOn07Fw4UJmz56NVqv95HY1a9bkjz/+EPczSaDX61l/cwc77x2Ql+W392Bo5d6J7v2VJIm77x6y494Brr66HWudNlLD6zPPeH3mKdXLVGHevHlf9O8jSRK1a9fm3r17ABw4cAAbd3tOPbvIiWfneRfmH2cfezNbquQsS6msRfGwdZd7egDeR4Vy+tlF/rm7j6CPeod6erajbp7E9/ikdyJYEYRUsP7AZjY//1fOJvWBLlKLpJVQmavlp8YfaP0i6VSsBc2rNErNpqapew/uMWzfZMydrQD4Lmc92pZrlraNSsDkjbO5QcwciciXoQwu35MaFaol+7mOHDnCDxOHUKh3efl6ScnhXx87d+4cLVq0AKDq+MborA3n/81rLG5ZsibruebMmcOsWbMAKN69EpZFDL1sRZzyM7r6QHnu0tmzZ2nXrh0ajQaFQsHWrVspVy52MHLq2QXmnVsFgIWRGbO9xmJnbpOs7RWEhERERNC3b18OHjwoL3NwcKBevXrY2dlx8eJFzp07J68rUaIEa9euxdbWNi2am6GER0fw+7mVXH11S15WM1dFeni2/eKhnw/fPeH3f5fwxigozndzYcd8VMtVnlLZimJtkvR7zlWrV/Hr3KnYF8tGvlpFiTKNG7iaqk0o71aKqjnLUsgpX4LzNSM0kSy9tI7Tzy/Jy/qW6ZRsaezTmghWBCEF6XQ6RqyYwFPLNyhUhg8bfbQO1yh7OldtQ6m8xVEoFLwPC2Hz8e0ceHQCyTlmGJGkl7D3N2dmt4lYWWTua1uSJFqP6oKiuKGmikWUCSs6/Zbmk+oTY8WBtfz77iRKtaGt0SGRlNEWYMT3w+T8+l/r4sWLdBvQkzzfe2L8X9DbqnBDWhVJnWBWq9VSvHhxgoKCyFm7AK4NDEUomxf0ol2xpsl2Hl9fX6pWrUpkZCQ2Hg4UHmD4sjU3MmOW12gczO1ibb9w4UKmTJkCgIeHB0eOHIk1HAxg3tmVnHp+EYCybiUYVql3srVXEBISGBhIly5duHz5MgAKhYL+/fszaNAgzM1jekQPHjzIjz/+SFBQEAAVKlRg/fr1IsXtZ7wMecOMk3/wMuQNAEqFkq4lW1EvT7UvGkqn1+vZvXs3s2bN4vHjx5jam+NaIw/OZbOjUMf+LlIoFOSzy0VBp7zksnUnp4079mY2sXo+9JKekKhQfN+/xif4FY8CnnLj1V0Co4L//9QoFAqKORekWs5ylHYtjqk6/sxinyJJEutvbGfHf71LKqWKsdUHUdAxb5Lfh/RGBCuCkEJe+73hx79Go88WE3wo/XRMbPoz+dzi5mH/YOfpvay5vhWVfcwHntY/iiGVvqdy8Qop2ua0tP6fv9n6/rA8qX5CtSEUypov4R3TifP3LzPr9BIUFobgRK/To73xnkmdRlG08KfHSyfGqVOn6P1jXzy6lZQLZBZ1KsCoaj+gVKZeMDdw4EC2bt2KkaUJ5SZ6ISHhaG7H/EaTki2o7NevHzt27AAF1Jr8HZFmhqeO3Uu1wStv9Tjb63Q6mjdvLt8ITpgwgZ49e8baJjQqjMH7JsqTaMfVGExhp4xzbaW0a9euceDAAe7du4darSZHjhw0btyYokWLirkTX8nX15cOHTrI2aMsLS1ZtmzZJydl37t3jzZt2uDn5wdAu3bt5F5GIbbzL66y6MKf8twOS2MLhlTsSRHnpCdjCQ8PZ9u2baxcuZL79+/Ly5VKJZ07d6bf4P5cfHeTo95neBX66TTIYJg38iGTWJgmnIRus7OaOFK3YDUqZi+NrVmWJLf9Y5IkserqJvY9PAZAFhMrZnuNwdrU6quOm9ZEsCIIKeDo5RPMu7AKI7uYOSduYfbM6DI+UYX0NFoN49dN577aR35ar4/WUUKRl1/aD03VG9TUEBISQutZ3bEqZKgXUsA4JxObD0/jViVdQFggP22ZSIhpzMTIkGeBlKEAQ3sPJkuWpH0R6fV6li9fzqzFcyjwfVlM7QxPYV2tXJhUexiWxhbJ2v6E7Nmzh169egFQZ3wLwq0Nc0Em1BySLE/v7t+/T82ahvkwOSrmxa2lYXibu3VWZtQbFW8qUYgpXAmQJUsWzp49G+e9PuJ9hsUX/zIc28aN6XVGZrq/o6S6e/cuo0aN4vz587GWq0zV2BZ0plDFopSrVB4XOyeKOhekoEOeb/49S4qHDx/Svn17Xr40FLZ1dHRk7dq1FCny+YcXV65coVWrVkRGGj5HFi9eTOPGjVO8vRmFVq9j/fV/2P3gsLzMPUs2fq7cB+ckZMIKCwvjxIkT7N69m4MHDxIWFhZrfZkyZZg4cSLFisVkIZQkift+3lx6eYMrL2/y4v2rJLffWGWErc6ScztP4X/9JR2/a8/EiROTfJxP0el1TDmxgJtvDPNiyrqVYGjFXhn6wYMIVgQhGUmSxKy/53FOcwuViSEo0UVqaZy1Bl3rtk/y8Y5ePcn8c6tQ28V0Bxu9kfitw0Sc7Z2Srd1pbdj0kTzPGWT4JVpiRetZWH3BWOD0QKfXMffAUs4FXpfHOus1OvzOvqBR3lp06dAZR8eEv1CvXr3KxIkTeRz1gjyti6M2MwxtcrJwYELNIdibp/5Y9tDQUIoWLUp0dDR5axXBqaEHALU9KtOrTIevPv4PP/zAtm3bAPCa2YYQlSH18Igq/SmV7fM3eIMGDWLLli0A/PzzzwwaNCjWer1ez8iD03gS5ANAr9IdqJ278le3OSOSJIkVK1YwefJkNBqNvFxlZkT2evlxLpdd/vz6mKu1C91Ktk6VOVIZ3bVr1+jYsSOBgYb0uTlz5mT9+vXkyJEjUftv2rSJwYMHA4YUuQcPHiRbtmwp1t6M4nmQL4su/Il34HN5WWKKv0ZGRvLo0SMePHjA7du3OX/+PDdv3ow30YGnpydDhgyhWrWEh5L5hQfwJNCHJ4E+vAh+RVBkMCFRYegkHQAWRuZYmliQ1dIJtyxZyZ7Fldx22YkIi6B48eJy2uqLFy8mazARFPmeofsmydkQM3pyERGsCEIyCQgOZPCqUURkjfmT0gdGM7r2j5TIU/SLjxscGsywNeMIdoiSl2mCouhVvB31y9f5qjanB9duXGfM8VmYORn+dlt6eNG6TPLNgUgrN1/eY+bRRUSqY24Go0OieHP6KQWMc1K9YjXKlCmDu7s7VlZWRERE8OzZM86dO8fOnTu59eIu2b0KYFfYRd7fPUs2Rlcb+NVDBb5Gx44dOXr0KEpjFVWnN0UjabEwNmdpk2lfVcfk2bNnVK5cGb1ej3tpD7K3NwQnHrbZmVpnRIJf5E+fPqVKlSro9XpsbW25cOFCrPkAAHfePmT80d8AsDXNwryGE5O1iGZw5HuOPjnLA/8nSJIeD9vs1M5dJU3/vf6fVqtl3LhxrF69Wl7m4eFBs76tuGXyjDBteILHaFu0Cc0LemXoJ7Up6cSJE/To0YPwcMN7WaRIEdauXZuohxQfSJJE37592bVrFwBVqlRhw4YN3+x7rtXr2HnvAJtv70GnNwQCKqWKLiVaxpqfotFoePLkCXfv3uX+/fs8ePCA+/fv8/TpUzntcHxsbGyoX78+nTt3jtWTkpI+fJaCIStY4cKFk/X453yu8NuZZYBhzt/cBuOxMbXG19eXf//9l4YNG5I1a/ImR0kpIlgRhGSw+/Q+VlzbiJFDzJMdywAj5nb+FWuL5Bkr+seulRwKOCsXAdRr9RTQuDOx8y8ZdmiGTqfju1EdMClp6CWwjDZlecfZGWJSfWJEaqNYeXYDx16ch49ekl6rJ/iRH0H33xL+JgTN+2gkSY+xtSmWbjbYFXHGKkfsieQVs5emT+kOmH7m6WFqWLNmDb/8YkhX3GRSe/wtDE/uhlXqTVm3El983EmTJrF48WIAvKa1JsQ4MsnHHTBgAP/88w8A48eP5/vvv4+zzaxTS7jgew2A9sWa0axgvS9qr16v586dOwQEBODm5sZrdQBLLq4jQhu7NoKJypiWhRvSpECdNL/R1Gq19OvXjz179sjL+vTtg0fDIux4EJPy1URlTAXXUhzfcJCr5y5j5myFe/W8mLvFpID9kEJaiG379u0MHjxYrp9SoUIFVq5cibV14tLn+gS/5PyLq9z3e8ybED98fH2ICAgj2NufXl5d6Naic0o2P116HuTLwgtreBLoIy9zs85Kv7KdUQbruXjxIhcuXOD69es8evQoVm/h5+TNm5fy5cvj5eVFxYoVUz2RwerVqxk1ahQQf29wcph3bhWnnl0AoGqOcvQv14U6depw9+5dKleuzMaNG5P9nClBBCuC8BWCQoIZsWYC/nZhsbJ9VbIowY/N+yb7zcm1hzeZdGAOKoeYYWGqNzpmtBmHu7Nrsp4rNcxdMZ9TJjdRGqmQ9BJTaw8nj2PSimxlBK9C3rLy/N9c97sLSbwkbE2z0LVUK8q7lUrzm12AV69eUbp0aQBKeJXFoq6h56ecW0mGVur1RceMiIigdOnSBAUFYZ/fmQK9DcMV3K2zMtNrdKKD13v37lGrVi0AXFxcOHPmDCYmsTPqvAh+xdD9k5AkCQsjM+Y3mpTkuT+7du1i0qRJ+Pr6AuBaKw85Gxb67D5VcpSlb5lOiZqzlhL0ej0//vgjW7duBcDIyIhp06fxyj2Usz6X5e1KuxanZ6m22JnbEBUVRffu3Tl27BgooHjr8liWixl+2tOzLXXzJH+K7oxIr9czffp0FixYIC+rV68eixYtwtT08w8YdHodp59fYt/DYzwKePrJ7SRJoqKrJz3Ltsuww2STIr7eFIVCQTmbYoRefMeBf/fz5MmTBI9jampKnjx5yJ8/P/nz5ydfvnyULFkSBweHlH4Jn+Xj40P58uUBKFWqlNyLlpzeR4Yw6N/xhEUbevlau3gxqH0/AGrUqMHatWuT/ZwpQQQrgvAF9Ho9C/9ZxpF35zCyjfki0gVE81O1PpQvVCbFzh0RFcHQVWPxsw2Vl2nfR9OpQDOaV8k4kzB9fHzo9ddQrHIbamiUzVKUYV790rhVKettqB97Hxzl1JMLvNeGfnbbHDZu1PKoRM1cFWOlwkwP6tevz40bN0CpoN7vbQnVhKFWqlnWdPoXFafcuHEjQ4YMAaDWL82IdDAM1/iScdbdu3dn//79gKFeS+vWreNss+j8nxx7ehaAZgXr0b5Ys0QdW6/X8+uvv8o9QADO5bKTp00J+Xf7MEtGtxyKkVLN7vuH2f/oOBKGr9nKOcoyoFyXVO85lCSJX375hT///BMwBCrLVy7nivEjLvleBww3gR2KNadx/tqxguKQkBCaNm0qZ0hqNqQt79wMNz4qhZLJtX8mt13i5mFkVkFBQQwaNIhDhw7Jy9q3b8/UqVNRqz8dnOr1es74XGLz7T28CombYcpEbYJaqZJvND9wsrDn58p9yW6T8R5QJVZ8vSlWkhkvtt/n1slr8e6jVqtjBSUf/suePXuypZBPbrVq1eLevXsoFAquX7+Ovb19sp/j4KOTLLu8HgB1uIITY3ci6SUWLFhA8+YZo3dUBCtCkjx79ZydZ//lwTtv/COD0Ki0IIGJZERWS2dqFa5C3TI1M+ywpMTYfXofqy5vQuUc88RWr9WTW5ONCe2HY2qcOsN0Vv+7jp2vjqK2MMwTkHR6ckW6MKXLmDR7eptYer2e9mO6oy9mBoA6WsHKdnOSnFc+o5IkiWdBvjwJfM7LkDe8/28SZBZTK7JZOVPAITcuVuk3gcLHRRs7zOjFU/VrAHqX7kCtL5i03rRpUy5duoSxtQnlxnuhRyKLiRWLGv+a5HkwFy9epFmzZgAULFiQgwcPxumRehfmz6C949HqtRirjJjfcFKi5pVMnz6defPmyb9XaVoDfVUrubfs6Z47+B5+ROfOnZkyZQoKhYILL67x+7mVaHSGoSmN8temc4kWSXpNX0OSJH799Vf++OMPAFQqFQsXL+KW5VO5SreRUs3QSr0olS3+uXUPHz7Ey8tLzk41YMnPXA0zZBrKaunE9Hq/fDN/u//v7Nmz/PDDD7x6ZcgKpVKpGD9+PN26dftkT6he0nPO5wqbb+/B9/3rWOty2rhRI1dFPLMVxdHCHoVCwf2nD+g+oR/OVXOgNjc8uLAwMmN8zSHksHFL2ReYyvSSnp33DrLx1i65NwUJ/M748GDHdSRtzLwTpVJJuXLlqFq1KuXKlaNYsWKYmZmlUcu/zJQpU1i4cCEAc+fOpVWrVsl+Dr1ez+jDM+Veu6e7bhN21Z9Lly5lmPdLBCtCgq7ev8G6E5t5Eu2L0s44TjXX/6f1j6KmawX6Ne6RqYKWW4/uMH3PfCKdpFjvgcJPy4/Vv6dC4bKp3qa7T+8zdtcMFE4xT94V77RMaf4LuV3T73Cq31cs4ITxdVTGhqDqx9LdqZg75XqjhOR169Yt6tUzzPWo1qwW2qqGYVSFnfIxrsbgJB3r8ePHcs2JUh0qYeZpeLL4XSEv2hZNeqIFSZJo3LgxV69eBeDvv/+mSpUqcbZbfXUzex8cAaBu7qr0LN3us8fdsWMH/foZev6USiXjJo3nuuMz3oS+A8A1wp5No1bJ2w8dOlTuLbroe51Zp5fI9Ra6lmxFg3w1k/zavsTHgaVCoWD23N944PBKTmtqrDLi58p9E8zw9fFcpZweOakyuhHeQYaMTN/i/BWNRsOsWbNYuHCh/O9qY2PDH3/88ckaKnq9nnMvrrD19l58/i/lbUHHvLQu0uiT9X8WL17M9HkzKdi9LJbuNgBkMbXm11o/4WSZtsOZkktodBgLz6/h8sub8rJovwju/nWRUJ8geVmpUqVo37499erVw87OLp4jZRwXLlyQezcaNWrEkiVLUuQ83gHPGHFgGihAF6Ul31Mnpo79NUXOlRIyz52kkKzeBfgxbcMcWv7enSlXFvHc2g+Vg0mCgQqA2t6EE5FXaLuwF3ef3k9w+/Tujf9bfvjjZ8adnUuUC/J7oA2KxitLJf7utzRNAhWAgjnzs67PH2QLskXSG74wJUc1P+2fzLpDm9OkTQm5fuM6BwLPyIFKEbM8IlDJYAoXLiynUT279yTOFoYsR7ffPsAvLCBJx9q82XCdKpQKspR0BgxVqGvnjhtgJIZCoZBrwQAsW7Ys3u2+K+gl9wYc9j7F63iG4Xzw+vVrRo4cKf8+duxYtIVN5EAlr30uZnWeEKvXZfbs2WzYsAGAMq7F+d4zJnX5mmtbuPLRDVlKWbJkSayCgpOnTeaO3Qs5UDFVm/BL1R8SlYq4U6dOlC1r+Jx76v0Ui7sSRkrD3/CeB4fj9BBkZlevXqV+/fosWLBADlQqVqzIoUOH4g1U9Ho9p55dYOj+Scw9uyJWoFLAITdjqw9ifAKFSrt160Y2WxduLjzN+6eGv7HgyPfMPr2UaG10Mr/C1Pc8yJeRB6bFBCqSxIvDD7k04zChPkEoFAq+++479u3bx65du2jXrl2GD1TAEHjZ2NgAcOzYMTkxQ3LLZZudyDtBAKhM1JiUzVjvnQhWBJlGq2HdgU10+r0vfXaP5IryAUqX2AGK1j8KpyAr6liUZ3iJ3ixtMI0l9acwqGAXimo80L2LSa+LkxGjjszgn5PJP2ksNURERjDhz2n03T6SN3YhqIwNY151ERoKaXOyvttCunt1TPNJz8ZGxsztPYUWjrXRhhg+6NQWxuzwP0LfhUMJCfv83IjUFBAQwC+bp2DhbhhyYxylYniDH9K4VUJSKRQK6tatC2CoExAdU/Pl1POLiT6OTqeTa6M4FHclWmmoeVDatRgO5l/+ZdqgQQNcXQ3j+Q8fPsyjR4/ibGNtakWj/LUN7ZD0bLwV/+eUJEmMGDGC4OBgAJo3b04xr9Ic8T4NGOYV/FC+GyqlihYtWjB27Fh53xEjRnDq1CkAaueuzHeFvORjzj27gqeBL774NSZkxYoVsQrNjRj7C49c3nH3naGSupmRKaOrDaSQU+KKeSqVSqZNmybPwVj5+zIqOxkSLej0OlZd2ZRgpe6MLiQkhDFjxtC4cWPu3r0LGOZJ/PLLL/z9999x0sDq9DpOPD3PkH0TmXduVayALp+9B6OrDWRCzaEUcS6Q4PeIiYkJo0ePRh+t486y82gDDd+1T4J8WH01fT6YSqy77x4y9shs3oT5AaAN13B76Tme7bmLpNVTvXp1Dh06xPz58yla9MvLAKRHarVaLoQbGhrKhQsXUuQ8ly9f5tq6M0SHGK6bO8GPuPrqVoqcKyWkWrBy4cIFunfvToUKFShZsiRt27bl33//Ta3TC59x8c5lflg8nNarerMj8ChRLsQqCKYLjiZnuDOjSvdnW7+VLOg9g+8bdcEzfwlsrLJga21LpWLlGdPxJzb3W05dywpogg1/EGoLY9Y928WafevT6uV9kb1n9tN+RT9umzxDbWkYYqXX6nEMsmR+o8mM75B6c1MSq23tlsyqPwZex6Rt9HcIp9Oy/hy7cCINW2YQHR1Nr2kDsShiuAmVtHpG1/sxWetcCKnnQ7AC8OKst/zzyWeJ/7I9ffq0PNY/f4Pi8nKvr8wwpVar6d69u/z7p3pXGuWvJWdVOv38Ek8/msz7wdGjRzl48CBgqEA+bPRPLL20Tl7frWRrXD6qmt27d2969OgBGFIF9+7dG29vw/vTukhjyruXAgxpraefXERgRPDXvNR4rVmzJlbQNOjnH/HJGcQDf0M7LIzNGVv9R/I5eCTpuPnz56dPnz6A4e/51MqDOP4XVN54c5eL/03Wz4z2799P9erVWblypRyUFS5cmF27dtG/f/9YE7gjtVHse3iMQXvHseD8al6GvJHX5XfIzehqA5lUaxjFXAom6WGXl5cXFSpUQBeh4ebyMyglwy3cIe9TXH99J5leaeq65HuDycfnE64xFIAN9Qni2uxjBN1/h52dHQsWLGDt2rUUKFAgjVuacj5kMARiJWlITmvWrEEXqeXpztvyst33U+ZcKSFV5qzs2rWLn376CbVaTbly5VCpVJw9e5bo6Gh++OEHBgwY8FXHF3NWki4kLJSV+/7ilO8lFM5xbxZ1kVrswixoWtKLBuXqJnnuic+bFwz5exwKl5gb/WbOtehYO25mnvTkfWgII9ZM4J1tiJyKGMDET8GQun0omTd1ikV9Da1Oy9g/p/DAxBflf69BGx5NvlBXJvYeneq55MHwBL3vpEEE5NPIbWqftwnNStVP9bYIySMqKopixYoRGhqKjY0NzeZ24WGAIY3ozHqjEjXx90PFevOsVpT8qQZgqJL+m9fYr+6xfP/+PaVLlyYsLAxTU1MuXrwY77CRPfcPs+aaoXenZNYijKzaX16n1WqpXbs2Dx8aeiMWLFjAPXtfeWJ6WdcSDK3UK05bdTodXbt25cgRw5yY3Llzs2vXLrJkyUK0NpoJR+fw8L/JrtmzuDKm+kCymCauDkdCFi9ezKRJk+Tf+w7pj39BDb4hhqf61iaWjK42iJy2XzYxOzw8nKpVq8pB5rilv3Io9DxgmGw/u/5Y1Mr0mXnpS3h7ezN+/HgOHz4sLzMzM2PYsGH07NkzVravoMj37Ht4jAOPThAaHRbrOAUd89KqcAMKO+X/qmv71q1beHl5IUkSOWsWwLWRYeiYvbkts+uNwdw4Y0yYBkPRwrlnV6CXDJPmA++95d7qi+ijddSqVYu5c+dmiqFeCQkMDKR48eLodDo8PDw4efJksh7fx8eHSpUqodPpsLW1pf2CPlx7c5vqOSvQr1zGqNuT4j0r/v7+jB49GjMzMzZs2MCKFStYunQp27dvx8HBwfDhf+9eSjdD+M/pG+fos2gIXTb9yGntjViBiqTTo3yro5qpJ6tb/cayfnNpVMHriybJuzu7sab3AozeGmJhpVrJ9leH2H1mX7K9luR2/+kDuq4aiJ9DTM0UXUA0ndyb8lf/RRkiUAFQq9RM6TaWfoU6oA8x9LKozY3xdnpHqxnduHAt8cN0koNWq6XPhIEE5I0JVMraFBWBSgZnYmJC9erVAUPqVndispclpnclNDRU7l3PUTO/vPzjatRfw9ramnbtDJPmIyMj+euvv+Ldrk6eqvKQs6uvbnHhxTV53bp16+RApVSpUpgVsZUDFRtTa3qV6RBvW1UqFYsWLSJfPsON5OPHj+nTpw8ajQZjtTE/Vekrn/N5sC/jj8756h4WvV7PhAkTYgUq3Qd/j2++UDlQsTOzYULNoV8cqACYm5szZswY+fc1U5aR3z43AK9C33LocfLeaKWV0NBQfv31V2rWrBkrUKlRowZHjhyhT58+cqDy8v1rllxcR/9do9h2599YgUpxl0KMqzGYCTWHJGq4V0KKFClCmzZtAHh65B5mIYY2+IcH8tf1bV917NR07dVtfj+3Ug5U3l15wd0V50ErMXLkSFavXv1NBCoAtra2lCljmLfp7e3N48ePk/X4S5YsQaczZFbr3r07I6r2Y1a90fQq3T6BPdOPFA9W1q1bR2RkJB06dIg11jB37twMGTIESZJYs2ZNSjfjm/Y+LITZmxfQcn53fr+7hgD7CNTmMelAtUFR5A7PytSqw/n7h6X0b9oTK/Ovr7pubmrGil5zUb00jENXGqtYeW8LN71vJ7Bn6jt04SgjDkxD7WQY2qXX6skZ7sS6HgtpXNErjVv3ZWqWqMqK9r9hHxHzb2mS15opFxcxeNYIwsLCPrN38ggJCaHb+D4E5tegVBs+bjyMXBlSp0+Kn1tIeR8PBXt54Smq/+qHnHp2Eb1e/6ndANizZw8REYbPIvuShsn6pmqTJNdV+ZwePWIyEq5evZqoqKg42xirjGj3UdaxJZfWERgRzPv372NNTu85vC9/Xtsq/963bCesP1OYz8rKKtYN14kTJxgwYAAajQYbU2vGVB+EvZlhro/v+9f8cmg6D/y8P3m8zwkMDKRz584sXbpUXtZtdG+e5grCPzwQAGcLBybWHIqrtcsXneNjTZo0kYvZPX36FPNHMQM0Nt/aTXh0xFefI63o9Xo2b95MlSpVWLRokVwN3cXFhUWLFvHXX3+RPXt29Ho9l3yvM+X4fAb/O5HD3qfQ6A3fdSqFkqo5yjGz3ihGVfvhsxPnv8TPP/+MubmhntHpeQcwURoeOh72PiXPSUrP7r57yKzTS+TUxG/OP+fBuitYmluybt06BgwYkKkyiSbGx0PBPg6Ov9bTp09Zv94wDN/MzIyuXbuiVCrJbuOa7kscfCzFr4Zjx44BUKdOnTjratWqhUKh4Pjx4yndjG/S+duX6PfHMLpuGsx5/W2UTrHrgpi+VdDSqS5bvl/O1G5jyeOWtPHLiWFqYsqy3nOQ3n6Y+G3E+IO/4f8+aRmDUtLSnav44956jLIY3h9tSDT9C3VkRrcJ6W5eSlJlMbdmUZfpNMlWE32U4YvB2NoUX/dgWs3qzo59KZf84Pbd27T5tTtRRY1Qqg3DQjyM3Pi12chv7osos6pZs6Y8Vv/w3oOUyFoYgICIIG69/XwmwA8T653L5+C/offUyFURc6PkG8aSPXt26tc39OC9ffuWHTt2xLtd5RxlKOtaAoCQqFCmnljAbwvmEhBg+Jxq2KEpu/yOov3vZtQrT3VKZi2S4Plz5MjB8uXL5aGXu3fvpn///oakBFZOTKg5BEcLQ6pm//BAxh2ZzY67B9B+qC+RCBcuXKBBgwYcPXoUALWJmg6zevHA7hVRWkNwlscuJ5NqDUu2FLcKhYKJEyfKf8crZy+llKPh/QiJDmP7vf3Jcp7UdurUKRo3bsyPP/7I27eG7HAmJiYMGjSIkydP0rRpU/wjAtl6ey/994xmxqnFXHt9Ry76aaY2pXH+2sxvNIkB5bumWA0UZ2dn+vc3DFeM8A9FfzMmicrSi+vlmj7p0eOAZ0w7sYjo/9rod+0ljzZdI6tLVv75559Ppn3O7GrXri3/nFzzViRJYsyYMfJDmq5du2bY3qoUn7NSrFgxoqKiuHLlChYWFnHWV65cmXfv3nHmzJkvrtyZEeesBIUEc+fpPcIiw8npkp3crrmS5QYuIDiANQf/5uzLK+Act5iaNjCKwma56eXVFXfn1Kt+6/PGl4HbRmNkZ7j5N/KHP3svSNOqsnq9nl9WTuSxxWs545neP5oZzcbgkS1nmrUrpbwJfse4HTMIMIn5YtOERWP5TMmEriPxyJU8wWpkZCTTl8zmov4O5tlixuEXNs/D6IY/ospE49kFaNmyJWfPGqrBz9m8kC0+hhvVsq4lGFa5d7z7vHjxgnLlyoFSQblx9VBbGaNAwe8Nxid7MczEFIkEeB8ZwvADU/GPMPREhL8J4cXBB5jZWZK7URGi9Yabq6LO+RlZ9Yckzcs4evQoPXr0kG8aypYty+LFi3F2diYgIoi5Z5Zzzy9m6Id7lmx0K9nqs/MbQkNDmTVrFsuXL5cnfGcvn4fC7cryXhfzN14xe2n6lemEcQoksvjll1/kkRFN2zUnqJwCrV6LkcqI3+uPx8EiY9wYXb9+nWnTpnHiROxEJF5eXowdOxYbZ1vOv7jK6eeXuPsubmY5R3M76uWtRm2PKqk2ZyQiIoLKlSvz+vVrUMB387rxRuMPQKvCDWlVpFGqtCMpXgS/YtyR2YT8N0wu8O4b7q68QIF8Bfjzzz/ldOjfIkmSqFixIs+fP0elUnH16tUE74mjo6PZv38/d+7cIUuWLFSpUoVChQrJnxnr1q3j559/Bgw9g8ePH88w98j/L0WDleDgYMqWLYuFhQVXrlyJd5vvvvuO27dvs2PHji/O9pBRghWtTsvS3as5+vwskp1aHhYDoA3TYB5mRGHHfLSo1Jh87nkSfdyX717xz+ndnH1+mQhbvZxi9wO9Vo95gIrmJerTtFLDNHuqffr6OWZfWS4PQXMPd2B2t0kJ7JUywiLC6b/0J8JdYoaqmPgpWNh1OtYWXz8ELr2SJIl/Lu/l77s7wTjmOgh7+Z6CUe6M/P6nL35ooNFoWLN5LVvv7MWysL0cAEp6ie886tGu3LdVNO5b8XGxwH4D+vO80HsCI4NRoGB+w4nxPs2fN28e06dPx754Vgp0MYzVLpWtKCOq9Ev29v1/kciNGzdSuXLleLd9+f414478RnBUSLzr89rnYmTV/lgax33wlpBjx47RvXt3OWCxsbFh7NixtGzZEkkBf9/cya57B+Wn9GCowdGkQB1KZC0iB0cajYZNmzYxc+ZM3r17BwqwK+JC/obFY/WeG6uM6FqyFbU8KqdYevWAgACqVKlCUFAQAINW/MKlYEM61Ko5yjGgfNcUOW9y0Ol0HDhwgBUrVsjB9geFihemy489UGc14/qrO3gHPo/17wKgQEHJbEWom7sqJVwKpcn36pYtWxg0aBAARSuXwLZFTnSSHrVSzcx6o5JlyF9yeR3ylnFHf5PnZgU/9ufO0nNULFeBZcuWYW2dPAkmMrJff/2VRYsWAYbK9l26dPnktnfu3KFXr148efIk1nIPDw8aNmxIYGAg69atkx9kLF68mMaNG6dc41NYigYrr169onr16jg4OHD69Ol4t2nXrh1Xrlxhw4YNlCpVKsFjvn371vAB/ZHw8HA6duyYroOVc7cuMPPYYlSOJglvDOj8o3BTO1Moaz6K5SqMs60TpiYm+AX58/SND7ee3+VZ4Av89EEo7eOvKq8NiiK/cU761O9GDhf35H5JX2TV7rXsfX9SnsBey7ocvet3TdU2PH/9giEbx6J0ifm3cAu1Z2a3Cd/MU//A8CCm7pnHU33sKsrvH/pRSOnBgLa98fBIXE/Ly5cvWbFtDWfeXMGigK085AvANMqIEXUGUChr8o7ZFtIPPz8/SpUqhU6nw93dnZ9WjJVrljTIV5OuJVvF2l6SJKpVq8bjx48p9mMVrLIb5m2MqT6Ios4pk550586d9O3bF4By5cqxdevWT97A7ziymyVX12HpZhNreY1cFenh2RZjVdwe68S6evUqPXv2NDwN/0/u3Lnp378/DRo04E20P8svb8A78Hms/axMLClkk4cA77ecPHicwMAgTLKYYpXDFpv8ThhZxu41KeyUj56e7VLlZvXjYLVIqWJk61aIME04ChRMqzuSXLbp47vng6CgIDb8vYG/Nq8jIDIIExszTOzMMbUzJ0s2OxxzOhPKp+fcuFq7UCl7GarlLCcP4Usrer2ehg0bcuPGDQC6ze7PA4Uh/XYhx7yMqzE4zeuAAbwN9WPckd/kXstQnyBuLTpDs0ZNmTVrVppkqEyPbt26Rb169QDD59S2bfEnTLh37x4tWrSQHxIkpGfPnkyYMCG5mpkmUjRYefPmDVWrVsXR0VEujPX/2rZty9WrV1m/fj2enp4JHnP+/PksWLAg3nXpNVhZuns1+wPPxOrx0AZHYRllilqhIkwfidZaQmX25V+C8nHDNdiGW1CvUHW+q9o4XU6g+mnJWJ7ZGAJOvUbHoBLdqFKkQqqce/fpfay4tREjm5iJ9FXMSzKo+bc54fvKs5vMO7GccOPYVXNDngVi8gYq5SpDhRLlyJs3L1myZEGSJPz9/bn/4D5nb1/kku91oh3A0t0m9oE1ErXdK9G9crt0eQ0Kyat9+/by3MON/2zij+cb0eg0GKmMmN9gInbmNvK2V65coXHjxtgVdqFgD0NF9Jw2bkyv+0uK3VhptVqqV68uP4X8448/aNKkSZztIiIiqFu3Lt5PvMmS15G2fTviWbwkxbMWws06a5ztv0RAQACjR4+OM3/G1NSUihUrUrRYUVQ5zLjHM4KlpCXBcLV2oU2RxpRzK5lqN6k6nQ4vLy/u3DHU+eg1cyC3VU8BKOKUnzHVB6X5DbNe0nPoynE2nd7Oy8i3mGWzQmWU+AdTOWzcKJm1MBXdS5PDxjXNX8/Hzp07R4sWLQBwcXWh/Jj6vAs3DAfrU6YTNT0qpmXz8AsLYMyhmfhHBgEQ9uo9txadYcD3/Rg2bFi6ei/TmiRJVK9eXS5ie+HCBbm47QdhYWF4eXnJtZuKFSvGjz/+yMuXL9mzZ0+sXkJTU1MGDx5M//79M/z7nKLByofhWVZWVly6dCnebT4MA9u+fTsFCxZM8JgZrWdl0rqZ3FA+lns+tIFRNMlZm85128bqNo6KjmLf+UMcuXMSH+1b1A6J64GB/6rKY0vF3KVpVb05Zibpe1K4Tqej09y+aN3+qwgfqmF+s0lks0+em4H4hIaHMvavqTy3eIfyvy8pbbiGbvlb0Ljit51CV6/Xs+P6Prbc2oPGOG4Gp6igCCLehqKN1KBQKjC2MsHM2Qq1aTzBdbREOafi9KreSS62J2R+GzduZMiQIQB06NCBwu3KsueBIaNN7dxVYqXIHDp0KH9v2kiJIdWw+G9O08+V+1LaNWVTgx88eJCuXbsChvHbBw8ejDPZdNSoUaxevRowpCresWNHig3vOXPmDLNnz+bcuXPxb6AA2wJOOJZ2x66Iyydvrs2MTCnmXJBaHpUpnsQig8nl4xtmOwc7qkxqjN9/T9FHVOlPqWwJJyNICaFRYfyxfxUX/W+CeeL+HU1UxmS3cSW3XQ7y2OWkiHN+7MxsUrahX6lnz55yGvDuI3pz38nQY25hbM7c+uOSrYZPUvkEv2Ti4bkEawzDKsNfh3Bn8TmmjJtM27Zt06RN6d2cOXPkLIQ//vgjP/30U6z1gwYNkpOTFClShK1bt8a673316hU3b95EqVTi6emJra1t6jU+BaVosCJJEqVKlSI8PJzr169jahr3JvrDBPvTp0/j4PBlmUrS65yVSWtnctMoJhWlyVsF87r8iq11whfP3Sf3OXj1GI/fPSUgOgitpEOPHjVqzJQmZLVyopBbfioUKkvOrNlT8mWkiICgQLqv/hHjrIb0i6ogiTU95iX7JNCbD26x/uRW7mmfYWQTEwBK/homNvyJgjnyf2bvb4tOr+PA3eNsvraLUHVkkva1iDahUaHaNCpeV1Sk/waFhYVRqlQpQkNDMTc35/jZE4w8PoMIbSRKhZJJtYaR1z4XAQEBlClTBvtKbuRsWAgwZKr6tfbPKX6TLUkSnTp1krNmVa9enT///FNO8vHnn38ycuRIwPBE8sCBA+TOnTvF23Tp0iW2b9/O7t278fPzi3c7hVpJwQpFKFWtDPmKFsDe3h5rEytcrZ3JbZczXRRh7Nevn9xb1PLHDrzKbrhBdbPOysx6o1J1iO37sBB+27mIW5rHKE3intcoSkke51zkcHTHwdwOB3NbnCwccLKwx8rEMsM9hfb29qZmzZpoNBpMTU3ptXwol9/eBKBy9jIMrNA91dt08fk1Zp9eil5puMWMeBvK87W3mDdjLtWqVUv19mQUL1++pHz58uh0Ouzt7Tl79qycnGrTpk0MHjwYAAsLC/bt25fo4doZXYpnA2vTpg3Xrl1j27ZtFC5cONa6oKAgypcvj62tbZwJbkmRHoOVX9fP5roqJmuIQ6AlC3pNFylbP3L17nUmnJiL8X9DsuxCLPijx8yv+qKQJImT186w/fxenkT6onY2jTWfR9JLOIdkYVbXjJ+WOCU9D/Ll35uHufHyLn66IKT/+75Xa5RkNXGkZPai1C1cLdlSogoZ14gRI+TCi1OnTsWytCN/39wJgKOFPTPq/sLqZav4/c+FFBtYBaVaiUKhYFLNYeRzSJ0v3FevXuHl5SUHBXXq1KF///6cOHGCOXPmyJNRE5rcmhIkScLHx4dbt27x5s0bIiMjMTc3J1euXBQqVOiLH+alFl9fX6pVq0ZERARKpZLv5nfjVZRhFESv0h2onTv+pAbJKTAwkLmbFnFdeoSxbcznu6SXiHoeQmnnYvRo2AlXx8yXdWrcuHEsX74cgGZtvyOisolcnPKXqj9QImuhVGlHUEgQv+6cyzP1G3lZqE8QynOhLJ77B25uKZPOOTPp378/27dvB2Dw4MEMGzaMmzdv0qxZMyIjDQ8SFy5cKGc5/BakeLCyYMEC5s+fT79+/eSsFR9s2bKFUaNG0bx5c6ZNm/bF50hvwcrszQs4p70l3yQ7BloyXwQq8drw7ya2+B2S5/PkDs/K1G5jk3yc6Oho5m9azKnAKxg5xZ86UuWnp1fFjtQoWeWr2vytkSSJSG0UYZpwVAoV1iaW30wiAiHxPp4cmjNnTg4dOcyvJ+fzwN/Qu+xm5cKNfZewLumE2tzQ+9akQF06Fk/dLHFnzpyhXbt2aLXaeNf3799fnjAuJM38+fPl7/LcZfPj0tbQc21jas3vDSZgZpQyD4jevHnDgtWLuKi5i3XemEnvkl5CehpJmxKNaVGveab+Dg4MDKRy5crypOsJq6dxIOAMAE4W9sz2Gpuivd5vAt7y2/ZFPNT7oLaKOU/g7TfUsanAoP4DMTFJ/PD2b9mjR4+oWbMmOp0OtVpN79692bx5s1z7p2PHjkyfPj2NW5m6UjxYefXqFfXr10ehULBixQo545e3tzedO3fGz8+PHTt2kD//lw/HSU/Byh87VnAk7IKc7co+wJyFvWdm6g/JrzX1r9+4ahxTdTdXhAvTuoxNVA+LJEms2b2Ofx4ewMQ1bjpRfbCGnEbZaFG2ERUKl03WdguCEFurVq04c8ZwgzRz5kxqN63HyANT5boKH8vvkJsx1Qd9VXatL3Xs2DF++OEHuegjgFKpZNCgQQwdOjTDDQNKL7RaLS1btuTixYsAVB/RGI2T4b2skasifct2StbzPXv2jIVLFnE24CrOVXLGykSoDpToXLwFXhXiFqTOrD4eypgnTx6qj23CXT/DCI+6uavSs3S7ZD/nI19vft+7hJcmAahMYpKp6KK1GD/QMab9TxRKxHxkIbaZM2cyd+7cOMtLlSrFli1bvrnAL8WDFTCMsxszZgwqlYpy5cphbGzM2bNniYqKYujQofTq1eurjp9egpXV/65jd8AJuX6KtZ8xS/vOEYFKIgxbPobnVjHjtbP4m/Bb18lYmX/633PPqX2sPP83KrfYPSlSoIaClrlpWbEJxTwKf2JvQRCS28cFGF1cXDh27BjBUiizTizhZVjMsJAiNvkYVrNPslarT6rAwEC2bdvGgwcPcHJyomnTpuTJk/j6VkL8fH19qVu3LkFBQZjYmVP2lzryvIUfK/SkYvaEs34m5Pr16yxbvoxT3hfI3qggpnbm8jpVtIJ2hZrQuFS9by7o1Ov1NG3aVK5rN2DEIG65+KDRG3oRe5fuQK1kGo735O0zZu5ZyDuTYPnhLBh6s4z9oFfFjlTzTPmhf5mVVqtl2LBhbN68WV5WtmxZVqxYkWGr0H+NVAlWAE6cOMGyZcu4desWKpWKPHny0L17d+rWrfvVx04PwUpQSDA9tg1DZWp4smD2VsmKfr+LtK2JJEkSPy8bx7MsMZnetAFRNMkVO3OaJEnsPXOAtRe2oHVRxZ6P8l5L07x1aV+tBUqFCBAFIS106dKFQ4cOAVCvXj0mTZpEv/79eODvjYmNGdVKVOb3Sb+lcSuFlLR//366dzdM6nYq407ediUBQ6HKiTWH4mGXI8nHjIyMZOfOnaxZs4YnYS/I0aAgVjliktUoJKiTowody7TAVP1tPXX+2J07d/Dy8kKn02FiYsLUDXPY+nQfACqlirHVB1HQMe8XHz8sOpw5+xZzPfR+rCBFr9FhFWBCn1pdKFe49Fe/DsFwv3Px4kWuX7+Oh4cHNWrU+GYffqdasJKS0kOw8tr/Df33jEZlosbojcTKPr9jYvztfmB+qWkb5nBJd1dOLwygCY7CNEKNAogw1mBkF3vcsy5UQ3WnsvRt0F0Eh4KQxp4/f06dOnUIDQ2Ns+5TKYOFzGfJkiVMnDgRgLztS+JU2lAc0trEklHVBiaqWKQkSVy+fJl//vmHHTt3oHQzJVtVD6w9YhdjLGifh95lO5AtHVVsT0uTJk1i8eLFAHh6etJ0bHv2PzbUQTJVmzCq2g/kd0hapjutXse++0dZe2UbenXMbaMmLBrH91YMbdaP/DlF8V8hZYhgJRmdu32Ru8/v07FOG4zUqT8OO7M4euUEC86uRpVArRlduIbipvkZ9t0AzE3SbjiJIAixnThxgm7dusmZawBsbGz4+++/KVq0aBq2TEhNH8bdK1RKCvetQJb/ggwzI1N6lmpH5Rxl4gzVio6O5uLFixw9epS9e/fyJswPx1KuOJVxx9Q+9rxEN6ustC/eDM9sRb+5IV+fEx4eTq1atXj+/DkAPw4ZTHRpY66/vgsYerj6lOlI5RwJz+OUJImrr26x+vJmXofHjHzQaXQYPdEyts1PFMon5qQIKUsEK0K6pNVpWbxrFSd9LqCzU8rzgCS9hCJARwmHgvzQuNdn57QIgpB2Hj58yKJFi/D29qZw4cL0798/TjVmIfNbvny5oYfFSEGhnuVi9YrYS9bkUbpjEqLE3/cdt27e4u6z+2CtwtrDHpt8jli628Q5ppt1VpoX9KJSjtJiyO8nXL58mebNm6PT6VAqlazfuIHj0Ve48eauvE15t1K0L9YUFyunOPtLksT113fZensP9/29Y63zv/qS1oUb06tjDxEkCqlCBCtCuhcZHcVDn0dIQG7XnFiYxs36JQiCIKRPly9fZtCgQTx78Zw8rYvj6Bm31oakl2LNQfx/ChQUcylIw3y1KO5SUNwkJ8Lvv//OjBkzALC3t2f7rh3sf3OKo0/OyNsoUFDIKS8FHfNgZ2ZDtE6D7/vXXHt9h3dh/rGO9/5JAMEnX7Jk6kKKFSuWqq9F+LaJYEUQBEEQhBSl0WjYtGkT69evx0f/huxeBTB3sUpwv1w27lTKUYZK2Utjb26b4PZCDJ1OR4cOHTh58iRgSGe8adMm7kc85c9rW3gfFXdeWXzCX7/n+f77OGtsWbNmDdmyZb6imkL6JoIVQRAEQRBSzevXr7l58ya33z3glc6PKBMtWrUeczNzHKzsyWblTE4bN4o458fG1Dqtm5uhBQUF0bhxY7y9DUO58uTJw19//YW9iwOHHp/ikPcp3oS+i7ujBIH33/Lm3DP8b76idq3aLFq0CAsLMbJBSH0iWBEEQRAEQciknj9/TqtWrXjx4gVgSHYxadIkmjdvjkKh4HXoO14EvyQoMoQnDx+zcc3fPDh/B13Uf/VZevdm1KhRqFSqz51GEFKMCFYEQRAEQRAyMR8fH9q3by/3sADkzZuXevXqkTVrVt6+fcuRI0e4efOmvN7ExISZM2fSokWLtGiyIMhEsCIIgiAIgpDJvX//nqFDh7J3794Ety1evDhz5swhf/78qdAyQfg8kfNPEARBEAQhk7O2tmbZsmWsW7eOMmXKxLtNkSJFWLhwIbt27RKBipBuiJ4VQRAEQRCEb4yvry937tzB398fOzs7ChUqhJtb3LTSgpDW1GndAEEQBEEQBCF1ubq6ikKtQoYghoEJgiAIgiAIgpAuiWBFEARBEARBEIR0SQQrgiAIgiAIgiCkSyJYEQRBEARBEAQhXRLBiiAIgiAIgiAI6ZIIVgRBEARBEARBSJdEsCIIgiAIgiAIQrokghVBEARBEARBENIlEawIgiAIgiAIgpAuiWBFEARBEARBEIR0SZ3WDUgOkiQBEBoamsYtEQRBEARBEAQhsSwsLFAoFJ9cnymClbCwMACqVauWxi0RBEEQBEEQBCGxLl++jKWl5SfXK6QP3RIZmF6v5+3btwlGZint7t27dOzYkbVr11KwYME0a4eQfolrREiIuEaEzxHXh5AQcY0ICUlv18g30bOiVCpxcXFJ62Zgbm4u//9zEaLw7RLXiJAQcY0InyOuDyEh4hoREpLRrhExwV4QBEEQBEEQhHRJBCuCIAiCIAiCIKRLIlgRBEEQBEEQBCFdEsFKMnJ0dGTAgAE4OjqmdVOEdEpcI0JCxDUifI64PoSEiGtESEhGu0YyRTYwQRAEQRAEQRAyH9GzIgiCIAiCIAhCuiSCFUEQBEEQBEEQ0iURrAiCIAiCIAiCkC6JYEUQBEEQBEEQhHRJBCuCIAiCIAiCIKRLmSJYkSSJ0NBQRGIzQRAEQRAEQcg8MkWwEhYWhqenJ2FhYWndFEEQBEEQBEEQkkmmCFYEQRAEQRAEQch8RLAiCIIgCIIgCEK6JIIVQRAEQRAEQRDSpa8OVrZv307+/Pk5c+ZMvOv9/PyYOHEiderUoVixYtSqVYuZM2eK+SWCIAiCIAiCIHzWVwUrN27cYNKkSZ9c//btW1q3bs26deswNTWlevXq6PV6li9fTrt27QgNDf2a0wuCIAiCIAiCkIl9cbBy5MgRevTo8dmAY/Lkyfj6+tKrVy927drFvHnz2L9/P/Xr1+f+/fssWLDgS08vCIIgCIIgCEIml+Rg5c2bN4wcOZJ+/fqh0WhwcHCId7vnz59z8OBBsmbNysCBA+XlxsbGTJo0CQsLCzZu3EhkZOSXt14QBEEQBEEQhEwrycHKnDlz2LZtG4ULF2bjxo14eHjEu92JEyfQ6/VUq1YNIyOjWOusrKwoX7484eHhnD9//staLgiCIAiCIAhCppbkYMXDw4Pp06ezefNm8ufP/8ntHjx4AEC+fPniXZ8nT55Y2wmCIAiCIAiCIHxMndQdevXqlajt3r17B4Cjo2O86z8s9/PzS9L53759Kx/7g/Dw8CQdQxAEQRAEQRCE9C/JwUpifQggTE1N413/YXlSA42NGzeKifmCIAiCIAiC8A1IsWBFpVIBoFAo4l0vSVKs/ydWmzZtqFmzZqxl4eHhdOzY8QtaKQiCIAiCIAhCepViwYq5uTkAUVFR8a7/sNzMzCxJx3VycsLJySnWMlGvRRAEQRAEQRAyn6+uYP8pHwKK/59f8kFCc1oEQRAEQRAEQfi2pViw8iEL2OPHj+Nd//DhQ4DPZhQTBEEQBEEQBOHblWLBSpUqVQA4evQoOp0u1rqQkBDOnz+Pubk5np6eKdUEQRAEQchQorTRvAh+xa0397jx+i4339zDO+A578L8idREJnmepyAIQkaXYnNWXF1dqVGjBkePHmXmzJkMHz4chUJBdHQ0Y8eOJSwsjO7du2NpaZlSTRAEQRCEdO95kC/Hnpzl2us7vHj/6rPbqpVqzNQmmBqZYqo2wVhlhFqhQqU0/KdWqlApVKiVauzMbciexZUCjrnJZuWcSq9GEAQheaVYsAIwZswYbt++zapVqzh+/Dh58+bl5s2bvHz5ksKFCzNgwICUPL0gCMI3S6vTEhgZTBZTa4xVRmndHCEeL0Pe8Ne1rVx+eTPR+2j1WkKitYREhyXpXO7WWfHKW4NqucqL60EQhAwlRYMVV1dXtmzZwvz58zl27BhHjx4lW7Zs9OnTh++//x4LC4uUPL0gCMI3JzAkiN/2/cFDrQ96pYRaoaJ2nip0LNYcY7VxWjdPwJCy/4j3aVZe3YRGp5GXKxQKPGyyk9XaGXszG1RKFXpJT2h0OKFRYYREhxIaHU6kJpIIbSQR2ii0Oi0SCQ8N83n/imWX17Pz/kF6lGpLiayFUvIlCoIgJBuFlAkGwIaGhuLp6cnly5fFsDJBEL5ZJy+eZva5pRg7mcdZV9AxD6OrDcRIPFVPE5GRkRw/fpxjx4/x0PQlyvwx/0ZSuA6LF0qyK1zI5ZoDNzc33N3dcXd3T9RDPb1ej0avlQMXraRDo9PwKuQt3oHPueR7gwf+3rH2aVawHm2LNEGpTLGpq4IgCMlCBCuCIAiZwPa9O1n5dCum9oabYF20luDH/mTxsEdlYuhE98pbne6l2qRlM7850dHRLF++nCVLluDn50euZoXJVjW3vP7VqSc83X0HfbQu3v3t7OxwcHBArVajVqvRarVERUURFRVFdHS0/HNkZCRKpZJs2bJRrFgxqlevTtOmTeXvxMcBz/jz2lbuvnsoH7u8WykGVuiOWqlK2TdBEAThK4hgRRAEIYO7dv0aw3f+SpZ8DgBIoVraujfk0tHzbDu6kyIDKqEyUqFAwdQ6w/Gwy5HGLf42PHz4kH79+nHnzh0AslbJhUfzogBIeonXex/x9oJPihU2trS0pE+fPvTt2xdTU1MkSWLPgyOsvb4NvaQHoKxrCYZU/F70sAiCkG6JYEUQBCEDe/fuHe0n98C2oisAimiY23g8WW2ckSSJAQMGcCHoJrmaFAYMN6fDKvdOyyZ/E86dO0f37t0JDg4GwCaPA4X7VgCFAoC+ZTpRw6MiABEREbx+/ZqXL1/y4sULfHx88PHx4cWLFzx//pygoCDDUC+NBiMjI0xMTDA2NsbExCTWf1qtlidPnsQJfnLnzs3KlSvJkycPANde3Wbm6SXyfJm6earSo1RbFP+1TUgavV7PqVOnOHbsGPfv30en0+Hh4UGdOnWoXr26eF8F4SuJYEUQhAxDr9fz+PFjoqKiyJ07N2ZmZmndpDQVHR1Nmx87YVTNDjA8rR9VZQAl3IrI2/j5+VGlWhXyDSqHSRYzFCiYU38s2axd0qrZmd6lS5do06YNkZGRABQsXoicPYrzXmvI4NW8oBftijVNkXPrdDquX7/O33//zcaNG9FqtQBYWVmxevVqypcvD8CN13eZemIBuv96WHqV7kDt3JVTpE2Z2eHDh5kwYcInC2BXqFCBGTNmkCtXLvwjAgmMCEaj02JpbE5WKycxh0wQEkEEK4IgpHsREREsXLKIvbcOoXIzw9TBAm2oBg8TVyZ2G4W9jV1aNzHVSZLEkLE/8Sx3EGozww1Ps9x1aV+6eZxtf/31V3bc3U/OxobelZoelehTpmOqtvdb4e3tTePGjQkKCgKgZs2aePapxpkXlwEo7JSPMdUGpcqwq/v379O/f3/u3r0LgIWFBRs3bqRkyZIAHHtylkUX/gTASGXE1NrDyW7jmuLtygwiIiKYPHkyq1ev/uQ2CpUS20LOZCuTE5fi7kToImOtN1KqKeCYh1oelSjnVhKVmDskCPESwYogfIXA90FsPLqN5/4v0Oq1FHDNR7NKDbGztk3rpmUad+7cYeDUYVhUcsTENm6WK21QFBPr/USRnAXToHVpZ+WalWwNOIRFtiwAFLDyYEL9YfEOOfH19aVy9SqUHFUTtZkRpioTljabjqnaJLWbnalFRETQuHFjOTioXLkyY+ZOYOKJ3wGwMDJjltcY7M1T7/MhLCyM3r17c/ToUQAcHBzYt28fWbNmBWD5pQ0ceHwCADfrrEypM1xcFwm4ffs2AwYM4MGDB/KysmXL0q1bNypUqICkkFhzYiNnA66htkpcunD3LNn43rMdBRzzpFSzMxVJkvALD0Cr1+FkYZ9mgZ5Op0Oj0WBqapom5/9WiGBF4NELbw5cPsKDN94ERgUTSTQAChRkUVmSzdqZOsWrU6FIWTH29j/PX/nw69bf8LMKRWUau1yRNlxDQWVOJnQcgVqVoqWMMr0LFy7w85rxOFWNPSFcoQPpo+8mfbiW35tMxNU+ayq3MG2cOXOG0dun4eBpeApuhTkLvvsVM6NPf2H269ePWyZPcSlveC8Hlu9O5RxlUqW934rhw4ezdu1aAPLmzcuOnTuYem4R3oHPAeheqg1eeaunersiIiLo1KkTZ8+eBaBUqVJs3boVY2NjonUaRh2czrNgXwAa5qtFl5ItU72NGYFer2f58uVMnTqV6GjD96SpqSljx46lc+fOaPRajnifZvvd/QREBMXaVxuhQRGoo36VupiojQmKfM89v8e8C/OXt1EoFLQr2pSmBeqK79pPCIgIYsfdA5x4dp6w6HAAzI3MqJmrIi0LN8TcOGWHBkdHR3Po0CF27drFhQsXeP36NQAuLi5UrlyZbt26UaJEiRRtw7dIBCvfqMe+T1h1aB13w7xR2SfuKZo2MIrcRm4MbtqXbA7fxk1hfFbvWceOV4cxsvr8+6b207Og0zTRy/KFjh0/xqQ9v2HvGTMsJa9VDnqUb08uW3fO3b3EtCMLMHE09LYYhSlY1Xlupi98+OLFC9qP6Y6LlyH9rVKvYFbDMbhZf/5v8ujRo/QbN4ii/SsBUCprEUZU7Z/i7f1WXLhwgebNDUPwzMzM2Lt3Ly/U71h80RC8ZM/iyvS6I9PsCXBAQAD169fnxYsXAAwbNozBgwcD4Pv+NT8fmIJGp0GhUPBrrZ/JY58zTdqZXr1584bBgwdz/PhxeVmhQoVYuHAhuXLn4oj3Gf65uy9OkFLCqRAHFu/k0dm7SDqJ4cOHM3DgQMDQO3Dr7X3WX9/O48Bn8j51clehh2dblAqRoe1jp55dZNml9URoI+Nd72zpyJhqA3GydEj2c0dERLBy5UqWLFmCv7//Z7ft2LEj48aNw9w87kgA4cuIYOUbEhIewuoDGzjtcwmdvQKF6ss+CHVRWtwiHZjQbgQ2VlmSuZXpl06n48clI3lt+x6F0vDUS6/RkeW9GcVcCqDXS1x+eZMoR0ler/DXsrrHPMxMvu2J4Em1e+9u5p5dgV2R/yaBSxJtCzeheZH6sZ44Xrp5mUmn52Nia3h/S1sW5ueGA9KiyakiLCyMln3bYemVVf77HVS+O5US0UOi0WgoWbIkuQd4YmJrjkqhZEnT6VibiM/MrxUdHY2Xlxf3798HYPLkybTu0IZBe8fxPsqQmWtcjcEUdsqXls3k+vXrNG7cGJ1Oh1qtZu/evRQubJjHtP3uftbf2A4YAqtpdUemaf0VnV7HQ/8n3Hn3kLdh/mh0GkzVJmS1ciKvfS7y2uVKtXTLBw4cYMiQIQQGBsrLevfuzZBhQznte4ntd/fjHxEYa5/SrsVpVbghuWzduXLlCs2aNUOn02Fubs7JkydxcYlJcKHX69l6Zy9bbu9FwnBLVjt3Fb73bCd6WDAEdZtu7Wbrnb3yMmOVEUWc8qNWqbn26jbR/2W2szXLwuRaP+FoYZ8s59bpdGzevJmZM2fKvSgfWFhYkC9fPhQKBQ8ePIiVha9EiRJs2LABa2vrZGnHt04EK5mcXq9n15l/2Xl9P0GWEXGGLAHo3kWRVe1AUdeCFHDLS27XXKiUaoJDg7n19C5XntzgYehTcDCSb8IBtMFRNHKvSff6mX+iblR0FN8vGkxk1pg/F5WfnnGNh1Ige+wbkLX7N7Lt5UHU5oZJz1kCTVna+zfxpZNI6zduYPX9qupGeAAA9ptJREFULdjkdzIs0Ev8UK4bVTzKxbv9gr/+4JjyGkq1EkknMb3uSDwcMl8dEZ1OR9f+PQgto8TI0tCrVy9nVXqUa5foYwwfPpyTQVdwq2kYF9+vbGeq56qQIu39lixYsICpU6cCULx4cXbt2sVfN7ax98ERACq4ezK4Ys+0bKJsxowZ/P67YQ5NmTJl+Oeff1AoFGj1On45OI2nQYael47Fm9OkQN1Ub1+0TsP+h8fZ++BInADgYxbG5pTJVpyaHpXI7+CRIp+vISEhTJo0iXXr1snLnJ2dmfHbTCKzSuy6f4jAiOBY+5R2LU7LQg3wsMsea/moUaPkyfgtW7aU/w0+durZBRacXyPXwGlfrBnNCtZL5lcVv6CIYHxD3mBuZEZWK6d0M29JkiTWXt/GrvuH5GVVcpSlc4kWZDE1BAJvw/yZenwBviGGYCKvXU4m1Bz6VcOwJUni0KFDTJ06VX4IAaBUKmnQoAHt27encuXKqFSGgD4iIoL169czZcoUOQtgqVKl2LRp0zeftTI5iGAlE5IkidO3zrP1/C6e6V+jzhJ3WIwmOAo3vSPtKn1HxaLx3wT+v0t3r/DH4dUE20ahVMc80bLxN2VWl4lYW1gl22v4QKvT8uy1D+/D3pPPPS8WZqnfrRoSFkqvpYPRZTN88El6ibwaVyZ1/OWTQzr+Ob6LdT67UBoZ1te2KkevBl1Tq8kZ1h8rlrDj3RGsc/2X3UsHw6v2w9Ot6Cf30ev1tBrXBVURw9++gz4Li9pNS43mpqox48dw2foxlq6G3sx81jmZWO+nJD1dPn36ND1+7k2xgVUAKOtWgmGVRM2Vr/H8+XNq1KghV5Dfu3cvttkdGLZ/MnpJj7HKiLn1x+NgkT4y1kVFRVGnTh051e4ff/xBkyZNAPAOeMbIg9ORkDBTm/J7g/HYmKVe7/kDP28WXfiTlyFvkrSfm3VWanlUolrO8liaWCRLW06cOMGwYcPw9fWVl9X5zotKHWpy9tVVQqPDYm3/qSDlg4CAAKpUqUJQUBAKhYLjx4+TO3fuONudfHqB+edXyb8PrtiTCu6eyfKa/p8kSVx+eYPNt/fwJNBHXm6iMqZSjjK0LtwIO3ObFDl3Yq2/sZ3td/fLv3ct2YoG+WrG2e59ZAijDs3gTZgfAE0K1KVj8biZERPjypUr/Prrr5w7dy7W8jp16jBy5Ejy58//yX3v3LlDmzZtCAgIAKBNmzb89ttvX9QOIYYIVjKJ1wFv2Hv+IBefXeMNAaht4z4V0UVpsQwyol7BGrSq0Qwj9Zfldz9z8zxzjy4D55j9tf5RDK3ci0rFyn/xa/jY9hO72XZtL2HW0aj+S8sq6SUI0ODpUIRBzfqkytCqgOBAeq8chiKbIeDT6/TUsi5L30Y9Etx3ytrZXDN6BIAuXMP8xpO+6bk+nyNJElPnTueM8ibmLoanZUqdgnG1B1PQKW+C+1+8fJGJ5+Zj5mC4URleoS+e2YulaJtT0/KVy9no8y+2BQy9TTYqK+Y0GY+FcdKCd41GQ7Hixcg/pALGViaYqIxZ0XwWxqLWwxeRJInOnTtz5IihB6VHjx5MmDCBycfncfPNPQBaF2lEy8IN07KZcRw+fJjOnTsD4ObmxvHjx+VsRksvruOQ9ykAauSqSN+ynVKlTUe8z7Ds8np0ep28LOD2a/xvvCLs5Xt00VrUZkZYZLXGJr8jtgWc44wUMFIZUcG9FHVyVyGf/Zf1tjx9+pTp06ezc+dOACyyWeNUzI3CtUsSqAyJs30Z1+K0+EyQ8rH58+czbZrhQUq7du2YNWtWvNttvb2Xjbd2AWCiNmFanRG4JnNdpEhtFEsuruX080uf3MbcyIzvS7ejUva0ScRx8NFJll1eDxgS/nxfuv1nawF5Bzxj9OFZaPVaVAolM+uNxi1L4r9zHz58yIwZM9i7d2+s5SVLlmT06NFyjaKE3L59m6ZNmxIREQHAnDlzaN26daLbIcQlgpV0SpIk/IMD8H75hDdBfgSGBhIYGsz7iPeERIURrokgXBtJmD4CjZn+k+kRJb0E7zSUdS5G93qdkq0ehV6vZ9K6mdxUPJZ7D3TROsqbFOGn1gO/+LhX719n2r75SC6fv3nSBkfTLGcdOtdt+8XnSsird68ZsH4kKhfDl7heo6OpSy061W6TqP31ej1tf/8e/gt0bIPMWNJbPGH5f1FRUfw4bhi+Od5jame4+VbrVPzq9TO5EnED8EHn0d8TWdRw85JFZ8HSdjMzxdC7DX9vYOm1DTiWNCQaMJLUTG/wS4IT6j+lT58+3LXwwbms4b0dWbU/JbMWSWAvIT67d++md29Dz5SLiwvHjx/nTtAjZp1eAoCjuR1z6o9Ld0kfJEmiQ4cO8mTxkSNHMmCAYa7X+8gQBu4dR7gmAgUKptQZTm67lB1WuffBEVZf3Sz/HvIsgEebbhD+6v0n91EaqbAvnhXn8jnI4hF3foKjhT2eWYtSwDEPuWzdcbSwj3cOjl7SE6mJ4sLNS/y9czOX7lzB2M4UC9csWLpmkYdcfkylVFEpe2maFaiXpJvh9+/fU65cOd6/f4+RkRGnT5/G1TVuXRtJklh4fg0nnp0HDHOIptT+Odmuo5CoUCYfnxerNyWHjRsFHfMQGh3OZd8bsSaxty3ahOYFvVL18/TKy1tMP7WID7eoic2kt/nWbjbf3gNAUef8jK42KMF2v3jxgtmzZ7Nlyxb0er28PFeuXIwcOZIGDRok+bX/888/8t9UlixZOHr0KM7Ozkk6hhBDBCvpxP1nD/n7xDa8g54Too5AYaFCZfJl4y0lvYTeL5qCVrnpUL0lBXN+usvyax27eop5Z1ei/iijmPk7FXM6T8I2CVmwNFoN4/+axj3V81ivWxepxeg9qCQl4UbRGNnFTs1q7W/M9I7jsLdO3iEWj328GfbPRIycDb03uigtnXI3o1mlpD0hvfP4LmNOzUZlaoSkl/i5VC/K5C+VrG3NyAICAug18QekUubyv7uZzpgZTUbjbOmYpGPdun2LEYemyj0zo6r8QPFshZK9zalp27ZtzD22DJdKOQFD5q/xtYdSwDHu8JHE2rx5MxNXTKNgt7IA1M1TlZ6eiZ/3IhiEhIRQvXp1edLtsmXLqF23NoP3TZTT0Q6t1ItybiXTspmfdP/+ferUqYNOp8PGxoazZ8/Kk4F33z/Mn9e2AJDP3oNJteKv35McDjw6wfLLG+TfX5705umO2ygVSmrWrEnVqlXJnTs35ubmBAcH8+TJE27cuMHJkyf5H3t3GR3V1QVg+B2LuxGSACEEgrtrcPfiWtxpcSkUL1a8Lf0qFC9ubXF3KC5BghMS4m4j9/sxMJASCAlxzrMWq82dK2cmk5m7j+wdFBQEgGkeC5yrFcCpYj6UZu+/obcwMkelUCJHhlanIzYxlkSdBj7yqeW3dqWeR3VqFqic5sQU8+bNY9myZQCMGDGC8ePHJ7tfvCaBSQfn8TzSH4AGHjUZUKlbmq75tujEGGYcXWJYm2SqNGFApa5Uz1fR8DuOTojh9yubOfXkguG4DiWa06Fki0++/sd4GPqUb48uIkGTAEBLrwb0KNv+o45N1CQm+Rv8ps4ISjsnX4PL19eXn3/+ma1btxpSUQM4OTkxcuRIunXrhkqV9lHnESNGsG3bNgCaNWvGL7/8kuZzfe5EsJKOwqMiCAwLwtPN46Pmkd99cp8Nx7dyK8IX2X8Wr6eGJlaNPFqHrcyK8vlK0aJqE/LlybwqxOFREXy9+htiHDVv2hSawNBKvahfsU6Kxx/59zg/nF2NwulNwKOJSqSKZSmGtRpgWKciSRJ7Tu1lzZWtyPO8tW9EIv1Kd6JZ1fRZDHrD9xZT9y9A5fAqUInTMLh0NxqU907T+Ub+NAF/O/0iTKMQGeuG/Jgu7czpTp05xYxtC7Gp/KZn0l5uzXctJqZ5nnyXcb3RVtD/3vLKHVjaYWa6tDUrbNm6lRVnVpGnyqvRJQnG1xpMBddPm94WEhJCucrlqTyjCXKlHEdze1Y0n5krRqEy09SpU/ntt98AqF+/PqtXr2bb7b1sfjV952N7dbPS119/zebNmwEYO3YsX331FQAanZax+2YZFiyPqPolNQtUTvfrX35xk7knfzD8/OzAXZ7uu0v79u0ZP358sqMOr0mShI+PD4cOHWL//v1cvXoVuUqOfRkXnCrmw8rDPsnayrSwNrakkL07ZZ2LUy5viVR3oCQnICCAKlWqoNFocHBw4OLFixgZJR9gPYt4wcSDcw2Zrj61NpJaq2bOiRXcCtQXs7QxsWKq91fJjg5JksSuOwcMGeIAepRpT8uiDdJ8/Y8RGBPCN4fmEx6vH1Wrmq88X1Xrm6o0zmee/suSs/q/zf8G25IkcfbsWX755RcOHDiQ5Dhra2uGDBlCnz590iXtcGhoKN7e3oZUx+vWraNu3bopHhccG8qNgDs8ifDDLzKAeHU8ap0GK2MLHM3t8bDNT7m8JbN8PVFmEsFKOgmPiqDP+q9R2hqjCU2gsHF+OlZvQ7kipQ2Bi06n48Ltf9nz737uRT1+J7vWazqtDl2kGkWiDBOMMFWYYKo0wcLIHCtTC6zNrLCzsMHeyh5Xh7wUye+ZaSkcP+T7LSs4E3fN0EMuaXXYhZvzTfvRyQZPT/yfMmfbYkLtYpOkUbYJNWFOl29wsEk+9aBWq2X2hu+5Jt1Pcq0CcU7M6TkFI1Xah8r/Pr2fX2/+icpGP4KjjVYzttpAqhZP+xdEcFgI/beMRWWtD7BGlOhJzZKfbwamhIQE5v60gAuSD+Yub9I6lrQszIRGwz5pqsPxE8f5/uZvmNjr167MbzQJd9t8n9zmzPbjyp/Y8ugfHMu76TdIMKxqL2q7p8+asBYtWpBYxQSbIvqbr8VNv033OfG52fXr12nevDk6nQ4TExOOHTuGytaE0ftmotaqkcvkLGg8mXzWLlnd1A969OgRderUQavVYm1tzblz5wyjK1f9bzHnxApAnw52adNpmHyg6GhqBceEMnb/bGLU+sJ+z4/cJ/T4c5YuXUrjxqnPgPXixQsOHDjA/v37OXPmDJICrD3tMXe1xszFCiMrE1QWxsgVcv1Iikw/cv/6n6WxBV75PKletiouNs6427pha2KdIcHmwIED+euvvwD48ccfad269Xv3PfrwDD9dXAuAidKYuY0m4mKZ+ulEkiSx4vwfnHw1WmJlbMGMeqNxSeHv/u+7h1n9apQNYEDFbh9cN/IpohNimHJ4oSFI9nIoxBTvkaleU6eTdIzZN8swKjW5znDyyh3YsmULGzdu5NGjR0n2t7CwoHfv3gwePBgbG5t0eS6vbdu2zVBXx93dnSNHjmBs/O7UwqiEaI49OsfJJ+cNo14pKWxfkKaFvanqVj5Vmc+ePXvGmTNnaNSoEba2OaMOnAhW0snzQD++PjTjndolmuhEZPGvMqeby1GaJv9HpwlLIL/cmYal6lC7dA0szXPmdLYzN8+z8MTPSaaFaRO1mIcpKebgiaOVPYERwfgE+xJrp0Fh9OYPTBOeSPfibWhXq+VHXevi7UvMPbwChdObL1BdcCKDq/akfoWUR3TeJkkS8zYs4aLutqFN2shEptUfRSmPEqk6V3Im/jqdB5b6D2CzUCV/DF7+yefMiU6cPsncHUsxK/dWr6dOon2RpnQs3+qTbwwkSaLV1x0xraYvClbUrCAzWo771GZnGq1Wy/Q5MzijvYFdsVc3JBKMrPZxtVQ+1vz589ly9S8Ktta/t3uW/YIWXvXT7fy5mVqtpmXLlty4cQPQp6QdPHgwc04s51qADwAtitSnZw6pAv/26MrbhSIB5p74gcv+NwFoU6wxXUu3SZdrarQaphxeaCiEGHLDn/C9z1i3bh3FiiU/ZSc1IiIiuHjxItevX8fHxwd/f38CAwPRarVIkoStrS1OTk4ULVqU0qVLU6NGDZycnD75uh/rzJkzdOjQAYCqVasapgol57/rVwrYuDG7/thUd+psvrmHrbf0C8dVChXfen9FEQePjzp2++29/HlDn3BAhoyR1fpSPX/6ZihL1CQy8/gy7gbrs9S5WOZhZv0xWKZxut2Zp5dYcvZXAKSXiZxbcCDJehTQrzPr378/Xbt2zbB6KJIk0b59e86f1//+xo0bx8iRIw2PB8WEsOP2Po4/Podap3nfaZAhM9Tg+S97M1s6lWxJ7QJVPthxHRcXx88//8zy5cuJj4+nbt26rFu3Lo3PLHNlWrBy4cIFVq5ciY+PD/Hx8Xh5edGrVy+aNm36yefODsEKwOp9G9jjexi548d9iLwOUNpWakatMtWzxehIeoiOjWH6xnk8MgpAbpRyUTGdWkvBxLx822UcFqapSzsZnxDP+FXTeWEVaggUJZ2EVagxIxsPoLRnyoGGz6O7TNu5AMnlTSAphaqZ1/obPFzcU9We9wkOC6H/trGoLI2RdBKTKg2hnGfuyVaVkgcPH/Ld2oUE5Yk1FHAEMFMb802Tr/B0cE+3a23dsZX1of/oF8bqJH5sNSfbpI39kLCwMIaOG05kSTBz1qcBl0kyxtYaRMVPnPr1XxcuXKDroB6UH69PAVo6TzG+8U57YozPybJly5g3bx4ARYsWZd++fVzwv8rSs78D+huHxU2mpusoREZ6/PgxtWvXTnZ0xT8qkNH7ZqLRaVDKlSxqMgVny0+/qf/j8mb+uX8UgPiQGB7/do1tf26lcOGUM//lBpIkUbduXe7fvw/os7MVLVr0vfvHq+OZeHCeYcShQaFaDKjY9aOvd/zROX64sBrQ3/SOqtE/VWupJEli/fUd7L5zENAnGBhfczBl8356Rx7op6d9f+YXLr/QdwBYm1gxu/7YVFeiV6vVXLlyhZMnT3L8xHGkRjaGDJFXFhwzJGyoUaMGXbt2pVmzZu+dgpeebt++TZMmTdBqtZiYmHD8+HEs7C3Zcutvjjw6kyQDHkAh2wJUcC2Fl0Mh8lm7YGlkjlwmJzIhihdRL7nx8i4Xnl/laYRfkuPyW7vSrUwbyjqXSNLxp9Vq2bp1KwsWLMDf39+wvV27dixfnjM6TjMlWNmzZw9jx45FqVRSpUoVFAoFZ8+eJTExkeHDhxsyJqRVdglWXrt05wobT23naZw/GlMJhbl+cbUuToMqTk4hi3w0r9iYaiUq5ZoAJTk3H9xm2f5fCLGITjZZgDZBg2OsFcMa96NkwU/rTdt54i9W396O6q2UzTqtDtMQOd4e1ehcrz3mbwVCkiRx/PIpNpzdTohV0vZZhRmztPcczE3St6bL1z9NxM8u3HCNXwctSdfzZ0cPHj7g+00reGoaiFneNz1Xkk6illNFBnv3QpXOaXM1Gg3NRrfHprp+Ck4NpwqMrJs9CvK9z82bNxk+axQ2jfKhMtd/eaokJZPrDad4BlQ9V6vVlCxZEq+vqmJiZ4ZSruT3tguzTSG47OrOnTs0adIEtVqNXC5n9+7duBf1YMz+WUS9qlQ/tuYgKrmWyeKWps6oUaPYtGkT8O7oytt1Lsq7lGJCrSGfdK1zzy6z6Ix+obFOo+Xe//5lzdLfKVu27CedN6dZtWoV33zzDQB9+vRh5swPr697Gu7HpEPzDOtXBlbsRv2PmI51K/Aes44vM9wQp3UUVZIkfv53PUcengb0FeQn1xlOMcdPCzDVWjXfn/6fYQTPRGnMtLqjPioVdFhYGNeuXePKlStcvnyZc+fOERsba3jcuaY7hdrpO3pibodS26w8nTt3pkCBzC8a/HqNm0wuo96AZsiKmyfJuGaqNKGeRw0aFqqZ4tQ8eLVmK8iXXXcOcOXVa/daqTxe9CjTHqM4BZs3b2bTpk08ffrU8LhcLqdfv36MHTs2XdbmZIYMD1ZCQkKoV68ecrmcNWvWUKqUvrjbgwcP6NmzJyEhIezcufODvQopyW7Byn/pdLpcHZSkJCo2mn/OH+D283tEJURjbWpJUZfCtKzWBLN0DAhi4mKYsWEBviq/d4IjbaIWItQotQp0SGhMJcMaEsM+sWoaOlZnYPMvM2Sest/LFwz/ZypKMxWSVsd33uPxdPm4YficRKvVcvDEIdae3EKUfSImDklHy5y0NoxvNpx8Nhk3n3/Zz8s5bn4DhUqBTAu/f/F9qmuSZAatVsuPK39k8+2/yVu7oGG7ndKaaY1H45wOC3rfp2/fvty3eIFzdXcAxtUcnO4jOLlJfHw8bdq0MUz/GjZsGOMnjOe7EysM078qu5ZlTM2cV2TzyZMn1KpVy5AZ7Ny5c1ha6kf34tXxjNw7zVCpfUKtoZR3SVuq64CoQMbun02CVp956cGWa0zsPIovvsgZU+bSU0REBOXLlyc+Ph5ra2suXbqUYqXzt9evyGVyxtUc/MHfhW/IY2YdX0asWl/vo7FnHfqU75Ts91twcDAxMTHY2NhgbZ18ghOdTseSc79x7tllQF88clSN/mlOfR6dGMPiM79w4+Vdw/km1B5KiWQ6aOLi4rh58ybXrl3j6tWrXLlyhcePH3/w/F4lipLny6Jo5ToUcgU/tpiNbSYWOX1bZGQkjTo3w6FxAUPGStAHKU2L1KVFkfppLmh6O/Ae667twDf08ZuNkkTQZT9eHH9A9PMIw+YGDRowadKkDxa2zI4yPFhZtmwZP/zwA/3792fMmDFJHtu2bRuTJk2iXbt2fPfdd2m+RnYPVoTM9TTgOYt3/8gTVSBKs5R77XUaHY7RlnzTfjSuGVy0cfDyUYQ46b84XKJtWdJ3ToZeL7Oo1WqOnz7BjrN/8zDxGeaF7fQLWd9ikWjCgJrdqVowY6oxvy0yMpI2M7rjUEmf2KGtZ2O6VGiT4ddNjQcPHjBm1gQSSiqxcLMxbC9uW5hx3oMxM8rYoqerV69m4fplFOv7KoVxodr0qyhSGL/PuHHjWL9+PQBFihRh7969bLu7l1139BmFbE2sWdDkmzSntM1qb69dGT9+vGFRMMCpJxdYdk5fVd3ZwpHvm0xJ9YhooiaRyYfm8+TV1JWgS88pHpufFctXZOuMaRlp5MiRbN2qX7y+bNky2rdPOT3v6itb+fveYQCUciUjq/VJdkrXtYDbLDrzC3Fqfe99ubwlGVdzEIq3as1otVrWr1/PmjVr8PHRB9wymYxy5crRvXt32rdvj1KZtONPrVWz4NRKrgbcBkAhk9O/YlfqFqyeqt/j80h/FpxciX90IKAPVCbWHkpxpyJIksTjx4+5fPmy4d/t27fRaN6/pgP0KYdr1qxp+Ofq6sr6azsMf6Ptijelc6lWH93G9JKoVbPl5l/svnPAsOpEkiTqFaxOtzJtsTKx/ORrBAQEsGjzCu4Z+WFkm3QKarRfBJZxJtSpWBMPDw8CY0KISoimkWdtCtsXfM8Zs5cMD1batWvHrVu32Lx5M2XKJB0aDw8Pp2rVqtjZ2XHmzJk0X0MEK0JyomNj+PPoNk4+Ok+UKg6lTdJF/8pIiaLWhehdvwsF82bOsPAtXx++PbcYuUqBNkHDL23nY2eZM7Jx/FdiYiL7Txzkr0sHeKZ9iVkB62RThdommvNl9c5U8aiQqTclk76bwn33IGRyGUZaJX90WpyqjCkZJS4ujiXLl/DP42M413Q3rLWSSdCtdFtaFmuYKa/TkydPqOldiyqzmooUxin48ccfmT17NgAmJibs3r2b50bB/Hb5T0B/g/dNnRGUypP2GQJZ7dGjR9SuXRudToeNjQ3nz583fJ9KksS0o4vwCfIF0rbY/ueL6zn88BQAsS+jCNnykP1/78uwhc05wYULF2jbti2Q8kL71/47ugH6joY2xRrjYG5HaGw4u+8cYO/9Y4YF2SWcijC+1pAk0zz9/f3p378/V65cee+1PD09WbRoERUqJO1gUmvVLD/3B+eev2lDzQKV6VehM2aqD3ey6HQ6/rp3iE03/0L9akqblbEF/Up05umVBxw7doyTJ08SGhr6wfMYGxtTsmRJypYtS7ly5ShTpgwFCxZ85/MrJDaMYX99g1bSYWlkzo8t52CciUVaH4Y+ZcX5PwyZyQCinobxYOt1hncfzPDhwz/p/L6+vqxcuZJt27aRmJiITCEnbw133BoVQfWBmkOgT+s8q8HYT7p+ZsnwYKV06dIkJCRw+fJlzM3fHeKqWbMmQUFBnDlzBnv75FPVpkQEK8LHiEuIIzAsCAszC2wtbVKVtz099Vg8mIRXM6CKaQswveuELGlHWsTHx7Pr6N8cuHmUQGU4pi7J9wjJEiRKmHvSp15X3GyzJn2rn58fvVYOw66kfv7vgHJdaVCkVpa0BfQ3fHv37mXBxmVYVnMypFcGsFfZML7ukExPs1yjRg3Mm+TN8SmMNVoNGp0GlUKVpOf4U0mSxA8//JBk5H/JkiUYl7Jm3bUdhm0fW107u3u7iN3bVe1Bv2Zi/MHv0Oq0yGQyptf9+OKkRx6eYeWr6UvaBA03l59m3Y+rqVQp/TLc5UT/XWh//PhxPD09UzxOq9Py04W1hgxhrxkrjQ2FFF+r4FKKr6r1S3KD7uvrS5cuXXjx4oVhW9myZcmfPz/37t3jzp07hu1yuZwhQ4YwevToJIvRdTodf1zZwj7fY4ZtNiZWtC/ejNruVTD9T4KJRE0i555fYafP/iQ37laSGYG7HnLpxAXeRyaTUbhwYcqVK2cITooWLfrRBRuXnVtlKHDZr0JnGnmmLltoWkiSxH7f46y5ug3NqyxfCrkCb8fKzO49Ba1ag4mJCUePHiV//g+vz9HpdMTHx5OYmGj4d/v2bf7880/279+fZF+VSkXjxo35onMHyGfMkYenDVn33iZDRrcybWhVNH3q02W0DA1WIiIiqFy5Mubm5ly+fDnZfV6PvOzatSvN61ZEsCLkJEcuHucn343I5DK00Wo29vrxk2qLZDSNRsPuE//w9/VDBBtFYGyf/NoPebxEYQt3WlVsQrl8pVCm401jWvWfMJiIVzMkrCQzfum0MEtGDk6ePMnC9UvReBlh7vJmzrRMB22LNeWLUs2yZNRn0qRJHHx8KkemMH4e6c/hB6e56n+LF1EvkZBQypUUsHGlgktp6rhXwdE8bR1goJ9WMXXqVP7++2/DtlETxyArb5GkVzs9U/pmNV9fX+rWrYtOp8POzo5z584l6WTc6bPfUCQwj7kD8xpPSrEn/U6QL9OPLkEr6Rd439twmV7enZMs4v+c/fzzz8yYMQOAQYMGMWXKlI867vXN8Npr2w0jFG9TKVR8UbwZrYs1StIxFxAQQKtWrfDz00/Hy58/P0uWLKFKlSqGfS5cuMD06dO5evWqYVvJkiVZsWLFOxnbzjz9l5//XW+Ybgb6KV1FHDwMRTQDo4O5F/KQ+LcDKQkCzzzhwe6b6NRJs2FZWlpSqVIlKlSoQPny5SlbtuwnjcA9CnvG+AP6Kdd5LBxZ2nRahq4jjk2MY+XFdUlGngra5GNolV7kt3FNUlDWy8uLHTt2vLNOKCwsjE2bNrF7927u3r1LfHw8H2JlZUWPHj3o06cPzs5JO5wi46N4GPaM8PgI5DI5VsaWuNu6YWOSc0Y1MzRY8ff3x9vbGwcHB06fPp3sPl26dOHy5cts3LiR8uXLp3jOwMBAgoKCkmyLjY2le/fuIlgRcowOi/ogc9UPydcyLcfwVgOyuEXvevj8ESv/WcXd+McY50l+4Z8yGkrae9Guagu88hTKdlOIrl69ysQD32FZQJ+6eGKtYZRzSZ90mx97/bmrvifCTY1l/qTT/Tws8zGiVt80FXhLL/v372foxBGGFMal8hRlivfIFI7KWhHxkay/vpPjj869t+4A6OfS1/WoQfviTbE3+7iplvHx8Rw7doxdu3Zx4MABww2CXKWgy6TeBDpEGxYrA3Qs2YL2xZtlu/f9pxg2bBg7duhHjb755hsGDx5seEyn0/Htke+5G/IQgHJ5SzCu5uD3jmYFRAfxzaH5RL7KlPbixEMcX5ixZcuWd9ZCfK5CQ0OpUKECiYmJ2Nvb8++//6YqnW5oXDiHH5zi+ss7RMRHYmNiRXGnwjTyrIOdqU2SfePi4mjTpg03b+qzRxUvXpwNGzbg6PhuIg+NRsOPP/7IokWLUKv1wZCJiQnjx4/nyy+/TDKqERgTwtqr2zj//P1Tyt4W+SiUx7tvEfUkzLDNy8uLxo0bU7duXcqVK/fRoyYfa+axpdx4qR8xGlW9P1XzpXy/mRbPI/2Zd/InXka/uU9tVqQe3Uu3NXRIRUZG0qxZM0NxyjJlyrBkyRIKFSrElStX2LRpE9u3b08xQIE3tWK6detmSIqRG2VosPLy5Utq166No6Mjp06dSnafzp07c+XKFTZs2PDOvMjkLF++nBUrViT7mAhWhJxi/b5N7Io4BoAuXM2WAb9kixseSZLYd/IA6//dQbyTDrkq6U2IpJMwipRTIW9JOtZsg5td9q7QDdB+RBcUNWwAcFLasbzdrAx/rX18fJi/ajH+dhFYFUxa48VRYUu/Gt0o61w8y3/nUVFRlCxZkjITvN+kMG6zINvWCLnqd4sfL64hPCHSsE0hV5DfygVzIzNC48J5EfUyyTEqhYpWXg1pXbRhss9Lp9Nx6tQpduzYwd69e4mKijI8pjQ3omCDYuTzLkyClGjYbqYyZUjlnlR2K5v+TzKL3b9/n7p16yJJEjY2Npw+fTpJVe+X0UFMODiXmER9itja7lUYVKnHOyOpL6JeMvPoUkLi9DekYXcDeb7Jh4P7D+Dm5pZpzycnGDx4MLt364surly5kpYtP64wcmq9nSQiX7587N69O8VimDdv3mTYsGGGqWqgX8syfvx4GjVqlCTofBT2jIMPTnL5xQ1C48KTnCcxMp4wn0ACLz4l8qF+PYqlpSWtW7emS5culClTJkM/D68F3Gb2cX1NEU87d2Y3GJfu17vqf4vFZ381jDKZq0wZ/J7PiUePHtGqVaska3OMjIxITEx8Z9+CBQuSN29ejI2NMTIyQqVS4ejoSO3atfH29s6UWjFZLUODldfTsywtLfn333+T3ef1NLCdO3d+VOVaMbIi5AaSJNFu2ZeonPVTKNo7N6RTnXZZ1h6tVsvavzay684BlPnNkMmTfojLw3VUdCxFz3qdcLLJuHS6GWHvvn2suLMW81d1XsbWGEQlt4ypg3H37l3m/7aIZ1Yh2BRO+jrZYEHf6l2p7FY2y4OUt7Vr144gtzjy1nAHsl8KYz8/P1avWc3pl5cwq+JoeG9KiTqKygowuEkfXBzeTHsIjg3l8IPT/HPvSJI6Bram1nQt1YZa7pWRy+TExcWxZs0a1qxZ804KVBMHcwo2Ko59+bxI/5kt4l2wGl1Lt8lRUyhSa/jw4Wzfvh2AAQMG8O233yZ5/ObLu8w+vgytpK8IXtLJi/4Vu5LX0gmNVsOJJxdYfWWL4fWP8Y/kxorTLP9+Ka1bt87cJ5MDnDx5ks6dOwNQu3ZtNm7cmO7X2LZtmyHDm4mJCX///fdHT72Pi4tj9uzZrFq1Ksl2Z2dnGjRoQLly5XBxcUEmkxEaGsrDRw+5dOsK1+7eICE+AXVUPImRb6aAVa1alc6dO9OiRYsU0zWnF0mSGHdgDk/CnwMwre4oijulTxFSSZLYe/8oq69u5fUttbuNG2NqDsLpA1NRfXx86NOnT5IaKK9ZWlrSsWNHevXqRaFCH7c2LDfL0GBFkiTKly9PbGws165dw8Tk3V6t1wvsT58+jYND6qqVvibWrAg50aJNKzjHLQAUoTo2Dv4509sQFxfHT9t/5XjABYzdkv7taBM05I23o7d3FyoWKZvpbUsvOp2OFgPaYdFQn5baVm7JT+3npuucZV9fX+b/sohHpi+xLZa0p9JcZ0Kfqp2p4V4py5I6fMjSpUv59e/VFOurn7OeXVIYx8XFsXTpUlb+vBLXJkVw9X7zhR1+N4h7Gy6jjkrA2tqagQMH0q9fvyTrK6ISotlxex97fY8lqRDtYZsfpyAL1i/+gwD/AMN2mVKOS7kCeDUpQ4KtLklb5DI51fNVoFXRhpmeBCEr+Pn5Ubt2beLj41GpVBw9epSCBZOmOD337DLLzq0yLB6WyWS4WToTHh9JVGKMYb+YFxHc/Oks7Zq3YfHixZn6PHIKnU5HzZo1efJEvxD6zJkz6Vq48MGDBzRp0sRQMHHx4sV07Ngx1ee5cuUK06ZNe2/n84fkyZOHDh060KlTJzw8sqa+2InH51lx/g8AyuctyYTaQz/5nBqdlt8v/cmhh29mD1V2Lcuwqr0/qshubGwsa9as4dChQ4SHh1OwYEEaNGhAixYtkk1K9bnK8GxgnTp14urVq2zfvp0SJZLOFX+dutjW1pazZ8+m+RoiWBFyoviEeDr/PhgjO30Q38u9Dc2rNM6Ua4eGh7F4yw9cj7+HsVPSD0RdrIZylsUY0qQPthY2mdKejHbgwAEWX/3NsHZlYIVu1PdMufpzSgICApi9fC4+8ieGrGOvmWqN6VGxPfU8a2TrorBXr16lZdtWVJnVBLlSgaOZHStaZPxUuQ95+PAh/fr1457vfQp3KYtj+bemDfnE8mTfHZ4/e57kGHt7e0aMGEH37t2TdIz5RwWy9uo2/n1xPcn+6ugEop9HoI3X4ODmhMLBCC1JgxQTpTH1PWrSvEg9HMyTTufL7ebPn8/SpUsBaNSoEb///vs774nbgfdYfu4Pw1Sv/wq8+IyH26+TL28+9u/fL76fP2D58uXMnTsXgIEDBzJ16tR0OW9CQgKtWrUyrFPp1KkTixYtSvP5JEni6NGjrFmzhuPHjyc7bek1e3t7mjRpQuvWralatSoKRdYmXdHotAz/ewohsfr366z6YynikPbAKSohmkVnfuFW4D3DtrbFmtCpVMts2TGVk2V4sLJixQqWL1/OkCFDGDky6cLNrVu3MnnyZNq2bWv4I00LEawIOdX0P+Zyy1TfmyYL1fLnoJ8z9Cbxqd9TFu34kceqlxjZ/GekM0pLXdeq9GnYPVPz0GcGSZJoO7AjRvX1o7cqnYKV7eZimcYCfnFxcSz933IOPD+FfXmXJNPmjLUqupVvS8MitdM1jW5G0Wq1lClTBpdORQ0pjBc1nYqbVcYWSH2fAwcOMGLECGLVcRTtXcnQJhkyBlbqRj2PGgDcunWL3377jS1btqDTvQky8ubNS69evWjQoAFubm6Eh4dz5swZNhzagqaEsWE64Ic4mNnRyLM2DQvVwtwo+ex3uV1MTAw1a9YkMFBftO/HH39MdgpXvCaBv+8e5szTfwmIDsJEaYytxpK/l28j8kEIRkZG7Ny58506a0JSQUFBVKlShYSEBCwsLLh48WK61KCZNm0av/zyC6Bfa7J3717MzNLnPR0TE8OlS5e4d+8eoaGhaLVabG1tcXZ2pkyZMri7u2erKa8AB31P8sulDQAUdyzMt3W/TlMb/SIDmHvyR8NCepVcycBK3antXiWFI4W0yPBgxd/fn6ZNmyKTyfjtt98MGb8ePnxIz549CQ4OZteuXXh5eaX5GiJYEXKq2LhYuq4agpG9ft5uSwdvetTvlO7XuXbnOiv2/kqITQzK/xSKUkRItCnWmA41W+fq3qAbN27w1Z9TsC+tvwkvb1+CCQ2GpXBUUjqdjj+3b+aPs39iWc4JxVsJCIy0SjqVaUmTonVTXd07qw0ePJh/I269lcK4PS28GmRqG3Q6Hd9//z1LlizByMaE4v2qYu6iv1lTKVR8Xa1fsmtpfH19+f777w0LlD9ILsOuhDNFGpTEvIAN8bo38+jtzWwplaco1fNVpHSeotl6NCyz7N6925ANzNbWlv379+Pq6vrBY65fv0779u0NU46+++47evbsmeFtzQ3eXgD/30xsaXH48GHDa29kZMRff/31zgyXz41Gp2X03hn4R+uD8NE1BlDFrVyqznHV/zZLzv5qyAxobWzJ2JqDPmmURviwDA9WADZv3syUKVNQKBRUqVIFIyMjzp49S0JCAqNHj2bAgE9L2yqCFSEn+/7PFZyX6deuaKPUrOq6GCuz9ElBePTCcX47sYE4ZynJjTWAabiCHlU6UL9M7WzX+5VRJk6fxN0CgShN9cHEl2U60LRovY869sz5s8zftgx5MbMkAZ9cK6OVV0Pal2meY0ekNm3axOS5Uyk/IWtSGEdGRjJ8+HAOHTqEuasVxfpVwdhaH8BbGJkzvtZgvBw+vMj05s2bLFiwgEOHDr13n6JFizJq1CiaNWumv25CFIlaNRZG5u8UsRP0Bg4cyF9//QVAqVKl2LFjx3sXRfv6+tKuXTtCQkIAaN++PUuXLv1sPl8+la+vL97e3kiShIODA2fOnEnzuoWAgAAaNWpk+F3MnDmTPn36pGdzc6xzzy6z6Ix+tMnGxIpFTadiYZTy6yxJEnvuHmT99Z2GhfQFbNwYX3PwZzdNNLNlSrACcOLECX755Rdu3ryJQqHA09OTPn360KjRp1fPFMGKkJNpNBo6Lu+H0kV/A+AaY8fiPrPTfD5Jkth6eCebr+4BV6MkU5QkrQ67GAsG1etFuULZJ+NTZomJiaHtyM7YNHy1BkInMbrGQKrkf3/P2uMnj5m+ai6hzvEY2751k6aVqJm3In2qd8HCOGcvhHzx4oW+CNs3DTI9hfGFCxcYPXo0Dx8+xLlaAQq2KWlImZ3HwpGJtYemqhbNs2fP+Pvvv7lx4wbBwcGYmZlRvHhxvL29qVixorhxTqXQ0FCaN29uyFhUvXp1fvvtt3emKJ0/f54+ffoQHh4OQOXKldmwYUOmZXvKLQYNGsSePXsAGDNmTJqKZ8bFxdGhQweuXNHXPWnYsCGrVq0S7/1XJEli3qmfuPziBgBV3crzVfW+H5xZEK+O53+XNnLqyQXDtoquZRhRpXe2TfWem2RasJKRRLAi5HRHL57gh3vrkCv1N2nt8jSgs3f7VJ1DrVbz2541HHhyAqVL0jnJugQt+XVOjGg6APc8+dOt3TnR7du3GfzzGPJUf5VtRyfRzqspHcq2SLLG5O6Deyzf9T+eGgVi4vgmGJF0EsXMPRhRv1+u6k2rV68e6pLGb6UwHkRF14xbZxASEsLs2bPZtGkTRjameLQtiX2pN+tkCtsXZHzNwViZ5N5CZznF3bt3adWqFdHR+uKOBQoUYOzYsVSuXJmQkBD+/PNP1qxZY+htLlGiBJs3b05Sn0X4OA8ePKBu3bpotVosLCw4ceIEefJ8fLAuSRLDhw83FPZ0cXFh//792Nnlns+q9BASG8aofTMMNVFaF21E19Jtkg3o7gY/YMX51UkKPX5RohlflGieq6dOZyciWBGEbOLrHyfhZ6/PUqKN1/BV+S+pVap6isdFxUSzfPtKLoTfxMgpaS+mNkZNSRNPRrQYgL2V+LJ67eDhQ8w9uBz7cm+KWioSZeTBFk2ChpfRwegcFO9Mncujs2VUo0EUtM99Ad+0adPYdma3IYVxA4+aDKjULd2vo9Pp+PPPP5k9ezYRURG41ClEvoZFUBi/KS7XxNOb7mXbYZTD1v7kZpcvX6Znz56EhSWf+eu1mjVr8uuvv+bqatoZbfz48axbtw54fya25EiSxNy5cw2Fs01NTdm1a9dnv07lfS6/uMG8Uz8Zguya+SvRvWw77ExtAHga7sfuuwc5+fgCEvp9jJXGDKvSK9XrXIRPI4IVQcgm1Go1XZcPROaqz82ujVPTqWALOtZpk+z+Pg/v8tO+33mmCkJllTSfuy5CTXXH8gxu3gdTIzFEnZyjx44ya+ci7Kq4vlME878s4owZUvdLKhbIvRmNzpw5Q6dunak8swkKlQILI3N+bvVduiYLuH37NhMmTODSpUtYezrg0b4UZnne3NRaG1vSr2IXcSOQTT18+JBx48YlW2rAxMTEsAb17armQuqFhoZSt25dgoODAX0a6W7dPtxxoNPpmDt3Lj/88INh26+//krTpk0ztK053b77x/j98ibDzzKZjLwWTsRp4gmLi0iyr5e9B0Or9MLZ0um/pxEymAhWBCEbeRHoz9CNEw2V7QGMgvVzat0d8xMeHc6tZ3e4H/0EmaMKmeI/Q9BhGpoVqkuPep2yPKd9ThAUFMS0ZbO4r/DDqrA9cuWb11Mbo8ZV5ki/et0pXSD390xqtVoqV66MVX0XHCvo1/SkJVNOcjQaDcuXL2fx4sXIzZQUbFXCcA3Q3yA09qxDp5ItP9tUwTmFJEmcPHmSI0eO8PDhQ6ysrChfvjxt2rQRU43S0d69e+nXrx8ACoWCVatWUb9+/WT3jYyMZNy4cYa1LgCzZ8+md+/emdHUHO/cs8v8cGENCZqEZB83NzKjffFmNCtcV2QJzCIiWBGEbOZFoD8j1k9C7vJxIyKSTsIkTE6nCq1pXrmRWESZBlFRUVy88i+Pg55iZGpMCY9ilClS6rP7Ypo2bRqbj++k5KBqAFRwKcX4WkM+6ZwvXrxg4MCBXL58GZsijhTpXh6VxZuRwML2BelXoQsFP4PK8IKQGt9++y2//voroA9Yxo0bR9++fQ1JC9RqNTt37mT+/Pm8ePEC0Af+s2bNEoFKKoXHRfDP/aNc8rvOy5hgTJTGuFnlpWq+8tQqUFl0omQxEawIQjaUqE5k+pp53JYeobI0TnYfbUQi+eR5GNSoN0XzF8nkFgq50bVr12jWvBkVv2mIsa0pcpmc5c1n4Ghun6bzPX78mM6dO/Ps+TPc6hcmf5Oihil3FkbmdCvdhroe1cUiVUFIhlarZciQIYbU0QA2NjaULVsWrVbLtWvXiIyMNDxmYWHB8uXL0yXLqiBkJyJYEYRsLDo2ho2Ht+Ljf48odQzGCiPcbPNSs3hVapSsKkZRhHQlSRINGzYkOp+W/E2KAtCksDd9yqe+UOn9+/fp3LkzQREhFOlaDrsSzobHyruUYkilHiLTlyCkQKvVsnDhQpYtW/bB/erUqcP8+fNxc3P74H6CkBOJYEUQBEEw2LBhAxO/nUTFKQ1RGCsxUqj4scXsVAUWN2/epGvXrsQbq/HqXQlTB33qZxkyOpVqSZtijcVoiiCkwo0bN/jpp584evSoYTTFxsYGb29vevbsSZUqVbK4hYKQcUSwIgiCIBjExcVRqVIlbGq74FJHXzU+NWmML126RI8ePTApZkPBtiUN6Z8tjcwZWa0vpZ2LZVjbBSG3kySJ4OBgjIyMsLS0/OzW1QmfJ/EuFwRBEAxMTU3p27cvfkd90cZrADj08BS3A++leOzx48fp0a8nedsWwbNjGUOgUsiuAPMaTRKBiiB8IplMhqOjI9bW1iJQET4b4p0uCIIgJDFo0CDsze14/M9tw7bFZ37lRdTL9x6zftMGxv36LUW/qoZ96TeV6BsVqs2MeqNxMBdpbQVBEITUE8GKIAiCkISpqSlTpkwh4PRjIh7oC9NFJEQx9fBCTjw+T4ImEYBErZrzDy7z5ZJhbIs7QoEWxVCa6ItIWhiZM7bmIPpV7JKuhSUFQRCEz4tYsyIIgiC8Q5Ikxo0bx6YdWyg5pDoWrtaGx+QyOSqZkgRtIvw3IZ0E9T1q0Ll0K6xNrDK30YIgCEKuo8zqBgiCIAjZj0wmY86cObx48YJTK8/g2bEM9qX007t0ko4EKWmgolNrKahyZViTvhSwEelTBUEQhPQhghVBEAQhWSqVitWrV7N48WKWL1+Ov4ctDmVdsCxgi9xIiSY2kfjAGIrZe/JV56EUcffM6iYLgiAIuYyYBiYIgiCkKCAggN27d3Pr1i2io6NxdnamdOnSNGzYEDs7sXheEARByBhiZEUQBEFIkbOzMwMGDMjqZgiCIAifGZENTBAEQRAEQRCEbEkEK4IgCIIgCIIgZEsiWBEEQRAEQRAEIVsSwYogCIIgCIIgCNmSCFYEQRAEQRAEQciWckU2sNfZl6Ojo7O4JYIgCIIgCIIgfCxzc3NkMtl7H88VwUpMTAwAderUyeKWCIIgCIIgCILwsVKqk5grikLqdDoCAwNTjMwymo+PD927d2fdunUUK1Ysy9ohZF/iPSKkRLxHhA8R7w8hJeI9IqQku71HPouRFblcjrOzc1Y3AzMzM8N/PxQhCp8v8R4RUiLeI8KHiPeHkBLxHhFSktPeI2KBvSAIgiAIgiAI2ZIIVgRBEARBEARByJZEsCIIgiAIgiAIQrYkgpV05OjoyLBhw3B0dMzqpgjZlHiPCCkR7xHhQ8T7Q0iJeI8IKclp75FckQ1MEARBEARBEITcR4ysCIIgCIIgCIKQLYlgRRAEQRAEQRCEbEkEK4IgCIIgCIIgZEsiWBEEQRAEQRAEIVvKFcGKJElER0cjcgUIgiAIgiAIQu6RK4KVmJgYKlSoQExMTFY3RRAEQRAEQRCEdJIrghVBEARBEARBEHIfEawIgiAIgiAIgpAtiWBFEARBEARBEIRsSQQrgiAIgiAIgiBkS58crOzcuRMvLy/OnDmT7OPBwcHMmDGDhg0bUrp0aerXr8+CBQvEYnhBEARBEARBED7ok4KV69evM3PmzPc+HhgYSMeOHVm/fj0mJiZ4e3uj0+n49ddf6dKlC9HR0Z9yeUEQBEEQBEEQcrE0BytHjhyhb9++Hww4Zs2ahZ+fHwMGDGDPnj0sW7aM/fv307RpU+7evcuKFSvSenlBEARBEARBEHK5VAcrL1++ZOLEiQwZMgS1Wo2Dg0Oy+z19+pSDBw+SN29eRowYYdhuZGTEzJkzMTc3Z9OmTcTHx6e99YIgCIIgCIIg5FqpDlYWL17M9u3bKVGiBJs2bcLDwyPZ/U6cOIFOp6NOnTqoVKokj1laWlK1alViY2M5f/582louCIIgCIIgCEKupkztAR4eHsybN49WrVohl78/1rl37x4ARYoUSfZxT09PDh8+zL1796hTp05qmyEIqabRaLj39D6+fo+IS4xHJ+lwtsuDp2tB8uVxy+rmCYIgCIIgCP+R6mBlwIABH7VfUFAQAI6Ojsk+/np7cHBwqq4fGBhoOPdrsbGxqTqH8Pk4fPEYuy/t43niS7BVoTBSJN0hBLgPmsgErBJMqe9Vm671v0AhVyR7PkEQBEEQBCHzpDpY+VivAwgTE5NkH3+9PbWBxqZNm8TCfOGDdDodv+z5gwNPTqHIYwy2oCD59+FrSitjYtGxJ/QYO3/eT9vCTejeoGMmtVgQBEEQcpaYxFiuBfjgG/qYwJhg1FoNOkmHucoUS2MLLI0tsDa2xMbUChuT1/+sMVYaZXXThRwmw4IVhULfMy2TyZJ9XJKkJP/9WJ06daJevXpJtsXGxtK9e/c0tFLIba7cvc6cfUuRORvpA5W3aCISMUlUYqEww0iuX0cVo44jWopFZy1HYaz/c1DYGbM75CjHfzrD4t6zsTA1z/TnIQiCIGSsJ0+ecPLkSa5fv87z58+JjY3FxNIUJ3dnipTwokrFKhRyKYitqfV772U+R0ExIWy/vY/jj8+h0WlSfbypysQQuNiaWOFm7UIFl1K427iJ11lIVoYFK2ZmZgAkJCQk+/jr7aampqk6r5OTE05OTkm2iXotAsCPO37lUMQ5lM5vem204YmUtvCiU602FM2f/PopgMiYKNYe+JMjfmdQOOpHYSLsEuiz6iuWdppJXnvnDG+/IAiCkLHCwsLYunUrGzZs0K+tlYGVux0O5d2wKeyA1sGcAHk8AVzjxKVrcAnMlKaUzluMavnKU8m1LMrPdJqwJEkcfnia1Ve3kqBJ/t7uY8Sp44lTx+MfFajf8OwSm2/uwdPOnQ4lm1Mub8l0arGQW2RYsPI6oPjv+pLXUlrTIgipMfn3mdwz9UNpqh8x0UQl0si5JgM69PpgIojXrMwtGdq2P4O0fZi9fiHXZL4ojJRgr2T4psn8r/tC7KxsM/ppCIIgCBkgNDSUn3/+md9//53Y2FhkchlOlfLhVr8wpk4WHzw2VhPHuWeXOffsMvamtjT3qkcTT2+Uigy7hcp2dDodf1zdwr77xwzbTFUm1HGvSvm8JXGxcsZEaYwcGbHqOCITol/9iyI8PpLwuAjC4yMJi48kPF7//3HqpKUrfEMf892JH6ierwIDKnXDTJW6zmwh98qwv7TXWcAePHiQ7OP3798HwMvLK6OaIHwmJv8+k/vmL5ChHz42DpaxoutcnGxTHwgrFAqm9hzPnlN7+f3uVlQWRsjtjRiybjxrBvyAkVKV8kkEQRCEbEGr1bJ27VrmzZtHZGQkADZFnfBoU/KdIEUlV+Jq6YyF1pTA5wHcfXAPzORYFLBFZaYfsQ+JC2PN1W0cfHCSvuU7U9q5WKY/p8wmSRI//7ueo4/OGLbV96hJ9zJtMTcye2d/C2NznCySr8H3tgRNIiFxYdwIuMOhByd5EuEHwJlnl3gW6c/EWkNxMLdLvyci5FgyKbWLRv6jR48eXLhwgVWrVlG9enXDdj8/P+rVq4ebmxsHDhwwrGEBiIqKok6dOkiSxMmTJ7Gw+HCvRkqio6OpUKECly5d+uRzCTnLd+sXcUV53/Cza7Qd338586NGU1Jy5N/jrLixFqWZPkDJG23L0r5zPvm8gvCpJEkiThOPkcLos52SIggpefDgASNHjuTKlSsAqCyM8OxYFruSSaf1FncsTH2PmlRyLY2J6k0ylpiYGJYtW8YPP/2IVSF7XGoWxLZEniTrKpoVqUe30m1QKXJvR9afN3az/fZeAOQyOYMqdce7YLV0vYYkSZx8coFVVzYTk6hPvORs4cjM+mOwNrFK12sJOU+Gjay4urpSt25djh49yoIFCxg/fjwymYzExESmTp1KTEwMffr0EcFFCp4HvmD7qd3cffmAME0kGkmLHBmmchMKWLtS2bM8jSrX+6yGo19bf2Azl2V3kb2qbZov2p7v+85Kt/PXq1iHoPBgtrw8gFwpx98ijHWHN9G9fqd0u8bnTJIkHj58yLmL53gS8hxJBiULFaNhrQaGNW/CGzqdjq2HdrD/wQkiTeOQmSpAAndzV3pX6URxp8JZ3URByBYkSWLz5s188803hoyjtsWcKNmrKrq3ElEVc/SkS6nWFHX0TPY85ubmTJw4kRo1ajBgwAB8fr+AuasV5b6shWSn7yT4594R7gT5Mq7mYOzMbDL6qWW6C8+vGgIVGTJGVO1D9fwV0v06MpmM2u5VKGxfkDknVvAyOoiA6CDmnvyR6fVGY5SLg0EhZRk2sgL60ZXOnTsTGBiIh4cHhQsX5saNG7x48YISJUqwdu1azM0/PdNSbhtZ0el0bD+xmx3X95LgAHLFh0cJNJGJ5NHY0Me7G5WKlc+kVmatWw98+ObYQlQW+m8eu3Azfuy/IF1GVP5rwi/TeGj1EgBtjJqV7efiaJ3yELeQvLi4OLbs2Mrm0ztRuyqwcrdF9tZ7PCEohnJmxfim19jPMgj/L0mS2LF3J39c3YpJoff0MErQo2w7WhZtmLmNE4RsJi4ujnHjxrF9+3YAZHIZZXpUx7yMvWEfK2MLepb9gloFKn909qnr16/TuXNnIiIiAGg9qhPh+dWGbFj2prZMqD2EAja5p8BwYHQwYw/MNqwt6VX2C5p71c/w6wbHhPLN4QWExoUD0MTTmz4VRCfh5yz97+ze4urqytatW+nQoQNRUVEcPXoUIyMjBg0axJo1a9IlUMltDl48SqcV/dn8cj/qPPIUAxUApZURIXaxzL/6P7ouH8jxK6cyoaVZJyYulql/zzcEKvJgLSv6zcuQQAVgdp8p6Pz0H9YKcxXfbBZTwdJCkiS2bd9Gi5FfsCPuKGa1nbAuZJ8kUAEwdjTntvlTevxvKCGRoVnU2uzhwYMHdJ3ch3WBfycJVLQJGiLuBxMXHKPfIIO117Zz4vH5LGqpIGS9oKAgOnbsaAhUlOZG1P22dZJApVzekixsMoXa7lVSlSa3dOnS/P777xgZ6b93di3aRENlZZzM9ecOiQtj6uHvuROU/DrdnEaSJH65tNEQqFTPV4FmReqlcFT6cDC3Y0Ktoajk+s6qfb7HuPTiRqZcW8iePnlkJTvIDSMrYZHhjFs7jXC7eGTyNx+gmphEnOJtqFKwHBUKlyWPnROx8bHceOTD5YfXuBP2AI29HLnyzQ2fpJOwDjFmSvvRFMibPyueToYa8dN4Auz0CyU1UYksaz0TN0eXDL3m5dtXmXVhhSHb2Jfu7WhaRfRif6x///2Xmb/NQ1fc5J1FraZaI9xM84AWHoU9Q/PW4IEsQsevPb/H0iRn/l2nVWxsLAt+WsTZhOtYFXpzoyXFa6lmXZYv63bBxMiEP1b/wdp/t+LWUJ/QRImCJS2mG26gBOFzce/ePXr27MmzZ88AsPdwosJwb2Ik/c22Uq6kZ9n2NPas80m1PDZu3MiYMWMAsLCwYOfeXax9sAvf0McAmCiNmVxnOF4OhT7tCWWxM0//ZcnZ3wCwM7VhUdOpmZ6d64DvCX69tBEABzM7FjWZkmRNUUZISEjg7t273Llzh8DAQMLDwzEyMsLCwgJPT0/Kly+Pg4OYWZHZRLCSDew5vZdVN7agtH1TxFATkUANu/IMat4Hc9MPz99/HujHsj3/w5fnKC3eqjESp6aKaSnGdBieYaMOme2vU/v44+kO5Ao5klZHX88ONKncIFOuPf5/3/LIWp8XXgpV8+fAn1GIxc0f5Ofnx4zlc3hsGYi1Z9IP+OKWhehauR2F7QsmuXlYu/9PdvgdRGn+aopfvAU/9Zz/WRQLkySJ3X/tZsXB37Cu7Ixc9eb9VUjpxqTmI98J3DZu3MjKi2vJU6UAABWcSzG+zpBMbbeQdpIk8TImmJfRQVgaWeBu45ZrPq8zy82bN+ncuTNhYWEAFKxcBPeupUjUqQGwNbFmdI0BFHHw+ORrSZLEiBEjDKM39evX53+//cL3Z37mWoAPkPMDlpjEWL7aO52IeH2n4JgaA6nsVjbT2yFJErOOL+PGyzsAtPRqQI+y7dP1GomJiVy6dIljx45x8uRJbt++jVqtfu/+MpmMqlWr0rdvXxo3bpzkb1WtVeMfFYh/dCAR8ZFEJkQTq45HJ+mQJAlJkjBRGWOmMsVMZYq1iSV5zB1wMnfAzChjA0FJkjh79ix79+7lypUrqNVqvvrqK5o2bZqh100vIljJQrHxsUxcPYMXlmGGqTA6tZbCaje+6TwmxSDlvyJjopj150IeqF4YqrEDyF9qmN56HF4FcvYC3MjoSHr9MQKVo/6POn+MAwv7zMy068fFx9H1t8GoHPTXr2VWjuEtB2Ta9XOS6OhoFv28hONBF7Evl3TUK6/KgeF1+uJp7/7e43cc2s2ap7tQvQpYmrrU4ctanTOyyVnqdWbExZt/QFPUCFPHN59jRmoFI2r2pbJ7ufce36tfbyKqyDCy0vc6Lmz8DfltXDO83ULqqNVqDh48yPnz5wkLC8O6gB0RhbQEJAQb9rE3taVTqZbUca/6WQTon+rKlSt069bNsJakXIsqWNZ3QStpAfC0c2dMzYHYmdqk2zUjIyPx9vbm5Uv9WsaffvqJJs2asOD0SkPAYqo0YXq90bjb5rw1LL/+u5EDD04AUNGlNONqDc6ytgREBTJ630zUOg1KuZKlzabh+Ikjx8+ePePIkSMcO3aM06dPExMTk6bzlC5dmjEzxhNiGsX1gDs8CH2MVtKl6Vx2pjZ42BWgkG1+SjgVobB9wXTrDD1//jyTJ0/Gx8cnyfZy5crx119/pcs1MpoIVrLIiaunWXL6N5QOb0ZTtMEJjKkziGolK3/Sue899WXWrkXEO7351Wpi1bR09ubLpt0/6dxZaeCyrwnLox/S14Ulsq7PD5gYZeyQ8H/9tnsN++POAvrF9mu6LsXcJPutvdLpdCQmJmJsbJypNzwJCQms2bSOzdf3YF0uT5LpiWY6YwZW70HV/OU/qk3frJjOPccAACS1jv+1n4+tqXWGtT0rhIWFsWPPTraf/wvJ0xhzl7een06iVt5K9K/RLcWpDw8fPqTL1D4UaKmv+VDNpTxf1+qfkU0XUunAgQNMnz6dx48fA+BS2wP3lsXfWbP1WpPC3vQu20GMsnzAlStX6Ny5M9HR0QBU6VgbVVVbJPTffeXzluTr6v0xVhp96DRp8vfffzNggL6zytHRkePHj2NqbpokYLE1sWZmg7E5alrmveCHTDm8EAkJY6Uxi5tMzfJaJxuu72Snz34AvAtWY0jlnqk6Pi4ujvPnzxsClPfV/wPw9PSkdOnSlCxZEjc3N+zs7FCr1YSFhXHjxg327dvHo0ePsCuRB5e6nlh7ZMzv1kxlSuk8xSiXtwQVXEtjZZz6e9vQ0FDmzJnDxo0bk2yXyWS4uroyadIkWrdunV5NzlAiWMlkao2ab9fO5Z7qmWGKh06rwz3Widk9v8HYyDiFM3y8//31B/tenkwyNcwpzJKFX87AxDhzb/I/1bYju/gz4B9kr6Z/jSjVm1ql0jfP+8eQJIkO3/dBnk//+hXXFGBatwmZ3o7/tmnPib3svX6Yl5oQdGYy5Cb6tLaSWoc2Wo2p1ghX0zyUdi1Gw8r1cHVJ31736Ohofv9zNX/5HMSytCMKkzcjewqtjC9KNKd1ycapyu4VHx9Pu1k9sSil/zIooirArHZZ+1qnlU6nIywsjKCgIB4+fsgFn0vceHGHcKMYbLwck4yEAuRR2DGmwRAKpGJ0ZMI3E7lbKBCVmREyCX5sNQd7M9v0fipCKul0OubPn8/y5csN2/I1KkL+JkUNP8f4RxJxJ4jydSsRwJukEg08atK/YlcxwpKMx48f06pVK0JCQgCo3rku8spWhkDFu2A1BlTslmF1iCRJ4ssvv+TgwYMADBkyhMmTJ5OgSWTGsSXcD3kEgItlHmbWH4NlGm42M5tGp2Xige8MxRl7lv2CFpmQ/Ssl0YkxDP9rCjHqOGQyGd83mYKbVd737v86Lf6xY8c4evQoZ8+eJT4+Ptl9HRwcqF27Nt7e3tSuXRtHxw8Xk34ZFcR3B5fzQh30zmN5LZwoZFcAVytnbE1tsDK2wNzIFIVMgVym73SI18QTo44jJjGWsLgIAmNCCIgO5HH4c0Myg/+SyWQUc/CkkmsZKrmVTTH4lSSJrVu3MmPGDEJD33yelC5dmoEDB1K5RhUSlBrcrJxzTH0gEaxkoqv3rjN7/1JkTm+CB01oAoMqdKNR5Yz5QHga8JzxW2agdXrzga0LTGR2qwk5ZlpYWEQYX67/GiN7/fSrQgkufNdzSpa1Z9+Zg/z2ZBsyuQxtjJrfOy3C2jxrilat+WcjO+/vR+n88fNdtQkaEv1jccSGsm4laVSpLl6FvVJ9Q6TVajl/8QJrD/yJb+IzbIo7Ju0l1krUy1edHlW+SLbK8cfYuXc3awJ3ozRRIekkljSfhquVc8oHZiKdTse9B/e44nudp0F+BEYGEx4XQYw6jnhtPIkyLTqFhNJMidLMCJW50Xt70+1l1vSt3pUKrqVS/fvw9fWlx9yB5Hu12L5TyZa0L9Hsk5+fkHaSJDFt2jR+/fVXw7bq3eohq/Dmeyr2cghXN5xB0um/ivvNGspdcz90r6aT9CnfiSaFvTO13dldWFgYrVq14uHDhwBU6+SNooq1IVBpWrguvct1yPAg7/nz59SqVcswin3y5ElcXV2JTIhmyuEF+Efp1zgWdSjEVO+vsn0q9t13DrDu2g4A3G3c+K7hhGyzLnPH7X1svLELgKpu5RlVI+nIcUxMDKdPnzYEKE+fPk32PAqFgooVK+Lt7U3dunUpUaLER49enn9+hR/PryFO8yaoiA2IJODME0Ju+FOpZAVWrVqVpky3OklHQHQQd4MecC3gNtde+hiKY/6Xu40bld3KUsm1DPmtXZO8z319fZk4cSJnzpwxbLOysWLAuCF4VPbiasAtfIJ80Uk6artXYViV3qlua1YQwUom0Ol0zNu0lH8Tbxt6nCWdhEO4BfN6TsUqg290dTodU9bO4a7qmSEVsiY6kR5F2tC2VssMvXZ66L9sJBF5EgH9wvb1/X/CSJm1vQFdFvdH66L/XRbV5GdGt4mZev3gsBC+XjWZBNd3v4y1cRpkiRIymQxJAXLzD39BauM1xD2PxFZrSWnnYtQtV4vixYon+VuSJIno6Gh8fX351+cK53z/5VmcP+aF7QzrSt6cUKK8fQkG1u75ydO2JEmi1bhOmFbU9ySVMPPk25ajP+mc6SEiIoL1+zZz6sF5oi0SMHY0T5LFLzUUWhllHIrRrnzzd5INpFaXft3QNtR/ntgqrFjZfq7olc9Cy5YtY968eQDI5XKGTv+KqxYPDYFIz7Ltaehei+nTp7N69WrDcV8tGs9F9FOJFDI5sxuMx8Mu92V2TIv4+Hi6du3K+fP6NN0l6pXFtkUBQ6DSpLA3X5brmGnv+5kzZ7Jy5UoAOnbsyOLFiwF9jZLJhxcYFqnXK1idgZW6Z9u/x8CYEEbvnUGCNhEZMmY3GPfBdYWZLV6TwPC/pxIRH4kMGYuaTCXKP9wQnFy4cIHExMRkj3V2dqZevXp4e3tTs2ZNrK1T/730z70jrL6y1fA+czS3p1fZLwi8+pyvv/7aUHy0fPnyrF27FhsbmzQ/VwCtTotv6GMu+l3n4vOr+EcHJrufvZktBW3y4Whqx41/r3P65CkkGSjNVJjYm5OnUF6wUhrWcL2tjHNxJtcZ/kntzCwiWMlgTwOeM37zDLR53vROaCIS6Fy4JR3rts3Utuw5vZdVt7eitNLfXEpaHaVknkzpPCbbfoBuOrSNrUEHkcll6DQ6xpbvT5ViFbO6WRy+cIyVD/7Uj67Eafitw/fYZNLoyo17N5l6YKEh0QCALlxNRbuSdKrdloJ5CiTZP0GdwOUH1zl77yJ3gx4QKo9CZvb+3jKtWktCaCyayERkOkAnoZNLKMxUmDiYG9I3/5dCLaO2W2W6Vm2HtUn6vRZbdm5lY8Q+lCYq0Er8r+08bLJo7UpwcDCz1yzEV/EcU2fL1B2skVBo5RijwtnckeJuXlT3rISHbf50W5ewb98+Fl/53TCPem7DieImN4usXbuWCRPeTFv8duEMzhrfIkYdB0ALrwb0fJXZSJIkFi9ezPfffw/oe38H/jCKa7F3AchnlZe5jSbmmCkbGUWn0zFs2DB27dL3sLsWy4/XoMokaPU3qY08a9O3fOdM/T4LDw+nRo0ahIeHI5PJOHjwIMWK6deO+YY85tuji1Br9dmlepfrkGm1SlJDkiTmnfyRy/43gexbhHHLtb/YcudvACKvBXJj9blk91OpVFSuXJm6detSt25dvLxSP3PgbfvvH+e3y38afq6RvyL9K3Y1pHK+dOkSPXr0MCR5KFGiBBs2bEi3FMeSJOEXGcAFv6tcfH6NB2FPPul8zhaOVHQpTdviTXLE9EQQwUqG2nZ8N+vv7URp9WYdinmQknldp+Jk9+F5kRnlScAzxmyehizPm95wizAVS3rOxsoslTdfGSw4PIT+G8egstOvD/FS52Nm90lZ3Ko3On/fD52b/ubBS5OPmd0yvm1X715n+tHFqGz1r4lOraWScQlGtxv60VMMJEniaagfB68d4+rzWwRJYUgmafwg10rkUzrTrlJzKucvmyE3U1qtlhYTOmJZ0QmABq7VGVCzR7pfJyWrNq9h6+O9mBewSbJd0kkooiVs5VY4mdmTx8YRF/u8uDjkxdnO6dW8ZbNMudFMSEigXt9muLbUTwVr7FGHvpVybxa17GrPnj0MHjyY11+v476ZwMP8wYbe0fIupRhXY1CSIFWSJKZOncrvv/8OgIWVBU3mdcI/Tj83/osSzelYskUmP5Ps5bvvvmPFihUAWNpbUXtaS8LVUQBUdi3LqBr9DWsDMtPKlSuZOVOfmbJFixb8/PPPhsdOPbnIsnP636lMJmNirWGUzVs809v4IeeeXWbRmV8AsDW1ZnGTbzM8le7HevLkCYcPH+bQoUNcuHyR0hProDRRoVNr+XfWIdRRCQDky5fPEJzUqFEj3YqOv/3aALQr3pROJVu+E/zcunWLLl26GNZQFSxYkHXr1uHu7p4u7Xjbfb8H7L6wjxuhd4lSxb2z5vFtcpkcZwtHCtsXpLB9QUo4FcHFMk+27aB+HxGsZACNVsP436fx1CLYMDVEE6umqWNN+rfonbWNAxISExj5v4mEOsYZtknhaqY1GUOJAkU/cGTmkSSJXkuHEP9qDZ0UombDgJ9QZfH0r7cduXCcn3w3IFPI0cZp+L3D9xm6duWR32O+3jkNo1epk7VRasbVGPTJI02ve22O3TrNv0+uEZgQgtpIh0whe2c/ZYIcG4UFXo6FqFeqFkXzFMYoE27CF/20hLM2d5DJZag0CtZ2WZZpWZISExP5ev54/N2ikowqGccoqOdenbbVWmBjmjVrlpLz9bhRPCsbg1whx0Jmym8dvs+QLyadpMMnyBf/qJc4WzhS3LGIyFwFnDhxgp49expqNQwaPAhqWnLjpX6UJL+1KzPrj8E0mQxvWq2WQYMG8c8//wBQolpp7Dt6oJV0qORKFjWdSh6LrOnoymrr169n3LhxAChUSlov7M5LrX7xcEHbfEyvNxoTZfolqEmNuLg4qlWrRlBQEDKZjCNHjlCkSBHD4xuv72KHzz5An+VpToNxuGSTtXfRCTF8vW+GYbraqOr9qZqvvOHxxMRErl+/zp07dwgNDcXIyAgHBwe8vLwoXLgwJibpm6xHrVZz8eJFQ4Di6+ub5PECLYrjVs8TAPn9BBo4V8fb25tChQql++fc03A/Jh9eQIJGHxC1LdaELqXfnz3L19eXzp074+/vD4C9vT1//PEH5cuXf+8xKZEkCT8/Py5dusS5c+c4d+4c9+7de7ODDIxtzTCxM6VCtUq0bteGfC5umCpNcLJwwMHMLsOSTGQmEayks5CIUIavnogmz1s9ZkFqZrYcR9ECRT5wZOZbtGkFp+OvGdbR6BI0dC7Ugi9qZH0quznrv+eqUv8hpUvUMqHyYCp6vb/ORFbpvLAfunz6G9hi2gJM75ox2api42Lp8fNQFHn1XwzaiETmNZ+Mp+unFzlLjk7SEaeOJ0GbiFanxVRpgonKJMs+9IKCguj6wyBsi+lHV8ZWH0SlfGUy/Lrx8fH0nT6ExFIqw6J4eRwMrNKNusVqZvj10+LEiRPMOr4MmyL6m9r0rLmi1WrZvHkzOw/uQVfJDJndm+CtgLUrI6v1xc36/Vl6crsrV67QsWNHw/z1zp07U6xLRUPNCitjC75rOOGDdSJiY2Np3ry54Yak4ajWxLrpv6YruJRifK3Pr+DnsWPH6NmzJ1qtft59h/lf8kKp78G2NbHmu4YTsDOzycIWJh1dadu2rWEECPSfpwtP/49//a4B+qxRsxuOw8Io69Pe/3h+Dcce69PxV3Apxbiag5HJZDx58oSff/6Z7du3ExUVleyxxsbGVK5cGW9vb+rUqUPRokXTFDCEhIRw5MgRDh8+zPHjx4mMjEx2P1dXV+o0qcuzElHokDBXmfJTyzkZUtU+UZPI+APf4RelT59fs0BlhlfpneLz8/Pzo3v37oa/X6VSyVdffcXAgQMxM3s30Yxarebx48fcuXMHPz8/wsPDCQsLM/z37t27BAcHv3PcayqVipYtW9KnTx/Klct+90jpRQQr6ejmw9tM3bcQpb2+d0fSSeSLdmDel99mqxGBtx06f5QV//6BkcObP6JiMne+/WJslvWSHjh/hJ/vbURhpA+iahiXYWSbQVnSlpQcOneEnx9t1q9didWwussSLDKg7sqgZV8T+qrGjCZGzcx6oynhXizdr5Od9Z48gNjS+mCpoMqVee2+ydDraTQaek8eQEJZI8MIqZvMiVltJxjmKmdHWq2Wuv2a4txEXz27Q7HmdCj96dOHEhMTGTRoEEfPHqP0V7Uxtnn3NbAwMmdW/THZptc4M928eZOOHTsa5q03adKENmO6sPb6NgCUciVTvb+iqGPKVc19fX1p1qwZMTExKIwV1JnThgSZfqRmQq2hlHcpmXFPJJu5desWbdu2NRTuazuhK4FO+roqRgoV0+uNppBdgQ+dIlPExsZSpUoVQkNDkcvlHD16FE9PT8Pj8ep4phxeaEgLXCpPUSbVHpal2bau+t9izgl9UGWqMtFP/5KbsHDhQn799dcPVnJPjqOjIzVq1KBmzZpUqlQJd3d3lMqkU5R0Oh3+/v7cuHGDCxcucOHCBa5evUpyt6JyuZwKFSrQoEED6tevbwiG3g6wMipb3pqr2/jr7iFAn31rZv2xH12vJzw8nH79+nH27FnDNjs7O+rXr0+BAgWIj4/n6dOn3Lt3jwcPHqTqdVYoFJQuXZqqVatStWpVKleujJVV9hnZzygiWEkncQnxdFs1BKWtPlDRxmtok7c+PRpl//niz14846t1U1AUeHPzYRqpZGGnaThaZW4xqyt3rjHj5FJUr9b5WIeZ8MugxZnahtTqtLAvUj79h1hpmSffdEzfbFV//LOevyNOIpPLkHQSvT3a0bxKo3S9Rk6w/8B+fnq6CSNLY9DBr23nY2WSceusxsyZwOP8oYZ6SGUsvJjYbESWzIlPraHjRhBUQf8FmEdlz/J2sz75nJMmTWL16tWUHFIda0/9wtG4wGgCzjzG3dsLmY2+QyafVV5mNxyfZVNyssLt27fp0KED4eHhAFSvXp1+s4bx29U3i3KHVO6Jd8GPrw21e/duBg/WVw7PW8Udj06l9f9v6cT3jadk+zS46eHFixe0bNmSgAB973bDXs2JLfPm5v6/U5ay2g8//MCcOXMA+OKLL1i6dGmSx4NiQph4cC6RCfpgq0lhb/qUz5qF7KFx4YzbP9vQlgEVu5Ff68TQoUO5ffu2YT9TU1MaN25MpUqVcHZ2Rq1W4+fnx61btzh//jx+fn7vvYZKpSJv3rxYWloik8mIjo7m5cuXxMXFvfcYGxsbvL29qV+/Pt7e3tjZvVuQ8mm4H2P26z/T8lg4srTptHTtXL0T5Mu3RxYhIaGSK5nXaFKqR4wTExNZvHgxK1asQKdLW1V70L8e5cqVo0yZMlSqVImKFStm+QyirCCClXTyNOAZo4/ORiaXoQlPYHS1AdQoXTVL2pIW8fHxjFwxgVCXOMN0F120htHVB1CtWKVMacPD548YvXsGKnv9kK4Uqub3XkuwNMvef5j/nNzPquc7DKMra7suw8w4fXren/o/Y+Rf3xqCt+yWZCAzJSYm0mRsOxyq5wOgc/GWtCuVMXVE/tyxmY1B/2Bsrf89FjPzYFqL7Js177/++usvfrq/AXMXfda0/7Weh80nZGi7ePEibdq0waG8K17dKwBgrbLg6qLjvHjkh8JYSf1Z7YhR6Ef/GhaqRf+KXT/9ieQAZ8+epW/fvoYRlUqVKjFk3tf8dnWTIc1p++LN6FQq9WniJ0+ezB9//AFA5XENUb2qp5RdivVlpKioKNq2bYuPjz6Fc/n6lbFulY/EV5m1OpdqRbviTbOyie+Ijo6mSpUqhIeHo1AoOHHixDsLrO8E+TL92BK0Ov2Utv4VutLQs1aarylJEqGhoZiYmHz0onKtTsuMY0vxCboPQFnnErg9tWL6tOmG4onGxsYMHDiQwYMHv7fnXpIkHjx4wLFjxzh+/Djnz583jIClRtGiRalfvz7169enQoUK74zGJGfmsaXceHkHgDE1BlLZrWyqr5scjVbDmP2zeBH1EoDuZdrSqmjaOwfv3r3LsmXL2Ldv3zuFKZVKJYUKFaJIkSJ4eXnh4eGBnZ0dtra22NjYYGNjg7m5eY753slIIlhJR7/8tZr7Lx8yrHk/8jvny7J2fIrlf67kSMxFVK+q3us0OrytKzKsRf8Ujvw0N+7fYurBhYZARRuRyJI2M8jnlL6V1jNKhwVfIsuvb3sFZVHGtx+ZLuftsXAQCfn0H1TyYC3rB/+UbYp0ZYWvp47Br4T+y9BGZsn/Os5P92s8f/6c/n+MwrKwflTRQbJmWcfZOWqRYlRUFE3HtMelnn7KUWp79d+m1Wpp1qwZt+/5UH5iPUMAN6HWUHQv4mnTpg2SJGFXwJEyX9cmUadGhozvGk7I9WmTt2/fzujRow31HcqVK0e3mf3YcW+/YZ/mRerTs2z7NN1wxMXF0axZM+7du4e5mzVlv64DMv0i7WXNZ2CVQ9KOppZaraZ3794cO3YMgILFC1FsaFUiEvRrJ2oXqMLQKr2y5U3ckiVLWLBgAQBdu3Y1/P/bjjw8w8qLawF9HZ1vvEdSwunj17RKksShQ4dYv349p06dMoxU2NnZUaNGDVq3bk2DBg1Qqd6dfi5JEquvbuWfe0cAsDG2Qr0vmAN79hn2KVKkCD/88APFi6cua5larebq1aucPn0aHx8ffH19CQwMJCoqCkmSsLCwwM7ODg8PD4oUKULFihWpWLEi9vapn8Fxxf8m3534AYBijp5Mr5c+Mxr+vnuY1Ve3AlDYviAz641Jl1Gb+Ph4bt68SVhYGCqVCldXVwoUKICR0cdNLfvciWBFeMeZK+eYf/xHjPK+6aWxDFKxsOcMbK1s0v16Gw5uYcuTfags9X+0mmg107y/pnShEul+rYyy4/BuNgbvBUAXq2Fd9+WfvOhvw77N7Ag7oq8xk6hlTt1xFHHzTPnAXOzcuXNMP7EYywL6qQHzG03G3dYt3c6v1WrpNK4n8sr6nkR5Iqz8Ym6W1XX5FJ2HdUdXSz9NroR1Yb5tMipN59m5cydDhw4lT9X8eHYsCyRd6D1hwgTWrtXfeDUd0ZZId32PsZdDIWbUG50tbyg/VVxcHFOnTmXDhg2Gbd4N6lKxfx3O+l02bGvi6c2X5T+tQOHt27dp3rw5iYmJeHYqS54q+gCwUaHa9KvYJe1PIpuSJIlx48YZXltbRzsazGzHi1h92mcvew+m1v0q29aciYiIoEqVKkRFRaFSqTh9+jSuru92uq2+spW/7x0GwNLInDkNx39UpreXL18yduxYDh8+/MH98uTJQ+fOnenWrVuS6+/02c+G6zsBkCHj4aqrvLjxpm5Hr169mDJlCqam2XddHuiTFozeNxO/SP0UwTkNxn9yEcvIhGhG/j2VGHXcqw6X8Xhkg/VQAmT/yddCpqteriq/9VqC6tmbiqdRjmr6bBzFn0e2pdt1AkODGLDsK3YEHzYEKtrIRKZ5f5WjAhWANvVaon2qzwAkN1Pywz+/f9L5omKi2fzgH8PC7nLGRT/7QAWgcuXKJNx7kynmwN3j6Xr+1ZvWoiv5JsgcWrV3jgxUABpWqIcmTj9l5m7YA8O0k9SQJMlQndu5mrthe4cSzQ3/P378eEO15oMr9+Boog8k7wY/4GrArTS2Pvs6duwYDRo0SBKotB/QCbsOBZMEKl1Lt/nkQAWgePHiTJqkn/r55B8fdAn63+PBhyd5Gv7+9QI51ZIlSwyvrZGxEa1ndjMEKo7m9oypOTDbBioA1tbW9OnTB9CPNPz000/J7te9TFvKOutHLqISY5h9fLkhffD7+Pr60rJlyySBSp48efD29qZatWpJpmu9fPmSpUuXUrVqVXr27MnqNatZ+M8PhkAF4N6mK4ZAxc7Ojt9//505c+Zk+0AF9PVDmhd5MxXydeD3Kbbc/MtQtLVOwaoiUMlGRLAiJMve1o51o3+mjLoQOrX+y1FlY8z2oEP0WDqY675pvwkJj4pg6qrZDNo+gfA8CYYbclmQhsWtplO6UM7LdCOTyehYupXh57MhV0jUJKb5fN+snmWop0KYhvHtR3xqE3MFuVxObY+q6DT6BYsnH59P0014cqKjo9ly7x+UZvrA2cvMnVqFq6TLubNC44aNCL+rv8nTyHX4hj5O9TlOnz7NjRs3MHezxiKfDQAetvmTfInb2trSt29f/XUSNchvv5mXvfXm38lm+cmJrl+/Tu/evenWrRuPHz8GwMrZli6L+hNQNI6XMfr0oqZKE76q1o82xRqn26hS3759qVOnDuqoBJ4e1Ndr0U/n2ZJrXl+AdevWsXDhQsPPvecP4X6s/mbaVGnChFpDsP6EtVeZpV+/foY0tRs2bODly5fv7KOQK/iqWj9cX2XOC4gOYs7xFcSqk198/ujRI9q1a2dY0O7k5MTKlSu5ePEi69evZ+vWrdy4cYP169fTrFkzFAr9tFWdTsfxcydZc38HF6JuGs73+K/bBJ5/CkDz5s05evQojRs3Tr8XIRPULlDZUIH97LPLBMeGpvlczyJecPDBSQCMlcZ0KZX1JRyENzItWLlw4QJ9+vShWrVqlCtXjs6dO7N3797MuryQBjKZjMndxzC2wgB0gW9uvBOcYcb5pXy5bBjHLp/8qHNJksThi8cYvGIUfTaP4o7Zc5SWb9bFFIrPy/rBP5E/T/pN6clsHRu1Q/1Uv55Cbq7kp72r0nSeU1fP4mel/9CVdBJDq/f+LDL/fKwOrb8g7Lb+yz9BpjYssvxU3/26EMti+rnTskSJsY2Gpst5s4qbmxsmEW/eN6d9L6T6HK+rqTtXexOcNCj0bn2ZL7/80rC4969ftuNingeA+6GPuf7SJ9XXzS7i4uLYsWMHHTt2pGnTphw8eBBkYOVhR7WRDSkzrjZPeXMj6mnnzvzGk6iev0K6tkMul7N48WLs7Ox4ceIh8SH6z5kbL+/y74vr6XqtrLJ3714mTpxo+LnfzKHc0j4E9N9FX1XvSz5rl6xqXqrY2dnRs2dPABISEpJUtH+bmZEpk2sPx97UFoBH4c+YfXw50QlJF6mHhobSvXt3Q3X0EiVKsH//flq2bGkISkC/YNvb25tffvmFCxcu8PWYUXg1K0P5CfWwL/kmm9XDHTfwO+JL+fLlWbduHf/73/9wcHBI19cgMxgpjWjsWRvQTwvbd/9Yms4jSRJrrm5FJ+k7wdoWa4xtDh1Rz60yZc3Knj17GDt2LEqlkipVqqBQKDh79iyJiYkMHz6cYcOGfdL5xZqVjKfRapi/eSmXEu6gME1646wJjMdF6UiJvF4UyuuOvZUdsQlx+Ie+5M7zezwMf0aEUQwq23fXcCiDJMY1GUpZz1KZ9VQy1Lq/NrI7Rl8AThulZm2P5anKDKbVaum4oh8KZ/1rlTfKhqX9vsuQtuZUkiTRpE8rrJvoA9tyDiWYWP/TPkOePnvKkK0TMXPR99p28GhKh0qtUjgq+5sxfxY3C+h7Ym0kC/7X+d3Fvu/z8uVLKlWqBEqoPL0JciMFJkpjfm41N9nq6zNnzjRMGes1qT++DvqbeC97D2bUzxmZ1IKDg/Hx8eHatWucOHGCi/9eBGMZRjammDpZYu1hh32JvIaOltcsjMzpXKol9T1qZmgCjAMHDvDll19iXzovRXvrszTmsXBkUZMp2XpqVEqOHDlCv379SEjQVwrv/tWXPHOPQKPTANC7XAeaFamXlU1MtcDAQKpVq0Z8fDympqZcuHAh2TS8AM8j/fn28PdEJeqDlHzWLnxTZwS2ptbodDp69erFkSP6BfFeXl7s2LEDa+v330y/jA7ixOPzHPA9YUhKAKDQyikQaEcxW09q1aqFh0fGFBXOTOHxkQzZMxmNToOZypSVaSgSefnFDeae/BEARzM7Fjf9FqOPrKkiZI4MD1ZCQkKoV68ecrmcNWvWUKqU/qb0wYMH9OzZk5CQEHbu3EnRokXTfA0RrGQevyB/5u9YxnPTEBRGaftSlrQ6TEIV9K7eifrl66RzC7OWJEl8sbgPClf9h2VRbX5mdJ2YwlFvzFy7gBtG+t5ETWQiq7ouxto8+097yGyLly7hhOUNVOZGyCUZv7f//pMKNfadMYQoL/1HoUm8ij96LskR9VRS8u+//zL1+PdYuNkA8L9WH58sYPny5cydO5c8VQvg2bEMAA08ajKgUrdk9/fz86NatWpotVp9AbR57Q3pP6d6j6RknrR/xqeVWq3mxo0b3Llzh4CAAIKDg4mOjiYmJoaYmBiio6OJkyeiMZPQmcuQTGUYWZtgbG2CkbUpRpbGhlTuybE0tqCxZx2aFa6LhXHmVCOfOHEia9asSVLv5lPTq2alAwcOMHDgQENGtVZd25JY3cRw496wUC36VeiSI4Ld/5oyZYphdHLEiBGMHz/+vfs+CX/OrLfWrdiaWDOyWh9O7TzG9OnTAXBwcOCff/5JdsF+dGIM555d5sTj89wJfvDO4zXzV6JH2fa5csTgpwtrOfroDABflutI0yJ1P/pYjU7L6H0z8I/ST5n9qlq/dB8ZFT5dhs8tWb9+PfHx8fTv398QqAAUKlSIUaNGGQqNffed6D3OCVwd87J0wHf4hwTw8z9/cDPaF7ldyj16Oo0ORYRECWtPvmzYlXxOOXe614fIZDL6VunMqqf6uiu3tY94HvwCN4eUpy/4PLrLFc1dlEb61/OLQk1FoPIe7du2Y/uCfeStWRCdTOLcsyvU86iepnOdvXiOYOdYjNEHO0Nr9c4VgQroU+nGr44yBCsXn12jYZHaKR6n0+nYuHEjkPIUsNdcXV1p2bIlO3fuJDQ0FOcwa14o9cHKttt7MzVYuXnzJr///jv//PMPUVFR7zxukc+GPNUKYOvliL2tWarOrZQrKeNcjOr5KlLZrexHV7VOL1OnTuXcuXM82nmTMqPqIJPL2HZrL7Xdq35SLZ2ssG7dOiZPnoxGox9Bada2Bco6doTEBAH6Ku9flu+UIwMVgEGDBrF27VrUajWrVq1iwIAB2NraJrtvARs3ZtYbzczjywiKCSEsPoJpRxcTdO8ZJvZmxIfEsmzZsiSBSmRCNJf8rnPR7xpXA24bRqJekyGjar7ytC7aKFenEW9epJ4hWPnn3hEae9b56HTD++8fMwQqXg6FqJaNiowKb2R4sPI6T3rDhg3feax+/frIZDKOH0/fjD5Cxstr78y0HhMA8H32gIPXjnHP/wGRmhgStWoUMgWmSmPymDtSukBx6pWtjY1l7uvRSU6zGo3ZcHY7iflkyI0UTN+xgF/6L/7gMTqdjum7FqLMqw9UzEOUdO30RWY0N0fKnz8/dtFverL33T6SpmBFkiTm71yOcWn9TZ6T1oYqHrnny0qhUOBl40EI+qxgR26f+qhg5cyZMzx58uSDC+uTM2DAAHbu3AnA3l92UmasNwHRgdwKvMedoAcUdSz0Sc8nJb6+vsydOzf59ZAysC2WB9e6hbAulPL8fAulGY6W9tib2mJnaoODuR1F7AviaeeepVNETE1N+eGHH2jevDkvzz/BuZo7cZp4Nt3Yw8D3jHplNwkJCcyePZvffvvNsK1N+zbYtCzA/dBHgH4q1OjqA3JUfaP/cnV1pWPHjqxfv56oqCiWLVvGt99++979nS2dmNNgHMvO/c6Nl/pECo6V8uFQwQ2zRCN8zJ7x6PJmIhOieRT2jBdRLw2FR9/mZpWX2u5VqFmgEg5myU89y03y27hSxrkY1wJ8eBkTzLnnl6mev2KKx4XFRbD51l+Gn3uX65BjA+PcLsODFV9fXwA8Pd9Nu2pjY4ODgwNBQUGEhISkqTCQkPU88xXCM1/G3oTkNBNbj2TKqe9RmhkRYRXPlpO76FDr/dlF5mz4Hl1e/Z+jJlbNjC++yaym5lht6rRg28vDmOWx5HGMH4ExITiZp+4z5M9dm5F76XvWJa3EuKaftvYlO2pWpSGrgnaiNDPiUcxztDptiusqXqeO/dhRldfKlClD1apVOXfuHL73felETwLQ91puv/0Pk+oM/4Rn8n4ajYaff/6Z77//3rDuAcDCwoL6DeuTp3IBnpsGE6GLTnKcSq6imKMnnvYFcLF0xsncAXszG2xNrLN1UovixYszefJkZi2Yg0M5V5QmKo48PE1jz9q422bvgsRXr15l1KhR3L1717Ct74B+mHg7GlJd25pYM7H2UMyMsn8K3ZR89dVXbNu2jfj4eFatWkWvXr3eqWr/NmsTKybVGk7/ecMJd0lEaapCJpcRZ6LmyMPT7z3O1sSaavkrULtAFQra5vvsbrpbejXkWoA+mcefN3ZT2a1cioHu2mvbiVPrsxfWK1idQiJVcbaVoXMdIiIiSEhIwNzc3JAp5r+cnJwACAoK+qhzBgYGcuvWrST/fHxybrYZIXcqUbg4xbRvPvj+fPAXj/yfJLvv/vOHuSrdN/zcyLEG+ZzenZMsJNWqZSuCL7+pM3H80blUHR8fH8/aS9tQGOtvSkuZFya/be573b3reBNxX59FSKeUuJvMfPa3BQcH888//6AwVuBYXj9d00RpTI38lT7qegMGDDD8/7G1B3B8FUBeDbiNb8jjNDyDD7t79y6tW7dmzpw5hkDFycmJKTO/ZcbmBagbWnLL+HGSQMXV0pmBFbuxqu1CvvEeQedSrantXoWijoVwNLfP1oHKa3379qVW5Ro8P3gPAAmJP65kz1TGkiRx8+ZNBg4cSIsWLQyBikqlYt6CeVjWz2sIVEyUxkyoPTTXjAi4uLgY/ibUajVTpkxJ8Xe0ceNG9v+wi0uzD+F/8AHOpu8Wi1TIFRSyLUCroo2YVX8sP7WaQ+9yHfCwy//ZBSqgnzJYwqkIoE8DfejBhzOV3gq8x6kn+gyJFkbmdC3TNsPbKKRdhn4ix8bqi+R9qMCQsbFxkn1TsmnTJlasWPHpjROEDDat10Q6LemHMr8ZClMl4/fM4odO3+Fo/WYKyrlbF/n55gaUFvppJdahJgzq9GVWNTlHsbe3p7BRfl73ox+4c4wvSjT76C/qxX8sx7z4qxuiRImvWg/48AE5lKWlJXll9rxOPv7PpUMUb1rkvftv3rwZtVpNnqoFDIFczfyVks0AlpwGDRrg7u7O48ePOX3yFHOGtuPvmGMAbPfZx7iagz7l6RhoNBp+/PFHFi9ebFicLZfL6T20D/nrFeHE0wsk3LmS5JhijoVp6dWA8i4lc/y6JJlMxqJFi2jYuCFx1WIwdTDndtB9zj+/QtVsMO8+MTGR8+fPc/DgQQ4fPmyoTfNaqVKlmLtwHvtCT3HZT1//w0ihYkKtoRTM5qNDqTV06FA2b95MQEAAR44cYevWrXTo0CHZfW/evMnUqVMB/Sj7uNbDadmyJdEJMQTHhpGgTcBcZUYeC4ccnQEuvclkMrqVbsukQ/MA2HhjF5Vcy2Bv9u4aodjEOH66sMbwc9fSrbEyFsmZsrMM/bR+vcDpQzcPr3sYPrY3qFOnTmzfvj3Jv3Xr1n16YwUhnalUKr7rMBl1+KsiedZKBm+awKGrx0jUJLJ85/9Y8O//DIGKFJzI9z2nZ2GLc57u7bsSfl8/KhuhjeZu8MOPOi4wMJBTUZcNBUkbF6iFlYllhrUzqzWr8GbN4NWA2+/dT6fTsX79euC/U8BqffS1FAoF/fv3N/x8efsZ7ExtAPjX7xqPw55/9Lnex8fHh5YtWzJv3jxDoFK0ekl6rxzOPY8gDj46RYJWv10m0y8yntNgPNPrjaKia+kcH6i85ujoyKKFi3i8602R3t8vbiJRq86S9kRHR7N161YGDhxI6dKl6dy5M7/99luSQMXBwYGpU6eyYetGtgTs57K/PlBRyZWMqzmY4k6Fs6TtGcnCwiJJEqFvvvmGO3ferQ/l5+dHnz59DCOEffr0oWXLlvpzGJvjbuuGl0Mh3KzzikAlGZ727tRxrwpAnDqelRfXodPpkuyjk3Ss/HcdgTH60WYvew/qedTI9LYKqZOhn9ivp37Fx8e/d5/XXzSvq72mxMnJiRIlSiT5V6xYsU9vrCBkAC/3Igwu1Q11lP7LR26t4n93N9F920hOJlxBYfJqnUpoAks6zMRKZP9Klfr165NwL9Lw89Zrez7quCn/m4V5fhsAlPFyetXolBHNyzZaN25JzPMIABLNtAREBCa736lTp3j8+HEyC+tTl0moY8eO2Njoj9+1Yxd1XasaHtt4Y1fqn8ArarWaxYsX07RpU65fvw4ysC/pTKPZHbD/woO70Y8MHV/GCiOaFPZmWbPpjKreH0979zRfNzurV68ebao2I/yePmgPV0ey6druTG2Dj48Pw4cPp0yZMowcOZK//vorSRY2hUJB9erVmT17NufOncO7fQMmH1nA/RD9YnpTlQmT6gyntHPu/S5v1KgR7dq1A/RBXa9evQxrekFfzqFz586GCvVlypThm2/E2sXU6lXuC2xN9Ml8rgXc5vfLm5J0iv9+eRPnnl0GwFxlyvBqfXJN50VulqHTwMzNzTEzMyMqKor4+HhMTN6dRhAYqP/SdHR8d06mIOQGjao3wMTElIUnVmKS992hZuVLHSu6z8PJTvwNpJZSqaR56YacjriFsbUp14Pv8iIyABcr5/cec+LsSQKcIg2pigdU6ZYj1ih8CnNzc+wTLXndbfTH4Y1MaDfynf3++OMPAJyruxu2pWZU5TUzMzO6d+/OihUrUKvVPDh0C/titoTEhXHF/yZX/W9RNm+JVJ3Tx8eHkSNHcuvWLX2QUjovni1LobQ3IYY3i+qtTaxoWtibhoVqYfmZTO2YPGkyrXu0Q1dIh1whZ8+9Q1QrUCHDAzR/f39mz57Nzp0735kdYWNjQ7169WjQoAHe3t5YW1uTqFWz4/Y+dvrsQ/uqWriNiRWTag/H3TZ3prN/2/z58/H19eX69es8f/6cZs2a8eWXX6LValmzZg0xMfraMu7u7vzxxx+GafLCx7MwMmdolV7MObECnaTjwIMTBMeGUtG1NGefXebGS/2IlkwmY0iVXqlOyiJkjQwvCtmpUyeuXr3K9u3bKVEi6ZdTeHg4VatWxdbWlrNnz6b5GqIopJATRERGsHDLcnwiHqBVSJhKRtQtVIO+zXt8dE544V2BgYG0GdcFt1frMCo7l2FMneTXRajVatrP7olJMRtAn6p4RdfPo8bTX0f/YU2gfuRJF6Zm66Bfkzx+8+ZNGjdujNJMRaVvGyNXyTFVmrCy1XcfvV7lbQEBAVStWhW1Wo25uTlLtv3EH7e3ApDX0okFjSZ/VApgSZJYvXo1M2bMICEhARsvR9xblsDcJekopKulMy2LNqBmgcoYfYZTZO7du0efBcNwaaDPzGgpmbGyw9wMmy60d+9exowZQ3h4uGGbjY0NrVq1onXr1lSsWBGlUt8JIEkSF/2usf7aDvyj34zqFXcszMhqfXNlocL3CQgIoFu3bslOAwN95tR169aRL1/uWreT2U4+vsDy86uSfUyGjKFVelHbvUomt0pIqwzvTqxVqxZXr17l0KFD7wQrhw4dQpIk6tTJXVXMBSE51lbWzOwrhvXTm5OTE3Xdq3E71h+VmREXAq69t6bH9F++MwQqklrHN61GZXJrs05z76b8tnwzqjymyG1VHDh/mEZV6hseX7JkCQB5qhVArtIHz3ULVktToALg7OxMp06dWLduHTExMRxff4AiDTy4F/IQ/6hANtzYRe9yyS8yfi0sLIyxY8eyd+9ejGxM8epSEYfSSQusFrYvSLviTSmXt8RnPZ2jSJEijGo2iF8fbsHCzYYoWSw/HFnFVw3TN3GEJEnMnj2bn376ybDN1taW4cOH07NnzyQJdSRJ4tKLG2y5+RePwp8ZtitkctoUa8IXJZqlmEY7t3F2dmbPnj1MmTKFzZs3G9ZUKBQKOnfuzLRp0z56WrzwfrXcK2OiMuaXfzcQHv9mqrCDmR39K3ahXN6SWdg6IbUyfGTF39+fpk2bIpPJ+O233yhfXp+l5OHDh/Ts2ZPg4GB27dqFl5dXmq8hRlYE4fPm7+9Pm1GdKdCmOABOxnYsajktSQ/7nuP/sOrxdpQm+m1N89TiS++uWdLerDJzwwJuKF4lIXgQz6aJvyOTyTh9+jQdO3ZEppRTeUojlJZGyJCxtPl0nC3SPj0xKCiIGjVqEBMTg1wuZ9XWNax6uh31q0rbo2sMoIpbuWSPPX/+PMOGDcP/ZQAu3h7ka1gEhdGb/rVCdgXoVLIlZZyLf5apWt9n7KyJPCoYilwpR9JJjK7Un6qeFdLl3BqNhjFjxrBlyxbDtmbNmjFv3jzs7N6kGpYkiSv+t9hy6y8ehCZN2V7UoRD9K3Yln3XSoPNz5O/vz9WrV5HL5ZQvX15Mh88AiVo1N1/eITg2DCdzB0o6Fcn1035zowwPVkCfCnPKlCkoFAqqVKmCkZERZ8+eJSEhgdGjRyfJy58WIlgRBGHR4kUc0l3Ews0GgIp5S/N1jX6oFCr2nT/Ezzc3onqVec0+zpIfe8377G5ygyNDGLRrInIjBTq1luqRxfmiRTvatm1LQEAALt6FKNhKPwJe0aU042oN/uRrrlixwpAJycPDg1E/TWbjLf0ie5VCxaTawwz1EQC0Wi3Lli1j0aJFWBayo1D70pg6vflctza2pEfZ9tQqUPmz+/19jMTERDpP+xJlGf00OSlOyw9t5+D0Vsr0tIiLi2PQoEEcOnQI0Gf7nDlzJr169TL8Hj4UpBS0zUenki0pl7ek+L0JgpAqmRKsAJw4cYJffvmFmzdvolAo8PT0pE+fPjRq1OiTzy2CFUEQ1Go1Lbu3wbyFi6EH3kphgXGigkDCkCleTREK17Kq9xLMjT/PqRazdi3iery+CKnfUV8e79GnMlaaqag8tTEyIzkyZMxrNCldFj2r1WratGnD1atXAWjStCll+lbn1NOLgH5KUKdSrWhauC7+z18watQofILu41rXE7sSbxIlyGQymnh607FkC8yNPs/f3cd64f+C/qtHY17QBgBVOKzquwwjZdrWr4SHh9O7d28uXtT/zoyMjPjhhx9o1qyZYR//qEB+v/ynoYr4awVs3OhYsgUVXUqLIEUQhDTJtGAlI4lgRRAEgPv379N9zJfk61AcuerdufBSYCIrus8lj+3nO90iLC6CQbsmIskkdBodN5adJNovggpDvTHx0PfGexesxpDKPdPtmr6+vjRp0oS4uDgAGjdtgnuXUtwMvmvYRy7JiAmMQmlphMos6cJ7L3sP+lbo8llkjEovJy+c5vtrv2JkpV9zZB1mws8Dvk91Mg9/f3+6d+9uWBBuYWHB77//To0a+toUiZpEdvjsZ9edA2heTe8DfZDSoUTzXFXXRhCErCGCFUEQchUfHx8GTxiGcWU7rD31U1/U0QnYhJqweOB32Fh9PpmH3ufPG7vYfnsfALoELaaSMQkm+htNcyMzvm8yxVDIMb2cOHGCXr16GWprWdlYU6FXLRILvP9G1t7Ulo4lW1CnYFVxw5sGa/7ZwO6wY8iV+sDdNsCYn4Yv+uiAxcfHhx49euDv7w+Avb0969evp1SpUgBcenGDVZc3GQrsAdib2dKzbHuquJUTvzNBENKFCFYEQch1EhIS2Lt3L1dvXcPE0pSm3o0pU7pMVjcr21Br1cw4tpS7wQ+SbFfIFYyrOSjDMuUcOnSIkSNHJkl3a5bXEpc6hbAqaIexjSkqSUnpfMWp4V6J6vkqiMWwn2jhn8s4L91GJtdPwTJ9DD8OW2go2vw+Bw4cYMSIEYbijvny5WPDhg14eHjwMjqI1Ve28u+L64b9FXIFLb0a0K54U0yUoj6IIAjpRwQrgiAIn6FYdRy/XvqT008uIiGRx8KRARW7UipP0Qy9rr+/P/PmzWPv3r1ER0cDYGlpSf369Rk6dCjFixfP0Ot/jr7bspgrunuGn+N8whjbcCi1a7xb8DMkJIS5c+eyYcMGw7YyZcqwevVqLG0s2XnnAHvuHDRkdAMo4VSEvhU642aVN2OfiCAInyURrAiCIHzGohNjiFXH42Bmm6nTdhISEvDz80Mmk+Hm5oZK9fkVcsxM3+/6gfPxNw0/xwZEorqZSOMK9cmfPz9RUVGcO3eOPXv2GNYWgT418az5szntf4m/7x4mKjHG8JitiTU9yrajRv5KYvG8IAgZRgQrgiAIgvAZ2HbhL/68tweZ6k1QGuEbTODFZ0Q8CCEhLBYkkKvk2Lo58MXALpi4W3LF/yZaSWc4RiFX0LxIfdoXb5rmoqGCIAgfSwQrgiAIgvCZeBL2nNn7lxEui3rnMUknIWl0yI2Sryovk8momb8S7Us0w8UyT0Y3VRAEARDBiiAIgiB8VnQ6HUcfnWHr9b8JSQxPcX9bE2tquVemgUdNnC2dMr6BgiAIbxFpVgRBEAThMyKXy6lfqCZ1ParjG/KYK/63eBz+jLC4CNRaNZbGFlibWFHILj9FHTzxtHNPdX0WQRCE9CKCFUEQBEH4DMllcoo4eFDEwSOrmyIIgvBeoqtEEARBEARBEIRsSQQrgiAIgiAIgiBkSyJYEQRBEARBEAQhWxLBiiAIgiAIgiAI2ZIIVgRBEARBEARByJZEsCIIgiAIgiAIQrYkghVBEARBEARBELIlEawIgiAIgiAIgpAtiWBFEARBEARBEIRsSQQrgiAIgiAIgiBkSyJYEQRBEARBEAQhW1JmdQPSgyRJAERHR2dxSwRBEARBEARB+Fjm5ubIZLL3Pp4rgpWYmBgA6tSpk8UtEQRBEARBEAThY126dAkLC4v3Pi6TXg9L5GA6nY7AwMAUI7OM5uPjQ/fu3Vm3bh3FihXLsnYI2Zd4jwgpEe8R4UPE+0NIiXiPCCnJbu+Rz2JkRS6X4+zsnNXNwMzMzPDfD0WIwudLvEeElIj3iPAh4v0hpES8R4SU5LT3iFhgLwiCIAiCIAhCtiSCFUEQBEEQBEEQsiURrAiCIAiCIAiCkC2JYCUdOTo6MmzYMBwdHbO6KUI2Jd4jQkrEe0T4EPH+EFIi3iNCSnLaeyRXZAMTBEEQBEEQBCH3ESMrgiAIgiAIgiBkSyJYEQRBEARBEAQhWxLBiiAIgiAIgiAI2ZIIVgRBEARBEARByJZEsCIIgiAIgiAIQraUK4IVSZKIjo5GJDYTBEEQBEEQhNwjVwQrMTExVKhQgZiYmKxuiiAIgiAIgiAI6SRXBCuCIAiCIAiCIOQ+yqxugCAIgiAIgiAIHycuLo6LFy8SGxtLqVKlcHV1zeomZSgRrAiCIAiCIAhCNidJEmvWrGHevHlEREQAIJPJ+OKLL5g5cyaWlpZZ3MKM8cnTwHbu3ImXlxdnzpxJ9vHg4GBmzJhBw4YNKV26NPXr12fBggVifYkgCIIgCIIgfARJkpg1axaTJk0yBCqvt2/ZsoVOnToRHR2dhS3MOJ8UrFy/fp2ZM2e+9/HAwEA6duzI+vXrMTExwdvbG51Ox6+//kqXLl1y7YsqCIIgCIIgCOll0aJFrFy50vBz27ZtGT58OFZWVgBcu3aNCRMm5MrMuGkOVo4cOULfvn0/GHDMmjULPz8/BgwYwJ49e1i2bBn79++nadOm3L17lxUrVqT18oIgCIIgCIKQ6x0/fpzFixcD+mlf8+fPZ8WKFUyYMIGdO3diYWEBwI4dO9i8eXNWNjVDpDpYefnyJRMnTmTIkCGo1WocHByS3e/p06ccPHiQvHnzMmLECMN2IyMjZs6cibm5OZs2bSI+Pj7trRcEQRAEQRCEXCosLIwRI0YYRkwmTJhAt27dDI97eXmxcOFCw89z5swhKioq09uZkVIdrCxevJjt27dTokQJNm3ahIeHR7L7nThxAp1OR506dVCpVEkes7S0pGrVqsTGxnL+/Pm0tVwQBEEQBEEQcrGZM2cSHBwMQL169RgyZMg7+7Rs2ZIWLVoA+rXiP/74Y6a2MaOlOljx8PBg3rx5bNmyBS8vr/fud+/ePQCKFCmS7OOenp5J9hMEQRAEQRAEQe/8+fNs2rQJ0Hf0z58/H7k8+Vv3SZMmGQYH/ve//xEaGppp7cxoqQ5WBgwYQJs2bd77Yr0WFBQEgKOjY7KPv97+OloUBEEQBEEQBAF0Oh0zZsww/DxhwgTy5s373v0LFChA9+7dAYiPj2fNmjUZ3sbMkmEV7GNjYwEwMTFJ9vHX21/v97ECAwO5detWkn8+Pj6f1lhBEARBEARByCb27NnD1atXAShWrBg9evRI8ZgBAwYYBhNWrVqVa9aFZ1hRSIVCAeizFiTn9UKh1KZY27Rpk8giJgjZRGB0MNcf3SIgPBCVUkVhl0IUdymMiSr5TgoheXHqeB6EPiEkNgyFXI6DmR2e9gVRyhVZ3TRBEAQhkyUkJDB37lzDz5MnTzbcV39I/vz5adGiBbt37yY4OJhdu3bRqVOnjGxqpsiwYMXMzAzQv+DJeb3d1NQ0Veft1KkT9erVS7ItNjbWMPQlCELGCo0J45dDa7kSchud+X86I56CpNGRR2fH4Hq9KeH6/nVtnztJkrgWcJudt/bjE+KLRNKOGzOlKQ08a9KuWFPMjFL3OSkIgiDkXKtXr+bp06cA1KxZE29v748+tm/fvuzevRuAP//8UwQrH+Lk5AS8WbvyXymtafnQeV+f+zVRXFIQMl54bATf7VrKA50fcqUc/huovCJTygkknOmnllBI7srUNmMwFSMtSdx6eZcVp/4gRBP+3n1iNXHsvnOQ44/OMa7WYArbF8y8BqajBE0ifpH+KOVKXK2cUYjRIkEQhPcKDw9n6dKlgH520pQpU947Syk5FSpUoEiRIty7d48LFy7w4MEDChUqlFHNzRQZFqy8zgL24MGDZB+/f/8+wAczigmCkPUkSeKXQ2s58OIkchOlYT6spJOIex6JZaIpNkZWqLVqghJDkbmYYGRpDMADnR99141ifpspuNm+f2Hg5yImMZbvD6/kZuT9JNvjQ2MJ83lJXGA0yGRY5rfBvlRe5CoFEQlRTDu8iLG1BlM2b/EsannqxWsS2HzzLw76niBBmwiAlbEFrYo2okWR+ikmaREEQfgcrVixgvDwcADatWtHyZIlU3W8TCajU6dOzJw5E9Avn5g0aVJ6NzNTyaTULhr5jx49enDhwgVWrVpF9erVDdv9/PyoV68ebm5uHDhwIMlcu6ioKOrUqYMkSZw8edJQeTOtoqOjqVChApcuXfrkcwmC8IZ/2EsmbplFrLXGsE2boMHIT6Jj+Za0rN8cpTJpn8ftO7eZu2UpMQV0KIxfPRan47vmkyjkWCAzm5+tXH9+m7lHV6AxevORG/0snLgroTQsWYeKFSpiZ2dHcHAwhw8fZvfhv3FvXwJrT33hXWO5EbMbjiO/jWtWPYWPotVqOXHuFBuf/004yRcmK+NcjJFV+2JhbJ7JrRMEQci+nj9/Tu3atUlISMDY2JiTJ0/i6pr6z/zg4GAqVKiARqPBycmJixcvvvNdnZNkWNeWq6srdevW5fnz5yxYsMCwkD4xMZGpU6cSExND586dRXAhCNnU3/8eYPiub5IEKppHMQwt3I2NE3+lbePWyX74FS9anDVTfqaNZV39SAGAqZxJf8/hZWTy00Jzu1XHNzLz5DJDoKKJTST6RACDi3bj0Jp/mDRxEo0aNaJixYo0adKEBQsW8M+WPWiPhxNywx+ABF0i3x1fQbw6+2Z3uXTpEt716jL32ApDoCJpdJS0LEwl1zKGqQzXAnyYc2IFcdn4uaSGJEn4hjxm0409LDz9MzOPLWHF+T848vA0CZrErG6eIAg5xLx58wxruvv27ZumQAXAwcGBhg0bAvosukeOHEm3NmaFDBtZAf3oSufOnQkMDMTDw4PChQtz48YN/t/eXcc3dXYBHP8lTd29xaW0SJEiLTrc3d3d3V58OAwb7gwdMmTIcBg6HIoVBqwUKNTdkiZ5/8ga6ChQoG1SeL6fz/t5x83NvSchJPfc53nOCQwMpFixYmzZsgVz86+/syZGVgQh46jVambtWcjt5L+RSDUXl4rYJHwMijG687B0VSRJ8edf55h/eTVmOawAME4wYF2nhRjLjDIldn2jUqmYtHsOf/NCuy3WP4J6dpXp362vtoHXh0RHR9OmfVsk1ayxzGMLQF23qvQs0y4zw/4i58+fp1u3brjWdyNHlQIAyGOSuLfiEuooBatXr8aleG4WX15HdJImiS3uXJj//TAo265jUalVXH15m30PjvJP5Is097E1taZ/uS7ZagqfIHyIUqnkr7/+4urVqzx79ozIyEhMTExwcXGhSJEieHl5Ubhw4c9aYyFo3L17l3r16gFga2vLxYsXsba2/uLjnThxgm7dugHQrFkzli9fDsC1V3f44/EZGnrUpEyO4l8dd1bI1GQFICgoiKVLl3L27FmioqLIkSMH9erVo3fv3hmWWIhkRRAyRqIikaGbJhBh9bb/kfx5LFMbj6ZUkRJfdMzjf55g2f2tmNhrKgQWkOZkTuuJGRKvPotPimfQ1v8Ra/G2IqL8fhTzukzD3a1Quo8TGhpKw7ZNyNWtGAZGmpGsGTVH4+5QIMNj/lKvXr2ibt26JNtIKDG4MgBStYS4I6+5eeoqAIaGhuzZswcnN1emnFlInFzzGWtWpC4dSjTTVehf7EmYP+tu7OBZRMAn95VIJAz26U7lvOWyIDJByHhxcXGsX7+eX375hTdv3nx0X1dXV+rUqUPr1q0pVaqUSFzSQa1W07p1ay5fvgzA1KlT6d2791cdUy6X4+XlRWRkJGZmZvj6+hKSFM64E3NIViXjZpePWbXHZkT4me6rkxV9IJKV75siWcGxK6d4GuRPHoecNChfB2MjY12Hle28iQhi2O7JqKzfzg61emXIkn6zMTf7uhHQFVtWc0p9XbuGpbNHcxqXqvNVx9Rn4TERDNgyFpW9ZsRApVTh/MqcRUPnYGT0+aNKFy5cYPiK/5G/aTEACljlZna98XpxEaBSqWjZsiXXrl+j1KhqmLlYAtC1VCtq5avM0KFDOXjwIAAuLi788ccfhEuimXpmESq1CoAxlftRNmdJnb2Gz3Hd9wbrr+wg1DI21ftvo7agZelGlMxRFEsjc15Fv2H3/cPcefMAAEOpjGk1RuJmn09HkQvClzl//jxDhgwhODj4s5/r5uZG69atadWqFS4uLpkQ3bfh3VGQfPnycebMmS/6rfivkSNH8uuvvwKwctVKLhs/4GnEcwBaFK1Pu+JNvvocWUEkK0K2tv34LnY//QNDu7elcZOj5bTIV4dOtbN/bfGs8uD5IyYfn4/USjMtSZmUTFmKML7LiAw5vlqtpvf0QUR7aC5OSVSxru1PWJlYZsjx9UlQeDCDfv0fEvt/38tEBZWkJRnRefBXHXf8/8Zz1+UFZs6a92xM5f6Uzfllo10ZaefOnYwYMQLnCnlxa61JONzs8jGj5mikUikKhYL27dtr7xjWqlWLTZs2cfjxKTbf/g0AM0NT5tWdgJO5vc5ex6dcuHCBBduWovIyxdj6bd+buNfR+B+8T6RfCPnz52fp0qV4eXkBmmlia65t4/Q/lwCwN7NlYb3JopS3kC2oVCp+/vlnFixYgEql+e6WSqXUrl2bBg0aULJkSezs7EhMTOSff/7h/v37nD9/nkuXLr3XY8/AwIAaNWrQoUMHatSoka0Xe2c0hUJBrVq1ePLkCQBr1qyhYcOGGXLsP//8kw4dOgBQc0AjEt00NyNzWrkwt87/MDL4+FRkfSGSFSFbUqlUDF/zPwKtI7XrKt6lVqmpaFyC4S0G6CC67OUvv+vMv7QKA3PNl5Y8KpFO+ZvQqnbzDD1PVFQU7Zf0wcLDDoB8ElfmtZmcoefQteevAxixbyoG9pqRveR4BR3zNqZljaZffezw8HAa9GpGnraa0RUXEweWNPlRp6MrsbGxVKlShdDIMMr8ryZGVpqL8Jm1xqTqCxMaGkrt2rW1d2ZXrFhBkyZNWHhpLVde3gLA3b4AU2uMQKZn61eePXvG/6ZMINA+EpcK+bTbkxMVhPwZQPDlAGKj31Y9MzExYc2aNdSsWVOznzKZaWcX8yhUU8Y/u057E74v4eHhDB06NNXC7KpVqzJ12lSwlREaH46lsQXu9gXeW4MYGxvL4cOH2bVrF3/99dd7x3Z2dqZ169a0a9eO/PmzZ/+ojPTLL79oSwuXK1eOffv2Zdj3enJyMl5eXiQaKSg5oipSmRSJRMLMmmOy1SivKHQvZDsqlYr+y0fy2jZKm6ioQxUUiHNBHaSpvCORSriYcIfj17J3BYzMdvzmaeZfXf02UQlLYHz5ARmeqABYW1vTv0IXkhMUAPirX3Pln5sZfh5deR4YwLA9k98mKnFy+hXtkCGJCoCdnR09G3QmJiACgDeJodwN8suQY3+ptWvXEhwcjEvFfNpExSeX13sNLB0cHJg5c6b2zxMnTiQiIoJ+5Trh+O9oyuOwZ+y+dyjrgv+EpKQkFi1aRLNerYmvYJgqUXFQWjOr2hjObzjOw/sP2Ldvn3Y0JTExkT59+nD//n0AZAYyBnp3QSbV3Ek+/OgUwbGhWf56BCG9bt68Sb169bSJikQiYdToUfSZOZjFfr8w8dR8Fl9ez/SzS+j7+zgO+p3UTukEsLCwoG3btvz2229cunSJYcOGpZoCFhQUxLJly6hcuTKtWrVi586dhIeHZ9nrU6lUREdHEx4eTmRkJAqFIsvO/V/h4eHMnz9f++fJkydn6A0omUxG/UYNcO9cRtPMGWjiUTtbJSogRlaEbGjYqvEE2kZq/1wwwZXpnf+HzECGUqmk9/JhxDpryu0mR8lZ23Y+9tZ2OopWf/1+6Qibn+5HaqS5ky1/E8/8ZpMplDdzO912mtQLuacmOTJJkrGp05Js3yDwTcgb+m8bi6GrpohAcqycUd59qFjcJ0PPk5CQQJ0ejXFtplmgX8A8N3Ma6abZV1xcHN7e3kTFRlN2Yi2MrEyQIGFB/Unkskq7AWjv3r05cuQIAK1atWLJkiU8Dn3GlNMLUKpVSJAwsdoQijsXzsqX8p4HDx4wZPhQEgpIyPFDAe1NERkGdC3dmjpuP7x3QZGUlMTgwYM5fPgwAHnz5uXo0aNYWWkq4W29s4/f/Y4DUKtgFfqU7ZCFr0gQPk2tVrNp0yamTZumvYC3t7dn4c+LuGnwmOuBvh98bimXooys1PeDlR6VSiVnz55lx44dnDhxguTk5FSPS6VSvL29qV27NhUqVKBo0aKfrJb4ISqVisDAQP755x+eP3+Ov7+/9v9fv35NVFSUdlobaJIxR0dH8ufPj5eXFz4+PlStWhVj48xf+zp06FD27NkDpK7YlZGmHVrA/TjNFDNpjIrN3Zdlm+lfKUSyImQrc7ZrvjRTlJUWYUzrIan2iUuIp/O6gcicNHd6XWNsWNJrdpbGqe92n93PzhdHtIlK8st4lneeg6tT5neZ9/f3Z8Ce8VjktgGgVf56tPHOmNEHXQgND6X3hpEY5tYkKsqEZMZV6E85j9KZcr6169bye9J5TB00RQ9+qjtRJ40iV61axfTp03GpkJeC/65V8cnlxchKfT74nODgYKpVq0ZUVBQAu3fvpmLFihx4eJxtvvsAsDGxYn7dCVibWGX+i/gPpVLJ6tWrWb59NfnbFNeuDwJwtyvA4ArdcLZw/ODzExMTadGiBXfu3AE0ydnUqVMBiJcn0P/g/0hITsTQwJCVjWdhZSx+rwT9EBsby+jRo/n999+128qVK8e8JT+x+uEOXkQFareXdClCceciBES+4vzzq6jRXEZ6uRZjdKV+yAw+vh4lJCSEPXv2sH37dp49e5bmPqampnh6elKgQAEKFCiAk5MT1tbWWFpaolarUSqVJCYmEhYWRlhYGMHBwQQEBODv709AQMB7a2Y+l5WVFQ0bNqR37954eHh81bE+5Ny5c7Rv3x7QzDw4e/YsTk5OGXqOP//5i+VXfwE0a1EfLLvMlZOXtDdRsguRrGSx2Pg4fJ/dIzw6gjLuXrg6OOs6pGxj2/Fd7As5pR3KdJfnYkbnCWnue/X+DebdWo3U0ABVsoppFYdRLH+RrAxXb+3+899ExVCTqKgDk1jV7SfsbbNu9Gni4mk8dtWUv5TKYVO7RZhkw0XHUdFRdF85BFm+fxOVpGRGlOlFpWIZO6LyroSEBOoMaIJrPTcAfsjpzaDK3TPtfGlJTEykQoUKBIeGUGZ8DUzsNYnTnNrjKGCX96PP3bx5M+PHjwegUKFCHD9+HJmhjNnnlnHnzUMASroUZXyVgVk64hYQEMCwEcN4bR1JrpqFkBhozm0gMaBjyWY0KFQjXfEEBARQvXp1EhMTkclknDhxAnd3dwB+ubWHw49PAdDWszEtizXIvBckCOn04MED+vXrx9OnT7Xb+vbty4Dhg5h9YRkvojWNac2NzBjs043S7/TmuBvkx08XV2sbvH5OHyi1Ws3169c5duwYx44d+2DiklFkMhmurq7Y2tpibW2NkZERSqWSqKgoAgMDCQoKSvN59erVY/z48bi5uWVYLNHR0dStW5eAAE3p83nz5tGxY8cMOz7Ag+C/mfHnzySrNKNYj7ffJOT6S5YtW0bz5hk/1TsziWQli9x67MvS4+uIskzAwOTtXQdVsJx2xRvTqloz3QWXDVy4c5mFN9cjM9MMXdpGmLKq74KPzu3st2wE4Y4JAJiHydg4YGmWxKrP9l44yHb/g9pERfJGwdqei7CyyNqqXNHR0bRZ1BOrwg4A1HStSN8fOmdpDF9LLpfTaU4f8NBUhlIplPQt1oHaXtUy/dw/zp7OnVwBGBjJMFBJ2dh6ISayrCvXnZJwOJbOiXunMoAmwZhQ9dMVz1QqFU2aNOHWLc3C+nHjxjF48GAiE6MZfWwmUYnRgOaip0fptpleQECtVrNr1y5mLptDrmZFsMj1tglbfpvcDK7Q/YPT2j5k0aJF/PTTTwDUrl2bTZs2ARAcF8bgw5NQq9XYmdqwotHMbD8FUsi+1Go1GzduZMaMGdqRCEtLSxYuXEjlGlWYdnaxdkTF3tSWydWH4Wr5/p3/hyF/M+PPpSiUmqljoyr1xTtXqc+O58mTJ1y4cIFr165x/fp1Xr58+dnHMDExIW/evOTLl0/7//nz5ydv3rzkzJnzo1XIQkJCuH79On/88QdHjx4lLi5O+5hMJqN3794MGzbsq68z1Wo1/fv315Z09/HxYc+ePRn6XRAYE8TEk/OJlWteQwkLd1b20XwnNWjQgLVr12bYubKCSFYymUqlYuIvM3hs+FJ7gZgWp0grFvea+cnh0+/RP4HPGfH7VAxtNXfeDUJVbO67DEPZx+dcvgoKZPDhScjMjVArVUwpPxTPAt9vF+kjV46z4fEe7dQvAuVs6LsECzPd/JuZv3IhV60fITGQIlGo2dh2EWaGpp9+oh5Qq9X0njWIaDfNvGe1Sk2nAk1o6pM1d8pfvXpFx4V9cfLODUAvr3bUca+aJedWKpX88MMP+Pv7U2p0NcxdNdMJplYfTlEn93Qd4969e9SvXx+VSoWJiQlnzpwhT5483AvyY+afS1H+u1i3U8nmNCmcef14wsPDGTVmNPeTn5G7trt21FaKhFaejWhWpO4XVSdLSEigSpUqvH6tuSN98uRJihTRjOzOO79SO/d/YtUhlHARI75C1gsLC2P48OGcOnVKu61o0aKsWbMGxxxOTDuziOdRrwBNojKlxnBcPjIF8sST86y9sR0AS2MLltSfioXx1/Xnio2Nxd/fn2fPnhEeHk50dDSxsZr+RgYGBhgZGWFvb6/9X65cuXB1dc2Qi/74+Hi2bdvGqlWrUjXBdHFxYcaMGdSvX/+Lj7106VLmzJkDaKZ/HTt2jNy5c391zCleRb/hx7OLiUjQTLct6VKU0RX7Uq5sOUJDQzExMeHu3buYmZll2Dkzm7ilk4kiY6LosmwgT8xeaxMVZVIyRsFqLEJkJEe+nVMZbBNNr5VDUy36EiA6NoZRe94mKspwOcs6zf5kogKQ0zkHuZI0X64SAynLTqzP1Fj12ekb51j/cJc2UVG/SmJ9H90lKgADu/Yj+r6mKpLaUMKWi7t1Fsvnmrh0GlH53y4QreNUKcsSFYCcOXNSQJJD++e9t45k2bmPHDmCv78/tkWctImKu30BijgWSvcxPD096d5dM3UtMTGRiRMnolar8XQuTN9ynbT7vbsoPaP99ddfNOzQhDdFEshbv7A2Uclp4cLsOuNpVazBF5dRNjU1pX///to/v7to9od8b6cInvO/8oXRC8KX+/PPP6lVq1aqRKVXr14cPHgQ55wuzPjzZ22iYmdqw5Tqwz6aqADUKliZcv82do1JimX73QNfHaeFhQWenp40adKEbt26MWTIEP73v/8xfvx4xowZw7Bhw+jcuTMNGjTAx8eHnDlzZtjohJmZGb1799Y05B0+XLvY/s2bN/Tq1YuePXsSGBj4iaO8b8eOHdpEBWDBggUZmqj4R7xk6umF2kQlr3VOhlfshZGhEXXr1gU037lnzpzJsHNmBZGsZJJXIa/puXk48neWpNiFmbKy0Sy2Dl7FhkFL2dlzNe6JuVCrNINb8Y4qRq//tvpOfA25Qk6/9aMwcNYkKslxCqbXH/NZlb1GNO2PMklzURlqHsPrsDefeMa35/aTuyy7/QsGppoET/UmiXW9F2NprttRSDMzM+oXqKb9/J9+eZnEf+c967OV29fgZ/1Ku6ahmGFBetfM+ilsfVv3JPaV5gcpnGj8I15k+jnVajUrVqwAIFfNt8lJsyJ1Pnu61ujRo7XlTE+dOsUff/wBQLX8FWjj2Vi739Y7+1h1bSvyZPnXhg9oRobmL1nA6G1TydWlmHbalwQJLYrWY169/5Hf9usvHjp06ICdnea76sCBA9oLmzI5imP+7wjilZe3tHP9hYyRlJTE3bt3OXLkCGsPbOKn4yuYemoh088uYdXVLVx/5YtSpdR1mDqRkJDAxIkT6dChg7bnkb29PZs3b2batGlgALPPLeNZhGYdhY2JFZOrD8Mljalf/yWRSOhZup12Ouqppxd4Euafaa8lq5iamjJq1CjOnDlDjRo1tNuPHj1K9erV2bhxI0rlpz9ParWa5cuXM2rUKO228ePHf9UIzX+d87/CxFPziErS9H3KZ5OLSdWHaWcsvNtoMqUqY3YhkpVM8DL4FUN2TcDAQfOPVpmUTG1zH1YNWIiT3du7E4YyQ2Z0nUA10zLaC7YXVmFsOf6rTuLWJ4pkBb1WDCPZRfMRVcmV9CvegaL5Pq8qR74cebGN1PxDlRoasPKPjRkeqz57EfqK6WeXILPQlJNUhiSxqut8rC31oxJI3w69iL4fAoDaEHZe//0Tz9Ct308c4mjMJe26MyeFDZOaj9BJLN7e3kj9317A77z69XcyP+XSpUv4+vpimd8OqwKa/ii5rFxTLbhNL0tLS22lLICxY8dqp1u0LFqfdsWbaB87/ewio47N4PorX75m5vKTl89oP6Mnl60f4lo5vzbhdDV3YnbtsbQr3hTDDCrpaWpqSrdu3QDNdOBff9V8rxsaGFIht2adT5JSzq3X9zPkfN+7y5cv07t3b4oVK0a7YV1Y8WQ7JxKvcDXiLg9C/+ZukB+n/7nEvAsrGXt8No9DM3cxt77x9fWlXr16bNz49jewWrVqnDx5kpo1a5KgSGTuhZU8CtO8L5bGFkyqNpQclukvAmRnZkMbz0YAqFGz7saOVP1XsrO8efOyefNmVq5ciaOj5jouNjaWiRMn0rRpU65du/bB5/r7+9OlSxdmzZql3da7d28GDhyYIbFFJESx9K+NLLuyCfm/64bc7PIxufqwVBUHK1SogLW15ubMyZMnv7piWlYSyUoGC3jzkiF7JmkTleRYOYM9u9C7UbcPPmdgs94USHjbMGlfwAlehbzO7FD1lkqlot+KkSS6aC5KVEoVjZ2rU6dcjU88M21dqrTV/vf9+CffzV216IQYRu2bhoGl5uJLEZrAolbTcLCx13Fkb5mamvKDczltsn702VkSk/XzC/T67Rusuf8rxjaa5Nc0wZCF7aYhlejma1QikdCqfBOUcs3I4c3Q+xk2+vAh2lGVGm+r4jQtXOeL34NGjRpRp45mTUp4eDiDBw9GqVQikUhoUbQ+g3y6afsBvIkNYd6FlYw6NoO9D/7AP+LlJ/8tq9VqAmOCOP3sImP2T2f8ublQ2BTZv6OMUpWE1sUa8VP9iZ+sYvYl2rdvr52Wsn37dm1vifK535a1vvbqdoaf93ty7949OnfuTKtWrTj+50nytvWkWJ/yqcpO/1dA1CumnF7wXUzDU6vVrFq1isaNG/PkiabXhomJCTNnzmTr1q04OTkRnRjDj2cWcz9Y0xbA3NCUSVWHkNs6x8cOnaZ6haqTx1pTSv1ZRACXAm5k3IvRMYlEQpMmTTh79myqyl23bt2iWbNm1KtXjyVLlnDixAnOnz/Pjh076N27N1WrVtU22AQYNWoUU6ZM+eriIeHxkfx69wDDjkzl/POr2u018ldkao0RWBilXjNkZGRE7dq1AU2idf78+a86f1YSC+wzUMCbFwzbOwWZ/dtEZZRPHyp6frqMqUqlot2yPuCs+RG1CJGxYdD3V71KrpDTb+VIbVNHtUpNTUtv+jXq8VXHbbW4B1JXzd9LS+fatK3W4qtj1WcKZTK9NgwnwUrzPsojEpj8wzBKFy2l28DSEBERQZufemBbQpOwtyrUgDalG3/iWVnL/7k/A7eNx7ygDQCSeDWr2s7F1sz640/MZAkJCTSZ3gHbkpr3rodnG+oVq54p5/L19aV+/fqY57Sm1EjNYn57M1uWNpz+xWs7QJOk1K5dWzuqMmzYMEaPHq19/GXUa9be2M7DkCfvPddQKsPV0hkrYwvMjEwxkhoiVymQJ8uJSIwmOC40zWlWaqUKT6tCDK7RCzszmy+OPT26devGiRMnANi0aRO1a9cmWaWk9/7RxCkSMDU0YX3T+aK4ymd6/vw58+fPZ98+TX8ei9w2FO5WFmPbt4uGrRSmSJ7KuXTgLDFRMVgVsCdPPQ8sctlo9+lXrhM1ClTK6vCzRFxcHCNGjODQoUPabSVKlGDp0qXaMrwhcWHM+PNnXsdopoWZG5kx4YfBX9Xh/M6bB8z8U3P94mzuwKL6U77Jz/eVK1cYM2aMNgn8FEdHR35auIBS5b2ITowhWaUkWaVEIgETmQkmMmNMZMYYy4wwkhpiIDXQJjRKlZKopBgCo4N4FvGcO28ecD/471QjV+ZGZnQt1Ypq+St8MIbjx49r1wu2bduWhQsXfsU7kHW+vU+PjqhUKob/NgVZyohKjJzR5ftSwdM7Xc+XSqVMaTSSyecXYmAiI8ZewYlrZ6hdLnMuPPRRdGwMfdeNROn69sKnglHxr05UAKrm9uF88m0ADt4/8U0nK2q1mjHbpmoTleR4Ob2LttPLRAXA1taWshbFeEoYAAceHqNFyfp68+MWHh7OoPXjMC9mC4BarmJ2w/E6T1RAMzLlZVMUf8IB2HvzcKYlK3PnzgUgb6O31auaFq7zVYkKgJ2dHcuXL6d169aoVCoWL15Mrly5tM3Sclm7MrX6CK69usNBvxPaaSoAClUyAf8uBE6PpIgETEOlzOg+EbecBb4q7vTq2LGjNln57bffqF27NjKpAaVzFOf886skKBK5F/yYUq7fb6XCzxESEsKSJUvYunWrtsu6c/k8FGxRAsm/RRKsjC3oUqoVVfJ6I5FIiB0Zy+LFi1m9ejV3/IIp0MwT18r5AVhzfTv2ZraUdPm23v8XL17QpUsXHj9+20R58ODBjBw5UtsZ/mHI3yy8uFa7xsHO1IYJVQd/0YjKu0o4F6G4swd3gx4RFBfKyWcXqFeo2lcdUx/5+Phw8uRJ9u/fz/r167l79+57+xhaGJPHpyDFqpXC0MmUtSG/oT64J13HlyBBZiBDioQk5YdHzQ0kUqrnr0i7Ek0/2Wj2hx9+wNzcnLi4OB49epSuOPSBGFnJIE9ePOV/lzQ1rJNj5Iyp0I/yxcp99nH+t/FHnphppoCpg+XsHLj2u6jD7/86gFG7piJ10SR7aqWKSqalGNa8/yeemT7xCfF03DoIQytj1Co1M6uMxj1XwQw5tr6Zd2Ap1xMfAKBKVlLTqBz9W/fWcVQfFxgYSNdVg7Atppkf3b1Ea+oX+bJpfxkpMTGRDj/2RFZSs8ZHrVQxyqcPPgXL6Diyt549e8bQI1MwddR89y2uN4Uc1i6feNbnuXjxIm3atMG6kAOe/SsC4Ghuz+L6UzJsjceqVauYPn06oJluMXPmTLp27frefiFxYVx/5cvD0Ce8iAzkTVxImtPBpEhJiognJjCSGP8Iop+F06dVd4YOGZql36kKhYLSpUsTHh6OiYkJd+7cwcLCgr9e3GThJU2vg9oFq9C7bIcsiyk7iomJYdWqVaxZs4b4+HgApIZSCrcri63X28+7h0NBhlfshZ2pzXvHOHXqFP379ycuLo78zYqR4wfNb4C5kRnz607AwSzrGuNmJj8/Pzp27KgdrbS0tOTnn3/WTrlUq9Ucf3KOTbd2acuEu1o6MbHqEBzNM2aa8NPw54w/8W95XmNLljb8MVs2/v0c/v7+3Lhxg6fPnhJmFEOUQxLhsphMO5+jmR1V8vlQp+APnzVCvHPnTpYvX87AgQNp27btp5+gB0SykoEmbJrBy5jXDKndizKFvb7oGPGJ8XTaNAiZreaivYqRF4Ob98nIMPXOsb9OsurOdgxt/i1IIFfS3LUmnWpl7D+iISvH8sZO03AuX7wz87pPzdDj64Nfz+9lb+AJ7Z8Lhjkze8BU3QX0GQZNHkZwMc16FVOlERvbLdJpoq5UKukxtT8Jnm9HDjoWakLT0hlXvSWjtJ/aA2URzb+fUiYe/K/psAw7dlJSEnXr1uWp/1NKjaqmTYoG+XRLVYb3a6nVaqZNm5aqWVmnTp2YOnUqpqYf7r+jVqtJSk4iTpGAQpVMXHQsy5YsY9e2X+HfXzdHR0eWLVtG5cqVMyzezzFhwgRtY8jFixfTunVrEpOT6Ll/NAqlAlsTa1Y2maWz9U/6LDExkS1btvDzzz8THh6u3W6T055yg6sTb/T2jnP9QtXpXLLFR0dlr169SocOHUhITKBw93LYe2oafhZxdGNytWEYfOVIoa7duHGDLl26EBkZCUDBggXZuHEjBQtqErM4eTzrbuzgYsB17XOKO3swrEIvLD9xV/5zLby0lr9e3ASgjWcjWhVr+IlnZG9qtZprr+6wzXefdlrdu2RSGbmtXHEwt8PGxAojAyMMpAao1SqSkuUkJieRkJxIUrIchSoZhVKBQpWMSqXE1NAUCyMzXCydyGnpQjGnQrhaOmd601x9oR/zLL4RM7tN/OpjmJmY0SBXVY7H/QXAmZC/6JnYCTOT7NO8J71UKhXzdi7hWvJDbaKSHKegV7E2NPDJ+EZw3Wt0ZNbNFUikEp4qX6BUKjEwyN4/TO+6/PAqe54fQ2qoueAxfy5l1ugpOo4q/YZ2HsjAneOxKeRIgoGcC/7X+KFAxl0Mfw6VSsWQOaOILyIh5aeguqOPXiYqAO0rtmBL6EEkBlJuRzxEqVJm2EXX4sWL+fvvv8nXuKg2UfGwL0DlvJ8/cvwxEomEKVOmYGRkpO1LsnXrVk6fPs3w4cNp3rx5mkmLRCLBxNCEyLBINm/ezLp161J1nq5UqRJLly7F2Tn9VY0yWrNmzbTJyr59+2jdujUmMmNKOBfmRuBdIhKjeBLmj7tD1kxNS4/g2FCuvLxNUFwIKpUKF0snSrkUJY9Nziw5v1wu59dff2XJkiWpmvLJZDKaDWhDpFsy8cma9UhGBob0LduJKvk+Pe3a29ubVatW0a1bN/7ecRuLkdYY25nxMOQJf/x9hkYetTLtNWW2Gzdu0K5dO+3IU8mSJdm6dau2hPaD4L9ZdmUTofFvk77GHrXoUKJZpiRp7Ys35erL26jUKg76naSuW9UMT4j0RXBsKKuubeVecOqpVS4WjlTIXYYyOYpTwDaP3kxvzm7EyIoeUqlUtFveG5w05WaLKfIxpdNYHUeVsV4EvWLsrz9qSxMDqELlzGg0lsJ509cF+0u0WdwTXDXva1OH6nSs2SbTzpWVnge/YOShH5Gaa74IVf8ksHXYKkxMstewe5fRPUksq/n7scaCNW3mZfmdI5VKxeBZIwnKH69tFFjUtCBTGo/U27tYSqWSZnM7Y1pQs46mq1tzGpb5+oR/3759DBo0CMeyuXHvoBktlkllzKv7P3JZuX718T9k+/btTJo0icTEt4vjLSwsqFSpEkWLFiV37twYGBiQmJhIQEAAV69e5caNG6ma6pqbmzNx4kQ6deqk86m0arWaChUq8OLFC6RSKTdv3sTR0ZHTzy6y6tpWAFoUrUe74k11GidoyqBuvLVLe0f8v9zs8tG2eONMW+Mhl8vZu3cvixcv5sWL1L2DmjZvStE25Tj3+m3lIxcLR0ZW6kNem1yfdZ7Fixczf/58LPPbUXxQJSQSCUYGhiyoNwnnTzRA1EcPHz6kZcuWREVpei9VqlSJDRs2YGFhgTxZzu77h/nd7wTqf4cbzQxN6VO2IxXzZO6U1jXXt3PyqabqVGOPWnQu1TJTz5fV1Go1Z/65xKZbu1NVsizsUJDmRetR0qWoGDHNAFmWrFy9epVVq1bx8OFDEhMT8fDwoGvXrhnSEOdbS1YAjlw+zqYATZWT5Fg561v/hK2VrY6jyhjrD2/hUOAZDK2MtduswoxZ3H0mFqbmH3nm11u+dy1/KjQ/wkahsHXgykw9X1aITYijxy/DwFaTqCQFxrGm8084O3y6kZe+uXbtGpPPLsAyj+azPrbyAMrk/PweHl8qISGB/vOHE1cIJFJNYlLAICezWv5P739wZqyfh6/FPwCYRsv4pfeXVxOMiYlh27ZtzJk/F8fyucnXsIi2J0nXUq1o6FEzQ2L+mCdPnjBt2rRUJT/Tw9DQkA4dOjBkyBBt00l9MGfOHJYu1fyd/Pjjj/Ts2ZPIhCj6/D4OgLw2uZhfd4IuQ+RhyN/Mu7CKOHn8J/f1yeVFrzLtsDbJmJ5NsbGxbNu2jbVr1/L6derS/XXq1KHTwG4cD7/IP+80Py2fqzT9vDtpm959DpVKRc+ePTl+/Dj5m3uSo4pmVKuEcxEmVB2stzcm0vLPP//QokULbaPHSpUqsXnzZkxMTLgX9Ig117fxJjZEu39Rx0IM8umGg3nmr9EJj49k8OFJKFTJGBoYsrTBj5legS+rJCuT2XBzJyefXdBuczSzo6tXa8rlLJmtPkP6LkuSlYMHDzJ69GhkMhk+Pj4YGBhw+fJl5HI5gwcPZtCgQV91/G8xWQHo8HNfkp01Fwh5Yx2Z3/NHHUf0dfz8HzP9wAIU74ymKBMU1LSrwIAmPbMkhlQL7ZUq5lYbT4Ec+bLk3JlBpVLRY/VQ4u1SShQn8mP1kZTw8NRxZF+u5eD2GFS2AcBZZs/SljOy5LzPnv/DiI0TMSry9uIrn0EO5rSYoPM78+kRGhZKz92jMLbVXLgNL96DCkU/PlXr1atXbD3yK74Jj0kyVyExNUCtUqNMVKCUJ2NkbaodXQKo51aN7qXbZOmP8M2bN9m2bRvHjx9PtWbhvwoWLEiTJk1o164duXJ93l32rPD48WOqV9dUaitbtiwHDmiaeI4/MYen4c8BWNF4ps4Wed8MvMeCi6tRqDTfJZbGFjRyr4mnswcSJPwd9g+nn13k+TvV1yyNLehdpn2qvjGfKzQ0lPXr1/PLL79oRwVSVK9enWEjhvPcOIg9D45oCykYSA3oXLIF9QtV/6rPYlhYGDVq1CAiJgKvMTW0/3Yyej1WZnr9+jXNmzfXjkJ5eXlpGpAaSthyZy9n/rmk3ddAakBbz8Y08aidpd9pm2//xqFHJ4Fvp5hEdFIsCy+u4UHI39ptNfJXpItXqy9KnoWPy/RkJeXLQCqVsnnzZooX19wlffr0KV26dCEsLIz9+/dTuHDhLz7Ht5qsXL53lYW+65EYSFEmJrOo7hTyuOjfj/CnxCcmMPvXhTyQ+Gs7fwNIQpKZ1nh0pk77SsvA5aMJcYgFoGCiK7O7Ts7S82ekMRun4m8WBIAyKZke+VvSsEo9HUf1dY4fP87PDzdj5qJp6jatxgiKOBbKtPMlJCSw+NflXI7zxcTx7cheCRN3/tdkqN6PqLxr1KpJBNiGAmASJGHzkBVp7peYmMhPCxdwMuIyTmVzp+vYjT1q0bFEc50lbiqViidPnuDv709gYCCgGUXJkSMHhQsXxtU186alZZRatWrx8OFDQNOjIVeuXOy5f5hd9zR9MHqVaU8dtx+yPK4nYf5MO7NIWx61pEtRhpTv/t76ApVaxYXn1/jl1m5i5G/XBVXLV4FupVun+yJNrVZz/fp1Nm/ezKFDh5DLU5dlrV27NgMHDkSWy5RNN3fzOvbtYuVcVq4M9OlKwQxq4pnSd8K2qDNFe2kSFCtjCxY3mPpeUz19Ex4eTsuWLbXliT08PNi9Zzf3o5+w5fZv2pLEoFln1rdcJ3JZZ/2/k+ikWAYfmkRCciIGEimLGkzFJRtOtUsRFh/Bj2cWaz+XhlIZfct1yjYJbnaU6b8627ZtIzExkY4dO2oTFdDcBRsxYgRqtZpffvkls8PIlip4emMZrpm/b2AiY86+xboN6DOpVCqW71tLx00DeWT6UpuoJMcrKC/zZMeA1VmeqAB0q9Ze2zH9sfx5tu1ov2z/Wm2iolapqW5eLtsnKqC5oFM+iNX+edPlnRl+joTEBPb/eYihK8bRbn0/bpk91SYq6mQVjXPWYGLT4dkqUQEY13YYyfGa3hMJjip2HNn13j6+vr40aNaQ89xJlagoE5OJfx1DUnAcymg50mQJjsa2VMtXgdm1x9G5VEudjjBJpVLc3d2pU6cO3bp1o1u3bnTs2JHq1atni0QFoEmTJtr/PnjwIAClXd/+Lt4MfL9PQ2aLSoxm3oWV2kSlfO7SjK0yIM2F0FKJlB/y+bCw/mS8c5XSbj/rf5kxx2biF/L0o+cKCwvTNsZs1qwZe/fu1SYqMpmMNm3acPr0aSYvnMbJhCvMPrdce0EokUhoVqQuc+uMz7BEBTRTzNq0aUPEgyBC72iS4OikWLbf2Z9h58gMMTExdOrUSZuo5M2bl9mr5rPw5nqWXdmkTVRMZSb0KtOOaTVH6iRRAU3y1+jfqaNKtUqbnGdHwXFhTDm9QPu5tDaxYkr14SJRyWSZPrLSokUL7t+/z65duyhZsmSqxyIjIylfvjx2dnZcunTpA0f4tG91ZAXgwT9+TL64EKmhASqFkmmVhlMsf5FPP1HH9v15kK2++zBwMk613SJUxrTW48jtlDUVZT6k9eIeSP7taN/KuQ5tqjXXaTyf68ilY2x4+htSI00FlzxRDvzUZ7qOo8o4O3ftZFvYEUzsNFXw5tX5H/ls0zcCkBa1Ws2VO1c5cPUoT2Keo7STIjN7vz+IUayUifWGUThn5o3kZLapO+byQOoPQJx/JEtaTsfNzY3ExESWLVvG6m3rKNyjHKZOmu9KqUpC47w1aV66AWYmYvpCZvL396dSJU239OLFi3P06FHUajX9Do4nIiEKQwNDNjT7CWOZUZbEo1KrmHt+Bbde3wfAw74gjW2qEvwmCIlEgoODA0WKFMHK6v11KWq1mj/9/2LDzZ3ahcUSiYT6harTqlgD7ahESEgIp0+f5vfff+f8+fMolalvDtnY2NCuXTt69OhBnHES+/2Oc/3VnVT7FHYoSPfSbcn/Fd8BHxMdHU3NmjUJjQun9Nga2htr02uOwsNB//pxJSQk0KlTJ/76S1M1NEfBXLSa0oUbofdS7VcuZ0l6lm6nF2tE4hUJDD40iRh5HBIkzK87Icsqy2WUoNgQpp1ZrK2m5mzhyJRqw7Jk7c/3LtOTlRIlSpCUlMTNmzcxN39/SLVy5cqEhIRw6dIl7O2/rBnRt5ysAAxcOZoQO82dZosQGRsGffnC2cy29+zv/Op7AJxT/9iqQxX0KNuW+j61dRRZakt2r+SiyhcA41AJWwamPV1GH930u830Cz9jaKlJtkyDpWwcuDRbrKtIL4VCQd0BTXGopbmDWtgyPz82GPNFx1mxcy2nXl7EOK+ldtH8fxlEqmlRvD6tKjTJ9osi5clyOm8ZgtpM8zpeHXmMl2URLl68SKJ5MoW7l8PQQvPZsZCZMaH6kAy9Uy18XMOGDbl9+zYA586do2DBgqy+to1T/y7SHVtlAGVyZE1RicOPTvHLbU03bakcfBeeJyo44r398uXLh7e3N+XLl8fb25t8+fJp/50ExYaw7K9NPAp7pt3fWGKETbAxj47e4f6te+8dD6B06dJ06dKF6nVrcjfUj2NP/uRZRECqfRzM7OhQohmV8pTN9H+XZ8+epWPHjrhWyU+B5pr3P491TubUGY9Mj3qvyOVyevbsyenTpzG2NaVAvWI4eudGqX6bBOa0cqFrqdaUcs2cim1f6qDfSbbc+Q2AsjlKMKZKxjR9zgqvY4KZdmYR4QmRAOSwdGZytWF6kQh+DzK14HNUVBRJSUmYm5unmagAODk5ERISQkhISLqSleDgYEJCQlJtS6kp/q0a33IYQ/+YioGJjBh7BZfuXqFicf0ZclSr1ew6vZc9948gcTZKlagkRyTRIE81erTWffnQd/Vo0Jmzvw7F0MKIRFslAUEvyOOcOXftMtI/gc+ZfmYJhnaaksTqUAUrev2sV+9tRjA0NKRDxZYcir6AkZUJfjH/4BfylMKO6b/Lefn6X8z+42dM3K0xyZ/6zrAyIRnzeCOK2LvRtHwDiub1yOiXoDNGMiMGVurGslua6bU5G7hz58ITLKu64OaTV5uw5bJyZfwPAzOsY7WQPk2aNNEmK7///jvDhw+nTA5PbbJyI/BuliQrgTFBbPPdr/3z3Q2X00xUQDMi5O/vz65dmmmFDg4O5MmTBxcXF6RSKUkKOXLHRGTFLZEaGpCklhPkKMeqXV6KlDUn+kko8UGx2JpZU6VqFUqXL4vKSoJf6DP2Hp2k7aKews7UhhZF61E9f0UMDd4fAc0M1apVo3379uzY+StOZXNjkduGgKhXHHl8iiaFM77v15dISkpiwIABXPK9glubkjiVy61Z0/pvomJuaEprz0bUcauqVwlWirpuP3D48SnCEyK5HujL49BnetVb6ENeRr9m+pklRCRqCkDksnJlcrWh2Jha6ziy70emjqy8fv2aatWq4eDgwMWLF9Pcp3379ty8eZMdO3ZQuvSnK4osXbqUZcuWpfnYtzqyAjBm/RT8LTRzJGXBKrYPXq3jiDRrUn499Rt7/Y4idUo9kpIcJcfb2pNhzQdgYmT8gSPoVv9lIwhzTADAXZ6LGZ11Wzb0U8Kiwum9eSQyJ02iooyUs7j5NHI7Zb+iC+khl8tpMLA5drXyAOBsaM+S5j+max3Jlr3b2PniD+0ifQB1vBI3w9w08KpFpSI+31yC918br+7kj3/OpvlYcWcPRlTsg7nRt9dsVt8FBgZSrpymSluhQoU4c+YMSUo5PfeNQqFKxs7UhpWNZ2XqSIJarWbqqYU8DHsCwKuzT/H//T7W1tbUqlULDw8PpFIpL168wNfXl/v377+3CD4tRjam5GtYBAevnB8cxfyYArZ5qFeoGhXzlMUoi5KUd0VHR1O9enViDRMpMbQKEqkEYwMjFtafrPOkPj4+nu5DehFkG41j6Vyp3l8TmTF13arSpHBtvW+6ePLpedZc3w6Ap5MHk6sP021AnxAQ+YrpZ5do1wDltc7JpGpDsTKx/MQzhYyUqSMrKRcDH/vSTcmV0psztW3blho1aqTaFh8fT6dOnb4wyuxhfOvh9Nw1EpmlEclOUg5fOkbDinV1EosiWcGag5s4/fIyBk7GqRKV5MgkKtiWYnC3vnqbpKToXKUNi/00d58fJjzL0K7fGS0yJop+G0cjc9UkKsmxcqbVHvHNJioARkZG9K3bjU0v92PuakWQIoxDD0/SpOiH73Kq1WqmrZjFHZOn2kRFLVdRN2cVuldrr7d/v5mhW7k22FhYs/v+IZL/LSJhZGBIG8/GNHSv8V29F/okR44c+Pj4cOXKFf7++2/8/PwoUqQIns4e3Hp9n/CESJ5HvvyqNVqfcvzRn9pEJTEsjpfHHjFo0CAGDx6c5g2/xMRE7ty5w19//cXVq1d58OCBtqdHColEgq2xFa4vLSnkkAOJmykvJcFEy2PfO967HMzs8M5Vikp5yuJml0+n0zCtrKyYN28eXbp04fXFf8hRpQBJSjkbbu5kTOX+Oovt8oNrzD2wBMOaVjhJ397NNzM0pYF7dRoUqoGFsX5XLktRLX9FDvidICg2hHvBj/B985ASLvq5DvdZ+HNmnltGTJLmM5zfJjcTqw3R+4TwW5SpyUrK1K93uxD/V8rdGjOz9N3hc3JywskpdbO72NiPfxl+C2ytbPAy8eAumqZvm27son75rK2VHhkTxZL9q7gd54ehrUmqxfPJkUlUcSjLwB69MDLMmsWhX6tiyfIsOLMaA1cTDKyNOHDxCC2qNNZ1WO+JjImi94YRSFw176syKZmhZbpTvEAxHUeW+Vq2aMm2vrvg3yI22+/sp2zukuSwdH5vX7lczsAFI4nIK8fQQPPZlCVKmdN4InnsstdCzowgkUhoXrQeNQpU5GHIE6QSKUUdC2Wbi5pvWZMmTbhy5QoABw4coEiRIpR2La5d6H4j8G6mJSvBkSGsu7IdiYkmWQ088oTtW7ZrF/6nxcTEBB8fH3x83k4/TkpKIiwsDLVajUwmw97eHpks9SWFWq3mVcwbHoc+IzwhkqjEGIwMDDE3MsPV0okCtnlwMnfQq3ViNWvWpHXr1uw9uA+HEjkwsjbhRuBdTj27SK2ClbM0lqfhz1lxaiMvVEEYFXh7J99EakzTonWoX6g6ZkbZqyiGTGpAW89G/PzXRgB23D1AcefCevUZAHgQ/Ddzz68gIVlz/VrQLi8Tqg7W+3LW36pMnQamVqspXbo08fHx3LlzBxMTk/f2SVlgf/HiRRwcHL7oPN/6AvsUCUmJdNw0AJmN5kKsgXUVutXL/OZKz175s+TQal4YBiMzT52IKMOT+MHZmwFNemIoy/ph+6+1YOdSrvAAANMwA34ZkPYUQ115/jqAEbunYuCs+TtXypV0LdCMJpUa6DiyrOPn50fflSNwrqhZBG4lNWdh4ymphuFDwkIYsHo0koJvf7jt5Jb81GaKuDgX9E5ISAilS5dGpVKRN29eLl68SGh8OAMPTQSgkF0+ZtYem+HnVSqVdPl5AIocmptcUfeCmd96CiVKlMjwc2VnkZGR1KhRA4WjhCI9vAEwNDBkdq2xmV7BSq1WczfIj23X9/JP3MtUjynjk2ngVo0O5Vtiavj+9VR2oVKrGHNsFgH/NhgdWakPPrm8dBzVW9df+bLo8joUSk0Z+MIOBRlXZWC2Swy/JZl6W14ikeDurumj8fTp+/XXIyMjCQ0Nxc7O7osTle+JqbEJVR29tX/+PeAkoVFhmXa+v+5do+eyIYw5M4vXNpGpEhVJSDKNbauyu+86hrboly0TFYDeDbuSHKsZ3YuzVvAqJFDHEb11+e5Vhu2f8jZRSUqmW8EW31WiAlC4cGFautcj7nU0ANGqOEYfmsHfYf+gUqnYfnoPvXekTlSKyvKzouMckagIesnR0VE7kvH8+XPu3LmDo7k9eaw1F8JPwp8TmRid4ecdv3CSNlFRJij4seVYkaikwcbGhjlz5hB+7w2vL2hmMyiUChZdWkecPHMK+ihVSs79c4X+e8Yz48+fUyUqSVEJmD5Wsbr5HHpW6ZitExXQ9OtpV/xtz6Ett39DnvzpNVGZTa1Ws//hMeZfWKVNVLxcizGh6hCRqOhYps8hqlKlCgAnT55877GTJ0+iVqupWrVqZofxzRjYtBfq4H+baFkbM3brjxl6/JRF8+1+7s2Cu+uJcVQgNdRMF1ArVZiESOnj1padg9bSuU67bL9I2crCCod4zR16qUzKksO6L1ygVquZu2MxP91cq636lRynoE/hdjSumP2bPn6JwQMGk9PfiqRITUGECGU0E07Oo+2uAewPOYWRo+aHRKVQ0sDpB6a2HJPtP5vCt61p06ba/967dy8ApXN4AqBGzY1Xvhl6vvWbNvDQ5IX2zzWcK+BTyvsjz/i+1alTh+7du/PP7/eJfaWpAvUq5g0/XVytvZDNCGHxEWy/tY/uu4az7OomwlVR2scSQmIJPxVA37xt+WXSahxsvp3KfWVyFKeYk+ZmdnBcGAf8jus0nujEGBZcWsN23/2o0Uw4qpinLKMr9cuyvkfCh2V6n5XXr19Tv359JBIJ69ev11b8evbsGV26dCE0NJQDBw7g4fHlpUO/l2lgKW743WLWtZUY/NsQsIJBcYa3GvBVx4xLiGPF7+u5HHoLmUPquzbKpGSc460ZUKcHngX0q257Rrj+4CZzbq9GaiBFmZjMuhbzsbW00Uks1x7cYMGJVahc3s79VkYkMbXOKIp/g+/950hISKD/6IGEuCVh7ppGk7oIBWNqDKScu/5MJxCED4mMjKRMmTIkJiZiY2PD9evXeRUfxP9OzgU0FdsmVRuWIec6deoUk3bOJldNTbNTO7UlK9rOSVdlve9ZUlISLVq0wO/l35QYUlnbn6i4c2FGVer7xSMciclJ3Aj05ezTy9wJegj/Wa4RExBB8oNYOlVvTZvWbTA1/Tbv6r+ICmTMsZko1SoMDQxZVG8yThZZO8tGrVZz5eUt1t/4VVvxC6CNZ2NaFK0n/o3oiUxPVgB27drFpEmTMDAwwMfHByMjIy5fvkxSUhIjR46kT58+X3X87y1ZAZi1fQG3DTTVXJRyJZ3zNaFZlUaffZyANy/5+eBqnkkCkVn+p/xwjBwPg7wMa9oPZzunDxzh29BxUV/t9IgiyXmZ1nFclp4/MOQNP+6aT6hNDFLZ2ypN5mEyfuo0DXsr0SEXNCN/W7dvZev53ahcDTGyMMZIYcAPBcozqEWfbFPcQRAAhgwZwm+/aZrkLVmyhJYtWzLkyBSCYkOQSCSsbjz7q3s53Lt3jw4DuuDRrxwSAykSNfxUfxK5rXNkxEv45r148YL69eujsFTj2b8iBsaaG0m5rFwZUr57ugshxCbFcSfoAdde+XLjlS9JytTTntQqNeEP3uAQYUHvZt2oUaPGdzE6vPnWHg49PgVA2ZwlGVO5X5ad+0mYP5tv78Ev9O0yBUsjc/p7d6ZszpJZFofwaVmSrICmU+/atWu5d+8eBgYGuLm50aNHD+rU+fpmS99jsqJSqei5YghxjpqSpMrEZDrka0zLqk0+8UyN87cvsenCr0RZJyI1Sl3CVBkq5wfXsvRt1EPvyw9nlNPX/mTlkx1IpBKUsQq2dlqKqXHm381KTEpkzs7F+Cb/nWpNUHKcghr2Pgxq2jvTY8iuIiMjkUqlWFm9P8oiCNnBtWvXaNasGQBly5blwIED/Hr3AHsfHAWgm1drGrjX+MgRPu7Vq1c0adoE5/buWOSyAaB1sYa09vz8G1vfs1u3btG6dWtkziYU7eWDzEzzXS2RSKicpxzV81fA3aGgtjeMWq0mIiGKZxHPeRL+nHtBj/g7/J80WzQkRSYQfPUFJa08GNxrIMWKfftVHt8Vr0hg2JGp2jVaoyr1xTtXqUw9Z3BcGNt993Mp4Hqq7aVzFKdf2Y6i2aMeyrJkJTN9j8kKQHRcDL02DAcnzRekSqkif7wzE9uNwtri/Qu4wJA3bD65g2uhd1OVHQbNXR2jUGhdqhFNKzfUuzKCWaHNop6QQ/MjVFxVgEntR2fq+Xae+o1fHx3C0P7tVAKVQknOBHsmtx0tRlME4RunVqupVasWfn5+AOzfvx8X95yMPDod0PR1mFNn/Bd9H0dFRdGyZUuiXRXka6SZQprL0oV5dScgM8jUrgXfpLNnz9K1a1cM7Uxw71wGi5ypL2glEgnWxpZIJBKik2JR/tvbKC2KODlhvoGE3npFhULeTJwwgfz582f2S9BbF55f1ZYytjS2YEHdiZmSMCQoEtn38CiHH51CoUrWbs9h6Uynks0pk6PEd3ntkx2IZCWbi4yJos+mkdqEBTQNA20SzMlh4YSB1IDQuHCCFGHgYIjUIPWwsjIpGcc4K/rW7IKX+/c97Pn7uSNsfX0QAGVCMiubzsLJ1jHDz/PslT9Tf5tHonPqf3rGIRLG1B9I8YLf1501Qfie7dy5kxEjRgBQu3ZtNm3axPjjc3ga8RyAmbXGUMj+8y5kY2JiaN++PX+HPKP4kCpIZVIkSJhZawxu9vky+iV8N06fPk2fPn1IlCeRo1oBclUvhMwsfZUwE4JiCX/whgi/YKKfhuFeyJ1p06ZpixB9z9RqNQsuruHqq9uAZoRjbAY24VSr1VwMuM4vt/cQ9U6VPUtjC9oUa0TNgpWRiSa5ek0kK9+AJHkSIzdMIsg6Gok0ff+4k8OTKGbuxqBGvb759Sifo8PCPiTn1HxpOUVbsqz3vAw7tiJZwZxfF3Mr+REy07c/cMrQJLp5tfluK30JwvdMLpdTsWJFXr9+DcCxY8cIMYtm5bUtAFTNV56BPl3Tfbzo6Gi6dOnCzbu3KDmiKqYOmvLdTQrXoVPJ5hn/Ar4zvr6+9OvXj+fPnyM1MsCuqDMOnjlwcnNFZm6ExECCkdoQdYKSiH9CeHLtETEB4cgjNc0FbW1tGTlyJJ06dcLQMHuW/M8M0YkxjDw2Q5tMdCnVkkYetb76uDFJsay78SuXX9zQbpNJZTRwr0GLIvVESeJsQiQr35Czt86z9sI2kmxV2nLD70qOTMJRaUPjUnVoUL7Od7F473PdeHiL2TdWIjU0QK1S071gSxp41/7q4566fpYVlzenmn6nTFDgZVSYcW2HiWkZgvAdW7duHVOmTAGgQoUKbN2xjf4HxxOnSMBQKmNZoxnYpmNazOvXr+ncuTMP/R7i0aUsDiU1i+gL2ednWo2R4u5xBomJiWHWrFls3boVlUqVrueYmJjQpUsXhg4dio2NTeYGmE3dCLzL3PMrAM20uvFVBlLK9ctnGtwMvMeqa1tS9Swql7MknUu1xMUi42dNCJlHJCvfoNCoMM7cOk9A6EskSLC3tKWse2mK5vMQ8zHTYcTKCby0CwdAGSVnVdt5OFp/WX3716FBTN05l3DbOCTvTMEzDZEypfloCuTMlxEhC4KQjSUlJVGjRg38/f0BWL58OTH5lBx8pOlPVsftB3qVaf/RY9y8eZO+ffsSGBhIvsZFyVndDQBzQ1Pm1p2Ak/m306NDXzx58oSNGzeyf/9+IiMj09zH3d2dVq1a0b59e+zsxDrET/n17u/sffAHAMYGRkyoOpjCjm6fdYxERSKbb//GyWcXtNvMjczoXaY9FfOUzdB4hawhkhVB+I/EpEQ6rO6HzFkzPCwLU7GpzzKMZOkfslckK5i/eynX4+8js3inyldEEm09GtG2eosMj1sQhOzr+PHjdO/eHQArKyt2//4b83zXkJichIFEyqIGU9O8G6xUKlmzZg1z5swhOTkZ1yr5KdC8OKC5Oz22cn9K5yiepa/le6NUKnn48CFPnz4lIiICmUyGq6srRYoUIUcOUSL6c6jUKhZeWsvVl7cBMJYZM7R893SXEvZ985DV17YSEh+u3eblWoy+5TphZ2qTCRELWUEkK4KQhr/uXmPetVXacsJG4RJWdp2HpdnHP19J8iRW/L6e8yHXkdm9nfKlUijJn+TC1A7jMDc1y9TYBUHIftRqNf379+fgQU2RD3d3dzrP7sPR5+cAKOxQkKnVR6Savnvt2jUmTpzIvXv3AMhZ3Y18jd82j+1TtgO1CooF3EL2olAqmHdhFXfePABAgoT6harRpnhjzAzTXmMSEPmKXfcOaRfpg2ZkpkupVtQqWFnMKsnmRLIiCB+w5eivHAg7rW3SqIyS09KtHm2rtcDgnbnfcoWckzfOcuTOSQJlYalGUgCMgtWMbTBYVPkSBOGjYmNjadCgAU+faprU5S6Qh6JDKhKrigegSeHatHSvz7lz51i3bh2XLl0CQGpkQMGWJXAq97ZBYatiDWjj2TjrX4QgZAC5UsGKq5tT9UIxMzTlh7w+FHUqhJ2pDYnJSQREBXIj0JcHwX+j5u3lbDEnd/qW6yTWpnwjRLIiCB+x8dBWDoX9iYHJ2wXwyjgFhvFSpEhRSJJRWUq0XY3fpQpJonXRRrStIaZ8CYKQPv7+/rRr144XL14AYJnPjuKDKmkrPYZcfcnT/b4oE5ORGhngUCoHBRt5IrV4O021XfEmNC9ST9xNFrI1tVrN4cen2HH3dxRKRbqeY2tqTZtijaheoCJSiSgi9K0QyYogfMLJq2dY8dcv2jUsH6NSqjAMVdPMsx6tqzUTFdcEQfhsQUFB9OvXj6tXrwLgUjkfBVuU0D6uVqlRxCZhaG6MxOBtQmIsM6Zv2Y5Uzlsuy2MWhMzyJjaEfQ+Ocv75VZLfaeb4LlcLJ2q7VaFOwR8wkhmluY+QfYlkRRDSIUmexMoD67n06gbJNpJUfVIU0UmYxRtR2L4AnWq0JX+OvDqMVBCEb4FarebQoUP8+uuv/PXXX1gWc8CtTck0y9IDlHIpSvfSbXG1FH2zhG9TvDyBe8GPCIgKJDopBhOZMY5m9rg75CePdU4xkvgNE8mKIHwmpVKJf+Bz5MkKnO2csLO21XVIgiB8w9RqNYmJiYQmhHPC/wKPQ58RFh+Bjak1bnb5qJ6/AoXs84uLNUEQvkkiWREEQRAEQRAEQS+JCfWCIAiCIAiCIOglkawIgiAIgiAIgqCXRLIiCIIgCIIgCIJeEsmKIAiCIAiCIAh6SSQrgiAIgiAIgiDoJZGsCIIgCIIgCIKgl0SyIgiCIAiCIAiCXhLJiiAIgiAIgiAIekmm6wAyQkpfy9jYWB1HIgiCIAiCIAhCepmbmyORSD74+DeRrMTFxQFQtWpVHUciCIIgCIIgCEJ63bhxAwsLiw8+LlGnDEtkYyqViuDg4E9mZpnt4cOHdOrUia1bt1KkSBGdxSHoL/EZET5FfEaEjxGfD+FTxGdE+BR9+4x8FyMrUqkUFxcXXYeBmZmZ9v8/liEK3y/xGRE+RXxGhI8Rnw/hU8RnRPiU7PYZEQvsBUEQBEEQBEHQSyJZEQRBEARBEARBL4lkRRAEQRAEQRAEvSSSlQzk6OjIoEGDcHR01HUogp4SnxHhU8RnRPgY8fkQPkV8RoRPyW6fkW+iGpggCIIgCIIgCN8eMbIiCIIgCIIgCIJeEsmKIAiCIAiCIAh6SSQrgiAIgiAIgiDoJZGsCIIgCIIgCIKgl0SyIgiCIAiCIAiCXhLJiiAIgiAIgiAIekkkK4IgCIIgCIIg6CWRrAiCIAiCIAiCoJdEspJBrl69So8ePahQoQJeXl60a9eOP/74Q9dhCXpApVKxc+dO2rZtS+nSpSlevDh169Zl/vz5REdH6zo8QQ/J5XIaN26Mh4cHz58/13U4gp4ICgpiypQpVK9eHU9PTypVqsSoUaMICAjQdWiCnjhy5Ajt2rXDy8uL4sWL07BhQ1asWIFcLtd1aIKO7N+/Hw8PDy5dupTm46Ghofz444/Url2bEiVKULNmTebPn09cXFwWR/phooN9Bjh48CCjR49GJpPh4+ODgYEBly9fRi6XM3jwYAYNGqTrEAUdUalUDBkyhBMnTmBiYkKJEiUwMzPD19eX8PBw8ubNy/bt23FwcNB1qIIemTNnDhs3bgTg+PHj5M2bV8cRCbrm5+dH165diYyMpGDBghQoUIBHjx4REBCAra0tv/32Gzlz5tR1mIIOLViwgDVr1mBoaEjZsmUxMTHh5s2bREVF4eXlxS+//IKxsbGuwxSykK+vL927dyc2NpaNGzdSsWLFVI8HBwfTrl07Xr16hbu7O/nz5+fu3bsEBgbi4eHB9u3bsbCw0FH071ALXyU0NFRdokQJdalSpdS+vr7a7U+ePFFXrFhR7eHhoX748KEOIxR0adeuXWp3d3d1nTp11AEBAdrtMTEx6r59+6rd3d3VQ4cO1V2Agt65fPmy2sPDQ+3u7q52d3dX+/v76zokQceSkpLU9evXV7u7u6tXr16t3Z6cnKyePn262t3dXd2vXz8dRijo2qNHj9QeHh5qb29v9ePHj7XbIyIi1C1atFC7u7ur165dq8MIhax26tQpddmyZbW/JRcvXnxvn8GDB6vd3d3VP/30k3ZbUlKSeujQoWp3d3f17NmzszLkDxLTwL7Stm3bSExMpGPHjhQvXly7vWDBgowYMQK1Ws0vv/yiwwgFXfrtt98AGDduHLlz59Zut7CwYNasWUgkEk6ePEliYqKuQhT0SHR0NOPGjSNv3rw4OjrqOhxBTxw7doynT59Su3Zt+vTpo91uYGDAyJEjyZkzJ2/evEGpVOowSkGXLl68iFqtpn79+hQqVEi73cbGhl69egGa6erCty8oKIjx48czYMAAFArFB2duBAQEcOLECVxdXRkyZIh2u5GREdOnT8fc3JydO3fqxfWJSFa+0tmzZwGoXbv2e4/VrFkTiUTCn3/+mcVRCfrCxsaGAgUKUKpUqfces7Ozw9raGoVCQURERNYHJ+idadOmERwczLx58zAyMtJ1OIKeOHbsGADdunV77zFTU1NOnz7Nvn37MDAwyOLIBH0hkUgAePPmzXuPhYWFAWBtbZ2lMQm6sWjRIvbu3UuxYsXYuXMnBQoUSHO/c+fOoVKpqFq1KoaGhqkes7S0pHz58sTHx3PlypWsCPujRLLylZ48eQKAm5vbe4/Z2Njg4OBAWFiY9stC+L6sWrWKP/74A1tb2/cee/HiBZGRkRgaGmJnZ6eD6AR9cujQIQ4dOkSfPn0oWbKkrsMR9Mj9+/eRSqWUKFGC4OBgNmzYwKRJk5g7d664Wy4AUKVKFSQSCWfOnOHnn38mJCSE2NhYjhw5wuLFizEyMqJTp066DlPIAgUKFGDu3Lns3r0bDw+PD+73+PFjANzd3dN8POW6NmU/XZLpOoDsLCoqiqSkJMzNzTE3N09zHycnJ0JCQggJCcHe3j6LIxT02eLFiwGoVq2aWPT4nXv9+jXTpk2jaNGiDBw4UNfhCHpELpcTGBiIra0tZ8+eZdy4camq9GzYsIHmzZszY8YMZDLxk/69KliwINOnT2fWrFksX76c5cuXax8rVKgQs2bNokSJEjqMUMgq704V/ZiQkBCAD045TtkeGhqaMYF9BTGy8hXi4+MBzTD8h6RchKbsKwgAW7Zs4dChQ5iamjJ8+HBdhyPokFqtZuzYsSQmJjJv3rz3huOF71tsbCyg+Q0ZOXIklStX5vDhw9y4cYNVq1bh7OzMvn37+Pnnn3UcqaBrZcuWpXLlypiYmODt7U3lypWxsrLiyZMn/PLLLyQlJek6REGPpFyXmpiYpPl4ynZ9uH4Vt2G+glSqyfVS5oqmRf1vZWi1qBAt/Gvz5s3axfUzZ86kYMGCug5J0KGNGzdy5coVxo4dm2phrCAA2v4YSUlJeHt7p0pKqlevjqOjI61bt2bTpk306tULKysrXYUq6FBKiVoHBwcOHDhAvnz5AIiIiGDUqFEcOnQIiUTCTz/9pNtABb2RssbtQ9ew+nT9KkZWvkLK1K+PVUpI+aExMzPLkpgE/aVWq5k/fz4zZ85EKpUye/ZsGjZsqOuwBB169OgRixYtoly5cmkunhaEd+96duzY8b3HPT098fT0JCkpiVu3bmVlaIIemTVrFrGxsUyfPl2bqADY2toyf/58rKysOHz4MC9fvtRdkIJeSbku/dCIW8r2j80eyipiZOUrmJubY2ZmRkxMDImJiWkOpQUHBwMfnhMofB8SExMZPXo0x48fx8TEhAULFlCrVi1dhyXo2MKFC5HL5UgkEsaMGZPqsZQKcXPnzsXMzIz+/fuLUbjvkKWlJYaGhigUCnLlypXmPjlz5sTX11dUFfxOJSUlcfv2bUxMTChbtux7j9vZ2VGiRAkuXLjAo0ePPvg5Er4vTk5OwNu1K//1qTUtWUkkK19BIpHg7u7O7du3efr0KcWKFUv1eGRkJKGhodjZ2YkO5d+x2NhYevXqxa1bt7C3t2flypWi2pMAvJ0L/LGKTqdOnQKgdevWIln5DhkYGFCwYEH8/PwICgrC09PzvX1SFsCKIi7fp+joaNRqNVKpVDs9/b9SpvwkJydnZWiCHkupAvb06dM0H//7778BPlpRLKuIaWBfqUqVKgCcPHnyvcdOnjyJWq2matWqWR2WoCcUCgV9+vTh1q1b5M2bl507d4pERdDasmULjx49SvN/OXPmBOD48eM8evQIHx8fHUcr6ErKb8jhw4ffeywsLIz79+9jaGgoqj19p+zt7bGxsSE+Pp5r166993hsbCy+vr4AFC5cOKvDE/RUyvXrmTNn3msoGxMTw5UrVzAzM6NMmTK6CC8Vkax8pZYtW2JqasqmTZu4efOmdvuzZ89YvHgxEomE7t276zBCQZeWLVvGjRs3cHR0ZMuWLam62AuCIKRHu3btMDMz4/Dhw+zevVu7PT4+ngkTJhAfH0/Tpk1F07/vlFQqpXXr1gBMnjyZV69eaR+LjY1l3LhxREREULVqVfLmzaurMAU9kzNnTqpXr87Lly+ZP3++diG9XC5n8uTJxMXF0a5dOywsLHQcKUjU+rDMP5vbtWsXkyZNwsDAAB8fH4yMjLh8+TJJSUmMHDky3TWvhW9LVFQUVatWJSEhgcKFC3+00tO4cePEVEEhlRo1avDq1SuOHz8uLjAEjh8/zogRI1AoFLi7u5MrVy7u3r1LSEgIhQsXZsuWLaIS2HdMLpfTp08fLl++jKGhId7e3shkMu1apgIFCrBlyxbxO/Md6ty5M1evXmXjxo1UrFgx1WOvXr2iXbt2BAcHU6BAAQoVKsTdu3cJDAykWLFibNmy5YN9BLOSSFYyyLlz51i7di337t3DwMAANzc3evToQZ06dXQdmqAj586do3fv3unaV1yQCv8lkhXhvx49esSqVau4cuUKMTEx5MiRg4YNG9KrVy9RcVIgOTmZnTt3sm/fPp4+fUpycjK5c+embt269OzZUy/ukAtZ72PJCkBQUBBLly7l7NmzREVFkSNHDurVq0fv3r315jMjkhVBEARBEARBEPSSWLMiCIIgCIIgCIJeEsmKIAiCIAiCIAh6SSQrgiAIgiAIgiDoJZGsCIIgCIIgCIKgl0SyIgiCIAiCIAiCXhLJiiAIgiAIgiAIekkkK4IgCIIgCIIg6CWRrAiCIAiCIAiCoJdEsiIIgiBkGNFnWBAEQchIMl0HIAiCoGsvX76kZs2a6dq3efPmzJkzJ5Mjyn6CgoKYP38+LVu2pEKFCh/d18PD47OO3bx5c5o3b06XLl0oXbo0O3bs+JpQs4xKpaJr166Ym5uzatUqAMaNG8e+ffsAqF27NsuWLfvoMdasWcOCBQsA6NevH8OHD+fKlSt06dLls2KZPXs2LVq0YO/evYwfPx5vb2+2bNny0eek/D2dOnWKXLlyAbB+/XrWrVvHgQMHcHJy+qwYBEEQvoRIVgRBEN7RuHHjjz7u5eWVRZFkL6NHj+bKlSu0aNHik/um9R5funSJsLAwvLy8tBfGKbLre75+/Xpu3brFkSNH0nz83LlzxMXFYW5u/sFjHD58+L1tDg4Oab6HBw8eBKBWrVqYmpqmeixPnjyfE/oHdenShT179jB+/HjWr1+fIccUBEH4GJGsCIIgvOOnn37SdQjZ0udM/0rrPe7cuTNhYWG0adMmzYQnISGBI0eOvHcRrq9evnzJsmXLaN++fZqJgpWVFdHR0Zw9e5aGDRumeYxnz57h5+eHoaEhCoVCu71gwYJpvocpycr48ePfS/gyiqGhISNHjmTgwIEcPHjwk8m9IAjC1xJrVgRBEAS9Z2pqSsGCBcmRI4euQ0mXpUuXolAo6NGjR5qP16pVC4CjR49+8BgpIzJVqlTJ+AC/Qs2aNcmfPz+LFy9OlUQJgiBkBpGsCIIgfIXw8HDmzp1L3bp18fT0xNvbm549e/Lnn3++t+/SpUvx8PDgyJEjTJo0CS8vL8qVK5fqLnl0dDQLFy6kXr16FC9eHB8fH/r27cv169fTPL9arWbPnj20b9+ecuXK4e3tTbt27Thy5Mh7ox1RUVEsXbqUFi1aUKZMGTw9PalcuTJDhgzB19f3vWO/efOGiRMnUr9+fUqUKIG3tzddu3bl0KFD2n1evnyJh4cHV69eBaB79+54eHhw5cqVL3o/P+TKlSt4eHjQvn3797bNnTuXx48f079/f8qVK4eXlxedO3fWvqbr16/TpUsXvLy8qFKlCmPHjiUsLCzN8xw5coTOnTtTpkwZSpYsSdOmTdm0adNnXZS/efOGgwcPUqVKFVxdXdPcx8vLCxcXF86dO0d8fPwHY8mfPz9FixZN97mzgkQioU2bNrx8+fKDU9wEQRAyikhWBEEQvlBAQABNmzZlw4YNJCQkUKNGDTw8PLh8+TJ9+vRh8eLFaT5vyZIl7N+/n/Lly+Pq6oqbmxsAgYGBtGjRgtWrV5OQkEDlypUpVKgQ58+fp3PnzuzevTvVcZRKJQMGDGDChAn4+fnh5eVFqVKlePjwIcOHD2fhwoXafcPCwmjVqhXLli0jJiaG8uXLU7FiRdRqNceOHaNDhw7cvXtXu39ERARdu3Zl9+7dyGQyqlWrRuHChbl27RojR45kxYoVAJiZmdG4cWPs7e0BqFChAo0bN8bBwSEj3+qPun//Pm3atOHhw4f4+Pjg5OTE1atX6dq1K7t27aJLly6EhYVRqVIl5HI5+/fvp0ePHu8lcxMnTmT48OH4+vpStGhRKlWqxJs3b5g9ezZ9+/ZFLpenK54DBw6gVCq1oydpkUgk1K1bl8TERM6ePfve435+fjx9+vSDU8R0rUaNGgDs3btXx5EIgvCtE2tWBEEQvoBarWbYsGEEBwfTpk0bJk2ahJGREQC+vr707t2blStXUqJECe2FXYqAgAB27NhBqVKlAE3VKNAsUn/x4gVdu3Zl9OjRGBoaAnDnzh169erFtGnT8PLy0iY3W7Zs4fTp07i7u7Nu3TqcnZ0BePHiBW3btmXNmjU0aNCAIkWKsHLlSgICAujcuTMTJkxAIpEAkJSUxLBhwzh9+jQ7d+6kePHiAGzfvh1/f3/69u3LiBEjtLH7+vrSoUMH1q5dS69evbCzs+Onn37Srjnp06cPFStWzKR3PW1XrlyhYcOGzJ07F0NDQ+RyOe3bt+fevXtMmjSJAQMGMHToUABCQ0Np0KABfn5+3LlzR/t3sGfPHnbv3o27uzsrVqwgd+7cAMTGxjJ06FAuXLjA8uXLGT58+CfjOX/+PADlypX76H4NGjTgl19+4ejRozRo0CDVYykjFg0aNNDL0Yt8+fLh6OjIjRs3SEhIyDZriQRByH7EyIogCMI7PDw8Pvi/TZs2afe7fv069+/fJ0+ePEyZMkWbqACUKFGCsWPHArBu3br3zlGqVCntRTKAVCrlzp07XL9+HQ8PD8aNG6dNVABKlixJv379UCgUbN68Wbs9pYTvzJkztYkKQO7cuenbty/u7u48ffoU0CzorlKlCkOGDNEmKgDGxsa0bNkS0EzpShESEgKAi4tLqthLlCjBjBkzmDlzJkql8hPvZtaQSCRMnDhR+54ZGRlRr149AJydnRk4cKB2XwcHB8qUKQPA8+fPtdtTKlvNmjVLm6gAWFhYMGvWLAwNDdm2bdsnR1fkcjm3b9/GxMTkkxW4SpUqRc6cOfnzzz/fmwr2xx9/UKRIEQoWLPipl68zHh4eKBQKbt68qetQBEH4homRFUEQhHd8rLrRuxeOKWs0atWqhUz2/ldpvXr1mDhxInfu3EEul6dKZtzd3d/b/6+//gLA29sbqfT9+0hVq1Zl3rx52vMGBQXh7++Pg4MDJUqUeG//rl270rVrV+2fhwwZ8t4+MTExPHr0iAsXLgCkuhD39vZmx44dzJgxg7t371KjRg0qVKiAhYUFzZo1e+9YupQnTx7s7OxSbUv5c6FChd77+7GysgLevt7g4GCePXuGpaWldmTpXc7OzhQuXJi7d+/y4MGDVInmf4WEhKBQKMiZM2eaf4//VbduXTZs2MDZs2e1oyu+vr4EBAQwatSoTz5fl1Iqjr1+/VrHkQiC8C0TyYogCMI70lu6ODg4GOCDJWLNzMyws7MjJCSE8PDwVCMU1tbW7+2fcsG3ZcuWjzbre/PmTarzf2gBd1pevHjB9u3buXXrFv7+/kRERABoR1reXcPRoEED7t+/z8aNG9m7dy979+5FJpNRunRp6tWrR6tWrTA2Nk73uTNTWu9nymuytbX94GMpUt7TmJiYTzasfP369UeTlZSF+xYWFh89Tor69euzYcOGVFPBjhw5gkQieW9qWEZISaA+VWr63VGzD/09W1paAnywWIEgCEJGEMmKIAjCF0hPX5GUfd4dVYH3L5bh7bqV4sWLky9fvg8eM+W5nzsF69ChQ4wdO5bk5GTy5s2Lj48Pbm5ueHp6olKpGDBgwHvPGT16NJ07d+bYsWOcP3+eGzducPXqVa5evcq2bdvYvn07NjY2nxVHZkhrZOtzpLyXNjY2nywT7Ojo+NHHk5OTgfT3nSlRogS5cuXSVgUzNTXl6NGj2iliGS0lifpQBbIUcXFx2v9OGYn6r5T3TV+mAwqC8G0SyYogCMIXcHJyAlKv83hXXFwc4eHhGBgYpOuCPuUiuFKlSulaxJ2yf8qowH+FhoZy6tQp7bqHyZMnA7BixQpq1qyZat8TJ0588DwuLi7aKWUKhYLLly8zffp0nj59yq5du+jTp88nY9V3Ke+lsbHxVzcFTRnlCQ8PT/dz6tWrx7p16zh79izOzs68fv2anj17flUcH5IyEhgYGPjR/fz9/QGwt7f/4MhKZGQkkPbIliAIQkYRC+wFQRC+QEqlp1OnTmnvpr/r6NGjqFQqypYtm661CynHO3/+vHaU5V0nT56kUaNGTJs2DYCcOXPi4uJCSEgIfn5+7+1//PhxJk+ezB9//MHff/9NXFwchQoVei9RAbRrVt4dDRg5ciTly5fn1atX2m2Ghob88MMPdOrUCfh21irkypWLHDlyEBQUlOZ7mZCQQIsWLejUqdMHk9MUuXPnRiaTERYWlu4Rh5TpXseOHeOPP/5AKpVqCwRkNDc3N2xsbIiIiPhoL5xTp04BmrVLH5IyFTF//vwZG6QgCMI7RLIiCILwBby9vSlatCjPnz9n+vTpqZoG3rt3j3nz5gFoL+w/xcfHh6JFi3L//n3mzZuXarH78+fPmTFjBn///XeqKWIpx540aZL2Ljdo1qasWLECqVRKw4YNtYvN//nnH549e6bdT61Ws2PHDnbt2gVoyhinsLe3JyIi4r1YEhMTtSMx7y7sT7n7HhMTk67Xq29SihGMGTOGgIAA7Xa5XM60adO4f/8+sbGxH1yjlMLIyIhixYohl8u5f/9+us5drFgx8ubNy7lz5zh+/Dg+Pj6fnG72pWQymXbUZvz48WnGeOrUKTZt2oRUKqVXr15pHkelUnHnzh1kMlmaBR4EQRAyipgGJgiC8AUkEgkLFy6ka9eu/Prrr5w9e5aSJUsSGRnJ9evXUSqV9OnThzp16nz28TZu3Mjhw4cpVqwYiYmJXL9+HYVCQZ06dVIlPz169ODGjRucOXOGWrVqUa5cOeRyOdeuXSMpKYkRI0bg6ekJaJr4nT59mmbNmuHt7Y2xsTEPHjwgMDAQNzc3njx5QmhoqPbYAwYM4MyZMxw9epQbN25oj+Pr60tYWBje3t40atRIu3++fPk4f/4806dP5/Dhw3Tv3h0vL6+MeKuzRJcuXbhz5w5HjhyhUaNGFC9eHBsbG3x9fQkODsbe3j5Vk82PqVGjhrYUdXov5OvVq8fq1auJj49n8ODBX/NSPqlHjx48evSIQ4cO0aJFC4oWLUru3LlRKpU8evSIFy9eYGhoyPTp07V/7//l5+dHTEwMFStWTHcxAUEQhC8hRlYEQRC+UP78+dm3bx/du3fHyMiI06dP8+TJE6pUqcKGDRsYOXLkZx9v//799OzZEzMzMy5evIifnx+enp7Mnj2bRYsWYWBgoN3fwMCA5cuXM3nyZPLkycPly5e5fv06RYsWZdGiRfTt21e776JFixgyZAi5cuXi2rVr3L59G0dHR0aOHMnevXtxd3cnODiYe/fuAZrF5tu2baNDhw6YmJhw4cIFrly5gouLC2PHjmX9+vWpesEMGDCAGjVqEBcXx/nz53n8+PFXvrtZSyqVsnDhQubOnUvx4sXx8/PjwoULWFhY0K1bN/bv30+BAgXSdaxmzZphaGjI8ePH033+lKlghoaG6U5wv5RMJmPBggWsXLmSunXrEh0dzblz57hy5QrGxsZ07NiR/fv306pVqw8e49ixYwC0bt06U2MVBEGQqNNbskQQBEEQhHSZPHkyO3fu5Pfff/9kOeTsRqFQUL16daytrTl48GC61mQJgiB8KfENIwiCIAgZbMCAARgZGbF161Zdh5Lhjh07RkhICIMGDRKJiiAImU58ywiCIAhCBnNxcWHYsGHs3buXp0+f6jqcDCOXy1m0aBHVqlWjfv36ug5HEITvgJgGJgiCIAiZQK1W0717d2QyGevWrdN1OBlizZo1bNy4kYMHD+Lg4KDrcARB+A6IZEUQBEEQBEEQBL0kpoEJgiAIgiAIgqCXRLIiCIIgCIIgCIJeEsmKIAiCIAiCIAh6SSQrgiAIgiAIgiDoJZGsCIIgCIIgCIKgl0SyIgiCIAiCIAiCXhLJiiAIgiAIgiAIekkkK4IgCIIgCIIg6KX/A4JpbcXFFURZAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "nrows = data.system_dimension\n", - "fig, axs = plt.subplots(nrows, 1, figsize=(8, nrows*1), constrained_layout=True, sharex=True, sharey=True)\n", - "\n", - "for i, ax in enumerate(axs):\n", - " xds[\"truth\"].isel(x=i).plot(ax=ax, color=\"k\")\n", - " xds[\"prediction\"].isel(x=i).plot(ax=ax)\n", - " ax.set(ylabel=\"\", xlabel=\"\", title=\"\")\n", - "ax.set(xlabel=\"Forecast Time (MTU)\")" - ] - }, - { - "cell_type": "markdown", - "id": "83c3aa97", - "metadata": {}, - "source": [ - "## Save and re-load" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "b134355e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds = esn.to_xds()\n", - "ds.to_zarr(\"test.zarr\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "1e006fd3", - "metadata": {}, - "outputs": [], - "source": [ - "esn2 = from_zarr(\"test.zarr\")" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "e4ae085a", - "metadata": {}, - "outputs": [], - "source": [ - "y2 = esn2.predict(tester, n_steps=1_000, n_spinup=500)" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "81ec840c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.DataArray ()>\n",
-       "array(0.)
" - ], - "text/plain": [ - "\n", - "array(0.)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.abs(xds[\"prediction\"]-y2).max()" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "0a145657", - "metadata": {}, - "outputs": [], - "source": [ - "from shutil import rmtree" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "92a6721e", - "metadata": {}, - "outputs": [], - "source": [ - "rmtree(\"test.zarr\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8fba2881", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "ddc10", - "language": "python", - "name": "ddc10" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/conf.py b/docs/conf.py index 0e9f1ca..31f39db 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,10 +8,12 @@ import os import sys +import datetime sys.path.insert(0, os.path.abspath("../")) project = 'xesn' copyright = '2023, xesn developers' +copyright = f"2023-{datetime.datetime.now().year}, xesn developers" author = 'xesn developers' # -- General configuration --------------------------------------------------- @@ -22,20 +24,32 @@ "sphinx.ext.autosummary", "sphinx.ext.napoleon", "nbsphinx", + "sphinxcontrib.bibtex", ] numpydoc_show_class_members = False +napolean_google_docstring = True +napolean_numpy_docstring = False templates_path = ['_templates'] exclude_patterns = [] napoleon_custom_sections = [("Returns", "params_style"), ("Sets Attributes", "params_style"), + ("Assumptions", "notes_style"), ] # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -html_theme = 'sphinx_rtd_theme' +html_theme = 'sphinx_book_theme' html_static_path = ['_static'] + +bibtex_bibfiles = ['references.bib'] +bibtex_reference_style = "author_year" + +html_theme_options = { + "repository_url": "https://github.com/timothyas/xesn", + "use_repository_button": True, +} diff --git a/docs/environment.yaml b/docs/environment.yaml index 2129370..00dd565 100644 --- a/docs/environment.yaml +++ b/docs/environment.yaml @@ -21,8 +21,9 @@ dependencies: - coverage # docs stuff - sphinx - - sphinx_rtd_theme - nbsphinx + - sphinx-book-theme + - sphinxcontrib-bibtex - pip - pip: - smt>=2.0.1 diff --git a/docs/example_esn_usage.ipynb b/docs/example_esn_usage.ipynb new file mode 100644 index 0000000..cb3246f --- /dev/null +++ b/docs/example_esn_usage.ipynb @@ -0,0 +1,1861 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3baa9199", + "metadata": {}, + "source": [ + "# Example: Using the Standard ESN\n", + "\n", + "This tutorial shows how to use the [ESN](generated/xesn.ESN.rst) class, covering:\n", + "\n", + "- building and training the network\n", + "\n", + "- making sample predictions and comparing the predictions to test data\n", + "\n", + "- storing the network weights and re-reading the network to an ESN" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2e902196", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "4f95db44-6cef-467c-9047-67751bd01d90", + "metadata": {}, + "outputs": [], + "source": [ + "plt.style.use(\"./xesn.mplstyle\")" + ] + }, + { + "cell_type": "markdown", + "id": "9d19d99c-e7ea-45cc-8f0a-0d0fd35e1b3d", + "metadata": {}, + "source": [ + "## Create training and testing data\n", + "\n", + "Here we generate a time series using the 6 Dimensional version of the Lorenz 96 model\n", + "(Lorenz 1996).\n", + "First we spinup the model dynamics before making the training data, then discard a brief transient period, and finally \n", + "create the test dataset.\n", + "\n", + "This uses a local module here in the documentation directory." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "8724e2b6-986a-4ec3-9122-f43dbc994336", + "metadata": {}, + "outputs": [], + "source": [ + "from lorenz import Lorenz96" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "5c2fc2fc-315b-46c0-9bb3-6eff1e4c8fe2", + "metadata": {}, + "outputs": [], + "source": [ + "model = Lorenz96(N=6)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "42e408e5-aae7-415d-8054-814709ef527b", + "metadata": {}, + "outputs": [], + "source": [ + "n_spinup = 2_000\n", + "n_train = 40_000\n", + "n_transient = 1_000\n", + "n_test = 1_000\n", + "\n", + "n_total = n_spinup+n_train+n_transient+n_test\n", + "\n", + "rs = np.random.RandomState(0)\n", + "trajectory = model.generate(n_steps=n_total, x0=rs.normal(size=(model.N,)))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "291b35ea-c49b-4651-a0b4-f88d0de47088", + "metadata": {}, + "outputs": [], + "source": [ + "trainer = trajectory.isel(time=slice(n_spinup,n_spinup+n_train+1))\n", + "tester = trajectory.isel(time=slice(-n_test-1, None))" + ] + }, + { + "cell_type": "markdown", + "id": "b93b0d23-891f-405f-a99a-ef1fe6e8730d", + "metadata": {}, + "source": [ + "### Normalization\n", + "\n", + "Here we normalize the data very simply, with the training mean and standard deviation.\n", + "Note that we do not normalize each spatial dimension separately, following \n", + "(Platt et al., 2022) and\n", + "(Smith et al., 2023)." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1a3428cd-1f99-4a50-8fc0-243bb141d000", + "metadata": {}, + "outputs": [], + "source": [ + "bias = trainer.mean()\n", + "scale = trainer.std()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "6c8c38ce-4776-408c-9eb3-4c2d4591f85d", + "metadata": {}, + "outputs": [], + "source": [ + "trainer = (trainer - bias)/scale\n", + "tester = (tester - bias)/scale" + ] + }, + { + "cell_type": "markdown", + "id": "0b892b06-527d-46bb-8479-9f3bedffdd3b", + "metadata": {}, + "source": [ + "## Create the ESN\n", + "\n", + "Here we create a network that fully emulates the 6D Lorenz96 system, so it has input and output dimension\n", + "equal to 6. The other parameters have been obtained from previous experiments, and are used just as an example." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b3d17ce5", + "metadata": {}, + "outputs": [], + "source": [ + "from xesn import ESN" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f6011456", + "metadata": {}, + "outputs": [], + "source": [ + "esn = ESN(\n", + " n_input=model.N,\n", + " n_output=model.N,\n", + " n_reservoir=500,\n", + " leak_rate=0.87,\n", + " tikhonov_parameter=6.9e-7,\n", + " input_kwargs={\n", + " \"factor\": 0.86,\n", + " \"normalization\": \"svd\",\n", + " \"distribution\": \"uniform\",\n", + " \"random_seed\": 0,\n", + " },\n", + " adjacency_kwargs={\n", + " \"factor\":0.71,\n", + " \"normalization\": \"eig\",\n", + " \"distribution\": \"uniform\",\n", + " \"is_sparse\": True,\n", + " \"connectedness\": 5,\n", + " \"random_seed\": 1,\n", + " },\n", + " bias_kwargs={\n", + " \"factor\": 1.8,\n", + " \"distribution\": \"uniform\",\n", + " \"random_seed\": 2,\n", + " },\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "35a8801f-e764-4e5b-aa29-0dea20249946", + "metadata": {}, + "source": [ + "And note that we can always get a printed view of the values set in the ESN" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "2f4d5c1d-83db-4cda-8056-544776d0d129", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ESN\n", + " n_input: 6\n", + " n_output: 6\n", + " n_reservoir: 500\n", + "---\n", + " leak_rate: 0.87\n", + " tikhonov_parameter: 6.9e-07\n", + "---\n", + " Input Matrix:\n", + " factor 0.86\n", + " normalization svd\n", + " distribution uniform\n", + " random_seed 0\n", + "---\n", + " Adjacency Matrix:\n", + " factor 0.71\n", + " normalization eig\n", + " distribution uniform\n", + " is_sparse True\n", + " connectedness 5\n", + " random_seed 1\n", + "---\n", + " Bias Vector:\n", + " factor 1.8\n", + " distribution uniform\n", + " random_seed 2" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "esn" + ] + }, + { + "cell_type": "markdown", + "id": "0bb36e88-3750-45e4-9a49-ae339d265576", + "metadata": {}, + "source": [ + "
\n", + "\n", + "**Note:**\n", + "It is usually a good idea to use the ``random_seed`` to control the randomly generated matrices, so that results are consistent.\n", + "Once reasonable performance is obtained, the seed can be varied to determine how dependent the results are on the\n", + "exact matrices and vector chosen.\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "28deef7d-7016-432c-a25b-2f2b48934c7b", + "metadata": {}, + "source": [ + "## Build the network and train the readout matrix\n", + "\n", + "The [.build()](generated/xesn.ESN.build.rst)\n", + "method creates the two random matrices and the random bias vector.\n", + "Once these are generated, we can run [.train()](generated/xesn.ESN.train.rst) to learn the readout matrix weights." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1ec12ebf", + "metadata": {}, + "outputs": [], + "source": [ + "esn.build()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "246493e8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 15.8 s, sys: 862 ms, total: 16.7 s\n", + "Wall time: 1.8 s\n" + ] + } + ], + "source": [ + "%%time\n", + "esn.train(trainer, batch_size=5_000)" + ] + }, + { + "cell_type": "markdown", + "id": "683e9db3-d9c5-4bb8-9af8-38f528229425", + "metadata": {}, + "source": [ + "
\n", + "\n", + "**Note**: the ``batch_size`` parameter should be chosen so that ``batch_size x n_reservoir`` can fit comfortably in\n", + "memory. Here we choose a somewhat conservative value.\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "2c980719-3070-41dd-b994-bd9a0d487e2e", + "metadata": {}, + "source": [ + "## Test the network\n", + "\n", + "Here we use [.test()](generated/xesn.ESN.test.rst) to make a sample prediction, and package that prediction together with the original test data.\n", + "In order to only make a sample prediction, and not return the test data as well, see\n", + "[.predict()](generated/xesn.ESN.predict.rst)." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "4f2e8f1d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:     (x: 6, ftime: 501)\n",
+       "Coordinates:\n",
+       "  * x           (x) int64 0 1 2 3 4 5\n",
+       "  * ftime       (ftime) float64 0.0 0.01 0.02 0.03 0.04 ... 4.97 4.98 4.99 5.0\n",
+       "    time        (ftime) float64 435.0 435.0 435.0 435.0 ... 440.0 440.0 440.0\n",
+       "Data variables:\n",
+       "    prediction  (x, ftime) float64 -0.09683 -0.08236 -0.06422 ... -1.203 -1.164\n",
+       "    truth       (x, ftime) float64 -0.09683 -0.08235 -0.06419 ... -1.321 -1.287\n",
+       "Attributes:\n",
+       "    n_input:             6\n",
+       "    n_output:            6\n",
+       "    n_reservoir:         500\n",
+       "    leak_rate:           0.87\n",
+       "    tikhonov_parameter:  6.9e-07\n",
+       "    input_kwargs:        {'factor': 0.86, 'normalization': 'svd', 'distributi...\n",
+       "    adjacency_kwargs:    {'factor': 0.71, 'normalization': 'eig', 'distributi...\n",
+       "    bias_kwargs:         {'factor': 1.8, 'distribution': 'uniform', 'random_s...\n",
+       "    esn_type:            ESN\n",
+       "    description:         Contains a test prediction and matching truth trajec...
" + ], + "text/plain": [ + "\n", + "Dimensions: (x: 6, ftime: 501)\n", + "Coordinates:\n", + " * x (x) int64 0 1 2 3 4 5\n", + " * ftime (ftime) float64 0.0 0.01 0.02 0.03 0.04 ... 4.97 4.98 4.99 5.0\n", + " time (ftime) float64 435.0 435.0 435.0 435.0 ... 440.0 440.0 440.0\n", + "Data variables:\n", + " prediction (x, ftime) float64 -0.09683 -0.08236 -0.06422 ... -1.203 -1.164\n", + " truth (x, ftime) float64 -0.09683 -0.08235 -0.06419 ... -1.321 -1.287\n", + "Attributes:\n", + " n_input: 6\n", + " n_output: 6\n", + " n_reservoir: 500\n", + " leak_rate: 0.87\n", + " tikhonov_parameter: 6.9e-07\n", + " input_kwargs: {'factor': 0.86, 'normalization': 'svd', 'distributi...\n", + " adjacency_kwargs: {'factor': 0.71, 'normalization': 'eig', 'distributi...\n", + " bias_kwargs: {'factor': 1.8, 'distribution': 'uniform', 'random_s...\n", + " esn_type: ESN\n", + " description: Contains a test prediction and matching truth trajec..." + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xds = esn.test(tester, n_steps=500, n_spinup=500)\n", + "xds" + ] + }, + { + "cell_type": "markdown", + "id": "63c94a81-8ee7-493f-9452-2d09e26bc1d2", + "metadata": {}, + "source": [ + "Perform the data normalization inverse" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "d7e7b88c-5055-40ea-8aef-df861fee4c75", + "metadata": {}, + "outputs": [], + "source": [ + "for key in xds.data_vars:\n", + " xds[key] = xds[key]*scale + bias" + ] + }, + { + "cell_type": "markdown", + "id": "4fbafe15-d775-48d9-86be-7d51513376a0", + "metadata": {}, + "source": [ + "Plot the results" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "1d6b12bc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nrows = len(xds.x)\n", + "fig, axs = plt.subplots(nrows, 1, figsize=(8, nrows*1), constrained_layout=True, sharex=True, sharey=True)\n", + "\n", + "for i, ax in enumerate(axs):\n", + " xds[\"truth\"].isel(x=i).plot(ax=ax, color=\"k\", label=\"Truth\")\n", + " xds[\"prediction\"].isel(x=i).plot(ax=ax, label=\"Prediction\")\n", + " ax.set(ylabel=\"\", xlabel=\"\", title=\"\")\n", + "ax.set(xlabel=\"Forecast Time (MTU)\")\n", + "axs[0].legend(loc=(.25,.85),ncol=2)" + ] + }, + { + "cell_type": "markdown", + "id": "83c3aa97", + "metadata": {}, + "source": [ + "## Store the Trained Readout Weights\n", + "\n", + "First, we store the weights for future testing by creating an\n", + "[xarray.Dataset](https://docs.xarray.dev/en/stable/generated/xarray.Dataset.html) from the ESN with\n", + "[.to_xds()](generated/xesn.ESN.to_xds.rst).\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "b134355e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:  (ir: 500, iy: 6)\n",
+       "Coordinates:\n",
+       "  * ir       (ir) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499\n",
+       "  * iy       (iy) int64 0 1 2 3 4 5\n",
+       "Data variables:\n",
+       "    Wout     (iy, ir) float64 0.1931 0.3658 0.3793 ... -0.8165 0.04196 -0.1727\n",
+       "Attributes:\n",
+       "    n_input:             6\n",
+       "    n_output:            6\n",
+       "    n_reservoir:         500\n",
+       "    leak_rate:           0.87\n",
+       "    tikhonov_parameter:  6.9e-07\n",
+       "    input_kwargs:        {'factor': 0.86, 'normalization': 'svd', 'distributi...\n",
+       "    adjacency_kwargs:    {'factor': 0.71, 'normalization': 'eig', 'distributi...\n",
+       "    bias_kwargs:         {'factor': 1.8, 'distribution': 'uniform', 'random_s...
" + ], + "text/plain": [ + "\n", + "Dimensions: (ir: 500, iy: 6)\n", + "Coordinates:\n", + " * ir (ir) int64 0 1 2 3 4 5 6 7 8 ... 492 493 494 495 496 497 498 499\n", + " * iy (iy) int64 0 1 2 3 4 5\n", + "Data variables:\n", + " Wout (iy, ir) float64 0.1931 0.3658 0.3793 ... -0.8165 0.04196 -0.1727\n", + "Attributes:\n", + " n_input: 6\n", + " n_output: 6\n", + " n_reservoir: 500\n", + " leak_rate: 0.87\n", + " tikhonov_parameter: 6.9e-07\n", + " input_kwargs: {'factor': 0.86, 'normalization': 'svd', 'distributi...\n", + " adjacency_kwargs: {'factor': 0.71, 'normalization': 'eig', 'distributi...\n", + " bias_kwargs: {'factor': 1.8, 'distribution': 'uniform', 'random_s..." + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eds = esn.to_xds()\n", + "eds" + ] + }, + { + "cell_type": "markdown", + "id": "4acfef69-7e78-45e2-9414-19d2020f4e86", + "metadata": {}, + "source": [ + "
\n", + "\n", + "**Note**: the adjacency matrix, input matrix, and bias vector are not stored, but rather all the options needed to recreate them are.\n", + "This means that true reproducibility is only possible by setting the ``random_seed`` options, as noted earlier.\n", + "\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "a5fe1b0e-d312-4ec3-b0ed-71237c1976fc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eds.to_zarr(\"esn-weights.zarr\")" + ] + }, + { + "cell_type": "markdown", + "id": "4fc61b5a-13dd-446c-aacc-e049d03cf15e", + "metadata": {}, + "source": [ + "### Read in the Network and Show Reproducibility\n", + "\n", + "Here we use the [from_zarr()](generated/xesn.from_zarr.rst) function to read a zarr store with the ESN weights.\n", + "Note that this creates the ESN and runs the [.build](generated/xesn.ESN.build.rst) method to create the network." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "d8a713cb-2888-476a-a9bc-74093d870d70", + "metadata": {}, + "outputs": [], + "source": [ + "from xesn import from_zarr" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "1e006fd3", + "metadata": {}, + "outputs": [], + "source": [ + "esn2 = from_zarr(\"esn-weights.zarr\")" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "e4ae085a", + "metadata": {}, + "outputs": [], + "source": [ + "y2 = esn2.predict(tester, n_steps=500, n_spinup=500)\n", + "y2 = y2*scale + bias" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "81ec840c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray ()>\n",
+       "array(6.49610588e-10)
" + ], + "text/plain": [ + "\n", + "array(6.49610588e-10)" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.abs(xds[\"prediction\"]-y2).max()" + ] + }, + { + "cell_type": "markdown", + "id": "8a9a6042-d890-463c-8a9f-0b0f8b37f4cf", + "metadata": {}, + "source": [ + "## Cleanup" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "0a145657", + "metadata": {}, + "outputs": [], + "source": [ + "from shutil import rmtree" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "92a6721e", + "metadata": {}, + "outputs": [], + "source": [ + "rmtree(\"esn-weights.zarr\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8fba2881", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "xesn", + "language": "python", + "name": "xesn" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/example_lazy_usage.ipynb b/docs/example_lazy_usage.ipynb new file mode 100644 index 0000000..f376b05 --- /dev/null +++ b/docs/example_lazy_usage.ipynb @@ -0,0 +1,1767 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0f6c47ae", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "# Example: Using the Parallel LazyESN\n", + "\n", + "This tutorial shows how to use the [LazyESN](generated/xesn.LazyESN.rst) class, covering:\n", + "\n", + "- preparing the ``esn_chunks``, ``overlap``, and ``boundary`` information, defining the network of ESNs\n", + "\n", + "- building and training the network\n", + "\n", + "- making sample predictions and comparing the predictions to test data\n", + "\n", + "- storing the network weights and re-reading the network to a LazyESN" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "2e902196", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cd623266", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "plt.style.use(\"./xesn.mplstyle\")" + ] + }, + { + "cell_type": "markdown", + "id": "148d1617-5ebe-4f22-9b36-593ead299c6f", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Create training and testing data\n", + "\n", + "Here we generate a time series using the 36 Dimensional version of the Lorenz 96 model\n", + "(Lorenz 1996).\n", + "\n", + "We do this in a similar fashion as in \n", + "the [Standard ESN Tutorial](example_esn_usage.ipynb#Create-training-and-testing-data)." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7ac26b67-9814-4f74-a6c9-4efbcde341f5", + "metadata": {}, + "outputs": [], + "source": [ + "from lorenz import Lorenz96" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "9d4feb44-70d4-4ceb-96c6-efec9b23111d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "model = Lorenz96(N=36)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b445123a-33eb-4059-baaa-dc2f61330728", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "n_spinup = 20_000\n", + "n_train = 40_000\n", + "n_transient = 1_000\n", + "n_test = 1_000\n", + "\n", + "n_total = n_spinup+n_train+n_transient+n_test\n", + "\n", + "rs = np.random.RandomState(0)\n", + "x0 = np.zeros(model.N)\n", + "x0[0]=0.01\n", + "trajectory = model.generate(n_steps=n_total, x0=x0)#, x0=rs.normal(size=(model.N,)))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e13047f2-290c-4abf-a8f3-9536300046c5", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "trainer = trajectory.isel(time=slice(n_spinup,n_spinup+n_train+1))\n", + "tester = trajectory.isel(time=slice(-n_test-1, None))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e52e033c-6db5-432b-8348-6428085e0884", + "metadata": {}, + "outputs": [], + "source": [ + "bias = trainer.mean()\n", + "scale = trainer.std()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "b55bd16c-39a8-4ff9-9ca9-2b706ab087f3", + "metadata": {}, + "outputs": [], + "source": [ + "trainer = (trainer - bias)/scale\n", + "tester = (tester - bias)/scale" + ] + }, + { + "cell_type": "markdown", + "id": "604eb0a4-cb5d-48f9-af70-9f0bd7194beb", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "## Set the ESN Chunk Size, Overlap Size, and Boundary\n", + "\n", + "Here, make each single chunk the same size as one of the ESNs in the [Standard ESN Tutorial](example_esn_usage.ipynb#Create-the-ESN)." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "54695f10-1ab7-4c77-91b2-f79c1c9c54d8", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "# with a single spatial dimension, this is simple to define\n", + "esn_chunks = {\"x\": 6}" + ] + }, + { + "cell_type": "markdown", + "id": "9ebae0fd-c8a0-446d-ae9b-daef5e5c343c", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Overlap**\n", + "\n", + "As shown by (Platt et al., 2022),\n", + "a parallel ESN emulator for the Lorenz96 system\n", + "requires an overlap of at least 2 in the spatial dimension in order to have enough \n", + "information to make a decent prediction." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "b2673b78-ebe6-4df1-9564-6fa76db4a52d", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "overlap = {\"x\": 2}" + ] + }, + { + "cell_type": "markdown", + "id": "adda96aa-843c-4326-b013-82030e2ffa17", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "source": [ + "**Boundary**\n", + "\n", + "The Lorenz96 system is periodic in it's only \"spatial\" (or non-time) dimension, so this is easy to set" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "8efa4d2d-652e-4938-aeb2-729877f9f970", + "metadata": {}, + "outputs": [], + "source": [ + "boundary = \"periodic\"\n", + "# or equally\n", + "# boundary = {\"x\": \"periodic\"}" + ] + }, + { + "cell_type": "markdown", + "id": "06d92841-f7e4-4298-ba2d-af0d1dd0c25e", + "metadata": {}, + "source": [ + "## Create the LazyESN\n", + "\n", + "As an example, we choose parameters other than those discussed above to be the same as in the\n", + "[Standard ESN Tutorial](example_esn_usage.ipynb#Create-the-ESN),\n", + "given that each individual chunk is the same size as the entire system in that example." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "2ffdd45f-1303-4eba-bfe0-cf688cd6dd28", + "metadata": {}, + "outputs": [], + "source": [ + "from xesn import LazyESN" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "f6011456", + "metadata": {}, + "outputs": [], + "source": [ + "esn = LazyESN(\n", + " esn_chunks=esn_chunks,\n", + " overlap=overlap,\n", + " boundary=boundary,\n", + " persist=True,\n", + " n_reservoir=500,\n", + " leak_rate=0.87,\n", + " tikhonov_parameter=6.9e-7,\n", + " input_kwargs={\n", + " \"factor\": 0.86,\n", + " \"normalization\": \"svd\",\n", + " \"distribution\": \"uniform\",\n", + " \"random_seed\": 0,\n", + " },\n", + " adjacency_kwargs={\n", + " \"factor\":0.71,\n", + " \"normalization\": \"eig\",\n", + " \"distribution\": \"uniform\",\n", + " \"is_sparse\": True,\n", + " \"connectedness\": 5,\n", + " \"random_seed\": 1,\n", + " },\n", + " bias_kwargs={\n", + " \"factor\": 1.8,\n", + " \"distribution\": \"uniform\",\n", + " \"random_seed\": 2,\n", + " },\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ed9d30d8", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "LazyESN\n", + " input_chunks:\n", + " x 10\n", + " time -1\n", + "---\n", + " output_chunks:\n", + " x 6\n", + " time -1\n", + "---\n", + " overlap:\n", + " x 2\n", + " time 0\n", + "---\n", + " boundary: periodic\n", + "---\n", + " n_input: 10\n", + " n_output: 6\n", + " n_reservoir: 500\n", + "---\n", + " leak_rate: 0.87\n", + " tikhonov_parameter: 6.9e-07\n", + "---\n", + " Input Matrix:\n", + " factor 0.86\n", + " normalization svd\n", + " distribution uniform\n", + " random_seed 0\n", + "---\n", + " Adjacency Matrix:\n", + " factor 0.71\n", + " normalization eig\n", + " distribution uniform\n", + " is_sparse True\n", + " connectedness 5\n", + " random_seed 1\n", + "---\n", + " Bias Vector:\n", + " factor 1.8\n", + " distribution uniform\n", + " random_seed 2" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "esn" + ] + }, + { + "cell_type": "markdown", + "id": "b4aca515-2a36-4fa7-8374-83b9ae72529c", + "metadata": {}, + "source": [ + "
\n", + " \n", + "**Note**: LazyESN computes ``n_input`` and ``n_output`` for us, based on sizes in\n", + "``esn_chunks`` and ``overlap``. It also fills in the default \"time\" chunksize (-1) and overlap size (0).\n", + "Note that ``output_chunks`` is the same as ``esn_chunks``, and ``input_chunks`` has the overlap region included in it.\n", + "\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "id": "2bb841ac-f14e-4f47-af14-7a2445972b25", + "metadata": {}, + "source": [ + "## Build and Train\n", + "\n", + "This takes a bit longer than with the standard ESN, given that we're training 6 ESNs at once." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "1ec12ebf", + "metadata": {}, + "outputs": [], + "source": [ + "esn.build()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "7fce08c2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 21.2 s, sys: 17.2 s, total: 38.4 s\n", + "Wall time: 13.4 s\n" + ] + } + ], + "source": [ + "%%time\n", + "esn.train(trainer, batch_size=10_000)" + ] + }, + { + "cell_type": "markdown", + "id": "fc015910-a6b3-43a4-a1c0-46f46e00f042", + "metadata": {}, + "source": [ + "The training produces 6 readout matrices, which we can see as separate chunks in `Wout`" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "beb34802-548e-4517-b62f-ed280de36e6b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " \n", + " \n", + "
\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Array Chunk
Bytes 140.62 kiB 23.44 kiB
Shape (6, 3000) (6, 500)
Dask graph 6 chunks in 1 graph layer
Data type float64 numpy.ndarray
\n", + "
\n", + " \n", + "\n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + " \n", + " \n", + "\n", + " \n", + " 3000\n", + " 6\n", + "\n", + "
" + ], + "text/plain": [ + "dask.array<_train_nd, shape=(6, 3000), dtype=float64, chunksize=(6, 500), chunktype=numpy.ndarray>" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "esn.Wout" + ] + }, + { + "cell_type": "markdown", + "id": "54b7335a-7ca6-4475-ab4b-9f94bf64fa71", + "metadata": {}, + "source": [ + "Some notes about training\n", + "\n", + "1. Even though `trainer` is in memory as a numpy array wrapped in an [xarray.DataArray](https://docs.xarray.dev/en/stable/generated/xarray.DataArray.html),\n", + " we were still able to pass it to LazyESN. This is because\n", + " under the hood, LazyESN re-chunks the data into the necessary size before performing training (and\n", + " the same is true for .predict and .test)\n", + " \n", + "2. Here, the ``batch_size`` reduces the total memory footprint. However, the total memory footprint\n", + " to consider is now `n_workers_per_node x n_groups x n_reservoir x batch_size`, where `n_workers_per_node` is\n", + " the number of dask workers per compute node. In this example we are using the\n", + " [default threaded dask scheduler](https://docs.dask.org/en/stable/scheduler-overview.html#configuring-the-schedulers) on a local machine.\n", + " We can think of this as having a single worker, and see the [dask.distributed documentation](https://distributed.dask.org/en/stable/) for using the distributed scheduler.\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "36e801d9-100c-48e4-b9f2-fc433437f56d", + "metadata": {}, + "source": [ + "## Test the LazyESN\n", + "\n", + "Once again this will take a bit more time since we're stepping forward 6 models.\n", + "Also, while the training is embarrassingly parallel, the prediction phase is not, as each distributed\n", + "network has to communicate with its neighbors at each timestep." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "6ff93f53", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 26.1 s, sys: 1.86 s, total: 28 s\n", + "Wall time: 26.2 s\n" + ] + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset>\n",
+       "Dimensions:     (x: 36, ftime: 501)\n",
+       "Coordinates:\n",
+       "  * x           (x) int64 0 1 2 3 4 5 6 7 8 9 ... 26 27 28 29 30 31 32 33 34 35\n",
+       "  * ftime       (ftime) float64 0.0 0.01 0.02 0.03 0.04 ... 4.97 4.98 4.99 5.0\n",
+       "    time        (ftime) float64 615.0 615.0 615.0 615.0 ... 620.0 620.0 620.0\n",
+       "Data variables:\n",
+       "    prediction  (x, ftime) float64 dask.array<chunksize=(6, 501), meta=np.ndarray>\n",
+       "    truth       (x, ftime) float64 0.3794 0.3788 0.3755 ... 0.5003 0.5151 0.527\n",
+       "Attributes:\n",
+       "    esn_chunks:          {'x': 6, 'time': -1}\n",
+       "    n_reservoir:         500\n",
+       "    leak_rate:           0.87\n",
+       "    tikhonov_parameter:  6.9e-07\n",
+       "    overlap:             {'x': 2, 'time': 0}\n",
+       "    boundary:            periodic\n",
+       "    persist:             True\n",
+       "    input_kwargs:        {'factor': 0.86, 'normalization': 'svd', 'distributi...\n",
+       "    adjacency_kwargs:    {'factor': 0.71, 'normalization': 'eig', 'distributi...\n",
+       "    bias_kwargs:         {'factor': 1.8, 'distribution': 'uniform', 'random_s...\n",
+       "    esn_type:            LazyESN\n",
+       "    description:         Contains a test prediction and matching truth trajec...
" + ], + "text/plain": [ + "\n", + "Dimensions: (x: 36, ftime: 501)\n", + "Coordinates:\n", + " * x (x) int64 0 1 2 3 4 5 6 7 8 9 ... 26 27 28 29 30 31 32 33 34 35\n", + " * ftime (ftime) float64 0.0 0.01 0.02 0.03 0.04 ... 4.97 4.98 4.99 5.0\n", + " time (ftime) float64 615.0 615.0 615.0 615.0 ... 620.0 620.0 620.0\n", + "Data variables:\n", + " prediction (x, ftime) float64 dask.array\n", + " truth (x, ftime) float64 0.3794 0.3788 0.3755 ... 0.5003 0.5151 0.527\n", + "Attributes:\n", + " esn_chunks: {'x': 6, 'time': -1}\n", + " n_reservoir: 500\n", + " leak_rate: 0.87\n", + " tikhonov_parameter: 6.9e-07\n", + " overlap: {'x': 2, 'time': 0}\n", + " boundary: periodic\n", + " persist: True\n", + " input_kwargs: {'factor': 0.86, 'normalization': 'svd', 'distributi...\n", + " adjacency_kwargs: {'factor': 0.71, 'normalization': 'eig', 'distributi...\n", + " bias_kwargs: {'factor': 1.8, 'distribution': 'uniform', 'random_s...\n", + " esn_type: LazyESN\n", + " description: Contains a test prediction and matching truth trajec..." + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "%%time\n", + "xds = esn.test(tester, n_steps=500, n_spinup=500)\n", + "xds" + ] + }, + { + "cell_type": "markdown", + "id": "1300f168-4b39-4b23-83eb-77d0b6e678c4", + "metadata": {}, + "source": [ + "Perform the data normalization inverse" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "f8841d52-2660-48fb-aaad-31f93f66e011", + "metadata": {}, + "outputs": [], + "source": [ + "for key in xds.data_vars:\n", + " xds[key] = xds[key]*scale + bias" + ] + }, + { + "cell_type": "markdown", + "id": "312704f1", + "metadata": {}, + "source": [ + "First lets take a look at the first 6 dimensions" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "1d6b12bc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nrows = 6\n", + "fig, axs = plt.subplots(nrows, 1, figsize=(8, nrows*1), constrained_layout=True, sharex=True, sharey=True)\n", + "\n", + "for i, ax in enumerate(axs):\n", + " xds[\"truth\"].isel(x=i).plot(ax=ax, color=\"k\", label=\"Truth\")\n", + " xds[\"prediction\"].isel(x=i).plot(ax=ax, label=\"Prediction\")\n", + " ax.set(xlabel=\"\", ylabel=\"\", title=\"\")\n", + "ax.set(xlabel=\"Forecast Time (MTU)\")\n", + "axs[0].legend(loc=(.25,.85),ncol=2)" + ] + }, + { + "cell_type": "markdown", + "id": "58acf619-050d-47a8-8bcd-62e9ecf08bfb", + "metadata": {}, + "source": [ + "We can also look at the NRSE of the whole system as a function of time, as well as the NRMSE" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "f70e4ca1-ef38-498a-b359-211e80fd2afa", + "metadata": {}, + "outputs": [], + "source": [ + "se = (xds[\"prediction\"] - xds[\"truth\"])**2\n", + "nse = se / xds[\"truth\"].std(\"ftime\")\n", + "nrse = np.sqrt(nse)\n", + "nrmse = nrse.mean(\"x\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "dff1df0e-1491-4b24-b9b3-490957e7418e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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5ZeZNWsWL774Ip9++imtWrXiyJEjnDx5En9/fxYuXIijo6OVr0pERKRhSU5OZunSpQD4+fkxf/78EuvOmDEDf39/3nrrLdauXcudd97J3LlzzeXTp08nPDyc9evXExERQZcuXYiKiiImJoZmzZoxa9asGr8eERERW2aTyb2LiwtLlixh2bJlfPPNN+zevRsHBweCg4MZM2YMd911l3lZHICxY8fSunVrPvroI3777TdiYmIIDAzkvvvu4/HHH8fPz8+KVyMiItIwRUREmCe0PXLkCEeOHCmx7tSpU/H39y+x3NPTk88//5z33nuPDRs2sGXLFho3bsw999zD5MmTNZmeiIg0eAZTRReFbcBSUlLw9vZmMLfjYFBPAJFqUZ5u+eXUYLrll0ORe1HcfahoPNV0Lzcai86RUhWF/zYnRrbBy9O+7ANKays1n0btY0hOTsbLy6uaIpS6pPDvSX8DIiJS19jchHoiIiIiIiIiUjE22S1fREREREREpC4xmoxsjtnJ7jP7aeTizd3dbqeRq3etnV/JvYiIiIiIiEgVxKdf4uP9q9l39sowRhMm/tHvgVqLQcm9iIiIiIiISCWlZKfxwqZ5JGelWOwP9mtVq3EouRcRERERERGppG8O/2hO7A0YeOL6R+jZtAsuDs61GoeSexEREREREZFKyDPmsznmFwDsDXbMGz6T63yaWSUWJfciYl1lLK/mF17Odkpa1u3y/sKl5IpdLq+0OK5qt7zL0VX4HKW5fP4S26xgOxaxVGVpu2Lud0n3JynEWPnziEidt3v3bu6//34MBgPLly+nT58+Jda977772LNnD0uWLKF///6cOXOGG2+8scT6Dg4OeHp60rZtW+644w7Gjh2Lnd2VxaCuPf6bb76hY8eOJbaXk5ND//79SU1NBeDQoUM4OFh+XI6MjOTTTz9l9+7dXLx4EYPBgL+/P3369GH8+PGEhhb997Hwusqjb9++LF++vFx1RcT6/oyNJD03E4CwFj2tltiDknsRERERqQUmk4mZM2fyv//9D1dX1wofP3r06CL70tLSOHHiBPv27WPfvn0cOHCAV199tcQ2fvjhh1KT++3bt5sT++KsWrWKV155hfz8fEJCQhg4cCA5OTmcPHmSNWvW8NVXX/H444/zxBNPFHt8jx49aN68eSlXCW3bti21XERsy75zB8zbfZp1t14g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u2W1X562KlDvyn0q3ONmjmEdpUxgc1X73pd/JoS643NNtcLfW1KIsVzxiIiIiFg8uVdyXyY9uRcRERERERGbE3/5yb2boytuTq5Wjsb2KbkXERERERERm2I0GYnPLFgKT13yy0fJvYiIiIiIiNiUpKwU8o35APhpMr1yUXIvIiIiIiIiNuViWpx5O1Br3JeLknsRERERERGxKedTryT3TTwCrRhJ3aHkXkRERERERGzKhbRY83YTTyX35aHkXkRERERERGzK+dQryX2QkvtyUXIvIiIiIiIiNuXC5eTe3mCn2fLLScm9iIiIiIiI2AyTycSFyxPqBXr4Y29nb+WI6gYl9yIiIiIiImIzEjOTyc7PATSZXkU4WDsAEWmgwkIrdZhfRDqER9RaHAmh7qWWJ4UYSyzzOVz896d+EemWO0q6nkreo2JV5z0ro12/8JKr+wFMq5lQREREpH44f9VkekEeAVaMpG7Rk3sRERERERGxGRc0mV6lKLkXERERERERm3E+7ao17pXcl5uSexEREalVX3/9NR06dGDnzp0VOm7MmDF06NChxP+io6NrKGIREalNVz+515j78tOYexEREak1Bw4c4NVXX63wcbm5uURGRuLl5cWgQYOKrePp6VnV8ERExAYUjrl3sHPAX8vglZuSexEREakVmzdv5vnnnyctLa3Cxx47dozc3FwGDRrEG2+8UQPRiYiILTCajOZl8Bq7+2Nnp87m5aXkXkRERGrUxYsXWbBgAWvXrsXFxQV/f3/i4+Mr1MahQ4cA6Ny5c02EKCIiNuJSZhK5+bkABHlqpvyK0NcgIiIiUqPefvttvvrqKzp37syqVato06ZNhds4fPgwoOReRKS+03j7ytOTexEREalRbdq0Yd68edx2222V7l5Z+OQ+Pj6ehx56iD///JOcnBy6du3Ko48+yoABA6ozZBERsZILV82Ur2XwKkbJvYiIiNSoSZMmVel4o9HI0aNHAZg5cyYdO3akT58+HD9+nN27d7N7926ef/55Hn744Qq1GxsbS1xcnMW+yswHICIi1Scu/ZJ5O9Dd34qR1D1K7kXEOsIjqr/NsNCKn6ewvLhjAb+I9FKP86tAPAmh7gBET3C1rDchrNjDfQ5fecJpEUdN3DsRG3b8+HEyMjJwdnZmwYIFDB061Fy2fv16nn32WebPn0/v3r3p1q1budtd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, axs = plt.subplots(1,2, figsize=(12,5))\n", + "\n", + "nrse.plot.pcolormesh(x=\"ftime\", cbar_kwargs={\"label\":\"NRSE\"}, ax=axs[0], levels=8)\n", + "nrmse.plot(ax=axs[1], label=\"NRMSE\")\n", + "\n", + "axs[1].legend()\n", + "[ax.set(\n", + " xlabel=\"Forecast Time (MTU)\",\n", + " xticks=np.arange(6),\n", + ") for ax in axs];" + ] + }, + { + "cell_type": "markdown", + "id": "83c3aa97", + "metadata": {}, + "source": [ + "## Store the Trained Readout Weights\n", + "\n", + "As with the standard ESN example." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "b134355e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "eds = esn.to_xds()\n", + "eds.to_zarr(\"lazyesn-weights.zarr\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "c6e85b02-1b30-4973-ad42-6edae4f136d2", + "metadata": {}, + "outputs": [], + "source": [ + "from xesn import from_zarr" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "1e006fd3", + "metadata": {}, + "outputs": [], + "source": [ + "esn2 = from_zarr(\"lazyesn-weights.zarr\")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "e4ae085a", + "metadata": {}, + "outputs": [], + "source": [ + "y2 = esn2.predict(tester, n_steps=500, n_spinup=500)\n", + "y2 = y2*scale + bias" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "81ec840c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray ()>\n",
+       "array(3.92010691e-09)
" + ], + "text/plain": [ + "\n", + "array(3.92010691e-09)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.abs(xds[\"prediction\"]-y2).max().compute()" + ] + }, + { + "cell_type": "markdown", + "id": "6ff82d81-06b3-4456-bdb4-c2dfbc438944", + "metadata": {}, + "source": [ + "## Cleanup" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "0a145657", + "metadata": {}, + "outputs": [], + "source": [ + "from shutil import rmtree" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "92a6721e", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [ + "rmtree(\"lazyesn-weights.zarr\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8fba2881", + "metadata": { + "editable": true, + "slideshow": { + "slide_type": "" + }, + "tags": [] + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "xesn", + "language": "python", + "name": "xesn" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/images/chunked-sqg.jpg b/docs/images/chunked-sqg.jpg new file mode 100644 index 0000000..c1a21d9 Binary files /dev/null and b/docs/images/chunked-sqg.jpg differ diff --git a/docs/index.rst b/docs/index.rst index 5277f54..1eda0cc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -7,14 +7,15 @@ xesn Documentation ================== **xesn** is a python package for implementing Echo State Networks (ESNs), a -particular form of Recurrent Neural Network originally discovered by -[Jaeger_2001]_. +particular form of Recurrent Neural Network originally introduced by +:cite:t:`jaeger_echo_2001`. The main purpose of the package is to enable ESNs for relatively large scale weather and climate applications, -for example as in [Smith_et_al_2023]_ and [Arcomano_et_al_2020]_. +for example as by :cite:t:`smith_temporal_2023` and +:cite:t:`arcomano_machine_2020`. The package is designed to strike the balance between simplicity and flexibility, with a focus on implementing features that were shown to matter -most by [Platt_et_al_2022]_. +most by :cite:t:`platt_systematic_2022`. xesn uses `xarray `_ to handle multi-dimensional data, relying on @@ -25,12 +26,15 @@ and `cupy `_ for efficient CPU and GPU deployment. + + .. toctree:: :maxdepth: 1 installation - basic_usage - lazy_usage + methods + example_esn_usage + example_lazy_usage references api diff --git a/docs/installation.rst b/docs/installation.rst index d6ee613..bd55bf3 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -17,10 +17,6 @@ Note that additional dependencies can be installed to run the unit test suite:: pip install -e .[test] pytest xesn/test/*.py -Alternatively, the package can be installed via pip:: - - pip install git+https://github.com/timothyas/xesn.git - Users are encourged to `fork `_ the project and submit `issues `_ diff --git a/docs/lazy_usage.ipynb b/docs/lazy_usage.ipynb deleted file mode 100644 index 6b1cbae..0000000 --- a/docs/lazy_usage.ipynb +++ /dev/null @@ -1,838 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "0f6c47ae", - "metadata": {}, - "source": [ - "# Basic LazyESN Usage\n", - "\n", - "Tutorial on using the distributed LazyESN class." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "2e902196", - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "import dask.array as darray\n", - "import xarray as xr\n", - "\n", - "from ddc import DataLorenz96" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "be4d6be8", - "metadata": {}, - "outputs": [], - "source": [ - "from xesn import LazyESN, from_zarr" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "cd623266", - "metadata": {}, - "outputs": [], - "source": [ - "plt.style.use(\"./xesn.mplstyle\")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "721be535", - "metadata": {}, - "outputs": [], - "source": [ - "data = DataLorenz96(system_dimension=64)\n", - "# spinup the dynamics\n", - "data.generate(n_steps=2_000)\n", - "# generate the training data\n", - "data.generate(n_steps=42_000)\n", - "xda = data.to_xda()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "a60433ec", - "metadata": {}, - "outputs": [], - "source": [ - "ldata = darray.from_array(data.values, chunks=(4,-1), asarray=False)\n", - "xda = xr.DataArray(\n", - " ldata,\n", - " coords=xda.coords,\n", - " dims=xda.dims,\n", - " attrs=xda.attrs,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "f6011456", - "metadata": {}, - "outputs": [], - "source": [ - "esn = LazyESN(\n", - " esn_chunks=dict(zip(xda.dims,ldata.chunksize)),\n", - " n_reservoir=500,\n", - " overlap={\"x\":2, \"time\":0},\n", - " boundary=\"periodic\",\n", - " persist=True,\n", - " input_factor=0.863,\n", - " adjacency_factor=0.713,\n", - " connectedness=5,\n", - " bias=1.76,\n", - " leak_rate=0.874,\n", - " tikhonov_parameter=6.9e-7,\n", - " input_kwargs={\n", - " \"normalization\": \"svd\",\n", - " \"random_seed\": 0,\n", - " },\n", - " adjacency_kwargs={\n", - " \"random_seed\": 1,\n", - " },\n", - " bias_kwargs={\n", - " \"random_seed\": 2,\n", - " },\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "ed9d30d8", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "LazyESN\n", - " n_input: 8\n", - " n_output: 4\n", - " n_reservoir: 500\n", - "--- \n", - " connectedness: 5\n", - " bias: 1.76\n", - " leak_rate: 0.874\n", - " tikhonov_parameter: 6.9e-07\n", - "--- \n", - " Input Matrix:\n", - " factor 0.863\n", - " distribution uniform\n", - " normalization svd\n", - " is_sparse False\n", - " random_seed 0\n", - "--- \n", - " Adjacency Matrix:\n", - " factor 0.713\n", - " density 0.01\n", - " distribution uniform\n", - " normalization eig\n", - " is_sparse True\n", - " format csr\n", - " random_seed 1\n", - "--- \n", - " overlap:\n", - " x2\n", - " time0\n", - "--- \n", - " ndim_state: 1\n", - " input_chunks: {'x': 8, 'time': 42000}\n", - " output_chunks: {'x': 4, 'time': 42000}\n", - " r_chunks: (500,)\n", - " Wout_chunks: (4, 500)\n", - "--- \n", - " boundary: periodic\n", - " persist: True" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "esn" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "1ec12ebf", - "metadata": {}, - "outputs": [], - "source": [ - "esn.build()" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "7fce08c2", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 1min 12s, sys: 39.3 s, total: 1min 51s\n", - "Wall time: 40.3 s\n" - ] - } - ], - "source": [ - "%%time\n", - "esn.train(xda, batch_size=10_000)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "6721c087", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - " \n", - " \n", - " \n", - " \n", - "
\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
Array Chunk
Bytes 250.00 kiB 15.62 kiB
Shape (4, 8000) (4, 500)
Dask graph 16 chunks in 1 graph layer
Data type float64 numpy.ndarray
\n", - "
\n", - " \n", - "\n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "\n", - " \n", - " \n", - "\n", - " \n", - " 8000\n", - " 4\n", - "\n", - "
" - ], - "text/plain": [ - "dask.array<_train_nd, shape=(4, 8000), dtype=float64, chunksize=(4, 500), chunktype=numpy.ndarray>" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "esn.Wout" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "6ff93f53", - "metadata": {}, - "outputs": [], - "source": [ - "xds = esn.test(xda, n_steps=500, n_spinup=500)" - ] - }, - { - "cell_type": "markdown", - "id": "312704f1", - "metadata": {}, - "source": [ - "Only plot the first 6 dimensions" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "1d6b12bc", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "[Text(0.5, 0, 'Forecast Time (MTU)')]" - ] - }, - "execution_count": 17, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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93LnnXfy7rvvkpiYaL6w63DkyBG++eYbkpKSgPaqUdA+Sb2goIBbbrmFRx99FBsbGwD27NnDHXfcwTPPPENycrI5ufniiy/4448/iI6O5qOPPsLX1xeAgoICrr32Wj744AMuvPBCYmNjeffddzly5AizZs3iH//4BwqFAoC2tjYefPBB/vjjD7799lsSEhIA+Prrrzl8+DB33XUXDz/8sDn2vXv3csMNN/Dhhx9yxx134OHhwX/+8x/znJPZs2czZsyYPvrUu7d161Yuuugi5s+fj42NDVqtluuvv579+/fz1FNPMWfOHB544AEAKisrufDCC8nMzGTPnj3m38H333/Pd999R3R0NO+88w5BQUEANDY28sADD7Bx40befvttHnrooRPGs2HDBgBGjBhx3P0uvPBCPvvsM3799VcuvPDCTts6eiwuvPBCq+y9CA0Nxdvbm507d9LS0tJv5hIJIfof6VkRQohjxMTE9Pj49NNPzfvt2LGD9PR0goOD+X//7/+ZExWAxMREHnvsMQA++uijLq+RlJRkvkgGUCqV7Nmzhx07dhATE8Pjjz9uTlQAhg4dyt13341Op+Pzzz83t3eU8H3++efNiQpAUFAQd911F9HR0eTm5gLtE7rHjx/P3LlzzYkKgK2tLVdeeSXQPqSrQ0VFBQB+fn6dYk9MTOS5557j+eefx2AwnODTPDsUCgVPPvmk+TPTaDRccMEFAPj6+nLvvfea9/Xy8mLYsGEA5Ofnm9s7Klv9+9//NicqAE5OTvz73//GxsaGr7766oS9K1qtlrS0NOzs7E5YgSspKYlBgwaxbt26LkPBVqxYQWxsLBERESd6+xYTExODTqdj165dlg5FCDGASc+KEEIc43jVjY69cOyYozF16lTU6q5fpRdccAFPPvkke/bsQavVdkpmoqOju+z/559/ApCamopS2fU+0sSJE3nppZfMr1tWVsbhw4fx8vIiMTGxy/633HILt9xyi/n/586d22WfhoYGsrKy2LhxI0CnC/HU1FS++eYbnnvuOfbt28fkyZMZPXo0Tk5OXH755V2OZUnBwcF4eHh0auv4/6ioqC6/HxcXF+Do+y0vLycvLw9nZ2dzz9KxfH19GTx4MPv27ePAgQOdEs2/qqioQKfTMWjQoG5/j381ffp0Fi5cyNq1a829K3v37uXIkSM88sgjJ3y+JXVU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\n", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "nrows = 6\n", - "fig, axs = plt.subplots(nrows, 1, figsize=(8, nrows*1), constrained_layout=True, sharex=True, sharey=True)\n", - "\n", - "for i, ax in enumerate(axs):\n", - " xds[\"truth\"].isel(x=i).plot(ax=ax, color=\"k\")\n", - " xds[\"prediction\"].isel(x=i).plot(ax=ax)\n", - " ax.set(xlabel=\"\", ylabel=\"\", title=\"\")\n", - "ax.set(xlabel=\"Forecast Time (MTU)\")" - ] - }, - { - "cell_type": "markdown", - "id": "83c3aa97", - "metadata": {}, - "source": [ - "## Save and re-load" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "b134355e", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "ds = esn.to_xds()\n", - "ds.to_zarr(\"test.zarr\")" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "1e006fd3", - "metadata": {}, - "outputs": [], - "source": [ - "esn2 = from_zarr(\"test.zarr\")" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "e4ae085a", - "metadata": {}, - "outputs": [], - "source": [ - "y2 = esn2.predict(xda, n_steps=500, n_spinup=500)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "81ec840c", - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "
<xarray.DataArray ()>\n",
-       "array(0.)
" - ], - "text/plain": [ - "\n", - "array(0.)" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.abs(xds[\"prediction\"]-y2).max().compute()" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "0a145657", - "metadata": {}, - "outputs": [], - "source": [ - "from shutil import rmtree" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "92a6721e", - "metadata": {}, - "outputs": [], - "source": [ - "rmtree(\"test.zarr\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8fba2881", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "ddc10", - "language": "python", - "name": "ddc10" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.8" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/lorenz.py b/docs/lorenz.py new file mode 100644 index 0000000..4ab85bd --- /dev/null +++ b/docs/lorenz.py @@ -0,0 +1,66 @@ +import numpy as np +import xarray as xr +from scipy.integrate import odeint + +class Lorenz96(): + """A simple class for creating some sample data""" + def __init__( + self, + N, + forcing_term=8., + delta_t=0.01, + ): + self.N = N + self.forcing_term = forcing_term + self.delta_t = delta_t + + def rhs(self, x, t): + """Lorenz 96 tendency equations + + Args: + x (array_like): system state at one point in time + t (float): time, not used here but passed as argument for odeint + + Returns: + dx/dt (array_like): the temporal tendency + """ + + y = np.zeros(self.N) + + y[0] = (x[1] - x[self.N-2]) * x[self.N-1] - x[0] + y[1] = (x[2] - x[self.N-1]) * x[0] - x[1] + y[self.N-1] = (x[0] - x[self.N-3]) * x[self.N-2] - x[self.N-1] + + y[2:self.N-1] = (x[3:self.N] - x[:self.N-3]) * x[1:self.N-2] - x[2:self.N-1] + + y += self.forcing_term + return y + + + def generate(self, n_steps, x0=None): + """Generate a time series of Lorenz 96 model output + + Args: + n_steps (int): number of time steps to integrate forward + x0 (array_like, optional): initial conditions for the system state + + Returns: + xda (xarray.DataArray): with the full time series at increments of :attr:`delta_t` + """ + + x0 = np.zeros(self.N) if x0 is None else x0 + + time = np.linspace(0., self.delta_t*n_steps, n_steps+1) + values = odeint(self.rhs, x0, time) + + return xr.DataArray( + data=values.T, + coords={"x":np.arange(self.N), + "time":time}, + dims=("x","time"), + attrs={ + "forcing_term": self.forcing_term, + "delta_t": self.delta_t, + "description": "Lorenz96 trajectory", + } + ) diff --git a/docs/methods.rst b/docs/methods.rst new file mode 100644 index 0000000..d6db9e6 --- /dev/null +++ b/docs/methods.rst @@ -0,0 +1,356 @@ +Methodology Overview +==================== + +This package implements Echo State Networks (ESNs), which were introduced by +:cite:t:`jaeger_echo_2001`. +ESNs are a Recurrent Neural Network architecture that are in a class of +techniques referred to as Reservoir Computing. +One defining characteristic of these techniques is that all internal weights are +determined by a handful of global or "macro-scale" scalar parameters, thereby avoiding +problems during backpropagation and reducing training time dramatically. + +This page describes our two ESN implementations. +First is a "standard" ESN architecture that is useful for small +systems that can easily fit into memory on a computer. +Second is a distributed ESN architecture that can be used for larger scale +systems. + +Standard ESN Architecture +######################### + +The basic ESN architecture that is implemented by the :class:`xesn.ESN` class +is defined as follows: + +.. math:: + \mathbf{r}(n + 1) = (1 - \alpha) \mathbf{r}(n) + + \alpha \tanh( \mathbf{W}\mathbf{r} + \mathbf{W}_\text{in}\mathbf{u}(n) + + \mathbf{b}) + +.. math:: + \hat{\mathbf{v}}(n + 1) = \mathbf{W}_\text{out} \mathbf{r}(n+1) + +Here :math:`\mathbf{r}(n)\in\mathbb{R}^{N_r}` is the hidden, or reservoir, state, +:math:`u(n)\in\mathbb{R}^{N_\text{in}}` is the input system state, and +:math:`\hat{\mathbf{v}}(n)\in\mathbb{R}^{N_\text{out}}` is the estimated target or output system state, all at +timestep :math:`n`. +The sizes of each of these vectors is specified to :class:`xesn.ESN` via the +``n_reservoir``, ``n_input``, and ``n_output`` parameters, respectively. +This form of the ESN has a "leaky" reservoir, +where the ``leak_rate`` parameter :math:`\alpha` +determines how much of the previous hidden state to propagate forward in time. + +Also, this form of the ESN assumes a linear readout, i.e., we do not transform +the hidden state nonlinearly or augment it with the input or output state +before passing it to the readout matrix. +This choice is made based on testing by :cite:t:`platt_systematic_2022`, who +showed that doing either of these two operations provided no additional +prediction skill over a simple linear readout. + +Internal Weights +---------------- + +The adjacency matrix :math:`\mathbf{W}\in\mathbb{R}^{N_r \times N_r}`, +the input matrix :math:`\mathbf{W}_\text{in}\in\mathbb{R}^{N_r \times N_u}`, +and the bias vector :math:`\mathbf{b}\in\mathbb{R}^{N_r}` +are initialized with random elements, and usually re-scaled. +These three matrices are generated as follows: + +.. math:: + \mathbf{W} = \dfrac{\rho}{f(\hat{\mathbf{W}})} + \hat{\mathbf{W}} + +.. math:: + + \mathbf{W}_\text{in} = \dfrac{\sigma}{g(\hat{\mathbf{W}}_\text{in})} + \hat{\mathbf{W}}_\text{in} + +.. math:: + \mathbf{b} = \sigma_b\hat{\mathbf{b}} + +where :math:`\rho`, :math:`\sigma`, and :math:`\sigma_b` are scaling factors, +:math:`f(\cdot)` and :math:`g(\cdot)` are normalization factors, +:math:`\hat{\mathbf{W}}` and :math:`\hat{\mathbf{W}}_\text{in}` are randomly generated matrices, +and +:math:`\hat{\mathbf{b}}` is a randomly generated vector. +Each of these components can be specified by the user via the +``adjacency_kwargs``, +``input_kwargs``, and +``bias_kwargs`` +options passed to :class:`xesn.ESN`. + +As an example, it is common to use a very sparse adjacency matrix, +:math:`\hat{\mathbf{W}}`, with nonzero elements chosen from a uniform +distribution ranging from -1 to 1, +and to normalize the matrix by its spectral radius. +In many cases, the scaling factor is chosen to be close to 1. +These options could be selected by choosing: + +.. code-block:: python + + adjacency_kwargs={ + "factor": 0.99, + "distribution": "uniform", + "normalization": "eig", + "is_sparse": True, + "connectedness": 10, + } + +As another example, in :cite:t:`smith_temporal_2023` the authors used a dense +input matrix with elements randomly chosen from a uniform distribution from -1 +to 1, and normalized the matrix by its largest singular value. +This could be achieved as follows: + +.. code-block:: python + + input_kwargs={ + "factor": 0.5, + "distribution": "uniform", + "normalization": "svd", + } + +with the ``factor=0.5`` just for the sake of an example, and note that +``is_sparse=False`` is the default if the option is not provided. + +The options to the bias vector are even more simple, as there is no option for +sparsity and there are no normalization options. + +.. note:: + Internally, all of the options shown above are passed to the + :class:`xesn.RandomMatrix` and :class:`xesn.SparseRandomMatrix` classes, + where the ``is_sparse`` option selects between the two. + Please see these two class descriptions for all available options, and + numerous examples for creating different matrices. + Also note that the number of rows and columns for each matrix and the length + of the bias vector are automatically chosen based on the sizes set within + the ESN. + + +Training +-------- + +The weights in the readout matrix :math:`\mathbf{W}_\text{out}` are learned +during training, :meth:`xesn.ESN.train`, +which aims to minimize the following loss function + +.. math:: + \mathcal{J}(\mathbf{W}_\text{out}) = + \dfrac{1}{2}\sum_{n=1}^{N_{\text{train}}} ||\mathbf{W}_\text{out}\mathbf{r}(n) - + \mathbf{v}(n)||_2^2 + + + \dfrac{\beta}{2}||\mathbf{W}_\text{out}||_F^2 + +Here :math:`\mathbf{v}(n)` is the training data at timestep :math:`n`, +:math:`||\mathbf{A}||_F = \sqrt{Tr(\mathbf{A}\mathbf{A}^T)}` is the Frobenius +norm, :math:`N_{\text{train}}` is the number of timesteps used for training, +and :math:`\beta` is a Tikhonov regularization parameter chosen to improve +numerical stability and prevent overfitting, specified via the +``tikhonov_parameter`` option to :class:`xesn.ESN`. + +Due to the fact that the weights in the adjacency matrix, input matrix, and bias +vector are fixed, the readout matrix weights can be compactly written as the +solution to the linear ridge regression problem + +.. math:: + \mathbf{W}_\text{out} = \mathbf{V}\mathbf{R}^T + \left(\mathbf{R}\mathbf{R}^T + \beta\mathbf{I}\right)^{-1} + +where we obtain the solution from `scipy.linalg.solve +`_ +on CPUs +or `cupy.linalg.solve +`_ +on GPUs. +Here :math:`\mathbf{I}` is the identity matrix and +the hidden and target states are expressed in matrix form by concatenating +each time step "column-wise": +:math:`\mathbf{R} = (\mathbf{r}(1) \, \mathbf{r}(2) \, \cdots \, \mathbf{r}(N_{\text{train}}))` +and similarly +:math:`\mathbf{V} = (\mathbf{v}(1) \, \mathbf{v}(2) \, \cdots \, \mathbf{v}(N_{\text{train}}))`. + +Macro-Scale Parameters +---------------------- + +From our experience, the most important macro-scale parameters that must be +specified by the user are the + +- input matrix scaling, :math:`\sigma`, ``input_kwargs["factor"]`` +- adjacency matrix scaling, :math:`\rho`, ``adjacency_kwargs["factor"]`` +- bias vector scaling, :math:`\sigma_b`, ``bias_kwargs["factor"]`` +- Tikhonov parameter, :math:`\beta`, ``tikhonov_parameter`` +- leak rate, :math:`\alpha`, ``leak_rate`` + +See ... for a discussion about using the +`surrogate modeling toolbox `_ +to perform Bayesian optimization and find well performing parameter values. + +Distributed ESN Architecture +############################ + +It is common to use hidden states that are :math:`\mathcal{O}(10)` to :math:`\mathcal{O}(100)` +times larger than the target system dimension. +In applications that have high dimensional system states, it becomes +necessary to employ a parallelization strategy to distribute the target and +hidden states across many semi-independent networks. +:class:`xesn.LazyESN` accomplishes this with a generalization of the algorithm introduced by +:cite:t:`pathak_model-free_2018`, where we use +`dask `_ to parallelize the +computations. + +The :class:`xesn.LazyESN` architecture inherits most of its functionality from +:class:`xesn.ESN`. +The key difference between the two is how they interact with the underlying data +they're working with. +While the standard ESN had a single network, :class:`xesn.LazyESN` distributes +multiple networks to different subdomains of a single dataset. +This process is described with an example below. + +Example: SQG Turbulence Dataset +------------------------------- + +We describe the parallelization strategy based on the dataset used by +:cite:t:`smith_temporal_2023`, which was generated by +`this model, written by Jeff Whitaker `_, +for Surface Quasi-Geostrophic turbulence. +For the purposes of this discussion, all that matters is the size of the +dataset, which is illustrated below, and more details can be found in Section 2 +of :cite:t:`smith_temporal_2023`. + + +.. image:: images/chunked-sqg.jpg + :width: 500 + :align: center + + + +The dataset has 3 spatial dimensions :math:`(x, y, z)`, and evolves in time, so +that the shape is :math:`(N_x = 64, N_y = 64, N_z = 2, N_{time})`. +We first subdivide the domain into smaller chunks along the :math:`x` and :math:`y` +dimensions, akin to domain decomposition techniques in General Circulation +Models. +The subdivisions are defined by specifying a chunk size +to the model via ``esn_chunks``. +In the case of our example, the chunk size is + +.. code-block:: python + + esn_chunks={"x": 16, "y": 16, "z": 2} + +and these chunks are denoted by the black lines across the domain in the figure +above. +Under the hood, :class:`xesn.LazyESN` assigns a local network to each chunk, +where each chunk becomes a separate dask task. +Note that unlike :class:`xesn.ESN`, :class:`xesn.LazyESN` does not have +``n_input`` and ``n_output`` parameters, but these are instead inferred from the +multi-dimensional chunksize, given by ``esn_chunks``. + +Communication between chunks is enabled by defining an overlap region, +harnessing dask's flexible `overlap +`_ +function (see `this explanation in the dask documentation +`_ for +additional description of this function). +The overlap is defined by specifying the size of the overlap in each direction. +For example + +.. code-block:: python + + overlap={"x": 1, "y": 1, "z": 0} + +defines a single grid cell overlap in :math:`x` and :math:`y`, but no overlap in +the vertical. +Note that this argument is very similar to what can be provided to dask, except +that the dimensions are labelled here, rather than numeral indices, +due to our reliance on xarray. +As an example, the overlap region is indicated by the white box in the figure +above, where this overlap extends to both vertical levels for the chunk. + +.. note:: + Because of how :class:`xesn.LazyESN` relies on dask chunks to define the + bounds of each distributed region, the time dimension is not allowed to be + chunked, nor can it have an overlap. That is, the size passed to + ``esn_chunks`` must be the size of the time dimension, or ``{"time":-1}`` + (shorthand). + The only option allowed for ``overlap`` is ``{"time":0}``. + These are the defaults if nothing is provided for time as they are the only + acceptable options. + +We have to tell the :class:`xesn.LazyESN` how to handle overlaps on the +boundaries. +See `here `_ for +available options, since this is passed directly to dask's overlap function. +In the case above, the domain is periodic in :math:`x` and :math:`y`, so we can +simply write + +.. code-block:: python + + boundary="periodic" + # or equally + boundary={"x": "periodic", "y": "periodic"} + +Note once again that if a ``dict`` is used like the second case, then as with +``overlap``, the difference between what is expected here and with dask is that +the dimensions should be labelled, rather than provided as numeral indices. + +One final option to :class:`xesn.LazyESN` is ``persist``. When dask arrays are +told to ``.persist()`` it means that they are brought into memory, using the +memory of the resources available (this means all data are brought into memory +if on a local machine). +In :class:`xesn.LazyESN`, the ``persist`` option is a boolean, where if +``True``, then ``.persist()`` is called in the following places: + +- in :class:`xesn.LazyESN.train` and :class:`xesn.LazyESN.predict` + on the input data, after calling dask's overlap function +- in :class:`xesn.LazyESN.train` on the resulting readout matrix, + :attr:`xesn.LazyESN.Wout`, after all computations +- in :class:`xesn.LazyESN.predict` on the resulting prediction, after all + computations + +See `this StackOverflow post +`_ +for some discussion about persisting data, and see +`this page in the dask documentation +`_ +for more information. + + +More Generally +-------------- + +Here we make some notes for extending the description beyond this example. +The dimensions that are chosen to be chunked (here :math:`x` and :math:`y`) +should be first in the dimension order, and time needs to be last. +Additionally, the time dimension needs to be labelled "time", whereas the names +of all other dimensions do not matter. +Finally, currently only two dimensions are regularly tested, but the +capability to add more could be added in the future. + + +Mathematical Definition +----------------------- + +The parallelization is achieved by subdividing the domain into :math:`N_g` chunks, and +assigning individual ESNs to each chunk. +That is, we generate the sets +:math:`\{\mathbf{u}_k \subset \mathbf{u} | k = \{1, 2, ..., N_g\}\}`, and +where each local input vector :math:`\mathbf{u}_k` includes the overlap region +discussed above. +The distributed ESN equations are + +.. math:: + \mathbf{r}_k(n + 1) = (1 - \alpha) \mathbf{r}_k(n) + + \alpha \tanh( \mathbf{W}\mathbf{r}_k + \mathbf{W}_\text{in}\mathbf{u}_k(n) + + \mathbf{b}) + +.. math:: + \hat{\mathbf{v}}_k(n + 1) = \mathbf{W}_\text{out}^k \mathbf{r}_k(n+1) + +Here :math:`\mathbf{r}_k, \, \mathbf{u}_k \, \mathbf{W}_\text{out}^k, \, \hat{\mathbf{v}}_k` +are the hidden state, input state, readout matrix, and estimated output state +associated with the :math:`k^{th}` data chunk. +The local output state :math:`\hat{\mathbf{v}}_k` does not include the +overlap region. +Note that the various macro-scale paramaters +:math:`\{\alpha, \rho, \sigma, \sigma_b, \beta\}` are fixed for all chunks. +Therefore the only components that drive unique hidden states on each chunk are +the different input states :math:`\mathbf{u}_k` and the readout matrices +:math:`\mathbf{W}_\text{out}^k`. diff --git a/docs/references.bib b/docs/references.bib new file mode 100644 index 0000000..e5a66ea --- /dev/null +++ b/docs/references.bib @@ -0,0 +1,1807 @@ +@article{arcomano_machine_2020, + title = {A {Machine} {Learning}-{Based} {Global} {Atmospheric} {Forecast} {Model}}, + volume = {47}, + copyright = {©2020. American Geophysical Union. All Rights Reserved.}, + issn = {1944-8007}, + url = {http://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2020GL087776}, + doi = {10.1029/2020GL087776}, + abstract = {The paper investigates the applicability of machine learning (ML) to weather prediction by building a reservoir computing-based, low-resolution, global prediction model. The model is designed to take advantage of the massively parallel architecture of a modern supercomputer. The forecast performance of the model is assessed by comparing it to that of daily climatology, persistence, and a numerical (physics-based) model of identical prognostic state variables and resolution. Hourly resolution 20-day forecasts with the model predict realistic values of the atmospheric state variables at all forecast times for the entire globe. The ML model outperforms both climatology and persistence for the first three forecast days in the midlatitudes, but not in the tropics. Compared to the numerical model, the ML model performs best for the state variables most affected by parameterized processes in the numerical model.}, + language = {en}, + number = {9}, + urldate = {2020-05-14}, + journal = {Geophysical Research Letters}, + author = {Arcomano, Troy and Szunyogh, Istvan and Pathak, Jaideep and Wikner, Alexander and Hunt, Brian R. and Ott, Edward}, + year = {2020}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2020GL087776}, + pages = {e2020GL087776}, + annote = {e2020GL087776 10.1029/2020GL087776}, + file = {Arcomano_et_al_2020_A_Machine_Learning-Based_Global_Atmospheric_Forecast_Model.pdf:/Users/tsmith/Drive/zotero/Arcomano_et_al_2020_A_Machine_Learning-Based_Global_Atmospheric_Forecast_Model.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/NCLPUTJ8/2020GL087776.html:text/html}, +} + +@article{dueben_challenges_2018, + title = {Challenges and design choices for global weather and climate models based on machine learning}, + volume = {11}, + issn = {1991-959X}, + url = {https://gmd.copernicus.org/articles/11/3999/2018/}, + doi = {https://doi.org/10.5194/gmd-11-3999-2018}, + abstract = {{\textless}p{\textgreater}{\textless}strong class="journal-contentHeaderColor"{\textgreater}Abstract.{\textless}/strong{\textgreater} Can models that are based on deep learning and trained on atmospheric data compete with weather and climate models that are based on physical principles and the basic equations of motion? This question has been asked often recently due to the boom in deep-learning techniques. The question is valid given the huge amount of data that are available, the computational efficiency of deep-learning techniques and the limitations of today's weather and climate models in particular with respect to resolution and complexity.{\textless}/p{\textgreater}{\textless}p{\textgreater}In this paper, the question will be discussed in the context of global weather forecasts. A toy model for global weather predictions will be presented and used to identify challenges and fundamental design choices for a forecast system based on neural networks.{\textless}/p{\textgreater}}, + language = {English}, + number = {10}, + urldate = {2021-02-09}, + journal = {Geoscientific Model Development}, + author = {Dueben, Peter D. and Bauer, Peter}, + month = oct, + year = {2018}, + note = {Publisher: Copernicus GmbH}, + pages = {3999--4009}, + file = {Dueben_Bauer_2018_Challenges_and_design_choices_for_global_weather_and_climate_models_based_on.pdf:/Users/tsmith/Drive/zotero/Dueben_Bauer_2018_Challenges_and_design_choices_for_global_weather_and_climate_models_based_on.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/5TXEBIWF/2018.html:text/html}, +} + +@article{rasp_weatherbench_2020, + title = {{WeatherBench}: {A} {Benchmark} {Data} {Set} for {Data}-{Driven} {Weather} {Forecasting}}, + volume = {12}, + copyright = {©2020. The Authors.}, + issn = {1942-2466}, + shorttitle = {{WeatherBench}}, + url = {http://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/2020MS002203}, + doi = {https://doi.org/10.1029/2020MS002203}, + abstract = {Data-driven approaches, most prominently deep learning, have become powerful tools for prediction in many domains. A natural question to ask is whether data-driven methods could also be used to predict global weather patterns days in advance. First studies show promise but the lack of a common data set and evaluation metrics make intercomparison between studies difficult. Here we present a benchmark data set for data-driven medium-range weather forecasting (specifically 3–5 days), a topic of high scientific interest for atmospheric and computer scientists alike. We provide data derived from the ERA5 archive that has been processed to facilitate the use in machine learning models. We propose simple and clear evaluation metrics which will enable a direct comparison between different methods. Further, we provide baseline scores from simple linear regression techniques, deep learning models, as well as purely physical forecasting models. The data set is publicly available at https://github.com/pangeo-data/WeatherBench and the companion code is reproducible with tutorials for getting started. We hope that this data set will accelerate research in data-driven weather forecasting.}, + language = {en}, + number = {11}, + urldate = {2020-11-25}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Rasp, Stephan and Dueben, Peter D. and Scher, Sebastian and Weyn, Jonathan A. and Mouatadid, Soukayna and Thuerey, Nils}, + year = {2020}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2020MS002203}, + keywords = {machine learning, artificial intelligence, benchmark, NWP}, + pages = {e2020MS002203}, + annote = {e2020MS002203 10.1029/2020MS002203}, + file = {Rasp_et_al_2020_WeatherBench.pdf:/Users/tsmith/Drive/zotero/Rasp_et_al_2020_WeatherBench.pdf:application/pdf}, +} + +@article{nadiga_reservoir_2021, + title = {Reservoir {Computing} as a {Tool} for {Climate} {Predictability} {Studies}}, + volume = {13}, + issn = {1942-2466}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2020MS002290}, + doi = {10.1029/2020MS002290}, + abstract = {Reduced-order dynamical models play a central role in developing our understanding of predictability of climate irrespective of whether we are dealing with the actual climate system or surrogate climate models. In this context, the linear inverse modeling (LIM) approach, by capturing a few essential interactions between dynamical components of the full system, has proven valuable in providing insights into predictability of the full system. We demonstrate that reservoir computing (RC), a form of learning suitable for systems with chaotic dynamics, provides an alternative nonlinear approach that improves on the predictive skill of the LIM approach. We do this in the example setting of predicting sea surface temperature in the North Atlantic in the preindustrial control simulation of a popular earth system model, the Community Earth System Model so that we can compare the performance of the new RC-based approach with the traditional LIM approach both when learning data are plentiful and when such data are more limited. The improved predictive skill of the RC approach over a wide range of conditions—larger number of retained EOF coefficients, extending well into the limited data regime, etc.—suggests that this machine-learning technique may have a use in climate predictability studies. While the possibility of developing a climate emulator—the ability to continue the evolution of the system on the attractor long after failing to be able to track the reference trajectory—is demonstrated in the Lorenz-63 system, it is suggested that further development of the RC approach may permit such uses of the new approach in more realistic predictability studies.}, + language = {en}, + number = {4}, + urldate = {2021-11-17}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Nadiga, Balasubramanya T.}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2020MS002290}, + keywords = {machine learning, climate, echo state networks, reservoir computing, linear inverse modeling, predictability}, + pages = {e2020MS002290}, + annote = {e2020MS002290 2020MS002290}, + file = {Nadiga_2021_Reservoir_Computing_as_a_Tool_for_Climate_Predictability_Studies.pdf:/Users/tsmith/Drive/zotero/Nadiga_2021_Reservoir_Computing_as_a_Tool_for_Climate_Predictability_Studies.pdf:application/pdf;Nadiga_2021_Reservoir_Computing_as_a_Tool_for_Climate_Predictability_Studies.pdf:/Users/tsmith/Drive/zotero/Nadiga_2021_Reservoir_Computing_as_a_Tool_for_Climate_Predictability_Studies.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/Q7D3QF8X/2020MS002290.html:text/html}, +} + +@article{agarwal_comparison_2021, + title = {A {Comparison} of {Data}-{Driven} {Approaches} to {Build} {Low}-{Dimensional} {Ocean} {Models}}, + volume = {13}, + issn = {1942-2466}, + url = {http://onlinelibrary.wiley.com/doi/abs/10.1029/2021MS002537}, + doi = {10.1029/2021MS002537}, + abstract = {We present a comprehensive inter-comparison of linear regression (LR), stochastic, and deep-learning approaches for reduced-order statistical emulation of ocean circulation. The reference data set is provided by an idealized, eddy-resolving, double-gyre ocean circulation model. Our goal is to conduct a systematic and comprehensive assessment and comparison of skill, cost, and complexity of statistical models from the three methodological classes. The model based on LR is considered as a baseline. Additionally, we investigate its additive white noise augmentation and a multi-level stochastic approach, deep-learning methods, hybrid frameworks (LR plus deep-learning), and simple stochastic extensions of deep-learning and hybrid methods. The assessment metrics considered are: root mean squared error, anomaly cross-correlation, climatology, variance, frequency map, forecast horizon, and computational cost. We found that the multi-level linear stochastic approach performs the best for both short- and long-timescale forecasts. The deep-learning hybrid models augmented by additive state-dependent white noise came second, while their deterministic counterparts failed to reproduce the characteristic frequencies in climate-range forecasts. Pure deep learning implementations performed worse than LR and its simple white noise augmentation. Skills of LR and its white noise extension were similar on short timescales, but the latter performed better on long timescales, while LR-only outputs decay to zero for long simulations. Overall, our analysis promotes multi-level LR stochastic models with memory effects, and hybrid models with linear dynamical core augmented by additive stochastic terms learned via deep learning, as a more practical, accurate, and cost-effective option for ocean emulation than pure deep-learning solutions.}, + language = {en}, + number = {9}, + urldate = {2021-12-01}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Agarwal, Niraj and Kondrashov, D. and Dueben, P. and Ryzhov, E. and Berloff, P.}, + year = {2021}, + note = {\_eprint: https://agupubs.onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002537}, + keywords = {machine learning, data-driven modeling, ocean models, reduced order modeling}, + pages = {e2021MS002537}, + annote = {e2021MS002537 2021MS002537}, + file = {Agarwal_et_al_2021_A_Comparison_of_Data-Driven_Approaches_to_Build_Low-Dimensional_Ocean_Models.pdf:/Users/tsmith/Drive/zotero/Agarwal_et_al_2021_A_Comparison_of_Data-Driven_Approaches_to_Build_Low-Dimensional_Ocean_Models.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/HPRD5JXJ/2021MS002537.html:text/html}, +} + +@article{chen_predicting_2021, + title = {Predicting {Shallow} {Water} {Dynamics} using {Echo}-{State} {Networks} with {Transfer} {Learning}}, + url = {http://arxiv.org/abs/2112.09182}, + abstract = {In this paper we demonstrate that reservoir computing can be used to learn the dynamics of the shallow-water equations. In particular, while most previous applications of reservoir computing have required training on a particular trajectory to further predict the evolution along that trajectory alone, we show the capability of reservoir computing to predict trajectories of the shallow-water equations with initial conditions not seen in the training process. However, in this setting, we find that the performance of the network deteriorates for initial conditions with ambient conditions (such as total water height and average velocity) that are different from those in the training dataset. To circumvent this deficiency, we introduce a transfer learning approach wherein a small additional training step with the relevant ambient conditions is used to improve the predictions.}, + urldate = {2022-01-11}, + journal = {arXiv:2112.09182 [physics]}, + author = {Chen, Xiaoqian and Nadiga, Balasubramanya T. and Timofeyev, Ilya}, + month = dec, + year = {2021}, + note = {arXiv: 2112.09182}, + keywords = {Physics - Geophysics, Computer Science - Machine Learning, 86-08, Physics - Data Analysis, Statistics and Probability}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/35L3BN69/2112.html:text/html;Chen_et_al_2021_Predicting_Shallow_Water_Dynamics_using_Echo-State_Networks_with_Transfer.pdf:/Users/tsmith/Drive/zotero/Chen_et_al_2021_Predicting_Shallow_Water_Dynamics_using_Echo-State_Networks_with_Transfer.pdf:application/pdf}, +} + +@article{keisler_forecasting_2022, + title = {Forecasting {Global} {Weather} with {Graph} {Neural} {Networks}}, + url = {http://arxiv.org/abs/2202.07575}, + abstract = {We present a data-driven approach for forecasting global weather using graph neural networks. The system learns to step forward the current 3D atmospheric state by six hours, and multiple steps are chained together to produce skillful forecasts going out several days into the future. The underlying model is trained on reanalysis data from ERA5 or forecast data from GFS. Test performance on metrics such as Z500 (geopotential height) and T850 (temperature) improves upon previous data-driven approaches and is comparable to operational, full-resolution, physical models from GFS and ECMWF, at least when evaluated on 1-degree scales and when using reanalysis initial conditions. We also show results from connecting this data-driven model to live, operational forecasts from GFS.}, + urldate = {2022-02-17}, + journal = {arXiv:2202.07575 [physics]}, + author = {Keisler, Ryan}, + month = feb, + year = {2022}, + note = {arXiv: 2202.07575}, + keywords = {Physics - Atmospheric and Oceanic Physics, Computer Science - Machine Learning}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/TIIZMUZ4/2202.html:text/html;Keisler_2022_Forecasting_Global_Weather_with_Graph_Neural_Networks.pdf:/Users/tsmith/Drive/zotero/Keisler_2022_Forecasting_Global_Weather_with_Graph_Neural_Networks.pdf:application/pdf}, +} + +@techreport{lin_fourier_2021, + type = {preprint}, + title = {Fourier {Reservoir} {Computing} for data-driven prediction of multi-scale coupled quasi-geostrophic dynamics}, + url = {http://www.essoar.org/doi/10.1002/essoar.10509867.1}, + language = {en}, + urldate = {2022-03-08}, + institution = {Geophysics}, + author = {Lin, Hsin-Yi and Penny, Stephen G}, + month = dec, + year = {2021}, + doi = {10.1002/essoar.10509867.1}, + file = {Lin_Penny_2021_Fourier_Reservoir_Computing_for_data-driven_prediction_of_multi-scale_coupled.pdf:/Users/tsmith/Drive/zotero/Lin_Penny_2021_Fourier_Reservoir_Computing_for_data-driven_prediction_of_multi-scale_coupled.pdf:application/pdf}, +} + +@article{pathak_fourcastnet_2022, + title = {{FourCastNet}: {A} {Global} {Data}-driven {High}-resolution {Weather} {Model} using {Adaptive} {Fourier} {Neural} {Operators}}, + shorttitle = {{FourCastNet}}, + url = {http://arxiv.org/abs/2202.11214}, + abstract = {FourCastNet, short for Fourier Forecasting Neural Network, is a global data-driven weather forecasting model that provides accurate short to medium-range global predictions at \$0.25{\textasciicircum}\{{\textbackslash}circ\}\$ resolution. FourCastNet accurately forecasts high-resolution, fast-timescale variables such as the surface wind speed, precipitation, and atmospheric water vapor. It has important implications for planning wind energy resources, predicting extreme weather events such as tropical cyclones, extra-tropical cyclones, and atmospheric rivers. FourCastNet matches the forecasting accuracy of the ECMWF Integrated Forecasting System (IFS), a state-of-the-art Numerical Weather Prediction (NWP) model, at short lead times for large-scale variables, while outperforming IFS for variables with complex fine-scale structure, including precipitation. FourCastNet generates a week-long forecast in less than 2 seconds, orders of magnitude faster than IFS. The speed of FourCastNet enables the creation of rapid and inexpensive large-ensemble forecasts with thousands of ensemble-members for improving probabilistic forecasting. We discuss how data-driven deep learning models such as FourCastNet are a valuable addition to the meteorology toolkit to aid and augment NWP models.}, + urldate = {2022-03-24}, + journal = {arXiv:2202.11214 [physics]}, + author = {Pathak, Jaideep and Subramanian, Shashank and Harrington, Peter and Raja, Sanjeev and Chattopadhyay, Ashesh and Mardani, Morteza and Kurth, Thorsten and Hall, David and Li, Zongyi and Azizzadenesheli, Kamyar and Hassanzadeh, Pedram and Kashinath, Karthik and Anandkumar, Animashree}, + month = feb, + year = {2022}, + note = {arXiv: 2202.11214}, + keywords = {Computer Science - Machine Learning, Physics - Atmospheric and Oceanic Physics}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/UZLDZG3C/2202.html:text/html;Pathak_et_al_2022_FourCastNet.pdf:/Users/tsmith/Drive/zotero/Pathak_et_al_2022_FourCastNet.pdf:application/pdf}, +} + +@article{pandey_reservoir_2020, + title = {Reservoir computing model of two-dimensional turbulent convection}, + volume = {5}, + url = {https://link.aps.org/doi/10.1103/PhysRevFluids.5.113506}, + doi = {10.1103/PhysRevFluids.5.113506}, + abstract = {Reservoir computing is an efficient implementation of a recurrent neural network that can describe the evolution of a dynamical system by supervised machine learning without solving the underlying mathematical equations. In this work, reservoir computing is applied to model the large-scale evolution and the resulting low-order turbulence statistics of a two-dimensional turbulent Rayleigh-Bénard convection flow at a Rayleigh number Ra=107 and a Prandtl number Pr=7 in an extended spatial domain with an aspect ratio of 6. Our data-driven approach, which is based on a long-term direct numerical simulation of the convection flow, comprises a two-step procedure: (1) reduction of the original simulation data by a proper orthogonal decomposition (POD) snapshot analysis and subsequent truncation to the first 150 POD modes which are associated with the largest total energy amplitudes; (2) setup and optimization of a reservoir computing model to describe the dynamical evolution of these 150 degrees of freedom and thus the large-scale evolution of the convection flow. The quality of the prediction of the reservoir computing model is comprehensively tested by a direct comparison of the results of the original direct numerical simulations and the fields that are reconstructed by means of the POD modes. We find a good agreement of the vertical profiles of mean temperature, mean convective heat flux, and root-mean-square temperature fluctuations. In addition, we discuss temperature variance spectra and joint probability density functions of the turbulent vertical velocity component and temperature fluctuation, the latter of which is essential for the turbulent heat transport across the layer. At the core of the model is the reservoir, a very large sparse random network characterized by the spectral radius of the corresponding adjacency matrix and a few further hyperparameters which are varied to investigate the quality of the prediction. Our work demonstrates that the reservoir computing model is capable of modeling the large-scale structure and low-order statistics of turbulent convection, which can open new avenues for modeling mesoscale convection processes in larger circulation models.}, + number = {11}, + urldate = {2022-05-31}, + journal = {Physical Review Fluids}, + author = {Pandey, Sandeep and Schumacher, Jörg}, + month = nov, + year = {2020}, + note = {Publisher: American Physical Society}, + pages = {113506}, + file = {APS Snapshot:/Users/tsmith/Zotero/storage/6XFCT9XY/PhysRevFluids.5.html:text/html;Pandey_Schumacher_2020_Reservoir_computing_model_of_two-dimensional_turbulent_convection.pdf:/Users/tsmith/Drive/zotero/Pandey_Schumacher_2020_Reservoir_computing_model_of_two-dimensional_turbulent_convection.pdf:application/pdf}, +} + +@article{doan_short-_2021, + title = {Short- and long-term predictions of chaotic flows and extreme events: a physics-constrained reservoir computing approach}, + volume = {477}, + shorttitle = {Short- and long-term predictions of chaotic flows and extreme events}, + url = {https://royalsocietypublishing.org/doi/full/10.1098/rspa.2021.0135}, + doi = {10.1098/rspa.2021.0135}, + abstract = {We propose a physics-constrained machine learning method—based on reservoir computing—to time-accurately predict extreme events and long-term velocity statistics in a model of chaotic flow. The method leverages the strengths of two different approaches: empirical modelling based on reservoir computing, which learns the chaotic dynamics from data only, and physical modelling based on conservation laws. This enables the reservoir computing framework to output physical predictions when training data are unavailable. We show that the combination of the two approaches is able to accurately reproduce the velocity statistics, and to predict the occurrence and amplitude of extreme events in a model of self-sustaining process in turbulence. In this flow, the extreme events are abrupt transitions from turbulent to quasi-laminar states, which are deterministic phenomena that cannot be traditionally predicted because of chaos. Furthermore, the physics-constrained machine learning method is shown to be robust with respect to noise. This work opens up new possibilities for synergistically enhancing data-driven methods with physical knowledge for the time-accurate prediction of chaotic flows.}, + number = {2253}, + urldate = {2022-05-31}, + journal = {Proceedings of the Royal Society A: Mathematical, Physical and Engineering Sciences}, + author = {Doan, N. a. K. and Polifke, W. and Magri, L.}, + month = sep, + year = {2021}, + note = {Publisher: Royal Society}, + keywords = {machine learning, reservoir computing, chaotic flows, extreme events}, + pages = {20210135}, + file = {Doan_et_al_2021_Short-_and_long-term_predictions_of_chaotic_flows_and_extreme_events.pdf:/Users/tsmith/Drive/zotero/Doan_et_al_2021_Short-_and_long-term_predictions_of_chaotic_flows_and_extreme_events.pdf:application/pdf}, +} + +@article{moore_linear_2022, + title = {A linear stochastic emulator of the {California} {Current} system using balanced truncation}, + volume = {174}, + issn = {14635003}, + url = {https://linkinghub.elsevier.com/retrieve/pii/S1463500322000610}, + doi = {10.1016/j.ocemod.2022.102023}, + abstract = {A downscaled reanalysis for the California Current system is used to construct a low-dimensional linear stochastic emulator of the 3-dimensional time evolving ocean circulation. The approach used is based on balanced truncation which simultaneously draws on information from the Empirical Orthogonal Functions (EOFs) and stochastic optimals of the ocean state-vector. In this way, balanced truncation faithfully preserves the inherent stability properties of the data, unlike the more traditional approaches based on truncation using EOFs alone. Since balanced truncation is predicated on singular value decomposition, formal error bounds on the accuracy of the reduced-dimension system can be computed. In addition, linear stochastic emulators that target different physical processes can also be constructed, and examples that focus on a region dominated by coastal upwelling are presented. Linear stochastic emulators, such as that developed here, can be exploited to generate very long simulations (or large ensembles) at high resolution that can be used to establish a statistical baseline for important oceanic processes, calculations that would otherwise be very challenging by direct numerical integration. An example is presented.}, + language = {en}, + urldate = {2022-06-21}, + journal = {Ocean Modelling}, + author = {Moore, Andrew M. and Fiechter, Jérôme and Edwards, Christopher A.}, + month = jun, + year = {2022}, + pages = {102023}, + file = {Moore_et_al_2022_A_linear_stochastic_emulator_of_the_California_Current_system_using_balanced.pdf:/Users/tsmith/Drive/zotero/Moore_et_al_2022_A_linear_stochastic_emulator_of_the_California_Current_system_using_balanced.pdf:application/pdf}, +} + +@article{dueben_challenges_2022, + title = {Challenges and {Benchmark} {Datasets} for {Machine} {Learning} in the {Atmospheric} {Sciences}: {Definition}, {Status}, and {Outlook}}, + volume = {1}, + issn = {2769-7525}, + shorttitle = {Challenges and {Benchmark} {Datasets} for {Machine} {Learning} in the {Atmospheric} {Sciences}}, + url = {https://journals.ametsoc.org/view/journals/aies/1/3/AIES-D-21-0002.1.xml}, + doi = {10.1175/AIES-D-21-0002.1}, + abstract = {Abstract Benchmark datasets and benchmark problems have been a key aspect for the success of modern machine learning applications in many scientific domains. Consequently, an active discussion about benchmarks for applications of machine learning has also started in the atmospheric sciences. Such benchmarks allow for the comparison of machine learning tools and approaches in a quantitative way and enable a separation of concerns for domain and machine learning scientists. However, a clear definition of benchmark datasets for weather and climate applications is missing with the result that many domain scientists are confused. In this paper, we equip the domain of atmospheric sciences with a recipe for how to build proper benchmark datasets, a (nonexclusive) list of domain-specific challenges for machine learning is presented, and it is elaborated where and what benchmark datasets will be needed to tackle these challenges. We hope that the creation of benchmark datasets will help the machine learning efforts in atmospheric sciences to be more coherent, and, at the same time, target the efforts of machine learning scientists and experts of high-performance computing to the most imminent challenges in atmospheric sciences. We focus on benchmarks for atmospheric sciences (weather, climate, and air-quality applications). However, many aspects of this paper will also hold for other aspects of the Earth system sciences or are at least transferable. Significance Statement Machine learning is the study of computer algorithms that learn automatically from data. Atmospheric sciences have started to explore sophisticated machine learning techniques and the community is making rapid progress on the uptake of new methods for a large number of application areas. This paper provides a clear definition of so-called benchmark datasets for weather and climate applications that help to share data and machine learning solutions between research groups to reduce time spent in data processing, to generate synergies between groups, and to make tool developments more targeted and comparable. Furthermore, a list of benchmark datasets that will be needed to tackle important challenges for the use of machine learning in atmospheric sciences is provided.}, + language = {EN}, + number = {3}, + urldate = {2022-08-11}, + journal = {Artificial Intelligence for the Earth Systems}, + author = {Dueben, Peter D. and Schultz, Martin G. and Chantry, Matthew and Gagne, David John and Hall, David Matthew and McGovern, Amy}, + month = jul, + year = {2022}, + note = {Publisher: American Meteorological Society +Section: Artificial Intelligence for the Earth Systems}, + file = {Dueben_et_al_2022_Challenges_and_Benchmark_Datasets_for_Machine_Learning_in_the_Atmospheric.pdf:/Users/tsmith/Drive/zotero/Dueben_et_al_2022_Challenges_and_Benchmark_Datasets_for_Machine_Learning_in_the_Atmospheric.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/M8WL4X3I/AIES-D-21-0002.1.html:text/html}, +} + +@article{brunton_machine_2020, + title = {Machine {Learning} for {Fluid} {Mechanics}}, + volume = {52}, + url = {https://doi.org/10.1146/annurev-fluid-010719-060214}, + doi = {10.1146/annurev-fluid-010719-060214}, + abstract = {The field of fluid mechanics is rapidly advancing, driven by unprecedented volumes of data from experiments, field measurements, and large-scale simulations at multiple spatiotemporal scales. Machine learning (ML) offers a wealth of techniques to extract information from data that can be translated into knowledge about the underlying fluid mechanics. Moreover, ML algorithms can augment domain knowledge and automate tasks related to flow control and optimization. This article presents an overview of past history, current developments, and emerging opportunities of ML for fluid mechanics. We outline fundamental ML methodologies and discuss their uses for understanding, modeling, optimizing, and controlling fluid flows. The strengths and limitations of these methods are addressed from the perspective of scientific inquiry that considers data as an inherent part of modeling, experiments, and simulations. ML provides a powerful information-processing framework that can augment, and possibly even transform, current lines of fluid mechanics research and industrial applications.}, + number = {1}, + urldate = {2022-08-12}, + journal = {Annual Review of Fluid Mechanics}, + author = {Brunton, Steven L. and Noack, Bernd R. and Koumoutsakos, Petros}, + year = {2020}, + note = {\_eprint: https://doi.org/10.1146/annurev-fluid-010719-060214}, + keywords = {machine learning, optimization, data-driven modeling, control}, + pages = {477--508}, + file = {Brunton_et_al_2020_Machine_Learning_for_Fluid_Mechanics.pdf:/Users/tsmith/Drive/zotero/Brunton_et_al_2020_Machine_Learning_for_Fluid_Mechanics.pdf:application/pdf}, +} + +@article{chattopadhyay_deep_2020, + title = {Deep spatial transformers for autoregressive data-driven forecasting of geophysical turbulence}, + copyright = {GNU Lesser General Public License (LGPL) 2.1}, + url = {https://eartharxiv.org/repository/view/118/}, + abstract = {A deep spatial transformer based encoder-decoder model has been developed to autoregressively predict the time evolution of the upper layers stream function of a two-layered quasi-geostrophic (QG) system without any information about the lower layers stream function. The spatio-temporal complexity of QG flow is comparable to the complexity of 500hPa Geopotential Height (Z500) of fully coupled climate models or even the Z500 which is observed in the atmosphere, based on the instantaneous attractor dimension metric. The ability to predict autoregressively, the turbulent dynamics of QG is the first step towards building data-driven surrogates for more complex climate models. We show that the equivariance preserving properties of modern spatial transformers incorporated within a convolutional encoder-decoder module can predict up to 9 days in a QG system (outperforming a baseline persistence model and a standard convolutional encoder decoder with a custom loss function). The proposed data-driven model remains stable for multiple years thus promising us of a stable and physical data-driven climate model.}, + language = {en}, + urldate = {2022-08-18}, + author = {Chattopadhyay, Ashesh and Mustafa, Mustafa and Hassanzadeh, Pedram and Kashinath, Karthik}, + month = jul, + year = {2020}, + note = {Publisher: EarthArXiv}, + journal = {EarthArXiv}, + file = {Chattopadhyay_et_al_2020_Deep_spatial_transformers_for_autoregressive_data-driven_forecasting_of.pdf:/Users/tsmith/Drive/zotero/Chattopadhyay_et_al_2020_Deep_spatial_transformers_for_autoregressive_data-driven_forecasting_of.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/7FRV5NT3/118.html:text/html}, +} + +@misc{kurth_fourcastnet_2022, + title = {{FourCastNet}: {Accelerating} {Global} {High}-{Resolution} {Weather} {Forecasting} using {Adaptive} {Fourier} {Neural} {Operators}}, + shorttitle = {{FourCastNet}}, + url = {http://arxiv.org/abs/2208.05419}, + abstract = {Extreme weather amplified by climate change is causing increasingly devastating impacts across the globe. The current use of physics-based numerical weather prediction (NWP) limits accuracy due to high computational cost and strict time-to-solution limits. We report that a data-driven deep learning Earth system emulator, FourCastNet, can predict global weather and generate medium-range forecasts five orders-of-magnitude faster than NWP while approaching state-of-the-art accuracy. FourCast-Net is optimized and scales efficiently on three supercomputing systems: Selene, Perlmutter, and JUWELS Booster up to 3,808 NVIDIA A100 GPUs, attaining 140.8 petaFLOPS in mixed precision (11.9\%of peak at that scale). The time-to-solution for training FourCastNet measured on JUWELS Booster on 3,072GPUs is 67.4minutes, resulting in an 80,000times faster time-to-solution relative to state-of-the-art NWP, in inference. FourCastNet produces accurate instantaneous weather predictions for a week in advance, enables enormous ensembles that better capture weather extremes, and supports higher global forecast resolutions.}, + urldate = {2022-08-22}, + publisher = {arXiv}, + author = {Kurth, Thorsten and Subramanian, Shashank and Harrington, Peter and Pathak, Jaideep and Mardani, Morteza and Hall, David and Miele, Andrea and Kashinath, Karthik and Anandkumar, Animashree}, + month = aug, + year = {2022}, + note = {arXiv:2208.05419 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Computer Science - Computer Vision and Pattern Recognition, Computer Science - Performance}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/U78S3MRL/2208.html:text/html;Kurth_et_al_2022_FourCastNet.pdf:/Users/tsmith/Drive/zotero/Kurth_et_al_2022_FourCastNet.pdf:application/pdf}, +} + +@article{furner_sensitivity_2022, + title = {A sensitivity analysis of a regression model of ocean temperature}, + volume = {1}, + issn = {2634-4602}, + url = {https://www.cambridge.org/core/journals/environmental-data-science/article/sensitivity-analysis-of-a-regression-model-of-ocean-temperature/089EA5B347F262CEE0B4BDFFBA4E6FF5}, + doi = {10.1017/eds.2022.10}, + abstract = {There has been much recent interest in developing data-driven models for weather and climate predictions. However, there are open questions regarding their generalizability and robustness, highlighting a need to better understand how they make their predictions. In particular, it is important to understand whether data-driven models learn the underlying physics of the system against which they are trained, or simply identify statistical patterns without any clear link to the underlying physics. In this paper, we describe a sensitivity analysis of a regression-based model of ocean temperature, trained against simulations from a 3D ocean model setup in a very simple configuration. We show that the regressor heavily bases its forecasts on, and is dependent on, variables known to be key to the physics such as currents and density. By contrast, the regressor does not make heavy use of inputs such as location, which have limited direct physical impacts. The model requires nonlinear interactions between inputs in order to show any meaningful skill—in line with the highly nonlinear dynamics of the ocean. Further analysis interprets the ways certain variables are used by the regression model. We see that information about the vertical profile of the water column reduces errors in regions of convective activity, and information about the currents reduces errors in regions dominated by advective processes. Our results demonstrate that even a simple regression model is capable of learning much of the physics of the system being modeled. We expect that a similar sensitivity analysis could be usefully applied to more complex ocean configurations.}, + language = {en}, + urldate = {2022-09-08}, + journal = {Environmental Data Science}, + author = {Furner, Rachel and Haynes, Peter and Munday, Dave and Paige, Brooks and Jones, Daniel C. and Shuckburgh, Emily}, + year = {2022}, + note = {Publisher: Cambridge University Press}, + keywords = {oceanography, Data science, interpretable ML, model sensitivity, regression model}, + pages = {e11}, + file = {Furner_et_al_2022_A_sensitivity_analysis_of_a_regression_model_of_ocean_temperature.pdf:/Users/tsmith/Drive/zotero/Furner_et_al_2022_A_sensitivity_analysis_of_a_regression_model_of_ocean_temperature.pdf:application/pdf}, +} + +@article{weyn_sub-seasonal_2021, + title = {Sub-{Seasonal} {Forecasting} {With} a {Large} {Ensemble} of {Deep}-{Learning} {Weather} {Prediction} {Models}}, + volume = {13}, + issn = {1942-2466}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2021MS002502}, + doi = {10.1029/2021MS002502}, + abstract = {We present an ensemble prediction system using a Deep Learning Weather Prediction (DLWP) model that recursively predicts six key atmospheric variables with six-hour time resolution. This computationally efficient model uses convolutional neural networks (CNNs) on a cubed sphere grid to produce global forecasts. The trained model requires just three minutes on a single GPU to produce a 320-member set of six-week forecasts at 1.4° resolution. Ensemble spread is primarily produced by randomizing the CNN training process to create a set of 32 DLWP models with slightly different learned weights. Although our DLWP model does not forecast precipitation, it does forecast total column water vapor and gives a reasonable 4.5-day deterministic forecast of Hurricane Irma. In addition to simulating mid-latitude weather systems, it spontaneously generates tropical cyclones in a one-year free-running simulation. Averaged globally and over a two-year test set, the ensemble mean RMSE retains skill relative to climatology beyond two-weeks, with anomaly correlation coefficients remaining above 0.6 through six days. Our primary application is to subseasonal-to-seasonal (S2S) forecasting at lead times from two to six weeks. Current forecast systems have low skill in predicting one- or 2-week-average weather patterns at S2S time scales. The continuous ranked probability score (CRPS) and the ranked probability skill score (RPSS) show that the DLWP ensemble is only modestly inferior in performance to the European Center for Medium Range Weather Forecasts (ECMWF) S2S ensemble over land at lead times of 4 and 5–6 weeks. At shorter lead times, the ECMWF ensemble performs better than DLWP.}, + language = {en}, + number = {7}, + urldate = {2022-10-03}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Weyn, Jonathan A. and Durran, Dale R. and Caruana, Rich and Cresswell-Clay, Nathaniel}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002502}, + keywords = {machine learning, Deep learning, NWP, S2S}, + pages = {e2021MS002502}, + annote = {e2021MS002502 2021MS002502}, + file = {Snapshot:/Users/tsmith/Zotero/storage/CEGLP337/2021MS002502.html:text/html;Weyn_et_al_2021_Sub-Seasonal_Forecasting_With_a_Large_Ensemble_of_Deep-Learning_Weather.pdf:/Users/tsmith/Drive/zotero/Weyn_et_al_2021_Sub-Seasonal_Forecasting_With_a_Large_Ensemble_of_Deep-Learning_Weather.pdf:application/pdf}, +} + +@article{weyn_improving_2020, + title = {Improving {Data}-{Driven} {Global} {Weather} {Prediction} {Using} {Deep} {Convolutional} {Neural} {Networks} on a {Cubed} {Sphere}}, + volume = {12}, + issn = {1942-2466}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2020MS002109}, + doi = {10.1029/2020MS002109}, + abstract = {We present a significantly improved data-driven global weather forecasting framework using a deep convolutional neural network (CNN) to forecast several basic atmospheric variables on a global grid. New developments in this framework include an off-line volume-conservative mapping to a cubed-sphere grid, improvements to the CNN architecture and the minimization of the loss function over multiple steps in a prediction sequence. The cubed-sphere remapping minimizes the distortion on the cube faces on which convolution operations are performed and provides natural boundary conditions for padding in the CNN. Our improved model produces weather forecasts that are indefinitely stable and produce realistic weather patterns at lead times of several weeks and longer. For short- to medium-range forecasting, our model significantly outperforms persistence, climatology, and a coarse-resolution dynamical numerical weather prediction (NWP) model. Unsurprisingly, our forecasts are worse than those from a high-resolution state-of-the-art operational NWP system. Our data-driven model is able to learn to forecast complex surface temperature patterns from few input atmospheric state variables. On annual time scales, our model produces a realistic seasonal cycle driven solely by the prescribed variation in top-of-atmosphere solar forcing. Although it currently does not compete with operational weather forecasting models, our data-driven CNN executes much faster than those models, suggesting that machine learning could prove to be a valuable tool for large-ensemble forecasting.}, + language = {en}, + number = {9}, + urldate = {2022-10-03}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Weyn, Jonathan A. and Durran, Dale R. and Caruana, Rich}, + year = {2020}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2020MS002109}, + pages = {e2020MS002109}, + annote = {e2020MS002109 10.1029/2020MS002109}, + file = {Snapshot:/Users/tsmith/Zotero/storage/X2BALKJA/2020MS002109.html:text/html;Weyn_et_al_2020_Improving_Data-Driven_Global_Weather_Prediction_Using_Deep_Convolutional_Neural.pdf:/Users/tsmith/Drive/zotero/Weyn_et_al_2020_Improving_Data-Driven_Global_Weather_Prediction_Using_Deep_Convolutional_Neural.pdf:application/pdf}, +} + +@article{scher_weather_2019, + title = {Weather and climate forecasting with neural networks: using general circulation models ({GCMs}) with different complexity as a study ground}, + volume = {12}, + issn = {1991-959X}, + shorttitle = {Weather and climate forecasting with neural networks}, + url = {https://gmd.copernicus.org/articles/12/2797/2019/}, + doi = {10.5194/gmd-12-2797-2019}, + abstract = {{\textless}p{\textgreater}{\textless}strong class="journal-contentHeaderColor"{\textgreater}Abstract.{\textless}/strong{\textgreater} Recently, there has been growing interest in the possibility of using neural networks for both weather forecasting and the generation of climate datasets. We use a bottom–up approach for assessing whether it should, in principle, be possible to do this. We use the relatively simple general circulation models (GCMs) PUMA and PLASIM as a simplified reality on which we train deep neural networks, which we then use for predicting the model weather at lead times of a few days. We specifically assess how the complexity of the climate model affects the neural network's forecast skill and how dependent the skill is on the length of the provided training period. Additionally, we show that using the neural networks to reproduce the climate of general circulation models including a seasonal cycle remains challenging – in contrast to earlier promising results on a model without seasonal cycle.{\textless}/p{\textgreater}}, + language = {English}, + number = {7}, + urldate = {2022-10-03}, + journal = {Geoscientific Model Development}, + author = {Scher, Sebastian and Messori, Gabriele}, + month = jul, + year = {2019}, + note = {Publisher: Copernicus GmbH}, + pages = {2797--2809}, + file = {Scher_Messori_2019_Weather_and_climate_forecasting_with_neural_networks.pdf:/Users/tsmith/Drive/zotero/Scher_Messori_2019_Weather_and_climate_forecasting_with_neural_networks.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/LQUNMMG8/gmd-12-2797-2019-discussion.html:text/html}, +} + +@article{weyn_can_2019, + title = {Can {Machines} {Learn} to {Predict} {Weather}? {Using} {Deep} {Learning} to {Predict} {Gridded} 500-{hPa} {Geopotential} {Height} {From} {Historical} {Weather} {Data}}, + volume = {11}, + issn = {1942-2466}, + shorttitle = {Can {Machines} {Learn} to {Predict} {Weather}?}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2019MS001705}, + doi = {10.1029/2019MS001705}, + abstract = {We develop elementary weather prediction models using deep convolutional neural networks (CNNs) trained on past weather data to forecast one or two fundamental meteorological fields on a Northern Hemisphere grid with no explicit knowledge about physical processes. At forecast lead times up to 3 days, CNNs trained to predict only 500-hPa geopotential height easily outperform persistence, climatology, and the dynamics-based barotropic vorticity model, but do not beat an operational full-physics weather prediction model. These CNNs are capable of forecasting significant changes in the intensity of weather systems, which is notable because this is beyond the capability of the fundamental dynamical equation that relies solely on 500-hPa data, the barotropic vorticity equation. Modest improvements to the CNN forecasts can be made by adding 700- to 300-hPa thickness to the input data. Our best performing CNN does a good job of capturing the climatology and annual variability of 500-hPa heights and is capable of forecasting realistic atmospheric states at lead times of 14 days. Although our simple models do not perform better than an operational weather model, machine learning warrants further exploration as a weather forecasting tool; in particular, the potential efficiency of CNNs might make them attractive for ensemble forecasting.}, + language = {en}, + number = {8}, + urldate = {2022-10-03}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Weyn, Jonathan A. and Durran, Dale R. and Caruana, Rich}, + year = {2019}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2019MS001705}, + keywords = {machine learning, weather prediction, deep learning, neural network}, + pages = {2680--2693}, + file = {Snapshot:/Users/tsmith/Zotero/storage/FRCJ3UNE/2019MS001705.html:text/html;Weyn_et_al_2019_Can_Machines_Learn_to_Predict_Weather.pdf:/Users/tsmith/Drive/zotero/Weyn_et_al_2019_Can_Machines_Learn_to_Predict_Weather.pdf:application/pdf}, +} + +@inproceedings{shi_convolutional_2015, + title = {Convolutional {LSTM} {Network}: {A} {Machine} {Learning} {Approach} for {Precipitation} {Nowcasting}}, + volume = {28}, + shorttitle = {Convolutional {LSTM} {Network}}, + url = {https://proceedings.neurips.cc/paper/2015/hash/07563a3fe3bbe7e3ba84431ad9d055af-Abstract.html}, + abstract = {The goal of precipitation nowcasting is to predict the future rainfall intensity in a local region over a relatively short period of time. Very few previous studies have examined this crucial and challenging weather forecasting problem from the machine learning perspective. In this paper, we formulate precipitation nowcasting as a spatiotemporal sequence forecasting problem in which both the input and the prediction target are spatiotemporal sequences. By extending the fully connected LSTM (FC-LSTM) to have convolutional structures in both the input-to-state and state-to-state transitions, we propose the convolutional LSTM (ConvLSTM) and use it to build an end-to-end trainable model for the precipitation nowcasting problem. Experiments show that our ConvLSTM network captures spatiotemporal correlations better and consistently outperforms FC-LSTM and the state-of-the-art operational ROVER algorithm for precipitation nowcasting.}, + urldate = {2022-10-03}, + booktitle = {Advances in {Neural} {Information} {Processing} {Systems}}, + publisher = {Curran Associates, Inc.}, + author = {SHI, Xingjian and Chen, Zhourong and Wang, Hao and Yeung, Dit-Yan and Wong, Wai-kin and WOO, Wang-chun}, + year = {2015}, + file = {SHI_et_al_2015_Convolutional_LSTM_Network.pdf:/Users/tsmith/Drive/zotero/SHI_et_al_2015_Convolutional_LSTM_Network.pdf:application/pdf}, +} + +@article{rasp_data-driven_2021, + title = {Data-{Driven} {Medium}-{Range} {Weather} {Prediction} {With} a {Resnet} {Pretrained} on {Climate} {Simulations}: {A} {New} {Model} for {WeatherBench}}, + volume = {13}, + issn = {1942-2466}, + shorttitle = {Data-{Driven} {Medium}-{Range} {Weather} {Prediction} {With} a {Resnet} {Pretrained} on {Climate} {Simulations}}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2020MS002405}, + doi = {10.1029/2020MS002405}, + abstract = {Numerical weather prediction has traditionally been based on the models that discretize the dynamical and physical equations of the atmosphere. Recently, however, the rise of deep learning has created increased interest in purely data-driven medium-range weather forecasting with first studies exploring the feasibility of such an approach. To accelerate progress in this area, the WeatherBench benchmark challenge was defined. Here, we train a deep residual convolutional neural network (Resnet) to predict geopotential, temperature and precipitation at 5.625° resolution up to 5 days ahead. To avoid overfitting and improve forecast skill, we pretrain the model using historical climate model output before fine-tuning on reanalysis data. The resulting forecasts outperform previous submissions to WeatherBench and are comparable in skill to a physical baseline at similar resolution. We also analyze how the neural network creates its predictions and find that, for the case studies analyzed, the model has learned physically reasonable correlations. Finally, we perform scaling experiments to estimate the potential skill of data-driven approaches at higher resolutions.}, + language = {en}, + number = {2}, + urldate = {2022-10-03}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Rasp, Stephan and Thuerey, Nils}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2020MS002405}, + keywords = {machine learning, deep learning, numerical weather forecasting}, + pages = {e2020MS002405}, + annote = {e2020MS002405 2020MS002405}, + file = {Rasp_Thuerey_2021_Data-Driven_Medium-Range_Weather_Prediction_With_a_Resnet_Pretrained_on_Climate.pdf:/Users/tsmith/Drive/zotero/Rasp_Thuerey_2021_Data-Driven_Medium-Range_Weather_Prediction_With_a_Resnet_Pretrained_on_Climate.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/T3N9E3J5/2020MS002405.html:text/html}, +} + +@article{clare_combining_2021, + title = {Combining distribution-based neural networks to predict weather forecast probabilities}, + volume = {147}, + issn = {1477-870X}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/qj.4180}, + doi = {10.1002/qj.4180}, + abstract = {The success of deep learning techniques over the last decades has opened up a new avenue of research for weather forecasting. Here, we take the novel approach of using a neural network to predict full probability density functions at each point in space and time rather than a single output value, thus producing a probabilistic weather forecast. This enables the calculation of both uncertainty and skill metrics for the neural network predictions, and overcomes the common difficulty of inferring uncertainty from these predictions. This approach is data-driven and the neural network is trained on the WeatherBench dataset (processed ERA5 data) to forecast geopotential and temperature 3 and 5 days ahead. Data exploration leads to the identification of the most important input variables. In order to increase computational efficiency, several neural networks are trained on small subsets of these variables. The outputs are then combined through a stacked neural network, the first time such a technique has been applied to weather data. Our approach is found to be more accurate than some coarse numerical weather prediction models and as accurate as more complex alternative neural networks, with the added benefit of providing key probabilistic information necessary for making informed weather forecasts.}, + language = {en}, + number = {741}, + urldate = {2022-10-03}, + journal = {Quarterly Journal of the Royal Meteorological Society}, + author = {Clare, Mariana C.A. and Jamil, Omar and Morcrette, Cyril J.}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/qj.4180}, + keywords = {deep learning, data exploration, ensemble dropout, probabilistic weather forecasting, probability density functions, ResNet, stacked neural network}, + pages = {4337--4357}, + file = {Clare_et_al_2021_Combining_distribution-based_neural_networks_to_predict_weather_forecast.pdf:/Users/tsmith/Drive/zotero/Clare_et_al_2021_Combining_distribution-based_neural_networks_to_predict_weather_forecast.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/L7MLLTLD/qj.html:text/html}, +} + +@article{faranda_enhancing_2021, + title = {Enhancing geophysical flow machine learning performance via scale separation}, + volume = {28}, + issn = {1023-5809}, + url = {https://npg.copernicus.org/articles/28/423/2021/}, + doi = {10.5194/npg-28-423-2021}, + abstract = {{\textless}p{\textgreater}{\textless}strong class="journal-contentHeaderColor"{\textgreater}Abstract.{\textless}/strong{\textgreater} Recent advances in statistical and machine learning have opened the possibility of forecasting the behaviour of chaotic systems using recurrent neural networks. In this article we investigate the applicability of such a framework to geophysical flows, known to involve multiple scales in length, time and energy and to feature intermittency. We show that both multiscale dynamics and intermittency introduce severe limitations to the applicability of recurrent neural networks, both for short-term forecasts as well as for the reconstruction of the underlying attractor. We suggest that possible strategies to overcome such limitations should be based on separating the smooth large-scale dynamics from the intermittent/small-scale features. We test these ideas on global sea-level pressure data for the past 40 years, a proxy of the atmospheric circulation dynamics. Better short- and long-term forecasts of sea-level pressure data can be obtained with an optimal choice of spatial coarse graining and time filtering.{\textless}/p{\textgreater}}, + language = {English}, + number = {3}, + urldate = {2022-10-03}, + journal = {Nonlinear Processes in Geophysics}, + author = {Faranda, Davide and Vrac, Mathieu and Yiou, Pascal and Pons, Flavio Maria Emanuele and Hamid, Adnane and Carella, Giulia and Ngoungue Langue, Cedric and Thao, Soulivanh and Gautard, Valerie}, + month = sep, + year = {2021}, + note = {Publisher: Copernicus GmbH}, + pages = {423--443}, + file = {Faranda_et_al_2021_Enhancing_geophysical_flow_machine_learning_performance_via_scale_separation.pdf:/Users/tsmith/Drive/zotero/Faranda_et_al_2021_Enhancing_geophysical_flow_machine_learning_performance_via_scale_separation.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/ZZ3HHTKT/2021.html:text/html}, +} + +@article{maulik_efficient_2022, + title = {Efficient high-dimensional variational data assimilation with machine-learned reduced-order models}, + volume = {15}, + issn = {1991-9603}, + url = {https://gmd.copernicus.org/articles/15/3433/2022/}, + doi = {10.5194/gmd-15-3433-2022}, + abstract = {Data assimilation (DA) in geophysical sciences remains the cornerstone of robust forecasts from numerical models. Indeed, DA plays a crucial role in the quality of numerical weather prediction and is a crucial building block that has allowed dramatic improvements in weather forecasting over the past few decades. DA is commonly framed in a variational setting, where one solves an optimization problem within a Bayesian formulation using raw model forecasts as a prior and observations as likelihood. This leads to a DA objective function that needs to be minimized, where the decision variables are the initial conditions specified to the model. In traditional DA, the forward model is numerically and computationally expensive. Here we replace the forward model with a low-dimensional, data-driven, and differentiable emulator. Consequently, gradients of our DA objective function with respect to the decision variables are obtained rapidly via automatic differentiation. We demonstrate our approach by performing an emulator-assisted DA forecast of geopotential height. Our results indicate that emulatorassisted DA is faster than traditional equation-based DA forecasts by 4 orders of magnitude, allowing computations to be performed on a workstation rather than a dedicated highperformance computer. In addition, we describe accuracy benefits of emulator-assisted DA when compared to simply using the emulator for forecasting (i.e., without DA). Our overall formulation is denoted AIEADA (Artificial Intelligence Emulator-Assisted Data Assimilation).}, + language = {en}, + number = {8}, + urldate = {2022-10-03}, + journal = {Geoscientific Model Development}, + author = {Maulik, Romit and Rao, Vishwas and Wang, Jiali and Mengaldo, Gianmarco and Constantinescu, Emil and Lusch, Bethany and Balaprakash, Prasanna and Foster, Ian and Kotamarthi, Rao}, + month = may, + year = {2022}, + pages = {3433--3445}, + file = {Maulik_et_al_2022_Efficient_high-dimensional_variational_data_assimilation_with_machine-learned.pdf:/Users/tsmith/Drive/zotero/Maulik_et_al_2022_Efficient_high-dimensional_variational_data_assimilation_with_machine-learned.pdf:application/pdf}, +} + +@article{nonnenmacher_deep_2021, + title = {Deep {Emulators} for {Differentiation}, {Forecasting}, and {Parametrization} in {Earth} {Science} {Simulators}}, + volume = {13}, + issn = {1942-2466}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2021MS002554}, + doi = {10.1029/2021MS002554}, + abstract = {To understand and predict large, complex, and chaotic systems, Earth scientists build simulators from physical laws. Simulators generalize better to new scenarios, require fewer tunable parameters, and are more interpretable than nonphysical deep learning, but procedures for obtaining their derivatives with respect to their inputs are often unavailable. These missing derivatives limit the application of many important tools for forecasting, model tuning, sensitivity analysis, or subgrid-scale parametrization. Here, we propose to overcome this limitation with deep emulator networks that learn to calculate the missing derivatives. By training directly on simulation data without analyzing source code or equations, this approach supports simulators in any programming language on any hardware without specialized routines for each case. To demonstrate the effectiveness of our approach, we train emulators on complete or partial system states of the chaotic Lorenz-96 simulator and evaluate the accuracy of their dynamics and derivatives as a function of integration time and training data set size. We further demonstrate that emulator-derived derivatives enable accurate 4D-Var data assimilation and closed-loop training of parametrizations. These results provide a basis for further combining the parsimony and generality of physical models with the power and flexibility of machine learning.}, + language = {en}, + number = {7}, + urldate = {2022-10-03}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Nonnenmacher, Marcel and Greenberg, David S.}, + year = {2021}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002554}, + keywords = {machine learning, data assimilation, Lorenz-96, deep learning, model Jacobians, parametrization tuning}, + pages = {e2021MS002554}, + annote = {e2021MS002554 2021MS002554}, + file = {Nonnenmacher_Greenberg_2021_Deep_Emulators_for_Differentiation,_Forecasting,_and_Parametrization_in_Earth.pdf:/Users/tsmith/Drive/zotero/Nonnenmacher_Greenberg_2021_Deep_Emulators_for_Differentiation,_Forecasting,_and_Parametrization_in_Earth.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/QDG5DWSI/2021MS002554.html:text/html}, +} + +@article{schultz_can_2021, + title = {Can deep learning beat numerical weather prediction?}, + volume = {379}, + url = {https://royalsocietypublishing.org/doi/10.1098/rsta.2020.0097}, + doi = {10.1098/rsta.2020.0097}, + abstract = {The recent hype about artificial intelligence has sparked renewed interest in applying the successful deep learning (DL) methods for image recognition, speech recognition, robotics, strategic games and other application areas to the field of meteorology. There is some evidence that better weather forecasts can be produced by introducing big data mining and neural networks into the weather prediction workflow. Here, we discuss the question of whether it is possible to completely replace the current numerical weather models and data assimilation systems with DL approaches. This discussion entails a review of state-of-the-art machine learning concepts and their applicability to weather data with its pertinent statistical properties. We think that it is not inconceivable that numerical weather models may one day become obsolete, but a number of fundamental breakthroughs are needed before this goal comes into reach. + +This article is part of the theme issue ‘Machine learning for weather and climate modelling’.}, + number = {2194}, + urldate = {2022-10-07}, + journal = {Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences}, + author = {Schultz, M. G. and Betancourt, C. and Gong, B. and Kleinert, F. and Langguth, M. and Leufen, L. H. and Mozaffari, A. and Stadtler, S.}, + month = apr, + year = {2021}, + note = {Publisher: Royal Society}, + keywords = {machine learning, deep learning, numerical weather prediction, spatiotemporal pattern recognition, weather AI}, + pages = {20200097}, + file = {Schultz_et_al_2021_Can_deep_learning_beat_numerical_weather_prediction.pdf:/Users/tsmith/Drive/zotero/Schultz_et_al_2021_Can_deep_learning_beat_numerical_weather_prediction.pdf:application/pdf}, +} + + +@article{scher_toward_2018, + title = {Toward {Data}-{Driven} {Weather} and {Climate} {Forecasting}: {Approximating} a {Simple} {General} {Circulation} {Model} {With} {Deep} {Learning}}, + volume = {45}, + issn = {1944-8007}, + shorttitle = {Toward {Data}-{Driven} {Weather} and {Climate} {Forecasting}}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2018GL080704}, + doi = {10.1029/2018GL080704}, + abstract = {It is shown that it is possible to emulate the dynamics of a simple general circulation model with a deep neural network. After being trained on the model, the network can predict the complete model state several time steps ahead—which conceptually is making weather forecasts in the model world. Additionally, after being initialized with an arbitrary model state, the network can through repeatedly feeding back its predictions into its inputs create a climate run, which has similar climate statistics to the climate of the general circulation model. This network climate run shows no long-term drift, even though no conservation properties were explicitly designed into the network.}, + language = {en}, + number = {22}, + urldate = {2022-10-11}, + journal = {Geophysical Research Letters}, + author = {Scher, S.}, + year = {2018}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2018GL080704}, + keywords = {climate models, deep learning, machine learning, neural networks, weather prediction}, + pages = {12,616--12,622}, + file = {Scher_2018_Toward_Data-Driven_Weather_and_Climate_Forecasting.pdf:/Users/tsmith/Drive/zotero/Scher_2018_Toward_Data-Driven_Weather_and_Climate_Forecasting.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/DDXA5NIS/2018GL080704.html:text/html}, +} + + +@article{hersbach_era5_2020, + title = {The {ERA5} global reanalysis}, + volume = {146}, + issn = {1477-870X}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/qj.3803}, + doi = {10.1002/qj.3803}, + abstract = {Within the Copernicus Climate Change Service (C3S), ECMWF is producing the ERA5 reanalysis which, once completed, will embody a detailed record of the global atmosphere, land surface and ocean waves from 1950 onwards. This new reanalysis replaces the ERA-Interim reanalysis (spanning 1979 onwards) which was started in 2006. ERA5 is based on the Integrated Forecasting System (IFS) Cy41r2 which was operational in 2016. ERA5 thus benefits from a decade of developments in model physics, core dynamics and data assimilation. In addition to a significantly enhanced horizontal resolution of 31 km, compared to 80 km for ERA-Interim, ERA5 has hourly output throughout, and an uncertainty estimate from an ensemble (3-hourly at half the horizontal resolution). This paper describes the general set-up of ERA5, as well as a basic evaluation of characteristics and performance, with a focus on the dataset from 1979 onwards which is currently publicly available. Re-forecasts from ERA5 analyses show a gain of up to one day in skill with respect to ERA-Interim. Comparison with radiosonde and PILOT data prior to assimilation shows an improved fit for temperature, wind and humidity in the troposphere, but not the stratosphere. A comparison with independent buoy data shows a much improved fit for ocean wave height. The uncertainty estimate reflects the evolution of the observing systems used in ERA5. The enhanced temporal and spatial resolution allows for a detailed evolution of weather systems. For precipitation, global-mean correlation with monthly-mean GPCP data is increased from 67\% to 77\%. In general, low-frequency variability is found to be well represented and from 10 hPa downwards general patterns of anomalies in temperature match those from the ERA-Interim, MERRA-2 and JRA-55 reanalyses.}, + language = {en}, + number = {730}, + urldate = {2022-10-11}, + journal = {Quarterly Journal of the Royal Meteorological Society}, + author = {Hersbach, Hans and Bell, Bill and Berrisford, Paul and Hirahara, Shoji and Horányi, András and Muñoz-Sabater, Joaquín and Nicolas, Julien and Peubey, Carole and Radu, Raluca and Schepers, Dinand and Simmons, Adrian and Soci, Cornel and Abdalla, Saleh and Abellan, Xavier and Balsamo, Gianpaolo and Bechtold, Peter and Biavati, Gionata and Bidlot, Jean and Bonavita, Massimo and De Chiara, Giovanna and Dahlgren, Per and Dee, Dick and Diamantakis, Michail and Dragani, Rossana and Flemming, Johannes and Forbes, Richard and Fuentes, Manuel and Geer, Alan and Haimberger, Leo and Healy, Sean and Hogan, Robin J. and Hólm, Elías and Janisková, Marta and Keeley, Sarah and Laloyaux, Patrick and Lopez, Philippe and Lupu, Cristina and Radnoti, Gabor and de Rosnay, Patricia and Rozum, Iryna and Vamborg, Freja and Villaume, Sebastien and Thépaut, Jean-Noël}, + year = {2020}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1002/qj.3803}, + keywords = {climate reanalysis, Copernicus Climate Change Service, data assimilation, ERA5, historical observations}, + pages = {1999--2049}, + file = {Hersbach_et_al_2020_The_ERA5_global_reanalysis.pdf:/Users/tsmith/Drive/zotero/Hersbach_et_al_2020_The_ERA5_global_reanalysis.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/YRUI7UXB/qj.html:text/html}, +} + + +@techreport{penny_coupled_2017, + title = {Coupled {Data} {Assimilation} for {Integrated} {Earth} {System} {Analysis} and {Prediction}: {Goals}, {Challenges} and {Recommendations}}, + institution = {Geneva: World Meteorological Organization.}, + author = {Penny, Stephen G. and Akella, Santha and Alves, Oscar and Craig, Bishop and Buehner, Mark and Chevallier, Matthieu and Counillon, Francois and Draper, Clara and Frolov, Sergey and Fujii, Yosuke and Karspeck, Alicia and Kumar, Arun and Laloyaux, Patrick and Mahfouf, Jean-Francois and Martin, Matthew and Peña, Malaquias and de Rosnay, Patricia and Subramanian, Aneesh and Tardif, Robert and Wang, Yiguo and Wu, Xingren}, + year = {2017}, + file = {Penny_et_al_2017_Coupled_Data_Assimilation_for_Integrated_Earth_System_Analysis_and_Prediction.pdf:/Users/tsmith/Drive/zotero/Penny_et_al_2017_Coupled_Data_Assimilation_for_Integrated_Earth_System_Analysis_and_Prediction.pdf:application/pdf}, +} + + +@article{hewitt_impact_2016, + title = {The impact of resolving the {Rossby} radius at mid-latitudes in the ocean: results from a high-resolution version of the {Met} {Office} {GC2} coupled model}, + volume = {9}, + issn = {1991-959X}, + shorttitle = {The impact of resolving the {Rossby} radius at mid-latitudes in the ocean}, + url = {https://gmd.copernicus.org/articles/9/3655/2016/}, + doi = {10.5194/gmd-9-3655-2016}, + abstract = {{\textless}p{\textgreater}{\textless}strong class="journal-contentHeaderColor"{\textgreater}Abstract.{\textless}/strong{\textgreater} There is mounting evidence that resolving mesoscale eddies and western boundary currents as well as topographically controlled flows can play an important role in air–sea interaction associated with vertical and lateral transports of heat and salt. Here we describe the development of the Met Office Global Coupled Model version 2 (GC2) with increased resolution relative to the standard model: the ocean resolution is increased from 1/4 to 1/12° (28 to 9 km at the Equator), the atmosphere resolution increased from 60 km (N216) to 25 km (N512) and the coupling period reduced from 3 hourly to hourly. The technical developments that were required to build a version of the model at higher resolution are described as well as results from a 20-year simulation. The results demonstrate the key role played by the enhanced resolution of the ocean model: reduced sea surface temperature (SST) biases, improved ocean heat transports, deeper and stronger overturning circulation and a stronger Antarctic Circumpolar Current. Our results suggest that the improvements seen here require high resolution in both atmosphere and ocean components as well as high-frequency coupling. These results add to the body of evidence suggesting that ocean resolution is an important consideration when developing coupled models for weather and climate applications.{\textless}/p{\textgreater}}, + language = {English}, + number = {10}, + urldate = {2022-02-08}, + journal = {Geoscientific Model Development}, + author = {Hewitt, Helene T. and Roberts, Malcolm J. and Hyder, Pat and Graham, Tim and Rae, Jamie and Belcher, Stephen E. and Bourdallé-Badie, Romain and Copsey, Dan and Coward, Andrew and Guiavarch, Catherine and Harris, Chris and Hill, Richard and Hirschi, Joël J.-M. and Madec, Gurvan and Mizielinski, Matthew S. and Neininger, Erica and New, Adrian L. and Rioual, Jean-Christophe and Sinha, Bablu and Storkey, David and Shelly, Ann and Thorpe, Livia and Wood, Richard A.}, + month = oct, + year = {2016}, + note = {Publisher: Copernicus GmbH}, + pages = {3655--3670}, + file = {Hewitt_et_al_2016_The_impact_of_resolving_the_Rossby_radius_at_mid-latitudes_in_the_ocean.pdf:/Users/tsmith/Drive/zotero/Hewitt_et_al_2016_The_impact_of_resolving_the_Rossby_radius_at_mid-latitudes_in_the_ocean.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/679MIVS2/2016.html:text/html}, +} + +@book{evensen_data_2022, + address = {Cham}, + series = {Springer {Textbooks} in {Earth} {Sciences}, {Geography} and {Environment}}, + title = {Data {Assimilation} {Fundamentals}: {A} {Unified} {Formulation} of the {State} and {Parameter} {Estimation} {Problem}}, + isbn = {978-3-030-96708-6 978-3-030-96709-3}, + shorttitle = {Data {Assimilation} {Fundamentals}}, + url = {https://link.springer.com/10.1007/978-3-030-96709-3}, + language = {en}, + urldate = {2022-06-08}, + publisher = {Springer International Publishing}, + author = {Evensen, Geir and Vossepoel, Femke C. and van Leeuwen, Peter Jan}, + year = {2022}, + doi = {10.1007/978-3-030-96709-3}, + file = {Evensen_et_al_2022_Data_Assimilation_Fundamentals.pdf:/Users/tsmith/Drive/zotero/Evensen_et_al_2022_Data_Assimilation_Fundamentals.pdf:application/pdf}, +} + + +@article{bui-thanh_model_2008, + title = {Model {Reduction} for {Large}-{Scale} {Systems} with {High}-{Dimensional} {Parametric} {Input} {Space}}, + volume = {30}, + issn = {1064-8275}, + url = {https://epubs.siam.org/doi/10.1137/070694855}, + doi = {10.1137/070694855}, + abstract = {A model-constrained adaptive sampling methodology is proposed for the reduction of large-scale systems with high-dimensional parametric input spaces. Our model reduction method uses a reduced basis approach, which requires the computation of high-fidelity solutions at a number of sample points throughout the parametric input space. A key challenge that must be addressed in the optimization, control, and probabilistic settings is the need for the reduced models to capture variation over this parametric input space, which, for many applications, will be of high dimension. We pose the task of determining appropriate sample points as a PDE-constrained optimization problem, which is implemented using an efficient adaptive algorithm that scales well to systems with a large number of parameters. The methodology is demonstrated using examples with parametric input spaces of dimension 11 and 21, which describe thermal analysis and design of a heat conduction fin, and compared with statistically based sampling methods. For these examples, the model-constrained adaptive sampling leads to reduced models that, for a given basis size, have error several orders of magnitude smaller than that obtained using the other methods.}, + number = {6}, + urldate = {2022-10-11}, + journal = {SIAM Journal on Scientific Computing}, + author = {Bui-Thanh, T. and Willcox, K. and Ghattas, O.}, + month = jan, + year = {2008}, + note = {Publisher: Society for Industrial and Applied Mathematics}, + keywords = {37M99, 37N40, 65K10, heat conduction, model reduction, optimization, sampling}, + pages = {3270--3288}, + file = {Bui-Thanh_et_al_2008_Model_Reduction_for_Large-Scale_Systems_with_High-Dimensional_Parametric_Input.pdf:/Users/tsmith/Drive/zotero/Bui-Thanh_et_al_2008_Model_Reduction_for_Large-Scale_Systems_with_High-Dimensional_Parametric_Input.pdf:application/pdf}, +} + +@article{najm_uncertainty_2009, + title = {Uncertainty {Quantification} and {Polynomial} {Chaos} {Techniques} in {Computational} {Fluid} {Dynamics}}, + volume = {41}, + url = {https://doi.org/10.1146/annurev.fluid.010908.165248}, + doi = {10.1146/annurev.fluid.010908.165248}, + abstract = {The quantification of uncertainty in computational fluid dynamics (CFD) predictions is both a significant challenge and an important goal. Probabilistic uncertainty quantification (UQ) methods have been used to propagate uncertainty from model inputs to outputs when input uncertainties are large and have been characterized probabilistically. Polynomial chaos (PC) methods have found increased use in probabilistic UQ over the past decade. This review describes the use of PC expansions for the representation of random variables/fields and discusses their utility for the propagation of uncertainty in computational models, focusing on CFD models. Many CFD applications are considered, including flow in porous media, incompressible and compressible flows, and thermofluid and reacting flows. The review examines each application area, focusing on the demonstrated use of PC UQ and the associated challenges. Cross-cutting challenges with time unsteadiness and long time horizons are also discussed.}, + number = {1}, + urldate = {2022-10-11}, + journal = {Annual Review of Fluid Mechanics}, + author = {Najm, Habib N.}, + year = {2009}, + note = {\_eprint: https://doi.org/10.1146/annurev.fluid.010908.165248}, + keywords = {CFD, PC, polynomial chaos, UQ}, + pages = {35--52}, +} + + +@article{huan_simulation-based_2013, + title = {Simulation-based optimal {Bayesian} experimental design for nonlinear systems}, + volume = {232}, + issn = {0021-9991}, + url = {https://www.sciencedirect.com/science/article/pii/S0021999112004597}, + doi = {10.1016/j.jcp.2012.08.013}, + abstract = {The optimal selection of experimental conditions is essential to maximizing the value of data for inference and prediction, particularly in situations where experiments are time-consuming and expensive to conduct. We propose a general mathematical framework and an algorithmic approach for optimal experimental design with nonlinear simulation-based models; in particular, we focus on finding sets of experiments that provide the most information about targeted sets of parameters. Our framework employs a Bayesian statistical setting, which provides a foundation for inference from noisy, indirect, and incomplete data, and a natural mechanism for incorporating heterogeneous sources of information. An objective function is constructed from information theoretic measures, reflecting expected information gain from proposed combinations of experiments. Polynomial chaos approximations and a two-stage Monte Carlo sampling method are used to evaluate the expected information gain. Stochastic approximation algorithms are then used to make optimization feasible in computationally intensive and high-dimensional settings. These algorithms are demonstrated on model problems and on nonlinear parameter inference problems arising in detailed combustion kinetics.}, + language = {en}, + number = {1}, + urldate = {2022-10-11}, + journal = {Journal of Computational Physics}, + author = {Huan, Xun and Marzouk, Youssef M.}, + month = jan, + year = {2013}, + keywords = {Bayesian inference, Chemical kinetics, Nonlinear experimental design, Optimal experimental design, Shannon information, Stochastic approximation, Uncertainty quantification}, + pages = {288--317}, + file = {Huan_Marzouk_2013_Simulation-based_optimal_Bayesian_experimental_design_for_nonlinear_systems.pdf:/Users/tsmith/Drive/zotero/Huan_Marzouk_2013_Simulation-based_optimal_Bayesian_experimental_design_for_nonlinear_systems.pdf:application/pdf;ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/5EWCJ8BV/S0021999112004597.html:text/html}, +} + + +@article{hasselmann_pips_1988, + title = {{PIPs} and {POPs}: {The} reduction of complex dynamical systems using principal interaction and oscillation patterns}, + volume = {93}, + issn = {2156-2202}, + shorttitle = {{PIPs} and {POPs}}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/JD093iD09p11015}, + doi = {10.1029/JD093iD09p11015}, + abstract = {A general method is described for constructing simple dynamical models to approximate complex dynamical systems with many degrees of freedom. The technique can be applied to interpret sets of observed time series or numerical simulations with high-resolution models, or to relate observation and simulations. The method is based on a projection of the complete system on to a smaller number of “principal interaction patterns” (PIPs). The coefficients of the PIP expansion are assumed to be governed by a dynamic model containing a small number of adjustable parameters. The optimization of the dynamical model, which in the general case can be both nonlinear and time-dependent, is carried out simultaneously with the construction of the optimal set of interaction patterns. In the linear case the PIPs reduce to the eigenoscilations of a first-order linear vector process with stochastic forcing (principal oscillation patterns, or POPs). POPs are linearly related to the “principal prediction patterns” used in linear forecasting applications. The POP analysis can also be applied as a diagnostic tool to compress the extensive information contained in the high-dimensional cross-spectral covariance matrix representing the complete second-moment structure of the system.}, + language = {en}, + number = {D9}, + urldate = {2022-10-11}, + journal = {Journal of Geophysical Research: Atmospheres}, + author = {Hasselmann, K.}, + year = {1988}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/JD093iD09p11015}, + pages = {11015--11021}, + file = {Hasselmann_1988_PIPs_and_POPs.pdf:/Users/tsmith/Drive/zotero/Hasselmann_1988_PIPs_and_POPs.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/LPT6T3AZ/JD093iD09p11015.html:text/html}, +} + + +@article{cressie_statistics_1993, + title={Statistics for spatial data}, + author={Cressie, N}, + year={1993}, + publisher={Wiley Location New York, NY} +} +@article{penland_random_1989, + title = {Random {Forcing} and {Forecasting} {Using} {Principal} {Oscillation} {Pattern} {Analysis}}, + volume = {117}, + issn = {1520-0493, 0027-0644}, + url = {https://journals.ametsoc.org/view/journals/mwre/117/10/1520-0493_1989_117_2165_rfafup_2_0_co_2.xml}, + doi = {10.1175/1520-0493(1989)117<2165:RFAFUP>2.0.CO;2}, + abstract = {Abstract The effects of random forcing and deterministic feedback are combined in a measured multivariate time series. It is shown here how the characteristics of the driving noise can be found after the deterministic effects have been identified by the principal oscillation pattern (POP) analysis. In addition, the POP analysis is extended to enable the prediction of the most probable meteorological pattern at some future time when the present pattern is known, and the conditional probability of finding the process at any location within a range of values given the value of the process at another location at an earlier time. Estimates of how well these predictions can be trusted are also given. The basic assumption of POP analysis is that the system can be optimally modeled by a linear Markov process.}, + language = {EN}, + number = {10}, + urldate = {2022-10-11}, + journal = {Monthly Weather Review}, + author = {Penland, Cecile}, + month = oct, + year = {1989}, + note = {Publisher: American Meteorological Society +Section: Monthly Weather Review}, + pages = {2165--2185}, + file = {Penland_1989_Random_Forcing_and_Forecasting_Using_Principal_Oscillation_Pattern_Analysis.pdf:/Users/tsmith/Drive/zotero/Penland_1989_Random_Forcing_and_Forecasting_Using_Principal_Oscillation_Pattern_Analysis.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/VCQU392N/1520-0493_1989_117_2165_rfafup_2_0_co_2.html:text/html}, +} + +@incollection{goodfellow_sequence_2016, + title = {Sequence {Modeling}: {Recurrent} and {Recursive} {Nets}}, + url = {https://www.deeplearningbook.org/}, + booktitle = {Deep {Learning}}, + publisher = {MIT Press}, + author = {Goodfellow, Ian and Yoshua, Bengio and Aaron, Courville}, + year = {2016}, + file = {Goodfellow_et_al_2016_Sequence_Modeling.pdf:/Users/tsmith/Drive/zotero/Goodfellow_et_al_2016_Sequence_Modeling.pdf:application/pdf}, +} + +@article{platt_systematic_2022, + title = {A systematic exploration of reservoir computing for forecasting complex spatiotemporal dynamics}, + volume = {153}, + copyright = {All rights reserved}, + issn = {0893-6080}, + url = {https://www.sciencedirect.com/science/article/pii/S0893608022002404}, + doi = {10.1016/j.neunet.2022.06.025}, + abstract = {A reservoir computer (RC) is a type of recurrent neural network architecture with demonstrated success in the prediction of spatiotemporally chaotic dynamical systems. A further advantage of RC is that it reproduces intrinsic dynamical quantities essential for its incorporation into numerical forecasting routines such as the ensemble Kalman filter—used in numerical weather prediction to compensate for sparse and noisy data. We explore here the architecture and design choices for a “best in class” RC for a number of characteristic dynamical systems. Our analysis points to the importance of large scale parameter optimization. We also note in particular the importance of including input bias in the RC design, which has a significant impact on the forecast skill of the trained RC model. In our tests, the use of a nonlinear readout operator does not affect the forecast time or the stability of the forecast. The effects of the reservoir dimension, spinup time, amount of training data, normalization, noise, and the RC time step are also investigated. Finally, we detail how our investigation leads to optimal design choices for a parallel RC scheme applied to the 40 dimensional spatiotemporally chaotic Lorenz 1996 dynamics.}, + language = {en}, + urldate = {2022-07-13}, + journal = {Neural Networks}, + author = {Platt, Jason A. and Penny, Stephen G. and Smith, Timothy A. and Chen, Tse-Chun and Abarbanel, Henry D. I.}, + month = sep, + year = {2022}, + keywords = {Nonlinear dynamical systems, Machine learning, Reservoir computing, Chaotic time series forecasting, Echo-state networks, Recurrent neural network}, + pages = {530--552}, + file = {Platt_et_al_2022_A_systematic_exploration_of_reservoir_computing_for_forecasting_complex.pdf:/Users/tsmith/Drive/zotero/Platt_et_al_2022_A_systematic_exploration_of_reservoir_computing_for_forecasting_complex.pdf:application/pdf;ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/R3CER5MW/S0893608022002404.html:text/html}, +} + + +@article{pathak_model-free_2018, + title = {Model-{Free} {Prediction} of {Large} {Spatiotemporally} {Chaotic} {Systems} from {Data}: {A} {Reservoir} {Computing} {Approach}}, + volume = {120}, + shorttitle = {Model-{Free} {Prediction} of {Large} {Spatiotemporally} {Chaotic} {Systems} from {Data}}, + url = {https://link.aps.org/doi/10.1103/PhysRevLett.120.024102}, + doi = {10.1103/PhysRevLett.120.024102}, + abstract = {We demonstrate the effectiveness of using machine learning for model-free prediction of spatiotemporally chaotic systems of arbitrarily large spatial extent and attractor dimension purely from observations of the system’s past evolution. We present a parallel scheme with an example implementation based on the reservoir computing paradigm and demonstrate the scalability of our scheme using the Kuramoto-Sivashinsky equation as an example of a spatiotemporally chaotic system.}, + number = {2}, + urldate = {2020-12-29}, + journal = {Physical Review Letters}, + author = {Pathak, Jaideep and Hunt, Brian and Girvan, Michelle and Lu, Zhixin and Ott, Edward}, + month = jan, + year = {2018}, + note = {Publisher: American Physical Society}, + pages = {024102}, + file = {APS Snapshot:/Users/tsmith/Zotero/storage/KXZGCJ3B/PhysRevLett.120.html:text/html;Pathak_et_al_2018_Model-Free_Prediction_of_Large_Spatiotemporally_Chaotic_Systems_from_Data.pdf:/Users/tsmith/Drive/zotero/Pathak_et_al_2018_Model-Free_Prediction_of_Large_Spatiotemporally_Chaotic_Systems_from_Data.pdf:application/pdf;Pathak_et_al_2018_Model-Free_Prediction_of_Large_Spatiotemporally_Chaotic_Systems_from_Data.pdf:/Users/tsmith/Drive/zotero/Pathak_et_al_2018_Model-Free_Prediction_of_Large_Spatiotemporally_Chaotic_Systems_from_Data2.pdf:application/pdf}, +} + +@article{lu_attractor_2018, + title = {Attractor reconstruction by machine learning}, + volume = {28}, + issn = {1054-1500}, + url = {http://aip.scitation.org/doi/10.1063/1.5039508}, + doi = {10.1063/1.5039508}, + abstract = {A machine-learning approach called “reservoir computing” has been used successfully for short-term prediction and attractor reconstruction of chaotic dynamical systems from time series data. We present a theoretical framework that describes conditions under which reservoir computing can create an empirical model capable of skillful short-term forecasts and accurate long-term ergodic behavior. We illustrate this theory through numerical experiments. We also argue that the theory applies to certain other machine learning methods for time series prediction.}, + number = {6}, + urldate = {2020-12-29}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Lu, Zhixin and Hunt, Brian R. and Ott, Edward}, + month = jun, + year = {2018}, + note = {Publisher: American Institute of Physics}, + pages = {061104}, + file = {Lu_et_al_2018_Attractor_reconstruction_by_machine_learning.pdf:/Users/tsmith/Drive/zotero/Lu_et_al_2018_Attractor_reconstruction_by_machine_learning.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/N3T3F3WN/1.html:text/html}, +} + +@article{lu_reservoir_2017, + title = {Reservoir observers: {Model}-free inference of unmeasured variables in chaotic systems}, + volume = {27}, + issn = {1054-1500}, + shorttitle = {Reservoir observers}, + url = {https://aip-scitation-org.colorado.idm.oclc.org/doi/10.1063/1.4979665}, + doi = {10.1063/1.4979665}, + abstract = {Deducing the state of a dynamical system as a function of time from a limited number of concurrent system state measurements is an important problem of great practical utility. A scheme that accomplishes this is called an “observer.” We consider the case in which a model of the system is unavailable or insufficiently accurate, but “training” time series data of the desired state variables are available for a short period of time, and a limited number of other system variables are continually measured. We propose a solution to this problem using networks of neuron-like units known as “reservoir computers.” The measurements that are continually available are input to the network, which is trained with the limited-time data to output estimates of the desired state variables. We demonstrate our method, which we call a “reservoir observer,” using the Rössler system, the Lorenz system, and the spatiotemporally chaotic Kuramoto–Sivashinsky equation. Subject to the condition of observability (i.e., whether it is in principle possible, by any means, to infer the desired unmeasured variables from the measured variables), we show that the reservoir observer can be a very effective and versatile tool for robustly reconstructing unmeasured dynamical system variables.}, + number = {4}, + urldate = {2021-05-10}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Lu, Zhixin and Pathak, Jaideep and Hunt, Brian and Girvan, Michelle and Brockett, Roger and Ott, Edward}, + month = apr, + year = {2017}, + note = {Publisher: American Institute of Physics}, + pages = {041102}, + file = {Lu_et_al_2017_Reservoir_observers.pdf:/Users/tsmith/Drive/zotero/Lu_et_al_2017_Reservoir_observers.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/EN8VSP3V/1.html:text/html}, +} + +@article{gauthier_next_2021, + title = {Next generation reservoir computing}, + volume = {12}, + copyright = {2021 The Author(s)}, + issn = {2041-1723}, + url = {https://www.nature.com/articles/s41467-021-25801-2}, + doi = {10.1038/s41467-021-25801-2}, + abstract = {Reservoir computing is a best-in-class machine learning algorithm for processing information generated by dynamical systems using observed time-series data. Importantly, it requires very small training data sets, uses linear optimization, and thus requires minimal computing resources. However, the algorithm uses randomly sampled matrices to define the underlying recurrent neural network and has a multitude of metaparameters that must be optimized. Recent results demonstrate the equivalence of reservoir computing to nonlinear vector autoregression, which requires no random matrices, fewer metaparameters, and provides interpretable results. Here, we demonstrate that nonlinear vector autoregression excels at reservoir computing benchmark tasks and requires even shorter training data sets and training time, heralding the next generation of reservoir computing.}, + language = {en}, + number = {1}, + urldate = {2021-10-21}, + journal = {Nature Communications}, + author = {Gauthier, Daniel J. and Bollt, Erik and Griffith, Aaron and Barbosa, Wendson A. S.}, + month = sep, + year = {2021}, + note = {Bandiera\_abtest: a +Cc\_license\_type: cc\_by +Cg\_type: Nature Research Journals +Number: 1 +Primary\_atype: Research +Publisher: Nature Publishing Group +Subject\_term: Computational science;Electrical and electronic engineering +Subject\_term\_id: computational-science;electrical-and-electronic-engineering}, + pages = {5564}, + file = {Gauthier_et_al_2021_Next_generation_reservoir_computing.pdf:/Users/tsmith/Drive/zotero/Gauthier_et_al_2021_Next_generation_reservoir_computing.pdf:application/pdf;Gauthier_et_al_2021_Next_generation_reservoir_computing.pdf:/Users/tsmith/Drive/zotero/Gauthier_et_al_2021_Next_generation_reservoir_computing2.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/JTK6AW8H/s41467-021-25801-2.html:text/html}, +} + +@article{bollt_explaining_2021, + title = {On explaining the surprising success of reservoir computing forecaster of chaos? {The} universal machine learning dynamical system with contrast to {VAR} and {DMD}}, + volume = {31}, + issn = {1054-1500}, + shorttitle = {On explaining the surprising success of reservoir computing forecaster of chaos?}, + url = {https://aip-scitation-org.colorado.idm.oclc.org/doi/10.1063/5.0024890}, + doi = {10.1063/5.0024890}, + abstract = {Machine learning has become a widely popular and successful paradigm, especially in data-driven science and engineering. A major application problem is data-driven forecasting of future states from a complex dynamical system. Artificial neural networks have evolved as a clear leader among many machine learning approaches, and recurrent neural networks are considered to be particularly well suited for forecasting dynamical systems. In this setting, the echo-state networks or reservoir computers (RCs) have emerged for their simplicity and computational complexity advantages. Instead of a fully trained network, an RC trains only readout weights by a simple, efficient least squares method. What is perhaps quite surprising is that nonetheless, an RC succeeds in making high quality forecasts, competitively with more intensively trained methods, even if not the leader. There remains an unanswered question as to why and how an RC works at all despite randomly selected weights. To this end, this work analyzes a further simplified RC, where the internal activation function is an identity function. Our simplification is not presented for the sake of tuning or improving an RC, but rather for the sake of analysis of what we take to be the surprise being not that it does not work better, but that such random methods work at all. We explicitly connect the RC with linear activation and linear readout to well developed time-series literature on vector autoregressive (VAR) averages that includes theorems on representability through the Wold theorem, which already performs reasonably for short-term forecasts. In the case of a linear activation and now popular quadratic readout RC, we explicitly connect to a nonlinear VAR, which performs quite well. Furthermore, we associate this paradigm to the now widely popular dynamic mode decomposition; thus, these three are in a sense different faces of the same thing. We illustrate our observations in terms of popular benchmark examples including Mackey–Glass differential delay equations and the Lorenz63 system.}, + number = {1}, + urldate = {2021-11-03}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Bollt, Erik}, + month = jan, + year = {2021}, + note = {Publisher: American Institute of Physics}, + pages = {013108}, + file = {Bollt_2021_On_explaining_the_surprising_success_of_reservoir_computing_forecaster_of_chaos.pdf:/Users/tsmith/Drive/zotero/Bollt_2021_On_explaining_the_surprising_success_of_reservoir_computing_forecaster_of_chaos.pdf:application/pdf;Bollt_2021_On_explaining_the_surprising_success_of_reservoir_computing_forecaster_of_chaos.pdf:/Users/tsmith/Drive/zotero/Bollt_2021_On_explaining_the_surprising_success_of_reservoir_computing_forecaster_of_chaos2.pdf:application/pdf}, +} + +@article{griffith_forecasting_2019, + title = {Forecasting chaotic systems with very low connectivity reservoir computers}, + volume = {29}, + issn = {1054-1500}, + url = {https://aip.scitation.org/doi/10.1063/1.5120710}, + doi = {10.1063/1.5120710}, + number = {12}, + urldate = {2021-11-29}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Griffith, Aaron and Pomerance, Andrew and Gauthier, Daniel J.}, + month = dec, + year = {2019}, + note = {Publisher: American Institute of Physics}, + pages = {123108}, + file = {Griffith_et_al_2019_Forecasting_chaotic_systems_with_very_low_connectivity_reservoir_computers.pdf:/Users/tsmith/Drive/zotero/Griffith_et_al_2019_Forecasting_chaotic_systems_with_very_low_connectivity_reservoir_computers.pdf:application/pdf}, +} + +@article{verstraeten_experimental_2007, + title = {An experimental unification of reservoir computing methods}, + volume = {20}, + issn = {08936080}, + url = {https://linkinghub.elsevier.com/retrieve/pii/S089360800700038X}, + doi = {10.1016/j.neunet.2007.04.003}, + abstract = {Three different uses of a recurrent neural network (RNN) as a reservoir that is not trained but instead read out by a simple external classification layer have been described in the literature: Liquid State Machines (LSMs), Echo State Networks (ESNs) and the Backpropagation Decorrelation (BPDC) learning rule. Individual descriptions of these techniques exist, but a overview is still lacking. Here, we present a series of experimental results that compares all three implementations, and draw conclusions about the relation between a broad range of reservoir parameters and network dynamics, memory, node complexity and performance on a variety of benchmark tests with different characteristics. Next, we introduce a new measure for the reservoir dynamics based on Lyapunov exponents. Unlike previous measures in the literature, this measure is dependent on the dynamics of the reservoir in response to the inputs, and in the cases we tried, it indicates an optimal value for the global scaling of the weight matrix, irrespective of the standard measures. We also describe the Reservoir Computing Toolbox that was used for these experiments, which implements all the types of Reservoir Computing and allows the easy simulation of a wide range of reservoir topologies for a number of benchmarks.}, + language = {en}, + number = {3}, + urldate = {2022-02-03}, + journal = {Neural Networks}, + author = {Verstraeten, D. and Schrauwen, B. and D’Haene, M. and Stroobandt, D.}, + month = apr, + year = {2007}, + pages = {391--403}, + file = {Verstraeten_et_al_2007_An_experimental_unification_of_reservoir_computing_methods.pdf:/Users/tsmith/Drive/zotero/Verstraeten_et_al_2007_An_experimental_unification_of_reservoir_computing_methods.pdf:application/pdf}, +} + +@article{yildiz_re-visiting_2012, + title = {Re-visiting the echo state property}, + volume = {35}, + issn = {0893-6080}, + url = {https://www.sciencedirect.com/science/article/pii/S0893608012001852}, + doi = {10.1016/j.neunet.2012.07.005}, + abstract = {An echo state network (ESN) consists of a large, randomly connected neural network, the reservoir, which is driven by an input signal and projects to output units. During training, only the connections from the reservoir to these output units are learned. A key requisite for output-only training is the echo state property (ESP), which means that the effect of initial conditions should vanish as time passes. In this paper, we use analytical examples to show that a widely used criterion for the ESP, the spectral radius of the weight matrix being smaller than unity, is not sufficient to satisfy the echo state property. We obtain these examples by investigating local bifurcation properties of the standard ESNs. Moreover, we provide new sufficient conditions for the echo state property of standard sigmoid and leaky integrator ESNs. We furthermore suggest an improved technical definition of the echo state property, and discuss what practicians should (and should not) observe when they optimize their reservoirs for specific tasks.}, + language = {en}, + urldate = {2022-02-03}, + journal = {Neural Networks}, + author = {Yildiz, Izzet B. and Jaeger, Herbert and Kiebel, Stefan J.}, + month = nov, + year = {2012}, + keywords = {Echo state network, Bifurcation, Diagonally Schur stable, Lyapunov, Spectral radius}, + pages = {1--9}, + file = {ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/L9JZHSC3/S0893608012001852.html:text/html;Yildiz_et_al_2012_Re-visiting_the_echo_state_property.pdf:/Users/tsmith/Drive/zotero/Yildiz_et_al_2012_Re-visiting_the_echo_state_property.pdf:application/pdf}, +} + +@article{lymburn_reservoirs_2019, + title = {The reservoir’s perspective on generalized synchronization}, + volume = {29}, + issn = {1054-1500}, + url = {https://aip-scitation-org.colorado.idm.oclc.org/doi/10.1063/1.5120733}, + doi = {10.1063/1.5120733}, + abstract = {We employ reservoir computing for a reconstruction task in coupled chaotic systems, across a range of dynamical relationships including generalized synchronization. For a drive-response setup, a temporal representation of the synchronized state is discussed as an alternative to the known instantaneous form. The reservoir has access to both representations through its fading memory property, each with advantages in different dynamical regimes. We also extract signatures of the maximal conditional Lyapunov exponent in the performance of variations of the reservoir topology. Moreover, the reservoir model reproduces different levels of consistency where there is no synchronization. In a bidirectional coupling setup, high reconstruction accuracy is achieved despite poor observability and independent of generalized synchronization.}, + number = {9}, + urldate = {2022-02-03}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Lymburn, Thomas and Walker, David M. and Small, Michael and Jüngling, Thomas}, + month = sep, + year = {2019}, + note = {Publisher: American Institute of Physics}, + pages = {093133}, + file = {Lymburn_et_al_2019_The_reservoir’s_perspective_on_generalized_synchronization.pdf:/Users/tsmith/Drive/zotero/Lymburn_et_al_2019_The_reservoir’s_perspective_on_generalized_synchronization.pdf:application/pdf}, +} + +@article{platt_robust_2021, + title = {Robust forecasting using predictive generalized synchronization in reservoir computing}, + volume = {31}, + issn = {1054-1500}, + url = {https://aip-scitation-org.colorado.idm.oclc.org/doi/10.1063/5.0066013}, + doi = {10.1063/5.0066013}, + abstract = {Reservoir computers (RCs) are a class of recurrent neural networks (RNNs) that can be used for forecasting the future of observed time series data. As with all RNNs, selecting the hyperparameters in the network to yield excellent forecasting presents a challenge when training on new inputs. We analyze a method based on predictive generalized synchronization (PGS) that gives direction in designing and evaluating the architecture and hyperparameters of an RC. To determine the occurrences of PGS, we rely on the auxiliary method to provide a computationally efficient pre-training test that guides hyperparameter selection. We provide a metric for evaluating the RC using the reproduction of the input system’s Lyapunov exponents that demonstrates robustness in prediction.}, + number = {12}, + urldate = {2022-02-17}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Platt, Jason A. and Wong, Adrian and Clark, Randall and Penny, Stephen G. and Abarbanel, Henry D. I.}, + month = dec, + year = {2021}, + note = {Publisher: American Institute of Physics}, + pages = {123118}, + file = {Platt_et_al_2021_Robust_forecasting_using_predictive_generalized_synchronization_in_reservoir.pdf:/Users/tsmith/Drive/zotero/Platt_et_al_2021_Robust_forecasting_using_predictive_generalized_synchronization_in_reservoir.pdf:application/pdf;Platt_et_al_2021_Robust_forecasting_using_predictive_generalized_synchronization_in_reservoir.pdf:/Users/tsmith/Drive/zotero/Platt_et_al_2021_Robust_forecasting_using_predictive_generalized_synchronization_in_reservoir2.pdf:application/pdf}, +} + +@article{weng_synchronization_2019, + title = {Synchronization of chaotic systems and their machine-learning models}, + volume = {99}, + url = {https://link.aps.org/doi/10.1103/PhysRevE.99.042203}, + doi = {10.1103/PhysRevE.99.042203}, + abstract = {Recent advances have demonstrated the effectiveness of a machine-learning approach known as “reservoir computing” for model-free prediction of chaotic systems. We find that a well-trained reservoir computer can synchronize with its learned chaotic systems by linking them with a common signal. A necessary condition for achieving this synchronization is the negative values of the sub-Lyapunov exponents. Remarkably, we show that by sending just a scalar signal, one can achieve synchronism in trained reservoir computers and a cascading synchronization among chaotic systems and their fitted reservoir computers. Moreover, we demonstrate that this synchronization is maintained even in the presence of a parameter mismatch. Our findings possibly provide a path for accurate production of all expected signals in unknown chaotic systems using just one observational measure.}, + number = {4}, + urldate = {2022-02-17}, + journal = {Physical Review E}, + author = {Weng, Tongfeng and Yang, Huijie and Gu, Changgui and Zhang, Jie and Small, Michael}, + month = apr, + year = {2019}, + note = {Publisher: American Physical Society}, + pages = {042203}, + file = {APS Snapshot:/Users/tsmith/Zotero/storage/T3WDWBDE/PhysRevE.99.html:text/html;Weng_et_al_2019_Synchronization_of_chaotic_systems_and_their_machine-learning_models.pdf:/Users/tsmith/Drive/zotero/Weng_et_al_2019_Synchronization_of_chaotic_systems_and_their_machine-learning_models.pdf:application/pdf}, +} + +@article{jaeger_echo_2001, + title = {The "echo state” approach to analysing and training recurrent neural networks – with an {Erratum} note}, + volume = {148}, + language = {en}, + number = {34}, + journal = {Bonn, Germany: German National Research Center for Information Technology GMD Technical Report}, + author = {Jaeger, Herbert}, + year = {2001}, + pages = {13}, + file = {Jaeger_The_“echo_state”_approach_to_analysing_and_training_recurrent_neural_networks_–.pdf:/Users/tsmith/Drive/zotero/Jaeger_The_“echo_state”_approach_to_analysing_and_training_recurrent_neural_networks_–.pdf:application/pdf}, +} + +@article{barbosa_learning_2022, + title = {Learning {Spatiotemporal} {Chaos} {Using} {Next}-{Generation} {Reservoir} {Computing}}, + url = {http://arxiv.org/abs/2203.13294}, + abstract = {Forecasting the behavior of high-dimensional dynamical systems using machine learning (ML) requires efficient methods to learn the underlying physical model. We demonstrate spatiotemporal chaos prediction of a heuristic atmospheric weather model using an ML architecture that, when combined with a next-generation reservoir computer, displays state-of-the-art performance with a training time \$10{\textasciicircum}3-10{\textasciicircum}4\$ times faster and training data set \${\textbackslash}sim 10{\textasciicircum}2\$ times smaller than other ML algorithms. We also take advantage of the translational symmetry of the model to further reduce the computational cost and training data, each by a factor of \${\textbackslash}sim\$10.}, + urldate = {2022-04-04}, + journal = {arXiv:2203.13294 [nlin]}, + author = {Barbosa, Wendson A. S. and Gauthier, Daniel J.}, + month = mar, + year = {2022}, + note = {arXiv: 2203.13294}, + keywords = {Computer Science - Machine Learning, Nonlinear Sciences - Chaotic Dynamics, Computer Science - Neural and Evolutionary Computing}, + annote = {Comment: 5 pages, 4 figures}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/C4LAP874/2203.html:text/html;Barbosa_Gauthier_2022_Learning_Spatiotemporal_Chaos_Using_Next-Generation_Reservoir_Computing.pdf:/Users/tsmith/Drive/zotero/Barbosa_Gauthier_2022_Learning_Spatiotemporal_Chaos_Using_Next-Generation_Reservoir_Computing.pdf:application/pdf}, +} + + +@article{vlachas_backpropagation_2020, + title = {Backpropagation algorithms and {Reservoir} {Computing} in {Recurrent} {Neural} {Networks} for the forecasting of complex spatiotemporal dynamics}, + volume = {126}, + issn = {0893-6080}, + url = {https://www.sciencedirect.com/science/article/pii/S0893608020300708}, + doi = {10.1016/j.neunet.2020.02.016}, + abstract = {We examine the efficiency of Recurrent Neural Networks in forecasting the spatiotemporal dynamics of high dimensional and reduced order complex systems using Reservoir Computing (RC) and Backpropagation through time (BPTT) for gated network architectures. We highlight advantages and limitations of each method and discuss their implementation for parallel computing architectures. We quantify the relative prediction accuracy of these algorithms for the long-term forecasting of chaotic systems using as benchmarks the Lorenz-96 and the Kuramoto–Sivashinsky (KS) equations. We find that, when the full state dynamics are available for training, RC outperforms BPTT approaches in terms of predictive performance and in capturing of the long-term statistics, while at the same time requiring much less training time. However, in the case of reduced order data, large scale RC models can be unstable and more likely than the BPTT algorithms to diverge. In contrast, RNNs trained via BPTT show superior forecasting abilities and capture well the dynamics of reduced order systems. Furthermore, the present study quantifies for the first time the Lyapunov Spectrum of the KS equation with BPTT, achieving similar accuracy as RC. This study establishes that RNNs are a potent computational framework for the learning and forecasting of complex spatiotemporal systems.}, + language = {en}, + urldate = {2021-04-30}, + journal = {Neural Networks}, + author = {Vlachas, P. R. and Pathak, J. and Hunt, B. R. and Sapsis, T. P. and Girvan, M. and Ott, E. and Koumoutsakos, P.}, + month = jun, + year = {2020}, + keywords = {Reservoir Computing, Complex systems, Kuramoto–Sivashinsky, Lorenz-96, RNN, LSTM, GRU, Time series forecasting}, + pages = {191--217}, + file = {ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/CJTELVEP/S0893608020300708.html:text/html;Vlachas_et_al_2020_Backpropagation_algorithms_and_Reservoir_Computing_in_Recurrent_Neural_Networks.pdf:/Users/tsmith/Drive/zotero/Vlachas_et_al_2020_Backpropagation_algorithms_and_Reservoir_Computing_in_Recurrent_Neural_Networks.pdf:application/pdf}, +} + + +@article{penny_integrating_2022, + title = {Integrating {Recurrent} {Neural} {Networks} {With} {Data} {Assimilation} for {Scalable} {Data}-{Driven} {State} {Estimation}}, + volume = {14}, + issn = {1942-2466}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1029/2021MS002843}, + doi = {10.1029/2021MS002843}, + abstract = {Data assimilation (DA) is integrated with machine learning in order to perform entirely data-driven online state estimation. To achieve this, recurrent neural networks (RNNs) are implemented as pretrained surrogate models to replace key components of the DA cycle in numerical weather prediction (NWP), including the conventional numerical forecast model, the forecast error covariance matrix, and the tangent linear and adjoint models. It is shown how these RNNs can be initialized using DA methods to directly update the hidden/reservoir state with observations of the target system. The results indicate that these techniques can be applied to estimate the state of a system for the repeated initialization of short-term forecasts, even in the absence of a traditional numerical forecast model. Further, it is demonstrated how these integrated RNN-DA methods can scale to higher dimensions by applying domain localization and parallelization, providing a path for practical applications in NWP.}, + language = {en}, + number = {3}, + urldate = {2022-03-04}, + journal = {Journal of Advances in Modeling Earth Systems}, + author = {Penny, S. G. and Smith, T. A. and Chen, T.-C. and Platt, J. A. and Lin, H.-Y. and Goodliff, M. and Abarbanel, H. D. I.}, + year = {2022}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1029/2021MS002843}, + keywords = {machine learning, data assimilation, artificial intelligence, recurrent neural networks, 4D-var, ensemble kalman filter}, + pages = {e2021MS002843}, + annote = {e2021MS002843 2021MS002843}, + file = {Penny_et_al_2022_Integrating_Recurrent_Neural_Networks_With_Data_Assimilation_for_Scalable.pdf:/Users/tsmith/Drive/zotero/Penny_et_al_2022_Integrating_Recurrent_Neural_Networks_With_Data_Assimilation_for_Scalable.pdf:application/pdf;Penny_et_al_2022_Integrating_Recurrent_Neural_Networks_With_Data_Assimilation_for_Scalable.pdf:/Users/tsmith/Drive/zotero/Penny_et_al_2022_Integrating_Recurrent_Neural_Networks_With_Data_Assimilation_for_Scalable.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/E5CGG58J/2021MS002843.html:text/html}, +} + +@ARTICLE{scipy_2020, + author = {Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E. and + Haberland, Matt and Reddy, Tyler and Cournapeau, David and + Burovski, Evgeni and Peterson, Pearu and Weckesser, Warren and + Bright, Jonathan and {van der Walt}, St{\'e}fan J. and + Brett, Matthew and Wilson, Joshua and Millman, K. Jarrod and + Mayorov, Nikolay and Nelson, Andrew R. J. and Jones, Eric and + Kern, Robert and Larson, Eric and Carey, C J and + Polat, {\.I}lhan and Feng, Yu and Moore, Eric W. and + {VanderPlas}, Jake and Laxalde, Denis and Perktold, Josef and + Cimrman, Robert and Henriksen, Ian and Quintero, E. A. and + Harris, Charles R. and Archibald, Anne M. and + Ribeiro, Ant{\^o}nio H. and Pedregosa, Fabian and + {van Mulbregt}, Paul and {SciPy 1.0 Contributors}}, + title = {{{SciPy} 1.0: Fundamental Algorithms for Scientific + Computing in Python}}, + journal = {Nature Methods}, + year = {2020}, + volume = {17}, + pages = {261--272}, + adsurl = {https://rdcu.be/b08Wh}, + doi = {10.1038/s41592-019-0686-2}, +} + +@article{tikhonov_solution_1963, + author = {Tikhonov, A. N.}, + journal = {Soviet Math. Dokl}, + keywords = {imported}, + title = {Solution of Incorrectly Formulated Problems + and the Regularization Method}, + year = 1963 +} + + +@article{pathak_using_2017, + title = {Using machine learning to replicate chaotic attractors and calculate {Lyapunov} exponents from data}, + volume = {27}, + issn = {1054-1500}, + url = {https://aip.scitation.org/doi/10.1063/1.5010300}, + doi = {10.1063/1.5010300}, + number = {12}, + urldate = {2022-10-21}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Pathak, Jaideep and Lu, Zhixin and Hunt, Brian R. and Girvan, Michelle and Ott, Edward}, + month = dec, + year = {2017}, + note = {Publisher: American Institute of Physics}, + pages = {121102}, + file = {Pathak_et_al_2017_Using_machine_learning_to_replicate_chaotic_attractors_and_calculate_Lyapunov.pdf:/Users/tsmith/Drive/zotero/Pathak_et_al_2017_Using_machine_learning_to_replicate_chaotic_attractors_and_calculate_Lyapunov.pdf:application/pdf}, +} + +@article{maass_real-time_2002, + title = {Real-{Time} {Computing} {Without} {Stable} {States}: {A} {New} {Framework} for {Neural} {Computation} {Based} on {Perturbations}}, + volume = {14}, + issn = {0899-7667, 1530-888X}, + shorttitle = {Real-{Time} {Computing} {Without} {Stable} {States}}, + url = {https://direct.mit.edu/neco/article/14/11/2531-2560/6650}, + doi = {10.1162/089976602760407955}, + abstract = {A key challenge for neural modeling is to explain how a continuous stream of multimodal input from a rapidly changing environment can be processed by stereotypical recurrent circuits of integrate-and-fire neurons in real time. We propose a new computational model for real-time computing on time-varying input that provides an alternative to paradigms based on Turing machines or attractor neural networks. It does not require a task-dependent construction of neural circuits. Instead, it is based on principles of high-dimensional dynamical systems in combination with statistical learning theory and can be implemented on generic evolved or found recurrent circuitry. It is shown that the inherent transient dynamics of the high-dimensional dynamical system formed by a sufficiently large and heterogeneous neural circuit may serve as universal analog fading memory. Readout neurons can learn to extract in real time from the current state of such recurrent neural circuit information about current and past inputs that may be needed for diverse tasks. Stable internal states are not required for giving a stable output, since transient internal states can be transformed by readout neurons into stable target outputs due to the high dimensionality of the dynamical system. Our approach is based on a rigorous computational model, the liquid state machine, that, unlike Turing machines, does not require sequential transitions between well-defined discrete internal states. It is supported, as the Turing machine is, by rigorous mathematical results that predict universal computational power under idealized conditions, but for the biologically more realistic scenario of real-time processing of time-varying inputs. Our approach provides new perspectives for the interpretation of neural coding, the design of experiments and data analysis in neurophysiology, and the solution of problems in robotics and neurotechnology.}, + language = {en}, + number = {11}, + urldate = {2022-12-05}, + journal = {Neural Computation}, + author = {Maass, Wolfgang and Natschläger, Thomas and Markram, Henry}, + month = nov, + year = {2002}, + pages = {2531--2560}, + file = {Maass_et_al_2002_Real-Time_Computing_Without_Stable_States.pdf:/Users/tsmith/Drive/zotero/Maass_et_al_2002_Real-Time_Computing_Without_Stable_States2.pdf:application/pdf}, +} + +@inproceedings{steil_backpropagation-decorrelation_2004, + title = {Backpropagation-decorrelation: online recurrent learning with {O}({N}) complexity}, + volume = {2}, + shorttitle = {Backpropagation-decorrelation}, + doi = {10.1109/IJCNN.2004.1380039}, + abstract = {We introduce a new learning rule for fully recurrent neural networks which we call backpropagation-decorrelation rule (BPDC). It combines important principles: one-step backpropagation of errors and the usage of temporal memory in the network dynamics by means of decorrelation of activations. The BPDC rule is derived and theoretically justified from regarding learning as a constraint optimization problem and applies uniformly in discrete and continuous time. It is very easy to implement, and has a minimal complexity of 2N multiplications per time-step in the single output case. Nevertheless we obtain fast tracking and excellent performance in some benchmark problems including the Mackey-Glass time-series.}, + booktitle = {2004 {IEEE} {International} {Joint} {Conference} on {Neural} {Networks} ({IEEE} {Cat}. {No}.{04CH37541})}, + author = {Steil, J.J.}, + month = jul, + year = {2004}, + note = {ISSN: 1098-7576}, + keywords = {Adaptive control, Backpropagation algorithms, Biological system modeling, Constraint optimization, Decorrelation, Information processing, Neurons, Recurrent neural networks, Reservoirs, Speech recognition}, + pages = {843--848 vol.2}, + file = {IEEE Xplore Abstract Record:/Users/tsmith/Zotero/storage/J7N6BS4T/1380039.html:text/html;Steil_2004_Backpropagation-decorrelation.pdf:/Users/tsmith/Drive/zotero/Steil_2004_Backpropagation-decorrelation.pdf:application/pdf}, +} + + +@misc{chen_next_2022, + title = {`{Next} {Generation}' {Reservoir} {Computing}: an {Empirical} {Data}-{Driven} {Expression} of {Dynamical} {Equations} in {Time}-{Stepping} {Form}}, + copyright = {All rights reserved}, + shorttitle = {`{Next} {Generation}' {Reservoir} {Computing}}, + url = {http://arxiv.org/abs/2201.05193}, + doi = {10.48550/arXiv.2201.05193}, + abstract = {Next generation reservoir computing based on nonlinear vector autoregression (NVAR) is applied to emulate simple dynamical system models and compared to numerical integration schemes such as Euler and the \$2{\textasciicircum}{\textbackslash}text\{nd\}\$ order Runge-Kutta. It is shown that the NVAR emulator can be interpreted as a data-driven method used to recover the numerical integration scheme that produced the data. It is also shown that the approach can be extended to produce high-order numerical schemes directly from data. The impacts of the presence of noise and temporal sparsity in the training set is further examined to gauge the potential use of this method for more realistic applications.}, + urldate = {2022-12-05}, + publisher = {arXiv}, + author = {Chen, Tse-Chun and Penny, Stephen G. and Smith, Timothy A. and Platt, Jason A.}, + month = jan, + year = {2022}, + note = {arXiv:2201.05193 [cs, math]}, + keywords = {Computer Science - Machine Learning, Mathematics - Dynamical Systems, Mathematics - Numerical Analysis}, + annote = {Comment: 12 pages, 6 figures}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/IWYMQZRF/2201.html:text/html;Chen_et_al_2022_`Next_Generation'_Reservoir_Computing.pdf:/Users/tsmith/Drive/zotero/Chen_et_al_2022_`Next_Generation'_Reservoir_Computing.pdf:application/pdf}, +} + + +@misc{zhang_catch-22_2022, + title = {A {Catch}-22 of {Reservoir} {Computing}}, + url = {http://arxiv.org/abs/2210.10211}, + abstract = {Reservoir Computing (RC) is a simple and efficient model-free framework for data-driven predictions of nonlinear dynamical systems. Recently, Next Generation Reservoir Computing (NGRC) has emerged as an especially attractive variant of RC. By shifting the nonlinearity from the reservoir to the readout layer, NGRC requires less data and has fewer hyperparameters to optimize, making it suitable for challenging tasks such as predicting basins of attraction. Here, using paradigmatic multistable systems including magnetic pendulums and coupled Kuramoto oscillators, we show that the performance of NGRC models can be extremely sensitive to the choice of readout nonlinearity. In particular, by incorporating the exact nonlinearity from the original equations, NGRC trained on a single trajectory can predict pseudo-fractal basins with almost perfect accuracy. However, even a small uncertainty on the exact nonlinearity can completely break NGRC, rendering the prediction accuracy no better than chance. This creates a catch-22 for NGRC since it may not be able to make useful predictions unless a key part of the system being predicted (i.e., its nonlinearity) is already known. Our results highlight the challenges faced by data-driven methods in learning complex dynamical systems.}, + urldate = {2022-10-24}, + publisher = {arXiv}, + author = {Zhang, Yuanzhao and Cornelius, Sean P.}, + month = oct, + year = {2022}, + note = {arXiv:2210.10211 [nlin]}, + keywords = {Computer Science - Machine Learning, Nonlinear Sciences - Chaotic Dynamics, Computer Science - Neural and Evolutionary Computing, Nonlinear Sciences - Adaptation and Self-Organizing Systems}, + annote = {Comment: Comments welcome. Our code can be found at https://github.com/spcornelius/NextGenRCBasins}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/ZXYGI25E/2210.html:text/html;Zhang_Cornelius_2022_A_Catch-22_of_Reservoir_Computing.pdf:/Users/tsmith/Drive/zotero/Zhang_Cornelius_2022_A_Catch-22_of_Reservoir_Computing.pdf:application/pdf}, +} + + +@article{tulloch_note_2009, + title = {A {Note} on the {Numerical} {Representation} of {Surface} {Dynamics} in {Quasigeostrophic} {Turbulence}: {Application} to the {Nonlinear} {Eady} {Model}}, + volume = {66}, + issn = {0022-4928, 1520-0469}, + shorttitle = {A {Note} on the {Numerical} {Representation} of {Surface} {Dynamics} in {Quasigeostrophic} {Turbulence}}, + url = {https://journals.ametsoc.org/view/journals/atsc/66/4/2008jas2921.1.xml}, + doi = {10.1175/2008JAS2921.1}, + abstract = {Abstract The quasigeostrophic equations consist of the advection of linearized potential vorticity coupled with advection of temperature at the bounding upper and lower surfaces. Numerical models of quasigeostrophic flow often employ greater (scaled) resolution in the horizontal than in the vertical (the two-layer model is an extreme example). In the interior, this has the effect of suppressing interactions between layers at horizontal scales that are small compared to Nδz/f (where δz is the vertical resolution, N the buoyancy frequency, and f the Coriolis parameter). The nature of the turbulent cascade in the interior is, however, not fundamentally altered because the downscale cascade of potential enstrophy in quasigeostrophic turbulence and the downscale cascade of enstrophy in two-dimensional turbulence (occurring layerwise) both yield energy spectra with slopes of −3. It is shown here that a similar restriction on the vertical resolution applies to the representation of horizontal motions at the surfaces, but the penalty for underresolving in the vertical is complete suppression of the surface temperature cascade at small scales and a corresponding artificial steepening of the surface energy spectrum. This effect is demonstrated in the nonlinear Eady model, using a finite-difference representation in comparison with a model that explicitly advects temperature at the upper and lower surfaces. Theoretical predictions for the spectrum of turbulence in the nonlinear Eady model are reviewed and compared to the simulated flows, showing that the latter model yields an accurate representation of the cascade dynamics. To accurately represent dynamics at horizontal wavenumber K in the vertically finite-differenced model, it is found that the vertical grid spacing must satisfy δz ≲ 0.3f/(NK); at wavenumbers K {\textgreater} 0.3f/(Nδz), the spectrum of temperature variance rolls off rapidly.}, + language = {EN}, + number = {4}, + urldate = {2021-11-24}, + journal = {Journal of the Atmospheric Sciences}, + author = {Tulloch, Ross and Smith, K. Shafer}, + month = apr, + year = {2009}, + note = {Publisher: American Meteorological Society +Section: Journal of the Atmospheric Sciences}, + pages = {1063--1068}, + file = {Snapshot:/Users/tsmith/Zotero/storage/SXQCCMGM/2008jas2921.1.html:text/html;Tulloch_Smith_2009_A_Note_on_the_Numerical_Representation_of_Surface_Dynamics_in_Quasigeostrophic.pdf:/Users/tsmith/Drive/zotero/Tulloch_Smith_2009_A_Note_on_the_Numerical_Representation_of_Surface_Dynamics_in_Quasigeostrophic.pdf:application/pdf}, +} + +@article{blumen_uniform_1978, + title = {{\noopsort{A}{Uniform}} {Potential} {Vorticity} {Flow}: {Part} {I}. {Theory} of {Wave} {Interactions} and {Two}-{Dimensional} {Turbulence}}, + volume = {35}, + issn = {0022-4928, 1520-0469}, + shorttitle = {Uniform {Potential} {Vorticity} {Flow}}, + url = {https://journals.ametsoc.org/view/journals/atsc/35/5/1520-0469_1978_035_0774_upvfpi_2_0_co_2.xml}, + doi = {10.1175/1520-0469(1978)035<0774:UPVFPI>2.0.CO;2}, + abstract = {Abstract Uniform potential vorticity flows are examined. In the quasi-geostrophic system, conservation of total energy and conservation of available potential energy on plane rigid horizontal boundaries imply a restriction on energy exchanges as a result of scale interactions. It is shown that for the Eady problem instability is always associated with energy transfer both up and down the vertical wavenumber spectrum although energy transfer from small to large three-dimensional wavenumbers may occur over a finite range of the spectrum. An inertial theory of two-dimensional turbulence is also presented. The formal analysis, based on Leith's diffusion approximation, predicts two inertial subranges: −5/3 and −1 power dependences on the horizontal wavenumber for available potential energy on horizontal boundaries. In the former range, available potential energy on horizontal boundaries cascades at a constant rate toward higher wavenumbers; in the latter range, the depth-integrated total energy cascades at a constant rate toward lower wavenumbers. Analysis of the semi-geostrophic equations, in the form presented by Hoskins, shows that a formal analogy exists between energy exchanges in this system and energy exchanges in the quasi-geostrophic system. The transformation back to physical space reveals that the mean strain rate, due to vertical wind shear, affects the complete spectrum of interacting waves. This latter result brings the concept of a local inertial energy transfer theory of turbulence for synoptic- and subsynoptic-scale motions into question, although it is concluded that further analysis and observational evidence would be required to resolve the problem.}, + language = {EN}, + number = {5}, + urldate = {2021-11-24}, + journal = {Journal of the Atmospheric Sciences}, + author = {Blumen, William}, + month = may, + year = {1978}, + note = {Publisher: American Meteorological Society +Section: Journal of the Atmospheric Sciences}, + pages = {774--783}, + file = {Blumen_1978_Uniform_Potential_Vorticity_Flow.pdf:/Users/tsmith/Drive/zotero/Blumen_1978_Uniform_Potential_Vorticity_Flow.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/3U9NJW34/1520-0469_1978_035_0774_upvfpi_2_0_co_2.html:text/html}, +} + +@article{blumen_uniform_1978-1, + title = {{\noopsort{B}{Uniform}} {Potential} {Vorticity} {Flow}: {Part} {II}. {A} {Model} of {Wave} {Interacions}}, + volume = {35}, + issn = {0022-4928, 1520-0469}, + shorttitle = {Uniform {Potential} {Vorticity} {Flow}}, + url = {https://journals.ametsoc.org/view/journals/atsc/35/5/1520-0469_1978_035_0784_upvfpi_2_0_co_2.xml}, + doi = {10.1175/1520-0469(1978)035<0784:UPVFPI>2.0.CO;2}, + abstract = {Abstract Interactions between waves that satisfy uniform potential vorticity are considered. The formal analysis is restricted to a triad of eigenfunctions and the reduced system is constrained to satisfy conservation of total energy and conservation of available potential energy on plane rigid horizontal boundaries. A linear stability analysis is used to establish the properties of unstable waves in two cases: basic flows with anti-symmetry, and basic flows with symmetry in the vertical direction. A necessary condition for instability is that the vertical wavenumber of the basic flow must fall between the vertical wavenumbers associated with the perturbation waves. The properties of unstable waves in both cases are compared and analogies with the stability properties of the two-layer model are pointed out.}, + language = {EN}, + number = {5}, + urldate = {2022-12-08}, + journal = {Journal of the Atmospheric Sciences}, + author = {Blumen, William}, + month = may, + year = {1978}, + note = {Publisher: American Meteorological Society +Section: Journal of the Atmospheric Sciences}, + pages = {784--789}, + file = {Blumen_1978_Uniform_Potential_Vorticity_Flow.pdf:/Users/tsmith/Drive/zotero/Blumen_1978_Uniform_Potential_Vorticity_Flow3.pdf:application/pdf}, +} + + +@article{eady_long_1949, + title = {Long {Waves} and {Cyclone} {Waves}}, + volume = {1}, + issn = {2153-3490}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/j.2153-3490.1949.tb01265.x}, + doi = {10.1111/j.2153-3490.1949.tb01265.x}, + abstract = {By obtaining complete solutions, satisfying all the relevant simultaneous differential equations and boundary conditions, representing small disturbances of simple states of steady baroclinic large-scale atmospheric motion it is shown that these simple states of motion are almost invariably unstable. An arbitrary disturbance (corresponding to some inhomogeneity of an actual system) may be regarded as analysed into “components” of a certain simple type, some of which grow exponentially with time. In all the cases examined there exists one particular component which grows faster than any other. It is shown how, by a process analogous to “natural selection”, this component becomes dominant in that almost any disturbance tends eventually to a definite size, structure and growth-rate (and to a characteristic life-history after the disturbance has ceased to be “small”), which depends only on the broad characteristics of the initial (unperturbed) system. The characteristic disturbances (forms of breakdown) of certain types of initial system (approximating to those observed in practice) are identified as the ideal forms of the observed cyclonc waves and long waves of middle and high latitudes. The implications regarding the ultimate limitations of weather forecasting are discussed.}, + language = {en}, + number = {3}, + urldate = {2023-01-04}, + journal = {Tellus}, + author = {Eady, E. T.}, + year = {1949}, + note = {\_eprint: https://onlinelibrary.wiley.com/doi/pdf/10.1111/j.2153-3490.1949.tb01265.x}, + pages = {33--52}, + file = {Eady_1949_Long_Waves_and_Cyclone_Waves.pdf:/Users/tsmith/Drive/zotero/Eady_1949_Long_Waves_and_Cyclone_Waves.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/R9XVLEAR/j.2153-3490.1949.tb01265.html:text/html}, +} + + +@inproceedings{lorenz_predictability_1996, + title = {Predictability - a problem partly solved}, + booktitle = {Proceedings of a {Seminar} {Held} at {ECMWF} on {Predictability}}, + author = {Lorenz, Edward}, + year = {1996}, + file = {Lorenz_1996_Predictability_-_a_problem_partly_solved.pdf:/Users/tsmith/Drive/zotero/Lorenz_1996_Predictability_-_a_problem_partly_solved.pdf:application/pdf}, +} + + +@article{jones_efficient_1998, + title = {Efficient {Global} {Optimization} of {Expensive} {Black}-{Box} {Functions}}, + volume = {13}, + issn = {1573-2916}, + url = {https://doi.org/10.1023/A:1008306431147}, + doi = {10.1023/A:1008306431147}, + abstract = {In many engineering optimization problems, the number of function evaluations is severely limited by time or cost. These problems pose a special challenge to the field of global optimization, since existing methods often require more function evaluations than can be comfortably afforded. One way to address this challenge is to fit response surfaces to data collected by evaluating the objective and constraint functions at a few points. These surfaces can then be used for visualization, tradeoff analysis, and optimization. In this paper, we introduce the reader to a response surface methodology that is especially good at modeling the nonlinear, multimodal functions that often occur in engineering. We then show how these approximating functions can be used to construct an efficient global optimization algorithm with a credible stopping rule. The key to using response surfaces for global optimization lies in balancing the need to exploit the approximating surface (by sampling where it is minimized) with the need to improve the approximation (by sampling where prediction error may be high). Striking this balance requires solving certain auxiliary problems which have previously been considered intractable, but we show how these computational obstacles can be overcome.}, + language = {en}, + number = {4}, + urldate = {2023-02-11}, + journal = {Journal of Global Optimization}, + author = {Jones, Donald R. and Schonlau, Matthias and Welch, William J.}, + month = dec, + year = {1998}, + pages = {455--492}, + file = {Jones_et_al_1998_Efficient_Global_Optimization_of_Expensive_Black-Box_Functions.pdf:/Users/tsmith/Drive/zotero/Jones_et_al_1998_Efficient_Global_Optimization_of_Expensive_Black-Box_Functions.pdf:application/pdf}, +} + + +@article{bouhlel_python_2019, + title = {A {Python} surrogate modeling framework with derivatives}, + volume = {135}, + issn = {0965-9978}, + url = {https://www.sciencedirect.com/science/article/pii/S0965997818309360}, + doi = {10.1016/j.advengsoft.2019.03.005}, + abstract = {The surrogate modeling toolbox (SMT) is an open-source Python package that contains a collection of surrogate modeling methods, sampling techniques, and benchmarking functions. This package provides a library of surrogate models that is simple to use and facilitates the implementation of additional methods. SMT is different from existing surrogate modeling libraries because of its emphasis on derivatives, including training derivatives used for gradient-enhanced modeling, prediction derivatives, and derivatives with respect to training data. It also includes unique surrogate models: kriging by partial least-squares reduction, which scales well with the number of inputs; and energy-minimizing spline interpolation, which scales well with the number of training points. The efficiency and effectiveness of SMT are demonstrated through a series of examples. SMT is documented using custom tools for embedding automatically tested code and dynamically generated plots to produce high-quality user guides with minimal effort from contributors. SMT is maintained in a public version control repository.11https://github.com/SMTorg/SMT.}, + language = {en}, + urldate = {2023-02-11}, + journal = {Advances in Engineering Software}, + author = {Bouhlel, Mohamed Amine and Hwang, John T. and Bartoli, Nathalie and Lafage, Rémi and Morlier, Joseph and Martins, Joaquim R. R. A.}, + month = sep, + year = {2019}, + keywords = {Derivatives, Gradient-enhanced surrogate modeling, Surrogate modeling}, + pages = {102662}, + file = {Bouhlel_et_al_2019_A_Python_surrogate_modeling_framework_with_derivatives.pdf:/Users/tsmith/Drive/zotero/Bouhlel_et_al_2019_A_Python_surrogate_modeling_framework_with_derivatives.pdf:application/pdf;ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/5VHBKPYG/S0965997818309360.html:text/html}, +} + + +@inproceedings{mockus_bayesian_1975, + address = {Berlin, Heidelberg}, + series = {Lecture {Notes} in {Computer} {Science}}, + title = {On bayesian methods for seeking the extremum}, + isbn = {978-3-540-37497-8}, + doi = {10.1007/3-540-07165-2_55}, + language = {en}, + booktitle = {Optimization {Techniques} {IFIP} {Technical} {Conference} {Novosibirsk}, {July} 1–7, 1974}, + publisher = {Springer}, + author = {Močkus, J.}, + editor = {Marchuk, G. I.}, + year = {1975}, + pages = {400--404}, + file = {Močkus_1975_On_bayesian_methods_for_seeking_the_extremum.pdf:/Users/tsmith/Drive/zotero/Močkus_1975_On_bayesian_methods_for_seeking_the_extremum.pdf:application/pdf}, +} + + +@incollection{lukosevicius_practical_2012, + address = {Berlin, Heidelberg}, + series = {Lecture {Notes} in {Computer} {Science}}, + title = {A {Practical} {Guide} to {Applying} {Echo} {State} {Networks}}, + isbn = {978-3-642-35289-8}, + url = {https://doi.org/10.1007/978-3-642-35289-8_36}, + abstract = {Reservoir computing has emerged in the last decade as an alternative to gradient descent methods for training recurrent neural networks. Echo State Network (ESN) is one of the key reservoir computing “flavors”. While being practical, conceptually simple, and easy to implement, ESNs require some experience and insight to achieve the hailed good performance in many tasks. Here we present practical techniques and recommendations for successfully applying ESNs, as well as some more advanced application-specific modifications.}, + language = {en}, + urldate = {2021-01-04}, + booktitle = {Neural {Networks}: {Tricks} of the {Trade}: {Second} {Edition}}, + publisher = {Springer}, + author = {Lukoševičius, Mantas}, + editor = {Montavon, Grégoire and Orr, Geneviève B. and Müller, Klaus-Robert}, + year = {2012}, + doi = {10.1007/978-3-642-35289-8_36}, + keywords = {Little Mean Square, Output Feedback, Recurrent Neural Network, Ridge Regression, Spectral Radius}, + pages = {659--686}, + file = {Lukoševičius_2012_A_Practical_Guide_to_Applying_Echo_State_Networks.pdf:/Users/tsmith/Drive/zotero/Lukoševičius_2012_A_Practical_Guide_to_Applying_Echo_State_Networks.pdf:application/pdf}, +} + + +@inproceedings{hermans_memory_2010, + address = {Barcelona, Spain}, + title = {Memory in reservoirs for high dimensional input}, + isbn = {978-1-4244-6916-1}, + url = {http://ieeexplore.ieee.org/document/5596884/}, + doi = {10.1109/IJCNN.2010.5596884}, + abstract = {Reservoir Computing (RC) is a recently introduced scheme to employ recurrent neural networks while circumventing the difficulties that typically appear when training the recurrent weights. The ‘reservoir’ is a fixed randomly initiated recurrent network which receives input via a random mapping. Only an instantaneous linear mapping from the network to the output is trained which can be done with linear regression. In this paper we study dynamical properties of reservoirs receiving a high number of inputs. More specifically, we investigate how the internal state of the network retains fading memory of its input signal. Memory properties for random recurrent networks have been thoroughly examined in past research, but only for one-dimensional input. Here we take into account statistics which will typically occur in high dimensional signals. We find useful empirical data which expresses how memory in recurrent networks is distributed over the individual principal components of the input.}, + language = {en}, + urldate = {2022-03-18}, + booktitle = {The 2010 {International} {Joint} {Conference} on {Neural} {Networks} ({IJCNN})}, + publisher = {IEEE}, + author = {Hermans, Michiel and Schrauwen, Benjamin}, + month = jul, + year = {2010}, + pages = {1--7}, + file = {Hermans_Schrauwen_2010_Memory_in_reservoirs_for_high_dimensional_input.pdf:/Users/tsmith/Drive/zotero/Hermans_Schrauwen_2010_Memory_in_reservoirs_for_high_dimensional_input2.pdf:application/pdf}, +} + +@Manual{dask_2016, + title = {Dask: Library for dynamic task scheduling}, + author = {{Dask Development Team}}, + year = {2016}, + url = {https://dask.org}, +} + + +@misc{xu_overview_2022, + title = {Overview frequency principle/spectral bias in deep learning}, + url = {http://arxiv.org/abs/2201.07395}, + abstract = {Understanding deep learning is increasingly emergent as it penetrates more and more into industry and science. In recent years, a research line from Fourier analysis sheds lights into this magical "black box" by showing a Frequency Principle (F-Principle or spectral bias) of the training behavior of deep neural networks (DNNs) -- DNNs often fit functions from low to high frequency during the training. The F-Principle is first demonstrated by one-dimensional synthetic data followed by the verification in high-dimensional real datasets. A series of works subsequently enhance the validity of the F-Principle. This low-frequency implicit bias reveals the strength of neural network in learning low-frequency functions as well as its deficiency in learning high-frequency functions. Such understanding inspires the design of DNN-based algorithms in practical problems, explains experimental phenomena emerging in various scenarios, and further advances the study of deep learning from the frequency perspective. Although incomplete, we provide an overview of F-Principle and propose some open problems for future research.}, + urldate = {2022-08-19}, + publisher = {arXiv}, + author = {Xu, Zhi-Qin John and Zhang, Yaoyu and Luo, Tao}, + month = jan, + year = {2022}, + note = {arXiv:2201.07395 [cs]}, + keywords = {Computer Science - Machine Learning}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/WNZRG9Z5/2201.html:text/html;Xu_et_al_2022_Overview_frequency_principle-spectral_bias_in_deep_learning.pdf:/Users/tsmith/Drive/zotero/Xu_et_al_2022_Overview_frequency_principle-spectral_bias_in_deep_learning.pdf:application/pdf}, +} + + +@misc{lam_graphcast_2022, + title = {{GraphCast}: {Learning} skillful medium-range global weather forecasting}, + shorttitle = {{GraphCast}}, + url = {http://arxiv.org/abs/2212.12794}, + doi = {10.48550/arXiv.2212.12794}, + abstract = {We introduce a machine-learning (ML)-based weather simulator--called "GraphCast"--which outperforms the most accurate deterministic operational medium-range weather forecasting system in the world, as well as all previous ML baselines. GraphCast is an autoregressive model, based on graph neural networks and a novel high-resolution multi-scale mesh representation, which we trained on historical weather data from the European Centre for Medium-Range Weather Forecasts (ECMWF)'s ERA5 reanalysis archive. It can make 10-day forecasts, at 6-hour time intervals, of five surface variables and six atmospheric variables, each at 37 vertical pressure levels, on a 0.25-degree latitude-longitude grid, which corresponds to roughly 25 x 25 kilometer resolution at the equator. Our results show GraphCast is more accurate than ECMWF's deterministic operational forecasting system, HRES, on 90.0\% of the 2760 variable and lead time combinations we evaluated. GraphCast also outperforms the most accurate previous ML-based weather forecasting model on 99.2\% of the 252 targets it reported. GraphCast can generate a 10-day forecast (35 gigabytes of data) in under 60 seconds on Cloud TPU v4 hardware. Unlike traditional forecasting methods, ML-based forecasting scales well with data: by training on bigger, higher quality, and more recent data, the skill of the forecasts can improve. Together these results represent a key step forward in complementing and improving weather modeling with ML, open new opportunities for fast, accurate forecasting, and help realize the promise of ML-based simulation in the physical sciences.}, + urldate = {2023-01-03}, + publisher = {arXiv}, + author = {Lam, Remi and Sanchez-Gonzalez, Alvaro and Willson, Matthew and Wirnsberger, Peter and Fortunato, Meire and Pritzel, Alexander and Ravuri, Suman and Ewalds, Timo and Alet, Ferran and Eaton-Rosen, Zach and Hu, Weihua and Merose, Alexander and Hoyer, Stephan and Holland, George and Stott, Jacklynn and Vinyals, Oriol and Mohamed, Shakir and Battaglia, Peter}, + month = dec, + year = {2022}, + note = {arXiv:2212.12794 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Computer Science - Machine Learning}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/YQ4PULDK/2212.html:text/html;Lam_et_al_2022_GraphCast.pdf:/Users/tsmith/Drive/zotero/Lam_et_al_2022_GraphCast.pdf:application/pdf}, +} + + +@misc{bi_pangu-weather_2022, + title = {Pangu-{Weather}: {A} {3D} {High}-{Resolution} {Model} for {Fast} and {Accurate} {Global} {Weather} {Forecast}}, + shorttitle = {Pangu-{Weather}}, + url = {http://arxiv.org/abs/2211.02556}, + abstract = {In this paper, we present Pangu-Weather, a deep learning based system for fast and accurate global weather forecast. For this purpose, we establish a data-driven environment by downloading \$43\$ years of hourly global weather data from the 5th generation of ECMWF reanalysis (ERA5) data and train a few deep neural networks with about \$256\$ million parameters in total. The spatial resolution of forecast is \$0.25{\textasciicircum}{\textbackslash}circ{\textbackslash}times0.25{\textasciicircum}{\textbackslash}circ\$, comparable to the ECMWF Integrated Forecast Systems (IFS). More importantly, for the first time, an AI-based method outperforms state-of-the-art numerical weather prediction (NWP) methods in terms of accuracy (latitude-weighted RMSE and ACC) of all factors (e.g., geopotential, specific humidity, wind speed, temperature, etc.) and in all time ranges (from one hour to one week). There are two key strategies to improve the prediction accuracy: (i) designing a 3D Earth Specific Transformer (3DEST) architecture that formulates the height (pressure level) information into cubic data, and (ii) applying a hierarchical temporal aggregation algorithm to alleviate cumulative forecast errors. In deterministic forecast, Pangu-Weather shows great advantages for short to medium-range forecast (i.e., forecast time ranges from one hour to one week). Pangu-Weather supports a wide range of downstream forecast scenarios, including extreme weather forecast (e.g., tropical cyclone tracking) and large-member ensemble forecast in real-time. Pangu-Weather not only ends the debate on whether AI-based methods can surpass conventional NWP methods, but also reveals novel directions for improving deep learning weather forecast systems.}, + urldate = {2022-11-23}, + publisher = {arXiv}, + author = {Bi, Kaifeng and Xie, Lingxi and Zhang, Hengheng and Chen, Xin and Gu, Xiaotao and Tian, Qi}, + month = nov, + year = {2022}, + note = {arXiv:2211.02556 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Computer Science - Computer Vision and Pattern Recognition}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/RMRJC5YC/2211.html:text/html;Bi_et_al_2022_Pangu-Weather.pdf:/Users/tsmith/Drive/zotero/Bi_et_al_2022_Pangu-Weather.pdf:application/pdf}, +} + + +@misc{dosovitskiy_image_2021, + title = {An {Image} is {Worth} 16x16 {Words}: {Transformers} for {Image} {Recognition} at {Scale}}, + shorttitle = {An {Image} is {Worth} 16x16 {Words}}, + url = {http://arxiv.org/abs/2010.11929}, + abstract = {While the Transformer architecture has become the de-facto standard for natural language processing tasks, its applications to computer vision remain limited. In vision, attention is either applied in conjunction with convolutional networks, or used to replace certain components of convolutional networks while keeping their overall structure in place. We show that this reliance on CNNs is not necessary and a pure transformer applied directly to sequences of image patches can perform very well on image classification tasks. When pre-trained on large amounts of data and transferred to multiple mid-sized or small image recognition benchmarks (ImageNet, CIFAR-100, VTAB, etc.), Vision Transformer (ViT) attains excellent results compared to state-of-the-art convolutional networks while requiring substantially fewer computational resources to train.}, + urldate = {2022-11-23}, + publisher = {arXiv}, + author = {Dosovitskiy, Alexey and Beyer, Lucas and Kolesnikov, Alexander and Weissenborn, Dirk and Zhai, Xiaohua and Unterthiner, Thomas and Dehghani, Mostafa and Minderer, Matthias and Heigold, Georg and Gelly, Sylvain and Uszkoreit, Jakob and Houlsby, Neil}, + month = jun, + year = {2021}, + note = {arXiv:2010.11929 [cs]}, + keywords = {Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Computer Science - Computer Vision and Pattern Recognition}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/ZFYMNYLF/2010.html:text/html;Dosovitskiy_et_al_2021_An_Image_is_Worth_16x16_Words.pdf:/Users/tsmith/Drive/zotero/Dosovitskiy_et_al_2021_An_Image_is_Worth_16x16_Words.pdf:application/pdf}, +} + +@inproceedings{vaswani_attention_2017, + title = {Attention is {All} you {Need}}, + volume = {30}, + url = {https://proceedings.neurips.cc/paper/2017/hash/3f5ee243547dee91fbd053c1c4a845aa-Abstract.html}, + abstract = {The dominant sequence transduction models are based on complex recurrent orconvolutional neural networks in an encoder and decoder configuration. The best performing such models also connect the encoder and decoder through an attentionm echanisms. We propose a novel, simple network architecture based solely onan attention mechanism, dispensing with recurrence and convolutions entirely.Experiments on two machine translation tasks show these models to be superiorin quality while being more parallelizable and requiring significantly less timeto train. Our single model with 165 million parameters, achieves 27.5 BLEU onEnglish-to-German translation, improving over the existing best ensemble result by over 1 BLEU. On English-to-French translation, we outperform the previoussingle state-of-the-art with model by 0.7 BLEU, achieving a BLEU score of 41.1.}, + urldate = {2023-03-13}, + booktitle = {Advances in {Neural} {Information} {Processing} {Systems}}, + publisher = {Curran Associates, Inc.}, + author = {Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N and Kaiser, Łukasz and Polosukhin, Illia}, + year = {2017}, + file = {Vaswani_et_al_2017_Attention_is_All_you_Need.pdf:/Users/tsmith/Drive/zotero/Vaswani_et_al_2017_Attention_is_All_you_Need.pdf:application/pdf}, +} + + +@misc{duncan_generative_2022, + title = {Generative {Modeling} of {High}-resolution {Global} {Precipitation} {Forecasts}}, + url = {http://arxiv.org/abs/2210.12504}, + doi = {10.48550/arXiv.2210.12504}, + abstract = {Forecasting global precipitation patterns and, in particular, extreme precipitation events is of critical importance to preparing for and adapting to climate change. Making accurate high-resolution precipitation forecasts using traditional physical models remains a major challenge in operational weather forecasting as they incur substantial computational costs and struggle to achieve sufficient forecast skill. Recently, deep-learning-based models have shown great promise in closing the gap with numerical weather prediction (NWP) models in terms of precipitation forecast skill, opening up exciting new avenues for precipitation modeling. However, it is challenging for these deep learning models to fully resolve the fine-scale structures of precipitation phenomena and adequately characterize the extremes of the long-tailed precipitation distribution. In this work, we present several improvements to the architecture and training process of a current state-of-the art deep learning precipitation model (FourCastNet) using a novel generative adversarial network (GAN) to better capture fine scales and extremes. Our improvements achieve superior performance in capturing the extreme percentiles of global precipitation, while comparable to state-of-the-art NWP models in terms of forecast skill at 1--2 day lead times. Together, these improvements set a new state-of-the-art in global precipitation forecasting.}, + urldate = {2023-01-06}, + publisher = {arXiv}, + author = {Duncan, James and Subramanian, Shashank and Harrington, Peter}, + month = oct, + year = {2022}, + note = {arXiv:2210.12504 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Computer Science - Computer Vision and Pattern Recognition}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/X5ISCBNJ/2210.html:text/html;Duncan_et_al_2022_Generative_Modeling_of_High-resolution_Global_Precipitation_Forecasts.pdf:/Users/tsmith/Drive/zotero/Duncan_et_al_2022_Generative_Modeling_of_High-resolution_Global_Precipitation_Forecasts.pdf:application/pdf}, +} + + +@inproceedings{basterrech_self-organizing_2011, + title = {Self-{Organizing} {Maps} and {Scale}-{Invariant} {Maps} in {Echo} {State} {Networks}}, + doi = {10.1109/ISDA.2011.6121637}, + abstract = {In the last years a new approach for designing and training artificial Recurrent Neural Network (RNN) have been investigated under the name of Reservoir Computing (RC). One important model in the field of RC has been developed under the name of Echo State Networks (ESNs). Traditionally, an ESN uses a RNN with random untrained parameters called the reservoir. The Self-Organizing Map (SOM) and the Scale Invariant Map (SIM) are two methods of topographic maps which have been used in different tasks of unsupervised learning. Recently, new works show that is effective using the SOM to set values of the reservoir parameters. The primary goal of this work is to improve the performance of ESN using the another method SIM. Here, we present the description of these two topographic map methods and the way to apply its on the ESN initialization. We specify an original algorithm to set the reservoir weights using the SOM and SIM. Furthermore, we use artificial data set to compare the use of topographic maps to initialize the ESN with random initialization. Overall, our results show the aptitude of SIM and SOM to set the reservoir parameters.}, + booktitle = {2011 11th {International} {Conference} on {Intelligent} {Systems} {Design} and {Applications}}, + author = {Basterrech, Sebastián and Fyfe, Colin and Rubino, Gerardo}, + month = nov, + year = {2011}, + note = {ISSN: 2164-7151}, + keywords = {Recurrent neural networks, Reservoir Computing, Self-Organizing Maps, Neurons, Reservoirs, Training, Training data, Echo State Networks, Scale Invariant Maps, Self organizing feature maps, Time series analysis, Times Series Prediction, Topographic Maps}, + pages = {94--99}, + file = {Basterrech_et_al_2011_Self-Organizing_Maps_and_Scale-Invariant_Maps_in_Echo_State_Networks.pdf:/Users/tsmith/Drive/zotero/Basterrech_et_al_2011_Self-Organizing_Maps_and_Scale-Invariant_Maps_in_Echo_State_Networks.pdf:application/pdf}, +} + + +@article{heyder_generalizability_2022, + title = {Generalizability of reservoir computing for flux-driven two-dimensional convection}, + volume = {106}, + url = {https://link.aps.org/doi/10.1103/PhysRevE.106.055303}, + doi = {10.1103/PhysRevE.106.055303}, + abstract = {We explore the generalization properties of an echo state network applied as a reduced-order model to predict flux-driven two-dimensional turbulent convection. To this end, we consider a convection domain with constant height with a variable ratio of buoyancy fluxes at the top and bottom boundaries, which break the top-down symmetry in comparison to the standard Rayleigh-Bénard case, thus leading to highly asymmetric mean and fluctuation profiles across the layer. Our direct numerical simulation model describes a convective boundary layer in a simple way. The data are used to train and test a recurrent neural network in the form of an echo state network. The input of the echo state network is obtained in two different ways, either by a proper orthogonal decomposition or by a convolutional autoencoder. In both cases, the echo state network reproduces the turbulence dynamics and the statistical properties of the buoyancy flux, and is able to model unseen data records with different flux ratios.}, + number = {5}, + urldate = {2022-11-23}, + journal = {Physical Review E}, + author = {Heyder, Florian and Mellado, Juan Pedro and Schumacher, Jörg}, + month = nov, + year = {2022}, + note = {Publisher: American Physical Society}, + pages = {055303}, + file = {APS Snapshot:/Users/tsmith/Zotero/storage/9V3BD48N/PhysRevE.106.html:text/html;Heyder_et_al_2022_Generalizability_of_reservoir_computing_for_flux-driven_two-dimensional.pdf:/Users/tsmith/Drive/zotero/Heyder_et_al_2022_Generalizability_of_reservoir_computing_for_flux-driven_two-dimensional.pdf:application/pdf}, +} + + +@misc{jordanou_investigation_2022, + title = {Investigation of {Proper} {Orthogonal} {Decomposition} for {Echo} {State} {Networks}}, + url = {http://arxiv.org/abs/2211.17179}, + abstract = {Echo State Networks (ESN) are a type of Recurrent Neural Networks that yields promising results in representing time series and nonlinear dynamic systems. Although they are equipped with a very efficient training procedure, Reservoir Computing strategies, such as the ESN, require the use of high order networks, i.e. large number of layers, resulting in number of states that is magnitudes higher than the number of model inputs and outputs. This not only makes the computation of a time step more costly, but also may pose robustness issues when applying ESNs to problems such as Model Predictive Control (MPC) and other optimal control problems. One such way to circumvent this is through Model Order Reduction strategies such as the Proper Orthogonal Decomposition (POD) and its variants (POD-DEIM), whereby we find an equivalent lower order representation to an already trained high dimension ESN. The objective of this work is to investigate and analyze the performance of POD methods in Echo State Networks, evaluating their effectiveness. To this end, we evaluate the Memory Capacity (MC) of the POD-reduced network in comparison to the original (full order) ENS. We also perform experiments on two different numerical case studies: a NARMA10 difference equation and an oil platform containing two wells and one riser. The results show that there is little loss of performance comparing the original ESN to a POD-reduced counterpart, and also that the performance of a POD-reduced ESN tend to be superior to a normal ESN of the same size. Also we attain speedups of around \$80{\textbackslash}\%\$ in comparison to the original ESN.}, + urldate = {2022-12-20}, + publisher = {arXiv}, + author = {Jordanou, Jean Panaioti and Antonelo, Eric Aislan and Camponogara, Eduardo and Gildin, Eduardo}, + month = dec, + year = {2022}, + note = {arXiv:2211.17179 [cs, eess]}, + keywords = {Computer Science - Machine Learning, Computer Science - Neural and Evolutionary Computing, Electrical Engineering and Systems Science - Systems and Control}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/VQ2KX46Q/2211.html:text/html;Jordanou_et_al_2022_Investigation_of_Proper_Orthogonal_Decomposition_for_Echo_State_Networks.pdf:/Users/tsmith/Drive/zotero/Jordanou_et_al_2022_Investigation_of_Proper_Orthogonal_Decomposition_for_Echo_State_Networks.pdf:application/pdf}, +} + + +@article{whiteaker_reducing_2022, + title = {Reducing echo state network size with controllability matrices}, + volume = {32}, + issn = {1054-1500}, + url = {https://aip.scitation.org/doi/full/10.1063/5.0071926}, + doi = {10.1063/5.0071926}, + abstract = {Echo state networks are a fast training variant of recurrent neural networks excelling at approximating nonlinear dynamical systems and time series prediction. These machine learning models act as nonlinear fading memory filters. While these models benefit from quick training and low complexity, computation demands from a large reservoir matrix are a bottleneck. Using control theory, a reduced size replacement reservoir matrix is found. Starting from a large, task-effective reservoir matrix, we form a controllability matrix whose rank indicates the active sub-manifold and candidate replacement reservoir size. Resulting time speed-ups and reduced memory usage come with minimal error increase to chaotic climate reconstruction or short term prediction. Experiments are performed on simple time series signals and the Lorenz-1963 and Mackey–Glass complex chaotic signals. Observing low error models shows variation of active rank and memory along a sequence of predictions.}, + number = {7}, + urldate = {2022-07-19}, + journal = {Chaos: An Interdisciplinary Journal of Nonlinear Science}, + author = {Whiteaker, Brian and Gerstoft, Peter}, + month = jul, + year = {2022}, + note = {Publisher: American Institute of Physics}, + pages = {073116}, + file = {Whiteaker_Gerstoft_2022_Reducing_echo_state_network_size_with_controllability_matrices.pdf:/Users/tsmith/Drive/zotero/Whiteaker_Gerstoft_2022_Reducing_echo_state_network_size_with_controllability_matrices.pdf:application/pdf}, +} + + +@article{ma_deepr-esn_2020, + title = {{DeePr}-{ESN}: {A} deep projection-encoding echo-state network}, + volume = {511}, + issn = {0020-0255}, + shorttitle = {{DeePr}-{ESN}}, + url = {https://www.sciencedirect.com/science/article/pii/S0020025519309053}, + doi = {10.1016/j.ins.2019.09.049}, + abstract = {As a recurrent neural network that requires no training, the reservoir computing (RC) model has attracted widespread attention in the last decade, especially in the context of time series prediction. However, most time series have a multiscale structure, which a single-hidden-layer RC model may have difficulty capturing. In this paper, we propose a novel multiple projection-encoding hierarchical reservoir computing framework called Deep Projection-encoding Echo State Network (DeePr-ESN). The most distinctive feature of our model is its ability to learn multiscale dynamics through stacked ESNs, connected via subspace projections. Specifically, when an input time series is projected into the high-dimensional echo-state space of a reservoir, a subsequent encoding layer (e.g., an autoencoder or PCA) projects the echo-state representations into a lower-dimensional feature space. These representations are the principal components of the echo-state representations, which removes the high frequency components of the representations. These can then be processed by another ESN through random connections. By using projection layers and encoding layers alternately, our DeePr-ESN can provide much more robust generalization performance than previous methods, and also fully takes advantage of the temporal kernel property of ESNs to encode the multiscale dynamics of time series. In our experiments, the DeePr-ESNs outperform both standard ESNs and existing hierarchical reservoir computing models on some artificial and real-world time series prediction tasks.}, + language = {en}, + urldate = {2022-10-03}, + journal = {Information Sciences}, + author = {Ma, Qianli and Shen, Lifeng and Cottrell, Garrison W.}, + month = feb, + year = {2020}, + keywords = {Echo state network, Hierarchical reservoir computing, Multiscale dynamics, Time series prediction}, + pages = {152--171}, + file = {Ma_et_al_2020_DeePr-ESN.pdf:/Users/tsmith/Drive/zotero/Ma_et_al_2020_DeePr-ESN.pdf:application/pdf;ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/Z3EZH8JD/S0020025519309053.html:text/html}, +} + + +@article{moon_hierarchical_2021, + title = {Hierarchical architectures in reservoir computing systems}, + volume = {1}, + issn = {2634-4386}, + url = {https://doi.org/10.1088/2634-4386/ac1b75}, + doi = {10.1088/2634-4386/ac1b75}, + abstract = {Reservoir computing (RC) offers efficient temporal data processing with a low training cost by separating recurrent neural networks into a fixed network with recurrent connections and a trainable linear network. The quality of the fixed network, called reservoir, is the most important factor that determines the performance of the RC system. In this paper, we investigate the influence of the hierarchical reservoir structure on the properties of the reservoir and the performance of the RC system. Analogous to deep neural networks, stacking sub-reservoirs in series is an efficient way to enhance the nonlinearity of data transformation to high-dimensional space and expand the diversity of temporal information captured by the reservoir. These deep reservoir systems offer better performance when compared to simply increasing the size of the reservoir or the number of sub-reservoirs. Low frequency components are mainly captured by the sub-reservoirs in later stage of the deep reservoir structure, similar to observations that more abstract information can be extracted by layers in the late stage of deep neural networks. When the total size of the reservoir is fixed, tradeoff between the number of sub-reservoirs and the size of each sub-reservoir needs to be carefully considered, due to the degraded ability of individual sub-reservoirs at small sizes. Improved performance of the deep reservoir structure alleviates the difficulty of implementing the RC system on hardware systems.}, + language = {en}, + number = {1}, + urldate = {2022-10-03}, + journal = {Neuromorphic Computing and Engineering}, + author = {Moon, John and Wu, Yuting and Lu, Wei D.}, + month = aug, + year = {2021}, + note = {Publisher: IOP Publishing}, + pages = {014006}, + file = {Moon_et_al_2021_Hierarchical_architectures_in_reservoir_computing_systems.pdf:/Users/tsmith/Drive/zotero/Moon_et_al_2021_Hierarchical_architectures_in_reservoir_computing_systems.pdf:application/pdf}, +} + +@article{gallicchio_design_2018, + title = {Design of deep echo state networks}, + volume = {108}, + issn = {0893-6080}, + url = {https://www.sciencedirect.com/science/article/pii/S0893608018302223}, + doi = {10.1016/j.neunet.2018.08.002}, + abstract = {In this paper, we provide a novel approach to the architectural design of deep Recurrent Neural Networks using signal frequency analysis. In particular, focusing on the Reservoir Computing framework and inspired by the principles related to the inherent effect of layering, we address a fundamental open issue in deep learning, namely the question of how to establish the number of layers in recurrent architectures in the form of deep echo state networks (DeepESNs). The proposed method is first analyzed and refined on a controlled scenario and then it is experimentally assessed on challenging real-world tasks. The achieved results also show the ability of properly designed DeepESNs to outperform RC approaches on a speech recognition task, and to compete with the state-of-the-art in time-series prediction on polyphonic music tasks.}, + language = {en}, + urldate = {2023-03-30}, + journal = {Neural Networks}, + author = {Gallicchio, Claudio and Micheli, Alessio and Pedrelli, Luca}, + month = dec, + year = {2018}, + keywords = {Architectural design of recurrent neural networks, Deep echo state networks, Deep recurrent neural networks, Echo state networks, Reservoir computing}, + pages = {33--47}, + file = {Gallicchio_et_al_2018_Design_of_deep_echo_state_networks.pdf:/Users/tsmith/Drive/zotero/Gallicchio_et_al_2018_Design_of_deep_echo_state_networks.pdf:application/pdf;ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/MWDJ8BU8/S0893608018302223.html:text/html}, +} + +@article{gallicchio_deep_2017, + series = {Advances in artificial neural networks, machine learning and computational intelligence}, + title = {Deep reservoir computing: {A} critical experimental analysis}, + volume = {268}, + issn = {0925-2312}, + shorttitle = {Deep reservoir computing}, + url = {https://www.sciencedirect.com/science/article/pii/S0925231217307567}, + doi = {10.1016/j.neucom.2016.12.089}, + abstract = {In this paper, we propose an empirical analysis of deep recurrent neural network (RNN) architectures with stacked layers. The main aim is to address some fundamental open research issues on the significance of creating deep layered architectures in RNN and to characterize the inherent hierarchical representation of time in such models, especially for efficient implementations. In particular, the analysis aims at the study and proposal of approaches to develop and enhance hierarchical dynamics in deep architectures within the efficient Reservoir Computing (RC) framework for RNN modeling. The effect of a deep layered organization of RC models is investigated in terms of both occurrence of multiple time-scale and increasing of richness of the dynamics. It turns out that a deep layering of recurrent models allows an effective diversification of temporal representations in the layers of the hierarchy, by amplifying the effects of the factors influencing the time-scales and the richness of the dynamics, measured as the entropy of recurrent units activations. The advantages of the proposed approach are also highlighted by measuring the increment of the short-term memory capacity of the RC models.}, + language = {en}, + urldate = {2023-03-30}, + journal = {Neurocomputing}, + author = {Gallicchio, Claudio and Micheli, Alessio and Pedrelli, Luca}, + month = dec, + year = {2017}, + keywords = {Deep Learning, Deep neural networks, Echo State Networks, Multiple time-scale dynamics, Recurrent neural networks, Reservoir computing}, + pages = {87--99}, + file = {Gallicchio_et_al_2017_Deep_reservoir_computing.pdf:/Users/tsmith/Drive/zotero/Gallicchio_et_al_2017_Deep_reservoir_computing.pdf:application/pdf;ScienceDirect Snapshot:/Users/tsmith/Zotero/storage/NF22976E/S0925231217307567.html:text/html}, +} + +@article{malik_multilayered_2017, + title = {Multilayered {Echo} {State} {Machine}: {A} {Novel} {Architecture} and {Algorithm}}, + volume = {47}, + issn = {2168-2267, 2168-2275}, + shorttitle = {Multilayered {Echo} {State} {Machine}}, + url = {https://ieeexplore.ieee.org/document/7494974/}, + doi = {10.1109/TCYB.2016.2533545}, + abstract = {In this paper, we present a novel architecture and learning algorithm for a multi-layered Echo State Machine (MLESM). Traditional Echo state networks (ESN) refer to a particular type of Reservoir Computing (RC) architecture. They constitute an effective approach to recurrent neural network (RNN) training, with the (RNN-based) reservoir generated randomly, and only the readout trained using a simple computationally efficient algorithm. ESNs have greatly facilitated the real-time application of RNN, and have been shown to outperform classical approaches in a number of benchmark tasks. In this paper, we introduce novel criteria for integrating multiple layers of reservoirs within an echo state machine, with the resulting architecture termed the ML-ESM. The addition of multiple layers of reservoirs are shown to provide a more robust alternative to conventional reservoir computing networks. We demonstrate the comparative merits of this approach in a number of applications, considering both benchmark datasets and real world applications.}, + language = {en}, + number = {4}, + urldate = {2023-03-30}, + journal = {IEEE Transactions on Cybernetics}, + author = {Malik, Zeeshan Khawar and Hussain, Amir and Wu, Qingming Jonathan}, + month = apr, + year = {2017}, + pages = {946--959}, + file = {Malik_et_al_2017_Multilayered_Echo_State_Machine.pdf:/Users/tsmith/Drive/zotero/Malik_et_al_2017_Multilayered_Echo_State_Machine.pdf:application/pdf}, +} + +@inproceedings{cupy_learningsys2017, + author = "Okuta, Ryosuke and Unno, Yuya and Nishino, Daisuke and Hido, Shohei and Loomis, Crissman", + title = "CuPy: A NumPy-Compatible Library for NVIDIA GPU Calculations", + booktitle = "Proceedings of Workshop on Machine Learning Systems (LearningSys) in The Thirty-first Annual Conference on Neural Information Processing Systems (NIPS)", + year = "2017", + url = "http://learningsys.org/nips17/assets/papers/paper_16.pdf" +} + +@misc{gom_dataset, + author = "{HYCOM}", + title = "{HYCOM} + {NCODA} {Gulf} of {Mexico} {1/25°} {Reanalysis}, ({GOM}u0.04/expt{\_}50.1)", + year = "2016", + note = "Data retrieved from HYCOM, \url{https://www.hycom.org/data/gomu0pt04/expt-50pt1}", +} + + +@incollection{rossa_overview_2008, + address = {Berlin, Heidelberg}, + title = {Overview of methods for the verification of quantitative precipitation forecasts}, + isbn = {978-3-540-77655-0}, + url = {https://doi.org/10.1007/978-3-540-77655-0_16}, + language = {en}, + urldate = {2023-03-31}, + booktitle = {Precipitation: {Advances} in {Measurement}, {Estimation} and {Prediction}}, + publisher = {Springer}, + author = {Rossa, Andrea and Nurmi, Pertti and Ebert, Elizabeth}, + editor = {Michaelides, Silas}, + year = {2008}, + doi = {10.1007/978-3-540-77655-0_16}, + keywords = {Equitable Threat Score, Numerical Weather Prediction Model, Precipitation Forecast, Relative Operating Characteristic, Skill Score}, + pages = {419--452}, + file = {Rossa_et_al_2008_Overview_of_methods_for_the_verification_of_quantitative_precipitation_forecasts.pdf:/Users/tsmith/Drive/zotero/Rossa_et_al_2008_Overview_of_methods_for_the_verification_of_quantitative_precipitation_forecasts.pdf:application/pdf}, +} + + +@article{held_surface_1995, + title = {Surface quasi-geostrophic dynamics}, + volume = {282}, + issn = {1469-7645, 0022-1120}, + url = {http://www.cambridge.org/core/journals/journal-of-fluid-mechanics/article/surface-quasigeostrophic-dynamics/81CC9FC82F189A1E59E7816F47D3260F}, + doi = {10.1017/S0022112095000012}, + abstract = {The dynamics of quasi-geostrophic flow with uniform potential vorticity reduces to the evolution of buoyancy, or potential temperature, on horizontal boundaries. There is a formal resemblance to two-dimensional flow, with surface temperature playing the role of vorticity, but a different relationship between the flow and the advected scalar creates several distinctive features. A series of examples are described which highlight some of these features: the evolution of an elliptical vortex; the start-up vortex shed by flow over a mountain; the instability of temperature filaments; the ‘edge wave’ critical layer; and mixing in an overturning edge wave. Characteristics of the direct cascade of the tracer variance to small scales in homogeneous turbulence, as well as the inverse energy cascade, are also described. In addition to its geophysical relevance, the ubiquitous generation of secondary instabilities and the possibility of finite-time collapse make this system a potentially important, numerically tractable, testbed for turbulence theories.}, + language = {en}, + urldate = {2021-11-24}, + journal = {Journal of Fluid Mechanics}, + author = {Held, Isaac M. and Pierrehumbert, Raymond T. and Garner, Stephen T. and Swanson, Kyle L.}, + month = jan, + year = {1995}, + note = {Publisher: Cambridge University Press}, + pages = {1--20}, + file = {Held_et_al_1995_Surface_quasi-geostrophic_dynamics.pdf:/Users/tsmith/Drive/zotero/Held_et_al_1995_Surface_quasi-geostrophic_dynamics.pdf:application/pdf;Snapshot:/Users/tsmith/Zotero/storage/JCSLGIDA/81CC9FC82F189A1E59E7816F47D3260F.html:text/html}, +} + + +@article{li_data-based_2019, + title = {Data-{Based} {Approach} for {Fast} {Airfoil} {Analysis} and {Optimization}}, + volume = {57}, + issn = {0001-1452}, + url = {https://arc.aiaa.org/doi/10.2514/1.J057129}, + doi = {10.2514/1.J057129}, + abstract = {Airfoils are of great importance in aerodynamic design, and various tools have been developed to evaluate and optimize their performance. Existing tools are usually either accurate or efficient, but not both. This paper presents a tool that can analyze airfoils in both subsonic and transonic regimes in about one-hundredth of a second, and optimize airfoil shapes in a few seconds. Camber and thickness mode shapes derived from over 1000 existing airfoils are used to parameterize the airfoil shape, which reduces the number of design variables. More than 100,000 Reynolds-averaged Navier–Stokes (RANS) evaluations associated with different airfoils and flow conditions are used to train a surrogate model that combines gradient-enhanced kriging, partial least squares, and mixture of experts. These surrogate models provide fast aerodynamic analysis and gradient computation, which are coupled with a gradient-based optimizer to perform rapid airfoil shape design optimization. When comparing the surrogate-based optimization with optimization based on direct RANS evaluations, the largest differences in minimum +𝐶 +𝑑 +𝐶 +𝑑 + are 0.04 counts for subsonic cases and 2.5 counts for transonic cases. This approach opens the door for interactive airfoil analysis and design optimization using any modern computer or mobile device.}, + number = {2}, + urldate = {2023-04-03}, + journal = {AIAA Journal}, + author = {Li, Jichao and Bouhlel, Mohamed Amine and Martins, Joaquim R. R. A.}, + month = feb, + year = {2019}, + note = {Publisher: American Institute of Aeronautics and Astronautics}, + keywords = {Aerodynamic Shape Optimization, Airfoil Geometry, CFD Simulation, Flow Conditions, Gradient Free Optimization, Lift Coefficient, Numerical Modeling, Reynolds Averaged Navier Stokes, Singular Value Decomposition, Supercritical Airfoils}, + pages = {581--596}, + file = {Li_et_al_2019_Data-Based_Approach_for_Fast_Airfoil_Analysis_and_Optimization.pdf:/Users/tsmith/Drive/zotero/Li_et_al_2019_Data-Based_Approach_for_Fast_Airfoil_Analysis_and_Optimization.pdf:application/pdf}, +} + +@article{bouhlel_scalable_2020, + title = {Scalable gradient–enhanced artificial neural networks for airfoil shape design in the subsonic and transonic regimes}, + volume = {61}, + issn = {1615-1488}, + url = {https://doi.org/10.1007/s00158-020-02488-5}, + doi = {10.1007/s00158-020-02488-5}, + abstract = {Airfoil shape design is one of the most fundamental elements in aircraft design. Existing airfoil design tools require at least a few minutes to analyze a new shape and hours to perform shape optimization. To drastically reduce the computational time of both analysis and design optimization, we use machine learning to create a model of a wide range of possible airfoils at a range of flight conditions, making it possible to perform airfoil design optimization in a few seconds. The machine learning consists of gradient-enhanced artificial neural networks where the gradient information is phased in gradually. This new gradient-enhanced artificial neural network approach is trained to model the aerodynamic force coefficients of airfoils in both subsonic and transonic regimes. The aerodynamics is modeled with Reynolds-averaged Navier–Stokes (RANS)-based computational fluid dynamics (CFD). The proposed approach outperforms an existing airfoil model that uses a mixture of experts technique combined with a gradient-based kriging surrogate model. The approach yields to similar airfoil shape optimization solutions than high-fidelity CFD optimization solutions with a difference of 0.01 count and 0.12 count for Cd in subsonic and transonic regimes, respectively. Airfoil optimization problems are solved in a few seconds (instead of hours using CFD-based optimization), making the design process much more interactive, as demonstrated in the Webfoil airfoil design optimization tool.}, + language = {en}, + number = {4}, + urldate = {2023-04-03}, + journal = {Structural and Multidisciplinary Optimization}, + author = {Bouhlel, Mohamed Amine and He, Sicheng and Martins, Joaquim R. R. A.}, + month = apr, + year = {2020}, + keywords = {Airfoils, Artificial neural networks, Gradient-enhanced modeling, Surrogate modeling}, + pages = {1363--1376}, + file = {Bouhlel_et_al_2020_Scalable_gradient–enhanced_artificial_neural_networks_for_airfoil_shape_design.pdf:/Users/tsmith/Drive/zotero/Bouhlel_et_al_2020_Scalable_gradient–enhanced_artificial_neural_networks_for_airfoil_shape_design.pdf:application/pdf}, +} + + +@misc{perezhogin_generative_2023, + title = {Generative data-driven approaches for stochastic subgrid parameterizations in an idealized ocean model}, + url = {http://arxiv.org/abs/2302.07984}, + abstract = {Subgrid parameterizations of mesoscale eddies continue to be in demand for climate simulations. These subgrid parameterizations can be powerfully designed using physics and/or data-driven methods, with uncertainty quantification. For example, Guillaumin and Zanna (2021) proposed a Machine Learning (ML) model that predicts subgrid forcing and its local uncertainty. The major assumption and potential drawback of this model is the statistical independence of stochastic residuals between grid points. Here, we aim to improve the simulation of stochastic forcing with generative models of ML, such as Generative adversarial network (GAN) and Variational autoencoder (VAE). Generative models learn the distribution of subgrid forcing conditioned on the resolved flow directly from data and they can produce new samples from this distribution. Generative models can potentially capture not only the spatial correlation but any statistically significant property of subgrid forcing. We test the proposed stochastic parameterizations offline and online in an idealized ocean model. We show that generative models are able to predict subgrid forcing and its uncertainty with spatially correlated stochastic forcing. Online simulations for a range of resolutions demonstrated that generative models are superior to the baseline ML model at the coarsest resolution.}, + urldate = {2023-03-02}, + publisher = {arXiv}, + author = {Perezhogin, Pavel and Zanna, Laure and Fernandez-Granda, Carlos}, + month = feb, + year = {2023}, + note = {arXiv:2302.07984 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/JACT3NSC/2302.html:text/html;Perezhogin_et_al_2023_Generative_data-driven_approaches_for_stochastic_subgrid_parameterizations_in.pdf:/Users/tsmith/Drive/zotero/Perezhogin_et_al_2023_Generative_data-driven_approaches_for_stochastic_subgrid_parameterizations_in.pdf:application/pdf}, +} + +@article{kalnay_ensemble_2006, + title={Ensemble forecasting and data assimilation: two problems with the same solution}, + author={Kalnay, Eugenia and Hunt, Brian and Ott, Edward and Szunyogh, Istvan}, + journal={Predictability of weather and climate}, + volume={157}, + pages={180}, + year={2006}, + publisher={Citeseer} +} + + +@article{orlanski_rational_1975, + title = {A {Rational} {Subdivision} of {Scales} for {Atmospheric} {Processes}}, + volume = {56}, + issn = {0003-0007}, + url = {https://www.jstor.org/stable/26216020}, + abstract = {Some atmospheric scale definitions are reviewed and a proposed new subdivision of scales that covers the entire spectrum is described.}, + number = {5}, + urldate = {2023-04-17}, + journal = {Bulletin of the American Meteorological Society}, + author = {Orlanski, Isidoro}, + year = {1975}, + note = {Publisher: American Meteorological Society}, + pages = {527--530}, + file = {Orlanski_1975_A_Rational_Subdivision_of_Scales_for_Atmospheric_Processes.pdf:/Users/tsmith/Drive/zotero/Orlanski_1975_A_Rational_Subdivision_of_Scales_for_Atmospheric_Processes.pdf:application/pdf}, +} + + +@misc{platt_constraining_2023, + title = {Constraining {Chaos}: {Enforcing} dynamical invariants in the training of recurrent neural networks}, + copyright = {All rights reserved}, + shorttitle = {Constraining {Chaos}}, + url = {http://arxiv.org/abs/2304.12865}, + doi = {10.48550/arXiv.2304.12865}, + abstract = {Drawing on ergodic theory, we introduce a novel training method for machine learning based forecasting methods for chaotic dynamical systems. The training enforces dynamical invariants--such as the Lyapunov exponent spectrum and fractal dimension--in the systems of interest, enabling longer and more stable forecasts when operating with limited data. The technique is demonstrated in detail using the recurrent neural network architecture of reservoir computing. Results are given for the Lorenz 1996 chaotic dynamical system and a spectral quasi-geostrophic model, both typical test cases for numerical weather prediction.}, + urldate = {2023-04-26}, + publisher = {arXiv}, + author = {Platt, Jason A. and Penny, Stephen G. and Smith, Timothy A. and Chen, Tse-Chun and Abarbanel, Henry D. I.}, + month = apr, + year = {2023}, + note = {arXiv:2304.12865 [physics]}, + keywords = {Computer Science - Machine Learning, Mathematics - Dynamical Systems, Physics - Geophysics}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/ZQW7KU3N/2304.html:text/html;Platt_et_al_2023_Constraining_Chaos.pdf:/Users/tsmith/Drive/zotero/Platt_et_al_2023_Constraining_Chaos.pdf:application/pdf}, +} + +@software{smith_rcgfd_2023, + author = {Timothy Smith}, + title = {timothyas/rc-gfd: Revision 1}, + month = sep, + year = 2023, + publisher = {Zenodo}, + version = {v1}, + doi = {10.5281/zenodo.8368225}, + url = {https://doi.org/10.5281/zenodo.8368225} +} + + +@misc{chattopadhyay_long-term_2023, + title = {Long-term instabilities of deep learning-based digital twins of the climate system: {The} cause and a solution}, + shorttitle = {Long-term instabilities of deep learning-based digital twins of the climate system}, + url = {http://arxiv.org/abs/2304.07029}, + urldate = {2023-04-26}, + publisher = {arXiv}, + author = {Chattopadhyay, Ashesh and Hassanzadeh, Pedram}, + month = apr, + year = {2023}, + note = {arXiv:2304.07029 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Mathematics - Numerical Analysis, Computer Science - Artificial Intelligence, Computer Science - Machine Learning, Physics - Fluid Dynamics}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/49SYASFH/2304.html:text/html;Chattopadhyay_Hassanzadeh_2023_Long-term_instabilities_of_deep_learning-based_digital_twins_of_the_climate.pdf:/Users/tsmith/Drive/zotero/Chattopadhyay_Hassanzadeh_2023_Long-term_instabilities_of_deep_learning-based_digital_twins_of_the_climate.pdf:application/pdf}, +} + + +@article{bi_accurate_2023, + title = {Accurate medium-range global weather forecasting with {3D} neural networks}, + volume = {619}, + copyright = {2023 The Author(s)}, + issn = {1476-4687}, + url = {https://www.nature.com/articles/s41586-023-06185-3}, + doi = {10.1038/s41586-023-06185-3}, + language = {en}, + number = {7970}, + urldate = {2023-09-14}, + journal = {Nature}, + author = {Bi, Kaifeng and Xie, Lingxi and Zhang, Hengheng and Chen, Xin and Gu, Xiaotao and Tian, Qi}, + month = jul, + year = {2023}, + note = {Number: 7970 +Publisher: Nature Publishing Group}, + keywords = {Atmospheric dynamics, Computer science}, + pages = {533--538}, + file = {Bi_et_al_2023_Accurate_medium-range_global_weather_forecasting_with_3D_neural_networks.pdf:/Users/tsmith/Drive/zotero/Bi_et_al_2023_Accurate_medium-range_global_weather_forecasting_with_3D_neural_networks.pdf:application/pdf}, +} + + +@misc{sitzmann_implicit_2020, + title = {Implicit {Neural} {Representations} with {Periodic} {Activation} {Functions}}, + url = {http://arxiv.org/abs/2006.09661}, + urldate = {2023-08-22}, + publisher = {arXiv}, + author = {Sitzmann, Vincent and Martel, Julien N. P. and Bergman, Alexander W. and Lindell, David B. and Wetzstein, Gordon}, + month = jun, + year = {2020}, + note = {arXiv:2006.09661 [cs, eess]}, + keywords = {Computer Science - Machine Learning, Computer Science - Computer Vision and Pattern Recognition, Electrical Engineering and Systems Science - Image and Video Processing}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/2K9TJG6C/2006.html:text/html;Sitzmann_et_al_2020_Implicit_Neural_Representations_with_Periodic_Activation_Functions.pdf:/Users/tsmith/Drive/zotero/Sitzmann_et_al_2020_Implicit_Neural_Representations_with_Periodic_Activation_Functions.pdf:application/pdf}, +} + + + +@misc{smith_temporal_2023, + title = {Temporal {Subsampling} {Diminishes} {Small} {Spatial} {Scales} in {Recurrent} {Neural} {Network} {Emulators} of {Geophysical} {Turbulence}}, + copyright = {All rights reserved}, + url = {http://arxiv.org/abs/2305.00100}, + abstract = {The immense computational cost of traditional numerical weather and climate models has sparked the development of machine learning (ML) based emulators. Because ML methods benefit from long records of training data, it is common to use datasets that are temporally subsampled relative to the time steps required for the numerical integration of differential equations. Here, we investigate how this often overlooked processing step affects the quality of an emulator's predictions. We implement two ML architectures from a class of methods called reservoir computing: (1) a form of Nonlinear Vector Autoregression (NVAR), and (2) an Echo State Network (ESN). Despite their simplicity, it is well documented that these architectures excel at predicting low dimensional chaotic dynamics. We are therefore motivated to test these architectures in an idealized setting of predicting high dimensional geophysical turbulence as represented by Surface Quasi-Geostrophic dynamics. In all cases, subsampling the training data consistently leads to an increased bias at small spatial scales that resembles numerical diffusion. Interestingly, the NVAR architecture becomes unstable when the temporal resolution is increased, indicating that the polynomial based interactions are insufficient at capturing the detailed nonlinearities of the turbulent flow. The ESN architecture is found to be more robust, suggesting a benefit to the more expensive but more general structure. Spectral errors are reduced by including a penalty on the kinetic energy density spectrum during training, although the subsampling related errors persist. Future work is warranted to understand how the temporal resolution of training data affects other ML architectures.}, + urldate = {2023-09-25}, + publisher = {arXiv}, + author = {Smith, Timothy A. and Penny, Stephen G. and Platt, Jason A. and Chen, Tse-Chun}, + month = sep, + year = {2023}, + note = {arXiv:2305.00100 [physics]}, + keywords = {Physics - Atmospheric and Oceanic Physics, Computer Science - Machine Learning, Physics - Fluid Dynamics}, + file = {arXiv.org Snapshot:/Users/tsmith/Zotero/storage/3QJBNFU2/2305.html:text/html;Full Text PDF:/Users/tsmith/Zotero/storage/ZI9VMBKP/Smith et al. - 2023 - Temporal Subsampling Diminishes Small Spatial Scal.pdf:application/pdf}, +} diff --git a/docs/references.rst b/docs/references.rst index c1dc87f..8b1831b 100644 --- a/docs/references.rst +++ b/docs/references.rst @@ -1,13 +1,4 @@ References ########## -.. [Arcomano_et_al_2020] Arcomano, T., Szunyogh, I., Pathak, J., Wikner, A., Hunt, B. R., & Ott, E. (2020). A Machine Learning-Based Global Atmospheric Forecast Model. Geophysical Research Letters, 47(9), e2020GL087776. https://doi.org/10.1029/2020GL087776 - -.. [Jaeger_2001] Jaeger, H. (2001). The "echo state” approach to analysing and training recurrent neural networks – with an Erratum note. Bonn, Germany: German National Research Center for Information Technology GMD Technical Report, 148(34), 13. - - -.. [Pathak_et_al_2018] Pathak, J., Hunt, B., Girvan, M., Lu, Z., & Ott, E. (2018). Model-Free Prediction of Large Spatiotemporally Chaotic Systems from Data: A Reservoir Computing Approach. Physical Review Letters, 120(2), 024102. https://doi.org/10.1103/PhysRevLett.120.024102 - -.. [Platt_et_al_2022] Platt, J. A., Penny, S. G., Smith, T. A., Chen, T.-C., & Abarbanel, H. D. I. (2022). A systematic exploration of reservoir computing for forecasting complex spatiotemporal dynamics. Neural Networks, 153, 530–552. https://doi.org/10.1016/j.neunet.2022.06.025 - -.. [Smith_et_al_2023] Smith, T. A., Penny, S. G., Platt, J. A., & Chen, T.-C. (2023, September 21). Temporal Subsampling Diminishes Small Spatial Scales in Recurrent Neural Network Emulators of Geophysical Turbulence. arXiv. Retrieved from http://arxiv.org/abs/2305.00100 +.. bibliography:: diff --git a/xesn/esn.py b/xesn/esn.py index a171ec6..92dbddb 100644 --- a/xesn/esn.py +++ b/xesn/esn.py @@ -15,9 +15,32 @@ from .matrix import RandomMatrix, SparseRandomMatrix class ESN(): - """A classic ESN architecture, with no distribution or parallelism. + """A classic ESN architecture, as introduced by :cite:t:`jaeger_echo_2001`, + with no distribution or parallelism. It is assumed that all data used with this architecture can fit into memory. + + Assumptions: + 1. Time axis is last, and it is named "time" + + Note: + The difference between what is expected for ``overlap`` and ``boundary`` + and what is supplied to dask's overlap function is that here the + dimensions are labelled. This means we expect something like + ``{"x": 1, "y":1, "time": 0}`` rather than ``{0: 1, 1:1, 2:0}``, for + ``overlap`` and similar for ``boundary``. + + Args: + n_input (int): size of the input vector to the ESN in state space + n_output (int): size of the ESN output vector in state space + n_reservoir (int): size of the reservoir or hidden state + leak_rate (float): fraction of current hidden state to use during timestepping, ``(1-leak_rate) r(n-1)`` is propagated forward + tikhonov_parameter (float): regularization parameter to prevent overfitting + persist (bool, optional): if True, bring the data into memory using all available computational resources. This is called after calling overlap in :meth:`train` and :meth:`predict`, as well as on the readout weights :attr:`Wout` after training and on the prediction result after computations are complete in :meth:`predict` + input_kwargs (dict, optional): the options to specify :attr:`Win`, use boolean option ``"is_sparse"`` to determine if :class:`RandomMatrix` or :class:`SparseRandomMatrix` is used, then all other options are passed to either of those classes, see their description for available options noting that ``n_rows`` and ``n_cols`` are not necessary. + adjacency_kwargs (dict, optional): the options to specify :attr:`W`, use boolean option ``"is_sparse"`` to determine if :class:`RandomMatrix` or :class:`SparseRandomMatrix` is used, then all other options are passed to either of those classes, see their description for available options noting that ``n_rows`` and ``n_cols`` are not necessary. + bias_kwargs (dict, optional): the options to specifying :attr:`bias_vector` generation. Only ``"distribution"``, ``"factor"``, and ``"random_seed"`` options are allowed. """ + __slots__ = ( "W", "Win", "Wout", "n_input", "n_output", "n_reservoir", @@ -89,37 +112,33 @@ def __init__(self, except AssertionError: raise ValueError(f"ESN.__init__: bias_factor must be non-negative, got {self.bias_factor}") - - if _use_cupy and adjacency_kwargs["normalization"] == "eig": raise ValueError(f"ESN.__init__: with cupy, cannot use eigenvalues to normalize matrices, use 'svd'") + @staticmethod + def _dictstr(mydict): + lefttab = " " + dstr = "" + for key, val in mydict.items(): + dstr += f"{lefttab}{key:<20s}{val}\n" + return dstr + + def __str__(self): rstr = 'ESN\n'+\ f' {"n_input:":<24s}{self.n_input}\n'+\ f' {"n_output:":<24s}{self.n_output}\n'+\ f' {"n_reservoir:":<24s}{self.n_reservoir}\n'+\ - '--- \n'+\ + '---\n'+\ f' {"leak_rate:":<24s}{self.leak_rate}\n'+\ f' {"tikhonov_parameter:":<24s}{self.tikhonov_parameter}\n'+\ - '--- \n'+\ - f' Input Matrix:\n' - for key, val in self.input_kwargs.items(): - rstr += f' {key:<20s}{val}\n' - - rstr += \ - '--- \n'+\ - f' Adjacency Matrix:\n' - for key, val in self.adjacency_kwargs.items(): - rstr += f' {key:<20s}{val}\n' - - rstr += \ - '--- \n'+\ - f' Bias Vector:\n' - for key, val in self.bias_kwargs.items(): - rstr += f' {key:<20s}{val}\n' - + '---\n'+\ + f' Input Matrix:\n{self._dictstr(self.input_kwargs)}'+\ + '---\n'+\ + f' Adjacency Matrix:\n{self._dictstr(self.adjacency_kwargs)}'+\ + '---\n'+\ + f' Bias Vector:\n{self._dictstr(self.bias_kwargs)}' return rstr @@ -139,23 +158,28 @@ def build(self): reservoir input weight matrix """ - is_sparse = self.adjacency_kwargs.pop("is_sparse", True) + # Note: this copy is necessary because we want to remove "is_sparse" + # before passing to either Matrix class, but we want to keep "is_sparse" + # in case the user stores the ESN to zarr + kw = self.adjacency_kwargs.copy() + is_sparse = kw.pop("is_sparse", False) Matrix = SparseRandomMatrix if is_sparse else RandomMatrix WMaker = Matrix( n_rows=self.n_reservoir, n_cols=self.n_reservoir, - **self.adjacency_kwargs) + **kw) self.W = WMaker() if is_sparse and WMaker.density > 0.2: warnings.warn(f"ESN.__init__: adjacency matrix density is >20% but adjacency_kwargs['is_sparse'] = True. Performance could suffer from dense matrix operations with scipy.sparse.", RuntimeWarning) - is_sparse = self.input_kwargs.pop("is_sparse", False) + kw = self.input_kwargs.copy() + is_sparse = kw.pop("is_sparse", False) Matrix = SparseRandomMatrix if is_sparse else RandomMatrix WinMaker = Matrix( n_rows=self.n_reservoir, n_cols=self.n_input, - **self.input_kwargs) + **kw) self.Win = WinMaker() BiasMaker = RandomMatrix( diff --git a/xesn/lazyesn.py b/xesn/lazyesn.py index 32247ff..a71c0ee 100644 --- a/xesn/lazyesn.py +++ b/xesn/lazyesn.py @@ -1,3 +1,4 @@ +import json from functools import reduce import xarray as xr from dask.array import map_blocks, stack @@ -16,13 +17,34 @@ class LazyESN(ESN): """A distributed/parallelized ESN network based on the multi-dimensional generalization of - [Pathak_et_al_2018]_ as used in [Smith_et_al_2023]_, similar to [Arcomano_et_al_2020]_. + the algorithm introduced by :cite:t:`pathak_model-free_2018`, as used in + :cite:t:`smith_temporal_2023`. Assumptions: - 1. Time axis is last + 1. Time axis is last, and it is named "time" 2. Non-global axes, i.e., axes which is chunked up or made up of patches, are first 3. Can handle multi-dimensional data, but only 2D chunking + + Note: + The difference between what is expected for ``overlap`` and ``boundary`` + and what is supplied to dask's overlap function is that here the + dimensions are labelled. This means we expect something like + ``{"x": 1, "y":1, "time": 0}`` rather than ``{0: 1, 1:1, 2:0}``, for + ``overlap`` and similar for ``boundary``. + + Args: + esn_chunks (dict): mapping the input data dimension names to its chunksize + overlap (dict): mapping the input data dimension names to the number of neighboring points in each dimension to include in each local input vector + boundary (dict, str, or float): indicate how to handle the domain boundaries during overlap. Available options are ``"periodic"``, ``"reflect"``, or ``value`` where ``value`` is a value to be filled into the domain, which could be ``np.nan`` for hard boundaries. + n_reservoir (int): size of the reservoir or hidden state for each local network + leak_rate (float): fraction of current hidden state to use during timestepping, ``(1-leak_rate) r(n-1)`` is propagated forward + tikhonov_parameter (float): regularization parameter to prevent overfitting + persist (bool, optional): if True, bring the data into memory using all available computational resources. This is called after calling overlap in :meth:`train` and :meth:`predict`, as well as on the readout weights :attr:`Wout` after training and on the prediction result after computations are complete in :meth:`predict` + input_kwargs (dict, optional): the options to specify :attr:`Win`, use boolean option ``"is_sparse"`` to determine if :class:`RandomMatrix` or :class:`SparseRandomMatrix` is used, then all other options are passed to either of those classes, see their description for available options noting that ``n_rows`` and ``n_cols`` are not necessary. + adjacency_kwargs (dict, optional): the options to specify :attr:`W`, use boolean option ``"is_sparse"`` to determine if :class:`RandomMatrix` or :class:`SparseRandomMatrix` is used, then all other options are passed to either of those classes, see their description for available options noting that ``n_rows`` and ``n_cols`` are not necessary. + bias_kwargs (dict, optional): the options to specifying :attr:`bias_vector` generation. Only ``"distribution"``, ``"factor"``, and ``"random_seed"`` options are allowed. """ + __slots__ = ( "esn_chunks", "overlap", "persist", "boundary" ) @@ -33,7 +55,6 @@ def output_chunks(self): @property def input_chunks(self): - """output chunks expanded to include overlap region""" return {k: self.output_chunks[k]+2*self.overlap[k] for k in self.output_chunks.keys()} @property @@ -42,14 +63,14 @@ def ndim_state(self): return len(self.overlap)-1 @property - def r_chunks(self): + def _r_chunks(self): """The number of dimensions needs to be the same as the original multi-dimensional data""" c = tuple(1 for _ in range(self.ndim_state-1)) c += (self.n_reservoir,) return c @property - def Wout_chunks(self): + def _Wout_chunks(self): chunks = (self.n_output, self.n_reservoir) for _ in range(self.ndim_state - 2): chunks += (1,) @@ -58,12 +79,12 @@ def Wout_chunks(self): def __init__(self, esn_chunks, + overlap, + boundary, n_reservoir, leak_rate, tikhonov_parameter, - overlap, - persist, - boundary=xp.nan, + persist=False, input_kwargs=None, adjacency_kwargs=None, bias_kwargs=None): @@ -109,21 +130,18 @@ def __init__(self, def __str__(self): - rstr = 'Lazy'+super().__str__() - rstr += '--- \n'+\ - f' {"overlap:"}\n' - for key, val in self.overlap.items(): - rstr += f' {key}{val}\n' - rstr += '--- \n'+\ - f' {"ndim_state:":<24s}{self.ndim_state}\n'+\ - f' {"input_chunks:":<24s}{self.input_chunks}\n'+\ - f' {"output_chunks:":<24s}{self.output_chunks}\n'+\ - f' {"r_chunks:":<24s}{self.r_chunks}\n'+\ - f' {"Wout_chunks:":<24s}{self.Wout_chunks}\n'+\ - '--- \n'+\ - f' {"boundary:":<24s}{self.boundary}\n'+\ - f' {"persist:":<24s}{self.persist}\n' + boundary = "\n"+self._dictstr(self.boundary) if isinstance(self.boundary, dict) else str(self.boundary) + rstr = 'LazyESN\n'+\ + f' input_chunks:\n{self._dictstr(self.input_chunks)}'+\ + '---\n'+\ + f' output_chunks:\n{self._dictstr(self.output_chunks)}'+\ + '---\n'+\ + f' overlap:\n{self._dictstr(self.overlap)}'+\ + '---\n'+\ + f' {"boundary:":<24s}{boundary}\n'+\ + '---\n'+\ + super().__str__().replace("ESN\n","") return rstr @@ -137,15 +155,15 @@ def train(self, y, n_spinup=0, batch_size=None): but note that all time data are still loaded into memory regardless of this parameter Sets Attributes: - Wout (array_like): (:attr:`n_ouput`, :attr:`n_reservoir`) - the readout matrix, mapping from reservoir to output space + Wout (array_like): the readout matrix, mapping from reservoir to output space """ self._time_check(y, "LazyESN.train", "y") doverlap = self._dask_overlap(y.dims) + dboundary= self._dask_boundary(y.dims) target_data = y.chunk(self.output_chunks).data - halo_data = overlap(target_data, depth=doverlap, boundary=self.boundary, allow_rechunk=False) + halo_data = overlap(target_data, depth=doverlap, boundary=dboundary, allow_rechunk=False) halo_data = halo_data.persist() if self.persist else halo_data self.Wout = map_blocks( @@ -160,7 +178,7 @@ def train(self, y, n_spinup=0, batch_size=None): leak_rate=self.leak_rate, tikhonov_parameter=self.tikhonov_parameter, drop_axis=-1, - chunks=self.Wout_chunks, + chunks=self._Wout_chunks, enforce_ndim=True, dtype=xp.float64, ) @@ -176,8 +194,9 @@ def predict(self, y, n_steps, n_spinup): # Get overlapped data doverlap = self._dask_overlap(y.dims) + dboundary = self._dask_boundary(y.dims) target_data = y[..., :n_spinup+1].chunk(self.output_chunks).data - halo_data = overlap(target_data, depth=doverlap, boundary=self.boundary) + halo_data = overlap(target_data, depth=doverlap, boundary=dboundary) halo_data = halo_data.persist() if self.persist else halo_data ukw = { "W" : self.W, @@ -195,7 +214,7 @@ def predict(self, y, n_steps, n_spinup): _spinup, halo_data, n_spinup=n_spinup, - chunks=self.r_chunks, + chunks=self._r_chunks, drop_axis=-1, # drop time axis **ukw, **dkw) @@ -208,10 +227,10 @@ def predict(self, y, n_steps, n_spinup): chunksize = target_data[..., 0].chunksize for n in range(n_steps): - r0 = map_blocks(_update_nd, r0, u0, chunks=self.r_chunks, **ukw, **dkw) + r0 = map_blocks(_update_nd, r0, u0, chunks=self._r_chunks, **ukw, **dkw) v = map_blocks(_readout, self.Wout, r0, chunks=chunksize, drop_axis=drop_axis, **dkw) - u0 = overlap(v, depth=doverlap, boundary=self.boundary) + u0 = overlap(v, depth=doverlap, boundary=dboundary) prediction.append(v) # Stack, rechunk, persist, return @@ -233,6 +252,13 @@ def _dask_overlap(self, dims): return {dims.index(d): self.overlap[d] for d in self.overlap.keys()} + def _dask_boundary(self, dims): + if isinstance(self.boundary, dict): + return {dims.index(d): self.boundary[d] for d in self.boundary.keys()} + else: + return self.boundary + + def _train_nd(halo_data, overlap=None, n_spinup=0, diff --git a/xesn/matrix.py b/xesn/matrix.py index 6f008c2..9b20929 100644 --- a/xesn/matrix.py +++ b/xesn/matrix.py @@ -17,6 +17,14 @@ class RandomMatrix(): Use input arguments to control the shape, generator distribution, normalization, and the random number generator seed. + Args: + n_rows (int): number of rows in the matrix + n_cols (int): number of columns in the matrix + distribution (str): distribution to draw elements of the matrix from, either "uniform", or "gaussian" and "normal" are recognized + normalization (str, optional): method used to rescale the matrix, see :meth:`normalize` + factor (float, optional): factor to rescale the matrix with after it's been normalized + random_seed (int, optional): used to control the RNG for matrix generation + Example: Create a 2x2 random matrix with entries from a uniform distribution ranging from -5 to 5 @@ -62,13 +70,6 @@ class RandomMatrix(): >>> max(abs(svd(A, compute_uv=False, full_matrices=False))) 1.0 - Args: - n_rows (int): number of rows in the matrix - n_cols (int): number of columns in the matrix - distribution (str): distribution to draw elements of the matrix from, either "uniform", or "gaussian" and "normal" are recognized - normalization (str, optional): method used to rescale the matrix, see :meth:`normalize` - factor (float, optional): factor to rescale the matrix with after it's been normalized - random_seed (int, optional): used to control the RNG for matrix generation """ __slots__ = ( diff --git a/xesn/test/lazy.py b/xesn/test/lazy.py index e730adc..3058305 100644 --- a/xesn/test/lazy.py +++ b/xesn/test/lazy.py @@ -19,13 +19,14 @@ class TestLazy(TestESN): n_train = 500 esn_chunks = {"x": 3, "time": 1_000} overlap = {"x": 1, "time": 0} + boundary = 0 persist = True equal_list = ("overlap", "esn_chunks", "persist", "overlap", "n_reservoir", "boundary") close_list = ("leak_rate", "tikhonov_parameter") @property def kw(self): - keys = ["esn_chunks", "overlap", "persist"] + keys = ["esn_chunks", "overlap", "persist", "boundary"] kw = super().kw.copy() kw.update({ key: getattr(self, key) for key in keys}) @@ -97,8 +98,8 @@ def test_basic(self): assert esn.esn_chunks == esn.output_chunks assert esn.input_chunks == {"x":self.n_input, "time": self.esn_chunks["time"]} assert esn.ndim_state == 1 - assert esn.r_chunks == (self.n_reservoir,) - assert esn.Wout_chunks == (self.n_output, self.n_reservoir) + assert esn._r_chunks == (self.n_reservoir,) + assert esn._Wout_chunks == (self.n_output, self.n_reservoir) @pytest.mark.parametrize( @@ -159,6 +160,10 @@ def test_many_sizes(self, test_data, n_dim, n_spinup, batch_size): u = expected["data"] kw = self.kw.copy() + + # also test this form of boundary + if n_dim == 4: + kw["boundary"] = {"x": "periodic", "y": 0., "z": "reflect"} kw["esn_chunks"] = expected["chunks"] kw["overlap"] = expected["overlap"] @@ -206,6 +211,8 @@ def custom_setup_method(self, chunks, overlap): kw = self.kw.copy() kw["esn_chunks"] = chunks kw["overlap"] = overlap + if len(chunks) == 4: + kw["boundary"] = {"x": "periodic", "y": 0., "z": "reflect"} esn = LazyESN(**kw) esn.build()