{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tryout statsmodels\n", "\n", "* Here we expand on the example from " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/admin/anaconda/lib/python2.7/site-packages/statsmodels/compat/pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n", " from pandas.core import datetools\n" ] } ], "source": [ "import statsmodels.api as sm\n", "import pandas\n", "from patsy import dmatrices\n", "\n", "## added for nice plots inside our notebook\n", "\n", "%matplotlib inline\n", "import seaborn" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "df = sm.datasets.get_rdataset(\"Guerry\", \"HistData\").data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### First pandas style exploration of the data" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(86, 23)\n", "Index([u'dept', u'Region', u'Department', u'Crime_pers', u'Crime_prop',\n", " u'Literacy', u'Donations', u'Infants', u'Suicides', u'MainCity',\n", " u'Wealth', u'Commerce', u'Clergy', u'Crime_parents', u'Infanticide',\n", " u'Donation_clergy', u'Lottery', u'Desertion', u'Instruction',\n", " u'Prostitutes', u'Distance', u'Area', u'Pop1831'],\n", " dtype='object')\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
deptRegionDepartmentCrime_persCrime_propLiteracyDonationsInfantsSuicidesMainCity...Crime_parentsInfanticideDonation_clergyLotteryDesertionInstructionProstitutesDistanceAreaPop1831
01EAin288701589037509833120350392:Med...71606941554613218.3725762346.03
12NAisne26226552151890114572128312:Med...4823638822432765.9457369513.00
23CAllier2674779251310973170441141212:Med...46427666168534161.9277340298.26
34EBasses-Alpes12935728946273323018142381:Sm...7012378032292351.3996925155.90
45EHautes-Alpes17488817469696223076161711:Sm...222364793571320.2805549129.10
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " dept Region Department Crime_pers Crime_prop Literacy Donations \\\n", "0 1 E Ain 28870 15890 37 5098 \n", "1 2 N Aisne 26226 5521 51 8901 \n", "2 3 C Allier 26747 7925 13 10973 \n", "3 4 E Basses-Alpes 12935 7289 46 2733 \n", "4 5 E Hautes-Alpes 17488 8174 69 6962 \n", "\n", " Infants Suicides MainCity ... Crime_parents Infanticide \\\n", "0 33120 35039 2:Med ... 71 60 \n", "1 14572 12831 2:Med ... 4 82 \n", "2 17044 114121 2:Med ... 46 42 \n", "3 23018 14238 1:Sm ... 70 12 \n", "4 23076 16171 1:Sm ... 22 23 \n", "\n", " Donation_clergy Lottery Desertion Instruction Prostitutes Distance \\\n", "0 69 41 55 46 13 218.372 \n", "1 36 38 82 24 327 65.945 \n", "2 76 66 16 85 34 161.927 \n", "3 37 80 32 29 2 351.399 \n", "4 64 79 35 7 1 320.280 \n", "\n", " Area Pop1831 \n", "0 5762 346.03 \n", "1 7369 513.00 \n", "2 7340 298.26 \n", "3 6925 155.90 \n", "4 5549 129.10 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print df.shape\n", "print df.columns\n", "\n", "df.head()\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
deptCrime_persCrime_propLiteracyDonationsInfantsSuicidesWealthCommerceClergyCrime_parentsInfanticideDonation_clergyLotteryDesertionInstructionProstitutesDistanceAreaPop1831
count86.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.000000
mean46.88372119754.4069777843.05814039.2558147075.54651219049.90697736522.60465143.50000042.80232643.43023343.50000043.51162843.50000043.50000043.50000043.127907141.872093207.9531406146.988372378.628721
std30.4261577504.7030733051.35283917.3640515834.5952168820.23354631312.53264924.96998225.02837024.99954924.96998224.94829724.96998224.96998224.96998224.799809520.969318109.3208371398.246620148.777230
min1.0000002199.0000001368.00000012.0000001246.0000002660.0000003460.0000001.0000001.0000001.0000001.0000001.0000001.0000001.0000001.0000001.0000000.0000000.000000762.000000129.100000
25%24.25000014156.2500005933.00000025.0000003446.75000014299.75000015463.00000022.25000021.25000022.25000022.25000022.25000022.25000022.25000022.25000023.2500006.000000121.3830005400.750000283.005000
50%45.50000018748.5000007595.00000038.0000005020.00000017141.50000026743.50000043.50000042.50000043.50000043.50000043.50000043.50000043.50000043.50000041.50000033.000000200.6160006070.500000346.165000
75%66.75000025937.5000009182.25000051.7500009446.75000022682.25000044057.50000064.75000063.75000064.75000064.75000064.75000064.75000064.75000064.75000064.750000113.750000289.6705006816.500000444.407500
max200.00000037014.00000020235.00000074.00000037015.00000062486.000000163241.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.00000086.0000004744.000000539.21300010000.000000989.940000
\n", "
" ], "text/plain": [ " dept Crime_pers Crime_prop Literacy Donations \\\n", "count 86.000000 86.000000 86.000000 86.000000 86.000000 \n", "mean 46.883721 19754.406977 7843.058140 39.255814 7075.546512 \n", "std 30.426157 7504.703073 3051.352839 17.364051 5834.595216 \n", "min 1.000000 2199.000000 1368.000000 12.000000 1246.000000 \n", "25% 24.250000 14156.250000 5933.000000 25.000000 3446.750000 \n", "50% 45.500000 18748.500000 7595.000000 38.000000 5020.000000 \n", "75% 66.750000 25937.500000 9182.250000 51.750000 9446.750000 \n", "max 200.000000 37014.000000 20235.000000 74.000000 37015.000000 \n", "\n", " Infants Suicides Wealth Commerce Clergy \\\n", "count 86.000000 86.000000 86.000000 86.000000 86.000000 \n", "mean 19049.906977 36522.604651 43.500000 42.802326 43.430233 \n", "std 8820.233546 31312.532649 24.969982 25.028370 24.999549 \n", "min 2660.000000 3460.000000 1.000000 1.000000 1.000000 \n", "25% 14299.750000 15463.000000 22.250000 21.250000 22.250000 \n", "50% 17141.500000 26743.500000 43.500000 42.500000 43.500000 \n", "75% 22682.250000 44057.500000 64.750000 63.750000 64.750000 \n", "max 62486.000000 163241.000000 86.000000 86.000000 86.000000 \n", "\n", " Crime_parents Infanticide Donation_clergy Lottery Desertion \\\n", "count 86.000000 86.000000 86.000000 86.000000 86.000000 \n", "mean 43.500000 43.511628 43.500000 43.500000 43.500000 \n", "std 24.969982 24.948297 24.969982 24.969982 24.969982 \n", "min 1.000000 1.000000 1.000000 1.000000 1.000000 \n", "25% 22.250000 22.250000 22.250000 22.250000 22.250000 \n", "50% 43.500000 43.500000 43.500000 43.500000 43.500000 \n", "75% 64.750000 64.750000 64.750000 64.750000 64.750000 \n", "max 86.000000 86.000000 86.000000 86.000000 86.000000 \n", "\n", " Instruction Prostitutes Distance Area Pop1831 \n", "count 86.000000 86.000000 86.000000 86.000000 86.000000 \n", "mean 43.127907 141.872093 207.953140 6146.988372 378.628721 \n", "std 24.799809 520.969318 109.320837 1398.246620 148.777230 \n", "min 1.000000 0.000000 0.000000 762.000000 129.100000 \n", "25% 23.250000 6.000000 121.383000 5400.750000 283.005000 \n", "50% 41.500000 33.000000 200.616000 6070.500000 346.165000 \n", "75% 64.750000 113.750000 289.670500 6816.500000 444.407500 \n", "max 86.000000 4744.000000 539.213000 10000.000000 989.940000 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.describe()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# We select the variables of interest and look at the bottom 5 rows:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
DepartmentLotteryLiteracyWealthRegion
81Vienne402568W
82Haute-Vienne551367C
83Vosges146282E
84Yonne514730C
85Corse834937NaN
\n", "
" ], "text/plain": [ " Department Lottery Literacy Wealth Region\n", "81 Vienne 40 25 68 W\n", "82 Haute-Vienne 55 13 67 C\n", "83 Vosges 14 62 82 E\n", "84 Yonne 51 47 30 C\n", "85 Corse 83 49 37 NaN" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vars = ['Department', 'Lottery', 'Literacy', 'Wealth', 'Region']\n", "df = df[vars]\n", "df.tail() #df[-5:]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Analysis of missing values\n", "\n", "* use pandas" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Department 1.000000\n", "Lottery 1.000000\n", "Literacy 1.000000\n", "Wealth 1.000000\n", "Region 0.988372\n", "dtype: float64\n", "Number of rows with a missing value in Region: 1\n" ] } ], "source": [ "print df.notnull().mean()\n", "\n", "print \"Number of rows with a missing value in Region: \", df.Region.isnull().sum()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(85, 5)\n" ] } ], "source": [ "df=df.dropna()\n", "print df.shape # we lost one row" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Design matrices" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y, X = dmatrices('Lottery ~ Literacy + Wealth + Region', data=df, return_type='dataframe')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
InterceptRegion[T.E]Region[T.N]Region[T.S]Region[T.W]LiteracyWealth
01.01.00.00.00.037.073.0
11.00.01.00.00.051.022.0
21.00.00.00.00.013.061.0
31.01.00.00.00.046.076.0
41.01.00.00.00.069.083.0
\n", "
" ], "text/plain": [ " Intercept Region[T.E] Region[T.N] Region[T.S] Region[T.W] Literacy \\\n", "0 1.0 1.0 0.0 0.0 0.0 37.0 \n", "1 1.0 0.0 1.0 0.0 0.0 51.0 \n", "2 1.0 0.0 0.0 0.0 0.0 13.0 \n", "3 1.0 1.0 0.0 0.0 0.0 46.0 \n", "4 1.0 1.0 0.0 0.0 0.0 69.0 \n", "\n", " Wealth \n", "0 73.0 \n", "1 22.0 \n", "2 61.0 \n", "3 76.0 \n", "4 83.0 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.head()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Lottery
041.0
138.0
266.0
380.0
479.0
\n", "
" ], "text/plain": [ " Lottery\n", "0 41.0\n", "1 38.0\n", "2 66.0\n", "3 80.0\n", "4 79.0" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y.head()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " OLS Regression Results \n", "==============================================================================\n", "Dep. Variable: Lottery R-squared: 0.338\n", "Model: OLS Adj. R-squared: 0.287\n", "Method: Least Squares F-statistic: 6.636\n", "Date: Wed, 06 Dec 2017 Prob (F-statistic): 1.07e-05\n", "Time: 16:48:19 Log-Likelihood: -375.30\n", "No. Observations: 85 AIC: 764.6\n", "Df Residuals: 78 BIC: 781.7\n", "Df Model: 6 \n", "Covariance Type: nonrobust \n", "===============================================================================\n", " coef std err t P>|t| [0.025 0.975]\n", "-------------------------------------------------------------------------------\n", "Intercept 38.6517 9.456 4.087 0.000 19.826 57.478\n", "Region[T.E] -15.4278 9.727 -1.586 0.117 -34.793 3.938\n", "Region[T.N] -10.0170 9.260 -1.082 0.283 -28.453 8.419\n", "Region[T.S] -4.5483 7.279 -0.625 0.534 -19.039 9.943\n", "Region[T.W] -10.0913 7.196 -1.402 0.165 -24.418 4.235\n", "Literacy -0.1858 0.210 -0.886 0.378 -0.603 0.232\n", "Wealth 0.4515 0.103 4.390 0.000 0.247 0.656\n", "==============================================================================\n", "Omnibus: 3.049 Durbin-Watson: 1.785\n", "Prob(Omnibus): 0.218 Jarque-Bera (JB): 2.694\n", "Skew: -0.340 Prob(JB): 0.260\n", "Kurtosis: 2.454 Cond. No. 371.\n", "==============================================================================\n", "\n", "Warnings:\n", "[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.\n" ] } ], "source": [ "mod = sm.OLS(y, X) # Describe model\n", "res = mod.fit() # Fit model\n", "print res.summary() # Summarize model" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Intercept 38.651655\n", "Region[T.E] -15.427785\n", "Region[T.N] -10.016961\n", "Region[T.S] -4.548257\n", "Region[T.W] -10.091276\n", "Literacy -0.185819\n", "Wealth 0.451475\n", "dtype: float64\n", "0.337950869193\n" ] } ], "source": [ "print res.params\n", "print res.rsquared" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Diagnostics and specification tests" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(0.84723399761569096, 0.69979655436216437)\n" ] } ], "source": [ "print sm.stats.linear_rainbow(res)\n", "\n", "# What do these numbers mean\n", "sm.stats.linear_rainbow?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGVCAYAAADgyMuvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAMTQAADE0B0s6tTgAAIABJREFUeJzs3Xl8TPf+P/DXJBGkIiWJiYiLokqLIhFbxZIwk4RUFFXV\n0mrLpcvVW7fU1va2fr1dVNGrpaUtX10UbSUzJIRKUGsVVxFVxJKVSBBZ5vz+SHNIMplMZs7MOWfm\n9Xw87uNxzZnMfPKZk573fJbX0QiCIICIiIhIRTzkbgARERFRXbGAISIiItVhAUNERESqwwKGiIiI\nVIcFDBEREakOCxgiIiJSHRYwRG6koKAA165dk7sZZCN+fkS3sYAhUqj77rsP3bp1Q/fu3dGjRw+E\nhoZi/PjxOHDggM2vGRUVhfPnzwMAPvnkE7z00ktWt+XYsWPVHr9w4QLuu+8+dO/eXfxft27dEBUV\nhc8//9zmdjrb/v370a9fP8lfd8mSJbj//vvFvunRowciIiLwzjvvwGQyAQDGjx+PlStXWvV6d35+\nRO7OS+4GEFHN1qxZg06dOon//uKLL/Dss89i+/bt8PX1rfPrXb16Vfz/zz33nCRt1Gg0SElJgZ+f\nn/hYamoq/v73v6Njx47o3bu3JO/jSKGhoUhNTXXIaz/00ENYtmyZ+O+srCxMmDABDRo0wIsvvlin\n17rz8yNydxyBIVKwqkHZo0ePxvXr13Hu3DkA5QVOXFwcwsLC0Lt3b7z++uvic8ePH4+ZM2eif//+\nGDVqFOLi4gAAjz/+ODZu3IglS5Zg8uTJAIDi4mK8+eabGDp0KLp164ZBgwbhu+++s7md/fr1Q/v2\n7fH7778DAEwmEz799FNERUWhV69emDp1KjIzM8Xnb9u2DdHR0ejZsydeeOEFPP/881iyZInZ3wMA\nDh48iEcffRRhYWEYPnw4kpOTxdfas2cPHn74YYSFhSE6OhrLly8Xj3311VcYNGgQwsPDMWrUKOzY\nsQMAsHfvXnTr1k183i+//IJHH30UoaGhiI6OxrffflupXxcuXIhHHnkE3bt3x5gxY3DixAmr+6pZ\ns2YYMGAAjh8/Xu1YUVER3n77bfTv3x+9e/fGCy+8gMuXLwNAtc+PyO0JRKRIHTp0EI4ePSr+u7Cw\nUPjwww+Ffv36CUVFRcKhQ4eEnj17Cunp6YIgCMLx48eFrl27Crt37xYEQRAef/xxYciQIUJ+fr5Q\nUFAgvuaxY8cEQRCExYsXC88995wgCILwySefCGPGjBGuXbsmCIIgfPfdd0KXLl2EGzdumG1LhYyM\nDOG+++4Trly5Ij5WWloqbNmyRejSpYvwv//9TxAEQfj888+F6Oho4dy5c8KtW7eEd999VxgxYoQg\nCILw559/Cl26dBGSkpKEsrIy4fvvvxc6dOggLF682OzvcenSJaFbt25CQkKCYDKZhL179wphYWHC\n8ePHBUEQhIiICOGHH34QBEEQTpw4IfTo0UM4ceKEcPbsWaFz587CuXPnxN+xX79+gslkEn755Reh\nW7dugiAIQnp6utC5c2fhxx9/FMrKyoTDhw8LvXr1EhISEsT2RERECH/++adw8+ZNYdq0acKkSZPM\nfoZ39rEgCILJZBKOHz8uDB48WFi1apX4ep9//rkgCILwyiuvCGPHjhWysrKEoqIiYe7cucKwYcOE\n0tLSap8fkbvjFBKRgj3xxBPw9PQEAHh5eaFjx45YtmwZ6tevj06dOuGHH35AUFAQ8vLyUFBQAF9f\n30ojGwMHDkTjxo0rvaZg5vZnY8eOxahRo9CoUSNcunQJ9evXR3FxMfLz89GwYUOLbRQEAVFRUdBo\nNLh16xZKS0vRt29fLFu2DB07dgQAfPfdd5gyZQpatmwJAHjppZfwf//3fzh69Ch27tyJsLAwREZG\nAgDi4+PxzTffVHqPO3+PtWvX4sEHH0R0dDQAICwsDHq9Ht999x3mzJmD+vXrw2g0okmTJujZsyf2\n798PALh48SJMJhPWrl0LnU6H+Ph4PPLII9V+n4SEBPTo0QPDhg0DAHTp0gXjx4/H999/L75nbGws\nWrVqBQDQ6XT48MMPa+yf1NRU9OzZU+wrf39/DBs2DE888USl5xUXFyMxMRFffvklAgMDAQCvvfYa\nwsPDceTIETz44IPiaxAR18AQKdpXX31VaQ1MVcuWLcPmzZvRpEkTdOzYEYIgVLrANWvWzKr3KSgo\nwBtvvIFDhw6hRYsWuPfeewFAXGhqiUajQXJyMvz8/HDx4kW89NJLqFevHsLDw8XnXLx4EfPnz8eb\nb74JAGI7L1y4gMuXLyM4OLjSa7Zo0aLSv+/8PS5evIh9+/ZVKgpMJhN69eoFAFi1ahU++ugjvPba\na8jPz4der8ecOXMQHByMlStX4rPPPsNTTz0Fb29vPPnkk9XWAuXk5CAkJKTSYyEhIdi0aZP4b39/\nf/H/e3l5Weynfv36VVoDU5P8/HyUlpZW+t29vb0RGBiIixcvigUMEZVjAUOkYJa+ba9atQrHjh1D\nUlISGjVqBKB8weidNBqNVe8zd+5ctGzZEh9//DE8PDzw559/4ocffqhzO4ODg/Hf//4XcXFxePPN\nNzFv3jwAgFarxaxZsxARESH+zOnTp9GyZUucOXNGHCWpcOnSJdxzzz1mfw+tVovBgwdXGvXIzMyE\nt7c3iouLcebMGSxYsAAAcOLECUyfPh0rV67EY489hnr16mHZsmUoKytDWloapk2bhu7du1d67+Dg\nYOzdu7fSY+fOnUNAQIDV/WGLgIAAeHt748KFC9BqtQDK18RkZWVZXYgSuRMu4iVSqYKCAnh5ecHD\nwwNFRUVYunQpcnJyUFJSUuPP1KtXDwUFBWZfy9vbGxqNBrm5ufjPf/4DABZfq0LVIsvf3x9vvvkm\n1q5dK+7sGTlyJJYsWSJO46xZswYjR45Efn4+hg8fjgMHDmDbtm0wmUxISEjAoUOHany/mJgY7Nq1\nC9u2bYMgCEhPT8fo0aPx448/QqPRYPr06Vi9ejUEQUBgYCA8PDzQpEkTXLx4ERMnTsShQ4fg6emJ\nwMBAaDQa3H333dVe/9ChQ9i0aRPKyspw+PBhrFmzBvHx8bX2hT00Gg0efvhhfPDBB8jOzsbNmzfx\n9ttvQ6vViguMa/r8iNwRCxgihapt9GTixInw8fFBv379EBkZiXPnzmHAgAE4efJkjT8/evRoTJky\nBV999VWlx1977TXs3r0bPXr0wKhRo9CpUycEBQXh1KlTtbbF3LGBAwdixIgRmDNnDgoLC/H0009j\n0KBBeOKJJ9CzZ09s3LgRn376KQIDAxEcHIx3330XCxYsQK9evZCcnIwuXbrA29vb7OtXjBR98skn\n6NmzJyZNmoRRo0bhySefRL169bB06VJs3LgRoaGhGDZsGPr27YuxY8figQcewMyZMzFjxgx0794d\nL774IubOnYv27dtXe/1PPvkEX375JcLDw/HKK69g2rRpePjhh636XOrqztd79dVX0bFjR4wcORL9\n+/dHdnY2Pv/8c3EdVE2fH5E70ghcEUZEMrp06RIKCwsrFRIjR47Eo48+Km6bJiKqStYRmG3btiE+\nPh7R0dF46623AAAnT57EmDFjEB0djRdffBFFRUVyNpGIHCw7OxuPP/44zp49CwBISkpCenq6uCiX\niMgc2UZgzp8/j3HjxmHdunXw9/fHk08+iWeeeQYLFy7E7NmzERoaio8++gilpaWYPn26HE0kIidZ\ns2YNPvvsM+Tn56Nly5b4xz/+UWnBLxFRVbIVMCtXrkRWVhb+9a9/ASj/FlZSUoInnnhCTNW8dOkS\nxo8fXyllk4iIiEi2bdRnz56Ft7c3Jk2ahOzsbAwcOBADBgwQtw8C5dkPd4ZyEREREQEyFjBlZWVI\nTU3FmjVrcNddd2HKlClmEz89PLhRioiIiCqTrToICAhA79690aRJE3h7e2Pw4ME4e/YssrOzxedk\nZ2cjKCjIqtfjZioiIiL3IdsIzMCBAzFjxgwUFBTAx8cHqampGDRoEI4ePYr9+/cjNDQU69ats3oh\nX3kAVwFYx9hHowH8/X3ZlxJgX0qD/Sgd9qV02JfSqOhHW8hWwHTp0gXPPvssHnvsMZSWlqJPnz4Y\nOXIkunbtKoZfhYSE4L333rP6NQUBPJEkwr6UDvtSGuxH6bAvpcO+lI9LBdnl5LAStpdGAwQE+LIv\nJcC+lAb7UTrsS+mwL6VR0Y+24ApZIiIiUh0WMERERKQ6LGCIiIhIdVjAEBERkeqwgCEiIiLVYQFD\nREREqsMChoiIiFSHBQwRERGpDgsYIiIiUh0WMERERKQ6LGCIiIhIdVjAEBERkeqwgCEiIiLVYQFD\nREREqsMChoiIiFSHBQwRERGpDgsYIiIiUh0WMERERKQ6LGCIiIhIdVjAEBERkeqwgCEiIiLVYQFD\nREREqsMChoiIiFSHBQwRERGpDgsYIiIiUh0WMERERKQ6XnI3gIiISG7pGfnIvHID2iY+aBfiJ3dz\nyAosYIiIyG3l5hdhyfojOJtZID7WSuuLafGd4e/XQMaWUW04hURERG6ravECAGczC7Bk/RGZWkTW\nYgFDRERuKT0jv1rxUuFsZgHSM/Kd3CKqCxYwRETkljKv3LDrOMmLBQwREbklbRMfu46TvFjAEBGR\nW2oX4odWWl+zx1oF+XI3ksKxgCEiIrc1Lb5ztSKmldYX00Z0lqlFZC1uoyYiIrfl79cA8yaGMQdG\nhVjAEBGR22sX4sfCRWU4hURERESqwwKGiIiIVIcFDBEREakOCxgiIiJSHRYwREREpDosYIiIiEh1\nWMAQERGR6rCAISIiItVhAUNERESqwwKGiIiIVIcFDBEREakOCxgiIiJSHUUUMO+88w5mzpwJADh5\n8iTGjBmD6OhovPjiiygqKpK5dURERKQ0shcwu3fvxsaNG8V/z5gxA6+88goSExPRtm1bfPzxxzK2\njohI/dIz8pF25BJOZeTL3RQiyXjJ+eZXr17Fhx9+iMmTJ+P333/H5cuXUVhYiNDQUADAqFGjMH78\neEyfPl3OZhIRqVJufhGWrD+Cs5kF4mNtU9IxZfj9aNq4gYwtI7KfrAXMvHnzMH36dFy8eBEAkJmZ\nCa1WKx5v1qwZMjMzrX49jUbyJrqdij5kX9qPfSkN9qPtlmyoXLwAwOmMfCxefwTzJ4bJ1CrXwPNS\nGvb0n2wFzHfffYfg4GCEh4djw4YNAACTyVTteR4e1s9y+fv7StY+d8e+lA77Uhrsx7o5fiYPZy8X\nmD129nIBsgtK0LFNUye3yvXwvJSPbAWMwWBAdnY2du/ejfz8fNy4cQMeHh7Izs4Wn5OdnY2goCCr\nXzM3twCC4IjWug+NpvwPkn1pP/alNNiPtjlxJqfW44G+9ZzUGtfD81IaFf1oC9kKmM8//1z8/xs2\nbMDevXvx1ltvYfjw4di/fz9CQ0Oxbt06REREWP2aggCeSBJhX0qHfSkN9mPdaJv41Hqc/Wk/npfy\nkXUNjDnvv/8+5syZg8LCQoSEhOC9996Tu0lERKrTLsQPrbS+1dbAAEDrIF+0C/GToVVE0tEIguvU\njjk5HMqzl0YDBAT4si8lwL6UBvvRdmZ3IYX4cReSBHheSqOiH22huBEYIiKShr9fA8ybGIb0jHxk\nXrkBbVMf9H4whBddK4n91sSHI1YKxAKGiMjFtQvxQ7sQP275tZK5katWWl9Mi+8Mfz+OXCmF7Em8\nRERESlK1eAGAs5kFWLL+iEwtInNYwBAREf0lPSPf7MJnoLyISeftGBSDBQwREdFfMq/csOs4OQ/X\nwBAREf3FmvwcJXLHBccsYIiISBZKvOhays9ppcD8HHdecMwChoiInErpF91p8Z3Nt29EZxlbZZ6l\nBcfzXPyGnSxgiIjIqZR+0a2Wn6OgEaI7WbPgWIntlgoX8RIRkdOoaZdPuxA/9O3cXLFFgLsvOGYB\nQ0RETuPuF10pqXXBsVRYwBARkdO4+0VXShULjs1R4oJjqbGAISIip3H3i67UpsV3rtafSl1wLDUu\n4iUiIqdS0y4fpVPLgmNHYAFDRERO5c4XXUepuGGnO2EBQ0QuixdIZXPHiy5JhwUMEbkcpQelEZH9\nuIiXiFyOpaA0InINLGCIyKWoKSiNiGzHAoaIXAqD0ojcA9fAEJEklLJglkFpyvksiByJBQwR2UVp\nC2YrgtLMTSO5elCa0j4LIkfiFBIR2UWJC2ZdJZ00PSMfaUcuWb1uR4mfha3q+ruT++EIDBHZzJoF\ns3KMeKg9KM2WkRRrPov2LZXfBxxFImtxBIaIbKb0BbPtQvzQt3NzVRUvgG0jKUr/LKzlSqNI5Fgs\nYIjIZlwwKz1bt4G7wmfBLfBUFyxgiMhmvLOw9GwdSXGFz8JVRpHIOVjAEJFd6rJglgsza2fPSIra\nFy+7wigSOQ8X8RKRXaxZMMuFmdazZxu42hcvu/MWeKo7jsAQkSQsLZhV0sJMNYwC2TuSotbFy4D6\nR5HIeTgCQ0QOpZSt1moaBVL7SAqRM3AEhsgJ1PCt31GUsjBTSaNA1lLzSIqt1Pg5Ud3dvHkTW7YY\n8I9/PG/za3AEhsiBsq7cwBsr9+HsZeV/66+JvaMAci/MTM/Ix2+ncxUxCkSWKWW0jhzjypU8JCVt\nhsGQgJSUrbhx4zoA4KuvVtn0eixgiBzo7VV7KxUvwO1vk/MmhsnUKutINeUi18JMc+2vSeaVG7ww\nKoA1o3X8nNTl3LmzMBoTYDQmYvfuNJSVlQEAPD090bfvQ9Dpom1+bRYwRA5yKiMfp2uYMlLDt0lL\nQ/l1Lb6mxXc2Xww5cGGmtcULwO25SiH3aB3ZTxAEHD36GxITN8FoTMSxY7en/nx8fDBwYCR0umhE\nRQ1F06b+0Ghsfy8WMEQOkpmn3m+TUg/lO3tRqqX2V8XtucrBbdTqVFJSgt2708SRloyM8+KxgIBA\nDB2qh14fg4ceGoCGDRtK9r4sYIgcRNtUvd8mHTWU3y7EzykXIWsXBlszCsSdQM4lx2gd1V1hYQFS\nUrYiMXETkpO3ID//qnjsnnvaQq+PhV4fix49QuHp6emQNrCAIXKQ9iF+aBviZ3YaSenfJtU+lF9b\n+2J7t0KXtgEWPwM1bbt2JdxCrlyZmZnYvDkRRmMCfv55O4qLi8VjPXqEQq+PhU4Xg/bt74XGnrkh\nK7GAIXKgWRN64o0Ve6rvQlL4t0m1D+XX1v74iLa1voaUa4CUTKmFgrNG68iyU6dOwmDYBIMhAQcO\n7BMf9/b2xuDBUdDpYjB0qB5BQc2d3jYWMEQO1KyJD+ZPDMOp88q8SFii9qF8e9rvDtt5OcJE5phM\nJuzfvw9GYwIMhk04fTpdPNa4sR8iI4cgOjoWgwZFolEj8zcPdRYWMEROoMZvk2ofyren/e6wnddd\nRpiodkVFRdi5czsMhgRs3mxAdnaWeKxFixDodNHQ62PRu3df1KtXT8aWVsYChogsUmPxdSdb2q/2\nNUC1OeUGI0xkWUWonNGYiG3bksVQOQDo1OkB6PUx0Otj0LlzV6esZ7EFCxgioirUvgaoNmre4k+2\nqylUzsPDQwyV0+li0KpVa3kbaiUWMETktixNL6l9DZAlat7iT9arCJUzGBJgMCRUC5UbMGAw9PoY\nMVRObVjAEJHbsWYBq9rXAFnS3sVHmNxZSUkJ9uzZBYNhk1ND5eTAAoaI3E5dFrA6Yw2QHEWSK48w\nuZuKUDmDIQFJSZvNhsrpdDEIDQ1zWKicHFjAEJFbUdIWaTm3MrvyCJM7UFqonBxYwBCRW1HSFmln\nbGW+s0Bp37L676X2XWbupDxUrjyf5eDB/RAEAYAyQuXkIGsBs3LlSqxfvx4A0LlzZ7zxxhv4448/\nMGfOHBQUFKB9+/Z455130KABQ5WISBpK2SLt6JEgs6M7Qb6YO6kXPGx+VXImk8mEAwf2wWBIgNGY\ngPT0U+KxO0PlBg4cDF/fxjK2VB6yFTC//fYbNmzYgHXr1qF+/fr417/+hdWrV2Pjxo2YPXs2QkND\n8dFHH+Hjjz/G9OnT5WomEbkYpWyRdvRIkNnRncsFeHvVXswe38Pm1yXHqgiVMxoTYTQmVgqVCw5u\nAb0+BjpdDPr06aeoUDk5yFbA+Pn5Ye7cuahfvz4AoEOHDjhx4gQKCwsRGhoKABg1ahTGjx/PAoaI\nJKWEBayOHAmyNLpzOiMfpzLy0a4Fp42UwhVC5eQgWwHTqlUrtGrVCgCQm5uL1atXY+zYsTh37pz4\nnGbNmiEzM9Pq1+Tnar+KPmRf2o99KQ1H9GPA3Q0w/6kwnMrIR2beDWib+qC9k9eBtG/ph1ZBvpVu\n9FmhdZCv2fUq1qptdCfryg2n/75KIOXnbe95ef78OTGfpaZQOb1ePaFytrLn71r2RbwZGRmYPHky\nHn30UYSGhmL79u2Vjnt4WD9b6+8v742lXAn7UjrsS2k4oh8DAuT9bOZO6oW3V+3F6Yx88bG2IX6Y\nNaEnAuwYgenQpsTi8XtbB8j+uztT1pUbNfZzMzvXPFl7XgqCgMOHD2Pjxo344Ycf8Ouvv4rHfHx8\nMHToUDz88MOIiYmBv7/6QuXkIGsBc/z4cTz33HN47rnnMG7cOFy6dAlZWbfn+7KzsxEUFGT16+Xm\nFuCvRdlkI42m/A+SfWk/9qU0XLkfPQDMHt+j+shAWRlycsxPAVkj0LdejaM77UL80KxxPbteX23e\nWLmvWl+czsjHGyv2YL6Nu72sOS9vh8qVx/efP397hiEgIABDh5aPsvTvfztUThDgVp9NRT/aQrYC\nJi8vD8888wzmz5+PyMhIAEDz5s3RsGFD7N+/H6GhoVi3bh0iIiKsfk1BgMv9B04u7EvpsC+l4cr9\n2K6Fn7gmRarfcdoIM+t8gnwxc0JPCGVlLtuXVaVn5Jst5IDyRc2nztu326vqeVlYWIiUlGQYDAlI\nTt6Mq1etC5Vzl89DSrIVMF988QWuX7+OpUuXYsmSJdBoNIiIiMAHH3yA2bNno7CwECEhIXjvvffk\naiIRkWqZC6pr39IPAU183OobvjNyfzIzM7FliwEGwybs3LkDt27dEo/16BEKnS4Gen2sS4fKyUEj\nCK5T9+XkuN4Qs7NpNOXrAtiX9mNfSoP9KB137Mv0jHy8vfpAjcdnPd7DpgImPf0kfv45Gd9/vx77\n9++rFCrXr19/6PWxbhUqZ6uKc9IWsi/iJSLXxIh6UgKpcn9OnruCnbt249jBn7EnNclsqJxeH4NB\ngyLdMlRODixgiEhSct7fh8gcW3N/ioqKkGBMwuIV/4fTR9Nw68bt9SxBQcF45JF4DBgQhV69+sLb\n29th7SfzWMAQkaSccX8forqoy40rr169gqSkzTAYEqqFyvkGtEZQ254IaheOzl26YvGMwW41Hac0\nLGCISDJKutMzUVU13bjy/PlzMBrLtzrv2pVaKVSuacj9CGoXjqC24fDx04o/cy6zEMfP5CHQ173j\n/OXEAoaIJKOkOz0T1UQQBBw9egRGY3kS7tGjv4nHfHx8MGDAYOj1MWjc4kF8l3q5xte5mFOIQN8m\nzmgymcEChogko5Q7PRNVVREqVzHSYi5UTqerHCqXnpEPWChgggMaObzdVDMWMEQkGaXc6ZkIqAiV\n2wqDYVO1ULk2be6BXh8LvT62WqhcBUvnc+sgX3Rs09StMnWUhgUMEUlKCXd6JvdVESpnNCbg55+3\nVwqV6969h5iEe++9HawKlavxfI7n+Sw3FjBEVCNbslzqsuODSArp6af+urPzJhw4UDlUbtCgSLtC\n5Wo6nxmoKz8WMERUjRRZLjXt+CCyl8lkwoED+2A0JsJg2OSUUDmez8rDAoaIqrE3y4WjLyS1oqIi\npKbugMGQgM2bDcjKyhSPBQe3gE4XDb0+Fr17M1TOXbCAIaJK7MlyYQovSakiVM5oTMTWrUmVQuU6\ndrwfen0M9PoYdOnyIG+S6IZYwBBRJfZkuTCFl+yVkXFezGepGirXp08/6PUxGDo0Gq1bt5G5pSQ3\nFjBEEhOnT5r62HyXVTnZmuXiqim8nA5zLGtC5XS6aERF6eDv7y9jS0lpWMAQScTc9EnblHRMGX4/\nmjZWz/SJrVkurpbCy+kwxyktLcWePbtgMGwyGyo3ZIgeen1spVA5oqpYwBBJxNz0yemMfCxefwTz\nJqhr+sSWLBdXS+HldJi0KkLljMYEJCUZzYbK6XQxCAvraTZUjqgqFjBEErA4fXLZ+ukTpUxX2JLl\n4kopvK46HeZsWVlZ2LLFAINhkyShckR3YgFDJAF7p0+UOl1R1+wLV0nhdbXpMGeqKVSuXr16GDQo\nEjpdDHS6aJtC5YjuZHUBc/PmTZw7dw4eHh5o2bIlGjTgHDBRBXunT1xlukJpKby2tsPVpsMcyWQy\n4eDB/TAYEmA0JuDUqZPisfJQuSjo9bGShsoRAVYUMCdOnMDixYuxc+dO+Pr6orS0FEVFRejfvz+m\nTp2KDh06OKOdRIpW203fLF08XXG6Qu7UUntHtFxpOswRbofKJWLz5kSzoXI6XQz69OnHUDlyGIsF\nzLJly7Br1y6MGTMG77zzDu666y4AQEFBAXbu3Ik333wTvXv3xtSpU53SWCIlMzd90jbED1OG32/x\n5zhdIT0pRrRcZTpMKneGym3blozr1wvFYwyVIzlYLGD+9re/YfLkydUe9/X1RXR0NKKjo5GYmOiw\nxhGpSbXpk6Y+6P1gCHJyCvDXMgCzOF0hLalGtJQ2HWYNqdtaW6hcxUgLQ+VIDhYLmD59+tR47PDh\nw+jatSuio6MlbxSRmlVMn1j7JZTTFdKSekRL7ukwa0i1CFwQBBw7dlTMZzly5LB4rGHDhhg4MJKh\ncqQYFguY0aNH4+OPP0a7du0qPb5mzRq89957OHTokEMbR+QuOF0hHXcc0bJnyqwiVK5ipIWhcqQW\nFguYl19+GRMmTMD8+fMRGRmJ4uJizJkzB2lpafj000+d1UYil6fG6QqlcrcRLVumzAoLC7FtG0Pl\nSN0sFjBDhw5Fy5YtMW3aNPz6669IS0uDj48PNmzYgMDAQGe1kchtqGG6Qg3caUTL2imzilC5rVuN\nSE5OrhYBmJfjAAAgAElEQVQqp9PFQK+PZagcqYZGECwtLyyXmJiI6dOnQ6vV4ocffsDdd9/tjLbV\nWW2LJal2Gg0QEODLvpQA+9Iya0eb7OlHdxjRSs/Ix9urD5g9VnjlAjr5XsC+3Vuxf//eSqFyDz0U\nwVA5O/DvWxoV/WiLWnNglixZgq+++gqLFi1CWloaxowZg6VLl1ZbF0NEZA1npg67w4jWnVNmgmDC\n1UuncPn0XmSe/gWFeRnY/tfzKkLlxowZhbCwvmjUiKFypG4WC5hJkyYhMzMT3377LVq1aoWhQ4di\n7dq1GDduHObPnw+9Xu+sdpIE3OHbKCmfq6QOy8Hc33BRURE6N81EyvdrcPrYLty6fkV8vlbbHDEx\nsWKoXP363hw1IJdhsYDx8/PD4sWLK608Hzt2LNq3b4+XXnqJBYxKKPU+O+R+XDF12Bmq/g0XFxXC\nlHcMnlePInVnSqVQuVZt7sXAwTqMGzOSoXLk0iwWMO+//77Zx0NDQ7Fu3TqHNIikx2+8pBRMHbbN\nkvVH8PupP3D59C/IPL0XuRnHIJgYKkfuzea7UQcFBUnZDnIQfuMlZ7M0VekKGS3OmoqtCJX7v2/X\n49v1G3At6w/xmIeXN5q1CUVQu3AsmPE0QjuzaCH3Y3MBQ+rAb7zkLNZMVao5o8UZU7F3hsoZjYk4\nd+6seMy7YWNo7wmDtl04Av/WFZ716gMAboHTwOSeWMC4OFf4xkvqYO1UpVozWhw1FXv9+nWkpGyF\nwbAJycmbceXK7UW4rVu3Qe+HonC2uDWaNO8AjUf1UDml/g1z0wA5GgsYF6fmb7ykHnWZqlRj6rDU\nU7EVoXJGYwJ27EgxGyqn08WgQ4f7oNFo8PrKfar5G+amAXIWiwXMfffdZ3EFuyAI0Gg0OH78uOQN\nI+mo9Ruvkqnp4usod/aBLVOVaspokWIq9vTpUzAYEmEwbKoWKjdw4GDo9bEYOlSP5s2Dq/2smv6G\nuWmAnMViAfP77787qx3kQGr8xqtU/HZpvg+Cmrr2VKUtU7EmkwkHD+6H0VhetJw6dVI85uvbGFFR\nQ6DTxWDw4Cj4+loOlVPL3zA3DZAzcQrJjajpG69S8dul+T64nHcD3l4eKC41VXu+Eqc56sraqdhb\nt24hNXUHEhMTsHlzIrKyMsXnNW8eDL0+RgyV8/b2tqkdSu5LbhogZ2IBQ2Qlfru03AfFpaZq00lK\nneawRU3TOOMHtcS6dd/AaEzE1q1JlULlOna8H3p9NPT6WLcIleOmAXImFjBEVuK3y9r7ILZPK7GI\nUeo0h63unMY5+ns6fv81Ffs2bUW/11JRWloKoDxUrnfvvuJIi7uFynHTADmTVQXMyZMnce+99zq6\nLUSKxm+X1vWB0qc5bFERKmc0JsBgSMCRI4fFYw0bNkRUlA56fQyionTw9/eXsaXyU9OCY1I3qwqY\nyZMnIzg4GI899hiGDBkCLy8O3JD74bdL9+qD0tJS/PLLbhgMm6qFyvn7+2Po0PLo/v79B8DHx/WL\nV2upZcExqZ9GEGq/J6nJZEJKSgq+/vprnDhxAo888gjGjBkDrVbrjDZajXdYtZ9GA96t1oK67EJy\n1b509k4sZ/ZjRaic0ZiApCRjtVA5vT4Wen0swsJ6wtOzeqic0rnqOSkH9qU0KvrRpp+1poC50759\n+/Dqq68iMzMTUVFReOWVVxAcXD23QA48keznCn+UzvjmZ817uEJfWuKsb9iO7sfs7Gxs2WKAwbAJ\nP/+8HUVFReKxbt26Q6+PrRQqp2aufk46E/tSGvYUMFbNBZWVlSEpKQnffPMNTp06hZEjR+KRRx7B\n9u3bMW3aNKxfv96mNyeSkjNHBlxxnUddqbkPaguVK0/CjTYbKkdEymBVAdO/f3+0aNECjz32GKKj\no8X8gvHjx2P16tUObSCRtZjRQjUxmUw4dOgADIYEGI0JOHnyhHjszlC5QYMi0bixOosyIndjVQEz\nceJETJo0yeyxzZs3S9ogIlswo4WqqgiVMxgSsXlzIjIzL4vHmjcPhk5Xns9ia6gcEcnLqgJm/fr1\nNRYwjmIwGLB06VKUlJRg+PDhmDp1qlPfn9SFGS0EAPn5V5GcvAUGQ4KZULlOYj5L167dVL+ehcjd\nWVXA3H///Vi/fj169OiBBg1uryVw1C6knJwcvPvuu1i/fj18fX0xadIkpKWloW/fvg55P1I/pWe0\ncEup41y4kAGjMQGJiQnYvbt6qFzFepY2be6RuaVEJCWrCpiffvoJP/30U6XHHHkX6rS0NPTq1Qt3\n3303ACAuLg6JiYksYKhGSs0nybpyA2+s3Iezl9335o9SEwQB//vfMTGf5bfffhWPMVSOyH1YVcA4\n+67UmZmZlUZ3tFotLl++bOEniJSZAPr2qr2VihdAuoXF7jSqU1pairS0nTAYypNwq4bKDRmih14f\ny1A5IjdiVQFjMpmwatUqnDx5ErNnz8batWvx9NNPw8PDwyGNMhdNY817cUrbfhV9qMa+DLi7AeY/\nFYZTGfnIzLsBbVMftJfxwp5+IR+nM/LNHjubWYD0C/k2tS83vwiL1x+pPKoT5IvnXWxU5/r169i+\nfRsMhk1IStqMvLw88Vjr1m0QHV2ez9KzZ7gqQ+XkoOa/b6VhX0rDnv6zqoB5//33kZGRgZMnT8Jk\nMiE5ORm5ubl49dVXbX9nC7RaLfbt2yf+OysrC0FBQbX+nL+/bWE4VJ2a+9LWUCSpHT5zxeLxGyUm\nm9r6768OVB/VuVyA//54DB/+Y0CdX09JsrKy8NNPP2Hjxo1ITk6uFCoXFhaGhx9+GHFxcejUqRMX\n4dpBzX/fSsO+lI9VBUxqaiq+//57PPLII2jcuDG++OILjBgxwmEFTJ8+fbB48WLk5eXB19cXP/74\nI8aOHVvrz+XmMhHRXhpN+R+kI/tSKSMkjnaXt+VRQ596HsjJMb/1uyanMmoe1TmdkY/dv2aork9P\nn04Xp4b27fulWqicXh+Dxx4bjQYNGovnZG5uoYVXpJo44+/bXbAvpVHRj7awqoDx8vKqdAPHBg0a\nOPSGjs2aNcOMGTPw5JNPoqSkBJGRkYiMjKz15wQBPJEk4oi+dPY9dOTWroUf2ob4mS04WgX5ol0L\nvzr3cWZeLdvF826gXQtlFzAVoXJGY3kSbtVQucjIKOj1sWKoHCPbpcf/VkqHfSkfq6qQFi1aYMuW\nLdBoNCgsLMSKFSvwt7/9zaENGzp0KIYOHerQ9yDncsek3FkTeuKNFXuq70KycWGx0reL1+TWrVtI\nS/sZiYkJNYbK6XQx6Nv3IYbKEZFVrCpg5syZgxkzZuD3339HWFgYunfvjvfff9/RbSMX4q5Juc2a\n+GD+xDCcOi/NjiGlbhc3585QuW3bklFYeLvN7hoq5047x4gczaoC5vr161i5ciVu3ryJsrIyNGrU\nCEeOHLFqYS0RwKRcKW98KPd2cUsX4YpQOYMhEbt27WSo3F/cbfqUyBksFjBZWVkQBAHPP/88Pvvs\nMwiCAI1Gg2vXrmH69OlISkpyVjtJ5dQ69aFE/n4NMG9imNO/zZu7CP+tWSM8oL2FnTs24+CeFJz4\n/Yh4rGHDhoiMHIro6FhERg5FQECAw9uoVO44fUrkaBYLmFmzZiE1NRVA+R2pxR/y8kJUVJRjW0Yu\nRU1TH2oh5aiONSouwiZTGa5cOI7Lp3/BttN7cSM/U3xOg7v8EK2LRtzw4YiIGMhQObjv9CmRo1ks\nYFasWAEA+Oc//4n33nvPKQ0i1yX31AfZ7sipS9iTmoTM078g84/9KCm6/Rn6+AUhqF04tG17omnw\nfWje/G7o9eZHFdxxDYgSpk/Ffm/qo5icJCJ7WZ3EW9WkSZPEAofIGnJNfZBtsrOzsWWLAUZjAlJS\ntqG4+JZ4zE/bHkHteiKobTga+bestAjX3KiCo9aAqOFcknP61Fy/t01Jx5Th96NpY669qUoN5xPd\nZrGAmTlzJjIzM3H48GE89dRT4uOlpaW4cOGCwxtHrsnZUx9kvT/+SIfBUJ7PcmeonJdXPQS2ehDa\nduHQ3tMTDX0t3ySx6qiC1GtA1LQo1pbpU6kupOb6/XRGPhavP4J5E7j2poKazie6zWIB89hjj+HU\nqVM4c+YMhg0bJj7u6emJbt26ObxxRORYJpMJv/56EAZDAozGBJw4cfvGrRWhcjpdDAYPjsLC70/W\nuJajqjtHFRyxBkRti2KtnT6V8kJqsd8vc+3NndR2PlE5iwVM586d0blzZ4SFhaFly5a4desWysrK\nuDCPSMVsDZUzdxE2p+qogtRrQNS4KNba6VMpL6RKWHujBmo8n6icVWtgfHx8MHHiRPzyS/mQ8oMP\nPogPP/wQWq3W0e0jIglUhMoZjYnYujWpWqicThcNvT7WYqhc1YtwA29PbNp1ttZRBanXgKj5wmxp\n+lTqCymjC6yj5vPJ3VlVwPz73/9G165dsWjRIpSVlWHVqlV44403sHTpUke3j4hsZClUrlevPtDr\nY20KlbvzItyjQ7NaRxWk3kLvqhdmqS+klvq9NaMLRK56PrkDqwqY06dPY+HCheK///GPfyA6Otph\njSKSijvtKhAEAceP/w8GwyYYDAn47bdfxWMVoXJ6fQyionSShspZsyhbyi30rpop5IgLqbl+bxvi\nhynD76/za7kqVz2f3IFVBUxZWRlKS0vFO1AXFxfDw8PDoQ0j9VFSseAuuwpKS0uxd++ev4qWRJw7\n96d4zN/fH0OG6KHTxcgeKif1FnpXzBRyxIW0Wr839UHvB0N4Z+8qXPF8cgcaQaj9NF6wYAH+/PNP\njB07FgCwdu1atG7dGjNnznR4A+uCf5T202iAgADfOvWlEouF11fuM38h0Po6bVeBLX1pjevXr2P7\n9m0wGhOQlGREXl6eeKx16zbQ6WIQHR2LsLBweHp6SvfGMrHUj0oqmqVQ29+Svb+vo85JV1GX/mVf\nSqOiH236WWsKmLKyMvz3v//Fzz//DJPJhP79+2PKlCmoV6+eTW/qKDyR7GfLH6USioU7pWfk4+3V\nB2o8PuvxHk652En5H7g7Q+V27EhBUVGReKxbt+5/3SQxBvfd19Hl7uzsjheKqhdSqb4kuGNfOgr7\nUhr2FDBWTSF5enpi2rRpmDZtmvhYamoq+vXrZ9ObkutQ4hZEV9lVUFOoXL169TBgwCBxEW7z5sEy\nt5SkVnVdEXNKiKqzqoAx54UXXsDBgwelbAupkBKLhdoWO5aUVr81hhLUJVSucWPlF2AkDSV+SSBS\nApsLGCtmnsgNKHELoqXFkADw5eYT2PHrRUUs6K0IlTMYEmE0JlQLlRs6VA+9PrZaqBy5DyV+SSBS\nApsLGFebZyfbKHULYm2psXIOv1sTKqfTxaBr127c7UeK/JJApAQ2FzBEFZS4BbFi++j2Qxfw5eYT\nZp/jzOH38lC5RBgMCZKGypHrU+qXBCK5WSxg7r//frMjLYIgwGRS5joCcj6pMz6kVM/L8giGo4bf\nK0LlduxIwvffb8Dhw4fEY44MlSPXpMQvCURys1jAbNmyxVntIBdgTSKrszlz+P12qFwCDIaESqFy\nTZs2xZAh5etZ5A6VI/VR8pcEIrlYLGCuXLmCBx54wOILHD16tNbnEMnF0cPvlkPlWiM+Ph4REVEI\nCwsXk6zJ8eS+0Dvq/ZX4JYFILhb/i/r1118DAMaNG4eOHTtWOnb8+HF8+eWXAMqTeomUSurh95yc\nHGzZYoDBsKlaqNyDD3b7az1LDDp27IjAwMYMunIiuVOh5X5/IndSaxJvcnIyFi1ahGvXriEkJARl\nZWXIyMhAkyZN8MILLyAqKspZba0VLxT2c+V0SXu+Ff/xx2kxn2Xfvl/ENWBeXl7o16//X0m40QgO\nbiH+jCv3pTPVpR/lToWW+/1rw3NSOuxLaTg0iTcyMhKRkZE4ffo00tPT4eHhgXvuuQdt27a16Q2J\n5FKX4feKULnynUObKoXKNWrki8jIKOj1sdVC5e4sktq3dJ2pCzWQO/BN7vcncjdWT8rfddddaNCg\nAfr164fs7GxHtolIFneGym3enIjLly+Jx4KCmov5LH37PoT69etX+lmzUwdBvpg7qReckeTCqQv5\nA9/kfn9X587FOZlnVQHz888/Y9asWfD29sbatWuh0+mwaNEiREREOLp9RA517Vr+X6FyCUhOrhwq\nd999HaHXx1gVKmf2XjWXC/D2qr2YPb6Hw9pv8f3d7F45cge+yf3+rorFOdXEqgJmyZIl+OabbzB1\n6lRotVp8+eWXmDNnDgsYUqWLFy+I61l27UpFSUkJgNuhchXrWe65x7ppUktTB6cz8nEqIx/tWnDq\nwtHkDnyT+/1dFYtzqolVBUxpaSlatLi9OLFLly4OaxCR1CpC5YzG8nyWO0PlGjRogMGDy9ez2Boq\nV+vUQd4NhxYwnLq4Te7AN7nf39WwOCdLrCpg6tWrh7y8PDGV98SJE/D09HRow4jscWeonNGYgLNn\n/xSPVYTK6XQxiIgYiLvuusuu96p16qAppy6cRe7AN7nf39WwOCdLrCpg/v73v2P8+PHIycnB1KlT\nsXfvXma/kOLcuHED27dvg8GwqVqoXKtWraHXx0Kvj5E8VM7S1EG7ED+0D/Fz6DZLTl1UJ3fgm9zv\n7ypYnJMlVv1XPCIiAm3atEFqaipMJhOmT5/ObdSkCBWhckZjArZv31YtVE6ni4FeH4v77uvo0Duo\nm506CPLFzAk9gbIyh72vxffn1AWpHItzsqTWIDs1YaCQ/dQQzvTHH6fFfBZrQ+WcpWoOjLP70hWn\nLtRwTqqFGvtSqbuQ1NiXSuTQIDsiud0ZKmc0JuD334+LxyyFyslB7qkDud+fSGpcV0Q1YQFDilRc\nXIzU1J9hMCTUOVSOiFwPi3OqigUMKUZtoXLl61lqD5WTk9y3EiAichcsYEhWFy9eENezSBEqJxe5\nbyVAysLpDiLHYwFDTnVnqJzRmIBff5U2VE4uct9KgJRBqQtOiVwRCxhyuNLSUuzb9wsSEzc5PFRO\nDnLfSoCUg7H3RM7DAoYcoiJUzmhMwJYthmqhcjpdDKKjYyUPlZODXLcS4DSFsjD2nsi51H3lIEXJ\nyclBUpIRBsMm7NiRgps3b4rHnBkq52zOvpUApymUibH3RM7FAobsUhEqZzQmYO/ePZVC5SIiBkKv\nj5UtVM5ZnH0rAU5TKBNj74mciwUM1YnJZMLhw4fEmySaC5XT6WIweHAU/PzulrGlzuWsWwlwmkK5\nGHtP5FwsYKhWFaFy5TuHqofKDR0aDb3evUPlzKWFtm/ph4AmPsjJMV9w2ILTFMrGe1IROQ8LGDKr\nPFQuCQbDJmzdmoyCgmviMbWEysnB0WmhnKZQNsbeEzkPCxgSXbx4AZs3J2Lr1s1ISUkRQ+U0Gg3C\nw3uL61mUHirnyjhNoQ6MvSdyPBYwbkwQBPz++3EYDJtqDJXT6WIQFaVDYGCgjC2lO3GagohIxgIm\nIyMDs2fPxpUrV+Dp6YkZM2agV69eAIAPPvgASUlJAIAZM2Zg4MCBcjXT5ZSVlWHv3j0wGBJgMGwy\nGyo3Zswj6NatF3x81Bcq5w4cOU3BqQ9SI5637km2AubNN99EfHw8hg8fjtOnT+OJJ55Aamoqtm7d\nimPHjiExMRE5OTkYO3YsQkND4evrK1dTVe/GjRvYsSMFBsMmJCUZkZubKx6rGipXr54XAgJ8kZNT\nIOnWX5KelNMUzJYhNeJ5695kK2Di4uIwePBgAECbNm1QUlKC69evIyUlBcOGDYNGo0FgYCDCw8Ox\nbds2xMXFydVUVbodKpeAHTu2VQqV69q1G/T6GOh0MejYsZNLhcqRbZgtIw+OHNiH5617k62AiY6O\nFv//ihUr0KlTJzRq1AiZmZnQarXiscDAQGRmZsrRRNWpLVSu4s7OLVqEyNxSUhJmyzgfRw7sx/OW\nHF7AGI1GLFiwQPyWLwgCmjdvjq+//hoA8Omnn2LdunVYvXq1eLwqa0cI3G0g4c5QOYPBfKicXl+3\nULmKPnS3vnQEtfSlNdky7VvKdyFQSz/WxZINNYwcbDiC+Q4cOXClvpT7vHWlvpSTPf3n8AJGp9NB\np9OZPTZ//nwcPnwYa9euhb+/PwBAq9UiOztbfE52djbatrVu266/v+uvkykuLsb27duxceNG/Pjj\nj7hw4YJ4LDg4GMOHD8fDDz+MAQMG2BUq5w596SyO6svjZ/JwMacQwQGN0LFNU5tfp0ObklqOByAg\nQP7zwVXOyeNn8nD2cg0jB5cLkF1QYtfnaQ1X6EulnLeu0JdqJdsU0kcffYT09HSsWbMGPj63w7cG\nDBiAb775BjExMbhy5Qr27NmD6dOnW/WaubmuufD02rV8bN2aBIMhAcnJSZVC5Tp0uA96fSz0+mg8\n+GB3MVSuoKAYBQXFdX4vjab8D9JV+9KZHNWXuflFWLz+SKWLYKsgXzxv4/RDoG89tAryNXtRbR3k\ni0DfepKmCdeVq52TJ87k1Ho80LeeQ97blfpS7vPWlfpSThX9aAtZCpgbN25gxYoV0Gq1GDduHARB\ngEajwbJlyzBkyBAcPXoUcXFxMJlMePnll8XRmdoIAlzmRLp48YK4niUtbWe1ULnyJNxo3HNPu0o/\nJ9Xv70p9KTdr+9LaBZ2Lvzcz/XC5AIu/t33h4rQR5rNlpo7orJjzwFXOSWvSlB39e7pKXyrhvHWV\nvlQjjWBu0YlKqXnrb0WonNFYns9SNVRuwIBBTgmV02jAbdQSsbYv67KgMz0jH2+vPlDja816vIdd\nCxeVuCvGFc/J11fuqzFNed4Ex66BcbW+BOQ5b121L52toh9twSReGZWVlWHfvl+QmFiehPvnn2fE\nY02bNkVUlA56fSwiIgbirrsYKueq6rIV1NE3c2QEvnMwTVlaPG/dEwsYJ6sIlTMaE7Bli6FSqNzf\n/tYaev3tUDkvL348rq6uW0F5M0fXwJs+EtmPV0gnqC1UTqeLhl4fy1A5N1TXERXezNG1cOSAyHYs\nYBzkzJk/YDQmwmDYxFA5qpEtIyruOv1wKiMfmXkcrSCicixgJCIIwl+hcptgNCbi+PH/iccaNfLF\n4MF1D5Uj57A0jC/lEL+517JlRMXdph9y84vw768O4HRGvvgYU2uJiAWMHYqLi5GWthNGYwKMxkRc\nunRRPKbVBolbnfv27W9XqBw5hqXdP0D1xbW2XjRz84uqbX2+87VsHVFxl+mHqpk3AO93Q0TcRl1n\nFaFyRqP5ULnyoiWmUqicmrjK1kBrRidq3MqqLd/SV9Mxay+aFX057d1tZsO2qr6Wu4yo1IWjt427\nG1f5+1YC9qU0uI3awS5duiiuZ6lLqBw5n7WZKrXt/qlJXW8SZzE2vsprucuISl04ets4EakXCxgz\nBEHAiRO//7WeJQGHDh0UjzVo0ACDBkVCr491eKgc1Z21mSq1XRgtqctF82JOoU2vxdGYctw2TkQ1\nYQHzl4pQufI7O29iqJwK1SVTxZ4LX11+NjigUZ1eqy6pvO6gXYhfjfe78fbyQBNfri0jclduXcBY\nEyqn18egZ89eDJVTgbpMN9S2+wdCDWtg6pi10rFN0xovwOZeqy6pvO7i+fjOmLV8D4pLTJUeLy41\nuXW/ELk7t7sq5+bmIinJiMTETQyVczF1nW6obfePVFkrz8d3Nr8Lqcpr1TWV19nkmtbKK7hVrXip\noIR+ISJ5uEUBUxEqZzQm4JdfdlcKlevffyD0eobKuYK6ZqrUlqciVdaKtbktSl2wKve0VmaeMvuF\niOTlkgVMRahc+Z2dExgq50ZsyVSxtPtHyp1Btb2WUhesyj2tpW2qzH4hInm5TAFTXFyMlJStMBgY\nKufO1JxSq8T7HClhWqt9iB/ahvhVSuKtwPs/EbkvlylgmjVrhvz82/+Bc4VQObKdWjNVlHafI6VM\na82a0BNvrNhTaTG0O9z/iYhq5jIFTGFhIXr27AW9PpahcqRaShtBUsq0VrMmPpg/MQynziujX4hI\nfi5TwBQXFyMv7zojncklKGUEyRHTWvYUZ0rpFyKSn8sUMJwiInIMqaa15N7NRESuxWUKGCJyDKmm\nteTezUREroUFDBFZxZ7pGyXsZiIi18J5FyJyOGt2MxER1QULGCJyOKXsZiIi18EChogcrmI3kzkM\noyMiW7CAIdVKz8hH2pFLSDeT0ErKMy2+c7UihmF0RGQrLuIl1eF2XHVSWkgfEakbR2BIdSxtxyXl\naxfih76dm7N4ISK7sIAhVbFmOy4REbk+FjCkKtyOS0REAAsYUhluxyUiIoAFDKkMt+MSERHAAoZU\niNtxiYiI26hJdbgdl4iIWMCQatlzc0EiIlI3TiERERGR6rCAISIiItVhAUNERESqwzUwRETkcFx0\nT1JjAUNERA7Dm6+So3AKiYiIHIY3XyVHYQFDREQOwZuvkiOxgCG7pWfkI+3IJf7HiIgq4c1XyZG4\nBoZsxrltIrKEN18lR+IIDNmMc9tEZAlvvkqOxAKGbMK5bSL3Zu3UMW++So7CKSQHcuXcA2vmtl3t\ndyaiuk8d8+ar5CgsYBzAHdaGcG6bSJ2On8nDiTM5NhcSlqaO500Mq/HnePNVkhoLGAew9Q9cTSrm\nts1NI3Fuu2b8Fkpyyc0vwpINR3D2su1frKyZOuZ5Tc4i+xqYy5cvIzw8HBcvXhQf++CDD6DX66HX\n65GSkiJj6+rOndaGcG7bern5RXh95T68vfoAPks4jrdXH8DrK/chN79I7qaRm1iyvnLxAtR90T23\nRZOSyDoCIwgCZs+ejZKSEvGx5ORkHDt2DImJicjJycHYsWMRGhoKX1/zK9mVxp3WhnBu23ruMCpH\nyiXVyAmnjklJZB2BWb58Ofr27YsmTZqIj6WkpGDYsGHQaDQIDAxEeHg4tm3bJmMr68Yd/8Dbhfih\nb+fmLF5qcMqNRuVImaQaOeG2aFIS2QqYo0ePYu/evZg4cSIEQRAfz8zMhFarFf8dGBiIzMxMOZpo\nE8pAH+4AABBwSURBVP6BU1WZeRx2J3lJ+cWKU8ekFA6fQjIajViwYAE0Go34WJMmTeDt7Y1FixZV\ne/6dxUyFO3/WEiuf5nDPj+yMxVXmm1sF+eL5+M6KaWNNKtqn9HaqQUUfBvnXcvFo6sP+toDnpP3a\nt/RDqyDfamtgAKB1kC/at7T+i1XA3Q0w/6kwnMrIR2beDWib+qC9G34x43kpDXv6TyOYqxgcLC0t\nDXPnzkXjxo0hCALS09PRunVrLFq0CJ999hl69eqF4cOHAwBee+019OrVC8OGDXN2M+12/EweLuYU\nIjigETq2aSp3c0hGLy3cjtNmporahfhh4T8GOL9B5HayrtzA26v2VjoP24b4YdaEnmjmglPb5Ppk\nKWCqGjRoENasWYPmzZtjy5Yt+Oabb/Dpp5/iypUrGDNmDL799lv4+/vX+jq5uQWQ/7dRN40G8Pf3\nZV9K4M6+zLlaVOOonKtkAzkKz0npaDRA1rUSnPwzB82auOfIiVR4Xkqjoh9toYgcGI1GI04dDRky\nBMeOHUNcXBxMJhNefvllq4oXABAE8ESSCPtSOoIANG3cAPMmmN+xxX62Ds9JaXRs0xSBvvXYnxJh\nP8pHESMwUsnJYSVsL40GCAjwZV9KgH0pDfajdNiX0mFfSqOiH20he5AdERERUV2xgCEiIiLVUcQa\nGJIHE3SJiEitWMC4IUt3yw64mztiiIhI+TiF5IYs3ZeHiIhIDVjAuJnabup2ivflISIiFWAB42Zq\nvalbLfftISIiUgIWMG6m1pu6NWWkOBERKR8LGDdT292yGS1ORERqwALGDU2L71ytiGml9cW0EZ1l\nahEREVHdcBu1G/L3a4B5E83fl4eIiEgNWMC4sXYhfixciIhIlTiFRERERKrDAoaIiIhUhwUMERER\nqQ4LGCIiIlIdFjBERESkOixgiIiISHVYwBAREZHqsIAhIiIi1WEBQ0RERKrDAoaIiIhUhwUMERER\nqQ4LGCIiIlIdFjBERESkOixgiIiISHVYwBAREZHqsIAhIiIi1WEBQ0RERKrDAoaIiIhUhwUMERER\nqQ4LGCIiIlIdFjBERESkOixgiIiISHVYwBAREZHqsIAhIiIi1WEBQ0RERKrDAoaIiIhUhwUMERER\nqQ4LGCIiIlIdFjBERESkOixgiIiISHVYwBAREZHqsIAhIiIi1WEBQ0RERKrDAoaIiIhUhwUMERER\nqQ4LGCIiIlId2QqYwsJC/POf/8TDDz+M+Ph4/O9//xOPffDBB9Dr9dDr9UhJSZGriURERKRQshUw\n/+///T+0aNECGzduxPTp0zFv3jwAQHJyMo4dO4bExER8+eWXeOutt1BQUCBXM4mIiEiBvOR64y1b\ntmDbtm0AgH79+iEoKAgAkJKSgmHDhkGj0SAwMBDh4eHYtm0b4uLi5GoqERERKYwsIzA5OTnw9vbG\nmjVrMGLECDz55JMoKysDAGRmZkKr1YrPDQwMRGZmphzNJCIiIoVy+AiM0WjEggULoNFoxMc8PT2R\nm5uLRo0aYcOGDdi1axemTp2K5ORkCIJQ7TXu/FlLrHwaWVDRh+xL+7EvpcF+lA77UjrsS2nY038O\nL2B0Oh10Ol2lx4qLi9G9e3dER0cDAPr06YObN28iLy8PWq0W2dnZ4nOzs7PRtm1bq97L399Xuoa7\nOfaldNiX0mA/Sod9KR32pXxkmULy9vZG3759kZiYCAD47bff0KBBAzRt2hQDBgzADz/8gLKyMuTk\n5GDPnj3o06ePHM0kIiIihdII5uZsnCA7Oxtz585FRkYGvLy88Prrr6NLly4AgIULF2Lr1q0wmUyY\nNm2aOFJDREREBMhYwBARERHZikm8REREpDosYIiIiEh1WMAQERGR6rCAISIiItVRfQHDm0JK6/Ll\nywgPD8fFixfFx9iPdZORkYEJEyYgLi4O8fHx2LNnj3iMfVl3BoMBsbGxGDp0KJYuXSp3c1Rl5cqV\nGDZsGIYNG4ZZs2ahtLQUJ0+exJgxYxAdHY0XX3wRRUVFcjdTVd555x3MnDkTANiXNtq2bRvi4+MR\nHR2Nt956C4CNfSmo3GuvvSZ88MEHgiAIws6dO4VHHnlEEARBSEpKEp566inBZDIJWVlZwuDBg4Vr\n167J2VTFM5lMwtNPPy1069ZNuHDhgiAI7EdbPPvss8IPP/wgCIIgpKenC3369BFMJhP70gbZ2dnC\nwIEDhStXrgilpaXChAkThNTUVLmbpQqHDx8Whg0bJhQVFQmCIAgzZswQVq5cKcTFxQn79u0TBEEQ\nFi1aJLz//vtyNlNVdu3aJfTq1Ut49dVXBUEQ2Jc2OHfunPDQQw8JmZmZQmlpqTBu3Dhh+/btNvWl\n6kdgtmzZgmeeeQZA+U0hFyxYAKDmm0JSzZYvX46+ffuiSZMm4mPsx7qLi4vD0KFDAQBt2rRBSUkJ\nrl+/zr60QVpaGnr16oW7774bnp6eiIuLEwMwyTI/Pz/MnTsX9evXBwB06NABJ06cQGFhIUJDQwEA\no0aNYn9a6erVq/jwww8xefJkAOWj1ezLuktOTkZMTAyaNWsGT09PLFy4EO3bt7epL1VdwPCmkNI5\nevQo9u7di4kTJ1a6HxX7se6io6PFi8aKFSvQqVMnNGrUiH1pg6p9ptVqcfnyZRlbpB6tWrUSLwi5\nublYvXo17rnnnkr92axZM56DVpo3bx6mT5+Oxo0bA6h+brIvrXP27FmUlZVh0qRJiIuLw5o1a5CV\nlWVTXzr8XkhSceZNIV2ZuX5s0qQJvL29sWjRomrPZz/WrGpfCoKA5s2b4+uvvwYAfPrpp1i3bh1W\nr14tHq+KfWmZuT7z8FD19y6ny8jIwOTJk/Hoo48iNDQU27dvr3Sc/Vm77777DsHBwQgPD8eGDRsA\nACaTqdrz2Je1KysrQ2pqKtasWYO77roLU6ZMQcOGDas9z5q+VE0B48ybQroyc/2YlpaGuXPnYsqU\nKRAEAVlZWXj22WexaNEi9qMF5vqywvz583H48GGsXbsW/v7+AMC+tIFWq8W+ffvEf2dlZSEoKEjG\nFqnL8ePH8dxzz+G5557DuHHjcOnSJWRlZYnHs7Oz2Z9WMBgMyM7Oxu7du5Gfn48bN27Aw8Oj2t8z\n+7J2AQEB6N27t7hUYfDgwTh69KhNfanqcpE3hZRG3759sXXrVmzYsAEbN25Es2bNsHz5crRt25b9\naIOPPvoI6enpWLNmjVi8AGBf2qBPnz7Ys2cP8vLyUFJSgh9//BERERFyN0sV8vLy8Mwzz2Du3LkY\nN24cAKB58+Zo2LAh9u/fDwBYt24d+9MKn3/+OX766Sds3LgRL7zwAgYNGoS33noLDRo0YF/W0cCB\nA5GWloaCggJxNKZ79+429aVqRmBq8u9//xtz587F119/DS8vLyxcuBAAMGTIEBw7dgxxcXEwmUx4\n+eWXK11MqGYajUYcumc/1s2NGzewYsUKaLVajBs3DoIgQKPRYNmyZRgyZAiOHj3KvqyDZs2aYcaM\nGXjyySdRUlKCyMhIREZGyt0sVfjiiy9w/fp1LF26FEuWLIFGo0FERAQ++OADzJ49G4WFhQgJCcF7\n770nd1NV6/3338ecOXPYl3XQpUsXPPvss3jsscdQWlqKPn36YOTIkejatWud+5I3cyQiIiLVUfUU\nEhEREbknFjBERESkOixgiIiISHVYwBAREZHqsIAhIiIi1WEBQ0RERKrDAoaIbDZ79mwcOXIEkydP\nxvLly8XHCwoK8MADD+Cll16q9PzIyEjs3r3b5vcbNGgQDh48CACYO3cufv31VwDA+PHj8dNPP9X6\n8xcuXMCgQYOqPV5WVoZx48Zh7ty5lR5fuXIlRo8ejeLiYixfvhybNm2yue1EJC0WMERkk+TkZABA\n586dMWDAAOzdu1c8tn37dvTr1w+7du1CSUkJAOD8+fO4evUqwsLCJHn/1NRUs/ejqY25+095enri\nww8/xPbt27Fx40YAwI4dO/Dll1/i448/hre3NyZOnIjly5cjNzfX7rYTkf1YwBBRjXbs2IExY8Yg\nPj4eo0ePxs8//yweW7RokRhRHxERgYMHD4p3g9+6dStGjBiBtm3bYs+ePQCAXbt2oV+/fvDy8kJJ\nSQneffddxMfHY8SIEXjxxRfFwuD8+fN4+umnMXbsWAwePBgTJkzA1atXK7XrP//5D7KysjBz5kyx\ncNqxYwdGjx6NyMhI/P3vf8fNmzfr9LsGBgZi4cKFeOutt7B161bMmjULixYtQkBAAADAy8sLMTEx\n+PTTT23oSSKSGgsYov/f3v2ENP3HcRx/+icPY6BROMEUahTYIdKFYqC4lsTIS3iIDp7WRQ2MQstB\noCeHFDJERAz7c9FDTIpEIvsWWAztpsLwoDAxmOZpCpqNrcPo+0t+OzQz/I3f63H8fj/7fD/fw8Zr\n7+/ny1tSWllZobe3l8HBQQKBAH19fXi9XiKRCEtLS0SjUcrKyoBkj53i4mLm5+f5/v07s7Oz1NTU\n4HQ6effuHZAMME6nE4DHjx+zu7tLIBBgfHyciooKvF4vkOyD4na7GR0dZWpqiuzsbLMq8lNHRweF\nhYX4fD4qKysBiEajjI2N8ebNGyKRiNkjLR0Oh4Pm5mZaW1u5desW586d23P+0qVLTE5Opj2viBy8\njO+FJCJ/x8ePH9nY2MDj8Zi9sfLy8lhcXGRnZ4cTJ07sGV9bW8vMzAybm5ucPXsWi8WCy+Xi5s2b\nJBIJPn/+THd3NwCGYRCNRs1O0/F4nG/fvgFw+/ZtgsEgIyMjhMNhlpeXcTgcKdf4aycUt9tNdnby\nP9mZM2fY2NhI+54TiQQzMzPYbDbev3/PjRs39pwvLS1lfX2dra0trFZr2vOLyMFRgBGRlOLxOBcu\nXGBgYMA8tra2xvHjxzEMw3xc9FNdXR2Dg4NEIhFzo6zdbicvL4/Xr19z8uRJCgoKgOSm2fb2drMx\n4+7uLpubmwDcvXuX7e1tGhoauHjxItvb2/xOy7bc3H9+zn5tSJqOR48eEY1GefXqFdevX8fv99PW\n1maej8ViZGVlmUFJRA6PvoUiklJ1dTWzs7MsLi4CMDc3x5UrV/j69SunTp1idXV1z/jy8nKWl5f5\n9OkTLpfLPO50OhkeHjYfH0GyWjM6OmpWXXp7e7l//z4A09PTNDc3c/XqVaxWK8FgMOVm3dzc3H+F\nqD8xMTHBy5cv6e/vJz8/n/7+fp4/f86HDx/MMSsrK9hsNiwWy4FdV0T2RxUYEUnJbrfT09NDZ2en\nGRT8fj9FRUUAHD16lFAoZO6DycnJ4fz584TDYWw2mzmPy+Xi2bNnewJMS0sLDx8+pLGxEYCSkhJ8\nPh8A7e3t3Llzh/z8fI4cOUJVVRXhcBjY+wbR5cuX6ejo4MGDBynfLEpHKBSiq6uLoaEhc9Pu6dOn\n6erq4t69e7x48YKSkhKmp6dxu91/dC0RORhZif3UWUXkf+/t27cYhkFPT89hL+W3ffnyhaamJgzD\nSPuzsViMa9eu8fTpU44dO/YXVici6dAjJBHZl/r6egAWFhYOeSXp2W+15smTJ3g8HoUXkf8IVWBE\nREQk46gCIyIiIhlHAUZEREQyjgKMiIiIZBwFGBEREck4CjAiIiKScRRgREREJOMowIiIiEjG+QH+\naUBcSBWu0wAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sm.graphics.plot_partregress('Lottery', 'Wealth', ['Region', 'Literacy'],\n", " data=df, obs_labels=False);" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "sm.stats.linear_rainbow?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "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.12" } }, "nbformat": 4, "nbformat_minor": 2 }