SHARE
TWEET

Untitled

a guest Oct 23rd, 2017 50 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. {
  2.  "cells": [
  3.   {
  4.    "cell_type": "code",
  5.    "execution_count": 1,
  6.    "metadata": {
  7.     "collapsed": true
  8.    },
  9.    "outputs": [],
  10.    "source": [
  11.     "import pandas as pd\n",
  12.     "import numpy as np\n",
  13.     "import matplotlib.pyplot as plt\n",
  14.     "import seaborn as sns\n",
  15.     "%matplotlib inline"
  16.    ]
  17.   },
  18.   {
  19.    "cell_type": "code",
  20.    "execution_count": 5,
  21.    "metadata": {},
  22.    "outputs": [],
  23.    "source": [
  24.     "df=pd.read_csv('clasd',index_col=0)"
  25.    ]
  26.   },
  27.   {
  28.    "cell_type": "code",
  29.    "execution_count": 6,
  30.    "metadata": {},
  31.    "outputs": [
  32.     {
  33.      "data": {
  34.       "text/html": [
  35.        "<div>\n",
  36.        "<style>\n",
  37.        "    .dataframe thead tr:only-child th {\n",
  38.        "        text-align: right;\n",
  39.        "    }\n",
  40.        "\n",
  41.        "    .dataframe thead th {\n",
  42.        "        text-align: left;\n",
  43.        "    }\n",
  44.        "\n",
  45.        "    .dataframe tbody tr th {\n",
  46.        "        vertical-align: top;\n",
  47.        "    }\n",
  48.        "</style>\n",
  49.        "<table border=\"1\" class=\"dataframe\">\n",
  50.        "  <thead>\n",
  51.        "    <tr style=\"text-align: right;\">\n",
  52.        "      <th></th>\n",
  53.        "      <th>WTT</th>\n",
  54.        "      <th>PTI</th>\n",
  55.        "      <th>EQW</th>\n",
  56.        "      <th>SBI</th>\n",
  57.        "      <th>LQE</th>\n",
  58.        "      <th>QWG</th>\n",
  59.        "      <th>FDJ</th>\n",
  60.        "      <th>PJF</th>\n",
  61.        "      <th>HQE</th>\n",
  62.        "      <th>NXJ</th>\n",
  63.        "      <th>TARGET CLASS</th>\n",
  64.        "    </tr>\n",
  65.        "  </thead>\n",
  66.        "  <tbody>\n",
  67.        "    <tr>\n",
  68.        "      <th>0</th>\n",
  69.        "      <td>0.913917</td>\n",
  70.        "      <td>1.162073</td>\n",
  71.        "      <td>0.567946</td>\n",
  72.        "      <td>0.755464</td>\n",
  73.        "      <td>0.780862</td>\n",
  74.        "      <td>0.352608</td>\n",
  75.        "      <td>0.759697</td>\n",
  76.        "      <td>0.643798</td>\n",
  77.        "      <td>0.879422</td>\n",
  78.        "      <td>1.231409</td>\n",
  79.        "      <td>1</td>\n",
  80.        "    </tr>\n",
  81.        "    <tr>\n",
  82.        "      <th>1</th>\n",
  83.        "      <td>0.635632</td>\n",
  84.        "      <td>1.003722</td>\n",
  85.        "      <td>0.535342</td>\n",
  86.        "      <td>0.825645</td>\n",
  87.        "      <td>0.924109</td>\n",
  88.        "      <td>0.648450</td>\n",
  89.        "      <td>0.675334</td>\n",
  90.        "      <td>1.013546</td>\n",
  91.        "      <td>0.621552</td>\n",
  92.        "      <td>1.492702</td>\n",
  93.        "      <td>0</td>\n",
  94.        "    </tr>\n",
  95.        "    <tr>\n",
  96.        "      <th>2</th>\n",
  97.        "      <td>0.721360</td>\n",
  98.        "      <td>1.201493</td>\n",
  99.        "      <td>0.921990</td>\n",
  100.        "      <td>0.855595</td>\n",
  101.        "      <td>1.526629</td>\n",
  102.        "      <td>0.720781</td>\n",
  103.        "      <td>1.626351</td>\n",
  104.        "      <td>1.154483</td>\n",
  105.        "      <td>0.957877</td>\n",
  106.        "      <td>1.285597</td>\n",
  107.        "      <td>0</td>\n",
  108.        "    </tr>\n",
  109.        "    <tr>\n",
  110.        "      <th>3</th>\n",
  111.        "      <td>1.234204</td>\n",
  112.        "      <td>1.386726</td>\n",
  113.        "      <td>0.653046</td>\n",
  114.        "      <td>0.825624</td>\n",
  115.        "      <td>1.142504</td>\n",
  116.        "      <td>0.875128</td>\n",
  117.        "      <td>1.409708</td>\n",
  118.        "      <td>1.380003</td>\n",
  119.        "      <td>1.522692</td>\n",
  120.        "      <td>1.153093</td>\n",
  121.        "      <td>1</td>\n",
  122.        "    </tr>\n",
  123.        "    <tr>\n",
  124.        "      <th>4</th>\n",
  125.        "      <td>1.279491</td>\n",
  126.        "      <td>0.949750</td>\n",
  127.        "      <td>0.627280</td>\n",
  128.        "      <td>0.668976</td>\n",
  129.        "      <td>1.232537</td>\n",
  130.        "      <td>0.703727</td>\n",
  131.        "      <td>1.115596</td>\n",
  132.        "      <td>0.646691</td>\n",
  133.        "      <td>1.463812</td>\n",
  134.        "      <td>1.419167</td>\n",
  135.        "      <td>1</td>\n",
  136.        "    </tr>\n",
  137.        "  </tbody>\n",
  138.        "</table>\n",
  139.        "</div>"
  140.       ],
  141.       "text/plain": [
  142.        "        WTT       PTI       EQW       SBI       LQE       QWG       FDJ  \\\n",
  143.        "0  0.913917  1.162073  0.567946  0.755464  0.780862  0.352608  0.759697   \n",
  144.        "1  0.635632  1.003722  0.535342  0.825645  0.924109  0.648450  0.675334   \n",
  145.        "2  0.721360  1.201493  0.921990  0.855595  1.526629  0.720781  1.626351   \n",
  146.        "3  1.234204  1.386726  0.653046  0.825624  1.142504  0.875128  1.409708   \n",
  147.        "4  1.279491  0.949750  0.627280  0.668976  1.232537  0.703727  1.115596   \n",
  148.        "\n",
  149.        "        PJF       HQE       NXJ  TARGET CLASS  \n",
  150.        "0  0.643798  0.879422  1.231409             1  \n",
  151.        "1  1.013546  0.621552  1.492702             0  \n",
  152.        "2  1.154483  0.957877  1.285597             0  \n",
  153.        "3  1.380003  1.522692  1.153093             1  \n",
  154.        "4  0.646691  1.463812  1.419167             1  "
  155.       ]
  156.      },
  157.      "execution_count": 6,
  158.      "metadata": {},
  159.      "output_type": "execute_result"
  160.     }
  161.    ],
  162.    "source": [
  163.     "df.head()"
  164.    ]
  165.   },
  166.   {
  167.    "cell_type": "code",
  168.    "execution_count": 7,
  169.    "metadata": {
  170.     "collapsed": true
  171.    },
  172.    "outputs": [],
  173.    "source": [
  174.     "from sklearn.preprocessing import StandardScaler"
  175.    ]
  176.   },
  177.   {
  178.    "cell_type": "code",
  179.    "execution_count": 8,
  180.    "metadata": {
  181.     "collapsed": true
  182.    },
  183.    "outputs": [],
  184.    "source": [
  185.     "scaler=StandardScaler()"
  186.    ]
  187.   },
  188.   {
  189.    "cell_type": "code",
  190.    "execution_count": 10,
  191.    "metadata": {},
  192.    "outputs": [
  193.     {
  194.      "data": {
  195.       "text/plain": [
  196.        "StandardScaler(copy=True, with_mean=True, with_std=True)"
  197.       ]
  198.      },
  199.      "execution_count": 10,
  200.      "metadata": {},
  201.      "output_type": "execute_result"
  202.     }
  203.    ],
  204.    "source": [
  205.     "scaler.fit(df.drop('TARGET CLASS',axis=1))"
  206.    ]
  207.   },
  208.   {
  209.    "cell_type": "code",
  210.    "execution_count": 12,
  211.    "metadata": {},
  212.    "outputs": [],
  213.    "source": [
  214.     "scaled_features=scaler.transform(df.drop('TARGET CLASS',axis=1))"
  215.    ]
  216.   },
  217.   {
  218.    "cell_type": "code",
  219.    "execution_count": 13,
  220.    "metadata": {},
  221.    "outputs": [
  222.     {
  223.      "data": {
  224.       "text/plain": [
  225.        "array([[-0.12354188,  0.18590747, -0.91343069, ..., -1.48236813,\n",
  226.        "        -0.9497194 , -0.64331425],\n",
  227.        "       [-1.08483602, -0.43034845, -1.02531333, ..., -0.20224031,\n",
  228.        "        -1.82805088,  0.63675862],\n",
  229.        "       [-0.78870217,  0.33931821,  0.30151137, ...,  0.28570652,\n",
  230.        "        -0.68249379, -0.37784986],\n",
  231.        "       ..., \n",
  232.        "       [ 0.64177714, -0.51308341, -0.17920486, ..., -2.36249443,\n",
  233.        "        -0.81426092,  0.11159651],\n",
  234.        "       [ 0.46707241, -0.98278576, -1.46519359, ..., -0.03677699,\n",
  235.        "         0.40602453, -0.85567   ],\n",
  236.        "       [-0.38765353, -0.59589427, -1.4313981 , ..., -0.56778932,\n",
  237.        "         0.3369971 ,  0.01034996]])"
  238.       ]
  239.      },
  240.      "execution_count": 13,
  241.      "metadata": {},
  242.      "output_type": "execute_result"
  243.     }
  244.    ],
  245.    "source": [
  246.     "scaled_features"
  247.    ]
  248.   },
  249.   {
  250.    "cell_type": "code",
  251.    "execution_count": 14,
  252.    "metadata": {
  253.     "collapsed": true
  254.    },
  255.    "outputs": [],
  256.    "source": [
  257.     "df_feat=pd.DataFrame(scaled_features,columns=df.columns[:-1])"
  258.    ]
  259.   },
  260.   {
  261.    "cell_type": "code",
  262.    "execution_count": 16,
  263.    "metadata": {},
  264.    "outputs": [
  265.     {
  266.      "data": {
  267.       "text/html": [
  268.        "<div>\n",
  269.        "<style>\n",
  270.        "    .dataframe thead tr:only-child th {\n",
  271.        "        text-align: right;\n",
  272.        "    }\n",
  273.        "\n",
  274.        "    .dataframe thead th {\n",
  275.        "        text-align: left;\n",
  276.        "    }\n",
  277.        "\n",
  278.        "    .dataframe tbody tr th {\n",
  279.        "        vertical-align: top;\n",
  280.        "    }\n",
  281.        "</style>\n",
  282.        "<table border=\"1\" class=\"dataframe\">\n",
  283.        "  <thead>\n",
  284.        "    <tr style=\"text-align: right;\">\n",
  285.        "      <th></th>\n",
  286.        "      <th>WTT</th>\n",
  287.        "      <th>PTI</th>\n",
  288.        "      <th>EQW</th>\n",
  289.        "      <th>SBI</th>\n",
  290.        "      <th>LQE</th>\n",
  291.        "      <th>QWG</th>\n",
  292.        "      <th>FDJ</th>\n",
  293.        "      <th>PJF</th>\n",
  294.        "      <th>HQE</th>\n",
  295.        "      <th>NXJ</th>\n",
  296.        "    </tr>\n",
  297.        "  </thead>\n",
  298.        "  <tbody>\n",
  299.        "    <tr>\n",
  300.        "      <th>0</th>\n",
  301.        "      <td>-0.123542</td>\n",
  302.        "      <td>0.185907</td>\n",
  303.        "      <td>-0.913431</td>\n",
  304.        "      <td>0.319629</td>\n",
  305.        "      <td>-1.033637</td>\n",
  306.        "      <td>-2.308375</td>\n",
  307.        "      <td>-0.798951</td>\n",
  308.        "      <td>-1.482368</td>\n",
  309.        "      <td>-0.949719</td>\n",
  310.        "      <td>-0.643314</td>\n",
  311.        "    </tr>\n",
  312.        "    <tr>\n",
  313.        "      <th>1</th>\n",
  314.        "      <td>-1.084836</td>\n",
  315.        "      <td>-0.430348</td>\n",
  316.        "      <td>-1.025313</td>\n",
  317.        "      <td>0.625388</td>\n",
  318.        "      <td>-0.444847</td>\n",
  319.        "      <td>-1.152706</td>\n",
  320.        "      <td>-1.129797</td>\n",
  321.        "      <td>-0.202240</td>\n",
  322.        "      <td>-1.828051</td>\n",
  323.        "      <td>0.636759</td>\n",
  324.        "    </tr>\n",
  325.        "    <tr>\n",
  326.        "      <th>2</th>\n",
  327.        "      <td>-0.788702</td>\n",
  328.        "      <td>0.339318</td>\n",
  329.        "      <td>0.301511</td>\n",
  330.        "      <td>0.755873</td>\n",
  331.        "      <td>2.031693</td>\n",
  332.        "      <td>-0.870156</td>\n",
  333.        "      <td>2.599818</td>\n",
  334.        "      <td>0.285707</td>\n",
  335.        "      <td>-0.682494</td>\n",
  336.        "      <td>-0.377850</td>\n",
  337.        "    </tr>\n",
  338.        "    <tr>\n",
  339.        "      <th>3</th>\n",
  340.        "      <td>0.982841</td>\n",
  341.        "      <td>1.060193</td>\n",
  342.        "      <td>-0.621399</td>\n",
  343.        "      <td>0.625299</td>\n",
  344.        "      <td>0.452820</td>\n",
  345.        "      <td>-0.267220</td>\n",
  346.        "      <td>1.750208</td>\n",
  347.        "      <td>1.066491</td>\n",
  348.        "      <td>1.241325</td>\n",
  349.        "      <td>-1.026987</td>\n",
  350.        "    </tr>\n",
  351.        "    <tr>\n",
  352.        "      <th>4</th>\n",
  353.        "      <td>1.139275</td>\n",
  354.        "      <td>-0.640392</td>\n",
  355.        "      <td>-0.709819</td>\n",
  356.        "      <td>-0.057175</td>\n",
  357.        "      <td>0.822886</td>\n",
  358.        "      <td>-0.936773</td>\n",
  359.        "      <td>0.596782</td>\n",
  360.        "      <td>-1.472352</td>\n",
  361.        "      <td>1.040772</td>\n",
  362.        "      <td>0.276510</td>\n",
  363.        "    </tr>\n",
  364.        "  </tbody>\n",
  365.        "</table>\n",
  366.        "</div>"
  367.       ],
  368.       "text/plain": [
  369.        "        WTT       PTI       EQW       SBI       LQE       QWG       FDJ  \\\n",
  370.        "0 -0.123542  0.185907 -0.913431  0.319629 -1.033637 -2.308375 -0.798951   \n",
  371.        "1 -1.084836 -0.430348 -1.025313  0.625388 -0.444847 -1.152706 -1.129797   \n",
  372.        "2 -0.788702  0.339318  0.301511  0.755873  2.031693 -0.870156  2.599818   \n",
  373.        "3  0.982841  1.060193 -0.621399  0.625299  0.452820 -0.267220  1.750208   \n",
  374.        "4  1.139275 -0.640392 -0.709819 -0.057175  0.822886 -0.936773  0.596782   \n",
  375.        "\n",
  376.        "        PJF       HQE       NXJ  \n",
  377.        "0 -1.482368 -0.949719 -0.643314  \n",
  378.        "1 -0.202240 -1.828051  0.636759  \n",
  379.        "2  0.285707 -0.682494 -0.377850  \n",
  380.        "3  1.066491  1.241325 -1.026987  \n",
  381.        "4 -1.472352  1.040772  0.276510  "
  382.       ]
  383.      },
  384.      "execution_count": 16,
  385.      "metadata": {},
  386.      "output_type": "execute_result"
  387.     }
  388.    ],
  389.    "source": [
  390.     "df_feat.head()"
  391.    ]
  392.   },
  393.   {
  394.    "cell_type": "code",
  395.    "execution_count": 19,
  396.    "metadata": {
  397.     "collapsed": true
  398.    },
  399.    "outputs": [],
  400.    "source": [
  401.     "from sklearn.cross_validation import train_test_split"
  402.    ]
  403.   },
  404.   {
  405.    "cell_type": "code",
  406.    "execution_count": 20,
  407.    "metadata": {},
  408.    "outputs": [],
  409.    "source": [
  410.     "X=df_feat\n",
  411.     "y=df['TARGET CLASS']\n",
  412.     "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=101)"
  413.    ]
  414.   },
  415.   {
  416.    "cell_type": "code",
  417.    "execution_count": 21,
  418.    "metadata": {
  419.     "collapsed": true
  420.    },
  421.    "outputs": [],
  422.    "source": [
  423.     "from sklearn.neighbors import KNeighborsClassifier"
  424.    ]
  425.   },
  426.   {
  427.    "cell_type": "code",
  428.    "execution_count": 22,
  429.    "metadata": {
  430.     "collapsed": true
  431.    },
  432.    "outputs": [],
  433.    "source": [
  434.     "knn=KNeighborsClassifier(n_neighbors=1)"
  435.    ]
  436.   },
  437.   {
  438.    "cell_type": "code",
  439.    "execution_count": 23,
  440.    "metadata": {},
  441.    "outputs": [
  442.     {
  443.      "data": {
  444.       "text/plain": [
  445.        "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
  446.        "           metric_params=None, n_jobs=1, n_neighbors=1, p=2,\n",
  447.        "           weights='uniform')"
  448.       ]
  449.      },
  450.      "execution_count": 23,
  451.      "metadata": {},
  452.      "output_type": "execute_result"
  453.     }
  454.    ],
  455.    "source": [
  456.     "knn.fit(X_train,y_train)"
  457.    ]
  458.   },
  459.   {
  460.    "cell_type": "code",
  461.    "execution_count": 24,
  462.    "metadata": {
  463.     "collapsed": true
  464.    },
  465.    "outputs": [],
  466.    "source": [
  467.     "pred=knn.predict(X_test)"
  468.    ]
  469.   },
  470.   {
  471.    "cell_type": "code",
  472.    "execution_count": 27,
  473.    "metadata": {},
  474.    "outputs": [],
  475.    "source": [
  476.     "from sklearn.metrics import classification_report,confusion_matrix"
  477.    ]
  478.   },
  479.   {
  480.    "cell_type": "code",
  481.    "execution_count": 28,
  482.    "metadata": {},
  483.    "outputs": [
  484.     {
  485.      "name": "stdout",
  486.      "output_type": "stream",
  487.      "text": [
  488.       "[[151   8]\n",
  489.       " [ 15 126]]\n",
  490.       "             precision    recall  f1-score   support\n",
  491.       "\n",
  492.       "          0       0.91      0.95      0.93       159\n",
  493.       "          1       0.94      0.89      0.92       141\n",
  494.       "\n",
  495.       "avg / total       0.92      0.92      0.92       300\n",
  496.       "\n"
  497.      ]
  498.     }
  499.    ],
  500.    "source": [
  501.     "print(confusion_matrix(y_test,pred))\n",
  502.     "print(classification_report(y_test,pred))"
  503.    ]
  504.   },
  505.   {
  506.    "cell_type": "code",
  507.    "execution_count": 35,
  508.    "metadata": {
  509.     "collapsed": true
  510.    },
  511.    "outputs": [],
  512.    "source": [
  513.     "errr=[]\n",
  514.     "\n",
  515.     "for i in range(1,40):\n",
  516.     "    knn=KNeighborsClassifier(n_neighbors=i)\n",
  517.     "    knn.fit(X_train,y_train)\n",
  518.     "    pred_i=knn.predict(X_test)\n",
  519.     "    errr.append(np.mean(pred_i!=y_test))"
  520.    ]
  521.   },
  522.   {
  523.    "cell_type": "code",
  524.    "execution_count": 36,
  525.    "metadata": {},
  526.    "outputs": [
  527.     {
  528.      "data": {
  529.       "text/plain": [
  530.        "[<matplotlib.lines.Line2D at 0x2294e3f8048>]"
  531.       ]
  532.      },
  533.      "execution_count": 36,
  534.      "metadata": {},
  535.      "output_type": "execute_result"
  536.     },
  537.     {
  538.      "data": {
  539.       "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAFkCAYAAADi/3UkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3WlwJOd5J/h/1l0FVOGqwtVodAPdQHaryT5AiiIl0jop\n0rIty7ctW+Y4xlprY8LatRwz6wjFTnhnvOuNnXXYq9nVOIaOCUu0LV+ybEkek5IoSpRalCgR6G6y\nyU4AjUYfOOtCFVD3kfuhKquq0VWozKysq/H/fZJQ16tUo/Dk8z7v8wiyLIOIiIiIGmdq9wKIiIiI\n7hcMrIiIiIgMwsCKiIiIyCAMrIiIiIgMwsCKiIiIyCAMrIiIiIgMYmn3AhR+/66mvg8DAy6Ew/Fm\nLadr8DqU8VqU8VqU8VoU8DqU8VqU8VqUab0WPp9bqPbzrs1YWSzmdi+hI/A6lPFalPFalPFaFPA6\nlPFalPFalBl1Lbo2sCIiIiLqNAysiIiIiAzCwIqIiIjIIAysiIiIiAzCwIqIiIjIIAysiIiIiAzC\nwIqIiIjIIAysiIiIiAzCwIqIiIjIIAysiIiIiAxSd1agKIomAJ8FcA5ACsBvSpK0XPH4xwH8FoAs\ngD+QJOmroihOAfgcAAHATQD/gyRJHEZERERE9zU1GauPAHBIkvQYgN8D8EfKA6IojgL4JIB3AXgK\nwB+KomgH8J8A/KkkSU8A+BaATxm87pbYS2Rw7Wa43csgIiKiLlE3YwXgcQDPA4AkSd8XRfHhisce\nAXBRkqQUgJQoissAzgJ4G4CPF59zEcAf1/uQgQGX5gGIPp9b0/O1+uI/XME/X7yBP/v0kxgZdDX1\nsxrR7OvQTXgtyngtyngtCngdyngtyngtyoy4FmoCKw+ASMV/z4miaJEkKVvlsV0AfQAuAfgwCtuB\nHwbQU+9DwmFtO4U+nxt+/66m12gl3QwBAG7cDsGUyzX1s/RqxXXoFrwWZbwWZbwWBbwOZbwWZbwW\nZVqvRa0gTM1WYBRA5atNxaCq2mNuADsAfhfAh0VRfB5AHkBA9Uo7yGawEOwlU50ZVBEREVFnURNY\nXQTwIQAQRfFRAK9XPPYqgCdEUXSIotgH4DSANwA8CeB/kyTpaRQCq68buuoWiMbT2EtkAADJdLbO\ns4mIiIjUbQV+CcCToih+D4VTfr8hiuKnACxLkvRlURQ/A+A7KARpn5YkKSmKogTgv4mimAJwFcC/\nadL6m0bJVgFAghkrIiIiUqFuYCVJUh7AJ/b9+FrF488CeHbfa34A4GF0sY1grPSfmbEiIiIiNdgg\ntIaNyoxVmhkrIiIiqo+BVQ2VgRUzVkRERKQGA6sa7t4KZMaKiIiI6mNgVUU6k0MwkoS3zwEASKaY\nsSIiIqL6GFhVsRmKQwYwPe4BwIwVERERqcPAqorNUKG+6vhoIbBKMGNFREREKjCwqmI9UKivmvD1\nwGYxMWNFREREqjCwqkLJWI0N9cBht7DdAhEREanCwKqKjWAcNqsJAx47HDYz2y0QERGRKgys9snn\nZWyG4hgddMEkCHDaLBzCTERERKowsNonGE0ik81jfKgHAOCwmZHK5JDPy21eGREREXU6Blb7KB3X\nR4dcAACnvTBOkQXsREREVA8Dq32UjutjFRkrgGNtiIiIqD4GVvsoGauxYsaqHFgxY0VEREQHY2C1\nz2YwBkEARgacAABHcSswwYwVERER1cHAap/1YBy+PieslkKmihkrIiIiUouBVYXdeBp7iUxpGxAA\nnLZi8TrH2hAREVEdDKwqVHZcVzBjRURERGoxsKqwv9UCUG63wEHMREREVA8DqwpKq4VxZqyIiIhI\nBwZWFaplrHgqkIiIiNRiYFVhIxiD22VFr9Na+hkzVkRERKQWA6uiTDaHwE7yrsJ1oCKw4iBmIiIi\nqoOBVdFWKAEZuKvVAlA5K5BbgURERHQwBlZF68qMwMG7AytuBRIREZFaDKyKNpUZgd67twLNJhNs\nFhPbLRAREVFdDKyKNpTmoPsyVkAha8WMFREREdXDwKpoIxCDzWLCYJ/jnsccdgvbLRAREVFdDKwA\n5GUZm6E4RgddMAnCPY8zY0VERERqMLACEIomkc7m72oMWslpsyCVziEvyy1eGREREXUTBlYod1zf\n38NKoZwMTDFrRURERAdgYIXKwKp6xsrBQcxERESkAgMrAJtKD6saGSsne1kRERGRCgysAKwH4xAA\njAw4qz7usCnd1xlYERERUW0MrFDIWHn7HbBZzVUfd9gLP2fLBSIiIjrIoQ+s9hIZROOZmtuAQEXG\nioOYiYiI6ACHPrBSRtmMVum4rijXWDFjRURERLUd+sBqo1i4Pu49IGNlZ40VERER1cfAKqQ+Y8V2\nC0RERHQQBlYBpdVC7cCKpwKJiIhIDQZWoTh6nVa4Xbaaz1E6r/NUIBERER3kUAdWmWwe/p3Egdkq\noNxugacCiYiI6CCHOrDaCschywdvAwKVW4HMWBEREVFthzqw2qwzfFnh4EgbIiIiUuFQB1YbwfqF\n6wBgMZtgtZiYsSIiIqIDHfLAqthqoU7GCii0XEiwxoqIiIgOcOgDK6vFBK/HUfe5DpuFGSsiIiI6\n0KENrPKyjI1QDCMDLphMQt3nO+xmJFhjRURERAc4tIFVOJpCOpOvW1+lcNgsSKVzyMtyk1dGRERE\n3erQBlYbIXWF6wrlZGCKWSsiIiKq4fAGVipbLSicHMRMREREdTCw0pix4iBmIiIiquXQBlabwRgE\nACOD6gIrJwcxExERUR2HNrDaCMYx1OeA3WpW9fxy93VmrIiIiKi6QxlYxZMZRGJpjKrcBgQAR7HG\nik1CiYiIqBZLvSeIomgC8FkA5wCkAPymJEnLFY9/HMBvAcgC+ANJkr4qiuIkgOcACABCAD4qSVK8\nCevXRamvGldZuA4wY0VERET1qclYfQSAQ5KkxwD8HoA/Uh4QRXEUwCcBvAvAUwD+UBRFO4DfAfA3\nkiT9GICrAP610QtvRHmUjfqMFU8FEhERUT1qAqvHATwPAJIkfR/AwxWPPQLgoiRJKUmSIgCWAZwF\ncAnAQPE5HgAZw1ZsgNLwZZWF6wAzVkRERFRf3a1AFAKjSMV/z4miaJEkKVvlsV0AfQDuAPg/RVH8\nKAA7gN+v9yEDAy5YLOoKyRU+n1vT8xWhvTQA4EFxBH29dlWvGS2+RjCbdX9us3TaetqJ16KM16KM\n16KA16GM16KM16LMiGuhJrCKAqj8JFMxqKr2mBvADoD/CuBfSZL0giiKPwHg8wB+4qAPCYe1lWD5\nfG74/buaXqNY3Yiix2FBKp6CP5FW9ZpUvPC80E5c9+c2QyPX4X7Da1HGa1HGa1HA61DGa1HGa1Gm\n9VrUCsLUbAVeBPAhABBF8VEAr1c89iqAJ0RRdIii2AfgNIA3AIRRzmSto7wt2HbZXB7+cAJjQz0Q\nhPrDlxXlBqGssSIiIqLq1GSsvgTgSVEUv4fCKb/fEEXxUwCWJUn6siiKnwHwHRSCtE9LkpQURfG3\nAfy/oiiai6/5N01av2Zb4QTysqy647rCUSpeZ40VERERVVc3sJIkKQ/gE/t+fK3i8WcBPLvvNW8C\neJ8RCzTaplK4rqHVAlBZvM6MFREREVV36BqErutotQAAFrMJVouJGSsiIiKq6dAFVkrGalxjYAUU\nslbMWBEREVEthy6w2gjGYTEL8PY5Nb/WabMgkWLGioiIiKo7VIGVLMvYCMUxMuiCyaT+RKCCGSsi\nIiI6yKEKrMK7KaTSOc2F6wolsMrLssErIyIiovvBoQqsNkKFwnUto2wqKS0XUsxaERERURWHK7AK\nKK0WdAZWbLlAREREBzhcgZWSsdK5Fehkk1AiIiI6wKEKrDaVHlZ6twI51oaIiIgOcKgCq/VgDEMe\nO+zFAEkrp40ZKyIiIqrt0ARW8WQWkb207m1AgDVWREREdLBDE1hthvSNsqmknApkk1AiIiKq5tAE\nVhs6hy9XYsaKiIiIDnKIAqtCxkrPjECFgzVWREREdIBDFFgVMlajDWSsnHZmrIiIiKi2QxRYxeGy\nW+BxWXW/h5KxYo0VERERVWNp9wJaxdNjw7FRNwRB+/BlhZM1VkRERHSAQxNY/buPXoCpgaAK4KlA\nIiIiOtih2QpsNKgCeCqQiIiIDnZoAisjWMwmWMwmBlZERERUFQMrjZx2M9stEBERUVUMrDRy2MzM\nWBEREVFVDKw0ctgsLF4nIiKiqhhYaeS0mZFK55CX5XYvhYiIiDoMAyuNHHYLZAApbgcSERHRPgys\nNGLLBSIiIqqFgZVGHMRMREREtTCw0oiDmImIiKgWBlYalTJWPBlIRERE+zCw0kgZxJxgxoqIiIj2\nYWClkTKImTVWREREtB8DK42UU4GJFDNWREREdDcGVhrxVCARERHVwsBKI/axIiIioloYWGnkVGqs\nuBVIRERE+zCw0qhUY8WtQCIiItqHgZVGpYwVtwKJiIhoHwZWGpVPBTJjRURERHdjYKWRxWyCxWxi\nxoqIiIjuwcBKB4fNzHYLREREdA8GVjoUAitmrIiIiOhuDKx0cNotzFgRERHRPRhY6eCwmZFM5SDL\ncruXQkRERB2EgZUOTrsFMoBUhtuBREREVMbASgcOYiYiIqJqGFjpwEHMREREVA0DKx04iJmIiIiq\nYWClQ3kQMzNWREREVMbASgdmrIiIiKgaBlY6lIrXWWNFREREFRhY6VDaCmTGioiIiCowsNKh3G6B\nGSsiIiIqY2ClQ7ndAjNWREREVMbASodS8TobhBIREVEFBlY6lGusuBVIREREZQysdCifCmTGioiI\niMos9Z4giqIJwGcBnAOQAvCbkiQtVzz+cQC/BSAL4A8kSfqqKIp/AuB88SmjAHYkSXrU6MW3C0fa\nEBERUTV1AysAHwHgkCTpMVEUHwXwRwB+GgBEURwF8EkADwNwAPiuKIpflyTpfy4+bgXwXQAfb8bi\n28VqMcFiFgwdwhyIJGASBAx6HIa9JxEREbWWmq3AxwE8DwCSJH0fhSBK8QiAi5IkpSRJigBYBnC2\n4vHfBvA1SZJeN2i9HcNhsxiasfrjv72MP/m7y4a9HxEREbWemoyVB0Ck4r/nRFG0SJKUrfLYLoA+\nABBF0YbCFuEjahYyMOCCxWJWtWiFz+fW9Hwj9TityGTzhqwhl5exFU5AlmV4+l2wW7vnOnQaXosy\nXosyXosCXocyXosyXosyI66FmsAqCqDyk0zFoKraY24AO8X//AEALxczWXWFw3E1Tyvx+dzw+3c1\nvcZIVrMJ0VjKkDWEd1PI52UAwNXFbRwd7lX92nZfh07Ca1HGa1HGa1HA61DGa1HGa1Gm9VrUCsLU\nbAVeBPAhACjWWFVu670K4AlRFB2iKPYBOA3gjeJjHwDwL6pX2GWcdjOSqRxkWW74vXb2UqX/vBGM\nNfx+RERE1B5qMlZfAvCkKIrfAyAA+A1RFD8FYFmSpC+LovgZAN9BIUj7tCRJyeLrRACfb8aiO4HD\nZoEMIJXJlU4J6hXerQystGXuiIiIqHPUjQgkScoD+MS+H1+rePxZAM9Wed1PNLy6Dua0F7uvp40O\nrJixIiIi6lZsEKqTkYOY794KZMaKiIioWzGw0snIQcxKxsplt2AzFEfegLotIiIiaj0GVjqVBzEb\nl7ESJ/uRyeYRiiTrvIKIiIg6EQMrncqDmI3JWPU4LDg2Uji6uc7tQCIioq7EwEqnUsbKgMBqZy+F\nAbcdY94eAMAmC9iJiIi6EgMrnZQaq0SDY22S6SwSqRz63XaMDboAABshZqyIiIi6EQMrnSrbLTRC\nKVwf6LVjZNAJQQA2AsxYERERdSMGVjqVMlYNFq/vKIGV2w6rxQxfn5MZKyIioi7FwEono2qswsUT\ngf1uOwBgdMiF3XgGe4lMYwskIiKilmNgpZNDORXYYMZK2Qrs7y0EVuNDhQJ2dmAnIiLqPgysdHIa\nlLHa2U0DKNRYAYWMFcAO7ERERN2IgZVORp0KVJqDDhS3AseKgdUmAysiIqKuw8BKJ6vFBItZMKTG\nymwS0OuyAgDGiluB69wKJCIi6joMrBrgsFkaPhUY3k2hv9cOkyAAAHqdVrhdVmasiIiIuhADqwY4\nbOaGMlb5vIzIXrq0DagYG3TBH0kgk228q7tRsrk80pnOWQ8REVEnYmDVAIfN0lBgFY2nkZflUqsF\nxZi3B7IMbIUSjS7RMP/P313G//7ca5Blud1LISIi6lgMrBrgsJuRTGd1BxuVXdcrddpoG1mWcX09\nitvbe7i1tdfu5RAREXUsBlYNcNoskGUgncnren1l1/VKox3WyyqWzJYyc68t+tu8GiIios7FwKoB\nSvd1vS0Xyl3XbXf9fLzDelkFIuUtyYUlBlZERES1MLBqQKODmGttBQ72OWC1mDomYxXYSQIABABr\n/hi2wp0R8BEREXUaBlYNaHQQ886+OYEKkyBgdNCFzVAc+Q4oFg9ECoHVuZNeAMA8twOJiIiqYmDV\ngEYHMe/UyFgBhQ7s6UweoWhS/wINomwFvv/hCQgCsLAYaPOKiIiIOhMDqwYoGSu9g5jDe2n0OCyw\nWc33PKZ0YO+ERqFKxmpq1I3ZiX5cX4sgUsy2ERERURkDqwY4DKix2r8NqBjroAL2YCQJl90Cl8OK\nuVkfZAALS8xaERER7cfAqgFOJWOl41RgKp1DIpWtug0IlDNW7S5gl2UZ/kgC3j4HAODCLOusiIiI\namFg1YByuwXtGatwjcJ1xciAEwLan7HaTWSQzuQxVAysvH1OTI704q2bYcSTjc1JJCIiut8wsGqA\n064/Y1Wr1YLCZjVjqM/R9u7rwWJ9la/fWfrZ3KwPubyMKyvcDiQiIqrEwKoBpYxVSnvGqlbX9Urj\n3h5EY2nEkhl9CzSAUriuZKyAQmAFAPM8HUhERHQXBlYNcDSSsVK2AmtkrABgdLD9BeyBnUKrBW9F\nYHXE24PhfideXwkik9U/hJqIiOh+w8CqAaU+VjoyVmEVGavyycD2FbArGStvX3krUBAEzM36kErn\n8OZquF1LIyIi6jgMrBrQyKnAWl3XK5VPBrYxY1UKrBx3/by8HcjTgURERAoGVg2wWkwwmwRdpwJ3\ndlMwmwS4Xdaaz1EyVu1sEhqIJNDjsJQK9RXTRzzw9NhwaTmAfL79Y3eIiIg6AQOrBjlsZl0NQsN7\nKfT32mAShJrPcbts6HVa27YVKMsyApHkXduACpMg4MKMF7vxDJbXIm1YHRERUedhYNUgp92ieQhz\nXpYR2UsfuA2oGBtyYXsngUw2r3eJukXjGWSyeXj7HVUf53YgERHR3RhYNUhPxmo3lkYuL9fsYVVp\nbMgFWQa2w63fDlSGL++vr1KcmhyAw2bG/KIfssztQCIiIgZWDXLYLUims5oCi3pd1yuNDravgD2w\nc++JwEpWiwlnTwwhEEni9vZeK5dGRETUkRhYNchhM0OWgXRG/VadmlYLinFv+1ouKBmroRoZK4Db\ngUR6hXdT+L0/fQWXONCc6L7CwKpBelouKF3XD2oOqhhVWi60YbRNaZzNAYHVg9NDsJgFdmEn0uja\nzTC2dxJ48bXb7V4KERmIgVWD9AxiVrYC1dRYeT0OWMym9mwFVhlns5/TbsHbjg/ijn8P28Uu7URU\n33oxC33t1k5bx1YRkbEYWDVIzyDmnd00AHVbgSaTgNFBFzaDceRbXCDujyTR67TCYbMc+DxlO3CB\n24FEqin96XJ5GVeWg21eDREZhYFVg/QMYtZSvA4UTgamMrnSFmIr5GUZwUiy5onASudOeiGAdVZE\nWmyE4qU+dvzdIbp/MLBqkENnjZXLboHdalb1fKUD+3oLC9ijsTSyuTy8/dVPBFbq67Hh5EQflu9E\nEI2lW7A6ou6Wy+exFYrj2KgbI4MuvH4jiHSGA82J7gcMrBrksGsfxBzeTanaBlS0Y2ZgudVC/YwV\nUNgOlAFcWmYRO1E9/p0kcnkZ40MuzM14kc7kcXU11O5lEZEBGFg1SNkKVJuxSmVyiKeyqrcBgfbM\nDKzXHHS/C2y7QKSa0j5lzNvDliVE9xkGVg0qt1tQl7FS6qTUnAhUjAy6IKC1vayUE4FqA6vhficm\nfL14czWkecQP0WGjZJ/HBl2YGvegr9eGy8tB5PKtH11FRMZiYNWgcrsFdcGE0hxUS8bKbjVjqM/R\n2q3AyMFd16uZm/Uim5Px+gpPOBEdRLlJGh1yFQea+7CXyGDpNgeaE3U7BlYNKrVbUFljVephpSGw\nAgpfwJFYGvEW9btR03V9P25pEKmzGYzDbBLgKx4OmZv1AuDvDtH9gIFVg7RmrMpd122aPme8xQXs\ngUgSHpdV9clFADg63AtvnwNXrgeRyXJLg6gaWZaxHoxjeMAJi7nwFXxqcgBOuwULSxxoTtTtGFg1\nyGHXVmPVSMYKaE1gVephpaLVQiVBEDA360MyncO1W+EmrY6ou0VjaSRS2dJpXwCwmE04d2IIwWgK\nt7Y40JyomzGwapBTORWosmBbT/E6UChyBYCNUPML2Hd2U8jlZdWF65UuzHBLg+ggpcL14s2SQtlK\nf42/O0RdjYFVgyxmE8wmQVPGymwS4O7RthU45i1uBQaan7FSMyOwlpmJfrhdViwsBVo+goeoG5Ra\nLewLrB6YHoTFbMLCEgMrom7GwKpBgiDAYTOrHsK8s5tCX6+tNMpCLbfTih6HBRuh5gdWQR0nAhUm\nk4DzJ72IxtJYWYsavTSirlfOWPXc9XOHzYIzxwew5o9hK9z6oetEZAwGVgZw2CyqGoTmZRk7e2nN\n24BAIYAbG+qBP5xANtfcwnDlRKBPR8YKYLNQooMoN0ejg657HuPJWqLux8DKAE67WdUQ5t14Brm8\nrKmHVaWxIRfysoytcELX69XyN7AVCABnjg/AbjNjfpEnnIj22wjGMOC2l1q1VDo344UgAAuLHA1F\n1K0YWBlAyVjVCyL0Fq4rlK2DzSZ3YFe2Aoc8+gIrq8WMB6eHsL2TwFqgdd3iiTpdMp1FKJqqmq0C\nAI/LhpmJflxfiyBSPEFMRN3l3lumfURRNAH4LIBzAFIAflOSpOWKxz8O4LcAZAH8gSRJXxVFsQfA\nfwEwBcAG4LclSXq1CevvCA67GbIMpLP5A/s+KV3XtbZaULSq5UIgkkBfjw02DT2s9pub8eJH17Yx\nv+jHhK/XwNURda+tUCHbPL6vvqrS3KwPi7d3sLAUwHsuHGnV0ojIIGoyVh8B4JAk6TEAvwfgj5QH\nRFEcBfBJAO8C8BSAPxRF0Q7g3wJ4Q5KkJwB8HIBo9MI7iUOZF1in5YLSw6pfZ8ZqvBRYNS8LlM/L\nCEVT8Pbry1Ypzp7wwmwSWCtCVGG9YpRNLXNKyxKeDiTqSmoCq8cBPA8AkiR9H8DDFY89AuCiJEkp\nSZIiAJYBnEUhyEqLovgCgP8VwAuGrrrDlHpZ1TkZuKNjTmAlb58TFrPQ1IxVuNTDSvuJwEouhwWn\njw3g1tZeqRie6LCr1cOqkrfficnhXry1GkY8yYHmtWSyeTz7lau4uhpq91KI7lJ3KxCAB0DlZNCc\nKIoWSZKyVR7bBdAHwAtgQJKkp0RR/HUA/zeAXz/oQwYGXLBYtG09+XxuTc9vloFih3KHy37gmpLF\nMS8njg3Cp3N77IivF1vhOLzeXgjFlg1GXoetaCH4mxzzNPy+j50bxxs3QtjYSeH0yWEjlldXp/yb\n6AS8FmWdci3Ce2kAwAOzwxg64Obl8QsT+KsXrmHVH8O75yYM+/xOuQ5GuLoSxCtXt5CVgfe8/Zjm\n199P16JRvBZlRlwLNYFVFEDlJ5mKQVW1x9wAdgAEAXy5+LOvoLCFeKCwxr4tPp8bfv+uptc0i1wM\nmDa2ouhz1A4ON/yFURVyOqt77b5+J25u7mJxJYBBj8Pw67B8s3D357SaGn7fYU8hM3dF2saDx/ob\nXls9nfRvot14Lco66VqsrkfgsJmRS2Xg99fORp064gEAfPu123jb0T5DPruTroMR3rpe2CqVVkPY\n3o6WbjTVuN+uRSN4Lcq0XotaQZiarcCLAD4EAKIoPgrg9YrHXgXwhCiKDlEU+wCcBvAGgO8qrwHw\nYwCuql5pF1KOTdcbxBzeS8Fpt8Bu018UXh5t05ztQKXruq/BrUAAmBzuhdkkYGWDjUKJcvk8tsJx\njA256gYBR3w9GO534spKEJmsuubDh42yrRqNZxCMJtu8GqIyNYHVlwAkRVH8HoA/BvA7oih+ShTF\nD0uStAngMwC+A+CbAD4tSVISwP8B4IIoiq8A+F0UitnvWw4NNVZ6TwQqlNqMzSbVWSn1UHrmBO5n\ntZgxMdyL29u7TW9qStTpApEksjn5no7r1QiCgAuzXqTSOby5yoHm1WxW3FyubjDjQp2j7lagJEl5\nAJ/Y9+NrFY8/C+DZfa8JAfhZIxbYDRz2+oOY05kcYsksjo82tn+rfCmvN+lkYDCShABgUGcPq/2m\nxzy4ubmL29t7mBrzGPKeRN1ImfN5UOF6pblZH1549TYWlvw4d9LbzKV1pfWKHnkrG1E8fKo1dZxE\n9bBBqAFK7RYOyFiVWi00mLFSGgs2L2OVRL/bDqvFmH8aSjB1g9uBdMhthIqtFgbrZ6wA4MR4Hzw9\ntsJA8zwnGFRKZ3IIRpI4NuqGAODGOr9fqHMwsDKA0m7hoEHMOw02B1XYbWYMeexN6WWVy+cRiqZ0\nj7KpZmq8GFjxi48OOaUmaNyrLmOlDDTfjWewvBap/4JDZCucgIzCjduYtwerm7sMPqljMLAygJoG\noUrXdb3NQSuNDfVgZy9teI+bcDSFvCwbUl+lGBt0wWEzs4CdDr2NYAxmkwBfv/qDIRzKXJ1yYzk2\n6MLUmBupTK5p5RFEWjGwMoDTXr94fafYv0bvnMBKStfmTYNPBionAo0MrEwmAcdH3dgMxpGo05me\n6H4lyzI2g3H4+p2wmNV/7Z4+NgAHB5rfo9Ro1evCNMsNqMMwsDKAkrE6qN1CuMGu65WUAnajtwP9\npROBjbdaqDQ15oEMYHWTJ3focNqNZxBLZlUXriusFhPOnhhCIJLE7e29Jq2u+5QzVj3lcgOeDKQO\nwcDKAGqQ0kowAAAgAElEQVTaLSjF643WWAGVMwONzVgFm5CxAljATlQKBFS0WtiP24H32gjGYbOa\nMOCxY8LXC4vZxDpO6hgMrAxgtZhgNgkH1ljt7KZgEgR4XLaGP2+0SRmrZmwFAsA0C9jpkFMzI7CW\nB6eHYDELWFgKGL2srpSXZWyG4hgb7IFJEGAxmzA50os7/j02U6WOwMDKAIIgwGEzH5yx2k2hr9cG\nk0n92IVaPC4rXHZLU2qsjOxhpRhw29HXY8ONTQZWdDiVAyvtGSun3YLTxwZxe3sP/h0ONA9Fkshk\n83cFqVNjHuTyMm5tcbuU2o+BlUEcNkvNGqu8LGNnr/Gu6wpBEDDmdWE7nDC0o3kgksCAx66puFYN\nQRAwNeZBKJrCTnFLlOgwUbLLSh86reZmCw1CuR0IrBeD1NGKwEopYOfpY+oEDKwM4rCbkUxVz1jt\nxTPI5WVDTgQqxgZ7kMvL2AgYsx2YzeUR3k3Ba3C2SjE1Vug4zzorOow2gnH09drgcqiZe3+v8zM+\nCAAWGFhhsxikjldk/8oF7Px+ofZjYGUQZzFjVe1ItJEnAhVjxSaDdww6KRTaTUGWgSGDTwQq+MVH\nh1Uqk0MwmrwrENCqr8eGExN9WLoTQTSWNnB13UcZQF+ZsRoecMJlt7COkzoCAyuDOGxmyDKQzt67\nNWfkiUDFWHEsxp1tY44YB3eMG75czfFRFrDT4bRZZetKj7kZH2QAl5YPdxH7RiAGQQBGBsrX0yQI\nOD7mxlY4gVgy08bVETGwMozDXnteoFJX1N/b+IlAhVK4aVTGyq+cCOxvTmDV67RieMCJGxu7bHRI\nh4oyI7CRjBUAzIlsuwAUMla+fuc980yVti6r7GdFbcbAyiClXlZVWi6U5gQaWGPl7XfAYhYMy1iV\nWy00ZysQKBSYxlNZbId5sokOD6MyVsP9Tkz4evHmaujQTjHYS2SwG89grMohABawU6dgYGWQg5qE\nNqPGymwyYWTAhdtbe4ZkgIKR5m4FAuU7Sn7x0WGinGKrFgxoNTfrRTYn4/WVYMPv1Y0OarTKge/U\nKfQdUaF7OJWxNlXuJJtRYwUU7oDXAjHs7KUbfm9/JAmTIGDQY+waK1V+8T12ZtTQ975yPYDs9SDm\nTgwZ+r7tFIml8eWLN5DJaGypIQAfetc0Rvua9/8lqbcZjMFuMxvy+z8368OXL67iyxdX8cZKSNNr\nR7w9eOrhCcPbqbTSQY1W+3vtGHDbsbIRhSzLEITGewYqdvZS+Ob8Gn7qncdgtZgNe1+6PzGwMojj\ngEHMO7spOO3m0kxBoxz19eI1yY/ltQjefmq4ofcKRpIYcNthNjXvS3dyuBdmk2D4ycB8XsZ/++e3\nEI1n8Lu/dB5npgYNff92+caPbuOl+TVdr73jj+HfP/OwwSsirfJ5GZuhBCZ8PYb8oT863Isjvh6s\n+WNY19FqZWzAWRqR04026zRanRrzYH7Rj/BuytBGx1/93iq+Ob+GsUEXHnvA2JtCuv8wsDKI84BB\nzOHdFPoNrK9SnDvpxT9+9wYWFv0NBVaZbB47uynMHu03cHX3slnNOOLrwc2tPWRzecPunK+vRxCN\nF04Cff6Fa/gP//odsFu7/65yYSkAq8WE3/+Nt8Os4Vo994KEqzdC2A7HMTzQ+PYT6ReIFJr46hll\nU40gCPj3zzyM8J62lgvrgRg+8/dXML/o7+rAal1ptFrjek6NuTG/6MeNjahhgVVelkvjhFY2ogys\nqC4GVgapVWOVzuQQS2ZxbNRt+GdOjvRieMCJy9eDDQUqod0kZDS3vkoxPebBra09rPljhl0T5ZTU\n7GQ/Fm/t4MsXb+AX3nPSkPdul81QHOuBGM6f9Goeg/L2U8O4eiOE+cUAnn7HZJNWSGo0MsqmFqvF\njOF+bYdMvH0ODPU5cHk5YOhNTattBuPwuKzodVqrPl5ZwP6Q2FgWX7G6sVuqk2UfPlKjO3+7OlCp\n3cK+Giul1YKRJwIVgiDg0QfGkEhlce1WWPf7BHaUVgvNOxGoMLqAXZZlLCwGYLeZ8fsffwzePgde\n+MFt3DaoDUW7KMGinuzC+RkvTAKP5XeCRoYvG8lU/K6IJbNYvL3T1rXolcnm4I8kSkPoqzk26oEA\nYwvYF5YKv0dmk4BbW7uGjhGj+xMDK4M4ixmrxL6MVTNOBFZ69IExAMD8ov6mgYEWnAhUGH1yZ80f\nw/ZOAmenh+B22fCxp0TkZRmfe/4a8vnu7Ze1sOiHIBSCJK08LhtOTw3h+loEEc5mbKvSjEADM1Z6\nPVb8rlho4LuinbZCCcjywUGqy2HB6JALq5u7hv3+zy/6YbOY8I63jSCbk3HH3903bdR8DKwMohSm\nJ/fVWIVLzUGbE1i9bWoQvU4rFpb8yOtsu1DuYdX8wGp8qAd2q9mwlPr+zM6D00N45PQwVtajeGlB\nX+F3u4V3U7i+HoV4tL/mlkc9jz4wBhnAwiHv0t1uG6E4TIKAkYHmZ4PrOXNiCD0OC+aX/F3ZpFcZ\nZVNvW3VqzINkOld6fkOfGYxhIxjHA9NDECcLNahs50D1MLAySOlU4L5BzDu7hSJTo1stKMxmE86f\n9CKyl9b9C68EVkMtCKxMJgHHRt1YD8QMaXI4v+iH2STgwelym4Vf+cAsXHYLvvjt66WMYTe5VNx6\nuNBAkfFjDyqZTG4HttNmMA7fgLMjaposZhPOnvAivJvC6mb3dScv97A6eFu13IG98QBI+f25MONl\nA1JSrf2/7feJWhmrnSb1sKp0YbawXaT3j2ggkoDZJDR1jZWmxzyQAdzaauzLPbCTwK3tPZw+PgCX\no3wOo6/Hhl9830kk0zn85dcXG1xt680XTyDNzegPrEYGXZgc7sVbq+FD26W73aLxNPYS1buEt4uS\n2e3GgHtDZaPV6XHjAqD5xQBMgoBzxUMkhWx79wWl1FoMrAxSt8aqSVuBAHDm+CDsVjPmF/Wl+AMt\n6GFVacqgL75SAFIls/P42THMTvRhftHfVX9E4skMrt0M49iou+EM4tysD7m8jCvXD2eX7nYr9Vzy\ndk5g9cD0IGwWU1f9Tig2gjHYLCYM1vm9mPD1wmIWGt6yC++mcGMjCnGysCVvMgk4PurGhkHZdrp/\nMbAyiNVigkkQqtZYmQQBfT3GDWDez2Y144HpQWyFE6XxGWplsjlE9tItqa9STI0V2iw0+sU3v+iH\nAODCyXsLvE2CgF9/+hQsZgF/+fXFrvkivHw9iFxexpyOovX9LnRxduJ+UNq6Gmx/4brCbjXjzNQg\nNoLx0vq6QV6WsRmMY3TQBVOdRqtWiwlHh3txe3sPmey9DZvVqnYyd2q8kG2/2YVbqdQ6DKwMIggC\nnHZzlRqrFPp6bTCZjBuvUI2ybaT1j2ipcL0FrRYUQx4H3C5rQwXs0XgaS3d2cOJIH/pqZAPHvT34\n0KPHEN5N4R++vaL7s1ppoYE2C/tN+Hrg63fgykoQmSyPiLdap7Ra2E/5t6U0vewGoWgS6Wxe9SDr\nqTEPcnkZtxpou6K0WbhQcZOj1FmxnxUdhIGVgRw2810ZK1mWsbPXnK7r+509OQSzSdAcWAVbeCJQ\nIQgCpsY8CEZTiMS0dZBWXF4KQJbrByA/8dhxjA668M35O7i+HtH1Wa2SzuTw+koIIwNOjHsbz3II\ngoC5WR9S6Rzeuqltrhw1rlMDq3MnvTAJ2r8r2knZVh1X2baiXMCuL7MUS2Yg3drB1Jj7rg7uHCRP\najCwMpDDbkGiImO1m8ggm5NbUhTe47Di1GQ/bm7uIhRNqn5dK1stVGr0zq90Wmf24C0zq8WEZ54W\nIQP43L9IHd3c783VMFKZHC7M+gwbIHtBZyaTGrcRjKGvxwaXQ1/LjGbpdVoxe7QPK+vRrjk1q5Q4\nqM1YlQrYdZYbXF4OIJeXS78/ikGPHZ4Gs+10/2NgZaBCxipXKiDf2W1e1/Vq9Jz4KQdWre2z00ij\n0GQ6i6urYRzx9WBExSw8cXIAT5wdwx3/Hr72w9uaP69V5peM2wZUnDzSB4/LiktLga5umNpt0pkc\ngpFkx2WrFMq/MaW1R6fbLLVaUJexGhl0wWnX3y9PaaK6/3dRybaHoik236WaGFgZyGmzIC/LpXqW\nctf15hWuVzqvIzvRyq7rlaYayFi9sRJCNpfX1I7gF957Eh6XFV/+7g1s7yQ0f2az5fJ5XFoKoK/H\nVrrbNoLJJOD8jA/ReAbLa529FXo/2QzFIcPYGYFG6ra2CxvBOAQAo4PqbgBNgoDjox5shuKIJzOa\nPiudyeH1G0GMDrqqbsmXbgrZdoFqYGBlIMe+lgs7Te66vt+A247pcQ8Wb0ewl1D3ZRKIJGE2CS1b\no6LXaYWv34EbG1HNLSL0zNHrdVrxyx+YQTqbx3MvSB3XeXr5TuH/swsz3rqnnrSaa7DPGWm3GdK2\nddVqgx4Hjo26ce3WDmIaA4922AjG4O13wGoxq35Nqc5K4wm+qzdCSGfyNb9f2CiU6mFgZaD9TUKV\njFWrGm8ChWAjL8u4rHKUSSCSxJDH0fRTi9VMjXkQS2bh15BByubyuHw9iCGPA5MjvZo+7x2nR/DA\n1CCu3gjh+29uaV1uU83X2Howwuljg3DYzFjo0lEm3Wg9oK5LeDt1S5+zvUQG0XhGc/ZPb1Z8fung\n+s3jPBlIdTCwMtD+sTat6Lq+n3I0WE12IpXJIRpLt2SUTTV67vyu3Sp0Er8w69Vc4C0IAj72lAib\nxYS/fnFJdVav2WRZxvyiH067GaeODRj+/laLCWdPDMG/k8Qdf/f0LupmSsZK7Sm2duiW7cDNkL7T\nlXoK2HP5PC4vB9HfaysFZvv1Oq0Y7nfixrr2bDsdDgysDHRvxqrQSqCV22xjQz0YG3Lh6o0QUpmD\nm+MprRZ8/e0JrMoF7OpT9aXMjs5xL75+J376iSnsxjP425eWdb2H0W5t7SEYTeLsCW/TZsrxdGBr\nbQTjsFvN6G/hTZVW40MujAw48fpKEOk63xXttBHQVriuGHDb0d9r05RZUsooLsz6DtySnxr3IJ7K\nYjvcefWa1H4MrAzkLGaslJYL4d0UHDYznHbLQS8z3NysD+lsHm+sHNy7qDx8ubUnAhWTI26YBEH1\nF19elrGw5Eev04qZo326P/eDbz+KyeFefPfKBq7dDOt+H6PoqRnT6uyJIVjMQqkBKTVPPi9jM6Su\nS3g7KX3O0pk83lxt/+9BLRtKvZqOmYtTYx7s7KVVt5UoNeitc+PWyOEbuv8xsDLQ/ozVzl6qpduA\nCrUp/mCbTgQq7FYzjvh6cGtrV1V/qRvrUUT20jh/0tvQXEOzyYRnfvwUBAH43AtSQ2MvjLCw5IfF\nbMIDU4NN+wyn3YLTxwZxa3tPU01bN1NOWu4fM9VswWgSmWy+o2YE1tIN24Gl5qA6muZqCYDk4o2b\ny26BONl/4HObWcC+FYpj+Q5P8HYzBlYGqhzEnMnmsJfItPy0HQAcH3VjwG3HleuBAwMWf5uag1aa\nGvMgnc2Xin0PorYpqNrPfd/cBLZCcbz61nbD76fXdjiOO/4Y3nZ8oOmZTeW6HZas1VcuruIzX7yC\n//w3l1r6uaWO6zoyLK02Ne5BX68Nl5YDyOU7s3nuejCGXqcVvU7tjVbLrRHqB0A3t3YRjKZw7uRQ\n3S35yZFeTdl2Lf6/L72B/+sLC3VLOahzMbAyUGXGKrxXqK9qR8ZKEATMzfgQS2axeHun5vPa1Ry0\nUqnAtM4XlFLgbbeacea4MZmd980dAdDeu/Vmngbc78KMDwKA+S6aEafXeiCGf37lJgDg5UtreH2l\ndSffNjQ2s2wnkyDgwowPe4lMR2ZJMtk8/DsJ3acrp0YLA9/VFLArv4v7u61XY7OaMeHrwc3NPUOn\nOWyF47jjL7znrS32yepWDKwMVFljtdOGVguVLqjoXRSMJGAxC+jrbU0D02pKqfo6X3zrwTi2wgk8\nMD0Im1V9L5uDaCn0b5b5JT8EATg/03gWrp6+HhtOTPRh6c4OonF9Mxq7QV6W8fnnryGXl/EzT0zB\nZBLw3AsSUunW/H/cqTMCa1H6nL3WgZnM7XAcsqw/SHU5rBgZdGF1M4p8nRN8C4t+WC0mPDg9pOq9\np8Y9yObyWDPwpK3S8R3QN5WCOgMDKwNVZqxa3Rx0v9mj/ehxWLCwFKh5JLjUw6qNBbbjXhdsFlPd\nlPq8yqJSrZRC/6s3Wj+kOBJL4/qdCGaO9MHjak1wOzfjgywDl+7jrNV3Lq9j8U4ED8368FPvmsLP\nvPsEApEk/unijZZ8/mYwBkEAhlWMW+oEpyYL29ALi53X58yIIHV6zI1EKoetYhF8NVuhONYCMZw5\nPgi7Td2NWzMK2CtvhNmAtHsxsDKQ0nk9mc6Vx9m0KbCymE04d9KL8G6qaufhZDqL3XgG3v72bQMC\nhULyY6NurAViB2YUFhb9MJsEnD2p7m5SrXYW7y4s+SGjNduAirn7vM4qspfC3710HQ6bGR99chYA\n8MsfFOHtc+Brr95uyfbKejAOX78TVkt3fL1azCacOzGEYDSFW1t77V7OXcrbqvoDKzUBUL2moNUY\nXcAe2Uvh+lqkdFPME4fdqzt+87uEo1h8nExl29J1fb+DgoZgBxSuK6bGPJDlQvFoNaFoEqubuzg1\n2Y8eh/YC1oMohf6X21C8q6T9L7QwsBoecGHC14Orq4VGq/ebL7y4hHgqi59794nS757DZsGvPy0i\nL8v483+51tRh1LvxNPYSmY5uDFpNp54O3Cg1B9V/PdX0y5tfLG7Jn1QfWI15XbBZ62fb1VpYDpRu\ntKbGPPDvJLF7H2/Z388YWBmoMmPVjq7r+52ZGoTNYqr6ZRnooMCqXofk8mlA4wMQQRBwYcZbKPS/\nVbvQ32iJVBZv3Qzh6HAvfC3OGl6Y8SGby+ONNmx/NtOV60G8+tY2Tox78N4LR+567IGpITx6ZgSr\nm7t4cf5O09bQ6TMCa3lgehAWs6mUuekUG4E4rBYThjz6v6cmh3thNgk1M0s7eylcX4tCPNoPt4Yt\nebPJhOMjbqwHYoa09CiXO3h1zzmkzsDAykA2iwkmQUAiXchYCQLg6TE2w6KF3WrGmalBbATjpZS6\notwctP2BVb3ZWwtL6k/r6FG+W29d3dGV60Fkc3JLtwEVymfeT9uBqXQOz70gwWwS8MzTp6rOvvzl\n982gx2HBP7y8glA02ZR1dFOrhUoOmwVnjg9gzR/DVrh2LVIr5WUZG6EYRgZcDc0ytVrMmBjuxe3t\nXWSy92alLzXw/TI1Xsy2NxgAxZNZvLUaxuRIL7z9zoosG7cDuxEDKwMJggCHzVyqserrsTXUyNII\ntVL8gWJzUF8bWy0ofH0O9DqtVQOrvUQG0q0dTI97mpb9U2oa5ls4pHhhqfnd1muZHOnFkMeBy9eD\nhh4Vb6d//O4KgtEknnpkEhPD1Ydze3ps+MX3nkQqncNffG2xKf9fl2qCdDSzbLdywN0ZBxt2dlNI\nZ/IYN6DR6vSYB9mcjDv+e2vIGumPV67faiywen0liFxeLh3OmWpiA1JqPgZWBnPazUikstjZS7d1\nG1Bx7qQXJkEoZX0UnbQVKAgCpsY8CESS97QBuLwcQF5ubmbHYjbh7Inahf5Gy2TzuHI9CG+fAxO+\n1v8BFgQBF2a9SKSyHTHSp1E3N3fx9R/ewXC/Ex9+1/EDn/v42TGcmuzHpeVAU+qJlIyVnvEr7XZu\nxgtB6Jw6q/VikGrEtaxVwB5PZvHWzTCOjbh19fMzqoB9/1irvh4bhjx23NjgoOduxMDKYA6bBTu7\naWRz+badCKzU67RCnOzHynr0rnlZgUgSVosJnp729bCqNDVWaOS3uu8LqnQ32eQ+T60s3n3rZgjJ\ndA5zsz4IbWp18VCHFitrlc/L+PPnryEvy/jY02LdHmeCIOBjT4mwmAX8xdcXEU8aW8C/EYzB49LX\nJbzdPC4bZib6cX0tgsieutl6zVRutdD4zUetrbUrKwHk8rLuaQ5DSra9gS27TDaHKytBDPc7caTi\nRmtqzIPdeAbBJm1bU/MwsDKYw24uNaLrhIwVUJHiryhMDewkMORxtO0P+37VCthTmRyu3ghhbMjV\n9C7WD0wXCv33Z/aaoZXd1ms5OdGHXqcVC0uBuo0TO9k3XruDm5u7eOzMqOqO/GNDPfjJdx5HZC+N\nL7583bC1ZLI5BHaSXdFxvZa5WR9kFE6otdumgY1WxwZdcNjM92SWGv1dFAQB0+MeBKNJRGP6TvC9\ndTOMVDqHC7Peu76Py+N4WMDebRhYGUxpEgq0r4fVfkq2RylWTqSyiCWz8Pa3fxtQcbxKrcIbKyGk\ns/mWBCBKof96IFY62dUM+byMS0t+uF1WnDzS17TPqcdsMuH8SS8isbSqcR+dKBhJ4ksvr6DXacUv\nvf+kptd+6NFjGBty4Vvza1heM2aUy1YoARnd03G9mrmZ+hMbWmUjGIMAYMSArUCTScDxUTc2g/FS\nljKTzeH1lSCGB5w40kBNXKONQvdvAyqmVU6loM7DwMpgzoquvZ2SsRr0OHB81I1rt3YQS2Yqeli1\nv3Bd4XHZ4O1z3FVT0OoC71ZsBy6vRRCNZ3BhxtvQSScjdGrvIjVkWcZffE1CKpPDL773pObO9Raz\nCc88fQoygM89f82QIv5STVAXZ6y8/U5MDvfirdWw4dukWm0E4xjqc8Bu0AirqTEPZAA3NwuBypur\nhUzR3ExjW/KNBFb5vIyFpQA8PTacGL/7RuvYqBuCwAL2bsTAymB3Zaw6JLACCn9Ec3kZV5aD8BdP\nBHZC4XqlqTEP9hIZBCJJZHN5XF4OYMBtx/HiINVmUwr9mxlo1Lo7bYczUwOwW82Y78BRJvW8Jvlx\n+XoQpyb78a4HR3W9x+zRfrz7/DjW/DG88OqthtekbF2Nd3HGCih/V7RycPV+8WQGkVja0G3VUgBU\nPKBi1O+iUh+qJwBaXotgN57B+ZP33mg5bBaMD/Xg5uZuU5vakvEYWBnMUZmx6pCtQKDcXHN+yd9R\nJwIrVd75Ld7eQSyZbfhuUotepxWzR/vuKfQ3iizLWFjyw24z4/QxdfVAzWS1mPHg9CC2wwmsB4wb\nJNts8WQGf/mNxVLWqZF/Hz//nhPw9Njw5YurDfdv2ujS5qD7dUImsxmDrKcrCthzeRmXlguZoukj\nnobe161k29e1n+CrF9xNjXmQyuRK2VDqDgysDKaMtQE6ZysQKNxFjwy68PpKsPSl1UlbgcDdBezl\ncS/NPQ24n/IFd6kJHajv+GPw7yRxdnqoY+bIXeiAP6Ja/f23VxDZS+On3nms4fqbHocVH/3ADDLZ\nPD7/vNRQ5m4jEIPNasJgA13CO8ERXw98/Q5cWQkik609v7OZSm0rDAysBtx2eHpsWNmI4tpqCLvK\nlrwBN27T4x7Ekln4dxKqXyPLMuYX/XDYzDh9bKDqc9gotDt1xrf7fUSpsbLbzHBWBFntJggC5ma9\nSGfy+MGbWwA6L2N1bKRcUzC/5EePw4LZo/0tXUMz79Y7aRtQce7EEMwmAfMtOA1phOU7EXxrYQ3j\n3h78+KPHDHnPt58axtkTQ3jrZhivXN3U9R55WcZmKI7RQZchf6jbqfBd4UMqncNbbepzthEqZGiM\nnLkoCAKmxzwI76bw3y/eAGDc76KeRqF3/DEEIkmcPVH7Rmu6wcJ4ag8GVgZTMladtA2oUL5EEqks\nbFYT3K7O6rVjt5lxxNuD5TsRhHdTOHfSC4u5tf9EBz0OHCsW+seTGUPfe2HRD7NJwNkTQ4a+byNc\nDitOHRvAzc3d0qGGTpXN5fG5568BAJ55WjTs34YgCPi1J2dhs5rw1y8u6xp8G4omkc7mu7rVQqV2\nbwduBJqzrarUQ718aQ1Oe+1Mkfb31R4AqbnROuLrgcVsYgF7l6n7zSSKokkUxT8VRfEVURS/JYri\nyX2Pf1wUxR+Jovh9URR/svizQVEUA8Xnf0sUxf+pWf8DOo1SY9VJ24CKqTEP+noLp6e8fc6O6WFV\nSfmCApo3G7AepXj38nXjinf9Ownc2t7D6eMDHZXJBCqO2HfYAN79/uUHt7AWiOE9F45gZsLYTKa3\n34mfeWIae4kM/valZc2v79YZgbWcGO+Dx1Xsc9aGwumNUBw9DgvcBjdaVbbWAODB6SHDgvNjI26Y\nhNqDnquZX/TDYhbw4HTtGy2L2YRjI71Y88eQzrRnW5a0U/MN/xEADkmSHhNF8VEAfwTgpwFAFMVR\nAJ8E8DAAB4DviqL4dQBzAL4gSdJvN2fZnctZPBXYKT2sKpkEAXMzPry0sNZx24CKqXEPvnNlAzaL\nCQ9Mt6fAe27Why+9vIL5RT8eO6PvxNl+Cx24Dag4P+PDc19bxA/e3MKExn4+TocFx0cbK/5VYysU\nx1curqKvx4aff/d0Uz7jAw9P4PtXt3Dx9U3MTPTDp+F35EoxCO/GGYHVmEwCzs/48PLldXz78jpG\nB7TVY06OutHj0BcUZXN5+MMJTB/xGH7zV/lv1cjfRbvNjHFvD25t7iKby9cN2Pw7Cdze3sOD00N1\nb7Smxjy4vh7Fre29tva+6xbJdBZ78Qy8/e2rIVYTWD0O4HkAkCTp+6IoPlzx2CMALkqSlAKQEkVx\nGcBZAA8BmBNF8dsAtgF8UpKkDWOX3pncPYUvk04NXObEQmA13MZ/dAdRermcmRo0rH+NVuNDLowM\nOAsNSjO5umNS6snm8vjOlQ0IAC6cbG0xvhoDbjtOHPHg+loU/+mvL2l+/c/+2DR+8p3HjV9YkSzL\n+PwLErK5PD765CxcOv9g12M2mfDMj4v4j5/7Ef78X67peo9ub7VQ6SGxEFg994Kk+bV9PTb8x998\nh67RPlvhBPKy3JTsX6/TitFBF4LR5IGZIj2mx92449/DeiCGyZGDW8SUb7Tqfx9MjXuA1woF7Ays\n6vv8CxJ+dG0bn/3Uu1teSqJQE1h5AFS2Js6JomiRJClb5bFdAH0ArgF4TZKkb4ii+KsA/jOAnz/o\nQxhXTjMAABfvSURBVAYGXLBYtP0B8/la099IC6+3F7/7q8BDp4bh1ti0UC8t1+Hd3l6YLGY8cMLb\nkaeXfD43/t3HHsapY4PwabxLVl5vhMfPH8EXX1rGWjiJRxrMWv39N5ewFojhg+84hpNTrQustFyL\n3/noQ3jl9Q1oPRT3/Cs38JXvreKD75zCEV+vxhWq8+IPb+Gtm2E8fHoEP/74tK4shtpr4fO58Qef\nsOHqSkj7Z/Q7cP5tY5pf10pa/k28Z6gXqZyMnT1tNWd3tnfx8sIavvLKTXzyly5oXSKWigXgJycH\nm/Id/78883YkkllMThhTX6U4OzuMly9vILCXxkMPHLzu11fDEATg/Y8ex4D74O/hh88IePYrb2I9\nlGja37xO/FuqRyqTw8JSAMMDLoyO6Mt4GnEt1ARWUQCVn2QqBlXVHnMD2AHwAwBKU5gvAfgP9T4k\nrLGHjM/nht/fmTOUzhztQzKWQjLW/EGmeq7D6Yk+5FIZ+P3GFmcb5dQRD5DNav7fZeS/iVMThTvD\nl354C1PD+rd3tsNx/NUL1+BxWfFTj0227N+s1mvhMgt4//lxzZ/T77Tgs//4Bv7kr17Dv/2VC4Zv\n3UTjafzZP70Bu9WMX3rPCQQCe5rfQ+u1GOtzYOyC9msBoGO/kwB9vx8P6xh+ns3lcWMtgq+/egtz\nJ4cgTmoLYK7dKGyrehzmplzPPrsZJyf6DX9vb7F+9criNuYOOKASjaXx5o0gThzpQzaZgb/OIRmL\nLMNlt+DaarAp16OT/5ZqtbDkRyqdw7kTQy35rqgVhKnJk10E8CEAKNZYvV7x2KsAnhBF0SGKYh+A\n0wDeAPBnAH6u+Jz3A3hN9UqJOsDUeKHQ/9JyALm8vnEnsizjuRckZLJ5/PIHZnTXnHSyh0Qfzp/0\n4tqtHXz3deN3+//mxWXsJTL4mSemMNSh2+t0t1LjVgCfe17S3Atrs9gMs9tmLh7x9cBmMWFl/eA/\nzJeWA5BlYE7l4RxBEDA15sZWOIG9RGfeDHeKTmlpoyaw+hKApCiK3wPwxwB+RxTFT4mi+GFJkjYB\nfAbAdwB8E8CnJUlKAvg9AP+jKIrfAvAJAIfmVCDdH0yCgAszPuwlMli+o29I7/ff3MLV1TAemB7E\nO06PGLzCziAIAn7tg7Ow28z4228uI6qjVUEtV1dDeOXqJo6NuvH+hycMe19qvulxD9730AQ2Q3H8\n8ys3Nb12IxiHxWzquAbG9ZhNJkyOurEW2EMqXTuYnNdQX6VQTjOubrLtQi25fB6Xl4Po67Xddfqz\nHepuBUqSlEchOKp0reLxZwE8u+81NwC814gFErXL3KwX31pYw2uLfs3bGXuJDL7wjSXYLCZ87INi\nR7a2MMqgx4GffWIaX3hxCX/z4hI+/lNnGn7PdCaH556XIAjAv3r6FMwmttzrNj/7Y9OYX/Tjn1+5\niUdOj2BcxYlJWZaxEYpjdNDZ9iHlekyPebB8J4KbW7tVmxsnUlm8uRrGhK8HwwPqM3KlPlnrUTww\n1Tl98DrJ0u0I9hIZvOfCkbY36eW3FVENpyYLPacWFgOaR5387TcLW1gfeWIavg49gWmk9z80geOj\nbrxydQtXb2gv/N7vK99bxfZOAk8+fBTHWjSEm4zltFvwa0/OIpeX8fnnryGv4ncovJtCKp3DaJc2\nWq3XKPSNGyFkc3nNW1V6OrsfNnoygc3CwIqoBovZhHMnhhCMJnFrS30h5Fs3w/ju6xuYHO7Fk28/\nHFtYJpOAZ54+BZMg4PMvXEOqgWaGd7b38PwPbmHI48BHnpgycJXUahdmfZib9WHxTgTfubxe9/nK\nIOtubbRamu1XI7DSWwPU32vHgNuOlQ3tg54PA2XAvdNuwSmNuwvNwMCK6ABahxRnsjl8/vlrEATg\nmR8/XFtYx0bd+ODbj8K/k8RXLq7qeo+8LONzz19DLi/jY0/NwmHrrC71pN2vPjkLh82Mv3vpOiJ7\nB5+U3ggUC9e93RlY+foc6HVasVJlaHI2l8eV6wEMeRw4Oqy9Ncn0mAfRWBrh3eafNu82t7b2EIym\ncO6Ecd30G9H+FRB1sAenB2Exm7CgctzLV793E1vhBN7/0MRd43kOi59+fArePgee/8Et3N7Wftz5\nWwtruL4eLQ5Gbn9Knxo34Lbj5959AvFUFl94cenA55YzVt25FSgIAo6PuRGIJO85yHHtZhiJVA5z\nsz5dNZdKNqxa0HbYvdYhpwEVDKyIDuCwWXDm+ADu+GPYrtNrbS0Qw3///k0MuO34mSeaM3al09lt\nZnzsKbGUedIyZy68m8IXv30dTrsFH/3ATBNXSa323gtHcGLcg1ff2i6N/6lmszhzcbRLtwKBQmYJ\nAFb31UM1WgOkZ9DzYbGw6IfF3L4xaPsxsCKqo7wdGKj5nMotrF/74GzHDVpupQenh/DI6WGsrEfx\n0sKa6tf91TcWkUjl8AvvPYG+Dpy1SfopNXhmk4DnXpBqtiNYD8Yw5HHAbmvPOCsjVAuA8rKMhaUA\nep1W3QPEj4+6IYCB1X5boTjWAjGcOT7QMaUDDKyI6jg/44UgAPMHbAe+fHkdy3cieEj04YLKxn/3\ns1/5wCxcdgu++O3rqmpCFpb8eE3y4+REH37snL6u59TZJoZ78dQjkwhGk/in79645/F4MovIXrrr\nGoPuVy2wWlmPIhJL4/yMV3cbCafdgtEhF1Y3dzVlgu93yvdyp2wDAgysiOryuGyYmejH9TsRRGL3\nNsDc2Uvh7166DqfdjI9+YLYNK+w8fT02/OL7TiKZzuEvv7544HMTqSz+4muLMFecLKT704ffdRzD\n/U587Ye3cXPz7q2yzWJ91WiXB1aeHhuGPA6srJdP8BnVEXx6zINkOleqRaPCtRUE4JyO8UvNwsCK\nSIW5GS9koGoR+xe+sYREKouff/cJDLi5haV4/OwYZo/2Y37Rf+Cpyi99ZwXh3RQ+9OgxHFHRRJK6\nl81qxseerl6Dt1EcZTPepT2sKk2Ne7CXyCAQSUKWZcwv+mG3mnHmeGOtAErtHFjADqBwU7uyFsXM\nRD88Llu7l1PCwIpIhbkabRcuLwfww2vbOHHEg3dfONKOpXUskyDgmadFWMwC/vLri0iksvc858ZG\nFC/+6A5GBl34yXcea8MqqdXOHB/EY2dGsLq5ixdfu1P6+UaxcL3btwKBcgH7jY0o1gOx/7+9e4+N\n8krvOP59x+P72MYG37DxBWyOA7lwqQKBhIQAgSQltNluSTdZ2I2qKqtKbdWqTbvabf/pP5XaVS/R\ndqvtbgJh022SJlE3qrlEJECSJRuyEMgGHxvMxQQDtsH4fhl7+seMiQmD7bFfezye30dCmsvr9z0+\nPJp5fM55n8OVa93cNT+HRO/E1o5pAfvNjtU1E2B6TQOCEiuRMZkzK5WSPB8nz167kSD09PnZtddq\nCmsEhbPTeWxlKdfae3njYP1N7w0MDrKjuoYAsH2jmfCXjsSOresqSU/x8sbBelqu9wBfjljFatX1\n4coLg7sFnGlsc3Vj4Hl5PrwJjhKrkBt9O42mAUGJlciYLV2Yy8Bg4Mbt4m8dOkNLWy+bVpRQnBt5\nwb948fh9ZRTkpLH/kws31eDZ9/EFzl/p4P67CqkqjX61ZJk6mWlJbH24kt7+4Bq8QCBAY0sX6Sle\nMtMSo928CSstyMBxglN2v65rJsHjcPeCie/x503wMC8vg4YrHfT7x7+7wUzQ1ePn5LlrlOT5mDPN\ntg1TYiUyRsOnA89damffkQbyslPZvKosug2b5hK9HrZvMgSAl6pr8A8M0tTazVuH6vGlJvL7D1dE\nu4kSBavvKqCqZBbHTjXzq5NXaGrtpmB22ozYsDwlycvcOenUN7Zx7lI7VaXZpKW4kzDOL8xkYDDA\n+XEU4J1Jjtc3MzAYmHbTgKDESmTMinPTyZ2VwvH6Fl6sPkkgANs2GpISNYU1GlOSzQN3F3KhqYN9\nHzfw8l5Ln3+QP1hfiS819kcoJHKO47BtUxXeBA8vVQdrwMVqxfVwygsz8Q8EF+e7+eVfPjc0zRjn\nC9iH6goqsRKJYY7jsLQyl96+Ac5f7mDVnQUsKpselX5jwdfXVpCZlsjrB07zWf1VFpfnsHJRfrSb\nJVFUkJPG5lWlNzbtjtU9AsOZP2xLqyUV7q0B+nIBe/soR45uKuthuXmtfv8AJ+pbyJ2VQlHu9EvG\nlViJRGDoryNfaiJbNYUVEV9qIk+tryQQCE4PfvORhTNi2kcm5tGVpcwNldmYaSNWAAvmZrpahiU/\nJ43U5IQJL2C/1t7L8z/6JS+8dsyllt3er2ub+JN/OcTHNVdcOd/nZ6/R2zf+fRcn2/So/y4SIyqK\ns/jtVWXcUTKLjGlUNyVWrLgj/0Z17bzsmTM6IePnTfDwnS2LOfDpRRaXz5ybGEryfWy5v5zFLo9q\nexyHsoJMTp67RldP/7jXbv3XO7W0tPWw5/A5qoqzuMfFUbXhOnv62bnH0tXr5+U9lioXPjvdvNNy\nMmjESiQCHsfhyTXzuUNTgOPiOA4b7y3h7gXT6/Zoia6iXB/fWL9wRpXccByHLfeXU1Gc5fq55w8V\nCr00vunAY3XNHLFNFOWmk+Bx2LXX0tN3a505N7z+3mnaOvsoyffR0d3Pq++emtD5BgcDHDvVTGZa\nIgvmut+3blBiJSIiEkNurLMaxwL2nj4/u/YF6+8998RinlxbQUtbL28dunX/xomqbWjlwLGLFOWm\n891nllOS5+ODE5c4efbquM956ovrtHf1s6Qyd9z7Lk42JVYiIiIxZCIV2N88eIarbb08urKUolwf\nWzcY8rJT2XekgbOX3LvTsN8/yI7dNTjAtzZVkZSYwPZHq3Ac2LnHjrsO13SfBgQlViIiIjElOyOZ\nWb6kiBOrM41tvPNJA/nZqWwObSGVnJjAto2GQAB2VFsGBgddaWP1R+dobOnioWVFLCgKTtmVF2ay\nbnkxl69184sPz0V8zqF9F1OSErhjGhcVVmIlIiISY8oLM2nt6ONae++Yjr+xhVQAtm2qumk926Ky\nHFbdWcC5y+28c+TCCGcZm8aWTt7+8CyzfEl8bc2Cm9773Qfmk5OZTPXhc3zRFFmR04YrHTRf7+Hu\nBbNJ9E7f9GX6tkxERETCGlrAXj/GdVZDW0itvqsg7GjP1ocr8KUm8uahepqvd4+7XYFAgJf3WPwD\nAZ7esJC0lJuLD6Qme3lmg2FgMMCO3ZbBwNjrW8XCNCAosRIREYk5Q+usxrIuqrm1m7ferw/V36sM\ne0xGWhJbH66gr3+QXXuD+zeOx/snGqk538qSijm3TYCWVM5hucnl1BfXOXjs4pjPfbSuGW+Cw13z\nJ77v4mRSYiUiIhJjygrGNmIVCAR4eW8tff2DPLWuYsQtpFbdGRzNOn66ZVzFPNs6+3h1/ymSkxJ4\nZpQCwN9Yv5DU5ARee+80rR2jT2c2tXbTcKWDO0pzSE2e3iU4lViJiIjEmLQULwU5aZy91DbidNrH\nNVc4Ud/CorJs7ltcMOI5Hcdh20aDN8HDK+/U0dnTH1Gbfr6/js4eP0+umU9OZsqIx2ZnJPN7Dy6g\nu9fPK+/UjXruL6cBp38NPCVWIiIiMai8MJPu3gEuX+0K+35nTz+v7Ksl0eth20Yzpu1f8nPSeGJ1\nGW2dfbz+3ukxt+Wz+hYO/+Yy5YUZrFtWPKafeXBpERVFWRypucKnp5pHPPZobRMOsKRyeq+vAiVW\nIiIiMWm0BeyvvXuatq5+nlhdFtEWUptWlFA0J50Dxy5S29A66vG9/QPs3GPxOA7bN1WNuXCnx3HY\ntsmMWv29rbOPugvXWVCcRVb69N9KTImViIhIDLqxgL3x1q1tahtaOfhpsOr5xntLIjqvN8HD9k1V\nAOzYXUO/f+TaVv/7wRmar/fwyL3zKMnPiOhaxbk+Nq0oGbH6+7FTzQSAZTEwWgVKrERERGLSvDwf\nCR6H+q8UCv1q1XNvQuRf9RXFWaxdWkRjSxfVH92+mOf5y+3s+aiBOVkpbFldHvF1ADavKhux+nss\nra8CJVYiIiIxKdHrYV6ej4Yr7TeNKlUfvrXq+Xh87cEFZPmSePvDc1wKs45rcFgtqm0bDclJ49tE\nO2mE6u/dvX4+P3uV4tz0iKYzo0mJlYiISIwqn5uJfyDAhVAV88aWTt7+Zfiq55FKS/Hy9PqF+AcG\n2bm75pbaVu8e/YIzjW2sWJTPnROsLXW76u8n6lvwDwSmfVHQ4ZRYiYiIxKj5wzZkDgQC7Nx9+6rn\n47Hc5LKkYg4151t5/0TjjdevtvXw+oHTpKd4eWpd+KKjkQpX/f1oXfBuQSVWIiIiMumGFrCfudjG\n+8cbsQ0jVz2PlOM4PL1hIcmJCby6/xRtnX0A/GxfLb19A3x9bYVrd+p9tfp7v3+Q46ebmZOVwrw8\nnyvXmApKrERERGJUwew0UpISqDl/jVffHVvV80jNzkrhyTXz6ezx8/P9dXximzha14yZN4sH7i50\n7Tpwc/X3XXst3b0DLK3MdfX3mWxKrERERGKUx3EoK8igpa13zFXPx2Pd8mLKCjI4/JvLvPh/J/Em\nBGtQuZ3wOKHaVoleD4eOB6ceY+VuwCFKrERERGJYeahQaCRVzyPl8YSKfzoOXb1+Hr+vjMLZ6ZNy\nrfzsNDavKgPAl5pIZfGsSbnOZJneOxmKiIjIiO5bVED9F20888jCMVc9H4/Sggye3lBJ3YXrPLay\ndNKuA8Hq7xeaOqgoyprU32kyKLESERGJYcV5Pp5/etmUXGvtsmLWTtKo2HDeBA/Pbblz0q8zGTQV\nKCIiIuISJVYiIiIiLlFiJSIiIuISJVYiIiIiLlFiJSIiIuISJVYiIiIiLlFiJSIiIuISJVYiIiIi\nLlFiJSIiIuISJVYiIiIiLlFiJSIiIuISJVYiIiIiLlFiJSIiIuISJxAIRLsNIiIiIjOCRqxERERE\nXKLESkRERMQlSqxEREREXKLESkRERMQlSqxEREREXKLESkRERMQl3mg3IBLGGA/wQ+AeoBf4Q2vt\nqei2KnqMMUeB66GnZ6y1345me6LBGLMC+Adr7UPGmArgJSAAfAb8sbV2MJrtmypf6YdlwC+AutDb\n/26t/e/otW5qGGMSgZ8CZUAy8PfA58RhTNymLy4Qn3GRAPwYMMAA8G3AIT7jIlxfZBGHcQFgjMkD\nPgE2AH5ciolYG7H6HSDFWnsf8NfAP0W5PVFjjEkBsNY+FPoXj0nVXwH/CaSEXvoB8D1r7QMEPzi3\nRKttUylMPywDfjAsNuLiQxJ4BmgJ/f8/CrxAnMYE4fsiXuNiM4C1djXwtwRjIl7jIlxfxGVchP74\n+A+gO/SSazERa4nV/cBuAGvtYeC3otucqLoHSDPG7DXG7DfGrIx2g6LgNPDksOfLgQOhx9XA+ilv\nUXSE64fHjTEHjTE/McZkRKldU+014PvDnvuJ35i4XV/EXVxYa98C/ij0tBS4TJzGxQh9EXdxAfwj\n8CPgYui5azERa4lVJl9OfQEMGGNiajrTRV0EA2Mj8Bzws3jrC2vt/wD9w15yrLVDWwm0ExzinvHC\n9MOvgL+01q4B6oG/i0rDppi1tsNa2x76Yngd+B7xGxPh+iIu4wLAWus3xuwA/o1gf8RlXEDYvoi7\nuDDGfAtostbuGfayazERa4lVGzA8m/ZYa/3RakyU1QK7rLUBa20t0AIURrlN0TZ8PjwDaI1WQ6Ls\nTWvtJ0OPgaXRbMxUMsbMA94FXrbWvkIcx0SYvojbuACw1m4HFhJcY5Q67K24igu4pS/2xmFcPAts\nMMa8BywBdgJ5w96fUEzEWmL1AfAYQGjq60R0mxNVzxJaY2aMmUtwNK8xqi2KvqPGmIdCjx8FDkWx\nLdG0xxhzb+jxOoKLM2c8Y0w+sBd43lr709DLcRkTt+mLeI2Lbxpj/ib0tItgsn0kTuMiXF+8EW9x\nYa1dY6190Fr7EHAM2AZUuxUTsTZ19CbBLPNDgovL4m7B9jA/AV4yxrxP8C6GZ+N49G7IXwA/NsYk\nAScJDnPHo+8ALxhj+oBLfLmmYqb7LpANfN8YM7S+6E+Bf43DmAjXF38O/HMcxsUbwIvGmINAIvBn\nBGMhHj8rwvVFA/H5efFVrn1/OIFAYPSjRERERGRUsTYVKCIiIjJtKbESERERcYkSKxERERGXKLES\nERERcYkSKxERERGXKLESERERcYkSKxERERGXKLESERERccn/A4G0Gk+2BfkGAAAAAElFTkSuQmCC\n",
  540.       "text/plain": [
  541.        "<matplotlib.figure.Figure at 0x2294e15dc88>"
  542.       ]
  543.      },
  544.      "metadata": {},
  545.      "output_type": "display_data"
  546.     }
  547.    ],
  548.    "source": [
  549.     "plt.figure(figsize=(10,6))\n",
  550.     "plt.plot(range(1,40),errr)"
  551.    ]
  552.   },
  553.   {
  554.    "cell_type": "code",
  555.    "execution_count": 31,
  556.    "metadata": {},
  557.    "outputs": [
  558.     {
  559.      "data": {
  560.       "text/plain": [
  561.        "[0.076666666666666661,\n",
  562.        " 0.089999999999999997,\n",
  563.        " 0.050000000000000003,\n",
  564.        " 0.070000000000000007,\n",
  565.        " 0.056666666666666664,\n",
  566.        " 0.050000000000000003,\n",
  567.        " 0.066666666666666666,\n",
  568.        " 0.059999999999999998,\n",
  569.        " 0.050000000000000003,\n",
  570.        " 0.056666666666666664,\n",
  571.        " 0.053333333333333337,\n",
  572.        " 0.046666666666666669,\n",
  573.        " 0.050000000000000003,\n",
  574.        " 0.056666666666666664,\n",
  575.        " 0.056666666666666664,\n",
  576.        " 0.050000000000000003,\n",
  577.        " 0.050000000000000003,\n",
  578.        " 0.046666666666666669,\n",
  579.        " 0.050000000000000003,\n",
  580.        " 0.053333333333333337,\n",
  581.        " 0.050000000000000003,\n",
  582.        " 0.050000000000000003,\n",
  583.        " 0.063333333333333339,\n",
  584.        " 0.056666666666666664,\n",
  585.        " 0.056666666666666664,\n",
  586.        " 0.050000000000000003,\n",
  587.        " 0.050000000000000003,\n",
  588.        " 0.046666666666666669,\n",
  589.        " 0.059999999999999998,\n",
  590.        " 0.050000000000000003,\n",
  591.        " 0.056666666666666664,\n",
  592.        " 0.046666666666666669,\n",
  593.        " 0.053333333333333337,\n",
  594.        " 0.043333333333333335,\n",
  595.        " 0.046666666666666669,\n",
  596.        " 0.043333333333333335,\n",
  597.        " 0.046666666666666669,\n",
  598.        " 0.043333333333333335,\n",
  599.        " 0.050000000000000003]"
  600.       ]
  601.      },
  602.      "execution_count": 31,
  603.      "metadata": {},
  604.      "output_type": "execute_result"
  605.     }
  606.    ],
  607.    "source": [
  608.     "errr"
  609.    ]
  610.   },
  611.   {
  612.    "cell_type": "code",
  613.    "execution_count": 39,
  614.    "metadata": {},
  615.    "outputs": [
  616.     {
  617.      "name": "stdout",
  618.      "output_type": "stream",
  619.      "text": [
  620.       "[[153   6]\n",
  621.       " [  9 132]]\n",
  622.       "             precision    recall  f1-score   support\n",
  623.       "\n",
  624.       "          0       0.94      0.96      0.95       159\n",
  625.       "          1       0.96      0.94      0.95       141\n",
  626.       "\n",
  627.       "avg / total       0.95      0.95      0.95       300\n",
  628.       "\n"
  629.      ]
  630.     }
  631.    ],
  632.    "source": [
  633.     "knn=KNeighborsClassifier(n_neighbors=17)\n",
  634.     "knn.fit(X_train,y_train)\n",
  635.     "pred=knn.predict(X_test)\n",
  636.     "print(confusion_matrix(y_test,pred))\n",
  637.     "print(classification_report(y_test,pred))"
  638.    ]
  639.   },
  640.   {
  641.    "cell_type": "code",
  642.    "execution_count": null,
  643.    "metadata": {
  644.     "collapsed": true
  645.    },
  646.    "outputs": [],
  647.    "source": []
  648.   }
  649.  ],
  650.  "metadata": {
  651.   "kernelspec": {
  652.    "display_name": "Python 3",
  653.    "language": "python",
  654.    "name": "python3"
  655.   },
  656.   "language_info": {
  657.    "codemirror_mode": {
  658.     "name": "ipython",
  659.     "version": 3
  660.    },
  661.    "file_extension": ".py",
  662.    "mimetype": "text/x-python",
  663.    "name": "python",
  664.    "nbconvert_exporter": "python",
  665.    "pygments_lexer": "ipython3",
  666.    "version": "3.6.2"
  667.   }
  668.  },
  669.  "nbformat": 4,
  670.  "nbformat_minor": 2
  671. }
RAW Paste Data
Top