Last active
October 30, 2019 12:00
-
-
Save digitalWestie/ea468aa340722c5b985eba17d21e27a3 to your computer and use it in GitHub Desktop.
Basic clustering for UrbanTide analytics
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline\n", | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from sklearn.datasets.samples_generator import make_blobs\n", | |
"X, y_true = make_blobs(n_samples=300, centers=4,\n", | |
" cluster_std=0.60, random_state=0)\n", | |
"plt.scatter(X[:, 0], X[:, 1], s=50);\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from sklearn.cluster import KMeans\n", | |
"kmeans = KMeans(n_clusters=4)\n", | |
"kmeans.fit(X)\n", | |
"y_kmeans = kmeans.predict(X)\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"array([0, 2, 1, 2, 0, 0, 3, 1, 2, 2, 3, 2, 1, 2, 0, 1, 1, 0, 3, 3, 0, 0,\n", | |
" 1, 3, 3, 1, 0, 1, 3, 1, 2, 2, 1, 2, 2, 2, 2, 2, 3, 0, 1, 3, 1, 1,\n", | |
" 3, 3, 2, 3, 2, 0, 3, 0, 2, 0, 0, 3, 2, 3, 2, 0, 2, 1, 2, 3, 3, 3,\n", | |
" 2, 0, 2, 3, 1, 3, 2, 3, 3, 2, 3, 1, 0, 2, 0, 1, 0, 0, 2, 1, 0, 1,\n", | |
" 2, 2, 1, 0, 2, 3, 3, 1, 0, 0, 1, 3, 2, 0, 2, 0, 1, 0, 0, 1, 2, 1,\n", | |
" 3, 3, 0, 2, 0, 1, 2, 0, 0, 1, 3, 0, 3, 0, 0, 0, 0, 3, 0, 3, 2, 3,\n", | |
" 3, 0, 2, 3, 3, 2, 1, 2, 2, 3, 1, 3, 1, 3, 2, 1, 2, 2, 2, 1, 2, 1,\n", | |
" 0, 3, 2, 3, 0, 1, 2, 1, 1, 0, 1, 3, 3, 1, 0, 1, 1, 2, 0, 1, 3, 2,\n", | |
" 0, 0, 1, 3, 0, 1, 3, 3, 1, 1, 1, 1, 0, 2, 1, 3, 1, 1, 3, 3, 3, 1,\n", | |
" 3, 2, 1, 3, 0, 3, 1, 2, 3, 2, 1, 2, 1, 3, 1, 1, 2, 3, 3, 0, 0, 1,\n", | |
" 2, 0, 0, 3, 0, 3, 1, 2, 2, 1, 1, 2, 1, 0, 3, 1, 0, 3, 2, 3, 0, 1,\n", | |
" 0, 2, 2, 2, 2, 3, 3, 2, 1, 3, 0, 1, 3, 3, 3, 0, 0, 2, 1, 1, 3, 0,\n", | |
" 2, 3, 1, 2, 1, 0, 0, 3, 3, 1, 0, 0, 0, 1, 2, 2, 0, 0, 1, 0, 0, 0,\n", | |
" 2, 3, 2, 1, 0, 0, 2, 2, 2, 0, 0, 1, 2, 3], dtype=int32)" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"y_kmeans" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD8CAYAAABXe05zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsnXd4HNXVh987W9UlS7Jky5J777gXwMb0atMhEEoogUAISQih5CMNEiD0QIBAEnpvBgzGFBvbuHdbrrIsWVbvbdvM3O+PlRevd1da2ZLrfZ8HeLR35s6ZRfrNnXNPEVJKFAqFQnH0oB1uAxQKhULRPpRwKxQKxVGGEm6FQqE4ylDCrVAoFEcZSrgVCoXiKEMJt0KhUBxlKOFWKBSKowwl3AqFQnGUoYRboVAojjKsnTFpWlqa7NWrV2dMrVAoFMckq1atqpRSpkdzbKcId69evVi5cmVnTK1QKBTHJEKIgmiPVa4ShUKhOMpQwq1QKBRHGUq4FQqF4ihDCbdCoVAcZXTK5qSicyhsquSHiq1IYEr6QHLi0g63SQqF4jCghPsowJQmD278iK9K1rG37cVz2+ZyWrcR3D/sQjShXpwUiuMJ9Rd/FPDWrsXMK12Px9TxtvzjMXW+LtnAG/mLDrd5CoXiEKOE+yjgtfyFuA1fyOdu08dr+d8fBosUCsXhRAn3EY5uGtR4GyOO1/lc+Ez9EFqkUCgON0q4j3AsQiPO6ow4HmuxYxWWQ2iRQqE43CjhPsIRQnBxzgQcWug+sl2zclHOBIQQh8EyhUJxuFDCfRRwQ78ZDEvOIcZiD3wWY7EzNCmbm/qfehgtUygUhwMVDngUYNesPDfuZ6ys3sl3pRsxgRmZwxjbpc9Br7Z102Bh+WaWVm4nxurgzG4jGZSU1TGGKxSKTkEJ91GCEIJxqX0Zl9q3w+as8TZyw9IXqPI00Gx40RB8WLiMM7qP5N6hs5QLRqE4QlGukuOYP61/nxJXDc2GFwATidv0MbdkHXNL1h1m6xQKRSTUivsYoFF389+87/i0aBUuw8vAxO78vP9pjG1ldV7rbWJFdR66NEPG3IaPN/IXcmb3UZ1ptkKhOECUcB/luHQv1y15juLmGnzSAGB9bSF3rnqVB4ZfxKndRoQ9r9LTgF1Y8WGEHS9z17fLjkp3A2/sWsjaml0k2mI4q/toZmQOwxYmGkahUBwc6q+qk3EbXn6o2EaD7mZ4cjZ94jOiPm9FVR5uw8eolF6kOxPDHvdJ0QrKXHUB0d6Lx/Tx99xPmJYxFKsWGued4UwKOWdfcuJSo7LTkCaPbPqEj4pWBH2+ujqfN3Yt4o6BZ1HlaaRHbBeGJPVQfnOFogNQwt2JfF2ygb9s/AANgSFNJDAyJYdHRl9FrNUR8bzP96zmkdzZaAgkoEuDM7qN5J6hM0NE+PM9a3CboenwAIZpkltXxIiUniFjCbYYTskYxrdlG/Hul3nptNi4ts+0qO7xn1u/5JOi0DZ1HlNna30xt6/4Lw6LFQl0dSbx5JhryIrtEtXcCoUiPGpzspPYVl/Mnze8j8vw0mR4cJs+PKaPtTUF/HH9exHPW129k4c3fRI4r9nw4DV15pWs59ltc0OO11tZNfukwbb6EqSUYcfvGTqTYUnZOC02rMKCQ7Nh16xc22caU7sOavMem3QP7xUsxST8/AAGJs2GF5fhpbCpkpuXvYhuRrZZoVC0jVpxdxKv5i8MWckCeE2dHyq3UeGuD+v+eHnHd2FX0G7TxweFy7i5/6k490nEOTljCLubKvGGEXCvqfP0ti/4ZM9Knh57LSn2+KDxGKud5yfcSG5dEaur83FabEzrOoS0FrvyGkpZX1tIrMXBlK4Did8v9X5V9U6EgFZ0OwiJpFF3s7BiC9MzhkZ3kkKhCEEJdyextW5PxJWoXbNQ0FQRVri3NZREnFMTghJXLb3juwY+uzRnEh8ULkP3ucJez234yGso5TerXuM/k24JO++QpB4MSeoR+Nmle7lrzWusqylAINCEwNho8rshF3BejzGUumr5w/p3yK0tatVPHo5mw8vWuuKohVs3DeaWrOPDwuU0GW7Gpfbjyl5T6BaT0q7rKhTHEse0cEsp2d5QQrPhpV9CZsiKsTNJcyZS0FwZdkyXJl0c8WHHEm0x1Pmaw475pEGSLTbosy6OeP436Vb+vuljllftCPuo0KXJ9oZS8hpK6ZuQ2abtf9n4AWtrCkLeGB7NnU1mTDL/t+4darxNrbpIIuHQrBHvPcRu0+D2lf8lt243rpaytoVNVXxatJLnxt8Q9LBRKI4njlkf95rqfM5f8Ag3LnuRO1e9wlnfPsRTW+ZghIlb7gwu7zk5qLbIvnSPSYkYXXJpziScmi3kcw3BsKTssKKXFduFZ8Zdz7Ck7Ij2WITGupoCqj2RS8SCP5vy+/LNYd08HtPHE5s/p9nwHJBog9+rclq34VEd+9meVWyq/VG0we/Tbza8/GHdOxF99wrFsc4xKdwFjRXcsep/lLnr/Jt8ugePqfNB4bKwG3ydwUldB3NGt5HYw4TiJdpiadTdYc+7KGcCw1OCC0o5NRtJ9lj+OOKSVq+ZFZuKIHy4ncvw8OjmTzlv/sNctvBJVlXtDHvc7qaqiLHXEtjdXBkkpPuTYo/j4uwJ/HrQ2Tg0G5YWeyxoODQb9w6dGeJrj8T7hcsiRsxUeOrJbyqPah6F4ljjmHSVvJL/Pb4wkQtu08d7BUv5Wd9TiGslHK8jEEJwU78ZfFm8FvZLcsmt3c3v17zJP8ddH3KeVbPw9NjrWFi+hdlFK3EZHk7qOpjzssYSb2vd1XNpz0nML9sUVuwk/phrA8hvKudXq17h2XHXB4UKlrlq2VpfjLcVYXZa7HgiNG6ItTi4a8j5nJrpX1GPS+3PuwVL2NVUTp/4DC7tOSnIP98WkR5u4H+DaPRFHlcojmWOSeFeVb0zokvEqmnsbCxjeHJOp9vx4e7lYV0KXmmwrmYXBY0V9IxPDxm3CI1pGUOYljGkXdcblpzNT/ucxCs7v8dn6phIIgV9eEwfz2z9kn9PvBmfqfOnDR8wv2wTNmGJ+N05LTYuyp7AWwWLcbXUN9kXQ5pMThsQ+LlvQgb3DJsZle2mNFlauZ3vyzajaRqnZg5nZHJPytx1Ye3RTYM+CdElMykUxxrHpHDHt7KaNqTZ6avtvayuzg/rKwawCAtb6ovDCveBUu9zMTCxO3cMPJMdjaVUevz+6kisry3ElCaP5n7KgrJcfyNiwttr1yxMzxjGTf1msLOxnKVV24L6YDo1G78dcl5QYpHb8PJ6/kI+2r2CJt3DwMRu3Nz/VE7o0idobpfu5ZblL5HfVI7L8CLwJyENSuyOFQ2DYOF2ajYuyB57SDebFYojiWNSuC/MHs9TW74I6zLwmQYPrHuXmdnjOa/HGOwHUEsjt66IZ7Z+yZqafDQ0pqYP5PaBZ5G9X5p4qiM+4opXAEn22DAj7UdKyfPb5/HGrkXYWnzqhjS5LGcy3xNZuDUhaPS5mVO8JuIDRuB/A9DQ+L4slw+Ts/nb6CuYs2cNbxUspsbTSL+EblzXdxondOkdOM9r6ty07EXyG8sDrpU1Nbu4Y+Ur/GHYhZzefWTg2Ke3fsGOxhK8Le4tCbgML7l1ezir+2gWVW6hWfegCYHXNDivxxjuGHj2QX5rCsXRyzEp3Of3GMsXxWvZ1lAS0h3dkCZbG0p4asscPtuzihcm3NQu8V5fU8htK14OPBRMDBaUb2Zl9U5emfSLIPG+MHsCCyu2hO3QbtE0xu638jxQ3in4gbd2LfavmPcR4LY6wE9K7U9BcyVWoRHq+PDjT7k3A1UEn97yBQnWGM7rMYbzeoyJOPfc4nXsaqoI8YfvraEyPXMoNs2Kbhp8vmd1QLT3P3ZhxWY+n/57ttQX06i7GZSYRaItptX7UiiOdaKKKhFC3CmE2CSE2CiEeEsIcUS/o9o0K/8afwN3DjyH/vGZYSMt3KaPvIYyPt69vF1zP7p5dshKXiJp1j08v31e0OcndOnN2d1PwGn5MbzPJiw4LTZu7ncqd615ndO++SszFzzKK3kLAgK/rb6ET4pWMrd4HdvqS6jzBsd1u3QvuXVFFDRVYkqTl/PCZ1u2FbJ3TtYYkm1xYf3VkXCbPp7b/lWboXizi1aGfWCB//taV1MAQKPuCXGF7EutrxlNaAxJ6sH41H5KtBUKolhxCyGygF8CQ6SULiHEu8DlwP862baDwqZZmZk9jk+KViIjCJjb9PHh7uVc2nNyVHM2+FzkNZSFHTORLKwIdksIIbh7yPlMzxjCewVLqfQ0MDwlh77xGTy++TM8pg8J1PmaeSnvG74qXUesxcGW+mJ0aQQ25SxCY3xqX+4beiHvFC7h3YIlWDUNwzRJcybQpHsC15SmROoGwmpBaJEr8fnfMiRl7tqo7n1fylvCLFsrlOWJEMa3l71vBgk2J3bNGjYKCPyFqRQKRTDR+gisQIwQwgfEAsWdZ1LHsbIqr9UUciBI9NrCbGOVGW4VKoRgQlp/JqT1B/yumjO/fShkhewxdXY0lPnTy/eLojCkybLKHVyy6AmklHhMH56WQ4qaq5GGiauwkrqVebh2VwX86jE5aSSN6UNMThrCEvxy5TV1Htz0EW7Di0BEfLiFQ0Cb7qVpGUPZ2Vge1nfepHtYUbmDoUnZJNljuSxnEm/sWhwi9k6Ljev6nBy1XQrF8UKbwi2l3COE+AdQCLiAr6SUX3W6ZQfJlro9/HbN661WzxMQtKHWFkn2WLJjU8MmfghEQJxbY1NtEV4j/EagRGJEeDiYyLAuDW9lA2WfrMBX24zmtGFPT0QI4Rf4sjpKP1yOLTmWjAvGYU9LCDq3tTjpSGgIpqYPClvje18uzJ7A27sWo5tGWJfNe4VL+ap0A69Nvo0b+s2gsKmShRVbMJGBcrbnZ43lgh7jWr2ObhosKM9lTfUukmwxnNl9dMgmcXtw6V7ym8qJtzrJiUs74HkUis5EtOWrFEKkAB8AlwG1wHvA+1LK1/c77ibgJoCcnJwxBQUFnWJwNNR4G7nw+8faXE1bhYU3ptzerqSQ5VU7+M2q10JWhzEWO/+ZeAt9W4ktNqTJA+vf46sO6uforWyg+K3FCIvAlhiLQIQVSb2+GWlIul8xJUS828IitMAbgF1YiLM5eXXSL8iISW7z3D3N1Ty48UNWVe8Mu563Co3zssZwz7BZAOQ3lrOkchsWoXFi+mC6x7ZeSKrcXceNy16gzttMs+HFKjQsQuOaPidzQ78Z7bpPU5r8a9s83in4AUuLGyojJok/j7iMwarrveIQIIRYJaUcG82x0WxOngrkSykrpJQ+4EMgxCkspXxRSjlWSjk2Pb3jYpMPhI93r4iq5vP9wy5sl2gDjE/txxNjfkr/hG5YWoRidEov/j3h5lZFG+DxzZ+xoCy3XdeLhDRMyj5ZgbAIrIn+sMJIm5HWxFiERVD2yQqk0c5aLVLSIzaVXnHpXN3nJN6eekdUog3+mizX9Z0WIQnfH62yb1Pi3vFdubLXVC7rOblN0Qa4Z+2blLvrA82OdWniMXVezf+e5VU7orJxL//cNpd3Cn7Abfpo0v310wuaKrll+b8pbq5p11wKRWcTjY+7EJgohIjF7yqZAYS2PDmCWFOzK2JaNvjrZpzZfSRnZ40+oPnHpvbljSm349K9aELgsIQWhdqfGm8jnxStjBgv3V5chZX4aptxZPg379ryUFsTY/GU1eIqrCS2d/QPKyEEMzKG8YuBZ7R6XKWngZd2fMO8kg3o0mBQYncKmyppNrytxIxwwN9HUXMV2+pLwmZVug0fb+YvYnxqv6jmatTdvFewNOyGqtfUeXPXIn475LwDslOh6Ayi8XEvE0K8D6wGdGAN8GJnG3YwpDkSWt1wOztrNPe1vJ4fDDHW8NX/wrGhdjc2zdKmUAkEFiFCuq9r+MV57x3VrcxDc7b9wIC9CTQCYp3UrdrZLuHWpcm62l3cuPQFqryNDEvqwdV9TqJ/QrfAMZWeBq5a/Az1vuaA3WtqdkU1/4GWZi1x1WLTrBEf0EXN1VHPta2+BKumBTZ890VvScVXKI4koooqkVI+ADzQybZ0GDN7jOPrkg1hY5vjrA5+P/QCNHFoCyPahAWX3na8tBWNK3tPZUVVHiXNNbgML8m2WMo99YEHkTQlrt1V2NPDNxAOmk9o9E/oRk5cGlm9U/hw7XykKVsNFdwXDcGmfRomFDdXM78sl7+OupyTug4G4L953wWJdrQ4NBu3Dmh9JR+JHrFdWs327NWOUgKxFnurcemthT0qFIeDY7Ks64iUnszMHheU+GIVGk6Ljb+NujKobKlL9/JB4VJuXPoCNy59gfcLlkYlsPsjpaTUVUu5uw6AKk8DW+uLA8kzbsMXVQ1rHwYnpw/hwuxx2C1W3KaPUk9d0LlSNxAQVcd0if/7yIlLw6JZGJXSC1s79NVEBnW5MZG4TR8PrH8XX4twzitZ3y7RtgkLqY4EHhp1ebuievalW0wKw5NzsIZ5ADs0G1f3PinquQYmdo9Y98Sp2ZjVRmSLQnGoOSZT3gF+PfhcTuo6mPcKl1LurmNocjaX95xMj9gfQ8XqvM1ct/Q5Kt0NgdV5bl0R/9n5Ha9Nuo1UZ3QRGN+VbuTxLZ9T621GItGEQDdNHBZ/YsnJXQe3q4HDc9vnsrF2d8Ra1MJq8btNpGxVvAWCHrFdAtmGUkrsmpV/jL+W3697Eyn9iTJOzQYCUmzx1PqaAufqUg+bir6XFVV5TE4f2C7RtgiNi3Im8KtBZx/0W8/fRl3Bz5e/RKnL/2Zi1/zd5H8x4AxGhulsHwkhBH8ccQm/XvUq3paqiuAX7f4JmZzT44SDslOh6GjaDAc8EMaOHStXrjyi9y8BeHDjh3y+Z03YWG+bsPDICVcxJX1gq3MsLN/MvWvfbjVT0CYsxFrt1PlcUdkVTf/dkveW4Cmvx5YUuVBVr7h0pmcMDcRcV1RU0KtXL+666y5qvc18UbyagqYqeselc1bWaBKsTnLritjVVEFXZxIv7fgmoq861mLnvmEXclq3Edyz5k2+LdsUdRKPQ7MyK3s8dw46J6q3htaQUrKiOo8NtYXEW53MyBxOmqN9IY97yWso45WdC1hTk0+cxcGs7PHMyhl/QIXIFIr20p5wwOP2N1JKyZfFayMm6Pikwe9Xv8F/Jt8StBG3/xxPbJnTZnq3Txo0614crWym7Us0mYxJY/tS+uFyiJARfmL6IAbtF3/c1NTEGWf4fcrJ9liu6DU15LyhydkMTfa3QNtQW0huXVFYm3VpBjYWb+w/gx8qt0Vd88Rj6nxStILJ6QOZGEXSUmsIIRif2i/qCJLW6JuQwZ9HXnrQ8ygUnc0x6eOOBkOabUZ4eKXOKzsXAJDXUMrjmz/j3rVv8W7BDzT63DTobkpd0cX4GtIk1uLA2sZXbhMWLFG4EGJy0rAlx6LXh28svKIqLyhFv7Kykq5duzJkyI/NGRp8Lt7atZh71rzJ45s/C6nDcmG2f7W5/5rYoVmZnDaArNguAPSJz+D58TcyODELm7Bg16xkOJO4MHtCoHXZ/rgMH/etfZu/bPiArfVHRQUFheKI4bh2lcxa8A/2uFoPG+vmTOa8HmN4Zef36KaOgcRpsWETVp4aew03LXsxKh+vQ7NyU78ZLKnczsrq8P0eAbJjulDmrsPbSqr+XvbNnNybhLMvY7v0YXSX3lRWVmIYBvfffz9ZWf5V+Lb6Yn6+/CV008Bt+rAgsGpWru87jev6Tg/MkddQxr1r36LEVYNV0/CaBqdkDOO+YbPCxq/XepvxmTppjgSWVG7j/nXvtJparyGwaVZ+MeB0Lu81pc17ViiOVdrjKjmuhfvLPWt5cNOHrbovesamUeauC7tR2C0mmQxnEmtr2k7vt2tWPj7pt/x90yd8XxG+uYFVWHh41JVsbyzlf3nzI25O7sv+tUqsiTGBWiVmvZvJiX3ol9WLO+64IyDapjQ5f/4jlHvqQ+Zzajaen3BjSHx1fmM5Nd4mesenR93st8RVwyULn4gqycauWXln6q8Cq3iF4nijo1Pej1nOzBrFzf1PjZiS7bTYiLc5Iwp7nbeZmT3GB7rORMIiNG7oewppzkRqWqI2wmFIk3vWvcXsopVM6zqETGfbqeX2tAR6XDuNzAvH48hIwltRj6esDm9FPbaMJNJnjuWhhx4KiDbA2pqCiKtgr6nzXuGSkM97x3flhC69oxZt8IfsjenSp83vB/yVFz/bsyrquRWK45njdnNyL1f1PonRKb24ZfnL6NIIuD1iLHZGp/SmztcccaNQIHBabDw95jpuXfFy2OMEgjsGnhVwA5yQ0pst9XvC1p+WSLymTrGrhmpPI2NS+/CrgWfz540f0GyEFsyytPRjFBaN2N5die3dNaQed5HDxGoN/t9c4a7HjPCiZSI7tDbHgyMv59erX2FLXXHQ97s/ujQod4e+ASgUilCO6xX3XoYm5/DRyb/lmj4nMzQpmwmp/fnj8It5bMzVDE7sHnGzUJcmveLTGZPah5/0mhqU8AN+t8OMzGFctk+jhkt6TsQm2l6Buk0fq6vzWVWzM2Lki4HJ4MTgyBGhCTS7NZAZGU7wBQK3GT4CxIrGoMSOq4YXb3Py4oSbeWniz7k4Z2LE0LoYi53hLdEsCoWidY77FfdeUh0J3Nz/NG7uf1rQ55f1msJne1aHJNBYhcaAxG70ifdXBLx94JkMSOzGf/PmU+KuIdWewJW9pnBRzoSgWOWuziT+Oe5n/H7NGzTqboyWinbhcBleCpoqsQpL2O7rds3KiOQcttTviRg8aIZZ4bbWi1IiubTnpIjjB8qAxG78KuFsFldspdhVE/R97m3McEa3UR1+XYXiWEQJdxv0jEvjwVGXc/+6dxD4/dCa0MiOTeUfJ1wVOE4IwZndR3Fm97bFZ1hyNp9Ou5tNdUXM2bOa2UWr8Mrw4p1kjSHO6sBleELEWROCC3qM44PdyyK6ILrYgn3SlZ4GdjaFb78GEGdzdtoGoSY0fy/QVa+wu7kKraV0VpItlsfHXNOuol0KxfGMEu4oOLHrYL6cfi9flqxjcfkWGnQX/RMyqfY0tmuzbl+EEAxLzibBFsPsPavCpkrGWuycnDmEG/vP4JblL+EyfLgMb8Al8/Don9AvMZNhydmsqykImcIhrFy83+rZY/iwCA0f4d0vnRFltC9dnUm8MeWXbKnbQ2FzJRnOZEYk5xx0BqVCcTyhhDtK8pvKeWrLnBbXho/1NQV8UrSKG/pO55q+0w543p5xaZyUPoiFFVuDMjCtwkKaI5HpGUOxaVY+nXY3Cyu2kN9YTldHIqdkDgtUrXtg+CVct+Q5XIYvMIdds5Joi6XW28SOhlL6JWQCkBmTjFOzhe3ALhCMPsCiT+1lUFJWSGanQqGIjuM6jjtaDGly9nd/o8YbGsrn0Gy8NPFmBiZ2P+D5ddPg2W1z+XD3MiR+v/SJ6YO5e+hMku2Ra5HsS73Pxce7lzO/LJf8lia9PmkEEmvO7D6Se4fOQgjBh4XLeHLLnJA4cWfLvQw4iHtRKBQHhqpV0sGsrMrDE6HBr8/Ueb9w2UE1ZrBqFu4YdDa3DDidKk8DibZY4tpZAzrRFsNP+5zMzsZyttUXB0qxGkgM08fcknWMTO7JuT3GMD1zKO8XLmNHY2ng/Hirk4dHXcmAxO406m7mFq8jv7GMrNhUzuo+imR73AHfn0Kh6FiUcEdBhachYiy3iaQkynolbWHXrHSLabvXYiSadQ9fl24Imy7vNny8mv89p3UbwXVL/hWoG74Xn6HzefEaHBYbd6z8H4Y0cZs+HJqNf237iodGXcHUroMO2DaFQtFxKOGOgr7xGRGF26ZZArHUe5qreXHH1ywq3wIITuo6mBv7zYiq8W1HUONtarVAVbm7jnmlG6jxNoVEoXikzryS9cwvyw2K/d7rM7937Vt8Mu2uA96MVSgUHYdKwImCwUlZ5MSmYQnzdVmExsU5EyhorOCqH55hbvE6GnQ3DbqLL4rXcNUPz7C7qeqQ2JnqiA8bt72XzJhkFpTltlp+NVKyj0Ty+Z41B22jQqE4eJRwR8mTY6+lV3w6MRY7Ds1KrMVBnNXBP0ZfTUZMMo9v+Zxm3RvUYsxE0qR7eHrrnENio9Ni58zuo8JmJzotNq7tMw1HG00BfBGSgTymTmFTZUeYqVAoDhLlKomSNEcCb075JRtqC9neUEoXexxTug7CrlkxpMnyqh1h3SkSyaKKrW22GesofjP4XAqaKtlaX4zb8GIRGhahcUHWWM7oNpJ4q5OFFVvCrrolEqfFHnbModnoHR99d3iFQtF5KOFuB0IIRqT0ZMR+/QyllEFNC/bHlBKJRESsQ9hxOC12Xhh/IxtqC1letQO7ZmNaxhBy4tIAmJw+gGFJ2ayvLQyKG3dqNq7vO503di0KK9yaEJyTpXovKhRHAkq4OwCrZqF/QibbGkrCjg9N6nHQjXHbQ6QHDPjTzp8aey1v7VrMe4VLqPM1kxObzg39TuHkjCFMTh/ArSteRjcNmg0vMRY7AnjshJ8Gmg4rFIrDi0rA6SBWVOXx61WvhvSfdGg2nhp7LSccoozEjsBr6swv20RhUyWZMSnMyBim6ogoFJ2MSsA5DIxL7csjo3/Co7mzA51lMp3J/G7I+UeVaIM/nvz0biMPao4NtYU8u3Uu62sLsQqNUzKHcsuAM8hwRuhurFAookatuDsYKSUVnnoEgnRn4uE2p9MpcdXw6s7vWVyxFZtm4ZysE+iXkMl9a98OevuwIEiwxfDmlF+Sdhx8LwpFe1Er7sOIEIKux8mqMq+hlBuWvYDH8AUSev6T9x2GNEPqlxtIGnU3/905n7uGnH84zFUojhlUHLfigHlw40c0656gLEyvqYeI9l50afJ16YZDZZ5CccyihFtxQNR6m9haXxyx804kWgubVCgU0aFcJUcphjTZWl+MbhoMTOyOY79+l52NqyW5xxchRT4cGoKp6QM70SqF4vggKuEWQiQDLwHD8PdquV5KuaQzDVNE5puSDfw99xN8poEQ/g3Rm/ufxhUtneQPBV2dSTgttpCa3nsRiKBMUgHEWO38rN8ph8g+wrRyAAAgAElEQVRCheLYJVpXyVPAl1LKQcBIYHPnmaRojZVVefxpw/vU+ZppNjw06R6aDS//2vYVs4sOXSSPRWjc3P80nFroSt+h2bh94Jlkx6ZibUm5H53Sm5cm/JwesamHzEaF4lilzRW3ECIROAm4FkBK6QUil5dTdCr/2j4v7CrXbfr41/Z5nJc15pD1b7woZwI+U+eFHV8jpb/WSYI1hvuHX8jEtP78pNdUGnU3Ns2C06ISeBSKjiIaV0kfoAL4rxBiJLAKuENKGdrHS9HpbK0vjjhW72um1td0SGtmX95rChflTCCvoQybZqVPfNfAg0MIf+y2QqHoWKJxlViBE4B/SSlHA03A7/c/SAhxkxBipRBiZUVFRQebqdhLa2VZpQSnduhXtjbNyqCkLPomZKhu7QrFISAa4S4CiqSUy1p+fh+/kAchpXxRSjlWSjk2PT29I21U7MPZWaOxCUvI5xqCMV16q5oiCsVxQJvCLaUsBXYLIfbGcc0AcjvVKkVEbux3Kl2dSUErb5tmIcHm5PdDZx5GyxQKxaEi2jju24E3hBB2YCdwXeeZpGiNRFsMr025jQ8LlzOneDW6aXJK5lAu6zmZVEfC4TZPoVAcAlSRKYVCoTgCaE+RKZXyrlAoFEcZKuVdcVSzansRr3+9ioKyGnplduHqU8cwul9Wm+dJKVmxdTcfLNpAdX0zY/pncfFJI0lLigs6rsHlYX1eMRaLxuh+WThsx+efTGVdE15dJzMlEU1TkUOHG+UqURy1/G/uCl6csxS319+ZXgAOu5Vbz5vMVaeOiXielJK/vvkNXy7fgsvrT2ayWy3YrBov/OpihvTMRErJC58v5ZWvVmC1+KN4TCn57cUnM2vq8LDzenw681ZvY9XWIpLinZw3cQh9u6d17E0fYnILSvnL61+TX1qNJgRxMXZ+OXMq500aerhNO+ZQ9bgVxzzFVXU8/9kSvPqPRa4k4Pbq/POTxZw+diBdk8MnIv2QWxAk2gBe3cCrG/zm+U+Z89ANvLNgLa/OW4nHZ+Dx/XiNR9+bT1pSHCcO77OfPfVc9+jbNLm9NHt8WDTBO/PXceUpo7l95tSwdjS6PLyzYC2zl+Ti9RlMHtKT684YR4/05IP4ZjqO/NJqbnzifVyeH78nt0/nb29/iyklF0wedhitO75RPm7FUcmXK7bS2tviVyu3Rhx7d8HaINHelwaXh3U7S/j358sCK/l9cXt1nvv0h5DPf/fiZ1Q1NNPcInKGKfH4dN7+bg1LNxcEHZtbUMYNj73LSb9+jmc/+YHd5bWU1TQwe8kmLn/wdbbuLo9o+6Hkxc+X4onwHTz90SIMM3zddUXno4RbcVRS3+zGZ4QXDq9uUN/siXhuZV3kag2aEOyprKXJHbkcT15xVdDPBWU15JVUYZqhDxKXV+f1r1cHft6QX8INj7/L6h17Qo41TEmzx8efXpsX8dqHkqWbCyLWT3d7feyprDvEFin2ooRbcVQysk93Yh3ha5DHOmyM6NMt4rnDe3fDagn/q+/VDYb0zGh1NR/rCM5OLa1pwGaN/KdUXPWjwD389ndhV/L7srOkioq6xlaPORTYrKEZunsxpcRuDe9plVKyZXc5q7YX0eiK/ABVHDhKuBVHJScO70NKQiyW/SIcLJogPSmeSUN6Rjz3JzNOCCvcdquFCYNy6J2ZypRhvUPm3nvMBZODN+Zyuibj9YVvKCEEgQ3KRpeHbUVt1/Hx6gYX/ekVHn7nW2oaXW0e31mcPX4QtggPOKfdRnpyXMjnq7YVcfZ9L/Gzx97lzuc+4bS7X+SJDxaEfRtRHDhKuBVHJVaLxn9+eynDemXisFmJj7HjsFkZ0ac7L/3mEixa5F/t7PRknrjlAhJjncQ57cQ67ThsFsYM6MFDPzsbgHsuP4WUhNig8D+n3UqP9CRuOmdi0HzduiRyQv+ssCLnsFm55nR/oIAEf+hLFDS6vHywcAOX//U13vhmNW/PX8vOkqq2T+xArj19HMnx4as7ujw+/ryfS2dnSRW3P/sRZTWNuDw+Gt1ePD6d975fzzOfLDoUJh83qHBAxVHP7opaiivryEpLaldEhs8wWLm1iPomN4N7diWna0rQeEOzm48Wb2Te6m1YNY3zJg3l7PGDcdpDXQR1TW5uffoDdpXV4NUNrJpASrj7sulB4YOX/OXVEB95W1g0gUXTEEIwaXBPHr7xnFbdGB3J2/PX8vh7C9DDbETarRY+/OO1dE9NBOAP//uSL1ZsCbu6dtisfPPIzcQ6VRG0SKhwQMVxRXZ6MtkHEEJns1hadakkxDr56Wlj+elpbf8tJcU5efk3l3LXi5/5o0ikACQfLtrA2IHZAft+d+l07nj2Y9y+1v3c+2KYEsP0u2KWbC7giQ+/53eXTo/6/LbYvqeSZz5exLLNBSAEU4f24vaZU+mV2YXlWwrDijb4Hygrt+3m/JaY7tXbiyK6RKwWjZ2l1Qzrldlhdh/PKFeJQgGYpn9Dbd3OYprdPt76dg1n3ftvxv7iSc6859+88c3qNv209/33C1ZuK/KHAuoGXt1kc2E51z7ydmCTbtzAbJ6+bSYDeqRj0QSagN6ZKdijXEF7fDofL97Y5gZntGzdXc61j77N4o35+AwTn24wf30eVz/8Fvml1Thske0SQmCz/Dge18pq2jDNVscV7UOtuBXHHZV1TeyuqKVrcjxZaUks3rSLP746F5fHhxACt/fHWGyA8tpGnp29mE27SgM+8P3ZXVHL4o27ghKCwB994fL6mL0klytPGQ3A2AHZvH3fVYHrWS0ap/7u+ZBzIyGEoLKusUMSdR59d35Qgg34G3I0e7w89eFCLjpxON9vyA85BkA3TKYM7RX4+eKTRvDkhwvDPlS6JsfTKyMl5HPFgaGEW3Hc0Ojy8H+vzOWHTbuw2yx4fQZdEmOorG2O6A7Yi9urM399Hlt3lzMwu2vI+LqWeiaEEV+3V2fxpvyAcO8lZp9wxl/OOpF/vDc/qpW0YZiBTcNmt5fPluWyYP1OnHYr508cytThvVvdnN2L16ezdmf4VnhSwuJNu3js5vMY3iuT9TtLgtw7TruVm8+ZSGKcM/DZuROG8NZ3a9lTWYfeEmNvtWjYrRYevO6siN2RdpZU8dzsH1iSW4AQcPKIvtx6/mSy0pLavIfjFSXciuOG25/9mM0FZYH0doDS6ujjpb0+g+/W5oUV7hiHDa2Vtm1en05JdT3duiSGHb9w6nDsVgt/fn1eQPTCYbNonDi8N/ExDsprG7n672/S6PIGMkGXbi5keK9Mnrl9VpAbIxwy8K8I41KiaYJnbp/Fm9+s4e35a6lrctErows3nTORaSP7Bo7dU1nHjY+/R32zG90wEX4XP+MG9ODeK0+NKMLbiiq4/h/v4PbqgWSfuSu3smhjPq/fc+UB7V0cDyjhVhwX5BaUsnV3edTuiHBIKSOuzCcP7dWqDzy3oIxZD/yPcQOzeej6s0iIdYYc0zuzC1ZNhFu0A/7NwIyUBO678lQA/vjqXKobmgMuHfCH6a3PL+G9+eu4ckZIh8EgHDYrA7PT2VwYPsV+zIAeAT/2NaePDYQ17o+Uktv++RHltY0B8d0brLZ6R3GQffvz6LvzA2UC9mJKSZPbyzMfLeKRm85t9R6OV9TmpKLTyS0o5YXPlvDCZ0vYXFh2WGxYm1eM0cpKNhqcdhsnDu+NTzf4ePFGrv77m1z4x//xyLvfUdPg4r6fzMBps4YN1XZ5dby6wfKthdz+7Mdh59+8uxzZSqC3KSVltY389sVPyS0oZdX2PWFF0e3VeXv+2qju6TcXn4wzTKlap93KHbNOjGqODfmlQaK9L4Zp8u6C8La4vTpr80JT/8F/rwvW50V1/eMRteJWdBo+w+B3L37Gsi2FgczCV+atbIlFPjdi2nlnEOd0RKy7EQ0Om4VBOenYLBo/+8c77CipCvijiyrrmP3DJl688xJeuPNi/vPlclZv30Oj28P+l/TpJtuKKsgtKGNIz4ygMdMw8eqRfdxSgk83WLujmFue+gCrpuEj/PK8rskd1X2d0L8Hz9w+i8feW8D2PZUADM7pyl2XTguxLxKFFTURx3TDDMy7P23lkBidkGNyrKBW3IpO4z9fLGfZ5sKA/9KUErdXZ0luAf+bu6LDr1dSXc+S3ALyin8Uir3iMH1k31Zf2fdFEwKbRcNhs2KzWnDarKQnxbNxVxnX/+NdNhaUBW0i6oZJs8fHff/9guG9u/HELRcwcXDPENH+0SZ/sSkA0zRxu924PV7+/cWyiOfsiyn9lQd9RmS3T9/uqVHdK8CY/j14896fMP+xW1jw2C28evcVDO8dudbL/nTrkhjxPcGiiYjRJDEOG70zu0Sc94QoGmIcr6gVt6JTkFLy5ndrwiaauH06b367mhvOntAh12podnPPy3NYua0Iu82CbpjE2G3ohkGDy0taYhzXnD4WiwbReEtmTRnGz86agBAwf10e/527gtLqevQ2hL+spoGCshp6ZqSQkhCDJkTYVb5p6Pzn/c/5818foqp0N5oQJMQ4cNsSic0agDMlA6G1vrHo1U1SE2Jp8nhDIlEsmuCSk0a0faP7caBx1if0yyIpzonL4wvZ67RaLFw2bVTEc39zyTR+9dwnePb7PXHarfwySlfN8YgSbkWn4NMNmlyRS6PWNvmjDzrCXXLbPz9iS2E5PsMMbD7uK2aV9U08O3sxaUkJlNU0RJzHYbPy0PVnMW1kX576aCFvf7cWIQhqpNAaFk0LJNqcP2kos3/YFPLg8jbWsmfDQnRXI5rNjsWRgBSCOkNiNFfRWLkAa0w86cNPxB7fekSFxSI4aXgfvlmzPeRt4i9vfE2s087JI/pGOLvjEELwzG2zuPHx93D7dFweH3arBSHgrkun0adb5NX/hEE5PP7z83nkne8orq4HKemd2YW7Lz9FZVm2ghJuRadgs1qIi7HTEKEudlKcs0NEO7eglO17KiPW5t6L26tjms04bNaQ1Z0mBGeOG8QvZ02la3I87y5Yy7sL1rU7AkU3zMCr/5CeGVx44nA+WrQBV8tDxNtYS+nqrxFCYE8Idh8IIbA648AZh+5uonT112SecGqr4l1V38zi3F1omhZIiYeWFHmvzj0vz+HLh24MirXuLPp0S+XzB2/g69Xb2FRQSnpSPOdMGExGSkKb504a0pOP/nQt1fXNCE2QEqGwleJHlHArOgUhBFdMH80rX60MfQ22Wbly+ugIZ7aPDfmlUfmFwe++ufikEWwuKGN9fikAvTJT+O3FJzNhcM/AMS/NWd7ulHKn3cplJ48i1mlHSsmyLYVU1jXROzOVZo8Xw9BZtvTTHwW6Fawt4l2xYSHdJ5wd0W1imJIml5dI4eOGKZmzYjOXT+uY77otnHYr504cwrkThxzQ+V0SYzvYomMXJdyKTuNnZ41nS2E5y7cWBsTbYbMycVBPrjtzfIdcIyHWEbZudjgkkJ4Uz29/Ow2X14dpyhC/rsdnUN3QHPX1Y+xWTCm56MQR3DZzCqYpufulz/hhU0EgKcZq0dBrS9Fdjdjio0v7tjrj8DbU4K4pIzatOzaLJeIbQKQHl083ePTd+cQ5HJw36cDEVHFkooT7CEeajWDkg0hGWLMPtzntwmax8OStF5BbUMqCdTuhJZ052jCzaDh5RF/++vrXUR1r0fxZhwAx9vDdc/Z2e4/Gr23RBBK44eyJXH/GOIQQfLpkE4s37QqJOinbsRFhbd/mn2a1Ub97CwldexBjtx1Q8pCU8Jc35tElIYYpw3q3+3zFkYkS7iMUKX3I+ofA9T4IG0gf0toXkfwYwtr5G04dyZCemQzp2TkbTXFOO/939Wn8+bV5eHUjYqy202blxBF9Wt0oA3/HGofdGpVw7/Ulv/zFMuKddi6bNsofSbOfm0VKE3dtGba4ZIQQbcYv78XijMNdU8bArDS6JMWxaEN+axnqEdENk3/OXszkob2QErQo31AURy5KuI9QZN0fwD0H8IBs2eDTNyOrLof0uQgtcvzr8caZ4wbRO7ML/527gvU7S0iKc5KREs/KbUV4fDpxTjtXnnIC10fhntlcWIbX276Vrdur8/xnS7joxBFU14e6WWRLvPVe0dY0DSFoM5NTCIFV07j/iunoaKzYsjskSsVuszCsZ2bY5sP7snV3BRNufxrDNBnSM5NfzTqRMQN6sLOkire+XcP2PZXkdE3m8umjQ96IXF4f36/fSV2TmyE9MxjaMyNiwSjFoUEJ9xGINMrA/Tmwf0SGBOlBNr+NiL818vnSB54FYOwBa0+wn4gQh6ZjyuFiTd4evt+wE4um0eDysKusmiunj+b6M8cT67RHLTQ7S6sPaEXq8eoUV9UzKLsrFXX5QWOipdiTlBK7zcqM0f3x+HSklKzPLwkr9jarhSE5GXSxd6V/TiaapvG3n53NA6/O9Yf+SUmz14dhmGzeHb7WyP7sLV61aVcpt/3zI66YPpq3vluDbhgYpmTjrlK+Xr2d22ZO4cpT/HVOFqzL497/fIHQBIZhoglBr8wUnr39wohtzRSdj8qcPBLxrfW7R8Li9otyBKRvE7J8KrLuLmTDo8jaO5EVJyF92zvH1iOA79bu4OmPFuH26jS5vTS5vXh8Bm/NX8vspbntWh1mJLcdvhYOn2EQ67AxtFeo/14IDWdyBoanGdOUpCXFMaBHOl7doD5MaroQgswuCeSkOBg9cgRaS4nWk0f25etHfs5Tt17A6P49sFktGKYMWyu7LTw+nVe+WoHHpwdiwE0pcft0nvl4EXsq69hVWs09L8/B5fXR3NI/0uX1sX1PJb954dN2X1PRcSjhPhIRrYeLIcKLizSbkdXXgKwB2QR4/f81K5DVVyNl5ISYo5l/ffpD2PA9t1fnpTnLAlX7PD6db9fu4MNFG9i0qzTsXGP69zigDELDlNz69Ie8OGdZ2PHEnEFI3Udml4TA/BvyS8KWcJVSsru8lg8XrGZlpcaeyrrAmNWiMTC7Kyu2FkbsLB8tkfzlpin5dGkub367OmxavW6Y5BaUsau0+qCurzhwonaVCP+79kpgj5RS1VrsTOzjidgOXMQiYi8NP+b+HGSk+GMPeL4B51kdYeERRX5p5CJHjW4PDS4PuQVl/O7fn4GUGKZECOiV2YV/3jaLlIQf44c17ccsQN0wcHn1QKKQYZitbg7uKA5fTAnAmZJBcmoXRuX8uDfhaiVWXHc3YXHGs6MOrv77m7z/f9cE4pyLKmqxWiwRN1A14Q+7TIh1Utfkijrzcy8+w6SqvoktheUR67tYLRr5pdX0aqXWiKLzaM+K+w5gc2cZciwjpUTqu5D6DmREYf0RIeyIpL8BToIFPAZsY8AxI/x1fFuBCDHIsgn0Q1MmU0o3ZuMLmOXTMcvGYVbfiPSu67TrxTkjuZX81DY285sXZvvdKB6fPy3bq7N9TyW/+tcnIccP6JHOZ3+9nmkj++K0Wf2NAWi150Cb2Gw23nn+cWwWQWVlJVJKksLU5Aa/aEspSR9+IlJoNHt8vLNPmdYuCbH4WgkN7Ns9jcVP3c6Xf7uRM8YOjBjnHsmBFOuwMaJ3N7qlRi4eZUpJenJ8RBsUnUtUK24hRA/gHOBB4NedatExhvT8gKy/H4xKEBpgRybchRZ7SavnCefpkPomsvFf4FsPWgoi9mqImRV5o9GSBTgI3dQEiAGt4+KnIyGlB1l1RctDosV/6/0eWb0Mkp9EOE/p8GvOnDKMt79bGxLnbLVoTBvRlw8WbgjrktANk21FlezYU0m/rLSgsTe+XcN36/ICURxtpdS3hQAG9OvDtTffxq133U/B7uUIiw1LTBwCf7SJ4W7C1H0htUq8usG81duIcdiYu3IrAGlJcZRU14ck38TYrVyxT4u0G8+ewDdrdtDkDnaT2a0WEuOc1OzXiEG0rNZPGzOQrLQkFm3MD+uGSomPYWgHxuMr2ke0rpIngd8BB7Zzc5wifeuRNT8nIGASoBnq/4qJHS32glbPF7ZhiJRno76eiDkf2fhEhEEOiZtENn8cLNr+TwE3su4ecPzQ4REuN509kSW5BRRV1AbcD067leS4GO6+7BTu+venEduBWS0aeSVVQcJd3+Ru2bg7OB/yXgT+utf1TW7uenU+su8U0lPKqN+9BXeNv7GEJgT25K4kZg8KWx2wqLKOFz5fGshAtVstCAR224/JQjF2GxMH53BeS8r5Z0tzeebjRXh9euCNQQD9stK486KT6NMtlV899zG7ymqwaBqmlKQlxvH0L2bitFs5oX8Prpoxhte+XoWvJUbeabdit1p48pYLVEjgYaRN4RZCnAuUSylXCSGmtXLcTcBNADk5OR1m4NGMbHiKYAHbiwsaH0XGnIcQHbc/LCypyKRHoe4uwAS8gAOEhkh+BqEdgldb17uEv2f89vjWg71ja2fEOu28dvcVfLVqG58uzcUwTE4bM4DzJg4h1mmnW5dE1orisKnhskWs9mX51sJWfcjtxW61cP9PTuX5z5bQ7PaBsBCT2p2Y1O5IaSINgy7J8bjcOp4ILhDdMIMePl7dwKIJ+melkRwXQ1yMnfMnDWPi4ByEEHywcD2Pvb8gaLUs8CcsPXnrBYHel2/eexXbiiooKKuhW2piSIz2redP5tQT+vPR4g1U1jUzul8W500aQkKMo0O+G8WBEc2KewpwvhDibPxO10QhxOtSyqv2PUhK+SLwIsDYsWNV6woA38rIY2YdmBVg6djXTS3mDKR9JLL5PTDywDoAEXMJwpLeodeJTPhqgH4EyOg6s7QXuy1ygaNLTx7Ft2t2hK0NHue0M7qTC/ab+FfD36/fGZLZKYSGsGo0u3V+ffHJPPnB92HtDIdhSrYWVbL06duDxNZnGIHwyH2R+Guhv/LVSn5/+Y8uqwE90hnQI/Lvx4Ae6dx9Wce7uBQHTpvLPSnlPVLKHlLKXsDlwLf7i7YiEq2tSkwQnVNuU1gy0RJuR0t+Ei3+1kMo2oBjOhAhnE76wDb80NnSwog+3fjp6WNx2KyB5BqnzUqc084Tt1wQknAzfmAOeivdZfbFatHo1z211Q7vNovGks0Fbc41fWRfnvrFTEb17Y7dGp07STeMkAbG+SXVGBGaGuuGGdTLsbq+mbKahqjT8BVHBipzsjOJOQ+a3wLCrKBswxBa0iE3qS2klCDrABtCayOePAwi9mpk85t+kQ6Kw4iB2J8eGndNGH5+7iSmjezLR4s2UF7byMg+3Zk5ZVjY7L/EOCfXnD6OV+etbLO8q91q4a/XncVj7y9gxdbdEY8Twp9AM2fZ5rD1VDK7JJCWFEd6cjzjBl7Gm9+u5umPF7UZq52dnozNEizyVovWaqlbq6axIb+Ev77xNbvKatAEJMXFcOeFJ3HGuIGtXk9xZNAu4ZZSzgfmd4olxyAi/hdI9zwwq/H7mwEsIJyIxL9ENYeUJvhWgVEBtoGdWmDKdM2DxofBKAEk0jYakfgAwjYg6jmEpSukvous+z34NoOwAhrE3YCIu6XTbI+GQdldueeK8KGU+3PzORPJTEngxc+XUtpK1xxTStbu2ENRRW3EY3TDZNLgnozs053563bQ7PYFibfDZuX3l58S5O5oaPbgi8LHfu0Z40I+653ZhYRYR6Cs7L7YrRYmDunJzU++H/RQKq9t5E+vfYXQ4PQxSryPdFTmZCcitC6ItNkQ9zPQuoGWDjEXIlI/iUoMpW+DP1295iZk/f3IylmYVVcizcgicaCYri+h7jdgFAI+QAffCmT1ZUi97df8fRHWvmip7yHSv0OkfoDoutTvsjmKohCEEMycMow5D93A9WeMi+i6sFksPPHh95RUhxd3p93K1aeOISUhlqy0JF7//ZVMHdYbiyYQAob2zOCft81iYksjh72M6NOdGEfr8ekAhWWhyUdCCP7wk1Nx2oLXZVaLRkpCDKXVDeEzTX06/3h3vnKbHAWIzvifNHbsWLlyZSsbc8cR0rce2fRf0HeApTci7nqEPXLz1MB5ZjWyfAbQtN+IDWzD0FLf6TgbpURWnAhmuGJFGjjPR0t+pMOud6SiGybltY3EO+1B7b7qmtxc/uBrVNU3B0V2OGxWTNOMGOOdHB/D7RdMZeaUoSEPLdOUSCQWLfzayTQll/zlVfLbSCtPTYxl3sM3hx1bl1fMs7MXsyG/BIfNypnjBnHzuZM49/6XcHnCu4AE8PmDN5DZpf2Rv8VVdTzz8WLmr8vDME1G98vilzOnMlT1jowKIcQqKeXYaI5VPu4wSLMR0BBa662UpFEJvg0gYsE+BiGCv06z6Q1oeBi/m8QEfRvSMx+ZcCda3HWtXl9W30yoaAP4wLcZ6ctF2Dqoq4lRBGZ9hEETPPOjnkqaNcjmd8DzQ0vS0KVgn3xEr7allLw2bxUvf7kcX0ulvFF9u/N/V51GVloSSXFO3rz3Kv79+VLmLN+CV9cZ0ac7EwZm85+5K/AZ4WvAjOjdjVlTh4Ud82+IRv5ONE3w7zsv4dw/vNyqnz1SSjrAyL7defHOcIleka8rgY27Stot3CXV9Vz50Bs0urwBN9CKrbu58Yn3ePb2C0Mid2oamnl/4XoWb9pFnNPOhVOGM21U34gPMkUwSrj3QXoWI+sfBGOX/2fbCETiHxC2ocHHSR+y/gFwzQZhx//rboOkhxHO6f5jjApo+DvB4XH+RBQaHkc6z0BYuofaIL3I6sv8K/RICM3vP+4o4RZWWk3ojjJhRvq2I6uvAOllbyy39M4Hx+mQ9MgRK97/+nQJr3+zKkggV20r4uq/v8kHD1xDSkIsKfEx/O6y6fzusumBY+au2NqqW+FAOtbsS5fEWK49fRzPf7Yk4jEDstIwTLNdgtetSwI7SyKv5AvL2++Ke/7TJTS5vSEbr26vzt/e+oZ3//DTwGf5pdVc9+jbeHx6IFZ+7Y5iRi3uzlO3zuyQJtLHOuobakF6FiFrbgFjB/4oEB18q5HVP8MdbpIAACAASURBVEH6tgUfW/8QuD7DX32v0V8HRNYia+9A+lrKubjntHI1E+mKUBbT/bm/jnarlTE00KLrXRgVWiZYukUYtIIjuoxLWXs7yAaCEnCkC9xfgecrpDSQ7rmY1TdiVl2J2fgS0qyLON+hoNHl4bWvV4Wsas2Wetfvfb8+4rknDMiKmJEZY7cxY3S/g7bv0pNHEtuKr3t9fgm/ef7TiOF/4Zg0uFfEMYfVQtIBdIX/bt2OiKv/gvIaavbp43nvy3NocHmCEpxcXh9rduxh9pJN7b728cgRIdxSGkjXZ5hVl2NWnIFZdy9S33lobaj/K2Ez/qQrKI1cmo3+dmJhswO9yKYXW46rJXIyig98GzGrLsEsHeYvxFT/N6RZ7xd02VazWgGOqW3fVJQIIRCJf8afX7XfdbD5wxrbQPq2B6JRQnEhm15B1lyPrLsbvAv8yUmNTyMrTkfqhQd/EwfIpl2lEVd4Xp/Bd2t3UF7byGtfr+KZjxcxf11eQKzTk+KZOXkYTnvoJmByvJOzxw8+aPuS42N4+76r6J0R/kHt9uqs2Lqbr1dFX2/90mkjI8eJCzj1hOijiPYSqWWcf0oREPXiqjp2ldWEDVd0e/WgYlqKyBx24ZbSRNbehqy/D3yr/Y1xXR8hK2chPT8cGhvMGjAixeBK8Cz+8Uc9r8U9Eg4TvKsBELYRrdTVtoPnW/Ctw79qr4PmN5BVF7dSlnWfc5MeA/dXyMYXke6v/B1vDhLhmIj4//bOO8yJqu3D95lJJslWtoB0EAUVeUEBKRZsCCKI5bOBvSEqNmxgQ0UQsSEWFAWxgO3FjoqNVymKFBHpvfe6LX3O98dkF0LKJssWFs7ttZebKWeehOxvzjznKdkfgP0U9vlAJeCHXddh5j0XP9rA3BFyucQgsBp8fx9wU/KA3Ivc+9BB219WbKUkuuQVeej5+Fhe/2o6706exWPvfs/Fg95layhE8KErz+amru1Iczlw2G3YbTqd/tOEDx7unVBUSCLUr1mDITdfgNMe3Va3z8+nvyUueA1q1qBvj444DRvF3itNEzjtNh7p1blMM+5TT2gcMwmpVo00ckIlafcUeOK6QvYUuJO+9pFI1fu4vT+B9w9g/3+wIOBG7ukPtaaXS1EiKT3IgreshBi5F7S6kNobkXIj1v0rno93vy+alhlKLomBZlV0w9EJtBwIekLvp2QwrHC7A6/ng+AWsLUA4bJcDBHokD4I9vZHIq30ceG0frLeR9ibxrYrAYTRCqnXBr+dfXHnIbeRewIYrcB5fvSTbU339caMQAvti/aUYoJ/ATK4zYoBr2RaNqkTU3AMm872vQUEgvv+rYq8frz+APe/+Q0fDuyNpgluuaA9N3Q9hd35RaS5HOUm2Puzt9Bj3WRixHbvidJJJx43dD2Fk4+tx4Qpf7N+2x6OrZvDNZ3bxE19j8ftPU9lxqI1FB3Qjcdht/HgFWeVrG80OiorZlaqENBCRaAkRNXPuIs+JmYNabzWLPxgryEDVpPdwlEgdwFBMNdD/nPIba3B9xfYYiUdaGH1r4WtMegNYhxrgLOndZzQEdkTwN4CcIa61jhBb2wJc1Q8lo9dqwMc+MfvgpQboGDIPr86wVCHm53I3deVOvOW0otZ+DHmzsswd1yImf8yZmArsmgi5o6emFs7gifku4842W3d+GIg9FxwdiZ6mr9B3K+asFu1W6oAu67zSO9zI9wdhl3Hpmthol1M0JSs2rKTVZt3lmyz6Ro1a6RViGiDVS8kVhalrgnaNE2+3kqrY+ry3C3dmfDI1Tx9w/llFm2wkn7GPnAlrY+th65p6JrG0bWzeeG2CznjP01Kjkt1GlHdSwAOm42bu5Xe0FlxKMy44yaTCDALDvoS0v0ZBBbF2FlkzezTH4b8VYTP/DUQqYi0e8OtqvFyKHrCS7jIBaDgJczgCkTGYIReC5HzGTKwEgLrkHodKPoS3OPiGBtE5HyKzH8e3F8CftBqQVo/MAtBxliEkh4rbM95Xvhm/1JkwQjwzQjZKyh5AgishsK3kejELw4VIqY7yUJkPouU91qhgMJGsctFZD6PLBoPvmkxbDfBVr/061cQXdseR25GKqO+ncHiddtIcxo0rFWDuctjd063aRobduylSZ2cSrExK81Ft3bH88OspSWlXYsxbDau6ZxQ+G+F0qx+Td65/wrcoSbGaTEqCPa//EzcPj8/zFqKPeSqEgKevK4rzRupGXciVL1wO06FwHKiz/J8cEAoXiyklCE/q47QDminVFBaTWsveL5G5ExA5r8IvplYiSfnItL6I2zhM2xhbwa5PyDzh4VmqMWzMtP6cU9CimxExoPW8bZjkHoj2H2z5eclVgSADloumNvQMgcjM54C/EjPdMz8kfiKFmIYRO9CLj2WEJd8HqZ1w8obTNTPFgh3hyRATN9+aLdwIbLesjIt/fNBpIHjNGunf6F184h4705I6YWI+RRSObRpVp93+lst4WYsWsODb30TN64nEDSpn1u5tWYe6XUupimZPHsphk3HlJIUp8GzN19Aw1o1KtWWeLiM+E8ddl3nyeu6cudFp/Hv6i2kOOy0CTU/ViRGlQv3vqJEB4qLE5xdE/J7Ss8UZP4zENwKSKStCSLjSYTRxqr1YW4v3RD/AoT9RET22MTs1msig5uI7hv3gPtDZPrdCBGadXi+B988YteqBgiC/w/kjouRrh4EU55m4awHmfz9Ryxevm9G3LypQZezU2nezMBmC4m4cEAoLlz6F1ihjeZ2Yt8kykBMH3Y4wtYIbFYKtwxuRe68MlS4an9bQn/crh6I9AfKz8ZyYNzkWXH7QWoCjq6TXWmz7WLsNp2nru/K3ZeczpJ120hPcdKice3oN/JqQM3MNM456eBDJo9Eql649dqQ/QFyzz3WjBmbJeKu7oiMp0o9X3p/s87dXxADS5G7boScCXF81wcaknxnbwLL4uwUocXGkIAVfUK4GyYePjau+oKR737Htq1rSEvRaFjPhhBWi6u1GwK8/NZuauXq3H1LFvXqhAo5OTtbqfK7rrP84OVNGWppyz33gbmV8AVaAAEZT6KlXFYuppUn+3dVj0ZWWgov9e1ZSdZEkpORymktjq6y6yuqnipfnIRQi67cnxHZnyBqvI6o9Rta5rOIBMRU5j1L9FmsB5n/IkLYQS/tS24DZ+mxyhHEK8sq/Uj/EqT7a6uJbxJCunFzgCEjtlJUsI7GDezk5uglq/JCCHJzdBo3sFPklgwZsYuNmyUi6y2EcCKLPk0gpLCM2BondbgMbrZKAkSINoAP3BPLw6pyp37N2G4Hm67x/sO9OCpLdfFTVB2HhHBDKAnEfrwVT3ygjzoG0swPVbOLge8va+z0h4nd1MAGWk7EAmRCuK4hMmkFSsIL8wYg8wYhd15uNQuOiBSJJBCQjHxnN7oOudnxfX652Tq6DiPfdRDUQu3AfLOJ744pK05E2l3JnRLcGv9JJrjp4EyqIG7ockrUqAebrnHKcQ2ok5NRBVYpFPs4ZIS7bJRmfmjF2nk2ZA4FkYUltCHXgsiF1L6I3G8QevL+SpF6DdhPsopMleDE8nsHQqnwhViJJjuJPvMMZ9EyH9t2BEsV7WJys+1s2+lk0aJQ1Ixekwr5Z027AxErhjsWeoP4fnHboenf7Ni8ETd0sUq52kPJIikOO41qZTHkxopvuKxQlEaV+7gPBqGlIu2trEYDEWhhoXGa60Kk84J9fmlbs6QTe6R/kRWmVxx14jgTMp5ABNcg3Z9bWYHSDv4/iIzkCAIG6LUhuA3rplLEgYubk6cUkpaSjPAKUjNOZPLkybRs2RLhugrpnkT5zrqdCEenpM8Seg7ScSZ4fyPy83Ai0qKXIz0U6NO9Az06nMCPc5ZR4PbRumk9OhzfqNouBCoOL6q1cAOIjMeRu3qHFs6KoxZ0EGmI9P4lx1nJKQJhL1v9COmfj9x5LWELjN6fwfcH5ExEy3oDAHPXTcQMvxM2RNodYG+DzH8hVC5134zUNCWLl/toWC+Jfxa9ETVrNWbRokWYpolmtEKmXANF47HEO1S5kINLi5feqVb5V60G2NskfNMTmc8hd98E/qVYYYc2IAjp9yOMQzvZom5OJjd0iewwo1BUNdVfuO3NIee/yPxXQgkeGji7INLuQuh1kb5Z1gJmYBEgkEYHRPojSaeHy7zBREaFSCuBJ/9FRNZr1ib9KMuGaGF40of0TgO9UYRoA/h81uw7qfKn5p6S430+H06nEy3jIaTzbGThB2BuAb0+eH6JYn+i+KDgFaQIuYGEE2q8kpDwCi0Nsj+x4rr9s636Lc4uCa9jKBSKSKq9cAMI27GIrFcjtkvvn8jdfQhzG/imI3ddATkTEbYmEedEQ5pFVgJJVMIbDYiUXnFcFQGr3KvnR6IJu2FYAiylTFy8ZV5J8SfD2LcQKIxTEIY1W5T+xUjvlPiVYuMSSiwqjoyRhcjdt0LOtxHJSdEQQlh1ToxWZTVAoVDsRzVfnIyPzHuamKVa80ckMxLxVW/fPmFvCak3Yi1SRvt4TSxXSmTInqYJTmhqsHNXEkkzwmDHjh00b94cLVYxfVszrHoh5YgMIIves36VEumdiZn3HGb+i8iYNzmFQlEeHLbCLc09EIzV5Na0akIniNBSrep3sbCfHPZSS7/PKpHquJDiyJZE6Xp2KgVFiQq3DrYTKSwspGvXrjGPEkKHjCeIHroIEKv8LMRuc+UH3xykdCN39Ubuvg2Kxlq1T3b2wtxzn5W1qlAoyp3DVrjLG5H+KDHjsP2LrVZl+x9vtIKUqyg9BDC8RkfzZga1cnV27CrtPBtoNdiR15hatWrRvLnVxkxKN9K/DBkMb/yrubpb7iTb8ZQ0SHD0gKx3EVmvQ/aHoDe0QhtFGlYlw2PjVDIEtBxk3nPgX8C+CBkT8IDnV2TRh6W8B4VCURYOCx93NIRWA2k7OkZaugbG2VG2x8FojfVxRYvO8CCLxiHSHyzZIgMrYc/NpRiZDWl9wTsFAmvA3IrNZnL3LVkMGbGLHbuixHOLDEtMbc3Zsbcmpgn33HMPug5m3jCr3rjQrMxNewtE5nCrjol/AWgZiJwvsIRbhPnRBSBzf7IWEc0toDcB2zHI7Z2id+QRKZByJey5n+iVBd1QOBZSr4uyT6FQHAzVcsYtg5usWtK778LMH4kMbol6nMgYRNR2XCIFkZ5kpmRgaXhDhTD84Pkh3Mb8V0qp7eGA1FvQUm9AZI0BcyfFC5b16th49N5sUlyCNev9bN8ZLFmAlCKdHYVns3ZTGqmp6Tz22GPUq1cPmfcEFH0IuENJPz6rZ+aObsjt5yD3Pojc3Qe57TTw/Rl18VMIgTBaIZxdEfamCKEharwWSjDa30fushoA204iru8/keJeCoUiaardjNt0fw97H8ISDB94pyAL37HC05zhs2hhnALZ45D5w8H/N1bSTCdE+kNWQ4SkSCxLswTfNOJW5tMbWzNWCAl8+GJlvTo2hgzMZdEyHz9OKWTRcp/1lsV6TmzTmK5du9K8eXNsNpvlFnF/GTGGRegJoaTJQqFVOTD3i4SiaoRxklXCtugDq4SAloNI6Q3GGUAAKbTY2q0fVer4CoUieaqVcMvgzpBo7/9obiW7yD33WG3OtPDiP8Jojcj5OLRQJpKLkd4f23FYs87CKDuNKEWqSlmUDK6D7WdiZgwB91dEE3mbTdCyuYOWzR2YpsTnkxiONGx1Hgw7Tvrmkkg6/T58yMIxiMwhSDMfWfCGVVdcesF2AqTfj2a0LDla6LXD3ED7sCNdV0LRx0RG77ggpU8SNikUikSpVq4S6f469k4hwDMpzm6t7KJNcWTGk0S6XmygZSFSrw3f7Dyf+PdFtxUXvfce8E0p9fqaJnA6DbSU7pE7ZT7JBWkHrYiQwFrktjOgaIxVelXusdL1d12BWTAuoZFE+gNgtMVaZNWw3rPDqrNd/ERxhCOlZMH0Jfz22R+sXRS/i5BCkQjVasaNuYmYLbak22o4W4GX11zdkFqG1SUnsMha9HN2t7rkaOGlQEXanUj3NyTWXSYR0dVAy0Sk3R25y/6fRMw/YLgs5O67iN7v04SC4UhXF0SoOUMshDAQ2WOR/vngnYZVIvdchO2Y5G06DFn5zxoe7zmMgj2FCCEI+oMce/LRPPXlQ2TmqiqDirJRrYRb2E5AkkJUsRGpiEqoNiccpyGK23GFkIF1SPd3Vn1uoz1C2JDYKdfuM1odRM6nCD2yoauwNUOSSnQ3ThREivVEkP9cnIMCSPfXiLS+iQ1pbwn2lqUfeASRv7uA+88aROHe8O/r0lkrGHj+EF6fNeygngLLm/zdBUwa/TNTP/8Tw7DT5YazOPfqMzCc5Zy8pThoqpVw4+oG+c9GmaAKwBHqMl55SLMQuede8P1pdSoPFXSS6QMhbyjlV6FPA8fpUUUbLDeQzBwMewcQvcDV/kWmUsA4FfQTiZ1cE8LcUXaTFUx+dwoBf+QTV8AfZP2SjSz5awUntE+uZk5FsW39Dvq1G0Bhnhuf2/oOrZi3mi9f/Z4R0wbjSqvanqCKcEr1cQshGgghpgghFgshFgoh7qkMw6Lb4kJkvw9ajlWsCIf1f60mIufDhDrmlCdy7wNWdUC8lr9aFlp+4ryBQPz2V8lhIFJ6hV87uAkZWIUMdbvRXD0g8yUriQab9WOcClkfWCn4tv+AcTqixvNWDPve24lfMVBH2E8qx/dw5LFg+hK8RdErRUopWfH36qj7qoJXbh/N3h35JaIN4Cn0smHZJj4e9mUVWqaIRiIz7gBwv5RyrhAiHZgjhPhJSrmogm2LirCfADWnWuF2gQ1WT0fj1KRrax8sMrgp5NON9odZXi4SDTAg7XarCiIgffOQewdaJVaFDtiRafeipV6N5uqCdJ5nLVYK+77O6Y72EAq2Md3fQP5gSn0aEBng7FJO7+PIJKdOFpquYQYjvw+aTSMzt2ztz/J25fPL+KlsXL6ZBsfX49zeZ5BWI17ZgvgU5bv5++d/o9rp8/j57p1fuPGZXlHOVFQVpQq3lHIzsDn0e74QYjFQD6gS4QYQwgaOs2J3I6sM/Est90iCnc/DESS2IJkC2R+iGSHRDqxA7rqekvKsxUPkD8cEtNSrLZ+piL7oJaWE/OGUKtraUYjs8ZX+BHO4ccGtnZn87hS87ig3dwntu7dOesw5P/3Dk5c+j5QSb5EPZ4qDMQPGM/ibAbQ688SEx9m0cgt7d+SRlpWKputoeuyH76K8spYDVlQUSfm4hRCNgZOBmVH29QH6ADRs2LAcTDvE0bIo08xabwb240Khi6WcL4Jhi1ey4DVippcXjECmXGnd1GJh7gRzTzzjIHs8wn7yIbVoVl05plVjLn/wIj574Wt8bh9SSmx2Hd2u8+jH9+FwJTfzyN9dwJOXPo+ncN93wFNk/f54z2F8snF0qb7oZXNWMuyakWxcsaVkhq3ZtNiVJYFjTmqUlJ2Kiidh4RZCpAETgXullHkH7pdSjgZGA7Rt27bMlZ+rDfZWIDKj1/Eo7mkZrV1X5lOg1QzVxy4k/szbFkobD3Xt8f5BbLH3W0k98bIhhSPO+YBIRTOSnwUqYnP9k1dwStdWfPnaD2xds41mbY/hkrsvoO4xtZMea8pH00tKHxyINCW/ffYn598YuwbP5tVbeeCcJ3Hnhz9xmQETKawa8AeO70gxuP4pFY9/qJGQcAsh7FiiPV5K+XnFmlQ9EEJA1quW60L6KRFp4QJHN6vCnvuTULQJgICMwQijjfUy51Nk3jOhxc0Y4i19sH88tHDE1nkZtDrTxLNZS0faW4J/bpRr2sDZM+75irLRvONxNO943EGPs2nl5piLnZ5CL1tWb417/n9f/CbuYqnNrgMCw2Uv2XbnyJtoc17lNsDYsXEn839fjOG00+a8lodcRMuWNduY+PK3zPt1AenZafTo24Uzr+iIrlfeOlupwi2sZ+YxwGIp5UsVb1L1QdhbQu5kZNEEq4GwlmNFfxinWrOX9DvBN88SVKNNmM9Y2I5FZI/D9C2AXb2IdIEYYJyC0Ovt2+S6BArHEHVBVG9QarIMgMh4GrnrSpBu9qXJG1b2Z9qdSX4CisqkwXH1cKY6wlwlxbjSnNRrWgeAnZt3s+Lv1aRnpXJ8+6YlbpDZk+dFXYAsJuAPcmHf8+hw4SnY7DotzjgBwxGjlHEFEAwEGdF3NL9MmIrNrlsJSwGTvi9dT48+55U+QCWw6M9lDOgyGL83UBLquXzuKn7+4DcGfzOg0sQ7kRn3acC1wL9CiHmhbY9IKb+rOLOqD0KvFbPSoNCywBn90VVKN7Loc/B8CVpNq5SqMKC4+YC9OaJGeJcekXoz0vNNqEt8sXhrgAOROTQxe+1NIecrZOFbVjlZdHD1RKTepPpAHuKcddVpvPXg+1H36TadDj1aM/TqV5j+xUzsDjumaZKS7uKxT/rT4rTjcaWV9kQmSMlIoV23k+MeB9asc86P/yA0jXYXnExu3YP/7ox7/GOmfDwdv8eP37MvVPXN/u9Rt8lRtO5ctQleUkqG9hqBuyDc1eQp9PLv1MVM+Wg6na/pVCm2iFg+s4Ohbdu2cvbs2eU+7uGCNAuQOy+D4Gb2NfA1LFdIah+E44yS8L/Ic/OQhWPB/bnlSnF0RKTdWSlZo4qqZ8H0JTzW/VlM08Rd4MGV5kS36Qyb/BgTR0xi+pd/hcViAzhTnbz974vM/G4uox/4AJ8nurvEkeLg5d+fpmnr2Oskpmky4rbR/Dz+99BMXmIGJRf1O58+w68t86K2z+Pj/2rdjKcgesTTiacdz4ipg6Pu27JmG5+PmMS/UxdTo1YmPe/oSocebcp9gX3FvNXcd8bjUZ94AJp3bMYr04eUeXwhxBwpZdtEjq1emZOHCbLgVQiuJzwBxmf5qf3zEGm3xTxXaBnWDD/ZeuKKw4IWpx3Px5tGM/W/f7Jl9TbqHlub0y9tR8GeIqZ9PhO/NzKpKuALMPHlb7n1uWuY/O4UVs5bE+EysTvtnH5p+7iiDfDJ8K/49aNpYTNigM9fmUSthrlcctcFZXpf29bvjJvHu2bBuqjb/526mEcuGErAt891sWDaYk696BQGfHB3uYp3we5CdFtsV0jeroJyu1ZpVKvqgIcN7olEz1oMgvd3ZNwGDIojHWeKg/OuO5NrB13OuVefgcPlYOW8NRjO6P7ogD/A/N8WYTgNXv79aW4ZdjXZtWug2zQ0XaNmgxzuePlGHhoXf43DNE0+e+FrvEWRM04zYPLW/e/jdZclrwEyctKilgcoJj07LWJbMBhk8BUv4in0hJ3rKfQy46tZzJw0t0y2xKJJy0ZRb4xguaqSiaM/WNSMuyqIGkJYjLD2lxIholD88c1s3n38I9Yu3IDdYY8pKgCZNa2kLIfLweX39+Ty+5OPIHLnuynKj52MEwwE+d8nM+h6Q5JtAYGM7HRadmrO378uiHgaEEJQ/7i67N2RF1ZRcfEfy0ri2A/EU+jlm1GT6dCjTdK2xLQxJ53O13Til/FTI5Kq7A4blz9wYE3+ikPNuKsCW7PY+7QMEDVi71cogO/e+ZkhvV5m9fx1mEETb5E3ZsSIM9XBhbd3PehrOlOdpboepnw0LeHxTDPc3gfG3kHWUZkl4YjFSCmZ/7+F3Hj8PWxYvrlke96ugrj27NkekW5y0Nz1+i2c0/t0DKed1MwUXGlOcupmMWTSI9Q7tk65Xy8WSrirAJF+H5ENGQBckNoPEbO3ZeUhzQKk+ytk4QdI/4KqNueIw13oYdGfy1i9YF1EUozP4+PN/u/FjMneHyEEzdocw2kXn3LQNuk2nZadoi+al1wvRup84d5Cls5eyaZVW/j8lUlcWfdWutqu5JLsGxj3+Ef4vH5y6+VwWf8LCfgjuzn5PH4Kdhcy/LpXS7Y1adUoYiG2GJtho+WZ8W0tCza7jf5v3874taN4/NP+DP/5CSase7PUz6Xc7ajUqykAEI4zkRmDIP8ZSkqrygCk3RZRBbAqMIu+grzHse7rQUBD2k9AZL0d0RpOUb6Ypsl7gz5h4suT0G1WgarMmhkMeP8uWpxuZdAunLEUoSW26CalZOmsFSyYtqRcxOWBMbfTu/HtURPBDJedmvVyuKn5vezctJs6TWpx5cMXM/+3Rfw4bgo2w4an0Is0ZcnNqGBPIZ+99C0LZyzj3Gs6Me6JTzAD0Z8cpJSsmLeGHZt2kV27BqPuHYdpRo+Ksxk2Lrmr20G/31jUqJlZ6YlJ+6PCAasQKX1Q3C/SfhJCK3uFt3Kzyb8AubM3kYWoDDBORcseXRVmHTGMG/Qx/33x24gFQGeKg9dnP0fD4+sx56d/GHz5SxTmxVsrCefYk49m1JzhpR5XsKeQH8b+yoyvZ+FMcdD1hrM5/dL2YdEUHw7+jPFDPifg27cgaDNsOFMM/L5gmO2ariEEBGOIcTGOVAcOp528nfEjM1zpLl6Z/gzrFm3ghZvfiBqap+kaL/32NCeeevDZqpWJCgesJghhgKNDVZsRhix4h+ilan3g+wMZ3ILQk6+zoSgdT5GXiS9FijaAz+vn42e/4KH3+tG8YzMCgWSaQ8Pqf9fiLvTgSo2+6P3nt3MYM3A8axaG98T8+9cF1Hv6M0b+OZSUUOr5NY9fTu2jj+KDpz5l06qtOFMc1D+uLqvnryN4gF3xMjX3x1vojQgxjIYZNKnT5Che6/dOzHhqu9OO3XHw0hYMBpn57Vx++2wGUkKnyzrQ8cK2cUMCK4uqd6YqDi0Ci4lZiEoYEDh0iv8fbqxdtCFmeVUzaDLvf9ZagyvNRa+BF8cM/4tFrIW8L1/7nmeuejlCtMGKAV+7aAOXH3Uz86bsW+vofE0n3lv+Gv1G3owZNFn1z5oI0U6W0p7+NV3D7/Nzac4NLPlrRczj/B4/M76aFbH4mQyeIi/3nv44w64dya8TpjHlo2kMv/417uowEHdhQI4dmQAAGD1JREFU1YfrKuFWhKPHWRmXftBrVZ4thyE+r59/py5m/u+LIjIYU9KdcV0KrjQXUkq+ePU7Pn3+a8wk3JzHt2uKMyWyjGxRvpt3Hv4w6iw/zG63n8d7DmP7hp0l2xbPXMabD43D6/ZhBg/O5epMc9KkZaO4USJm0MQMmPi9AXxxZudm0OS/L33L0N4jyize7z/5Kav+WROW3u4u8LBm4QbGPjKhTGOWJ0q4FWGI1BusCocRaGA7WnVvPwgmvf0Tl9e6mccufJbHew7jsqNu5utRk0v2129Wl9x60Wt+OFIMetzWma/f+IExAydQlOcm4N3nYxZCkFUr05qxH6B9zlQHd7xyY9Rx//7lX3R7Yo/+AX+Qz1/9lvnz5zN8+HCuvuoa/imaySJms0YuJV/uwZTJC6XdaafxiQ0YOP5uUjNTsBn77LHZdXRb8jLlLfIy87u/+eu7v5M+F2DS6J+i3hz8Xj8/jP211KeDikYJtyIc40xwXYEVrlj89UixqgfWeDXOiYp4TPtiJqPuG0dRvpuiPOvHne9h9IPv89tnfwCW+D78/l0405xo+j71FQLSslI5/dIOjHvik+izYwF1j61Nmy6tyD7KyorUbTptu57EiGnP0KxN9BtuwB9MWIQKvPkMe+FZ7utzP+vWrYNCDScuHLhwU8g6lrOSBXhk/I45ul3HZre67mi6RsAXYMXfq3ng7Ce5/IEL6XnH+dQ+uhb1mtbh6sf/j2CCfvID8RR4+PatH5M+LxgMxu364/P44yY7VQZKuBVhCCHQMh5F5EwAVy9wXgDpAxG5vyBsR0BnowpizCMTosZde4t8YY/eJ7RvyrPfP4rd2Oe/lhLydxbQr/2AsEiO/ZGmZOGMpcz6/m92bdmD3WFQs0EOD7/fj2NaNY5pV8tOJ8Qcc3880s1qFuM3/ayfu4Vda/eSmZuBCP1n4MBJCgECrGZxTPE++j8NuffN2/ho42gya2YgpUSakoAvwJ5teXw09AvSaqTywcrXGbd0JFc+dHGpXf7iLRbu3ZFf6nuLGE/Xya0fu9phZm469lC527078vj8lUm8fu+7fPfOL7gLKqfNmxJuRVSEvQVa5iC0GiPQUq9EaClVbVK1JRgIsnHZppj7N6/eim+/GdyXr34fUbfD5/Gzd3t+zISTA/EUetixYSev9H077nHTv5pV6qKiKU3WsxwAAwcBf5B5vy7ghA5N0e3hEmKEGsGuZ3lUt4kZNHG4DCaP/ZWC3QXIA+KwPUVePnnuy5LUerthJ7VG/O9eLPvtDjsnn9Mi7rmx6DXwUhxR1gQcKQ56DbwEIQQzvprF1Y1vZ8wjE/hy5HeMuu9dejXoy9JZsRdOywsl3ApFBaPpGjYjdgSIbtND3Wesx/TpX8yMukgZDARJxrUa8AeZ+d3cmLPAf6cu5s3+40pdWCwkDx/eElG2xg6QkpFCq7NaoNt09FA0jBDW7NuHh0IiU87XLtrAS7eOYvwzE/F7o8/0dbvOwhlLS17fPKR3XPuEJqJG2NgMGz3vPD/uubG4sG8XetzWGcNpx5nqwJnqwO6wc/6NZ3PxXRewa8tuhvYegbfIV3Iz9RR6KdxbxMBuQ/D7KtaVouK4FYoKRgjB2Vedxi/jp0bMDnWbTqfLO5Z0qQn4AjGzAQEkEkeqA7/Hn1CMtKZr5O8ujNr+66NnP08obX4nW9EId0eYQcniP5eh23ROu7gd+bvy8Rb5sDvsLJyxBM1vYydbSSey7k6s+OtifB5fmPvjwtu78sa942JWD9R0jfbd2/Dnt3MwnHaCQZMauRk89mn/Mjd4EELQ98UbuKz/hcz6YR5Swinnn0TN+jkATH53Ssy1gYA/wB9fz6bTZR3LdO1EUMKtUFQCtw6/hr9/XcDeHXvxua3ZmOE0yMhJ47bnry05zuFyUKthLltWb4s6TqPm9Xly4oNMGPo5c36aj+G043P72LVlT9TjvUVerm1yJ41bNOC2568L6yKzfO6qUu2WUlJIHg5cEduX/LUi1KvSRk7dLDpf0wnTlGxYvgn/pgCF5CGlTLomdsAXpGnro8O2nXXVqfwyfmqEawWg8YkNeOKz+9m9dQ+r5q8lMzeDY05qXC61uHPr5dDt5nMjtq9bsjFmSKLf42frmu0Hfe14KOFWKCqBGjUzeXv+C0wa/TO/TJgKEs7udTo9bjuPtBrhpQ5uGtKbF295I2I2bHfaOPfqTmTVrsFD4/qVbP/y1e94o/84ZAyXh5Ugs5YB5z/DPaP60P3Wzmxbt50920qvnmeGkrHEATGG+882A/4AOzbuYu7P88nfVcCerXklx5uY6CSXaSiEYNClz3P6xe2QwKYVm6nVMJeUdBfufHfYE4kjxcFdr90CQNZRNWhzXuVU1mx8YgMMlxF1zcHuNKh7bMVmF6taJQrFIcjXoyYzZsB4EJZv2+f2YzN07A47AV+AC/t24Zbh1/LeoE/4eNgXpUZeFCM0wTcFH3L9Mf3YuXl3qcdLKVnEbBy4IsT7QGw2HSklwaCJROLFTXPalsvM13AZICXHtTuWZbNWEgyYtDqrOTcN7R0z1LEi2bN9L9c2uTOq26dGrQw+Wv8WNnty8+JkapUo4VYoDlF8Xj8zvvyL5298PeKx3JFi0LR1ExZOX5p0MkjPO7vy9RuTExb7NXIpbgrDFiejoWkams2Ky/bhxUUqjUVkoSe7YSPgDyS10FpyrsPGB6teJ6dO1Te2nvPTPzx56fOA5bd3pTuxO+w8//MgmrRslPR4SrgVisOEEX1H88PYXw+6DkgYgoRFGyBf7mEdy3ESPyxP00IJNf4AHgppSDPS92sKots0NJvO6Re3o9U5LRjR560ymZ+S6WLkjKE0OqF+mc4vT4ry3fz26Qx2bNhFg+PrcurF7TAcydWQKUZVB1QoDhPmTfm3fEUbEhLtk845kSV/rsBT5CWVDAwcmLYgDRrXY9PKrVFn+aZpYppmKHTQSSr72ow5Ugz6jbyZM/6vPamZqTx7zUiEJqIuNpZG0V439585iAnrRmE4jaTPL09S0l1RFy8rGiXcCsUhTEpG5Sc+abrgukFX4iny8tkLX7NpxRaOa9CEbZlr0XWdTau2xhR/H5bPt6FohhZKE3GmOuh0WUe63nh2ib97wbTFZRLtkut4fEydOJNzrz6jzGNUZ5RwKxSHMBf27cIb97wbtSmuECKmf1vTBBLKJI41amVy4mnHoWkap3Q9qWT7xo0bufHiW3GbhWjo2DEQCCQSPz5MAhg4aUBT0hxp1G9Wl5w6WfS883w69GgTtkiZmnlwNyR3gYcV81YfscKtMicVikOYztd24tjWR4eVZNVtGs5UB70euRRHSqSrwGbYGPr9owz74TFanX0iztT4i4r7xtVxpTsZ/PWAkoSg/alXrx4XnX4ZjUQzXKTixY2HIry4cZFKQ5pxDC1wChcgGP7zEzz7w2N0vDAysuTC27tGtR2sG5LNiD+nNJx2cupmJfS+KhpPkZcfxv7KS33e5P2nPmXLmugx+OWJWpxUKA5x/D4/P73/O9++OZnCPDetzjqRKx68iPpN6zBr8jzGPf4RK+atwely0OmKjtz2/HVhseEzJ81hSK8RYbWli7E7bLTr1hq/18+Jpx/PBbecS42amTFtWTBtMQO7DbF6R0qJiYmGFiHMdoeNL3e/F9MH7ff5ebjLMyyfs7IkpM5m6NgNO1c+fDHpWWnUPeYoHu85LGrzYMNp58M1o8iqFdvWymDtovX0P3MQPq8fT4EHm2FD0wS3vXAdPe9ILt1eRZUoFIoSgsEgd7R9mPVLNoWVI3W4DE46pwXPfDMw4bGklDzafSjzf1uEN0bBK82m0en/OvDoR/fFHSvgD/DrhGlMGv0ThXuLaNv1JC69tzu1GuSWHPPbZ3/w/A2vEQyYBPyBUH1unfve7su5vavWTSKl5Nomd7Jt3faI0EaHy2DkH0OTCgtUwq1QHMa4C9xsWLaZ9Ow0ajdOrCNRYV4Rr901ht8/+wMRcoN0u+Vcbn3umqTD1wL+AB8N+4Lxg/8btRiWEIIxi16mwXH1kho3FptXbeXrUZNZu3A9DU+ox4W3d6XesXE6NVUSC6Yt5pELhkZ9ktF0ja43nk3/0X0THk8Jt0JxGBIMBBn94PtMGv0zul0n4AvQ4Ph6DBx/T8IxzZ4iL/9OXcxP7//Gqn/WUKtRTS69pzttu7SKOHbzqq1MGDKRv77/G92mc87Vp3PFAxeRkZPOmoXrubPdgKgp34bL4NrHL+OqAZcc9Hs+lPll/FReuWM07vzoPShbntmcF6c8lfB4Ko5boTgMGXnH2/wyYarloghVal31zxruPe0xxi55Ja6/1+f18+O4//Hxc1+wbe12K5pPWmVW//19Ed1vO4++L1xfcvzqBeu457TH8BZ5S6oQfj5iEr98OJVRc4ezbPbKklKuEddy+5j3v4WHvXDXb1YnZtSOza6XKXsyURKKKhFCnC+EWCqEWCGEGFBh1igUiqjs3raXnz74PaLwlJRWTPM3+/Wu3L5hJ6/2e4cr6/Xhqvp9eLXfO9zd8RFG9R/H1jUhf+x+euMp9PLtmz+ybM7Kkm0jbnvLKui0X+lYvzfAnm17GT94IunZaQgteg0SIQTZtZMv9iSlZO3iDSyfuzJmCddDiWZtj6F241pWn88D0G06F9/VrcKuXapwCyF04HWgG9Ac6CWEaF5hFikUigiWzFyO3RH9Adnn8TNz0lzAcm/0aXU/k0b/zK7Nu9m5aTffvPkjK+etids9x+/xM/ndKQDk7y5g2ZzoJV8D/iC/TJhKmyiulWIMl8EFt3ZO9K0BMPO7uVycdT23nHgfd7QdQDdnLx7rOaz8s0bLESEEQ757hKMa1cSV5iwJ03SkGDz8wd0V6odPxFXSDlghpVwVMvZj4CJgUYVZpVAowigtFrs4oeWNe9+lcG9R2CN8Ikk4pinZs20vYN0ItBizaYCivCJ0XePRj+7j6ctfIOALlgisM9VB1xvOpsVpx5d6zWIWz1zOExc9F94YQsLMb+fQr/0ARs15PuGxKptaDXIZt2wksyf/w6p/1lCjVmZJWn9Fkohw1wPW7/d6A9C+YsxRKBTR+M8ZJ0R9JAdLLC+45VyCgaDVraUM2ZLOVAcnnW31Z8yuXYOMnHR2bNwV9VjTlLz98If0ffF63pz7PJ+PmMSSv5aTUzebi/p1o815LaOeF4vX7x4bs5vPir/XsGTWco4/pWlyb6gS0TSNdt1Opl23kyvvmgkcE+3WG/HNEEL0EULMFkLM3r69Yrs/KBRHGja7jQffvRNHihGW7OJIMTihfVPO+L8OVk9Ks/R2ZgcihMDhMjj3mk4lr28edjWaHn3WLU3Jt2/+iLvQQ/1mdbn7jVt5Y/ZwBn89gLZdWiVdf3vFvNVx90/5aHpS4x0JJCLcG4AG+72uD0S0rJZSjpZStpVStq1Zs2Z52adQKEKc2vMUXv59MKdd3I6cutlWO7IXrmfo94+i23QMp0H945OLndbtOg2b12fEtGdISd/Xnqzz1Z3C0uyjnbdpxZYyv5ewsWzxO+QUN1JW7CMRV8ksoKkQ4mhgI3AVEL/tskKhqBCatm7CoIkPxNzfZ/i1DL78xYisRrthw5nmJOALoOkafo+fjhedQu9HLqFJy8ZRx8qtn8O6xRuj7gv4AmTkpJf5fezPqT3b8r9PZkTdJzTBmVecetDXkFIy64d5fD/mFwp2F9K2ayu63XIuGdnl8x4qm1KFW0oZEEL0AyYDOjBWSrmwwi1TKBRJ0/6C1jz0Xj9ev2csRXlupIT07FTufv1W2ndvzfK5q/EUejj25KNJLaVk7EV3dmP0Qx/gPaAyodAETVo2Kul4frDc9dotzPh6dtSol1ZnnnjQrclM0+SZK19m1g9/l9RFWfznMj4Z/hUjpj1DwySfUg4FVOakQnEYYpomG5dvRghBvaZ1ovqd1y3ZyIdPf8acn+djN2x0vrYTVzx4UcksNOAP8MgFQ1j85/ISwTNcBo4Ug5EzhlK/afmFu+3etodnrnyZf6dadbrtDhs9bu/KbcOvLdWVUhq/TpjKy7e9FdEfUgjB0f9pyFvzXjio8csLlfKuUCjisnTWCh445yl8bm9J13S7YSOrdg1GzR1eIt7BQJDpX/7F92N+pSjfTYfurene57xyc5MciJSSgD+A3Shb+69o9OswkKV/rYi6z+EyeHPeC+V6EyorKuVdoVDE5aVb38RTGF5jw+8LsHvLHj557itufe4awFo47HRZRzpd1rFS7BJClKtoAyXx6dGwGTb2bs87JIQ7GVQjBYXiCGPHpl2sXxoRGAZY4v3TB79VskUVy3GnHBszPd/n8dPguLqVbNHBo4RboTjC8Hv86LbYf/r71+w+HOg14BIMZ+Qs3nAZnH3VaRXm9qlIlHArFEcYtRrl4ogRoy00wcnntKhkiyqWY08+moffv5uUdBcpGS5c6S4Mp5323Vtzz6hbq9q8MqF83ArFEYau69z8bG9ev/vdiFA/w2lw7aArKvT6q+av5d+pi3GlOenYsy3pWWkVej2AMy5tT/vurfn75/kU5rlp3rFZwk0oDkVUVIlCcYTy/ZhfGDNwPF63DzNoUqfJUfR/uy/NOx5XIddzF3oYdPFwFs1YipRW0+NgIMjtI26kR5/zKuSa1QkVDqhQKBIiGAyyeeVWDKedWg0rtlTFkN4jmPHlX/g84T50R4rBs98/xn/OOKFCr3+ok4xwKx+3QnEEo+s69ZvVrXDRztuZz/QvIkUbwFvk46NnP6/Q6x9uKOFWKBQVzqaVW2I2ggBYs3B9zH2KSJRwKxSKCie7ThYBX+x2ZDl1syvRmuqPEm6FQlHh1GqQS7O2x0RtBuFMdXDZfT2qwKrqixJuhUJRKQwcfw/ZtWvgSnMCVsy4M9XBWVecSqfLKyel/nBBxXErFIpKobg/4/8+mcHsyfNIy0rlvOvOonmHZlVtWrVDhQMqFArFIYAKB1QoFIrDGCXcCoVCUc1Qwq1QKBTVDCXcCoVCUc1Qwq1QKBTVjAqJKhFCbAfWlvOwucCOch6zMlB2Vz7V1XZld+VyqNndSEqZUNGYChHuikAIMTvRUJlDCWV35VNdbVd2Vy7V1W5QrhKFQqGodijhVigUimpGdRLu0VVtQBlRdlc+1dV2ZXflUl3trj4+boVCoVBYVKcZt0KhUCioZsIthBgshJgvhJgnhPhRCFG3qm1KBCHE80KIJSHbvxBC1KhqmxJBCHG5EGKhEMIUQhzyq+9CiPOFEEuFECuEEAOq2p5EEUKMFUJsE0IsqGpbkkEI0UAIMUUIsTj0Pbmnqm1KBCGEUwjxlxDin5DdT1W1TclSrVwlQogMKWVe6Pe7geZSyr5VbFapCCG6AL9KKQNCiOcApJQPV7FZpSKEOAEwgbeAB6SUh2zJRyGEDiwDzgM2ALOAXlLKRVVqWAIIIToBBcD7UsoWVW1Poggh6gB1pJRzhRDpwBzg4kP9MxdCCCBVSlkghLAD04B7pJR/VrFpCVOtZtzFoh0iFagWdx0p5Y9SyuK+TX8C9avSnkSRUi6WUi6tajsSpB2wQkq5SkrpAz4GLqpimxJCSvk7sKuq7UgWKeVmKeXc0O/5wGKgXtVaVTrSoiD00h76qRZaUky1Em4AIcQQIcR64Grgiaq2pwzcBHxf1UYchtQD9u84u4FqICKHC0KIxsDJwMyqtSQxhBC6EGIesA34SUpZLewu5pATbiHEz0KIBVF+LgKQUj4qpWwAjAf6Va21+yjN7tAxjwIBLNsPCRKxu5ogomyrVrOo6ooQIg2YCNx7wFPxIYuUMiilPAnr6bedEKLauKjgEGxdJqXsnOChE4BJwKAKNCdhSrNbCHE90AM4Vx5CCwtJfN6HOhuABvu9rg9sqiJbjhhCPuKJwHgp5edVbU+ySCn3CCH+B5wPVJvF4UNuxh0PIUTT/V72BJZUlS3JIIQ4H3gY6CmlLKpqew5TZgFNhRBHCyEM4Crg6yq26bAmtMg3BlgspXypqu1JFCFEzeLILiGEC+hMNdGSYqpbVMlE4DisSIe1QF8p5caqtap0hBArAAewM7Tpz2oSDXMJ8CpQE9gDzJNSdq1aq2IjhLgAGAHowFgp5ZAqNikhhBAfAWdhVavbCgySUo6pUqMSQAhxOjAV+BfrbxLgESnld1VnVekIIVoC72F9TzTgUynl01VrVXJUK+FWKBQKRTVzlSgUCoVCCbdCoVBUO5RwKxQKRTVDCbdCoVBUM5RwKxQKRTVDCbdCoVBUM5RwKxQKRTVDCbdCoVBUM/4fvmjKoDv5Y48AAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis')\n", | |
"\n", | |
"centers = kmeans.cluster_centers_\n", | |
"plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5);\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.7" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import pandas as pd | |
import io | |
import requests | |
from sklearn.cluster import KMeans | |
#Download datasets | |
url = "https://gist.githubusercontent.com/digitalWestie/b68b86cae1d893d4d3d3b01aca59be8d/raw/28908e0d394802181762dc7429f67c0f79fb9fad/Make%2520Model%2520Data%25202016-edited.csv" | |
s=requests.get(url).content | |
dataset=pd.read_csv(io.StringIO(s.decode('windows-1252'))) | |
dataset.iloc[:3,:] | |
# Only include specified columns: | |
subset = dataset.loc[:, ['Label', 'Engine, Noise and Exhaust %', 'Chassis and Body %']] | |
subset | |
#Discard label columns (we only want to feed numeric values to algorithm) | |
subset_data=subset.iloc[:, 1:] | |
#Run clustering (4 clusters) | |
kmeans = KMeans(n_clusters=4).fit(subset_data) | |
y_kmeans = kmeans.predict(subset_data) | |
y_kmeans | |
#Draw graph of cluster | |
from matplotlib import pyplot as plt | |
plt.scatter(subset_data.iloc[:,0], subset_data.iloc[:,1], c=y_kmeans, s=50, cmap='viridis') | |
centers = kmeans.cluster_centers_ | |
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5); | |
#Combine labels with groups | |
result = pd.crosstab(subset.iloc[:,0], y_kmeans) | |
result | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment