Skip to content

Instantly share code, notes, and snippets.

@JiaweiZhuang
Created August 6, 2018 18:09
Show Gist options
  • Save JiaweiZhuang/dd3b594d4db16a2410b3675aadcb2d2a to your computer and use it in GitHub Desktop.
Save JiaweiZhuang/dd3b594d4db16a2410b3675aadcb2d2a to your computer and use it in GitHub Desktop.
Masking + renormalization in xESMF
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Install the development branch by\n",
"```\n",
"pip install --upgrade git+https://github.com/JiaweiZhuang/xESMF.git@masking\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import cartopy.crs as ccrs\n",
"import numpy as np\n",
"import xarray as xr \n",
"from gamap_colormap import WhGrYlRd\n",
"\n",
"import xesmf as xe # the regridding tool !"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Data location: Odyssey /n/home03/zhuangjw/test/xESMF_masking/\n",
"ds = xr.open_dataset(\"MEIC_SO2.05x0666.nc\")\n",
"SO2_all = ds['SO2_agriculture'] + ds['SO2_industry'] + ds['SO2_power'] + ds['SO2_residential'] +ds['SO2_transportation']"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((90, 120), array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]]))"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mask = ~np.isnan(SO2_all[0].values)\n",
"mask = mask.astype(int)\n",
"mask.shape, mask # 0 is masked and 1 is unmasked"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"MEIC_grid_with_bounds = {'lon': ds['lon'].values,\n",
" 'lat': ds['lat'].values,\n",
" 'lon_b': np.linspace(70-1/3,149+1/3,121),\n",
" 'lat_b': np.linspace(15-0.5/2,59.5+0.5/2,91),\n",
" 'mask': mask # new option!\n",
" }\n",
"\n",
"\n",
"nested_grid_with_bounds = {'lon': np.linspace(60,150,37),\n",
" 'lat': np.linspace(-12,56,35),\n",
" 'lon_b': np.linspace(60-2.5/2, 150+2.5/2, 38),\n",
" 'lat_b': np.linspace(-12-2/2, 56+2/2, 36),\n",
" 'mask': np.ones([35, 37], dtype=int) # no masking on destination grid\n",
" }"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"make a new regridder with conservative option and apply it to our data"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(90, 120)\n",
"(35, 37)\n",
"Overwrite existing file: conservative_90x120_35x37.nc \n",
" You can set reuse_weights=True to save computing time.\n",
"(90, 120)\n",
"(35, 37)\n",
"Overwrite existing file: conservative_normed_90x120_35x37.nc \n",
" You can set reuse_weights=True to save computing time.\n"
]
}
],
"source": [
"regridder_conserve_zeroed = xe.Regridder(MEIC_grid_with_bounds, nested_grid_with_bounds, method = 'conservative')\n",
"regridder_conserve_normed = xe.Regridder(MEIC_grid_with_bounds, nested_grid_with_bounds, method = 'conservative_normed')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"dr_conserve_zeroed = regridder_conserve_zeroed(SO2_all)\n",
"dr_conserve_noremd = regridder_conserve_normed(SO2_all)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmQAAADECAYAAAAxkj17AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXl4Ddf/x18ne2QRQWxBKIkl9hAqYmurlK+ifrZWa2kVpaW6aVHd6KqbtnZVtLVVi7ZUiQgRQhpLEFtIiERISCKJLPP7Y27iiiR3cnMnyb3m9Tz3Se7Mmc/nzDln3vfMWYUkSWhoaGhoaGhoaFQcVhUdAQ0NDQ0NDQ2NBx2tQqahoaGhoaGhUcFoFTINDQ0NDQ0NjQpGq5BpaGhoaGhoaFQwWoVMQ0NDQ0NDQ6OC0SpkGhoaGhoaGhoVjFYhKwIhxEwhxNKKjocxCCH+EkI8W8w5LyGEJISwKeb8u0KI1br/Gwgh0oQQ1mrG90FAl+ZNdP//IISYpYKPYvNdw3Ro2qBpgynRtEFDH0UVMiHESCFEuO4hjNdlcIDakSsPhBA9hBBx+sckSfpIkqTxFRWnsiBJUl9Jkn40gZ1LkiQ5S5KUa4p4achIkvSiJEnvl8WG/o+jnl2T5LsRcdG0wUzQtKFyY2naoARDLwJ64aYJIa4KIW4KIZYLIezLYq8EPz101y8sdDxECPGcQhsxQogEIYST3rHxQoggQ9carJAJIaYDXwIfAbWABsB3wEAlkVMbYxO+ohEyJmuhNLW9iqKi87Oi/ZsTmjaog6YNRVPR+VnR/h9UhBB9gDeB3oAX0BiYq6LLdGC0EMKrDDZsgJdLfZUkScV+gKpAGjC0hDD2yKJ8Rff5ErDXnesBxAGvAolAPDBG79p+QBSQClwGZuid6w/8B6QA+4HWeudigDeAo0AW8A6woVC8vgK+1v0/Bjip83MemKA77gRkAHm6+0wD6gLvAqt1Yf4GXipkOxIYrPu/GfAPcAM4DfxfCWkVBHwI7NP5baJL42W6tLkMfABY68JbA58DScAF4CVAAmxKsBcEjNe7/jPd9eeByYWubwTs0aXLP8C3evftVYSv93W+UoEdQA29exsNXASuA7N0efRISeWrhPy00eXDRuCa7t6nlnB9flyfBS7p7vftUpbRN4CrwE96x17nbrl9Erm8Ruvyeqae/U5AKHJZjdelo53eeQloovt/JfCB7v8t3C13acjl8Dm98hsL3AIOA910xx8H7gDZumsi9fInP9+tkJ+Ji7r4rwKqKkkrpR80bQBNGzRt0LRBP63fQC6nqcjlvbeezzeBc7oysA5w1527pPOZf59dirC7FvhI73tv4GoxcbjPXkn3XMT1+fn7DbBC73iIXvo/BOzS3UsSsAZwK1Rm39SVBTfdsfFAkME0NJDAjwM56B68YsK8BxwAPICayAL5vt7N5ejC2CIX2ttANd35eL3CVA1or/u/vS7h/JGF41ndTdrr3fB/QH3AEWios+uqJzbxQGfd9yd0iSiA7rqw7fXiGFfont7lrviMBvbpnWuB/HDZI4t2LLKo2+jinQS0LEF0LwEtdeFtgc3AIp0tD+Agd38UXkT+UfLUpc9O7hfCwvaCuPvwvQic0qWTO7C70PWhwBe6ewlEfpBKEt1zgLcuzYOA+XppkgYEAHbIQp9N6URXPz+tkIVmts5eY+QfjT4GRHeJ7vo2yOLdvBRl9GNdOjjqHZutS9PnkcV/LeCiS+9MoLHORgegsy4PvJB/4F8xJLpFPGtXgPq6708D1XU2X0X+QXAoXD4Lla38fB8LnNWlmzOwCfhJSVqVQnw1bdC0QdMGTRvyffggl/e6erYe0v3/ii6NPXXpuAj4uaiyVIztSGCY3vcaumuql5DfNnrHir3nIq7vgVwhq41c4fXRHdevkDUBHtXdS00gGPiyUJl9ROcnv4JtkgrZKIqpieqFOQf00/veB4jRu7mMQomTyF0xvARMQCeWemG+R/dQ6B07DXTXu+Gxhc6HAKN1/z8KnCshzpuBl/UzoND5d7krPi7ITZgNdd8/BJbr/h8G7C107SJgTjF+g4D39L7XQi7wjnrHRgC7df/vQifAuu+PcL8QvleEj/F617+od+6x/OuRu5dyACe982spWXTf0Qs7Cfhb9/9sdA+Y7nsV5De10ojuWL3v/sClQmHeQu+NpZiH0FPv2EFguMIyegedoBUqt/mtES46+/56YQ4DTxYTn1eA3/S+lyi6yD9kiegqIMXYTAbaFC6fxeT7v8AkvXM+yD+C+T8KxaaV0g+aNuSXC00bNG144LUBuZKSqCuHtoXOnUTXWqb7XqcInyVVyM4Bj+t9t9Vd41VCfuvrSrH3XMT1PdA988AnwK+6/wsqZEVc8yQQUajMPgL4AjeRK22KKmSGxhVcB2oY6Duvi9wUmM9F3bECG5Ik5eh9v41cSwUYgvxmfFEIsUcI0UV3vCHwqhAiJf+D/Iakbze2UDzWIgsWwEjddwCEEH2FEAeEEDd0tvoh17INIklSKrANGK47NBy5iTI/nv6F4jkKuXZdHPrxbohcuOL1rl+E/LYG8v3GFnNtScfyKXz9xULnkiVJSi/mfFFc1ftfPx/v8SNJ0m3kslMaCqdL3ULpOhP5RwrdAPL8TwOF8SupjF6TJCmzUHyuS3cHLWfo/ibonc/Ity+E8BZCbNUNOr2FPKZKUfkSQlQFfgdmSZK0V+/4q0KIk7pBrCnI3VeKbFL0/dqgSz8dxaWVUjRt0LRBH00b7vLAaYMkSWeRK5vvAolCiF+EEPnp2BD4TS+/TgK5hXyWRBrgqvc9//9Uhdcrueei+BjoI4Roo39QCOGhu7/LujxdTRHpL0nScWArcvelIgxVyEKRm1+fLCHMFeQEz6eB7phBJEk6JEnSQGSR2YzctwzyA/ihJEluep8qkiT9rH95IXPrgR5CCE9gEDrR1c3G2IjcVF5LkiQ34E/kLoqi7BTFz8AI3Y+CI3Lzfn489xSKp7MkSRNLum29/2OR34Jr6F3vKklSS935eORm3nzqG7BXmPhC1zQodK6a/kyQQudLwz3xFEI4Ijepl4bC6XKhULq6SJLUD0CXxvmfSwpsGyqjSspASXyP3P3TVJIkV+QfCFHyJaAbaL0WudVjkd7xbsjjMf4PuQvPDflNS2mZLep+c7j3R6OsaNogo2lDyWja8IBogyRJayVJCtDZl5ArNCDnWd9CeeYgSdJlBfEFOIHcfZpPGyBBkqSiKvZF2TPqnnX2v0QeH6nPPJ2f1ro8fZri83QOcrd2vZJ85VNihUySpJvITc4LhRBPCiGqCCFsdW+Vn+iC/Qy8I4SoKYSooQu/ujib+Qgh7IQQo4QQVSVJykbur81/61gCvCiE8NfNEHISQjwhhHApIa7XkJtmVyA/sCd1p+yQ+3qvATlCiL7IzfP5JADVdW8jxfEncoa+h9yEmac7vhXwFkI8o0sXWyFERyFEc0P3r4tzPPIA2M+FEK5CCCshxENCiO66IOuAl4UQ9YQQbsgPYmlYB0wVQngKIaqhV1OXJOkiEA7M1eVFADCglPbz2QAMEEI8LISwQ54BU1BAhW4qcSnsHQRuCSHeEEI4CiGshRC+QoiORsbPqDJaClyQy2+aEKIZUNKPrj4fIo8PKjwbxwVZMK4BNkKI2dz7hpgAeIniZ879DEwTQjQSQjgjv5X/Wqg1qkxo2lCApg0lo2mDhWhDSXklhPARQvTSveRkIrcS5j+zPwAfCiEa6sLWFELkz8S+hjxhoXEJrlcB44QQLXRl9R3k7t2iKMpeWfTwC+BhQP+5dUFutUsRQtQDXivuYl3L4a/AVAW+DC97IUnSF8B05ES4hlzbfQn5rRXkmT/hyLNgjgFHdMeU8AwQI+RmvxeRa5pIkhSOXKv8Frl//CzwnAJ7a5H7bgu6JHTdClORBSgZucviD73zp5Az7LyQm1TrUghJkrKQB+gVZfsx5K6KK8hNvfkDQJUyGvmHIUoXvw3Ifewg//jsQE7bCGTxz+FuQTfEEmA78qDII7p70Gck8piMG8g1+VWliHcBkiSdAKYAvyC/EacijyfI0gWpj9yiotReLvIPQFvkWVRJwFLkpnljKEsZVcIM5LRMRU7zXxVeNwJ5wG+yuNvNMgo5z/5CnrV1EVng9Ltt1uv+XhdCHCnC7nLkGWHByOmXiZw/JkXTBk0bDKFpg0VpQ0l5ZQ/MR86Pq8gt2zN1575Cfq52CCFSkQf4+0NBF/aHwD7dM9a5sGFJkv5GHs+1G/meLyKXyfsoxp7R9yxJ0i2db3e9w3ORJ+ncRB6yUPjZKcx7yJVrgwhJKmuLrEZ5oXuD/0GSpIYGA1cgureQFORm+gtCXtl8vSRJ2ys4ahoaFommDRpqo+WV+mgVskqMkMdb9ER+E66FPN7lgCRJr1RoxIpACDEAeTaLQF4fyR95+QCtgGlomBhNGzQ0LA+zX73ZwhHIzaPJyN0SJ5HHOFRGBnJ3ccWmyFOlNcHV0FAHTRs0NCwMrYVMQ0NDQ0NDQ6OC0VrINDQ0NDQ0NDQqGK1CpqGhoaGhoaFRwVT47vW1a9eWEhJMuV6lhobFclGSJK+KjoTGXTT90tBQjKZfBqjwMWRCCFXHd16+fJl69RQtkltpfVQG+7kKs+hOMeGuXr5MbT0fjiZum718+TK16ypLI2uD62QXbb+iy5EQAkmSjIi9hlqorV9QOZ7/ymzflD4y8oo+Xli/wLQaZk5pZKx9Tb8MY/Fdlvb2pVmHsXL6MHf7AHYO5n0PllCONMwTcy/blvDsmLt+lYcPTb/KjsVXyI4fP272PszdPkD0CfO+B0soRxrmibmXbUt4dsxdv8rDh6ZfZcfiK2QaGpZAXl4xfSkaGhoaGhZBhQ/qVxsPDw+z91EZ7Csed1XMcJrqNe/1UdxYjcLYKfRbo6byNFLqW3+MSEWXo/DwcNX9a1ROKsPzX5ntl4ePwvoFptWwGjU9FI/TVbpZaWG/lpDPlo7FD+rPycnBxkbdeqfaPszJfnEiZawPpRWy0tgvbuJBYfQrZBVZjq5fv06fPn04fPiwNii2klEeg/rN6fmvCPum9GFq/QJlGlYa+8ZWyCoqnyVJYu7cucydO1fTLwNYfJdlSEiI2fswd/sA4fvV9RG6z/zTqCgfCQkJ9OjRg169eqnuX6NyYu7PvyVosLnrF1RMPkuSxBtvvMGmTZtU9W0pVIoWst27dwPQuHFjXFxciIyMBKB69eq0bNmS4OBgAGxsbAgICODIkSPcunULAD8/PxISEoiNjQWgadOm2NvbFwwwzMzM5JFHHikoLPb29nTp0oXw8HDS0tIA8Pf3Jy4ujsuXLwPg4+ODtbU1UVFRANSuXZtGjRoRGhoKgKOjI/7+/oSFhZGRkUFaWhqPPvooFy5c4OrVqwC0aNGC3NxcTp8+DUC9evXw9PQkLCwMAGdnZ/z8/AgNDSUrKwuAgIAAoqOjSUxMBMDX15esrCwiIiJwdnamfv361KpVq6D7ytXVlfbt2xMSEkJOTg4AgYGBnDhxguvXrwPQpk0bUlNTOX/+PABeXl64u7tz5MgRAKpVq0ZycnL+lGSEEHTv3p3IyEiSk5MBaN++PTdu3CAmJsZgPkmAtbUNHbsGcDziCGmpcj7l5ubi2dCL+Dg5n7weaoqdg33BYNnqNT1o1NS7QPhs7ezp0LkLxw+Hk54u55NfJ38ux8URf0XOp6Y+PlhbWXPqZBRpaWk81KQJDb0acfCAnE8Ojo507OTPoYNhZGZkANCpcxfOX7jAtQQ5n5o0a0FeXi7no+V8qlW3HnXqefLfoTCEXj5t27YNJyenEvPpzJkzAEbn06FDh7CzsyvIp+zsbHbs2IG7uzvNmzenXbt22htmJUNt/fLw8CAhIQEh5GzX9Ot+/WrTpg1bt27F2dm50unX0cPhZJhYvy7EXCBRl0/ezWX9OqvLpzp161HH05MjB+/Vr9DQUK5fv46zs3O56ZebmxtbtmwhLS2N9u3b07lzZ02/DCFJUoV+5Ciox/79+1W1Xx4+zMn+7dyiP3v37S/2XEmfnDxln3379isOq9S3WmlUHPo+zp8/LzVu3Fj65JNPCo7pnpUKf2a1T/nplySZ1/NfEfZN6cPU+qVUw0qjX1kKP2qlUXHo28/JyZHGjBkjde3aVUpJSZEkSdMvJZ9K0UJW0XHQMB1KB7oqRekYstJgzBiy8iQ6OppHHnmEN954g8mTJxcc1xZWrHxo+mVZmFq/wPQaZuwYsvIiOzub0aNHc+3aNX7//feCngVNvwxj8WPIymN2mto+zN0+wNHD6vo4YgFpFB4eTlRUFD179uTdd9+9pzKm8eBi7s+/JWiwuesXlE8+Z2dnM2zYMFJTU9m6dWtBZUxDGRa/7EX+OAtz9mHu9gFup6vrI11l++VVjmbMmMHMmTMZO3as6v40zANzf/4tQYPNXb+gfPJ51apVJCUlsXPnzoLxZBrKsfgKmUb5UlwzuSh0Ll1h18D2FIWOcyEpR1lQpV2RdoV6oopbJ8iYvTGLIi0tjdjYWCZMmGAagxoaGqVCqX6Bcg37M9lwGOtS6JfSrkhr6/uPFaVhptIvgHnz5rFixQqtMmYkFj+GLCMjA0dHR9Xsl4cPc7JfXKWlsA+lYrbrpkLHWRl0qaHsHpRWyJz0wpWURqYQtOzsbAYPHszAgQMZP358kWG0MRiVj/IYQ2ZOz39F2DelD6X6Bco17B8lL5VZGQTUVBZ/pRUy10IVsuLSyFQVsqVLl/LTTz+xZ8+eIs9r+mUYix9DFhcXZ/Y+zN0+wGW1fSSqa1/N+KekpNC3b19atWrF6NGjVfOjYZ6Y+/NvCRqstn6Ja+arwZIk8dVXXxESEsLXX3+tio8HBYuvkOWvzWPOPszdPlCw9o5qJKlr35TxHzt2LB4eHvj6+hITE0PXrl1p0aIFjz32mFFN/UKIv4UQKUKIrYWONxJChAkhzgghfhVCaP0IZoi5P/+WoMFq65eVyvoFprsHff3KyclhypQpLFmyhJEjR9KmTZtS29P06y4WXyHT0KhsPPfcc/z9999kZGTw8MMPM2HChLK+WX4KPFPE8Y+BBZIkNQWSgXFlcaKhoaGRr195eXkMHDiQ6Oho9u3bV5ZxY5p+6bD4CpmPj4/Z+zB3+yCvSq0qDdS1b8r4BwYGEhYWxsWLF1m0aBFTp07l3LlzzJ07lw4dOtCtWzdOnTql2J4kSf8CqfrHhLy0ey9gg+7Qj8CTproHjfLD3J9/S9BgtfUrr775aHBgYCBZWVlcuHABT09Ptm3bRlJSkqZfJsDiK2TWRU01MTMf5m4fwNpKZR8q2zdV/CVJ4tNPP+W9997Dy8uLAQMGAPDCCy8wb948Dh8+zGeffcakSZPK6qo6kCJJUv7crTigXlmNapQ/5v78W4QGm7l+genu4ciRIwwePJiqVavyww8/YGtrq+mXibD4Cln+fm7m7MPc7QOcOqmyjxh17Zsi/tnZ2UyYMIE1a9awadMmHBwcAHm5i/379/P000/Ttm1bJkyYQHx8PACbNm3C19cXX19fAIQQx3Wf7QbcFTWbSVtS3gwx9+ffEjRYbf2yumgeGrxlyxb69OnD7NmzqVGjBkIITb9MSKVYh6zwVGNTrouiUTL5aV/cdO98TJ0n5zKVhUu4oyxcdUn5tidKl70ofM9lSYObN28ydOhQbG1t2bt3b8GmvAB5eXm4ubmxdOlSevTocc91gwcPZvDgwUDBtHFfhS6TADchhI3uLdMTuGL8HWgUh6ZfFYd+2pekYWrkiWINyzYcpqYE6Qr3RHK0VRauqHs2Nh0kSeLrr7/m448/Ztu2bXh4eLBw4UJA0y9TYvEtZLVr1zZ7H2rbr1UOaaS2j0y3ypsHMTExPPzww/j4+PD777/j4uJyz3lXV1caNWrEf//9B8jiFxkZWab46hbH2g08pTv0LPB7mYxqVAjmri/locFq64u56xcYnw85OTlMnTqVxYsXs3//fjp16nTPeU2/TIfFV8gaNWpk9j7Utt/QS/00UtvH7VqVMw8OHjxYMJPym2++wcbGhhEjRtClSxdOnz6Np6cny5YtY82aNfz555+0adOGli1b8vvvyrVHCLEXWA/0FkLECSH66E69AUwXQpxFHpOxrBQ23YQQG4QQp4QQJ4UQXUpx2xomxNz1pTw0WG19Udt+usr6BcblQ2pqKgMHDuT06dPs378fLy8vs9Avc6VSrNSfk3dvHEzZvBwUFHRfM6qpUduHmvZzJdi7J4hu3Uu2rzRPius2KOzj6G1l9g6mGg4DUP14EH7dehgMB+CusKNef6VrY/Lgzz//5Nlnn2X58uUFg/dLwpCP8lzpWgjxI7BXkqSluvV/qkiSpHQjqwcGtfULzFtf1LafrzeGNMzU+gXKNSxUgYbVPB5Eh4AeBsMB1FDYZVl4pf7S5kNiYiJ9+/alQ4cOLFy4EFvbkh1XJv0yVyy+hUxDoyJYvXo1Y8eOZcuWLYoqY5UJIYQrEIjujVSSpDtaZUxD48EhJiaGgIAA+vfvz6JFiwxWxjRMg8VXyNTeQ608fKht36Ec0khtH7l2KqeRgwNRUVEYalG+cOECU6dOZebMmezatYvOnTsr9lEeZVUhjYFrwAohRIQQYqkQwqmiI/WgYu76Uh7lWm19MXf9yic1teTmuoyMDJYsWUJAQABTp05l7ty5yEuCGaYS6ZfZYvFdlholY2h2ZT5lbfIvjKm7LAH6VFMWrrRdlrt37+a1117j1KlTDBo0iB9++AEnp7v1E0mS2LdvHwsWLGDPnj2MHTuWadOmUadOHeWRN0Bubi42NjalbvKvLYRUeKJqMpwA9OeILZYkaXH+FyGEH3AA6CpJUpgQ4ivgliRJs4yNv6Wi6VfFUlH6BabtsgR43E1ZuNJ2WV65coV3332XdevWUaNGDTZs2EDbtm3vCRsfH8/ChQtZvHgx/v7+vPbaawQGBipzpBBjuiyL0a/tkiQ9bsKoVRosvoUsLCzM7H2obf/QQfXTSG0fbtGmt3/s2DGeeOIJxo8fz8yZM0lISMDKyorOnTuzfv161q1bxw8//ECnTp0YO3YsvXr1IiYmhk8++cSoylhJ+fzNN98YdQ/ZQN9CHyBTkiQ/vc/iQpfFAXGSJOVHaAPQ3qgIaJQZc9eX8tBgtfVFbfvuKujXrVu3mDVrFq1atcLNzY2tW7fy/vvv8+ijj7JgwQI2bNjA2rVreeaZZ2jZsiUpKSmEhISwZcsWoypjJeXzxYsXjbqHYvSrhlHGzIBKsQ6ZmmRkZFR6H4beyjIyMu6uF6bQZrbCNbmshGz/joE4KF0P7J9iRhpVS83gWOLd7+cygxTZ863SQ1E42zsZ2Cl89zK0XvW1a9eY/dYbbP9zG2+//Ta//fYb+/fvx8nJiZUrV7J8+XLWrFmDra0tVapUYfbs2TzxxBNYWZXt/aa4chQTE8MHH3xglE0BOJTyGkmSrgohYoUQPpIknQZ6A+qvXKlRJGprmCnsl6RhautXvo+SNEypfm1PLvp49dQMIhPuPXb5zt+KbD7kYLgxx/ZOxn2D8IvDyYDMSJLEoh9+4P335tKnTx8iIiJo0KABQUFBjBgxgtatWzN37lxCQkKwtbWlQ4cOfP3111SrprCLoRhKKkcTJ040yqYx+mXOWHyFTENDKTdu3CDj9m1mz3wTW1tboqOjqVq16j1hhBCMGzeOcePKb5/b/fv3061bNzZv3lzqa60AI7f8nQKs0c2wPA+MMc6MhoZGeZCbm8v58+c5ffo0Xy74gu3bt9OmTZv7wrVs2ZJ169aVW7zy8vL4559/jLq2DPplllh8haxLF/WXT1LbR6fO6tpv769+GqU0U9dHRouy2d/1zz+Mf+4ZAHKyszl25vw9lbGKLEeNGzcmLi7OKJsCMGZ+lCRJ/wF+RjnVMClqlz1z1y9QX8Nu+KhrP7152ewnJiYycsRwTkZFkZSUxI+rfrqvMlZR5cjKygovLy/Onj1bapvG6pe5UikqZHv3BAHg1agxzi4uHD8qr/JbvXp1WrZsSXBwMAA2NjYEBARw5MgRbt26BYCfnx8JCQnExsYC0LRpU+zt7Tl+/DggbzrbpUsXQkJCALC3t6dLly6Eh4eTlpYGgL+/P3FxcVy+fBkAHx8frK2tC/ZHq127No0aNSI0NBSQZ5P4+/sTFhZGRkYGmZmZ9OzZkwsXLnD16lUAWrRoQW5uLqdPnwagXr16eHp6FvSzOzs74+fnR2hoKFlZWQB06RrAmehokq7JfXstfH3JyszixPFjODg44Fm/PtU9avHf4XAAXFxdad2uPQf2hZCbI+/B2qVbIKejThRszdPMtw3paanExpyX49HAC7dq7pyIPAJAVbdq2Nvbcy0xASQJhKBzt+5EHY3kVorcft+ybXuuJ93gemwMADUaNsbByYW4KDmfnKpVp65PS84cCKZaLkhWNqS0DMDl7BFsMuR8uuPsTp6DEw5Jcj5Vr3GHO7ZWeF2Wx5bfdLEhrpY9Lc+mA5BjIzj5kBMOp8OxypTzKaOZP7ZJcdgkyfmUVd8HrKyxvxiFuJPJ5YZeeDRoRHS4nE92Do407eDPmcNh3MmUm9O9/bpwPu4C1xLkfGrSrAU7d2wnLSWZJUuW8pC3DzVr1+F4RDjRevkUHBxcMPU7ICCA6OhoEhPlfPL19SUrK4szZ84AUL9+fWrVqkV4uJxPrq6utG/fnpCQEHJ0+RQYGMiJE3fzqU2bNkRHRxc0+3t5eeHu7s6RI0fIycnh4YcfLrBXGh60Jv+KQE398vDwACgoa5p+3a9fLVq3ITQ4CHt7+zLrV3Wdft1oEUDVc3f1K0unX446/Uqv0xRnkYdnnBzvW65WXK1ljfcZeZ+kHBs428SORheycc6Wy0e6jz92SXHYXpfzKdNT1i+HS1FY3cnkkpcXdRo04sQhOZ/sHR1p3sGfk4fDyNLpQsuOXYg+d4EEXT41a96C+Ph4QvYGM37ceDr4daBO3XpEHA4nKCjonny6efMmDg4O5a5fAGPGjOHtt9+mtDxo+mXxsyzNYWFYQ2PI9BclVGMMxoHgIDoH9igxnJL92KCEMWTHgkhuddeHqceQVYk0fA/5VNW38tbgAAAgAElEQVQbq7F7507GPfs0O4L20qRp03vCOZVxYdjSUpwPSZJwc3Pj1q1bpZ6lVEcIqXDn6odwWJIkrfXLBGgLw8qUpGFq6xcY1jCl+lXsGLLjQVz3vde+KceQOR8NoruBxbnzqabXjJKamkoX/05MeHEiU6ZOvSdc4XJYkeXopZdeYuHChZp+GcDiZ1lqaJTEtq1/MOWV6fdVxioTQgimFhJbpVghv2HqfzQ0NCyDU6dOYWNjc19lrLIxaNAgo6570PTL4itkLVq0MHsfzZqra79JM/XTKL2+uj6yGhpn38XFtaDLpSQquhy9//77RtnMH4Oh/9EwL9Que+auX6C+hqV6qms/s4Fx9l1dlekXVGw56t27t1E2HzT9svgKWW6u0kbyyusjN09d+3kq25ed3OsjNSGJfV+vYuu0j8i6lWZy+0rIzs7m+vUk0gysXg0VX47yxxiVlgdN0CwR1fXFzPUL1NcwId1rPzsri+N/BLF+wgdcDDtWdgdGxv/q1asGV9/PpyLLkbFDox40/aoUg/rVXNn69OnTuHooW6TTSeE6MEX5KGohUENre+XzdzHjFvKRok4j7GX7/6Urs9nZRdmyDCduB1DvhCuXuVViuGnvjFVk78ycom+6TexpTlSpQ2xYMIeXf8mlA0E0emIYedb1WfPMB/RduR07l6r3XefvrMgt54+fpq6P8sVY165dyxtvvEHjxo356quvDOZ9cXlsSorzIUkSzz//vFE285v8NdRD7ZX5TyrUMFPrF0CGwrFcxY0dhXv167BC/Xqk6jBF4Y7e7gGAR1QNEq2Sig03edIkRfZuflO0fjWMO02iax1SE68SsvRLwtetwLWpL56BA1n34qf0/mY9dfy7F3nttLqG/R6JOk2NZsr15fz584wdO5azZ88ye/ZsRWVQbQ0ryf6aNWuMsvmg6VelqJBpWD65OTlsfXkUl8P34T/pLbp8/CN2zi5IksTet8az44UB9P85WPV4SJLExx9/zMKFC/ntt9/w86v8Y0OTkpIKZgmXFsGDtY6PhoYaSBLsX/EtOxfMpe2gUby4aS8pdb0BqN6yPTte6M//NoRRran63bMHDx5kyJAhTJs2jSlTppjFxt+rV6826roHTb8svkJWr1498/dRQ137ae4Kl7E2grzcXCLXLuLiyVBc6tRnzD8nsKviRLI8e5obJyO5vO8fWjw9uUx+XGsVn0Z5eXkcPXqUoKAgfv/9dzIzMwkNDcXT01Ox/YosRzVq1FC8wW9hHrR1fCyRWnXULXvmrl8At90zDQcykrjIcKK2beTo4aNM2LCHWt5ypSslE3IybnNyzfe4N29LlVoKmsKKoaaBPI6PjycoKIigoCB+++03lixZwsCBA0vlQ+18Lsl+o0aNjLJprH4JIWKAVOSJvTnmMivT4itknp6eKGx1L5MPVfFQ175aFbKUS+fZMmU4NvYODHjvaxo2u3dD24v/bmHvm2N5eO53NO439L7rpbw8zkef4djhQxw/Ek79Ro0ZPv5F7Ozuf2eqWqfoNDp48CATJkwgPT2dnj178vzzzzNkyBB5zaJSoHoel+BDCIG3t3fBmj6l4UFr8rdEatdTt+yZu34BZFRXuNN3KcjLzWXb+zP47/efeWrWJ0x46+t7XoxuJ8azY8L/cGvcjH4/7sS6CE3JvJHEPycPERF+iOQbN5j8ynQ8GzS4L1zNukWnUXJyMm+++Sbr168nMDCQ7t27c+jQIRo2bFjq+1E7n0uy7+PjY5TNMupXT0mSiu/HroRY/KB+S9hcnCh17dc+q3CgVim4dSWWdSN703zACIb/uoeu4t5BJrcunuPfl4bw2OIt91TG0uPjOPTZTP4c/Qg/dXBn/MDH2bXtDzzq1GXvP9vp7+fLos/mE7zjb24m3x18F/vf/WkUGRlJv379mDFjBqdPn2bRokWMHDmy1JUxqPhyZKygGTsoVggRI4Q4JoT4TwhR+hVpNUxGZLiZb/6tsn4BVD/jblJ7eXl5bHz9eeJPHmX6rhM83qzBfa3U/079P2q1f5jun60qqIzl5eRw6pfF/Dt1GL/2bMyvvR5i4RefkXH7Ng4ODnTv2I43Xp7Cxl9+5pxuIVaAqMNFp1HPnj0RQnD+/Hk2b97MtGnTjKqMQcVuIl/e+mWuWHwLmUb5k5Z4lXWjetP+uan4jZ9WZBiX+o2o5t2KtPhYPNp1Ji83l5NrvufIN+/S9MnRtBo7nRqtOjKnVc2Ca56f/jr7du0keMdfLP58PtcSrvJ3xMliu/POnTtHYGAgo0aNUuU+y5PGjRsbdV0Zx2CY3RumhkZZkSSJP2ZNJel8NOPWbMeuihPE3x/O67HBxB/YXaA/146FEzLzeeyrVafpoGfp8PJcqjby5tNGd9s9xk2czC8//cgfv23ktamTWbflL/z8/YuNy5kzZ9i3bx9OTk4mv8/ypAL0SwJ2CCEkYJEkSYuNM1O+WHyFzNnZ9K0/5e7DQV372Q7GT4fOyoUZhyDyBqRmQ8zupty+nkjH52fcUxnLsL/3HpLPRpGVnERy9DFOp93i9LqlCGtr+v+8l2pNmhfrr2uvR+ja6xHC94fw5gvPFYihXZX70+j777/n0KFDXL9+nerVqxt9j1Cx5Sg3N5dNmzYZZfNB23rEEqnipG7ZM3f9AsixN17Dfo2DxTGQmgMxPZqTmXoT11p1ef6Xf+XKGHCnkH5lZ2aS+N8Bbl+L59KurVzatYWYfzbj/+ZnNHny6WJfEj3r12fGzHfIycnB37cZeXnygBrHIvTrjz/+4Pbt20RHR9OuXTuj7y8ftfO5JPsbNmwwymYx+lWjUKv94iIqXF0lSboihPAA/hFCnJIkSf1ZY2XE4itkfn5+pKu8DI7aM/VEc3XtJz6kcC56IW7dgUG7wN0e3m8PLjbw3bRt2LtUxalmrXvCRnvdvYcrRw6wZXQfsnUVsTqde9Ji9BQe6j8cYaWsF33Rp/MY/8prBd89W9+fRh9//DFffPEFLVu2ZOXKlTz+uOEtTIqjPGZjFufjl19+oVq1akbZLMOgfrN8w7REWrVXt+yZu34B3GhqYO2gYvjqLHx2Fha2gVr28OvsDdg7u+DqUQdrvdmL8Q/dvYfszEyWjniEmEP7sLZ34PiKBdTp3JMhfx7HsXrNotzcx+8bN+BRqzaddBtyNy8ijwMDA5k7dy79+/dn+PDhzJ8/v0wzKtXO5+Lsp6Sk8OWXXxplsxj9SjI0SF+SpCu6v4lCiN+ATkClr5BVir0s1YxDaGio4l3uDe0pmc+tQhW8YwdDadXpfh/Pn1Nmb3b9ks9fPRJK7fayfWeFo/4ab1E4K+8NCH1hNl0Wv1disHNR7e879uLQc9g7WPHFSi+sdQvhzIv7tcjr/S9eJEw39uHa0aPUufAdvgH1qdukWokzCAe5f37fsaysLOrUqcPff/9Np06dgJLzOTg4mBEjRvDCCy8we/Zso2YslqYcGUtRPnJycmjevDmLFy+mV69epd4LrrkQ0vJCxx6Gi4B+V+R9b5hCiLr6b5jAFHN4wyxv1NYvUF72lOpX/gznfE4cDKVlEfoFyjVs7v3j1AswSr/WKizmM+Q/odNn0+WL4jUsMq7Xfcd2bk7ko1dOszrYj7oNHAH4Nv7fIq/vFBPKQS/5HnIybhO15jsCOnakUYfO2BoYkzqh9v3HJk6ciI2NDd98840c/xLy+MaNGzz99NOkpqayfv16atcuwqAC1Naw4uzPnj2buLg4VqxYYSr9KnEvSyGEE2AlSVKq7v9/gPckSVK2+WgFYvGD+pVuK1EWsu+o6yNXZftZzq5GXfe/4e5EHkon9abhJki7nLu/AjVbt6bPmDbUa+pe6sqRJEkMHjyYDh06ULfu3WnmJeVzYGAg4eHhbNq0iR9++KFU/pTYNxVF+Vi1ahX169enZ8+eRtnMb/IvtBdckiRJfnqf+1q/9N8wgfw3TI0KQO2yZ+76BcZpWPuubtg7WHH6qOGdQuxy7t6DjWMVWo+fgffD3Q1Wxoril19+YcuWLfdsJ1RSHru7u7N161a6dOnCU089RU5OTrFhS0LtclSU/aSkJBYuXMisWbOMslmMfhmiFhAihIgEDgLbzKEyBg9AhUxDPfoNqcZjA92YPiaGXKWv52Vk/fr1XLp0iT///LNU07jr1KnD+vXrmT17NkePHlUxhqbj1KlTzJkzx+h9LMG4WUpCCCchhEv+/8BjwHGjI6GhUQlxr2nHJz/58t7kU1w8Y/plM4oiJSWF6dOns3HjRp588knF11lZWTF//nyqVKnCe++V3JtRWcjIyODll19m6NChZV6HrDT6JUnSeUmS2ug+LSVJ+tAo5xWAxVfIAgICVPfRprO6Pur4qWs/4Nt3jL72tQ/qIQR0qBvJyMeiCZs3j6Tj9/927/fyAiA9IYFbFy8a7e/8+fPcuHGDb7/9ltTUVJYvX866devo2LGjwWu9vb35/PPPGT58OOnppRs3Vx7lKN9HXl4eCxYsICAggHfeeYeuXbsabdPIaeNm+4Zpiahd9lqZuX4BBHxsnIa16liVKXMfYtjDB3mqYxh7Xn+O6I0r7wsX2kj3bGZnkxh5ECnPuNUt4+LiyM7OZsWKFZw4cYKjR4/yySef8NBDDxm81srKilWrVrF06VKCgoJK7VvtcqRv/9ChQ7Rv356cnBzmz59vtM0HbdkLi6+QRUdHq+7j0ll1faRcUNd+9KNPGX2tra1g2eYm7I7yZdIbtclKTubokiX3hWuSmMjxlSv5bcAAtgwdyocjfuPonkul3nT2zTffZMOGDWzevJmuXbvy9ttvs2jRIqZPn86ePXsMXj969Gg6dOjAK6+8Uiq/5VGOoqOjuXDhAr169WLDhg0cOHCACRMmlMlm/sKKpWnyN+c3TEtE7bIXa+b6BRA9wHgNG/xcXfZeDuT9xS2o1f5h9r79PLl37l0su+m1aBL/C+O3Jzuwc9Ig1j/qw+7l35KZbri7Ux9fX1+ioqJwc3Oje/fu9OvXj+DgYN577z1ef/11g9fXrl2blStX8swzz5CUVLoVadQuR9HR0dy5c4dZs2bRv39/5syZw6+//oqbm5vRNo3RL3PG4itkiYmJqvtITlLXR8Z1de0n+rQ1HMgA1arbENDblcYDBpAcHc0NvYf/xqlT2B07xsUdO+j/yy8MCw6mU78mLJu5m5cf/pF5o35nwQvb+HeNsl6xLl26sHTpUiZNmkR4eDj//vsvTzzxBMOHD+fSpUsGr//uu+8ICgoq1VRstcuRJElERUXRqVMnnnjiCYKDg2nSpEmZ7eav46P/0TAv1C57KWauXwCJLcqmYbZ2VjRv50Kz4S9gX9WdmO0bycvOBiA7PQ3HM4f558WBtJnwJiNC4gj8ZCVnQvfwdseGfPv0Eyx+4f/49Z2p3LltuOuzZs2afPTRR8yZM4f169ezdetWhg8fzpYtW1hSxMtsYR577DFGjBjB+PHjS3WPapejS5cu0blzZyIiIvjvv/8YPnx4mW0+aPpl8cteaJQvdTp1okHv3mwfOxbHGjWo3rIll3bupM/ChfRbvbpgWYtHn2nFI0/7Eh0eT0ribdJSMlk5aw+BQ5tja2dt0E/Tpk1p2rRpwXdXV1emT5/OoEGDCAkJwdHRsdhrXVxc+Oabb3j77bd56inj36yNIT4+Hn9/f6ZNm8bLL7+MlZUVV65cYfz48QwYMICgoCBatmxpMn/a1kkaGqWj63vfc3z5F4S+/zJejw8hbs9f+M19lyF/ncChmryeYe0OXekf2JXrsRe5fOoYd26n888Pn3N811+07z/EoA8rKyumTJlS8N3a2prNmzfTrVs3fH19Dc6G/OCDD2jUqBEnTpwwqV4oYeTIkaSnp7N06VJq1qxJbm4un3/+Ofb29kyePJmxY8cavfduYR40/bL4FjJfX1/VfTRurq4Pdx917ftuLjyx2His7e3pOGMGw/bsoeNrr+Hk4cGgLVs417z5fWuMCSHw6ViXtj0b4untjn0VW6L2xxnl19fXlxkzZlCrVi0mTpxoMPyjjz7KtWvX+O+//xTbNwVvvvkmjzzyCOvWraNv374sWbKEdu3a0alTJwYPHmxycX3QxmBYImprWKMW5q1fAL6/mE7DGvUZzIBfQ/jf+lCca9en20dLie3Yv6Aypk/1+g3x7d0Pz5Ztqd2kGUd3/GGUT19fX3x8fPjyyy8ZMmQIV69eLTG8nZ0do0ePZsWKFaXyUVZ27txJWFgYzZo1o23btvz4448EBgby119/0bt3b8aNG2eyyhg8ePpl8S1kpZnqa62wHEVn3vs9Iy2LxCJ2tnitnjJ79Q20wybmZuGhC/NurLJtBV8d2EJROPchV7l5uT4O9UoWgOPWyja2/uBOn7tfGgMjAf7k+pW2VK8rV36Sb+Qy7NOJpERFknIigtuXL+LyUDPcug0l1GUaRxPvzsgZpHCLuq+//pqlS5eSl5dH3759DYa3trZm1KhRrF+/nrZtDXd3mGLK+P79+/n33385deoUDg4OvP/++6xcuZJt27bh5+fH5cuXy+yjMGVYGFajkqC07CnVr3OFzGWkZZFUzM48byqcyFyShunr10dxIYrsvT66hIXN9Kg6Rh5HlX65Nq71YooNd8xqlyJ7Ha8uuPulJfRu6Qgcwz7pPFnO8kQgSZKI2HaUiEg3jkYc4Vjkf1SvUYPW7doz+P+GM7CGIlf3sHv3bj744APOnTtHu3btuHHjhsH1xp555hkef/xxPvvsM0U+yqph2dnZTJ06lQULFvC///2Pxx9/nBkzZjB69GimTJlCfHwR+0uVkQdNvyy+QnbmzBnq1VNYMzKS9ItncKylno+482fwqKue/Yvn+lKr3iHV7APEn+9J9br/kZGRx9P/u8p1t1BqdXuUJs9OxrVJc6zsyjY6oF69esycOZPJkycrfkOrW7eu4oGuZS1Hubm5TJkyhY8//rhgi5G5c+cyd+5ck/koCgHYF06Oil0LWqOUqK1h5q5fAOfP9qdOvQOq2XeKdyOrhlwh2/nDHvauOcDEca/yeP8BtG7bjmruZdvcXAiBi4sLN27cwE6hFtatW5dbt24p9lHWcvTtt9/SoEEDBgwYAMgbnx8+fNhk9oviQdMvi6+QaVQecnMlpjx3jYaNbWkw+yeTNm17eHjw1Vdf8dJLLym+xsrKqmAvObVZtmwZVapUYeTIkeXir4CiNoPLKN8oaGhYCoe3RLJz8R7e2DqVCa0Nz4pUiru7O6dOneLKlSt46ZYIMkR56ldCQgIfffQRISEhJtVtgzxg+mXxY8jq1zewL5EJcKyjro9a9dS1X8dzv6r2JUki4cY+eneIIz09jwVLapr8ofb19eXMmTOlWvRVCKFY0MpSjpKTk5k1axbffPNNifetSll90OaNWyBqa5i56xdAvfp7VbWfSDxLJ/7ELzM3MfnHcbjXM25v2eJo2LAhzz77LN99953ia0qjX1C2cvTWW28xZswYfHx8VLFfLA+YflWKFrL8Re4aN26Mi4sLkZGRAFSvXp2WLVsSHCxvoWdjY0NAQABHjhwpaKr18/MjISGB2NhYQJ59Z29vz3Hd4qRubm7k5OQQEiKPXbC3t6dLly6Eh4eTliavIePv709cXFzBGB4fHx+sra2JiooC5LVfGjVqRGhoKACZto5Ua+NPcmQYuVkZkJeHYy1PbsddIDNJHovl8lALpLxc0i6cBsChVj0ca3mSfDRMvhdHZ9xa+XEjIpQjuXLffpvOAVw6G12wjEbj5r7cycoi/tJFEi7HUqtefRxzc2h56QYA6Q62nKxfjXbnrmGdJ7fjHm5Sk4fib3IqZhIA9Vv+QWZaTa5dlGft1Kh/CKdql7h4VJ4J5F7tDA0ab+fQ3neQJCuEyKNjtw84dfQZbqXIY7latF0Gj/nBY4/JGbZtG8TFQf4aWVFRsHIlfPIJx0PssbK5Q4vOCzkXOZyEy7W4eiWHHf+s5b2PnqKa68OcOQReTglk2Njhl3gGgHgnd45W96LPJXmsWpa1LTvrt1OcT3l5ecyePZslS5YwZIh8b46Ojvj7+xMWFkZGhvxa1aVLFy5cuMDVq1epWbMm1atXJz4+ntOn5XyqV68enp6ehIXJ+eTs7Iyfnx9XrlwpKGMBAQFER0cXTCP38PDg0qVLpKamkpmZyfXr16lbty5Vq1bF3t6ekydPMnjwYNLS0grKemBgICdOnOD69ety3rdpQ15eXsF5Ly8v3N3dOXJETg9jNxfHCnAudMy4fZg1ikFN/fLw8KBu3boFPiqjfuVlZ5FmpUy/HPJy8bmYCsBtBxvONHCm1dmbWOn0K7JpVRpduU1kjLxJZWPfdWSk1SY+JhCAWg324+J2gbNHRwHg7haNb5vlxF3qweXYbgiRx8OBszkeOZabKY0BaN1uEbaPNcRWp193tm0jLy4OB51+5UZFkbVyJVU++QSHY/WQrPJIbhmP69macNOKmwm3WLVsBb2HPsKMCa9jJaxIT0ohhSTOn5TzqVoNDxo08SbygPw7Y2tnT6tOXTh5JJw7t5Xp11NPPcXIkSPp27cvQgiD+pWXl4evr68i/QoNDSUjI4PY2Nj79KtRo0ZcvHiRpKQkMjMziY2NpVq1atSrVw9HR0eys7PZvn07a9as0fRLZSx+c/GgoCB69OhhUpthhdYCTDoYRI1OxvvwNlDrPxISRPsA2b7iQf31nlUUzt3mKgeDZ9MpsOTtOP61vqHInv+dxgX//7T0Ft9+msKsee409JhFq4C7A2YnnYtUZG9Ts8JPY9EEBQVx7do1Vq1axZYtWxRd83//93+0atVK0T5r+eUoLCyMrVu3cvr0aaKjozlz5gxVq1bF29sbHx8fmjZtSkZGBhEREURERJCUlISjoyMnT56kevX7Z2kV5aM4hBCl3pzXz0FI4YXGR4szJW/Oq6Gc8thc3NQaZmr9gpI1TF+/FA/q9xylKFxVa3lQ/749H9C1e/Gr9a+zUrY10u2rXxT8f+NyMh/1WUDA05157vFxpLS9d9D60OrTFNmspqDZIygoiICAANzd3YmJicFdwZi0LVu28OqrryoeBxsUFETr1q1Zvnw5p06dIjo6mtOnT5Oenl6gX97e3lSrVo3jx48TERHByZMnsba25rvvvuOZZ54xaL8y6ZcQwhoIBy5LktS/NH4rikrRQqZheZw6fof5s2+weVddmjaz47gyHS4TwcHBBAYGKgr7yy+/cOzYMX788UfF9jdu3MikSZN48cUXGTRoEN7e3nh7e+Pi4lLsNcnJyeTk5BisjKmGkQv5mKOYaWiYitycXJZNXkPvFwLpO/URrI6pP7rnyJEjBS1LhkhKSmLChAn8/PPPiu1nZ2fTrVs32rVrR7du3Rg1ahQ+Pj7UqVOn2KEUd+7c4fLly0bvRVlmyrYQ2cvASaD0O89XEBZfIXN1VT8vbJzV9eHkoq59Zxfj1v4qjoyMPCaMSmD2/Oo0bSbPGHJ0Mf2UaH1cXV0JCgpi2bJlRZ6/evUqu3bt4uDBg4SFhREVFcW///5b4gKy+iQkJDBt2jS2b9+uaJmMfErTVF9UWU1NTWXjxo2sWrVKsZ17KKrJXxlmJ2aWitoaZu76BeDiGmtSe9u++AdbOxv6vNQLgBzHOwauKBuurq7s3LmT7t27F3k+Ozub3bt3ExYWxsGDBzlw4ADjxo0rNnxhzp07R1BQEKNHj+aNN95QHC87OzvFlbGiymleXh4hISHlrl9CCE/gCeBDYLpxzssfi++yrEhu5SoLt/qacptJ2crCudkY3oIDwNHqeUXh0nKVLUDoW2UMiXGxTHu8K17NfXn27ffxbtvhvnCPGr+9WbE0aNCAXbt23bPl0LVr15g/fz4rV66kR48e+Pv706lTJzp06FBiy1Y+t27dYv78+axdu5YdO3bg7e2tKC6SJBmcuJCRkcHNmzfJyMggMzOTjIyMgk9KSgqbN29m69at9OjRg9GjRzNkyJDSN/m7Cim8UOO+2F1yk79OzH5EJ2ZaC1nxWLJ+gXIN+1HhrjxJOcrC1bb9RlE4GzHFcCDgjvS9onAPu8iLSs96fjRH9gXz/Juz6T9yNDY297ddtCtm7TZjefvtt7GxsblnKZzc3FzWrl3Lu+++S82aNQkMDCzQME9PT4MaI0kSf/zxB5MmTWL27Nml2hvXkIbl5uaSnJx8j27pfw4cOMBPP/2Ek5MTzz77LK+//rqp9OsioL+R52JJkhbfE0aIDcA8wAWYYS4aZvEtZCEhIarvcq+2jxpRISS1UM++24kQUlqazr6HZ31WHD7D36uWMmfk//Bu15Fpkybi1rWP4YuNJCQkhA4dOvDzzz/TvHlzrl69ypkzZ1i9ejUjRozg+PHj1KlTR7G99PR0vv32Wz7//HP69u3LsmXL7quM3bp1i5MnTxITE8PZs2eJjY3lwoULxMTEcOnSJdasWcPgwYOLtL969WomT56Mg4MDjo6OODo68uKLL/Lrr7/i6OiIk5MTjz76KAsWLKBmzZrGJ0xR08YN8yXwOrKYaVQwauuL2vY9ToaQ2FxdDTa1hr2/ZBUR+0P4/v1ZrPh8HvPmz8fnsSextja8rZsx5OvXl19+SadOnbh69Srx8fH8/PPPuLm5sWzZslKNI5Qkie3btzNr1iyys7NZsWIFVapUuSdMbm4up06d4sKFC5w7d+4e/bpw4QI9evRg06ZNRdo/d+4cgwYN4vLly1SpUgUHBwcmT57Mzz//XKBnzZo1Y9OmTbRt2xYhhKLN0++jaP1KMvBC2R9IlCTpsBCiR+mdVhwWXyHLyVH4SlaJfYg887NvZ2/P/56fTJ+nx7Jt5SLizpziZvX6NGymbAeB0pKTk8OQIUNYuHAhERER1K5dm7p163L48GHF6/rks3r1al577TW6d+9OcHAwzZo1K5g9JEkSe/fuZfHixWzdupWHHnqIa9euER8fT/PmzenevXiVAVUAACAASURBVDvvvvsuy5cvJy7u/q7gnJwcXnvtNbZs2cK+ffvu2c4kKCiIl19+uSzJcD/WFNXkX0MIoT87pOAN05zFzFJRW19U169c9TVYDQ1r93AAi//azaE9u0m5eIrFH81l4qySJz8ZS05ODgEBAXz66ad8++231K5dmzp16vD555/Tp0+fUi0TdPbsWZ577jlu3LjB3LlzGTJkCFZWVgUaFhsby/Lly1m2bBn29vY4Oztz9OhR6tSpQ+fOnXn11Vdxd3cvdrLT9u3bGT16NHPmzGHixIkFcQsKCuKVV14pc1rcQ9H6ZYiuwP+EEP2Qq3OuQojVkiQ9bdrImR6Lr5BpVCz2jo4MnvgKcVvXsuXHxUyc96Vqvp5++mmefrpsz9y2bdt4/fXXWbRoEd7e3uTk5BAREcHt27f54osvWLx4Mbdu3cLBwYGhQ4eSlJREjRo1CA0NJSgoiLVr1/Lxxx/TsmXL+1bRvnbtGsOGDcPOzo5Dhw4ZPxW8NJT+DVORmAkhShyXIUnSFyWd19AwFzp278nFPVm8O/c9xr85C1tbdTbz8fDwKFiaxFiSk5Pp168fw4YNY+TIkeTl5XHs2DFycnJISUlhwIABBAcH4+zsTOvWrWnbti0rVqwgLCyMtLQ0tm3bxqRJk/j777/v0y9Jkvjkk0/46quv2LBhA926dStTXBVhRAu/JElvAW8B6F4qZxRVGauMGmbxFTKls+4qs49rLdW1n+yrfhpZ+3bm35enMnb2POwVDqQvDabIg+PHjzNmzBiWLFnC0KFDycvLw9vbG1tbW2xtbWnevDnDhw9n6dKlfPnll5w9e5akpCRmzZqFo6Mjo0aNIiAggKZNm/LYY4+xcOFCevbsSdeuXYmIiGDQoEGMGDGCDz74oMiuD1XKUSnfMJWKGVp3Zrmhtr6obT9BZf0C9TWsQbfHaNDEm+Btf9D7ySEmt2+KPMjOzmbo0KH079+fyMhIPvjgAxo2bIirqyu2tra4u7vTt29fjh8/zqRJk/Dw8CAyMpK//vqLdu3aAdC9e3fCwsKIiIjg6tWrfPXVV0yaNIk7d+4wduxYLly4wMGDB/H0vH+T08qgX6Wk0mmYxVfITpw4QatWrczaR9VLJ7jZUD37zhdPkOalbhpVz0nHu50fe//YyCPDTN9ybGweZGZmsmPHDjZu3MiWLVv4+uuvGThwIAcOHGDEiBH4+fnx7bffEhMTQ3p6OgMHDmTnzp0FviIiInjnnXd47rnn8PLyYujQoUyfPp0XX3yRqlWrMnz4cFq1asWhQ4f47rvvGDp0qMnvoUSMG0NmEEmS5hoOpWEK1NYXte27XTpBior6BeprWMqZEwwe+wIbVyxWpUJmbB5IkkRkZCQbN25k/fr1NGnShE8//ZSMjAymTJnC/v37WblyJe3bt+fo0aM888wzTJgwgddeew2AGzdusGTJEiIiIhgzZgzz588nOTmZYcOG0b17d6ZPn87333+Pra0tfn5+BAcH4+BQtKBURv2SJCkICCrmXKXTMIvfOil/JWFz9mGXqq59W5XtA+TdvM6AsZNY99XHZN8x/RRyY/Jg8eLF1K5dmy+++IKOHTty7Nixgi7Pdu3acfjwYWxtbWnfvj2xsbGsWLGCiRMn0qpVK/Ly8njyyScZMGAA2dnZ9OrVi+7du9OuXTvmzZuHlZUVo0aN4tSpU/Tr149du3aVWBkz9h4MUoatRyRJCjI0O0kI4SmE+E0IkSiESBBCbNTN0tQwEWrri9r27ctBX9TWsKyU6/QeOISzx49y9KDpNzE3Jg9iYmLw9vZm8ODBZGZm8uOPP/LHH39gbW2Ns7MzK1asYM6cOfTp04cFCxZw6dIlbt++XbDsxcqVK2nSpAlRUVF8+eWXBAYGsnTpUnbs2IG7uzstWrTgr7/+YsGCBcycOZPly5cXWxkz9h4MUg5bJ1UmDbP4FjKNykPnvgP466el/Pz5h/T7uOJfTurXr0+NGjXYvn079vb29513cnJi6dKlzJs3j4sXL5KWloadnR2SJLF161ZiY2M5f/48dnZ2jBs3js2bN/POO+/cMwDXycmpVBuemxzj1yFTygpgLZBf23xad+xRVb1qaJQz9g4OvPbp17z74hh+3h8BThW7sWLNmjXJyspi1apVxc7AHDlyJP7+/rRo0YI1a9ZQtWpV0tPTsbGx4c0332TXrl20bduW9PR05s2bx9ixY++ZjS6EoG/fvuV0R0Wgvn5BJdIwi1+HLDk52eSDp9MLrc1zMzmZqkX4+CFBmb2HDD3XqcngIttXsg0HwFdX0gwHAl6q40zurWSsXUtOo0Npvyiyd9hzRJHHqzdtyvUzZ8gA/gFW729PszaGnzTfKnsU+TU2nwcOHEjnzp156623ig0zbtw4Wrduja+vL1OmTMHGxoacnBzmzJnDsGHDSu2zOAzdg1Fbj9QXUnihHV7Eq6bbOkkI8Z8kSW0NHbNUymMdMlNrmFL9Alh4VZnNEjXMCP36/mqKonATa8sLGhrSsMh0ZesohtYbW+TxfP0CCAWcgDnXlOX7iBqGwxibxxs2bOC9997jyJEjRa6VBvLsx5deeolt27Yxbdo0goOD8fPzw8bGhq1bt5baZ3GYo37p4lVpNMziuyxTU1NV95GeprKP2+raz1PZPoCrbhCoI9AaeGfCabLv5JnMvrH5vGDBAj777DOmT5/OpUuX7jt/69YtNm7cSK9evejdu/f/s3fmcVFV/R9/X3YQUFlEBBRRcN8QRRQXck3LMq3saTE1NU1/Pm7pk5mVZblkplZPlktm2eZjWVbumAuSiGIq7qAiKioKsi9zfn8MTKAsw8ycYQbn/Xrdl87cM9/vd+458+Hcc7/nHE6cOMEHH3zAgAEDNJuYGwopbVX+kP9NRVGeUxTFuuh4DpD/jOoBQraGydYvxQj6IlvDXEsksXcAEoFzh6MNZl/XOh46dCje3t7079+fnTt3UtbNweeff86YMWNQFIX//e9/xMTEEBwczLx58/QNuxRmql9gQhpW4ztkFy5ckO7jcqJkH8ly7eclyb9GzQYN0vy/EdCwiSNvjD9TpoDogq71HBAQwNGjR7GysqJDhw6sXr261Plvv/2Whx56SJMfoSgKffv2ZcmSJeXekeqKlLZaPORf8jAso4CngGvAVWBY0XsWDIRsDZOtX1ZX5euLbA0rqV8OQEdg6ahh3LpimC2bdK1jRVHYvHkzzz33HJMmTaJ//9KLb6emprJlyxaee+45jQ9/f3/mz5+vmVlpKMxUv8CENKzGd8gsmB4K8O7nzbh0IZtlbyZWdzj4+fmxePFi+vXrd9+54rtLs8UK9bBkycOACCEuCSEGCyE8hRD1hBCPCyEuGtaLBQumhQ/w8Lh/s2D4w2Smafd4VRb29vaMHDmSxYsXk59fem+99evXM3DgQNzd3aspOj2RrF9gWhpW45P6q7pKuy74NJTso75c+7YN5NoHOLdtW6nXjk7WrPihNc/3Pkp9X3ueHtNAL/v61rNKpWLHjh0sXLhQ897Ro0e5fv06/fr14/Jlw25eXBZS2mrxkL8kFEVpDEwC/CmhJ0KIwfK8PljI1jDZ+qWSrF8gX8Pu1S+AgeOncuvKZZa88Dizvt+KbRkTg7TFEHW8bds2+vb9Jw9dCMHnn3/OsmXLDOajIsxRv8C0NKzGd8jc3Nyk+6hTV7IPV7n2rSXbB7h5+vR979X1sOWD9S14+bHjenfI9K3nI0eO4OnpiZ+fn+a9zz//nFGjRmFtbW2UdiTFh/xZSj8Bq4BfAMMlBVrQILvtydYv4SL/tyNbw8rSL0VReO7tD5jdJ4RTB/fSpmcfne0boo63bdvGunXrNK+jo6PJzs6mZ8+eBvNREWaqX2BCGlbjH1nGxsZK93EiTrKPM3Lt55ySf426TJpU5vu13WyxMkAr1Leeb9y4wd27dzl+/Djp6emMHz+en3/+WfO40hjtSIoP+UmxOUKIZUKI3UKIPcWHwb08wMhue7L1y/qs/N+ObA0rT7+srK2pVbsOVnqKmL51rFKpuHXrFlFRUQgh+Prrr3nssceYPXu2JjbZ7chM9QtMSMNq/AiZBdMmP0+FrV2VZkJLYcCAAbz33ntERETg4ODAgAEDOH78OHXq1Knu0PRD0kr9JfhIUZS5wDYgt/hNIYT8v8IWLJgABXl5WNvaVWsMVlZWHDhwgMcff5xPPvlEs6RFp06dqjUuvdFBvxRFcQD+BOxR93F+FELMreAjJqNhNb5DZowNnF3rSPbhLNd+ZWuQGYLiNXyKSb9TwMY1V9nwWTIdu9XW274h6vm5556jffv2pKen07VrV4PbrwwpPnTYC66KgtYGeB54iH+G+0XRawsGQHbbk61fQrJ+gXwNu1e/BHB46y/8sfIjblxOxMs/QC/7hqjjJk2aEBUVxe+//85jjz2GnV3pTqLsdmQq+oW6U/WQECJDURRbYJ+iKL8LIcrbYsFkNKzGLwwrg+9valfuqWDtRn7eqkK+eJCWixH2r+OjVTm3t5O1KrdvunZ+ve06alVuYcNYjmbBx40gpFYFBf8yr7YhE50WVmyriJgt99hpWPHCiop6q4FaJQUNmFyWoCmKcgpoK4Qw/H5YZoA56tcGLfUL4JmG2jW3Kdna2euYot21Guqu3U2a4/R0rcrteVM7v40dWmlV7tD+LJ4ZmMQLHwyj0+C22NiVP7Yxut4MrWzWdIylX/f4dEKtX+OFEGUuHGdKGlbjc8j27JH/KNg2Tq6PwBIz/2Swp7lc+wDnD44u9fpfbnCnEIKdDGNfdj0box1J8aFDDoZQU7zVg23RUd5ftDjAzJ/rmjay2569ZP0KlqxfAHs6yPVx+sD4Uq87hDpS29OFev7uFXbGtMVs9UW2fR1zyIoWeD0KpADby+uMFWEyGlbjO2RGuXuV7EMxRNZ7BQgjNIN7b4x6uEBda3j+AiTmlvOhKtmXWwfGaEdSfOi4sGIVBM0LOKUoylZFUTYXH/oHbqEY6W3PzPULQCiSNfIe/bKxUeg3oSdrJn/Pse3xeteR2eqLbPtl65eHoigxJY6xZcRSWLT1kS/QWVGU1hV4MRkNM4kcssjISEC9arqLiwtxcXEAuLu706pVK/78808AbGxsCA8PJzY2lvR09VB1SEgI169f16wTFRgYiL29PcePHwcgJyeHgoIC9u3bB6gX0QsLCyMmJoaMDPUgQGhoKElJSVy5cgWAZs2aYW1tzcmTJwGoX78+jRs3JioqSh2HtSMFLUKxiY9Gyc1Gyc6A/FysryZglare/K2gUUuutu7E6YfVex36xO7H9/BeosfMAsD5xlVC1n5A1Pg3CLJzBeDc66/jNWwYLu3VW2hdWb0a27p1sff1JWjxYlJ370bJzsDudAwAopYreYHB2P+9DwoLAMht1wPbhBMcyZoJQNPW35KVUZ/kxF7q79JwH651Ejhz7HkAPBqeREHFnuYLEVihoKLnqVeJaziO206BAAQnLicnOZGc5EQAHHwCsK7lQuYZdT3Z1nbHqUkr0mL/JFN5CSvrfAI6f0nS34PJyainjlVlxa2Lnbmd3FZto+XXfO97m/0Ro/g5H+olHuXJ2B/Z9/w76nrKSifs27e1rqeMjAxOnTpVqp4cHR0JDQ3VTP8GCAsLIyEhgWvX1PXUsmVLCgsLOV00rd3HxwdfX1+io9X9D2dnZ0JCQsjMzNS00/DwcM6cOUNKSgoArVu3Jjc3l7NFeSZ+fn54eXkRE6OuJ1dXV4KDg9m3bx8FBep66tGjBydOnNDsANCuXTvy8/M1Pvz9/XFzc9PMXNI5P6PsdXw8FEWJKfF6pRBiZckCQohCoL2iKHWATYqitBZCHC/DQ0XJsg8EMvWrXr16pXwYQr/srB3JaxGKXZF+WRXpl83VBKyL9Cu/UUsUVSGR7y4GwOfgfnz37yV6WpF+XbtKyPIPiJr1BrkurnRUwdHXX6fhsGG4FenXudWrsatbFydfXzouXsy1Iv1yPKNueionV3ICg3E8vg+lSL+y2vbAPvEEB0+8BUCLNl+SkdGAywnq9bV8G+2mdt1znDiqnv3sFniKdmc/I8PJh8jgxShCRc8jrxIXOI7bLkX6dXo5ucmJ5BXpl71PAFa1XMgu0i+b2u44NGlFRuyfnFImYG2dT2CXz7l4bCjZd70AECprUhLDSL2iXt3eK2Av/YZ2Y0DgY9y+ls7J5edpOcGXOicbqsvbFJLe8gouZ+oTeTKy0nqSrV9RUVFkZGQQGRlZE/TrpraPLIUQdxRFiQQGAGXpF5iQhllyyHTAkkNWPtrmkDXp8c8ElneT4XYBLG5YRkFLDpkGXXIwOoZYi6hDpRXN3iqrSpvzFs1AyhRCLC7x3lbgD+B3IcSpqsRUkzBH/bLkkJWPtjlkANvvvAjAraTbvNN/OUuOz0GdflkaSw6ZGmPpl6IonkB+UWfMEfXsyQVCiF/vKWdyGlbjH1kW363KxOa8XB++48ZJtR/XUK59gOSTA8s9dywL2uuZSya7no3RjmT4ECjkCYdSR2UoiuJZNDJGkaD1Ae4VrBHAbeBNRVFiFUX5VFGUxxRFkb+M4wOG7LZnK1m/AiXrF0BcoFwfl48/Vu65pJNXadi6QZmdMW0xV32RbV8X/QK8gd2KohwDDqFOufi1jHImp2Em8chSJrdv35buQ7kr14dTYKBU+8WPJmWSlVb+SvxHs+EN7Qb0ykV2PRujHcnwoRJW5KmqvBCZN/CloijWqG/avr9X0IQQ14C1wFpFUayAUOBh4FVFUbKBbUII+dncDwCy256VZP1ylaxfgObxpCwy08oXqMvHr+LXWr+dRsxVX2Tb10W/hBDHgEp3TjdFDavxHTILpk1SHtzMh2aS9yt7UBFYka2q2g2ftoJWorwKiCo63lAUxQPoXyWnFiyYKaf2n6f3S92qO4waiS76pZMfE9GwGp9Dlp6ejqurq0FtZhaWfp2Rno5zGT6eP5tx33tl0cWl4gZnl5VOnpPafnctv8q6G+XlL5bmcm5z6uamc9u+YsMzfLTru2+/U/b7jtnpZDv+4+NIpvrfxK9XkHYihnbz15b5uS0ttHIrpZ6NaV8bH7rkYLTt6CQ2Hyg9etDY4ViVcsjKiWU55S+FgRDi//Sxby4YI4fM0G0vXUv9Ahh7XruEs3a1PMo9Z5+VTm6RfvXS8mt8ezOm8kJAYq568lzd3Lvctncpt9xkb+3u+Hallf3+vfoFMM4LUm/epHvLJhy+eA0HR8cyP+unxZ7jpqAvsu2bkn4VxWNyGlbjR8hSU1OlN/Q7t1PLFTRD4JiZqumQycAr+06lHTJ9cc5MvU/QVHl5XNv6A41fnKa3fdn1bIx2JMOHqigHQwLa/cW0oDey2166EfQrV6J+AdTLvlNhh0xfytIvIQRb/vcD3fv0K7czpi3mqi+y7UvULzBBDavxHbLExET8/f2l+rhyKRHfRvJ81LmRSJqnPPvN0y5xqk5ZUxwNh+fNRG54+AOQdDiKPdNHkZ2UgEuztnh07au3fdn1bIx2JMOHENZShvyFEF+WfK0oiov6baHdsLAFrZHd9pIvJdJAon7VvZHIHYn6BdDsThKn6/hJs19Svwpycvjx5aEsPfQnTrVqsXT1er3tm6u+yLYvS7/Utk1Pw2p8h8yCaZGXlcnmqS/Q9OW5eA94Ciu76t2Ut6ajQtElqV9rihZc/ApwU79UbgAvCCFOSHNqwUI18ueHc7Gxsyfq7CXqGGGP2wcZ2foFpqVhNb5DFhCg36av2uCn58aylXG7nlz7J+r4S7UPcN1T/R12vz8Lnw5d8Bn8nEHty65nY7QjGT4EVuTLG/IHWAlMFULsBlAUpRfwOdC1og9Z0B7Zbc9Hsn6lStYvgJN15Y7wF+tX0uEojm1cx5g/4gzaGTNXfZFt3wj6BSakYTW+Q+biIi+voJhaznJ95DnItX/HTv4slhwHFxIP7Ob01k2M2fb3fYta6YvsejZGO5LhQ+aQfxG1ioVM7U9EKopS0XbxFqqI7LYnW79yJesXwB07uU0ux8GF/Owsfpn+IgPeXkEtj3oGtW+u+iLbvhH0C0xIwywLwxqAU8fl+vC6JNd+txTtZmTqg9/FI/w6YxQD31uJY23DD/Ob46KHxvCh0m1hxapwQVGUOYqi+BcdrwMJhnbyICO77Z2RrF/ekvULoOv1eKn2G12OI3LR63i37kjzgUMNbt9c9UW2fSPoF5iQhtX4ETILpkHG9WQadelJ04fKX7HfguERui0MWxVGAW8BGwEF+BN4UaZDCxaMTX52Fic2f8PY7ZbUSGNiBP0CE9KwGt8hc3d317rszXztyh24W/q1qOXOzjLWrxnk9qlW9q7nNa7wfKazFQXiRwDyxDCtbD7mVtHm9v/QoRYk5rnzaNOKm0L03QpPazifc/97t08eIeWvaAKmLdKc13Z9MW2pSj2bon1ZPgRW5Mgd8m8C+KEebbcBegMPAW1lOn2Q0LZdaKtf++79LddyL3f9rUF1tdSwfP9yz+W42GOrfAVAtup5rez1q6PdMlMhRU07MdeDR5qU/4c7Skv98itjjpGqsJAjB/by5OsLaeb1T11os76Ytpirvsi2bwT9AhPSsBrfIWvVSvvNYnUmQK6Pa74qqfYbNZcXv6qwkENzX+b2U2MJcPOU5kd2PRujHcnwocJK5jo+AF8D04HjgNyG+oAive1J1q+bfrlS7YNcDduz9hOO7jvIv3+cL82HueqLbPu66JeiKH7AOqA+ak1aKYT4qIKPmIyG1fgcsj///FO+k6NyfQScspZq//gBefFf+P5zrGxsGdexiTQfIL+ejdGOZPhQCfXWIyWPylAUxU9RlN2KosQrinJCUZTJFRS/IYT4RQiRIIS4WHwY7htYkN72JOuX30n5+dGyNOzOtWS2LHmbuf+Zqdfm4ZVhrvoi274u+gUUANOEEC2ALsAriqK0rKC8yWhYjR8hs1B95Ny8zt8fzSHiy10oyq3qDueBRMdp48WCFlu0WOJhRVG2CyFOllF2rqIoXwA7Ac1QiBDifzoHbcGCifDD3Cl0f34ctg6WzXarA130SwhxFbha9P+7iqLEAz5AWfoFJqRhNb5DZmNjhK9oJdeHSvI4ppWEayRUKv56/SUCho2mTrM2FFzcZ3AfJZFdz8ZoRzJ8CB0WVqyioI0EmgO2/DPcLwBLh8xASG97svXLWv5+yTI0LObn77j0dywjlq5FJBw2uP2SmKu+yLZfjn55KIpSctujlUKIlWV9XlEUf6ADEF2BG5PRsBrfIQsPD5fuQ2kn10dis8LKC+lBqy6Gj//kZ++RdyeV1v/3NgC7Gt3v4+zZs/j6+uKo5z5wIL+ejdGOZPhQCWuyVfetD2RIQWsnhGijb5wWykd625OsX1eaZ0m1D4bXsOTTJ/n2tYlM/m47do6OpLa83356ejq3b9+mUaNGevszV32Rbb8c/bqpzebiiqI4o545+W8hRHoFRU1Gw2p8DllsbKx0H+K0XB8NEuXmkJ2LM2z81/Zv5+zXH9P1o++xLtoaKTS5tI+ff/6Z4OBg2rdvz759+o+eya5nY7QjGT5EUVLsPev43BRChJQ4yuuMaSNoByvJz7CgJ9LbnmT98rog/3GfITUs+246n41+gifeWIRf6/YA1D5f2n5ayjXCw8Np27YtCxcupKCgQC+f5qovsu2Xo1+VoiiKLWrt+lqLR48mo2E1foQsPb2ijrGByJLrwyFbqnmy7xou/szkSxyc+QJhH2zAyctH837t3H98JP7yDeMWTWX37t0kJCTQu3dvMjIysLW11dmv7Ho2RjuS4UOg6LT1SBUELRwYoShKAur8CwX1Br2WZS8MhPS2J1m/7LLl3lCC4TRMCMG6KaMI6tqLrk+/qHnfJvsf+6lJl1j6dB9eGfEczz//PAMHDsTHx4dnn31WZ7/mqi+y7euiX4p69sUqIF4IsUSLj5iMhtX4DhlAoZYpDK5aXo3MeybG2gvILWOy7HD3GVrZe+1STIXn/UQK1/PVW3XsTvtVK5v1bB/RqlwTeygE0iu5wfvtduW2CnJzuDQjiOlTXXj56XGlzp288n8s9h/H+i/uEPlhKjt2HKF169bk5ubSokULvTpjFspHRdW3HqmioA3QNTYLhkVb/cq4JwPCSUBWOVkRT7jN0crmnMsHyz1XX9wiOa8BAHmqH7WyV8dGu/UWg4r+VlemYWWtj1gWues/wOr6JX76/mvsS6wzFm0DD3vCubNnGTysL1MnTWbmtCkIIcjJyaFtW8v9hwx00S+gG/A88LeiKEeL3ntNCPFbOeVNRsNqfIcsJES7BQb1Ia+ZXB8nGrpJte/TRv/4bxw/zO4ZI+jTxZ5xU+7fGimg/TfE/pXNknm32LjTj9Yt1QvX/vLLLwwaNEhv/7Lr2RjtSIYPIaqe1E8VBM2yxIV8ZLe97CC59uMb1ZZqH/TXsOz0NH55exrXDuxg6+4/sbcvveprmw4h5Ofn868nn+Df019l7PgJAMTHx1NYWEjr1totxF0e5qovsu3rol9CiH2oR7m0LW8yGlbjc8iuX78u3Yf1bbk+3O9qeXunIxk3dY+/MC+PQx/O4ffRA+kw/jWWfO5V5no9t68H8frkFGa/50njpuq8MpVKxffff8+wYdrdDVeE7Ho2RjuS4UOXHAwhxD4hhCKEaCuEaF90lHd3aUEystuezR259t3S86TaB/007Myf2/mgT1usrKw5eOQYfg0b3lfm5o3rfPbxCry9GzDm5fGa97/99luGDh2q9xpl5qovsu3rmkNmrpjECFlkZCQAAQEBuLi4aDYpdXd3p1WrVpoF52xsbAgPDyc2NlbzvDokJITr169z+fJlAAIDA7G3t+f4cfWG2Tk5Ofg2bETUfnXiuJ2dPaFhYcTGxJCZmaG20TmUK0lJJCdfAaBps2ZYWVlzJl49y79e/fo09G9MzMEotQ1rR/Jacyn9LwAAIABJREFUhGIXH42Sm41VdgYFnr7YXE3AOvUaAPmNWnIjt5ALZ08D4OXtQ30fX+Ji1JPVnGo50yY4hCPRUYRkqJ8HHgnwoFHKXdwy1EuhnPOujV1BIU2uplP/dhbX6jpRUEfgn6h+PprtoHDJ34qmZwqxLnpkerqZFT5XBHUy1df0jn87bLPvUuv6BQAy6/mT5+xG3QvqBMyrdeuSnX6btKtJqGf6KgR06cnVk3Fkp6vjatAqGL/UVPxSEwG46B5Ahr0LzS4c5G5SAs4eDrTafIQ+d88Qf2AyVtZ5NO/yXxKOPUX23foApN6E7t3u0KJRb07uVyDoCvHx8UyfPp20tDROnjxJUFCQJsHf3t6esLAwYmJiyMhQ11NoaChJSUlcuaKup2bNmmFtbc3JkyfJyMggPz+fxo0bExWlridHR0dCQ0OJjo4mO1udiBcWFkZCQgLXrqnrqWXLlhQWFnL6tLqefHx88PX1JTpaXU/Ozs6EhIRw6tQpTRsLDw/nzJkzpKSkAGgevZ49exYAPz8/vLy8iIlRP4p2dXUlODiYffv2aZJ/e/TowYkTJ7h1S70+W7t27Th//rzGh7+/P25ubppE2bp1dduQXWWcrUceaGTqV7169Uqdr+h3kXRFO/1ysHYkp3koDqeisSrWLw9fbK8lYFOkX7mNWoKqkOgTletXXl4uwXmZHG1Sl0YpmdS9q+6AnW/ggl2+isZX7+J1O5vrdR0RdcE3QZ1TluMIyf6F+J+2xqpIvy40L6R+khUuVdAv75btSDkbT9rVy5SnX64pqbjeSAQgzSuAPAcXPBKOcCc5CeujsTy1aCUPedgTHxeLtbUNIV3DOXE0loyi3LTc3Fxi/zrItKlT+WvfHho1CcTVwQ5PT0/CwsJMXr+ioqK4desWly9ftuiXCaMIIX+NmAoDUBQhM4bIyEi69+ylVVltF5fYeM8ap/ZHI8ltf7+PwVq2wcpyyELOphATqM4hq2tzTSub2uaQ9a0NFw5GEtClV4XlPkj+5/8FuTkc+fQ9Tn7zKWH/+YDAx5/T3CHO8Wt232dTbxay64fxtAxfTss26kcBPnanefHFF2nXrh1TpkzRKtaKiIyMpFevir+DKdvXxoeiKAghqnQr7ta6vej3vx2l3vuumedhbaaNW6gc2foF2re9PC3D+P5m6ddOcZFktSvb/hAtsyUqyiELPnOL2CD1PoceNkla2dM2h6xv0dPQyjRs8z05sKf3bOPHV8cS1KMvj8xZjKOr2tDLXmV//rt1azh56gxvzX9P897ByJ1Mnz6dI0eOaBVrRZiCvsi2b9GvyjGJETKZBAYGSvdR4CPXxyVPuXcI7v7ax39pzx/sf3sSbs3aMGzzEWrV96n0M3t3ZRJ/9neGjf8nLyMjI4Off/6ZhQsX6hTzvciuZ2O0Ixk+BFa65JBZMCFkt708yfp12VP+1knaatid5CQ2vzmFpL8PM/T9/9I8ovJ8biEE6778kq9+KD3ZeO3atbz44ou6hHsf5qovsu0/aPpV4ztk9yZnykDYyfWRZyN32riNFvHfTb5E1LtTuBUfR7e5y2nY82Gt7fv52/L7j6WHFX/88Ud69OhBvXr1qhxvWciuZ2O0Ixk+HrQh/5qI7LYnbCXrl638VOXKNKwwP58/v1jK7o8X0O3FV3jmo3XYarkgtaIo2Ds4cO3qVdzc1EOG6enp/PLLLyxZos2qCpVjrvoi2/6Dpl8mkdSflZXF2bNnSU5OJi0tTe9F9kpSnIshE9sEuT6aXk2Tav/6mfLjz87KYuUHC/jfY8G4NWvLk78fr1JnDKBJkB0P9XyOko92DHl3CfLr2RjtSIYPBbBRSh8WDIsQggsXLnDp0iVu3bpFTk4OhnyMKbvt2SfKtd8k+a5U+1C+hhUWFnJwz26W9GvPuf27+L9fDtJ/+ltad8aKeXLYMM6eOa15venHH3jooYfw9PTUK+5izFVfZNt/0PTLJEbIPvjgAxYuXIizszOZmZnk5eXxww8/8OijjxrEvrW2lailhj7jUfp1pA308ri/nLbrnz3pXvHj8DsJkZoy2q6ns+2Odrlmvye78Hgu/PciZF25yJmV88m6kkhOSjLZKVcozMrEs1s/og5GE9CkSaX2XK1P3/eeTz3YbfcxcTs+ZNCgQRw7dozTp/sbZLkLCxWjAHYmcdtVc7l48SJNmjTB19eXzMxMMjIyeOqpp/jqq6/0nn1XFbQdR3/unj5EpA08oWe/4nnPLuWeu3YhUnP+WKZ29nZpeQ/qSw7WtrYUquB0Rj7/+3gJpw5FcetaMreuJZN2I4V6fo34ZNEChgwZonN9ODs789OP3/OvYU+gUqn4/JMVzJs3TydbFrTnQdMvk+iQtW7dmvDwcH7//XcA9u/fz9ChQ4mNjaVBgwZ62TbUI7Hq9GFbV4798xu/5dDcmQQtW8WVUz8QN+8VGg8fj3efITjUa4BDvQbY1XFHURQCKu+LVYi/vz8TJ06kV69evP7668yaNQu7om2VDIHsOjDXdmSlgMMDJGjVQcOGDXF1dSU2NhZPT09ycnLo1KkTa9euZeTIkXrbN/e27eAux376xXOMH/cwXg39mfaf13lnUA9qudbm4RFjcavfAPf6DajrVR9bOzsG1NHPV4sWLXjttdfYunUr6enpWFtbG/SG0lz1Rbb9B02/TKJDFhUVRcMSa79069aN8ePHM3r0aE0nTVeCgoL0Da/afTg1Mqx9IQTHP17ChU3fE/rxz6xZMIW8/HzC/ruFum06GdRXMf3796dr1648+eSTHD9+nO+//96g9mXXgbm2IwWwq+HD/NXNsWPHcHR0xLHoMZiDgwMbNmwgIiKCiIgI/P399bJv7m3b1d/w9m8cPUjkK0MYNfMNzh6N4eVhj/LMzDd5fPy/sbIy/F/wVq1a8cknnzB+/Hjs7OxYtmyZQUc/zVVfZNt/0PTLJPqeq1ev5s033yz13uzZs/n777/1fi5tiI2rq9tH2lHD2E87f5a4D99nc+9Qru7bQ79vf8Gr+wAWLltBxE/HpHXGQH2NlixZQlRUFG+88QYODoadOSO7Dsy1HVkBjlalDwuGZdy4ccydOxdn53+Sj1u3bs2IESP473//q7d9c2/bKYcNYz/vbhpnf1zNthceYtfYRwh75wseGT2efy/7gi9/+B9PvDJVSmcM1NdowIABdO7cmfr169O3b1+D25eNObYjXfRLUZTViqKkKIoiPzHPwJjECNl7772Ht7d3qfdsbGwYOXIkq1evNthMFnNECEF2ZiZfzpxM6vVreIeEE9SlO34t2mBlXXnWSNb1a1z6fTOJmzeSnXKdRo88TvcVq6jbojWKopClAsXKGhtHJ+nfxcvLi9OnTxssEdZC5SiAbRXvMBVFWQ08AqQIIfTbE+YBoFmzZowZM+a+98eOHUuPHj2YP3++tI6COZCfn8/6FR9yeG8kroFtaBbWgyYhYTg6u1T62cLcHK7s3UrC5vUk79uGd1hvmj07Ed9eA7G2V9/UKYqCjY1x/pStXbuW3Nxco+YGPsjool/AWmAFsM7A4UjHJDpkZYkZqFdEX7x4sV62zXk6cdL5cyz69ziGDeyPq5s7Qe3UqyXvXPMxaSnXCOzUlVY9+9Fv7GQURSE3K4ttK5eSfDaeM2dPcvdiAkKlwrd3f9pPn0290G5lduJyrY13jWTlMZjjlG5j+FAUnZJi12KmglYdrFtX9mUKCgpCpVKRkpJC/fr1dbZvrm07LzeXVQvfxc/ZjnNnLtBv6NNExZ1g84fvcPFYLN6BzQkK7c6A8dNwa+ALQMyW/3Fy707iT58h/eJZslOu4tEulIDBz9Hl7c+wr1POSrWSl+4ovkYODg4GH90vaV8m5tiOdNEvIcSfiqL4GzwYI2DSK/XHx8fzyCOPcO7cOaPckWg7K1LbWZva2ou6Z1Z4QUEB361YwoaPFvLctNcY9vL/ae4Ai2dZpt9I4eclbxO/bxfz96q3SIlct5I/N6wm4oVxXPR0w8U/AAd3jwqvXZZKuz8UX2q55p+r3CXTHmh0Wem6QdsQMWZL6Z0g3m6oVLrSdZGg/WoZIauYylbqDwkJYdmyZXTt2lV6LIbWr6pw5J7Zk0cO7GPexDE0DmrOrA8/xtNbPTmreJZlfm4u8ft28dELg3l9SxSN24eQmXaHacENeWLmPK7XD8LFPxDnBo2wsrUt1+8zWg6265vUb0F/LPpVOSY9jh4UFIS9vT2//ab7vsbF+3HJxJA+Th+NZWxEZw5H7mDlrr8YPnEq2aeP3lfO1bMeZ6L38eTrCzTvHfr1Rx6eMJ3uz4ykXkgojh6eWnVkeyab1zWqifZl+Sge8i95AB6KosSUOMYa3LEFAIYMGcKyZcv0smFObTsjPZ33/j2BWSOe5pW57/LBt5tQbibfV87W3p4rZ04SPHAIjdur/7Ye3fYLLbpF0G/sZHx6Poxro6YVdsZKkn/SfK5Rddg3hg+LfumPSTyyLA9ra2sWLFjAq6++Sp8+fXQaEi3e2FUrfzreOZbnQ1t7YUWpFO/Mm8cnH6/g/QULef6FFzSdqb25GZoyXiX0KbhdW5yvX6CrC6TevMmlo38xduNPODrBiHraPyKJvJbBv5trXVwnqlIPD6J9WT4UpcxZSjdr6l5wpsaUKVMICgriwIEDOo+SadsuDK1fVaFDLfVs+X899RQPP/wwZ06eoE4d9bBUZE4GHYp2T6pb4i+OVUhbFm3eQM+i/Si/+v0Hnn/6KXrWhhFVzGyIzMugl8RRMIu+VI/9B02/THqEDOCRRx6hZcuWjBo1CpVKVd3hSGPphx/y/XffciTuGC+MGKHVyNbjzzzPzxvWk5eby6/ff0O3h/ri6CQ/Od+C+WCZZVm9ODk5sWLFCp566ikuXbpU3eFI49SpUwwZMoRPPvmElStXajpjFdE14iGuX03mbPxJrly6RPSfkfQeZJjFwC3UDB44/RJCVOuhDqFisrKyRJcuXcRrr71WadmyPisbfX1s+PY74evrKy4kXhQFKnHfcTczS/P/M1n/HPF3C4S3r5+wsbUVnvW9xfsr14qjNzLEmSqGYw7XqKbb18ZH0W+lSr+vhm07iv9eFaUOIKayzwH+wPGq+nvQDm30SwghFi9eLFq3bi3u3LmjVfmSmHrbvnr1qmjcuLFYs2ZNpfYTckofL0+fKRRFEa516orBT/9LHLp0XSTkVD0GU79G1W3fGD5MRb+ADcBVIB9IAkZX1W91HWbR33R0dGTz5s189913fPzxx1Xa6zIpKUliZPr72Lt3L/83aSI/bf6l1OK4Jblyj/3bt26x9aeNzJv2fzg6OeFUqxZ13NxY8e6bPBLSmqxMLfcnMUD8puLD3O3L8qEoYGtV+qj8M8oGIApopihKkqIoow0e2APG1KlT6dmzJ0OHDuXOnTtV+qwpt+2MjAwGDRrEiy++WO7etPfaz8/PJ+bAfpbNn8fRv6JxdHKiXv36HIv5i14tmxC5teqLgZvyNTIF+8bwYSr6JYR4RgjhLYSwFUL4CiFWGTwwSZhFhwzA09OT3377TTMc3rNnTxISEir93JUrV6THpquPmzdvMmzYMNat/5r27duXW+5q8j/2t2/+iX5tA/nxy9X4+TfmgzXfEH35JltijrMrPoE2HTuxamnVlgox5Wv0oNiX5UOXIX9zFjRTRVEUPvroI/z8/PDz86Nly5asXbtWq8+actseN24cHTp0YM6cOVrZT7l6lcFdQ5g7ZSJ309MYO3UG0YlX2X70JLtPnGXpl9/w1rTJVU5PMeVrZAr2jeHDVPTLnDHppP57CQoKIi4ujpSUFPz9/Q26F2J18NNPP9GzZ0+tV31es3o1b86ezdpfd9CqQ/B958+fPsXhqP30fewJQ4dqwUx50LYeMWWsra1Zs2YNn3/+OU8//TQpKSnVHZJepKen88svv5CUlKRVzuv58+cZ1qcvT498iQmv/ue+z+Tn5/PjujU0bd7CsvCqBeDB0y+z6pAVo1KpsLOz0+ouqlmzZtLj0dXHpk2beO655yotF1hk/9+T/4/v90QT2LLVfWXSbt9mxMDeTHv7PR55cniV4jDla/Sg2JflQ8eVri1IxMbGhtzcXK1vKE21bf/222+Eh4fj6uqqlf3FixczcOiTvDLztTLLzfm/CRQUFPDxNz9UuUNmqtfIVOwbw4dFv/THLAcA69evz4wZMxg9enRxEl+5WGuxvZC+6Orj4MGDNG9e+XoT1lZq+zY2Nng18CmzzE/frKNz954MefaFKsdhytfoQbEvy4eV8mAN+ZsLixcv5t133+X8+fOVljXVtq21fln/o1/1fXzLLHPj2jV++98PLFn9lU7LG5nqNTIV+8bwYdEv/THbrzdz5kzu3LlT6ea9J0+elB6Lrj7mzp3LuHHjKMzPw1qh3ONU/EmsFfW2HQ3IJtCRUkf9grtsXPVfpk8Yp3nPGPGbkg9zty/Lh4J665GSh4Xqp3nz5syePZsRI0ZQWFhYYVlTbduTJ0/mq6++4vDhw1rZd3BwwCk/G397Sh2N7ASbPlvGU8OG0bZebfx12IHHVK+Rqdg3hg+LfumP2X49Gxsb1q1bx5w5c7S6yzRFJk2aRL169XjjjTe0Ku/i4sKqVau4ceMGoN5iaeXKlQQFBdG1a1d69OghM1y9EUIwYcIEHn74YR5++GFmzJjB5cuXUalULFu2jIsXL1Z3iDUOq6KFFUseFkyD//s/9ZZoH374YXWHohONGzdm+fLlPPPMM1otCuri4sK2bduIjY3VPNmIiYkhIiKCzZs3M3PmTNkh683GjRs1+jV8+HB27dqFEIL9+/ezcePG6g6vxvGg6ZdZ5pAVU3yXOXLkSPbs2VNm3oE+m/pqi64+FEVhzZo1tG/fnj59+tCnT58K7X/zzTcsX76cwMBAWrduzbVr1/D19eXXX3+lY8eORo+/qj5iYmLYunUrK1asQAjBjh07aNeuHY0aNeLo0aNkZmbyn//8R2f7MjHldlQRCuBgtrddNRsrKyvWrFlDp06dePTRR8vNwTHltj18+HC2bdvGpEmTWLNmTYX2J06ciBCCoUOH4urqip2dHVeuXOGtt95i5MiRmv16dcEY10gIwezZs/n3v/9No0aNuHjxIhMmTMDBwYHLly9jY2PD0KFDdbYvG1NuR+XxoOmXSW8urg0qlUrzx76sdbxyc3Ol73Kvr4+dO3fywgsvcPToUTw9798t91776enpbNu2DTc3NyIiIvSekWSsa/Tqq6/i5ubG3LlzNe/fvn2bbdu28fPPP9OhQwdmzJihs32Z38EU2pEum/O2Cg4R3+8rvcdc61qVb85rQTv01S9Qb6/k4eHB7Nmzyzxv6m07IyODjh078uabb/LMM89Ual+lUrFnzx5u3rzJgAEDcHFx0dl3eT4MTW5uLn///TfDhw/n7NmzGs1VqVRs3bqV5ORklixZwokTJ3S2X936Itu+Rb8qxyRGyCIjIwEICAjAxcWFuLg4ANzd3WnVqhV//vknoH5MGR4eTmxsLOnp6QCEhIQwevRoDh8+zIULFwgMDMTe3p7jx48DkJOTQ58+fdi3bx8A9vb2hIWFERMToxlmDw0NJSkpSbOOSrNmzbC2ttY8E69fvz6NGzcmKioKUC9UGxoaSnR0NNnZ2WRkZNC3b18SEhK4du0aAC1btqSwsJDTp08D4OPjg6+vL9HR0QA4OzsTEhJCVFQU1tbWLFy4kHHjxjFv3jzNI8nWrVuTm5vLkSNHcHZ2xs/PDy8vL2JjY/Hw8MDV1RVFUdi3b59msdwePXpw4sQJbt26BUC7du24e/cuFy5cAMDf3x83NzdiY2MBqFu3Lrdv3y7+saAoCj179iQuLo7bt28DEBwcTGpqKomJiTrXU0FBASkpKQwcOJDIyMhS9eTl5YWLiwuDBg3StIWq1lNGRgZNmzatsJ4AwsLCdKqnHTt2UKuWekO+8PBwzpw5o1m2oLiezp49C6Cpp+LNdl1dXQkODq60ng4dOqSZeVdWPelCcVKsBXnoq1/du3cnNTX1vt8FQL169bh+/bqmA2CK+pWbm8uHH37IuHHj8Pf3Jzc3Fyhfv2JiYlAUhSZNmuDi4qK3frVr147t27fj7OwsTb8KCwuJjY1l3rx57Nmzp1Q9OTo6kpWVxRNPPGGy+hUVFcWtW7dwdna26JcpU91bBaDl1iMV8d5774nJkyeXeW737t16268MQ/jIzc0VHTt2FB9//LEU+xVhjGv066+/ig4dOpR7/oUXXhDvvPOOzvZrwjWqzAc6bD3SJrijuJQjSh1osXWS5TCefiUlJQl3d3ehUqnKPG8ubXvRokWiW7duIj8/X4r9ijDGNQoICBB///13mee3b98umjdvLgoLC3W2L5vqbkcW/ar8qBF9z86dO3Po0KEyzzk6VnHKoQ4YwoednR3ffPMNc+fOvW/YW/Z3MMY1ys/Px8/Pr9zzs2bNYtmyZWRWcdunYmrCNZLhQ9dZSoqiDFAU5bSiKOcURZll8MAsaPDx8cHe3r7cnUfMpW1PnToVR0dH5s+fL8V+RRjjGqWkpJSrYb1798bFxYWffvpJZ/uyMZd2VJIHTr+qu0eIAe4wV65cKf71r39pVTYpKUkkJyfr7VMWX3zxhWjbtq3Izs6u7lAMyurVq8WIESMqLNO9e3exadMm4wRkhqDDHWb7jh1FWoEodVD55rzWwHkgALAD4oCWVfX9IByG0K+0tDTh7OwsMjIyKi2bl5cnjh49qrdPWVy5ckV4eXmJ/fv3V3coBiUvL09YW1tXOAK2cuVK8cQTTxgxKvPCol+VHzVihGzr1q3079+/zHPFz9IBNm/eTJs2bXj++ecN6r+kD30ZNWoUgYGBTJs2rbhxGdR+Wci2D+qcioryCPLz8zl+/DidOnXSyX5NuEYyfBSvdF3y0ILOwDkhxAUhRB7wLfCYwYOzAMDu3bvp0qWLJkfxXorbRVJSEr169aJz585a7eOrLYZsdw0aNOCzzz7j2Wef5ebNmwa3Xx6yfRw8eJDatWtjZVX+n8zY2FhCQ0N1sl8TrpFFv/TH7DtkBQUF7Ny5k379+pV5Pjs7m7y8PGbMmMGkSZPYvHkzFy9eZOfOnQaLoTjh0hAoisLKlSs5dOgQ/fv35/Llywa1Xxay7RdTp06dcs9FRkYSFBSEj0/ZOxFURk24RjJ8HDl8eKuTtXK45AE4KIoSU+IYe8/HfIDLJV4nFb1nQQJ//PFHuTeUoG4XW7du1SyP8eqrr/LWW28ZzL+h291jjz3GiBEjaNu2Lb/88ovZ/nZKkpWVVeENpUql4ueff2bIkCE62a8J18iiX/pj9h2y6OhoGjVqVO4aKBkZGXTo0IHTp08TGxtLeHg4b7/9NrNnz9aMQJkabm5uHDhwgJ49exIcHMytW7dMNtbKOHjwIC1atCAzM7NcQcvIyGDFihU6i5mF8hFCDBBChNxztL7n9cp7PlbWfah5NkATRwhR4Qj/zZs3SUxMZMyYMWzYsIFZs2Yxffp0fvvtN+Lj440crfa8+eabbNiwgcmTJ3Px4kXS0tKqOySd6dChA9euXStXv4QQrFu3Djc3NwIDA40cXc3mgdOv6n5mip45GG+//bbo1q2bOH36dKn3U1NTxdixY0VQUJD4/vvvS81gKiwsFC1atBB79+7Vy3cxOTk5BrFTFkeOHBGhoaFiwoQJ0nzIjH/Xrl3C3d1deHh4iPXr1993fs2aNcLb21s899xzIjU1VWc/Mr+DMexr4wMdcjB0OYAwYGuJ1/8B/mMM3+Z26KtfCQkJwsbGRmzZskUUFBRo3lepVGLt2rWiXr16YsaMGSI9Pb3U59555x0xduxYvXwXI7Ntp6eni0mTJomAgACRkpIizY/M7+Dj4yOaNWsm+vfvf9+548ePi4iICNGqVSuxb98+nX2Ygr7Itm/RLy1ir/YA9BS0ixcvimnTpgkvLy/RqVMnMW7cOPHWW28Jb29vMX78+HITYEePHi0+/fRTvXwXEx8fbxA75REXFyeCgoLEunXrpNiXGf/BgwdF586dxYEDB0RmZmapc+fPnxceHh7ir7/+0tuP7DqQbV8bH0YUNBvgAtCYf5JiWxnDt7kd+upXfn6++PTTT0Xnzp1FgwYNxPDhw8Vbb70lIiIiRHBwsIiJiSmzXURGRoquXbvq5bsYY/x2Zs6cKfr376/zshDa+JBFYGCg2LVrl0hISLjvXNeuXcW7775731IfVcUU9EW2fYt+VX6Y/SPLhg0bsnjxYi5fvsyCBQto3bo1t2/fZuPGjXzyySeaxQHvJTAwkHPnzhkkhuJF+mSRmprKDz/8wNSpU6Vs4CozficnJ7KyssjNzcXJyanUucOHDxMeHq5zIn9JZNeBbPvG8qENQogCYCKwFYgHvhdC6LYEuYUKsbGx4eWXXyY6OpqdO3cycOBAcnJyGDp0KNHR0XTs2LHMdmFO+nXt2jXeeecdMjMzee+996T5kIWTkxM5OTn4+/uXer+wsJC4uDgmTpyo17ZPUDP0xaJf+mMSK/UbAltbWyIiIoiIiNCqfGBgIAcOHJAcleFo27YtCxYs4MknnyQuLk5vATAWHh4eXLlypfjOpRSxsbEEBwdXQ1QWKkMI8RvwW3XH8SDRvHlzmjdvrlVZb29vMjMzSU9Px9XVVXJk+mNjY8O3335LSEgIvXv3pkuXLtUdktZ4enpqdh8oyenTp2nQoIFZXP8HDXPVL7MfIauMli1blvl+06ZNNVtFyPJhKIrtjxw5EoCjR49KsS8Db29vgoKCypyBc+7cufvuOnXFWHVg7j4smB9ltYvirYcMoWHG+u34+PgwefJkNmzYIM2HDB5//HHNtkolMSf9MoYPi37pT43vkBUWFpb5ftOmTUlISCAvL0+aD0NRbF9RFCIiIjT7pRnaviymTJnCf//7X1JSUli7di1ZWVmAem+34n3b9MVYdWBaj8W3AAATsklEQVTuPiyYH+W1i6CgIE6dOiXNvqEoaV+Gft3rw9AMHz6c+Ph4Nm3axJ49ezT7jHbq1IlDhw5p9nfUh5qgLxb90p8a3yEr3nT1XpycnGjVqhUHDx6U5sNQlLTfs2dP9uzZI82+DJ5++mmGDx9O165dGTt2LGFhYaSnpzNgwAD++OOPMh9nVhVj1oE5+7BgfpTXLsLDww3SuTHmbyc4OJiEhARSU1Ol+TA07u7uTJo0ibFjxzJ8+HDCw8P5448/8Pb2xt/f3yALotYEfbHol/7U+A5ZRfTr14/t27dXdxhVokePHuzbt8/s7kYaNGhAeHg4+fn5eHp6YmdnR6tWrSgoKGDkyJF8+umnzJkzhz59+rBgwYJyJ2NYsGBBTbF+GeKGxljY2toSFhbG3r17qzuUKuHk5MSqVau4du0aDg4OuLm5AfDwww8zZcoU3n33XZYvX86QIUMYNWoUcXFx1RyxBXOkxnfIKlr5vW/fvmzbtk2qD0NQ0r6Xlxfe3t4G/cHLjr/Yx5w5c/D19eWPP/7AwcEBRVHYvXs3oaGhxMTEUFhYyCuvvMLJkydp0qQJEydO1DpHxph1YM4+LJgf5bWL5s2bU1BQoHcembF/O7169TL4Y0tjfIfBgwfTtWtX1q9fT+fOnQF4/fXXmT59Onfu3OHYsWMMGzaMoKAgBg0aRO/evdmyZQsqlara4zeGD4t+6U+N75D5+vqWe65r167Ex8frPXxekQ9DcK99Qz+2lB1/sY87d+6Qk5PDxo0byczM5Pjx4xw+fJgbN24wevRo5s+fz5AhQ/jyyy85fvw4tWvXpmvXrjz++OPcuXOnWr+Dsa6RBQv3Ul67UBTFIKP85q5fZfkwNMX2b9++zR9//MH169e5fPky+/btIzk5mcaNG7Ny5UqeffZZZs2axYULFxg1ahRvvPEGLVu2ZNeuXdUavzF8WPRLf2p8h6yi5/v29vZERESwatWqcssIIcjOziYrK4uMjIwypz8be9NWQ99hGmNj2wMHDpCens6rr77K4sWLqVOnDsOGDWPDhg2kpaXx+OOPs2XLFgoKCpg/fz4uLi68++67XLx4kT179lS69Yo5bpxbHT4smB8VtYuBAweyZs2aCicn5ebmkpWVRWZmJhkZGVWybwjutR8SEsLZs2cNmpZgjO8QFRXF3LlzuXjxIv7+/nTu3Jn333+fc+fO8eWXXzJmzBgKCwv56aefiImJ4dlnnyUmJobw8HD2799frfEbw4dFv/THPBazksjSpUvp0qULXbp0oXv37vedf/XVV/nwww+xs7MDoHbt2ly9etXYYZYiODiYWbNmVWsMVSUtLY2hQ4fSoUMHsrOzcXJyYtGiRTz66KMAPPXUUwwePJguXbqwY8cOLly4wBdffEF2djaFhYU0bNiwmr+BBQumxxNPPMFXX33F1KlTWbFixX3njx49SkhICLa2tlhZWZGTk8Mff/xB3759qyFaNcX5oydOnCA8PLza4qgKKpWKfv364e7ujouLC66urvTt25e1a9diZWVFRkYGjz/+OI8++ijR0dE4ODgQFxeHh4cHV69eZdCgQdX9FSyYATV+hMzZ2bnC840bN2b16tW88MILZZ6/ePEiX3/9NVlZWezcubPM5+SV+dCXe+1nZGQYdDFC2fED+Pn50b17d55//nni4+PZsWMHo0eP5tixY4B6CYwdO3aQlpZGTEwMu3fv5ssvv8TOzo569eoxYcKECpOXjV0H5urDgvlRUbuwsrJi3bp1bNmyhX379t13/vLlywwYMIDs7GwyMzNp3LjxfY+WquO3Y24a5urqyuLFi/H09OTIkSMkJCRw6dIl3njjDY3/X3/9FQ8PD5YsWcLw4cMZNWoUWVlZtGzZkjlz5nDhwoVqi98YPiz6ZQCqe+8m9NwLzhAkJSWJ+vXrl3nuoYceEtu3bxdCCPHJJ5+I0aNHGzO0Mtm+fbt46KGHqjuMKnP27Fnh4eEhTp8+LVQqlQgMDBQxMTFllj1y5IgIDAwUQ4cOFSdOnBA2Njbi9u3bRo7YtMBIe8FZDvPSLyGEiIiI0OhUSdasWSNeeOEFIYQQaWlpwsnJqdQm5tVF/fr1xZUrV6o7jCqhUqlEnz59xPz584UQQrz99tti8uTJZZbNzs4WzzzzjAgICBBbt24VQ4YMEcuWLTNmuCaHRb8qP2r8CJk2C4/eunULd3f3Ms+lpqZqpjifP3+eH374gQYNGuDh4UFAQAArVqyoND9AX+79Djdv3sTDw0OafRlERUXRtGlT5s+fz+OPP86hQ4fIzs4ud+uk9u3bc+zYMVq0aEHXrl3x9vbmjTfeYPr06fznP/9h7ty5pfbyk/0djHWNLFi4F300rKR+JSQkkJubS6NGjahXrx7u7u6MGTOm0oRzfbk3fiFEhZprCB+GJioqCkVRWLVqFUuXLmXXrl1s3ryZxx57rMzyDg4OfPPNN6xYsYJx48bx22+/8ddffzF16lRmzpzJnDlz2LRpk9HiN4YPi37pT43vkJWVhH8vFYnDzZs3NYL29ttvExcXx6FDh4iPj2fDhg38/vvvxMbGsnLlSvLz8w0aezH3fgdDd8i0uUaG8vHSSy/Rs2dP+vXrx+DBg1EUpdzPODg4MG/ePPbv38+rr77KZ599xp07d3BxceH69esMHjyYzMxMo3wHY14jCxZKoo+GldSvtm3bcv78eaKiovj777+Ji4vD09OTY8eOMWHCBK5cuWLw2OH++O/evYuDgwP29vbSfBiaYvsNGzbku+++4+mnn+bChQuV5sA9/PDDHD9+nOXLlxMfH09kZCR169bFxsaGCRMmaCZn1QR9seiX/jzwSf2gFrNi0SrJ6dOnKSws1ORcODk5ldq7zNPTky1btrBlyxbef/99jh49yieffCI93ps3bxr07tKYKIrC8uXLyc7OZsSIEVp9plWrVrRq1QpHR0cWLVrEBx98gKurK4MHD+azzz5j6tSpkqO2YMG0KU/DduzYwbx58wD1b69Ro0alzs+fP58dO3aQlJREp06dOHv2LLVq1ZIaqznrF6hnuX/00UecOXMGW1vbSsvXqlWLMWPGMGDAAEJDQwkODqZfv3506NCBl19+mfj4eCNEbcEcUNSPdqsxAEURu3fvBiAgIAAXFxfNoqfu7u60atVKs7GrjY0N4eHhxMbGkp6eDqinUBevCQMQGBiIvb29Zr8xDw8Pmjdvrkl4tbe3JywsjJiYGM0UcFdXV5YuXcqIESOwtramWbNmWFtba1bBDgkJoXHjxpohWUdHR0JDQ4mOjtZsmt2sWTNee+01/vWvf2Fra0vLli0pLCzUbCfh4+ODr6+vZmqws7MzISEhREVFae4swsPDOXPmDCkpKQC0bt2a3NxczcKPfn5+eHl5sWnTJuzt7WnatCnBwcHs27dPs59ajx49OHHiBLdu3QKgXbt23L17V5NQ6u/vj5ubG7GxsQDUrVuXVq1asX//foQQKIpCz549iYuL00xLDw4OJjU1lcTERJ3rqUOHDty8efO+eoqLi+PcuXN4enryyCOPcODAgXLrKTQ0lOXLl+Pu7k6TJk3Iyclh/fr1vPTSSwDUr1+/0noKCwsjISGBa9euAWhdTwcOHNAsLaBtPcXExGjalzb1lJaWprnGZdVT+/btEUKUP6RowejI1q969eoREBCg2eKtvN/FjBkz6N27N3Xr1tXoV2xsLGfOnKFv374EBARU+rtYsGABzZo1w8vLS6p+/fnnn1y8eFHTOdFXv9q1a8eePXuqRb+OHz/O5cuXycjI4Mknn9TUW3n1tHfvXuLj42nRogVt2rTRrFtmZ2cnVb90qSeLflUD1Z3EhuSk2BMnTmhVbuTIkWLGjBma1wUFBcLX11ccO3ZMax8zZswQEydO1C1QLewLIURiYqJo1qyZ2LRpkxT7sijPR0FBgahXr57w8fERbdu2FSNGjBAjRowQixYtKlUuMzNTREVFicTERKEoilCpVCIzM1PUqlVLZGRkSP8O1XmNisGSFGtyh2z9EkK7trdr1y7h7+8vsrOzNe/NnDmzlKZVZv/o0aOifv36IisrS/dgK7AvhBD5+fliwoQJ4oknnpDmQwYV2Z8yZYrw8vIS7u7u4tlnnxUjRowQo0ePFjdv3ixV7siRI+Ls2bNiyJAhYv369UIIIZ555hmxatUqk9AX2fYt+lX5UeNzyIrvAipjypQprFmzRvM6MjISDw8P2rRpo7WPadOm8fXXXxt8nbJi+zt27CA0NJQxY8aUm0yqj31DIoRg5syZmmtRng9ra2vCwsJYtGgRixYtolevXvj7+/P1119ryhQWFvLLL7/Qo0cPOnbsiBCCVatWkZubS4cOHThw4ICU71AS2faN5cOC+aFNu4iIiKB27dqanKTCwkLWr19f7nI+Zdlv164doaGhfP7553rFW579Gzdu0L9/f86ePcvKlSul+DAkW7Zs4dtvv63UfkREBG3atOHgwYP07t2bXr168dtvv5X6O3D9+nX69etHt27d2LRpE59++iknTpzQLPJdE/TFol/6U+M7ZNry+++/axYpBfjyyy+1znEqxsvLixEjRjB79mxDh8fChQt5/vnn+eabb5g2bVqFyfCmwPbt21m4cKHWe4Xa29vTr18/XnzxRRwdHfHw8CgegWD69OmsW7cOe3t7kpOTee+995gzZw7+/v7Ex8dT/MjIgoUHlcuXL3P58mXN4ta7du3Cy8uL1q1bV8nOnDlzeP/997lx44ZB44uOjiYkJITQ0FB+//13k88hy8nJYfz48XzxxReVls3Ly8PZ2ZmmTZsycuRIQkNDycrKwt3dHSEEUVFR+Pn50blzZ5YuXcqVK1c4ePAgAwYM4M0337Tol4V/qO4hOiQP+d+4caPSMoWFhaJJkybi4MGDQggh7t69K2rXri2uXbtWZR/p6emiefPmYtWqVboFfA87duwQjz76qOjRo4e4dOmSQWzeizbXqCqoVCrRsWNH0aNHD/Hyyy9X6qNdu3YiJiZGFBYWirlz5woXFxfRoEEDYWtrK1566SUBiNGjR4vQ0FDRp08fMXHiRDFgwACRlpYm1q1bJ3bu3Gnw73Avsu1r4wPLkL/JHbL1Swjt2t7cuXPFK6+8onn97LPPiqVLl+pkf9asWaJ3794GWa/sypUrYtq0acLLy0ts3LhRb3vlYejf54cffii6d+8uXF1dRUFBQYX2Fy9erFmPLCoqStSuXVt4e3sLFxcXMWDAAOHr6yvs7OzE8uXLRUBAgJg3b55wcXERycnJYu/eveKjjz4yCX2Rbd+iX1roSbUHIFnQkpKSKi0TGxsrmjZtKlQqlRBCiLVr14pBgwbp7OPkyZPCw8NDPPvss+L9998Xv/76q0hNTa1S3PHx8eKRRx4RAQEBYuPGjZrYZKDNNaoKP/zwgwgODhZ79+4V7du3r9RHWFiYmDJlimjevLno2rWrsLe3F2fOnBHe3t7Czs5OPPLII2LOnDkiJSVFjBo1SkycOFHUrVu3VAfV0N/hXmTb18aHRdBM7zBGh0ybtteqVSsRFRUlhFDfFLq6uorr16/rZD8/P1/07t1bdO/eXcyaNUusX79enDp1qkoxZ2RkiDfffFO4ubmJRYsWibS0tCp9vqoY8veZnp4uvLy8xLFjx0Tjxo3F33//XaH9Tz75RPTt21c88cQTwtPTU/Ts2VMsXLhQTJo0SQBi2LBhwt/fXxQUFIgff/xRNGjQQIwcOVIsWLBASvzlUd0aadGvyo8a/8iyeOZIRdSuXZu8vDzNY8B169ZV6XHlvT5atGhBVFQUvXv3JiUlhaVLl9K6dWutNgQXQvD666/TvXt3IiIiOHnyJG5ublIfUWpzjbTl7t27vPbaa0yYMIHJkyfTrVu3Sn00+//27pilkSAOw/hDFAtJG4NbHWZBCQiCdsIGQVZLQyDBVNaKAUG0USL4DSTYKnG1E2JtF2xSBEKKYCEEq5hCSCxlZa+Q85DzLndqXOO9v26L+e/MwgxvMTM7Okq1WiWXy5HL5TBNk4GBARqNBnt7ewwPD2MYBqFQiMnJSdrtNuPj4ziO05UxvKTb9T/qHdJ7/mUNAzg9PSUWizE0NPSq+v39/RQKBdbW1hgcHOTs7AzLstja2uLh4aFjvWKxyNjYGJeXl5TLZaampt71N0kvec+5s7u7y8zMDEdHRwQCAcLh8B/rRyIRrq6usCyLer3O7e0ts7OzVCoVYrEYKysrGIZBX18ftm3TarWYmJjg8PCwK/3/na+wRn51uoeMx2O+Nzc33N/f02w2qVQqz/aTvYZpmpim+fR8fn7O4uIimUyGzc1NAoFfs7Dneayvr1MsFqnVaoRCoTf14aO5rksymSQYDJLNZlldXWVjY6Njux+HKVzXZWFhgfn5eTzPY2dnB8Mw2N7eJpPJAI9H1B3HIR6PE4/HuzoekV4xMjJCvV7Hsizy+TzLy8tvqhcMBp/NsWazSTqdxrZtTk5OCIfDL7a7uLggkUjgOA5zc3MAT1ch9IJ8Ps/BwQGRSIRGo0GpVOq438227adrOY6Pj7m7uyMajTI9PU0qlWJpaYlEIgE8flfXddnf3yebzXZ9PNJbPsU9ZL52QKR3XHue983vTshPWr9E/prWrw58D2QiIiIi/7svv4dMRERE5LNTIBMRERHxmQKZiIiIiM8UyERERER8pkAmIiIi4jMFMhERERGfKZCJiIiI+EyBTERERMRnCmQiIiIiPvsOMh9BXBy4sS8AAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 720x288 with 4 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, axes = plt.subplots(1, 2, figsize=[10, 4], subplot_kw={'projection': ccrs.PlateCarree()})\n",
"\n",
"\n",
"dr_conserve_noremd.isel(time=8).plot(ax=axes[0], cmap=WhGrYlRd, \n",
" cbar_kwargs={'shrink': 0.5, 'label': 'mol/mol'})\n",
"axes[0].set_title('Conservative regridding, re-normalization')\n",
"\n",
"\n",
"dr_conserve_zeroed.isel(time=8).plot(ax=axes[1], cmap=WhGrYlRd, \n",
" cbar_kwargs={'shrink': 0.5, 'label': 'mol/mol'})\n",
"axes[1].set_title('Conservative regridding, re-normalization, set 0 to NaN')\n",
"\n",
"for ax in axes:\n",
" ax.coastlines()\n",
" ax.gridlines(linestyle='--')\n",
" ax.set_xlim(90, 140)\n",
" ax.set_ylim(10, 50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment