{
"cells": [
{
"cell_type": "markdown",
"id": "a1cc726f",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Physics Informed Neural Networks\n",
"\n",
"**Presenter:** Filippo Maria Bianchi\n",
"\n",
"**Repository:** [github.com/FilippoMB/Physics-Informed-Neural-Networks-tutorial](https://github.com/FilippoMB/Physics-Informed-Neural-Networks-tutorial)"
]
},
{
"cell_type": "markdown",
"id": "e363db51",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Introduction\n",
"\n",
"What are PINNs?\n",
"\n",
"- PINNs are Neural Networks used to learn a generic function $f$.\n",
"- Like standard NNs, PINNs account for observation data $\\{ x_i \\}_{i=1}^N$ in learning $f$.\n",
"- In addition, the optimization of $f$ is guided by a regularization term, which encourages $f$ to be the solution of a Partial Differential Equation (PDE)."
]
},
{
"cell_type": "markdown",
"id": "cffd09a7",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"### Traditional PDE solvers\n",
"\n",
"- Simple problems can be solved analytically.\n",
"- E.g., consider the velocity:\n",
"\n",
"$$v(t) = \\frac{d x}{d t} = \\lim_{h \\rightarrow 0} \\frac{x(t+h) - x(t)}{h}$$\n",
"\n",
"\n",
"\n",
"- Solution: \n",
"\n",
"$$\n",
"v(t) = \n",
"\\begin{cases}\n",
"3/2 & \\text{if}\\; t \\in \\{ 0, 2 \\} \\\\\n",
"0 & \\text{if}\\; t \\in \\{ 2, 4 \\} \\\\\n",
"-1/3 & \\text{if}\\; t \\in \\{ 4, 7 \\}\n",
"\\end{cases}\n",
"$$"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "08b1c65b",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"\n",
"\n",
"- In most real-world problems solutions cannot be found analytically.\n",
"- Differential equations are solved numerically.\n",
"- E.g., they apply the definition of derivative for *all* the point of the time domain."
]
},
{
"cell_type": "markdown",
"id": "45aec619",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"**Limitations of PDE solvers**\n",
"\n",
"- Computationally expensive and scale bad to big data.\n",
"- Integrating external data sources (e.g., from sensors) is problematic."
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "6ee24fff",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Neural Networks\n",
"\n",
"\n",
"\n",
"- Universal function approximators.\n",
"- Can consume any kind of data $\\boldsymbol{X}$.\n",
"- Are trained to minimize a loss, e.g., the error between the predictions $\\boldsymbol{\\hat{y}}$ and the desired outputs $\\boldsymbol{y}$."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "bf86ecd0",
"metadata": {
"run_control": {
"marked": false
},
"slideshow": {
"slide_type": "skip"
}
},
"outputs": [],
"source": [
"# Imports\n",
"import torch\n",
"from torch import nn\n",
"import numpy as np\n",
"from scipy.integrate import solve_ivp\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import cm"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "82760add",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Let's start by creating a simple neural network in PyTorch."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "980ee1b5",
"metadata": {
"run_control": {
"marked": false
},
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"# Define a simple neural network for regression\n",
"class simple_NN(nn.Module):\n",
" def __init__(self):\n",
" super(simple_NN, self).__init__()\n",
" self.linear_tanh_stack = nn.Sequential(\n",
" nn.Linear(1, 16),\n",
" nn.Tanh(),\n",
" nn.Linear(16, 32),\n",
" nn.Tanh(),\n",
" nn.Linear(32, 16),\n",
" nn.Tanh(),\n",
" nn.Linear(16, 1),\n",
" )\n",
"\n",
" def forward(self, x):\n",
" out = self.linear_tanh_stack(x)\n",
" return out"
]
},