{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "import matplotlib\n", "#matplotlib.use('Agg')\n", "path_data = '../../../assets/data/'\n", "from datascience import *\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from mpl_toolkits.mplot3d import Axes3D\n", "import numpy as np\n", "import math\n", "import scipy.stats as stats\n", "plt.style.use('fivethirtyeight')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Nearest Neighbors\n", "In this section we'll develop the *nearest neighbor* method of classification. Just focus on the ideas for now and don't worry if some of the code is mysterious. Later in the chapter we'll see how to organize our ideas into code that performs the classification." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "def standard_units(x):\n", " return (x - np.mean(x))/np.std(x)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "remove-input" ] }, "outputs": [], "source": [ "def distance(point1, point2):\n", " \"\"\"The distance between two arrays of numbers.\"\"\"\n", " return np.sqrt(np.sum((point1 - point2)**2))\n", "\n", "def all_distances(training, point):\n", " \"\"\"The distance between p (an array of numbers) and the numbers in row i of attribute_table.\"\"\"\n", " attributes = training.drop('Class')\n", " def distance_from_point(row):\n", " return distance(point, np.array(row))\n", " return attributes.apply(distance_from_point)\n", "\n", "def table_with_distances(training, point):\n", " \"\"\"A copy of the training table with the distance from each row to array p.\"\"\"\n", " return training.with_column('Distance', all_distances(training, point))\n", "\n", "def closest(training, point, k):\n", " \"\"\"A table containing the k closest rows in the training table to array p.\"\"\"\n", " with_dists = table_with_distances(training, point)\n", " sorted_by_distance = with_dists.sort('Distance')\n", " topk = sorted_by_distance.take(np.arange(k))\n", " return topk\n", "\n", "def majority(topkclasses):\n", " \"\"\"1 if the majority of the \"Class\" column is 1s, and 0 otherwise.\"\"\"\n", " ones = topkclasses.where('Class', are.equal_to(1)).num_rows\n", " zeros = topkclasses.where('Class', are.equal_to(0)).num_rows\n", " if ones > zeros:\n", " return 1\n", " else:\n", " return 0\n", "\n", "def classify(training, p, k):\n", " \"\"\"Classify an example with attributes p using k-nearest neighbor classification with the given training table.\"\"\"\n", " closestk = closest(training, p, k)\n", " topkclasses = closestk.select('Class')\n", " return majority(topkclasses)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Chronic kidney disease\n", "\n", "Let's work through an example. We're going to work with a data set that was collected to help doctors diagnose chronic kidney disease (CKD). Each row in the data set represents a single patient who was treated in the past and whose diagnosis is known. For each patient, we have a bunch of measurements from a blood test. We'd like to find which measurements are most useful for diagnosing CKD, and develop a way to classify future patients as \"has CKD\" or \"doesn't have CKD\" based on their blood test results." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
Age | Blood Pressure | Specific Gravity | Albumin | Sugar | Red Blood Cells | Pus Cell | Pus Cell clumps | Bacteria | Glucose | Blood Urea | Serum Creatinine | Sodium | Potassium | Hemoglobin | Packed Cell Volume | White Blood Cell Count | Red Blood Cell Count | Hypertension | Diabetes Mellitus | Coronary Artery Disease | Appetite | Pedal Edema | Anemia | Class | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
48 | 70 | 1.005 | 4 | 0 | normal | abnormal | present | notpresent | 117 | 56 | 3.8 | 111 | 2.5 | 11.2 | 32 | 6700 | 3.9 | yes | no | no | poor | yes | yes | 1 | \n", "
53 | 90 | 1.02 | 2 | 0 | abnormal | abnormal | present | notpresent | 70 | 107 | 7.2 | 114 | 3.7 | 9.5 | 29 | 12100 | 3.7 | yes | yes | no | poor | no | yes | 1 | \n", "
63 | 70 | 1.01 | 3 | 0 | abnormal | abnormal | present | notpresent | 380 | 60 | 2.7 | 131 | 4.2 | 10.8 | 32 | 4500 | 3.8 | yes | yes | no | poor | yes | no | 1 | \n", "
68 | 80 | 1.01 | 3 | 2 | normal | abnormal | present | present | 157 | 90 | 4.1 | 130 | 6.4 | 5.6 | 16 | 11000 | 2.6 | yes | yes | yes | poor | yes | no | 1 | \n", "
61 | 80 | 1.015 | 2 | 0 | abnormal | abnormal | notpresent | notpresent | 173 | 148 | 3.9 | 135 | 5.2 | 7.7 | 24 | 9200 | 3.2 | yes | yes | yes | poor | yes | yes | 1 | \n", "
48 | 80 | 1.025 | 4 | 0 | normal | abnormal | notpresent | notpresent | 95 | 163 | 7.7 | 136 | 3.8 | 9.8 | 32 | 6900 | 3.4 | yes | no | no | good | no | yes | 1 | \n", "
69 | 70 | 1.01 | 3 | 4 | normal | abnormal | notpresent | notpresent | 264 | 87 | 2.7 | 130 | 4 | 12.5 | 37 | 9600 | 4.1 | yes | yes | yes | good | yes | no | 1 | \n", "
73 | 70 | 1.005 | 0 | 0 | normal | normal | notpresent | notpresent | 70 | 32 | 0.9 | 125 | 4 | 10 | 29 | 18900 | 3.5 | yes | yes | no | good | yes | no | 1 | \n", "
73 | 80 | 1.02 | 2 | 0 | abnormal | abnormal | notpresent | notpresent | 253 | 142 | 4.6 | 138 | 5.8 | 10.5 | 33 | 7200 | 4.3 | yes | yes | yes | good | no | no | 1 | \n", "
46 | 60 | 1.01 | 1 | 0 | normal | normal | notpresent | notpresent | 163 | 92 | 3.3 | 141 | 4 | 9.8 | 28 | 14600 | 3.2 | yes | yes | no | good | no | no | 1 | \n", "
... (148 rows omitted)
" ], "text/plain": [ "Age | Blood Pressure | Specific Gravity | Albumin | Sugar | Red Blood Cells | Pus Cell | Pus Cell clumps | Bacteria | Glucose | Blood Urea | Serum Creatinine | Sodium | Potassium | Hemoglobin | Packed Cell Volume | White Blood Cell Count | Red Blood Cell Count | Hypertension | Diabetes Mellitus | Coronary Artery Disease | Appetite | Pedal Edema | Anemia | Class\n", "48 | 70 | 1.005 | 4 | 0 | normal | abnormal | present | notpresent | 117 | 56 | 3.8 | 111 | 2.5 | 11.2 | 32 | 6700 | 3.9 | yes | no | no | poor | yes | yes | 1\n", "53 | 90 | 1.02 | 2 | 0 | abnormal | abnormal | present | notpresent | 70 | 107 | 7.2 | 114 | 3.7 | 9.5 | 29 | 12100 | 3.7 | yes | yes | no | poor | no | yes | 1\n", "63 | 70 | 1.01 | 3 | 0 | abnormal | abnormal | present | notpresent | 380 | 60 | 2.7 | 131 | 4.2 | 10.8 | 32 | 4500 | 3.8 | yes | yes | no | poor | yes | no | 1\n", "68 | 80 | 1.01 | 3 | 2 | normal | abnormal | present | present | 157 | 90 | 4.1 | 130 | 6.4 | 5.6 | 16 | 11000 | 2.6 | yes | yes | yes | poor | yes | no | 1\n", "61 | 80 | 1.015 | 2 | 0 | abnormal | abnormal | notpresent | notpresent | 173 | 148 | 3.9 | 135 | 5.2 | 7.7 | 24 | 9200 | 3.2 | yes | yes | yes | poor | yes | yes | 1\n", "48 | 80 | 1.025 | 4 | 0 | normal | abnormal | notpresent | notpresent | 95 | 163 | 7.7 | 136 | 3.8 | 9.8 | 32 | 6900 | 3.4 | yes | no | no | good | no | yes | 1\n", "69 | 70 | 1.01 | 3 | 4 | normal | abnormal | notpresent | notpresent | 264 | 87 | 2.7 | 130 | 4 | 12.5 | 37 | 9600 | 4.1 | yes | yes | yes | good | yes | no | 1\n", "73 | 70 | 1.005 | 0 | 0 | normal | normal | notpresent | notpresent | 70 | 32 | 0.9 | 125 | 4 | 10 | 29 | 18900 | 3.5 | yes | yes | no | good | yes | no | 1\n", "73 | 80 | 1.02 | 2 | 0 | abnormal | abnormal | notpresent | notpresent | 253 | 142 | 4.6 | 138 | 5.8 | 10.5 | 33 | 7200 | 4.3 | yes | yes | yes | good | no | no | 1\n", "46 | 60 | 1.01 | 1 | 0 | normal | normal | notpresent | notpresent | 163 | 92 | 3.3 | 141 | 4 | 9.8 | 28 | 14600 | 3.2 | yes | yes | no | good | no | no | 1\n", "... (148 rows omitted)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ckd = Table.read_table(path_data + 'ckd.csv').relabeled('Blood Glucose Random', 'Glucose')\n", "ckd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Some of the variables are categorical (words like \"abnormal\"), and some quantitative. The quantitative variables all have different scales. We're going to want to make comparisons and estimate distances, often by eye, so let's select just a few of the variables and work in standard units. Then we won't have to worry about the scale of each of the different variables." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "ckd = Table().with_columns(\n", " 'Hemoglobin', standard_units(ckd.column('Hemoglobin')),\n", " 'Glucose', standard_units(ckd.column('Glucose')),\n", " 'White Blood Cell Count', standard_units(ckd.column('White Blood Cell Count')),\n", " 'Class', ckd.column('Class')\n", ")" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Hemoglobin | Glucose | White Blood Cell Count | Class | \n", "
---|---|---|---|
-0.865744 | -0.221549 | -0.569768 | 1 | \n", "
-1.45745 | -0.947597 | 1.16268 | 1 | \n", "
-1.00497 | 3.84123 | -1.27558 | 1 | \n", "
-2.81488 | 0.396364 | 0.809777 | 1 | \n", "
-2.08395 | 0.643529 | 0.232293 | 1 | \n", "
-1.35303 | -0.561402 | -0.505603 | 1 | \n", "
-0.413266 | 2.04928 | 0.360623 | 1 | \n", "
-1.28342 | -0.947597 | 3.34429 | 1 | \n", "
-1.10939 | 1.87936 | -0.409356 | 1 | \n", "
-1.35303 | 0.489051 | 1.96475 | 1 | \n", "
... (148 rows omitted)
" ], "text/plain": [ "Hemoglobin | Glucose | White Blood Cell Count | Class\n", "-0.865744 | -0.221549 | -0.569768 | 1\n", "-1.45745 | -0.947597 | 1.16268 | 1\n", "-1.00497 | 3.84123 | -1.27558 | 1\n", "-2.81488 | 0.396364 | 0.809777 | 1\n", "-2.08395 | 0.643529 | 0.232293 | 1\n", "-1.35303 | -0.561402 | -0.505603 | 1\n", "-0.413266 | 2.04928 | 0.360623 | 1\n", "-1.28342 | -0.947597 | 3.34429 | 1\n", "-1.10939 | 1.87936 | -0.409356 | 1\n", "-1.35303 | 0.489051 | 1.96475 | 1\n", "... (148 rows omitted)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ckd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at two columns in particular: the hemoglobin level (in the patient's blood), and the blood glucose level (at a random time in the day; without fasting specially for the blood test). \n", "\n", "We'll draw a scatter plot to visualize the relation between the two variables. Blue dots are patients with CKD; gold dots are patients without CKD. What kind of medical test results seem to indicate CKD?" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "color_table = Table().with_columns(\n", " 'Class', make_array(1, 0),\n", " 'Color', make_array('darkblue', 'gold')\n", ")\n", "ckd = ckd.join('Class', color_table)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAikAAAFWCAYAAACsDw2XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdd3xUVf7/8dedOzOpwCQhQIAAAqErRUSxUHQFUSwo6FfBtrqAbQv2RQV11876c2VVVnTXVVTsUsSCFKOAgiDYgCBFagIhvUy79/fHYCSmEDRhJsP7+Xj4kLn3zr3vM0ngk3POPdfIz8+3EREREYkwjnAHEBEREamOihQRERGJSCpSREREJCKpSBEREZGIpCJFREREIpKKFBEREYlIKlJEREQkIqlIERERkYikIiWCZWVlhTtCg4nmtkF0ty+a2wbR3z6RxkRFioiIiEQkFSkiIiISkVSkiIiISERSkSIiIiIRyRnuACIiEn6BQICSkpJwx5CjUEJCAk5n9eWIihQRkaNcIBCgqKgIj8eDYRjhjiNHEdu2yc/Pp0mTJtUWKhruERE5ypWUlKhAkbAwDAOPx1NjL56KFJEIsG9/Adt25hAIBMMdRY5SKlAkXGr73tNwj0iYPTf7fRYsWUkgECStZTIP33EtTRPjwx1LRCTs1JMiEkY79+xj3qLPMU2TmBg3e3MLmPHy/HDHEhGJCOpJEQmj/MIS/P4AbpcLANM0KSouDXMqkZA/3vsUP2zddcSu16lDa/455fojdr2fzJo1i9tuu42dO3ce8Wv/0pNPPsm///1vvv766990nszMTM4991x++OEHUlJSquzftm0bvXv3ZvHixfTt27fac9TlmIamIkUkjDq0bUlKcjNKy7w4DAOf38/J/XqEO5YIAD9s3cVnX34X7hiHlJOTw7Rp0/jggw/YtWsXKSkp9OzZk/HjxzNs2LBwx5PfQEWKSBglxMfy0G1X88xL8/H6/Zx8fA/OGnJCuGOJNBrbtm3jrLPOIjExkSlTptCrVy8sy2Lp0qVMmjSJb7755ojk8Pl8uN3uI3KtQ/H5fOGOUG80J0UkzNJapHDvpCt46PZrOO93A8MdR6RRueWWW7Btm8WLFzNq1CgyMjLo2rUr48eP59NPPwVg+/btjB07lrZt29K2bVvGjRt3yKGd//znP/Tt25fU1FT69u3LCy+8UGm/x+Ph2WefZdy4cbRu3Zr77rvvV+V/4okn6NKlC23atGHChAkUFxdX2r969WpGjRpFx44dSU9P56yzzuKLL7447Cxer5exY8cyaNAg9u7dW7F906ZNnHXWWbRs2ZITTjiBRYsW1Zg1MzMTj8dDbm5uxbZt27bh8XhYs2ZNxbb169dz8cUX07ZtWzp37sw111xDdnb2YX82oCJFREQaqby8PBYuXMgf/vAHEhMTq+z3eDzYts3YsWPZu3cvc+bMYe7cuezZs4exY8di23a15507dy633nor1113HcuXL2fixIncfPPNLFiwoNJxDz/8MMOGDWPZsmVce+21ALRp06bW/0aPHl3x/rfffpu//e1v3HnnnSxdupSMjAyeeuqpStcoKirikksuYcGCBXz88ccce+yxjBkzplKhUFOWnxQWFnLRRReRl5fHvHnzSE1Nrdg3ZcoUJkyYQGZmJkOGDOGyyy5j165fPw9pz549nH322XTv3p2PP/6Yd955h+LiYi699FIsyzrs82m4R0REGqXNmzdj2zZdunSp8ZglS5bwzTffsGbNGtq3bw/AzJkz6du3L0uXLmXIkCFV3jN9+nQuueQSxo8fD0Dnzp356quveOKJJxgxYkTFcaNGjeKKK66o9N7MzMxaM8fGxlb8+emnn+bSSy/l6quvBkK9QpmZmWzevLnimMGDB1d6/yOPPMKcOXNYuHAhl1xySY1Ztm/fDsC+ffsYP348aWlp/Pe//610fYDf//73jBo1CggVOosWLeL555/nrrvuqrUdNXnuuefo1asX9957b8W2GTNm0KFDB9asWcPxxx9/WOdTkSIiIo1STT0hB9uwYQNpaWkVBQpAhw4dSEtLY/369dUWKRs2bGDs2LGVtg0cOLBKT0p1d7x07NixjulD17n88ssrbTvhhBMqFSl79+7l73//O5mZmezdu5dgMEhZWRk7duw4ZBaACy+8kOOOO44XX3yx2mXnTzjh5zlwDoeD448/nvXr19e5Db+0du1ali1bRps2bars27Jli4oUERE5OnTq1AnDMNi4cWONx9i2XeOKprWtdFrdvl9uS0hIqHJMdf84H2zgwIG88cYbtR5zsOuuu46cnBweeOAB2rVrR0xMDOedd16VybHVZQEYPnw4b7/9Nt9++y29e/eu83Wr43CEZogcXBwGAoFKx1iWxbBhw/jb3/5W5f0HDzPVlYoUERFplJKSkjjjjDN49tlnmTBhQpV5Kfn5+XTr1o1du3axbdu2it6UrVu3snv3brp161btebt27cqKFSsq9XIsX768xuMPdjjDPV27dmXVqlWVrrNq1apKx69YsYKHHnqI4cOHA6HbrQ9nEurkyZNJSkriggsu4N133+W4446rtH/VqlUVQ0q2bbN69WrOP//8as/VvHlzIDTv5Kc//3I9l969e/P222+Tnp6O68D6T7+FihQREWm0HnvsMYYPH87QoUOZPHkyPXv2xLZtMjMzefzxx/n666/p1asX48eP5+GHH8a2bW677TZ69+7NoEGDqj3nTTfdxFVXXUWfPn04/fTTWbhwIa+//jovvvjiIfMcznDPxIkTmThxIv369ePUU0/l3Xff5csvv8Tj8VQc06lTJ1577TX69+9PaWkp99xzz2Hf6nz33Xdj23ZFoXLsscdW7Hv++efp3LkzPXr0YObMmWzfvp3f//73Nbatbdu2PPTQQ0ydOpUff/yRRx99tNIx1157LS+88AJXX301f/7zn2nevDlbt26tmCTcpEmTw8quIkVERKrVqUPriL9ehw4dWLp0KdOmTWPKlCns3r2b5ORkevXqxeOPP45hGMyaNYvbb7+dkSNHAqHJqI888kiNwz0jR47kkUce4cknn+TOO+8kPT2dadOmVZo0Wx8uvPBCtm7dyv33309ZWRkjRozg+uuv5+WXX644Zvr06fz5z39myJAhtGrVijvuuKPKnT11cc8992DbNueffz7vvvsuTZs2BUJ39/zrX/9i7dq1pKen89JLL9U4ZOVyuXjuuee4+eabOfXUUzn22GO55557Kk3gTUtL44MPPuDee+/loosuwuv10rZtW4YOHUpMTMxh5zby8/MPPfNIwiIrK4uMjIxwx2gQ0dw2iO72RXPbIPrbV52CggKaNWsW7hhyFKvpe1DrpIiIiEhEUpEiIiIiEUlFioiIiEQkFSkiIiISkVSkiIiISERSkSIiIiIRKaKLlAcffBCPx1Ppv9oeJCUiIiLRI+IXc8vIyGDevHkVr03TDGMaEREROVIivkhxOp20bNky3DFERETkCIv4ImXr1q10794dl8tF//79ueeee+jQoUO4Y4mIRL3YXQ9j+rYfsesF3emUt779iF3vJ7NmzeK2225j586dR/za9cHj8fDCCy/U+GDA3NxcOnXqxNy5cznttNOOcLrfJqKLlP79+/PUU0+RkZHBvn37ePTRRxk2bBgrVqwgOTm52vdkZWUd4ZQNK9rac7BobhtEd/uiuW0Qme0Lx1L9pm87zrKvjvh1D1dOTg7Tpk3jgw8+YNeuXaSkpNCzZ0/Gjx/PsGHDwh1PfoOILlLOPPPMSq/79+9Pnz59ePnll7nxxhurfU80PXMjmp8hEs1tg+huXzS3DaK/fdFm27ZtnHXWWSQmJjJlyhR69eqFZVksXbqUSZMm8c033xyRHD6f77CfTiyHFtF39/xSYmIi3bp1Y/PmzeGOIiIiEeCWW27Btm0WL17MqFGjyMjIoGvXrowfP55PP/0UgO3btzN27Fjatm1L27ZtGTdu3CGHdv7zn//Qt29fUlNT6du3Ly+88EKl/R6Ph2effZZx48bRunVr7rvvvl+V/x//+AcZGRm0adOGCRMm8NBDD3HsscdW7Lcsi0ceeYSePXvSokULTj75ZObPn1/rOVevXs3gwYNp2bIlp512GqtWrfpV2SJBoypSysvLycrK0kRaEREhLy+PhQsX8oc//IHExMQq+z0eD7ZtM3bsWPbu3cucOXOYO3cue/bsYezYsdi2Xe15586dy6233sp1113H8uXLmThxIjfffDMLFiyodNzDDz/MsGHDWLZsGddeey0Abdq0qfW/0aNHV7z/zTff5OGHH+buu+9m6dKldO3alaeeeqrSNZ5++mmefPJJpk6dyrJlyzjnnHO4/PLLWbduXbXZS0pKuPjii+nQoQOLFy9m6tSp3H333Yf1uUaSiB7uueuuuzjrrLNo27ZtxZyU0tJSLr300nBHExGRMNu8eTO2bde6ftaSJUv45ptvWLNmDe3btwdg5syZ9O3bl6VLlzJkyJAq75k+fTqXXHIJ48ePB6Bz58589dVXPPHEE4wYMaLiuFGjRnHFFVdUem9mZmatmWNjYyv+/Mwzz3DZZZdVnGPSpElkZmayadOmSlluvPFGxowZA8DkyZNZtmwZ06dP59///neV87/++uv4fD7+9a9/kZiYSI8ePbj55puZMGFCrbkiVUQXKbt27eLaa68lNzeX5s2b079/fz766CPatWsX7mgiIhJmNfWEHGzDhg2kpaVVFCgAHTp0IC0tjfXr11dbpGzYsIGxY8dW2jZw4MAqPSl9+/at8t6OHTvWMT1s3LixSpFz/PHHVxQphYWF7N69m5NOOqlKlg8//LDac27YsIGePXtW6lkaMGBAnTNFmoguUp5//vlwRxARkQjVqVMnDMNg48aNNR5j2zaGYVS7r6btNe375baEhIQqx7Rp06bGc0KowHjjjTfqlKE2Nb2vLoVbYxLRRYqIiEhNkpKSOOOMM3j22WeZMGFClXkp+fn5dOvWjV27drFt27aK3pStW7eye/duunXrVu15u3btyooVK7j88ssrti1fvrzG4w92OMM9Xbp0YfXq1YwbN65i2+rVqyv+3LRpU9LS0lixYgWDBw+ulKVr167Vnr9bt2688sorlJSUVBRRK1euPGTuSKUiRUREGq3HHnuM4cOHM3ToUCZPnkzPnj2xbZvMzEwef/xxvv76a3r16sX48eN5+OGHsW2b2267jd69ezNo0KBqz3nTTTdx1VVX0adPH04//XQWLlzI66+/zosvvnjIPIcz3DNx4kRuuOEG+vbty8knn8y8efNYtWoVHo+nUpYHH3yQTp060adPH2bPns3y5ctZsmRJteccPXo0999/PzfeeCO33XYbe/bsYdq0aXXOFGlUpIiISLWC7vSIv16HDh1YunQp06ZNY8qUKezevZvk5GR69erF448/jmEYzJo1i9tvv52RI0cCMHjwYB555JEah0xGjhzJI488wpNPPsmdd95Jeno606ZNqzRptj5cdNFFbN26lXvvvZeysjJGjhzJ73//e957772KYyZOnEhxcTFTpkwhJyeHjIwM/ve//3HcccdVe87ExERmz57NpEmTGDx4MBkZGUydOrXR3nBi5OfnR9cAVhSJ5kWlorltEN3ti+a2QfS3rzoFBQU0a9Ys3DEEGDt2LIFAgNmzZ4c7yhFV0/egelJERETCoLS0lOeee47f/e53OJ1O5syZw3vvvcf//ve/cEeLGCpSREREwsAwDBYuXMg//vEPysvL6dixIzNmzODcc88Nd7SIoSJFREQkDOLi4nj33XfDHSOiNapl8UVEROTooSJFREREIpKKFBERibqVSqXxqO17T3NSRKJQIBDkxbcX8uOuvXTt2JZLRg7+1ctvS/RLSEggPz8fj8ej7xM5omzbJj8/nyZNmlS7X0WKSBR66JnZfPl1Fm6Xi7XfbWZvbj43XXVBuGNJhHI6nTRp0oTCwsJwR5GjUJMmTXA6qy9HVKSIRBnLsvh+04+4XS4AXC4na9dvCXMqiXROp1MLuknE0ZwUkShjGAamWflH22maYUojIvLrqUgRiTKGYfB/I4dgWUGKS8sAmysvOjPcsUREDpuGe0Si0NlDB9CvV2d27N7HMemtSElqGu5IIiKHTUWKSJRqlZpMq9TkcMcQEfnVNNwjIiIiEUlFioiIiEQkFSkiIiISkVSkiIiISERSkSIiIiIRSUWKiIiIRCQVKSIiIhKRVKSIiIhIRFKRIiIiIhFJRYqIiIhEJBUpIiIiEpFUpIiIiEhEUpEiIiIiEalRFSnTpk3D4/Fw6623hjuKiIiINLBGU6SsXLmSF154gZ49e4Y7ioiIiBwBjaJIKSgo4A9/+ANPPvkkHo8n3HFERETkCGgURcqf//xnzj//fAYPHhzuKCIiInKEOMMd4FBeeOEFNm/ezIwZM+p0fFZWVgMnOrKirT0Hi+a2QXS3L5rbBpHZvoyMjHBHEDniIrpIycrK4r777mPBggW43e46vSeafpCzsrKiqj0Hi+a2QXS3L5rbBtHfPpHGJKKLlC+++ILc3FwGDhxYsS0YDLJs2TKef/55du3aRUxMTBgTioiISEOJ6CLlnHPOoW/fvpW23XDDDXTq1IlJkybVuXdFREREGp+ILlI8Hk+Vu3ni4+NJSkqiR48eYUolUj2vz8/Dz7zG1h178HnLueuPV9CtU3q4Y4mINFqN4u4ekcZg+v/msObbHygp9ZJXUMKDT72Kz+8PdywRkUYrontSqjN//vxwRxCp1o7de3G7Qj9ShmFQVFLG/vwiWqUmhzmZiEjjpJ4UkXrSqnkSgUCw4nVCXAxJzZqEMZGISOOmIkWkntx45flkHNMa03SQEBfDX665iBi3K9yxREQarUY33CMSqRLiY3no9muwbZtNmzaRkdE53JFERBo19aSI1DPDMMIdQUQkKqhIERERkYikIkVEREQikooUERERiUgqUkRERCQiqUgRERGRiKQiRURERCKSihQRERGJSCpSREREJCKpSBEREZGIpCJFREREIpKKFBEREYlIKlJEREQkIqlIERERkYikIkVEREQikooUERERiUgqUkRERCQiqUgRERGRiKQiRURERCKSihQRERGJSCpSREREJCKpSBEREZGIpCJFREREIpKKFBEREYlIKlJEREQkIqlIERERkYikIkVEREQiUkQXKc8++ywnn3wy6enppKenc+aZZ/LBBx+EO5aIiIgcARFdpLRu3Zp7772XpUuXsnjxYgYNGsTYsWP55ptvwh1NREREGpgz3AFqc84551R6fffdd/Pcc8+xcuVKevXqFaZUIiIiciREdJFysGAwyDvvvENJSQkDBgwIdxwRERFpYEZ+fr5d14N37drF9OnTWbZsGXl5ebzyyiv06NGDp556igEDBtC/f/96D/jtt98ybNgwysvLSUhI4Nlnn2X48OE1Hp+VlVXvGUREwi0jIyPcEUSOuDr3pHz//feMGDEC0zQ54YQTWLduHT6fD4Dt27ezevVqZs6cWe8BMzIyyMzMpKCggDlz5nDdddcxb948evToUePx0SIrKyuq2nOwaG4bRHf7orltEP3tE2lM6jxx9q677qJr166sXbuWl156Cdv+uQPmxBNPZOXKlQ0S0O1207FjR/r27cuUKVM49thjeeqppxrkWiIiIhI56tyTsmLFCmbOnEliYiLBYLDSvtTUVHJycuo9XHUsy6rowREREZHoVecixeGoudMlNzeX2NjYegl0sKlTpzJs2DDatGlDcXExb7zxBp9++imvvfZavV9LREREIkudi5R+/foxa9YsRowYUWXfO++8w4knnlivwQCys7MZP348OTk5NG3alJ49e/LGG29wxhln1Pu1REREJLLUuUi59dZbueCCCxg1ahSjR4/GMAyWLl3KM888w7x583jvvffqPdzTTz9d7+cUERGRxqHOE2dPPfVUZs2axbZt27jxxhuxbZupU6eyfPlyZs2a1SC3H4uIiMjR67AWcxs+fDjDhw9n8+bN7N27l+TkZN2qJyIiIg3iV60427FjRzp27AjA/v37SU5OrtdQIiIiInUe7nnhhRf45z//WfH622+/pUePHnTu3JkhQ4aQnZ3dIAFFRETk6FTnImXGjBmVbjOePHkyzZo148EHH6SwsJAHHnigQQKKRJKCohJembOE1+d/QklpebjjiIhEtToP9+zYsYMuXboAUFBQwGeffcasWbMYNmwYycnJ3HvvvQ0WUiQS5BeW8Jf7nyG/sATbtlm4bA2P3zWR+LiYcEcTEYlKde5JsSwLwzCA0OqzhmFw6qmnAtCmTRv27dvXMAlFIsTr731CYXEpbpeTGLeLPTl5fJT5ZbhjiYhErToXKR07duTDDz8E4M03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hBCZQkZSREYYOHAgffv2TTn2yemfPXv28Pzzz/P88893eI19+/alJCCfnNLw+XwdHgOIRqMA1NXVAd6oQ1v7v9//8+rqakpKStrFUFpa2mFsbdXV1bW7/v571NfXpxwrLCxMxvjJe1RVVVFRUXHQ+4RCoZTvA4EAAJFI5LAxCiFEJpAkRXQZ3bp144ILLmDGjBkd/rx79+7HfY/9H+w1NTWcfvrpyePV1dXJGMBLKD788MN2r6+pqTmie+y/XlvV1dXtEov6+nri8XhKorL/Hp3xvEIIkclkukd0GWPHjuVf//oXZ555JkOHDm33tX+k4HhceOGFACxatCjl+B//+EcARowYAXhraCorK1MqcrTWLF68+Iju8frrr9PU1JQ81tTUxKuvvpq8/36O47S75gsvvEDPnj3p0aPHUTyZEEJ0PTKSIrqMH/7wh4wdO5YrrriCm266id69e1NfX88HH3zAtm3beOyxx477HgMGDOCaa65hzpw52LbNeeedx6pVq/jZz37GNddcw6BBgwC4/vrrefjhh7nhhhv40Y9+RHFxMc888wwNDQ0AGMbB8/877riD1157jYkTJ3LbbbfZRZ3TAAABdklEQVShlOKRRx4hHA5z5513ppybl5fHvffeS21tLf369WPhwoX87W9/Y968eYdcNCuEECcDSVJEl9GrVy+WLVvGnDlzuO+++9i7dy/dunVjwIABySqezvD444/Tp08fnn32WebOnUt5eTkzZszgrrvuSp7j9/v505/+xJ133sntt99OTk4O11xzDcOGDeMnP/lJytqYTxo0aBB/+ctfuO+++7j55pvRWjNs2DBefvnllPJj8JKUJ598kpkzZ/L+++9TUlLCnDlzuP766zvteYUQIlOp+vp6ne4ghDhZTJkyhQ0bNrBmzZp0hyKEEF2ejKQIcYx+9atfkZubS9++fWlububPf/4zr732Gj//+c/THZoQQpwUJEkR4hgFAgHmzZtHZWUljuNwxhln8OijjzJt2rR0hyaEECcFme4RQgghREaSEmQhhBBCZCRJUoQQQgiRkSRJEUIIIURGkiRFCCGEEBlJkhQhhBBCZCRJUoQQQgiRkf4Xg5HLlqFlQEwAAAAASUVORK5CYII=\n", "text/plain": [ "