{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Plotting data with matplotlib\n", "\n", "Plotting of data is pandas is handled by an external Python module called *matplotlib*. Like pandas it is a large library and has a venerable history (first released in 2003) and so we couldn't hope to cover all its functionality in this course. To see the wide range of possibilities you have with matplotlib see its [example gallery](http://matplotlib.org/gallery.html).\n", "\n", "While working through these examples you will likely find it very useful to refer to the [matplotlib documentation](http://matplotlib.org/api/pyplot_api.html)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we import `pandas` in the same way as we did previously." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from pandas import Series, DataFrame" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Throughout this section we will also need to use some mathematical functions such as $\\sin$ and $\\cos$. They are provided by `numpy`, or *numerical Python*:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some matplotlib functionality is provided directly through pandas (such as the `plot()` metho as we will see) but for much of it you need to import the matplotlib interface itself.\n", "\n", "The most common interface to matplotlib is its `pyplot` module which provides a way to create figures and display them in the notebook. [By convention](http://matplotlib.org/faq/usage_faq.html#coding-styles) this is imported as `plt`." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once we have imported matplotlib we can start calling its functions. Any functions called on the `plt` object will affect all of matplotlib from that point on in the script." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We first need to import some data to plot. Let's start with the data from the pandas section (available from [cetml1659on.dat](https://raw.githubusercontent.com/milliams/data_analysis_python/master/cetml1659on.dat)) and import it into a `DataFrame`:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECYEAR
16593.04.06.07.011.013.016.016.013.010.05.02.08.87
16600.04.06.09.011.014.015.016.013.010.06.05.09.10
16615.05.06.08.011.014.015.015.013.011.08.06.09.78
16625.06.06.08.011.015.015.015.013.011.06.03.09.52
16631.01.05.07.010.014.015.015.013.010.07.05.08.63
\n", "
" ], "text/plain": [ " JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC YEAR\n", "1659 3.0 4.0 6.0 7.0 11.0 13.0 16.0 16.0 13.0 10.0 5.0 2.0 8.87\n", "1660 0.0 4.0 6.0 9.0 11.0 14.0 15.0 16.0 13.0 10.0 6.0 5.0 9.10\n", "1661 5.0 5.0 6.0 8.0 11.0 14.0 15.0 15.0 13.0 11.0 8.0 6.0 9.78\n", "1662 5.0 6.0 6.0 8.0 11.0 15.0 15.0 15.0 13.0 11.0 6.0 3.0 9.52\n", "1663 1.0 1.0 5.0 7.0 10.0 14.0 15.0 15.0 13.0 10.0 7.0 5.0 8.63" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv(\n", " 'cetml1659on.dat', # file name\n", " skiprows=6, # skip header\n", " sep='\\s+', # whitespace separated\n", " na_values=['-99.9', '-99.99'], # NaNs\n", ")\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pandas integrates matplotlib directly into itself so any dataframe can be plotted easily simply by calling the `plot()` method on one of the columns. This creates a plot object which you can then edit and alter which we save as the variable `year_plot`. We can then manipulate this object, for example by setting the axis labels using the `year_plot.set_ylabel()` function before displaying it with `plt.show()`." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYwAAAD4CAYAAAD//dEpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOx9d7zkVnn2c6TRzJ3btnuLe6+YZoyNaQZjSkiAJB+BkEAIhBAgkIQvCeELNYFAKoFAiIPBxAktoWNjB3fcsNd9ba+9a3vt3fX2e3dvnRmV8/0hvUfvOTqakW7bu7ae329/e0czIx1ppPOe533eIqSUqFChQoUKFXrBOdgDqFChQoUKhwYqg1GhQoUKFQqhMhgVKlSoUKEQKoNRoUKFChUKoTIYFSpUqFChEGoHewDzhZUrV8pjjjnmYA+jQoUKFQ4p3HHHHXullKts7z1lDcYxxxyD9evXH+xhVKhQocIhBSHE43nvVS6pChUqVKhQCJXBqFChQoUKhVAZjAoVKlSoUAgLZjCEEF8VQuwWQmxg2/6PEOJ+IUQkhDiry3dfJYR4SAixWQjxoYUZcYUKFSpU4FhIhnEJgFcZ2zYA+FUAN+R9SQjhAvgigFcDOA3Am4UQp83TGCtUqFChQg4WzGBIKW8AMGJse1BK+VCPr54NYLOU8lEpZQfAtwC8bp6GWaFChQoVcnAoaBiHA9jKXm9LtmUghHiXEGK9EGL9nj17FmRwFSpUqPB0waFgMApDSnmRlPIsKeVZq1ZZ804qVKhQoYKBiXaAH9y1vefnDoXEve0AjmSvj0i2VahQoUKFOcBHf7AB37trO45ZOdD1c4cCw7gdwIlCiGOFEHUAbwLwo4M8pgoVKlR4ymDXeAsAMN7yu35uIcNqvwngFgAnCyG2CSHeIYR4gxBiG4BzAVwmhLgy+ew6IcTlACClDAC8D8CVAB4E8B0p5f0LNe4KFSpUeKrDdWJTEEbdO7AumEtKSvnmnLe+b/nskwBew15fDuDyeRpahQoVKjzl8b07t+HoFQN47tHLMu/VHAEACMLuBuNQcElVqFChQoVZ4m9+uhH/ccsW63suGYweDKMyGBUqVKjwNMBkO8BkO7C+Rwyjl0uqMhgVKlSo8BRHFElMdUJM5BiMlGFEXfdTGYwKFSpUeIpjyg8BINdgVAyjQoUKFSoAgHJFTbZD6/sUJVWJ3hUqVKjwNAcxi/FWd4bRCSuXVIUKFSo8rZEyDN1g3Lx5L8JIwnUTgxFUBqNChQoVntYgV9S0Hyqd4ueb9uA3v/ILfPn6R+AlDKNdGYwKFSpUeHqDMwtyT+0eawMAHtk9AUcZDLvGQagMRoUKFSo8xTHZSQ0GGY9E50YkJWSidVcMo0KFChVKYLoT4tu3PwEpu0cMHQw8/9NX4W9++mDu+9du3I1X/OP1GS1iwsIwHJGE0so0/6LSMCpUqFChBD59+YP48+/eh59v2nuwh6JhqhNg11gb/3b9o7mfuWfbfmzaPYH9Ux185Acb8IyPXxl/l4XTksEQicGIpAQFR/VySR0K/TAqVKhQYcGwcywu9d3yu0+eC41NuyYAAI1a/jr/wHRcnnysFeDSWx+Pt035OsNoEcOIX0spESYMo+1XDKNChQoVCoOiiGpJqOliwUM7xwEAJxw2mPuZsWnKt/AxUHcBxKyDi96ThksqitKig5WGUaFChQolQJMnZT8vFmxMDMbaJU1t+4FpHwemfHz2io3YNxlHPk20A5y8ZggAcNcT+zXR29QwIikRJefcS8NYMJeUEOKrAF4LYLeU8oxk23IA3wZwDIAtAN4opRy1fDcEcF/y8gkp5a8sxJgrVKjw9EOQOPQp+3mxYOPOMQDxBE+4e+t+vP6LN2Htkj7sONBS28dbAeqJ6+quraMY7vOwpOnhwLTPDAaS/XGGsXjCai8B8Cpj24cAXC2lPBHA1clrG6allM9K/lXGosIhh22jU4sy6uZQwnQnxL6J9rwfhyZP0cNe/Ms1m3DH45n17bxh93h87j4r33HbY/sAQDMWQOySIrbw80178dDOcRw21ABgcUlJqdxwi8YlJaW8AcCIsfl1AL6e/P11AK9fqPE8HfHFazfjhof3HOxhPO2wdWQKL/rba3Hro+btX6EMPn/NJvzGRbfO+3Fo8uxR6Rufv2YzLr9vx7yPh0AGgFeUpdpQ/Ylewbe3gwinrR2GKwQe2jWOZf111F0H4ypKKv7sojQYOVgtpaQrvhPA6pzP9Qkh1gshbhVC5BoVIcS7ks+t37OnmhhNXHzjY/jJvU8e7GE87TAy2YGUUP7lCjPD3vE2RiY7834cYhi9ekMEYaSt9ucbZDB4RVkyGEcu69c+O94K0AkiHL2iH7//kuMAxNFf/Q0X053Y7aQMo0z/XjQaRi9IKaUQIo+zHy2l3C6EOA7ANUKI+6SUj1j2cRGAiwDgrLPOqvi/AT+Iet4QFeYeNPH0Kh1doTuCSGr++/kChZh26w0RRRKR7D3BziXIOPnMkI0lYbTDTX0qn2jHDKNRc/AnrzgJjZqD41cN4hM/fkCFC9PpRZEESeKLScOwYZcQYi0AJP/vtn1ISrk9+f9RANcBePZCDfCphE4Y9SxfXGHu4SeGorr2s4MfRj0b/MwFyLD7XQw8sZCF/E1tLqmxhGGY14U0jHrNgRAC73vZiXj1M9aiz3MwneRakPE9lFxSPwLwtuTvtwH4ofkBIcQyIUQj+XslgPMAPLBgI3wKwQ+jnok5iwWP7pnAlr2TB3sYcwKagCqGMTsEYRr+OZ+gibSbcSpaSmMu0SaGEXKDETMMc6KPNYwQjZqubfR5rmIYqUuKGYzFkrgnhPgmgFsAnCyE2CaEeAeAzwB4hRBiE4ALktcQQpwlhPhK8tVTAawXQtwD4FoAn5FSVgajJEKi0IfIKvcjP9yAj//4/oM9jDkBuRB6+cTnCw/uGMOpH7kCOw5MH5TjzxWCKEK4AC4pZeC7/F7EMBZKw5BSMoaRdUmZBmOiHSiGwcENhmIYEdMwepzPgmkYUso357z1cstn1wN4Z/L3zQCeMY9De1qAbuxelHOxYKIdolF7aqzIaQI6WPrRpbc+jmk/xFUP7sZvn3P0QRnDXMAPJRaAYChj0JVhLPBvylmFTfTm4xiouxhrpRoGR5/nZA2GTLWhdo9yKAfbJVVhgUCG4lAxGGG0MP7qhQAlggUH6XxcVQLi0L6eQRQtyDmEKkqqm8HIuofmE5zJcNF7PHFJcYNx+LImxqZ9BJHMMIym56LlE1OJt0VSgk5jsWsYFRYIdMPRjfWd9VsxugAhijNFEMqDNsHONXyagA6SO9BNUnoPdQPsh3JhXFIFoqQWWvTmBiHkDCPJqaDopiOWNXHymmHsTRIcu2kYZHxDmbq5ej1zlcF4miA1GCEe2zuJP/ufe/H+b911kEeVjzCSmq/2UMHZn7oKb7roFm3bQq9GTfCM3kMZQRhBSsx7xnwxhrGwLqmOxjBS/YQuBY3j+j89H2uGG8pVZWMY04ZLSkpZOCCjMhhPE/hBuiKiG2Xb6OIVQWODcbBHUR67x9uZjO40TPPgnJDDMnoPZQQqqmdu9yulxFd+/ih2J2XNlYbR5fciFrJQvykZhP66qxYg+6d89T65khwBDPV5arupYTS4S8oSVrus30M3VAbjaQJaofCwucWcxOdH0SHJMGzwC9L9+ULqkjooh58zEEOba9fanok2/vqyB3HF/Tvj/YcFGEbBzOi5QpsbjOTYvMdFEEm4joAQAoONNJYpGyXlZF1SUWw8XnvmWtz10Qu7jqMyGE8TKJcUK2ewmAXw8CmkYRx0huE8dVxSwNyfBy2iaPL3C2gYKut6gX5TOk5/vZbrDqOFwVBfajBMhtHUwmrjbTJhGEWq81YG42kCLnqrB2MRLzmDKL6Jv37zFtz8yOJqlVkWCz25mKB54FAXvYuEu84EtHAiFl5Ewyhae2muoLmkctxhFA3XzWD0eTFD4VnzUaJhOJXBqEDgrMKMmFqMCKP4Jv7Yj+7Hb/77Lw72cGYFVczuIIne7lNE9PZnyTCuemAXvnrjY5ntagEV6Aap2++VlntZmGtKxqzJXFKmh6CmGAbXMMwoqXjKb/mhltEeyYphVGCgmyuMJKY7hwbDONQnOMJBj5JyniJ5GGGxsuN5+N5d2/DVmywGgzHAIIyUq6abhhaoRdfC9P0mozZQr0Em1WUzDMMt5pICgJYfsSgp0kB6m4PKYDxNwCeriXYcXbGYNYIgjBb1+MrAL1BqgmPL3kkcmPZ7f7AgiGEsRA7DfELlR8zwPNp+pCKEOLiLloevFnFJLdQigMbYTPpeBFG2tDoxhG6id0MZjFBP3Isk3ALWoDIYs8Cf/8+9+PmmQ6Pvhs/oK8VoL2aQhnEoIS8/oGwI5kv//jq84Ys3zdm4UtF7znZ5UDDbKKl2ECnBl6PDNAweRdhV9F7gxL22YhiJwQhlxqXsiN4uKWIYt28ZwVTS55v6YdQKMIxF0w/jUIOUEt9evxXLB+t40YmrDvZweoJPVpPtxW8wYg1j8brMbDBXm//nyzfj7ecdW6hctolH57BSLxmyQ98lFd8PM03cawchpv0QUkoI1n+1E8ZGxA8jTRcoUhokjGh1Pr/9v1WUVMIegjDrkqpZoqRsxQcB4E++c4/aljKMSsOYN6TC2KExqfGV0MQiNBhXP7gLv3/pegBJ5ukhyDD4AxxFErdvGcV7/uvO1CU1x/fKd9ZvxV98796en6PDLuT1vHbj7jnXyGhVP2OXVBAlvn/9+8Qq/EBqDKRIaRBg5lrgzY/stZbnGW/5uHmzHhmooqS81CVlit6kYTRqDjz2NweJ3hyxhhFVBmM+kbZxPDQmNd9SfwaY/zILRbH+8VFcef8uFRMOpBPEoYCP/nAD3vrV29Rrfl+kLqm5PZ9bH92Hqx+09hzTULRO0Fzh9i0jePslt+Pv//ehwt95xyW39+yPzVf1MwEZhpYhVHPRW2cY3UTvdAwzcUtt3z+N3/z3X+AjP9yQee9bt23Fb138C1VYkB+jX2kYWcNHWhVP3rOVBsmcS1LoszIY8wh/ljfvQuGD37kHb/nKrdoqaIJpGDYR8GCATwYLnUU7E+yf6uCKDTvV6/+45XHc8fioes0jvPx5StyzuSWsn1tgfzuVrHhk90Th71z70G7c9cRo7vvUEhUAZrrGoQJ9rU5obGcaRtCbYdzx+Ag27hxTr/0Z3KdXJveO7Ri7x1uIZNpND2AMIzEEfpjmU5FR4BM+6Ri2PAwTQbgIE/eEEF8VQuwWQmxg25YLIX4mhNiU/L8s57tvSz6zSQjxtoUaczfMxC99MPDdO7fhps37tMmXaxjj7bmLxpkNfFaOYbEbYQB416V34N3/eQf2jLet72sMY57KmwdRVCi3g1w4M5nYZoJa4g4p+myo5l5dxsdLes9G9Aagiu8BwAkfvhx/e8XG+Bgmw8gZ/6/96y34wjWb1euZGGJabKxd0sy8ty9xU03YDEbCMHhYLbEGLlqTjmErDWKik4QSLzaGcQmAVxnbPgTgainliQCuTl5rEEIsB/AxAM8HcDaAj+UZloVEWj5g8a6CObhvlmsYk+25iyP//NWbcMyHLsOG7Qdw7cberhIOHkl0KLj5aPUsYR9rqLmk5kfD8EOpTaR5COeJ4eTBSyauosfjZWvywCfvohrGd+/YhmM+dJkKUbYZjCCS2DvRScZRXMPQxh+Uv1/v2bYfQNY9BgAjZDDaNpcUMYw0SooMBs/UJpeUrby5CbourlhEBkNKeQOAEWPz6wB8Pfn76wBeb/nqKwH8TEo5IqUcBfAzZA3PgiNgK+JDATsOtNTfPKx2LiOmPn/1JgDAa79wI95+ye2lvhuwkMlDgWHQAyxgf8j4OaQTYu/zKhPJFITlGMZ8uaR+52u34e+vTPUKVWyxIMPIy1zWPsP2VfQaffHamAXsTO596iZHblhTv/PDSFtAFX22KcqqKDiTsfXQJiF83MIwmkz05tnfADSXErmkSPwm2AwG7dt1F5HByMFqKSUpXTsBrLZ85nAAW9nrbcm2DIQQ7xJCrBdCrN+zZ37zI5TBWIQuqSiSmXjzx/elYZqcYcxlxNTKwcaMv+szF9+hEHlGD1leNrrGMEpESZXJbg8SvadX4EJa92h+7tVH90zikT2pXqGijgqyb3KVFXVJFbWpk0meAf2vGEaHwmj1HXWCSC2g6jWncKJl2es6xTSUtoVh7LMZjDBC3U2jn3geBhkBXcOooVFztPBhwC56ExaVhtELMr7rZ3VHSykvklKeJaU8a9Wq+c2NKFLR8mDh67dswQX/eL227fGRKfW37pKaQ4MxVJ/xd0N2PQ8F1sYL1dkmOt0lVVzDKBMymhY17P4dOu58uaTCSGrsgK5N0cVUkdpmmkuq4P0xlbCFA1O+VjmAFlOmQQgiqYzLkqZXePz7JtulmCF/5mxBJ6lLSmcYniuUPkQFBGuOQD3Zxif8VUMNLGlme1vYGAbBWUwuqRzsEkKsBYDkf5vjezuAI9nrI5JtBxWpS2rxrYa3jkxj2+g0wkiqm+aJfcxgsJULb8IyW5gMowxT4F3EFqMRNkHzehhJLfyREFqipIpEfZW5nYreg1FU/PgzQSR1o0mun8IaRoEoLi3HpaBRpcn/wLSv7XvatzMMP4zUJL2k6RW+D3/74tvwr9c/UuizAFSGNZBlGC0/VAzEFL3rNUcJ20HSpqBec5R2wTWM97z0ePznO5+fObbrCPzkD19oZROHAsP4EQCKenobgB9aPnMlgAuFEMsSsfvCZNtBhV9yFbWQIJ/qVCfQ4rYJE+0AQ40aao7A5j3FQx97YXm/zjCmLGUY8mALqz0UEElpLbXC+y6re6WANSjjkkqN7MFlGJGU2sRHbKOwwSjgkuL3RJGJXMo0DPfAtK9pBYphGOMjl5TrCAywqrBFcE2JII8JppOYGsYIS+Tj+VJkHGhSDxJm67npNj7hL+2v46TVQ9bjn3H4Eiv7cAsUk1rIsNpvArgFwMlCiG1CiHcA+AyAVwghNgG4IHkNIcRZQoivAICUcgTAXwG4Pfn3yWTbQcViTtyjm3CqE1of2nYQYaBRw3GrBvDQzvG5O7CxQJkqEYHFV8uziTz70T1P4tJbtsz4+2URMwyLwWATfxm9q4xLSoXr9piYwwIr+NkgjPTJnv4u+mzwCLmpToA/+c7d2L5fbx8clGQYvHjjgWlfc5l1YxiT7RADdRc11ynFdJcPFHfHTiWGoOm5GYbBDYaVYbjEMCQ6oYTnOkq7KFOexPbZRcUwpJRvllKulVJ6UsojpJQXSyn3SSlfLqU8UUp5ARkCKeV6KeU72Xe/KqU8Ifn3tYUaczfMNut0PkEPx1Qn1B5kYhsA4NUETlkzPKcGw5wQJzvF9RGfGeDZ5LZ8785t+MZtW3t/sCSmOgHe+193qogbQswwLC4pZvT8EsUHy/jCi1ZMne9mPzHDYC6poBz7JtG4E0T42k1b8L07t+M/b31c+ww/xyIG48n96e8UG4x0Yk5Fb/16+KHERDvAYKMG1xHKkI21fGxlGqANKweLG4zJ5PjLB+qZyDDNYLCw2nYiepOG8fCucYxN+2gwN1UZg2EzDosqrHax4NJbtuBiSxOVspiv7N25AD0ck+1AW1UO8LLHroOT1wxh+/5pjFkmvJnAdLmUYxjpJDMbI9wJ5qcX+ObdE7jsvh2408hGDiM9I5dvJ5RJ8ixz6kU7+YWzcElJKbtmYANZg8GrvxYB3TftIMItj+wDABy9vN/6GaBYb/IdB1KGYjKMdg4DihlGgIHEXUvX7YvXbsab//3WrscrwzBI9F4xWM9EM5LBqLtOJqyWu58++ZMHcNl9O+C5QmkXRRgCwdZdb7El7i0KXHbfDlx275Oz3k+wiKOkeIISn6R4nXzPdXDKmtjH+TBjGQemfGzYfkC9/tJ1m61dymwwJ8QyIbs8r2U2br4yiX93PTGKd196R6HfkM7NdCGEkbQaXD7BldEwytxPRd2is3FJ3fLoPrzhSzfj4V35TNSMFKNrNN0ptmDgiXvUjtc8I79klBQFcwzU3YyGQeMyXXkkeg8ohhEfZ3Syo3Ij8kKY625+9JEJYt42hkHPzOoljUyUFGcT6rhM15gtw6gdAnkYC44omptJfi4T93aNtXDu31yNR+dIgKaHd6IVIIykqqHP68U0ag5WD/cBAEZZpNQlN2/Bmy5KV1NX3r8LVz24q9Bxw0jilDVD+Pa7zgGgR4P0ggo9DWfHEDolGMptj43givt3ar7i3PFRi1tDpMwTvfkpBMx11CtnIs/d8vCucTz/01dppUiK5neo488gD2Ms0QK69VCJIl30pvtvshMUKm5JLqnto9OKYZnnxF8X2ScFXKxZ0pd1SSXvmQa0E0TKJeUxDaMTRGj10GXK3LPEMJb3Zw0GMY4VAw3tmpPobSbicQ2jSD8Lgs24HAphtQuOUMo56TxWZtXYC5fduwM7DrTw9Zu3zOj7W0em8Nov/Bx7J+LJhG7C/dPxqmjd0rhezf6pjqox47mOKkym1ZnqBJhopw96WLBeERBfkz7PxYokvHay4AoT0CfV2WgYnaDceIFiCWZmDD8hL6yW3xd8suu1wMgzGBfd8Ch2jbVxzcbUeBcpqRGPsVzUEgdlp3czwmGOhiGlXoYjD9wlZR43/QxjGAWe3+lksbJ2SRMHpuyit3mf+KFMXFJuzDCYK5H6s+RdhzJzCmWTLxvIuqRonCsHswyjXnMyE3295ijtweZmyoPNuMyL6C2EGBBCFOdfBxFXbNiJk/7yp9pKN/7h54BhqPpAs98XFQibaRTLAzvGsGH7mKpvRKspouVkMMZaAZYlvtZ6zVHHtVXoDNn5FTWKQSjhuQIDjfj2mCrhkuLd1GbDAGOXVMEM3RId3GiyNVeEYR7DYBMIN8i97pfcCSnZzvsuF70H6e2ZiN5pxFP+dyMJq4YBFHNL2gyZzV1EKPJ7US7D6uEsw8hL3KMoqcGGp2kYqoxHkO/uLONpmGzH4e5xlJQ+hrYfQghg+YCnR0mpTG99yvZcR5X0KKNh2BjGnGgYQghHCPGbQojLhBC7AWwEsEMI8YAQ4u+EECcUHuUC459+9jA6QYQte9MIB+ouNVukDGP2+6KVvq2uTBGQT5ZWTrQf02AAaa5EzDDiiZ3ftMpQsP+LniO1eaQCaaUYBlvtz+aadoLiiX9lfsMg1CcPQhTJjEurxlangH4derGZvLfpnLhLoijLJYZBC5L/uWMb3vKV7iKueYxu1zRKNAxipXxyLlLc0sYos4J0uSip6U6IRs3Bsn4vNw/DLOkRJGxxMGEYZnRbO4i0/BqOvO02THZCDDTi0h286iwdo1FzMNTn6f0wSPQ2XFKNmWoYFr1irkTvawEcD+AvAKyRUh4ppTwMwAsB3Args0KI3yo80gVEP610GcMIwrlxSQUlVqe9oFb6M2QYtJpqGb5ZikU/fGmf+ixnGKmhyjIMPlEUdRH5UYSaK1T4bhmGQRNEGMpZaRhlRG9KGCuSkZ66TcLManeiE6DOVn6uI7R7jJeC6MUG+GTIffV0fP5Q94q+igwGQuPesP0Abn+se+QToYhRNYsbcqZcpPSMjWGYbEjLw2Bv/fbFv7BGPU51QvTXXSxpepj2Q5UEN9SopaK35T4ba2WjpDpB+tub36HfvcycMtUJMFB3VZkOvghp+SH6PBcDdReTnVDdA3kuKS0Po4AGQZg3hgHgAinlX0kp75VSqjNLqsd+V0r5awC+XXikC4iBZKXLMybnimGk9YFmr2HYtIQyIINIdWlShhFrGIcNpwaDGEbdddDwyCXFJkCpTzJxz4X4/R/evb2rMB+EsajuubG7qwzD4Kvl2bj5Ol1WgfnHLBEl5UeaXz6UEtOdEMsG0sxZRwjtHgsiqRYFPUNgLSVFgPT34G6HNFAgO/6JdoDjPnw5Lr7xMWWEIhlPvO0gRCeMCgrS8THy8kOklKpMiq0C60wNRsZdlKNh3LN1P+5/8gBMxAajhsFEs6Nw1SX9Xq6GQYijpBz1PhnAtp9lrw9/6tVY1t+7jMj/+fLNeOU/3QCAXFK19PnzubssZhh0v/AIt3rNUaXjCXU31TCKVJsl2EuDzE2m99FCiPPMjUKI84QQxwOAlHJxdOExQCvdAywKaK40jLRP8+z3FbEHzla9shemTJcUaRgJw+AFxzQNw7UYDFqNUthwIviFkcQHvnU3Xv/Fm3LH4YeRykQdqLvloqTmKKy2U4Jh2DSMn2/agxs37c18lguzvGNbFMUGexkriyKRXZRQldBeBoNPzDa/PWkYUqbMz9znN297Auu3xMUQ/uonD2gLET9MBeoimhlvbGUdL9vM8y8oMm/nWMv2NesxOMznSmcY6XutILK6cqf9AM26q3KPlMFoepimaro55z9oMAzukrK1DXYdp+c9d/uWUTyUhCbHOklNLRRb7PdpBzHDoOeI1yFr1JyMUfBqqZtqJhoGzx+ZK4bxOQBjlu1jyXuLFmQwRqfS7MlwrhjGHGoYdEPe8PAenPyXV/TMKjVhuqRUlFRiKOuuwOuetQ4fevUpWJ6shDvJ5F5zhC56S30S9aO4SQ+xlW4iJg/bHWjUSjVn4qvlhdYw+MTxhWs241+u3WT5bOqf5xVGQykx1Qm1By+SWVel6mPQ0yWV/s0/GyiDkRw3x7BEkcRffO8+/M7X0n4k92xLV+CdIG3tWcTV2EvD4Ns5wzhl7TBcRxSqJGCbuM2x2RooUf6HLRJrsh27pCj3aN9EajB6nf9AowbXTfMw6PMtP7SyV9fpnqFveg4mOwH6G8wlZWEYJG5zN1/dzTIMzxFqoi8SFksgNnHEslTfnCuDsVpKeZ+5Mdl2TNEBHgzQD8LzDKJojjQMI5poNjD38URJg0EhhCq+PLlBKYa+XnPwz296Nt79kuPVSpiE2kbN0VZoPDqKXgdh2pVsaX9+RmsQScYwaqVKp3OR3dQwSiyc4IdR8T4Mlskwz+DQ9WgZLqkoig3G0n4P9LxKy6KkWU8b33SDNhYtHJfGSq/Tz423AuWXt3Vw4+iEqcEo4gLt5bazRYO1g3gFfdzKYrXKTCNac0S2bIelH0a3BIYPoa0AACAASURBVMHpToimxxlGHHI+1FdT3+O/BS+bM9hwE4ahX6c4Sip7zWoWhhFGUiX7bWG9aACobHLFMNjzRwyjrtrcpmOwid5+EmgSj6N8pjc3EnNlMJZ2eS/bkHYRgX7E/fPAMOayNIj5wPASHkWQMoxIq/tPLikeikcrYZrMG0Zon0nD4zLKEvuSHI+l/dkqlwQ/jOAlN11/wy1VS4onoZnXo2j0RxDGvYmlTFd8X77+Edzx+CiCMMInfny/VjLCNhnmieZc9J42ggSmE395g/md8xhGr2Y7kUXojs/NYH7svvvgf9+D0z52BYDe2dV+mHZqK2Iw6DN5gQh8vDQRU6TPKWuHsXEGDGOor5btVWHpuEcTrY1hTPlx6Cq5xkamfDgiXsioBk9sn/yZG256mhFQGkYQWucO1xGZ7X992QN49l/9DFOdAJt3p7qflBIjkx0M99XQUKJ3PsPgBoNndRPafqiYxUw0DEcIrF3Sp86jF4oYjPVCiN8zNwoh3gngjsIjPAigm11nGMWiYnphLosPFl0R54GyWlt+qK1KyVDyCB7SMMi11Kg5VpcUZ1BhFGFPYjCWdWMYoVQroLIMI02iy062eW1Qs/vIunA+89ON+LV/vRm3PLoPX7tpC/7y+xvUZ2jy1lw/obS6F1KXVKRNyrFLKp6cKEw5ktkVeVGGwSdgnpltMlrzGtHXpnoYjA7z+RcyGKzGlw0mO6P/67W49Mz2/dPWxEYO/rt5rkDTc62VZM1jtnzdFctBojdnGI2aqy2Q+D552Zw1w32ouZYoKd++mOBlRAj/9YsnAABj0wE27UoNxsad4xid8vHso5alUYo8SiphGGQw6H6kwAmzg17sWp65huEKgROTMuh8YZ2HIgbjjwC8XQhxnRDiH5J/1wN4B4APFB7hQUBH+fLTCxFEUakCb3ng1VVnC/PhL2vQppmGwd1LtFuvxgxGv81gWERvNoEHoVQ+4KWWOvpq3JFUomyf51q7iXX7bnz8rLBY1DXbMSYVHgXEx7JrrIUPfOsuVQPKrPtkZRgsUoa7faJIYrIToll30eel1zlf9O5+v2jaBGcYdH0k/T72/dgmTyCdINoBYxgFelH30jC4/eMJbo2aixMOGwQAPLZ30vbVzDGA+L7xak6GddgyvelcpzohPvKDDbh32371menkNyFDMDLRQcOLQ8k75JJix6BkUyBO9uNGQMvDyDEY5iJDuYVbvuaSor4ZLz5xlXKZ89+s7cfXjp7ZDmOE9Vp2um770YzCahXDcIC/+/Uz8avPPhznHLei9/d6fUBKuQvAC4QQ5wM4I9l8mZTymsKjO0iglbMmekdzEwpbtBdBEWR6C5fcJ63kpzuh9bucYVDjFJpL66aGYYjeYSThi0iVHenmLguiSCWWNWpO4fPgPv/4IdW/V9QlpWVURxH8MJvk5rkObntsBD+8+0kMJyGX5iRdj7IPJk0e7SDUoqRIE+j3aoph0HaOvqJRUlpYLTeAumso7x7OK8XRX3cx3grikFo2sfcCsZwiGgbdR+0gQsNzMNwX32u9sr35efbX3UziI2CvJUXnume8jUtvfRwrBxs484jYg055GHS/TnZCHDFQR8NzGMOI9/OW5x+FI5b1Y8P2OLanWx6G7fersVLoJsZbvjb//O/9O3Hy6iGsWdKHfZN6KR8gZhgNz9E0DGUw2HPc9FxM+yHaQcgS98rXknKEwOrhPvzjbzyr0PcKO8ullNciTuKbcwghPgDg9xC34Pl3KeXnjPdfirgb32PJpu9JKT/Za790oUcnmUtqzvIwZLK/eJVZpo5LZl/maqpkqC49ODzEUAjdKBCW9Xv44wtOwmuesQYA0Ki5mZU5kBbKCyMJgTTKpFuWbZyH4ST71V1d3WBzJXEUjf7gD3MQSkiEmffqNUddL5rINA0jkIg8m0sqnQz5pEyRYAMNnWGYEwutYHsbjPRv01UGMNE75x7Jc0kN1GuJwZjjKCkueocUdBGi7josgbOXrpLuo78eF/6z9apQx0zeMjUMzvyIYXAxe8VAHQ03NhhSpiVvPvyaU3H31pSdAKkuIaVkGoadYZh5Nxxj04HWBvmhXeN45enpsxefh84w+mqueo78IK0ETM/xPR+9EJv3jOPX/vUWtINIPR9Fqs0SZpIdDpQwGPMFIcQZiI3F2QA6AK4QQvxESrnZ+OjPpZSvLbNvm0tqtrWKCNrqT0o4Bf3sNpiTZFkGpPIwOqGapJc2PaXdcNFbCIEPXHCiep3RMFSUVKSt+olhdLt2fpgyjHrNKZyIaBbqE4antLBLSmMYenguGVLPddQDSm/r4at5LqlUw+DHIf98k2XuAmkWOYHKpfS6JvlRUmQwsv53jm4MA9B1LhrLx390P45Y1sQ7X3Rc5ntKw8h1SeUzDGUwehQg5OfS9FzNHXTftgP4h589hJNZu1EyUm1jv7xseSck1uckDEBi2UBdCc2dJJgDiCdas0YTTai8GGbbD63XgesdgG4Axlq+1v2v5UeqAGifJXG2nTAMzSVFBiMZ45J+D4ONJDw+iDQBuyiIjZT5DlCsltS5QohukVKzxakAfiGlnJJSBgCuB/Crc7HjtMxyqFbxURT3+n3HJbfjc1c9PON9m6vZ2cD8fq9IGhOahpGc85olaQCbWRKZo+HlhNUaE+6u8ZbanocwkmrFYmoj3WAyDPMYM2EYYZSW3BYizfav15xMJBGPAOoEkV30Tj7T8kNNYyGW0l930cdcUubqnSJRehkMfmwt90AZjOS9nN+hlcMwqExO24/URNsJIuw80MIlN2/BX1/2oPV7KcOwj1tnGJFakTdcRwn90z2i5TjD7q+7qLlpWO2dT4ziuof2YBdLAFRRUgaDpd+bDFR/3YUQQrmllg/UtaoKyk3ppGXDlyVRgDShcgPc6qJh8N+Dd2UcawXYP9XBqqGG2kaTPS0wxgyD0ldz1Xj8MNLYMWFNcj+98awjZ1R8MDUyhb8Sf77bm0KIvwKwCsC/ldttKWwA8CIhxAohRD+A1wA40vK5c4UQ9wghfiqEON22IyHEu4QQ64UQ6/fs2aNNWKZoePXG3fjcVdkEraIwV6Wzgfkw/u/9O3HeZ67Jden4YYSzP3UVfnxP3AgqLQ3CDMZweoPaxDJCo5YfVqs/BN0ZRkzx0zyMMgwjNCZJ04AWXQTpv3ekXnuOo/JO6q7IrML5eQaRPU+HMww+wVGl2v56DX90wYk4/+RVALIaBrkAexlRfnm1RYmhYeQxjG4uKTo+F73/5464ne2SnGAG33CFdRtv248SV2Ycrk3H7Bm5xX7vZt2F56QuKfpfy31Rorc+KOWiSo5HRpKE7xXMYLSTMviOiHMSiGFQFCFNqHxxkRclRXpHGEn85N4ntX7kY9Mxw6AFAwDFMFYM1HHCYYP47/XblBFsKw2D9e4OsgZjSdPDo59+Dd75omPT0iBloqTcmbmkejGMmwCcA2DmS/EekFI+COCzAP4XwBUA7gZg3mF3AjhaSvlMAF8A8IOcfV0kpTxLSnnWqlWr9Mb0c5iZDZg+1dnt04wK+t5d27F9/zTueNxeIG7PeBu7x9v4xI8fAJBWQyURDEhXIIAulpnIDasNpZbVmkYU2c+VtnuKYWRLN+fB7BdhGtBu13dksoMrNuwEkGUY5BqouUL1R/YjmTUY7Dz90F6LKo2SCrXPpwbDxQtOWInzTlip7fNPX3kybvrQy9RqsqdLKk/0NvIw8lhtEZeUKg0SRLjuoT0A0pU1YfdYC8d86DL8fNOe5Lj2cWsuKUOgJYZhGoy/+N59eMOX0hIz/PdvejHDMBuUTbNoILoGJlPcPd7Cy//hOtyelEWhc6b/lw3UWUn/KHGhxq+JKa5IDAYdi1/POA8jex1Iw7j0li143zfuwheuSReiT+6Pm0KtZvXcyIAJIfC+80/AQ7vGcePmvarQZ8ww0jyMtuGSUsd1BIRIM73LaBiqh8ZcuqSklFdIKT8spfxIqb2WhJTyYinlc6WULwYwCsNASSnHpJQTyd+XA/CEECt77VdbcSY3YLcU/jLQQzFn65IyBNLkBqeaRnc8PoLPXrERdzwePwhpxJKryiMAJsPgLqleBiPPJaW7auL3c1wTEfmDU4ZBTWd6wdcYRnYV1y0x/4+/fTfe/Z934Mn90xkNg86r5gg1IXSMWlD02fg48QNrYxi+WgHqmeRkiGhSogeQJvu3nns0Dl/aLFyRWK8lxaO39Ak0N0rKODe6l/objGGomk9SVRUwI5losdKrlpRWGsQPlbuLQlgdkR3TN297Anc9kYrMZpQUF73p/mkl5coBxjAMBv7wrgk8smdSjb3pxec8oDGMtByHH0r1bFAI8HteGndroMmX10OLjUy+hrEvyezmeRdbR2O2sWY4yzAA4HnHLgcQu7Fo4dbn6aVBuoXVApihhjEPBmOhIIQ4LPn/KMT6xTeM99eIJGNFCHE24nHv67XfdhApd4byxc5BWRDA7l+e8b5yfPY3JKu7f756M/71ukfw+avjOIDdY7HB6K/XtBu65adRUpwC93RJWTWM7iUyTND15S1ggWIhwlmGoR+jW2QWGc/d4+1MdVc6r3rNUUzAjHICeKhqvvtFMYwg0hLqKEqKJifX0Q2GihpzizEMfq6X3vq48t3TNaH38xYp5rlRtdYBi+g93vKxO2n5Omb09DAXGbl5GFqmd6RKyCxpehBCJPdo7ygpylNp1mvwXMEqKRDDCFkmPZJz0a8lleKgiD4y4oNKw2ho92UQpUlvKwcb2PKZX8L5pxwGIP3deD00nun9iV85Hdf/6UsBpMUH6TvExlcPN7AtMcic8fMkQRrPWMvHl659RG3jGoYpeptw3fKlQWYaJVVE9O65xyKf6YHvCiEeAPBjAO+VUu4XQrxbCPHu5P1fB7BBCHEPgM8DeJMsUJu5E4TKj0oNXubIXlj9yzOFOQlTSY0Hd4wjYq4VunEo63qg7qrVm+sIbTLgN2i3GymOS7dFSdmLAOZNHKr8NouS4mPuBl30jldx/EbuZpCp1MnOA63Mb0IrUM911Aq67YeqWql5/DR0NTtm/htN+enkSmI6hc3SsOl3oND4tJR898mTn+sND+9RbXvNYpdFXVK0ulZNrdqBegYe3RMnlJ1w2GCcAc7GZro3itaSolLjp60dBhBrEtN+7zwMun5xHoajnimuYdRNhpGjRdEiggwG7Xv5gMdKikcawzBBC64tLOmQaxjnnbASR68YAAC4Ih5TTU3y8WdWDTWwdTQxGNwl1Zc1GP9xy+P4l2vjBSHP9M4TvTlmo2GUTQco1EBJCPGHyepfQQhRF0K8TAjxdQBvK3VUA1LKF0kpT5NSPlNKeXWy7ctSyi8nf/+LlPL05P1zpJQ3F9lvh92ItpXrbKAJpbN1SUURVg7W8Y9vfCaAVEik5jxmLDwxjGbdVau3ZUmdf3IJcIPRzZ7nuaT80N6XIm/iIDcNuaRs3fzyYNZMCqNIPUhAd5cUFUPccWA6cx7EMGquUAyjE0aWKCmp3uOv9fPjrIIZDBZWC6TX2mQYtDoswzAA4P4nx7Qxkcsqr5yMeW5DymDE4+O9YR5JepvQ5M47BxZlGJyNtYMIG7aPoc9zcNyqQXXc3gwjYoYtznLOaBidMC29Qu7BHL1mz3jKwIFU8F8+0EDdTe9LXvvMxHGrYmPAa2HFeRg6kwagemfwbX2egyVNTxkPTfRupHoRnRO/vjys1paHYWJGHffmI0oqwasQi9DfFEI8mbRmfRTAJgBvBvA5KeUl5Q67MOgE6Y3oh9GcuaNof4TZCulBKFF3HbzqjDWZ9w5M+axMR/z/7iTEtR1E6mFcnjSUp9r63Up4cNQLahjm+3nb6UYswzDMMt5BJDWD0c0l1Z+4MnZkGEYaVuu5aZRU249yV6bd6oNxtxl3U0ywKCmAuaQStxU9kI4jUHNEgTwM/fX9Tx6ItRVTw8hjGKaGkdz/nhu7OXgIpzIY62KDwXuTZ8vV9NYwiGGcmpQ2B2IRO89gkJMgiCSG+mqouw6W9dfhOUIZb/pNW9wlZWR6myAGTq4fLayWMb0gTPu3mDh8aROeK/DQrrSzQ4sFPPDJmaKk+L766zXNMGguKcYwPFdACN0Y8LBaLQ8jj2HMwGBQ2HCZciJAAYMhpWxJKb8kpTwPwNEAXg7gOVLKo6WUvyelvKvUERcIEvFKnW6aGzftVfR+LjDXGobrCmvHqwPTflqeITkm+Z0n24HSMJYP1BFJVracJZF1Q6PmauI0Lz5onTh7uaQMDaNItrfO1mLthK9wuxkM2v92Q/TmDMNzmEvKqDZLx+TjsIreRmQUPdC0X/LB0zPrR3FUD2d3RUKNzXPdO9HBrrG2mjgf2zuJv7tyY24wAT831xFqEqs5An01VzMKW0emUa85OHblgHYu8fmakWo5UVK8XlcQ4oEnx3DGuiVqW3/iNg3CCPsm2tbIxU4QYaBew/fe8wK86ewj9SgppmHQPWFWqzVBmdXkXVg11MBQoxZXiOV5GJHMjSyquQ6OWt6vlWcfneqoffPvxb0zIi3fqem5GG6ygoaWsFogZqSNmqMl9+lhtfbSIPpYKQ+juCSd1pKax0zvpLPejlJHOEig1QvR0W/c9gSeZPHR/HMzkWDMgnVlsXusheGmhz7PTaixY02w2z/lZ0KCyWBMdUK1elsxEOdd0I3X6CJ0c9DnNu+ZwLdu26rVyLJrGPZz5bWa+H6LFCA0Re8gMRiUoRvJuGDgsv40LHLryBSOXN6vJsgd+6czyZRkTGKXVHxd4uQy4/jkkkomM9sp8t97sh2gUXPhhwGmOiH6vLSvcuqSkpnVW5H6WjbjePfWUTXmK+/fiZYf4ZOvs6Yiaat5zxWpu8IVaHiOEmQJRyxtqppP/L1MA6MCGsboZAfj7QBHLk8j9Cgw49vrt+IzP92In/3xS9R7raTQHrmkzjg8NjQ1N9Uw6P/YYMQhpDSUvEKLBGIWv/vCY/FLZ65NJmfmkgqiriHnx64cxFUP7gIQ5wLdvmUUt2+JI7C0PhIiHhP/tfs8B0PJdfXcWPyvu/HvP2jUY2vUXI356WG1abRfnt6iypuXCGFy59EldUiC7mO6aabagXV1N9OQ2NnmYZz96avx7v+8Q32fVqOu4dLZP91R46aJdW9iMCbaQaphJJ30Zmow3n3pHbjk5i3Ysm8qOVZJhqHCag2XVI8JMowkHmZhiHHiXrw65w/lBf9wPb51e1wy+ueb9uBFf3stLrt3hzJIOw60Mg2HbGG1Zk9uGgM/B5srjjPKyU6gXV9edJCMhB9EGReBWegx73qY4P0U6JzyJku+3XNTQ+YmkyWfmIA4N4FWvJx9ZBlGb5cUGRxeIoV0tif3T2O8FSgROD4XamSk+//rbsrE6DmTMjYkjogZ4N6JNnaOtbRaURyuI9RvNNio4fhEU6kz5ht0YRhAqmMA2cAR3vmOig+aNbEuOHU1zjp6Gd567jHJdYkXheaz2ajpDZh429UOE73znumZFB88ZGtJzRfo+g8mtHSiHVgnOx59UQZBFKkVcFkNgx4ySpryw9T/6SUx3asGG9i+fzp2STGGIaVUot5kO1ARKMsVw+ig7sZ18w9f2tSyTm1oqBLLRuRQFGUmjbrr9I6SYol7AHpOkD+4azs+/P20oSNdz1ri828n28fbgQqXpP7MP7h7u5ogd421tAmP52EQSwGymdrx2HV/eSSzzJNfi4m2bjD4yo+eWT+0G4zeDEN/7TpC+w2lWl33dknVXUebGBosvJgw3FdTBmNCu37GNcplGOnfY9NpyXxCfz2uqkoLm23MYHzp2kdwypoh1U2OQM8VoLPPmiPgiLiU+Fl/fRWAWGuY6mTv8YGkLIgJ5Sr14/u7mxvnyOX96m9zYcmbFbmOQBjKTE2sc49fgf/5gxek2+puxk0JpBF0hIl2oAySFlbbQ8OYST+MsnkYhQ1GEjr7FgDHSSk/mURNrZFS3lbqiAsEckn1s/LGNrT8MLcsQjcEoUSf58aGqKRLKiu6pv5Pz3HQQoSVQ7HB2D/FDUaEyaSEOUWfTCQC7PL+lGHQQ/GzP3mxljNgA33W1uHM1mY0T/wMVPRImrgH9GYY920/oL2O8z8Eaq7ITLg0HnIzbth+AIclNXoiCdz1RJoZH4bZcGT629RVzL4HtD+++AyiuIxEJGNDzVfR3JVID2DHZjBcu4axe6yFlh/hqBX9mcTS5QN1bN/fynwnj2HoLilHE0QbnqsWG4QlTU+5Tj743/dgsK+GV56+JnPf5CW8cpcUuf0446L7lMT4bSPp5H5JoimecNigbjDcNEqKR6fR+fBjDjc966LIdPsQzNIg3VxSPBTWhB4lJRBKfeHYZ2E+Tc+1Tvr8er313KNx3vErVZBEEYNBbKSc6D3/iXtfAnAu4sgoABgH8MVSR1tA0E9HN07eyrhXS8s8+GGkJo2yLinzYedF++jHH+6roc+LxbDUJZX2Cabm7eSeoho4Y9OBWrH012tY0qWlKpDerBmftUXD6K+7uefKK3/G+6WVXPfry90t9SSckhoxZQyG0Q1wx4F4on3OUXFtzF88NpKOnzEMMgSOsIvevKR7+v0sC1G1kdpxDwIan8YwWFhtlmHYy6W84DPX4MV/d612jr/zgmPw0w+8CCsG6tg+mu3xbjIMmsA0l1Qt1TBqimHoLqklTU+bXP8gcZOahr5IpjexFz6xNb0apjucYWQnd17lGIjrfflRUoKcMwxXwBV6pNnusRZcR2T0v/48g8FKtPhh1NUlxUNhP/2GZ6gQZSDbCzsu65GOq98SdNLnuVrklBpTcr2anotPvu4Mdf3ijHfZM3HPmUEexrwl7jE8X0r5XgAtAJBSjgLI79d5kBEZonce8kLzeiGIpCpPXNYl1TImDRK9gXTyqbsOljbr2D/V0bJeyR1z5LKYLu81WqeOtXxtxdILvA81hy1Kqll3EUQSN27am5vLYIrevRgGNxhNz0UQRRhv+Wh6TsYnS6tcPpk/tncSRy7vx+FLm5mw0LbBMAbqNbT8KOt+UxE5jGEYw/ZDqYrZTXaCeLVr6UNAD29gJB8C+aI3L01C9+0fvPR4nLp2GKuGGnjSxjAMlkTf47+L56TX0HUcawXh4aanTfDPOWpZ5loA3Trupa5Iuv6mS2qqk2pt2/ZnjV9gJNDVXAdSIoneS49bcxwIAexklWv3TXbw8V85Hb91ztHaPvMafdGk2w7CJEqqC8NgBuOlJ6/C2194rDaW9O/ENW0UUTTRrLtaSC2Brlef4Zry3Ng4dsK4YkXe5E7XrpxLKv7OfDIMXwjhIlm8CyFWwWyNtoiQit7dJ88ZG4zEJQWUz/Tmq0BqUkSTjjIYtTjxh0dJhVGEkaS3B/lX94y3Ua856jzHpv1SmoyX55KyaDP9dRd7J9r4rYt/oQR79flkjGl5894axnjL1x7+Pi9mGBt3juOk1UOZB8CWg9AJIzQ9F886aqnx2dQwUDXUZuJPN0GRX6Zobu6PFh+RjI0EzRl1jWHE//thlImSikXv/Pttz0RbTcD0IK8YqFvHbLLUSMa+75HJjpqAPKZhAPZQa9MdS+JwNkoqL6w2/r/ppY24+IKlWXcRyVhbA+JQXhMdIx+CnoVTP3qFJpJTlJTpgvrtc47Gs47Uf//BnOee8h5Iy8pL3AOA5ax/vccaQgF6dJFDDINdI5vB+KMLTsIHXn5iZjtdrz7j96nX4mixThgpXdKGs45Zhv974Ul4dmLsi2A+E/cInwfwfQCHCSE+BeBGAJ8ud7iFA2kYeb5MwmxcUhR7XzbTm0+i4+1AK4XBDceSfk8VNKPjmC6pPRNt9NddddONtYLcaAobaFITRgOoONNbnyT6vfRaXv/wHv3zimEUj5Li7AKIJ51to7Fuc9q64VwNwxTj+zwX5yRF3Ag8rJZ6OOdF1NgMkTk/BoxhAPEK08owHNIwijMMwtaRKXWO9N2Vgw3rZ22G+JqNu9EJI9XRzasJJc6GUqLPcl9QSO3xSUSQ6hlesGIwfZ5PkFzEpWtOAQvbLO61TqBn9qeCrx5BV0s0DGJc//fCk/DD954XH9Ng1XmeBcp7MKvV2sBzFOo13WDwyZsS97ju07QY55ectEpVM+ag62U+t57rqEzvXvXg3veyE0stFGeS7AcUNBiJ4H0DgD8D8DeIczFeL6X871JHW0CYYbV5mKnB4NnI5V1S6TH3TXQS0VunlfWag6VNTxMp/ShSLqkjlqUMo99L24OGRpZ0L6hMZOO+sdWSMldNvJwXGRfeohXormGYK8U+z1WM49S1wxn/Mu8zztHwHLz4pFWZz5q9m5s5k4gSWNlkbibv+VGksrmB2DDShMLdE101jBzRm7B1ZFqt2OmrK1njHe6nt4nel937JFYONnDOcSuSz6cMIwwjK8MYThjG1R98KQ5f2kyLGwYmw+jukuL3BmdcNMmS69S2m5YfakYmr+GXl0RJ0TPwlucfjWcmzMJ053R77hs1F51E9C5aErxRc6xGAEiLD3IWlvfZvH0DWYZBjaRMgzoXoPOej1pSSAr9XS6l3Cil/GJS28neomuRIEJBhjFjl1TEXFIzF733TrS1OjSmS4rKgDS9WHAenerAdYQS5PaMt9FkDAPIrra6gVZKJt21Vas1V+g7WGexwFgZF2EYppbAH5hT1gzlit5m/5Cm56pCcHw8KkoqGQMfP59g0iipbqK3VBVfgYRh0LnmuKRMl1rDsxsM6sGwdWRKTdj0INN7QBxCSmgFIYQArvyjF+NlSYXVe7YewDnHLVfnxqOkzHIrBO6Sch2R1qoqqmEQw/DsDIO6y/FquOZ91A4i7Z7N0xVqrlAGuVFzsJQFdJgTdDdXdL3mJJ0TuzMMDo/198iMS4ne3TWMPNC5mwbdSxL9Oj0SDGeChUjcu1MI8bxyuz94oAVinhuCMFODETLROy/7OQ/cnbBvoq0levAbrwAAIABJREFUEHHRe6BRU5Nqf91Voveyfk+JZ+0gXvnyh7QMNaUbxrxv/AIM495taU8DWqWbonc3DcNcJdNDf9Tyfgz1eZlJQIneFpcUALzzhcfiuUfHftyQJe7RZMfvhWXMP23rYmcXvdPFB0Xs0N8ExTCCKLN6q7v2trV0lbeOMpeU0F1Sx60a0Axoy48DJU5eM4SzE3dcKwjRZJVOeR4Gv185ePmKODw0OV+LwbQhtDAMPvkvtUTpncT6c6ff6c0waswArlnSpy1y6B6g97szDAffun2rVU8xQVnrriNy5xLSMMxGUEWhGIbx3NaTviCdMFJa41xBRUnNo+j9fAC3CCEeEULcK4S4Twhxb6mjLSCUhmGJSuBo+SFafqi5V4ogiKRaEZTNFucT5c4DrbgIWuLW4JnS/CFsKmrfwbL+usac+jMMo4TByLEYtuZH5gOzm7nLVB4G1bVJsnK7MQxz8iRDd+raeEL5218/E7//4uPYMbJaA5A+aH/52tNw8dvOUp8198/Hz1fWtgxv0yUVi94898JR105P3Es1DJNh5NWSmmYhp2SjaeKjCf2CU1cbBiNM4+8p9yOIw0SVe9MVKhomZhjdRW9HxP23j/nQZfi36x/VPleKYRitRE2c3MNg5CXTeU4aaGBqO2QwqNx9t+hI3nP73ONX5H4OAL7/nvPwrXedAyDteWKCfmd+v5ViGKRhWBgGhdXOPcNIoqTmMaz2lQCOB/AyAL8M4LXJ/4sSNAnw5us27B1v45SPXIEvXfdIqf1zraB0HgbTMP7pqk3Ysm8qwzA8V2gPIU12e8bbWDZQVw8GvaeVqrCsJPOQahgW0ds4L/MhHGGCPBlNXjKhV5tWMpxfestzcOYRS9Rq9NSk3Pbp65bgmJWpqymvtDd/OJULhoneBK5BrGPuHaVhML89tUT92k2PYfPuiVj0Zt+vOSnD0BP3kn1GUeaa2jK9pUxbxk62AzUB01efc9QyfO3tz8OfvfJkLcy4HaQuL2WkknIk9Vp6L3GGYVtIDBsuKbPznrpGuZ0W4//5vcoZrpVhrLEYDJ4ImZuglgYamAyCjk+GpBvDoPv6xj8/H28868jcz9H+SBPqVoYE0BeCvTwbHCpKKiN6pxrGTKpRdMNMuvQBJQyGlPJx279yw7RDCPEBIcQGIcT9Qog/srwvhBCfF0JsTtjNc3rtk8pLUFG+PFC/ge/eua3nOK+8fycuu3dHnFAUyVloGPFT9h+/e7aq/ZRqGOQXd7WHkATbPeNtLO+vw3MdrByMjUZ/vaYbjBIahqM0DH17XqY3xygzGOTW4SUTelVnJWPy6jPW4Efve6E6B+rPEI+PjYlEb6MMiZ51na6oTY2EP8Snr0uPEVgMUSglokjiEz9+AD+650n4YfzQcq0pLclgEb2DbFJY3XUz14Mb1Gk/zLikhBA4/+TDEndM+r0Wq97qKiMVd33jLildw6BJNV1sDDIj6AiR23ukF8Poq9sZBnf9EWwMg0+WeaGuXMMYMO7F4WYNriNwZBI9mBdWy0GBI0XR02Cw39IUsLshT/SmVrUHpv0ZVaPoBlpkzFstKSHER23bpZSfLHXE7H7PAPB7AM4G0AFwhRDiJ1LKzexjrwZwYvLv+QD+Nfk/F2EosXygrorY5d3wVJoiL3yR4/cvjXMPHvn0awCwshozLA1yCltppWWoU9GbP4SUObpnoq1WbYcN9WHvRAfNpG4OhQuWoa/KYBjbgyjLMEy/7OhUtropf9jj8eRrRO0gruNFvmhaQZ/KDAb3U5uid9NzMW6U6aAHYOvolMaAAP2Bp3DSOJgg0TC08ujp+dPfNUfEsfGdUMvD4CviNErKElZrEb15lN60H6oJ2PYgc4bR8lODZGYdc5aaMowIE5342K89c50qy8FdEo4QuYsf7qJrJbWh4pL6iT6kuaR0ZsxbrgKxHsPrRQE6w8gTvT0ndQP2G2x3aX8dP3zvedgz3sb/PrCrK8O48c/PLz1RAvlGwJZlX07DSERvS1jttB/iwLSPk1YPlh1uV8w7wwAwyf6FiCfxY0odzY5TAfxCSjklpQwAXI+4rzfH6wD8h4xxK4ClQoi13XYaRBIrEiOQJ6IBqR+eJpAiIHpu65ZVBLSqHEzKfwBZhuG5Qlt10WTXCdLorNXDDe092l7OJWWPkvJDiZAZwrrraA9y03MxOsVzREjD0MX3bi6pth9p57h8wMOqoYbKMQF0UY6L3p4r1CSjGYzk89/4xROYaAfayoxY2oqBurrulL0O6EwxjPSSIdQgh1wDPA/D0ybd+P+OLXEviXrhdZnIHeU6AtOd9D1bkha/jdtBqBYXZk5AajAcvPXcY3Dhaavxjhceh5VD8Wr/N553JL7y1rPw/pedoO/fEZrwf/SKflz+/hfhwtNWa7rRP131MN74b7ck10kXvYXQnzchhOqKSFgz3Get2MrPwQYeaGCLgjrj8CU4PLl3VnepA3XEsn6sXdLMfT8PvRgGv9dLuaS8PIYR/x77p3wsac5tUY2ZRkkVZhhSyn/gr4UQfw/gynKHs2IDgE8JIVYAmAbwGgDrjc8cDmAre70t2ab15hBCvAvAuwBgYO3xKiSRCvqZOOPwYWzYHrukJtp+5v080EMy49IgySTRV3Mx3Oeh5bfVw8+jjGyiN5DeYPRQ0Hv00JURvWmuMe+b0Mj05u4YII5S4St4s7w5jaOrwQhCbWX5npeegN8652htAuT6J5/Ya0mpC0B3ZziOUEUCX/fMdai5At+8jd86wLErB3DYcB88V2D5QF1NhlxfCFlcPf1eniMUe+N5GDbRG8iyBB5q3OfE500GY1l/3DExlFlmQuCur7YfwRuwMww1xlqc/HnRW+NAgN970XH4pWesxdErBnDq2mFccNpqbf+O0Cc9z3Vw2rpheEaV4j3jbTyxbyopZRJvoxV1o5bNSKZ8or/79TPxghPiwnoNz9UKgvJ7Ni9y0XMddb+aDINw0uohXP3Bl+C4lQPW92eDvGMq0ZuNe2YuqSzD6AQR9k/FkZFziYWoJWWiH8ARs/g+ACDJ5/gsgP8FcAWAuxEzmJns6yIp5VlSyrOE42JF4qvNE9Fee+Y69ff+qeIGgyYuYhjlXVKx28hxhBIdPRZdBCRRUlzD4JQ/+QydXxrH7WiviyBPwzBF73pNLwa4erihNIyHd43jX67dHBdMZMeu19weYbV6QtJAo5ZZ+TkWhkE5Dqpom7Gao4l1uOlp3ydG9uvPPQKvOHU1rv/T87FqsIEwisOVH9k9qT4bRlKF1pLB0BhGj7BaIPsw2uprTasWu16iYeSHOnLjyctpuCbDqJEOlp2AzHwVff+6m4gMIYWNEvxQohPG7YEjtXhyrccEUuF7+UBd5ZKYAi+/Z82eHfzcVEJulxX88asGZ9QUrRdsYclAukho+SFOPGwQb3n+UTixhAsprzSIV3Owf8pHEElr8MBsMO/VaimMNvl3P4CHAPxzqaPlQEp5sZTyuVLKFwMYBfCw8ZHtAHg4wxHJtlwEkVSRRHkuqQtOTVdY3L1iA/c904qUZ3pLKXHbYyOFwnN5Ziv1IlCVT9mqlRsJ7pOlVTm50aaSyJa+HF9oN6STkH6NzOKDPKYfiN0KVNfq2o27sX/Kx6XveL4WzWFqGH4Y4Z1fvx13JmXI20HYcyXGH/xUU4jzVuhYmZs+eTnc52mT9hnrluC2//dyvOnso+A4AuuWNuNs2ijCy/7hOi3wIS5XTQwj/t9jx+SJe3q12nQYuQaD3UstxjDi7PQwY7wJZriprc2my0TvMsXogNjwcJeUWsQYhoRKrYxMdpS2QS4YWzY5uaR0lqx/jrtRT7ZEUQGxwaYIw14VHOYDeUYo1TAirFnSh0+94RkzKgBqPrd111H9yU233mxB99J8Ju5RGO0vA7gQwDop5RfKHc4OIcRhyf9HIdYvvmF85EcA3ppES50D4ICUsmur2EhKJWTnxXUP99Vw78cvxDtfeCxGp/yukz1vX0kTiVdLOoBFEpfftxNv/Ldb8J31W/N2ocAnSupFUGN+ZyArettKLwwZrTXpoSuXuGf3ZQZhpDVFyjKMPrT8CNOdELvH43pWZx6xRNvHcNPTMny3jkzhqgd3473/dWd8HfzeJQ80DUOmmkLNdVTItPmz0YQ83KxlVvyHDem+bcrSNRlmyAymYhimS8oaVlvAJWVERgFpNNFkO8h1E5gx8ypKil3Cmqu7pMrAcYQm/Kf7zzIMIGblpoZh+z2XJiyau3S6aRjPPmoZ7vnYhZlAFM8V6rfoVVR0IUHBCK0g1BYPRdFNw6Dru3SOo6RmWkuqjJl+j5Tyz/kGIcRnzW0zxHcTDcMH8F4p5X4hxLsBQEr5ZQCXI9Y2NgOYAvD2IjslDSO/8YiD4T4PK4ca6ARx6848PyVv0h6wiKCaEyfXPLInLpJWJHu05UeK3hK1JmbB8zG0PAxL6QUKj6TzmxHDyLlfYqE3Lqtcr8WuGO56OSzRT0amOtg11sJhQ43MCmzlQB2PsAKDFONPZbBbBRgGH59qpZpUGf3HNz4L31m/FWccPmz9rskw8iKPbO5IruFQuGTNTXUTnnXMhX5+DFviHmCE0qoWu4nB6IS5Lilzfza3Ahl3IL8HdB4coZdd4b00bD3sR6Y6apHV53UxGP1kMPIZhnkfLGl6mX3VHEddr7zn9GCALnPLD0uzOqB7aRDCnDOMGdaSKnPVXwHANA6vtmwrDSnliyzbvsz+lgDeW3a/5JLqFnUBQAlKo1O+9Ua89JYt+DLLfKXa/mnIboROkPiNC0zWLT9UkzutzFxmKGg/eh5GlmFccOpqfPg1p+BNZx8FID9jtBtoko8smc1+JOE5jlpZ87BO6kY2OtnB7rG2MiAcK4ca2DvRVu1OSSTn/bV7GTebSyqIUobx3vNPyPtqomGkr233Qc0ReGIkW0FVYxjJ781dUnHWcdYlxef6TOKem0a6EYhhLE96sk+2g1yXlLk/YjZ5YbX1goX1+He5S4rO1WQYZPD2T3UyZVfqFleMcknlZIPbXtu21VyhjPeiZBh+8dpUHHkuKV6lYq5F73nTMIQQfyCEuA/AyUzDuFcI8RiA+3p9/2AiDavNj+sG0ht6dNKuY/zswd1aZdXJZMKruXEr0SBKu20VNhjJw9OvGIbud24Yxc40Ou+lYuS7Xny80jJmwjBoNWtGepGG4ToiXll7uoZB7qCRyQ52j7dUq1SOFQN1tINIRcOYOlFZhmGK3r0w3FfrGrUE6II1RyQ5wyCXFBe9HeUL08Nq2Wrf2PfapbFRverBXWpbq4RLyjxncrWaonc6AZWbVB2hu6R0hsFdUgnDmOyo2lPNLgzjjMOX4PClTc3FdNraYRyzIk2cs43VfJaooRCwuBgG/12KVr/lyEvcO2Nd6uLt1TmzLOiemY9aUt9ArFv8CKmG8csAniulfEupoy0gVg01VOGw/FIDxDASg5FMaGMtH9+87Qk1QT22V+/bQAbDTVbfcRkKEkZ7X9J2kLqk6MYn8ZDG6tUc7Qbq1xiGfSKYjYYRhror4tE9k7johkdRcwRjGOnNtYz1EN811rbGvdMEQW1kRyZT18+BKb+YhsGOaYrevTDc9LQHwmowcibn2GDqYbVcH6i5QoWU5rmkzNXbc45ahtc8Yw3++epNOJC4wdIoKTIYYa7BMLfb3ApuUrTyC29+Nt7wnMOt+8lDzDCyUVKu42j3B03aXPfrZjBectIq3PShl2kLoI//yun43JuerV7bcodMpsy1yF6dNOcL3/2DF+BH7ztP26a7BMszDBLwzez0Z7OmYEvnOA9j5VADx6zoxwklEwJ7XnUp5QEABwC8WQixDHG2dR8QuwuklDfMYLzzjjXDfUrgzC014GRdUgBwyU1b8I8/exie6+C1Z67N9CEml0rc1zmuhU8unW5ugFd97gYM93lxIbvkJqEHjSKdaKx1Q8Po60Ln0+2u9n8R0L3OV5D8bzcpZmfmYVBC3Pb905j2QyvDoF4O+ybbOGblgMbgHh+ZRCsIexoMJ0/0LvBgDjeLaRiAnpMDxGwmVGG16WIgdUmluQm2WlKA3Ri98vQ1uPy+ndg32caSfg/Tyb5Jw5jqBLnROOb4VdirwTAA4JefuQ5l4Qihhfx6tdQ42hjG6GRHaXB9XaKk8sBDcK0uqUxYcHqe/QfJJUXVkDn479wtSTgPp68bxj/9xjPxwhP0ni68nP1c15IabNRw3Z+eX/p7ZcJq34m4idKVAD6R/P/x0kc8CLCt+muOUA8mTX4U/00i3U/ufRJPjExlonAmO8QwRBLJEKlVV7es7407x3HblhEt/4BWXaSL8DwMakkJGAwj5+bpU3kYZcJqRddxU02khhElRfkjD+8aB2DPrKWggz3jsaEYYS6pJ0am4kzvnmG16d9K9I6iQg/mcF+t5+qPHvZ1Rv4Hb4ijRUklxjhmGHpJ93i8zHhYDAZ9liZm2jdFwUy0i4veafJVum0mJS/UeE2NhEXS8NIgxEJGpyxhtSXuPX4f2/I3TNaxGBiGDbx+2kw0DCEE3vDsIzLP9XzkkswWZc7uAwCeB+BxKeX5AJ4NYH/3rywO2NwXfBtN2uQeoAfnuof2ZNqIAvFDDRDDiF1SNAF0K+dNaLEMZ3rQpiibmIXXCpFWrNUiTHoyjPJRUjwK5peekVZdmeyEGKjXMNTnaQ9snxdXyN2UtNC0MQzSOajb2uhkR7leRiY7SeOc4i6pNEoqPxuaY6Be011ElkPRfcCr19KxzLBaz3WYS8pRCwk+SZh6ggn6PlXGbfkxyyLGOdUpH1ZrYxgzgTnXqQJ1Qhe9U5dUR10Duk/LrIS52GubHE0jwp/ZxSR6z1bD6IabPvQy/OQPXzin+5wNyhiMlpSyBQBCiIaUciOAk+dnWHML2+qFl+EmHYFW+Txz+7bHRjLfTTUMoQRBoulFemPENZSSKKnkQeOROEBWCOMr8byHcjYaBicYv/7cI3DpO85Wrz//5mfhz151cmYiW9L0lEG1RUmRcaB+ziOTHSV0HpjyNfG/1/gAvad3XoE67buO0MZsYxi0SFi3tA9/8oqT8KIT457Lmujtp70+eJQUra6LZnoDvDxIfNxpP0SznlYmnup0S9yzaxi93G5FYTIM3l88TJJT47GTS4rlYXTRMPKQJ/aq9y2lMgiLSfTmi4SZMIxuOHxpE2ccvqT3BxcIZc5umxBiKYAfAPiZEOKHAB6fn2HNLXoxDDeJLJlKXE3cX7tp93ji2ki/q6KknLggXxhJVQKjW+0kwuhUB816fOmPPywWnU5MSj6brVqb9WwORJ5GMRsNg8NxhOZiOuGwIaxd0sxcxyVNT4WFHjacZRieG7fRVAxjqoPDhvowUHcxOuUXYhg2l1QYycK+4l4TOBWfXLukife//ER87JdPA6BnutMEyetXea7DXFLpfvl4bcej35Xuk8l23CXPVnE3cy6FoqRmPmGZ+1f1wZLtn7rsQUiZLo5GWVit0jBK3Ht1xjBsMPdVmyPDONfolnvzVEOhu0vEfPH9Usr9UsqPA/gIgIsBvH4exzZnsGoYxrb+uqsYBmcJ20ensaTfw+3/7wJc9NvPBZAmntWS8tF+GCkh3OyFbMNUJ1Q1k55z1DL85A9fqDrLnXv8Srz+WetUUl7Tc5OyHMzfm/uAUR5GeYbBUXMEVg9lGYONYdAYh3JKNawcbGAPi5JaNlDH0v666lXeSyTVGAYrb150Yuzl36dxrEtCXkkEv/jnj+Lajbu1z2qlQdy0/7XmkuKTms3Nknx/sh1i54EWRqfiDoq8TlFRDcOzRUnNxiVlHJfOj3z0X7nxMWwbndZcUpGUEGJmId31HvdrXbnc4tdFWOXBAF9ILdYxzhUK8ToppRRCXA7gGcnr6+d1VHMMu0tKfzj66zVmMNJJ/8n9LZy4ehArBhs4blXMBiZZlFQtSd8nIbxbwyCOI5enMeiccp68ZkgLN4x7NAttssh7KLtl2+bBZjAcIbRezwRzwlJ9OYazWd6ENcN92DUet6HdP9XB8gEPS5oedo+1C43VrmEUy8Ogc8kbP6AzDCCdNO/ZdgD3bDugfbbGNIyYYdB+03Nwergn6Hw/+J27MdYKcPq6YawYrGsMo2jins0lNTsNQ/+ubzSqirdF8MO4s1/Lj+IwYCEyrtQioGuZy5hZ6PlEO5hRBNJCQPvNK4ahcKcQ4nnzNpJ5hOlKoWQ0jphhJC4pZjA6YZQmxiU3MI+SorDayXbW2HTDkcuK1eNveG7capO7pHJWZNRnYLhE3RnbatZlEWTmdg46jo2NEFYP92HngRYuu28HgkjimUcsxdJ+D7sKM4z0by56dxMX7/nohbjnoxdmxmwzji8/JS5ASaJ9N+LCy27UnDRKilqimuO19XUmI0I1tjbvnsDKwQY817FmbpvH119nRW93FpOqeXlUF0V2UaY6IfxQYtUgJW624Yj4fnn/y07AK89YU/h41Pc93yWlaxw1x8FX3noWPp64DRcL+IKhbP2uQw1llKPnA/gtIcQWxE2UBGLyceZ8DGwuYa706sYEDBguKSPElFbbdOOmUVKOqrNTxiUF6AyjG5qem4TYspj1nMS9V5+xBs875vxSzaCE5f4u0o8BSF1Sqyz6BWHtkj7sHm/ji9duxkmrB3HBqavx/bu2q4q1ZpnrzPhsonfUXfTmWbG9GMbf/Ooz8OHXnJLpeGiDlofhOsplozEMdgybmGu6E9tBpIID+jwXfhjklmvIJO45WQMzK4ZhHNfUMIC0ptrq4QZ2jrWwd6KjjOyfXFg+BqZRc3MNBl0r0vs8V2R6eCwGPJ00jDIG45XzNop5Bq3eiGLXa44WJQXEq8FpS5QUAMYw4gkgEyUVSrWtm+jtiDgaqem5KkehF0jD4DdlHsNwHGGNVuoG2+REx7r4bWdpzWzyNIxuDGPNkj6EkcTDuybwF68+BY4jsLTfU5FHvRiGazEYYSQLU3+awIWw50XUa44qIRN/Pn9f+ZnedhZjmwhtbpUVTK8ab5UwGIaP3/aZMjC/S9fbsRiMVUN9AA5g70S7dHkJjnrN6RnEQRFYi1Uf4L//XEdJLTaUMRhPAHgLgOOklJ9MSpGvwSEQKXXEsiaOWt6PJ0am4IcyE3UExDH75CbxQ4mhRg2TnQCRTF0vfUqw1GtJTXdCq2BuolFzMe2HOHJ5s3BSzu++8FjsHm9pBq5Mz+5esM0vtEp6+amrrdsJZDBsEVKENcyAnZL06ubtJnsxDJvoHSTlzYugbM2cbp/zHL1Fa6iy+7mGkX6+CMMAgJUD8fVThShzJv1spncies9zlBRvaESVfakZ1b7JTukCdhz1mpPbmEgltyqX1OJcvXerH/ZUQ5m760sAzgXw5uT1OIAvzvmI5gG/e96xuPKPXqweJrM/NRA/rFOJqymIItRrDgaTyJ9h1rOi5gjlfiINg/d86LCGQSZoxXbksmLuKAA4+9jleO2Z61jZc1G6JHE35IneNuQyjG4GYwkzGEljHN49rBfDsIXVFi0+GI+Z/i/2+W4TrpaH4QqVl8DvJb4QsBkMmzuRXFI0Meb9vlmXlJPZPrs8DP01Xe8dB9LSOPun45waCrveN9Ge1f1Yd/MZRt3QMBbr6p0nEZqei6caSmkYUsrnCCHuAgAp5agQYm4rYs0THEfAQcwG4JNLqouGEcSiap8XNwDiEUN9nqtFSXmO0PopdGMYQRThtLXD+MAFJ5Y+B5oI5pJdAPaInFwNw1g9UdHGXi4pIDYSJCwvYaJ8GYYx3gpwzIcus46l1/cLR1X1cEnxfhi2WlL82tlWzl4tOw5ySdECJW+oJvuZ8ygps5/JILUHSM8jdUnFv2UkZ2ekTl07hJNyCuCZrUsX6+qds2jb7/tUQpnZxxdCuAAkAAghVgEo18w6B0KIPxZC3C+E2CCE+KYQos94/3eEEHuEEHcn/945k+PE9aPScFiOOKw2Ea6jCDXHUe1TuYjc5zkGwxAaZc8Lq40iiUgCF56+GmcesdT6mW6g1VWZ4m5F0E3D6LX9vBNW4pOvOx1nH7s8d//L++uouw5OXj2kVt+8e9hp6+zNj3qNpXgeRuK2KcxIurukeEYzaRh5LVqbNpeUxeBTVV9yfea5xcwIKJtLalYMg333919yHP72154JAPjghSfhL3/pVABQVXb76656PmbjkvrK256XK5abLqnFunoXQqgKBrNxCR4KKHN2nwfwfQCrhRCfAnAjgE/PdgBCiMMBvB/AWVLKMwC4/7+9cw+Wo6wS+O/MzJ37yju5IRgCCRsIEN65QHgaAQVxBRTQULKwwC6+WAVrrYXSBRfLVVfUWkSXolBXXBYpFDWsUsD6WLdWQcMb5GGQBQwB7gZISAi5j5z9ox/TM9M90zPTc+ebm/OrmppOd0/PSd9v+nzn8Z0DrI459RZVPdh/3dDMdxXyOfIiZU1mAqIWxviEt5I4UBTRNNXeQj6Sn+7FQkYr0nDjiMs4aYS8r+yytjAaURiVP4ZiIce5Ry6uGU/I5YTj9h7i7ZHslmDGuHBWf9hmNlm++P1pc/LDrngZKIxCXnjrsiG+dOaB7LNgephWG712ro5LKkgljRK4pALLK9ElVWlhxLikWpmFR2VffdjuYbbZ9L4eLjh6CVCKYRTzuVDudoUWli2Yzp7zBsM2Ba5aGADL/bVU0SSRqUhql5Sq3iQi9wEn+LtOV9XHM5SjX0TGgAHghYyuW0bQJS1auydgoJhnfIcyOr6DcT9tM3BFzeiLuqRKD0dvpXf5w7LSwvjELQ9y2wPrefyqk/3PNP/A78nlGlrFnYZaQe9Kmu0DfMN5w2X/DhrqXHP2wXU/m1zqO919CB6Cac+vGfT2/e1nDS8CiF3pXa4w4r+zJ58Ls+mm9RbCwpKhwkhySSUEvesVPExLrVXquZxXCDNwSXllX4o8u/GNtpXp2H/hTH7+t6v45ZMv89CxXuw4AAAZYElEQVSfNtWtO9ZJjttrHj95eEPYvnmqklph+G6iU4Bj8VxRRRF5JihI2Cyqul5ErsbLwtoG3KWqd8WceoaIHAc8BVyqqs83+l15f8X0P77ngKrB1+8XM9vmL0zqyefC2W/Uwoh+LmguFDBQzFetw7jtgfVAqRpsqz/o7GMYnuUSLeGeNMMNZG/1+TA0vZf/uez4VOdmZWGkvW01LYyKY/VcUrWCudvHd3DQoln8/bv2DZViMDERUga9g7TasvInLWRJlZVmrz4+UMzzWqAwCrnQtdiKSyoNq5bNZ9Wy+W39jlZ53/AiZg0UOWEft+VslUZG143AcjzX1LXAfsB3WxXAb8p0GrAEeAswKCLnVJx2O7DYXyR4N/CdhGtdJCJrRWTtyMhI1fGenOeS2nfXGSyZN1h2bDAsMz7O2ITXbyHw0c5MUBhBDCO8Rm+BsYkdbNi0ja//Yl2YRQOEM49WZmOFvGRuYUD1Dz5plh2c1+4HRJksLcYwSkHvdOfXSneuWqcQU3ywnksKSm7FRbP7GV5civ8EE5M3EtwagcIKviLzhXt16m71F/Ns8nuaFPOlGN8Ud9unQkQ4afkCZ9eKZEUj/7v9VfVCVf2F//prPAXSKicCz6jqiKqOAbcBR0VPUNWNqrrd/+cNwIq4C6nq9ao6rKrDQ0NDVccLNVJSgxz4rdsnvDz/XElhlFsYEZdUrjw9d3pvgdHxHdz56It86c4nGdmyPTwWuCBa+UFH+zFkSaVISQ/p3kKOo5fO5bpzYm9/W0hSTmn92c260SrpyVeXS4lLq42Or7jSIBCt0lp+PJiYbHlzrOoz0WsHhf5i+2FkFMOImzQMFguhS6pYkNACb2XhntFdNJJWe7+IrFTVewBE5AhgbQYyPAesFJEBPJfUCZXXFZFdVXWD/89TgaZiJ4VcLvHBMVDmkvJiGKuWzeelzdtD6wNKP1YorfQOmNZXYOOW0TDwHU2x3bLd+6G1MgPxyrBn78f1HoSRtqwJ9yiXE276q5WZf38tkp5F6V1SwXtrD7U4CyUurTZKUspwUpXWGWHXvfGqz3gy+AqjJ8e2sYlST++ssqTqdAvsL+bZOlpqJjUjtDBMYewsNKIwVgC/FpHn/H/vDjwpIo/QQk0pVb1XRL4P3A+MAw8A14vIVcBaVV0DfExETvWPvwL8ZTPfVchL4ow1dEmNjjO+Q+nryXHY4jkctrg8ZbSvWB7DiP5Ap/UWeOG1N8PAdzQAHizua+UH3ZOThpojpSWthdEJklN8G3MxtawwYpRCXAwjSpJLKkyRrvhbliyMeIURjF3vumMJLqnWJiThdszvpLJNcGCB12pLbEwtGlEYJ7dLCFW9EriyYvcVkeOXA5e3+j3eAz7+WLS39vjEDnr64m9NYGEEtYmis8sghhEoimgAPOyh0VIMI9dQ+ei0VMUwHFIYSQo+tYXR4MK9JOKUwrsO2JWfPLIh8dr1YhiV1mKQxh3M4is5auk8Vh+2iGc3vsGGTW/GNlDKqpZUnNUQVRjRpJCgUrMx9WkkrfbZdgoyGQTrMOIIeipv2T7O2ERyg54ghlGa3ZXOm+bHMEZ9V1TUwnj9zdZdUvOn95aV2siK6EN5el+hLXGSZkluV9rgwr0W/exxSuGr7z+YK0/dr0bqb/z+pE5z0Sq7cSyc1c8XzjiQ87/9W0+msIFSbTnTUq9bYLQtajGSdh4seDWmPo2k1Q4DnwL28D8ndEl584BCThL7BQT1jV7bNhZmScURzBrjFoRNa7OF8e3zD2tLPZ3gQXHEkjlcd86Ktri9miXpQR/0akj7+VYXfcXd92Ihx/waZVGSCBRypQUyM2Ufk2CSEsiUVS2pfJ2gd5VLqtfP6kqwiIypRyMuqZuATwKPkFFJkMmmloUR1EV6deso4zuSq6EGFkZQpqBQ4ZIa36G8OV6qXJvPeR35AgujlR90vVXRzRLWqSrkmJ2y7PpkkfT3SnLbVH0+oyypLFcZJ1kYgwlZVVWyVExW6vX8SEu5S6r6eH+VS6qRx4cxFWjkLz7iB6C7lmCld+wx/wfwytZRz8JI8kv7fufAUim3MMr7ZYyO76CYz7Ftx0QmFka7CB44aUuuTyZJFkbaWW2YJdUGl1SzJGVJpb3/4djL2MKQOhbGYNQlVci1bQJjuEsjCuNKEbkB+BkQLjBQ1dsyl6pNxDVOijJnsMirb4z6taRqZ76Es7x8KaZR2WApcG1tG4u4pByKDwQEzxgHdVlsR0CAbSn95rmMsqSydAWW+l9XWxQicPLy2m1Og7FXWRokqbVuWqJGVNz9CqrqBt9tFsbORyN/8fOBfYAeSi4pxVto1xV8ZNXScOFRHLMHiryyddSvJZUUwyif1RUi7pzgoRLk0Y9O7KBYyAPjTlsYwUNmMldwp6VekkLdz4eK3SWXVKnibSXPfP5ddT9fGnve54Nb1KpSDD4vEm/tHL/PfP7h9t8Dnku2kVbAxtSgEYVxmKo23rTXIQ7YbWbN43MGi7z8ureOImlG2RtaGOWKo1godWML0gzHJnZQ9B80WcQw2oXLFkacEvv8ew/gvYcubOjzrWdJtcPCaO6alRaGiJCT1icjgbs2SUnvMXew7NxpZmHsdDQyYn8tIvu1TRIHmDXQw6tbx7ygd53c+nyFS6o3YmFEXVKBEgksjLTrByYTl2MYcSKdffjuqVe8N1rePIks/269YQyjuVX7+TDhIhfZJy1PRkLlWuM6nzxpGQf5Ey8XJz9Ge2lkirASeFBEnsGLYXRdWm095gyUYhiJWVKFUswi+h61MLZEgt7Bj+r17YGF4WIMI5iFd1iQGFq1DDLLksrw7xam1bZoYVT24WhVKabpf/7Rty3lo29b2tL3GN2LEyu9XWH2YDHMvkm7DiPaOjVwP4VZUhMalo9wO4bhvTsZw8ho1tzIde685DjueuxFvnz3U+G+LGMYrXZPzIcuqUoLozWllstIuRpTl0YUxnPAB4A9VfUqEdkdWAA82xbJOsCcwWgWSO0sqXyFH7lYyJdiGGFv8B1hH4zXM6gl1S46UbY8La3eruDzjVgIyxZMZ93LW8r2NZIl9Z5DFnLAwuR4WdI6jLTE1ZDKZ2Fh+OI0cpnzjtyDuX6LWWPq04jC+AZedtTxwFXA68APgMPaIFdHCBbvQfKMMiwNEqQ0+g+iYiFXtXJ3bGIHE36ZkC0OxzCi2TGu0WpcpdGe3gGVf/9GHsZffX/tToKtKoxgHUZZH44MYxiNXOcfTtu/pe80uotGFMYRqnqoiDwAoKqviohby4JbpMzCSKwlVZ4lFTxIevO5slo74MUwxnyfVFDy3MUYRlZpmS5SaqDU2P+tsp5WtuswWnNJVa4BAr/UfouTkazWrBhTl0Z+BWMiksdvnCAiQ3RpiZAk5gyW8soTLYxCxcK9SNC7srTD2MSOqtLPLsYwXHZJtUqzQe8qC6MdWVLNWhgVkxXw/nZZrcOYiuPAyIZGLIxrgB8C80Xkc8CZwKfbIlWHmFXmkqpdS6pyQVixkKvqsDY6oYxX9PjO8sGTFcFzZio+J0KF0eB/rjLmkWWW1Kpl81n/2jbmDDRnoA9NKzKzv6fMCspkHcYUtjSNbKirMESkoKrjqnqTiNyH1xFPgNNVtanOd64yK1IttJjwYA8X7lXGMGJcUnEWhos/xm6yMBq9faGbpUFF3ROJE4xNaKaxp6Xzp3Hlu5vvbrz68N055YBdy+IymWRJddE4MDpDmhH222BDVZ9Q1a+r6rVZKgsRuVREHhORR0XkZhHpqzjeKyK3iMg6EblXRBZn9d1RCvlcWGK6Xj+MsMR0xCU1EOOSGq9ySbkYw3B3HUbAbrP7gcYVbrML90pd8conCC7Qk89VZSZlsg7D0mqNOqR5erV19IjIQuBjwLCq7g/kgdUVp10IvKqqS4GvAl9slzxB4DvpAVHM55CI+R/8uHoLXje86G9tdLxbLIzg3T3ZAJ747Ml84wOHAo3LmG9y1lyoKN/hoqKPkslKb1MYRh3SxDCGROQTSQdV9SsZydEvImPAAPBCxfHTgM/4298HrhURUdXMmwnPHujhGZKzYkSEvkI+NoYhIvT35MN1GKPj1RaGi2m1LpcGAS8zrVioDvSmIXjON29hBM2K3Lw3Aflc6xaGyyv+DTdIM23KA9OA6QmvllDV9cDVeAsDNwCbVPWuitMWAs/7548Dm4C5ldcSkYtEZK2IrB0ZGWlKntDCqPGr6evJRbKkSuswoDxYvn28OonMxdmby8UHA0JLoUmXVKMxjDBdOoxZuW1h5KR1t1ne0mqNOqSxMDao6lXtEkBEZuNZEEuA14BbReQcVf23Rq+lqtcD1wMMDw83ZX0Ei/d6aqQ89vXkq/y9cTPgbWOepTGjr8DmsDSIew+e4CHsqksKSjI2bGGkqI8UR5WF4fhD1LMwWi0N4r87PA6MztLxGAZwIvCMqo6o6hhef42jKs5ZDywCL2sLmAlsbIcwQYvSWo2WDl8yhwP9ip2hrztopBSZ5W3zXVMzB0rZVy7O3rrBFRFXDiMNrQe9qy1HF8lkHYZZGEYd0lgYJ7RZhueAlSIyAGzzv29txTlrgPOA3+Ct//h5O+IXULIwapn3/7z6kHC7yiUVUTRv+BbGrP4iz7Mtc1mzorQOw90HRbMpn3kRevJCX8p+2QGloLd7WVJx9PXk6W9y5XiABb2NetRVGKr6SjsFUNV7ReT7wP3AOPAAcL2IXAWs9fuIfxP4roisA16hOosqM4LV3mmDnIVKl1Tkc28GFka/253JXO64V0njQW/huxcewbJdGgu3lcp3BC4pty2ML5xxQOoeIUnYOgyjHk60zFLVK4ErK3ZfETn+JnDWZMiyYKaX75+2wX2YJZUvXwEOpRiG6wqjG4LegT3ZaNAbYOWeVfkRdQkmDLMHihy/z3wO3WNWw9eYTPZZMKPla9g6DKMeTigMlzh26Ty+d9FK9k45Ix0sFshJfOwjDHo7rzCay0CaTCZ8jTFZtbiirsZvnT1lCjLXJE0DJWPnxhRGBbmcNDQjnT1Y5Pa/OSZUMNEFX93ikiqtw+iwIDVYNLufE/edz8XH7zUp3xdYGC4Wi2wXYSMtt71vRgcxhZEBy99SapYTPGAGewts2ua1ZXVdYbjccS+gkM9xw3mTN9MXv9TGzuSeMZeUUQ+bS2RMkH7Z35MPy4K4rjC6Ia22ExTyra+e7iasvLlRD1MYGVNqblP60U3vc9uQswdFPLvM6GNo+s7TftTKmxv1cPtJ1oUEiiL68M2yW1s76IZ1GJ1gzcXHtLy2oZtodlW8sfNgCiNjgiZM0W5qrrs1uqG8eSdw3ZWYNc32Pzd2HkxhZMznTt+ffRdMZ/Ob4zzx4utA44XvJhvXy5sbk4NZGEY93PaVdCGzBopcfPxeXWVhWNDbACsNYtTHFEabiPZbdv0H6Ho/DGNyaLaEvLHzYC6pNtEfKXZXyOVYc/HRVc2UXKEb1mEY7SdYsOe4B9XoIKYw2sRgb+nW5nPCgbu5W4vIXFIGmIVh1MdcUm0iqjDcj2EE727LabQXC3ob9TCF0Sam9ZZcUs7HMHLu15Iy2o8FvY16mMJoE4PFiIXhuFPY+iAYYOswjPp0XGGIyDIReTDy2iwil1Scs0pENkXOuSLpeq4wra8bXVKdlcPoLGFpEJs4GAl0POitqk8CBwOISB6vf/cPY079b1X988mUrRWmlQW9O66Xa9IN/TCM9hPGMGwcGAm49iQ7AXhaVZ/ttCCt0k1Bb7F1GAZWhNKoj2sKYzVwc8KxI0XkIRG5Q0SWx50gIheJyFoRWTsyMtI+KVMQtTDcj2GUvxs7J2HHPdeeCoYzODM0RKQInArcGnP4fmAPVT0I+Brwo7hrqOr1qjqsqsNDQ0PtEzYF0dIgrpv4FvQ2INpxz8aBEY8zCgN4J3C/qr5UeUBVN6vqFn/7p0CPiMybbAEbIereKTgfwyh/N3ZORLwOgxb0NpLoeNA7wtkkuKNEZAHwkqqqiByOp+g2TqZwreC6hWExDCPgM6cu58g953RaDMNRnFAYIjIIvB34YGTfhwBU9TrgTODDIjIObANWq6qbhZlicD3obcFOI+AvVu7RaREMh3FCYajqVmBuxb7rItvXAtdOtlxZ4bqFYS4pwzDS4LZzfYrguoVhQW/DMNJgCmMScN3CKMUwOiyIYRhOYwpjEnA9mGzVag3DSIMpDMNcUoZhpMIURhu5+qyDOHrp3PondhgLehuGkQYnsqSmKmeu2I0zV+zWaTHqYuswDMNIg1kYRmQdRocFMQzDaUxhGBb0NgwjFaYwjNAV5XjJK8MwOow9IozQsrAYhmEYtTCFYZhLyjCMVJjCMCLrMDosiGEYTmMKwyg1zjELwzCMGpjCMCIxjA4LYhiG05jCMCyGYRhGKjquMERkmYg8GHltFpFLKs4REblGRNaJyMMicmin5J2KWAMlwzDS0PHSIKr6JHAwgIjkgfXADytOeyewl/86AvgX/93IALGgt2EYKei4hVHBCcDTqvpsxf7TgBvV4x5glojsOvniTU3CLCnTGIZh1MA1hbEauDlm/0Lg+ci//+TvK0NELhKRtSKydmRkpE0iTj0shmEYRhqcURgiUgROBW5t9hqqer2qDqvq8NDQUHbCTXFsHYZhGGlwRmHgxSnuV9WXYo6tBxZF/r2bv8/IAFuHYRhGGlxSGGcT744CWAOc62dLrQQ2qeqGyRNtamPrMAzDSEPHs6QARGQQeDvwwci+DwGo6nXAT4FTgHXAG8D5HRBzyhJUqTULwzCMWjihMFR1KzC3Yt91kW0FPjrZcu0sWE9vwzDS4JJLyugQFvQ2DCMNpjAMjlk6jw+v+jP2HJrWaVEMw3AYJ1xSRmeZPVjk707ep9NiGIbhOGZhGIZhGKkwhWEYhmGkwhSGYRiGkQpTGIZhGEYqTGEYhmEYqTCFYRiGYaTCFIZhGIaRClMYhmEYRirEK9M09RCREaCyc58rzAP+r9NCNInJ3hm6VfZulRt2Xtn3UNXYhkJTVmG4jIisVdXhTsvRDCZ7Z+hW2btVbjDZ4zCXlGEYhpEKUxiGYRhGKkxhdIbrOy1AC5jsnaFbZe9WucFkr8JiGIZhGEYqzMIwDMMwUmEKwzAMw0iFKYwMEJFvicjLIvJoZN8tIvKg//pfEXkwcuxyEVknIk+KyEmR/Sf7+9aJyGWuyS4ii0VkW+TYdZHPrBCRR3zZrxFpf4PwBNkPFpF7fPnWisjh/n7x5VonIg+LyKGRz5wnIn/wX+e1W+4mZF8lIpsi9/2KyGdcGTMHichv/DFwu4jMiBxzfbzHyu7SeBeRRSLyCxH5vYg8JiIf9/fPEZG7/bF7t4jM9ve3Z7yrqr1afAHHAYcCjyYc/zJwhb+9H/AQ0AssAZ4G8v7raWBPoOifs59jsi+ucd5vgZWAAHcA7+yE7MBdwXcDpwC/jGzf4cu3ErjX3z8H+KP/Ptvfnu2Y7KuA/4i5hjNjBvgd8FZ/+wLgs90y3mvI7sx4B3YFDvW3pwNP+ff2n4DL/P2XAV9s53g3CyMDVPVXwCtxx/yZx/uAm/1dpwHfU9XtqvoMsA443H+tU9U/quoo8D3/XJdkj0VEdgVmqOo96o3KG4HTs5a1kgTZFQhmtzOBF/zt04Ab1eMeYJYv90nA3ar6iqq+CtwNnOyY7Em4NGb2Bn7lb98NnOFvd8N4T5I9lk6Md1XdoKr3+9uvA48DC/Hu2Xf8074TkaMt490URvs5FnhJVf/g/3sh8Hzk+J/8fUn7O0ml7ABLROQBEfkvETnW37cQT96ATsp+CfAlEXkeuBq43N/fDfc9SXaAI0XkIRG5Q0SW+/tckv0xSg/8s4BF/nY33Pck2cHB8S4ii4FDgHuBXVR1g3/oRWAXf7st990URvs5mzozdIeplH0DsLuqHgJ8Avj3qK/aET4MXKqqi4BLgW92WJ5GSJL9frz6PgcBXwN+1CH5anEB8BERuQ/PZTLaYXkaIUl258a7iEwDfgBcoqqbo8d8a6et6yRMYbQRESkA7wVuiexeT/kMZjd/X9L+jhAnu+9W2Ohv34fng94bT87dIh/vpOznAbf527fiuT6gO+57rOyqullVt/jbPwV6RGQeDsmuqk+o6jtUdQXeJONp/5Dz9z1JdtfGu4j04CmLm1Q1GCcv+a6mwFX2sr+/LffdFEZ7ORF4QlWj5usaYLWI9IrIEmAvvADa74C9RGSJiBSB1f65naJKdhEZEpG8v70nnux/9E3izSKy0o97nAv8uBNC4/n93+pvHw8E7rQ1wLl+9shKYJMv953AO0Rktp9h8g5/XyeIlV1EFgRZOH7mVA7YiENjRkTm++854NNAkFHk/HhPkt2l8e5/zzeBx1X1K5FDa/AmGvjvP47sz368tzOyv7O88GYlG4AxPJ/ghf7+fwU+FHP+p/BmK08Sya7Ay2x4yj/2KddkxwsGPgY8iOcmeXfk2DDwqC/7tfhVBCZbduAY4D68rJt7gRX+uQJ83ZfvEWA4cp0L8IKx64DzO3Xfa8h+sX/fHwLuAY5ybcwAH/fleAr4QvTv7/p4T5LdpfHujw0FHvbledC/f3OBn+FNLv4TmNPO8W6lQQzDMIxUmEvKMAzDSIUpDMMwDCMVpjAMwzCMVJjCMAzDMFJhCsMwDMNIhSkMwzAMIxWmMAzDMIxU/D8J24IEAZavlAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "year_plot = df['YEAR'].plot()\n", "\n", "year_plot.set_ylabel(r'Temperature ($^\\circ$C)')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercises\n", "\n", "- Make sure you can reproduce the plot above. Try tweaking the labels or which column is plotted.\n", "- Try putting in two `plot()` calls with different months (January and July for example) before calling `show()`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Making it prettier" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While it's useful to be able to quickly plot any data we have in front of us, matplotlib's power comes from its configurability. Let's experiment with a dataset and see how much we can change the plot.\n", "\n", "We'll start with a simple `DataFrame` containing two columns, one with the values of a cosine, the other with the values of a sine." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "X = np.linspace(-np.pi, np.pi, 256, endpoint=True)\n", "data = {'cos': np.cos(X), 'sin': np.sin(X)}\n", "trig = DataFrame(index=X, data=data)\n", "\n", "trig.plot()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can see that it has plotted the sine and cosine curves between $\\pi$ and $-\\pi$. Now, let's go through and see how we can affect the display of this plot." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Changing colours and line widths\n", "\n", "First step, we want to have the cosine in blue and the sine in red and a slighty thicker line for both of them. To do this we need separate calls to the plot methods, one for each column in our DataFrame.\n", "\n", "Also, to be explicit about where we want things plotted, we will create a `Figure` object using `plot.figure()`, then ask that figure to create a single subplot onto which we will do our drawing. Confusingly in matplotlib subplots are also referred to as `Axes` so we name our subplot reference `ax`. We can pass this `Axes` object to our pandas plotting function to tell it where it should plot the data:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercises\n", "\n", "- Using the temperature dataset, set the colours of the July and January lines to a warm colour and a cool colour.\n", "- Add in the yearly average column to the plot with a dashed line style." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setting limits\n", "\n", "Current limits of the figure are a bit too tight and we want to make some space in order to clearly see all data points." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "### New code\n", "ax.set_xlim(trig.index.min() * 1.1, trig.index.max() * 1.1)\n", "ax.set_ylim(trig.cos.min() * 1.1, trig.cos.max() * 1.1)\n", "### End of new code\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setting ticks\n", "\n", "Current ticks are not ideal because they do not show the interesting values ($\\pm\\pi$,$\\pm\\frac{\\pi}{2}$) for sine and cosine. We’ll change them such that they show only these values." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "ax.set_xlim(trig.index.min() * 1.1, trig.index.max() * 1.1)\n", "ax.set_ylim(trig.cos.min() * 1.1, trig.cos.max() * 1.1)\n", "\n", "### New code\n", "ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])\n", "ax.set_yticks([-1, 0, +1])\n", "### End of new code\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Setting tick labels\n", "\n", "Ticks are now properly placed but their label is not very explicit. We could guess that 3.142 is $\\pi$ but it would be better to make it explicit. When we set tick values, we can also provide a corresponding label in the second argument list. Note that we’ll use LaTeX to allow for nice rendering of the label." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "ax.set_xlim(trig.index.min() * 1.1, trig.index.max() * 1.1)\n", "ax.set_ylim(trig.cos.min() * 1.1, trig.cos.max() * 1.1)\n", "\n", "ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])\n", "ax.set_yticks([-1, 0, +1])\n", "\n", "### New code\n", "ax.set_xticklabels([r'$-\\pi$', r'$-\\pi/2$', r'$0$', r'$+\\pi/2$', r'$+\\pi$'])\n", "ax.set_yticklabels([r'$-1$', r'$0$', r'$+1$'])\n", "### End of new code\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Moving spines\n", "\n", "Spines are the lines connecting the axis tick marks and noting the boundaries of the data area. They can be placed at arbitrary positions and until now, they were on the border of the axis. We’ll change that since we want to have them in the middle. Since there are four of them (top/bottom/left/right), we’ll discard the top and right by setting their color to none and we’ll move the bottom and left ones to coordinate 0 in data space coordinates." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "ax.set_xlim(trig.index.min() * 1.1, trig.index.max() * 1.1)\n", "ax.set_ylim(trig.cos.min() * 1.1, trig.cos.max() * 1.1)\n", "\n", "ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])\n", "ax.set_yticks([-1, 0, +1])\n", "\n", "ax.set_xticklabels([r'$-\\pi$', r'$-\\pi/2$', r'$0$', r'$+\\pi/2$', r'$+\\pi$'])\n", "ax.set_yticklabels([r'$-1$', r'$0$', r'$+1$'])\n", "\n", "### New code\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.spines['bottom'].set_position(('data',0))\n", "ax.yaxis.set_ticks_position('left')\n", "ax.spines['left'].set_position(('data',0))\n", "### End of new code\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Adding a legend\n", "\n", "Let’s add a legend in the upper left corner. This only requires adding the keyword argument label (that will be used in the legend box) to the plot commands." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "ax.set_xlim(trig.index.min() * 1.1, trig.index.max() * 1.1)\n", "ax.set_ylim(trig.cos.min() * 1.1, trig.cos.max() * 1.1)\n", "\n", "ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])\n", "ax.set_yticks([-1, 0, +1])\n", "\n", "ax.set_xticklabels([r'$-\\pi$', r'$-\\pi/2$', r'$0$', r'$+\\pi/2$', r'$+\\pi$'])\n", "ax.set_yticklabels([r'$-1$', r'$0$', r'$+1$'])\n", "\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.spines['bottom'].set_position(('data',0))\n", "ax.yaxis.set_ticks_position('left')\n", "ax.spines['left'].set_position(('data',0))\n", "\n", "### New code\n", "ax.legend(loc='upper left')\n", "### End of new code\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Annotate some points\n", "\n", "Let’s annotate some interesting points using the annotate command. We chose the $\\frac{2}{3}\\pi$ value and we want to annotate both the sine and the cosine. We’ll first draw a marker on the curve as well as a straight dotted line. Then, we’ll use the annotate command to display some text with an arrow." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig[\"cos\"].plot(color=\"blue\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "trig[\"sin\"].plot(color=\"red\", linewidth=2.5, linestyle=\"-\", ax=ax)\n", "\n", "ax.set_xlim(trig.index.min() * 1.1, trig.index.max() * 1.1)\n", "ax.set_ylim(trig.cos.min() * 1.1, trig.cos.max() * 1.1)\n", "\n", "ax.set_xticks([-np.pi, -np.pi/2, 0, np.pi/2, np.pi])\n", "ax.set_yticks([-1, 0, +1])\n", "\n", "ax.set_xticklabels([r'$-\\pi$', r'$-\\pi/2$', r'$0$', r'$+\\pi/2$', r'$+\\pi$'])\n", "ax.set_yticklabels([r'$-1$', r'$0$', r'$+1$'])\n", "\n", "ax.spines['right'].set_color('none')\n", "ax.spines['top'].set_color('none')\n", "ax.xaxis.set_ticks_position('bottom')\n", "ax.spines['bottom'].set_position(('data',0))\n", "ax.yaxis.set_ticks_position('left')\n", "ax.spines['left'].set_position(('data',0))\n", "\n", "ax.legend(loc='upper left')\n", "\n", "### New code\n", "t = 2 * np.pi / 3\n", "ax.plot([t, t], [0, np.cos(t)], color='blue', linewidth=2.5, linestyle=\"--\")\n", "ax.scatter([t, ], [np.cos(t), ], 50, color='blue')\n", "\n", "ax.annotate(r'$cos(\\frac{2\\pi}{3})=-\\frac{1}{2}$',\n", " xy=(t, np.cos(t)), xycoords='data',\n", " xytext=(-90, -50), textcoords='offset points', fontsize=16,\n", " arrowprops=dict(arrowstyle=\"->\", connectionstyle=\"arc3,rad=.2\"))\n", "\n", "ax.plot([t, t],[0, np.sin(t)], color='red', linewidth=2.5, linestyle=\"--\")\n", "ax.scatter([t, ],[np.sin(t), ], 50, color='red')\n", "\n", "ax.annotate(r'$sin(\\frac{2\\pi}{3})=\\frac{\\sqrt{3}}{2}$',\n", " xy=(t, np.sin(t)), xycoords='data',\n", " xytext=(+10, +30), textcoords='offset points', fontsize=16,\n", " arrowprops=dict(arrowstyle=\"->\", connectionstyle=\"arc3,rad=.2\"))\n", "### End of new code\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now you know how to make different modifications to your plots we can make some of these changes to our temerature data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving plot to a file\n", "\n", "You can take any plot you've created within Jupyter and save it to a file on disk using the `plt.savefig()` function. You give the function the name of the file to create and it will use whatever format is specified by the name. Note that you must save the fig before you `show()` it, otherwise it will not create the figure correctly." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "\n", "trig.plot(ax=ax)\n", "\n", "fig.savefig('my_fig.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can then display the figure in Markdown node in Jupyter with `![](my_fig.png)`\n", "\n", "![](my_fig.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercises\n", "\n", "- Add in a legend for the data.\n", "- Add an annotation to one of the spikes in the data. Make sure the label is placed nicely.\n", " - Tip: you can get the year and temperature for a spike using:\n", " ```python\n", " warm_winter_year = df['JAN'].idxmax()\n", " warm_winter_temp = df['JAN'].max()\n", " ```\n", "- Save the figure to a file and display it in your Jupyter notebook." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bar charts\n", "\n", "Of course, Matplotlib can plot more than just line graphs. One of the other most common plot types is a bar chart. Let's work towards plotting a bar chart of the average temperature per decade.\n", "\n", "Let's start by adding a new column to the data frame which represents the decade. We create it by taking the index (which is a list of years), converting each element to a string and then replacing the fourth character with a `'0'`." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECYEARdecade
16593.04.06.07.011.013.016.016.013.010.05.02.08.871650
16600.04.06.09.011.014.015.016.013.010.06.05.09.101660
16615.05.06.08.011.014.015.015.013.011.08.06.09.781660
16625.06.06.08.011.015.015.015.013.011.06.03.09.521660
16631.01.05.07.010.014.015.015.013.010.07.05.08.631660
\n", "
" ], "text/plain": [ " JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC YEAR \\\n", "1659 3.0 4.0 6.0 7.0 11.0 13.0 16.0 16.0 13.0 10.0 5.0 2.0 8.87 \n", "1660 0.0 4.0 6.0 9.0 11.0 14.0 15.0 16.0 13.0 10.0 6.0 5.0 9.10 \n", "1661 5.0 5.0 6.0 8.0 11.0 14.0 15.0 15.0 13.0 11.0 8.0 6.0 9.78 \n", "1662 5.0 6.0 6.0 8.0 11.0 15.0 15.0 15.0 13.0 11.0 6.0 3.0 9.52 \n", "1663 1.0 1.0 5.0 7.0 10.0 14.0 15.0 15.0 13.0 10.0 7.0 5.0 8.63 \n", "\n", " decade \n", "1659 1650 \n", "1660 1660 \n", "1661 1660 \n", "1662 1660 \n", "1663 1660 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "years = Series(df.index, index=df.index).apply(str)\n", "decade = years.apply(lambda x: x[:3]+'0')\n", "\n", "df['decade'] = decade\n", "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once we have our decade column, we can use Pandas `groupby()` function to gather our data by decade and then aggregate it by taking the mean of each decade." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECYEAR
decade
16503.004.006.007.0011.0013.0016.0016.0013.0010.005.002.008.870
16602.604.005.107.7010.6014.5016.0015.7013.3010.006.303.809.157
16703.252.354.507.2511.0514.4015.8015.2512.408.955.202.458.607
16802.502.804.807.4011.4514.0015.4514.9012.709.555.454.058.785
16901.892.493.996.799.6013.4415.2714.6511.938.645.263.318.134
\n", "
" ], "text/plain": [ " JAN FEB MAR APR MAY JUN JUL AUG SEP OCT \\\n", "decade \n", "1650 3.00 4.00 6.00 7.00 11.00 13.00 16.00 16.00 13.00 10.00 \n", "1660 2.60 4.00 5.10 7.70 10.60 14.50 16.00 15.70 13.30 10.00 \n", "1670 3.25 2.35 4.50 7.25 11.05 14.40 15.80 15.25 12.40 8.95 \n", "1680 2.50 2.80 4.80 7.40 11.45 14.00 15.45 14.90 12.70 9.55 \n", "1690 1.89 2.49 3.99 6.79 9.60 13.44 15.27 14.65 11.93 8.64 \n", "\n", " NOV DEC YEAR \n", "decade \n", "1650 5.00 2.00 8.870 \n", "1660 6.30 3.80 9.157 \n", "1670 5.20 2.45 8.607 \n", "1680 5.45 4.05 8.785 \n", "1690 5.26 3.31 8.134 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "by_decade = df.groupby('decade')\n", "agg = by_decade.aggregate(np.mean)\n", "\n", "agg.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At this point, `agg` is a standard Pandas `DataFrame` so we can plot it like any other, by putting `.bar` after the `plot` call:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEWCAYAAACEz/viAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAcD0lEQVR4nO3debQkdXn/8feHGSYsgyxyGSIwDCCL44Z4gQFUZJMlBCYJRCHKEnGOEgGjJkISA9EDYn7GID8ZzRxcMKLGsAgnwLA5hCDbbAzDMMMiywCOMIRhceHH9vz++H6bqWl67q2e6a7qvvfzOqfOra5+btXT367up6vqW1WKCMzMbHRbp+4EzMysfi4GZmbmYmBmZi4GZmaGi4GZmeFiYGZmwNi6E1gTm2++eUyaNKnuNMzM+srcuXOfjoiBVs/1ZTGYNGkSc+bMqTsNM7O+IunR1T3n3URmZuZiYGZmLgZmZoaLgZmZ4WJgZma4GJiZGS4GZmaGi4GZmdGnJ52ZmY1Gk06/apXHj5z7Rx2bt7cMzMzMxcDMzFwMzMyMCouBpO9KekrSPYVpm0m6XtID+e+mVeVjZmYrVbll8H3gkKZppwM3RsSOwI35sZmZVayy3kQRcbOkSU2TjwQ+mMcvAm4CvlBVTmZmvaKbPYXKqPuYwYSIWJbHfw1MqDMZM7PRqmfOM4iIkBSre17SNGAawMSJEyvLy8ysn6zpFkbdWwZPSvpDgPz3qdUFRsSMiBiMiMGBgZZ3bTMzszVU95bBlcDxwLn57xX1pjOyNP9CgOr3Q5pZf6iya+mPgduAnSU9LunjpCJwkKQHgAPzYzMzq1iVvYmOWc1TB1SVg5mZtVb3MQMzM+sBdR8zMDPrKB8rWzMuBmbWN/xF3z3eTWRmZt4yMDNbG2VO8qr7UhNluBiY2ajUD1/QVfJuIjMz85aBmfUGHxyul4tBn/IHpzrenWCjgYuBWZ/pxx8C/ZgzjK4fAi4GVqmR+uEaqa/LRg8XAxux+vELutd+QfdaPtY9I74Y9OPK3I852+jl9XVkGPHFoNeM5A9Olb/E+/FXf5VG8npm3eFiYKX4y3ft+QvaeplPOjMzMxcDMzPzbiKj93YB9Vo+I5V3W1lRXxcDr8xmZp3R18WgSi48I5O3QswSHzMwMzMXAzMzczEwMzN8zADw8QAzM28ZmJmZi4GZmbkYmJkZLgZmZoaLgZmZ4WJgZma4GJiZGT1SDCT9taRFku6R9GNJ69Wdk5nZaFL7SWeStgJOBSZHxO8l/RT4CPD9WhNbAz55zcz6VU9sGZCK0vqSxgIbAL+qOR8zs1Gl9mIQEU8AXwOWAsuA5yLiunqzMjMbXWovBpI2BY4EtgPeAmwo6aMt4qZJmiNpzvLly6tO08xsRKu9GAAHAg9HxPKIeBm4DNi7OSgiZkTEYEQMDgwMVJ6kmdlI1gvFYCkwRdIGkgQcACyuOSczs1Gl9mIQEXcAlwDzgIWknGbUmpSZ2ShTe9dSgIg4Eziz7jzMzEar2rcMzMysfi4GZmbWfjGQtKGkMd1IxszM6jFsMZC0jqRjJV0l6SlgCbBM0r2S/o+kt3Y/TTMz66YyWwazgB2AM4AtI2KbiNgCeB9wO/DVVieJmZlZ/yjTm+jAfDLYKiLiGeBS4FJJ63Y8MzMzq0yZLYNtJe3TPFHSPpJ2AGhVLMzMrH+UKQbnAc+3mP58fs7MzPpcmWIwISIWNk/M0yZ1PCMzM6tcmWKwyRDPrd+pRMzMrD5lisEcSZ9onijpJGBu51MyM7OqlelN9Bngckl/wcov/0FgHPAn3UrMzMyqM2wxiIgngb0l7Qe8I0++KiJ+3tXMzMysMqWvWhoRs0gnoJmZ2QjjC9WZmVmpaxPtJWmoHkVmZtbnhiwGkr4MDAD/Vk06ZmZWh+G2DH4BTAHuryAXMzOryZAHkCNiJjCzolzMzKwmPoBsZmalDiCrEzFmZta7St3cRtIpkiYWJ0oaJ2l/SRcBx3cnPTMzq0KZk84OAf4S+LGk7YBngfWAMcB1wHkRMb97KZqZWbeVuRzFi8B0YHq+o9nmwO8j4tluJ2dmZtUofTkKeP2OZsu6lIuZmdXEvYnMzMzFwMzM2igGSj4q6R/z44mS9uheamZmVpV2tgymA3sBx+THLwAXdDwjMzOrXDsHkPeMiN0kzQeIiBWSxnUpLzMzq1A7WwYvSxoDBICkAeC1rmRlZmaVaqcYnA9cDmwh6WzgFuCcTiQhaRNJl0haImmxpL06MV8zMyun1G6ifO2hm4G5wAGAgKkRsbhDeXwDmBkRR+VdTxt0aL5mZlZCqWIQESHp6oh4J7CkkwlI2hj4AHBCXtZLwEudXIaZmQ2tnd1E8yTt3oUctgOWA9+TNF/ShZI27MJyzMxsNdopBnsCt0n6paS7JS2UdHcHchgL7AZ8KyLeA/wWOL05SNI0SXMkzVm+fHkHFmtmZg3tdC09uEs5PA48HhF35MeX0KIYRMQMYAbA4OBgdCkXM7NRqXQxiIhHu5FARPxa0mOSdo6I+0gHqO/txrLMzKy10sWgcRmKZhHxpQ7kcQpwce5J9BBwYgfmaWZmJbWzm+i3hfH1gMOBjnQtjYi7gMFOzMvMzNrXzm6ifyk+lvQ14NqOZ2RmZpVbm0tYbwBs3alEzMysPu0cM1hIvi4R6f7HA8CXu5GUmZlVq51jBocXxl8BnoyIVzqcj5mZ1aCd3UQnR8SjeXgiIl6R9NWuZWZmZpVppxgc1GLaoZ1KxMzM6jPsbiJJnwJOBrZvuvzERsCt3UrMzMyqU+aYwY+Aa4CvsOplIl6IiGe6kpWZmVVq2GIQEc8BzwHHSNoU2JF00hmSiIibu5uimZl1WztdS08CTiOdW3AXMAW4Ddi/O6mZmVlV2jmAfBqwO/BoROwHvAd4titZmZlZpdopBi9GxIsAkv4gIpYAO3cnLTMzq1I7J509LmkT4GfA9ZJWAF25rLWZmVWrVDGQJODUiHgWOEvSLGBjYGY3kzMzs2qUKgYREZKuBt6ZH/93V7MyM7NKtXPMYJ6k3buWiZmZ1aadYwZ7Ah+V9AjpRjcibTS8qxuJmZlZddopBgd3LQszM6tVO7uJlgLvB46PiEdJ9zaY0JWszMysUu0Ug+nAXsAx+fELwAUdz8jMzCrX1jGDiNhN0nyAiFghaVyX8jIzswq1s2XwsqQx5FtfShoAXutKVmZmVql2isH5wOXABElnA7cA53QlKzMzq1Tp3UQRcbGkucABedLUiFjcnbTMzKxK7VzCej3gMFKPoteAcZIebly8zszM+lc7B5B/QOpBdH5+fCzw78DRnU7KzMyq1U4xeEdETC48niXp3k4nZGZm1Wv32kRTGg8k7QnM6XxKZmZWtXa2DN4L3CppaX48EbhP0kJ8jSIzs77WTjE4pGtZmJlZrdrpWuq7mpmZjVDtdC0dBP4e2Db/X0cvYZ3Pbp4DPBERh3dinmZmVk47u4kuBv4GWEh3LkNxGrAYeFMX5m1mZkNopxgsj4gru5GEpK2BPwLOBj7bjWWYmdnqtVMMzpR0IXAj8P8aEyPisg7kcR7wt8BGHZiXmZm1qZ1icCKwC7AuK3cTBbBWxUDS4cBTETFX0geHiJsGTAOYOHHi2izSzMyatFMMdo+InbuQwz7AEZIOA9YD3iTphxHx0WJQRMwAZgAMDg5GF/IwMxu12jkD+VZJk4cPa09EnBERW0fEJOAjwM+bC4GZmXVXO1sGU4C7JD1MOmbQ0a6lZmZWn546AzkibgJu6vZyzMxsVe3sJlpKupfB8fls5AAmdCUrMzOrVDvFYDqwF3BMfvwCcEHHMzIzs8q1s5toz4jYTdJ8gIhYIWlcl/IyM7MKtbNl8HK+flAASBqgO5elMDOzirVTDM4HLge2kHQ2cAtwTleyMjOzSg27m0jS2Ih4JSIuljQXOIDUrXRqRCzueoZmZtZ1ZY4Z3AnsBhARS4AlXc3IzMwqV2Y3kbqehZmZ1arMlsGApNVeVjoivt7BfMzMrAZlisEYYDzeQjAzG7HKFINlEfGlrmdiZma18TEDMzMrVQwO6HoWZmZWq2GLQUQ8U0UiZmZWn3bOQDYzsxHKxcDMzFwMzMzMxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzeqAYSNpG0ixJ90paJOm0unMyMxttxtadAPAK8LmImCdpI2CupOsj4t66EzMzGy1q3zKIiGURMS+PvwAsBraqNyszs9Gl9mJQJGkS8B7gjnozMTMbXXqmGEgaD1wKfCYinm/x/DRJcyTNWb58efUJmpmNYD1RDCStSyoEF0fEZa1iImJGRAxGxODAwEC1CZqZjXC1FwNJAr4DLI6Ir9edj5nZaFR7MQD2AT4G7C/prjwcVndSZmajSe1dSyPiFkB152FmNpr1wpaBmZnVzMXAzMxcDMzMzMXAzMxwMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzPDxcDMzHAxMDMzXAzMzAwXAzMzw8XAzMxwMTAzM1wMzMwMFwMzM6NHioGkQyTdJ+lBSafXnY+Z2WhTezGQNAa4ADgUmAwcI2lyvVmZmY0utRcDYA/gwYh4KCJeAn4CHFlzTmZmo4oiot4EpKOAQyLipPz4Y8CeEfHpprhpwLT8cGfgvsLTmwNPD7OoKmN6MSfHOGZtYnoxJ8e0H7NtRAy0jI6IWgfgKODCwuOPAd9scx5zeimmF3NyjGPWJqYXc3JMZ97XxtALu4meALYpPN46TzMzs4r0QjGYDewoaTtJ44CPAFfWnJOZ2agytu4EIuIVSZ8GrgXGAN+NiEVtzmZGj8VUvTzHOKbbMVUvzzHVxLyu9gPIZmZWv17YTWRmZjVzMTAzMxcDMzNzMTAzM3qgN5GZmQ1N0sbAIcBWedITwLUR8WwhZhfSpXyKMVdGxOJSy+jH3kSSDgamsuqLviIiZrYbVzJm2EaueD6dWlaV+VTZPh354JSMKbOsyvLpcN69tg71Wj6VrNOSjgPOBK5j5Qm5WwMHAf8UET+Q9AXgGNK13R4vxHwE+ElEnMsw+q4YSDoP2An4Aau+6OOAByLitLJxJWOGbeSK59OpZVWZT5Xt05EPTsmYMsuqLB+ADubda+tQr+VT5Tp9H+l6ba8XagBJmwJ3RMROku4H3h4RLzfFjAMWRcSODKeda1f0wgDcv5rpyo1XOq5sDLBui5hxdc2nU8uqMp8K2+c+YJMWMZs2/r+D7VNmWZXl0+G8e24d6rV8Klyn7wc2bhGzcSFmCekidM0x2wL3tVpG89CPB5BflLR7i+m7Ay+2GVcm5jXgLS1i/jA/V/V8OrWsKvOpsn0EtNrcfS0/V3ZZZWLKLKvKfDqZd6+tQ72WT5Xr9NnAPEnfkvR3efg2MC8/B/AZ4EZJ10iakYeZwI3AaS3m/wb9eAD5BOBbkjZi5WbVNsBz+bl24k4Epg8T02jkB4DH8rSJwFuBxmW2yyyrU/Pp1LKqzKfKdm58cK5rms9BwJc73D5lllVlPp3Mu9fWoV7Lp7J1OiIuknQlcDArjyvcBJwREStyzExJO5HuD1M89jA7Il6lhL47ZtAgaUsKLzoifr2mccPFSFqHEo1c1Xw6tawq8+lUziXnsymrfnAaB0dXtLOskjFlllVZPh3Ou6fWoV7Lp1M5t7GsCU0xTzbHtCJpfET8Zti4fi0GDZLGkw7APBSr9oQYB7wcjR1w0n7AbqSDKY2j9O+KiLtLLGMi8HxEPCtpEjAILI6mC+pJGiRV9VdJ+wKXND0v3rhi3Bkl3gRJuxTnJ2ndeOPBos0j4uk8vg5ARLyW2+IdwCMR8cwQyzg5IqYP8fwb2roX2znHdPWDM8T/bzZUG+eYIyJiyCvzDjcfSW8F3k1qn3sL0zeJpgONq/n/sRHxSh4fD+xCel+faYobIB3QfDU//5um571OD/0a13qdlrQr8G3SMYLHSbvytgaeBU6OiHnD5LA0IiYOl+uwBxV6bQCmF8bfBywFZpE2ww4rPLcA2DSP/w1wK/APwPXAV/L0V4EHSJvGk1ezvNOBh0kHaE7Kf78DLAI+m2P2BeYANwArgP8CfkHalNsmx3wIeBC4BrgwDzPztA+VeN1L89/98grxNKk3yKRCzLz8dyrwJLCM1K3tDtK+w8eBP84xn20xPN0YL9vWPdjOuwK3A4tzDjfked0O7NZGO78r/89jpKs/blqIuTP/3ScvZxGwZ17eL/P/7JVj/rTF8OvGeI75h8K8J5MOGD4MPELqRUJu983z+MdyzIXAQuCUwv+/kl/zx2lxkDjHnAD8b57HocBDef14DDimkMcNpPXzJdI69DDwffLBTLxOV7VO39VYD5rmPwVYMMRr/yzwOeCZUt+t3frS7tbQWDkKH5Dd8vj2FO7sA9xTGJ8DrJ/HxwJ35/H5pF8XZ+cVeEF+A4sr4yJgfeDNwAvAQJ6+YWMZeT6N6dsBl+fxg4Dr8vji4nwL89+O9EsB4PzVDP+X9OsC0v0f3p7Hj8or5JRGHoV8tszzfh7YOU/fttFG+bX8B/CPpG6GZ+aV8UzgzLJt3YPt3JEPDnALqR/+JsDnc347NLXzncA7gb1IXzrvy9N3A36Rx18mfcC/C3wvDy/kv99t0c5XAYfm8T2AW1u082zgzXl8g0Y758cLgcOBi0lf+FeQujKu3xSzeWH9aLyuCYX37HZWrjd7ABfl8U8Al3idrnSdfqC5jQvLeDD/fZFUmM5sMTxb6rt1Tb6Q6xya3sy5Qzx3K/COPD6TlZV+vcIbMa/p//cAvk76tdH4EDbe/DHAU8A6hfh7ijGFuGIeixpvKDC2xesZV3hDXyDd5/n4FsPTOWZB0/+/ndRVcCorf0XNb86xuY1IB7L+E/gqsEGe9lC7bd2L7dyJD06Ldt4vv4dTVtPOi1fTPruTfsF+qvDcw0O08/ym54pfhlvl8VnAeoV2WLSaea0P/DlwGakw/ChPv6sQ86um5TXeh+bXX5xv44ve63Q16/T5pB8JHwb2zsOH87RvFnJ+72rW+8dW95koDv3Ym2gXSXeT9ptNkrRpRKzI+xPHFeI+CVwsaQHpjZgj6WbSL7lzcoyKM46IO4E7JX0O+ECePE/Sj0jV/EbgIqUuW/sDjX21cyR9B/g5cARpEw9JG5DeYEi/DGdL+gkrexZsQ/rV9p38eDZpJbm1+UVLOiuPvixpy8gHmCJikaQDSL8+dyjErxMRrwF/WZg2ptFGEbEUOFrSkcD1kv61eZmUa+tea+drJF1FOomn2M7HkT7YkLrk/Swi5ja/YEknFcY3jojncs6zJP0ZcCmwWQ4pds0+o2lWjXaeLekg4BRJs4Av8MZundvn3iICtpa0QUT8Lj+3bv7718B1ki4l/eL8uaRrSbs6vld8CY2RiPg98FPgp0pnHE/NTy2V9BVgI2CJpH8hFYwDSbthAH4p6Yuktv5T0hYXktYtvG6v01k31+mIOFXSobzxTOYLIuLq/PhEYHXHTgZXM30VfXcAWdK2TZOWRcRLkjYHPhARlxVix5D2a+5E2sR7nMIp95KOjYgfDbO8scDRpA/wJaR9w8eQ9jVeEBG/zR+QT5D2sy4gbf6/Kml9YIuIeDTP6220PjX93vz8ZsCLhS+CVvkcCCyPiAVN0zcGPh0RZyv1W14YES82xUwi7cr4YdP0DYGzSLtXPlCY3tzWv4qIl5vbukvtvAdwLGvWzoeRPljN7Xx1fn5n0u6g5S3ymBART0o6lvSr8vam5ycCX4yIT0g6Arih+f2StAPwZxHxz03TtwL+FRiMiO0L0/dtSmNuRPwmHwQ/KiIuyHEb5zYptvMVserBxs9HxNdat/LrMW8C/orU1t8k7Q47gdTWX46IZZI2Af6OlW19bkS8kHN4W6NdJE2mdVt3Yp3eBPirNVynx5O29IZbp1t+f/Tad0cV+q4YtCLpzRHxv52IqzLGzGw4uQCfQfohOYFUXJ4iHQ86N1JPpUbMVGCLVjHDLqjMvqReGoBzWdmrYpDUE+JB4FFg33bi1iLmgTWYzzxSj4Tth3htjZgdHDNkzFBtuDtpn/oPSbssrid1wZsNvKfwHjXHPNdGzK5rGdNOPqXns5avbU3aaDzwJdJuq+eA5aQDzycU8nHMG2OObxFzzxDzuZa0e3HLwrQtSQesrxsm5guNmGG/W8sE9dJA2lRsjM8Cds/jO7Fqb6Jh4yqOeRj4GmkT8U7SPuC3NL02x6x9zJ2k7pLHkPZjH5WnHwDcNpJjasjpCtLupa1JvbG+COwIXASc45iOxaz22kKN58rEDPvd2u0v704PpO5sY/P47U3PLWwnruKYYi+B9wPTSf3NZwHTHNOxmGKvk6VN78X8kRxTQ07NvYBm57/rAEsc07GY64C/BSYU4iaQfvXfUDZmuKEfL1Q3Hbha0v7ATEnfkLSvpH8i93hoI67KmNdFxP9ExMmkg25fJfVTd0xnYl6U9CFJRwMhaSq8fpD21REeU/XyfivpfXn6EeTeLJF6/MgxHYv5MOlchf+WtELSM6ReR5uRug6XjRlamYrRawPwQdLJJfNJJ9BcTerLPLbduKpiSNcvH+51OWbtY95N2n96DekSC98g7Q9fBOw9kmNqyOldpN1JK0gn6e2Upw8ApzqmMzH58S6krr/jm9b3Q9qJGfKzUyaoXwbgxE7FOcYxIymmF3NyTLkY4FTSSXg/I12i5MhCzLyyMcMur0xQvww07dtcmzjHOGYkxfRiTo4pF0Pa0zA+j08iXSLjtPx4ftmY4Ya+OwNZ6ezBlk+RDpiUjnOMY0ZSTC/m5Ji1jyFdxuI3ABHxiKQPApconUCnNmKG1HfFgNRAB5P2sRWJdH2OduIc45iRFNOLOTlm7WOelLRrRNwFEOns9MNJlwN5ZxsxQ+rHYvBfpM2hN/TSkXRTm3GOccxIiunFnByz9jHHkS5N/rpI96I4TtK/tREzpBFxOQozM1s7/XiegZmZdZiLgZmZuRiYtSLpLEmf79K8T5D0zW7M22xNuRiYmZmLgVmDpL+XdL+kW4Cd87QdJM2UNFfS/0jaJU+fIOlySQvysHee/rMcu0jStMK8T8zzvhPYpzB9QNKlkmbnYR/MauDeRGaApPcC3yfdjWos6d4J3yZdxvmTEfGApD2Br0TE/pL+g3Qp5/OU7oo1PiKek7RZRDyjdKeq2cC+pNsp3gG8l3TN+lmks0I/rXRbxOkRcYvSXdSujYi3VfrizejP8wzMuuH9wOWRb8+odE/i9Ug3H/9P6fWTOP8g/92f1LebiHiV9CUPcKqkP8nj25CuTb8lcFPk22zmQrJTjjkQmFyY/5skjW+cTWpWFRcDs9VbB3g2InYtE5wvAXAgsFdE/C6fNLReiWVMiaZ7+5pVzccMzJKbgamS1pe0EfDHwO+Ah5Wu6Y+Sd+f4G4FP5eljlO5BuzGwIheCXYApOfYOYF9Jb1a6AfrRheVeB5zSeCCpVOEx6zQXAzMgIuaR7kexgHQN/9n5qb8APi5pAela/kfm6acB+0laCMwFJgMzgbGSFpPui317nvcy4CzgNuAXpDvjNZwKDEq6W9K9wCe79RrNhuIDyGZm5i0DMzNzMTAzM1wMzMwMFwMzM8PFwMzMcDEwMzNcDMzMDBcDMzMD/j+vfOX3n2RGbgAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "ax = agg[\"YEAR\"].plot.bar()\n", "\n", "ax.set_ylabel(r'Temperature ($^\\circ$C)')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercises\n", "\n", "1. Plot a bar chart of the average temperature per *century*.\n", " - Set the limits of the y-axis to zoom in on the data.\n", "\n", "2. Plot a *histogram* of the average annual temperature\n", " - Make sure that the x-axis is labelled correctly.\n", " - Tip: Look in the [documentation](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html) for the right command to run\n", " \n", "3. Plot a scatter plot of each year's February temperature plotted against that year's January temperature. Is there an obvious correlation?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Continue to the [next section](numpy arrays.ipynb)." ] } ], "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.7.2" } }, "nbformat": 4, "nbformat_minor": 2 }