
{
"cell_type": "markdown",
"id": "a908a777",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"Then,\n",
"- Create a small dataset $\\{x_i, y_i\\}_{i=1, \\dots 5}$.\n",
"- Use the NN to make predictions: $\\hat{y}_i = \\rm{NN}(x_i)$.\n",
"- Train the NN by minimizing $\\rm{MSE}(\\boldsymbol{y}, \\boldsymbol{\\hat{y}})$."
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3a554192",
"metadata": {
"run_control": {
"marked": false
},
"slideshow": {
"slide_type": "-"
}
},
"outputs": [],
"source": [
"# Define dataset\n",
"x_train = torch.tensor([[1.1437e-04],\n",
" [1.4676e-01],\n",
" [3.0233e-01],\n",
" [4.1702e-01],\n",
" [7.2032e-01]], dtype=torch.float32)\n",
"y_train = torch.tensor([[1.0000],\n",
" [1.0141],\n",
" [1.0456],\n",
" [1.0753],\n",
" [1.1565]], dtype=torch.float32)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6d76616a",
"metadata": {
"run_control": {
"marked": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"epoch: 0, loss: 0.865811\n",
"epoch: 200, loss: 0.000253\n",
"epoch: 400, loss: 0.000151\n",
"epoch: 600, loss: 0.000068\n",
"epoch: 800, loss: 0.000017\n"
]
}
],
"source": [
"# Initialize the model\n",
"model = simple_NN()\n",
"\n",
"# define loss and optimizer\n",
"loss_fn = nn.MSELoss()\n",
"optimizer = torch.optim.Adam(model.parameters(), lr=1e-2)\n",
"\n",
"# Train\n",
"for ep in range(1000):\n",
"\n",
" # Compute prediction error\n",
" pred = model(x_train)\n",
" loss = loss_fn(pred, y_train)\n",
"\n",
" # Backpropagation\n",
" optimizer.zero_grad()\n",
" loss.backward()\n",
" optimizer.step()\n",
"\n",
" if ep % 200 == 0:\n",
" print(f\"epoch: {ep}, loss: {loss.item():>7f}\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "aa4644a4",
"metadata": {
"run_control": {
"marked": false
},
"slideshow": {
"slide_type": "subslide"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/MAAAHUCAYAAAB2yngEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB6HklEQVR4nO3dd1yV5f/H8fdhCA7ArSgqrlTUXKS498SVmZZ7VWrlSkvTHJmz3LMsJcvcK1eO3EomJlo5ckCORFITBBQF7t8ffDk/Ty4w4HDg9Xw8zkPPdV/nPp/73FjnzXXf12UyDMMQAAAAAACwGXbWLgAAAAAAACQNYR4AAAAAABtDmAcAAAAAwMYQ5gEAAAAAsDGEeQAAAAAAbAxhHgAAAAAAG0OYBwAAAADAxhDmAQAAAACwMYR5AAAAAABsDGEeAJAm+fn5yWQyydnZWX/++ecj2+vVq6dy5cpZobKkM5lMGjt2bKL6mUwmTZ48+ZFtCZ9HQEBAkt//1KlTGjt2rIKDg5P82pQSHBwsk8mkzz777Llen/BZJTxcXV1Vo0YNLV++PJkrTbsSPkM/Pz9rlwIAsALCPAAgTYuOjtaoUaOsXUaqmjx5sm7dupVs+zt16pTGjRuXpsJ8cmjfvr38/f11+PBhLVy4UOHh4erUqZO+++47a5eWKtzd3eXv7y9fX19rlwIAsALCPAAgTWvWrJm+++47nThxwtqlSJIePHigmJiYFNt/o0aNFBkZqQkTJqTYe1iTYRi6e/dusuwrX7588vHxUfXq1dWpUydt2bJFkvT5558ny/6TIioqKtXf08nJST4+PsqTJ0+qvzcAwPoI8wCANO39999Xrly59MEHHzyzr2EYmj9/vipWrKjMmTMrR44cat++vS5evGjRz9PTUz169Hjk9fXq1VO9evXMz/fu3SuTyaRvvvlG7733ngoWLCgnJyedP39ef//9t/r37y8vLy9ly5ZNefPmVYMGDXTgwIH/dLylSpVS7969NW/evMfeXvBvAQEBat26tXLmzClnZ2dVqlRJq1atMm/38/PTq6++KkmqX7+++bJ0Pz8/zZs3T3Z2dgoNDTX3nzZtmkwmk95++21zW1xcnHLkyKH33nvP3Hbr1i31799fBQsWVKZMmVSsWDGNHDlS0dHRFvWZTCa98847WrhwocqUKSMnJyd9/fXXjz2WBw8eqHv37sqWLZs2b96cuA/sIUWKFFGePHl0/fp1i/bw8HANHTpURYsWVaZMmVSwYEENGjRIkZGRFv1u376t3r17K2fOnMqWLZt8fX118eLFR26TGDt2rEwmk3755Re1b99eOXLkUPHixSUl/mfw+PHjatmypfLmzSsnJycVKFBAvr6+unLlirnP6tWrVa1aNbm5uSlLliwqVqyYevXqZd7+pMvsDx48qIYNG8rFxUVZsmRRjRo1zL/oSJBw28aePXvUr18/5c6dW7ly5VK7du30119/JfmzBwCkPsI8ACBNc3Fx0ahRo7R9+3bt3r37qX3feustDRo0SI0aNdKGDRs0f/58/f7776pRo8YjAS8pRowYoUuXLmnhwoXatGmT8ubNa74MfsyYMdqyZYuWLFmiYsWKqV69etq7d+9zv5cUHxbt7e310UcfPbXfnj17VLNmTd2+fVsLFy7Uxo0bVbFiRXXs2NEc8Hx9fTVx4kRJ0rx58+Tv72++NLtRo0YyDEM//vijeZ+7du1S5syZtXPnTnNbQECAbt++rUaNGkmS7t27p/r162vp0qUaMmSItmzZoi5dumjq1Klq167dI3Vu2LBBCxYs0OjRo7V9+3bVrl37kT63b99W06ZNtWPHDu3bt08tW7ZM8ucWFhamW7du6YUXXjC3RUVFqW7duvr66681YMAAbdu2TR988IH8/PzUunVrGYYhKf4XFq1atdJ3332nDz74QOvXr1e1atXUrFmzJ75fu3btVKJECa1evVoLFy6UlLifwcjISDVu3FjXr1/XvHnztHPnTs2cOVOFCxfWnTt3JEn+/v7q2LGjihUrphUrVmjLli0aPXr0M68K2bdvnxo0aKCwsDB99dVXWr58uVxcXNSqVSutXLnykf59+vSRo6OjvvvuO02dOlV79+5Vly5dkvbBAwCswwAAIA1asmSJIck4evSoER0dbRQrVszw9vY24uLiDMMwjLp16xply5Y19/f39zckGdOmTbPYz+XLl43MmTMb77//vrmtSJEiRvfu3R95z7p16xp169Y1P9+zZ48hyahTp84z642JiTEePHhgNGzY0Hj55ZcttkkyxowZ88x9SDLefvttwzAMY+TIkYadnZ1x4sQJwzAsP48EpUuXNipVqmQ8ePDAYj8tW7Y03N3djdjYWMMwDGP16tWGJGPPnj2PvKeHh4fRq1cvwzAMIzo62siaNavxwQcfGJKMP//80zAMw5gwYYLh6OhoREREGIZhGAsXLjQkGatWrbLY15QpUwxJxo4dOyyOyc3Nzbh165ZF36CgIEOS8emnnxpBQUGGl5eX4eXlZQQHBz/zc0rYb//+/Y0HDx4Y9+/fN/744w+jdevWhouLixEQEGDuN2nSJMPOzs7iczMMw1izZo0hydi6dathGIaxZcsWQ5KxYMECi36TJk165PyNGTPGkGSMHj3aom9ifwYDAgIMScaGDRueeHyfffaZIcm4ffv2E/skfIZLliwxt/n4+Bh58+Y17ty5Y26LiYkxypUrZ3h4eJj//ST8PPXv399in1OnTjUkGdeuXXvi+wIA0gZG5gEAaV6mTJn0ySefKCAgwOIS8odt3rxZJpNJXbp0UUxMjPmRP39+VahQ4T+Nlr/yyiuPbV+4cKEqV64sZ2dnOTg4yNHRUT/++KNOnz793O+V4P3331fOnDmfeHvB+fPndebMGXXu3FmSLI65RYsWunbtms6ePfvM92nYsKF27dolSTp8+LCioqI0ZMgQ5c6d2zw6v2vXLlWvXl1Zs2aVJO3evVtZs2ZV+/btLfaVcOvCwyP9ktSgQQPlyJHjse//yy+/yMfHR/ny5dOhQ4dUpEiRZ9acYP78+XJ0dFSmTJn0wgsvaNu2bVq+fLmqVKli7rN582aVK1dOFStWtPiMmjZtKpPJZP652LdvnySpQ4cOFu/x+uuvP/H9//1zkdifwRIlSihHjhz64IMPtHDhQp06deqRfb/00kvmelatWqWrV68+8/OIjIzUkSNH1L59e2XLls3cbm9vr65du+rKlSuP/Ey0bt3a4vmLL74oSYm6xQMAYF2EeQCATXjttddUuXJljRw5Ug8ePHhk+/Xr12UYhvLlyydHR0eLx08//aQbN24893u7u7s/0jZ9+nT169dP1apV09q1a/XTTz/p6NGjatasWbJM8Obq6qpRo0bphx9+0J49ex7ZnnDJ9tChQx853v79+0tSoo65UaNGunTpks6dO6ddu3apUqVK5vv/d+3apbt37+rw4cPmS+wl6ebNm8qfP79MJpPFvvLmzSsHBwfdvHnTov1xn1+CnTt36vr16+rTp4+yZ8/+zHof1qFDBx09elSHDx/W559/LhcXF7322ms6d+6cuc/169d18uTJRz4jFxcXGYZh/oxu3rwpBwcH5cyZ0+I98uXL98T3//dxJfZn0M3NTfv27VPFihX14YcfqmzZsipQoIDGjBlj/tmuU6eONmzYoJiYGHXr1k0eHh4qV67cU5fe++eff2QYxmM/7wIFCpiP82G5cuWyeO7k5CRJyTZJIQAg5ThYuwAAABLDZDJpypQpaty4sb744otHtufOnVsmk0kHDhwwB5KHPdzm7Oz8yERtUnz4zZ0792Pf+9++/fZb1atXTwsWLLBoT7jnOTn069dPs2bN0gcffKB+/fpZbEuoc8SIEY+9T12Kn0zvWRo2bCgpfvR9586daty4sbl91KhR2r9/v6Kjoy3CfK5cuXTkyBEZhmHx2YSGhiomJuaRz/Bxn1+CYcOG6cKFC+rWrZs5uCZWnjx55O3tLUmqXr26ypQpo7p162rw4MHmCfRy586tzJkza/HixY/dR0KtuXLlUkxMjG7dumUR6ENCQp74/v8+rqT8DJYvX14rVqyQYRg6efKk/Pz89PHHHytz5swaPny4JKlNmzZq06aNoqOj9dNPP2nSpEnq1KmTPD09Vb169Uf2nyNHDtnZ2enatWuPbEuY1O5xP98AANvEyDwAwGY0atRIjRs31scff6yIiAiLbS1btpRhGLp69aq8vb0feZQvX97c19PTUydPnrR4/R9//JGoy9ITmEymRwLbyZMn5e/v/xxH9ngJtxccPXpUq1evtthWqlQplSxZUidOnHjs8Xp7e8vFxUXS00db3d3d5eXlpbVr1+rYsWPmMN+4cWP9/fffmj59ulxdXc2XfUvxQT8iIkIbNmyw2NfSpUvN2xPLzs5On3/+uQYOHKgePXo88suRpKhdu7a6deumLVu2mM9Dy5YtdeHCBeXKleuxn5Gnp6ckqW7dupL0yCRxK1asSPT7J+VnMIHJZFKFChU0Y8YMZc+eXb/88ssjfZycnFS3bl1NmTJFUvxM+I+TNWtWVatWTevWrbM413Fxcfr222/l4eFhMTkgAMC2MTIPALApU6ZMUZUqVRQaGqqyZcua22vWrKk333xTPXv2VEBAgOrUqaOsWbPq2rVrOnjwoMqXL28e3e7atau6dOmi/v3765VXXtGff/6pqVOnJmm97pYtW2r8+PEaM2aM6tatq7Nnz+rjjz9W0aJFk3Ud+tdff12fffaZtm3b9si2zz//XM2bN1fTpk3Vo0cPFSxYULdu3dLp06f1yy+/mH8BUK5cOUnSF198IRcXFzk7O6to0aLmS6wbNmyoOXPmKHPmzKpZs6YkqWjRoipatKh27Nih1q1by8Hh/78ydOvWTfPmzVP37t0VHBys8uXL6+DBg5o4caJatGhhMYqfWNOmTZOLi4v69++viIgIDRs2LMn7kKTx48dr5cqV+uijj7Rr1y4NGjRIa9euVZ06dTR48GC9+OKLiouL06VLl7Rjxw6999575lnra9asqffee0/h4eGqUqWK/P39zb+gsLN79vhHYn8GN2/erPnz56tt27YqVqyYDMPQunXrdPv2bfMvU0aPHq0rV66oYcOG8vDw0O3btzVr1iw5Ojqaf/HwOJMmTVLjxo1Vv359DR06VJkyZdL8+fP122+/afny5U+9SgIAYGOsNvUeAABP8bjZ2xN06tTJkGQxm32CxYsXG9WqVTOyZs1qZM6c2ShevLjRrVs3ixnO4+LijKlTpxrFihUznJ2dDW9vb2P37t1PnM1+9erVj7xPdHS0MXToUKNgwYKGs7OzUblyZWPDhg1G9+7djSJFilj01XPMZv+wHTt2GJIe+3mcOHHC6NChg5E3b17D0dHRyJ8/v9GgQQNj4cKFFv1mzpxpFC1a1LC3t39kBvSNGzcakozGjRtbvOaNN94wJBmzZ89+pKabN28affv2Ndzd3Q0HBwejSJEixogRI4x79+4l6pgens3+YZ9++uljZ4r/tyft1zAMY9iwYYYkY9++fYZhGEZERIQxatQoo1SpUkamTJkMNzc3o3z58sbgwYONkJAQ8+tu3bpl9OzZ08iePbuRJUsWo3HjxsZPP/1kSDJmzZpl7pcwm/3ff//92Pd/1s/gmTNnjNdff90oXry4kTlzZsPNzc2oWrWq4efnZ97H5s2bjebNmxsFCxY0MmXKZOTNm9do0aKFceDAgUc+w4fPpWEYxoEDB4wGDRqY39/Hx8fYtGmTRZ8n/ftK+Jl/3MoHAIC0xWQY/1tgFQAAABa+++47de7cWYcOHVKNGjWsXQ4AAGaEeQAAAEnLly/X1atXVb58ednZ2emnn37Sp59+qkqVKpmXrgMAIK3gnnkAAABJLi4uWrFihT755BNFRkbK3d1dPXr00CeffGLt0gAAeAQj8wAAAAAA2BiWpgMAAAAAwMZYPczv379frVq1UoECBWQymR5Zs/bfDh48qJo1aypXrlzKnDmzSpcurRkzZjzSb+3atfLy8pKTk5O8vLy0fv36FDoCAAAAAABSl9XDfGRkpCpUqKC5c+cmqn/WrFn1zjvvaP/+/Tp9+rRGjRqlUaNG6YsvvjD38ff3V8eOHdW1a1edOHFCXbt2VYcOHXTkyJGUOgwAAAAAAFJNmrpn3mQyaf369Wrbtm2SXteuXTtlzZpV33zzjSSpY8eOCg8P17Zt28x9mjVrphw5cmj58uWJ2mdcXJz++usvubi4yGQyJakeAAAAAACSyjAM3blzRwUKFJCd3dPH3m1+Nvvjx4/r8OHDFjPN+vv7a/DgwRb9mjZtqpkzZz5xP9HR0YqOjjY/v3r1qry8vJK9XgAAAAAAnuby5cvy8PB4ah+bDfMeHh76+++/FRMTo7Fjx6pPnz7mbSEhIcqXL59F/3z58ikkJOSJ+5s0aZLGjRv3SPvly5fl6uqafIUDAAAAAPAY4eHhKlSokFxcXJ7Z12bD/IEDBxQREaGffvpJw4cPV4kSJfT666+bt//70njDMJ56ufyIESM0ZMgQ8/OED9HV1ZUwDwAAAABINYm51dtmw3zRokUlSeXLl9f169c1duxYc5jPnz//I6PwoaGhj4zWP8zJyUlOTk4pVzAAAAAAAMnE6rPZJwfDMCzud69evbp27txp0WfHjh2qUaNGapcGAAAAAECys/rIfEREhM6fP29+HhQUpMDAQOXMmVOFCxfWiBEjdPXqVS1dulSSNG/ePBUuXFilS5eWFL/u/GeffaZ3333XvI+BAweqTp06mjJlitq0aaONGzdq165dOnjwYOoeHAAAAAAAKcDqYT4gIED169c3P0+4b7179+7y8/PTtWvXdOnSJfP2uLg4jRgxQkFBQXJwcFDx4sU1efJkvfXWW+Y+NWrU0IoVKzRq1Ch99NFHKl68uFauXKlq1aola+2GYSgmJkaxsbHJul8gpdjb28vBwYHlFgEAAAAbl6bWmU9LwsPD5ebmprCwsMdOgHf//n1du3ZNUVFRVqgOeH5ZsmSRu7u7MmXKZO1SAAAAADzkWTn0YVYfmbdFcXFxCgoKkr29vQoUKKBMmTIx0ok0zzAM3b9/X3///beCgoJUsmRJ2dmli2kzAAAAgAyHMP8c7t+/r7i4OBUqVEhZsmSxdjlAomXOnFmOjo76888/df/+fTk7O1u7JAAAAADPgWG5/4BRTdgifm4BAAAA28e3egAAAAAAbAxhHgAAAAAAG0OYx39Wr149DRo0KNH9g4ODZTKZFBgYmGI1PcnevXtlMpl0+/btVH9vAAAAAEguTICXgTxrxv3u3bvLz88vyftdt26dHB0dE92/UKFCunbtmnLnzp3k97KGevXqqWLFipo5c6a1SwEAAAAASYR5q4uNlQ4ckK5dk9zdpdq1JXv7lHmva9eumf++cuVKjR49WmfPnjW3Zc6c2aL/gwcPEhXSc+bMmaQ67O3tlT9//iS9BgAAAADw/7jM3orWrZM8PaX69aVOneL/9PSMb08J+fPnNz/c3NxkMpnMz+/du6fs2bNr1apVqlevnpydnfXtt9/q5s2bev311+Xh4aEsWbKofPnyWr58ucV+/32ZvaenpyZOnKhevXrJxcVFhQsX1hdffGHe/u/L7BMuff/xxx/l7e2tLFmyqEaNGha/aJCkTz75RHnz5pWLi4v69Omj4cOHq2LFik895q1bt+qFF15Q5syZVb9+fQUHB1tsf9bx9ejRQ/v27dOsWbNkMplkMpkUHBys2NhY9e7dW0WLFlXmzJlVqlQpzZo1K/EnAwAAAECyiI2NVWhoqH799Vf9+OOPWr58uWbNmqUPP/xQffr0UevWreXj46OSJUsqLi7O2uUmG0bmrWTdOql9e8kwLNuvXo1vX7NGatcu9ev64IMPNG3aNC1ZskROTk66d++eqlSpog8++ECurq7asmWLunbtqmLFiqlatWpP3M+0adM0fvx4ffjhh1qzZo369eunOnXqqHTp0k98zciRIzVt2jTlyZNHffv2Va9evXTo0CFJ0rJlyzRhwgTNnz9fNWvW1IoVKzRt2jQVLVr0ifu7fPmy2rVrp759+6pfv34KCAjQe++9Z9HnWcc3a9Ys/fHHHypXrpw+/vhjSVKePHkUFxcnDw8PrVq1Srlz59bhw4f15ptvyt3dXR06dEjKRw4AAADgMe7du6e//vpLf/31l65du6aQkBCFhIRY/D0kJEShoaGKjY1N1D7/+ecf5cqVK4UrTx2EeSuIjZUGDnw0yEvxbSaTNGiQ1KZNyl1y/ySDBg1Su3/9FmHo0KHmv7/77rv64YcftHr16qeG+RYtWqh///6S4n9BMGPGDO3du/epYX7ChAmqW7euJGn48OHy9fXVvXv35OzsrDlz5qh3797q2bOnJGn06NHasWOHIiIinri/BQsWqFixYpoxY4ZMJpNKlSqlX3/9VVOmTDH3KViw4FOPz83NTZkyZVKWLFksbg2wt7fXuHHjzM+LFi2qw4cPa9WqVYR5AAAA4CkMw9CtW7d0+fJlXb58WVeuXNFff/2lq1evmsP71atXdevWrUTv02QyKVeuXMqbN6/y5cunvHnzPvbh4uKSgkeWugjzVnDggHTlypO3G4Z0+XJ8v3r1Uq0sSZK3t7fF89jYWE2ePFkrV67U1atXFR0drejoaGXNmvWp+3nxxRfNf0+4nD80NDTRr3F3d5ckhYaGqnDhwjp79qz5lwMJqlatqt27dz9xf6dPn5aPj4/FxH/Vq1dPluOTpIULF+rLL7/Un3/+qbt37+r+/fvPvOwfAAAASO8iIyN16dIl/fnnn/rzzz8tQnvCn3fv3k3UvpydnVWgQAG5u7vL3d1d+fPnN/+Z8HB3d1eePHnk4JCx4m3GOto04qF56JKlX3L6d4idNm2aZsyYoZkzZ6p8+fLKmjWrBg0apPv37z91P/+eOM9kMj3z/pSHX5MQwB9+zb9n4zced2lDErZLz398q1at0uDBgzVt2jRVr15dLi4u+vTTT3XkyJFnvicAAABgy+7cuaOgoCDzIyG0//nnn7p06ZJu3LiRqP3kzZtXhQoVkoeHhwoWLKgCBQqY/0z4e/bs2Z+5KldGRZi3gv8NOidbv5R04MABtWnTRl26dJEUH67PnTunMmXKpGodpUqV0s8//6yuXbua2wICAp76Gi8vL23YsMGi7aeffrJ4npjjy5Qp0yP34Bw4cEA1atSwuFrgwoULSTomAAAAIC2KiYnRpUuXdOHCBV28eNEc2hP+fvPmzWfuw9XVVUWKFFGRIkVUuHBheXh4qFChQhbh3dnZORWOJv0izFtB7dqSh0f8ZHePGzw2meK3166d+rX9W4kSJbR27VodPnxYOXLk0PTp0xUSEpLqYf7dd9/VG2+8IW9vb9WoUUMrV67UyZMnVaxYsSe+pm/fvpo2bZqGDBmit956S8eOHZOfn59Fn8Qcn6enp44cOaLg4GBly5ZNOXPmVIkSJbR06VJt375dRYsW1TfffKOjR48+dUI+AAAAIK2Ijo5WUFCQLly4oPPnz+v8+fPmvwcFBSkmJuapr8+VK5eKFi2qokWLmkN7QnAvUqSIsmfPnjoHkoER5q3A3l6aNSt+1nqTyTLQJ1xBMnNm6k9+9zgfffSRgoKC1LRpU2XJkkVvvvmm2rZtq7CwsFSto3Pnzrp48aKGDh2qe/fuqUOHDurRo4d+/vnnJ76mcOHCWrt2rQYPHqz58+eratWq5iXzEiTm+IYOHaru3bvLy8tLd+/eVVBQkPr27avAwEB17NhRJpNJr7/+uvr3769t27al6OcAAAAAJFZcXJwuX76sP/7445FHcHDwU2+DdXJyUtGiRVW8eHEVLVpUxYoVM4f3okWLytXVNRWPBI9jMhJzY3EGFB4eLjc3N4WFhT3yg3rv3j0FBQWpaNGi/+nSkHXr4me1f3gyvEKF4oO8NZalszWNGzdW/vz59c0331i7FJuSXD+/AAAASBuioqL0xx9/6PTp0zp9+rTOnDmjM2fO6Ny5c7p3794TX5ctWzYVL15cJUqUUIkSJSz+XrBgQdnZ2aXiUUB6eg79N0bmrahdu/jl5w4ciJ/szt09/tL6tDAin9ZERUVp4cKFatq0qezt7bV8+XLt2rVLO3futHZpAAAAQKoICwvTqVOn9Pvvv+vUqVPm4P7nn38+cfJnR0dHFS9eXC+88MIjj/z58zO5nA0jzFuZvX3qLz9ni0wmk7Zu3apPPvlE0dHRKlWqlNauXatGjRpZuzQAAAAgWUVERJhD+2+//abff/9dv//+u648ZX3rXLlyqUyZMipdurT5z1KlSqlIkSIZbsm2jIKzCpuQOXNm7dq1y9plAAAAAMkmNjZWFy5c0MmTJ82PX3/9VRcvXnziawoWLKiyZcvKy8tLZcqUMT9y586dipUjLSDMAwAAAEAKCwsL04kTJxQYGKgTJ07o5MmT+v3333X37t3H9s+fP7/Kli1rfpQrV05eXl7MEg8zwjwAAAAAJBPDMHT16lUFBgYqMDBQx48fV2Bg4BNH2zNnzqxy5crpxRdfND/Kly+vXLlypXLlsDWEeQAAAAB4DoZh6NKlSzp27JjF48aNG4/tX7hwYVWsWFEVKlRQhQoVVL58eRUvXlz2zICN50CYBwAAAIBnMAxDly9fVkBAwDODu729vUqXLq1KlSqpYsWKqlSpkipUqMBoO5IVYR4AAAAA/uWff/7R0aNH9fPPP5sf169ff6Sfg4ODypUrpypVqsjb21uVK1dW+fLllTlzZitUjYyEMA8AAAAgQ7t//76OHz+uI0eOmIP7uXPnHumXENy9vb1VpUoVValSReXLl5ezs7MVqkZGR5gH/sXPz0+DBg3S7du3rfL+np6eGjRokAYNGmSV9wcAAEjv/vrrL/n7+5sfx44dU3R09CP9SpQooapVq5ofFStWZMQdaQZhPoPp0aOHvv76a02aNEnDhw83t2/YsEEvv/yyDMOQJO3du1f169dX2bJldeLECYtJObJnz66ZM2eqR48eqV1+qujYsaNatGiR4u/zpF8aHD16VFmzZk3x9wcAAMgIYmJiFBgYqEOHDunw4cPy9/fX5cuXH+mXK1cu+fj4qFq1aqpatapeeukl5cyZ0woVA4lDmM+AnJ2dNWXKFL311lvKkSPHU/teuHBBS5cuVc+ePVOpuudnGIZiY2Pl4PDffqwzZ85s1d+45smTx2rvDQAAYOvu3Lmjn376SQcPHtShQ4f0008/KTIy0qKPnZ2dypcvr+rVq5sfJUqUkMlkslLVQNLZWbuA9MIwDEVGRlrlkTCanliNGjVS/vz5NWnSpGf2fffddzVmzBjdu3cv0fs/evSoGjdurNy5c8vNzU1169bVL7/8YtHHZDJpwYIFat68uTJnzqyiRYtq9erV5u3BwcEymUxasWKFatSoIWdnZ5UtW1Z79+4199m7d69MJpO2b98ub29vOTk56cCBA4qOjtaAAQOUN29eOTs7q1atWjp69Kgk6d69eypbtqzefPNN836CgoLk5uamRYsWSYofMc+ePbt5+9ixY1WxYkUtXrxYhQsXVrZs2dSvXz/FxsZq6tSpyp8/v/LmzasJEyZYHOP06dNVvnx5Zc2aVYUKFVL//v0VERFhrr1nz54KCwuTyWSSyWTS2LFjJcVfZj9z5kzzfi5duqQ2bdooW7ZscnV1VYcOHSwmX0mo75tvvpGnp6fc3Nz02muv6c6dO4k+ZwAAALbq+vXrWr16tQYMGKDKlSsre/bsatKkiT7++GP9+OOPioyMVPbs2dWiRQtNmDBBu3fvVlhYmAIDA7VgwQJ169ZNJUuWJMjD5jAyn0yioqKULVs2q7x3REREki7Ltre318SJE9WpUycNGDBAHh4eT+w7aNAgffvtt5o7d66GDh2aqP3fuXNH3bt31+zZsyVJ06ZNU4sWLXTu3Dm5uLiY+3300UeaPHmyZs2apW+++Uavv/66ypUrpzJlypj7DBs2TDNnzpSXl5emT5+u1q1bKygoyGJZj/fff1+fffaZihUrpuzZs+v999/X2rVr9fXXX6tIkSKaOnWqmjZtqvPnzytnzpxatmyZqlWrphYtWqhVq1bq2rWr6tevrzfeeOOJx3ThwgVt27ZNP/zwgy5cuKD27dsrKChIL7zwgvbt26fDhw+rV69eatiwoXx8fCTF/8Z39uzZ8vT0VFBQkPr376/3339f8+fPV40aNTRz5kyNHj1aZ8+elaTH/vwYhqG2bdsqa9as2rdvn2JiYtS/f3917NjR4hcbFy5c0IYNG7R582b9888/6tChgyZPnvzILxgAAABs3dWrV7Vv3z7t27dP+/fv15kzZx7p4+npqVq1aqlmzZqqVauWvLy8ZGfHOCbSGQOPFRYWZkgywsLCHtl29+5d49SpU8bdu3fNbREREYYkqzwiIiISfVzdu3c32rRpYxiGYfj4+Bi9evUyDMMw1q9fbzz847Bnzx5DkvHPP/8YCxcuNHLmzGncvn3bMAzDcHNzM5YsWZLo94yJiTFcXFyMTZs2mdskGX379rXoV61aNaNfv36GYRhGUFCQIcmYPHmyefuDBw8MDw8PY8qUKRY1btiwwdwnIiLCcHR0NJYtW2Zuu3//vlGgQAFj6tSp5rapU6cauXPnNt59910jf/78xt9//23etmTJEsPNzc38fMyYMUaWLFmM8PBwc1vTpk0NT09PIzY21txWqlQpY9KkSU/8HFatWmXkypXrie+ToEiRIsaMGTMMwzCMHTt2GPb29salS5fM23///XdDkvHzzz8/sb5hw4YZ1apVe2wdj/v5BQAASKv+/PNPw8/Pz+jZs6dRrFixx34ffvHFF4133nnHWLlypXHlyhVrlww8t6fl0H9jZD6ZZMmSxXwJtTXe+3lMmTJFDRo00HvvvffUfr1799b06dM1ZcoUTZw48Zn7DQ0N1ejRo7V7925dv35dsbGxioqK0qVLlyz6Va9e/ZHngYGBT+zj4OAgb29vnT592qKPt7e3+e8XLlzQgwcPVLNmTXObo6OjqlatavG69957Txs3btScOXO0bds25c6d+6nH5OnpaXFVQb58+WRvb2/xG958+fIpNDTU/HzPnj2aOHGiTp06pfDwcMXExOjevXuKjIxM9JUUp0+fVqFChVSoUCFzm5eXl7Jnz67Tp0/rpZdeemx97u7uFrUAAADYipCQEO3Zs0d79uzR7t27deHCBYvtdnZ2qly5surUqaO6deuqVq1aTFSHDIkwn0xMJpPNzUBep04dNW3aVB9++OFTZ6Z3cHDQJ598oh49euidd9555n579Oihv//+WzNnzlSRIkXk5OSk6tWr6/79+898bWLuVfp3n4c/d+N/8wf8u49hGBZtoaGhOnv2rOzt7XXu3Dk1a9bsqe/p6Oj4SA2Pa4uLi5Mk/fnnn2rRooX69u2r8ePHK2fOnDp48KB69+6tBw8ePPMYn1T3k9qfVgsAAEBaduvWLe3du1e7d+/Wnj17dOrUKYvt9vb28vb2Vr169VS3bl3VrFlTrq6uVqoWSDsI8xnc5MmTVbFiRb3wwgtP7ffqq6/q008/1bhx4565zwMHDmj+/Pnm5d0uX76sGzduPNLvp59+Urdu3SyeV6pU6ZE+derUkRS/rMixY8ee+guFEiVKKFOmTDp48KA6deokSXrw4IECAgIs1m3v1auXypUrpzfeeEO9e/dWw4YN5eXl9cxjS6yAgADFxMRo2rRp5tH7VatWWfTJlCmTYmNjn7ofLy8vXbp0SZcvXzaPzp86dUphYWEWcwsAAADYiujoaB0+fFg7d+7Url27FBAQYDGhs8lkUsWKFdWgQQPVr19ftWvXJrwDj0GYz+DKly+vzp07a86cOc/sO3nyZDVt2vSZ/UqUKKFvvvlG3t7eCg8P17Bhwx671Nvq1avl7e2tWrVqadmyZfr555/11VdfWfSZN2+eSpYsqTJlymjGjBn6559/1KtXrye+d9asWdWvXz8NGzZMOXPmVOHChTV16lRFRUWpd+/e5n36+/vr5MmTKlSokLZt26bOnTvryJEjypQp0zOPLzGKFy+umJgYzZkzR61atdKhQ4e0cOFCiz6enp6KiIjQjz/+qAoVKihLliyP3DLRqFEjvfjii+rcubNmzpxpngCvbt26FrcXAAAApFWGYejXX381h/f9+/crKirKok+ZMmXUsGFD1a9fX3Xr1rWY7BjA4zGlIzR+/PhELW/XoEEDNWjQQDExMU/tt3jxYv3zzz+qVKmSunbtal4m7t/GjRunFStW6MUXX9TXX3+tZcuWPTI6PnnyZE2ZMkUVKlTQgQMHtHHjxmfe3z558mS98sor6tq1qypXrqzz589r+/btypEjh86cOaNhw4Zp/vz55pHuefPm6fbt2/roo4+e+RkkVsWKFc3zDJQrV07Lli17ZCnAGjVqqG/fvurYsaPy5MmjqVOnPrIfk8mkDRs2KEeOHKpTp44aNWqkYsWKaeXKlclWKwAAQHK7ceOGli9fru7du8vd3V0VKlTQ0KFD9cMPPygqKkr58+dXly5d5OfnpytXrujUqVOaM2eO2rVrR5AHEslkJCbFZUDh4eFyc3NTWFjYI5f13Lt3T0FBQSpatKicnZ2tVKFtM5lMWr9+vdq2bfvY7cHBwSpatKiOHz+uihUrpmpt6R0/vwAAILnFxMTo559/1g8//KAffvjhkUvns2TJorp166pRo0Zq3LixypUrx7ruwGM8LYf+G5fZAwAAAEiykJAQbd26VT/88IN27typ27dvW2x/8cUX1axZMzVr1kw1atSQk5OTdQoF0inCPAAAAIBniouLU0BAgLZs2aItW7bo2LFjFttz5MihJk2aqFmzZmrSpIkKFChgpUqBjIEwD6t41t0dnp6eibqPHwAAACnn9u3b2rFjh7Zs2aJt27bp77//ttju7e2tFi1aqHnz5nrppZdkb29vpUqBjIcwDwAAAMAsKChI33//vb7//nvt37/fYvJjFxcXNWnSRL6+vmrevLny589vxUqBjI0w/x8wcgxbxM8tAAB4WMLl8wkB/tdff7XYXqpUKfn6+srX11e1atVKtqV8Afw3hPnn4OjoKEmKiop67PrpQFqWsK5rws8xAADIeO7du6cff/xRGzdu1KZNmxQSEmLeZmdnp9q1a6t169Zq1aqVSpYsacVKATwJYf452NvbK3v27AoNDZUUv9QGS2sgrTMMQ1FRUQoNDVX27Nm5pw0AgAwmPDxc27Zt07p167R161ZFRESYt2XLlk3NmzdX69at1bx5c9Z6B2wAYf45JdwflBDoAVuRPXt27m8DACCDCA0N1ffff6/169dr165dun//vnlbgQIF1KZNG7Vp00b16tVj6TjAxhDmn5PJZJK7u7vy5s2rBw8eWLscIFEcHR0ZkQcAIJ27evWq1q1bpzVr1ujgwYOKi4szbytZsqTatWunl19+WS+99JLs7OysWCmA/4Iw/x/Z29sTjgAAAGBVV65c0dq1a7V69WodOnTIYlvlypX18ssv6+WXX5aXlxe3hwLpBGEeAAAAsEGXLl3SmjVrtGbNGvn7+1tsq169utq3b6927drJ09PTOgUCSFGEeQAAAMBGXL16VatXr9aKFSt05MgRc7vJZFLNmjXVvn17vfLKK/Lw8LBilQBSg9Vvktm/f79atWqlAgUKyGQyacOGDU/tv27dOjVu3Fh58uSRq6urqlevru3bt1v08fPzk8lkeuRx7969FDwSAAAAIPn9/fffWrBggerVq6dChQpp8ODBOnLkiEwmk+rUqaM5c+boypUrOnDggAYOHEiQBzIIq4/MR0ZGqkKFCurZs6deeeWVZ/bfv3+/GjdurIkTJyp79uxasmSJWrVqpSNHjqhSpUrmfq6urjp79qzFa52dnZO9fgAAACC53b59W+vXr9eKFSv0448/KjY21rytZs2a6tixo9q3by93d3crVgnAmqwe5ps3b67mzZsnuv/MmTMtnk+cOFEbN27Upk2bLMK8yWRi+S0AAADYjLt372rz5s1atmyZtm3bZrGMXJUqVfTaa6+pQ4cOKly4sBWrBJBWWD3M/1dxcXG6c+eOcubMadEeERGhIkWKKDY2VhUrVtT48eMtwv6/RUdHKzo62vw8PDw8xWoGAAAAJCk2NlZ79uzRsmXLtG7dOovvoOXKldNrr72mjh07qkSJElasEkBaZPNhftq0aYqMjFSHDh3MbaVLl5afn5/Kly+v8PBwzZo1SzVr1tSJEydUsmTJx+5n0qRJGjduXGqVDQAAgAzKMAz98ssvWrZsmVasWKFr166ZtxUuXFidOnVS586dVa5cOStWCSCtMxmGYVi7iAQmk0nr169X27ZtE9V/+fLl6tOnjzZu3KhGjRo9sV9cXJwqV66sOnXqaPbs2Y/t87iR+UKFCiksLEyurq5JOg4AAADg3y5fvqxvv/1WS5cu1ZkzZ8ztOXLkUIcOHdS5c2fVrFlTdnZWn6MagJWEh4fLzc0tUTnUZkfmV65cqd69e2v16tVPDfKSZGdnp5deeknnzp17Yh8nJyc5OTkld5kAAADIwCIiIrRu3TotXbpUu3fvVsI4mrOzs1q3bq3OnTurWbNmypQpk5UrBWBrbDLML1++XL169dLy5cvl6+v7zP6GYSgwMFDly5dPheoAAACQkcXFxWnPnj1aunSp1q5dq8jISPO2unXrqlu3bmrfvj1XfwL4T6we5iMiInT+/Hnz86CgIAUGBipnzpwqXLiwRowYoatXr2rp0qWS4oN8t27dNGvWLPn4+CgkJESSlDlzZrm5uUmSxo0bJx8fH5UsWVLh4eGaPXu2AgMDNW/evNQ/QAAAAGQI58+fl5+fn5YuXarLly+b20uUKKFu3bqpa9eu8vT0tF6BANIVq4f5gIAA1a9f3/x8yJAhkqTu3bvLz89P165d06VLl8zbP//8c8XExOjtt9/W22+/bW5P6C/Fr8v55ptvKiQkRG5ubqpUqZL279+vqlWrps5BAQAAIEOIjIzUmjVrtHjxYu3fv9/cnj17dr322mvq1q2bfHx8ZDKZrFglgPQoTU2Al5YkZeIBAAAAZByGYcjf31+LFy/WypUrFRERISl+nqYmTZqoZ8+eat26tZydna1cKQBbkyEmwAMAAABS0/Xr1/X1119r8eLFOnv2rLm9ePHi6tWrl7p16yYPDw8rVgggIyHMAwAAAE8QGxurnTt3atGiRfr+++8VExMjScqSJYs6dOigXr16qVatWlxGDyDVEeYBAACAf7ly5YoWL16sr776ymL+Jh8fH/Xp00cdOnSQi4uLFSsEkNER5gEAAABJMTEx2rJlixYtWqRt27YpLi5OkpQjRw517dpVb7zxhsqVK2flKgEgHmEeAAAAGdqVK1f05ZdfatGiRfrrr7/M7XXr1tUbb7yhV155hcnsAKQ5hHkAAABkOHFxcdqxY4cWLlyoTZs2mUfh8+TJox49eqhPnz564YUXrFwlADwZYR4AAAAZRmhoqJYsWaLPP/9cQUFB5vZ69eqpb9++evnll5UpUyYrVggAiUOYBwAAQLpmGIYOHTqkefPmae3atXrw4IEkKXv27OrRo4feeustlS5d2spVAkDSEOYBAACQLkVGRmrZsmWaN2+eTp48aW738fFR37591aFDB2XOnNmKFQLA8yPMAwAAIF05d+6c5s+fryVLligsLEySlDlzZnXp0kX9+vVTpUqVrFwhAPx3hHkAAADYvNjYWG3dulXz5s3T9u3bze3FixfX22+/rR49eihHjhxWrBAAkhdhHgAAADYrLCxMX331lebOnWue0M5kMqlFixZ655131KRJE9nZ2Vm5SgBIfoR5AAAA2JyzZ89qzpw58vPzU2RkpCQpR44c6t27t/r166dixYpZuUIASFmEeQAAANiEhLXhZ8+erW3btpnby5YtqwEDBqhLly7KkiWLFSsEgNRDmAcAAECaFhkZqa+//lqzZ8/W2bNnJcVfSt+yZUsNHDhQDRo0kMlksnKVAJC6CPMAAABIk65evaq5c+fq888/1z///CNJcnV1Va9evfTOO++oePHiVq4QAKyHMA8AAIA05ZdfftGMGTO0YsUKxcTESJJKlCihAQMGqEePHnJxcbFyhQBgfYR5AAAAWF1cXJy2bNmi6dOna+/eveb2OnXqaMiQIWrZsqXs7e2tVyAApDGEeQAAAFjN3bt35efnpxkzZujcuXOSJAcHB3Xo0EGDBw+Wt7e3lSsEgLSJMA8AAIBUd+PGDc2bN09z587VjRs3JElubm5666239M4776hQoUJWrhAA0jbCPAAAAFLNhQsXNH36dC1ZskR3796VJHl6emrw4MHq1auXsmXLZuUKAcA2EOYBAACQ4n7++Wd9+umnWrduneLi4iRJlStX1rBhw9S+fXs5OPC1FACSgv9qAgAAIEUYhqEffvhBU6ZM0b59+8ztzZo107Bhw1S/fn3WhweA50SYBwAAQLKKiYnRmjVrNHnyZJ04cUJS/KR2nTp10tChQ1W+fHkrVwgAto8wDwAAgGRx7949+fn56dNPP9XFixclSVmzZtVbb72lQYMGMakdACQjwjwAAAD+k7CwMC1YsEAzZ87U9evXJUm5cuXSwIED9fbbbytnzpxWrhAA0h/CPAAAAJ5LaGioZsyYofnz5ys8PFySVLhwYQ0dOlS9evVS1qxZrVwhAKRfhHkAAAAkyZUrV/Tpp59q0aJF5uXlvLy89MEHH+j111+Xo6OjlSsEgPSPMA8AAIBEuXDhgqZMmSI/Pz89ePBAkvTSSy9p5MiRatWqlezs7KxcIQBkHIR5AAAAPNWpU6c0ceJELV++3LxGfN26dTVy5Eg1atSI5eUAwAoI8wAAAHis48eP65NPPtG6devMbc2bN9fIkSNVs2ZNK1YGACDMAwAAwEJAQIA+/vhjbdq0ydzWrl07ffjhh6pSpYoVKwMAJCDMAwAAQJJ05MgRffzxx9q6daskyc7OTq+//ro+/PBDeXl5Wbk6AMDDCPMAAAAZ3OHDhzVu3Djt2LFDkmRvb6/OnTvrww8/VKlSpaxcHQDgcQjzAAAAGdSBAwc0btw4/fjjj5LiQ3z37t01YsQIlShRwsrVAQCehjAPAACQwRw8eFBjxozR7t27JUkODg7q2bOnRowYoaJFi1q5OgBAYhDmAQAAMojDhw9rzJgx2rVrlyTJ0dFRvXv31vDhw1WkSBErVwcASArCPAAAQDp35MgRjRkzRtu3b5cUPxLfq1cvffjhh4R4ALBRhHkAAIB06ujRoxozZoy2bdsmKf6e+J49e2rkyJHy9PS0bnEAgP+EMA8AAJDOBAYGavTo0eZ14u3t7dWtWzeNGjVKxYoVs3J1AIDkQJgHAABIJ06fPq0xY8Zo9erVkuLXie/atatGjRrF7PQAkM4Q5gEAAGzchQsXNG7cOC1btkxxcXEymUx67bXXNGbMGNaJB4B0ijAPAABgoy5duqRPPvlEixcvVmxsrCTp5Zdf1rhx41S+fHkrVwcASEmEeQAAABtz/fp1TZgwQZ9//rnu378vSWrevLk+/vhjeXt7W7k6AEBqIMwDAADYiNu3b+vTTz/VzJkzFRUVJUmqV6+ePvnkE9WsWdPK1QEAUhNhHgAAII2LiorS7NmzNWXKFN2+fVuSVLVqVU2cOFENGza0bnEAAKsgzAMAAKRR9+/f15dffqnx48crJCREklS2bFl98sknatOmjUwmk5UrBABYC2EeAAAgjYmNjdV3332nMWPGKCgoSJLk6empjz/+WJ06dZK9vb2VKwQAWBthHgAAII0wDENbt27V8OHD9dtvv0mS8ufPr48++kh9+vRRpkyZrFwhACCtsLN2Afv371erVq1UoEABmUwmbdiw4an9161bp8aNGytPnjxydXVV9erVtX379kf6rV27Vl5eXnJycpKXl5fWr1+fQkcAAADw3/n7+6tu3bpq2bKlfvvtN2XPnl2TJk3S+fPn1b9/f4I8AMCC1cN8ZGSkKlSooLlz5yaq//79+9W4cWNt3bpVx44dU/369dWqVSsdP37c3Mff318dO3ZU165ddeLECXXt2lUdOnTQkSNHUuowAAAAnsupU6fUtm1b1ahRQwcOHJCzs7Pef/99Xbx4UcOHD1fWrFmtXSIAIA0yGYZhWLuIBCaTSevXr1fbtm2T9LqyZcuqY8eOGj16tCSpY8eOCg8P17Zt28x9mjVrphw5cmj58uWJ2md4eLjc3NwUFhYmV1fXJNUDAADwLJcvX9bYsWPl5+enuLg42dnZqVevXhozZow8PDysXR4AwAqSkkOtPjL/X8XFxenOnTvKmTOnuc3f319NmjSx6Ne0aVMdPnz4ifuJjo5WeHi4xQMAACC5/fPPP3r//fdVsmRJLV68WHFxcXr55Zf122+/adGiRQR5AECi2HyYnzZtmiIjI9WhQwdzW0hIiPLly2fRL1++fOYlXR5n0qRJcnNzMz8KFSqUYjUDAICM5969e5o2bZqKFy+uTz/9VNHR0apTp478/f21bt06lSlTxtolAgBsiE2H+eXLl2vs2LFauXKl8ubNa7Ht3+uuGobx1LVYR4wYobCwMPPj8uXLKVIzAADIWOLi4vTtt9+qVKlSGjp0qP755x+VK1dOmzdv1t69e+Xj42PtEgEANshml6ZbuXKlevfurdWrV6tRo0YW2/Lnz//IKHxoaOgjo/UPc3JykpOTU4rUCgAAMqZdu3bp/fffN0/UW7BgQY0fP17dunVjrXgAwH9ikyPzy5cvV48ePfTdd9/J19f3ke3Vq1fXzp07Ldp27NihGjVqpFaJAAAgAztx4oSaNWumxo0b6/jx43J1ddWkSZP0xx9/qGfPngR5AMB/ZvWR+YiICJ0/f978PCgoSIGBgcqZM6cKFy6sESNG6OrVq1q6dKmk+CDfrVs3zZo1Sz4+PuYR+MyZM8vNzU2SNHDgQNWpU0dTpkxRmzZttHHjRu3atUsHDx5M/QMEAAAZxpUrVzRq1CgtXbpUhmHI0dFR/fv316hRo5Q7d25rlwcASEesvjTd3r17Vb9+/Ufau3fvLj8/P/Xo0UPBwcHau3evJKlevXrat2/fE/snWLNmjUaNGqWLFy+qePHimjBhgtq1a5fouliaDgAAJNadO3c0ZcoUTZ8+XXfv3pUkvfbaa5owYYKKFStm5eoAALYiKTnU6mE+rSLMAwCAZ4mJidFXX32l0aNHKzQ0VJJUu3ZtffbZZ6pataqVqwMA2Jqk5FCrX2YPAABgawzD0NatWzVs2DCdPn1aklSyZElNnTpVbdq0eeoKOgAAJAfCPAAAQBIcP35cQ4cO1e7duyVJuXLl0pgxY9S3b185OjpauToAQEZBmAcAAEiEv/76SyNHjtTXX38twzCUKVMmDRo0SCNGjFD27NmtXR4AIIMhzAMAADxFVFSUPvvsM02ZMkVRUVGS4ie3mzRpkjw9Pa1bHAAgwyLMAwAAPEZcXJyWLVtmXiZXkmrUqKHp06erWrVqVq4OAJDREeYBAAD+Zf/+/RoyZIiOHTsmSfL09NSUKVP06quvMrkdACBNIMwDAAD8z4ULF/T+++9r3bp1kiQXFxeNHDlSAwcOlLOzs5WrAwDg/xHmAQBAhhceHq4JEyZo5syZun//vuzs7PTmm29q3Lhxyps3r7XLAwDgEYR5AACQYcXGxmrJkiUaOXKkQkNDJUmNGzfW9OnTVa5cOStXBwDAkxHmAQBAhrRv3z4NGjRIgYGBkqQXXnhB06dPV4sWLbgvHgCQ5tlZuwAAAIDUdPHiRb3yyiuqV6+eAgMDlT17ds2YMUO//vqrfH19CfIAAJvAyDwAAMgQ7ty5owkTJmjGjBnm++L79u2rcePGKXfu3NYuDwCAJCHMAwCAdC0uLk5Lly7ViBEjFBISIklq1KiRZsyYwX3xAACbRZgHAADp1k8//aQBAwbo6NGjkqQSJUpo+vTpatmyJZfTAwBsGvfMAwCAdOevv/5St27dVL16dR09elQuLi6aOnWqfvvtN7Vq1YogDwCweYzMAwCAdOPevXuaPn26Jk6cqMjISJlMJvXs2VMTJkxQ/vz5rV0eAADJhjAPAABsnmEY2rhxo9577z1dvHhRklSjRg3NmjVL3t7eVq4OAIDkR5gHAAA27fTp0xo4cKB27twpSSpYsKCmTp2q119/ncvpAQDpFvfMAwAAmxQWFqYhQ4boxRdf1M6dO+Xk5KSRI0fq7Nmz6tSpE0EeAJCuMTIPAABsSlxcnPz8/DRixAiFhoZKktq2batp06apWLFiVq4OAIDUQZgHAAA246efftK7776rgIAASVKpUqU0e/ZsNWnSxMqVAQCQurjMHgAApHkhISHq0aOHqlevroCAALm4uGjatGk6efIkQR4AkCExMg8AANKsBw8eaO7cuRozZozu3LkjSerZs6cmTpzIUnMAgAyNMA8AANKkH3/8UQMGDNCpU6ckSd7e3po7d66qVatm5coAALA+LrMHAABpyuXLl9WhQwc1atRIp06dUu7cubVo0SIdOXKEIA8AwP8Q5gEAQJoQHR2tiRMnqnTp0lq9erXs7Oz0zjvv6I8//lCfPn1kZ8fXFgAAEnCZPQAAsLqtW7dq4MCBOn/+vCSpVq1amjt3ripUqGDlygAASJv4FTcAALCaixcvqnXr1vL19dX58+fl7u6uZcuWaf/+/QR5AACegjAPAABS3d27dzV27Fh5eXlp06ZNcnBw0NChQ3X27Fl16tRJJpPJ2iUCAJCmcZk9AABIVZs2bdLAgQMVFBQkSWrYsKHmzJmjMmXKWLkyAABsByPzAAAgVVy4cEEtW7ZU69atFRQUpIIFC2rVqlXauXMnQR4AgCQizAMAgBQVFRWl0aNHq2zZstqyZYscHR31wQcf6MyZM3r11Ve5pB4AgOfAZfYAACDFfP/99xo4cKCCg4MlSY0bN9acOXNUqlQp6xYGAICNY2QeAAAku4sXL6pVq1Zq06aNgoODVahQIa1Zs0bbt28nyAMAkAwI8wAAINncu3dP48aNk5eXlzZv3ixHR0cNHz5cp0+f1iuvvMIl9QAAJBMuswcAAMli69atevfdd3Xx4kVJUqNGjTRnzhyVLl3aypUBAJD+MDIPAAD+k+DgYLVt21a+vr66ePGieZb6HTt2EOQBAEghhHkAAPBcoqOjNWHCBHl5eWnjxo1ycHDQsGHDmKUeAIBUwGX2AAAgyXbt2qW3335bf/zxhySpXr16mjt3rsqWLWvlygAAyBgYmQcAAIl29epVdezYUY0bN9Yff/yhfPnyadmyZdq9ezdBHgCAVESYBwAAz/TgwQNNnz5dpUuX1qpVq2RnZ6cBAwbo7Nmz6tSpE5fUAwCQyrjMHgAAmMXGSgcOSNeuSe7uUu3akr//QfXr10+//fabJMnHx0cLFixQxYoVrVssAAAZGGEeAABIktatkwYOlK5cSWj5W1myvK+oKD9JUq5cuTRlyhT17NlTdnZc3AcAgDUR5gEAgNatk9q3lwxDkuIkLZI0QlFR/0iSGjXqoxUrJitXrlxWrBIAACQgzAMAkMHFxsaPyMcH+V8k9ZP08/+2VpS0QGfP+ih7duvUBwAAHsU1cgAAZHAHDkhXroRJelfSS4oP8i6SZkk6KslHly/H9wMAAGkDI/MAAGRghmFozZrlkoZIuv6/1tckTZfkbtH32rXUrQ0AADwZYR4AgAzqzJkzevvtt7V79+7/tbwgaZ6kRo/t7+7+2GYAAGAFXGYPAEAGExUVpZEjR+rFF1/U7t275ezsLFfXTySd1OOCvMkkFSoUv0wdAABIG6we5vfv369WrVqpQIECMplM2rBhw1P7X7t2TZ06dVKpUqVkZ2enQYMGPdLHz89PJpPpkce9e/dS5iAAALARW7ZsUdmyZTVx4kQ9ePBAvr6+OnXqlJYsGSmTyUkmk2X/hOczZ0r29qleLgAAeAKrh/nIyEhVqFBBc+fOTVT/6Oho5cmTRyNHjlSFChWe2M/V1VXXrl2zeDg7OydX2QAA2JTLly+rXbt2atmypYKDg+Xh4aF169Zp06ZNKlq0qNq1k9askQoWtHydh0d8e7t21qkbAAA8ntXvmW/evLmaN2+e6P6enp6aNWuWJGnx4sVP7GcymZQ/f/7/XB8AALbswYMHmjVrlsaOHavIyEg5ODho8ODBGj16tLJly2bRt107qU2b+Fnrr12Lv0e+dm1G5AEASIusHuZTSkREhIoUKaLY2FhVrFhR48ePV6VKlZ7YPzo6WtHR0ebn4eHhqVEmAAAp5tChQ+rbt69+++03SVKtWrW0YMEClStX7omvsbeX6tVLpQIBAMBzs/pl9imhdOnS8vPz0/fff6/ly5fL2dlZNWvW1Llz5574mkmTJsnNzc38KFSoUCpWDABA8rlx44Z69+6tWrVq6bffflOuXLm0ePFi7du376lBHgAA2I50GeZ9fHzUpUsXVahQQbVr19aqVav0wgsvaM6cOU98zYgRIxQWFmZ+XL58ORUrBgDgv4uLi9NXX32l0qVLm29F69Onj86ePauePXvKzi5d/m8fAIAMKd1eZv8wOzs7vfTSS08dmXdycpKTk1MqVgUAQPL59ddf1a9fPx06dEiSVL58eS1cuFA1atSwcmUAACAlZIhf0RuGocDAQLm7u1u7FAAAklVERISGDRumSpUq6dChQ8qaNas+++wzHTt2jCAPAEA6ZvWR+YiICJ0/f978PCgoSIGBgcqZM6cKFy6sESNG6OrVq1q6dKm5T2BgoPm1f//9twIDA5UpUyZ5eXlJksaNGycfHx+VLFlS4eHhmj17tgIDAzVv3rxUPTYAAFKKYRjauHGjBgwYYL41rF27dpo5cybzvgAAkAFYPcwHBASofv365udDhgyRJHXv3l1+fn66du2aLl26ZPGah2elP3bsmL777jsVKVJEwcHBkqTbt2/rzTffVEhIiNzc3FSpUiXt379fVatWTfkDAgAghQUHB+vdd9/V5s2bJcUv2zp37lz5+vpauTIAAJBaTIZhGNYuIi0KDw+Xm5ubwsLC5Orqau1yAADQ/fv3NX36dH388ce6e/euHB0dNWzYMI0cOVJZsmSxdnkAAOA/SkoOTdLI/OXLl7l0DwAAK9i/f7/69eunU6dOSZLq1q2rBQsWqEyZMlauDAAAWEOSJsArXbq0PvroI0VGRqZUPQAA4CF///23evbsqbp16+rUqVPKkyePli5dqj179hDkAQDIwJIU5nfu3KkdO3aoZMmSWrJkSUrVBABAhhcXF6cvv/xSpUqVkp+fnyTprbfe0pkzZ9S1a1eZTCbrFggAAKwqSWG+Ro0aOnLkiCZPnqzRo0erUqVK2rt3bwqVBgBAxnTy5EnVrl1bb7zxhv755x9VqFBB/v7+WrhwoXLmzGnt8gAAQBrwXOvMd+vWTX/88YdatWolX19fvfzyyxbLywEAgKSLiIjQ0KFDVblyZR0+fFhZs2bV9OnTFRAQIB8fH2uXBwAA0pDnCvNS/Pq2TZo00Ztvvqnvv/9e5cqV03vvvac7d+4kZ30AAKR7hmFo/fr1KlOmjKZNm6bY2Fi98sorOnPmjAYPHiwHB6uvJAsAANKYJH07WLhwoY4ePaqjR4/q9OnTsre314svvqi3335bFStW1LJly+Tl5aX169fL29s7pWoGACDd+Pea8UWLFtXcuXPVokULK1cGAADSsiStM1+oUCH5+PiYH97e3nJycrLoM3HiRH333Xf67bffkr3Y1MQ68wCAlMSa8QAA4N+SkkOTFOYT4/r16ypQoIBiY2OTc7epjjAPAEgp+/btU//+/VkzHgAAWEhKDn3ue+afJG/evNq9e3dy7xYAAJv3999/q0ePHqpXrx5rxgMAgP8k2cO8yWRS3bp1k3u3AADYrLi4OC1atEilSpXS119/LUl68803WTMeAAA8N6bHBQAgBZ04cUL9+vWTv7+/JKlChQpauHAhS80BAID/JNlH5gEAgHTnzh299957qlKlivz9/ZUtWzbNmDGDNeMBAECyYGQeAIBklLBm/MCBA3XlyhVJUvv27TVjxgx5eHhYuToAAJBeEOYBAEgmFy9e1LvvvqutW7dKil8zft68eWrevLmVKwMAAOkNl9kDAPAfRUdHa8KECSpbtqy2bt0qR0dHjRw5Ur///jtBHgAApAhG5gEA+A92796t/v376+zZs5Kk+vXra/78+SpdurSVKwMAAOkZI/MAADyH69evq0uXLmrYsKHOnj2rfPny6dtvv9WPP/5IkAcAACmOMA8AQBLExsZq/vz5KlWqlJYtWyaTyaS3335bZ86cUefOnVkzHgAApAouswcAIJECAgLUr18/BQQESJKqVKmiBQsW6KWXXrJyZQAAIKNhZB4AgGe4ffu23nnnHVWtWlUBAQFydXXVnDlzdOTIEYI8AACwCkbmAQB4AsMw9N133+m9997T9evXJUmdOnXStGnTlD9/fitXBwAAMjLCPAAAj3HmzBn1799fe/bskSSVKlVK8+fPV4MGDaxcGQAAAJfZAwBgISoqSiNHjtSLL76oPXv2yNnZWRMmTNCJEycI8gAAIM1gZB4AgP/ZtGmTBgwYoODgYEmSr6+v5syZo6JFi1q3MAAAgH8hzAMAMrzg4GANHDhQ33//vSSpUKFCmj17ttq0acNScwAAIE3iMnsAQIYVHR2tiRMnysvLS99//70cHBz0wQcf6PTp02rbti1BHgAApFmMzAMAMqQff/xRb7/9ts6ePStJqlevnubNmycvLy8rVwYAAPBsjMwDADKUa9euqVOnTmrUqJHOnj2rfPny6dtvv9Xu3bsJ8gAAwGYQ5gEAGUJMTIxmzZqlUqVKafny5bKzs9M777yjM2fOqHPnzlxSDwAAbAqX2QMA0r1Dhw6pf//+OnnypCSpatWqWrBggSpXrmzlygAAAJ4PI/MAgHQrNDRUPXv2VK1atXTy5EnlyJFDn3/+ufz9/QnyAADApjEyDwBId2JjY/XFF1/oww8/1O3btyVJvXv31uTJk5U7d27rFgcAAJAMCPMAgHTl6NGj6t+/vwICAiRJlSpV0vz58+Xj42PlygAAAJIPl9kDANKFmzdvqm/fvqpWrZoCAgLk5uamOXPm6OjRowR5AACQ7jAyDwCwaXFxcVq8eLGGDx+umzdvSpK6du2qTz/9VPny5bNydQAAACmDMA8AsFkBAQF6++239fPPP0uSypUrp3nz5qlOnTpWrgwAACBlcZk9AMDm3Lp1S/369VPVqlX1888/y8XFRTNmzNAvv/xCkAcAABkCI/MAAJvxuEvqu3TpoqlTp8rd3d3K1QEAAKQewjwAwCYcO3ZMb7/9to4cOSKJS+oBAEDGxmX2AIA07ebNm3rrrbf00ksv6ciRI1xSDwAAIEbmAQBpVGxsrBYtWqSRI0fq1q1bkrikHgAAIAFhHgCQ5vz000965513dOzYMUnSiy++qLlz56p27dpWrgwAACBt4DJ7AECaERoaql69eql69eo6duyY3NzcNHv2bB07dowgDwAA8BBG5gEAVhcTE6OFCxfqo48+0u3btyVJPXv21OTJk5U3b17rFgcAAJAGEeYBAFa1b98+vfvuu/r1118lSZUrV9a8efPk4+Nj5coAAADSLi6zBwBYxZUrV/T666+rXr16+vXXX5UzZ04tWLBAP//8M0EeAADgGRiZBwCkqujoaE2fPl2ffPKJoqKiZGdnp7feekvjx49Xrly5rF0eAACATSDMAwBSzZYtWzRo0CCdP39eklSzZk3NnTtXFStWtG5hAAAANobL7AEAKe78+fNq1aqVWrZsqfPnz8vd3V3ffvutDhw4QJAHAAB4DlYP8/v371erVq1UoEABmUwmbdiw4an9r127pk6dOqlUqVKys7PToEGDHttv7dq18vLykpOTk7y8vLR+/frkLx4A8FR37tzR8OHDVbZsWW3evFmOjo56//33dfbsWXXu3Fkmk8naJQIAANgkq4f5yMhIVahQQXPnzk1U/+joaOXJk0cjR45UhQoVHtvH399fHTt2VNeuXXXixAl17dpVHTp00JEjR5KzdADAExiGoW+//ValSpXSlClTdP/+fTVt2lS//vqrpkyZIhcXF2uXCAAAYNNMhmEY1i4igclk0vr169W2bdtE9a9Xr54qVqyomTNnWrR37NhR4eHh2rZtm7mtWbNmypEjh5YvX56ofYeHh8vNzU1hYWFydXVN7CEAQIYXEBCgAQMGyN/fX5JUvHhxzZw5U76+vozEAwAAPEVScqjVR+ZTgr+/v5o0aWLR1rRpUx0+fPiJr4mOjlZ4eLjFAwCQeKGhoerTp4+qVq0qf39/Zc2aVZMmTdLvv/+uli1bEuQBAACSUboM8yEhIcqXL59FW758+RQSEvLE10yaNElubm7mR6FChVK6TABIFx48eKAZM2aoZMmS+uqrr2QYhrp06aI//vhDw4cPl5OTk7VLBAAASHfSZZiX9MgIkGEYTx0VGjFihMLCwsyPy5cvp3SJAGDztm3bpvLly2vIkCEKDw9XlSpVdOjQIX3zzTcqUKCAtcsDAABIt9LlOvP58+d/ZBQ+NDT0kdH6hzk5OTF6BACJdPbsWQ0ZMkRbt26VJOXJk0cTJ05Uz549ZW9vb+XqAAAA0r90OTJfvXp17dy506Jtx44dqlGjhpUqAoD04fbt23rvvfdUrlw5bd26VY6Ojho6dKjOnTunPn36EOQBAABSidVH5iMiInT+/Hnz86CgIAUGBipnzpwqXLiwRowYoatXr2rp0qXmPoGBgebX/v333woMDFSmTJnk5eUlSRo4cKDq1KmjKVOmqE2bNtq4caN27dqlgwcPpuqxAUB6ERsbq6+++kojR47UjRs3JEktW7bUtGnT9MILL1i5OgAAgIzH6kvT7d27V/Xr13+kvXv37vLz81OPHj0UHBysvXv3mrc97t73IkWKKDg42Px8zZo1GjVqlC5evKjixYtrwoQJateuXaLrYmk6AIi3b98+DRo0yPyL1DJlymjGjBlq2rSpdQsDAABIZ5KSQ60e5tMqwjyAjO7ixYsaNmyY1q1bJ0nKnj27xo0bp379+snR0dHK1QEAAKQ/ScmhVr/MHgCQtoSHh2vChAmaOXOm7t+/Lzs7O7311lv6+OOPlTt3bmuXBwAAABHmAQD/Exsbq8WLF2vUqFEKDQ2VJDVu3FjTp09XuXLlrFwdAAAAHkaYBwBo9+7dGjx4sE6ePClJeuGFFzR9+nS1aNHisfOUAAAAwLrS5dJ0AIDEOXfunNq2bauGDRvq5MmTyp49u2bOnKnffvtNvr6+BHkAAIA0ipF5AMiAbt26pfHjx2vu3LmKiYmRvb29+vXrp7FjxypXrlzWLg8AAADPQJgHgAzk/v37WrBggcaNG6d//vlHktSiRQt9+umn8vLysnJ1AAAASCzCPABkAIZh6Pvvv9ewYcN07tw5SVK5cuU0bdo0NWnSxMrVAQAAIKm4Zx4A0rlffvlFDRo0UNu2bXXu3DnlzZtXX3zxhQIDAwnyAAAANoqReQBIp65cuaJRo0Zp6dKlMgxDTk5Oeu+99zR8+HC5uLhYuzwAAAD8B4R5AEhn7ty5oylTpmjatGm6d++eJKlTp06aOHGiihQpYuXqAAAAkBwI8wCQTsTExOjLL7/UmDFjFBoaKkmqVauWPvvsM1WrVs3K1QEAACA5EeYBwMYZhqEtW7Zo2LBhOnPmjCSpZMmSmjp1qtq0acNa8QAAAOkQE+ABgA07duyYGjRooFatWunMmTPKlSuX5syZo99//11t27YlyAMAAKRTjMwDgA0KDg7WqFGjtGzZMkmSk5OTBg0apBEjRsjNzc3K1QEAACClEeYBwIbcunVLEyZM0Ny5c3X//n1JTG4HAACQERHmAcAG3Lt3T3PmzNHEiRN1+/ZtSVKDBg00depUValSxbrFAQAAINUR5gEgDYuLi9OyZcs0atQoXbp0SZJUvnx5TZ06VU2bNuWeeAAAgAyKMA8AaZBhGNqxY4c++OADnThxQpLk4eGhTz75RF26dJG9vb2VKwQAAIA1EeYBIBXExkoHDkjXrknu7lLt2tKT8vjRo0c1fPhw7d69W5Lk5uamESNGaMCAAcqcOXMqVg0AAIC0ijAPACls3Tpp4EDpypX/b/PwkGbNktq1+/+2P/74QyNHjtSaNWskSZkyZdLbb7+tkSNHKleuXKlcNQAAANIywjwApKB166T27SXDsGy/ejW+fc0aqXr1axo3bpy+/PJLxcbGymQyqVu3bho3bhwz1AMAAOCxCPMAkEJiY+NH5P8d5KWEtjD16DFVMTEzdPfuXUlSy5YtNXHiRJUvXz5VawUAAIBtIcwDQAo5cMDy0vr/d1fSPEmTdOfOLUlS9erVNWXKFNWuXTsVKwQAAICtIswDQAq5du3fLQ8kLZH0saSr/2sroyFDJumzz1qzzBwAAAASjTAPACnE3T3hb3GSVkn6SNL5/7UVljRWUle1auUgcjwAAACSws7aBQBAelWrlqFcubZKqiLpdcUH+TySZkr6QyZTTxUq5CCurAcAAEBSEeYBIAUcPHhQ9evX0c2bvpICJbkq/vL6C5IGymRykiTNnPnk9eYBAACAJyHMA0AyCggIUPPmzVW7dm0dPHhQzs7Oat16qNzdLyr+MnsXSfHrzK9ZY7nOPAAAAJBY3DMPAMngt99+0+jRo7V+/XpJkoODg3r16qXRo0erYMGCio2Nn93+2rX4e+lr12ZEHgAAAM+PMA8A/8G5c+c0duxYLV++XIZhyGQyqUuXLhozZoyKFy9u7mdvL9WrZ706AQAAkL4Q5gHgOVy6dEkff/yx/Pz8FBsbK0lq3769xo0bJy8vLytXBwAAgPSOMA8ASXD16lVNmjRJixYt0v379yVJLVq00Pjx41W5cmUrVwcAAICMgjAPAIkQEhKiyZMna+HChYqOjpYk1atXTxMmTFCNGjWsXB0AAAAyGsI8ADzF33//ralTp2revHm6e/euJKlmzZoaP3686tevb+XqAAAAkFER5gHgMW7evKlp06Zp9uzZioyMlCRVq1ZN48ePV6NGjWQymaxcIQAAADIywjwAPOTWrVuaMWOGZs2apTt37kiSvL299fHHH6tZs2aEeAAAAKQJhHkAUHyInz59umbPnm0O8RUrVtTHH3+sli1bEuIBAACQphDmAWRoN2/e1PTp0zVnzhxziK9QoYJGjx6ttm3bys7OzsoVAgAAAI8izAPIkG7cuGEO8REREZLiR+LHjBmj1q1bE+IBAACQphHmAWQoN27c0LRp0zR37lyLED927Fi1bt2ay+kBAABgEwjzADKEkJAQffbZZ1qwYIGioqIkSZUqVdLYsWPVqlUrQjwAAABsCmEeQLp25coVTZ06VYsWLdK9e/ckSVWqVNHo0aMJ8QAAALBZhHkA6VJwcLAmT56sJUuW6P79+5Kk6tWr66OPPmKJOQAAANg8wjyAdOXcuXOaNGmSvvnmG8XExEiS6tatq48++kgNGjQgxAMAACBdIMwDSBd+/fVXTZw4UatWrVJcXJwkqXHjxvroo49Uu3ZtK1cHAAAAJC/CPACb9tNPP2nixInatGmTuc3X11ejRo2Sj4+PFSsDAAAAUg5hHoDNMQxDu3fv1sSJE7V7925Jkslk0quvvqoRI0aoYsWK1i0QAAAASGGEeQA2Iy4uTps3b9bEiRN15MgRSZKDg4O6deumDz74QC+88IKVKwQAAABSB2EeQJr34MEDLV++XFOnTtXvv/8uSXJ2dtYbb7yhoUOHqnDhwlauEAAAAEhddtYuYP/+/WrVqpUKFCggk8mkDRs2PPM1+/btU5UqVeTs7KxixYpp4cKFFtv9/PxkMpkeeSSsMQ3ANkRGRmr27NkqUaKEunfvrt9//10uLi4aPny4goODNXv2bII8AAAAMiSrj8xHRkaqQoUK6tmzp1555ZVn9g8KClKLFi30xhtv6Ntvv9WhQ4fUv39/5cmTx+L1rq6uOnv2rMVrnZ2dk71+AMnv5s2bmjt3rubMmaObN29KkvLly6dBgwapb9++yp49u3ULBAAAAKzM6mG+efPmat68eaL7L1y4UIULF9bMmTMlSWXKlFFAQIA+++wzizBvMpmUP3/+5C4XQAq6dOmSpk+frkWLFikqKkqSVKxYMb3//vvq3r07v5ADAAAA/sfql9knlb+/v5o0aWLR1rRpUwUEBOjBgwfmtoiICBUpUkQeHh5q2bKljh8//tT9RkdHKzw83OIBIHWcOHFCXbp0UfHixTVr1ixFRUWpUqVKWrFihc6ePau33nqLIA8AAAA8xObCfEhIiPLly2fRli9fPsXExOjGjRuSpNKlS8vPz0/ff/+9li9fLmdnZ9WsWVPnzp174n4nTZokNzc386NQoUIpehxARhIbK+3dKy1fHv9nbGz88nK7du1S06ZNVbFiRS1btkwxMTGqV6+etm/frmPHjqljx45ycLD6BUQAAABAmmOT35JNJpPFc8MwLNp9fHzk4+Nj3l6zZk1VrlxZc+bM0ezZsx+7zxEjRmjIkCHm5+Hh4QR6IBmsWycNHChduZLQ8kA5c66Wm9unCgoKlCTZ2dmpffv2GjZsmLy9va1VKgAAAGAzbC7M58+fXyEhIRZtoaGhcnBwUK5cuR77Gjs7O7300ktPHZl3cnKSk5NTstYKZHTr1knt20vxv2+LkPSlpBm6deuSbt2SnJyy6M03e2vQoEEqVqyYdYsFAAAAbIjNhfnq1atr06ZNFm07duyQt7e3HB0dH/sawzAUGBio8uXLp0aJABR/Kf3AgZJhXJE0R9LnksL+tzWvpHeVK1c/zZiRS/b2VisTAAAAsElWv2c+IiJCgYGBCgwMlBS/9FxgYKAuXbokKf7y927dupn79+3bV3/++aeGDBmi06dPa/Hixfrqq680dOhQc59x48Zp+/btunjxogIDA9W7d28FBgaqb9++qXpsQEb25ZfHdOVKZ0lFJU1VfJB/QfGhPljSKP31Vy4dOGC9GgEAAABbZfWR+YCAANWvX9/8POG+9e7du8vPz0/Xrl0zB3tJKlq0qLZu3arBgwdr3rx5KlCggGbPnm2xLN3t27f15ptvKiQkRG5ubqpUqZL279+vqlWrpt6BARlQXFycNm/erOnTp2vfvn0PbaknaYgkX/37d4jXrqVefQAAAEB6YTISZo+DhfDwcLm5uSksLEyurq7WLgdI0yIjI7V06VLNmDHDPDeFvb2DYmNfkzRYUuUnvnbPHqlevVQpEwAAAEjTkpJDrT4yD8B2Xbp0SXPnztWiRYt0+/ZtSVL27Nn11ltvqV+/d1SrloeuXk2YAM+SySR5eEi1a6duzQAAAEB6QJgHkCSGYejQoUOaNWuW1q9fr9jYWElS8eLFNXDgQPXs2VPZsmWTJM2aFT+bvclkGegTVpecOVNMfgcAAAA8B6tPgAfANty/f1/ffvutXnrpJdWuXVtr1qxRbGysGjZsqE2bNumPP/7Qu+++aw7yktSunbRmjVSwoOW+PDzi29u1S+WDAAAAANIJRuYBPFVISIi++OILLViwQCEhIZIkJycnde3aVQMGDHjmko/t2klt2kgHDsRPdufuHn9pPSPyAAAAwPMjzAN4rCNHjmj27NlavXq1Hjx4IElyd3fX22+/rTfffFN58uRJ9L7s7ZnkDgAAAEhOhHkAZtHR0Vq1apXmzJmjo0ePmtt9fHz07rvvqn379sqUKZMVKwQAAAAgEeYBSLp69aoWLlyoL774QqGhoZKkTJky6fXXX9c777wjb29vK1cIAAAA4GGEeSCDMgxDe/fu1fz58y1mpffw8FC/fv30xhtvJOlSegAAAACphzAPZDBhYWFaunSpFixYoNOnT5vb69Spo3fffVdt27aVgwP/aQAAAADSMr6xAxnEiRMntGDBAn377beKjIyUJGXLlk1du3ZVv379njkrPQAAAIC0gzAPpGPR0dFau3at5s+fr0OHDpnbvby81L9/f3Xt2lWurq5WrBAAAADA8yDMA+nQuXPn9MUXX2jJkiW6efOmJMnBwUEvv/yy+vfvr7p168pkMlm5SgAAAADPizAPpBMPHjzQxo0b9fnnn2vXrl3mdg8PD/Xp00dvvPGGChQoYMUKAQAAACQXwjxg4/78808tWrRIX331lUJCQiRJJpNJzZs311tvvaUWLVowoR0AAACQzvANH7BBDx480KZNm7Ro0SJt375dhmFIkvLly6fevXvrjTfekKenp3WLBAAAAJBiCPOADTl//ry+/PJL+fn56fr16+b2hg0bqm/fvmrTpo0cHR2tWCEAAACA1ECYB9K4e/fuaf369Vq0aJH27Nljbs+XL5969uyp3r17q0SJElasEAAAAEBqI8wDadSvv/6qxYsXa+nSpbp165ak+HvhmzVrpjfeeEMtW7ZkFB4AAADIoAjzQBoSFham5cuXa/HixTp69Ki53cPDQ71791avXr1UuHBhK1YIAAAAIC0gzANWFhcXp3379mnx4sVas2aN7t27Jyl+XfjWrVurV69eatasmezt7a1cKQAAAIC0gjAPWMnly5e1dOlSLV68WBcvXjS3ly1bVr1791aXLl2UJ08eK1YIAAAAIK0izAOpKCoqSuvXr5efn59+/PFH85JyLi4uev3119W7d2+99NJLMplMVq4UAAAAQFpGmAdSmGEYOnz4sPz8/LRy5UrduXPHvK1u3brq1auX2rdvryxZslixSgAAAAC2hDAPpJBLly7pm2++kZ+fn86fP29uL1q0qHr06KGuXbuqaNGiVqwQAAAAgK0izAPJ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",
"text/plain": [
"