{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a17117a0-d201-43ec-aa65-241fc49ac557",
   "metadata": {},
   "source": [
    "# Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "6d0f7da1-0f2c-4c4b-8162-810094be72be",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "import scipy\n",
    "import itertools\n",
    "import copy"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7d1b6916-da9b-43c7-ace1-08dd1210da11",
   "metadata": {},
   "source": [
    "# Finite differences method"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2c9c1ff9-1a61-44df-8b1c-40077d20e3be",
   "metadata": {},
   "source": [
    "Here we want to solve the Laplace equation $\\nabla^2 \\phi = 0$ for different configurations of static boundary conditions"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "34002dda-6313-47c2-b908-767171bf1648",
   "metadata": {},
   "source": [
    "## With the Jacobi method"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "939c6092-f672-42dd-a519-988907c48439",
   "metadata": {},
   "source": [
    "We build some boundary conditions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "29bda7ae-c4ce-4db3-a374-61a596d8a063",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "Nside = 100\n",
    "boundaries = np.ones((Nside, Nside))*np.nan\n",
    "for i in range(Nside):\n",
    "    for j in range(Nside):\n",
    "        rules = [\n",
    "            i==0,\n",
    "            i==Nside-1,\n",
    "            j==0,\n",
    "            j==Nside-1,\n",
    "        ]\n",
    "        \n",
    "        if(any(rules)):\n",
    "            boundaries[i,j] = 0.\n",
    "plt.imshow(boundaries)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "6789b4bb-b10d-423c-9380-c8b5c14c0951",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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sE6Jk3QXJgAARo6krYQAAMMfIQQAMEMIAQDMEEIAADOEEADATNKG0Kuvvqrc3FyNHTtWBQUFev/9962nZKa6ulpz5sxRIBDQxIkT9dhjj+nUqVMx5zjntGnTJmVnZysjI0MlJSVqbm42mnFyqK6uls/nU3l5uTfGOl322WefadmyZRo/frwyMzN17733qrGx0bufdZIuXryoF198Ubm5ucrIyFBeXp42b96snp7//zJU1ikBXBI6ePCgGz16tNu7d687efKkKysrc+PGjXNnz561npqJhx9+2O3bt8/97W9/c01NTW7hwoVuypQp7quvvvLO2bp1qwsEAu43v/mNO3HihHviiSfcpEmTXDQaNZy5nWPHjrlp06a5e+65x5WVlXnjrJNz//rXv9zUqVPd008/7f7yl7+4lpYW98c//tH9/e9/985hnZx7+eWX3fjx493vfvc719LS4l5//XV32223uZ07d3rnsE63LilD6P7773erVq2KGZsxY4bbsGGD0YySS3t7u5Pk6uvrnXPO9fT0uHA47LZu3eqd85///McFg0H32muvWU3TTGdnp8vPz3d1dXWuuLjYCyHW6bL169e7+fPnX/d+1umyhQsXumeeeSZmbNGiRW7ZsmXOOdYpUZJuO667u1uNjY0qLS2NGS8tLVVDQ4PRrJJLJBKRJN1xxx2SpJaWFrW1tcWsmd/vV3Fx8YhcszVr1mjhwoV66KGHYsZZp8uOHDmiwsJCPf7445o4caJmz56tvXv3evezTpfNnz9fb7/9tk6fPi1J+uijj3T06FE98sgjklinREm6b9H+8ssvdenSJYVCoZjxUCiktrY2o1klD+ecKioqNH/+fM2aNUuSvHW51pqdPXt2yOdo6eDBg/rwww91/PjxPvexTpedOXNGu3fvVkVFhb7//e/r2LFjeu655+T3+7V8+XLW6X/Wr1+vSCSiGTNmKC0tTZcuXdKWLVu0ePFiSfx7SpSkC6ErfD5fzG3nXJ+xkWjt2rX6+OOPdfTo0T73jfQ1a21tVVlZmWprazV27NjrnjfS16mnp0eFhYWqqqqSJM2ePVvNzc3avXu3li9f7p030tfp0KFDOnDggGpqajRz5kw1NTWpvLxc2dnZWrFihXfeSF+nW5V023ETJkxQWlpan6qnvb29z//jGGmeffZZHTlyRO+++64mT57sjYfDYUka8WvW2Nio9vZ2FRQUKD09Xenp6aqvr9crr7yi9PR0by1G+jpNmjRJd911V8zYnXfeqXPnzkni39MVL7zwgjZs2KAnn3xSd999t5566ik9//zzqq6ulsQ6JUrShdCYMWNUUFCgurq6mPG6ujoVFRUZzcqWc05r167V4cOH9c477yg3Nzfm/tzcXIXD4Zg16+7uVn19/YhaswcffFAnTpxQU1OTdxQWFmrp0qVqampSXl4e6yRp3rx5fS7xP336tKZOnSqJf09XnD9/vs9fBU1LS/Mu0WadEsTwoojrunKJ9s9//nN38uRJV15e7saNG+c+/fRT66mZ+N73vueCwaB777333BdffOEd58+f987ZunWrCwaD7vDhw+7EiRNu8eLFXCrqXMzVcc6xTs5dvnw9PT3dbdmyxX3yySfuV7/6lcvMzHQHDhzwzmGdnFuxYoX7+te/7l2iffjwYTdhwgS3bt067xzW6dYlZQg559xPf/pTN3XqVDdmzBh33333eZcjj0SSrnns27fPO6enp8e99NJLLhwOO7/f7x544AF34sQJu0knid4hxDpd9tvf/tbNmjXL+f1+N2PGDLdnz56Y+1kn56LRqCsrK3NTpkxxY8eOdXl5eW7jxo2uq6vLO4d1unX8PSEAgJmk6wkBAEYOQggAYIYQAgCYIYQAAGYIIQCAGUIIAGCGEAIAmCGEAABmCCEAgBlCCABghhACAJj5P+YLUQiKMztfAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i in range(Nside):\n",
    "    for j in range(Nside):\n",
    "        rules = [\n",
    "            i+j < Nside/4,\n",
    "            2*(Nside-1)-i-j < Nside/4,\n",
    "            (Nside-1)-i+j < Nside/4,\n",
    "            (Nside-1)+i-j < Nside/4,\n",
    "        ]\n",
    "        if(any(rules)):\n",
    "            boundaries[i,j] = 1.\n",
    "plt.imshow(boundaries)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c17ca510-e95c-4bca-862c-1f0be501c9b5",
   "metadata": {},
   "source": [
    "Solve with finite difference method, implemented here using the Jacobi method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c3b3343d-0a83-4e5d-b92c-f2499f4e15f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "absolute precision met in  10747 iterations\n"
     ]
    }
   ],
   "source": [
    "max_iter = 100000\n",
    "tol = 1.e-3\n",
    "field = np.zeros_like(boundaries)\n",
    "\n",
    "for t in range(max_iter):\n",
    "    ofield = field.copy()\n",
    "    field[1:-1, 1:-1] = 0.25 * (ofield[2:,1:-1] + ofield[:-2,1:-1] + ofield[1:-1,2:] + ofield[1:-1,:-2])\n",
    "    field[boundaries == boundaries] = boundaries[boundaries == boundaries]\n",
    "    if(np.all(np.abs(ofield-field) < tol*np.abs(field+ofield))):\n",
    "        print(\"relative precision met in\", t, \"iterations\")\n",
    "        break\n",
    "    if(np.all(np.abs(ofield-field) < tol*1.e-3)):\n",
    "        print(\"absolute precision met in\", t, \"iterations\")\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a868a02b-b239-4c7d-941a-384593ce130d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x7f7c49466940>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(field)\n",
    "plt.colorbar()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f548fba-901e-48d3-987b-beb390205cae",
   "metadata": {},
   "source": [
    "## With overrelaxation"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d2e2aad0-a6ea-427c-b3c3-293db6859d55",
   "metadata": {},
   "source": [
    "We build a different set of boundary conditions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "30471c58-bd21-4770-b136-fdc4628adfcd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7bd17bXXevdPfIBj7ty5euqpp7R48WJ1dXWppKRE7e3tmjx5srZv3+79jpok/fznP1dycrJuvfVWdXV16brrrtNTTz31pX9HDQAA6UtErbCw8As/rRIIBFRRUaGKiorTzhk6dKhWr16t1atXn+vLxwkGg3rkkUfiPkSCeOzR2WGfzow9OjP26Mz6e4/+q1++BgDgq4Q/aAwAMIOoAQDMIGoAADOIGgDADKIGADDjvI7aE088oezsbA0dOlR5eXl68803B3pJA6KqqkpXX3210tLSNHr0aM2YMUP79u2Lm3M2F29NJFVVVQoEAiotLfXG2KPjPvroI915550aOXKkUlNTdeWVV6qhocE7nuj7dPToUT388MPKzs5WSkqKxo8fr+XLl6u3t9ebk2h79JW6eLQ7T23evNkNHjzYrV+/3u3du9ctWrTIDRs2zB04cGCgl/Y/d8MNN7gNGza49957zzU2Nrrp06e7rKwsd+jQIW/O448/7tLS0txzzz3n9uzZ42677TaXkZHhYrHYAK58YLz11ltu3Lhx7vLLL3eLFi3yxtkj5/71r3+5sWPHunvuucf99a9/dc3Nze7ll19277//vjcn0ffpsccecyNHjnR/+MMfXHNzs3v22WfdBRdc4FatWuXNSbQ92rZtm1u2bJl77rnnnCT3/PPPxx0/m/2YP3++u+iii1w0GnW7du1y1157rbviiivc0aNHz2kt523UvvGNb7j58+fHjU2YMMEtXbp0gFb01dHW1uYkubq6Ouecc729vS4cDrvHH3/cm/Of//zHpaenuyeffHKgljkgOjs7XU5OjotGo27atGle1Nij45YsWeKmTp162uPsk3PTp0939957b9zYzJkz3Z133umcY49OjtrZ7Me///1vN3jwYLd582ZvzkcffeQGDRrkXnrppXN6/fPy7ceenh41NDTEXWhUkoqLi097odFE0tHRIUkaMWKEpLO7eGuiWLBggaZPn97n74yyR8dt3bpV+fn5mjVrlkaPHq1JkyZp/fr13nH2SZo6dapeeeUV7d+/X5L0zjvvaMeOHbrxxhslsUcn66+LR59Ov1xPrb99+umnOnbs2CkvRnq6C40mCuecysrKNHXqVOXm5ko6u4u3JoLNmzdr165dqq+v73OMPTrugw8+0Nq1a1VWVqYf/ehHeuutt3T//fcrGAzq7rvvZp8kLVmyRB0dHZowYYKSkpJ07NgxrVixQnfccYck/i2drL8uHn0652XUTvgyFyO1buHChXr33Xe1Y8eOPscSeb9aWlq0aNEibd++XUOHDj3tvETeI0nq7e1Vfn6+KisrJUmTJk1SU1OT1q5dq7vvvtubl8j79Mwzz2jTpk2qra3VZZddpsbGRpWWlioSiWju3LnevETeo1Px++LRp3Nevv04atQoJSUl9Sn45y9Gmojuu+8+bd26Va+99prGjBnjjX/+4q2fl0j71dDQoLa2NuXl5Sk5OVnJycmqq6vTL37xCyUnJ3v7kMh7JEkZGRm69NJL48YuueQSHTx4UBL/liTpoYce0tKlS3X77bdr4sSJuuuuu/TAAw+oqqpKEnt0srPZj89fPPp0c87WeRm1IUOGKC8vT9FoNG48Go2e9dWzLXHOaeHChdqyZYteffVVZWdnxx3//MVbTzhx8dZE2a/rrrtOe/bsUWNjo3fLz8/XnDlz1NjYqPHjxyf8HknSlClT+vw6yP79+zV27FhJ/FuSpMOHD2vQoPj/OpOSkryP9LNH8c5mPz5/8egTTlw8+pz37Et9vOUr4MRH+n/961+7vXv3utLSUjds2DD3j3/8Y6CX9j/3gx/8wKWnp7vXX3/dffLJJ97t8OHD3pzHH3/cpaenuy1btrg9e/a4O+64w/RHjM/G5z/96Bx75NzxX3dITk52K1ascH//+9/d7373O5eamuo2bdrkzUn0fZo7d6676KKLvI/0b9myxY0aNcotXrzYm5Noe9TZ2el2797tdu/e7SS5mpoat3v3bu9XrM5mP+bPn+/GjBnjXn75Zbdr1y73rW99K7E+0u+cc7/85S/d2LFj3ZAhQ9xVV13lfYQ90Ug65W3Dhg3enN7eXvfII4+4cDjsgsGgu+aaa9yePXsGbtFfASdHjT067sUXX3S5ubkuGAy6CRMmuHXr1sUdT/R9isVibtGiRS4rK8sNHTrUjR8/3i1btsx1d3d7cxJtj1577bVT/h80d+5c59zZ7UdXV5dbuHChGzFihEtJSXE33XSTO3jw4DmvheupAQDMOC9/pgYAwKkQNQCAGUQNAGAGUQMAmEHUAABmEDUAgBlEDQBgBlEDAJhB1AAAZhA1AIAZRA0AYMb/A4nERItLrEqtAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "Nside = 101\n",
    "boundaries = np.ones((Nside, Nside))*np.nan\n",
    "for i in range(Nside):\n",
    "    for j in range(Nside):\n",
    "        rules = [\n",
    "            i==Nside-1,\n",
    "            j==0,\n",
    "            j==Nside-1,\n",
    "        ]\n",
    "        \n",
    "        if(any(rules)):\n",
    "            boundaries[i,j] = 0.\n",
    "            \n",
    "for i in range(Nside):\n",
    "    for j in range(Nside):\n",
    "        rules = [\n",
    "            i==0\n",
    "        ]\n",
    "        if(any(rules)):\n",
    "            boundaries[i,j] = 1.\n",
    "plt.imshow(boundaries)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "98b48051-98ec-47bf-8924-b523681cf490",
   "metadata": {},
   "source": [
    "We solve it again with Jacobi, to have a comparison"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "7e3592d7-ec60-468a-840d-6cf4ad3d477e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "absolute precision met in  10736 iterations\n"
     ]
    }
   ],
   "source": [
    "max_iter = 100000\n",
    "tol = 1.e-3\n",
    "field = np.zeros_like(boundaries)\n",
    "\n",
    "for t in range(max_iter):\n",
    "    ofield = field.copy()\n",
    "    field[1:-1, 1:-1] = 0.25 * (ofield[2:,1:-1] + ofield[:-2,1:-1] + ofield[1:-1,2:] + ofield[1:-1,:-2])\n",
    "    field[boundaries == boundaries] = boundaries[boundaries == boundaries]\n",
    "    if(np.all(np.abs(ofield-field) < tol*np.abs(field+ofield))):\n",
    "        print(\"relative precision met in\", t, \"iterations\")\n",
    "        break\n",
    "    if(np.all(np.abs(ofield-field) < tol*1.e-3)):\n",
    "        print(\"absolute precision met in\", t, \"iterations\")\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "50482350-bac5-4ebd-b59b-7244c4ff16c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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deuGX/7yl0hOTsbMmTOxa9cuAMCxY8cwbtw4tLS04NFHH2UAQURnxSCCKMCGDBmC6dOn48SJE7jzzjvR3NyMkpISfPTRR7jyyivxox/9yO0uEpGHcTqDKOBOnjyJQYMGYfv27Rg5ciSqqqqQkZGB9957D/369XO7e0TkYQwiiAi7d+9GQUEBTpw4AQB46aWXMH78eJd7RURexyCCiNDc3IyLLroIe/bsQWZmJj7//HN069bN7W4RkccxJ4KIUFpaij179qBTp05oaGjAAw884HaXiMgHGEQQBdyGDRtQUVGBLl26oKqqCueccw5+/vOf47XXXnO7a0TkcQwiiAKssbER48ePR2trK5566ilcddVVmD9/PoDTxaj++c9/utxDIvIyBhFEATZt2jR8+umnKCoqwtSpUwEAY8eOxZgxY3DgwAH8x3/8h8s9JCIvY2IlUUCtWbMGt956K84991y8//77yM7Ojmw7fPgw8vPzsX//fvziF7/A97//fRd7SkRexSCCKID+8Y9/ID8/HwcPHsSKFSvwve99r02bdevW4dvf/ja6deuG9957D/379098R4nI0xhEEBERkSXMiSAiIiJLGEQQERGRJQwiiIiIyBIGEURERGQJgwgiIiKyhEEEERERWcIggoiIiCxhEEFERESWMIggIiIiSxhEEBERkSUMIoiIiMgSBhFERERkCYMIIiIisoRBBBEREVny/wDp7YRdsC42cAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from pylab import imshow\n",
    "\n",
    "plt.imshow(field,cmap='gray')\n",
    "plt.colorbar()\n",
    "plt.xlabel('x',size=16)\n",
    "plt.ylabel('y',size=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7c5a318a-93e4-48e1-9f78-c6345defade6",
   "metadata": {},
   "source": [
    "Remember Jacobi vs relaxation method? Why the following doesn't work?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "d4ac9e3e-a602-4564-bb65-f3c4d9adb61e",
   "metadata": {},
   "outputs": [],
   "source": [
    "max_iter = 100 #We stop the evaluation after few iteration, but you are free to increase max_iter: at some point you will incur in numerical instabilities\n",
    "tol = 1.e-3\n",
    "field = np.zeros_like(boundaries)\n",
    "omega = 0.9\n",
    "\n",
    "for t in range(max_iter):\n",
    "    ofield = field.copy()\n",
    "    field[1:-1, 1:-1] = 0.25 * (1+omega) * (ofield[2:,1:-1] + ofield[:-2,1:-1] + ofield[1:-1,2:] + ofield[1:-1,:-2]) - omega*ofield[1:-1, 1:-1]\n",
    "    field[boundaries == boundaries] = boundaries[boundaries == boundaries]\n",
    "    if(np.all(np.abs(ofield-field) < tol*np.abs(field+ofield))):\n",
    "        print(\"relative precision met in\", t, \"iterations\")\n",
    "        break\n",
    "    if(np.all(np.abs(ofield-field) < tol*1.e-3)):\n",
    "        print(\"absolute precision met in\", t, \"iterations\")\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "21f75b70-dea5-4b16-97a3-483b3c095081",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh0AAAHJCAYAAAAhJ4tDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+mklEQVR4nO3df3QU1f3/8dcaYBMwifwou4kECG1UNEgxWARE8AdRQBTpURBFLP6igBpQoxGrkU9NBBVTRaFYBRQRPj2I1VYpsSpowQKByC8LWiNEIEYoJKCYQJjvH3yZz8yECYmZbJLN83HOnjN37uzuzdS9vPu+P8ZnGIYhAACAOnZafTcAAAA0DQQdAAAgJAg6AABASBB0AACAkCDoAAAAIUHQAQAAQoKgAwAAhARBBwAACAmCDgAAEBIEHQAAICQIOgAAsFi5cqWGDh2q+Ph4+Xw+vfXWWzV6/7Zt23TppZcqEAgoMjJSXbp00SOPPKIjR47YrnvhhRfUtWtXRUVF6eyzz9arr77q4V/RMDWr7wYAANCQfP/99+revbt+85vf6Ne//nWN39+8eXPdcsstuuCCC3TGGWfos88+0x133KFjx44pKytLkjRr1ixlZGTopZde0oUXXqg1a9bojjvuUOvWrTV06FCv/6QGw8cD3wAAODmfz6elS5dq2LBh5rny8nI98sgjev3113XgwAElJydr2rRpGjBggOvnTJ48WWvXrtXHH38sSerTp4/69u2rp556yrwmLS1N69at0yeffFJXf069Y3gFAIAa+M1vfqN//vOfWrRokTZu3Kjrr79eV111lb744ouTXv/ll19q2bJl6t+/v3murKxMkZGRtuuioqK0Zs2aSsMw4YSgAwCAavrPf/6jN954Q3/+85/Vr18//fznP9f999+viy++WHPnzrVd26dPH0VGRiopKUn9+vXT1KlTzborr7xSf/rTn5SXlyfDMLRu3Tq98sorOnLkiPbu3RvqPytkmNMBAEA1rV+/XoZh6KyzzrKdLysrU9u2bW3nFi9erIMHD+qzzz7TAw88oKefflrp6emSpN/97ncqKirSRRddJMMwFAgEdOutt2r69OmKiIgI2d8TagQdAABU07FjxxQREaG8vLxKwcHpp59uKyckJEiSzj33XFVUVOjOO+/Ufffdp4iICEVFRemVV17RH//4R3377beKi4vT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BWdfYn3SrbMfdA7jWB/k6Vz+i/pF0AEAgIfIdLgj6AAAwEMEHe5YMgsAAEKCTEctvPfee+axdZmYVHlrc+uyWOccDmdEa50H4Zz/cd5559nK7777rnk8YcIEW116erqtvHDhQvPYueTss88+s5Wty8y+++47W110dLStzJJZwDs1WTLrfHx9VUtmnY+vj4+PN4+3b99uq+vVq5etbJ2jduedd9rqHnnkEVv59ddfN48vvvhiW92OHTtsZWsbq/q7JftcMufcEOt3StKLL75oHiclJSnUyHS4I+gAAMBDBB3uGF4BAAAhQaYDAAAPkelwR9BRC1dddZV5bH3EvGTf9lySOnToYB6XlZXZ6px7WVgfHe/cCjgvL89Wvu6668zjZ5991lbnLN9www3msXVbY0nq1q2brWzdp8O6XbIkHTx40Fbm0faAd2qyT4dzzlRN9unYvXu3eXzWWWfZ6tasWWMrWx8r/9JLL9nqpk6daivfcsst5vHHH39sq0tMTLSVrX2dsx909pPWfmj9+vW2ujFjxtjK1nkn//nPfxRqBB3uGF4BAKCRW7lypYYOHar4+Hj5fD699dZbp3zPihUrlJKSosjISHXp0kWzZ8+u83YSdAAA4LET2Y6f+qqp77//Xt27d6+0M7WbgoICDR48WP369dOGDRv08MMP65577tGSJUtq/N01wfBKLVifmPj444/b6q6++mpb+fPPPzePncMVzmWx1iEV51LWgQMH2srz5s0zj53bEVu3Apakv/zlL+Zxnz59XNsn2YeDTvWUWWsa1LmEjyWzQM3U5imz1q3DnUtmS0pKbOW4uDjz2DkEkZKSYisvX77cPHYOZWRlZdnK1v+3PGjQIFudsz+z9nXOftDZT1r7KOfTtnnK7PF77bzfVZk9e7Y6duyonJwcSVLXrl21bt06Pf300/r1r39do++uCTIdAAB4qLZZDmvQUlpaans557r8VKtXr1Zqaqrt3JVXXql169ZVeu6Nlwg6AABooBISEhQbG2u+srOzPfncoqKiSg8UDQQCOnr0qPbu3evJd5wMwysAAHjIy+GVwsJCxcTEmOf9fn+tPtfKbaWU87yXCDpqoV+/fuax8zHy8+fPt5X79+9vHm/atMlWd+6559rK1mWxzjkcCxYssJXvv/9+83jy5Mm2Ouu2587Pci69dT7auqioyDx2LrWzLnOT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i0pMTFRkZKRSUlL08ccfV3n9ihUrlJKSosjISHXp0kWzZ8/+qX9ytdUq6Ni0aZPWrVunCRMmqG3btlqzZo0mTJiguLg4jRw5UsuWLQvbaA0AgJOpj6Bj8eLFSktL05QpU7Rhwwb169dPgwYN0s6dO096fUFBgQYPHqx+/fppw4YNevjhh3XPPfdoyZIlXtwCV7VeMnvBBRfoueee0+7du/Xmm2/qmmuu0bFjx/S///u/GjJkiDp06MDwCwAAdWjGjBm67bbbdPvtt6tr167KyclRQkKCZs2addLrZ8+erY4dOyonJ0ddu3bV7bffrrFjx+rpp5+u03Z6tk9Hs2bNNGzYMC1dulS7d+/WH/7wB/3yl7/Unj17zOGXXr16MfwCAAh7ocxylJeXKy8vT6mpqbbzqampWrVq1Unfs3r16krXX3nllVq3bp2OHDlSsz+2Bupkc7C2bdvq7rvv1po1a/Tkk08qIiJChmFo7dq1mjBhguLj43XbbbepoKCgLr4eAIB64+XwSmlpqe1VVlZW6fv27t2riooKBQIB2/lAIKCioqKTtrGoqOik1x89elR79+716E5UVidBx5YtW5Senq6OHTsqIyNDR48eVbt27XTPPffohhtukCTNnTtX3bp1O+VEFwAAmqqEhATFxsaar+zsbNdrfT6frWwYRqVzp7r+ZOe95NnmYPv27dPChQs1f/58bdiwQYZhKCIiQldddZXGjh2ra665Rs2bN5ck/fe//9Vjjz2mF154Qenp6Vq9erVXzQAAoF55uTlYYWGhYmJizPN+v7/Ste3atVNERESlrEZxcXGlbMYJwWDwpNc3a9ZMbdu2rVXbq1KroOPo0aP661//qvnz5+u9997TkSNHZBiGkpKSdOutt+rWW29VXFxcpfe1adNGzz//vJYvX67PPvusNk0AAKBB8TLoiImJsQUdJ9OiRQulpKQoNzdX1113nXk+NzdX11577Unf07t3b73zzju2c8uXL1fPnj3NBEFdqFXQER8fr3379skwDLVq1Uo33nijxo4dq379+lXr/XFxcfryyy9r0wQAAJq8yZMna/To0erZs6d69+6tOXPmaOfOnRo3bpwkKSMjQ7t27dKrr74qSRo3bpxmzpypyZMn64477tDq1av18ssv64033qjTdtYq6Ni7d6969+6tsWPHasSIETr99NNr9P4//OEP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frhH0ttvv62ePXvq+uuvV/v27dWjRw+99NJLZj336LiLL75Y//jHP7R9+3ZJ0meffaZPPvlEgwcPlsR9cqrO/cjLy9ORI0ds18THxys5OblJ3rNQafDPXmkI9u7dq4qKCgUCAdv5QCCgoqKiempVw2EYhiZPnqyLL75YycnJkmTel5Pdsx07doS8jfVl0aJFWr9+vdauXVupjnskffXVV5o1a5YmT56shx9+WGvWrNE999wjv9+vW265hXv0/z344IMqKSnROeeco4iICFVUVOiJJ57QjTfeKIn/lpyqcz+KiorUokULtW7dutI19Ot1h6CjBnw+n61sGEalc03RxIkTtXHjRn3yySeV6pryPSssLNS9996r5cuXV/kAqKZ8j44dO6aePXsqKytLktSjRw9t2bJFs2bN0i233GJe15TvkSQtXrxYCxYs0MKFC3XeeecpPz9faWlpio+P15gxY8zrmvp9cvop96Op37O6xvBKNbRr104RERGVot/i4uJKkXRTc/fdd+vtt9/Whx9+qA4dOpjng8GgJDXpe5aXl6fi4mKlpKSoWbNmatasmVasWKHnnntOzZo1M+9DU75HcXFxOvfcc23nunbtqp07d0riv6MTHnjgAT300EMaOXKkunXrptGjR2vSpEnKzs6WxH1yqs79CAaDKi8v1/79+12vgfcIOqqhRYsWSklJUW5uru18bm6u+vTpU0+tql+GYWjixIl688039cEHHygxMdFWn5iYqGAwaLtn5eXlWrFiRZO5Z5dffrk2bdqk/Px889WzZ0/ddNNNys/PV5cuXZr8Perbt2+lpdbbt29Xp06dJPHf0Qk//PCDTjvN3l1HRESYS2a5T3bVuR8pKSlq3ry57Zo9e/Zo8+bNTfKehUy9TWFtZE4smX355ZeNrVu3GmlpaUarVq2Mr7/+ur6bVi9++9vfGrGxscZHH31k7Nmzx3z98MMP5jVPPvmkERsba7z55pvGpk2bjBtvvDGsl/BVh3X1imFwj9asWWM0a9bMeOKJJ4wvvvjCeP31142WLVsaCxYsMK9p6vfIMAxjzJgxxplnnmkumX3zzTeNdu3aGenp6eY1Te0+HTx40NiwYYOxYcMGQ5IxY8YMY8OGDeY2BtW5H+PGjTM6dOhgvP/++8b69euNyy67jCWzdYygowZeeOEFo1OnTkaLFi2MCy64wFwe2hRJOulr7ty55jXHjh0zHnvsMSMYDBp+v9+45JJLjE2bNtVfoxsAZ9DBPTKMd955x0hOTjb8fr9xzjnnGHPmzLHVc48Mo7S01Lj33nuNjh07GpGRkUaXLl2MKVOmGGVlZeY1Te0+ffjhhyftg8aMGWMYRvXux+HDh42JEycabdq0MaKiooyrr77a2LlzZz38NU0HT5kFAAAhwZwOAAAQEgQdAAAgJAg6AABASBB0AACAkCDoAAAAIUHQAQAAQoKgAwAAhARBBwAACAmCDgAAEBIEHQAAICQIOgAAQEgQdAAAgJAg6AAAACFB0AE0Ubfffrt8Pp8GDhyokz1s+tFHH5XP51O3bt1UVlZWDy0EEG54tD3QRB06dEjdu3fXV199pWeffVZpaWlm3b/+9S/17dtXERERWrNmjbp3715/DQUQNsh0AE3U6aefrtdee00RERHKyMjQli1bJEk//PCDRo8erYqKCv3P//wPAQcAzxB0AE1Ynz59lJ6erh9//FE333yzysvLNXnyZH3xxRe65JJLdP/999d3EwGEEYZXgCbuyJEj6tWrlzZs2KCBAwcqNzdXMTEx2rhxozp16lTfzQMQRgg6AGjr1q1KSUnRjz/+KEmaN2+exowZU8+tAhBuCDoAqLy8XN26ddP27dsVGxurb775Rqeffnp9NwtAmGFOBwBNmTJF27dv12mnnaaSkhJNmjSpvpsEIAwRdABN3MqVKzVjxgy1bNlSubm5OuOMM/SnP/1J77zzTn03DUCYIegAmrDS0lKNGTNGx44d01NPPaXLLrtML7zwgqTjm4d999139dxCAOGEoANowu655x59/fXXSk1N1fjx4yVJo0aN0ogRI1RcXKw777yznlsIIJwwkRRoopYuXarhw4erdevW2rx5s+Lj4826/fv3Kzk5Wbt379Yrr7yi3/zmN/XYUgDhgqADaIK+/fZbJScna+/evXrjjTc0cuTIStcsX75cV111lU4//XRt3LhRnTt3Dn1DAYQVgg4AABASzOkAAAAhQdABAABCgqADAACEBEEHAAAICYIOAAAQEgQdAAAgJAg6AABASBB0AACAkCDoAAAAIUHQAQAAQoKgAwAAhARBBwAACAmCDgAAEBIEHQAAICT+HzLCGv+VVZFXAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from pylab import imshow\n",
    "\n",
    "plt.imshow(field,cmap='gray')\n",
    "plt.colorbar()\n",
    "plt.xlabel('x',size=16)\n",
    "plt.ylabel('y',size=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29021493-60d0-4344-80b4-0a3ba2fcebee",
   "metadata": {},
   "source": [
    "And now we use overrelaxation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ab0dfaef-dc55-4667-a621-0a2533e14c36",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "absolute precision met in  276 iterations\n"
     ]
    }
   ],
   "source": [
    "max_iter = 100000\n",
    "tol = 1.e-3\n",
    "field = np.zeros_like(boundaries)\n",
    "omega = 0.9\n",
    "\n",
    "field[boundaries == boundaries] = boundaries[boundaries == boundaries]\n",
    "\n",
    "for t in range(max_iter):\n",
    "    delta = 0\n",
    "    for i in range(1,len(field)-1):\n",
    "        for j in range(1,len(field[0])-1):\n",
    "            ofield = field[i,j]\n",
    "            field[i,j] = 0.25 * (1+omega) * (field[i-1,j] + field[i+1,j] + field[i,j-1] + field[i,j+1]) - omega*field[i,j]\n",
    "            delta += (field[i,j]-ofield)**2\n",
    "    field[boundaries == boundaries] = boundaries[boundaries == boundaries]\n",
    "    if(np.sqrt(delta) < tol):\n",
    "        print(\"absolute precision met in \", t, \"iterations\")\n",
    "        break"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "a5e0fb88-4b83-49bb-bdb4-5980480d0387",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from pylab import imshow\n",
    "\n",
    "plt.imshow(field,cmap='gray')\n",
    "plt.colorbar()\n",
    "plt.xlabel('x',size=16)\n",
    "plt.ylabel('y',size=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0692fe31-7976-47da-be3f-af5848cbf7d6",
   "metadata": {},
   "source": [
    "# Forward Time Centered Space"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab9dd18e-20ea-405b-a48f-19a0f5942e41",
   "metadata": {},
   "source": [
    "## Diffusion of heat in the Earth crust"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c31d329d-64a9-4ad1-824a-6b3d2caabfd9",
   "metadata": {},
   "source": [
    "We assume that the temperature of the crust on the Earth surface changes according to $T(z=0, t) = 10°$C$\\ +\\ 12°$C $ \\sin(2\\pi t/\\text{yr})$, while the temperature 20 meters underground is at a constant 11°C.\\\n",
    "We also approximate the thermal diffusivity to be $D = 0.1 \\text{m}^2 \\text{day}^{-1}$.\\\n",
    "Start assuming a temperature profile which is at a constant $10°C$, except for the two boundaries. \n",
    "\n",
    "We evolve the system for ten years. With our choice of initial conditions, it will take a few years for the crust to thermalize.\\\n",
    "You may incur into numerical instabilities if the time steps are too large. The values used here have been tuned to avoid that.\\\n",
    "Notice that here we are not managing the errors, but in principle you may want to do that."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "a5bdafc4-31c2-4d34-902a-2cbea6960c05",
   "metadata": {},
   "outputs": [],
   "source": [
    "D = 0.1 * 365\n",
    "Ns = 300\n",
    "a = 20 / Ns\n",
    "\n",
    "Nt = 300000\n",
    "times = np.linspace(0, 10, Nt)\n",
    "h = 10 / Nt\n",
    "\n",
    "T20 = 273.15 + 11\n",
    "T0 = 273.15 + 10 + 12*np.sin(2.*np.pi*times[0])\n",
    "\n",
    "temperatures = [np.ones(Ns) * (273.15 + 10)]\n",
    "temperatures[0][0] = T20\n",
    "temperatures[0][-1] = T0\n",
    "\n",
    "for it in range(1, Nt-1):\n",
    "    T0 = 273.15 + 10 + 12*np.sin(2.*np.pi*times[it])\n",
    "    temp = np.ones(Ns) * (273.15 + 10)\n",
    "    temp[0] = T20\n",
    "    temp[-1] = T0\n",
    "\n",
    "    prev_temp = temperatures[it-1]\n",
    "    temp[1:-1] = prev_temp[1:-1] + h*(D/a**2)*(prev_temp[2:] + prev_temp[:-2] - 2*prev_temp[1:-1])\n",
    "    \n",
    "    temperatures.append(temp)\n",
    "    \n",
    "temperatures = np.array(temperatures)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "02648c79-ff6b-44b0-a518-c4f8b8da1a7c",
   "metadata": {},
   "source": [
    "We can plot the solution in the first few days to see how the system start to stabilize"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "47227811-dca4-4d05-8331-b160f6600bfa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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tKZPn44pU6boXmdkZMDX17fS50lERERAVmEWitRFANgj9dgmTJiAjRs3Yt++ffDx8dFtz83NxYwZM7B+/Xr06dMHANCiRQscP34cn332mS6RelRISAisra1x8eLFUhMpV1dXyGSyEr1PKSkpJXqptBQKBRQKhbGnSERERA/RTjRXWilhY2Vj4mhKZ/ZzpIQQGD9+PNatW4ddu3YhICBAb39hYSEKCwshleqfikwmg1qtLrPev//+G4WFhfDy8ip1v1wuR2hoaImhv5iYGLRv397IsyEiIiJDmfvSB4AF9EiNGzcOP//8MzZs2AAHBwddD5FKpYJSqYSjoyM6deqEt99+G0qlEn5+fti7dy+WL1+O+fPnAwAuX76MlStXonfv3nB1dcWZM2fw1ltvoXXr1njmmWd0bXXt2hUDBgzA+PHjAQBTpkzBiBEj0KZNG4SFhWHJkiVISEjAmDFjav6NICIiesLolj5QmOewHmABiZR2qYGIiAi97dHR0Rg5ciQAYPXq1Zg+fTqGDx+OtLQ0+Pn54aOPPtIlPHK5HDt37sRXX32FrKws+Pr6ok+fPpg5cyZkMpmuzsuXLyM1NVX3esiQIbhz5w7mzJmDpKQkBAcHY8uWLfDz86vekyYiIiLd0gfmOj8KACRCCGHqIGqrjIwMqFQqpKenw9HR0dThEBERWZSlp5biq7++Qr8G/fBRh49qrN3KfH+b/RwpIiIiejJph/bMeY4UEykiIiIyS+Z+exiAiRQRERGZKe1inOY82ZyJFBEREZklbY9UHWUdE0dSNiZSREREZJYsYfkDJlJERERkdoQQnCNFREREZIycohzkFecB4FV7RERERJWSmqtZINvO2g621rYmjqZsTKSIiIjI7GgTqTo25jvRHGAiRURERGZIm0i5Kl1NHEn5mEgRERGR2bmTeweAeS99ADCRIiIiIjPEHikiIiIiI93Ju98jxTlSRERERJXDHikiIiIiI2nnSDGRIiIiIqok9kgRERERGUEI8WCOFK/aIyIiIjJcRkEGitRFAMz79jAAEykiIiIyM9phPZVCBblMbuJoysdEioiIiMyKpdweBmAiRURERGbGUiaaA0ykiIiIyMxYyu1hACZSREREZGZS89gjRURERGQUXY8U50gRERERVY6lrGoOMJEiIiIiM8PJ5kRERERGYiJFREREZIRidTHu5t8FwKv2iIiIiCrlbv5dqIUaUokUzgpnU4dTISZSREREZDa0E82dFc6QSWUmjqZiTKSIiIjIbOhuD2MBw3oAEykiIiIyI3fyLGfpA4CJFBEREZkRS7piD2AiRURERGaEQ3tERERERtIlUhZwexgAsHrcCoQQSE1Nxe3bt5GbmwtXV1e4ubnB1ta2KuIjIiKiJ0habhoAyxnaMyqRunjxItasWYN9+/YhNjYWOTk5JcoEBgYiPDwckZGReO6552Btbf3YwRIREVHtZmlzpCqVSP36669YuHAhDhw4AEDTGwUAUqkUKpUKSqUSaWlpyMvLw4ULF3DhwgX897//hYuLC1566SVMmTIFdevWrfqzICIiolohNc+yEimD5kjt3LkTbdu2xdChQ7F//360aNECM2bMwIYNG3Dr1i0UFhbizp07uHnzJnJycpCbm4tjx45h0aJFGDZsGAoKCvDFF1+gUaNGmD59OtLT06v7vIiIiMjCFBQXID1fkyPUqjlS3bt3h0qlwrvvvouoqCg0bty43PIKhQIhISEICQnBmDFjkJ+fj02bNuHrr7/GvHnzoFQq8cEHH1TJCRAREVHtcDv3NgBALpVDpVCZOBrDGJRIzZ49GxMnToRKZdxJKRQKDBo0CIMGDcL+/ftx7949o+ohIiKi2islJwUA4G7rDolEYuJoDGNQIvX+++9XWYPh4eFVVhcRERHVHv/k/ANAk0hZCoPXkcrKynqshr788svHOp6IiIhqt5TsBz1SlsLgRKpnz56lLnNgiP/85z946623jDqWiIiIngwPD+1ZCoMTqYMHD6JXr16VTqbeffddzJw5s9KBERER0ZMlJbcWJ1L+/v44cOAAnn32WeTl5Rl0zLhx4/DZZ58BAD7//HPjIiQiIqIngrZHysPWw8SRGM7gRGr37t2oV68e9u7di759+yI/P7/MskIIjBw5Et9++y0kEgmWLFmCSZMmVUW8REREVEvV6qE9Pz8/7N69G76+vti1axf69++PgoKCEuWKioowePBgLF++HDKZDD/99BNee+21Kg2aiIiIahchhC6RcrN1M3E0hjM4kQI0w3u7d+9G3bp1ERMTgwEDBqCwsFC3Pz8/H/369cPatWshl8vx66+/YtiwYVUeNBEREdUuGQUZyC/WjHbVyh4prYCAAOzevRve3t7YunUrBg4ciKKiImRlZaFnz57YunUrbG1tsWnTJvTv3786YiYiIqJaRtsb5aRwgkKmMHE0hqvUTYu1GjRogN27d6NTp074/fff8fzzzyMlJQVHjhyBo6Mjfv/9dzzzzDNVHSsRERHVUpY4PwowMpECgIYNG2L37t3o3Lkzfv/9dwghUKdOHWzbtg0hISFVGSMRERHVcpY4PwqoRCK1b9++UrfPnDkT48ePh0QiwezZs5GVlVVm2Y4dOxoXJREREdVq2tvDWNLSB0AlEqmIiIgKbyA4YcKEMvdJJBIUFRUZHhkRERE9MW7n3AZQy4f2hBBGN/Q4xxIREVHtVuvnSKnV6uqMg4iIiJ5g2qE9d6VlJVKVXv6gps2dOxdt27aFg4MD3N3d8dxzz+H8+fN6ZbKysjB+/Hj4+PhAqVSiSZMmWLx4can1CSHQq1cvSCQS/Pbbb+W2PWvWLEgkEr2Hp6dnVZ0aERER3WepPVJmn0jt3bsX48aNw6FDhxATE4OioiJERkYiOztbV2by5MnYunUrVqxYgbNnz2Ly5MmYMGECNmzYUKK+L7/8ssK5Xg9r1qwZkpKSdI9Tp05VyXkRERGRRqG6EGl5aQAsL5EyevmDmrJ161a919HR0XB3d0dcXJzuKsDY2FhERUUhIiICAPD666/ju+++w7Fjx/QWBT1x4gTmz5+Po0ePwsvLy6D2rays2AtFRERUje7k3oGAgJXUCs42zqYOp1IM6pEKDg7GmjVrHnvCeEJCAsaMGYN58+YZXUd6ejoAwMXFRbetQ4cO2LhxIxITEyGEwO7du3HhwgX06NFDVyYnJwfDhg3DwoULK5UYXbx4Ed7e3ggICMDQoUNx5cqVMsvm5+cjIyND70FERETl086PclO6QSox+8EyPQZFm5mZiRdffBGNGjXCf/7zH1y8eNHgBgoKCrB+/XoMGjQIgYGBWLp0Kdzdjeu2E0JgypQp6NChA4KDg3XbFyxYgKZNm8LHxwdyuRw9e/bEokWL0KFDB12ZyZMno3379pW6bc3TTz+N5cuXY9u2bfj++++RnJyM9u3b486dO6WWnzt3LlQqle7h6+tr1HkSERE9SSx1fhRg4NDehQsXsGDBAnzyySeYOXMmZs2ahQYNGuCpp55CaGgovLy84OLiAoVCgXv37iEtLQ1nz57FsWPHcOzYMWRnZ0MIge7du2PevHlo1aqVUcGOHz8eJ0+exIEDB/S2L1iwAIcOHcLGjRvh5+eHffv2YezYsfDy8kK3bt2wceNG7Nq1C/Hx8ZVqr1evXrqfmzdvjrCwMDRo0AA//vgjpkyZUqL89OnT9bZnZGQwmSIiIqpArU+kFAoF3n77bYwZMwYrVqzA999/j+PHj+PSpUtYtWpVqcdohwHt7Ozwyiuv4PXXX0fbtm2NDnTChAnYuHEj9u3bBx8fH9323NxczJgxA+vXr0efPn0AAC1atMDx48fx2WefoVu3bti1axcuX74MJycnvToHDhyI8PBw7Nmzx6AY7Ozs0Lx58zJ75BQKBRQKy7nRIhERkTnQJlKWtqo5UMnJ5g4ODnjjjTfwxhtv4OLFi9i3bx8OHjyI69evIzU1FXl5eXBxcYG7uztatWqFDh06oH379rC1tTU6QCEEJkyYgPXr12PPnj0ICAjQ219YWIjCwkJIpfqjlDKZTLf21bRp0/Daa6/p7W/evDm++OIL9O3b1+BY8vPzcfbsWYSHhxt5NkRERPQoS73PHvAYV+0FBgYiMDAQr776alXGU8K4cePw888/Y8OGDXBwcEBycjIAQKVSQalUwtHREZ06dcLbb78NpVIJPz8/7N27F8uXL8f8+fMBAJ6enqVOMK9Xr55eYta1a1cMGDAA48ePBwBMnToVffv2Rb169ZCSkoIPP/wQGRkZiIqKqtZzJiIiepLU+qE9U9IurKld2kArOjoaI0eOBACsXr0a06dPx/Dhw5GWlgY/Pz989NFHGDNmTKXaunz5MlJTU3Wvb968iWHDhiE1NRVubm5o164dDh06BD8/v8c6JyIiInrgiRnaMwVDllzw9PREdHT0Y9d77do1vderV6+uVJ1ERERUOUKIB7eHscAeKctarIGIiIhqlczCTOQW5QJgIkVERERUKUlZSQAAZ4UzlFZKE0dTeUykiIiIyGSSsjWJlKedZd6OjYkUERERmYw2kfK29zZxJMZhIkVEREQmox3a87LzMnEkxmEiRURERCaj7ZFiIkVERERUSbpEyt4yE6nHXkdKCIHU1FTcvn0bubm5cHV1hZub22PdFoaIiIieDJY+tGdUInXx4kWsWbMG+/btQ2xsLHJyckqUCQwMRHh4OCIjI/Hcc8/B2tr6sYMlIiKi2qOwuBC3c28DeEISqV9//RULFy7EgQMHADxYHVwqlerufZeWloa8vDxcuHABFy5cwH//+1+4uLjgpZdewpQpU1C3bt2qPwsiIiKyOMk5yRAQUMgUcLFxMXU4RjFojtTOnTvRtm1bDB06FPv370eLFi0wY8YMbNiwAbdu3UJhYSHu3LmDmzdvIicnB7m5uTh27BgWLVqEYcOGoaCgAF988QUaNWqE6dOnIz09vbrPi4iIiMxccnYyAE1vlEQiMXE0xjGoR6p79+5QqVR49913ERUVhcaNG5dbXqFQICQkBCEhIRgzZgzy8/OxadMmfP3115g3bx6USiU++OCDKjkBIiIiskyWvhgnYGAiNXv2bEycOBEqlcqoRhQKBQYNGoRBgwZh//79uHfvnlH1EBERUe1xK+sWAMudHwUYmEi9//77VdZgeHh4ldVFRERElks3tGehSx8AXEeKiIiITMTSF+MEHiOR+vPPPytV/osvvjC2KSIiIqqFtEN73naWeZ894DESqYiICLz33nsoKioqt9zNmzfRpUsXTJ061dimiIiIqJYRQuhdtWepjE6krKys8Mknn+Dpp5/GuXPnSi2zYsUKNG/eHHv27EHDhg2NDpKIiIhql7v5d5FXnAcA8LDzMHE0xjM6kYqLi0OrVq0QHx+P0NBQLFiwQLcvLS0NgwcPRlRUFNLT0zFmzBgcP368KuIlIiKiWkA7P8pN6Qa5TG7iaIxndCLVtGlTHD58GNOmTUNBQQEmT56MyMhIrFy5Es2bN8f//vc/eHh4YMuWLVi0aBGUSmVVxk1EREQWLDnL8of1gMe8as/Kygoff/wx9u7di4CAAOzcuRMvvfQSkpOT8cILL+D06dPo2bNnVcVKREREtcStbM1Ec0tejBOoouUPZDIZJBIJhBAQQkAqlaJVq1ZwdnauiuqJiIioltEO7XnbW+4Ve8BjJlJqtRozZ85EeHg4Ll++jIiICMycORMymQz//ve/ER4ejitXrlRVrERERFRLJGVZ/u1hgMdIpC5evIiwsDB8+OGHkMlk+PTTT7Fz507MnDkThw4dQpMmTXDw4EG0bNkS33//fVXGTERERBZO1yNlwWtIAY+RSLVu3RpHjx5F8+bNcfToUbz11lu6Oze3atUKcXFxmDRpEnJycjBmzBg8++yzVRY0ERERWTbdquYWfHsY4DESqby8PLzzzjs4evQogoODS+xXKBSYP38+duzYAR8fH/zxxx+PFSgRERHVDnlFeUjLSwNg+VftGXTT4tLs2bMHHTp0qLBc586dcfLkSUyYMMHYpoiIiKgWuZl5EwDgYO0AR7mjiaN5PEb3SBmSRGmpVCosX77c2KaIiIioFrmReQMA4OPgo5sWZKmqZPkDIiIiIkPdzNL0SPk4+Jg4ksdnUCL1yy+/VFmDN27cwMGDB6usPiIiIrIs2h4pXwdfE0fy+AxKpIYOHYrg4GCsWLECubm5RjV0+vRpvP766wgMDMSOHTuMqoOIiIgsn3aO1BOTSC1cuBB37txBVFQU3N3d8a9//Qs///wzLl26VOYxWVlZ2LdvHz7++GO0bNkSLVu2xNKlS9G7d2+MGDGiyk6AiIiILMvDc6QsnUQIIQwpmJ2djfnz5+O7777DrVu3dJPDHBwc4OnpCRcXFygUCty7dw9paWlITEzUu2VMjx498N5776F9+/bVekLmJCMjAyqVCunp6XB0tOyrEoiIiKpCsboYbVe2RaG6EFsHbkVd+7qmDqmEynx/G5xIaanVamzatAlr1qzBgQMHcPPmzVLLyeVytGnTBpGRkXj55Zfh62v53XeVxUSKiIhIX3J2Mrr/rzusJFY4+q+jsJIavRJTtanM93elo5dKpejfvz/69+8PQDN5/Pr160hNTUVeXh5cXFzg7u6OJk2aQKFQGHcGREREVCtph/W87b3NMomqrMc+A19f3yeyt4mIiIgqrzZNNAcqsY5Uly5dMGnSpGoMhYiIiGq72jTRHKhEj9SePXtQVFRUnbEQERFRLVeb1pACuLK5RVMLtalDICIiqhTt0J6Pfe3okWIiZYF+/P1DDFjSAm8vjTR1KERERJVyI+sJHdoj85FbkINLCoH0ohQIISz+ho9ERPRkyCjIQHp+OgAO7ZEJBbu0h1Ktxm0rgdOpp00dDhERkUG0w3ouNi6wtbY1cTRVo1KJ1J9//gmZTGbUw8qKnV9VxVrli045mnsebr+2zcTREBERGaa2TTQHKplIaW/5YuyDqobM0RPdsrWJ1Fa+t0REZBF0E81ryfwooJJzpJo3b44FCxZUVyxkIIXcBkE5cijVatzK+Qd/3/kbwa7Bpg6LiIioXLWxR6pSiZRKpUKnTp2qKxYykI21FPfULuiYk45t9nbYfm07EykiIjJ7tW1Vc4CTzS2SjbUMycIFkdk5AIDt17dzeI+IiMzezazatYYUwETKIimspEgWzgjPzYONRIbErEScuXPG1GERERGVqbC4EEnZSQBq1xwpJlIWSGEtQ7KoA6UQ6ChzAgBsu86r94iIyHzdyLoBtVBDaaWEm9LN1OFUGSZSFsjGWtMjBQDdCjQf4fZrHN4jIiLzdTX9KgAgQBVQqxaSNniyuVrN+7qZC7lMin/gAgDokHEPSlelZngv7Qya1Wlm4uiIiIhK0iZS/o7+pg2kirFHygJJJBLclbkCAOyykhBeNxyApleKiIjIHF1LvwZA0yNVmzCRslD3rDSJlLQwB5F1OwDg8B4REZmvqxkPhvZqEyZSlkpuh3ShuU9RuF0AbGQ2uJl1E2fTzpo4MCIiIn1CCA7tkXnRriUFALa5aQj34fAeERGZpzt5d5BZkAkJJPBz9DN1OFWKiZSFUlhJ8c/9K/eQcQuR/pEAuDgnERGZH+38KG97b9hY2Zg2mCrGRMpCKaxlSBJ1NC8yktCxbkfYyGxwI/MGzqWdM21wRERED9HOj/JX+Zs2kGpg9onU3Llz0bZtWzg4OMDd3R3PPfcczp8/r1cmKysL48ePh4+PD5RKJZo0aYLFixeXWp8QAr169YJEIsFvv/1WYfuLFi1CQEAAbGxsEBoaiv3791fFaT02GyspknG/RyrzFmytbR8M713n8B4REZkP3RpSjrVrojlgAYnU3r17MW7cOBw6dAgxMTEoKipCZGQksrOzdWUmT56MrVu3YsWKFTh79iwmT56MCRMmYMOGDSXq+/LLLw1eCGzNmjWYNGkS3nvvPcTHxyM8PBy9evVCQkJClZ2fsR6eI4WMWwCASL/7w3u8eo+IiMxIbV36ALCARGrr1q0YOXIkmjVrhpYtWyI6OhoJCQmIi4vTlYmNjUVUVBQiIiLg7++P119/HS1btsSxY8f06jpx4gTmz5+P//73vwa1PX/+fLz66qt47bXX0KRJE3z55Zfw9fUts7crPz8fGRkZeo/qolndXD+R6ujTEQqZAgmZCTh/93w5RxMREdWch1c1r23MPpF6VHp6OgDAxcVFt61Dhw7YuHEjEhMTIYTA7t27ceHCBfTo0UNXJicnB8OGDcPChQvh6elZYTsFBQWIi4tDZGSk3vbIyEgcPHiw1GPmzp0LlUqle/j6+hpzigaxsZbpTTYHoBne4+KcRERkRvKL85GYlQiAiZTJCSEwZcoUdOjQAcHBwbrtCxYsQNOmTeHj4wO5XI6ePXti0aJF6NChg67M5MmT0b59e/Tv39+gtlJTU1FcXAwPDw+97R4eHkhOTi71mOnTpyM9PV33uHHjhhFnaRgbKxmStD1SOalAUT4A8Oo9IiIyKwkZCRAQcLB2QB2bOqYOp8oZfK89czB+/HicPHkSBw4c0Nu+YMECHDp0CBs3boSfnx/27duHsWPHwsvLC926dcPGjRuxa9cuxMfHV7rNR+dTCSHKnGOlUCigUCgq3YYxbKyluAsHFEnksBIFQGYy4OyHTj6doJApcD3jOi7cvYDGLo1rJB4iIqLS1NabFWtZTI/UhAkTsHHjRuzevRs+Pj667bm5uZgxYwbmz5+Pvn37okWLFhg/fjyGDBmCzz77DACwa9cuXL58GU5OTrCysoKVlSZ/HDhwICIiIkptz9XVFTKZrETvU0pKSoleKlOwsZYBkCBT7qbZ8NDwXof7t4zZdm2biaIjIiLS0K1oXguXPgAsIJESQmD8+PFYt24ddu3ahYAA/fHVwsJCFBYWQirVPxWZTAa1Wg0AmDZtGk6ePInjx4/rHgDwxRdfIDo6utR25XI5QkNDERMTo7c9JiYG7du3r6KzM57CWgYASL9/zz1k3tLt0129x+E9IiIysdp6jz0tsx/aGzduHH7++Wds2LABDg4Ouh4ilUoFpVIJR0dHdOrUCW+//TaUSiX8/Pywd+9eLF++HPPnzwcAeHp6ljrBvF69enqJWdeuXTFgwACMHz8eADBlyhSMGDECbdq0QVhYGJYsWYKEhASMGTOmBs68fDbWmsTxrswV/oCuRwoAOvl2glwq5/AeERGZnG7pg1q4hhRgAYmUdqmBR4fgoqOjMXLkSADA6tWrMX36dAwfPhxpaWnw8/PDRx99VOmE5/Lly0hNTdW9HjJkCO7cuYM5c+YgKSkJwcHB2LJlC/z8TH+fIIWVpkfqjux+j1RGkm6fnbUdOtTtgF03dmHbtW1MpIiIyCT0blZcS4f2zD6RMmRoytPTs8whusrUe+3atRLbxo4di7Fjx1aq7pqg7ZFKld6/AuKhoT1Ac/Xerhu7sP36dkxoPaFWTvAjIiLz9k/OP8gpyoFMIoOvQ/UtCWRKZj9Hikpnc79H6jb0F+XUivCN0F29dzbtbE2HR0REhAt3LwDQzI+Sy+QmjqZ6MJGyUDb3J5s/WN08SW+/nbUdOvl0AgD8cfWPGo2NiIgIeJBIBToHmjiS6sNEykJph/aStKubZyYB969S1OoV0AsAsPXaVqiF/j4iIqLqpk2kGjk3MnEk1YeJlIXS9UgVOwGQAOpCzQrnDwn3CYe9tT2Ss5NxPOV4jcdIRERPtot3LwJgIkVmSNsjlV0sAezdNRsfmSelkCnQpV4XAMCWq1tqND4iInqyFRQX6JY+YCJFZke7/EFeYTHg4KXZ+EgiBTwY3ou5HoMidVGNxUdERE+2q+lXUSSK4GDtAA9b098RpLowkbJQ2qG9vEI14FhXszGzZCL1tNfTcFY4Iy0vDUeSjtRkiERE9AR7eKJ5bV6Ch4mUhVJYaT66vMJiwFHbI5VUopy11Brd/boDAP64xqv3iIioZjwJ86MAJlIWS9sjlV+khnDw1mwsZWgPeDC8t/P6ThQUF9RIfERE9GTTXbHnwkSKzJB2sjkAFNrdv49gKUN7ABDiEQJ3W3dkFmZif+L+mgiPiIiecLqhPafau4YUwETKYml7pACgQDuJr4weKalEip7+PQEAW69urfbYiIjoyXY37y5u594GULsX4wSYSFksa5kUMqlm8l6uzf0eqVLmSGlph/f23NiDnMKc6g6PiIieYNr5UT72PrCztjNxNNWLiZQFs7k/4TzX5v46UgWZQF5GqWWb1WkGXwdf5BXnYdeNXTUVIhERPYGehFvDaDGRsmDa4b1ciRJQqDQbM0vvlZJIJOhTvw8AYPPlzTUSHxERPZku3nsyrtgDmEhZtAdrST28BEJimeWfrf8sACA2KRa3c25Xe3xERPRkupBW+++xp8VEyoIp7l+5l1tYDKh8NBvTb5ZZ3s/RDy3cWkAt1LxlDBERVYtidTEup18GwKE9MnPKh3ukVL6ajfdulHtM3/p9AQCbr3B4j4iIqt71zOvILcqFjcwG9RzqmTqcasdEyoLZyu/PkSooBpzuJ1Lp5SdSPf17wkpqhXNp53RXVRAREVWVM3fOAAAauzSGTCqroLTlYyJlwXSTzQuLAdX9rL+CHiknGyeE1w0HAGy6sqla4yMioiePNpFqWqepiSOpGUykLJi2RypHr0cqocLj+jbQDO/9fuV3FKuLqy0+IiJ68jCRIotR6hypjFtABclRJ59OcJA7ICUnBUf/OVrdYRIR0RNCLdQ4l3YOABMpsgBKuRWA+z1SDp6A1ApQF5W5lpSWXCZHD/8eAIBNlzm8R0REVeN6xnVkF2ZDIVOgvqq+qcOpEUykLJjy4TlSUhngWFezo4J5UsCDq/d2XN+B3KLcaouRiIieHGfvnAUANHZuDCuplYmjqRlMpCyY3lV7wIPhvQqu3AOA1u6tUde+LnKKcrArgbeMISKix6edH9WkThMTR1JzmEhZMOWjiZR2wvm9iiecSyQS3aRzDu8REVFVOJV6CgAQ7Bps4khqDhMpC6Yd2sspfLRHquzVzR+mHd6LTYpFcnZylcdHRERPjkJ1oa5HqoVrCxNHU3OYSFmwMnukDBjaA4B6jvXQxqMN1EKNDZc2VEeIRET0hLh09xLyivPgYO0Af5W/qcOpMUykLJhujlRhkWaDgbeJedjzgc8DANZfWg+1UFdpfERE9OTQDus1c20GqeTJSS+enDOthXQrm+t6pO6vbp5+AxDCoDq6+XWDvbU9ErMScST5SHWESURETwBtItXctbmJI6lZTKQsmN7K5sCD5Q8Kc4CcNIPqUFop0ad+HwDAuovrqjxGIiJ6Mpy6zUSKLIzeyuYAYG0D2HtofjbgVjFaAwIHAAB2Xt+J9Pz0Ko2RiIhqv8yCTFxJvwIAaO7GRIoshPLRHinAqHlSTV2aorFzYxSoC7D5yuaqDJGIiJ4AJ2+fhIBAXfu6cFW6mjqcGsVEyoLprWyuVckr9wDNmlLaSefrLq6DMHB+FREREQDEp8QD0Cz2/KRhImXBbO/fay9Xr0fKR/NciR4pAOhTvw/kUjku3L2gWweEiIjIEMdTjgNgIkUWRtsjVaQWKCy+v3SB6qEr9ypBpVChq19XAJx0TkREhitSF+Fk6kkATKTIwmjnSAEPzZMyYmhPa2DgQADAlqtbeCNjIiIyyPm755FblAsHuQMaODUwdTg1jomUBZNbSWEllQB46Mo9Iyaba7X1bIu69nWRVZiFbde2VVWYRERUi8X/o5kf1dKt5RO1EKfWk3fGtYzufnuP9kjlpgEF2ZWqSyqRYlCjQQCAX87/UmUxEhFR7fVXyl8AnsxhPYCJlMUrcb89GxWgUGl+NqJXakDDAbCWWuNU6in8nfp3VYVJRES1kBACx5KPAdCMajyJmEhZOOWj99sDHvRK3TN8UU6tOso6iPSPBACsPr/6seMjIqLa6/K9y7ibfxc2MhsE1wk2dTgmwUTKwunWkip46IbDzv6a57tXjapzaOOhAIA/rv7Blc6JiKhMR/85CgBo5d4K1jJrE0djGkykLNyD1c0f6pHSJlJpxiVSLd1aIsglCPnF+fjt0m+PFyAREdVaR5M1idSTOqwHMJGyeLbyUlY3dwnQPBvZIyWRSDCk8RAAwJrza6AW6gqOICKiJw3nR2kwkbJwD4b2HkqknO8nUkb2SAFA74DecLB2wI3MGzh46+DjhEhERLXQxXsXn/j5UQATKYunvH+bGL0bF+t6pK4BauN6k2ytbdG/YX8AwIozKx4nRCIiqoVib8UCAEI9Q5/Y+VEAEymLp7TWfIR6Q3sqX0AiA4rzgcwko+t+scmLkECCP2/9icv3Lj9uqEREVIvEJmkSqTCvMBNHYlpMpCxcqTcullk/WALByHlSAODr4Isu9boAAH4685PR9RARUe1SUFyAuOQ4AECYNxMpsmA21qVMNgeqZJ4UAIxoOgIAsPnKZtzNu/tYdRERUe0QnxKPvOI8uCpdEegUaOpwTIqJlIWzlT9yixitx7xyTyvEPQRN6zRFfnE+bxtDREQAHsyPaufVDhKJxMTRmBYTKQunvWovr5p6pCQSia5XavX51SgoLnis+oiIyPIdSDwAAGjv3d7EkZgeEykLV+qCnADgUl/znHblsdvo4dcD7kp3pOamYsvVLY9dHxERWa7k7GScv3seEkjwTN1nTB2OyTGRsnC6daQKH1nmoE5DzfOdy4AQj9WGtcwaLzZ5EQAQfTqaC3QSET3BtL1Rzd2aw8XGxcTRmB4TKQtnp7jfI5X/aI9UACCRAgWZQNY/j93OkMZD4GDtgCvpV7A7Yfdj10dERJZp3819AICOdTuaOBLzwETKwtkrNIugZT2aSFkpACc/zc+pFx+/Hbk9hgZpbma89NRSiMfs5SIiIstTUFyAQ0mHAAAdfZhIAUykLJ6DjWYdqcy8opI7Xe9fkpp6oUra+lfTf8FGZoPTd07jcPLhKqmTiIgsx6GkQ8gtyoW70h1BLkGmDscsMJGycPa6RKqw5M469xOpO5eqpC0XGxc8H/g8AGDpyaVVUicREVmOXQm7AACd63V+4pc90DL7RGru3Llo27YtHBwc4O7ujueeew7nz5/XK5OVlYXx48fDx8cHSqUSTZo0weLFi/XKjB49Gg0aNIBSqYSbmxv69++Pc+fOldv2rFmzIJFI9B6enp5Vfo6PQ9sjlZVfVHK4zfX+hPMqGNrTGtlsJKwkVjicfBgnb5+ssnqJiMi8FauLsfuGZo5s13pdTRyN+TD7RGrv3r0YN24cDh06hJiYGBQVFSEyMhLZ2dm6MpMnT8bWrVuxYsUKnD17FpMnT8aECROwYcMGXZnQ0FBER0fj7Nmz2LZtG4QQiIyMRHFxcWnN6jRr1gxJSUm6x6lTp6rtXI3haKOZI6UWQPaji3K6NtI836m6RMrL3gvPNngWALDoxKIqq5eIiMzb8dvHkZaXBke5I9p4tjF1OGbDytQBVGTr1q16r6Ojo+Hu7o64uDh07KiZ6BYbG4uoqChEREQAAF5//XV89913OHbsGPr376/bpuXv748PP/wQLVu2xLVr19CgQYMy27eysjK7XqiHKayksJJKUKQWyMwrhL3ioY9UO7R3LwEoytdMQK8Cr7d4HZsub8KfiX/ieMpxtHJvVSX1EhGR+dqZsBMA0MmnE6yl1iaOxnyYfY/Uo9LT0wEALi4P1q7o0KEDNm7ciMTERAghsHv3bly4cAE9evQotY7s7GxER0cjICAAvr6+5bZ38eJFeHt7IyAgAEOHDsWVK2UvcJmfn4+MjAy9R3WTSCQPhvcenXBu7w4oHAGhrpKFObV8HXzxXMPnAAAL4xdWWb1ERGSe1EKNbde2AQC6+XUzcTTmxaISKSEEpkyZgg4dOiA4OFi3fcGCBWjatCl8fHwgl8vRs2dPLFq0CB06dNA7ftGiRbC3t4e9vT22bt2KmJgYyOXyMtt7+umnsXz5cmzbtg3ff/89kpOT0b59e9y5c6fU8nPnzoVKpdI9KkrSqop2wnnGo4mURPLgyr3b51GVXm/xOqykmrlSR5OPVmndRERkXuJT4pGSkwIHawd0qNuh4gOeIBaVSI0fPx4nT57EqlWr9LYvWLAAhw4dwsaNGxEXF4fPP/8cY8eOxY4dO/TKDR8+HPHx8di7dy8CAwMxePBg5OXlldler169MHDgQDRv3hzdunXD77//DgD48ccfSy0/ffp0pKen6x43btx4zDM2jMP9taRKvXLPrYnmOeVslbbpbe+NgYEDAWh6pbiuFBFR7fXH1T8AAF3qdYFcVnYHxJPI7OdIaU2YMAEbN27Evn374OPjo9uem5uLGTNmYP369ejTpw8AoEWLFjh+/Dg+++wzdOv2oAtS21MUGBiIdu3awdnZGevXr8ewYcMMisHOzg7NmzfHxYulT95WKBRQKKpmHlJlPHzlXgkeTTXPKWeqvN1RzUdh/cX1+CvlLxy8dZD3XCIiqoWK1EWIuR4DAOgV0MvE0Zgfs++REkJg/PjxWLduHXbt2oWAgAC9/YWFhSgsLIRUqn8qMpkManX594QTQiA/P9/gWPLz83H27Fl4eXkZfgI1oNxFOd2rp0cKADzsPDAkaAgAYH7cfBSry78CkoiILE/srVik5aXBWeGMp7yeMnU4ZsfsE6lx48ZhxYoV+Pnnn+Hg4IDk5GQkJycjNzcXAODo6IhOnTrh7bffxp49e3D16lX88MMPWL58OQYMGAAAuHLlCubOnYu4uDgkJCQgNjYWgwcPhlKpRO/evXVtde3aFQsXPpg8PXXqVOzduxdXr17F4cOHMWjQIGRkZCAqKqpm34QKONiUM7Tnfr9HKu0yUJhb5W2/3vx1OMgdcOHuBWy8vLHK6yciItPacFmzlFCf+n14tV4pzD6RWrx4MdLT0xEREQEvLy/dY82aNboyq1evRtu2bTF8+HA0bdoUn3zyCT766COMGTMGAGBjY4P9+/ejd+/eaNiwIQYPHgw7OzscPHgQ7u7uunouX76M1NRU3eubN29i2LBhaNy4MZ5//nnI5XIcOnQIfn5+NfcGGKDMq/YAwN4DULportyrolvFPMzJxgmjW4wGoJkrlVOYU+VtEBGRaaTnp+tWM+/XoJ+JozFPZj9HypBJzJ6enoiOji5zv7e3N7Zs2VJhPdeuXdN7vXr16gqPMQfataNKXLUHaK7cc28KXD+gGd7zalnl7Q8LGoZV51YhMSsRy88sx5iWY6q8DSIiqnlbr25FoboQjZwb8d56ZTD7Himq2IOhvVISKeDBPKl//q6W9uUyOSaFTAIA/Pf0f3E753a1tENERDVHCIG1F9cCAPo36M9765WBiVQt8OCqvVLmSAHVeuWeVg//Hmjh2gK5Rbn48q8vq60dIiKqGX/f+Rtn085CLpWjb4O+pg7HbDGRqgXKvWoPADzuL16aXH33CZRIJJj21DRIIMHGyxu5SCcRkYX75fwvAIBI/0g42zibOBrzxUSqFjAokZJIgax/gIykaoujuVtzvNDoBQDAx4c/RqG6jB4yIiIya+n56bpFOIc0HmLiaMwbE6laoNzlDwBAbgu43Z8kmHS8WmOZGDIRzgpnXLp3CSvPrKzWtoiIqHqsvbgWecV5aOTcCC3dqv4ipSpRmAcUmP5KcSZStYD2qr1SVzbX8mqleb4VX62xqBQqTGkzBQCw6MQiJGcnV2t7RERUtQrVhfj57M8AgH81+Zf5TjK/8AfwiS+wbrRJw2AiVQs4lHXT4od5t9Y83zpe7fH0a9APIe4hyC3KxezY2bwPHxGRBdlxfQf+yfkHLjYu6F2/d8UHmMqNI4C6CFA4mDQMJlK1gHZor6BIjfyiMm7T4t1K83wrHqjmxEYqkWJm2EzIpXIcSDyA3y79Vq3tERFR1RBCIPq0Zl3GoY2HQiGr+fvHGuzGEc2z79MmDYOJVC2gHdoDyljdHLg/4VwGZKcAmdU34VyrvlN9TGg9AQDwf0f/D0lZ1d8mERE9nv2J+3E27SyUVkoMCxpm6nDKVpgLJJ3Q/Ozb1qShMJGqBWRSCezkMgDlXLn38ITzxL9qJK4RTUegpVtLZBVmYebBmRziIyIyY0IIfHfyOwCaK/WcbJxMG1B5bh0H1IWa26A5mfa2bUykaokKVzcHHmTtCbE1EBEgk8rw4TMfQiFTIDYpFqvPW8Ytd4iInkQHbx3EydsnIZfKEdUsytThlO/m/WE9n7aaW6GZEBOpWuLBhPNy1m6q117znHCoBiLS8Ff5Y3LoZADAp0c/xdk7Z2usbSIiMoxaqPHVX18BAIYEDYGr0tXEEVXATOZHAUykag0XOzkAIDUrv+xC9dppnpOOAwXZ1R/UfS8GvYgI3wgUqgsxde9UZBVk1VjbRERUse3Xt+Ns2lnYWdvhteavmTqc8gkB3Dis+dn3KdPGAiZStYa7ow0A4HZmOYmUUz3AwVtzuWhiXA1Fprl9zIfPfAgvOy8kZCZgTuwczpciIjIT+cX5+DLuSwBAVNMouNi4mDagiqScAbJvA1bKB0v7mBATqVrCzV5ziWq5iZREAviFaX6uweE9QLNQ5/91/D/IJDL8ce0PrDq3qkbbJyKi0v105ickZiXCXelu/nOjAODybs2z/zOAlemXZ2AiVUu4OxqQSAFAvfuJ1PU/qzmiklq5t8KkkEkANEsiHLx1sMZjICKiB5Kzk7Hk5BIAwKTQSbC1tjVxRAa4cj+Rqt/ZtHHcx0SqltD1SJU3RwoA/J7RPCcc0qzDUcOimkWhb/2+KBbFmLpnKq6kX6nxGIiISGPu4bnILcpFS7eW6FO/j6nDqVhRPnDtfkdAAyZSVIW0PVIpGRUkUu5NNPOkivJM0islkUgwq/0stHJrhczCTEzYOQHp+ek1HgcR0ZNux/Ud2HVjF6wkVvgg7ANIJRaQEtw4AhTlAnbugHtTU0cDgIlUreHmYGCPlEQCBHbT/HxxRzVHVTq5TI4vO38JbztvJGQmYOyOscgurLmrCImInnR3cu/gP4f+AwB4OfhlNHJuZOKIDHRxm+a5QWeTrx+lxUSqlnB30Fy1l5ZdgIIidfmFG95PpC6ZJpECgDrKOvim6zdQKVQ4mXoSb+56E/nFFSSBRET02IQQmB07G2l5aWjo1BCjW442dUiGEQI4s0Hzc5D5DEMykaolnJTWsJJqsvM72RUkJPUjNPfdu3MRuHut2mMrS0Pnhvi227ewtbLF4eTDmLpnKgrV5SwoSkREj23VuVXYfWM3rKXW+CT8E/O+MfHDkk4A9xIAa1ugYXdTR6PDRKqWkEoluuG9CudJ2ageLM557vdqjqx8wa7BWNh1IRQyBfbc3IO39rzFnikiompy8vZJfHrsUwDA5NDJaOzS2MQRVYK2N6phN839Y80EE6laRDdPqqIlEACg6XOa59Prqi8gA7X1bIsvIr6AXCrH7hu7MW7HOM6ZIiKqYv9k/4PJuyejSF2E7n7d8a8m/zJ1SIZ7eFivaX/TxvIIJlK1iLuhE84BoNlzgEQKJB4D0q5Wb2AGCPcJx7fdHwzzjdo+Cnfz7po6LCKiWiGnMAcTdk1ASm4KGjo1xJz2cyAxk8naBkk4BKRd1gzrNeph6mj0MJGqRQwe2gMAe3cgoKPm579N3ysFaHqm/tvjv3BSOOFU6ikM+30YLty9YOqwiIgsWkFxASbunoizaWfhrHDG112+hr3c3tRhVU7cD5rn4IGAwsGkoTyKiVQt4nb/yr3bWXmGHRA8UPN8Yo2m29QMNHNthh97/ggfex8kZiXiX1v+hZ3Xd5o6LCIii5RXlIe39ryFw0mHobRS4puu38DHwcfUYVVOThrw93rNz6EvmzaWUjCRqkUq1SMFaMaZ5fZA6nng6t5qjKxy6jvVx6o+q/C019PILcrFpD2TMD9uPgqLeUUfEZGhsgqy8MaON7Dn5h7IpXJ81fkrNHdrbuqwKi9+BVCcD3g0B+qGmDqaEphI1SIe9xOpW+kG3vrFRgW0elHz8+Hvqikq4zjZOOHbbt/qJkNGn47G8C3DceUebylDRFSRtLw0vLr9VRz75xjsrO3wbfdvEeYdZuqwKq8wFzj4tebnp183m0U4H8ZEqhZp7KkZN76QnIXC4goW5dR66nXN8/k/gDTzSlKspFZ496l38WXEl3BSOOFs2lkM2TwEP5z+getNERGV4XTqaQzbPAxn7pyBs8IZy3osQ1vPtqYOyzhxPwLZKYCqHtBiqKmjKRUTqVrE19kWDgorFBSrcSkly7CDXAPvL2wmgD2fVGt8xurq1xVr+61FmFcY8orz8Hnc5xi8aTDi/okzdWhERGZDCIGfz/6MEX+MwK3sW/Cx98EPvX5AszrNTB2acfIygANfaH4OnwJYyU0bTxmYSNUiUqkETbwdAQB/38ow/MDOMzTPJ38Bkk5WQ2SPz93WHd92/xZz2s+Bk8IJl+5dwsitI/HWnrdwJd28etKIiGpaUlYSJu6eiLlH5qJIXYSu9bril76/oL6qvqlDM97uj4CsZMA54ME0FDPERKqWaaZLpNINP6huyP0r+ASwbQagNnBYsIZJJVIMCByATc9twqBGgyCBBNuvb8eADQPw3oH3cC39mqlDJCKqUYXqQkSfjkb/Df2x58YeWEms8Habt/FFxBdwkJvXMgGVkhgHHFmi+fnZ+YCV+d7GholULdPMWwWgkj1SANDlfcBKCVzbDxwxr4nnj3KyccLMsJn4X7//obNvZ6iFGhsvb0Tf3/pi3M5xOJR0CMJMlnMgIqoOReoibLi0Ac/99hzmx81HblEuQtxD8GvfX/FSs5csa7HNR+WkAb+OBIQaCB4ENOhi6ojKJRH8xqk2GRkZUKlUSE9Ph6OjY420eTYpA72+2g8HhRVOzIyEVFqJP6Yj3wNbpgIyBfDqNsC7dfUFWoVO3T6F705+h703Hyzh4Ofoh771+6Jvg77wtvc2YXRERFUnqyALv1/5HT+e+RE3Mm8AAJwVzpjSZgr6N+hv2QkUABTmAauGAFf2AM7+wOt7AKVzjYdRme9vJlLVyBSJVGGxGs1mbkNBkRp7346AXx07ww8WAvh5CHBxG2DrCryyDXBtWH3BVrFr6dew4uwKbLy8EblFD5aAaOnWEl3qdUFn384IUAWYMEIiosorVhcjPiUem65swh9X/9D9++ascMbI4JEY2ngobK3N5ya+RivMA9b8C7gUoxkheW0H4BlsklCYSJkJUyRSADBg0Z+IT7iHd3sG4Y2IBpU7OC8D+PFZIOkEYOcODPkJqNeuegKtJjmFOYi5HoONlzfiSPIRvX1edl5o49EGbTzboI1HG/g6+Fr+/+CIqNZJz0/HseRj2J+4H7tv7EZaXppuX31VfbzQ6AU8H/h87UigAM3yO79EAcknNffTe3HNg9uYlSEjrxBv/3oC03o1QYBrJToNDMBEykyYKpH6X9xNTP31BNwcFNj/TmfYWMsqV0HWbWB5fyDlb0BqDTzzpubSU3nV/qLWhH+y/8GeG3uw68YuHEk+giJ1kd7+OjZ1EOQShEYujdDYuTEaOzdGPcd6kMvM8zJbIqp9cotycfHuRZxLO4fzaedx4vYJXLh7AQIPvp4d5Y6I8I3A84HPI8Q9pPb8BzAvHTi0GDjwJVCUC9jWAQb/BPg/U+5hRcVqvPLjMey7cBuNPRzwx5vhlZvKUgEmUmbCVIlUQZEaEZ/uxq30PPznuWCMaOdX+Urys4AN44Azv2leK12AkJeAZs8BXq3McnXZiuQU5uD47eM4lnwMcf/E4VTqqVIX9pRAAg87D/g6+MLH3gde9l5wVbrC1cYVdZR1NA+bOrCxsjHBWRCRJRFCIKswC3fz7iItLw0pOSlIzEpEYlYibmbdRGJmIhIyE6AWJa+Wrq+qj6c8n0KXel3QxrMNrKXWJjiDapCfCVyPBc5tAk6vAwrur3voHw4M+A5Q1S338Oz8Iry/4TTW/ZUIpbUMv4wOQ3MfVZWGyETKTJgqkQKA/x64ijmbz0AmlWB0x/qIaOwOJ1trSCUSyKQSyCSSinMhIaC8shVO+2fBKiNBt1ltbY/COkEodA1CkWM9qG1cUKysA2FtC8isIaRyCJk1ILXWPEtK9ogJPNJ4qcE82Kb7La2KBO5+ZfnF+biSfQ1Xsq/javZ13XNusWE3fVbKbGArU2oeVrYPfpYpYSuzhVwmh7XECtZS6/vP2p+tdT/LJFJIIL3/LIFUIoX0/rNE+zMkACSaMhIppJBCKpFA8uh7CDyyTZR4v/T2CpSoQSKRQIJH/0kou44SbQpR4ugH0ZT9T01Fe0r7V0qUtaOCth4cU7JMWcc9vP3R8y9xjChj3yOxlvcPb8l/lkXFx5S6t4J/3kUZxwlj2rq/r5SEwJDjympRVPA7IDHmd0BbppRj1UKNIlGMYlGMovuP4oeei1GMIlGEYlGMPHUB8tT5yCvOf/Dz/Ud2cS4yirKQXpSFIlFUSuv6VFYOqK/0QYCND+rb+qKZXUM4Wz+UHBj9Vf0YX/HGtqkuhrQwG7LCTEgLMiEryIJ1ThLkGdchz7gGRfoVSB76Pclzaoh/QqYgI6BPmf/GF6nVSMnMR3zCPfwWn4jkjDxIJMC3/wpFj2aexsVZDiZSZsKUiVRBkRpTfjmOzSeTHrsuGYrRTfoXBsgOIFx6EnYSA2+KbIEEgDSpFDesrXDTygo3ra2QbGWFO1IpUq1kuCOTIVUmQ6EF9sgRkeko1Wq4FKtRp7gYdYuK4FNUhLqFRahbVISGhYVwNfS2XrXETeGKPcUt8bu6HWLVTVHyvyjl83VR4j/9gxHR2L1a4mMiZSZMmUgBmv9t/X4qCWvjbuJiShZyCopRrBZQqwWK1AJqISrdwWOFIgQgCYGSG2iEBHggDc6STDghE0oUwBpFuocViiFHIaSP/I+oZI9HyV/B0vunStZTomfLQMYepzkWyJJKcE8qRbZUcv/x0M8SzesCCVAgkaBQIkGBBPefJSh8aHsxALUEUEPzEPe3CQDFEk2cxQDEQ2XUkEAt0X/XKvoj1isrKXtf6dskZe4r7ZMs7501dl/Zx5TdYsnfs4f2GfGvXk2eV3nHlVtfOedlTIxVHbuxdZb3eVV1jFIAMgFYCQEr7c8ArAQgu7/NSmgeNgKwUQvds1IAyvuv7dQCqmLASS2gKtZs0zK+b6k6PpGqb1MNCXIlSmRDiSyJLbJgh7sSFW5KPHFT4olrEl/cltSpVJ1SiQSuDgo0cLNDp0Zu6NHMs/LzfyuhMt/fVtUWBZmcRCLBsy288WwLrqNU1ewAeJg6CCIiMjmubE5ERERkJCZSREREREZiIkVERERkJCZSREREREZiIkVERERkJCZSREREREZiIkVERERkJCZSREREREZiIkVERERkJCZSREREREZiIkVERERkJCZSREREREZiIkVERERkJCZSREREREayMnUAtZkQAgCQkZFh4kiIiIjIUNrvbe33eHmYSFWjzMxMAICvr6+JIyEiIqLKyszMhEqlKreMRBiSbpFR1Go1bt26BQcHB0gkkiqtOyMjA76+vrhx4wYcHR2rtG5zwPOzfLX9HGv7+QG1/xx5fpavus5RCIHMzEx4e3tDKi1/FhR7pKqRVCqFj49Ptbbh6OhYa/9AAJ5fbVDbz7G2nx9Q+8+R52f5quMcK+qJ0uJkcyIiIiIjMZEiIiIiMhITKQulUCgwc+ZMKBQKU4dSLXh+lq+2n2NtPz+g9p8jz8/ymcM5crI5ERERkZHYI0VERERkJCZSREREREZiIkVERERkJCZSREREREZiImWGrl27hldffRUBAQFQKpVo0KABZs6ciYKCAr1yCQkJ6Nu3L+zs7ODq6oqJEyeWKPOo/Px8TJgwAa6urrCzs0O/fv1w8+bN6jydUn300Udo3749bG1t4eTkVGL/Dz/8AIlEUuojJSWlzHojIiJKlB86dGg1nknZKjpHAKWe37fffltuvZbyGZ44cQLDhg2Dr68vlEolmjRpgq+++qrCes3lMzTk87Pkv8FH7dmzp8y/uaNHj5Z53MiRI0uUb9euXQ1GXjn+/v4l4p02bVq5xwghMGvWLHh7e0OpVCIiIgJ///13DUVsOEO/Ox5lzp/hokWLEBAQABsbG4SGhmL//v3llt+7dy9CQ0NhY2OD+vXrV/jvaVXgyuZm6Ny5c1Cr1fjuu+/QsGFDnD59GqNGjUJ2djY+++wzAEBxcTH69OkDNzc3HDhwAHfu3EFUVBSEEPj666/LrHvSpEnYtGkTVq9ejTp16uCtt97Cs88+i7i4OMhkspo6RRQUFOCFF15AWFgYli1bVmL/kCFD0LNnT71tI0eORF5eHtzd3cute9SoUZgzZ47utVKprJqgK6mic9SKjo7WO9eKVtO1lM8wLi4Obm5uWLFiBXx9fXHw4EG8/vrrkMlkGD9+fLl1m8NnWNH5Wfrf4KPat2+PpKQkvW3vv/8+duzYgTZt2pR7bM+ePREdHa17LZfLqyXGqjJnzhyMGjVK99re3r7c8v/3f/+H+fPn44cffkCjRo3w4Ycfonv37jh//jwcHByqO1yDGfLdURZz/AzXrFmDSZMmYdGiRXjmmWfw3XffoVevXjhz5gzq1atXovzVq1fRu3dvjBo1CitWrMCff/6JsWPHws3NDQMHDqy+QAVZhP/7v/8TAQEButdbtmwRUqlUJCYm6ratWrVKKBQKkZ6eXmod9+7dE9bW1mL16tW6bYmJiUIqlYqtW7dWX/DliI6OFiqVqsJyKSkpwtraWixfvrzccp06dRJvvvlm1QRXRco7RwBi/fr1BtdlyZ+hEEKMHTtWdO7cudwy5vYZlnV+teVvsCwFBQXC3d1dzJkzp9xyUVFRon///jUTVBXw8/MTX3zxhcHl1Wq18PT0FJ988oluW15enlCpVOLbb7+thgir1qPfHaUx18/wqaeeEmPGjNHbFhQUJKZNm1Zq+XfeeUcEBQXpbRs9erRo165dtcUohBAc2rMQ6enpcHFx0b2OjY1FcHAwvL29ddt69OiB/Px8xMXFlVpHXFwcCgsLERkZqdvm7e2N4OBgHDx4sPqCrwLLly+Hra0tBg0aVGHZlStXwtXVFc2aNcPUqVORmZlZAxEab/z48XB1dUXbtm3x7bffQq1Wl1nWkj9DoOTvcVks4TOs7X+DGzduRGpqKkaOHFlh2T179sDd3R2NGjXCqFGjyh1+Nwfz5s1DnTp10KpVK3z00UflDn1dvXoVycnJep+ZQqFAp06dzO4zK42hf3Pm9hkWFBQgLi5O730HgMjIyDLf99jY2BLle/TogWPHjqGwsLDaYuXQngW4fPkyvv76a3z++ee6bcnJyfDw8NAr5+zsDLlcjuTk5FLrSU5Ohlwuh7Ozs952Dw+PMo8xF//973/x4osvVjjEM3z4cAQEBMDT0xOnT5/G9OnTceLECcTExNRQpJXzn//8B127doVSqcTOnTvx1ltvITU1Ff/+979LLW/Jn2FsbCx++eUX/P777+WWs5TPsLb/DS5btgw9evSAr69vueV69eqFF154AX5+frh69Sref/99dOnSBXFxcWa5ovabb76JkJAQODs748iRI5g+fTquXr2KpUuXllpe+7k8+ll7eHjg+vXr1R7v4yjtu6M05vgZpqamori4uNT3vby/r9LKFxUVITU1FV5eXtUSK3ukatCsWbPKnMypfRw7dkzvmFu3bqFnz5544YUX8Nprr+ntk0gkJdoQQpS6vTzGHFMaY87PELGxsThz5gxeffXVCsuOGjUK3bp1Q3BwMIYOHYr//e9/2LFjB/766y9jTqmEqj7Hf//73wgLC0OrVq3w1ltvYc6cOfj0008rHZe5f4Z///03+vfvjw8++ADdu3cvt2x1foZVfX7m9jdYGmPO+ebNm9i2bZtBf3NDhgxBnz59EBwcjL59++KPP/7AhQsXKkyYq1JlznHy5Mno1KkTWrRogddeew3ffvstli1bhjt37pTbxqOfT3V+Zo+q6u+OR5nDZ1iWyr7vpZUvbXtVYo9UDRo/fnyFVx/5+/vrfr516xY6d+6MsLAwLFmyRK+cp6cnDh8+rLft7t27KCwsLJGRP3xMQUEB7t69q/c/4pSUFLRv376SZ1NSZc/PUEuXLkWrVq0QGhpa6WNDQkJgbW2NixcvIiQkpNLHP6q6zlGrXbt2yMjIwD///FPq52iJn+GZM2fQpUsXjBo1qsyetvJU5WdYlednjn+DpTHmnKOjo1GnTh3069ev0u15eXnBz88PFy9erPSxxnqcz1V7ddqlS5dQp06dEvs9PT0BaHo7Hu7RSElJKfNzrmpV+d1hCFN8ho9ydXWFTCYr0ftU3vvu6elZankrK6tSP9sqU60zsMhoN2/eFIGBgWLo0KGiqKioxH7tRNdbt27ptq1evdqgia5r1qzRbbt165ZZT1TOzMwU9vb24uuvvzaq/lOnTgkAYu/evUZG+PgqMxn766+/FjY2NiIvL6/U/Zb2GZ4+fVq4u7uLt99+2+j6Tf0ZVjTZ3NL/Bh+lVqtFQECAeOutt4w6PjU1VSgUCvHjjz9WcWTVY9OmTQKAuH79eqn7tZPN582bp9uWn59vtpPNK/ruMIS5fIZPPfWUeOONN/S2NWnSpNzJ5k2aNNHbNmbMmGqfbM5EygwlJiaKhg0bii5duoibN2+KpKQk3UOrqKhIBAcHi65du4q//vpL7NixQ/j4+Ijx48fryty8eVM0btxYHD58WLdtzJgxwsfHR+zYsUP89ddfokuXLqJly5ZG/8EZ6/r16yI+Pl7Mnj1b2Nvbi/j4eBEfHy8yMzP1yi1dulTY2NiItLS0EnU8en6XLl0Ss2fPFkePHhVXr14Vv//+uwgKChKtW7eu8fMTouJz3Lhxo1iyZIk4deqUuHTpkvj++++Fo6OjmDhxYpnnKITlfIanT58Wbm5uYvjw4Xq/wykpKWWenzl9hhWdn6X/DZZlx44dAoA4c+ZMqfsbN24s1q1bJ4TQ/EfnrbfeEgcPHhRXr14Vu3fvFmFhYaJu3boiIyOjJsM2yMGDB8X8+fNFfHy8uHLlilizZo3w9vYW/fr10yv38DkKIcQnn3wiVCqVWLdunTh16pQYNmyY8PLyMrtzNOS7QwjL+QxXr14trK2txbJly8SZM2fEpEmThJ2dnbh27ZoQQohp06aJESNG6MpfuXJF2NraismTJ4szZ86IZcuWCWtra/G///2vWuNkImWGoqOjBYBSHw+7fv266NOnj1AqlcLFxUWMHz9eryfj6tWrAoDYvXu3bltubq4YP368cHFxEUqlUjz77LMiISGhpk5NJyoqqtTzezhWIYQICwsTL774Yql1PHp+CQkJomPHjsLFxUXI5XLRoEEDMXHiRHHnzp1qPpvSVXSOf/zxh2jVqpWwt7cXtra2Ijg4WHz55ZeisLBQV4clf4YzZ84sdb+fn5+uDnP+DA35HbXkv8GyDBs2TLRv377M/QBEdHS0EEKInJwcERkZKdzc3IS1tbWoV6+eiIqKMqvzeVhcXJx4+umnhUqlEjY2NqJx48Zi5syZIjs7W6/cw+cohKZXaubMmcLT01MoFArRsWNHcerUqRqOvmKGfndY0mf4zTffCD8/PyGXy0VISIhez3RUVJTo1KmTXvk9e/aI1q1bC7lcLvz9/cXixYurPUaJEPdnYhERERFRpfCqPSIiIiIjMZEiIiIiMhITKSIiIiIjMZEiIiIiMhITKSIiIiIjMZEiIiIiMhITKSIiIiIjMZEiIiIiMhITKSIiA+Tl5cHPzw9NmzaFWq2u9vbmzJkDiUSCmJiYam+LiIzHRIqIyABff/01EhIS8O9//xtSafX/0zlx4kSoVCpMmzYNvAEFkfliIkVEVIGMjAzMnTsX9evXx5AhQ2qkTScnJ7zxxhv466+/8Msvv9RIm0RUeUykiIgqsHLlSty9excjRoyATCarsXajoqIAAAsXLqyxNomocnjTYiKiCoSEhCA+Ph7nzp1D48aNa7TtVq1a4cSJEyZpm4gqxh4pIqo1XnvtNUgkEnTv3r3UeUUffPABJBIJmjdvjvz8fIPqvHDhAuLj49GgQYNSE5lr165BIpHA398fALB06VK0bt0atra2qFu3LiZOnIjMzEwAQHFxMT7//HM0a9YMSqUSPj4+mDZtGgoKCsps/9lnnwUArFmzxqB4iahmMZEiolrjyy+/RP369bFjxw589dVXevsOHz6Mjz/+GHK5HCtWrIBCoTCozn379gEAnnrqqQrLvvXWWxg1ahQyMzPRoEEDpKSk4Ouvv8Zzzz0HtVqNQYMGYerUqRBCwM/PD7du3cK8efMwatSoMuvUtquNg4jMCxMpIqo17O3t8dNPP0Emk2H69On4+++/AQA5OTkYMWIEiouL8Z///ActW7Y0uM6DBw8CAEJDQ8stl5iYiGXLlmHHjh24dOkSTp06hfj4eNSpUwe7du3CwIEDcezYMcTHx+PMmTM4d+4cdu3aBblcjuXLl+PMmTOl1tu2bVsAQGxsLIqLiw2Om4hqBhMpIqpV2rdvj3feeQd5eXn417/+hYKCAkyZMgUXL15Ex44dMXXq1ErVd/36dQCAl5dXueWKioowa9YsdO3aVbctODgYr7/+OgDgt99+w9dff41WrVrp9kdEROD5558HAGzbtq3Uej08PCCVSpGTk4PU1NRKxU5E1Y+JFBHVOrNnz0br1q1x/PhxPPvss/juu+/g6OiI5cuXV3oNKG3y4uLiUmHZV155pcQ2beLk4uKC5557rsT+1q1bAwCuXLlSap1SqRQqlQoAcPv2bUNCJqIaxESKiGoda2trrFixAjY2NrqVwRcsWAA/P79K15WXlwcAFc6pcnNzg6OjY6nbAaBBgwZlHgcAWVlZZdatVCoBALm5uRUHTEQ1iokUEdVKDRs2RL169QAAKpUKAwcONKoebU/UvXv3yi1na2tb6naJRGLQ/vJWoklLSwMAuLq6lhsDEdU8JlJEVCu99957uHDhAqRSKdLT0zF58mSj6nF3dwfwIJmpaXl5ebpeMW3vFRGZDyZSRFTr7Nu3D/Pnz4etrS1iYmLg5OSEpUuXYtOmTZWuSzvH6ezZs1UcpWG0Vx4GBgbC3t7eJDEQUdmYSBFRrZKRkYGoqCio1Wp8+umn6NKlC7755hsAmgU7Kzthu0OHDgCAY8eOVXmshjhy5AgAIDw83CTtE1H5mEgRUa0yceJEXLt2DZGRkRg7diwA4MUXX8SQIUOQkpKiW47AUO3bt4ednR2OHTumG2KrSX/++ScAIDIyssbbJqKKMZEiolpj/fr1+PHHH+Hs7Izo6Gi9fYsXL4a3tzd+++23EvvKY2dnh6FDhyI7Oxu///57VYdcrry8PGzcuLHMpROIyPSYSBFRrfDPP//oepsWLVoEb29vvf3a5EoikeDNN9/EtWvXDK5bW+/KlSurLF5DbN68GZmZmRgxYoTBt7QhopolEeVdc0tERAA0Q2u7d+/GxYsXdTcorm6dOnXCkSNHcOHCBfj6+tZIm0RUOeyRIiIywLx581BcXIyPP/64Rtrbt28f9u3bhwkTJjCJIjJjVqYOgIjIErRu3Rrff/89UlJSoFarK32rmcq6d+8eZs6ciTfffLNa2yGix8OhPSIiIiIjcWiPiIiIyEhMpIiIiIiMxESKiIiIyEhMpIiIiIiMxESKiIiIyEhMpIiIiIiMxESKiIiIyEhMpIiIiIiMxESKiIiIyEhMpIiIiIiM9P81F9Iq8IoDjQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-20,0,Ns)\n",
    "\n",
    "for i in [10, 100, 1000]:\n",
    "    plt.plot(x,temperatures[i,:],label='t = %f yrs' %times[i])\n",
    "plt.legend()\n",
    "plt.xlabel('x (m)',size = 16)\n",
    "plt.ylabel('T(x) (K)',size= 16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4def05db-5741-45ab-8add-168e608e4656",
   "metadata": {},
   "source": [
    "We then want to plot the solution every approximately 3 months in the tenth year.\n",
    "Notice that by then, the system has approximately become periodic with a period of 1 year, as expected."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "b0627f86-534c-4d01-914c-e6b57c8021f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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34Hbnd8t8+fPz3OetxsZtay8f3D7czx48CAeHh4sXLgQf39/du3axZNPPolWq2X8+PFF7rs8vIfl/Xfw38LDw4mOjs6z7NVXX2XDhg00atSoyG27du3K/PnzTc+tra1LJceSMHPmTEaPHm16bm9vX2T8W2+9xdy5c/nf//5H9erV+e9//0unTp04deoUDg4OpZ3uHSnOd0dhyuJ7uGTJEiZOnMinn35KixYt+OKLL+jWrRsRERFUrlw5X/yFCxfo3r07o0ePZuHChezcuZOnn34aDw8PHnnkkdJJUon77q233lKBgYGm57/++qvSaDQqKirKtGzx4sVKp9OppKSkAveRmJiorKys1A8//GBaFhUVpTQajVq7dm3pJV+E+fPnKycnp9vGxcbGKisrK/Xdd98VGdemTRv17LPPlkxyJaCo8wPUihUrir2vsvj+KVX891AppZ5++mnVrl27ImPKy3v4oPwOFiYrK0t5enqqmTNnFhk3bNgw1adPn/uT1D0KCAhQ7733XrHjjUaj8vb2Vm+88YZpWUZGhnJyclKff/55KWRY8v793VGQsvoeNmnSRI0dOzbPstDQUPXiiy8WGP/CCy+o0NDQPMvGjBmjmjVrVmo5yiUzM0hKSsLV1dX0fPfu3YSFheHr62ta1qVLFzIzMzl48GCB+zh48CDZ2dl07tzZtMzX15ewsDB27dpVesmXgO+++w5bW1v69et329hFixbh7u5OrVq1mDx5MikpKfchw7szfvx43N3dady4MZ9//jlGo7HQ2PL8/t3y789xYcrDe/ig/w6uXLmSuLg4hg8fftvYLVu24OnpSfXq1Rk9enSRl7XN7c0338TNzY169eoxa9asIi8nXbhwgZiYmDzvl06no02bNmXu/SpMcX/nytp7mJWVxcGDB/O89gCdO3cu9LXfvXt3vvguXbpw4MABsrOzSyVPuWR2n507d46PPvqId99917QsJiYGLy+vPHEuLi5YW1sTExNT4H5iYmKwtrbGxcUlz3IvL69CtykrvvnmGwYNGnTbSyeDBw8mMDAQb29vjh8/ztSpU/njjz9Yv379fcq0+F5//XU6dOiAXq9n48aNPP/888TFxfHKK68UGF+e3z/I/c/qxx9/ZM2aNUXGlZf38EH/Hfz666/p0qUL/v7+RcZ169aNRx99lICAAC5cuMCrr75K+/btOXjw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NBrNoOoywGfgfvz4EQDg6+vr9ExENDQYiIhoVNi9ezeqq6vh4uKC1tZWZGRk/FYff39/AP8LGb8aP348gP4DkxLss/bcbSKikcVARESKu3v3LnJzc6HT6VBWVga9Xo8TJ07gxo0bTveyX9Njf2nsV7NmzQIAPHjw4LfnHUoiglevXgEALBaLwtMQqRcDEREpqq2tDTabDV1dXTh06BCWLl2K/Px8AP98cKOzFxovWrQIAPDo0SOH9VWrVgEATp061e8u0kh6+fIlWltbERwcjMDAQKXHIVItBiIiUlRaWhrq6uoQExOD7du3AwCSkpKwdu1aNDU1YcuWLU71i46OhpeXFx49etR9gXVPq1atQmRkJJqamhAbG9u9O2P35MmTEb3R6r179wAAMTExI/aYRNQXAxERKebKlSs4ffo0fHx8UFxc3KtWWFiIwMBAXL16tU9tIF5eXli3bh3a29tx8+bNPnWtVotLly7BbDbj4cOHmD59OsxmMyIjI+Hr64uwsLARvY2G/bFSUlJG7DGJqC8GIiJSRGNjY/fuT0FBQZ+Xi+whSaPRID09HXV1dYPube9bUlLisB4UFITKykocOHAAFosFb968wYsXL2AwGGCz2bB///7fW5STGhsbUV5ejrlz52L+/Pkj8phE5JhGBnovKBHRHyomJgbl5eWoqamByWRSehyHsrKysG/fPly4cAEJCQlKj0OkagxERDQmVVVVISIiAps2bcLx48eVHqeP1tZWmEwmTJs2DQ8fPlR6HCLV4607iGhMCg8PR1FREZqamtDV1eX0LUCGW319PdLT07Fy5UqlRyEicIeIiIiIiBdVExERETEQERERkeoxEBEREZHqMRARERGR6jEQERERkeoxEBEREZHqMRARERGR6jEQERERkeoxEBEREZHqMRARERGR6v0HUa35zgqkch0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(-20,0,Ns)\n",
    "\n",
    "for i, d in zip([int(Nt*0.9), int(Nt*0.933333), int(Nt*0.966666), int(Nt)-2], [[], [3,3], [3,3,1,3], [1,1]]):\n",
    "    plt.plot(x,temperatures[i,:],label='t = %f yrs' %times[i], dashes=d)\n",
    "plt.legend()\n",
    "plt.xlabel('x (cm)',size = 16)\n",
    "plt.ylabel('T(x) (K)',size= 16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "826d008b-8189-4653-8ac4-547b4d1abec9",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
