{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Statsmodels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Statsmodels is a Python module that allows users to explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator.\n", "\n", "Library documentation: http://statsmodels.sourceforge.net/" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear Regression Models" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# needed to display the graphs\n", "%matplotlib inline\n", "from pylab import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import statsmodels.api as sm\n", "from statsmodels.sandbox.regression.predstd import wls_prediction_std\n", "np.random.seed(9876789)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# create some artificial data\n", "nsample = 100\n", "x = np.linspace(0, 10, 100)\n", "X = np.column_stack((x, x**2))\n", "beta = np.array([1, 0.1, 10])\n", "e = np.random.normal(size=nsample)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# add column of 1s for intercept\n", "X = sm.add_constant(X)\n", "y = np.dot(X, beta) + e" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 1.000\n", "Model: OLS Adj. R-squared: 1.000\n", "Method: Least Squares F-statistic: 4.020e+06\n", "Date: Sun, 16 Nov 2014 Prob (F-statistic): 2.83e-239\n", "Time: 20:59:31 Log-Likelihood: -146.51\n", "No. Observations: 100 AIC: 299.0\n", "Df Residuals: 97 BIC: 306.8\n", "Df Model: 2 \n", "==============================================================================\n", " coef std err t P>|t| [95.0% Conf. Int.]\n", "------------------------------------------------------------------------------\n", "const 1.3423 0.313 4.292 0.000 0.722 1.963\n", "x1 -0.0402 0.145 -0.278 0.781 -0.327 0.247\n", "x2 10.0103 0.014 715.745 0.000 9.982 10.038\n", "==============================================================================\n", "Omnibus: 2.042 Durbin-Watson: 2.274\n", "Prob(Omnibus): 0.360 Jarque-Bera (JB): 1.875\n", "Skew: 0.234 Prob(JB): 0.392\n", "Kurtosis: 2.519 Cond. No. 144.\n", "==============================================================================\n" ] } ], "source": [ "# fit model and print the summary\n", "model = sm.OLS(y, X)\n", "results = model.fit()\n", "print(results.summary())" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('Parameters: ', array([ 1.34233516, -0.04024948, 10.01025357]))\n", "('R2: ', 0.9999879365025871)\n" ] } ], "source": [ "# individual results parameters can be accessed\n", "print('Parameters: ', results.params)\n", "print('R2: ', results.rsquared)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: y R-squared: 0.933\n", "Model: OLS Adj. R-squared: 0.928\n", "Method: Least Squares F-statistic: 211.8\n", "Date: Sun, 16 Nov 2014 Prob (F-statistic): 6.30e-27\n", "Time: 20:59:31 Log-Likelihood: -34.438\n", "No. Observations: 50 AIC: 76.88\n", "Df Residuals: 46 BIC: 84.52\n", "Df Model: 3 \n", "==============================================================================\n", " coef std err t P>|t| [95.0% Conf. Int.]\n", "------------------------------------------------------------------------------\n", "x1 0.4687 0.026 17.751 0.000 0.416 0.522\n", "x2 0.4836 0.104 4.659 0.000 0.275 0.693\n", "x3 -0.0174 0.002 -7.507 0.000 -0.022 -0.013\n", "const 5.2058 0.171 30.405 0.000 4.861 5.550\n", "==============================================================================\n", "Omnibus: 0.655 Durbin-Watson: 2.896\n", "Prob(Omnibus): 0.721 Jarque-Bera (JB): 0.360\n", "Skew: 0.207 Prob(JB): 0.835\n", "Kurtosis: 3.026 Cond. No. 221.\n", "==============================================================================\n" ] } ], "source": [ "# example with non-linear relationship\n", "nsample = 50\n", "sig = 0.5\n", "x = np.linspace(0, 20, nsample)\n", "X = np.column_stack((x, np.sin(x), (x-5)**2, np.ones(nsample)))\n", "beta = [0.5, 0.5, -0.02, 5.]\n", "\n", "y_true = np.dot(X, beta)\n", "y = y_true + sig * np.random.normal(size=nsample)\n", "\n", "res = sm.OLS(y, X).fit()\n", "print(res.summary())" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "('Parameters: ', array([ 0.46872448, 0.48360119, -0.01740479, 5.20584496]))\n", "('Standard errors: ', array([ 0.02640602, 0.10380518, 0.00231847, 0.17121765]))\n", "('Predicted values: ', array([ 4.77072516, 5.22213464, 5.63620761, 5.98658823,\n", " 6.25643234, 6.44117491, 6.54928009, 6.60085051,\n", " 6.62432454, 6.6518039 , 6.71377946, 6.83412169,\n", " 7.02615877, 7.29048685, 7.61487206, 7.97626054,\n", " 8.34456611, 8.68761335, 8.97642389, 9.18997755,\n", " 9.31866582, 9.36587056, 9.34740836, 9.28893189,\n", " 9.22171529, 9.17751587, 9.1833565 , 9.25708583,\n", " 9.40444579, 9.61812821, 9.87897556, 10.15912843,\n", " 10.42660281, 10.65054491, 10.8063004 , 10.87946503,\n", " 10.86825119, 10.78378163, 10.64826203, 10.49133265,\n", " 10.34519853, 10.23933827, 10.19566084, 10.22490593,\n", " 10.32487947, 10.48081414, 10.66779556, 10.85485568,\n", " 11.01006072, 11.10575781]))\n" ] } ], "source": [ "# look at some quantities of interest\n", "print('Parameters: ', res.params)\n", "print('Standard errors: ', res.bse)\n", "print('Predicted values: ', res.predict())" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFrCAYAAADmYTGwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlYlGX3wPHv4I4a4G6mabhlmWlWrkEpoKllC5Zptkr2\n", "lmhvb+WaltavzUqt1zTNViw18y1IRTNcstTMJVeUcs8dAVkFzu+PWxBk1GGYFc7nuuYCZp55nnsG\n", "5cy9nWMREZRSSinlej7uboBSSilVVmkQVkoppdxEg7BSSinlJhqElVJKKTfRIKyUUkq5iQZhpZRS\n", "yk3KO+vEFotF9z4ppZQqU0TEUpzjnRaEAXQPsvcaP34848ePd3czlB30d+fd9PfnvSyWYsVfQIej\n", "lVJKKbfRIKyUUkq5iQZhZVVwcLC7m6DspL8776a/v7LF4qx5W4vFIjonrJRSqqywWCyetTDLGnsm\n", "rssC/cCilFJlj8uDMGjAuZB+MFFKqbJJ54SVUkopN9EgrJRSSrmJBmGllFLKTTQIX8Kjjz7K2LFj\n", "3d0MpZRSpZQG4UuwWCw2LZoKDg5m1qxZLmiRUkqp0kSD8GXYspJbVzcrpZSyh8cE4ZiYlYSFjSE4\n", "eDxhYWOIiVnp8nNs3LiRdu3accUVV/Dggw+SkZEBwOnTp+nduzd16tShRo0a9OnTh0OHDgEwevRo\n", "Vq1axbPPPkv16tWJjIwEYNiwYTRq1Ag/Pz/at2/P6tWri/16lFJKlXIi4pSbOXVR1u6Pjl4hgYGj\n", "BCT/Fhg4SqKjV1g9hzUlPUdmZqY0atRI3n//fcnOzpb58+dLhQoVZOzYsXLy5ElZsGCBpKenS0pK\n", "ioSHh0vfvn3znxscHCyzZs0qdL4vv/xSTp06JTk5OTJp0iSpV6+eZGZm2vyeKKWU8i7n/pYXL1YW\n", "9wk2n7gYQTg0dHSh4Jl3CwsbY/OLL+k5VqxYIVdeeWWh+zp16iRjx44tcuzGjRslICAg/+fg4GCZ\n", "OXPmJc8fEBAgW7ZssfqYBmGllPJ+9gRhjxiOzsy0nrgrI6Ocy85x+PBhGjRoUOi+q6++GoD09HSe\n", "euopGjdujJ+fH0FBQSQlJRWaL75wXvidd96hVatW+Pv7ExAQQFJSEidOnLD59SillCr9PCIIV6qU\n", "bfX+ypVzXHaO+vXr58/z5tm3bx8iwjvvvEN8fDzr1q0jKSmJFStWFOzxFwnAq1at4u2332bevHmc\n", "Pn2axMRE/Pz8NF2nUkqpQjwiCEdGhhIYOLrQfYGBoxg6NMRl5+jUqRPly5dnypQpnD17lgULFrB+\n", "/XoAzpw5Q5UqVfDz8+PUqVO88sorhZ5bt25dEhIS8n9OSUmhfPny1KpVi6ysLF599VWSk5Ntfi1K\n", "KaXKBo8Iwr163cbkyWGEhY0lKGg8YWFjmTy5B7163eayc1SoUIEFCxbw6aefUrNmTebOnct9992H\n", "xWJh+PDhpKenU6tWLTp16kTPnj0L9X6HDRvG/PnzqVGjBsOHD6dHjx706NGD5s2b07hxY6pUqUKj\n", "Ro2K/b4opZQq3VxeT/hcvUWnXNNb6XuilFLez556wh7RE1ZKKaXKIg3CSimllJtoEFZKKaXcRIOw\n", "Ukop5SYahJVSSil75eRAdDTceaddT9cgrJRSShWXCLzzDjRtCq++Cg88YNdpdIuSB9D3RCmlvND7\n", "70PnznDzzYB9W5QuGYQtFssnQC/gmIi0Pnff20BvIAtIAB4TkSQrz9UgbCN9T5RSyvs5Y5/wbKDH\n", "BffFAteJSBsgHhhZnAsqpZRSXmPtWnjtNaed/pJBWERWAYkX3LdURHLP/bgWuMpJbXOpatWqUb16\n", "dapXr46Pjw++vr75P8+ZM8fdzVNKKeVKyckwdCj07QtNmjjtMtbr/9nucaBURKgzZ87kf9+kSRNm\n", "zZrFHXfcUeS47Oxsypcv6dumlFLKY333HURGQlgYbNsGNWo47VJ2RxOLxTIayBKRqIsdM378+Pzv\n", "g4ODCQ4OtvdybhMXF8fAgQOJjIzkvffeIyQkhG7dujFz5kxWrVqVf5yPjw979uzhmmuuITMzk9Gj\n", "RzNv3jwyMzO55557eO+996hcubIbX4lSSqnLmj4d3nsPvvwSgoIueWhcXBxxcXElupxdQdhisTwK\n", "3Al0u9RxBYOwNzt69CiJiYns37+fnJwcvv7660seP2LECP7++282b95M+fLleeihh3j11Vd5/fXX\n", "XdRipZRSdhkwAB59FCpVuuyhF3YuLyxza4tiB2GLxdIDeAEIEpGMYl/RC/n4+PDKK69QoUIFKlSo\n", "cMljRYSPP/6YLVu24O/vD8DIkSMZMGCABmGlPFBMzEqmTIklM7M8lSplExkZWqwyqohAQgLUrg1+\n", "fkUf/+wzSEkBf38ICDBfmzc3xyvPU62aSy93ySBssVjmAEFALYvFcgAYh1kNXRFYeq6m7q8i8i9H\n", "NchSrMXdF+fIHT+1a9emYsWKNh17/Phx0tLSuOmmmwq0RcjNzb3Es5RS7hATs5Jhw5aQkHB+9WtC\n", "wmiASwfixERYvhxiY2HpUkhPh7lzoWvXosempMDOneY5p0+br9u3m1W3LVo4+iUpW4nAyZNQq5Zb\n", "m3HJICwi/a3c/YmT2nLums48u30sF3wyqFq1Kmlpafk/HzlyJP/7WrVqUaVKFbZv3079+vVd1kal\n", "VPFNmRJbKAADJCS8xtSpYy8ehN96CyZONEkaQkPNCtrrrrt4D+LZZ4vel5YGVaqUsPXKbqdOwZNP\n", "QsWKcJnpRWfTtJV2aNOmDdu2bWPz5s1kZGQUmvv28fFh8ODBDB8+nOPHjwNw6NAhYmNj3dRapdTF\n", "ZGZa74dkZJS7+JOeeAKOH4dFi+C55+D664s/hOfra/05e/bAgw/CwoWQUSZm+1xvxQq48UZo3NhM\n", "FbiZBmEbXNgTbt68OS+//DLdu3enRYsWdO3atdAxb775Jk2bNqVDhw74+fkREhJCfHy8q5utlLqM\n", "SpWyrd5fuXLOxYflata0adGOXWrXhjvugMmT4Zpr4MMPISvLOdcqa7KzYexY8yFn+nR4913n/R6L\n", "QXNHewB9T5RyD2tzwoGBo/hsyFV0njMLZs6Etm3d07g//oAxY8z88Zw50LGje9pRWvz4o/lw89ln\n", "UK+eUy7h8NzRJWyMBmEb6XuilPvExKxk6tSlZGSUo64lmXfK76Dh9i3w9tvQv7/jVovaa/VqU6nH\n", "SYGjTBFx6u9Tg7CX0vdEKTfLzoZp00xJukcegZdfhiuucHerlJexJwhr/kWllDpzBlauNIt2WrVy\n", "d2tss2mT2f5kbVtUWXf0KNSt6+5W2EQXZimllL8/zJvnPQEYzArtgQMhPBz27nV3azxDZia89JKZ\n", "P8/MdHdrbKJBWCmlvFFIiEkCcsMN0L69WcRVoBBNmbN1K9x6q3lPfvvNI1Y+20LnhD2AvidKuVhu\n", "LviUoj7IwYMwYgT8+Sds3Fi6Xtvl5OaaVc+vvw5vvAGPP+7QxVfFSWuqc8JKKXUp2dkmwUb9+jBq\n", "lLtb4zhXXWWq/pw4UbYCMJgPIIsWmd5vYKBDT213WtNi0J6wB9D3RCkXSEkxiRqyssz877kCK0pd\n", "TFjYGGJjJ1q5fyyLF08ocr89PeEy9pFJKVUmHThgVhE3aGCSNpSlAJybC2++aRZyqWKxK61pMWkQ\n", "vsCnn35K69atqVq1KvXr1+df//oXSUlJgKmP/PDDD1t93urVq+nUqRP+/v7UrFmTLl268Pvvv7uy\n", "6Uopa7ZtM6tlBw406QovU4601ElPh/37oWVLMwR/6pS7W2SfPXvMPm4XjhpeMq2pg2gQLmDSpEmM\n", "GDGCSZMmkZyczG+//ca+ffsICQnh7NmzF31ecnIyvXv3ZtiwYSQmJnLo0CHGjRtHJS9ZnadUqXbl\n", "lTBjBvznP+7PfuUOVauaHNR//GHmjJs3h/HjTVlFb3D6NDz/PHToYKoeubAsbGRkKIGBowvdFxg4\n", "iqFDQxx2DZ0TPic5OZkGDRowe/Zs7r///vz7U1NTadKkCW+++Sb79+9nz549fPHFF4We+/vvvxMS\n", "EkJiYqJd1/bU90QpVQr99RdMmGAKRVxkZM8jZGebkYtXX4W77zZtdkMCjoJpTStXzmHo0BCHro7W\n", "IHzO4sWL6dOnD5mZmfhcsLrw0UcfJSsrixYtWlgNwikpKTRp0oTevXvz4IMPcuuttxIQEGDztT31\n", "PVFKKbeZNg3mzzfVjtq0cXdrbOL9C7MiIiA4GO680/6hEjvPceLECWrVqlUkAAPUr1+fEydOXPS5\n", "1atXZ/Xq1VgsFgYPHkydOnW4++67OXbsmD2vQCml3OPMGZg9G86tg3GriAhYtsxrArC9PCsIx8eb\n", "3K2LFkFAgJm/ybuNH2/9OePHFz7u44/PnyMiwuZL16pVixMnTpBrZb7h8OHD1KpV65LPb9myJbNn\n", "z+bAgQNs3bqVw4cPM3z4cJuvr5RygDVrIDLS3a3wXqdOwQ8/QKNGcO+9pieanu6868XHw8SJZuj5\n", "QuXKlYk5fM8Kwr6+5mv79pCYaFbB5d0uFYQLHtez5/lzzJhh86U7duxIpUqV+Pbbbwvdf+bMGRYv\n", "Xkz37t1tPleLFi145JFH2Lp1q83PUUqV0Jo1Zu7wzjvd3RLv1agRLFgA+/ZBnz5mTvbKK83QsCPk\n", "5pqV2h98YFJMBgWZwJ+W5pjzeyHPCsJRUSYZ+dKl9u/js/Mcfn5+jBs3jqFDh7JkyRLOnj3L3r17\n", "6devHw0bNmTgwIGICLm5uWRmZpKRkUFGRgaZmZns2rWLd999l0OHDgFw4MAB5syZQ0ctwq2Ua/z6\n", "qwnAX3wBPXq4uzXez98fHnvM/B3dsQNCQ60ft2ABvPWWSX6yfj0cOwa7d8PJk9aP79fPBN9ff4VX\n", "XjH7t9991+vLRsbErCQsbIx9TxYRp9zMqYu62P2eYtasWXL99ddLlSpVpG7dujJkyBA5ffq0iIiM\n", "Hz9eLBZLoVvDhg3l0KFD0q9fP2nQoIFUrVpVGjRoIEOGDJGUlBSbrunp74lSHm3NGpHatUV+/NHd\n", "LSl7Fi0S+fe/Re65R6RtW5GaNUWuuUbkhx+sH5+T49r2uUB09AoJDBx1bigWkWLGSl0d7QH0PVGq\n", "BPr2Nes/dBhauUHh1JZawEEpVdZ8912ZWMCjPNPFUlvaSoOwUsq7eUgALk7JO1V6XCy1pa00CCul\n", "VAm5ouSd8kyRkaEkJIzmxYTjPGXH8z1rdbRSSl3Kvn1wiTzu7jJlSmyhAAyQkPAaU6cudVOLlKv0\n", "urklC0PSGFDuM7uer0FYKeUd4uOhc2dYtcrdLSnCFSXvlIfZssXkpWjenOtTjlP1xtZ2nUaHo5VS\n", "nu+vv6B7d7O39I473N2aIlxR8k55GH9/eOQRk1WsalWTJrkYNQPyaE9YKeXZ9u2Dbt1g5Eh44gl3\n", "t8YqV5S8U25y9qz1mgSNGsGDD5oADHYnmHLLPmFVlO4TVsqKw4fhtttg6FAYNszdrbmk4pS8U15A\n", "xGQEe+EF08P94w9zf3g4zJ1r9SleUcpQKaVsduaMKSjQv7+7W6LKko0bYfhwk9f6vfdMas1Fi0xN\n", "ggIpkXNyYN06iI42ty1bNAgrpZTLJSfD6tWwciWkpEDNmlCrlrld+H3Vqh6ztVldKDER/vMfiIkx\n", "6w+eeALKlzdD0BERMGMGyT7+LFligu6PP0K9etC7t7l16aIZs5RSyukSE80i7RUrzG3nTrj5Zngn\n", "OYJ6yfGk4cvHt0eRGr+W+MQ0jqf6cjTFl3+Sq/Jc5hsE+v6Df8Pq+C6Mom4LO4vVKMerVAkaNoRd\n", "u8DPL//uJIs/n3aeyw/3w9q10KWLCbqvvAKNG5fsktoTVkopG8TFwcKFJuju2QMh7U4yoN5PdEpf\n", "Rs0XnqBi11vN4p0VK8wTwsOhWTPYvt2U6ktNJenIMSr99TeVxaym/rbcfczoNp+BA00K7OrV3fby\n", "yq6ICLP9zdfXVOErsMAqPd1UXXz7bQgJMb/S7t2hWjXrp7JnTlh7wkopz7Bhg6lb+/HHHjVeu327\n", "GaEctDqCl6r/wRskUvGa6vhs+hu6djV/nQMbmoML1kSfMaPQH/S8rFpTZCN3soh1tOfVBk0Ja7OD\n", "uXOv5dlnhMeDEug+pCmhoVChwsXbVNZTZDr09cfHn//gFBEBc+dy9izMmgUTJkCHDuYDWKtWDmt+\n", "YcUtu2TrDS3Pp5SyVVycKUe4cKG7W5Lv2DGRp582zXr/fZGcrkFyrl6dSHCwSGZm0SclJoqEh5uv\n", "FwgNHS0g4keifE24+JEoIBIWNkZERE5sOyIpflfK31VaypZybWR/3Zsks3vPIucqXDrP3AIDR0l0\n", "9ApnvA351wwNHS1BQeMkNHS0U69lS1tK/PrXrBHp2VMkI8N8BZH27SXnZKJ89ZVIYKBISIjIunXF\n", "axt2lDLUIKyUcq/oaJFatUSWLXN3S0REJD1d5M03TWncYcNETp4890CBP9bWguzlBAWNKxQ48m5B\n", "QePOH5STI7J2rWTVb5h/wN7mIZKRcf6QvGB+4S0vmDuaO4L+pZTo9WdmiowcKVK3rsi335r7EhMl\n", "NzxcfoxKlNatRW69VWT5cvvaZk8Q1mQdSin3mTPHrECNjjYJOWwUE7OSsLAxBAePJyxsDDExK0vc\n", "FBGz/fPaa2HPsr38ujyd99+HGjXM9e7NaMXPtVtxb/UgYn7ZUuzz25RVy8cHbrmFCjdeD0BWvUbE\n", "VOhLq1Ywb55poyNTZNryPnpaXmy7X/+ff8Itt8DWrbB5M9x7LwC/7/Gn88G5vPi6PxMnwq+/wu23\n", "O7rVl1DcqG3rDe0JK6UuJTdXZNAgkT//LNbTnNEzW7dOpGNHkY6tU+TvAaNEatQQWbnSodezfp6R\n", "1s9zwbD2smUiN94o0qGDyC23fOSQnrCtr8umHrwL2dUT3rPHjLZ88on5dyciaWkiL7wgUqeOyOzZ\n", "ItnZJW8bOhytlCrtHD0cO22aSN3aObLyiU8l98orRQYOFDlwwCnXi45eIWFhYyQoaJyEhY0pViDP\n", "yRH57DOR2rXT5QrfjdKWDZcP5pdg6+ty9fD35RTrw8zgwSJBQWYqYc+e/Lvj4kSaNhXp10/k6FHH\n", "tc2eIKyro5VSXsVRw7Fnz5qkSL8tTeFgblPKz02H66+HqVMLrWp25PBvr1632b2K18cHBg2C8PDK\n", "jHvoFC8v7EOWpTwHrwjgn9c+JKyY57X1deXVyy04JG3yYvco/otwgLz3b+rUsQVShPaw/r4WXPk8\n", "ciTJM+fy0kvw/ffw4YdmW5i7aRBWSrmGiEO2HjmiYtHJk9Cvn8nNsHxdNcp3qQ3btpkJwXPbVBx5\n", "PUeqUgXe+u4OsjrcRLW1q6iRlMw1//43hHUuVhEBW19XsYKei1zyw0xmpvnFQqEtY7H3z+DJ6yE0\n", "1Pyq7ay34HjF7TrbekOHo5VSeb7+WuTeex1yqmINR1qxbZvZgvKf/xSYB7zEyueSXs9pzrU5KfBG\n", "mV9tkCRWrivHf9ll89M99nWVxDffiDRsKHL8uPk5MVEy7gqXweGJ0qSJ8xfgY8dwtGbMUko5T2Ym\n", "/PvfsHixWd7brp1DTmtvxaKYGHjsMZMB6ZFHCjxQIDewtS6SR1ZIKtDmtIr+THtmK29Ft+KNt3x4\n", "9FHbBh088nXZ49QpePZZU+no88/hlluIjl7J6NGH2bmzF/XqbeHdd4X77uvi1GZoFSWllOf4+2+T\n", "5+/qq+GTTwrl4nU1ERN4Z76XwtcfnqTdvY3d1hZn2rgRnnzSVN776CNo2tTdLXKBJUvMNrf77oP/\n", "+z/w9eXzz3/j6aevIC3tfJqrwMDRTJ4c5tQPGfYEYd0nrJQLOWN/q0fauRNuvRUefhjmz3drAM7I\n", "ML3e1Z//xbYrOtJu+5dua4uztW1rCgz07GnSLW66JQK5sa1JrZlXjL60iIiAzp3h/vvNKqvJk5Eq\n", "vsyaBU8+2bpQAAb37m2+FF2YpZSL5OUOLrjKNCFhNIB3DgFeSvPmsHy5WW3sRqdPw513Qo9KPzP2\n", "eH8sL4+Ff/3LrW1ytvLl4fnn4Z57IOWmeCynN5kHgoNNhM5btOTt4uNhzRrz/Vdf8fcNdxMRYUam\n", "b7jhczZseLrIU+xZ0e5s2hNWykU8LfOQU/n4uD0AJyaaijdf7O3C2NWhWK5uBAMGeFRxCGe65hq4\n", "oYNZHbyz/HX8ebweOc1awhdfmGr03u7cymdp356P2s3g5pvN73vtWqhZ85DVp1y48tsTRqY0CCtV\n", "Ujt3wnvvwdNPm9SL115rqut89lmhw/L2ZVYgCzi/XsITP53bTAT++svdrSji1CnzB3lg83Vck7gB\n", "S3Y2rF9vhjDLEMucKAgP58qE1XzWfzF9kz/nn5enkRsxxN1NK56DB2HiRPPvLU9UFMk9wunhs5Sv\n", "Yvz55Rd46SUzEhAZGUpg4OhCpzB7m0Pyf84bmYqNnciKFeOJjZ3IsGFLXB+Ii7uc2tYbukVJlTYp\n", "KdbvX7JEZOhQkalTRWJjRbZuFVmxQmTHjkKH5WUeGs0ESaWKrKCrvM4IGdv2gQJVArxIXJzJ9di1\n", "a34qQE9w4oRJ8fj88+eaFRJy0e1HZc22bSK3B+dK51anZNUqd7fGBqmpIuPHmzSio0eLZGWJiEhS\n", "ksjYsSYT5QcfmGxiF7pcdjJnZAJD01Yq5WC5uaakSmioyJ13luhUBfdlVidJuhMrUwI6y/E2N4lU\n", "ry4yZ46DGu1kGzaIhIWJNGki8vnnjkm66yDHj4u0aWNyAud/LrhEecGyKDfX/FNr0MCk7k4dUCC1\n", "46lT7m6ekZsrEhVl9vz26yfy998iYioPTp5siiA9/LDIvn32X8IZObHtCcK6MEspa3JzTW67N94w\n", "k4svvggDB5bolBdmHipXOYdrhr5OrV63QXa2uVnz44/QoAG0bm3mWt3pjTdgyhQYM8bshalY0b3t\n", "KeDECTMb0LOn2amSP/Xr718oA1ZZZ7HAgw9Cr16maP3G9+LpnH0utWOjRjBiBDz6qPk35y7dusG6\n", "dWZdwfTp5F7hT9SXMHYstGoFsbFwww0lu4THZEIrbtS29Yb2hJU369lT5KabRObPd39P78UXRZo3\n", "F/H3F+nd2xS7/fVXkbNnXd+W/ftFzpxx/XUv49gxkdbX58prkUc8aWTcKyR3MZm3/ijfXj4Z+JOk\n", "DXpKJCBApFcvke++yx8CdqmuXfO7poe7hEubNqaC1AoHJvNyRsYwNGOWUg5y+DDUr+9ZK2mPHIHV\n", "q2HlSvjlF/O1atWix2Vl2ddDzciAVatM8oPMTFPIoBhiYlYyZUosmZnlqVQpm8jIUJdsvTp2DLrd\n", "IUyr9gKda+7AEhPj9Gt6A5t/H+cyb8X/ZwaTZvkzdy48dHcqo1vM58pFs0yWs/ffN4va4uPNquSo\n", "qJIlX87NNf/W5s2Dd98t+u/1zjth0SJ2VGvPI/WXMvJNf/r2dfx/R0dnDLMnWYf2hJUqTU6fFqlY\n", "0czXdu8uMmSIyNtvmzqq1hw7ZuYDbzo3L92pk8irr4r8/nuxLuuMGr+2OHJEpNW1ubLmlmGS2769\n", "58xpullJfh/Hjpm1UHXqmGUQy2PPmtGFoKDzJwsPN2sloqNFEhKsr4y60I8/irz1lkirViKVKolU\n", "q2b+rRUYWTl2TGTGDJG7gxLl+8rh8tnkRLcM+NgL7QkrVUx580551VZKg6ws2LcPEhJgzx7ztUoV\n", "eP31osdmZpqEB1WrQrNmJt+hHcLCxhAbO9HK/WNZvHiCXee8nGPH4PagXGZXG8otPr+bHrzHlMax\n", "nyNGFBzx+0hPh6++Mh3VSpXgh5w7uerPRdC+PSxdaubZFyyAHTvg+HGS6jUg7chxksr5klypCokf\n", "TiHsgV7nT/j662bi/n//O7+tLTycw+/P5bvvTGK1jRuhRw+TgbJ3b/PP1ptoT1ip4pg2zXzc37DB\n", "3S3xes5YaXopJ0+KzAt4UpKq1jdz5Xv3OuU6ruaoEQVH/j5yckRiYkQeCEuUBeXDpXXDROnXT2TS\n", "JJHVq0XS0kQWzVskdzd4TLbRMv9iMVVbWm/3uepP/zRsL2G3Joq/v8jAgSILF5pzeTN0dbRSNsjM\n", "hMhIM7/6yy9lJMu9c7lypWlysuktRfnu5orEf8ydL7xQKlZAXzyr2thi9YYd+fvw8TFTtHfe6U9u\n", "7lxa7TZZqdauNVPD27dD+fKtSUnpQQR30oqdrKM9D6UuJeDZrSxcCElJZuo5KQnOHo/i5YoRLO06\n", "g8gB/nTrVnoyadrjkkHYYrF8AvQCjolI63P31QC+Aa4G9gL9RKSUZQZXpdY//5iE73XqwG+/QfXq\n", "7m5RqRAZGUpCwuhCAcRkKOrh0OukppphyptugsCavnAIMzw6Y4ZDr+MueVnVLlTcrGrO+n34+ECL\n", "FuY2aJC5Lz0dOnVazKZNT/AQUUwngqeYQRL+1PRJ4+abTf0OPz8zW+Dn50/TpnPpW8H6Ndy1wM9d\n", "LtcTng1MBT4vcN8IYKmIvGWxWF469/MIJ7VPKcd66y0IDTUbDt2957YUuXAPtFlp2sOhfzwzMqBv\n", "X5MT+cMPwZIcdckawN7IUT1YV/w+8lSpAnXq/A1AEv48yPkRiWbNVhEREWrzucpUkZM8lxuvBhoD\n", "fxb4eSdQ99z39YCdF3me8wfglSou3UTqlbKyRPr0McmTvGm1bHE5Y++qKziq3c5IJelKuGhOuK6I\n", "HD33/VGgbsk+BijlQp6071fZJDvbFD/q8/dkHv28G+XLu7c6kzO5sgfrSI5qt6OG471JiRZmiYhY\n", "LJaL7kMaP358/vfBwcEEBweX5HJKqTImNxeeeAK6bX6XJ3Km4VM33N1NcrpevW7z+KBrjSPa7TGp\n", "JG0Ut3QpcV9+Cbt3m5sdLrtP2GKxNAZ+kPMLs3YCwSJyxGKx1Ad+FpGWVp4nlzu3Uk61ZIlZtFOz\n", "prtbouwgAv/6FzRf9iHDsifhs3IFNGxYrHOUtUU+3s7anHBg4CgmT/aw0YCcHHjgAbNfumVLk7C8\n", "Z08sHToUe5+wPT3h74FHgDfPfV1oxzmUcq5ly8zyzZ9+0iDshUTgP/+BqxbPZFj2m3YH4DK3yMfL\n", "ec1wfLm9yTSZAAAgAElEQVRy8NhjMG0a1K5dolNdsidssVjmAEFALcz878vA/4C5QCMusUVJe8LK\n", "bdavNyVivv0WunZ1d2tUMYnA2jYRVN2zietz/8Tyy2qzJ6mY3JHFS5Uyhw6ZZfmBgTYdbk/GrEvu\n", "0RCR/iJypYhUFJGGIjJbRE6JSHcRaS4iodYCsFJus2sX3HUXzJypAdgL5eaaPCoV/o6ndfp6LJkZ\n", "8Oabdp2rLC7yUQ5y5AgMH27qJa5e7dRLacYsVXocP25SKb32mgnEymFcMbeamwtDhsDWrfBuB19Y\n", "RokScbh9kc+2baZbX6EClC9vvlaoYBLFlNMPAh7pxAmTS2DWLHj4YfM7rFfPqZfUIKxKj5o14eOP\n", "oXt3d7ekVHHF3GpOjlkF/fffZj1dhZySJ+JwSRavEyegWjWoXLnoY8OHm5KYZ8+afVZnz5rbpk1O\n", "/8Ou7HD2LNx6K4SFwebNcNVVLrmsVlFSygbeusrWUyryXEp2Ngx6WMg5+A+fLL7Saolkezm6Xizp\n", "6WZ4culSs/gvIQFiY80f75JIS4MRI0w2t+BgE9iV66WmWq/RbSN75oS1J6zUZXjrKltHtduZc6tZ\n", "WfBQf6HfplHcd+UayvnGAY5LqOLQPbcTJ8Ibb0CbNhASAlOmmOBb4SJJkIsjOxsaNID33oP+/c0w\n", "/H33mRW4jvxU4mYe/2HWHe91cVNs2XpD01aqUsJbU+k5qt3Oev0ZGSJ39c6R76+JlJy27USOHy/R\n", "+Zzu4EGRpCTnX+fMGZHoaJH77hN57DHnX89FHFWmscTOnhX57DNTo9HBsCNtpWawV94rOhoOHnT6\n", "Zbx1la0jK/IEBo4udJ+ZWw2xu23p6XDPXTkM3fYUveqsx2f5T1Crlt3nc4kGDeCKK5x/napVzRa7\n", "+fNLTXUouFSZxqWua8TmzWb04osvTE1MD6DD0co7bdxohupWrnT6pdy+ytZOnlqRJyUF+t4tjNv7\n", "OF0a7ccnOtZz5kDPnjXb2+6+G6680t2tMauqrTl50uuS0Lj1w2xmpplOmD7dTCk89pjH5JHXIKy8\n", "T2KimS/74AO49lqnX85VtXIdzZHtdtTc6u7dsOmWCKZViafZlWewzPnBMwKwCCxcaBZHNWpk5nw9\n", "1ZkzcN110K0bjBwJ13tHQQu3fZg9eNAseGve3KxM94QPVwXo6mjlXXJzzR7gpk3h/fdddlmHr7J1\n", "EU9qd3Q0PP44bPIP5srdK8yd4eEwd+6ln+hs//xjyjSdPAlvv23+YHu65GSTMvHdd+Gee2DChBKn\n", "T3Q2t+WFzskxK9h79HB679ee1dEahJV3mTgRFi+Gn392zKpU5XS5uebXNmMGzJsHHSfcCYsWmRXA\n", "S5favQ/YIdLToVUrMzw5erT3JdFITIRXXoGvvjI3D/8A4UkfCp1Bg7Aq/SZPNr0nDxtSUtYlJZk9\n", "wFUO7eG96GbUrw+cPl3iRBwOdeBAsYtDeJzt26FGDU0C4mYahJVSHmPHDhhwVwoz5QlubHQKn5+W\n", "esxiGFUKbd4Mzz9vpjdq1HBLExxewEEpbxcTs5KwsDEEB48nLGwMMTHOX02tYMECeKzTLpan3Uq7\n", "2/3w+TFaA7A77N1rhiNKs+xsM98REmLyPQcEuLtFxaKro1Wp5a2ZrrxZTg6MGwfHpn/HKstTVHjl\n", "dXjySXc3y1i2zJSl693b3S1xne++M1Woxo83v4eLbXnyVjt2wCOPmGmNDRu8clpBe8LKs2Vl2f1U\n", "dyQHOHXK/C3Yvdssts3x7K3EDhUbCwvrRNB/akc+Sh1IhXlzPCMAi5jKOA8/XKpSQNrkuefMIrhv\n", "voEbbzTVMUqLkydNnu0nnjCvywsDMGhPWHmyzZvhwQfN3r5KlYr9dGcmB8jJMYF282Zz27LFfE1K\n", "gmuuMVs5T50yP1evbqaoCt5q1zZ16jt1gmbN7Bup9ZQ8vBs3wosvwv79sLpePLW3/2YemD7d7GV1\n", "p8xMGDTIlGdat85r/1CXSNu2sHw5fP89PPss3HwzREW5u1UlV7Mm7NzpdcPPF9IgrDxTSopZBT1u\n", "nF0BGByfHGD1avjsM/OZYPt2sxC1XeuzBDfYTd+WW2nW+E/8o7/AsueEiay//0xOdX+SksxOklOn\n", "4Oy6jTSeMYpyq49xZH4t7iv/Df+k+9OxI3TsaILyzTdfvsPmCUPt+/bBmDFmlPfll02nt8LdvrCd\n", "EtUBdpi0NLOHtnp1k1nNWrnBssJiMVnAevY0BZtLCy8PwIAWcFAeKDdXZMAAkSefLNFprCeMH1ns\n", "hPFxcSK33y4SVW2w7L8mSE526ClJ+xLNg6+8ItKsmcg994i8/LJIq1bnLxYeXvRkH30kEhBw/piA\n", "AEl55F+y5N2t8u9/i3TsKOLrK9Kuncizz4rMny9y4kTR07izqMTJkyLPPy9ys98uie3+piQnF3gw\n", "MdG87sREu88fHb1CQkNHS1DQOAkNHW1/gv8//hCJiDAJ+5X3OnFC5PPP3d0Km2BHAQcNwsrzfPKJ\n", "CWapqSU+VXT0CgkLGyNBQeMkLGyMzX/Qc3NFfvpJ5LbbRNo0SZLokaslp2tQ0QCbm1v4iT17msfb\n", "t794IMo7pl07kUWLRCZNEtm+Pf/hjAyRNWtENt06WLYEdJUl5XpK19aJ8vzzIj/+KJKSIhIUNM5q\n", "EA4KGlf8N8lGZ86IvPWWSKsa/0hcqyGSE1BT5PXXHVqNxmMq7ZQ1OTkiM2aU6MOTw509KzJ1qkjt\n", "2iJDhxb9v+aBNAgr75eYKFKvnsiff7rl8rm5IrGxIl26iNza5Khs7jNKcmvWNN1SWwKsLT1BW3uL\n", "QUH5kSjtqmbyTf/vpE/nk1Ktmoi//16n94Szs0XWrRN57TUzEvBluYflaJVGklu+gsjTT9tVevBy\n", "vVxvLRvp9U6fFunf34zSPP20yLZt7mtLVpbIggUi110ncscdbvtbYA8Nwqp0sDb+6mS5uaZT2rGj\n", "yB2Be2VnyLOSGxAgMmSISEKCOcgBQ63Fkhf0W7YUGTNGJDRUpHp1yWndRt4Yt1b8/eNkOoPlZ4Ik\n", "hp5Sv8pv0q/fPpkzx/zdysoq/iUTEsyI+f33i9SoYQYkIiNFfvhBJOfqJkVHAorBll6uO3r4qoBD\n", "h8y0St26It27m7kYVxs3znwK/u47r+j9FmRPENaMWarMS0szuxw2bTLrwPp99yA+Vzcy2zvq13df\n", "w6yldzx71iysaduWmJiVNHz4YW5I3A/A1ubd+bt5OGtTWrH04LVsOVSTZs1MkR0/P7OiOyfH5DbI\n", "+77gfVv/FK5K2UFI2xM0Gngb3bqZErr57ixZzuewsDHExk60cv9YFi+eYPMxVh08CL//Dn37FqtN\n", "6iIyM03mKT8/UzDFlXJzwcc7d8/akzFLV0erMu3AAfN3++3kCILqxVPuc1+TCN8TVl36+xetMFSh\n", "gtlywrlV0B2ug0X7oX17ro/6L9f/3//R58RsJh7fjlxRmTMVW5G5JonMCleQU8mXFU9FkVPdn3Ll\n", "4IqTf9FuzouUyz2L/99/UDnpGJbyPljaPweDrKywjooqUc5nW7aM2VV+ce9esxXq6aeL3SZ1EZUq\n", "mX3VF7Nkidlnd911xd+9kJ4OP/xgVqx/8EHRx700ANtLg7Aqs9asgfvvNx3e26Pjsaw8V17vqafc\n", "X17PVhcGxk8+MfeLYPnnH6pv30714cNhm3ltD6+KOP/aEgOgwQMmsI/9C04ehGxgzx7r17L2oaAY\n", "bNkylre9aurUsQUq7Vyi1N3u3dC9O7zwgtkDq1xj8WIzGpKQAC1bmg+GbduaalQX1ocWMVujDh6E\n", "I0dMGcbbbjOZrry41+swxR2/tvWGzgkrW2RluWXeadYskZ7+a2T5zHPzvbYsuvJWxVmx7cTX76gt\n", "Y/l27RK58kqRjz92bEOV7VJTRX77TWTaNLMdLC3N+nE//yyyZYvIsWMOXU3vadA5YeV1XnzR5H/9\n", "/nuXJPjPzob/PC8EzPkvo3Nfpfy8r+H22z2vvJ4j2fLaXPT6HVZPNifHpGF87jl4/HHHN1QpO2gp\n", "Q+VdFi+GwYNN3sNatZx+uVOnYND9aQzfOYTgGpsp/78FEBjo9OsqJzl50qQuVMpDaClD5T0OHzbz\n", "R19+6ZIAvH073N/uL6Zv7cQdwbmUX/erBmBvpwFYlQLaE1aul5Njan8GBZk9QU7200/Qvz8svHMG\n", "nW7KNAt4tLatUsrBdIuS8g7798NVV5ns/062fj0c6hVBfMt4/I/5wsNRGoC9UXZ26auFqxTaE1al\n", "2O7dZifEnzWDqXVuiw7h4d6z/UgZp0+bkZMPP4RbbnF3a5S6KJ0TVuqcI0cgLAwmTIBajXzNnZ5Q\n", "Xk8VT0oK9OgBnTubGo9KlTLaE1alTnIyjGi7hLZhdRj837ale/tRaZaaapI8XHcd/Pe/Oo2gPJ5u\n", "UVJlXmYmvNRxJRN23Ee1n77H0qmju5uk7JGeDn36QMOGMGuWZlVSXkGHo5VnioqCd991+mVycmBc\n", "r995Zfv9+C6cowHYm+3dCy1awMyZGoBVqaY9YeVc27ebrUjLlkGbNk67jAi8PmAbT8/vRrWvplMx\n", "/G6nXcsVYmJWMmVKLJmZ5alUKZvIyFD7MksppVxGtygpz3LmDNx3H7z1llMDMMA7r6Ty+PyeVP5w\n", "UqkIwMOGLSlUSSghYTSABmKlShkd51HOIWJSUnbqZDJjOdEnn8B/P6uKz8/L8R08wKnXcoUpU2IL\n", "BWCAhITXmDp1qZtapJRyFu0JK+f45BNTmOHXX516mX09Imi5PJ4/O/hS7boop17LVWypu1uqnD5t\n", "pivuv9/dLVHK5bQnrJzj7rth4UKoUsVpl/jrLzj4Uzydzq6g2qpFZhtSKWBL3d1S49Qp6NbNFHdW\n", "qgzSIKyco1YtaNzYaafPyDDJr65sWvoScURGhhIYOLrQfYGBoxg6NMQp14uJWUlY2BiCg8cTFjaG\n", "mJiVTrlOESdOmADcrRtMmuSaayrlYXQ4WnmlqD5z6FG9EY2XRcFTpSsRR97iq6lTxxaou9vDKYuy\n", "3LYI7Ngx6N4deveG117TRByqzNItSsrrLJ74O7eM60mFNSuofmsrdzfHq4WFjSE2dqKV+8eyePEE\n", "51349ttNYu/x4zUAq1JDtygp95k/H/r2dXqlm91rjnPduPtIems6TTQAl5jbFoF98w3UqePcayjl\n", "BXROWJXc1KkwdqzJ9etEqUnZnAx9kBNhA2jy/L1OvVZZ4bZFYBqAlQI0CKuS+v57+L//gx9/BD8/\n", "p11GBFZ0GomvXwVu/N6xw6RuW5jkAVy9CEwpVZgORyv7bdgATzwBMTHQpIlDT31h2saWLQeRktqT\n", "qb+NxFLecUOlZT07ldMXgZ08CdHR8MgjjjmfUqWMLsxS9tm/Hzp2hA8+gHvuceiprQVGH59UPvxw\n", "O0OGOLamrNsWJpUFf/5p9ov362dGS3QBlirltIqSch0/P5gyxeEBGKynbczNrcrChd87/FplLjuV\n", "q3z7LdxxB0ycCG+8oQFYqYvQ4WhlHz8/U5zBCVwZGMtUdipXyM2FV16B2bNh8WK46SZ3t0gpj6Y9\n", "YeVx8gLjV/TnZ4KJ4U78OO2UwKgLkxwsNRW2boX16zUAK2UDnRNWHicmZiVfPvoNs0/MpDJZAPxY\n", "tSXyzfRCC4YcVXM3JmYlU6cuLbAwKaR45zlzBjZtMgvV/vgDnn8ebrih6HH//S8cPGjyaV9xBVx/\n", "PbRrBwEBxW6zUsrz2DMnrEFYXd7Zs2b+NzISKlRw+uUy9h0lKfBGjlaoxg0Ze9h1RX32zviYsAd6\n", "5R9jbfFWYOBoJk8Oc92q5kmT4OOPzSK11q1NQL3pJujTB+rWLXr8N99AQgKkpZnKQZs3m+C9YoV5\n", "rrcR0blepQrQIKwcLz3dVErw8YG5c6FyZedeLzeXXU16sKXKrdz/6/NYLpIX2iNWNW/caN6XVq2g\n", "QgX7euY5OSaQ+ViZGXr6aWjRwqR4bN3a+jHukJFhErQsWgQ//aSBWKlzNG2lcqyUFLjrLqhfHz77\n", "zCW94N1PvknikQzu2D8OS0B5E/itcMniLRGIizNznEOHFn28bdv8b+3eb1zuIu0VMbmV4+Jg2jRT\n", "cSgoyATkZ591T+ATMb35kSPNcPu0aRqAlSohD/lorTzOqVOmyk2zZvDFFy4JwCf3p5L15TdkzY6i\n", "Zt1Lfz506qrm3FyTCaxTJxgyxKbqTNa2VSUkvMbUqUvta4PFAv37w/TpsGsXbNliVqMfPeqewPf2\n", "23DVVfDOO2bl8//+Z3rpSqkS0Z6wsu7ll6FrV/PH1wV/9EUg4rmqNH7mDyY9dPnPhpGRoSQkjL5g\n", "TngUQ4f2KFlD5s6FCRNMIYpRo+Deey/eWy3A6T3zBg1gwICLP756NUREwI03Qps257/Wq1e861xs\n", "njckxOwJDwzU3q9SDqRBWFn37rum9+uiP7izZ8Pu3fDVV7YNzjgt3eL+/eaDR1hYsV672/cb33IL\n", "REWdX+z15pvm+z594NNPix6/apWZawfzOi0W2L7dZEGbMqXo8Tfe6NTmK1VW2b0wy2KxjAQGArnA\n", "n8BjIpJZ4HFdmFUG2bM4ac8e87f/55/Nrh1vZH219igmT3ZgHubiEjErsatWLfpYQgKsWWOOybs1\n", "aQIdOkClSq5vq1KlgMsWZlkslsbAYOBaEcm0WCzfAA8Cn9lzPlU62LM46exZGDgQxozx3gAMLiiE\n", "YA+LxXoABjOsHBjo2vYopYqwqydssVhqAL8CHYAU4DtgsogsK3CM9oS9QUbG+T3AJdx+VOxtQykp\n", "LL5/Ju/JcBYttrh2B86KFWa4vVMnF15UKVWauayAg4icAiYB+4HDwOmCAVh5iS1bzFzi2rWQmXn5\n", "4y+jWIuTRDh+3xCOr9rBp5+5MADn5pqKPg88YPZAK6WUG9k7HB0IDAcaA0nAPIvFMkBEvip43Pjx\n", "4/O/Dw4OJjg42N52KkfKzYX33jPVbd5+29R6dcACrOIsTsruEkzVNb8T2qYzdaucBi6/DajETp2C\n", "QYPM1/XroWFD519TKVVqxcXFERcXV6Jz2Dsc/QAQIiJPnvv5YaCDiDxT4BgdjvZEZ86YBBxZWfD5\n", "53DNNQ47tc2Lk7ZuJfuGtpSXc0E7PPyiSTkcZv16c5177zUrh12w71kpVba4MmPWTmCsxWKpAmQA\n", "3YF1dp5LuVLVqiYBxX332bT/tThsWpx05gxHg+7mGM1ozQ6TF/q+RwhzaEusOHnS5Hp2UvlFpZSy\n", "R0m2KL0IPILZovQH8KSInC3wuPaEVRFRkxez4bmNzJKnmU4ETzGDWoFvu7bwglJKOYEWcFCFHTsG\n", "deq4uxX5srOhdu19nD59dZHHXFp4QSmlnMBlq6OVh/vlF7j7blNWLyPD3a3JN3EigPXFWw4tvKCU\n", "Ul5Cg3BpkVd0oHNnswK4Rw+T+N/ZpQdttHo1fPQRtGkzz+rjDk3vuHgx/PCD486nlFJOormjS4sx\n", "YyA2Fl56yeaiAy4hwulTuQwcWI6PPwYfn04cPOiEwgt5li0zH0L+9z/HnE8ppZxI54S9zcWq3KSn\n", "m16vh1W4kY+mE/vOFn7o8SEffGDui4lZydSpSwusoA5xzKKsFSvg/vvh229NLV6llHIhXZhVGmVm\n", "moxWP/9sbj4+sHy5u1tlm02byOgaQnj91czd3IIqVZx4rTVroG9f+PpruOMOJ15IKaWs0yDsjS7W\n", "sz11ypTT27kTWraE2283ty5doHp117ezuJKTybrhJp499SqRa/o7tzhDejq0amUmncOcvuNYKaWs\n", "0iDsybKz4bXX4PhxcztxAg4dMl+PHy8aiHNy4PffoUUL8HdBSkdHEiGn34MsXBHAkXEf8cwzl39K\n", "iSUlgZ+fCy6klFLWuTJjlgIzVLx7tymGvmOH+Rofb4aPK1YsfGy5cmYFc/PmZgVz7dpQvz40amS9\n", "J1yuHNx6q2teh6OFhpId9yuN/Ttz70MuygutAVgp5YW0J1wSV18NVaqYodBrrz3/tU0bz1md7AaJ\n", "NwQR8OdK84Mr8kIrpZQH0J6wM5w4AeXLWx8S/uuvMh1srTlyBLbHV+UOgPbtYcYMdzdJKaU8libr\n", "sCY93fTe7roLmjaFlSutH6cBuJCsLLNDaP1zUaYHvHSpc+azp08325CUUsrL6XB0Qbt2wVtvwXff\n", "mZSPDz8M99zjHauRPcC//gWHD8OCBWYnlVPExcEDD5gtSYGBTrqIUkoVnw5Hl9TZs2ZO99VXoUED\n", "d7fGe0ydylfZD7B8eR3WrXNiAN63D/r3h6++0gCslCoVtCesSuajj0h/431an/mN6NX+tGzppOuk\n", "ppo90oMGwXPPOekiSillP90nrFxr2TJyHhpIcLnVvDC9KXfd5cRrPfGE2Wv96acel5pTKaVAg7Bt\n", "RGDWLPjtN5g5092t8V67diFduxJZdy417wtm/HgnXy8+3uyp9pCqUEopdSENwpeTkAAREZCcbALx\n", "DTe4u0XeKSkJ2rfnq4Yj+KbaEyxc6MR5YKWU8hIahC9GBCZPNlXlR4yA4cPN3l9VLDExK5kyJZas\n", "jHK02JtDdM4otm3z1WRVSimFro6+uG++gc8/N0PQTZu6uzVeKSZmJcOGLeHFhOM0J540fFndYDKr\n", "V3d2TBlCpZQqg8pGTzgnB9LSdL9vCYSFjSE2diI/E0wwKwD4hnBmh7Vg8eIJjr/gzz9DcLAuwlJK\n", "eQ17esJlYyavXDkNwJcQE7OSsLAxBAePJyxsDDExRTOEZWaaQZM0fAFYR3ueYgYZGU7IGvbVVzBk\n", "iMlcppRSpVjZGI5WF5U3zJyQ8Fr+fQkJowHMMHNODrz8MnVzTUB8iCimE8FTzCAJfypXznFsg3bv\n", "NnP2S5eCr69jz62UUh6m9PWEz56FxER3t8JrTJkSWygAAyQkvMbUqUvNvtxBg8j99TeOZQyjatVt\n", "JOHPg8wlCX8CA0cxdGiI4xqTkQH9+sErr8CNNzruvEop5aFKV084KwsefBCuuQbeecfdrfEKecPM\n", "FzqbBvTvT27KGR4OiKaqbxW+HLWKjz4aS0ZGOSpXzmHo0B6OXZT1wgsmHeXTTzvunEop5cFKTxDO\n", "yDAlfCpWhNdfd3drvEalStlF7qtIJhN3zkX8WvB4wEJOnKrE//4HlSt3pW/frs5pSFoaHDigGbGU\n", "UmVK6RiOTkuDu++GatXMdqSKFd3dIq8RGRlKYODowvfVvo+rm9UnosZ89h+txMKFLkhU5esLCxc6\n", "p/ShUkp5KO/fopSRAXfeCVddBZ98okk47BATs5KpU5fmDzM/+0x3Yn7owrad5Vi0CKpWdXcLlVLK\n", "85XNjFnZ2TBnDjz0kNmKpOwTEQHx8UgVX0Y0imLlFn9iY3Vnl1JK2apsBmHlGMHBsMIk4VgaEM7N\n", "f83VkWGllCoGTdahiic93axI/vtvpIrZk7u1Snvab5jh/AB8+DA884zJ662UUmWUBuGyavNmuPlm\n", "2L+flHL+DK4aRaxfOPW2LCWgiZMjcE4ODBgAdevqSmilVJnmfUE4OxuOH3d3K7xXbi5MmgTdu8NL\n", "L/Hn6K9pHxIA/v50OTyXWk1dMAY9caKpfTh69OWPVUqpUsz7lhKPGgVHjpiqSKp4RKBPH0hKQtau\n", "Y3ZcE168A959FwYNclEb4uLgo4/gjz90IZ1SqszzriA8fz7Mmwe//+7uljhdXu3ezMzyVKqUTWRk\n", "qP3Zqc6tfMbXF557jtRbbudfkeVZvx5WroRWrRzb9os6fhwGDjQJOerXd9FFlVLKc3lPEN6xw6Qz\n", "XLIEatZ0d2uc6rJFFYorPj5/5XNSbjU6HQihfXtYv97Fe4CrVYMPPoCwMBdeVCmlPJd3zAknJ8M9\n", "98Bbb0G7du5ujdNdsqiCLZKTTW8zb+XxuWpEJ5q0p936GTz/vHnY5Uk4qlSBvn1dfFGllPJc3tET\n", "XrwYbr8dHnus0N0OHbL1IBcrqnBh7d4LX/9L/Vpzx9bf4LPPIDTU5NKuVo2kaVHE3x7B0z4z+O5n\n", "f264wRWvQiml1OV4RxDu1w/Cwwvd5fAhWw9iragCUKh2b97rfzHhODexgSs5ROWlSSTc05fATZug\n", "USNOnIDJb8K0af707TuXn9/TDFhKKeVJvGM4GorsJy3xkO0FYmJWEhY2huDg8YSFjSEmZqXdTS0p\n", "a0UVLqzdm/f6mxPPTfxBfY6yXHryTGpTjlRsxAsvQPPmcPQorF0LM2e6IQCLQGqqiy+qlFLewzt6\n", "wlbYOmRrC1t71a4a/s4759SpY6mUnEHbjP0MDCxP062/wrnH8l5/Gma+dx3teYJPqLZ1F61amUXI\n", "mzdDw4YOb57t/vtfsyVp3jw3NkIppTyX1wZhW4ZsbXXxXvXY/IDo8OHvJ580K779/CAqqnAJvy1b\n", "6DVmGL127oSsLAgIgLDBcNv56+S9/oeIYjoRPMUMkvAnoEIW27dDvXrkt9st8+YbN8L48fDrr86/\n", "llJKeSsRccrNnNpOv/wi8vPPlzwkOnqFBAaOEjPmaW6BgSMlOnpFsS8XFDSu0HnybkFB4/KPCQ0d\n", "bfWYsLAxRU84eLBIUJBIz54iiYki+/aJ9OsnEhws0qqVSM2ahU8SHl74+cnJIhs2iHToYPWY7GyR\n", "SZP+kBo1lhQ6TePGrxZ6/dbfo1F2vUfFkpws0qyZSFSUc6+jlFIe5FzcK1as9LyecGoqPPwwTJ58\n", "ycMKDtnm1cEdOrSHXb08W3rV1oa/AzhFy3/2m5RTmzZBYiL88EOhfblERMDHH5stVnXqnL898ohZ\n", "9d2+PcyYUfjE1aubrVgBAQBI+/bseWEGsR/CsmVmhPeqq9rStetBDhz4Al/fA1Stms7QoSGFXr8t\n", "PXyHEzH7uYOCoH9/51xDKaVKCc8LwiNGQJcu0Lv3ZQ/t1es2hwSTyMhQEhJGFwpYZiFUj/yf8wL1\n", "dCJoyQ7a8zs5lGP//gD4q7oJOm3bmoPP7cvND7B+fvDgg4UvOmeOCdAzZhQais7Kgn37ICEBDtwe\n", "RdblSHMAABLgSURBVJvtETx2eAbJ9/oTEmIWiU+bljfcfBXw8EVflyPnzW0WFwdbt8KaNc67hlJK\n", "lRKeFYTj4uC77+DPP116WVt61XmBunlCPLexGoAfq7ZAvpzBdRd+EIiKshpgwXQUExNh3z5//npg\n", "LgkzTMDNux0+DA0aQGAgBAb6c/bFuXzXHZo1K37BIUfOm9vs9tvhl1/OfxBRSil1URZxUj1Xi8Ui\n", "xTr3mTNwww0wdSr06uWUNhXLoUPwySem2lDHjoBZ5FTn0ce5+UQCu66oz94ZHxP2QNG2JifD7t2w\n", "d+/52759578HaNLE3EywPX+7+mqoUMExL8HaYrLAwFFMnmzfsL1SSqmLs1gsiEixukueE4Q3bzY9\n", "yDffdEp7bJKdDYsWmTnc1avhgQfg3/823dA8p08X6eXu3286f6tXm6979kDTptC4cdHb1Vebp7mq\n", "jG5MzEqmTl1aoIcfogFYKaWcwLuDsLvt2AG33GKi49VXm0VTDRoUOSwnx0x55gXc1ashI8NMY3fu\n", "bL62bQsVK178UqU13aZSSpVl9gRhz5oTdqerr4ZrroEtW0yUfe45mDs3/+GTJ82CqA8/hCuuMME2\n", "JMRshS3OfG2pS7f5/vumKtK117q7JUop5XW8J22ls/n6nu/5Ftg2tGcPPPOMGV7+6y9YuhR27YJZ\n", "s0w9iebNize07Oh0m241d64JwqW8tKRSSjmLBuGCoqIgPByJXcov2/y55x6zJsvfH7ZvN+u0rr++\n", "ZJdwy7YhZ9i0yXw6WbjQ7HtWSilVbO4Lwikp8Pbb52veusqGDdCnD6SnF3kou5o/88Ln0rGnP4MG\n", "mYXRe/fCa69B/fqOubxbtg052vHjpi7whx/CjTe6uzVKKeW13BeER482i6FctUw4KwvGjYOePU0m\n", "p8qVCz28YQNcd50ZXX3xRZP06plnHF/43pYKSR4tN9dkDBkwwJSYVEopZTf3rI5ev970Rrdvhxo1\n", "nHL9Qo4eNePIOTmm57ZgQf72IhGzNXnCBNOxc0Vc8fptQ8uXQ3Aw+OhshlJK5fGOLUrZ2XDzzfD8\n", "86benrOlpprrpaWZjBlgenJz55KYCI8/DgcOwDffmGQZSimllD3sCcKu78pMnWpW0w4Y4JrrVa1q\n", "Vjq3amV+Prfy+bffzH7eRo3Mfl8NwEoppVzN9UF40yZT7N1Vc8FgNvWeW/mcu2Qp78z05667zPzv\n", "5MlQqZLrmqKUUkrlKVMZs06cgEcfNV+//tqkkXS0UpUNSwRefRXuuut8hSillFJWuTRjlsVi8Qdm\n", "AtcBAjwuIr/Zez6HEbHay169Gh56yFQUfO01xxVJKKhUZcMSgZEjTfrOZ591d2uUUqpUKslw9GTg\n", "RxG5FrgB2OGYJpXAgQNm1e7p04XujomBe+81aSffess5ARhKUTasvAC8ZAn89JNmxFJKKSexKwhb\n", "LBY/oKuIfAIgItkikuTQlhXX/v0mAN99d6EavitWmCHoH35wfoXEUpENq2AAXrZMA7BSSjmRvcPR\n", "TYDjFotlNtAG2AAME5G0Ikdu325WPjlz+fG+faaYfGQkDB+ef/eGDWY30vDhW3j55blOn6ctFdmw\n", "Nm0ywVcDsFJKOZ29Qbg80A54VkTWWyyW94ERwMsFDxr/8sumNu+ttxI8fDjBwcEla601AwfC/Pmm\n", "AtKjj+bfvXMn9O4NgwdvY/bsb1wyTxsZGUpCwuhC1zLZsHo49DpO1bYt/PYblNcCW0opdSlxcXHE\n", "xcWV6Bx2rY62WCz1gF9FpMm5n7sAI0Skd4FjRN5/3yT4X77ceVuSrr3WRFzIT8Kxdy/cdpvJghUV\n", "NYbY2IlFnhYWNpbFiyc4vDlenw1LKaWUXVy2OlpEjlgslgMWi6W5iMQD3YFtRQ6cMMFkwnDmnuAm\n", "TUwQPpeE48gRU+f3P/+BRx6B2bNdO0/bq9dtGnSVUkrZpCSro4cCX1ksls2Y1dGvFz1iKLRoYdfJ\n", "Y2JWEhY2huDg8YSFjSEmZqX1A88l4WDpUhLFn7AwM0IdGWkeLhXztM6Qnm7epJ9/dndLlFKqzLJ7\n", "4k9ENgM3X/KgESPsOnex9tv6+8PcuaSmQq8QuOMOeLnAzHSpmKd1tM2bTdrQ66/XUoRKKeVGHpkx\n", "KyysePO4mZmmKFODBjBrVtHiPjpPe05ursnT+frr8O67ZsjAlelDlVKqFHNpxixnuuh+23QfM8Q9\n", "eDDccANgqhMOGADVq5uF2Naq6+k87TmPPQa7d8PatWY1uVJKKbfyyCB8sXncfsfWwuqjJu3VOW++\n", "acoFL1umu2oua8wYs5BN3yillPIIHlmVPTIylMDA0YXuu7/BIJ44sg6+/RaqVAHg11/N6GpUlFZC\n", "skmzZhqAlVLKg3jkX+S8oeOpU8eSkVGOepYkZm9dTKUvPs8fRk1KMsPQH30EDRu6s7UeJCsLFiyA\n", "L780CUwqV3Z3i5RSSl2CRy7MKkQEQkOhQwez7/jcXf37Q40apjRxmffPPzB9OsyYAS1bmnnzPn20\n", "16uUUi5UahZmFWKxwP/9X6F6tp9+Clu3wvr17muWx3jlFXj/fVOjcelSuO46d7dIKaWUjTy7JxwR\n", "AfHx4OtrJn79/dm1Czp3hrg4s821VMvMNKuZN2yAq682VaIudPAg+PmZ5eFKKaXcxp6esEcuzMoX\n", "H29qES5aBBERZGaaYegJE7w0AOfkwJEjJllGfLz1Y775Bpo2hSuuMIH1nnvM609NtX78VVdpAFZK\n", "KS/l2cPRvr7m67m80CNHmg7hkCHubVax/PijyRx29CicOgUBAVC3rkmU8dJLRY/v1g3atYPatU0P\n", "V5NpKKVUqeWZw9GpqVC1Kpw+bYakZ8zgxzX+DBliyt3WqOHYttpFxNQxXrvW3Hx9YWLRLF8cOwaH\n", "D5vAW7u2LpZSSqlSyp7haM8Lwqmp0KYNfP89tGoFmMW/7drB119DUJCDG1pcBw7As8+awAtm1XaH\n", "DqZhHTu6t21KKaXcpnQE4eHDzbDt558DJt1xjx4mzr36qoMbaY/UVIiONg1q1EiHi5VSSgGlIQj/\n", "8ospS7h1a/6Y89tvw8KFZn2WS0dyc3PNQqoKFVx4UaWUUt7Ka1ZHW60VnJ4Ojz8OH3yQH4A3bTJB\n", "OCrKhQH4zBnThmuvhblzXXRRpZRSZZHLe8LWagUHBo7mx1sO0zwnzWzRwXRCO3Uy67KeeMIpTSws\n", "Lc2Md3/8Mdx+OwwbBl266HCzUkopm3hFT3jKlNhCARggIeE1Rh+pAR9+mH/fxx+bkeDHHnNBo06d\n", "gptuMouu/vjD5F3u2lUDsFJKKady+X6Zi9UKPp5bHWrVAsyW2rFjYfly6/WBHS4gwORevk1rDiul\n", "lHIdl/eEL1YruHLlnPzvn///9u4txqrqjuP49y/eay2pNRamNpCxmrbxQoxXWhkTKyg4rQ8qxrTz\n", "5C0GL4hpO9JCTRBiYsXQxNhgG9JgdYwpYpQqaCf6ogaDBS9YAUWxFktACiTcnNWHfcCRzOCcy569\n", "z/D9vMyZPfustZKdNb/stfda687sDvj00wepUREGsCRp0A16CPe1V3BraydTpvwEyO5+X34ZZswY\n", "7JZJkjS4Bn04et9ewYfdOIYR2zaz58gj2DzrQcZPvIhdu+Dmm2HevGzBrIbbtg2mTYOpU+G003Ko\n", "QJKkgStkitLEiRdx2ZFbOet/H3LOprWMf3IBAPfdl22H296eQ6WvvJJth9jTAy0tOVQgSVJ1ilms\n", "46OPoLUV9uzJNmdYupQ1m4Zz/vlf7NrXUE89Bddfn718deWVDS5ckqRmWjHr6qth9Gh4/3344x9J\n", "3xjOhAlwySVw110NbsjixVkAP/tsNg1JkqQc1BLCg7+lz9KlsHw5LFgAxxwDwBNd2UZDt9+eQ327\n", "d2drPRvAkqSSGdw74d27s3lH998PkyYBsHVrtllSVxeMHZtLUyRJyl35h6N7emDZMrj00v2Hbr01\n", "WzFy/vxcmiFJ0qAofwgf4PXXYeJEeOstOOGEXJohSdKgaIq1o/f5/HO46SaYM6eBAbxsGbz0UoMK\n", "kyQpX4WF8Pz52XtZHR0NKvDFF+Haa910QZLUNAoZjt66NVuwasmSbP2MunV3Z9OenngCxo1rQIGS\n", "JFWnnMPRc+dmc3R7ufdeuPzyBgXwG29kAdzVZQBLkppKvnfC69bBOed8aRmsfYfefBNGjKizkr17\n", "sylPM2bA5Mn1N1qSpBqV7+3o9nY47zzo7Nx//Kqr4MwzYfr0BlW0Zg2cckqDCpMkqTblC+FTT4WV\n", "K+Goo4Bsi8LrroPVq+HYY3OpVpKkQpTvmfC8efsDuKcH7rgDZs82gCVJgrxDeO5c+OwzABYuhGHD\n", "sllEkiQp7xBesgRuuIEdO7LHwg88AIfVU+PevdmYtiRJQ0C+z4QrewX/7sHhvPMOPPZYnYV2dmY7\n", "MD33nItySJJKpXwvZm3Zwsc7hnPGGdkspVGj6ijw6afhlluygk48sVHNlCSpIcoXwinR0QEjR2Yv\n", "ZNVs3Tq44AJYtCj7KUlSydQSwofn1RjIRo6ffx7efbeOQnbuzCYXd3YawJKkISXXF7OmToV77oHj\n", "j6+jkPXrYezYbONhSZKGkFyHo4877t8sXPge7e0X5VKHJEllUbrFOrZvH8HUqc/xzDPu8StJ0oFy\n", "30Vp7dpZzJu3NO9qJElqOvlvZQjs3DlsMKqRJKmpDEoIH3305wM/eccOmDUrW2xakqQhLNcpSgCt\n", "rZ1MmTJh4F+YPh02bapzfUtJksov1xAeP/43TJkygYkTB/h29KuvZmtbrlqVZ7MkSSqF3FfMGrDd\n", "u+Hss+Huu2Hy5FzaJElSXko3Rakqc+Zki0tfc03RLZEkaVCUI4RTgg8/hIcecnckSdIhozzD0ZIk\n", "NbHmHo6WJOkQYwhLklQQQ1iSpIIUF8IvvACrVxdWvSRJRasrhCNiWESsiIinq/ri9u3Q0QGbN9dT\n", "vSRJTa3eO+HbgLeB6l6Dnj0bLr4YLrywzuolSWpeNS9bGRHfAS4HZgFTB/zFtWvh4Ydh5cpaq5Yk\n", "aUio5074AeAuoLrtju68E6ZNg5Ej66hakqTmV9OdcERMAj5NKa2IiLb+zps5c+b+z21tbbS1tsL6\n", "9fD447VUK0lSaXR3d9Pd3V1XGTWtmBUR9wI/B/YCRwPHA0+mlH7R65y+V8zq6XGbQknSkFPLill1\n", "L1sZEeOAaSmlKw447rKVkqRDRpHLVpq2kiRVyQ0cJElqgHJu4LBlS7ZVoSRJ+pJ8QzglmDQJFi/O\n", "tRpJkppRviH86KOwaxdcccVXnytJ0iEm32fCLS3Q1eXylJKkIa98z4Tb2gxgSZL6ke+d8IYN0NKS\n", "S/mSJJVJIYt1HKQxTlGSJB0yyjccLUmS+mUIS5JUEENYkqSCGMKSJBXEEJYkqSCGsCRJBTGEJUkq\n", "iCEsSVJBDGFJkgpiCEuSVBBDWJKkghjCkiQVxBCWJKkghrAkSQUxhCVJKoghLElSQQxhSZIKYghL\n", "klQQQ1h96u7uLroJqpHXrrl5/Q4thrD65D+C5uW1a25ev0OLISxJUkEMYUmSChIppXwKjsinYEmS\n", "SiqlFNWcn1sIS5Kkg3M4WpKkghjCkiQVJJcQjogJEbE6It6LiF/mUYfyEREfRMTKiFgREa8V3R4d\n", "XET8KSI2RsSqXse+GRFLI+JfEfF8RAwvso3qXz/Xb2ZEbKj0wRURMaHINqpvEXFyRPwjIt6KiDcj\n", "4tbK8ar6X8NDOCKGAX8AJgA/AK6NiO83uh7lJgFtKaUxKaVzi26MvtKfyfpab78ClqaUTgVeqPyu\n", "curr+iXg95U+OCal9PcC2qWvtge4I6X0Q+B84JZK1lXV//K4Ez4XWJNS+iCltAd4DPhpDvUoP1W9\n", "3afipJReBrYccLgdWFD5vAD42aA2SgPWz/UD+2DppZT+k1J6o/J5O/AO0EKV/S+PEG4BPur1+4bK\n", "MTWHBCyLiOURcX3RjVFNTkopbax83gicVGRjVJMpEfHPiHjExwnlFxGjgDHAq1TZ//IIYec8Nbex\n", "KaUxwGVkwys/LrpBql3K5iDaJ5vLQ8Bo4CzgE+D+Ypujg4mI44AngdtSStt6/20g/S+PEP4YOLnX\n", "7yeT3Q2rCaSUPqn8/C/wN7LHC2ouGyPi2wARMQL4tOD2qAoppU9TBTAf+2BpRcQRZAH8l5TSosrh\n", "qvpfHiG8HPheRIyKiCOBa4DFOdSjBouIYyPi65XPXwMuBVYd/FsqocVAR+VzB7DoIOeqZCr/uPe5\n", "EvtgKUVEAI8Ab6eU5vb6U1X9L5cVsyLiMmAuMAx4JKU0u+GVqOEiYjTZ3S/A4cBCr125RcRfgXHA\n", "t8ieP/0WeAroAr4LfABcnVL6rKg2qn99XL8ZQBvZUHQC3gdu7PWMUSURET8CXgJW8sWQ86+B16ii\n", "/7lspSRJBXHFLEmSCmIIS5JUEENYkqSCGMKSJBXEEJYkqSCGsCRJBTGEJUkqiCEsSVJB/g/QBf7c\n", "eU1AMwAAAABJRU5ErkJggg==\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the true relationship vs. the prediction\n", "prstd, iv_l, iv_u = wls_prediction_std(res)\n", "\n", "fig, ax = plt.subplots(figsize=(8,6))\n", "\n", "ax.plot(x, y, 'o', label=\"data\")\n", "ax.plot(x, y_true, 'b-', label=\"True\")\n", "ax.plot(x, res.fittedvalues, 'r--.', label=\"OLS\")\n", "ax.plot(x, iv_u, 'r--')\n", "ax.plot(x, iv_l, 'r--')\n", "ax.legend(loc='best')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Time-Series Analysis" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from statsmodels.tsa.arima_process import arma_generate_sample" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# generate some data\n", "np.random.seed(12345)\n", "arparams = np.array([.75, -.25])\n", "maparams = np.array([.65, .35])" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# set parameters\n", "arparams = np.r_[1, -arparams]\n", "maparam = np.r_[1, maparams]\n", "nobs = 250\n", "y = arma_generate_sample(arparams, maparams, nobs)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# add some dates information\n", "dates = sm.tsa.datetools.dates_from_range('1980m1', length=nobs)\n", "y = pd.TimeSeries(y, index=dates)\n", "arma_mod = sm.tsa.ARMA(y, order=(2,2))\n", "arma_res = arma_mod.fit(trend='nc', disp=-1)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ARMA Model Results \n", "==============================================================================\n", "Dep. Variable: y No. Observations: 250\n", "Model: ARMA(2, 2) Log Likelihood -245.887\n", "Method: css-mle S.D. of innovations 0.645\n", "Date: Sun, 16 Nov 2014 AIC 501.773\n", "Time: 20:59:32 BIC 519.381\n", "Sample: 01-31-1980 HQIC 508.860\n", " - 10-31-2000 \n", "==============================================================================\n", " coef std err z P>|z| [95.0% Conf. Int.]\n", "------------------------------------------------------------------------------\n", "ar.L1.y 0.8411 0.403 2.089 0.038 0.052 1.630\n", "ar.L2.y -0.2693 0.247 -1.092 0.276 -0.753 0.214\n", "ma.L1.y 0.5352 0.412 1.299 0.195 -0.273 1.343\n", "ma.L2.y 0.0157 0.306 0.051 0.959 -0.585 0.616\n", " Roots \n", "=============================================================================\n", " Real Imaginary Modulus Frequency\n", "-----------------------------------------------------------------------------\n", "AR.1 1.5618 -1.1289j 1.9271 -0.0996\n", "AR.2 1.5618 +1.1289j 1.9271 0.0996\n", "MA.1 -1.9835 +0.0000j 1.9835 0.5000\n", "MA.2 -32.1812 +0.0000j 32.1812 0.5000\n", "-----------------------------------------------------------------------------\n" ] } ], "source": [ "print(arma_res.summary())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.9" } }, "nbformat": 4, "nbformat_minor": 0 }