Chargement des données

parent 0cdcc686
......@@ -15,7 +15,7 @@
"\n",
"L'étude initiale devait étudier les variations saisonnière de la concentration, mais avec le réchauffement climatique, elle se tourne maintenant sur la croissance de la concentration.\n",
"\n",
"A partir des données jounalière disponible sur le [site Web de l'institut Scripps](https://scrippsco2.ucsd.edu/data/atmospheric_co2/primary_mlo_co2_record.html), nous souhaitons reproduire l'analyse de l'évolution de la concentration de C02 dans l'atmosphère pour faire un modèle prédictif."
"A partir des données hebdomadaires disponible sur le [site Web de l'institut Scripps](https://scrippsco2.ucsd.edu/data/atmospheric_co2/primary_mlo_co2_record.html), nous souhaitons reproduire l'analyse de l'évolution de la concentration de C02 dans l'atmosphère pour faire un modèle prédictif."
]
},
{
......@@ -25,9 +25,16 @@
"## Environnement de travail"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous définions quelques fonctions pour faciliter l'affichage des numéros de version associés à notre système et à nos modules. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 7,
"metadata": {
"hidePrompt": false
},
......@@ -48,6 +55,728 @@
" print(\"\\t\",platform.uname())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous utilisons les modules usuels en traitement des données sous le langage python3 à la date du *6 Avril 2020* : numpy, pandas, seaborn, matplotlib, statsmodels, ... "
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import statsmodels.api as sm\n",
"import seaborn as sns\n",
"import isoweek"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Ci-aprés un aperçu de notre environnement d'execution pour les personnes qui souhaiteraient reproduire ces travaux sur leur machine."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"System Info\n",
"\t 3.6.4 |Anaconda, Inc.| (default, Mar 13 2018, 01:15:57) \n",
"[GCC 7.2.0]\n",
"\t uname_result(system='Linux', node='c17990f19315', release='4.4.0-164-generic', version='#192-Ubuntu SMP Fri Sep 13 12:02:50 UTC 2019', machine='x86_64', processor='x86_64')\n",
"Imported modules\n",
"\t IPython 7.12.0\n",
"\t IPython.core.release 7.12.0\n",
"\t PIL 7.0.0\n",
"\t PIL.Image 7.0.0\n",
"\t PIL._version 7.0.0\n",
"\t _csv 1.0\n",
"\t _ctypes 1.1.0\n",
"\t _curses b'2.2'\n",
"\t decimal 1.70\n",
"\t argparse 1.1\n",
"\t backcall 0.1.0\n",
"\t cffi 1.13.2\n",
"\t csv 1.0\n",
"\t ctypes 1.1.0\n",
"\t cycler 0.10.0\n",
"\t dateutil 2.8.1\n",
"\t decimal 1.70\n",
"\t decorator 4.4.1\n",
"\t distutils 3.6.4\n",
"\t ipaddress 1.0\n",
"\t ipykernel 5.1.4\n",
"\t ipykernel._version 5.1.4\n",
"\t ipython_genutils 0.2.0\n",
"\t ipython_genutils._version 0.2.0\n",
"\t ipywidgets 7.2.1\n",
"\t ipywidgets._version 7.2.1\n",
"\t jedi 0.16.0\n",
"\t json 2.0.9\n",
"\t jupyter_client 6.0.0\n",
"\t jupyter_client._version 6.0.0\n",
"\t jupyter_core 4.6.3\n",
"\t jupyter_core.version 4.6.3\n",
"\t kiwisolver 1.1.0\n",
"\t logging 0.5.1.2\n",
"\t matplotlib 2.2.3\n",
"\t matplotlib.backends.backend_agg 2.2.3\n",
"\t numpy 1.15.2\n",
"\t numpy.core 1.15.2\n",
"\t numpy.core.multiarray 3.1\n",
"\t numpy.lib 1.15.2\n",
"\t numpy.linalg._umath_linalg b'0.1.5'\n",
"\t numpy.matlib 1.15.2\n",
"\t optparse 1.5.3\n",
"\t pandas 0.22.0\n",
"\t _libjson 1.33\n",
"\t parso 0.6.0\n",
"\t patsy 0.5.1\n",
"\t patsy.version 0.5.1\n",
"\t pexpect 4.8.0\n",
"\t pickleshare 0.7.5\n",
"\t platform 1.0.8\n",
"\t prompt_toolkit 3.0.3\n",
"\t ptyprocess 0.6.0\n",
"\t pygments 2.5.2\n",
"\t pyparsing 2.4.6\n",
"\t pytz 2019.3\n",
"\t re 2.2.1\n",
"\t scipy 1.1.0\n",
"\t scipy._lib.decorator 4.0.5\n",
"\t scipy._lib.six 1.2.0\n",
"\t scipy.fftpack._fftpack b'$Revision: $'\n",
"\t scipy.fftpack.convolve b'$Revision: $'\n",
"\t scipy.integrate._dop b'$Revision: $'\n",
"\t scipy.integrate._ode $Id$\n",
"\t scipy.integrate._odepack 1.9 \n",
"\t scipy.integrate._quadpack 1.13 \n",
"\t scipy.integrate.lsoda b'$Revision: $'\n",
"\t scipy.integrate.vode b'$Revision: $'\n",
"\t scipy.interpolate._fitpack 1.7 \n",
"\t scipy.interpolate.dfitpack b'$Revision: $'\n",
"\t scipy.linalg 0.4.9\n",
"\t scipy.linalg._fblas b'$Revision: $'\n",
"\t scipy.linalg._flapack b'$Revision: $'\n",
"\t scipy.linalg._flinalg b'$Revision: $'\n",
"\t scipy.ndimage 2.0\n",
"\t scipy.optimize._cobyla b'$Revision: $'\n",
"\t scipy.optimize._lbfgsb b'$Revision: $'\n",
"\t scipy.optimize._minpack 1.10 \n",
"\t scipy.optimize._nnls b'$Revision: $'\n",
"\t scipy.optimize._slsqp b'$Revision: $'\n",
"\t scipy.optimize.minpack2 b'$Revision: $'\n",
"\t scipy.signal.spline 0.2\n",
"\t scipy.sparse.linalg.eigen.arpack._arpack b'$Revision: $'\n",
"\t scipy.sparse.linalg.isolve._iterative b'$Revision: $'\n",
"\t scipy.special.specfun b'$Revision: $'\n",
"\t scipy.stats.mvn b'$Revision: $'\n",
"\t scipy.stats.statlib b'$Revision: $'\n",
"\t seaborn 0.8.1\n",
"\t seaborn.external.husl 2.1.0\n",
"\t seaborn.external.six 1.10.0\n",
"\t six 1.14.0\n",
"\t statsmodels 0.9.0\n",
"\t statsmodels.__init__ 0.9.0\n",
"\t traitlets 4.3.3\n",
"\t traitlets._version 4.3.3\n",
"\t urllib.request 3.6\n",
"\t zlib 1.0\n",
"\t zmq 17.1.2\n",
"\t zmq.sugar 17.1.2\n",
"\t zmq.sugar.version 17.1.2\n"
]
}
],
"source": [
"print_sys_info()\n",
"print_imported_modules()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Chargement et inspection des données"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous avons récupérer les données hebdomadaire le *6 Avril 2020* depuis le lien suivant : [https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/weekly/weekly_in_situ_co2_mlo.csv](https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/weekly/weekly_in_situ_co2_mlo.csv)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"filename = \"./weekly_in_situ_co2_mlo.csv\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous affichons les premières lignes du fichier pour repérer d'éventuelle lignes à ignorer."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ligne 0 : \"-------------------------------------------------------------------------------------------\"\n",
"Ligne 1 : \" Atmospheric CO2 concentrations (ppm) derived from in situ air measurements \"\n",
"Ligne 2 : \" at Mauna Loa, Observatory, Hawaii: Latitude 19.5°N Longitude 155.6°W Elevation 3397m \"\n",
"Ligne 3 : \" \"\n",
"Ligne 4 : \" Source: R. F. Keeling, S. J. Walker, S. C. Piper and A. F. Bollenbacher \"\n"
]
}
],
"source": [
"def head(filename,n):\n",
" with open(filename,\"r\") as f:\n",
" lignes = f.readlines()\n",
" n = min(n,len(lignes))\n",
" for i,ligne in enumerate(lignes[:n]):\n",
" print(\"Ligne\",i,\":\",ligne,end=\"\")\n",
"head(filename,5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Le fichier semble être correctement formaté :\n",
"* Les lignes de commentaire/metadonnée commencent par \"\n",
"* Les données ne commencent pas par \"\n",
"\n",
"Trouvons donc la première ligne de données."
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"44"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def find_num_first_dataline(filename):\n",
" with open(filename,\"r\") as f:\n",
" lignes = f.readlines()\n",
" for i,ligne in enumerate(lignes):\n",
" if ligne[0] != '\"':\n",
" return i\n",
" raise Exception(\"No dataline found\")\n",
"find_num_first_dataline(filename)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Aprés une inspection visuelle, nous avons aussi trouvé que les données commence ligne 44.\n",
"Lors de cette inspection, nous avons pu relever les informations suivantes :\n",
"1. La première colonne correspond aux dates d'acquisition\n",
"2. Les données sont centrées sur 12h00 chaque jour\n",
"3. La seconde colonne correspond aux concentrations mesurées\n",
"4. La concentration est la concentration moyenne de C02 dans l'atomosphère de la journée"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>Concentration</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1958-03-29</td>\n",
" <td>316.19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1958-04-05</td>\n",
" <td>317.31</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1958-04-12</td>\n",
" <td>317.69</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1958-04-19</td>\n",
" <td>317.58</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1958-04-26</td>\n",
" <td>316.48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1958-05-03</td>\n",
" <td>316.95</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1958-05-17</td>\n",
" <td>317.56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1958-05-24</td>\n",
" <td>317.99</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1958-07-05</td>\n",
" <td>315.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1958-07-12</td>\n",
" <td>315.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1958-07-19</td>\n",
" <td>315.46</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>1958-07-26</td>\n",
" <td>315.59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>1958-08-02</td>\n",
" <td>315.64</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>1958-08-09</td>\n",
" <td>315.10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>1958-08-16</td>\n",
" <td>315.09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>1958-08-30</td>\n",
" <td>314.14</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>1958-09-06</td>\n",
" <td>313.54</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>1958-11-08</td>\n",
" <td>313.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>1958-11-15</td>\n",
" <td>313.26</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>1958-11-22</td>\n",
" <td>313.57</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>1958-11-29</td>\n",
" <td>314.01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>1958-12-06</td>\n",
" <td>314.56</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>1958-12-13</td>\n",
" <td>314.41</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>1958-12-20</td>\n",
" <td>314.77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>1958-12-27</td>\n",
" <td>315.21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>1959-01-03</td>\n",
" <td>315.24</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>1959-01-10</td>\n",
" <td>315.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>1959-01-17</td>\n",
" <td>315.69</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>1959-01-24</td>\n",
" <td>315.86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>1959-01-31</td>\n",
" <td>315.42</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3126</th>\n",
" <td>2019-07-06</td>\n",
" <td>412.69</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3127</th>\n",
" <td>2019-07-13</td>\n",
" <td>412.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3128</th>\n",
" <td>2019-07-20</td>\n",
" <td>411.76</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3129</th>\n",
" <td>2019-07-27</td>\n",
" <td>410.32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3130</th>\n",
" <td>2019-08-03</td>\n",
" <td>410.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3131</th>\n",
" <td>2019-08-10</td>\n",
" <td>410.48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3132</th>\n",
" <td>2019-08-17</td>\n",
" <td>410.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3133</th>\n",
" <td>2019-08-24</td>\n",
" <td>409.52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3134</th>\n",
" <td>2019-08-31</td>\n",
" <td>409.32</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3135</th>\n",
" <td>2019-09-07</td>\n",
" <td>408.80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3136</th>\n",
" <td>2019-09-14</td>\n",
" <td>408.61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3137</th>\n",
" <td>2019-09-21</td>\n",
" <td>408.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3138</th>\n",
" <td>2019-09-28</td>\n",
" <td>408.28</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3139</th>\n",
" <td>2019-10-05</td>\n",
" <td>407.99</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3140</th>\n",
" <td>2019-10-12</td>\n",
" <td>408.61</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3141</th>\n",
" <td>2019-10-19</td>\n",
" <td>408.77</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3142</th>\n",
" <td>2019-10-26</td>\n",
" <td>408.68</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3143</th>\n",
" <td>2019-11-02</td>\n",
" <td>409.86</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3144</th>\n",
" <td>2019-11-09</td>\n",
" <td>410.15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3145</th>\n",
" <td>2019-11-16</td>\n",
" <td>410.22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3146</th>\n",
" <td>2019-11-23</td>\n",
" <td>410.48</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3147</th>\n",
" <td>2019-11-30</td>\n",
" <td>410.92</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3148</th>\n",
" <td>2019-12-07</td>\n",
" <td>411.27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3149</th>\n",
" <td>2019-12-14</td>\n",
" <td>411.67</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3150</th>\n",
" <td>2019-12-21</td>\n",
" <td>412.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3151</th>\n",
" <td>2019-12-28</td>\n",
" <td>412.59</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3152</th>\n",
" <td>2020-01-04</td>\n",
" <td>413.19</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3153</th>\n",
" <td>2020-01-11</td>\n",
" <td>413.39</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3154</th>\n",
" <td>2020-01-25</td>\n",
" <td>413.36</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3155</th>\n",
" <td>2020-02-01</td>\n",
" <td>413.99</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3156 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" Date Concentration\n",
"0 1958-03-29 316.19\n",
"1 1958-04-05 317.31\n",
"2 1958-04-12 317.69\n",
"3 1958-04-19 317.58\n",
"4 1958-04-26 316.48\n",
"5 1958-05-03 316.95\n",
"6 1958-05-17 317.56\n",
"7 1958-05-24 317.99\n",
"8 1958-07-05 315.85\n",
"9 1958-07-12 315.85\n",
"10 1958-07-19 315.46\n",
"11 1958-07-26 315.59\n",
"12 1958-08-02 315.64\n",
"13 1958-08-09 315.10\n",
"14 1958-08-16 315.09\n",
"15 1958-08-30 314.14\n",
"16 1958-09-06 313.54\n",
"17 1958-11-08 313.05\n",
"18 1958-11-15 313.26\n",
"19 1958-11-22 313.57\n",
"20 1958-11-29 314.01\n",
"21 1958-12-06 314.56\n",
"22 1958-12-13 314.41\n",
"23 1958-12-20 314.77\n",
"24 1958-12-27 315.21\n",
"25 1959-01-03 315.24\n",
"26 1959-01-10 315.50\n",
"27 1959-01-17 315.69\n",
"28 1959-01-24 315.86\n",
"29 1959-01-31 315.42\n",
"... ... ...\n",
"3126 2019-07-06 412.69\n",
"3127 2019-07-13 412.30\n",
"3128 2019-07-20 411.76\n",
"3129 2019-07-27 410.32\n",
"3130 2019-08-03 410.50\n",
"3131 2019-08-10 410.48\n",
"3132 2019-08-17 410.05\n",
"3133 2019-08-24 409.52\n",
"3134 2019-08-31 409.32\n",
"3135 2019-09-07 408.80\n",
"3136 2019-09-14 408.61\n",
"3137 2019-09-21 408.50\n",
"3138 2019-09-28 408.28\n",
"3139 2019-10-05 407.99\n",
"3140 2019-10-12 408.61\n",
"3141 2019-10-19 408.77\n",
"3142 2019-10-26 408.68\n",
"3143 2019-11-02 409.86\n",
"3144 2019-11-09 410.15\n",
"3145 2019-11-16 410.22\n",
"3146 2019-11-23 410.48\n",
"3147 2019-11-30 410.92\n",
"3148 2019-12-07 411.27\n",
"3149 2019-12-14 411.67\n",
"3150 2019-12-21 412.30\n",
"3151 2019-12-28 412.59\n",
"3152 2020-01-04 413.19\n",
"3153 2020-01-11 413.39\n",
"3154 2020-01-25 413.36\n",
"3155 2020-02-01 413.99\n",
"\n",
"[3156 rows x 2 columns]"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = pd.read_csv(filename,skiprows=44,header=None,names=[\"Date\",\"Concentration\"])\n",
"data"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous y somme presque. Il ne reste plus qu'à convertir les dates en Period Pandas."
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fe7cfb8eef0>"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEKCAYAAAAcgp5RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd81eXZ+PHPlb13AgkJhL2nLEUFF+7V2hbFam0tj9WndjyPA/XXVluttX2stXaptepTH0etey9QQbayZ4AAIYEMyN7J/fvjO873QIAAWefker9evPiuc/K9CbnOnft73dctxhiUUkoFr5DuvgGllFKdSwO9UkoFOQ30SikV5DTQK6VUkNNAr5RSQU4DvVJKBbl2B3oRCRWRr0TkLXv/tyKyWUTWisirIpLkuXa+iOSJyBYROb8zblwppVT7HE+P/kfAJs/+h8AYY8w4YCswH0BERgFzgNHABcCfRSS0Y25XKaXU8WpXoBeRbOBi4EnnmDHmA2NMs727FMi2ty8HXjDGNBhjdgJ5wNSOu2WllFLHI6yd1z0C3A7EH+H8d4EX7e1+WIHfUWAfO6K0tDSTm5vbzltRSikFsGrVqlJjTPqxrjtmoBeRS4BiY8wqEZnVxvm7gWbgOedQG29zWJ0FEZkHzAPo378/K1euPNatKKWU8hCRXe25rj1DNzOAy0QkH3gBOFtE/ml/keuBS4C5xlc0pwDI8bw+Gyg89E2NMY8bYyYbYyanpx/zA0kppdQJOmagN8bMN8ZkG2NysR6yfmKMuVZELgDuAC4zxtR6XvIGMEdEIkVkIDAUWN4J966UUqod2jtG35bHgEjgQxEBWGqMuckYs0FEXgI2Yg3p3GKMaTn5W1VKKXUijivQG2MWAgvt7SFHue5+4P6TubGmpiYKCgqor68/mbdRnSwqKors7GzCw8O7+1aUUkdwMj36TlVQUEB8fDy5ubnYvzGoHsYYQ1lZGQUFBQwcOLC7b0cpdQQ9tgRCfX09qampGuR7MBEhNTVVf+tSqofrsYEe0CAfAPR7pFTP16MDvVJKBZO6xhZeWrmHrl7CVQP9Mezbt485c+YwePBgRo0axUUXXcTWrVu77X4eeeQRamtrj33hIZ5++mkKC33TGW688UY2btzYkbemlDqG37y3mdtfXsuCLcVd+nU10B+FMYYrr7ySWbNmsX37djZu3MgDDzzA/v37u+2ejhboW1qOnMV6aKB/8sknGTVqVIffn1LqyFbtOgjAr96y6kO+uaaQL7aXdvrX1UB/FAsWLCA8PJybbrrJPTZhwgROP/10brvtNsaMGcPYsWN58UWrzM/ChQuZNWsWV111FSNGjGDu3Lnur2grVqzgtNNOY/z48UydOpWqqipaWlq47bbbmDJlCuPGjeNvf/vbUd/n0UcfpbCwkLPOOouzzjoLgLi4OH72s58xbdo0lixZwn333ceUKVMYM2YM8+bNwxjDyy+/zMqVK5k7dy4TJkygrq6OWbNmuWUnnn/+ecaOHcuYMWO444473LbGxcVx9913M378eKZPn96tH3BKBYOM+EgABqXHAfDTl1bzwvI9nf51e2x6pde9b25gY2Flh77nqKwEfn7p6KNes379ek455ZTDjr/yyiusXr2aNWvWUFpaypQpUzjzzDMB+Oqrr9iwYQNZWVnMmDGDxYsXM3XqVL71rW/x4osvMmXKFCorK4mOjubvf/87iYmJrFixgoaGBmbMmMHs2bOP+D633norDz/8MAsWLCAtLQ2AmpoaxowZw3333We1a9QofvaznwHw7W9/m7feeourrrqKxx57jN/97ndMnjzZry2FhYXccccdrFq1iuTkZGbPns1rr73GFVdcQU1NDdOnT+f+++/n9ttv54knnuCee+45uX94pXqxzfuqAGhobmF/ZT1NLYaw0M5PaNAe/QlYtGgRV199NaGhofTp04eZM2eyYsUKAKZOnUp2djYhISFMmDCB/Px8tmzZQmZmJlOmTAEgISGBsLAwPvjgA5599lkmTJjAtGnTKCsrY9u2bUd8n7aEhoby9a9/3d1fsGAB06ZNY+zYsXzyySds2LDhqG1ZsWIFs2bNIj09nbCwMObOnctnn30GQEREBJdccgkAp5xyyhHvQSl1bEt3lLG3vA6AiromdpbWAHDeyD6d/rUDokd/rJ53Zxk9ejQvv/zyYceP9sQ8MjLS3Q4NDaW5uRljTJtpiMYY/vjHP3L++f6LcC1cuLDN92lLVFQUoaHWui719fXcfPPNrFy5kpycHH7xi18cM8f9aG0JDw937/to96CUaltFbRMJ0WGICHMe91Vvr6hrotAO+sP7Hqn6e8fRHv1RnH322TQ0NPDEE0+4x1asWEFycjIvvvgiLS0tlJSU8NlnnzF16pHXVhkxYgSFhYVur7+qqorm5mbOP/98/vKXv9DU1ATA1q1bqampOeo9xcfHU1VV1eY5J6inpaVRXV3t9yF1pNdNmzaNTz/9lNLSUlpaWnj++eeZOXPmUe9BKXVs76wrYvx9H/DE5zsOO1dZ10RRhfXzmpkY3en3EhA9+u4iIrz66qv8+Mc/5sEHHyQqKorc3FweeeQRqqurGT9+PCLCQw89RN++fdm8eXOb7xMREcGLL77ID3/4Q+rq6oiOjuajjz7ixhtvJD8/n0mTJmGMIT09nddee+2o9zRv3jwuvPBCMjMzWbBggd+5pKQkvv/97zN27Fhyc3PdoSKA73znO9x0001ER0ezZMkS93hmZia//vWvOeusszDGcNFFF3H55ZefxL+aUgrg5ue+BOCZL3Yx78zBfucq65spOFhHckw40RGdv9KqdHXiflsmT55sDl14ZNOmTYwcObKb7kgdD/1eKXW43Dvfdrd3/voiBs5/x+/8iL7xRIaH8votM074a4jIKmPM5GNdp0M3Sil1kjYWVpJ759tHnAi1vcQ3JPv9M6wCgJv3VZGbGtMl96eBXimlTtJFj34OwBOfWePxRRV17rnQEOH/lu1293987jB3e7CdT9/ZenSg7wnDSuro9HuklE9Ng5WZ9tEm/579U4t3AnDHBSOIjfQ9Gk2O6Zp1HHpsoI+KiqKsrEwDSQ/m1KOPiorq7ltRqss8v3w3t9gPWg8VGWY9WN1eXO0ea2n1xbCbZg7yu76msWsW3+uxWTfZ2dkUFBRQUlLS3beijsJZYUqp3mL+K+sA+MHeCsb0SyTPE9SdCVFPf5EPwANXjuWuV9e55515KWlxkZRWNzB7VOdPloIeHOjDw8N11SKlVI91yR8Xkf/gxfz7ywL32P7KeuqbfL30/im+h63fOMXXIfrnjVN5aUUBuamxXXKvPXboRimleqIZQ1IBiAq3wmdUmC8PvrnV8M66IgBumJHLAE9WTZ8E3xDniL4J/OzSUYSEdM3CPRrolVLqODiPDbPsGa2LDykz/NOX1gBw7sg+ZCf7Zr1mJnXfsywN9EopdRy+2F4GQEF5HcYYlu88AMDD3xzvd92A1Bi/GldZXVDq4Eg00Cul1AlobG6lzh6Pj4kI5fzRff3OZydbwzbO6Iy3d9/VeuzDWKWU6mleX73Xb3/3AWu1t9vPH05sZBhxkWFUNzQzLjvRvebtW8/g3fX7GJLRNZOj2qI9eqWUOgJjDH9akEe+XTv+Ry+s9jv/2Cd5AAyws2fS4iIASIjyTYQamZnAT88b1map8q6igV4ppY7guWW7+e37W/jRi6vbPP/WWivDZphdUz4x2grw3dl7b4sGeqWUOoJ7XlsPwJo95X7H50zJ8dvvl2SNv++yh3LG9kukJ9FAr5RSRzA6KwHALx8e4PYLRrjb3lT4OrukQUJ019SwaS8N9EopZXvy8x0s2ubLix/exxqSKa1qYH+lb1nOlNgIBqZZ4/JXTOjnHn/pP04lNzWGqbkpXXTH7aOBXimlgKaWVn719iau/fsy99grX1lZNjWNLSzYbFWkdMbhnQev/T29/fE5SSy87SwSu6gqZXu1O9CLSKiIfCUib9n7KSLyoYhss/9O9lw7X0TyRGSLiJx/5HdVSqme4U8L8txtY8xhlXOdRUX+PHcSANvsYmbp8ZFddIcn7nh69D8CNnn27wQ+NsYMBT629xGRUcAcYDRwAfBnEen8RRGVUuokPPLRNne7sr6Zaru2vOP9DfsBX48+Pc4K8CHdmDbZXu0K9CKSDVwMPOk5fDnwjL39DHCF5/gLxpgGY8xOIA+Y2jG3q5RSHeNfK/fw2ld72zxXWt3AB3ZgP3NYut8558Hs6/85g1vPGcqVE/sd9vqepr09+keA24FWz7E+xpgiAPvvDPt4P2CP57oC+5gfEZknIitFZKXWnFdKdbXbXl7Lj4+QH19a1cB//csqTvbfs4f5nYu3J0PFRITx0/OGERXe8wcsjhnoReQSoNgYs6qd79nW7zGHLRNljHncGDPZGDM5PT29jZcopVTnKK6qP+r50upGd3toRry7PaZfQqfdU2dqT49+BnCZiOQDLwBni8g/gf0ikglg/+0sklgAeGcTZAOFHXbHSil1koorG9xtZ6GQ5JhwLhprFSbbUFgBwFnD0wkL9fVdD9Y0deFddpxjBnpjzHxjTLYxJhfrIesnxphrgTeA6+3Lrgdet7ffAOaISKSIDASGAss7/M6VUuoE/eiFr9ztL7aX8u66Ig7WNrH7QC0hAusLKwG4ZtoAwkN9YdJZKjDQnEwe/YPAeSKyDTjP3scYswF4CdgIvAfcYozpmhVwlVKqHbaX1LjbdY2t/MBe7Hv93kpSYiPZVGQFeid10llV6p6LR3bxnXaM4wr0xpiFxphL7O0yY8w5xpih9t8HPNfdb4wZbIwZbox5t6NvWimljsfM3y7g/9l1ayrr/Ydf1u2tcLfX/mI2GfGRlFRZQzupsdakqMV51mIjgZAz3xadGauUCmpl1Q3sKqvlf5fuAmBfhf+D2L9+up2IsBDmnTmIhKhwv7o2zmIhr90ygym5yVw8NrPrbrwDaaBXSgW1Dzfud7eNMTzzRT4AX5vUj7AQoX9KDI3NrW4FypGZVmZNrmcpwAk5SfzrptMICw3MkKkrTCmlglpEmC84Fxys47lluwG4alI2ZdWNfLrVmsfj1JCPi7TCYm1j8DxaDMyPJ6WUOoLnlu3iV29tdPedxUEA1u+tcJf5mzYolSRP8bHkGGs8fuv+KgBOG5zaFbfbJTTQK6WCyt2vrufJRTvd/c+3+WbeF1XUs7bAevgaGiKkxfkerjoPWofZpYlvmDGwK263S+jQjVIqaCzZXuZut7QaQkOEphZrYn5EWAhFFVYe/OB0q5Z8Rvzhgf47p+Vy5rD0Hrcc4MnQHr1SKmD937LdbtokwLz/Xeluz3l8Ce9v2OfuZyZGuWmS152aC/hWgoqJ8NWrCQmRoAryoD16pVQAu+vVdQD8/NJRhIWGUFXvKy28Iv8gawt8M2BzkmNYlGetHuX05J1Zr+EBmk3TXhrolVIBqbnFV0y3uKqBLDs90vGNU7L516oCdzvUs7jruJwkAK46JZsQgYsCND++vYL7Y0wpFbS8vffC8jpqPAuFDOsT5zcD9qZZg6lr8qVLxkf5+rhfm5QdEKWGT4b26JVSAelVz6Ihe8vreNqeCAWQFB1BRZ0V6Ef0jWdwehyrdh10z8dF9K7Qpz16pVRAqKpvYtUut6QW93ly5QvL6918+dmj+pAQHe6WOrh0fBYA9142GoD4yDBCQnr+8n8dSQO9UiogjP3FB3z9L0vYX1l/2MLdheV1XDOtPwB/+/YppMdHkF9WC0DfhCgAZgxJY+60/jz7vd63sqkGeqVUQHlq8U43N95RWF7H/9mlDUSEAamx7rmcFKtIWVR4KPdfOZaJ/ZO77mZ7CA30Sqker7TatyJUeU0TTZ6Mm3NHZhy2IEhmYpS73T8lht5OA71SqsdZsLmY+a+sdYdoCg76AnlEWIibQTMgNYbMxGg277Pq08y1h2+cCpQAfRICs4Z8R+pdj56VUgHh1+9uYuv+am6YMZBhfeL5nw+2uOf+d+kumlutHv1Vk7L9SgdPHZgC+OrVzByW7pYa7s20R6+U6lEamlvYur8agNm//wyAwen+JQne32DVmL9yUj+yknzDNJmJvklT+Q9ezDPf7X0PXtuigV4p1a1aWw2trb6Hq5V1zYdd4+TIXzw2k8Hpscwalk56fCTZyTF+M2LH9kvs9PsNRDp0o5TqVoPuegeAT/5rJoPS49xhGYBTBiRT5ZnhmhgTTkVdE694Jkt5H7xGRwT3DNcTpT16pVSP4BQoe+VLXxBvbjVsKKx095OiwymtbgQgzJ705CwB6EyMUofTHr1SqkcIDRGMMfz2fd+D1zV7ytlzwJr49OrNp/Hgu5vdc/MvGglYefP5D17ctTcbYLRHr5TqMttLqrnwD5+7efHeCpTZSTFtrtO62w70IzMTqPQUMstN1fz49tJAr5TqMpc8uohNRZV8vMnKmjlQ2+iee3HlHr+KlL+83KpNs3pPOWlxkUSFh/LXaye553PTfLNf1dFpoFdKdRlnotM2O33y9a8K/c4fqLEC/9cm9iMl1protCivlDH9rAlQ3tIGOuO1/TTQK6W6jLNEnxPw739nEwBTc1MIEVi+01rq78fnDiMpxlrmz5i20yaDfVWojqT/UkqpLlNtD80U2SWE4yOtfJDpg1NpNbBgSwnxkWHkpET75ceP8QT68FCd6Xq8NNArpTpFU0srX/vzYsrsB6/VDc3sq7QCfGWdVZisqqGZif2TGGSPt3+6tYQ+iVGICDnJbU+EWjr/HJbMP7sLWxL4NNArpTrF0Lvf5cvd5Zzyq48AeGrRTvdcRV0TC7eUAPDV7nKSYyPcc8P7WnVqwkJD+Ou1k7h6an+/SVGpcZF+pQ7UsWkevVKqSzz84VZ3e1txNb9+d5O7n2yPx4M1Xu+4YEwmF4wJ7oW7u8Ixe/QiEiUiy0VkjYhsEJF77eMTRGSpiKwWkZUiMtXzmvkikiciW0Tk/M5sgFKq+9U3tfDk5zv86sQ7MuIj/WrZOHaU1ACw8p5zGeQpWqbZNB2vPT36BuBsY0y1iIQDi0TkXeA+4F5jzLsichHwEDBLREYBc4DRQBbwkYgMM8YcPhNCKRUUvvW3JawpqGBF/gH+9u3Jfkv91TQ0U2anTf7i0lEMSI3lhqdXAJAYHU5anH+9+JwUHZbpaMfs0RtLtb0bbv8x9h+nun8i4CTEXg68YIxpMMbsBPIArRWqVBBbU1AB+MoHO3+P6BtPTWMLi/Ks8fi+idGM7udbFGRKrm9Zv19dMYYZQ1IZlOZfklidvHY9jBWRUBFZDRQDHxpjlgE/Bn4rInuA3wHz7cv7AXs8Ly+wjx36nvPsIZ+VJSUlJ9MGpVQ3iwr3DyW7yqxhmZvPGgL4CpWdNiSV1FhfDz493rd97fQBPHfjdEJCNH2yo7Ur0BtjWowxE4BsYKqIjAF+APzEGJMD/AT4u315W9+lwwbojDGPG2MmG2Mmp6enn9jdK6W6RXFlvTs8U9vYTH2T/9h8RV0ToSHCqEwrg2b5zgOkx0eSEBVOqCeQnzlUf/a7wnGlVxpjyoGFwAXA9cAr9ql/4RueKQByPC/Lxjeso5QKcAUHa5n6wMdc99RyAL8gnxZnpUnuLK0hOzma7GTrwWpDc2uba7eOyko47JjqeO3JukkXkSR7Oxo4F9iMFbxn2pedDWyzt98A5ohIpIgMBIYCyzv6xpVS3ePW578C4PNtpYCVceMoq2mksbmVRXmlTM1NISo8lIQoK+ejb4IvF/6KCVbteG/tGtV52pN1kwk8IyKhWB8MLxlj3hKRcuAPIhIG1APzAIwxG0TkJWAj0Azcohk3SgWPPQfr/PZfW22Nv88ans7CLSUsziulqr6ZKXY+fEZCFJX11STF+CZFPTJnIo/Mmdh1N93LHTPQG2PWAod9R4wxi4BTjvCa+4H7T/rulFI9zoCUGEqqrLIGFbVNPPSetVBIi50r76ROThpgZdQ4Nefr2qg1r7qGlkBQSrVba6th5a6D7v4764vc7Z9fOtrv2r522QJnsZBvTslBdQ8N9Eqpo/rxC1+xdIdVPviNNf55FRsKK9ztgWmxiCfnLtZeqNuZLTvSrmGjup4GeqXUEX22tYTXVhcy5/GlgFWB0mtzURUAD319HKEh4pYdjgwLQeyo/4/vTOHqqTl+OfOqa2mgV0od0caiSne7pdVwz2vrAXj3R2cQGiLuMI6TJuk8cL1sfJb7usm5Kfz6a+PcwK+6ngZ6pZTLGONXp6bBkyO/o6Ta3c5JiSHD00N3Uiydhbz7eFIpVffTQK+UAqwgP3D+Owyc/457bNeBGt92mRXEx+ckERcZ5hfMJ/b31awBiI/SCug9iQZ6pRRglS3wamxudWvUAGzZb43HXzutP+CbAHXG0DS3rMG4bGslqHNG9un0+1Xtpx+7SikAnl2yy90ur23kjIcW+J1fvvMAgFs7fuHWYsDKtnG88Z+nd/ZtqhOgPXqleqldZTV+C4I8/tkOd3tHaQ1Vdv77Wz+0greTSums5Tr/wpEAzDtzUJfcrzpxGuiV6gXyS2v89lfkH2Dmbxcy6K53aG01NLe0+qVOllQ10C/JCuhj+iWSGB1OabW1eIizUMj1p+WS/+DFbuEy1XNpoFcqyL2+ei+zfreQX7610T22eV+Vu737QK3fsA1AcVUD5bWNfHv6AMB//F7rxQceDfRKBTlnbP3vi3a6qZN/+Mi3UPfe8joa7dmrd19kDcdsLKygprGFYTqbNShooFcqyJV7euNOnrtTfwas+vJvr7Vq1nxzSg5JMeGszLcmQg3UMsJBQQO9UkFmR0k1L67Y7e4nRYe72zN/u5DXV++lsbmV0VkJhAgUHKxj3V7rQWt8ZBjpcZFsK7YmRzmFyZzMmkOXDFSBQb9rSgWZs//nU+749zpqGpqpbmjmuWW7/c47ZQw2FFaSmRjN4rxS91xIiLjBHSDDXhXqzR+eTkZ8JE9cN7kLWqA6mgZ6pYJIVb1vmCa/rIavdh/0O/+tyTnuOq1v/OcM+iVH8+XucgD+MGcCAEMy4tzrnSJlcZFhLL/7XM7QNV4DkgZ6pYKIdybrztIav/VcB6XFUtPYzNvrishOjmZcdhLZdk48WMXHwD/QayGy4KCBXqkg4tR+B3h++W62FVtplOeN6sOO0hresh+6xtk9dW8OvFPSIFcfwAYdDfRKBbDC8jpW7yl393/19iZ3e3FeGSvzDzIgNeawsfXvnj4QwO3RhwhuvZoRdkrlNXZNGxX4tNaNUgHstAc/ASD/wYv9jp81PJ2iinq27Kti6kBrSOabk7N5aWUBAP1TrJ58tj371VMJgdS4yMPeTwU27dErFaBqPCULKuv9K0/mpMSw50AthRV15NhBfYBnSMbpyWv5gt5BA71SAeLfqwq45I+fu7Nbi6sa3HM7S2ooq/btJ0WHU9PYgjG+ImTehUKc8fj+qTE8dNU4vvx/53VFE1Q30aEbpQLEf/1rDQBvryviknFZFFfWu+fWF1aweZ+17N/E/kkkeCZJOT36hmbfg9qwUF8f75uTczr1vlX30x69UgHAOzTz/HJrAtRn20rcY7vLatlYWElUeAj/vuk0t8Qw+LJo9pbXddHdqp5GA71SPdC764rIvfNtdy3WO/+91j3nlA/+04LtACTHhLP7QC0fbSqmT0IUISHiN6zTx57d6qRUXjIus0vaoHoODfRK9TAVdU384LkvAfjNe5sBeGfdPsAK2kUV9X4LhozPSWL3gVqKq+ppbrGO//fsYe55Z9LTjWcM5NdfG8ujcyZ2STtUz6Fj9Er1MN4FQMIOqf0+ISeJnaU1rCmwcuezk6MZkBLDqvyDCMKl47MASImNYMaQVL5xim/8PTIslKunam58b6SBXqlu1tTSSlNLKzER1o9jgz1cA/iVMADIiI9i6Y4DfO0vXwDw1Hem8NnWEqrsD4eUWOshrIjw3I3Tu+L2VQDQoRulutn1Ty1n1M/ed8sXPLYgzz2XX+ZLm/yv84axvaSairom7AxLhvWJJzUuwr3e+xBWKccxA72IRInIchFZIyIbRORez7kfisgW+/hDnuPzRSTPPnd+Z928UsHgi+1lALxgZ9N4C5PtKKlh5S6rAuVpQ1LZUFjpnps9qg8AB2t8GTnTBqZ2+v2qwNOeoZsG4GxjTLWIhAOLRORdIBq4HBhnjGkQkQwAERkFzAFGA1nARyIyzBjTcoT3V6rXMMZQWd9MoifP3bG9xH8B74iwEEqqGiiy0yIHpMbyyJwJ3PCPFQBk2nXjx/RLdF8zsX9SZ926CmDH7NEbS7W9G27/McAPgAeNMQ32dcX2NZcDLxhjGowxO4E8YGqH37lSAWBHSTWNnolKX2wvY/y9H7B0h9WL985mrazzL2Nw4+kDaWxpZfO+KqLDQ0mJiWBQmq+MQa69PdRTVjg2Uh+7qcO1a4xeREJFZDVQDHxojFkGDAPOEJFlIvKpiEyxL+8H7PG8vMA+plTQqm1s5rLHFrHeXpIPYH9lPWf/z6f86IWv3GN3vboOgAVbrH5RWU2je25veR177DVdwVeH5ovtZYzMjCckRPxq02QmWvn0CW38dqCUV7sCvTGmxRgzAcgGporIGKxhn2RgOnAb8JJYCbttrVRgDj0gIvNEZKWIrCwpKWnjJUoFjmU7D7C2oIJfvrXRPTbtgY8BeHf9PvfYrjIrkJfYE5rue9O6PiYilP2V9e4HxT0XjyQpxgrguw/UMrxvAuArJQwwNjvRPZYRH8lFY/t2SttU4Duu3/OMMeUishC4AKun/oqxKiwtF5FWIM0+7i2ekQ0UtvFejwOPA0yePPmwDwKlAskTn+0AfIH8WJxAv8herzUrKZo9B2p5/HPrfS4dn8V7ng8Ip6ywlzNDFmDZXefoalDqiNqTdZMuIkn2djRwLrAZeA042z4+DIgASoE3gDkiEikiA4GhwPLOuX2leoY6O/d90oAjPwwtrvIVISupanCrUALMGpZOQ3Mr4XaxsT4JUQxO942956T4gvrLN53K/904ze+9Nciro2lPjz4TeEZEQrE+GF4yxrwlIhHAUyKyHmgErrd79xtE5CVgI9AM3KIZNyrYfWUvsF1abY25t7YawkJoyviaAAAgAElEQVSE5lbDoHTroemibaXu9Zv3VVFU4Qv8E/snAztZmX+AmcPS7WO+D40cz9i8s7arUu11zEBvjFkLHFYcwxjTCFx7hNfcD9x/0nenVA/U1NLK/W9v4tZzhpISG+FXdyav2EpQW7u3gmb7eEWtlU3j1KFJj4+kpKrBHY//xw1TCLV75K0GclOtoB4R5vuFe0CqLhCiTpzOjFXqOH24cT9Pf5HPpF9+CPiXED5Q00hVfRPf/OsSwArWB2sbaW5p5Xa7AuXt5w8HYL09+al/Sgzjsn258M5KUGEhwvRBKVw0ti9JMb7Zr0odL026VeoYWlqNX7bLD5//yu/8inxr5mpUeAj1Ta0cqGmk0S5ncEr/ZJbsKCO/zDcZKiXWCtrr91YgYj1UDfGMseemWb13EeGFead2TqNUr6I9eqWOYmX+AQbf9Q7ffXqFe6zFM1RjjHFrxafFWXXfvbnx35ySDVhj8gD3XjaaZDvQr95TTt+EKKLCQ/2GaXI9a7sq1RE00Ct1FM8u2QXAJ5utCU6HrtJUXNXAtdMHAHCbPSRTcNC6ZsaQVOIjrVz4fyzOB2BS/2TS7Q+EAzWN7jJ/Xrpgt+poOnSjlEdVfRPhoSFEhYcCVr13R21jM69+WeB3/Y6SGv7w8TYAxmVbWTLL7PIG356eS3SE9T6r7MJkOSnRRIaFuq/35se/9B+nsre81q93r1RH0ECvlK211TD2Fx8AkP/gxQCUVfuGYd5aU4QzajMyM4FNRZXc8LRvikh2cjQisHCLNdN7aJ84v9o0CVFhJEaHIyJu6mWoZ2x+6sAUQFMnVcfTroNStmU7D7jbzjh8Xkm1eyw5NoLqhmbCQ4Vv28M1zsIgY/slEh4aQnxkmDu8MyAlxm8iU2V9s7vvpF5OGaiBXXU+DfRK2bxL+O2rrCe/tMYdcgFYs6ecNXvKGZ2VyNVTc/xe++e5kwArmDvCQv1/vA5dFhDg8glZHXLvSh2NBnqlbN9/dqW7vfdgHbN+txCAEX3jAahvamHzvipGZiYgIu6wTHxUmF/dGeCwDwKA5+f5lvZ74MqxzL9whFvyQKnOpP/LVK+1bX8VBzypkF77Kn3lCZ64bjL9kqLZWFRJRV0TIzOtwO+kU/ZLiibE7q1fdYqVTumtUzPErhc/IcdX0uCaaf35j5mDO7A1Sh2ZPoxVvdZ5v/8MsB68brHz3B377To0QzLiyEmJIS0uwl3yzwncTh349PhI93XO4Iz32HM3TmPLvirtvatuo4Fe9UqlnpWdGptbeWZJvrsfExHKtmIr8Du1a5zeO8AQu7f++TYruyY+yvdj9KNzh1Ld0MyMIWnusT4JUfRJiOrwNijVXtrFUL3Snxdsd7e37Kty8+WX330OoSK8tNLKl7/3stGAL9BHhoWQYQftBnuJwFnDMtz3yk6O4S/XnuL3waBUd9MevQp6ra2GQXe9A/jy459avNM9X1HXxL6KehKjw8mIj6LKk30zbZCV/pgWb5UtGJ/tG2f/6Kdn8s+lu/nG5OxOb4NSJ0N79CroGGNobvEtyO2tLlljB3Enkwbgn0t3UVheR2ai1VN36sEDDEixMmuciU3L83259kMy4vnFZaN10Q/V42mgV0Fn1u8WMuTud939P36S525vsEsDb/Y8fH1vwz72HKhzUyRP94yvOyUMnIerTj0bpQKJDt2ooONdgDs9PpK/L/IN0xRV1FHb2HzYa7bsr3Jrwm8sqjzs/DXTBpCVFM1ZwzMOO6dUT6c9ehXQmltaaWz2DdN8snm/u73fzoX/7oyBfsdufX41AFdO7Mc0TwmC04akAnDFxH4A7lAOQGiIcM7IPm6+vFKBRAO9Cmhzn1zGyJ+95+5/uavc3XbWZG01hoSoMGIiQtlX0cCynVY+/IVj+jI5N9m9fkKOtX3m0DTuuXgk7//kzK5oglKdToduVEBzCpFV1DWRGB1ObaNvHfpCu7jY01/kA1bFyZ2l1VTVN5MSG8Hs0X3dxbwBspKsHryIcOMZg7qoBUp1Pu3Rq4DlXenp063W5KWCg7UMyYgj1p705C1KlhEfSWG51ct3Sh/089Sb99aJVyqYaKBXAaOirokvtpe6+3sP+lZ72lVqrcn6wcb9RIaFMCA1lqLyer7+ly8AGNYnjpTYCHfG6/wLRwCQk+xfjEypYKSBXgWMb/1tCdc8sYw1e6xx+LwSX4rk7gO17sPXDYWVZCREsr/KV5jsrR+eQUJUmLtwiFN0zFnh6ZwRmk2jgpeO0auA4eS+r9p1kPE5SewosXrxOSnR7Kusd+vXfOe0XBqaW1hXUOG+NiIsxK9W/HB7wlRYaAhf3Hk2yTERXdUMpbqc9uhVj7SpqJLXV+9191taDU5m47q9VgD/1dubABiVmUBheR3/ay/k/b3TB5KZGE2ZPQ7v1Ib/ybnD3Pfr60mdzEqKdidGKRWMtEeveqQL//A5AKOzEhmSEceynWXusEtheR31Tb7smszEaBZtK+W9DfsAyEmJcUsdAJwzog/g/+BVSwar3kQDverR3t+wjyEZQ1i2w1djpry2iTE/fx+wJkP1TYykprEFPKmVpwzw5cc79eNDQ4RpA1OI0d676mW0W6O63T8W7yT3zrepswO1twhZSZU17r6mwDcRasv+KmIjrT7KTbMG0TfR11O/5Sxr1aZzRvZxj+XYD1wBXvyPU/nHDVM7oRVK9Vwa6FW3u/fNjQD84wurJs1LK/a454rtzJmFW0r8XpMWF8GEnCQy4qNItFd6Al8Z4VBPqYJQLVugejkN9KrLLd1R5vbevWPtzkzW//lgK2ANvyzOK/N77bkjrTTI7SU1boCPi/SNQHqX8AP/1Z+U6q2OGehFJEpElovIGhHZICL3HnL+v0XEiEia59h8EckTkS0icn5n3LgKTA9/uJU5jy/l+qeWA76hGYDiSmu7zg7+o7MSqKhrctdzHZoRx8T+vrF35+FqgieYZyX5hnE+v/0sPrvtrE5qiVKBoz09+gbgbGPMeGACcIGITAcQkRzgPGC3c7GIjALmAKOBC4A/i4g+/VIAPPrxNsC3gMf/e329e66wos6vrIGT6/7RJqsi5amDU7nSriwJVuAHiPMEeu/arDkpMSTHan68UscM9MZSbe+G23+cn8bfA7d79gEuB14wxjQYY3YCeYA+/VI0eVZ9cjhj70Mz4li/t5KiCmv45tZzhpJur7u6cEsx0eGh3HXRSCLCfP9lc9Os1Z8SoqwhnPhIHaZRqi3tGqMXkVARWQ0UAx8aY5aJyGXAXmPMmkMu7wfs8ewX2MdUL1Ne20junW/zpwXWCk/eYZpDbSu2+hIfbbR672cNT3fH21fkHyQtPoKo8FAiPYF+bD9roZDYyDDW/Hw2a34+u1PaoVSga1egN8a0GGMmANnAVBEZB9wN/KyNy9tKcTCHXSQyT0RWisjKkpKSNl6iAt3M3y4E4LfvbwGg2A70k+0cd2dSU1pcBLNHWemQq3ZbaZRD+8ST4hl2CbHXZY2P8mXYpMX5HrwmRofroiBKHcFxZd0YY8qBhVjDMwOBNSKSj/UB8KWI9MXqwed4XpYNFLbxXo8bYyYbYyanp6cfeloFoOaWVr8x9oq6Jr/z6+3SBcPssXdnf9bwDK47NReAFTsPkJMSTVxkGFHhvkc753ry4vMfvJj8By/ulDYoFYzak3WTLiJJ9nY0cC7wlTEmwxiTa4zJxQruk4wx+4A3gDkiEikiA4GhwPJOa4HqERqbWxly97vc+MyKNs8bY7jnNevBa06yNYFpoV1Dfs6UHJJirJ76vsp6BqVZD1m9ZQo2Fh6+jqtSqn3a8/QqE3jGzpwJAV4yxrx1pIuNMRtE5CVgI9AM3GKMaTnS9So4nPrrjwFYYD9c9a7jCvhVjjx1sLU2618WbkfEWvmp3NP7d0oIJ8f4hmnmzdQVn5Q6UccM9MaYtcDEY1yTe8j+/cD9J3VnKqA4lSLBCvLekgUAaz37I+yhG4BBabHERob5zV4dlG5l04j4jo3OSujwe1aqt9CZseq4VdQ1kXvn2zz47uY2zx+sbeT7z64E4PzR1tj6nf9eB8CfrplEVHioW2hsdJaVOeMdj3d69F4Z8VGHHVNKtY8GenXcnBTIv366HfAvQgZQVt1Iea117IErxwK+B7NTBloZN9X2UE5bPfXBGbHu9qI7zuL9H5/ZkbevVK+jgV4dU0Vdk19NmrySane7tdUw9f6PAOhrz0otqW4gOzma2aP6kBoXSWJ0ONUNzUSHh7qToPbZy/6NyPQF+kn9rYJk6Z60yezkGHeGrFLqxGigV8c0/t4P+Obflrj7O+0l/ACKKuupb7IevP7yijEA5BVXU3Cwzp256hQdy06O9ht3Bzh9iFsiiWe/N41Fd5x12DVKqZOjc8bVUT2/3CpjtNaz/uqeg7WIgDFQZFecBCubJiI0hFe/KrD2B1nZNU4FSW9d+A9+ciab91X5PYSNiwzzq0SplOoY2qNXfh7+YAv/XLrL3Z//yjp32xhrMlTBwTqm5KYAuAt0gxWoB6TGsH6vlfM+Odcaj3cW9U71zHQd1ieey8ZndVIrlFJeGuiVa1dZDY9+kudObDpUSXUDB2oaqahrYoodxJfttKpQ/udZQwBfobF+SdF+5QrAPwVTKdV1NND3Us0treTe+Tazf/+pe+z3H251tyvqmiiv9Q/Mu8tque1fVg27KbkpxEaEsnSHtTDIeXatGmeS0+AMX4rkhBzrIeu9l43uhJYopY5FA30v8fCHW8m9821a7Vo0TrXIrft9GTRJMb6hlbziKr9zALvKavl4czEAM4elMzgjjr32GH1/e/x9Y5E1bBPuGXt/6jtTePa7U/3G6JVSXUcDfS/hLPjhBPgL//C5e26HnS7pDMMAlFQ1cqDGqjZ5/ug+iMCuA7XueREhNsJ6cJoaG+Eu8OGMz9d50jFTYiM4c5gWrlOqu2ig7wVqG311Zr7YXnrY+bzialpaDZuKfIXDPtm8n1++tQmAR6+eSN+EKPf8/AtHALDEHrbxBvWPfjoTgEfmTOjgViilTpTmsvUCy3b4euqL88q4YcZAv/PvrCtyJzA5XlpZ4G5HhoWSGB3uVpAckOo/BDPEMx4/JCNOSwgr1cNojz4IGWP86sKv2+vLgY+LDHWX63O8trrQXdjjkW9ZPfH4yDDCQoSbZw0GoLS6wR2Pd8ba77vcerialRiNUqrn0kAfZIwxDJz/DoPvesd98LplfxX9kqKZNjCFveV1FNoB2xmCAXji8x0AXDCmLxePzaSuqYXmVuOmS5ZW+zJwhmbEu9cmRodzi51aqZTqmXToJsBV1jdRUdvk9rK9ueqlNQ1kxEexZk85E3KSiAwP4Yu8MvZXWg9ZzxiazobCStYUlLOrzHrQGhUeSkurodn+kMhNtQJ9WIi4x5wFujPio3SdVqUCgPboA9y1Ty7jjIcWuL137wLcheX1lFU3UHCwjvE5iQxOj2NfZT03P/clADkp0aTHR7pB/nunW2P3723Y575Hbpr1AaIPV5UKXBroA8iNz6zkIk9aJPhq0Pzwha8Aayzd8eKK3azadRCA8dlJ9Enwr+keHxVOVpJvfD0x2prsdPHYTPeYUwfeO+avlAosGuh7qJKqBj6z11QFqG5o5qNN+9lYVMnqPeWHXf/22iIAfvHGBvfY88v3sHTHAcJDhfE5SaTGRRz2ujTPsTlTrDXd50zNOey6WcMyGNsv0U2fVEoFDg30PdTFj37OdU8t56A95r7FLgwGcMfLawH/BbPPGJpGa6thu6fIGMDW/VWMykwgKjyUqDDfKk4f/sRazMNb+z093tqeMTiNIRlxvHbLDPdcYkw4b/7wdL9USqVUYNBA30MV22Ptd79mVY98/LPt7rmx2dbyexc96hvGWZl/0G/Y5rLxWYSHClv2VzGsj5UlM3Vgint+kL1cX4qnR+/UgQ8JET766Uy3Ro1SKrBpoO/h3llnPRgNC7G+VZFhIZRVN1Bc5T/Bqa6phbec4ZtLRzEiM56mFkNJVYNbYMxb+93ZHpweR1ZiFA9/c3ynt0Up1T000PcAlfVNnP0/C92JTAc8KZKZidbD0LfXWUH8zGHpFJbXk2fXrPn29AHute+ut6657tRcv0lMMRG+IZu3fng6y+8+x90PDw3hi/nn8LVJ2R3dLKVUD6GBvotV1Dbxj8U7/Y5NuPcDdpTUcNM/rbTHNQXWw9b4yDBKqxvchbVzUqLplxTNzrIaN9DPnd6fB79mLcC9It/KsAkJEfLLfGP1l0/o526P6ZfoZtIopXoHDfRdbPYjn3Lvmxv5o11NEsDJXFxrB/jddl77dacNoKnF8O9VVt2ZPQfqGN43nsbmVp75Ip+0uEiG94mnT6IvcI+3x+9TPQ9ZE6J0XpxSvZkG+k5kjOG//7WGvGJfxkxqrBWAt9o9cmd5Pmvb2v+5nSI52H5g6vTo77xwBKcMsFZ22l5Sw5h+CYiIX+bMdafmAjB3an/3mC62rVTvpoG+E936wmpeXlXAuQ9/5h5zJiXFhFvj5iWeTBnwBXWAJHu1plW7DhIaItwwI9dv8eyJOVbQT/ME+lFZCYA1fHP2iAxuPVvr0CjV22mg70Rvrin0229pNW4N9xdX7gHgZ69ZvfczhqYBviybS8Zluh8Ki/JKGZQWS2RYKHGeYZjsZOuBq3ci1FBPnvtT35nCT2cP79A2KaUCjwb6DuQdhgEYlG4VBMu167cPvuudw17j1JWZaa/A9O8vrfH4W88ZSqyn9z68r5UL76zqBL5yweGhvm9jWKh+S5VS/vQp3TG0thqueXIpM4dl8AO7NjvA/sp6jIG+9oPQh97bzJ8Xbuf2C4Zz86whNDS3uA9V9xyso6HZtwpTZFgIDc2tfiUOxvazHqKWVjeQFBPOsD7xfgXKRtiBPjREeOyaiew+UMuU3GT3/Ke3zXInWSmllJd2/47h3fX7WLrjAL95b7N7rLXVMO2BjznztwvcY39eaM1cfei9LZRWN/Dhxv00txrOGZFBS6thm2eh7UevngjAdU8tB+CPV090e+e7ymrdIRmnJAHgt7D2JeOyuHnWEL+HrANSY5mS65v5qpRSjmMGehGJEpHlIrJGRDaIyL328d+KyGYRWSsir4pIkuc180UkT0S2iMj5ndmAjmSM4cnPd7A4z7euak2Db71VpxTwp3ZPvLG5lar6Jg61bX+1u3zft+xCYc5arb+8YoxbksCZqHrp+Cx3YhRAdpIvqJ87sg8As0f1PbnGKaV6rfYM3TQAZxtjqkUkHFgkIu8CHwLzjTHNIvIbYD5wh4iMAuYAo4Es4CMRGWaMaTnSF+gud7+6jhGZCe7s0meX7OJXb1sLYjvrntZ4Ftauqm8mMSacJxftcI+VVjdSWd+MV11TM3vL6xiUHstpQ6yHrC+ssB6+TshOcoN6q4FJ/a3PR2/vvK8n6P/x6omUVjcQ7ZndqpRSx+OYPXpjccYdwu0/xhjzgTHGiXBLAWcO/eXAC8aYBmPMTiAPmNrB933cVu8p56cvrXb3jTE8t2w3/++19e6xz7f5evIFB63x9fc9i3CU1TSwsbCSxXllDLYftG4srORduzyBo7axhR0l1YzMTHDTIXeU1BARFsKYflYlSccAewUnL28dm+iIUL9hG6WUOl7tGqMXkVARWQ0UAx8aY5Ydcsl3gXft7X7AHs+5AvvYoe85T0RWisjKkpKSQ093uCv+tJhXvtzLl7utMgHeXrjzoPSjTfvdYws2FwNQcNC3kPa+inpeWLGb6PBQtzbM/y3f5a7Q9OrNpwFWLfn8sloyD1noIzMx6rDJS96l/xwj+iacWCOVUqoN7Qr0xpgWY8wErF77VBEZ45wTkbuBZuA551Bbb9HGez5ujJlsjJmcnp5+/Hd+HHaW+uq+VNoTku56dZ17LK+4+rDUSGtIpomCg3WcOzIDgMKKeraXVDO8bzw3nmEtu3fqoFTe37CPgWmxbq32e9/cCED/VP+eeJ82aswk2bnyAK/dMoNvTx/AzZ7sHqWUOlnHlXVjjCkHFgIXAIjI9cAlwFzji5QFgHeJomzAf+ZQJ/ve0yvIvfNtN3hvKKxwz31pL63nrMgEsKmoiso6q4d/ybhMkmPC2VdRz92vWsM6c6ZY5QQKy+vYUVJD/5QYIsNCSYoJZ1txNQdqGslOjiY+yhe0Aa6Y6P+LjDfF8mq7RMF/emauTshJ4pdXjNFceKVUh2pP1k26k1EjItHAucBmEbkAuAO4zBhT63nJG8AcEYkUkYHAUGB5x9+6pbK+yS9LBuBje9hlm11PprDcN/zy6Cd5gH/ZgIVbinlzrfVZdMm4TPolR1NUWc+mImsFp1nD00mLi2TzvkqKKurdMgOjMhN4fXUhza2Gm2b698LH9Esg4ZDAv6bA94Fz2/nD+f23xvvNZFVKqc7Qnq5jJrBARNYCK7DG6N8CHgPigQ9FZLWI/BXAGLMBeAnYCLwH3NJZGTfGGMb94gPmPrnMXV3J+yDTeaD6wDu+HPiBabG0thpqGpq5fEIWAG+tLeJXb1vDLckxEVTUNbF0exkHahqZMyWHsNAQ+iVFsWR7mfseALlpvgepTgEyx/q9vmX+nKGYP8yZ4B5LiY3gyonZWnBMKdXpjpleaYxZC0xs4/gRq2UZY+4H7j+5Wzs27wPVnaU1pMVF8oCdHgmw1/MgFeCs4emUVDew+0AtdU0tTOqfzOurrZ58fVMrYC23t+eAbwEQJ+c9MzHa7ZE7Y/ExnuwZZ3LT3ReN5P53NvkVH7v9ghF8c3KO3weDUkp1lYAeDK70VHrcbg/TvLba9zigoLzOnagE1nBNaVUjr9j1ZMbnJBHvCchDM+IQEb47Y6B77LQhqYCvJg3AQDslcq1nKMZZmq/Vfi4wd7qvTDCgQV4p1W0COtB7S/ru8GTWgLUa096Ddbz21V7AGjZJj4+ktLqBJTvKGJ+dyIScJL5/5iD3NdeflgvgDukADEixAnSiJzsmxA7qziSmKz0PXedM7c9l47O46UzNnFFK9QwBHegTo8O5YUYuAI9/tsMdQ0+JjaB/Sgx7y+t4aaXVe79kXBZpcZE0txpW5B9krL0SU2SY759g+iCr9x7hOeYE8yevn3zY14+3SwbPHtXH754evXoiybERh12vlFLdIaCrV+akxPDzS0fz5ppCSqsbec9eHHvOlBx2H6hlcZ4vhTI0REjzFAkblWkF+uZWX/68M9vVqRTpNSU3hQe/NpYJ/d2SPvz80tHER4Vztp1nr5RSPVFA9+gdD3/TymZ5ZskuwEpd9PbKr7XHyzM8gX54X+uB6gDPpCYnA0ZEuOfike5MV8ecqf39Zq2mx0fy66+NJTJM69AopXquoAj03nK+YAXqif19tdpvsB+uDu/j66k72TTnjuzDFROyWPjfs/ze48YzBvm9h1JKBaqgC/Tz7Ier35rsm5zr1Hd31mAF3FmsUeGhPDJnombFKKWCVlAE+tTYCHeGaX+70qN36MYZWtHJSUqp3iigH8Y6RIR/3XQqf1qQx4VjfAt0/OmaSW5eu2Prry5E471SqjeRQ6s2dofJkyeblStXdvdtKKVUQBGRVcaYw3O/DxEUQzdKKaWOTAO9UkoFOQ30SikV5DTQK6VUkNNAr5RSQU4DvVJKBTkN9EopFeQ00CulVJDrEROmRKQK2NKJX6I/sLsT3x8gEag45lUnLhjaAJ3fDm1D+wTD/6dgaAOcXDuGG2MOr6t+iJ4S6Fe2Z3bXSbx/iTEmvbPe3/4ajxtj5nXi+wd8G+yv0ant0Da0+2sE/P+nYGiD/TVOuB3tjZ29ZeimvAu+xpud/P7B0Abo/HZoG9onGP4/BUMboAva0VsCfWf/6oUxprP/QwRDG6CT26FtaLdg+P8UDG2ALmhHTwn0jwf4+3eFYGgDBEc7tA09QzC0AU6uHe16bY8Yo1dKKdV5ekqPXimlVCcJ2EAvIk+JSLGIrPccGy8iS0RknYi8KSIJnnPj7HMb7PNR9vFT7P08EXlUunAZquNpg4jMFZHVnj+tIjIhwNoQLiLP2Mc3ich8z2sCpQ0RIvIP+/gaEZnVQ9qQIyIL7H/XDSLyI/t4ioh8KCLb7L+TPa+Zb9/rFhE5v7vbcbxtEJFU+/pqEXnskPcKmO+FiJwnIqvs+10lImd3eDuMMQH5BzgTmASs9xxbAcy0t78L/NLeDgPWAuPt/VQg1N5eDpwKCPAucGFPbMMhrxsL7PDsB0QbgGuAF+ztGCAfyA2wNtwC/MPezgBWASE9oA2ZwCR7Ox7YCowCHgLutI/fCfzG3h4FrAEigYHA9u7+mTiBNsQCpwM3AY8d8l6B9L2YCGTZ22OAvR3dji5peCf+g+Ye8sNZie+5Qw6w0d6+CPjnEb4hmz37VwN/64ltOOQ1DwD3B1ob7Ht7E+uDN9X+AUgJsDb8CbjWc93HwNSe0IZD2vM6cB7WRMRMz/+VLfb2fGC+5/r37YDSY9pxrDZ4rvsOnkDfk9pwPO2wjwtQhvUB3GHtCNihmyNYD1xmb38D6wcUYBhgROR9EflSRG63j/cDCjyvL7CPdacjtcHrW8Dz9nYgteFloAYowpoJ+DtjzAECqw1rgMtFJExEBgKn2Od6TBtEJBerl7gM6GOMKQKw/86wL+sH7PG8zLnfHtGOdrbhSHpEG+CE2vF14CtjTAMd2I5gC/TfBW4RkVVYvzI12sfDsH7Fm2v/faWInIP16Xmo7k5DOlIbABCRaUCtMcYZTw6kNkwFWoAsrOGC/xKRQQRWG57C+oFbCTwCfAE000PaICJxwL+BHxtjKo92aRvHzFGOd5njaMMR36KNYz35e+FcPxr4DfAfzqE2LjuhdoSdyIt6KmPMZmA2gIgMAy62TxUAnxpjSu1z72CNyf4TyPa8RTZQ2GU33IajtMExB19vHqy2BUobrgHeM8Y0AcUishiYDHxOgLTBGNMM/MS5TkS+ALYBB+nmNhecPQYAAAM5SURBVIhIOFZgec4Y84p9eL+IZBpjikQkEyi2jxfg/9uic7/d+v/pONtwJN3+M3G87RCRbOBV4DpjzHb7cIe1I6h69CKSYf8dAtwD/NU+9T4wTkRiRCQMmIk15loEVInIdPtp9nVY42nd5ihtcI59A3jBORZgbdgNnC2WWGA61hhkwLTB/j8Ua2+fBzQbY7r9/5L9Nf8ObDLGPOw59QZwvb19veee3gDmiEikPQQ1FFjene04gTa0KdC+FyKSBLyN9cxksXNxh7ajux5QdMADjuexxnqbsD75vgf8COsB31bgQeyHafb11wIbsMZeH/Icn2wf2w485n1ND2zDLGBpG+8TEG0A4oB/2d+HjcBtAdiGXKyHapuAj4ABPaQNp2P9Wr8WWG3/uQjroffHWL91fAykeF5zt32vW/Bkc3RXO06wDfnAAaDa/t6NCrTvBVZHosZz7WogoyPboTNjlVIqyAXV0I1SSqnDaaBXSqkgp4FeKaWCnAZ6pZQKchrolVIqyGmgV72CiLSIVfVzvYj8S0RijvP1T4rIqOO4/juHVlRUqrtooFe9RZ0xZoIxZgxWOYOb2vtCEQk1xtxojNnYebenVOfRQK96o8+BIQAicq2ILLd7+38TkVD7eLWI3Cciy4BTRWShiEy2z11t1whfLyK/cd5URG4Qka0i8ikwoxvapVSbNNCrXsUugXEhsE5ERmJVAp1hjJmAVXBtrn1pLFbZ4mnGmEWe12dhFZ46G5gATBGRK+zaJfdiBfjzsOqPK9UjBFVRM6WOIlpEVtvbn2PVIpmHVWZ4hb1wTzS+QlMtWEWpDjUFWGiMKQEQkeewFi7hkOMvYpXHVqrbaaBXvUWd3Wt32YWinjHGzG/j+npjTEsbx4+2lJvWE1E9kg7dqN7sY+AqT6XKFBEZcIzXLANmikiaPZ5/NfCpfXyWWOuYhmNVGVWqR9Aeveq1jDEbReQe4AO7HHET1pqwu47ymiKxFjVfgNW7f8cY45Sb/QWwBKsS5pdAaOe2QKn20eqVSikV5HToRimlgpwGeqWUCnIa6JVSKshpoFdKqSCngV4ppYKcBnqllApyGuiVUirIaaBXSqkg9/8Botl7Tt5cRCQAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def convert_date(year_month_day):\n",
" year_month_day_str = str(year_month_day)\n",
" year = int(year_month_day[:4])\n",
" month = int(year_month_day[5:7])\n",
" day = int(year_month_day[8:])\n",
" return pd.Timestamp(year=year,month=month,day=day,hour=12,minute=0,second=0).to_period('W')\n",
"data[\"Period\"] = [convert_date(ymd) for ymd in data[\"Date\"]]\n",
"data.plot(x=\"Period\",y=\"Concentration\")"
]
},
{
"cell_type": "code",
"execution_count": null,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment