Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save metakermit/5792121 to your computer and use it in GitHub Desktop.
Save metakermit/5792121 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "knowledge.ipython.overview.pyugat"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Dra\u017een's humble introduction to*\n",
"\n",
"Becoming a master statistician with IPython notebook\n",
"====================================================\n",
"What's *IPython notebook?* A web interface for a scientific Python shell.\n",
"\n",
"Started by [Fernando Perez](http://fperez.org/) to bring modern, open source tools to the research community.\n",
"\n",
"Main features:\n",
"\n",
"- the power of Python at your fingertips :)\n",
"- IPython, a \"smarter\" shell specialized for scientific workflows\n",
"- Markdown annotations and inline plots as a perfect \"lab notebook\""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[IPython](http://ipython.org/)\n",
"-------\n",
"Basically a Python interpreter with some nice features..."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" - Auto-completion and documentation"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a=range(5)\n",
"a"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"text": [
"[0, 1, 2, 3, 4]"
]
}
],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a.remove(3)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a.remove?"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"text": [
"[0, 1, 2, 4]"
]
}
],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- Clean stack traces"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def divide():\n",
" a = 1\n",
" b = 4\n",
" c = b / (a-1)\n",
"\n",
"divide()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"ename": "ZeroDivisionError",
"evalue": "integer division or modulo by zero",
"output_type": "pyerr",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-5-a8416233c05c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mdivide\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;32m<ipython-input-5-a8416233c05c>\u001b[0m in \u001b[0;36mdivide\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0ma\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m4\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0mdivide\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero"
]
}
],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- bash commands"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"pwd"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"! open unpause_action.pdf"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" - magic commands (enter `%magic` for some extra info)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%timeit a*3"
],
"language": "python",
"metadata": {},
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can easily install it on your server to have a consistent environment\n",
"\n",
" sudo apt-get install ipython"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[IPython notebook](http://ipython.org/ipython-doc/dev/interactive/htmlnotebook.html)\n",
"----------------\n",
"The ultimate lab notebook! Inside it you can use cool features such as:\n",
"\n",
" - Markdown annotations\n",
" - Syntax highlighting\n",
"\n",
"Can you believe it? I used to code in Java!\n",
"\n",
" private static int maxValue(char[] chars) {\n",
"\t int max = chars[0];\n",
" for (int ktr = 0; ktr < chars.length; ktr++) {\n",
" if (chars[ktr] > max) {\n",
" max = chars[ktr];\n",
" }\n",
" }\n",
" return max;\n",
" }\n",
"\n",
"- $\\LaTeX$ formul\u00e6\n",
"\n",
"$E = mc^2 \\ne \\sum_{i \\in N}e^i + \\int_0^\\infty e^{-x}dx$\n",
"\n",
"- Videos!"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from IPython.lib.display import YouTubeVideo\n",
"YouTubeVideo('HaS4NXxL5Qc')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"\n",
" <iframe\n",
" width=\"400\"\n",
" height=300\"\n",
" src=\"http://www.youtube.com/embed/HaS4NXxL5Qc\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"text": [
"<IPython.lib.display.YouTubeVideo at 0x10d165c10>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- inline plots + imported scipy libraries = MATLAB replacement"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"x = linspace(0, 2*pi)\n",
"y = sin(x)\n",
"plot(x,y)\n",
"show()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n/wPZHhGU1Ur4/QAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10d165f90>"
]
}
],
"prompt_number": 7
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- multiple clients\n",
"- notebook server\n",
"- [cluster parallelisation](http://ipython.org/ipython-doc/dev/parallel/)\n",
"- publishing via GitHub Gists + NBViewer ([this notebook](http://nbviewer.ipython.org/5792121))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Cool libraries\n",
"====\n",
"\n",
" - [pandas](http://pandas.pydata.org/)\n",
" - [scipy](http://scipy.org/)\n",
" - [numpy](http://www.numpy.org/)\n",
" - [sympy](http://sympy.org/en/index.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pandas\n",
"------\n",
"Analysing time series data about wind farm power generation. ([kaggle competition](http://www.kaggle.com/c/GEF2012-wind-forecasting))"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"! head data/kaggle/wind_forecast/train.csv"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"date,wp1,wp2,wp3,wp4,wp5,wp6,wp7\r\n",
"2009070100,0.045,0.233,0.494,0.105,0.056,0.118,0.051\r\n",
"2009070101,0.085,0.249,0.257,0.105,0.066,0.066,0.051\r\n",
"2009070102,0.02,0.175,0.178,0.033,0.015,0.026,0\r\n",
"2009070103,0.06,0.085,0.109,0.022,0.01,0.013,0\r\n",
"2009070104,0.045,0.032,0.079,0.039,0.01,0,0\r\n",
"2009070105,0.035,0.011,0.099,0.066,0.015,0.013,0\r\n",
"2009070106,0.005,0,0.069,0.105,0.015,0.079,0\r\n",
"2009070107,0,0.011,0,0.017,0.025,0.013,0.025\r\n",
"2009070108,0,0.016,0,0.017,0.046,0,0\r\n"
]
}
],
"prompt_number": 15
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import pandas as pd\n",
"\n",
"def format_timestamp(raw):\n",
" return '%s %s:00' % (raw[:-2], raw[-2:])\n",
"\n",
"wind = pd.read_csv('data/kaggle/wind_forecast/train.csv', parse_dates=['date'], index_col=['date'], converters={'date':format_timestamp})\n",
"wind"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"text": [
"<class 'pandas.core.frame.DataFrame'>\n",
"DatetimeIndex: 18757 entries, 2009-07-01 00:00:00 to 2012-06-26 12:00:00\n",
"Data columns:\n",
"wp1 18757 non-null values\n",
"wp2 18757 non-null values\n",
"wp3 18757 non-null values\n",
"wp4 18757 non-null values\n",
"wp5 18757 non-null values\n",
"wp6 18757 non-null values\n",
"wp7 18757 non-null values\n",
"dtypes: float64(7)"
]
}
],
"prompt_number": 9
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"wind.index"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
"<class 'pandas.tseries.index.DatetimeIndex'>\n",
"[2009-07-01 00:00:00, ..., 2012-06-26 12:00:00]\n",
"Length: 18757, Freq: None, Timezone: None"
]
}
],
"prompt_number": 10
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"a = '2009-07-01'\n",
"b = '2009-07-03'\n",
"wind[a:b].plot()\n",
"ylabel('normalized wind power')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"text": [
"<matplotlib.text.Text at 0x10ddab450>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEiCAYAAAD+lrlwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXt80/X1/5+fpElvaZteKPRKoRda7i23rwNsvaJMxeH8\nyqaTgRem4mVO59TfFHbXr+6mm8M5521D5hXRCcxJAUFaoeWOLbfSC73fkzTN9fdHmpC0ubVNaQvv\n5+ORh20+n3xy0uArJ6/3eZ8jWa1WKwKBQCC4aJANdwACgUAgOL8I4RcIBIKLDCH8AoFAcJEhhF8g\nEAguMoTwCwQCwUWGEH6BQCC4yBhS4d+8eTPZ2dlkZmbyzDPP9Dn+3HPPkZubS25uLtOmTSMoKIi2\ntrahDEkgEAgueqShquM3m81MmjSJzz77jKSkJObMmcP69evJyclxe/7HH3/M73//ez777LOhCEcg\nEAgEPQxZxl9cXExGRgZpaWkoFAqWLVvGxo0bPZ7/z3/+k+985ztDFY5AIBAIeggaqgvX1NSQkpLi\n+D05OZmioiK35+p0OrZs2cKf//znPsckSRqqEAUCgeCCxpOhM2QZf38Ee9OmTSxYsAC1Wu32uNVq\nvaBvTz/99LDHMJS3/Pz8YY9BvIfiPbzY3kNvDJnwJyUlUVVV5fi9qqqK5ORkt+e+/fbbF7XNU1BQ\nMNwhDClpaWnDHcKQI97D0c+F/h46M2TCP3v2bI4fP05FRQUGg4ENGzZwww039Dmvvb2dHTt2sGTJ\nkqEKZcRzof+DE6Ix+hHv4YXFkHn8QUFBvPjiiyxatAiz2cwdd9xBTk4O69atA2DVqlUAfPjhhyxa\ntIjQ0NChCkUwzFxM/0NdqIj38MJiyMo5A4UkST79KoFAcOFjtVrp7OwkMjJyuEMZFXjTzlG7czcm\nJgZJksRNkoiJiRnut0MgGHIOHTrEVVddNdxhXBAMmdUz1LS2topvAj2IklfBxUBzczMNDQ3DHcYF\nwajN+AUCwcWFRqOhvb19uMO4IBDCLxAIRgVarZaOjg7xTT8ACOEXCASjAo1Gg9lsRqvVDncoox4h\n/AKBYFSg0WgAhN0TAITwj1Dq6uq44YYbSEpKQiaTUVlZOdwhCQTDij3TF8I/eITwj1BkMhmLFy/m\nvffeG+5QBIIRgcj4A4cQ/iHg73//u0t7iszMTP73f//X8XtKSgoHDhxAJpPxwgsvkJ6ezpgxY/jx\nj3/sWLiKj4/nBz/4AbNnzz7v8QsEIxGR8QcOIfxDQEFBATt37gTg7NmzGI1G9uzZA8CpU6fQarVM\nnz4dsLWs2LdvHyUlJWzcuJFXX3112OIWCEYyIuMPHBes8EtSYG4DYcKECURERFBaWsqOHTtYtGgR\niYmJlJWVsX37di699FLHpqvHHnsMtVpNSkoKDz30EOvXrw/gX0EguHDQarWEh4fT0dEx3KGMekbt\nzl1fDHepb35+PoWFhZw4cYL8/HzUajXbt2/nyy+/JD8/33Ge87Ca1NRUzp49OxzhCgQjHo1GQ1JS\nksj4A8AFm/EPN/n5+Wzbto2dO3dSUFDg+CDYvn27i/A7V+tUVlaSlJQ0HOEKBCMerVZLYmKiEP4A\nIIR/iLALv16vJzExkQULFrB582ZaWlrIzc11nPfcc8/R1tZGVVUVf/zjH7nlllscx/R6PXq9vs/P\nAsHFiMj4A8cFa/UMN5mZmURERLBw4UIAIiMjSU9PJz4+3qWp2pIlS5g1axbt7e2sWLGClStXOo6F\nhYUBtiZs2dnZSJKE2Ww+vy9EIBghaLVakpKSqKurG+5QRj1C+IeQ3n79V1991eecxYsXs3r1areP\nt1gsQxKXQDAa0Wg0jiIJweAQVo9AIBgVCKsncAjhH0ZEH32BwH/E4m7gEFbPMCL8eoHAPwwGAxaL\nhfj4eCH8AUBk/AKBYMSj1WpRqVRERUUJ4Q8AQvgFAsGIR6PREB4e7hB+MYxlcAjhFwgEIx57xq9U\nKgkKCqKrq2u4QxrVCOEXCAQjHnvGDwi7JwAMqfBv3ryZ7OxsMjMzeeaZZ9yeU1hYSG5uLlOnTqWg\noGAowxEIBKMUe8YPQvgDwZBV9ZjNZlavXs1nn31GUlISc+bM4YYbbiAnJ8dxTltbG/fddx9btmwh\nOTmZpqamoQpHIBCMYjQajRD+ADJkwl9cXExGRgZpaWkALFu2jI0bN7oI/z//+U9uuukmkpOTAYiL\ni3N7rTVr1jh+LigouCi+GXzyySf8+te/5siRI4SEhHDdddfxu9/9zvGPXyC4mLC3ZAYh/J4oLCyk\nsLDQr3OHTPhrampcWg4nJydTVFTkcs7x48cxGo1cdtlldHZ28uCDD/K9732vz7Wchf9ioaOjg6ee\neopLL70UvV7Pd7/7XR599FFeeuml4Q5NIDjviIzfN72T4rVr13o8d8g8fn92pRqNRkpKSvj3v//N\nli1b+PnPf87x48eHKqTzRiBGL37nO9/h6quvJiQkBLVazV133cWuXbvO+2sRCEYCIuMPLEMm/ElJ\nSVRVVTl+r6qqclg6dlJSUrj66qsJDQ0lNjaWSy+9lAMHDgxVSOeNoRi9uH37dqZOnXp+XoBAMMIQ\nGX9gGTKrZ/bs2Rw/fpyKigoSExPZsGFDn7GCS5YsYfXq1ZjNZrq7uykqKuLhhx8OyPNLawPTB8f6\ndP83ijiPXiwrK2PRokUcOHCAsrIydu/e7Xb0olqtdoxevOOOO1yu95///Ic33niD4uLigLwmgWC0\nIco5A8uQCX9QUBAvvvgiixYtwmw2c8cdd5CTk8O6desAWLVqFdnZ2VxzzTVMnz4dmUzGXXfdxeTJ\nkwPy/AMR7EASqNGLe/bs4dZbb+W9994jIyPjvMUvEIwktFqto/gjKiqK06dPD3NEo5shbdJ27bXX\ncu2117rct2rVKpffH3nkER555JGhDGNYyM/P56OPPqKiooInn3wStVrNW2+9xZ49e7j//vsd51VW\nVjoqnXqPXiwtLWXJkiW89tprXHbZZef9NQgEIwWR8QcWsXN3iBjs6MXDhw9zzTXX8OKLL7J48eLh\nehkCwYhAbOAKLEL4hwhPoxfnz5/vdvRibm4u1113ncPf/+1vf0tzczMrV64kIiKCiIgIpk2bNiyv\nRSAYbpwz/sjISCH8g0T04x9CBjN68dVXX/VY4SMQXGyM9ozfarWyo72dfLV6uEMBRMYvEAhGAaO9\nnLPFZOLy/fsxjpA52kL4hxExelEg8I/RvoGr1WTCAtQaDMMdCiCsnmFFjF4UCPzDXcZvtVpHTfLU\najQCUN3dTWpIyDBHIzJ+gUAwCnDO+ENCQpAkCb1eP8xR+U+byQRAVXf3MEdiQwi/QCAY8Thn/GDL\n+js6OoYxov7RKoRfIBAI/MdkMmE0GglxskhGm89vF/5qIfwCgUDgG7vN4+znj0bhnxASQtUIsaeE\n8AsEghGN8+YtO6NN+NtMJqaFhwurRyAQCPzBefOWndEm/K1GI9NVKiH8Au9s27aN6dOnEx0dTUxM\nDFdffTVHjx4d7rAEgvPOhZDxt5pM5ISF0Ww0YhgBm7iE8I9QpkyZwqeffkprayv19fXk5uaycuXK\n4Q5LIDjvXBAZv8lEnELBWKWSsyNgE5cQ/iEgEKMX4+PjHS2aLRYLMpmMhISE8/tCBIIRQO9SThh9\nwt9mMqEOCiIlOHhELPAK4R8CAjV6sbKykujoaMLCwvjkk0/429/+dv5fjEAwzDhv3rIz2oS/1WQi\nukf4R0JJp1fht1qtLnNzRxWSFJjbAHAevbhjxw4WLVpEYmIiZWVlbN++3e3oxZSUFMfoRTupqam0\ntrbS1NTEjBkzWLFiRUD+NALBaOJCyPhbjUaiFQqSg4MHvcBrNBsprS0d1DV8Zvy9J2iNGqzWwNwG\niH304s6dO8nPzyc/P5/t27ezY8eOfo1eBIiOjua5555j06ZNo2q3okAQCOwZv8XSTVub7Zv0aBJ+\ni9VKu9lss3pCQgYt/K+UvMKCvy+go3vgWuBV+CVJYtasWWLI9wCwT+DauXMnBQUFjg+C7du3uwh/\nZWWly8/OoxedMRqNyGQygoODhzx2gWAkYc/4W1s/p6zMNqhoNAm/xmwmVCYjSJJ8Wj1/3fdXtp7c\n6vG42WLmuS+fIzUqlX8e+ueAY/KZ8e/Zs4dLLrmEiRMnMm3aNKZNm+bwpwWeGezoxffff5/y8nIs\nFguNjY08/PDDLF68WAi/4KLDnvFrNPsxGGqB0SX8dn8f8Gn1rNu3jns+uYduk/tz3j/2PuNU4/jD\nNX9g3b51jmKQ/uKzLfOWLVsGdOGLHU+jF+Pj492OXmxvb2fFihWO0Ytnz57lkUceoaGhgejoaBYv\nXsxvfvObYXktAsFwotFoSEpKQqMpxmzWYDJ1jFrh91bVozfpOdp4lEtSLuEve//Cg//zIAA3HznC\nnzIzGaNQ8MyuZ/jppT/lyolX0q5vZ+/ZvcxJmtPvmHwKf1paGjt37uTEiROsWLGCxsZGNBpNv5/o\nYmQwoxdXr17t9n6B4GLDvoFLo9mPJCkwGM4SFaUePcJvNKLuEf6xSiVtJhPdFgvBMlfDpbS2lJwx\nOfzhmj9wxRtXsHzmcqKCo9jY1MTimBjG64+hNWq5ftL1yCQZd+XdxcslLw9I+H1aPWvWrOHZZ5/l\n17/+NQAGg4HbbrvNr4tv3ryZ7OxsMjMzeeaZZ/ocLywsJCoqitzcXHJzc/nFL37Rz/AFAsGFjlar\nJSwsiO7uaiIj59LdfXZUZfxtJhPRCgUAckkiITiYGjd2T1FNEfOS5jE1firXZV3HM7ueod1sxmi1\n8nFzM8/uepZHv/EoMskm2ytyV/Du0XcHtMjrU/g/+OADNm7c6KijTUpKorOz0+eFzWYzq1evZvPm\nzRw9epT169dz7NixPufl5+dTWlpKaWkp/+///b9+v4DRzGiZHiQQDCcajQa5vInw8MkEB6diMJwl\nJCQEi8VC9wioifeFs9UDnn1+u/ADrC1Yy8v7XuZA8xliFQr+09LMwcZj3DrtVsf541TjuGLCFQNa\n5PUp/MHBwcicvpJotVq/LlxcXExGRgZpaWkoFAqWLVvGxo0b+5w30MWJCwGz2czEiROHOwyBYESj\n1WqRyc6iUs0kODiR7u4aJEkaNVl/b+H3VNlTVF3E3KS5ACRHJvOD2T/gN8XrmBQaSnB3Hd+c/TjB\nQa7FHXfPuntAi7w+Pf6bb76ZVatW0dbWxssvv8yrr77KnXfe6fPCNTU1LjXqycnJFBUVuZwjSRK7\nd+9mxowZJCUl8dxzzzF58uQ+11qzZo3j54KCAgoKCnw+v0AguDDQaDRIUiUq1VVYLAb0+grgXGVP\nfHz88Abog9aedg12Utxk/I3aRlq6WpgUN8lx32PzHyP1zVvJiWtGW/dfFHMe7HNt+yLvvtp9aMo1\nFBYW+hWTT+F/9NFH2bp1KxEREZSXl/Pzn/+cq666yueF/bEx8vLyqKqqIiwsjE8//ZQbb7yR8vLy\nPuc5C79AILi4sLkMJ1GpHqW7u5qOjt3A6CnpbDOZmBQa6vg9OTiYMp3O5ZyimiLmJM1x+PcAkcGR\nXJOzjHcqtnJ7Qipb2jr7DJi3L/Ku27eOv17/V5ekeO3atR5j8mn1vPLKK0yYMIHnnnuO5557zi/R\nB9tagHO7h6qqKpKTk13OiYiIICwsDLDtEDYajbS0tPS9mJvdrAKB4OLAVkV4gvDw6SiViXR32/Rg\ntAi/vV2DHXdWT3FNscPfdyYr4X/IjhrHL+auwGC1UtbV1eecgSzy+hT+yspKVq1axYQJE7j55pt5\n4YUX2L9/v88Lz549m+PHj1NRUYHBYGDDhg0uHSsB6uvrHd5UcXExVquVmJiYvhd76y0/X45AILjQ\n0Gg6iIoaS1BQBMHBSRgMNYBtb8yoEP7eHr+btg3OC7vONJvM/GD6LSRFJvHN2Fg+aW7uc8441Tgu\nn3A5bx9+2++YfAr/z372Mz7//HOOHj3KggULePbZZ5k1a5bPCwcFBfHiiy+yaNEiJk+ezC233EJO\nTg7r1q1j3bp1ALz77rtMmzaNmTNn8tBDD/H22x4Cb2vz+wUJBIILC61WQ1zcTACUygS6u2uxWq2j\nJ+Pv5fH3ruqxWC22jD+5r/A3GI2MVSoBuC42lo/dCD/AVROvYu/ZvX7H5NPj//nPf87u3bvRaDTM\nnDmT559/ngULFvh18WuvvbZPk7dVq1Y5fr7vvvu47777fF9ICL9AcFFiNpvR6w3ExeUBIJeHIpeH\nYzI1jxrhb+uV8ccrFHSYTHSZzYTK5RxvPo46RE18eN9F6gaDgfge4b9crea7R49yqsHEuueDeOwx\nsBskKZEpbCzrWzXpCZ8Z//vvv09zczNXXnklS5cuZcmSJSQmJvr9BAHhIhf+lStXIpPJOHXq1HCH\nIhCcV3Q6HSEhciIj8xz32Us6R4vw97Z6ZJJEUnAwNT2TuIpqzpVx9qbBaCS+Z30gTC7nUrWa3+9q\n4bXXYNo0+Phj23nJkclUd1T7HZNP4S8tLeWzzz5j7ty5/Oc//2Hq1Kl+Z/wB4yIW/i+++IJTp06J\nzV6CixKtVktIiBWVaqbjPqUyadTs3rVarX0Wd6HH7unp2ePJ3wfXjB/gmzExbO1o5tFH4Z//hAce\ngJUrIUpKoard/9kpPoX/0KFDvPXWW7z++uv861//Iikpicsvv9zvJwgIo0z4AzF6EcBkMvHAAw/w\nwgsvXNQb3QQXLy0tpwkNtYm9neDgxJ5+PSNf+LssFiRJIqRXXx7nWv6iavfCb7RY6DCbiXH6tvDN\n2FhOxrbwP9+wkp8PBw9CcDAsnBONrtvI07/s5Fe/gl/9yntcPj3+xx9/nIULF/LAAw8wZ84cFL0+\nuc4Lo0z4CwoKePjhhwH/Ry92dnZy5ZVXMmnSJEeHzt/97nfk5+czbdq04XkhAsEw09hYQnh4mMs3\nXntJZ1TUpBEv/L39fTspISFUd3fTZeziaONR8hLy+pzTaDQSq1Agc3rtMaYQzA1KTP/TAUShUsFL\nL8G3/yvxvztSqNVVE2fN8RmXT+H/+OOP6e7upry8nLKyMiZNmnT+xX8Awi/5uYPNF9YB7BJ2Hr1Y\nVlbGokWLOHDgAGVlZezevdvt6EW1Wu0YvXjHHXdQVVXFyy+/TElJSUBeh0AwGmluPoRKFelyX3Bw\nElrtQaKi5o74iXS9/X07ycHBHNFq2V+3n5wxOYQqQvuc4+zv2ykuhsTKWLZ2NFMQF+W4/4orILcm\nmW/Pr+LqdJvw9/TVdItP4S8sLGT58uWMHz8esNX1v/766y5TpIacAQj/QAQ7kNgnbp04cYL8/HzU\najXbt2/nyy+/9Gv04kMPPcRTTz1FRESEw+YRdo/gYqOp6RiRka57e4KDE2lp2TwqrB5Pwp8SHMzm\nlhaKWrz7+2Od/H2A3buhQBHHW/VHeCg52cX/T4ny3+f36fE//PDDbN26lR07drBjxw62bt3KD3/4\nQ78uHjCMRhgFXficGezoxc8//5xHH32UhIQERxXVJZdc4nmvg0BwAdLaeoKICNcyR6Vy9Hj8zr34\nnbHv3vW3osfO7t1w0+RIvj9uHNcePEiHyXTumpEpflf2+BR+k8nEpEnnGgdlZWVhcnqy84JaDSP8\nDe7NYEcvlpeXc/DgQQ4cOODYKf3xxx9z4403DsvrEQjON2azlo6ORqKixrncHxycNGrKOZ178Ttj\nn8TlaWEX+lb0WCzw5ZfwjW/A2rQ0/icykhsOH6bLbAZsJZ1VHf5l/D6tnlmzZnHnnXdy2223YbVa\n+cc//sHs2bP9unjAUKttds8I78LnzEBHL65cuRKAMWPGuFxPkiTi4uIICQk5fy9CIBhGtNpDmM3j\nUKkiXO5XKsdiNDYRGRk+4oXfk9UTp1CgNZsxdWtcOnI60zvjP3YMYmNh7FgAiRcyM7n12DGWHT3K\ne1OnkhKZwnvH3vMrLp/C/9JLL/GnP/2JP/7xjwAsXLiQe++916+LBwy78I8yBjN6sTfmnk91geBi\nQaPZ3yP8Kpf7JSkIhSKOoKBOjEYjRqNxeKoN/cCT8EuSRIzMTFpygUtHTmfqDQYyo84t4O7ebcv2\n7cgkidezs1ly+DB3lpXxcLT/m7h8Cn9ISAirV6/myiuvRJIksrOzUfZacBhyRqnwCwSCgWMT/jgi\nIsL7HLP5/LWORm1xcXHDEKFvWk0mUoOD3R6LRE9UVKbHxzYYDC4Zf2/hB1DKZLw7ZQpXHTjAv4Mj\nAre4+8knn5CRkcEDDzzA/fffT3p6Ov/+97/9unjAuECFX+zGFQg8o9Hsx2iM7JPxA44unSPd5/dU\nxw8QZtEhBXu2rxuMRhePf/dumD+/73nhcjkPJSdTrO3GipV2ve+/h8+M/+GHH2bbtm1kZGQAcPLk\nSRYvXszixYt9XjxgXKDCL+wbwUjlZMtJ0mPShzWGrq4TGAzZjnnfztj69Yz8yh537RrsKE1tmJVu\n2tD34FzO2dgI9fXgZkAhAFPCwzmi1ZISmUJVRxVRIVHuT+zBZ8YfGRnpEH2AiRMnEhkZ6eURQ8AF\nKvwCwUgl7+U8jjUeG9YYzGYdWm2324x/tJR09m7J7IzM0IRe7l5LrVYrDUYjY3o+NL78EubNA7nc\n/fNkhoZS2d1NQuR4v3x+v6p6Fi9e7Og188477zB79mzef/99AJYuXerzSQaNEH6B4LzR2d1JR3cH\nn5/+nJwxvrf/DwVWqxWLpQudrttDxp9Ee/sXo0L4PVk9lq5a2qPczzbRmM3IJYnwHqV35+87o5TJ\nmBgSQmT0FL98fp8Zv16vZ+zYsWzfvp3t27czZswY9Ho9mzZtYtOmTT6fICAI4RcIzht1mjoAtlVs\nG7YYLBY9MlkwGo3GY8Y/Gqwebx6/SXOKWrN7G6h3Kacnf9+ZKeHhyFQT/arl95nxv/baaz4vMuQI\n4RcIzhu1mlomqCdQWFGIxWrxWG44lFgsXchkoR6F/1yHzqwRLfzeMv7OjhN0WGzZvaqXh1PvtHnL\nYICSEpjrfoOvgynh4RS3j6O60fckrvP/jg4EIfwCwXmjtrOWWYmziAmN4VD9oWGJwWLRIZOFotVq\nPVo9g8n46+rq2LlzZyBC9YjRYkFvsfQRdTstXU1MDAmmTKfrc8w54y8thYwM8LW0OiU8nFZZlF8Z\nvxB+gUDgQq2mlgRVApdNuGzY7B6z2XvGHxQUi9msIS4umvr6+n5f/9NPP+UnP/lJIEL1iH1h113Z\ntsVqoU3fxlRVBF+7E36njN+Xv29nSlgYNRZlYDz+EcFFKPyFhYXIZDIiIiIctzfffHO4wxJcBNRp\n6mzCnzZ8wm+xdCGXh3nM+CVJIjg4gcTEcJdGh/7S0tLC/v37h7Sk2pu/365vR6VUkROuci/8RiNj\nezJ+f/x9gIzQUBpMFqo0DT47+Xr0+J9//nnHz5IkOS5k//SyDxo5L1yEwg+QlJREVZX/49QEgkBQ\nq6llUuwkLku7jHs+uQezxYxc5qGOcIjw5fGDbYF33DjFgIS/ubkZnU5HWVkZkz0Vxw8Sb/5+k66J\n2NBYssPCeLexsc/xBoOB9FBbj/6iIvjNb3w/n0ImIyM0jNNhqbTpveulx4y/s7MTjUbDvn37eOml\nlzh79iw1NTX85S9/Of/DQUaZ8Adq9KJAMBzUdtaSEJHAWNVYEiMSKa0rPe8xmM06IASdTkdYWJjb\nc4KDkxgzxjpg4ZckiX379g0yUs94q+Fv7momNswm/J4y/niFgu5u28attDT/nnNKeDjq2FyfPr9H\n4V+zZg1PP/00VVVVlJSU8Pzzz/Pb3/6Wffv2cebMGf+iCBRhYaOqJ39BQYFj4cjf0YslJSVs3LiR\nV1991XGdhoYGxo0bx8SJE3n44YfRufkHIhAEGrvHD9jsntPbbKOfrrzyvMVgsXRhMgUTEhKC3MPi\nqFKZSHh4B3q9ns7Ozn5dv7m5mby8vCFNYluNRo8Zf7OumbiwOLJCQznZ1YWpV8Jn9/grKyEpyfPG\nrd5MCQtDGZHlcxOXz3LOhoYGl853CoWChoYGv4LYvHkzDz30EGazmTvvvJPHHnvM7XlfffUVl1xy\nCf/617/cbwiTpHM9+f1szVwoFfp1ni8KrAX9fkwgRi/m5ORw4MABsrOzqaioYPny5Tz88MP85S9/\nCcjrEgg8UaepIyHCJvyXT7icV0pe4dEDjXD06HmLwWLpQq9XuvX37QQHJ2I01pKamkpVVVW/LJuW\nlhauuuoqdu3aFYhw3eKpFz+cs3rC5HLGKZVU6PVkhJ4bv1jf06DtzBnoGX7oF1PCwzGH+Z7E5VP4\nb7/9dubOncvSpUuxWq18+OGHLF++3GcAZrOZ1atX89lnn5GUlMScOXO44YYbyMnJ6XPeY489xjXX\nXOPd5uhnT/6BCHYgGezoxbFjxzLW1nibtLQ0nn32Wa677joh/IIhxWA20K5vJy7M1u0yf3w+3//w\n+1g/OoVUXw9ms//p5yCwCX+QR38fbFaPRnOQ1NRUKisr+yX8zc3NXHnllfzpT3/CYrEgkwW+zsWb\nx2+3egCyw8I4ptW6CL+9QVtRhf82D9iEvzMolqqOr72e5/PVPvnkk/z9739HrVYTExPDa6+9xhNP\nPOEzgOLiYjIyMkhLS0OhULBs2TI2btzY57wXXniBb3/7230Gj/RhlPn8gx296A6LxTKkMQsE9Zp6\nxoSPcWzaig2LpcCYhLG12TYFxM9v+4PFbNZhMMi9Zvy2fj01DuHvD83NzWRmZhIbG8uJEycGG65b\nfHn8caG2D9ecXj6/yWql1WQidgAZf3poKFqCqeio9XqeXx9zM2fO5Oabb+bGG28kNjbWrz9yTU2N\nSzabnJxMTU1Nn3M2btzIPffcA3huU7xmzRrWtLSw5oUXKCws9CfkYWewoxcLCws5c+YMVquVqqoq\nHnvsMTF2UTDkOPv7dlbWxHNkXprNbO41XGiosFi66OqS+8j4bW0bBir8sbGx5OXlDdkCr8+qHqeM\n31n4m41GYoKCCJIkKir8z/gLCwv5xdq1hL/5Btve6jv0yRmfVs8LL7zA2rVriY+Pd1lkOXTI+44+\nf3rNP/SnLHerAAAgAElEQVTQQ/zmN79xlIt6snrWrFkDR47A9ddDQYHP644EBjp68Y477gCgtLSU\n2267jdbWVmJjY1m6dCm//OUvh+W1CC4enP19Owv2t/D7b8jINSfbhH+WrbFYg7YBuSR3CFggsQm/\nzKvw2zt0pqSksG2b//sNurq6sFqthIWFMWvWLEpKSvjOd74TiLBd8FbH36xrJjb0nPC/XlfnOOa8\necvfjL/21Voy9ZkUrClgb+ke9h7+M7znWaN9Cv/vf/97ysrKiI3t35vbuwa9qqqK5ORkl3P27dvH\nsmXLAGhqauLTTz9FoVC4lEI6GGVWDwxu9OIPf/hDfvjDHw5ZbAKBO2o7axmnchpu3tpK7LEzvLzY\nwtpxechrbRbCJ+WfcPuHt/P9md/n+auf93C1gWM26+julrxaPUFBkYBEcnJcvzJ+e7YvSRJ5eXk8\n++yzAYi4L9568Td3NTvWUbLDwjim02G1WpEkyaVdg78Zf9PGJkJSbfO4Z0XFskWK8Hq+T+FPTU0d\nUP/92bNnc/z4cSoqKkhMTGTDhg2sX7/e5ZxTp045fl6xYgXXX3+9e9GHUSn8AsFoo4/V8+mnSAUF\njE+spbrFQnJNFY9tfYR3jr7DXXl3cbjh8JDEYcv48Zrxgy3rj4rq3yau5uZmYmJsA1DsJZ120Q0k\n3jx+Z6tnjEKBBDT2LOjaG7QZjVBXB73y5T5YrVY6dnegiLV9WORGRkP4BK+P8Sn8EyZM4LLLLuOb\n3/ymY9auJEk+d+4GBQXx4osvsmjRIsxms6NEcd26dQCsWrXK11O7cgEKvxi9KBhp1GpqmTl25rk7\nPvoIrr+ey9KOs6NkF6rCzZRlz6Xk7hLqtfV8a8O3hiQOu/B7y/jB5vOPGWOlpqYGs9nssebfGXvG\nDxAfH09ERASnTp0iPT2wE8e8VvU4WT2SJDl8/nil0pHxV1fDuHHga45814kujE1GzFpb+4kpYWFI\ngxX+1NRUUlNTMRgMGAyGfn0yXnvttVx77bUu93kS/L///e/eL6ZWQ6/F4dGOGL0oGGnUaepIyOjJ\n+I1G2LIFfvc7rtQd4i/tz/N/5mw+WvYRkiShUqo403YGk8VEkMynlPQLs7mLri6Lz4w/ODgJSWoi\nOtrWrC0xMdHntVtaWlysa7vPH2jh9+TxW61Wl3JOOLfAe6la7fD4K075Z/N07OpAHinHrLHpycTQ\nUMxB3l0an+/WmjVrfD/z+eACzPgFgpGGi8e/cydkZkJCAldZx5F710eMefRp24ZKIDgomISIBCra\nKsiIyfBy1f5jsejo6rL4zPhtA1mqHZU9/gi/c8YPOCp7br755kHHbcditdJhMhHlRvg1Bg0KmYKQ\noBDHfTnh4RzrqexpMBqZGxLi98Ju++52oi+PxtRqAkAuSURbO2n28hiP5ZwPPvggANdff32fm0cf\nfigRwi8QDDkuHn+PzQM2O2JM5ow+5ZxZsVmUN5cHPA7b2EWzz4w/ImIObW3/Zfz48X77/M4eP5zL\n+ANJu8mESi5H7sYd6Z3tg2tJp33Iur8Lux27O4i+Otph9QAky01eH+Mx47/99tsB+NGPftTn2LB4\n00L4BYIhxWK1UK+pt2X8Vits2gTvvXfuhLFjobHRZfduZkwmx5uPQ2ZgYzGbfbdsAIiLu57y8h+Q\nmHhTv4R/3LhzlUtDscDb6qVdg7O/b8dF+Hs8/jNnfLdjNrYa0Z/RE3VJFDUvnLPCM0IUHPDyOI/C\nP6unVtdkMjF//nxCnbYTDwtC+AWCIaWlq4WI4AiCg4JtfXmMRpgx49wJCgXExNh27ybYvhVkxWZR\n1lwW8FgsFh1areQz45fJQoiPvxm1uprKyhCv59ppaWlhypQpjt8TEhJQKpVUVlYyvj/bZL3grYa/\nSdfkKOW0kxYSQp3BgM5sPufxV8Ctt3p/no49HUTMiUAeJXfJ+GeoInnPy+N87tx94403mDFjBvPm\nzePRRx9l06ZNtLa2+npY4BHCLxAMKS7+/qZNNpundwacmOhi9zgy/gBjq+ox+Mz4AcaOvZ3w8NJ+\nZfy99yUFulOnPy2ZnQmSJDJCQynv6upXg7aO3R1EfSMKebgci/ZcS5dLYhK8PMpP4S8vL+eDDz4g\nJSWF++67z3dfnaFACL9AMKR48vddSEiA2nN9YIbK4zebu9BqDT4zfoDIyEsYO1ZORYX3xmR2env8\nYHM4Atm6wd9STmeyw8LY19mJBQhFTk0NpKZ6f5723e1EfiMSebhrxv8/cd4/MXwK/5tvvsmqVau4\n6aab+Oyzz1i9ejU7duzw9bDAM8p68geCxsZGvvvd7zoa5N12223DHZLgAsY+gAWLBfbtg552Iy70\nyvjHq8dTp6lDb9IHNBbb4m63Xxm/JElMm3ar33NCzkvG76UXf1NXX6sHbMK/o62NeIWC2lqJuDgI\nDvb8HFaTlc7iTiL/JxJZqAxLtwWr2db2RqX0/nfzWc750EMPkZ6ezj333ENBQQETJnjfGDBkDKAn\n/2hn6dKlzJs3j6qqKsLCwjh8eGh2SQoEcG7WLo2NoFKBO9HtlfEHyYJIU6dxsuUkU+Kn9D1/gNg8\n/jC/Mn6AnJxVdHX9hs7OFiIiYrye27uOH85l/IFa4PXWi79Z18yk2El97s8JC+PN+nqHv+/L5tEc\n1BCcGowixvY8slAZZp2ZoAjfeyp8ZvxNTU28+uqr6PV6nnzySebOnTt8mecosXsCMXpx69atVFdX\n8+yzzxIREYFcLmeG80KbQBBgajU9Hn9VlWePoVfGD5AZm8nxlsD6/Darp8tv4Q8NTWPcuFAOHnzT\n63lWq5XW1tY+Vk9SUhJWq7VPf62B0l+PH2wZ/xm9nrFKJWfO+C7ltPv7dnr7/N7wKfydnZ1UVlZy\n5swZKioqaGtrG5KhBX5hz/hHOIEYvbhnzx4mTZrE8uXLiYuLY+7cucNjsQkuGhwef1UVOLVUd8Gd\n8MdkBtznt1hswu+P1WNn/PgJHDq03us57e3thIaGukwVBJtdFEif/6uNG1F0dLg95q6qByCrZ7Zw\nvELhV8Zv9/ft9Pb5veHzO8GCBQuYP38+CxcuZPXq1X06bJ5X+pHxFxYGph63oKD/w88DMXqxurqa\nrVu38re//Y3XXnuNd999lyVLlnDixIl+d0oVCPzB4fFXHvAs/L2sHrAt8O6rDdzCqNVqwmo1odVq\n+yX86emzOH36XQyGBpRK93awO3/fztSpUzl69GhANqjuXbeOTKUSpk3rG4OHxV2VXE5KcDDxPRn/\n7Nnen6N9VztpT6c5fg+o8B88eNCvC50X+iH8AxHsQDLY0YuhoaFMmDCBFStWAHDLLbfwy1/+kl27\ndg3PzmnBBY/D46/6uH9WT0wmbx9+O2BxmM1dSFJIv4V//Ph06urSaWhYT3Lyg27Pcefv28nMzKSo\nqGhAMfemq7WVuiNH3B7zZPWAzeePVyjYVwE33eT5+t3V3Vi0FkKzzu2vkoXL/Bb+YfJsBsgo8fhh\n8KMX3fn5kiSJjp6CIcPF4/eU8Tvv3u0h0CWdFksXFksYkiT1sWS8kZqaSltbAnV1b3g8x1vGn5WV\nxfHjg1+rsFqtGFpaqPAwrKpZ1+zW6gFYlZjIFdHRPts1tH9ps3mc9SCgHv+IYhQK/0BHL9544420\ntrbyxhtvYDabeffdd6mpqWG+rz3cAsEA0Bg0mC1mIoMjobLSs/A7797tISkyiTZ9GxqDJiCxWCxd\nGAwh/cr2wSb8dXUGjMYGOjvdl2a6q+G3k5mZSXn54D/A2tvbsQLHDx7sMydbb9JjtBgJV7h/bUvH\njGFamMrr+jr0XdgFkKv8t3qE8A8RnkYvzp8/3+3oxdzcXK677jpWrlwJQExMDB999BHPPfccarWa\nZ599lo0bN3r8RysQDAa7vy9JkveqHuhj98gkGRkxGQHbwWsbtO67T09vbB06q0hNfYxTp37sdpSr\nN6snMTERjUZDh4dFWX9paGhAHh9PlFrN6dOnXY7Z/X1v39zr6iAqyrZ1yRPtu1wXdiFAHv/999/v\n+Nk+E9f59z/+8Y9+PUFAUavP27DnQDCY0YtgW1gfUWssggsWh79vNNqyeW/tjd0s8NpLOnMTcj08\nyH9sGX8w4eH96/GfnJxMdXU1Y8feRU3Nn2lu/pi4ONfdx96sHkmSyMjI4Pjx445eZQOhsbERS1QU\neUlJffr8O49cdIep3UTFcRlpaZ5zcrPOjPaIlog5ruMV+yP8Hq8+a9YsZs2aRXd3NyUlJWRlZZGZ\nmcn+/fsxGAx+XTzgjKKMXyAYTTj8/bNnbT6+hxp0wO0CbyB9fouli+5uJWHeUl43hIaGolaraWxs\nISPjt5w8+SMsFlet8ib8EBifv6a2FqKimB0Z2Wc3sPPIRXccX32cxr+f9VrKqSnVED45HHmo67Qx\nWbjMb4/f47v7/e9/H4CXXnqJL774wrHIcs8997BgwQK/Lh5wLjDhFwu1gpGCo5TT28KuHXcZf0wm\n289sD0gsNuEPIjzcv26bztgHssybdw2hoenU1PyJlJQfOo43Nzczb948j48PhM9feegQaZHtjJ1Q\nz5s7iygrawJAqRxLs26G21JOO9ojWgwSpF3h+fqdJZ1EzOo7TD0gGb+dtrY2F8+rs7OTtuES3wtM\n+M1mMxMnThzuMAQC/zZv2RnijN9s1vUIf/88fjgn/ADp6c9TWfkrjMYmx3FvHj8EKOM/epSp0dXM\nDA7i2LF2VKo5RETMpbr6Bdp0FR6tHqvFiq5Mh6JC4z3jL9Ggyuu7ozmgwv+Tn/yEvLw8li9fzvLl\ny8nLy+Pxxx/36+IB5wITfoFgpODw+CsrfbeE9JDxB2px15bxy/tt9YCr8IeHTyY+fhkVFWscx31Z\nPYHI+GsrKhgb3U3u50EoFOFYLNeSmHgXKtVM9LqjHq2e7ppu5GFywtu6SBvnWcA7SzqJyBvijH/F\nihXs2bOHpUuXsnTpUvbs2eOwgc47QvgFgiHBrxp+O24y/vjweIwWIy1dLYOOxS78g834AdLS1tDQ\nsAGt9ijgn8dfXl7utiLIXxoa64mNNqM4WOHS9VOlmolkPOnR6ukq6yJ8ajh1ijASu7Vuz7HoLXSV\n287rTX88fp/Cb7FY+Oyzzzhw4ABLlizBYDBQXFzs18UDjhB+gWBI6JfH70b4JUkKWNZvNuvQ66WA\nCL9CEcv48U9y8uQjgPc6fsDxodDc7G1UuRd0Opr1nYTERCGpo8lLT6e0tBSwCX+Iudqj1aP7Wkfo\npDCOmlRENbjfE6E9rCU0KxRZSF/pDmjGf++99/Lll1+yfv36nuBV3HvvvX5dPOCEhYHBYLsJBIKA\n4fD4/bF63OzehcD5/BZLF3q9NGirx05i4j20tv4Hg0GPVqslKirKw6NtH2CD8vn37aMVK6GxYyAr\ni9yYGJeMP0rW6DHj15XpsCSHURkcgfFop9tzPNk8EGDhLyoq4s9//jMhIbYV9piYGIxGo18X37x5\nM9nZ2WRmZvLMM8/0Ob5x40ZmzJhBbm4us2bN4vPPP/d+Qeee/AKBICAYzAba9G22TNSfjN/N7l0I\nXHtmm/AzoIx//PjxfYRfJgsmKEhNQ8NJoqOjfXYXHpTPX1RER7eBsLgEyMoiTy53CH94+GSi5Dpi\nQty3mtZ9raMtIpSuZBWaEvcZv6eFXQiw8CuVSsxOn+yNjY1+tWU2m82sXr2azZs3c/ToUdavX8+x\nY8dczrnyyis5cOAApaWlvPbaa9x9992+IxZ2j0AQUBq0DYwJG4Nc3w0aDfgzWtVdl86YwGT8ZnMX\ner11QMI/ZswYNBoNOp3O5X6lchz19cf96mw7mIzfumcPGk03EXEpkJVFWnMzWq2W+vp6ZLJg6ruD\niJK5n1muK9NxNiiMoEkqtEe1WAx9/XpvGX9APf7777+fb33rWzQ0NPDEE08wf/58v6p6iouLycjI\nIC0tDYVCwbJly9i4caPLOc5vrEajIS7O8442BxeJ8P/qV78iIiLCcQsLC0Mul9PSMvjFM4HAmT7+\nvj/7S4ZwIIvFokOvtw7I6pEkiZSUFKqqqlzutwn/Kb9angwm428rKkIRLCdYlQyTJiGVl5OXl+fw\n+Y9rrCjNfYfCm7VmjI1GTmtDSM6QEzIhBN1R1w8vi9GC9ogW1YzBZ/w+90TfdtttzJo1i//+97+A\nzZ7JycnxeeGamhqXlsPJycluW55++OGHPP7449TW1rJ161a311qzZo3j5wKrlYKLQPifeOIJnnji\nCcfva9euZefOnaJXjyDg9KuG346Hks7y5vJBjy+0WT2WAWX8AOnp6ZSVlTFp0rnxhkrlOBobq4Y2\n46+ro7Gzkwi1AoUyEbKyoLyc3G99i5KSEq68+krKOsxYuvt+qOjKdYRmhnL6jERWFkTkRtBZ0olq\n5jmR132tIyQlBLlK3ufxALsO7+Kd6nf4ZM0nPkP1mfGvXLkSvV7P6tWrWb16NTk5OS5C7Al/3/gb\nb7yRY8eOsWnTJr73ve+5PWfNmjWOW8GECSM+4w/E6EVnrFYrr7/+OsuXLz8v8QsuLvpV0WPHTcYf\nHRpNSFAI9dr6QcVjNnfR1WUesPDn5uY6Mmw7NuGv8Uv4MzMzOX78eP9LOouKaMzOJipaRmhwIkyY\nADU15E2bRmlpKS1dLdQbVWi1B/o8tKusi7BJYRw6BFOmgCpPhabU1ef35u8DXHb5ZaxQrnBopTd8\nCv+WLVtYvnw5r7/+uuO+3paNO5KSkly+blVVVXmd3rVw4UJMJpPvMqqoqBEv/IEYvejMzp07aWxs\n5CZvkxkEggFSp6mz1fD7U9Fjx43wA0yNn0pR9eCGmVgsOnQ604CF37l23o5SOY6mpnq/hD8yMhKV\nSkVtr280PikqomH8eNRRZlQhSbZF8NRU8uLiKCkpoUnXRCdj0WgOYLW6evH2Us79+yEvDyLybBm/\nM978fegZxKIJ0OJufHw8O3fu5J133uHee+/1u6Jn9uzZHD9+nIqKCgwGAxs2bOgzOerkyZOOT1X7\nG+XzjfHT47cPLRnsbSA4j17csWMHixYtIjExkbKyMrZv3+529GJKSopj9GJvXn/9dW6++eYBeZ4C\ngS8CZfUAfG/69/hb6d8GFY/N6jEN+N+7J+Fvbm7y2yodkM9fVERjfDyxUQaiQnqS3EmTyNTraWho\noKK2glBlPEFBavR613bNujIdHVFhxMbaCqZUM1VoD2ixms996/CV8cvD5Fi6LFgtvr+p+NWPPyoq\nik2bNjFmzBguu+wy2v0opwwKCuLFF19k0aJFTJ48mVtuuYWcnBzWrVvHunXrAHjvvfeYNm0aubm5\nPPjgg7z9th/j2/wUfqvVGpDbQLFP3Nq5cyf5+fnk5+ezfft2duzY4dfoRTs6nY53331X2DyCIeNo\n41EyYzK9D2DpjYeM/5Ypt/BF5RdUd1QPOB6zuQudzjDgjH/ChAl0dnbS2NjouE+pHEdra5vf86rt\ndo/fmM2wdy914UrU0aAO7vmAycpCfvIkM2bMYF/pPmLDYlGpZqLR7Hd5uO5rHSe6Q7F3gw5SB6Ec\np0RXblvgtVqsaA5oUOV6Fn5JLiELlmHp8l3Z41P4r7/e1s9akiTWrl3LY489Rpq3mWBOXHvttZSV\nlXHixAlHJdCqVatYtWoVAD/+8Y85fPgwpaWl7Ny5kzlz5vi+6Cip6hns6EU7H3zwAbGxsS6PEQgC\nhclioqS2hDlJc3wPYHHGQ8Yfrgxn2dRlvFra17L0F4uli66ugQu/JEl9fH6lchwtLZ1+C7+9dYPf\nfP01jBlDfWcjQVEqou0jI+0LvLm5HNp/iLiwuD7Cb7VY0ZXr2FsfRl7euUuq8s7V83ed6EIRp0AR\n7X0Upb+VPT6F/2c/+5nL79dff73vjVZDySgT/oGOXrTz+uuvc/vtt5/v8AUXCYcbDpMSlYI6OKp/\nVs+4cbYNXOa+IrNq1ipeKXkFs8U/v7k3No+/e1DWZm+7R6kcS1tb19Bl/EVFMG8edfU1SNFRRMh7\nKm+ysqCsjLy8PI4fOU5saN+Mv7u6m6CoIIqPBOE8/0WVq3L4/JoS79m+HX8HrnsUfvtsV5VK5VJP\nHhERQWRkpKeHDT2jRPgHO3oRbCWxhYWFQvgFQ0ZxTTHzkuZBayvI5eDv/9sKBURH21o39GLGuBkk\nRCSw+cTmAcVks3r0A874oa/wBwXF0N5uQq32LZ4wgIy/uLhH+OuQ1LHI7P+PT5oEPbX8lV9XuhV+\nXZmOsOwwSkpwyfgj8iIclT2+Fnbt+Dtw3WMd/65duwDbxqoRxSgRfhj86MWkpKThm3YmuCgoqimy\nCX9/bB47dp9/3Lg+h+7Ou5uXS17mm1nf7HdMFktghP/pp592/C5JMjo7ZURG+rdul56ezunTpzGb\nzcjl7uvmXSgqghUraHrp12RGzzx3f0ICaLXkJCTQVttGtDKakJA0TKYOjMYmFIo4dF/rMCaEERnp\numlalWuzeqxWK5pSDckPe66KtDNoq6elpcXrbdgYRcIvEIx0iqqLmJs0t382jx0PC7wAy6YuY+eZ\nnQNa5DWbdWi1ukFZPVlZWdTX17sUonR0WFGp/EukwsLCGDNmTJ++P27R6aC8HGbMoKW5A3mck0BL\nEmRloTxzBmWkEkkjIUkyVKoZaDS2ev6usi7qFK7+PoAyXok8Qo7+lL5fGb8/wu8x48/Ly/Nazth7\nevx54wISfjF6UTCcdHR3cLrtNNPHTofKov5n/B4WeMF1kfep/Kf6dVm9XodcLneMex0IcrmcadOm\nsX//fvLz89HpdFitEnK5+z457rD7/BMmTPB+4r59MGUK1uBgWlu7UMT0Gp/V4/MrohUYWmwfPDa7\n5wDR0VegK9NRFh2Lu/nuqjwVTR82IQuRoRyr9BnzoD3+iooKTp8+7fE2bFxAwi9GLwqGk71n9zJz\n3EwUcsXAM/6aGo+H7551t/+LvP/3f7BlC1arFZ2ua1A2jx1nn7+5uRm1OgSj0f9dxX77/F99BXPn\n0tbWRkiIDFl4L0umx+cnCnRNtvJMZ59f97WOPWf7Zvxg8/lrX6n1K9sH/z1+v+r4W1tbKS4uZseO\nHY7bsBEeDt3dw/f8AsEFQlF1j78PAxP+5GSo9mzlzBw30/9F3vffhz/8AavVQHd3UEA2KzoLf0tL\nC9HRKgyGOr8f73dlz7FjMHUqDQ0NRKklJEWvNY+ekk5ThIn2Bpv1ZLN69mPWmDE2Gyk8Guw+489V\nofta51dFDwSwnPOvf/0rl156KVdffTVPP/00ixYt8qtXz5Bh78kvEAgGhWNhF/rXrsFOSortA8ML\n9kVer1itcPQofPEF5rOnMBiChyTjj4mJ6pfw+53xl5dDVhYNDQ2oo8wolQm9L4S1vJxuVTdNtbbB\n7+HhU+jqOo6mrAX5+FCUIZK7NXJHpu93xq8KkPD/4Q9/oLi4mLS0NLZt20ZpaanXCTbnBSH8AsGg\nsFqtNuFPHkTGn5pq+8Dwwi1Tb+Hz05/Trvey27+mBkJD4dvfxvL+egyGkIAI/+TJkzl9+jQ6nc4x\ncnFIMv4e4a+rq0AdLSdC2askNisLa3kZ4XHhVFfZviHJZCGEhmbQemo/mpgwt9k+gDJJSdikMCLm\n+G/1BET4Q0JCCA0NBUCv15OdnU1ZWZlfQQwZ6elER0QErB/PaL9FR0cP7/shGHVUd1RjsVoYHzXe\ntgnr7FmbddMf7Bm/l9YmKqWKb6R8g89Pe9n0efSorSXl7bdj+WAD3d3KgAi/UqkkJyeHgwcP0tLS\nQlxcfL+Ef8KECVRXV3svqe7ogM5OSEqitvYE4eowooJ61cxERWEKCyEvJtmlSkilmklnUyk1knt/\nH2wFIHO/nktwUrBfMfs7jMWn8KekpNDa2sqNN97IVVddxQ033OB3y4ahwjJjOi2PPRawfjyj/SaG\nswj6S1GNrYxTkiSor7dtxgr2T1wcREWBTOaz2GJR+iK2nNzi+YQjR2DyZLj0UiyGTro7BzaExR12\nu6e5uZkxYxL7JfxKpZLk5GROnTrl+aTycsjMBEmivv4MYTERqHsLP9CSHEt+SEIf4deZSznS6Tnj\n7y8By/g/+OADoqOjWbNmDT//+c+58847+fDDDwMS5EA4VH+IH9Sso71oGBeYBYLRgMUCmza5PeTi\n7w/E5rHjh92zKH0Rm09s9tz08MgRW8Yvk2G+8VoMTbqAZPzQW/hTMBjq+tV80edQlh6bB6ChoQZF\ntNqt8FeOC2VedwQmk8mxtyAubgn6lM8wT3nLY8bfXwIm/GCr6jl48CCRkZEkJSVx+PDhQQc4EE61\nnuLaf1xLZVoM7N/v+wECwcXMoUOwZInNjujFoCt67PixwDt5zGTMVrPnebxHj9oyfsBy7eV012sJ\n77GXB4uz8MfFJSBJEmaz/90IfPr8TsJfX18P6ti+Vg9wNMZMZpOZ1NRUx5ySkOB0rD98gXnffJnu\n7sf69OgfCIPewGXnpz/9Ka+99hoTJ050GbK+bdu2wUXYT2o7a7nqzat4cuGTmIzdhDz/qM1bi/Bv\n0UMguOgoKrL573v3wuWXO+526cgJA6voseOH8EuS5Mj6J8VNcj1otZ7L+AFLYix6k5IwXwOZ/GT6\n9Ol8/fXXxMfHExsbi1I5DoOhjqAg/3QjKyuLQ4cOeT6hrAy+aWtL0dTUylj1JLcZ/15VB0tPdpCa\nmkplZSVTp06lu7obS3sq/3p3N9mTl3Ds2K1kZ7+GTNZPy82JgHn8GzZs4OTJk2zfvp1t27Y5bueT\n1q5WFr21iBUzV3DPnHvIS57D8cRgOHjwvMYhEIwqiottFXDFxS53OzpyhvRUxw2x1QNwTcY17n3+\ns2chJAR6umaazToMIdGEB2iTaGhoKBMnTmT37t0uwu8v/cn4m5o60EYnENWrt4/ZYuaL4HpUZ846\nhB9sG7faI8OYPDmW6dP/g9Vq5MCBq2lp2UpLy3+83nQ699+eApbxT5kyhdbWVsaOHevzYkPF9euv\n5wvtJdMAACAASURBVIqJV/DkwicB28aQt2P1ZJfsJaini6hAIOhFURHcdZftv853O9s8YLNaLrts\nYM+RkgL/+Y/P066YcAUrNq5Ab9ITEhRy7oBTtg89vfiVaqIqT0JLi20c1SDJy8vjyJEjxMbGYrH0\nT/i91vJbrecWd4GWli4iI5P6ZPxVHVVokuORVZwhNSXFIfzaw1pOE86sWSCXhzJ58r+oqFhLVdX/\n+Yyrs7OEOXMOExzsumcgYML/xBNPkJuby9SpUwnuWfWXJImPPvrI58UDRUZMBs9f/byjt024Mpyz\n6fG07Skk7v4Hz1scAsGoobMTTp2yCX9+vk2kev7/KT5bfE74jUb48ktwM/LTL1JTfVo9YBvEPn3s\ndHae2clV6VedO2Av5ezBYulCb5STkJUFGzbAPfcMLC4n8vLyePPNN4mJiaGjo3/Cn5KSQlNTEzqd\nm6ZxdXW2/QfR0VgsFtrajJxVJffx+Muby0kbOwnU3aSq1WztKYfXHNCwt1XN0p6FXUmSMWHCWr/i\nOnnyx5w+/f/IznYdcxkw4b/99tv5yU9+wtSpUx0e//luLvbKDa8gk3q5UjNnYH2z1P0DBIKLnb17\nYcYMyMiw1elXVzvsnKLqIu6dfe+589LTB55Zp6T4ZfXAubJOF+E/csSlCb3Z3EV3N4Rfcgm88UbA\nhB8gJiYGvb5/wi+Xy5k4cSInTpxg+vTprgfLymx9eIDW1hZCQ0GjHItS5qpV5c3lZMVmQXILqUol\nZ86cAaBtn5YT1iTG9+rp5g/jxz9JcfEkOjtLiIg49/cLmMevUql44IEHuPzyyykoKHCMETyfBMn6\nfj7Fzb2MqBM1YDKd11gEglFBURHMnWvL8ufOddg9Lh05AQoLoaBg4M+TnGzz6S2+xeaajGv69u3p\nk/Hr0OuthOfl2a77738PPLYecnNzufzyy1EoFP32+MGLz+/k79fWlqFWy1Ap+u4/cAh/UhKp2Eas\nflFoQfu1jjFzwhlIHh0UFEVa2s84ceKHLuWpASvnXLhwIY8//jhffvklJSUljttwMz1jPrVque2P\nLxAIXOkZBQjY/tsj/MU1xec6cgJs2zZwfx9sC7NqtW0TmA9mJcyiTlN3rke/vaKnp5QT7PN2rYRF\nRMA//wkrVtgsq0EQERHBf//7X4ABCb9Hn99J+M+eLUMdE+K2oscu/I0hyRS/3UVlZS1r7ujAEB3C\nutf8GPLigYSEOzCZWmlq+sBxX8CsnpKSEiRJYs+ePS73n+/Knt7MHDeTzfEmkkr2EuT0D0cguOix\nWm1C//zztt/nzYNf/AKj2cjj/32cO3PvtN1vMNj8/Q0bBvd8drsnIcHraXKZnKvSr2LLiS3ckXeH\nrZd/cDDExTnOMZu70Osttg1c8+fDE0/ATTfB7t02P32QDDTj//LLL/seKC+3xQjU1p5EHROOyYPw\nmxoy+esnSSzIa2DMmDiefeAUwbvD+90lwxlJkpOR8TvKyu4mNvabyGTBDuH3tUnNa8ZvNpu54YYb\nXMo4h6Oc0x3hynCqJ8TS/OV/hzsUgWBkUVNjW7S1DxCZMwdKSvjFtjXEh8dz96y7bffv3WurSBls\nryc/avntuLRv6JXtg83q6eoyndu5+8ADkJ0N993ntSeQvwQ043fy+OvqKomMieqT8XebujnbeZa3\nXkgj9/pkLp1YTXr6eE4UnUA1w79Wy96Ijr6C8PCpVFf/EQApSEIKkrB2D0L45XI56we62n8eMM2Y\nirFk73CHIRCMLOw2j908VqvRjYvli0/X8eoNr54rzhisv2/Hz8oegKvTr+azU59hspj6lHKC3eox\nnaugkST4619tr+mVVwYdqkIRj9HY2K9dsm49fqMRzpyxLYwDDQ3VhMfG9BH+k60nSQwbz7b/Kii4\nNQlqakhNTeXU4VMBEX6A9PT/o6rqGQwGm93mj93j0+NfsGABq1evZufOnZSUlLBv3z6/Pf7NmzeT\nnZ1NZmYmzzzzTJ/j//jHP5gxYwbTp09n/vz5HOznhiz1vAIij50KSCYgEFwwOPv72BZ0/x3TzG+j\nbmGsymk/TqCEvx+VPYkRiaREpfBVzVcurRrsmM1d6HRG1149KpVtUMuTT9q+pQwCmUxJUFAkRqP/\nO4MTEhLQarUu83upqLBNIOspcW9oaCQ0Nr5PKefx5uOY6rNYvRpCM84Jf+XpSsKnB6YfUVhYFgkJ\nd7N7dyLbtysw/auA3Ye8N7nzKfylpaUcOXKEp556ih/96Ec88sgj/OhHP/IZjNlsZvXq1WzevJmj\nR4+yfv16jh075nLOxIkT2bFjBwcPHuSnP/0pd999t8/rOpM97TJb5uBh7qdAcFHSS/gf+PQBumfN\nZMYZ/blz7P7+woWDf75+WD3Q07Tt5GYvGb+xb5O2SZPgz3+G73530JV8/bV7JEnqm/WXlztsHoDm\n5lbkMeP6ZPzFJ8tp+DqL++/HMbEsUZ1InbGO4OSBt2bozcSJv+LSS/UsXKgj9IEd5MU3ej3fp/AX\nFhYOyOMvLi4mIyODtLQ0FAoFy5YtY+PGjS7nXHLJJY6hLvPmzaPayxg3d8xMyKVkrEXYPQKBHZMJ\nSkpsJZzAO0feYXfVbpYu/43rDt6vvrJVpARilkM/rB6AgrQCdlfucpvx2zz+bvfdOb/9bdsC8ttv\nDyrcgPj8ZWWOih6wtWuwxib3Ef6NX5Rz6eQs2zaJyEiQJMZoImlWNQd8P5RMpkAmUyAPVYLOe7WQ\nz6qetrY21q5d65izW1BQwFNPPeVzCldNTQ0pTv0/kpOTKeq1ddyZv/3tbyxevNjtMedRj/a9BGBb\n4K1Mi6Zx11YSr7vB10sRCC58jhyBpCRQq2nQNrD609Vs+s4mQuNz4fTpc40N+2nzVFfDH/8Izz7r\n5mA/rB6AafHTaDh+ABQKGDPG5ZjN6un23I//qadsC73f+Q7IB1YKGZBa/vJymDbN8WtLix5DdKpL\nn56GBihrKmfND7577nHJycRUB9MgNQwodm8UFhZSWFhIXVMd6he9Tyn0KfwrV65k2rRpvPPOO1it\nVt58801WrFjB+++/7/Vx/fk027ZtG6+++iq7du1ye9zbjF/D1Bz0ez1/oAgEFxXFxQ6b56fbfsqt\n025lbpIt++f/s3fe4VFVTx//bja9d9ITkhAghZIEAkhXgVAVC/oqIFKi2EGxIyqiNBVBmoqgoj9A\nlN5DSyEJZAnphfTe22ZLtsz7x0nbZFsgocnnefaB3Hvu2btt7tw5M98ZMoTFyCdMYIb/zTe1njY+\nHtixA1i7Fl0LjhwdgepqFj7S19c4l4u5C/qWCtE8YDA6j5bJBBAIVHj8AFMZtbEB9u9nxv8WuFWP\n//TpDiJzmZkszRSAXC5Bba0UTZauCh7/pk2AvmMmRvZrvzOAszOsCkxQKuj58HSrU5wYmwjnZ5yx\ndk/XddVWNIZ6srOz8fnnn8PT0xNeXl5YtWoVsrOzNZ6Es7Nzm+40ABQWFsJFSdJqYmIiFi9ejCNH\njtxSC0HT4aNhkqpFX8yHPOS/QEvFbmJ5Ig6lH8KnYz9t39dayNXcDMTEdCu+n5fHZP3z8pTs5HKZ\n8S8u1mouDoeDiYI+qHC37bJPJBJAV5cLXSX58C0HM6//yy+1qhZWRo95/C0xfrG4FPX1gNDcqs3w\n19cD23Y1gAwa4GTm1H6ciwu42UaQyCVoUNInoSfokaweIyMjREREtP0dGRmpVVu04OBgZGVlIS8v\nD83Nzdi3bx9mzlQMxxQUFGD27Nn4448/4O3trXFOZfQNmQKLqkaAr31zhYc85IElNhY0fDiWnV6G\nlWNXwsqogzPVavjj4lh82lJ9OKAjLfIyqpXQuxnuCaw1RKaDXpftTU1NMDbWUKg1aRKLlx88qPXz\ndeR2YvxExGxNTU1bj+KKigwYG3PRwOG0ZfVs3QqMnJYFH5t+CtEPeR8XiMr14ObupuAY9yQ6Jjoa\nDb/GUM/27dsxb968tlQmKysr7NmzR+OT6+rqYsuWLZg8eTJkMhkWLlyIgQMHYseOHQCAsLAwfPHF\nF6itrcWrLUJMenp6iOukHa6JIS7BSLEDBiXwoDd6bLeOfchDHihaFDmPGRagpLEEYcFhivtDQoB3\n3mEyDd1M42xNWb9xgzX16kI3M3u8SsX4fbQAEzttFwiEMDHR4Fi2ev0ffMDCLToa/VcFbsXw29jY\nQEdHB1VVVbArKmLidy3PW1KSAWtrQ9RJpW0e/759wOyVWUiW+SjMI+D2haEZH27uTJffr1NWk1I+\n/rjrrdbgwcCKFUqHc024GoXaNBr+IUOGIDExse22xNzcXPOJthAaGorQ0FCFbWFh7V/Gn3/+GT/f\nZlGGib4JctzNYR95Cq4PDf9D/stcuwb54EFYfvFD/BD6Q1dxQ3d3ptT5558qVmlVk5fHDP6NGyoG\ndCezhwi2eRU4Z2SGzqaLGX4ten+EhjLjf+gQMHu2ds/bwq0YfoCFezIzM5nh75DRU1qaDRsbM5S2\nGH65nEWCms0y4cNVNPx8oRNMjfIUGrKopaoK2LKF3UK0UlcHfP21WsN/2x6/SCTCwYMHkZeXB5mM\naUBwOBysXLlS80nfIYR+PuBfVb4w/JCH/GeIjUWCmz68rL0wxXtK1/0cDvP6jx/vdv5+fj4wYwaw\naJGKAa6uLKNIG8rKwNXTR7QoC3KSK0iuNzUJYWysRWFTq9e/ciXw5JNKVpxVo6fXBxKJZlG5zrQ2\nXn+ksFAhh7+4OAl2dnZIk0phoauLggKmcp3XmIlJXpMU5uBXmsOUsrU3/JcvA6NGAS+80L5NImF3\nbjKZ0symHonxz5o1C0eOHIGenh5MTExgamqqesX9LmEUPBJGSWmaBz7kIQ8w4iuR2Ma9jo2TNqoe\nNHw4MHRot+L7fD4gEDA9spISFctp3Qn1pKRAx88fNsY2yKltV94kkrXo9GgpZTBjBjP4neqDNKGn\nZwOptAFyeXO3jmv1+DuqchIRCgvj4eg0ABIiGOvoICODyQu1yTF3oKlADyZNN7Q3/JcusUY6ii+A\nZTapUETlmvaAx19cXKyYxnQP4jJmGvq8sVnrdLKHPOR+J7kiGX+n/q2w7dWocLisfRq+dmrUal98\nsa24S1vy81kkR0+P1VslJQEjR3Ya1J1QT0QEMGwYAuxNkVSeBG9rltghl4vQ3KyvvWPJ4QAbNgDz\n57OrUqeaAGU0y+U4V1sL4ljh21we3vUa0bYvKoqVQHh4KD/Wx8cHBw8eZG/IUtbIRiBIQUKCBCMn\nDIWlri44HA7S04H+Awh7Oxl+IgI/TQJTYQrcHBy0N/zbtnXd7uzMiiucnLrs0qYZi0aPf9SoUd3W\n0LnT+HuOwE0rgvxGwt0+lYc8pNchIiw8shAljSVt24wahLAUEt56fpP6gz08WFZMN8jPR1uXqMGD\nVcT5u5PVc+wYMH06AvoEIKkiqW2zXC6EWKyvVdZgG48+Csydy4y/mvTOS3V1WJieDsfoaHyVnw8J\n1w4XKzMUxqxaBXz7reqnUubxnzq1FUlJwJMLF7Zl9KSnAy4+leDqcGFt1N7ZrLmsGSBA31Efbvr6\nmg1/TQ3rRRAc3HWfs7PK9NkeCfVEREQgKCgIPj4+CAgIQEBAQNcWZHcZMwMzJPc1Rs3FU5oHP+Qh\n9zmX8y+jTlSHbdO2YdX4VVg1fhXeN5sCg8BhsDS+/ebkncnPb/eCBw1SYfhtbACxWHNadUkJqyAe\nNQoB9oqGXyYToLlZr/uh5C++YAueG5WHuMpFIsy4cQO+Jia4HhyMqMBAeJi6oVFciuaWiwURU7o4\neFD19aNfv364efMm5FwuYGMDmUyGjz/+HV988Sokhu1NWNLTASMXJWGeG00wGWwCjoszXORylJSU\nQCZTY6AjIoARI9itVmd62/CfPHkSWVlZOHPmDI4ePYqjR4/e0Ubr2lLh5wFR1MW7fRoPeUivsy56\nHd4d+S64Oh0W9hISmDveC3T2+JUGADgc7eL8J04AkycDenrM8Jd39vh1u2/49fRYs/gNG1hhWkcK\nCpCxdCkCkpKwXCCAm6EhAMDQwBHeeo1IFwjaXqOhIZMu6jxFK+bm5jDjcFDSUhm9ffsPMDISYsGC\nlaiXyRQMv8yyq+Hn3+AzKWYXFxhUVMDa2hplZWqyi5TF91vpbcPv4eGh9HGvIQkOhDEvSfPAh9xx\n9iTswQv/vKB54EM0klSehOul1zF38FzFHQkJTJKhF8jLUzT8SUkqvGJtwj3HjgHTpgEA+tv2R359\nPoQSIYDbMPwAO8EdO5iMQ20tc+F37QKCgpA5ahR8bGyANWvahuvrO8BHtxGJTU0AmLcfFMR04P7+\nW8VzhIfDRyJB1qJFqKqqwqpVn+Pjj4Ohq2uGOqkUFlwu6utZOUWVPAs+1koM/yDTNqPt7u6uPtyj\nzvC3KH0qo0di/PcL1kFjYFRZxz70h9wzEBE2XtmIoxlHEZ7zsFva7bI+ej3eDHkThrqGijt60fB3\n9PitrFhCUG6ukoGaPH6RiBWPTWGppvpcfXhbeyOtimXkyWQCiMU63Yvxd+SJJ1imz7x57N/Nm4Hw\ncGRMmACfwECWxnrzJntufQe4ceuR2BKaio8HAgPbDX9riw+iFgno8nJg3jz0mzgRmZWV+OSTTxAa\n6oqQkGcAoK14q7UpV2aNklBPIgv1tC7Mqs3sqa9nCqDDhinf39se//3CQAd/pLoZsXL0h9wzxBbH\nQigVYtesXVh2Zhlkcs2NoB+inIL6AhzLPIZXgl9R3CEWswVHbapAb4GOMX6AxfmVhns0ZfZcusQU\nLTv02O0Y7mEeP/f20sXXr2cXmMBAJk8xaBAyBQL0t7YGXn+9zes3MfFFH9F5FDWw2gMejx3i5wcY\nGzPV6urqY4iKskV9XRS7mLz8MnzGj8f+/ftx6NAhvPhiHayt2UWsvsXwp6cDnr71uJh3ESEu7T0R\nZEIZhNlCmPiaMG+9tSGLKsMfGcmyrwxUaPY/NPyMgXYDcdlBBFIVoHvIXWFn/E4sDlyMpwY+BUtD\nS+y6vutun9J9y/cx3+PloS/D0rBTDn5qKtNT6IFm5J0RiZjwZsc+6rec2dOSzdORjgu8rAkLR2vD\n3yyX46OcHPzVMZ/dwAA4e5Yt+LakdmcKhfAxNgbeeovl/OfmwsrqUdi7foxn6xegri4K8fEs1MPh\nAM88A8TFbUdGxmI4Oi5CdsTzIJEA+Owz9OvXD+fPn8fKla/BzIwDY2OWOlvXUryVng409NuJKd5T\n4Gbh1nZadRfqYDbMDDoGOm1GW63hVxfmAdoNv5Lug/8pw29paImUvqYQRV+626fykBbqRfX4J+0f\nvDTkJXA4HHw3+TusvLgS9aJ6zQc/RIEaYQ12J+zG2yPe7rqzF8M8hYXMxnQsEFVr+FV5/EQs1NIS\n329lUJ9BbYZfJhNCLIZWoZ5coRBjrl/H/yoq8E9VlcpxUiLkikTwal25ffVVJncAwM81DJt0PsKN\nxCcQEnIQTk4AkRxTp34AW9tvMWRIJDxLZ4EqSlGx/VlAVxchISGYP38+pk0zgrV1aJsAW6vHn5Ih\nxlXu93hv1HsK51FzogY202zYHy3x+YCAAISHh0OqrKOYJsNvbs60guq7/pb+UzF+AOAP9QP3Ku9h\nD957hL1JezHJaxLsTewBAIGOgQj1DsWayDUajnxIZ7Zd3YZZA2bBxbyrtDlu3OjV+H7nXA6Vhl9d\nqCctjUkM+PsrbA7o0zHUI4BIBI0e/z+VlQjh8TDH3h5HAgLa4vTKyBOJ4KCvD6PWK9c777Agfn4+\nOBwOZGYTcY3/N5YseQtFRRuRlvYiDAwuY+3aaKSleoLz0gJ4O65GTt16yGQCODs7Y/fu3airOw0b\nm3YdslaP/6poLwZa+2OIQ/vnQUSoPl4N66ktqbZOTkBZGcaPGQMHBwf89NNPiifd2MjkLzq0z1SK\ninDPf8rjB4A+/QMh1oWKlaeH3EmICDvidyAsSFEh8quJX+Fn3s8KpfoPUY9QIsTmuM1dvMg27tDC\nbive3myts4ucfKvHr8zxag3zdNLUcTV3hUAiQLWguiXUQyoNv5QIb2RlYXl2No4GBGCZqyv6Gxmh\nUCyGQEU+fKZAgP4dQ2A2NsCSJayjDIBBpqY4U+yJGzeiUFq6C3K5GIMHh2PKFFtE/8gDuFxYTH0f\n5uYjUFi4AXKSI62ch4aGGFhaPto2bZ1UChPooMxzPT6d+L7COQgzhCApwcS/5XXp6wNWVuBUVuK7\n777D559/jrq6uvYDoqPZgoOm0J0Kw6+jr9msP1CG39fWF5neVoq9RR9yV4grjkNTcxMm9J2gsN3R\nzBHLRizDirPKlQUf0pWtV7dipOtI5VIMRL2aw98xlbMVLpctgiZ1zp42NWUx9urqrhMdP94lvg+w\npiz+9v5IqkiCTCaESCRvC/XwOt28X6itxYW6OvCCghDSohKsp6OD/sbGSGlJy+xMW3y/I8uXs769\nRUUYbGKCVHET/PzcMWxYIvz8/gaXa4SnnwboyFFQSw8RT8+1KCrahAM3tmHJ38PQzO0LXV2ztinr\npVJEp16FHkww2UfxO199vBo202wUuxK2GO3BgwdjxowZWL16dfs+TWGeTnMog2uivi3lg2X47XwR\n6yR/IA2/MFcIcYn4bp+G1uzksUXdjsqLrSwbuQxXS67ifO75u3Bm9xc1whqsjVqLNRNVhMfy85nB\n1UKn5lZQ5vEDasI97u5AZ22vmhrg+nWVPQAC+gQgsTyxpdG6DCYmJmhuZqKUHbOH4hobEWptDasO\nlaxnss/AVl6PG6oMv0AAn86es50dsHAhsH49BpmaosyYj8BAgMPhthnnwEBgIv8IsgfOAAAYGfWF\nk1MYSou+xKIBg/BndjYiCyLbpqyTSnEobRd8a1d0aTtbfaJDmKeVVq0dAKtXr8bu3bvbO3xduqRd\nv4SW7CBl6JioN+0PnOE/YV0NesAMP8kIybOSkbkk826filZ0XNRVhpGeEbaEbsGiI4vAb37YOU0d\nX0d+jdkDZ2Og3UDlA3oxzAMoj/EDagz/5s2scciiRe2xoNOnmSFTEbpozeyRy4UQiZjhT01lWaqX\nOuRqxDU0YJhZu5ctk8vw+onXUVYepTLOr9TjB4A33gD++AM2lVxInQVwclUMT3GKi9BXJx+/Z49q\n2yY2eRpu+pXwNMjDnOCNmL1vNhLL2ZWpXNyEGn4hxtk/pTCPtEGKxrhGWE3s1Fa2g9Hu06cP3n33\nXaxYsYLJoN64oUQFTwkdLh6d+U95/DbGNkhxNwIl3mBKnQ8Ipb+UQtdcF43XG8FPuPcN5d6kvXjc\n83H0MVXdUGNG/xkY6z4W7597X+WY/zp5dXnYdX0XVo1fpXpQLxt+ZaEeQE0u/5gxbIeODhsUHq4y\nzNNKay6/TCaEUCiFsbEx4uNZ4kpHw3+1sRHDOzSCOpR+CFK5FKVlkW0VuJ3JEAjQX5nhd3MDAgPR\nsPMojJoMkCUUKO4/dgzCcaHYd1C3Ldz0y40/UcydBF2uOR4fEIbNoZsRujcU2TXZqG4WwadyIXwH\nKBrc2vBamI80B9e0kyHuZLTffvttJCQk4PzWreyqqk0R28NQTzseLv5ocnVQ0yro/kJaL0Xeyjx4\n/+AN12WuKPhG+76md4PWRd0lQUs0jv1+yvc4knHkYUWvCj45/wneGP4GHEwdVA/qRcMvlQKlpW2t\nZRUYNAhITlYh3WBuDuzcyeSE588HDhzoksbZEX97f6RUpkAmF0AgkMDExAQ8HrB4MetDQgQUi8WQ\nEMG9paCJiLA2ai02TNoA4mcjobGB9cPtQJNMhiqJBK6qiqAWLIDFwV/h2mzS9cJx9ChsXpoBsZhV\n9YqlYvx24zeEDtmM4ODr4HA4mOM/ByvHrsS4PRMg5eiDEzcXAwYoTqOQxtmRTmEaQ0NDrF+/Hu+s\nXw+Ztk1yHhr+dnztfJHfv88DE+fPX5MP66nWMAs0g1OYE2rDayHIFGg+8C5xteQq+M18TOzbuZtq\nVywNLfHTjJ+w8MhCNIg7p4j8t+GV8hCeG47lI5erH9iLhr+4GOjTR3mLC0tLliCTna1mgtBQtgK8\nZw8zUiqwMrKCpaElGoQVEAqbYWJigvh41urR3JzVp7WGeVrj55fzL6NeXI9Z/WdhZJ+B4JAUxZ3u\n8m8KhfAyMgJXVXeuJ5+EfcFVBHNliqGipiYgIgKc0Cl45RXgxx+BfxL/wVOlT0HyjgRZ89uF1cKC\nw/D6iPdgxCFkJRsrGH4iUh7fB5Qa7adCQ2FVVwe3XbtUaqS1Pp555pmHMf6O+Nr6gueuf98YfiJC\nU2pTF28FAITZQpT+XIq+X/UFwDrrOL/ujMJ12je1vtPsiN+hclFXGVO8p+Bxr8fx3lkVqYr/QYgI\n7519D5+N+wxmBmaqB9bWsgwaT89eOQ9VC7utqIzzd8TKCnjuOY3PFWAfgKqmEgiFzdDXN0ZSErue\njRsHXLzYNcyzNmptm0JpiHMILKXVuNEpzq90YbcjRkY4pP8spuRFK3r8Z88yuQQLCzznVweXP9Nh\nMdYCT156EmZBZqg+Ug1pfXvR1fNDF8NGzxhEimvsTTeawDXmwrifkrCNEpE1zo4dOBUaiqi4OFy8\neFHl48yZMzh+/DjEFhbsOyDumvTxQHj8AoH2i5q+dr4It2u8LzR7msuakfJkCnjDeUiclAhRgUhh\nf/aKbLguc4WBY/utqvMbzqj8txKiQlHn6e469aJ6HEw9iAVDFnTruI2TNuLUzVM4k32ml87s/uJ0\n9mkUNxRjUaCqBrct3LjBYi46vfMzVhXfb0VlnP8WWBy4GElFN6Cry0VWli5cXQEzM2b4L11ihr91\nYTexPBHXy9oVSkNcQiBtzOyywJshFCqP77dQUQHs4SzAqH9+Uzz26FFgxgyI8kQonJ8MvUABloa9\ni/Fx4+HylgvMhpmhPqq9YrZOKoWBRBcDBiiWKVSfqFYe5gG6Si7w+cC6dTBcvVqjt+/j4wMvkGzD\njwAAIABJREFULy+kpKUBDg4sHteJB8Lwl5QoaT2mAl87XxzXzQWVlt7TSp0V+ypwbcg1GPsZY1TF\nKFhOtER8UDxKd5WCiFB3qQ78eD5clikGWPWs9eD4siMKN9x7Xv+fSX/icS/1i7rKMDcwxy8zf8Gi\nI4vaJHr/q8hJjhVnV2DtY2uhq6OhM+odyOhRZ/gDApTk8t8iTw58EhZcC+jotwumAS0e/2XC1YZ2\nw78hegPeHN6uUDrceTgqK2K77fHzeAANG46+DQ2oFYtRI5GwRYtjx4AZM5D/dT6cXnFC1tI/UZs3\nEzrEYl6W4yxRd6m94KpOKoWOUFdpfF9pmAdgMSwOp11y4ccfWeZTp8pmVQQGBiI+Pl5t9a467gvD\nX1NzUuux9ib2IK4OJEMC7kmvX1IlQcqcFOStyoP/EX94fuUJrjEX7h+6Y/D5wSjeUozkGcm4+dZN\neH7jCa5R1w/QZZkLyn8vR3PFvZO5pKpSV1se83wM/vb+XfrI/tc4knEE+lx9zOw/U/Pgu5TK2UpA\nAFvg7SmcDB0APTn2J/2LoCC2zcMD0HMXwgS6sNfXb1MofXXYq23HWRpawoHThGv1NQrzqUzlbIHH\nAwKDONB56SUEVFQgqamJ2QxbW4h0nVB5oBL2b9jjdNlv8KxbhGPH2HEW4yxQf6nd46+XSiGvVzT8\nkmoJ+Il8WI5V09S+NUbf0MC6h61ape1bhaCgIPB4PNXVu3czxn/q1CkMGDAA/fr1w9qWEumOpKen\nY+TIkTA0NMRGFW3TAEAiqYVQqJ0MA4fDgZ+dH0p93VS30rlLVB2uwtVBV2HgYoAgXhDMh5sr7DcN\nMEVgbCDMgs1g2NcQdnOUF+UYOBrAfo49ijYpz+G9G1wtuYrG5katFnVVsSRoCXbydvbgWd1fEBHW\nRKzBx2M+7lIEpJS7lMrZirc3szkqMim7jUgghp2lPc7qvwp3v/bwhefURjjUMW//u5jvlCqUjrZ1\nQ0GzBKK2VoqEDA0ef6sGP+bOxSAeD4nV1SzMM3MmCtYWwHGxI45WHsVgh8F4b6E3tmxhx5mPMEdT\nchNkfCYTUSeVQlStaPhrztTAcrwldAzVmNjWlM5Nm1hXss63DGpo8/hVNGS5ax6/TCbD66+/jlOn\nTiE1NRV//fUX0tLSFMbY2Nhg8+bNePfdd9XOxTF/DEmlh5DI5yORz0dak/LF0FZ87XxxLciRZRNI\nJN06byJit3w9iKRWgrR5acheng2//X7w3uit1JMHAB09HXis8oD/v/5qf/yu77miZHsJJDU9e663\nSqv8sraLusqY1m8acmpzkFKR0oNndv9wLucc+M18zBowS/Pg5mamwd8hNFAvlar9XXQXTaEePT3W\nc7zTz/qWEQgEsDa3AuLDsL1sAeTEjLjhkEbIUkwRnhOOPQl7lCqUjnQKhqmsHqktV6FqqRQcALbK\n+tW20Np1Cw4OGKSnh8SUFODIEYhHTEfFXxVwXe6KnbydWBK4BE8/zXTT0tIArhEXpoGmqI9mXn+9\nVIrGsk6G/7iKNM6OuLiwSTdtAlau7NZ7NWTIECQnJ0Pi4HBvhXri4uLg7e0NDw8P6Onp4bnnnsPh\nw4cVxtjZ2SE4OBh6aj4cANjJ90Vc8T94MS0NL6alYRiPh2uNjSrH+9r54ryzmH1r//yzW+f9Z0UF\nZvbg/WvNqRpcG3QNuua6CL4RDIvRFj0yr5GnERzmOiBzSWaP/thvhXpRPQ6mdX9RtzN6XD28PPRl\n/MT7SfPgB5A1kWvw4egPtbt4pqUBffu2VcMSEYbHx+ODnJ4Rv5PLmd6aOsMPsOtOT8X5BQIhuFwT\nuOZ8Ar60Dj/E/oDL+ZeRYJSARM4CrDi3At9P+V6pQmmISwjk/Jtt2TkZAgF8jI1VOk/V1ezh7c3+\nHjxsGPP4y8tRcM4Oji87IlcnF6mVqZg1YBb09Zm2248/svEd4/zJjQI05Rq0JVfJBDK2sDtDg+F3\ndmaNYWbOBPr169Z7ZWpqCnd3d6QS3ZLh17B6dOsUFxfD1dW17W8XFxfE3mKKpdvJBvCK4vCk62FM\nmPAY9jo6Iq6xEcPMzZWO97Xzxb/p/7KraFgY8MILgK6Kl5qby35ALfxSWookPh9EpN3tthqKNhWh\n6LsiDNg9AFaPWmk+oJt4rvUEbyQPJdtK4LxUdZ50b/Nn0p94zPOxbi/qKmPh0IUI3hmMrx/9GkZ6\nPd9YpCfYdnUbRFIR3hn5zu1PVlQEpKcjpSIFzrFpeN7RDjh3TvNxFy4ohHkyhEI0ymQ4VFWFvkZG\neMXJ6bZOq7wcsLDQLBDZk3F+gUAMicQUQUP1sGb2HwjeGQx3S080DFgP2/9tx74DPm2GujOD+gyC\noPYHXKuvwUsODlot7A4d2p4Q5f/YY0i5dAnCCU+jfG8FhqcOx0e8j7BgyALoc9miblgYu9CtWcMM\nf96qPIjkcuyrqIB7TjBa/deqQ1UwH24OAycVhWOtuLiwxd1PP+3uWwWgJc5fX4/BLYa/Nd0TgMYK\n/14z/LdrNDvyxRdrweNFoG/f8bCyGo/MkhJEd9GEbcfXzheplanAvPGsAmXfPmb8O9MSz8OVK8CI\nEcgVCpHU1AQDHR0UicVwNTTseoyWNMQ2IP+rfATFBcHQ49bnUYeOgQ589/ni+qjrsBhlAdMhpr3y\nPOpoXdTdMGlDj8znYemBYc7D8Hfq310bit8j7IjfgezabMzxnwMns9swsFVVTJOlXz9IKpPwjZEN\ndDO78T6+8Ubbf49XV2OmrS3ec3XF6OvX4WZggKk2GjxONWiK77fi788iFT2BQCCGSGSGoCDA29ob\nVSuqkCwQ4YXUVAzx9cGlS1Bp+PW5+vDS5+BKbQUAX40Lu1FRwIgR7X9bGBvDTlcXydz/g8M8B5At\n4bcbvyF6YXTbGCcn4PHHWQR56cvm4CfwcbigAm5iM3jat//Gy38rR5/5WjhBEyawRd0Ojmd3CAwM\nRPz161jQEuMfP348xreIu1UcqMDGw6rXTXst1OPs7IzCDk0ZCgsL4aKs9ltLrK1DUV3NsnuCzczU\nhnocTR0hlopRJawGPvsM+PJL1gSiI4WFTEjq5ZfZfgB7ysvxvL09BpmaIkVw69Wx0jopUp9Phc92\nn14z+q0Y9zOG9/feSJmT0rbYdCfpiUXdziwJvHcXefPq8lDSWIKwoDCsurjq1iciAl56CXj+edz4\n8ztMfUkPttEJzNvX9jGrfS3gWHU1ptvYwMvICP/6++Ol9HTwGhtvOQyoKb7fSk95/EQEoVCMhgaz\ntlROXR1dVrFrbt5WyKWO0TZOyBBJQERddfg7oUz5eISePRpPyuG6whX/pv+LQX0Gwdta8UrzzjvA\ne+8BemZc3Ggywdo1xUha54DgYLZfXCJGQ1wDbGfZQiMDBgBvvql5nAqCgoLAy8piefydPue7FuMP\nDg5GVlYW8vLy0NzcjH379mHmTOUpatp8Oa2tp7SldfqbmCBXKARfRfMFDofT7vU/+ihgbc30QlqR\nSoH/+z/g7beBrVuBxETI4+Kwu6wMCxwc4KdG31sTRISMxRmwmWoDu9m9I5XbmT4v9IHFIxbIfO3O\nq3f2xKJuZ6b7TEd2TfY9uch7JOMIpvtMxydjP8Gh9EO3fo7ffceCzF99hW+ivsGykcva8tK7S51U\nivjGRky0ZJkuI8zNsc3HBy8nnUVktBNqak51e05NqZytuLqyrB5lEvzdgUgCoRCoqTFtM/xAe+FW\nayGXOlMx0WkwJHIpypqbkaHG4xeLWTP10aMVtz/zOyF5qj4MnAywM36n0tTkESOYgKZUCox+1xQj\nmvngn7TFxx+z/eV7y2E32w5cY/WGtycYMmQIEpOTITU2ZnePHbhrhl9XVxdbtmzB5MmT4evrizlz\n5mDgwIHYsWMHduzYAQAoKyuDq6srvvvuO6xevRpubm7gq5BXNTMLgkRSBZEoH/o6OvA3McF1DQu8\nqZWprEhi5Urm1bcqSn3+OQtevv8+axzx/vu4uGcPLHV1MdTMDH4mJki+RcNfuqMUwptCeG3wuqXj\nb5V+m/uh8WojyvaUaR7cQ1Q0VeBg2kG8PPTlHp33Xl7kPZxxGDP7z4SloSU+HP0hPgj/oPuTxMUB\n33wD/PUXshrycC7n3C3XPwDA6ZoajLW0hHGHxrhP2dnhfZNIpMjdkZb2EkpLf+nWnNqGejicnlng\nlcuFEIv1YWhogo4RqquNjRhuZgYfH5bIlJeneo4RLiEAPxvX+XxkC4XwVuHxx8UxZ7vjEmH1yWr0\nOS3A+ueaEVuehpTKFJXZVTo67BEdIMP4VD2Y6HHB4TCnr3yPlmGeHsDCwgJOTk7IsLXtssB7Vwu4\nQkNDkZGRgZs3b+LDDz8EAISFhSEsjH3JHRwcUFhYiPr6etTW1qKgoACmpsrj1ByODqytJ6Om5iTe\nfBPw45rjqgbD39rEGZMnAyYmwD//sFvkXbuA339vX9lZtAi/OjhgQUvTYz8Tk1vy+PmJfOR+mgvf\nfb7q83d7Aa4JF777fHFz2c07luK5JW4L5vjNaeup25MsClyEPxL/uKcqeWuFtbhafBWPez4OAFg6\nbCmSK5JxMe+iVsefyT6DcZuGoGjaGCyfbYrA07Mx8beJeG3Ya+o1eTRwrLoa06wVK0SJ5PAQ/INE\ns+U4a/MH8vPXIDf3M61DP9qGeoCeCffI5UIIBLpwdm5vuyiQyZAlEGCQqSk4HFbY2lGmuTMelh7g\nCvKwr7QAtnp6MOEqN36XLgHej17GmyffhEwug7hEjIyXM+C31xdjvGzxUfJ5vDTkpbZFXWUQEba6\n1MM+VQq5iDmUfB4fMoEMFo/0TOaeNgQGBiLeyKiL4X+gRNqsrUORl3cKmzcDujnq4/xj3ce2d3hq\n9fpXrmQysb/9xhZ9W6jX1cXRUaPwwg8/AGCGP00ggLwb8VG5SI7UZ1Ph9a0XjH200NLuBUwDTGH3\npB2Kvu/9wi5+Mx/brm3TrB55i3Rc5L1XOHnzJMZ7jIeJPjNOBroGWDNxDd47+15bzrkqmmXNeO34\nUuw5rg/9GU/ghc/+xs8zf8aR547g07G3ltUBADIinKqpwbROC7l1dRehq2uBz31nYUeNMWTep1FT\ncxKpqS+julqzY6BtqAfovscvlXYNDclkAjQ1ceHm1m74r/P58DUxgUGLg9Ya7lEFh8NBPwMujtTU\nqtXouXQJSLZnobo3j72J1BdS4fSqEyzHWWKuvQ0ui4yxOHCx2tcQ1dAAuakOzHxN0BDLEk3KfiuD\nwzwHcHR6LrFFE0FBQeDJZF2KuB4IyYZWrK0noanpIhwdm9EQZ6bW4w90DESVoAr5dflsw7RpTPVp\n4UIW9+/AvooKPGprC9sLF9DI24fy7NdgzuWiQInqnSrK/yqHoYchHOaq0U6/A7h96IaSrSWQ1kk1\nD74NfuH9gvEe49HPpnv5x93h1eBX8f659/HZxc9Y2O4uczjjMGb1V7z9n+M/BwCwP2W/4uDUVKB/\nf5ay5+KCZsc+iF1ZCI8qKey37kGgYyACHQMx1HEouDq3Hg+ObWiAk74+3DploJWV/QpHxwWw09fH\n1n79sCC7Gj4B55CbW42//lIfmhMKmeHXNtmkux7/F1+wnr3p6e3b5HIhGhu58PRsN9itYZ5WJk9m\nMjqdwtkKjLJyQJ1cR2Uqp0QCRBdcAV+nCAmvJMDsZzPk1uXC/WN2e1NXehG6Blbg66v/Hf9aWooF\nDg5t+fzyZjkq/qpAn7l3JszTSmBgIOIbG++tUE9Po6Nji7y8Afj220iknTZGWXMzalVU2epwdDDJ\naxJOZ7f0/+RwgIgI9q3rxK9lZVjg4gIsX46aM6tRUfEX/I0NtQ73EBGKNxfD+a27l0vfipGXEWym\n26Doh97z+iUyCb6N+RYrRvVuw/SZ/Wfi0HOHwG/mY/Ifk+G/1R9fXvoSJY0lao+TyWVtLfF6CrFU\njDPZZzDdR7GTlA5HB+seW4ePwj+CWNriKAgEwLPPsoyNmBg0XjqLMUt0UXb+KEsdvo004c4cq67u\n4u1LpfWorj4KHZ0pcHZ2xss+PsibNAl2dq546qkInDhxCJWVUSrnjIxkypsqoq5d8Pdnhl+bG+S6\nOpZP8frrwGOPARkZbLtMJgSfrwMfn3aPvzWjpxVPT5aT0bqQqoypzn4AyVUu7F67BuiNX4f3HlkO\nnTgdTI+bjm+e/gabrrKc1J94OzDNXA+/KlG8bKVJJsM/VVWY28Hw15ysgXF/Yxh53dnak6FDhyKh\nvBzyB9njP3cOyMkJRWDgSWRncTDIyBTxKhaDAWCy1+R2ww8o7SiR1tSEPJEIU6ytgVdfRYNeJmSy\nRozQL9Ha8DfENEDWIIP1ZBVKfHcYt4/dULy5GNKG3vH696Xsg6eVJ4Y5D+uV+Tsy3Hk4Nk7aiPy3\n87Fj+g6UNZUhcEcgjmceVzq+jF+GyX9MRtDOIOxO2N1j53Ex7yJ87XyVFqlN6DsBw52HY/6h+ZDJ\nZSxbbNAgYOlSwMUFa/P3YnDwNPgGTmLJBD1IaxpnRyoq9sPSciLOn7+GoKAg5OTkIC0rC1b79sEq\n+E9ERJgjOfltkIrw1NmzLF9dW2xs2BJaoRaCsT/8AMyYAXzyCcu3eOwx4OZNoKhICJGIA0dHZviJ\nCLGdeuwCLC/j8GGms6OMMa7DwREWwduw/X0mIlSfrEbFvgpEbbqOkGrCzMyZSHshDb67ffH363/j\n2yvfYtXFVUipTMFq3zH4s6ICzUrbiwF/V1ZitIUFHPT1YTHaAo1xjSj9uRR95t1Zbx8ArK2tYWdl\nhcxMxYw+joH6cNN9Zfj37AG8vaegvv4kAgMBx3ozXFVTyDXJaxLO556HRKY6prm7rAxz+/SBLocD\nMjZGwyA9WBU7wI+TqrXhL95SDKfXnO5obE8dxv2MYT3FGsVblHfnuR2ICOui1vW6t98ZHY4OHnF7\nBD9O/REHnz2IpSeW4t0z76JZ1q5QGp4TjqCdQXjE7REkhCXgw/APcTj9sJpZtUdZmKcju5/YjTJ+\nGXZ/OAV04QKwfTvA4aC4oRjbrm3DlxO+7JHz6EiBSITS5maEdKpgLyv7FQ4OC3D8+HHMnDkTVlZW\n8LK3x7e+wSh/xQwiUS3Ky4Hy8r1K5z13rnuGH9Auzt/QwHqxf/QR+3vBArbsNnEicPmyAFIpYNzi\nqV+oq4OBjg4GdvLcLS1Z5ezrrytv+2hpaAmPkt0waGxPs608UInMVzJR+U8lpNdu4Jm8/0PD0Qa4\nfewG6ynWcLNww+kXT2NL3BbMHzwfA0zN4WdigqMqclR3tYR5AEDXUhdG/YxQe64W9s/2fJKDNgT6\n+4PXKd1JYwEt3eO0nmJ9PZGFBVFRPJ8unrSi1Ssy6akfy2h2UpLa44dsH0IR+RFK9wllMnKIiqIU\nPp+IiJqaMin6shMVv2BOl248T0HXrmk8P3GpmCIsI0hSK+nmK+tdmtKaKNIukiQNPXteJ7NOUsDW\nAJLL5T06b3epaqqi6X9Op5CfQiirOos+Pf8pOW10onPZ59rGXC2+Snbr7OhC7oXbei65XE7OG50p\nrTJN7biGlOtUY6pLP25f2LZt4eGF9MG5D27r+VWxtaiI5qamKmxrakqjqCgHam4WkrW1NRUVFbXt\nCw8nstuYStb9A2jcuB0UHe1MUilf4fiKCiJzc6Lm5u6dy7JlRN98o37M6tVEL77Ydfu2bUSPPPIv\n+fnZ0Llz7PObeuMG/VRSonQemYxo+HCi3buVP8+htEPkuMGRMqoySMqXUrRrNNVeqqX8mmLC+1aU\nUVil9Lj8unzii9n7sbu0lKYlJnYZc6KqiuwiI0ksk7Vty1qWRSnPpah76b3Kmk8+oWUGBl22qzPv\n943Hf2A/4fW+pcibnACd2PEY7rIL5ZfVp3QCrLWfQrinA1uKixFibg5fE3Z72dAQDXPr0TDP0IVe\nQwzSmpo0ZvaU7CyB/Rx76Fr2mvrFLWE8wBhWj1qhZKv6eHh3WRu1FiseWdGjkhy3go2xDY48dwRz\n/ObAf6s/rhRdAW8JD496ti/cBzsFY9/T+/DsgWcRX6IiNqAF8aXxMNE3wQBbNbK5YjHM5i2C7mer\nsEkSge9jvkdyRTKOZh7FB4/cQq6/FiiL75eV7UafPnMRFxcPV1dXOHfodRsXB0yuc4NkgBdiYyUw\nNByLwsL1CseHh7PsGQ26iV3Q5PE3NjJpB2Xx+VdeAVasEIKIYGJigrSmJsTz+Xixj/LQiY4OsGUL\n8OGH7X1MOjJrwCx8NfErTPp9EpI/S4bFGAtYjrXEp8d+gHXRi/BxUS5l4Wbh1pax9bSdHaLq61Ha\nkuAhJcKHOTlYnJmJv/38oN+h61nfL/rCZ6eP6hffywQ+8gh4EglbW9KS+8Lwi4vFkK1IwviGYgy5\nMAQuvgth4LQPN04aoFEmQ3lz14Ykx44Bb70FPN53Mk7d7Fq5WCORYG1BAb7p0K+0oeEKLCxGwcRp\nFKTNZXDTZfF/VcglcpTsKIHTa7cniNVbuH/ijsJvCyFr6hkph7jiOOTU5mCO35weme924XA4eGfk\nOyhaVoRTL5xSGX/fOWMnpv81XWOVLREhtzaXxek7oCnMA4AVA7q4wGz5Rzjz4hl8e+VbPLnvSXw0\n+iNYGPZ8XrdAJsPl+npM7pC/TyRFWdnvcHBYgBMnTmDatGkKx8TFAaEDjcHp5w0rp6vIyfkGxcVb\nIBa3Lwx2N77fiqZuXFu3sni+Ksn5YcOEaG6Ww9jYGN8VFeFVJycYqmkpOWwYMHUqi/krY8HQBVju\ntByF2wth9bkV6kX1+DvnJ0yzXqbV6zHhcvGUnR1+Ly9HoUiE8QkJuM7ngxcUhLGWir0AuCZc6Jrd\nPccvMCgIPABybRZZWum9G5CeAQBdsomkV4xzSchnt1fiSjFd+MOFQh+7QiMiEuhYVddbt/HjiVxd\niea/LCbzr82pgl+hsH9ZVhaFZWQobIuLG0T19bFEq1dTwn43Wnr1BzpSWany3Mr3ldP1cdd74FX2\nHsnPJFP+uvzbnqf19vnX67/e/kndBfYk7CGrb6xozK4xtDl2M5U0sDCCXC4nXgmPPjj3AXlu8iSb\ntTbkuMGR3jjxBkXmR5JMLqOArQEUmR+pevJ9+4g8PIiqq9s2pVak0rMHniWRRNQrr+dgRQWNv674\n3auqOk7x8SFERDR48GCKjFQ8Z2dnops3iUL/9z+ydPejxYuJcnI+odRUFn+Ry9lvJk19REspTU1E\nhobKQ0R8PpG9PVFysurji4o2k7OzGcWmppJVRARViMUan7OigsjOTvW8idMSafvi7TRs5zAWCnzj\n/+jAAS1fEBFF1tWRc3Q02UdG0tf5+SS7y+FNdbgaGFDW778rbFNn3u8Lw78hrIFef11xe/SHr9Ke\nDQtp8oFs+iw3V2Ffbi6RjQ37HY4ZQ+T+/kz648betv05AgFZR0RQaYcvl0RST5cuGZNMJiY6e5Zy\nVrrSzmuv0Nf5qo0mbwyPKg5UqNx/L8BP4VOkXSQ1V3UzaNtCrbCW5v07j7w2edHlvMs9fHZ3FpFE\nREczjtKL/7xIlt9Y0phdY6jfD/3I43sPev/s+8Qr4ZFcLqe0yjT6/OLn5PejHzlvdCb79fYklUmV\nT5qaSmRrSxQf32vnLRBkUUHBRioWCuiHwkIazeORVUQE7S8vbxsjl8voxo0pVFy8nYqKisja2pok\nkvb1naIi9puQy4l+yskhHQNDcncXkUTSSFFRTpSW9hLFxi6hTz9dQunpS+jmzeUklTZ16zy9vYlS\nlIS6168neuYZ9cfm568jGxtjWh4XR0vS07V+zu++I5oxo+v2qqNVFOMTQ1KRlBYfWUxYBTL1vk4d\n3jKNyOVyWpSeTpF1ddofdJd4wsWF/vfaawrb7nvDz+EYkYGBERkZsYeZmRmdencvhR+3ogmfFHZZ\nhPnyS6KlS9n/GxqIPOdsJZ/351HrBfv/UlJoVaeLRU3NWeLxRrM/6uqoeowBnYgZSS92WjxrpTGh\nkaJdokkuuXe9gFYyX8ukzDcyu3VMgVBIi3hnyPlbF1p6fCk1iht76ezuDkKJkI5mHKXYoli1C9Up\nhdfp+rGfle9saCAaMIDol1966SyJGhsT6WKkI+2/1JdWXpxMc1MS6WhVFYk6LC7K5RJKTZ1LPN4Y\nkkr59NNPP9Fzzz2nMM+//xKFhrL/F4tExPXyIlu7a5SVRdTYmEDFxdtp797ttGbNdiou3k7Xr0+k\nvLw13TrXJ55gNz8dKS8ncnAgUrJOqkBu7udkbKxHtqdPU1qT9hccoZDIyYmIx2vfJhPKKMYrhqpP\nsTswqUxK20+fp4EDtZ72vmP9uHGky+GQkb5+20Od4b8vYvw+PlWorq5CVRV7vPDCC4iTZEMnvy8s\nCyNxtaGhTYOEiCkyzJ/PjjUzA/5ZNxm5OqfxxptyXGtoxIW6Oizv0CQGAOrrr8DcfCT7w8ICZk3u\nMBLeQBpfyeoRgOLNxXB6xQkc3XsjhVMdHqs8UPFXBZrStEtPFUvFmB65Fz/XEiaN340fp/4IU/07\nr/XfmxjqGmK6z3QMdx6udqHa93/nMGRWGCvI6lgkQ8SqwEePZtLevUB9fSyuXH8U38nDIPI+hycs\ngRXyVZhqZdomYyCXi5GS8iwkkkoMGnQKXK6Jyvj+8OHs/04GBjAbMACOQ6Jx9ixgajoYTk5h2L8/\nDO7uYXByCoOPz3YUFW1Ec3Ol1ufbOc5fVcWK5MPC2D51yGRNEAolCLG3xwBjYxARas/XgmTqkysM\nDZlM8urV7dsKNxbCxN+kra6Gq8OFIGVCFxnmB4nln32G+hkzUDVlSttDHfeF4V+wwBgmJsYwNmaP\nGTNm4Nz1c+BemoJxA/+AXA4Utay+X7nCVv2HdagtGuzmCbc+5riYfgOhh7PxjrUHTDsJODU0RLcb\nfgB6g0bBUGwBsSAZsk6ZPQ0xDag6WgXHJY6996J7ED1bPbh95Ibs5dkax96suYnhux/nk1/BAAAg\nAElEQVRFmo4zLgzyQ7jIGHvLy5WOrWxuxiuZmSjuhrTFfQWfD6xfD8TEAAMHso5XGzeyuv/vvwdy\nclhiei9QUBWOqISp2Kv/Ib4LXoG5Tp4YHMBqEpKTZ0EmE0Ama0JS0kxwODrw9z8ELtcYYrEY4eHh\nmDx5ssJ8HQ0/AAweOhQCbhzOnmV/S6VM7/6xx9jfxsb9YG//f8jP177+oKN0Q3U1m2vmTNYSQxNN\nAj509LhY7u4OSa0EKbNTkDQjCZmvaG4tumQJEB3NLjpVh6tQvLkY3t8r6ugr099/kOBMmADjw4cV\nHmq5U7citwoAknRKRW9qaiJTU1O6Mv8CnTluTmNPX6SDFSzWHhZGtEbJHerrJ16nuRe2kc3RWLJ3\nlCvcksrlMoqIsCKxuLR947ZtlL6zHy2IWE5ZAkHbZkmDhGK8Yqji4L0d2++MTCyjmH4xVH2yWuWY\nfcn7yHadLU2P+IteaglxJfH5ZBcZSRdraxXGXqqtJefoaPK8coXWqlkHua9Zs4aoY8gkM5No0iQW\n3rG3Z4tJvUBEwQE6fMGK1iT/rpAvTtQa1plHPN5o4vFGU1rafJLL238g586do5CQEIVjZDJWA1PR\n4Su79uhRMvULIEtLIomEKCqKaPBgxfMQiysoMtKGBIIsrc47NZXIy4utrQ0dSrRiBZG266EHLjxL\nBuaGVBddR1fcr1DW21nUXN1M14Zfo+z3szUev3490VvjainSNpIarjZ0eh1E1tZEKsoCHljUmff7\nwvArIzQ0lH5e/jOd+noaLdv3GX2YnU1CIfuACwq6jv8t9TgZnv2XjlVVUUwMUf/+RM8+S1RZScTn\np9KVK30VD+DxqGShI22JmkaHOmT2pC9Mp7QFt5D2cA9QebiSYgfGKqxLyOVySixLpIWHF5LXJi+K\nLrxKjlFRlNjYHtM/V1ND9pGRlMrnk1Qupy/z8qhPVBSdqKqi8JoarQrd7jvq6tiibecUF7mc6OBB\nokg1WT63QUXjTTp8wYKO5Z9QOUYul9HNm8vp5s3lJJcrXhiWLVtGn3/+ucK2tDSivp2+3iW1tQRD\nQxo4VERXrhCtWkX07rtdnysv7ytKTn5aq3OXSFhmz9ChrKBLW6Mvl8to035vsrW0pEj7SKo81P57\na65qptiBsRoz08oiGugQJ5J4v9QobG9uJpo1i+hp7V7CA4U6w39fhHqUMW3aNESURUD/6EQM0fkX\nVxsbceQIa6DcKXwPvkyGb/m2kJccxTgzA4SEANevM+HEIUOA0tJoWFiMUjzI3x/mkXXoK7vRJt1Q\n+W8lai/UwnuTisaf9zg2M2xg4GSAkh0lSK1MxaqLq+C31Q/T/5oOG2Mb8MJ4yNR1gb+JCQI6KHQ9\namWFdV5emJaUhMmJiThbU4P4oCCE2thgrKUlCkUiZAvvHd38HmHTJiA0tGviOYcDzJ4NPPJIrzzt\nlYzlSDd+AdPcQlWO4XB04OW1AV5eG8Dp1PlMU3y/FUdLSxj16QPHsVfbOjkqy993cXkbDQ1X0NAQ\no/HcdXWZRNGYMcCGDeyt0oa04t+gkyeFicgCQXFBCm0L9Wz0MPjMYJT8WILSXcqF0wSZAmQ/k4Sy\nF3yw/pxV23aJBHjuOSbtsFe5OsV/lnur3LQbhIaG4ssvv8TS/q/BAhvQ2JiEj7PN8fF8DwDt3zgp\nEZ5PTUWgmTlsOYXYl7wPCwMXwsiIhWvr64G4uCsYN26k4hPo6cHYbigMpEnIaciHuNQBWa9mwe9f\nv1su1iACsrKYzrkSvbheh8PhwGWdC2ImxGB5zXKEDg/FLzN/QYhLCHQ4OiAibCzMwHqvrt3D5js4\noFoiAV8mw0fu7tBt+VXrcjh4ys4OByor8YGb251+Sb1DbS1TE4uJgUTC1nRvsR92t6ivj4acHwM/\n37hbOj4nJwe1tbUYOnSownZlhh8AvAcNQr1BDP79dzQyM5nB7gyXawwPjy+Rnf0ehgy5rLFi++JF\ntuCqrdGXyQQoTvkQzYfmwWbgORi6d1UuNXAxwKAzg5AwPgFykVyh34W8WY6spVno+1VfBDxjh0+9\nmNyztzfwwguASMT6L92N39u9zH3r8Xt6esLKygqVQyrQEDEdH/CvI8+oAT8PTGhbbCQivJWVBbFc\nju0+Plj32Fp8EP5Bu0Y/WNm3TBYNDmdkl+fgDB8B/UYXiBtjkLEgA45hjrAY2b0qTCK24PXpp8x5\nDA5mSSC32AP7tpDKpVictRhpj6Vh96+78ZnBZxjpOrKtX+652lrIAUyyslJ6/DJXV6z08Ggz+q08\na2+P/RUVvX36d45vvwVmzYLE3RvPP8+82MxebmdMJEdS5lvYqxOGybaumg9QwokTJxAaGgqdThWv\nqgz/uGHDkFvAQ3IyEBLCupEqw8FhHqTSOlRXaxa8MzLS3ugDQPa1NcDVATCcNwLGJqqbpxj7GCPg\nWACqj1aj4JuCtkfRt0Vw+8ANji87wsyMVet/8QUwdy6TiTh4sMcFUR8I7lvDDwBTp07FFfkV2JyZ\nCG7zb3izSIRQO2sExcfjRHU1vi0qQkR9Pf7284Oejg6GOg7Fe6Pew7xD89rK8t3cauHgUIiffhrU\n9QlCQtAnhQOjn48gMi8S7p9o2YuuhRMnWMOJqVNZc4s//gBKS4GEBGD37q7jSxpL8EPsD3hk1yNw\n2OCAsGNhCM8Jh1R++/LKRISwY2HgN/Pxxr430O+Hfkh9IRVZb2VBJmDvxcaiIixzcVHq1UmlDUhM\nnIrk5KcgkylqgoyxsEBJczOyuqEVcs9SVQVs3Qrph5+2eYyrVwNz5rD/9xYVFX+iStIMT8cXu1xY\n8/LysG7dOo1zHDp0CFOnTlXYJhYzx6PTTQAAYMbIkahPS0Xw481qZRo4HC68vDYgK+sNNDXdYnN5\nJQjqClBSuRlHOK/D3UUfJiYmasebBZph0MlBGHxusMLD6ZV2yZTXXwdOnmRZRf/806OtDx4s7tRC\nw62i7hTDw8MpJCSEztpdoVkjDtD583ZUWXmYLtfWkkt0NLlER1OBUKhwjFQmpXG/jqOvI74mIqLq\n6pMUFTWebGzYel5HmsIz6eTQMDI35VKfPk7U2Kh9EdOxY6yc/PRpllXRSkxhDK06spNMx+6kz4/t\npJ3XdtKGqA009texZPmNJc37dx4dzzxOmVWZtDZyLQXtCCL79fb06rFX6ULuBdUVpESUU5ND+5P3\nU1VTVwmL9868RyE/hSgUYjVXNVPK/6VQTL8Y4p0rJYeoKIXCoFZEoiK6enUwZWSEUWrqixQfH0Ji\nsWJW02uZmfRVXp7W749SGhvZanvHh0iz5IFcKu85tdAVK0i2OIyee45oyhRWICSXEz31FHWpHu8p\npFI+RUW70JiI7UqLl2bMmEG6urptypXKOHv2LPXt25cEHTLQiIhiY7tm67RSXV1NuiYmtD6hhOrr\nNZ9naelvFBlpR7W1FzQP7oBcqvyzifn5Cfpn7Txal5dHBw4coNmzZ3drXlWkpBB1ehv+k6iznfe1\n4ReLxWRhYUHnn7tCn/XPp7q6OIqKcqSioh+purmZClUYjfy6fLJbZ0fxJfGUk/MpZWd/SC++yGRj\niYjkMjkVfFtAkTYRNMewLz31DJdCZj9Jr777LuUJhZQnFFKRSKTS2Jw6xYx+TIzi9nPZ58hunR0t\nPLyQxqxbRFbzFtGCfxbR0uNL6XD6YZW6LlnVWfTV5a9o8LbBXXRkCuoKaEPUBhr+03CyXWdLk36f\nROZfm9OUP6bQLt4uqhHU0DcR35Dvj75KLwhERBV/V9BJ60u0aX/XUnk+P5mio90oP/9rksuZgc3O\n/ohiYrwV0vwu1dbS4KtXlc6vEYmEpU6amTFdgY6Pvn0VNHA6Iy4XU7RbNMUOjKXcz3KJn8pXOVYj\nKSkkt7GhN58soMcfZ0a/ldpaJsfzzz+3Pr0qcnNX0RnekzRCiezD8ePHqV+/frRv3z4aOHAgNSsR\nwxGLxTRgwAA6dOhQl32bNxMtWaL6ua1dXOiJkye1PteamnMUGWlH5eV/aTW+bG8ZXdS/SNfHXaei\nrUUkLmcyKbn7T9GFf23J4/QpKhWLaffu3fSiMs3mh9wyD6zhJyJ68sknaevyrXR16FUS3BSQQJBN\nMTE+dPPmii6pbh3Zm7iXJnw8gaIPPUKpW36hq2/mUZhxHmV8kke8MTzijebRpQOXyNHAgP4+7EYj\nDm0gHQsLsv/rT7K6cJr0wk9Q6LVL1ChV9MDPnGFGPypK8fniiuLIdp0tXcy9SETMi3zuOVZ30B3S\nK9Ppi4tfkP9Wf7JZa0PWa61p4eGFdPrmaWqWMqPQKG6kv5L+oif/9ySZf21OHt97UFF9kco5z9fU\n0KR1lynSNUpB06em5jxFRtpRWdkfXY4pLt5BUVEOVF9/hYiIpHI5OUZFUUxxE+3Zo30qH6WlMXH1\nRx8lUnbH8PbbTAtAyYRymZxuTL5B2R9kU/2Vesp6O4uinaMpLiCO8tfmk0yk+vPvQlMTyf396edR\nP9PEico9xpgY9tne7o1NR0SiQoqIsKb5CadpR3Fxp30i8vb2phMnTpBcLqfJkyfTxo0bu8yxYcMG\nmjJlilJHZO5cop9VKE4QEU2aOZMsv/iiW3dMjY2JFB3tSvn5a9UeV/6/copyiKKG+AaqPFRJKc+n\nUIRFBF1/9Dpd3BpA/577hqa3aDn8+OOPFNbdH8ND1PJAG/6ffvqJ5jw7hzLfyKRI+0i6FnSNcjYm\n0NXoEZSS8hzJZIpedFN6E+V+kUtxfnF0fOhmOnfKiLJWXaOcj3Noo28O/T4hh0p+LiFps5SGDRtG\ne55+mlJ+8aeDl0dR32c9SLe/Ls3/dz6tifqODA+spL5Rl+lGSwgoPJwZhohOfV9SK1Kpz/o+dDj9\nsML2+npW8NJZ30RbcmtzSSxVr2JYL6qnBlGDyv0pfD4NifidzscGU8RRT7p00INiYvpTbGx/ioy0\no5qacJXHVlUdo8hIG4qNZeMPhnvS74e9aMeO0fTeezfbbPWFCxe6HiyVEm3cyLz6H39UjId1RCQi\nCgoi+uGHLrvy1+YT7xGeYl2CTE51EXWU9EQSxfnFUcM11a+9I/JFi+mK5/M0bqyc1EnFrFtHNGJE\n9xuVKEMqbaKEhEmUnPUBWUREUF2nSsU1a9bQjA4KZOnp6WRjY0Olpe2FhiUlJWRjY0MZnZRmW+nf\nX71OzhdffEEWc+dSMl/9nVLnz1AkKqS4uADKyFhKcnnX8GP5fmb0GxMVw6NSgZRSj62kK+cDaDzv\nWlvh5fr/b+/Oo5o63zyAf91axtZKBwQURJQQQEFwOTp1HH+jiLbWUqvVqp26ofV4qnaZKl2o2E4B\nl7E91lZObUWj/Q1SN9CC1OPvpyKbS1mqohYVRMJWRQTcAuQ7f0QjAQJYJBB5PufcP5LcN3nfPPh4\nc+/7PnftWn7wwQcN9kE8mlZL/AcOHKCrqysVCgVXGbk9z5IlS6hQKDhw4ECm1qy09KCDjSR+tVqt\nr0SordSy5FAJzy84z2O9/sEjq/6TRzYOYqIyjkkOSUy0S2Riz0T+sfQPXj22j8eOWfOt7T3pH+3P\nW5pbPHNGtyCzvJz88ccfOWLECJ5UrWKyRxdGHLRmTPy/U6l04b59+0jqfjU8v2Ua/zX+KP9rh5pW\n1loePWrYvyulV9j7q95Upavq7f+pU7p1Qjt2GB9jYSE5YwY5bx5ZUmJ8v0dVcO8exyVu5KF4a6rV\nm1h+4yyPv7yLF7/7J2/dOkeNpv5TQzXdu1fMgoJzXPrOWc548Z9c++ZPTFi6jDFRtgwKOk6tlgwK\nCjJsdPEiOXKkrnTqxYskydhYcsAA0sHBcBsxgszcf7FOBczSpFIm2CTwzhXDazgPaLVaFv5UyIQe\nCby84jKr7xk/+q+O2MHC5xQc/8JNNpL/WF2tK3Y2ZQpZTzXwJrt3r4inTg1jZuYsrs+9xDfvr5SO\niyM9PEg7u6vs2NGKdnYXDb6Pbt2Ws2vXWfrHXbu+xW7dAup8bw+2BytzjYmJiWG/kSPpceIEMxsY\nfJ0YkqysLGV6ug9Pn37VoJJn8e5iJtomsjzdMOlrtdXMynqPx4+788KN8wZ3slq5ciUDAwMf4RsU\njWmVxF9VVUVnZ2dmZ2dTo9HQy8uLmbUqXcbExPCl+yUDU1JS6iw1JxtP/CTp7e1dp/Z4taaat6/c\n4rnUJUxJcGPppQu8k3uH2iotCwu36y9Sld0t48zdMznguwE8W3yWU6eSy5eX0NbWlgu+X0CXL21Z\n2dWCVXdu8syZKdy40ZP9+jnxzv0TwP/z6wZafDGSFv+XxLGJp3my7OER5qWSS3Td4Mqvk79usP8b\nNx6mm5uudG1xrUoQO3eStrZkQIDu4qKDA/kIp2Tr0Gp1+fOP3Cr6Jwfz16NWLCl5eNHw9uXbTOhR\nd9k7SVZkVvDaL9f0W1H0Nf4SUMzPnjnPAxYJPD70FP2XxDN1Wy7jJ67hwejnuSZ4L2fPnq17g+pq\n3dG9lRX51VdkVRVv3iT9/ck+fXTjys013MLDdTl/99QIahUKsqyMmhINk/sk889o4/dKeOCu+i4z\nJmTwpPdJliaV1jk1oc26yLJ/6cG5Xr+xrGk/DnjrFvnuu7qqkPePAer/VWO0/R9MSXHm5cufUavV\n0uvkSe7LK+Hbb5OOjmRMDPnKK29w6dLAOt9HZmYZ7ezs+fOGfzDym0O0s7PnuXPldfZ7sDVweYQk\nWVBQQCsrK25Sq2mdkMCtBQWsvlvN0oRSg9t26mNYcxznb7H4l3ymHXyDKYeGsPCX88z7Lo8JNgks\n+83wy6yqus0zZ6YwLe1v1GhK+Nnly3w36+E1omXLljE0NLTJ32FLeJQYmoNWSfxJSUkcP368/nFo\naGidwC5cuJA7ahzqurq6srCw0LCDTUj8n3zyCT/++GOjr1+9+jWTkuxZVvYbc3JCmJTkyIqKh3dv\n0Gq13Jy6mdZrrBkSG87nbeaxo3tP9v50DPcfLqC2f38yNfX+Ecv7HD26G1es+G+qVLpTO6NXrqRH\n2FCuuHievROP0eHIL+wbuZhW/+vANQlrGu1/UFAQb9/WLZm3s9NdQLx2TXcNQKkkk5Mf7nvokC5J\nzp/PJs3E0I1P98ti2TJdW2eXas5Uvc+dv/bk95syWOPMAUmyeGcxk/sls7K0krcuPDw1lmSfxPQX\nM3j43zL4d8cMrnsqg992/52H5l/hnWzdf4TvZmVxZXY2NSUanloSyUO7rOnq5ExtzhXdefxhw/Rl\nEB6MZcGChseSm6srkbPHegFvvDSDp187zT+WNr3MtFarZf7mfKY4pzDFOYWXPr7E8vRyVt+5yxyb\noVzXZ32Tv8uajhwh+/UjZ88mAwKCmtSmtDSJiYm2zM//gSSZWlZG28PJ7NNXy3nzdDPLDh8+TEdH\nR96qdc7pdtZt5nyZwy96f0FlZyWVnZX8ovcXzPkyh7ez/vo0lp49ezL7YjZP7c5jyMvxjOt+hCme\nxxn/XDxPTz7Nosgi/u0//vawD8E5PDHwBBN7JjLjpQymT0hncvDbPLqnN9Nm7a9z0KDRXONvv43Q\nn3qt1mrpmJTE9Bqz5N555x1+U8/pPFOq71eNOWuVxL9z507Onz9f/3j79u1cXGs+3MSJE5lY4yqo\nj48PT9Wq+wJANtlkk022v7AZ02IlG5p6M27WWsJau13t14UQQjRPi63ctbe3x9UaN/+9evUqHBwc\nGtwnLy8P9vb2LdUlIYQQaMHEP3ToUGRlZSEnJwcajQaRkZHw8/Mz2MfPzw/btm0DAKSkpMDS0hK2\ntrYt1SUhhBBoweqcnTt3xrfffovx48ejuroa/v7+cHd3x/fffw8AWLhwISZMmIDY2FgoFAo888wz\n2LJlS0t1RwghxAOP5UruI6hvbv/169c5duxYuri40NfXlzdq3e2pobaP0t4U5s6dSxsbG3p4eOif\n+/DDD+nm5saBAwfytddeY2ntokD3mcP4SImhxLDtj7E9xLA5TJr4jc3tX7ZsGVevXk2SXLVqFQMC\nAprclmST2ptKfHw8U1NTDf7gDh48yOr7C1UCAgLMenwSQ4mhOYzxSY9hc5k08dc3tz8kJMRg/n5B\nQQFdXV2b1PbBuoCmtDel7Oxsgz+4mvbs2cM333yzzvPmMj6JocTQHMZIPtkxbC6T1uNXq9XoXeO+\niA4ODlCr1SgqKtJf1LW1tUVRUREAID8/X38bOWNtARht3xaFh4fra6ab4/gkhhJDcxhjY8w9hs1l\n0sRf39z+2s916NBB/1yvXr0QExNT734kjb5fU9cQmFpwcDCeeuopzJw5E4B5jk9iKDGsqa2OsSFP\nQgyby6SJv765/fb29rC1tUVhYSEAoKCgADY2No22rTnnvyntW9vWrVsRGxuLvxu567O5jE9iKDE0\nhzEa86TEsLlMmvjrm9v/6quvws/PDyqVCgCgUqkwadKkJrV9sC6gKe1bU1xcHNauXYvo6GhYGLkX\nnLmMT2IoMTSHMdbnSYphs5n6okJsbCyVSiWdnZ0ZEhJCUjdNysfHp840KbVazQkTJjTYtqH2rWH6\n9Ons2bMnu3TpQgcHB27evJkKhYKOjo709vamt7c3Fy1aRNI8x0dKDCWGbX+M7SGGzdGBlGI4QgjR\nnpj0VI8QQojWJ4lfCCHaGUn8QgjRzpg88cfFxcHNzQ0uLi5YvXo1AGDnzp0YMGAAOnXqhNTUVKNt\nc3Jy4Onp2ehnODk5oaSk5LH1WRiqL4bLli2Du7s7vLy8MHnyZNy8ebPethLDtqG+GH722Wfw8vKC\nt7c3fHx8DKY11iQxNH8mTfzV1dVYvHgx4uLikJmZiYiICJw7dw6enp7Yu3cvRo0a9Vg+x5wXVrR1\nxmI4btw4nD17FhkZGVAqlQgNDW3W50gMW46xGC5fvhwZGRlIT0/HpEmT8PnnnzfrcySGbZdJE/+J\nEyegUCjg5OSELl26YPr06YiOjoabmxuUSuUjvdfWrVuxZMkS/eOJEyciPj7+cXdZ1GIshr6+vujY\nUffnNHz4cOTl5TX6XhLD1mEsht26ddPvU1FRAWtr60bfS2JontpErZ7HQY4uTKMpMaxZB+VRSAxN\no6EYfvrpp3B0dIRKpcJHH330yO8tMTQPrV6rR5iXxmJYuw6KaHsaimFwcDByc3MxZ84cvP/++ybs\nlTClVq/VU/s+vDXNmzcPgwYNwsSJE+u81rlzZ2i1Wv3ju3fvPt7Oino1FMP66qBIDNuepvw7nDlz\nJk6ePAkAmDt3rsTwCdNit16sT806GL169UJkZCQiIiIM9qm5kDg8PNzoezk5OSEsLAwkkZeXhxMn\nTrRYv8VDxmL4oA7K0aNHDeqgSAzbHmMxzMrKgouLCwAgOjoagwYNAoAGb4kqMTRPJk38xu7Du3fv\nXixduhTXrl3Dyy+/jEGDBuHAgQN12ldVVeHpp58GAIwcORJ9+/ZF//794e7ujiFDhphyKO2WsRj6\n+flBo9HA19cXAPDCCy9g48aNddpLDFufsRi+/vrruHDhAjp16gRnZ2eEhYXV215iaP7MqlZPdHQ0\nIiIisGPHjtbuiviLJIbmT2Jo/kx6xN8cK1aswL59+/RlUYX5kRiaP4nhk8GsjviFEEI0n9TqEUKI\ndsbkif/q1asYPXo0BgwYAA8PD3zzzTcAgJKSEvj6+kKpVGLcuHEoLS3VtwkNDYWLiwvc3Nxw8OBB\n/fORkZHw8vKCh4fHX1psIoQQ7ZHJT/UUFhaisLAQ3t7eqKiowJAhQxAVFYUtW7bA2toay5cvx+rV\nq3Hjxg2sWrUKmZmZ+jnFarUaY8eORVZWFkpKSjB48GCkpqbCysoKc+bMwaxZszBmzBhTDkcIIcyO\nyY/47ezs4O3tDQB49tln4e7uDrVajX379mH27NkAgNmzZyMqKgqAbgbBjBkz0KVLFzg5OUGhUOD4\n8eO4fPkyXFxcYGVlBQDw8fHB7t27TT0cIYQwO616jj8nJwdpaWkYPnw4ioqKYGtrC0B3N/uioiIA\nQH5+vsGqQgcHB+Tn58PFxQUXLlzAlStXUFVVhaioKKNlZIUQQjzUatM5KyoqMGXKFKxfv96gKiCg\nqyXSWE0YS0tLhIWF4Y033kDHjh0xYsQIXLp0qSW7LIQQT4RWOeKvrKzElClT8NZbb2HSpEkAdEf5\nhYWFAICCggLY2NgAqFtXJC8vD/b29gB0JWBTUlKQlJQEpVIJV1dXE49ECCHMj8kTP0n4+/ujf//+\neO+99/TP+/n56ReFqFQq/X8Ifn5+2LFjBzQaDbKzs5GVlYVhw4YBAIqLiwEAN27cQFhYGObPn2/i\n0QghhPkx+ayehIQEjBo1CgMHDtSfzgkNDcWwYcMwbdo05ObmwsnJCT///DMsLS0BACEhIQgPD0fn\nzp2xfv16jB8/HoCugmBGRgYAICgoCNOmTTPlUIQQwizJyl0hhGhnZOWuEEK0M5L4hRCinZHEL4QQ\n7YwkfiGEaGck8QvRiJUrV2LdunVGX4+Ojsa5c+dM2CMhmkcSvxCNaGwV+d69e5GZmWmi3gjRfDKd\nU4h6BAcHY9u2bbCxsUHv3r0xZMgQdO/eHZs2bYJGo4FCocD27duRlpaGV155Bd27d0f37t2xZ88e\naLVaLF68GH/++Se6du2KH374QVaVi7aFQggDp06doqenJ+/cucOysjIqFAquW7eO169f1+8TGBjI\nDRs2kCTnzJnD3bt3618bM2YMs7KySJIpKSkcM2aMaQcgRCPM5p67QpjKsWPHMHnyZFhYWMDCwgJ+\nfn4gidOnTyMwMBA3b95ERUUFXnzxRX0b3v/hXFFRgeTkZEydOlX/mkajMfkYhGiIJH4haunQoYM+\nkdc0d+5cREdHw9PTEyqVCkeOHDFoAwBarRaWlpZIS0szVXeFeGRycVeIWkaNGoWoqCjcvXsX5eXl\n2L9/PwCgvLwcdnZ2qKysxE8//aRP9t26dUNZWRkA4LnnnkPfvn2xa9cuALpfAkLn/oIAAACRSURB\nVL///nvrDEQII+TirhD1CAkJgUqlgo2NDfr06YPBgweja9euWLNmDXr06IHhw4ejoqIC4eHhSEpK\nwoIFC2BhYYFdu3ahQ4cOWLRoEQoKClBZWYkZM2YgMDCwtYckhJ4kfiGEaGfkVI8QQrQzkviFEKKd\nkcQvhBDtjCR+IYRoZyTxCyFEOyOJXwgh2pn/B9onALJWbd6qAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x10d213e50>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"wind['wp1'][a:b].plot(color='red', label='raw power')\n",
"pd.ewma(wind['wp1'], span=100)[a:b].plot(color='blue', label='smoothed')\n",
"legend()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"<matplotlib.legend.Legend at 0x10ea42f90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEiCAYAAAA2+lOmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVGX+B/DPcEnERAS8MSAIgwIqoKKopZCm5I31WmiZ\nuFZa2a7tWuaurmalUrlqWv7U9ZqFlDfcUnJNRysTVLzkHS/cES+giCIDM8/vj8cZGJgZ5j5zxu/7\n9TovODNnznmGh/nOc77neZ4jYowxEEIIERQnWxeAEEKI4Sh4E0KIAFHwJoQQAaLgTQghAkTBmxBC\nBIiCNyGECFCjwTs9PR2hoaEICQlBcnJyg+elUilatGiBbt26oVu3bvj4448tUlBCCCG1XHQ9KZfL\nMX36dOzfvx9isRg9e/ZEQkICwsLC1LaLjY3F7t27LVpQQgghtXS2vDMzMyGRSBAYGAhXV1ckJiYi\nLS2twXY0zocQQqxLZ8u7sLAQ/v7+qnU/Pz9kZGSobSMSiXDkyBFERkZCLBbj888/R3h4eINtCCGE\nGE5b41hny1ufoNu9e3fk5+fj9OnTeOeddzBy5EitBXDkZd68eTYvgyWX2NhYm5eB6pDq8EmrQ110\nBm+xWIz8/HzVen5+Pvz8/NS2ad68Odzd3QEAQ4YMQXV1NUpLSxsN+o4mLi7O1kWwKDc3N1sXweKo\nDoXP0euwLp3BOzo6GtnZ2cjJyYFMJkNqaioSEhLUtikpKVF9Q2RmZoIxBi8vL8uV2E45+j9N27Zt\nbV0Ei6M6FD5Hr8O6dOa8XVxcsHLlSsTHx0Mul2PKlCkICwvD6tWrAQBTp07Ftm3bsGrVKri4uMDd\n3R1bt261SsGJdSUlJdm6CMREVIeORcQaS6yY4yAiUaP5G0IIIep0xU6dLW9ClKRS6RN1SuoIvLy8\nUFZWZutiED20bNnS4GuFFLwJcVBlZWV0xisQxnSnprQJIQ6KPnfCoa2udNUhTUxFCCH24O5dgzan\n4E30IpVKbV0EQhzbc88BmZnAqVO1iw6U8yaEEHswdizwxht6b045b0IcFH3uhINy3oQQQaqpqbF1\nEaxGLpebZT8UvIleKOdNzC0wMBCffvopIiIi0Lx5c8jlcixevBgSiQQeHh7o3Lkzdu3apdo+ICAA\nWVlZAIBvvvkGTk5OuHDhAgBg3bp1GDVqlMbjJCUlYdq0aRg8eDA8PDwQFxeHvLw81fNHjhxBz549\n4enpiV69euH3338HABw8eBARERGq7QYNGoRevXqp1vv166e6j0FRURHGjBmD1q1bIygoCCtWrFBt\nN3/+fIwdOxYTJ05EixYtsGnTJlP/dAAoeBNCbGjr1q3Yu3cv7t69C2dnZ0gkEvz6668oLy/HvHnz\n8Morr6CkpAQAn7dE2Yg4dOgQgoODcejQIdW6rkFk3377Lf71r3/h9u3biIqKwssvvwwAKC0txbBh\nwzBjxgyUlpbib3/7G4YNG4aysjL07t0b2dnZKC0tRXV1Nc6cOYPi4mI8ePAAlZWVOHHiBPr16weF\nQoERI0agW7duKCoqws8//4xly5Zh3759quPv3r0b48aNw7179zBhwgTz/PGYFVjpMISQOvT63AGm\nL0YKDAxkGzZs0LlNVFQUS0tLY4wxtm7dOpaQkMAYYywsLIytW7eOJSYmMsYYCwgIYCdPntS4j0mT\nJrHx48er1isqKpizszPLz89nmzdvZjExMWrb9+nTh23cuJExxli/fv3Yjh072O+//84GDx7MXnrp\nJZaens4OHDjAIiIiGGOMHT16lLVv315tHwsXLmSTJ09mjDE2b948Fhsbq/N9aqsrXXVIvU0IeZLZ\n+IJm3Zu9AMDmzZuxdOlS5OTkAAAqKipw584dAED//v0xc+ZM3LhxA3K5HOPGjcP8+fORm5uLe/fu\nISoqSuMxRCKR2lTWzZo1g5eXF4qKilBcXIz27durbR8QEICioiIA/BaPUqkUfn5+iI2NRcuWLXHo\n0CE0adJE1dLPzc1FUVERWrZsqdqHXC5H//79Vev1p9I2B0qbEL1QzptYQt1h4bm5uXjjjTfw5Zdf\norS0FGVlZejSpYuqt4VEIoG7uztWrFiB2NhYNG/eHG3btsWaNWvQr18/rcdgjKndl6CiogKlpaUQ\ni8Xw9fVFbm6u2va5ubkQi8UAePA+ePAgDh8+jLi4OFUwP3ToEGJjYwHwL6AOHTqgrKxMtZSXl+OH\nH35QvUdL3E2MgjchxC48ePAAIpEIPj4+UCgU2LBhA86ePau2TWxsLFauXKkKnHFxcWrr2uzZswe/\n/fYbZDIZ5s6diz59+kAsFmPIkCG4fPkyUlJSUFNTg9TUVFy8eBHDhw8HAPTt2xeXLl3CsWPH0KtX\nL4SHhyM3NxcZGRmqlnVMTAyaN2+OTz/9FJWVlZDL5Th79iyOHz8OwHL3+KXgTfRCMwoSSwsPD8ff\n//539OnTB23btsXZs2fx7LPPqm0TGxuLiooKVeCsv66JSCTChAkT8OGHH8Lb2xsnT57Eli1bAADe\n3t744YcfsGTJEvj4+ODzzz/HDz/8oLqhjLu7O3r06IHOnTvDxYVnmfv27YvAwED4+PgAAJycnPDD\nDz/g1KlTCAoKQqtWrfDGG2+gvLxcdXxLtLxpkA4hDoo+d9zkyZPh5+eHjz76yNZF0YoG6RCLoZw3\nESpH/QKj4E0IcWiWSlvYGqVNCHFQ9LkTDkqbEELIE4KCN9EL5bwJsS8UvAkhRIAo502Ig6LPnXBQ\nzpsQQp4QFLyJXijnTRzd/PnzMXHiRLPsSyqVNph0y9woeBNCnjiagqvQ+oJT8CZ6oblNiKMT2vUB\nCt6EEJtITk6Gn58fPDw8EBoaigMHDmD+/PkYN24cJk6cCA8PD0RERCA7OxuLFi1CmzZtEBAQgP/9\n73+qfRQVFSEhIQHe3t4ICQnBf/7zH9VzVVVVmDFjBsRiMcRiMd59913IZDI8ePAAQ4YMQVFREZo3\nbw4PDw8UFxdDJBJBJpNh0qRJ8PDwQJcuXXDixAm1Y2m71VllZSWSkpLg5eWFzp0749ixY5b/A+q8\nvYOZWOkwxIIOHjxo6yIQA9nz5+7ixYvM39+fFRcXM8YYy83NZVevXmXz5s1jbm5ubN++faympoa9\n+uqrLCAggC1cuJDV1NSwtWvXsg4dOqj2069fP/b222+zqqoqdurUKdaqVSt24MABxhhjc+fOZX36\n9GG3bt1it27dYn379mVz585ljDEmlUqZn5+fWpmUx967dy9TKBRs9uzZrHfv3owxxuRyOevevTv7\n6KOPWHV1Nbt27RoLCgpiP/30E2OMsVmzZrH+/fuzsrIylp+fzzp37sz8/f31/ntoqytddUjBm+iF\ngrfw6PO5s9Vd0LKzs1nr1q3Z/v37mUwmUz0+b948NnjwYNX67t272dNPP80UCgVjjLHy8nImEonY\nvXv3WF5eHnN2dmYVFRWq7WfPns2SkpIYY4wFBQWxvXv3qp776aefWGBgIGOM/z9rCt6DBg1SrZ87\nd441bdqUMdb4rc7qBnLGGFuzZk2D/etiTPCm26ARvVDO2zHZKs0rkUiwbNkyzJ8/H+fOnUN8fDz+\n/e9/AwBat26t2q5p06bw8fFRXUxs2rQpAH43nKKiInh5eaFZs2aq7du3b69KdRQXFyMgIEDtOeXt\nzbRp06aN6nd3d3c8evQICoWi0VudFRUVqV0ArX9rNUugnDchxCbGjx+PX375Bbm5uRCJRJg1a5ZB\nPT58fX1RWlqKiooK1WN5eXmqW5j5+vqq7oWpfM7X1xeA5p4luo7d2K3O2rVrh7y8PLVjWRoFb6IX\n6udNzOny5cs4cOAAqqqq0KRJE7i5ucHZ2dmgffj7+6Nv376YPXs2qqqqcObMGaxfvx6vvPIKAP7l\n8PHHH+P27du4ffs2FixYoOrH3aZNG9y5c0d1txtAd2+TXr166bzV2YsvvohFixbh7t27KCgoULuY\naSkUvAkhVldVVYXZs2ejVatWaNeuHW7fvo1FixYBaNgC1rWekpKCnJwc+Pr6YvTo0ViwYAEGDBgA\nAJgzZw6io6MRERGBiIgIREdHY86cOQCA0NBQjB8/HkFBQfDy8lL1NtF2LGdnZ523Ops3bx4CAgLQ\noUMHvPDCC3j11Vct3m+c5jYhxEHR5044LDK3SXp6OkJDQxESEoLk5GSt2x07dgwuLi7YsWOHAUUm\nhBBiDJ3BWy6XY/r06UhPT8f58+eRkpKCCxcuaNxu1qxZeOGFF+ib3kFRzpsQ+6IzeGdmZkIikSAw\nMBCurq5ITExEWlpag+1WrFiBsWPHolWrVhYrKCGEkFo6+3kXFhaq9V308/NDRkZGg23S0tJw4MAB\nHDt2TGuSPikpCYGBgQAAT09PREVFqfoOK1t1tG7f60r2Uh5a173esmVLwU229KTy8PAAwOtu48aN\nAKCKl9rovGC5fft2pKenY+3atQCALVu2ICMjQ60bzLhx4zBz5kzExMQgKSkJI0aMwJgxY9QPQhdO\nCCFPqmefBRYuBB4P6DGE0RcsxWIx8vPzVev5+fnw8/NT2+bEiRNITExEhw4dsH37drz11lvYvXu3\nwYUk9o1y3sJHdWgjJSVAnZGb5qIzbRIdHY3s7GxVP8rU1FSkpKSobXPt2jXV75MnT8aIESOQkJBg\n9oISQogg3bwJ1Bnyby46g7eLiwtWrlyJ+Ph4yOVyTJkyBWFhYVi9ejUAYOrUqWYvELFPNLeJ8FEd\n2sCjR0BlJeDpafZd0yAdQgixlLw8oG9foKDAqJfTDYiJyShfKnxUhzZgoXw3QMGbEEIsx0L5boCC\nN9ET5UuFj+rQBqjlTQghAkQtb2JrlC8VPqpDG6CWNyGECFBJCbW8iW1RvlT4qA5t4OZNankTQojg\nUMub2BrlS4WP6tAGqOVNCCECI5cDd+4APj4W2T0NjyeEEEu4eRMIDwdu3zZ6FzQ8nhBCrM2C+W6A\ngjfRE+VLhY/q0MosmO8GKHgTQohlWHCADkDBm+iJ+ggLH9WhlVlwaDxAwZsQQiyDWt7EHlC+VPio\nDq2MWt6EECJAFm55Uz9vQgixhF69gC++AHr3NnoX1M+bEEKsjXLexB5QvlT4qA6tiDHKeRNCiODc\nvw84OwPNmlnsEJTzJoQQc8vOBuLjgWvXTNoN5bwJIcSaLDw0HqDgTfRE+VLhozq0IgtPSgVQ8CaE\nEPOjljexFzQvhvBRHVoRtbwJIUSAqOVN7AXlS4WP6tCKLDxAB6DgTQgh5mfhAToA9fMmhBDz69QJ\n2LULCAszaTfUz5sQQqzJCi1vCt5EL5QvFT6qQyupqgIqKoCWLS16GArehBBiTrduAa1aAU6WDa+U\n8yaEEHM6cQJ47TXg5EmTd0U5b0IIsRYr5LsBPYJ3eno6QkNDERISguTk5AbPp6WlITIyEt26dUOP\nHj1w4MABixSU2BblS4WP6tBKrNDHGwBcdD0pl8sxffp07N+/H2KxGD179kRCQgLC6nR/ef755/Gn\nP/0JAPDHH39g1KhRuHLlimVLTQgh9soKQ+OBRlremZmZkEgkCAwMhKurKxITE5GWlqa2TbM6k41X\nVFTAx8fHMiUlNkXzYggf1aGVWGFoPNBIy7uwsBD+/v6qdT8/P2RkZDTYbteuXZg9ezaKi4uxb98+\njftKSkpCYGAgAMDT0xNRUVGqfybl6Ryt0zqt07rg10+dAmJiwNcMe71UKsXGjRsBQBUvtdHZ22T7\n9u1IT0/H2rVrAQBbtmxBRkYGVqxYoXH7X375Ba+99houXbqkfhDqbSJ4UqlU9c9GhInq0EpiYoCl\nS4G+fU3eldG9TcRiMfLz81Xr+fn58PPz07p9v379UFNTgzt37hhZVEIIEbgrVwCJxOKH0Rm8o6Oj\nkZ2djZycHMhkMqSmpiIhIUFtm6tXr6q+GbKysgAA3t7eFiousRVqsQkf1aEVlJYC1dV8kI6F6cx5\nu7i4YOXKlYiPj4dcLseUKVMQFhaG1atXAwCmTp2K7du3Y/PmzXB1dcXTTz+NrVu3WrzQhBBil65e\n5a1ukcjih6IRlkQvlC8VPqpDK0hJAXbuBL77ziy7oxGWhBBiDVbKdwPU8iaEEPOZNAmIjQX+/Gez\n7I5a3oQQYg1WbHlT8CZ6UQ4kIMJFdWgFFLwJIURgysv5TRjatbPK4SjnTQgh5pCVBSQlAWfOmG2X\nlPMmhBBLu3IFCAmx2uEoeBO9UL5U+KgOLcyK+W6AgjchhJiHlYM35bwJIcQc+vcHPvwQeO45s+2S\nct6EEGJplDYh9ojypcJHdWhBDx4AZWWAWGy1Q1LwJoQQU129CgQFAU7WC6mU8yaEEFPt2AFs2gTU\nu8evqSjnTQghlmTlfDdAwZvoifKlwkd1aEEUvAkhRIBsELwp500IIaZq3x44dAjo0MGsu9UVOyl4\nE0KIKSorgZYt+YyCLjpvC2wwumBJTEb5UuGjOrSQ69eBgACzB+7GUPAmhBBTWHk2QSVKmxBCiCn+\n/W8gLw9Ytszsu6a0CSGEWIoNepoAFLyJnihfKnxUhxaSnU3BmxBCBMdGLW/KeRNCiLGqqgAPD95N\n0NXV7LunnDchhFhCTg7g72+RwN0YCt5EL5QvFT6qQzOTy/ksgsHBNjm8dXuVE0KI0MlkwJYtQHIy\n4OUFLF1qk2JQzpsQQvTBGPDVV8DixUB4ODB7NhAbC4hEFjskzW1CCCGmyswExo3jN17o0cMqh6QL\nlsRklC8VPqpDE6WmApMmWS1wN4Zy3oQQ0hiFAvjuOyA93dYlUaG0CSGENOa334CpU4GzZ616WEqb\nEEKIKbZuBV56ydalUEPBm+iF8qXCR3VoJLkc2LZNeME7PT0doaGhCAkJQXJycoPnv/nmG0RGRiIi\nIgLPPPMMzpw5Y5GCEkKITRw+DLRrB3TsaOuSqNGZ85bL5ejUqRP2798PsViMnj17IiUlBWFhYapt\nfv/9d4SHh6NFixZIT0/H/PnzcfToUfWDUM6bECJU06bxe1POmmX1Qxud887MzIREIkFgYCBcXV2R\nmJiItLQ0tW369OmDFi1aAABiYmJQUFBgpmITQszq0SPg119tXQphqa4Gtm8HXnzR1iVpQGdXwcLC\nQvj7+6vW/fz8kJGRoXX7devWYejQoRqfS0pKQmBgIADA09MTUVFRiIuLA1Cbi6N1+10/deoUZsyY\nYTfloXXD15GVhbi1ayFdtcouyiOI9QMHIPXxAXJzEff4zvCWPJ5UKsXGjRsBQBUvtdGZNtm+fTvS\n09Oxdu1aAMCWLVuQkZGBFStWNNj24MGDePvtt/Hbb7+hZcuW6gehtIngSaVS1T8bESbpnDmIW7IE\nePjQokO6Hcqf/wx07Qq8+65NDm902kQsFiM/P1+1np+fDz8/vwbbnTlzBq+//jp2797dIHATx0CB\nW/jifHx46uTGDVsXRRhkMj5r4Lhxti6JRjqDd3R0NLKzs5GTkwOZTIbU1FQkJCSobZOXl4fRo0dj\ny5YtkNjgbhKEED3dvMl/Xr9u23IIxb59fAIqDQ1We6AzeLu4uGDlypWIj49HeHg4XnrpJYSFhWH1\n6tVYvXo1AGDBggUoKyvDm2++iW7duqFXr15WKTixLlXelAiW9NQpni65ds3WRRGG1FS769tdFw2P\nJ3qhnLfwSfv2Rdz9+7znxNy5ti6O/QsP5wG8a1ebFYGmhCWEADExPBDJ5cCGDbYujf3z8ADy8gBP\nT5sVgeY2IYQAJSVA796U89bHvXv85guPx7DYIwreRC+U8xY4xiAtLqbgra+CAn6h0o67VFLwJuRJ\n8OAB4OQEdOrEuwrKZLYukX3Lz+d3hbdjFLyJXuhipcCVlCCuXTvA1RXw9eW5XKKdsuVtxyh4E/Ik\nuHkTaN2a/96hg+OmTpYsAcyR4qOWN3EUlPMWuJs3IXV25r8HBTluX+9du/gNgk1FLW9CiF0oKQGU\nU1c4csv7yhXzzJxILW/iKCjnLXA3byIuMpL/7qgt74oK4O5d4PJloLzctH1Ry5sQYhdKSoA2bfjv\njtryvnqVfzH16AHUuyGMQRijljdxHJTzFribNyG9fZv/7qjB+8oVICQEePZZ01Inyla7h4d5ymUh\nFLwJeRLcvFk7zLt1a6Cy0vTUgr25cgWQSEwP3spWtx0P0AEoeBM9Uc5b4EpKEBcfz38XiRyz9a0M\n3n36AMeO8VuYGUMA+W6AgjchT4a6/bwBxw7enp48933ypHH7yc+n4E0cB+W8BaymBrh3D9I//qh9\nzBF7nCiDNwD062d86qSgwO4vVgIUvAlxfLduAd7efG4TJUdreVdW8vepDLqm5L2p5U0cCeW8Bexx\nykStDh2t5X3tGhAYCChHkSqDtzH3EaCWNyHELtTPdwOO1/KumzIBeMvZ3Z0P2DEUtbyJI6Gct4A9\nHqCjVocdOgA5Oca1TO1R/eANGJc6EcgAHYCCNyGOT1PL++mn+XLjhm3KZG7mCt737vGulHY+QAeg\n4E30RDlvAdOU8waskzpRjuq0NHMFb2W+284H6AAUvAlxfHXnNakrKMiywVuh4AG1sNByx1DSFLzD\nw4E7dww7uxBIvhug4E30RDlvAXvc8m5Qhx06WLbHSXExT0OcPm25YwBAVRU/VmCg+uNOTkDfvsBv\nv+m/L4H0NAEoeBPi+EpKGua8AcunTa5c4T/rDg6yhJwcHnBdXBo+Z2jqRCBD4wEK3kRPlPMWsJs3\ngTZtGtahpft6X7kCNG1q+eCtKWWiZGjwFkhPE4CCNyGOjTEevFu1avicNVre8fG2Dd49ewIXLgD3\n7+u3L2p5E0dDOW+BKi/nd4x3d29Yh/7+/GKeTGaZY1+5AiQk8IEyxs7wp+9xtAXvJk2AZ54B9u3T\nb1/U8iaE2IXHKRONXF0BX18gL88yx75yBYiI4MHQmJGOhhxHW/AGgBEjgP/+t/H9KAfoUMubOBLK\neQtUnQE6GuvQUqkTxnhQDQ4Guna1bOpEn+C9Zw8gl+vez717vIdKixbmLZ+FUPAmxJFp62miZKmL\nliUlgJsbn1vbksG7upq3lut3E6wrIABo2xbIyNC9LwHluwEK3kRPlPMWqDppE411aKmWd93WsCWD\nd14e0K4dz23rkpAA7N6texsB5bsBCt6EODZN85rUFRgI5Oaa/7h1g3dEhOWCd2MpEyV98t7U8iaO\niHLeAlUnbaKxDgMC+CAXc6sbVIOC+JeIJW54rG/w7tmTD5W/elX7NtTyJoTYDV29TQDe8rZ08HZ2\n5vOMnD1r2ePo4uQEDBumu/VNLW/iiCjnLVB10iYa67BdO6C0FHj0yLzHrR9ULZX31jd4AzzvrSt4\nC6ibIKBH8E5PT0doaChCQkKQnJzc4PmLFy+iT58+cHNzw5IlSyxSSEKIkRrrbeLszFMF5uzrrewm\naK3gHRKi37bPPw8cO8a7BGoioEmpgEaCt1wux/Tp05Geno7z588jJSUFFy5cUNvG29sbK1aswMyZ\nMy1aUGJblPMWqDppE611aO7UyZ07fD5sL6/axywRvOVyXu6gIP22b9aM31U+Pb3hcwIboAM0Erwz\nMzMhkUgQGBgIV1dXJCYmIi0tTW2bVq1aITo6Gq6urhYtKCHEQDIZn9OjZUvd25k7eCtb3XVvaKAM\n3ua87Vp+Pp+zxc1N/9eMGKG5y6AdDtBZvVr38xrmUKxVWFgI/zqnEX5+fshorKO7FklJSQh83JHe\n09MTUVFRqpaAMhdH6/a7furUKcyYMcNuykPreqyHhAA+PpAePgyluLi4htsrFMChQ4h74w3zHP+/\n/wU8PBD3+Jiq511cgKIiSLOzzfP+amoAicSw1w8fDun77wM//4y4gQNrn792DXGPW922rD+pVIqN\nGzfi7Fng6tVA6MR02LZtG3vttddU619//TWbPn26xm3nz5/PPv/8c43PNXIYIgAHDx60dRGIobKy\nGIuMVK1qrcPNmxkbP958x503j7E5cxo+PmAAY3v3mu84K1YwNnWq4a/r3p0xqVT9sT17GBs82Dzl\nMoFCwdgHHzAWHs5YQYHu2KkzbSIWi5Gfn69az8/Ph5+AckLEfJStBCIg9S5Waq1Dcw/U0dYDxNx5\n7z/+4Ps01IgRQGoqv0CpXM6etXm+W6EA3noL2L8fOHQIEIt1b68zeEdHRyM7Oxs5OTmQyWRITU1F\nQkKCxm2ZOXNZhBDTNTa6UslSOe/67CV4JybyKWJ7965dli8HYmLMVzYD1dQAkybxqcd//hnw8Wn8\nNTpz3i4uLli5ciXi4+Mhl8sxZcoUhIWFYfXjTPrUqVNx48YN9OzZE+Xl5XBycsLy5ctx/vx5PP30\n02Z5U8Q+SKVSan0LTb0BOlrr0NeX3+W9qqrxOUL0oSt4r1xp+v4BfuHz7FnjgndoaO0t2uxAdTXw\n8st8AOrevfzmQ/rQGbwBYMiQIRgyZIjaY1OnTlX93rZtW7XUCiHETjTWx1vJ2Zmfo+fl6d9nWpuy\nMv4loOm4nTsDFy/yaGVq77TcXMDDo/GeNHauqgp48UX+XZSWZth3J42wJHqhVrcA1Uub6KxDc6VO\nrl5t2E1QqVkz/iXxuLeJSYxNmdiRykpg5EjgqaeAbdsMP+mxXfD+/HPLTFRDCOEam9ekLnMF78aG\nq5sr7y3w4P3gAZ9qxdsbSEnhAdxQtgne9+4BH3zAh6oSQVD2RSUCUi9torMOzdXjJDtbd/A21/Sw\nAg7eDx/yDi/t2wObNgEujSavNbNN8D50iA9trTfUnhCih1u3gDNnGt9O394mgOEt7zt3gFOnGj5O\nLW+dHj0CRo3i14jXreOXG4xlm+D98898Apjz521yeGI4ynnbkS1bgPff173Ngwd8tsB27VQP6axD\nQ+f1Tk4GBgzgfaTraix4P/MM8MsvpqVMq6p4bj0szPh92IBMBowdy0fgb9xoWuAGbBW89+/nvdGp\n5U2I4S5fBk6e1D1PyJkzPLjp26vDkJa3QsETtcOG8c7JCkXtc40F73bt+Ox+mzbpdyxNLl7kt28z\nR7dGK6muBl56iVfHN98Ynyqpy/rBu7iYLy+/TC1vAaGctx25dImnRIqLtW9z8iTQrZvaQzrrUCzm\n+6yqavx171ksAAAdKUlEQVT4v/7KZwzcuJFvv3Qpf7y8HKio4DkBXaZP5/296wZ9QwgsZSKT8XBX\nXc0HdpprDj/rB++ffwaee44PRX30iOfOCCH6u3QJ6NiRB2htNARvnVxceADXZ8zGt98CEybw8/6v\nvwYWLwZOn+apjOBgzd0E6+rXj88E+PPP+pevLgEF7/v3+QmKTMa7AxrTq0Qb6wfv/fv5aZNIxG+N\nRKkTQaCct52oqOADYf70JyArS/t2GoJ3o3WoT48TZRRKTOTrHToAS5bwpuXZs/rd1UYkqm19G0Mg\nwfvGDSA2ln+fbdtm2My1+rBu8GaMf9s+nooRYWGUOiHEEJcv8wDZo4f2lnd1Nf9cRUQYtm998t77\n9vHPbUBA7WMTJ/KG2MyZ+t+SbMIE4LffjOtb/scfhr83K7t8GejbFxg9Gli1yjw57vqsG7wvXwZE\nIiiCQzB5MnDB+1lqeQsE5bztxKVLQKdOvFWtLXifP8+Da735hRqtQ316nChTJnWJRMD//R9P5uo7\nvL5ZM36x86uv9NteqayMjxOp++VhZ44c4S3uf/4TmDOn8SySsawbvB+3urdtF2HXLuDVtNGoPnvJ\nqkUgRNAuX+b5bomEXy8qK2u4jaH5bqXGWt4VFcCePcC4cQ2f8/ICMjOBV1/V/3hvvgmsX89Hrejr\n7Fk+R4qT/c3scfcuzwaNGcP7cE+ZYtnjWfcvsH8/ap4bhLlz+VVX73ZPYWHmQO3b5+Twfwhic5Tz\nthPKlreTE08daBoooyV465Xz1hW809KAZ5/VPl+pr69h3fckEj4N69at+r/GDvPdjPHuf+HhfGrX\nc+eAoUMtf1zrBW+5HJBKsfnOMPj6AoMGAeu2uOGr8ldw/FCF5tcsXQq88AJQWGi1YhJi1y5f5sEb\n4AFa00VLS7W8NaVMTPXOO8CKFfrf29LOgveJE7z/xeefAzt28OxR3fsuW5L1gndWFqraBuDDZS3w\nySc8DyT2d8LywKWYmOSMykoNr9m/n3crTEoyvk8oMQvKedsBxmrTJoDmvLdCwbvtaQjejdahnx/v\n6y2TNXzu1i1+gVHLzViMNngwT8f8/rt+29tB8JbLeaDu148PdR85kk/T1Lu3dcthveC9fz9Wt56D\niAh+FVYp8ZkCRLa5gX/8o972xcWQFd/Bvf9L4Tmx5cutVlRC7FJxMe9vppzDunv3hsH72jU+/trb\n2/D9u7gAbds2HPIO8L5uQ4c2uAhqMicnYNo0YO3axrc15QYMZnDvHk8GSCS8pf2Xv/A/9zvvWKY3\nSWOsdsiK9F+x8My7+Ela74mwMHzptRmR389DfDzg7g5IpcChVCDz/nWwDk/BvclhhLx/HB0PlaJj\njBdiYvgXgLn7TRLtKOdtB+q2ugGeZL1+nTdu3N35YydP8qCugV51qEydBAWpP/7tt8CsWcaUunHj\nx/OLkF99pfs2Mvn5/H0a88VkgmvXgC++ADZvBuLjeYrehndMU7Fay/uLoz3x3EBnREbWeyI8HN45\nJ7B2Lb9K+957/Czq7+1SUJD8Le7fB06fdcbCv5ei7/EvcKekBv/4B9CqFc+bL16s+ZoNIQ5HebFS\n6amn+C296s7Sl5VlXL5bSVPe++hRPtXr4MHG71cXX1/+hbNnj+7tzpyxWqubMeDwYR6TevXi12FP\nn+ZTuthD4AasGLyXKv6KDxdqGNQfHg6cP48hQ/hQ0owM4NNkhqGXlqLF8H4QifhcNrGLXsDrvc/i\nc+dZOHqUfwlPnw4UFfE0XGKi7qkeiGko520H6gdvoOFFSx0XK/Wqw/rB+/594JVXeKvYnGO765sw\ngbfudbFCvjs3F/joI95dfdo0PnFiTg6fRNHf36KHNpjVgvfIrtfUzvhUgoN5b5LKytqum48H86h1\n+BeJgNWreR/D77+HpycfIfzFF3ySseBg3nNq5Up+QYEQh1M/bQKoX7RkzPieJkr1g/e77/IRJ6NH\nG79PfYwZwzso3L2rfRszB+/793lrescO4LPP+MDv7t35sPaUFN7l7+23zZ/mNxer5bw/3uinpQQu\nPPJevgxVTqXu/Cd1eXsDP/zAL5w8fMhHaIGnwT75hE+vMG0an21y1SogOtqCb+gJQzlvO6Ct5a2c\nXrW4mLdc/DR/1vSqw4CA2vlNdu7kF6CskZf09OTRc+dOYPJkzdv88Qcfgm+A6moeoC9d4rPVKper\nV3l6NiiIh5+gIB47RowQzrU0qwXvNhE67qWnnONEGbx//pl/E2sSFQUcOFDbxejtt1VPhYfzm/Rs\n3MhTKf37AwsWNGysECI4Mhm/u3twsPrjkZG8iVhdXdvqNmU8trLlXVTER0Du2mW9pueECfzsWlPw\nfviQR91GbsBQWclT9IcP83s+ZGTwubPCw3kvkYEDgTfe4H/Gdu0sN3TdGuxjjGnd2QUfD+ZRTV6l\nSWgor52lS4FFi9SeEol43Wdn8//rZ54BXn9dc+8noj/KedvYtWs86Vo/7/z00/xmiBcv6uxpAuhZ\nh35+vAU/aRJvilqz8/KwYcDx45ovXs2axVM3GnqjKC8uTpnCr33+4x881r/7Lr82duYM7yHy8cd8\nyEi/fnw7IQduwF6Cd93ZBbOy+F+2bVvdrwkM5DW2ZQufAaaeZs2A2bP56ZK3N8+HT5vGT6EIERxN\nKRMl5UVLU3uaAPzLoW1bnhCeM8e0fRmqaVN+ISs1Vf3xvXuB3bvVppC9f5+P6/nwQ96ifust3qY7\nd44/npzMvws8Pa37FqzJBl3LNXjc4wRAbb5bH76+PE/StSu/Iq7hlMrLi3cnnDEDWLOGV2hAAD8j\nHDtWOPktW6Oct43VHRZfn/Ki5cmTDc5E69K7Dj/4gE9LYeaRJwoFb1Tn5/P5tO7erV2qq/n3xlNN\nZsN16X/h6sa3ry6rQPWnx1D94gFUfN4S587xlnRJCQ8bffvyWN+jh/Bb0oYSMabvpAImHEQkgs7D\nPHrER42Vl/N/mnffBYYP1/8Af/sbP31csKDRTWtq+DXPVat4QyUuDujThy/du+s5r05VFf9Pe9L+\nW4SspsY2w+DM5bXX+BX4adMaPve///ELedeu8WGAdjDjXk0Nv1vanj08I3rtGh9P5OHBszxeXrxV\n3KIF/+nqygN4dZUCsjUbIRsxBs5eHnDd9yNcvTzgMqA/3N15wI6I4K1tU2/gKwS6Yqd9BG+Adwv8\n7jt+lbGwkNeyvo4f5x29s7MNCqh5efyixpEj/FRLeWbaogVPu7i785+urrwVIK94CMW5C1BczEa7\n5zohNLEbQkP5a6w86MvqpFKpcFvfq1bxPqVnzpjvBoLW1q8fb5w891zD527f5qPW+vbl849oYek6\nrKjgfQl27uQNpIAA3nEgIoL35ggK0vPa51//yj9Qvr7Al1/yK5ACutmwOemKnfbTFAkP5/MbREQY\nFrgBfs7k7Mxnh+nVS++XtW/Puxe+/DJfr6jg2Zv79/kFj4cPgQcPgOri23D+XzqcjmXAuU9PiAZ0\nRuGGvTjUqgtWr3bFxYv8f6tHD374Xr2Anj2B1q0NexvEAi5cAObO5ddI1q8Hpk61dYmMoytt4uPD\nLzSamu9uRHU1b0FfuMCvj169yjsCKJdHj/j1zVGjeC66fXsjDzRhAs9pPnrE06JPaOBujP20vD/4\ngF+Q+Nvf9Ep/NPDhhzyRtmyZcYXUZs0afuVz6lTeImjzuMvjSy/xbouzZ4Mx3rPq+HE+/XhmJv8e\ncXfn/8B+frVLcDD/ngoOFvZZvCDIZDyaTJvGA9uoUfzsTNf8Gfbo7l3e06S8XPuZ5dixvJlrwM0Q\nGOMnI1eu8C52jx7xn5WV/KN0507tUlLCexCKxfzCYFgYT13U/d/28jJTJpExfoC33+azPj3BhJE2\n2byZd086dIinTgx1+TIfCVZQYL5k2LlzPCl+5EjD2zspb1J3+bLGCXwVCl6UwsLalkl+Pv+gnD/P\nH1cG8o4d+e6Vi48PpdPN4oMPeDNx1y7+Bx0zhgfz996zdckMk5HBu1OcOKF9m4cPeQu1kf/9Bw/4\nMIoff+T56CZN+Mlu06Z8cXOrnbjQ25v/L3p787PI4GArXuCvrBTel6wFCCN4Hz/Og29ZmfFzKPTs\nya+269tbRZeqKj4DzfTp/GKRJq+/zv+zFy82ePeVlTzHfv48j//Z2bULY3xgQd3F359/gFq14j+b\nN7dugBdczvvQIT5b3enT/I8G8EAeG8v/4ELqQ/b11zzSpqQYvYvSUmDqVCl++ikO0dG819Xw4bzh\nQA0F+yWMnHf37rxJYMrkN8rJbcwRvOfO5VFT143o5s3jI4H++lc+XMsATZvyrEtUlPrjjPEP2vXr\nfMnJ4QF+3z4+H/7Nm3yprubdccVi9aVdO/64cjHbqayQ3L3L0wf/+U9t4Ab4qfjw4Xwy5o8/tl35\nDKWrj3cjZDJ+zW/RIt6jKju7NvNHhM1+Wt7mUFQEdOnCf5pyfnfwIO83fvq09vv1Kc2cyU9ZDb0L\ntokePuR9ZgsLa5eiIj6pzo0b/LkbN/hpsrK1rly8vPg14ebNa3+qnW1XV8Mp+xJa9usCLy9+cuHl\nZf3WvtFefpmf99cZ1KGSl8fz3+fPCyeKjRvHRxeOH6/3S27d4j0I//UvHvc/+4yn6IiwCCNtYi4D\nB/L8oLa5URpTVsZb02vW8D7njbl9m1/BychoOO+EHaiqqm2t37zJLzyVlfEeNeXl/Of9+3XuMifn\nHXRrSu7gbmQsSkU+KC3lZwMPH/JsQ8uWfPH05GcQLi58cXau/b3uY02a8C+J+kvdLw/lYvJF3G+/\n5XN6njhRe4OC+mbM4G/4iy9MPJiVREbynjI9egDgFxbz82t7Qyl/XrrEL5QfO8ZPPnr2BN5/n897\nT4TpyQre69bx/OD27Ya/ljHeumnd2rAP9oIF/JPzzTe6t3vwgEcne+36dO8eTysEBfG0w8SJqpyx\nVCrFM8/E4e5dHvyVS1UVH5ChWm6WQv7gEWrkQE2NCDVyEaqeao5yeTOUl/MvjHv3Gn55lJfzrppP\nPcX7Ajdvzn8ql2bNan/WXdzd+ZiU6mqg5nYZapathGziFJS5+aK0lPeUKC3lxxCJ+LYieTWcLpzD\nUxGhcG/ppurP7+6ueWnatPantqX+dUJWWARU3Nf552ZMj9MYxlAxZByOf5mBo6eb4uhRfiewdu34\n36NuGSUSHrCjo/nv9cfqCO66BXnCgndZGe/Tm5tr2EUpxniXwL17+aAAQ65037/Ph+j//e/auzYV\nFPBcfIsW/BjWusW0vm7f5mcavXvzLy4nJz4Z0MWLwK5dWLZ8OWbMmKF7Hxs28L9B/Xlpbt8G0tJ4\n0lUHxviF3IqK2qD+4AFfKipqf6+/MAa4OCvguvN7uAQHwLVfb7Rsyf/EyrRP8+b8GAoF316xfgOq\n/yfFg4Vf4IFLC7VWbP2lsrL2p/L3ut3qKivr3R/7USVw/z5ETo0HZ33SUG6ucnQf0ha9e/Pq6dFD\n+0mFLsuWLWu8Dold0Rk7WSP27t3LOnXqxCQSCVu8eLHGbd555x0mkUhYREQEy8rKavC8Hocxr5Ej\nGVu/Xv/t5XLG3nqLsR49GLt1y7hjXr/OWHAwY598wphCof7clSuMBQYy9tlnjM2cyVjXrowVFxt3\nHEsoKmIsPJyxDz5QL/ujR4xFRTG2Zg2bN2+e7n0sX85Y+/aMXbrU8Lk9exhr1Yqx/fvNWmw1ycmM\n9e/PWE2NftsrFIzNns3fd2Gh+crx5ZeM+fkxdv68+fZpJo3WIbE7umKnzqhaU1PDgoOD2fXr15lM\nJmORkZHsfL1/yh9//JENGTKEMcbY0aNHWUxMjEEFsIidO/kHaN06xqqqdG9bXc3Yq68y9uyzjN29\na/QhDx48yINg586MzZpVGwTPnmVMLGZs9Wq+rlAw9uGHjIWEMJaba/iBZDLGNm1irHt3xsaNY0zD\nl6XeKioYW7aMMV9f/qWjyblzjHl7s0mjRml+XqFg7OOPGZNIGMvJ0X4sqZQH8N27jS+vNllZfN+6\njq/NokX8S/faNV6Hpli8mLGgIMauXTNtPxYyadIkWxfB4kyuQztjdPA+cuQIi4+PV60vWrSILVq0\nSG2bqVOnsq1bt6rWO3XqxG7cuKF3ASxCoWDs4EHGBg/mQXzpUh6o6nv0iLHRo/l2Dx6YdEhVq+b2\nbcaioxl7803GMjMZa9OGsS1bGr7g3/9mLCCAscuX9TvAw4eMrVzJX/Pcc7w1u2QJD7wvvMDYoUMN\nW/zalJYytmABD3ijR/Ny6vLFFyyyaVP+xVGXQsG/qDp35l9cjcnI4H+PlBT9yqmPhw8ZCwvT/DfW\n15dfMubvz+a9/bZxr1coGPvHP3g5CgqML4eFRUZG2roIFudoZxdGB+/vv/+evfbaa6r1r7/+mk2f\nPl1tm+HDh7PffvtNtT5w4EB2/PjxBgWghRZaaKHF8EUbnR2zRHp26mX1Eur1X1f/eUIIIabROfGv\nWCxGfn6+aj0/Px9+9W5uWn+bgoICiMViMxeTEEJIXTqDd3R0NLKzs5GTkwOZTIbU1FQkJCSobZOQ\nkIDNmzcDAI4ePQpPT0+0EcrINUIIESidaRMXFxesXLkS8fHxkMvlmDJlCsLCwrB69WoAwNSpUzF0\n6FDs2bMHEokEzZo1w4YNG6xScEIIeaLpumCpjaa+33fu3GHPP/88CwkJYYMGDWJlZWV6v9aQ11vD\n5MmTWevWrVmXLl1Uj82cOZOFhoayiIgINmrUKHZXS7dCIbw/xqgOqQ7t/z0+CXVoCoODt7a+3++9\n9x5LTk5mjDG2ePFiNmvWLL1fyxjT6/XWcvjwYZaVlaX2T7Nv3z4ml8sZY4zNmjVL0O+P6pDqUAjv\n0dHr0FQGB29Nfb8XLlyo1r+7uLiYderUSa/XKvuN6/N6a7p+/braP01dO3bsYC+//HKDx4Xy/qgO\nqQ6F8B4Zc+w6NJXBt5kuLCyEv7+/at3Pzw+FhYUoKSlRXahs06YNSkpKAABFRUUYNmyYztcC0Pp6\ne7R+/XoMHToUgDDfH9Uh1aEQ3mNjhF6HpjI4eGvq+13/MZFIpHrM19cXP/74o8btGGNa96dvH3Nr\n++STT/DUU09hwoQJAIT5/qgOqQ7rstf3qIsj1KGpDA7emvp+i8VitGnTBjdu3AAAFBcXo7WGW6fr\n6hOuz+ttbePGjdizZw++0TL1q1DeH9Uh1aEQ3qM2jlKHpjI4eGvq+/2nP/0JCQkJ2LRpEwBg06ZN\nGDlypF6vVfYb1+f1tpSeno7PPvsMaWlpcNNylx6hvD+qQ6pDIbxHTRypDk1mTKJ8z549rGPHjiw4\nOJgtXLiQMca74AwcOLBBF5zCwkI2dOhQna/V9XpbSExMZO3atWOurq7Mz8+PrVu3jkkkEta+fXsW\nFRXFoqKi2JtvvskYE+b7Y4zqkOrQ/t/jk1CHprDKzRgIIYSYl8FpE0IIIbZHwZsQQgSIgjchhAiQ\nUcE7PT0doaGhCAkJQXJyMgDg+++/R+fOneHs7IysrCytr83JyUHXrl0bPUZgYCBKS0uNKR7Rg6Y6\nfO+99xAWFobIyEiMHj0a9+7d0/haqkP7oKkO586di8jISERFRWHgwIFqXebqojoUPoODt1wux/Tp\n05Geno7z588jJSUFFy5cQNeuXbFz507079/fLAUTcud5e6etDgcPHoxz587h9OnT6NixIxYtWmTS\ncagOLUdbHb7//vs4ffo0Tp06hZEjR+LDDz806ThUh/bL4OCdmZkJiUSCwMBAuLq6IjExEWlpaQgN\nDUXHjh0N2tfGjRvxzjvvqNaHDx+Ow4cPG1okYiBtdTho0CA4OfF/iZiYGBQUFDS6L6pD29BWh82b\nN1dtU1FRAR8fn0b3RXUoTGab28Qc6FveOvSpw7rzRhiC6tA6dNXhP//5T7Rv3x6bNm3CBx98YPC+\nqQ6FwSxzmxBhaawO688bQeyPrjr85JNPkJeXh6SkJLz77rtWLBWxJrPMbVL/vpZ1/fnPf0a3bt0w\nfPjwBs+5uLhAoVCo1h89emRocYgRdNWhpnkjqA7tjz6fwwkTJuDYsWMAgMmTJ1MdOhidt0HTpO68\nAb6+vkhNTUVKSoraNnUHba5fv17rvgIDA7Fq1SowxlBQUIDMzExDi0OMoK0OlfNGHDp0SG3eCKpD\n+6OtDrOzsxESEgIASEtLQ7du3QBA5+0JqQ6FyeDgre2+ljt37sRf/vIX3L59G8OGDUO3bt2wd+/e\nBq+vqalBkyZNAADPPvssOnTogPDwcISFhaFHjx6mvyPSKG11mJCQAJlMhkGDBgEA+vTpg6+++qrB\n66kObU9bHY4dOxaXLl2Cs7MzgoODsWrVKo2vpzoUPqvPbZKWloaUlBRs3brVmoclZkR1KHxUh8Jn\ncMvbFP/617+we/du1ZSMRHioDoWP6tAx0KyChBAiQDS3CSGECJBRwTs/Px/PPfccOnfujC5duuCL\nL74AAJSWlmLQoEHo2LEjBg8ejLt376pes2jRIoSEhCA0NBT79u1TPZ6amorIyEh06dLFqAEFhBDy\nJDIqbXLjxg3cuHEDUVFRqKioQI8ePbBr1y5s2LABPj4+eP/995GcnIyysjIsXrwY58+fV/U5LSws\nxPPPP4/s7GyUlpaie/fuyMrKgre3N5KSkvDqq69iwIABlnivhBDiMIxqebdt2xZRUVEAgKeffhph\nYWEoLCzE7t27MWnSJADApEmTsGvXLgD8yvb48ePh6uqKwMBASCQSZGRk4Nq1awgJCYG3tzcAYODA\ngdi+fbs53hchhDg0k3PeOTk5OHnyJGJiYlBSUoI2bdoA4HdpLikpAQAUFRWpjf7y8/NDUVERQkJC\ncOnSJeTm5qKmpga7du3SOoUlIYSQWiZ1FayoqMCYMWOwfPlytdnMAD73QmNzaHh6emLVqlV46aWX\n4OTkhL59++Lq1aumFIkQQp4IRre8q6urMWbMGEycOBEjR44EwFvbN27cAAAUFxejdevWABrOw1BQ\nUACxWAyATz959OhRHDlyBB07dkSnTp2MfjOEEPKkMCp4M8YwZcoUhIeHY8aMGarHExISVB3/N23a\npArqCQkJ2Lp1K2QyGa5fv47s7Gz06tULAHDz5k0AQFlZGVatWoXXXnvNpDdECCFPAqN6m/z666/o\n378/IiIiVKmRRYsWoVevXnjxxReRl5eHwMBAfPfdd/D09AQALFy4EOvXr4eLiwuWL1+O+Ph4AHzm\ns9OnTwMA5s2bhxdffNFc740QQhwWjbAkhBABohGWhBAiQBS8CSFEgCh4E0KIAFHwJoQQAaLgTZ4I\n8+fPx5IlS7Q+n5aWhgsXLlixRISYhoI3eSI0Ntp3586dOH/+vJVKQ4jpqKsgcViffPIJNm/ejNat\nW8Pf3x89evRAixYtsGbNGshkMkgkEnz99dc4efIkRowYgRYtWqBFixbYsWMHFAoFpk+fjlu3bsHd\n3R1r166l0b/EvjBCHNDx48dZ165dWWVlJSsvL2cSiYQtWbKE3blzR7XNnDlz2IoVKxhjjCUlJbHt\n27ernhswYADLzs5mjDF29OhRNmDAAOu+AUIaYdV7WBJiLb/88gtGjx4NNzc3uLm5ISEhAYwx/PHH\nH5gzZw7u3buHiooKvPDCC6rXsMcnoRUVFfj9998xbtw41XMymczq74EQXSh4E4ckEolUwbiuyZMn\nIy0tDV27dsWmTZsglUrVXgMACoUCnp6eOHnypLWKS4jB6IIlcUj9+/fHrl278OjRI9y/fx///e9/\nAQD3799H27ZtUV1djS1btqgCdvPmzVFeXg4A8PDwQIcOHbBt2zYAvEV+5swZ27wRQrSgC5bEYS1c\nuBCbNm1C69atERAQgO7du8Pd3R2ffvopWrVqhZiYGFRUVGD9+vU4cuQIXn/9dbi5uWHbtm0QiUR4\n8803UVxcjOrqaowfPx5z5syx9VsiRIWCNyGECBClTQghRIAoeBNCiABR8CaEEAGi4E0IIQJEwZsQ\nQgSIgjchhAjQ/wNjVcjoibDcpwAAAABJRU5ErkJggg==\n",
"text": [
"<matplotlib.figure.Figure at 0x10dd7af10>"
]
}
],
"prompt_number": 12
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Sympy\n",
"----"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from sympy import *\n",
"v = symbols('v')\n",
"integrate(log(v), v)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"text": [
"v*log(v) - v"
]
}
],
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The future of IPython?\n",
"====\n",
"$1.15M Sloan Foundation Grant\n",
"\n",
"- more focus on notebook interactivity through JavaScript\n",
"- integrated version control\n",
"- multi-user support\n",
"- other languages"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Installation\n",
"============\n",
"\n",
"Installing everything in Ubuntu is easy\n",
"\n",
" sudo apt-get install ipython-notebook\n",
"\n",
"In another OS it might give you some headache - better to install a Python distribution such as [Enthought](http://www.enthought.com/) or [Python(x,y)](http://code.google.com/p/pythonxy/)\n",
"\n",
"Take a stroll to the *cheese shop* for the necessary packages\n",
"\n",
" sudo pip install ipython[notebook]\n",
"\n",
"Conclusion\n",
"===========\n",
"\n",
"![Wes McKinney](https://si0.twimg.com/profile_images/1836874815/upload.png)\n",
"\n",
"> If you're not using IPython, you're doing something wrong.\n",
">\n",
"> -- <cite>[Wes McKinney](http://blog.wesmckinney.com/), creator of Pandas and author of \"Python for Data Analysis\"</cite>\n",
"\n",
"Thank you!\n",
"====\n",
"### [http://nbviewer.ipython.org/5792121](http://nbviewer.ipython.org/5792121)\n",
"\n",
"\n",
"References\n",
"==========\n",
"\n",
"- Fernando P\u00e9rez, Brian E. Granger, *IPython: A System for Interactive Scientific Computing*, Computing in Science and Engineering, vol. 9, no. 3, pp. 21-29, May/June 2007, doi:10.1109/MCSE.2007.53. URL: http://ipython.org\n",
"- Randal S. Olson, *A short demo on how to use IPython Notebook as a research notebook*, URL: http://www.randalolson.com/2012/05/12/a-short-demo-on-how-to-use-ipython-notebook-as-a-research-notebook/\n",
"- Sergey Karayev, Setting up IPython in Mountain Lion, URL: http://sergeykarayev.com/work/2012-08-08/setting-up-mountain-lion/\n",
"- Wes McKinney, Data analysis in Python with pandas (3-hour Pandas video tutorial), Pycon 2012, URL: http://www.youtube.com/watch?v=w26x-z-BdWQ"
]
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment