{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Ejemplo SVC Lineal" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### El objetivo es clasificar con un modelo SVC lineal los datos obtenidos a partir de una simulación no lineal que se encuentran en el fichero \"ejemplo_dataset\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Cargamos las librerías necesarias" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "# Tratamiento de datos\n", "# ==============================================================================\n", "import pandas as pd\n", "import numpy as np\n", "\n", "# Gráficos\n", "# ==============================================================================\n", "import matplotlib.pyplot as plt\n", "from matplotlib import style\n", "import seaborn as sns\n", "\n", "# Preprocesado y modelado\n", "# ==============================================================================\n", "from sklearn.svm import SVC\n", "from sklearn.model_selection import train_test_split\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creamos y visualizamos el set de datos" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
X1X2y
02.5260930.3210500
10.3669540.0314620
20.7682190.7174860
30.6934360.7771940
4-0.0198370.8672540
\n", "
" ], "text/plain": [ " X1 X2 y\n", "0 2.526093 0.321050 0\n", "1 0.366954 0.031462 0\n", "2 0.768219 0.717486 0\n", "3 0.693436 0.777194 0\n", "4 -0.019837 0.867254 0" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Datos\n", "# ==============================================================================\n", "df = pd.read_csv(\"ejemplo_dataset.csv\")\n", "df.head()\n" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAEJCAYAAACJwawLAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydd5gT1drAfzOTZFO2FwQWWLoUpQhiuRQVBEVsiBTBSxOQogJ2FAFFmoBXkaY0r1IsFPGTonAtgKAIinTpCyxte7KbTZmZ749A2GyysOxmG8zvefI8m5MzZ97JZt5z5j1vEVRVVdHQ0NDQKLeIpS2AhoaGhkbR0BS5hoaGRjlHU+QaGhoa5RxNkWtoaGiUczRFrqGhoVHO0RS5hoaGRjlHU+QaGqXAPffcwzPPPFPaYmhcJ2iKXMNLnz59EAQBQRDQ6XRER0dz1113MW7cOFJTU695vNq1azN27NjgC5qH48ePe+XO+5o6daq33+bNm2nfvj1xcXEYjUYSEhLo0qULJ06c8PYRBIHPP/+82GVesWIF06dPL3D/zZs3IwgCx48fLz6hNMotmiLX8KFVq1acOXOGxMRENm3axIABA1i6dCkNGzbkn3/+KW3xrsg333zDmTNnfF5DhgwBYP/+/dx///3UqVOHDRs2sH//fhYtWkT16tXJzMwscVmjo6MJDw8v8fMCKIqCLMulcm6NYkLV0LhI79691bZt2/q1Z2RkqDVr1lTvvfdeb9uOHTvUBx54QI2Li1MtFovavHlzde3atd7P27RpowI+r2PHjqmqqqpbt25VW7VqpRqNRjUyMlLt0aOHeu7cOe+xJ0+eVDt37qzGxMSoRqNRrVGjhjplypR85T527JgKqJs2bcq3z/vvv6/GxsZe9TsA1M8+++yq/XJfZ79+/dQ33nhDjYuLUyMiItRRo0apsiyr48aNUytUqKDGxsaqo0aN8juuf//+qqqqanJyslqlShX1+eef935+7tw5tWLFiuorr7zivb7crzZt2qiqGvh/9tlnn6m5b+0xY8aotWrVUpctW6befPPNqiRJ6u7du1Wr1ao+//zzauXKlVWTyaQ2adJEXb58eYGvXaPsoK3INa5KeHg4gwcP5qeffuLChQsAZGZm0r17d3766Sd27txJhw4deOSRR7yr9hUrVlC9enVefPFF7+q4atWqnD17lvbt21OlShV+//13vv32W/bs2cMTTzzhPd+QIUPIyMjwrpznz59PlSpVinQNlSpVIi0tjbVr1xZpnEB8/fXXuFwuNm/ezPTp05kwYQKdOnXCZrOxadMmpk6dyoQJE/I9d0xMDIsXL2bWrFl8++23qKrK008/TUJCAuPHj6dq1ap88803APz++++cOXOGFStWXJOMSUlJzJo1i0WLFrFv3z4SEhJ4+OGH2bVrF1988QV79uxh8ODBdO/enY0bNxb5O9EoYUp7JtEoO+S3IldVVV27dq0KqL/99lu+xzdq1EgdP368932tWrXUMWPG+PR588031fj4eNXhcHjb/vrrLxVQf/75Z+84eY+7EpdWrCaTSbVYLD6vX3/9VVVVVZVlWe3fv78qCIIaHR2tdujQQZ00aZKamJjoMxaFWJE3btzYp61BgwbqLbfc4tPWqFEj9cUXX/Q57tKK/BJjx45VY2Ji1JEjR6oRERHq0aNHvZ9t2rTJ56nmEgVdkQuCoJ44ccLb9uOPP6ohISFqenq6z7F9+/ZVH3300QJcuUZZQluRaxQI9WJuNUEQALhw4QJDhgyhXr16REZGEhoayt69e302DgOxd+9e7rzzTgwGg7etcePGREREsHfvXgCGDx/OhAkTuOOOO3j11Vf55ZdfCiTjwoUL+euvv3xeTZs2BUAURebNm0dSUhIfffQRDRo0YO7cudSvX5+ffvrpWr8OHxo3buzzvmLFijRq1Miv7fz581ccZ/To0dStW5fp06czd+5catSoUSS5cnPTTTdRrVo17/vt27fjdDqJj48nNDTU+/r88885dOhQ0M6rUTLoSlsAjfLBnj17EASBmjVrAh4Pl8TERKZMmUKNGjUwmUx0794dp9N51bEuTQb5tfft25cHHniAdevW8eOPP/Lggw/y+OOPX9WbJD4+ntq1a1+xT8WKFenRowc9evRg0qRJNG3alHHjxnHPPfdcVe780Ov1ftcRqE1RlCuOc+bMGf755x8kSSrwxrIoit5J9hIul8uvn8Vi8XmvKAoRERFs377dr2/uSVajfKCtyDWuSmZmJrNnz6Zt27bExMQA8MsvvzBkyBAeeeQRbr31VipVqsTRo0d9jjMYDH7eEQ0bNmTr1q0+Cn/Xrl1kZGTQsGFDb1ulSpXo27cv//3vf5k/fz6LFy8OuneJwWCgZs2aV10plwSKotCrVy8aNmzI119/zdtvv83mzZu9n19Srnm/zwoVKpCUlOTTtnPnzquer3nz5qSnp5OTk0Pt2rV9XrlX7hrlA02Ra/jgdDo5e/YsZ86cYd++fSxYsIAWLVrgcDiYPXu2t9/NN9/M4sWL2b17N3/99Rc9evTwUzI1atRgy5YtJCYmkpycjKIoDBs2jMzMTPr06cOePXvYvHkzTz/9NC1btqRVq1YADBs2jDVr1nDkyBH27t3LihUrqFq1KmFhYVeUPTU1lbNnz/q8rFYrAHPnzmXQoEGsX7+ew4cPs3//fiZPnszatWt5/PHHfcZJTEz0M9FcUvb16tXjo48+KvL3nJd3332X3bt3s3jxYh577DGeffZZevbsSVpaGgAJCQmIosiaNWs4f/48GRkZALRr144DBw7w0UcfceTIET755BO+/PLLq57vvvvuo127dnTu3JmVK1dy9OhRduzYwYwZM/jkk0+Cfn0axUxpG+k1yg69e/f2urdJkqRGRkaqd9xxhzpu3Dg1NTXVp+/ff/+t3nXXXarRaFQTEhLUmTNnqm3btlV79+7t7bN9+3b1tttuU41GY77uhxEREX7uh0OGDFHr1KmjGo1GNTo6Wu3YsaO6Z8+efOUO5J536TV06FBVVVV1586dau/evdVatWqpJpNJjYyMVG+77TZ1xowZqizL3rHyG2fixInez3NvxAbatMz7Paiqqnbo0EHt2bNnwOO2bNmi6nQ69ZtvvvF+npOTozZq1Ejt3Lmzt23y5Mlq5cqVVVEUve6Hqqqq48ePVytXrqxaLBa1e/fu6kcffRTQ/TAv2dnZ6quvvqpWr15d1ev16k033aR26NBB3bhxY77ftUbZRFBVrUKQhoaGRnlGM61oaGholHM0Ra6hoaFRztEUuYaGhkY5R1PkGhoaGuUcTZFraGholHOKHNnpdDoZM2YMbrcbWZa588476dq161WPyxvEUFaIjY0lOTm5tMW4JsqjzFA+5S6PMkP5lLs8ygzFK3flypUDthdZkev1esaMGYPRaMTtdvPWW2/RpEkT6tatW9ShNTQ0NDQKQJFNK4IgYDQaAU/4sCzL+ebS0NDQ0NAIPkEJCFIUhVdffZWzZ8/SoUMHevXq5ddnw4YNbNiwAYBJkyYVKLlSaaDT6XC73aUtxjVRHmWG8il3eZQZyqfc5VFmKF6580toFtTIzqysLKZOnUrfvn2vmnhHs5EHj/IoM5RPucujzFA+5S6PMkPp2MiD6rVisVho0KABf/31VzCH1ShrqKrnpaGhUSYosiLPzMwkKysL8Hiw7N69m/j4+CILplH2EDIyiBowgAotWxLXqhWRzz6LcDG7oIaGRulRZK+VtLQ0Zs6ciaIoqKrKXXfdRbNmzYIhm0YZI7p/f0K2bvW+1x87hpiRQerSpaUolYaGRpEVeUJCAlOmTAmGLBplGN2hQ+j37fNr1+/di5SYiKwVI9DQKDW0Um8aBUJMTg5oRhGsVsSUFB9FbtiyBcu8eQh2O87bb8c2bBiEhJSkuBoaNxSaItcoEK7GjZGrVUN3/LhPu1y1Kq4GDbzvTUuXEj5hAlJqKgAhmzYR8vvvpCxbBlp8gYZGsaDlWgHEc+cImziRsLFj4ciR0hanTKKazdgGDECuUMHb5q5YEduQIZdX26qK5dNPvUocQAD0O3YQ8r//lbDEGho3Djf8itz4zTeEjx+P7qJfu7J6NZaBA8l69tlSlqzskd2nD47778c8fz6IIln9+qHk9mt1OBBTUvyOE+12DFu24Gjb9prOJ54+jWiz4a5dGySpqOJraFy33NiK3O0m7IMPvEocPKtzy6JFZD/1FGp4eJFPISYlISUn47r55uvCTizHx2N9663AH4aEoERGQp5gL8VoxHn77QU+h5CeTtSgQej370dwOJCrVCFz1Khrngg0NG4UbmjTiu7wYaTTp/3bT57EsGVLkcYW7Hai//1v4jp2JObxx4lr3x7T558XacwyjyCQ/dRTKBERPs2uRo1wdOhQ4GGiXngB4+bNSCkpiDYb+gMHiBg9WvNZ19DIhxt6Ra5ER6NaLGCz+bTLFgtKpUpFGjvitdcwbtzofS8ePkz4tGk4W7e+rl31svv2Ra5YEctnnyE4HLhuvRXrK6+AWLA1g2C3oztwwK9dOnEC01dfkd2vX7BF1tAo99zYirxCBVyNGiH98INPu1y/Pq7GjYs0tn7XLr826fx5LB9/TOb48UUau6zjePBBHA8+WLiDVRUUxa9ZAIQymmhNQ6O0uaFNKwBps2aR/fjjuGrWxJ2QgNKpE6kLFxbdVS6/XCTlMJtbSaKazbhr1vRrd8fHYy9AwRINjRuRG3pFDh7Fkf7RR17FGxsXhxKEzGWu+vXRHz7s0ybHxJDVv3+Rx77eSX//faL790d36BBCTg5ytWpYn38eJTq6tEXT0CiT3PCK3EuQg1UypkxBTEnBsHcvQkYG7oQEsv/9b+Q6dYJ6nvKO7tAhpMOHcTVrhnLRR12pXJnkNWvQ79yJmJaG8+67Uc3mUpZUQ6PsoinyYkINDyf1q6/Q/fMP4pkzuG67DTUsrLTFKnZUFfbu1ZGdLdKkiZN88uBDTg66Rx4h5rffkNLTcVeqRE7HjmS+/bbnc0HApSVf09AoEJoiL2bcdetC3boIWVmY581DOnsWe9eunvbrjNOnRQYOjObQIR0Oh0D16m5efz2TBx5w+PUNf+cdhPXrvZs0ujNnMC9diqNNmxvOX1zIysIydy76fftwV6+Obdgw1MjI0hZLoxyhKfISQLdnD1FDhqA7ehRBVTF/8QX2J54gc+zY0hYtqDz/fBR//XV5CX74sJ533gmnVatkLBbfzV/Dn3+S15glZmdjXrYMR9u27NmjY/bsUOx2gQcftPPEEzkF9WAsVwiZmcR07Yp+927v92HcuJGUJUuK7AKrceNwHd4aZY+It95Cf+QIwsUNVSk1FdPy5ej++afwg6oq+p07MS1bBqdOBUnSwpOaKnLsmGddEEIOU3iJX2jF/OPtOf7GMv8D8tHKqk7HV1+Z6NkzhlWrzKxfb+KVVyIZMuT6XKGG/uc/GHIpcQD9P/8QPmFCqcmkUf7QFHlx43QiBVC0Umoqpq++KtSQgs1GzJNPEt2jB1EvvojuX/8i/M03iyppEVERBBVQWcWjvMg0WrGZ+/iJNt+8SdikST69HS1boup8HwjlyEisffvx8ccWkpMv51ZxOkV++cXI7t3X3wOkPkDwE4B08mQJS6JRntEUeXGj06EajX7NqiAgF/LROXz0aEK2bkW6GJEqnj2L6auvCPn55yKJWhSio1Vq1pS5g9+4k20+PyyDMxvjmjXguGwrt778Mkr37rgrV0Yxm3HVrIltyBAu1L6DlBT/BFkZGSL/+5//91jeyc+lUglCnh+NG4frb4lT1hBFnHfdhe74cQRZ9ja7a9bE3qNHoYbU793r1ybZbJiWLcPRpk2hRS0qM2aksfHRLUSeyvT7TExPR0xJuZwtUZKQ588n5Z9/kM6exV2jBphMhLkUwsIUzp3zVeYmk8Ktt7pK4jJKFOvIkRh+/x1drpw/coUKnmIcGhoFRFPkJUDGu+8CYNi61RPgUrUqGePHo5pMhRtQF/jfppZydsWKFRV6L2yMs3MkBmu6z2dKTAxKXJzfMWp0NO5cq1K9Hh54IIf58yXs9svr+oYNXdx7r7/3S3lHrlmT1I8/Jvy99xCTk1EjIrAOG4arRYvSFk2jHKEp8pJApyNj8mRPDhFZ9mirIuBo2RL93r0IucL95dhYsgYNKqqkRcbdoAHuNi3Rr1vnlU+JiCC7e/cCX/drr1mJjVX47jsjTqfArfWyGTvkKII7psjfXVnE3aQJqYsXl7YYGuUYTZGXJKJY4CyAV8L66quIKSmEbNmCmJkJ8fFk9u6Nu379IAhZBJxOzP/9L4LLhbNxYzAYUMLCyOrTB+c1mHwEAQYMyGLAgCwsH36IecUKxM6pKFFR2Dt3xvbCC8V4ERoa5Q9NkZdHJImMadM8hY+Tk4lq2hR7evrVjytO3G5ievXCsG2bdy/AXaUKGTNn4m7e3L+/qnqeTq5AyHffETprFtLFPORSSgrirFm4a9Yk5+GHCyWmkJZG6McfIyUmktOhAzmdOgVlctXQKE20X3A5Rg0LQ65RI1+beUliXLkSw/btPhu6ulOniJg82bej203Ea68R16YN+vr1ienSBengwYBjWpYs8SrxS0g2G+ZlAfzSC4B04ABxDz9M2IcfYl61isgXXiC6d++rTigaGmWd606R63fsIHLoUKIGD8aweXNpi3PDYPz554D5wsXz533eR4wahXnJEk+A1IkThGzdSvTAgWC3+w/qCuylIuTTfjUi3n4b3bFjl2VzOjFs3ozxu+8KNZ6GRlnhulLklpkzif73vzGvWoVp9Wqin3mGsIseI+UCWca4ahWRQ4cSNnkyQlpaaUtUYNx16hAoA7uPP7Qsezx38qyAdUePYv76a79jnXffjZrH7KGKIo477iiUjFKeWqLgUebG9esLNZ6GRlnhulHkgt3ueRTPZSsWrVZM33yDkJpaipIVEFkm+t//JnLECMyrVhH24YfEPfII0qFDpS1Zgcjq398vEZgSEUF2bl95pxMhwMpbUJSAStY2dCg5993nnQyU8HAc996L7fnnCyWjarEEbJerVCnUeBoaZYXSN64GCd2hQ4hnz/q3nz6NYdcuHPfeWwpSFRzjqlUYfv0VMZd5Qnf0KBFjx5YL1zQ1NJSUzz8nYswYpJMnUS0Wsp96CnuXLpc7mUzIVaqgO3PG51g5Oprs3P0uodeT9umn6HbtwrB9O87mzXE3aRJYAIeDiLfewvDHH6AouBo0IGPSJJ/UwfbOnZEOH/ZGxAK4a9TAVgbcNjU0isJ1o8jlSpVQIiP9lLkcFYU7ISFo59Hv2IFl4UIAsvr0wRXII6MQGDds8FHilwi0Ui2rKPHxpM2bd8U+tn790O/aheB0IuAxlTjvuAO5Vq18j3E3boz7KjVUo4YNw7h2rTcxmf6ff5DOnSMll8nmUnUm04oVCDYbcnw8maNHo2qVhzTKOdeNIlfi4nC2aIH03XdeG6wKuJo2Ra5ZE1QV3cGDiFar18f5Wgn94AMsc+ciZWQAEPLjj2Q98wy2ESOKLH9+j/dKaGiRxy4zqCphc+f6TFiCoqA7dMiTh6WQkalicjL6nTu9SvwS+j170O3Zg/uWW7xtWf37a+X2NK47rhsbOUD6jBnYnnkGZ+PGOBs1Iqt3b1I/+QTx/HliHn2U2MceI6ZLF+Luvx/j//3fNY0t2GyYvvjCq8QBpPR0zF9+iZDHRa4wZD37LK7q1X3a5NBQ7J07g6Jg2LqVkPXrA9qYywvSiRNIJ074teuOHSNk06ZCjyteuIAY4H8gWq1aFkGNG4LrZkUOgE6H9a23yHtLR/btS8iOHd73+sOHCR8/HkerVqgREQUaWr9/P7pA6WhPnUK/bx/OQnpSXEKJiSFt3jzC334bKSkJNTQU+xNP4GjThtgHHkB3+DCC0+mpIDNypEfBlyLiqVNEvP020unTKKGhZA0YgKNduysfJEmBa6OKImoRQu/dtWohV6qEmKfYtTs+vsj/Fw2N8kC5UeTGVaswL1vmCf9u0gTrSy9BAZJOCTYbujw3OIDu5ElMy5eT3a+f7wcZGRi2bUOOj0euWtXbLFeujBIVhZSc7NNdiY5Gjo8v3EXlwV2/PqlLl/q0xTz+OIZc2Q71x44R9t575LRrh1pKqU6FtDRievZEn+t71e/fT/qkSTg6dsz3OLlqVdw1aiDl8SJy16iB81//uup5ExMlFiwwo9dD//5ZVKyoeD4wGLANHEj41KlIF/3W5chIsrt10+zfGjcERVbkycnJzJw5k/T0dARBoF27dnS8ws1cGCwzZxI6Y4Y3ys+wbRuG3btJ+eKLwCu83Fzp8zyfhU6dim7lSmJOnECJicF5222kzZkDISHI8fE4mzXD+P33XlusCjhvu63Y3NfE1FR0gUwRiYmYvv2W7J49i+W8VyN0zhwfJQ6e8PnQefOuqMgB0mfOJHLwYPRHjyIoCq6qVUmfNOmq0anz51v46KNQzp/3pLddudLE669beeIJj6nJ3rMnzrvvxjJ3LoLTSVbfvrhvvbUIV6mhUX4osiKXJImnn36amjVrYrfbee2112jUqBFVgqXcZBnz8uU+odoCoP/rLwybNuFs3fqKh6sWC+46ddDl8f5wV6uG/YknvO/127YRumAB4kUbuJScjPGHHwh/+20yLwYVpc2eTfi4cRh27gRVxdm0KZnjxgXnOgPJLoqokn+RBVUUUUoxZW3u6MjciJn+ecjzIletSsq33yIdOUK0xUJyxYpXnYxtNoH58y1eJQ5w5oyOGTNCeeQRuzcholyjBpl5KhFpaNwIFHmzMyoqipo1awJgMpmIj48nNYgBOEJmJmKAhFBiVpbHZ7gApH/4IY4WLVAiIlAMBlx16pAxerSPacLy3/96lbj33KrqUdqXCAkhc8IEktetI3n9eo/SKEaFqkZG4q5Tx69drl6dnIceKrbzXg1Hs2Z+EZcAcoB84wERBOTatfnD2YgVK02cO3fln+Eff+g5ccJ/Qjt9WuLgwXJjHdTQKDaCehecP3+eY8eOUbt2bb/PNmzYwIYNGwCYNGkSsbGxBRs0OhqhQgU4d86nWQ0Px9SxI8aCjBMbC5s24T5wACEzE7VpU8L0esJydZEClGMD0Ol0BZe1OFiyBOWppxD27wenEzUhAXXaNGJz2e9LXMYXX0Rdvx5++81bNFhNSECaPLlAclit8MQTOv78UyAzM5rKlRWefFJlypTAyatuvlkgPBzyLvjDwgRq146kJC+91H8PhaQ8yl0eZYbSkVtQVTVQioxrJicnhzFjxtC5c2fuKICnQNI1BLqYFy4kbOpUb/i9Koo42rQh9bPPrm4jLyD67duJ6d3bZ1WuCgJZffuS+c47QTlHURBPn0a023HXquV3zbGxsSTn2YQFOH5cYsuWEBo0cNG0aXDLpAl2O5Y5czD89RdyXBy2ESMKvOk7fHgEX33lGy4fFqYwb14qLVv6B0WpKnTuHMPvv/s+/dx7bw6ff16y6Rfy+64Li90ucOKERHy8TFhYUG7FgARb7pKgPMoMxSt35UulEvMQlBW52+1m2rRptGrVqkBK/FrJ7tsXd61aWBYsQHA4cN51F7bBg4OmxAFct9+ObeBAQpcvR0hMRImOxtm8OZmjRwftHEVBiY9HKWBfVYWXXopgwwYjyckSYWEKjRu7WLQoFZMpOMpCNZkKHQi1b5+/q6HVKrJkiTmgIhcEWLAglZdeiuTAAT2iqHLrrS7eey/Dr295Yvr0UFasMHPhgkhUlMJ99+Xw7ruZCILH28q8eDHi2bPYu3Yt/aIhGmWaIityVVWZM2cO8fHxdOrUKRgyBcTZuvVVNzaLim34cIyvvkrGli0ed8N8Zr+yzurVRlatMpGT47E9W60imzeH8M47YUyYcPUNyeImwP4tAAZD/pNMVJTK/PlpXHp+DOIcXir88EMIH38citXq+R/ZbCJLl5qpXl1myJ1biR46FOnoUQTA/OWX2Lt0KdaNdY3yTZE3Ow8ePMgvv/zCnj17ePnll3n55ZfZmXuDsLwRFoarefNyq8QBvvnmshLPza5d156WIOjIMt1qb6Ox+DfkSnwbEyMzaFDWVQ8XhPKvxAGWLDF7lfglnE6R9euNRIwZg+6iEgdPBLFp+XJ0//xT8oJqlAuKvCKvV68eX375ZTBk0QgS+aWR0emKzwZbEAy//07E66/z2okTDBd1HJLq8m/DEnLia9Cnj4369d1XH+Q6QZYDz0aS24GUFCCCOC0N09dfYx01qrhF0yiHXFe5VjQ8PPOMjagoXw8Qg0GhbVtHKUkEuFxEvPIK+gMHEO12zG4rjV072JTwFN9/f4HevYOUQ8blwvDrr+gvprMtq3TsaCckxFc+UVRpdoeCGiBiWRWEoEUQa1x/3NCKXP/nn1hmzkT/228QHOedMkHz5i5GjrRSt66LyEiZhAQXTz2VzXPP2a5+cDFh2LIlYCCR5ewxjEn+0auFOscvvxDXrh0xPXoQ8+STxHbogHTgQFDGDjbdutl57DE7FSp4JtyoKJn7789h5MvZnspIeTYS3LVqYe/atTRE1SgH3JjRFC4XUc88Q8hvvyFarcihobhuu43URYtKW7Kg0a9fNk8/nU1SkkRcnILZfOWJSrdvH2EffICQkYG7Xj2sI0cGN5dLfhOlqgZnEnU4iBg92ps6QAAM+/YRNXIkyd99VzqGdVlGPHcOJToa8sQpCAJMn57BmUPncL+/gBq2fRjuu5NsupExfjwIAoYtWxAcDuSqVUl/992AK3UNDbhBFXno3LkYf/zRm7dcstkQN20ibPp0mDatlKULHno9JCRcvUK84ddfiXzuOXSXinJs2oRh2zZSVq4MmvJw/utfuKtX98vRIickIAeh8Idh8+aAK37pxAmk48eRa9Qo8jmuBdNnnxG6cCFicjJqeDg5bduSOXasz4QinjtHo2efQnfggKfIxs/fYlq+nJQlS8iYONEzwSlK/m4+GhoXuSFNK4YtW/wKAAuqWuCQ/+uNsPffv6zEL6LfswfzxUpIQcFgIGPiRFw334xiMKCYzShNm5L2wQfBWS3rdBAgbQCiWOKKUPfXX4RPmYL+4EGklBR0x45h/uwzLGeuPaUAACAASURBVLNm+fQLHzcO/UUlDiC43Rh+/53QTz652CBoSlyjQNyQilzNx60jv/brHTFAbhxBVTHs2hXU8zjvvpsLP/xAytdfk7xyJe6tW5EDpHMo1Nj/+hfuizl/cqNaLD7piEuC0Llz/VL1ig4Hxu+/92nTJSb6HSvADbug0Cg8N6Qiz376aZQ8BSXk0FCyu3UrJYlKFyUy0q9NBVz16gX/ZJKEq1kzT/m1YNqtdTrS3nsPxWIht8VdPH+esAkTgneeAiA4AnsHCS7fNAmK2RywnxIV5f07OVlkxw49mZnXgfN8AJYuNfHwwzHcc08c3bpFs2vXDWntLTI3pCJ3tGuH9YUXcNWtixwXh6tOHbKGDCHnscdKW7RSwTZkCHKFCj5trvr1yRowoETOn5oqkJ1ddEUlyDIqkHsk0eHAuG4d5OQUefyCIlepQkG2b7P69UPOU/jCXbky1hdeQFFg+PBIHngglieeiKF9+zjefTcsn5HKJ19/beKddyLYuTOEQ4f0bN5sZNCgaM6cuSHVUpG4Yae/rEGDyOrfHzEtzbMiLUKpsfKOo21bUufOJXTmTESrFXeNGljfeAO1mAs///mnwNChMZw8qcNgUGnUyMUHH6Rf1cMmP/R//42U5R8dqjt+nIjXXyfjvfeuWMBCTE7GvGgRQk4O2b17F9okI504QaBpKW85O8cDD5CZnY150SLEjAyUuDisL72EXLMmH7wfysqVJtxuz0gnT4p8+qmZ22930r59KcYDBJHFi81kZPgq7ZMnPXnmy0IqifLEDavIAdDpUAqaQ/s6x9WiBWktWpTY+XJyoHdviYMHLyu3U6d0iCLMnZtWqDGdrVohR0UhpfkeLygK5uXLQafzKPMAhKxZQ8TYsehOnwbAvHw5tsGDyRo40NtHt28fuqlTiTt1CiUsDFv//letiORDrs1Y8fx5Qt9/H11SEs477sD23HM+7p6//BLiVeKXyMqSWLrUfN0o8vyewnIXENEoGDe2ItcoNb75xsShQ/438q5deux2oVBZGt0334yjVStM333n75Uky4T8+is4HP7FQGSZ8GnTvEocQDp/HsuCBWR3744aHo545gzR/fsjJiZ67ZG6Q4dI1+lwtG/vM5z9sccI2bIF0X45WlXV6XBcrEsqHT9OTK9eXndJ44YNhPz0Eylff+0tBn4lt/vrhcqVZfbs8W2TJJW7774+JqqSRDNGaRQZ3Z49hL/1FpbZsxFsBYseTUsTURR/Re5yeXRtYUmfOZOcdu0CfibY7Qh2/1QAuiNHkHIpcW/7yZOEbN4MQNh//uPnZSKlpBA6d67fcTmPPUZ29+64LyZek+PisHfs6E37Gz5hgp/Pu2HfPkL/8x/v+7vvdiJJvlrbbFbo0iVIqQzKAOPGZVK79uUNYL1epUULJ716ZZeiVOUTbUV+A2K1CoSEqPkm17oWwt94A/PKlYgZGaiAZckSUmfP9nil5ELIykI6dgy5cmXU6Ggef9zOggVhnD7tu5aoUkUmMrIIy05RJHP0aAx//IGUkuLzkVypknfFmxslMhLVbPaULsrdbjYj33STZ9jz5wOeTr9zJ4Yff8R5772XGwWBzPHjsQ0fju7AAdw1aqDkypMinTkTeKxDh7x/jxxp5ehRiW3bQrhwQaJyZTcPPJDDQw+V3KZtcVOtmszq1cl8/LGFY8d0tG7toEsX+9XqcGsEQPvKbiB++83A+PHhJCWJmExw550OJk3KKPSNo9u3D9OqVd6qSgKgO3qUiDFjSFm+3NsvdNo0zCtWeMLVo6JwtGwJ06bx3HMKH3ygcOaMDklSqVnTzaRJRS8WIdeogf3xxzF/+aW3ILS7alUyX3stoMujUqECrltvRcpTTtBdrx6u224DwNWkCcbvv/fbxBSdTiLGj+dC69Z+wTtKbCzOli39zxfA3RPwThrg2ZOdMyed06cljh2TqF/fTUxM2U0CVlgiIlRefrn0cgBdL2iK/AYhLU1gxIhITpy4/C9PTJTQ61UmTiych4Dpq6+85fdyI5065bGR6PWE/PgjobNne+3Fot2OtHw5crVqjHj3XTp0SGXVKiMxMQqdOuUErZZ15rhxZD/+OJbFi1FiYsgaMAAlJibf/mmzZxPx0ksY/v4bZBl3nTqkT5/uVfy2gQMxrVyJ7tAhP2UuJSZ6Vt4NGxZINuvzz6PbuxddronDXa0a1pEj/frGx8vEx189zUJpcuSIxGefmYmIUOndO4vo6OvIkF9O0BR5WcPhQMjKQo2KCmrAzKJFFh8lDp6c2Fu3XrvmFNLTQVU9/tKCgJBnB041Gr1ufpaPP/bZ9APPxqPx22/h3XepUEFh4MDisYm6mzQho0mTAvVVzWbSZ826nMQrb7i/yUT6lCnEPvkkuH3zpqtG4zW5arpuv530OXMI/eADxIwM5Lg4Ml9/3cf8Ul6YPj2URYsspKR4nka++MLM5MnptGnjX7KvTOF0EjpnDobffkM1m7ENHux9+iqPaIq8rCDLRLzxBiGbNiHY7cg33YT1xRdx5LNxd60kJwfe13Y6BVS1YHOGeP68J7nWkSMeRV6tGnK1auhOXE5Dq+p0HtPJxQF1uey+uZHOnKFMrjOvUILIdfvtqE2aIOQJoXfXrXvNib+cLVqQunhx4WQsI/XuTp8W+fxzs1eJg8cPfOLEcFq3Ti5t8fJHUYj+978J2bzZuwgx/P47GWPHkvP446UsXOHQvFbKCOHvvot56VJ0x48jnTuH4e+/iRg1CjGfjbFr5amnsomM9FedCQnuAt9wUQMHYty8Gd2ZM+jOniXk999RjEYcd9+Nu2pVT4Ts00+T+fbb3mOUPJGLl1DzCU8v0wgC7mXLPNdbqRLuSpXIadOGtI8/LpnTZ2UROXQoca1bU6FlS6L69UMIkCenuLHZBAYOjOKBB+I4d85/LZiUJJXp6MyQjRsx/PGHz5OklJxMaAn9H4sDbUVeRjBs2oSQ55Fdd/o0lrlzsY4dW+TxGzZ08+STdlasMJGSIiFJKnXqFHxzUTpyBH2AmpG6U6dI/vBD3A0aBFzNOlq2xLB3r99xzhYtyuePr2pVUr76CiEjA0QRNazkwuajBg/GuHGj973u+HHE1FRSVq4s0dX5kCFRbNxozPdzk0klPLzs2slDNm3yM/cBiCkpHrNZOXSbKbvT5g2G4AxsUxTTChflGIixYzNZtSqZl17KZNq0NNauvVCgfOUAYlZWQAdvIScH0Wbz2JQDKBPb8OE4b7nFJ/eIq04dMkePLuxllAnUiIgSVeLi2bPod+/2a9fv24cub1RNMXLhgsiePVdKZ6Fy221OQkPLriJ3NmuGEsD3VomMLJdKHLQVeZnBXbOmX9EFJSyM7KeeCup5ataUGTHi2t29XA0aICckIB486NN+0libaT+0YeDNTqKi/G9eNTyclBUrsMydi37fPtzVqyPHxxM9YAD6zExio6KwPvvstYW650WWPTlzIiLKVM6cn34KYcECMw6HwB13OBk2zFZo330xNRUC5JERsrKQzp7FfeutRZS2YGRkCOTkBF7933STTJs2OUFxIS1Ocjp1wj1vHoadO71tSkQE2d27l6JURUNT5GWEjEmTkJKS0B08iOhyIUdHY3/oIaTTpwnt0wckiexevXDkDjwpSXQ6Mt58k4i33kJ3/DiqqnKUWrycNYFVc2JYs8HF4sUpVKni7+usWizYLrrWhWzcSOQLL3jzoRiAyFGjSKlcGXcADxPBbscyZw76v/9GqVAB6/DhKJUqeT83L1yI5fPPEVNTUSIisD/6qDeCsrAImZmEbNiAEhGBs02bQq3SFi0y8957YaSnezYCt2wJYft2A0uWpBbKCuKuUwclPh4pj3lLrlYN5513XvuAhaRmTY87ZN5kV1WquPn++wtERJTdlbgXSSJlyRLCJkxAv38/akgI2b16kfPww6UtWaHRFHkZQbnpJpK/+w7j+vXojh7F3rEjoXPnEvnyy4gXU7CG/PortoEDr6ioTpyQOHNG4pZbXEF/vHXedx/Jd9zBz8/9wIb1er6gOzY85oXDh/W8807EVRNeWebP90tqJV24QNisWX6bhoLdTsyTT6L/80+v73bIL7+QumAB7vr1MWzZQtjUqV5fdun8eaTZs5ErV8ZeyNzypiVLCJsxA11iIqpej6t2bdJmz0auU6fAYyiKJ7PfJSUOoKoCf/xhYMsWAy1bFsI1T6/H9txzhE2YgO7iBrgcF0dWnz4la+IR4bXXMnnzzQgSEz3qo2JFN4MG2cqFEpdOnsQyaxZiZib2Ll3InDCh1L1/goGmyMsSOh05Dz0EgJiUhHHDBq8SBxAzMzEvX07Ws8/61dK02wUGDIhi1y496ekiVarI9OyZxbBh/o/jRUG1WJgv92MD/ptdp05dPWtdoFwnQMAcLZZ589D/9ZdPAI4uMZGwCRNI++wzz6SQJyBJzMrCtHx5oRS5kJZG2AcfoDt1yvPe5cKwfz+RL79MyqpVBR7HZhNITfXffsrOFnAtWEHUghWoRiO2gQMDPoXkh71zZxx3341l4UJwOMju2zco9U6vlbZtHTRrdoGlS83Y7QJPPZVNxYplP+o0ZN06It580zsRGr//Hvsjj5BxHdTp1RR5GcWwc6dfyDiAcOEC0okTuPNU73nzzXB+/PGyck1M1DF3bij33uugYUN33mGKRGxs4A3S0NCr38zuunUJ+f13nzYVcDVtimC1IiUmIletihoejn7XLr9gI/CsvKHglXgKimn1aq8Sz40uMdFjusnHlTIvoaEqkZEqecqgskx6ii7/W4nk8shtXLcOV4MGWF9+GWfr1gVaGSoVK2J9/fUCyVGcREaqDB5cuEVCVpbA9u164uIUGjQouPtrkVBVzySdy51XzM7GuH49WQMH4r755hIQovjQvFbKKK569ZBzlfy6hBoVhZzLRnyJXbv8d9FSUyXmzbMEXbYRI2xUreo7OcTEyAwYcPUbO3PUKJyNG6NezEuiGgw4mzdHsNmIa9+e2MceI659e8Lfegs5n0hH1eK5ppzWrVHz2K9VwNm4cSGuCk+ZuAAFnFVJ8jvPlRBF6No1m/DwyxPbLeziAdZ7lTh4qheF/Pkn0c88Q8QrrxRK5sJw4YLISy9F0K1bDEOGRHL06LXn/05JEXnvvVDeeCOcgwcL/t0sWmSmffs4evaMoXPnWB57LCbg00uwEdLTkfLOrICUloZx7dpiP39xo63Iyyhy7do4mzfHuGGDd1WqGAw4WrcOmMEvMCrddo8l9v41iNnZuKtWJeOdd67J3huIKlVk5s5NZfLkcM6fl4iIUHjmGRvt2l09/6waEUHyqlWYv/ySsL17yWjeHMHtJuKNNy7nY8nOxrx4MfYOHfxKtwEoF81K2f37E7JtGyHbtiFmZqJYLLiaNMH66quFuq6cTp1wf/gh+iNHfNrd9ev7FH0oCIMGZREf72bJEgtOp8BLfEvE1sD7B2J2NsZ167ANGhS0YtT5kZIi8uSTMRw6dNm7Z+dOA4sWpVCvXsFcUX/6ycBrr0Vy8qRHfaxebaJXr2xefdV6xeOSkkQ+/DDUG0Rkswn88UcII0dGsGhR8NxsA6GGhqKEhnqf5i6h6PW469Yt1nOXBJoiL8OkffwxYVOmYNi+HUSRnLZtyRo6NGDfpk2d7N+vI7fae9/4Go8enuFdBeqOHye72wCeStiKzprOS1lv06LKKaSGtbAOH44aGYl49ixqSIgn18sVaNzYzZIlhYwqNBjI7tULc2wsOcnJRPfs6RegIebkYNy8OWDJNK9dXKcjbeFC9H/+iWHLFpxNm+K6++7Cb14ZjaRNn07k6NGexF96Pa769UmbMaNQw3Xq5KBTJ893b9hUB2WXGTE7cF4ZKTUV09q12J57rnCyF5D33w/1UeLgCaufMiWcBQuurkxVFSZODPcqcfA8+X3xhZnevbOuaCv/9FNLwEjQf/7Royj+6W2Cil6P45570J065ROz4a5Xj5wOHYrxxCWDpsjLMgYD1jffLFDXd97J4MIFiT//vLzZ2SPrW6QLvqvkyHOHaHduMk+ynNochUTg1/8RsmEDamgo0tmzqDod7nr1SJs58+qrf1kmbOJET94KpxNX3bpkTJx41YnAB+XaNsry1r50NW2Kq2nTaxojP9zNm5O8Zg3SqVOoZvMVMyZeC86WLXHdcovf/sAlFIMBVwmsDI8fD3zLX7hQMPPKuXMiZ8/69z13TmLNGiP9+uWfAE2nC+zVUlJOI5njxqGGhRHy448IDgfuWrXImDTJL/1wcXDhgsjUqWEkJkpUqiTz8stWKlUK3gaxpsivE4xGWLQoldOnPXkuGtR3EdPW3xNEBLrxFTU57tOuz1OxRnfmDFHDhpH62WfgdhM2bRqGrVsBcLRq5Vk5GgxEvP465i++8KYX0B886AnbX726wEusnHbtCNm2zWelpOp0ZD/8MObVq5Fy5RNRQkKKfwUlCFcuvCzLCBkZnkkugBKQEhMJnTULITMT++OPexKfCQKpn39O+LhxGNetQ0xJ8XnacNerF7QEaVeiatXA5pOYmIKZVcLC1IBl+AwGhSpVrjxGnz7ZfPmlmaQkX7Vzyy2u4l2NX0IUsb7yCtb89iMUxRO9nMcjrKhcuCDSpUsMhw9fXoD89puBpUtTqVYtOKnjpLFjg5DIoxBYrVe2p+WHeOYModOmYVq9GiU2FuViOa1gYTabyc7n8besklvm8HCVypUV9AYwrl3r54WRTjgpxFCBC1cfOCeH7K5diRwxAsuSJehOnUKXlIRh61ZCP/kEw9atGHbt8nMBFDIycDZqhFyjRoHkdjVpgu7YMcTkZMTsbOTYWHLatSPzvfdQwsM916CqKBUrYu/cGduLL5aa72/oRx9hfuklQj/5BNPy5SDLPk8DIevWETVoEMYtW9AfPIhx/XqkY8dwPPAAGAw47r+frEGDENxuBLsdJSoK5513kj5rlncTtzi49F03buzihx9CSEu7PAHFx7uZPDmDChWuvkI0GOCvv/QXNzgv/w/q13cxerT1igrZYlGpUEHm0CEdOTkC4eEKLVo4mTEjPWAe+hK7FxWF8HHjCB87ltCPP8b0f/+HOyHhypP5Fcgr97hx4fz8s6+7bnq6xIULIp06XVvFp7B8YgYEVS2dcq5JSUnXfEzIDz8Q8cYb3iK5SkQE2U8+Sea4cUGTKzY2luTk5KCNVxLkJ7Nu1y6ihg71rrZtYhgrlMeI4wIPsu6q48pxcaQsXEhMnz5I+Xwnqk7nl+wLIH3cOLKfeeaa5JZOn0a3ezfuhg19byJZRjx/HiUqyvPoUUoYV60i6vXXETIvF+KQIyNJmzXLEwGqqsR27OgpTpELOTyctI8/xtmqVUmL7CX3d336tMikSeEkJUlERyu8+KKVevU8/8P0dIF33gnnn3/0GI0KPXrY6dzZd//C6YRRoyLYvt2A2y1Qo4abKVPSqVy5YKYClwsOHtQRFaVesWhGSd2LYZMmETp3rq/tvGpVklevRqlQ4ZrHyyt39+7RbNrk/7tt0cLBypUpfu1XonI+C9egmFZmzZrFzp07iYiIYFpxOderKmF5Kp2LGRmYVq0i65lnCj17Xs+4Gzcm+f/+zxM4c/o0O+r34PW5Hal2Zju3spsqXP4uAylkNSSEiHHj8lXiAMj+N6IcG4vj/vuvWV45Pj6wy6Ek+YTllxbmZct8lDh4Nl4tCxfibNMGITMzoO+/lJlJdL9+uBo0IP3995Fr1iwW+RwOWLPGSHq6yMMP5xAbG1ixxscrzJjhX9nJ5YKnnorxcWXds0dPSoro41pqMMDUqZ58KgXNZZ8bvR5uuSW4sQ1FIWTjRr+kdbqTJz2ZR4OQ3O2mmwL/H6Kjg2cjD4pl6p577mHUqFHBGCpfxOTkwH6gyckY16wp1nOXZ9TISGwvvkjG9OnUGXA7X32dSrWujZl8+2IO1mlPzm3NsD/0EJkjR+K+OBmqOh2KyYR0+jQh27df5QQqcq4alIrFgr1jx1KJOCxu8gs0Ctm2DcuHH6KaTCj5VAoSs7MJ+eMPogYPvubN3YKwd6+ODh3ieOGFKN58M5IHH4zlk0+uzVSzapWRfft8N5IzMyW+/jp/m3F5jG43/Pgj0d27E9upE1HPPosQIBkZeFJHBIOXX7aSkOA7ccXHu3nppcKZlwMRlBV5gwYNOJ9PlfFgoYSGBixGoBgMuK9ii9W4TPXqMu+/nwHUARaS24Ewu3dvTGvWoPvzTyzLlgWMqsyLnJBA6rx5mD/9FDEri+xu3QKaEKxWgVOnJBISZMzmsp+TIxDOJk0wbNvmX4DZaiXsgw8Qs7JwtG2LdPIkYj5piXWHD6PfuRNX8+aXG3NyEFNSUG66qdBpVF9/PcLHrTApScfcuRYef9ye78o8N+YFC3hwxhrudrnYT32G8x/S8ESypqeLxe8eWEKErFtH5CuvIKVcNGn8+SdKAL0ih4aS3bVrUM5ZpYrM55+nMHlyOOfOicTEKLz0kpX69YP3VFJiXisbNmxgw4YNAEyaNInY2NhrHkO47z7U//4XIffjfMOGhHXrRliQXIh0Ol2hZCtNgiZzbCw8/zxSz54IAVaNqtEIguDNl6JUrgwjRxLZujW0bg1A3rAZVYURIyTWrhVISRGoUAG6dlUYO1b2k/v0aZg3T8Rshn79FILk+Rc8Jk+GgwdRf/3VLz2AmJODZeNG3Dt2oMTFwYoVCAcO+E2GgtNJpCShxsaCqiK98Qbi6tWQno4aF4fSvz/KsGHXJFZKCn6eIABnzujYsCGWYcOUK/5GxHffRZo2jciLK9Pb+YN6HOAutqIgkZoqMXRoRd55x02ezBDFSnHci7pFizwFJHIhZmejxMYipKUhyLLHdfaRRwh/9NFCPXIEkjs2FpYvv/ROAiLzHlYkSkyRt2vXjna53KsKtYkxdizhokjIr7+C0+nxA508GSWIxReup83OwhJWoQKB9sadt9xC2sKFmD//HBwOZssDWbmkJvJnnmICr71m9fM+mD/fzIIF4TgcnuWc1QozZkBCgpW+fcO8ci9aZGbGjFDOnvX8JOfOdfP22xm0b3/1aNFg8+uveubNC8Vu9+QRHzLkch7x2LVrcXftinn1ar/jlPR0kpOSYMgQePZZYjt0wLBvn08fd40aXKhfH5KTMc+fT/isWd6JUbhwAfWdd8hISMB1110FljcrS0CS4shrKZUkFb0+k+TknPx/I4pC3Bdf+JkXGrGLLnzFl3QnO1tg9WqBXbtEvv46ucCbmuCJ3vzqKxPp6SLdumVf07HFcS/GpaQEtCc7mjcn5/770R05gv2xx3A3bOiZIQtBceqQYt3sLDF0Op96kBrFQ9bgwZjWrkWXy7dciYggu1cvlOhobM8/z6hR4SxbZvYq6B07DBw5oue///WN9ly3zuTtcwmbTWLEiCi+/15l4kRP8ee5cy8rcbgcbVirViqffGLBahXp2jWb1q2dxWqXXbLExMSJ4aSmep7wNm0KYds2j8+vIACCQNaAARh/+gkxz8anUrGixwdZljGuX4+rbl3E9HTPBqii4E5IIPO117yeN6Y1a/wiWqX0dELnzyftGhS5xaJyyy0uTp3yvZ1r1nRf3b3N4fDbwAUw4uQ2/uRLLhdbOHFCx/TpYd6Nzquxfbue4cOjOH5cAgQ++8zCM8/YGDIkuBk5rwU5Npa8pUdUQcDZrBl2rbCExvWEEh1NyqJFRLz9NlJSEkpoKNm9emHv0gXw2Lt//NHoo6BVVWDHDj0HDui8rmyQ/76e3S6yYgVkZETRo0cWiYn+prHjxyU6d44hOdnzM/3hhxCeeCKHiROLpwKNqsKiRRavEve0CezYYeDnnw3cc4/H7u267TZy7rkH4/ffe9MMuytVwjp8OILVSnTPnuh370Z0OlFMJlz162Pr3x/HQw/5+ooHcNuE/Mv+XYkPP0znuedg7149LpdAlSpuJkzICOif7YPR6DEF5SnybRXD+Vbp5Nf93LmCmTBVFcaMifCJJD13TmLhQgtduxbMbl8cZL76KrqjR33iK1xNmpDVt2+pyBMsgqLI//Of/7Bv3z6sVivPPvssXbt25b777gvG0Dc00smThI8bh3TmjKfKzsCBJRL9B56kXan//W/Az86elUhP939ATU+X2LfPV5HfdZeD7dsNyHLgZXT2n0dpWGk1bUPuYqOjNbmDTJxOsNsv/0SzsiS++87IwIE2atQoekRcyMaNHjORomB/+GHSOnbJJ4+4yK+/hngVOUD6rFkY1671BKZFRmIbOhS5alUiXn2VkB07vP1Eux39/v2ImZmoJhOh06d7QsRdLoScHL+kYKrBUKjIVYtFZcGCNGw2AYdDICamgIpSELAOHerJL3PRYUHV69kd3YYt51r6da9Tp2Apgs+dE0lK8lf6SUk6vvvOSO/epRN0527ShJSvviL0/feRUlJw3nqrJ39RkKM5S5qgKPLhw4cHY5hygXj+PILdjlytWrH6XgmpqZ6VXa5MfLoDB0ifMsUTJViKVK3qJi5OJjPTV+nFxcm0aOF7ow8fbuPgQT2//BKCzZa7v8oi+vBQ2hpiP0/mGzGU7TSjE/9HFh4XPlEU/NzUU1Ikvv/eyKBBhXs8V1X45RcDFedMpdWOWeiyPC5gIZs3Y/jtd6KiFuRdnGI0KjRvnmeVLAjkdOxITp5ao/r9+/3OKcgyxp9/RnfkiMcbKNeKWw4PB0VBstmQo6JwtGpFdo8ehbo28ORCv9bKUI5OnUipU4fQmTMRbDZy7r8f9fYeVO8t+6yoGzRw8sILBav3arGoGAyBQvnVAkWQFidytWpkvP9+qcoQbDTTSgERUlOJGjIE/cGD4HIhV6lC+rvv4m7WrFjOFzprll86VSklhdBPPil1RW40evJtz5wZ5lXmRqNC27Y5fvk2dDr45JM0du3S0atXjNds0Z1lPMmXmFWPacKi2LiHn5lrHs4bqjTcwAAAIABJREFUcXOoX9/Fvn16bzmxy+dWqFOncG5bmZkCTz8dzbE9Tn7NWY6Oy368Yk4Opo0b6N/zCONO3ewzSTVq5CpQil7wBFHl1x7y88/+ZhO3m8w33kCQZZwtW5ZagQP3zTeT/uGH3vc1gBUrknn//TCSkiTq1nXx/PM2wsMLNkmEhak0buzi9Gnf/1+tWi7uv//awtI1ro6myAtI1LBhGDdt8r6X0tKIGjGCCz/8wNUNkdeO7sSJgO15N9hKi2HDsmjc2MWnn1pwuaBTJztduuR/gzZu7GbECCszZ3o2NZ/kS8z49+9S+w9afXsenc7jG710qYTLdfnJp149N/fcUzhPltGjw/njjxAacYBKBAguO3eO3g1+JfS9CixebMHhEGjUyMUrr/jmEBEyMoh85RV0Bw6AKOJs1oyM8ePBaCS7Sxd0f/+NlKt0nRwejvPWWzFs2+Z/zuxsBEEgu3//Ql1TcXLTTQqTJhV+P+LDD9PR6VR27TLgckFCgsyUKel+rvKqCnPmWPjhByNuN9x2m4vXXy8bv/PygqbIC4CQno4uT/Vy8OT3Nq5bR86jjwb9nM5mzTCuXevnhywXIvdDcdGqlZNWrQq+MdevXzYPPpjD0qVmaq8TYW+ATnqd90Z/990MwsMVfv45BKdToE4dNxMnphc6MOXAAY+/wgkSSCaWMHzNBFZTDK6b69Gp5uU84n6oKtF9+viko9X98w9iRgZpn3yCvVs3xORkzCtWICYnI1itiDYb4dOnB4yokWNjcbRpU7gLKuOYTCqzZ6fjdHoyOeRnhh49OpzFi804nZc9oA4d0rF+fQkKW865DmK1ih/B5fINQrrULsuI+YT3FpWs3r1xNW1KbjXurlrV475WjqlUSWHkSBsVJ/fzBMXkQjEYyGnf3vteFOH1162sW5fM//53gblz04iOLnxUqN3uWdlnEMl62pPD5ScpNyIbc1rx7heNrjiG8Oef6PP4hguAfudOxIu+w1lDh3Jh/Xrk2FhEhwNBUTzZDp1On1JyislEzv33I1evXuhrCiYHDkh06xbNv/5Vgfvvj2Xy5DCCkVLPYMhfiWdlCfzvfyFeJe7B4ym0dWs5jP8vJbQVeQFQ4uJwV63qVybKXbUq9k7+LlpBwWQi5csvscyZg2HXLuQKFbC98EK+dSzLG+6mTXGPGQMzZyJeuIAaHk7OffflWwGpqKiqx23yEoOZwxFq0YnvEJH5hdaMVcdR6wfP5JEvJ04g2vw3/KTz5wkfM4b0adPAaES/fz+6xER/OcBTri80lOzOnYO23yGkpWFatQrVZCLn0UdRr9ELw2oVGDgwmiNHLntZHzmiQ1XhtdeClxMkL2fPiqSn+3u3WK0iTzwB99wTydSp6d6ALI3AaIq8gKRPnUrUkCHoDh9GcLmQExKwjhhxzbUcrwXVZMI2YkSxjV/aqAMHkvzII5dT1BajC9ipUxJud+4VnsBUXmEqvkUGsrLcV8wrorZujbtKFb8874KiYFq1CjE9ndTFiz3FpQMMIigKumPHsA4fjuPBB4t6WQCYvviCsOnT0Z06hSoIyDNnkv7eezjvvLPAY3z6qYUjR3zVgcMhsmFDSLEq8ipVZOLiZDIy/L+rlBSRlStN/H975x3mVJn98c9Nbtr0ShvKUAVRVKSJuhaKilgXARUboq64IiKIiILKiiDyswGCCqgo64qCqyhFVkEUlY50GEDKUKb3tJt7f39cmCEkM5OpmTDv53nmeZhMknsSbr5573nPOd+wMK1Kufr6gEitBIinXTsyVqwga/58smfNIn3lSux33RXssEIfWdZnttRwHW9EhIrFUn6eoEkTT9k5+Ph4igYP9pr4eAYJMG/Zgrx7N0qHDih+xtVK6CNSI19/HePRo4G/gFKQCgqIfPvt4i8WSdOQDx4kasIEKpIXOXzYiK/NtV5DX5NYLDBoUBHR0f5LElVV4o8/xHK8PISQVwSjEdd11+mXrqWMKz1vcTgImzOH2EcfJXLyZKRqnG9TG8TGanTq5NvMIkklYte8ucLzz5dfLVHw9NPkvPGGj3co6DPy5X37QJLInjED16WXeuXFzyCfOkX4nDkVfBW+WNasweinwsmYmorxHPu+srjzziIiInz3gcoyfqguhg8v5P33s2jWzH9ZqcslcuXlIVIrgvKx24kfNAjzli3FUxGty5eT9dlnvoYemoackoJmtdY5s48ZM3J45hm9HM7jgeRkhQED7Kxda6FhQw//+EdhwB2RzuuuQ2ne3KfW39OwIa5u3fR/t25NxtKlNOjZ02++vDKt+OeiRkWhWSw+0xgxmytkHdejh5u+fZ2sWGGhsFDPWbdsqfDyy7WT0rjqKhdz52YxcGC8T868dWtvgTecPIntyy/RoqOx//3vfsdb1zeEkAvKJeL99zFv2uR14W06cICoV14h+4MPSm7bsEG34jt6FM1kQmnThuzZswOyy0pNNfDii9EcOSJjs6nccYeDoUMrVxFUVCSRkyPRqJHqlSYJC9PL4RRFL4c7U/5/1112/09UFlYrRYMHEzFjBsZcXezUsDDsN9zg7WYkSbgvucRHyD1xcRRWQ+2468orUdq0wbzTu5bT3b69Pt88QCRJr/tet87E4sVhNG3qYejQQqKja292fMeOCvfcU8SXX4aRlmbEYtFo29bN66+XuBmFz5lD+PvvI588iSZJRLz/Pllvvoly9nz3eogQckG5mLZs8ZM91S/fi3E6iRk9GlNKSsnfMzOJfeIJMhctYudOmcOHZbp3d/mseu12iSFD4tm3ryRVsXevCacTHn88cDH3eGDs2Gh+/dVCYaFEw4Ye/vnPAm67zbvxSJYr7d/gReHw4bi6dCFi3jxQFL0Kxc8GZs7UqRjS0jDt2oUhPx+laVMK77mnero4DQay58wh5pln9BSL0YhywQVkv/tuhZ9KkuDKK91ceWXwNhbHj8/nwQcLWbbMykUXhdO1awZnrAYMmZmEf/gh8mmnsDP7ATETJ5KxdGlo2hVVE0LIBeWiJib6v/2sfQLrjz96jb09g3F/Co/epvDz3kbk5xsID1fp29fOu++WiMUnn4Sxf7/3qVhYaODrr20VEvJXX41k0aKw4uqUzEwjr7wSxWWXuWnevGZyve5u3cg+nUopDS06mszFi5F37MB47BiuHj3Q/GyWVhZPy5ZkLl6s71vIMlpEBKYtWzAeOoTr6qsrZSAcTJKSVIYNKyIhIYyzx3pbv/sO2Y9puzE1Va98qsAVyNksX25h4UL9vLn+egdDhxaFnBuSEHJBueSPHIll7Vrks6osPPHxFA4bVnInl8vvzNqCPI0tG43kn95XLyw0sGRJGMeOGVmzRr/P3r0ymua7msrPr9in6ZdfLOeUGMLJkzKzZoUzZUrttHybf/6ZyHfewZCdjRobS/6TT+I63bmpXHQRykUX1dixtdhYpLw84u+8E3nXLowFBSiNG2O/4w44D4ZEqfHxaCaTj3eqZjZXuG7+DG+9FcHs2eHk5+vL/l9/tbBxo5nZs33NqesyIfa9IwgGalISWXPm4LjmGtwdOuDs3p2cyZNxntWF6ezTB8WP4fIhqRXHObeJSWLjRgvz5+un3403OrDZfL8EGjWq2Cr6XBE/Q2Fh7Zzm8tatxIwcieW33zDt2YPlt9+Iffpp5K1ba+X4ANHjxmFZv7541ot84gThn36K9McftRZDTeHo2xeldWuf292dOlWqn8PhgMWLbcUiDvo59OuvFg4cqB7ryNpCCLkgIJRLLiFr4ULSV60ic/FinOd0tGphYeSNH4+7VSs0gwHVYsF14YVMSHrf7/NpmsSyZfrp16ePk549nV5jT5OSlIAaUTwe+OorKyOHmWiVv40ovPO7kZEq99xTO440ke++i3zqlNdtxlOniKxEvrqy+Buja8jLw1ANpY5Bx2Qia84cnN27ozRpgtK8Ofb+/b2mNlaEEyeMZGb6SmBWlpH160Ordl2kVgTVhrNfP9Kvvx7Lr7+ihYXh6t6dhBdj4MC59gk6kZG6cEsSzJ+fzZIlVn74wUZ8vL5JWZ6/o6rC0KGx9PrxFV5VF9GIU2SQwDJDP55QZ5CYqNK/v50rrgjMDCE11YiiQPPmnkrtm5U2mdKQW3ubh1ppJuQhbpxwBk+bNvp+QEEBmiwX2+ZVhkaNVGJjNXLOyaJER6tccklg50xdQQi5oHqxWnH26lX868SJeWzaZGbHDpNXHrxBAw9jxpSkToxGGDDA4XcU7qFDRj78MBxJgkceKaRFC/1xq1ZZSFz9LcPVGUSdnmQYSQFD1Xm06tec2AkP0qxZ+emZ48cNPPFELAcOyKiqLuTTp+fQoUPF5p6727TRjcH93F4exkOHCPvsM7TISArvv193cq8Eru7dMe3ZU1zvD/rETE8lRz1s2yazd6+JK6901UpzUKBUR0OezaZx0012PvoovLiD1WDQ6NrVyYUXVm7mfbAQQi6oUcxmWL48g9dei2DpUhtOp0SDBirDh+fTsWMk5ZmNz5sXxjvvRJKerq80P/ssnNhYlaZNFQwGmKB8XCziZ7Di4Lqcb8hsdl9AMQ4fHsuGDSWTELOzjTz5ZAwrVuilb5qm/5RXyZA/dizmTZsw7dyJhD4gS+nYkfyxY8t8XMTbbxM+bx7G029G2OefkzNlSvEmaUXImzgRQ04O5vXrMRQU4GnYkILHHiO8TRvKfbPPwm6XeOihWLZuNZOfbyAx0cMNNziYMiX3vKrye/75fJKTFf77Xxsej0SPHi5Gjqy52TI1hRByQY2iaTBjRji//GLFaoX27d1MnpxLw4YqEFnmY4uKJObOjSgWcdDbtU+dMnLqlBGrVcVIKemX0lyfz+HIEaPPsCjQJ//99puZ5cutrF1rwemUaNbMw8yZUFo1nxYTQ+bXXxP+4YeYdu7E3bEjhcOG+e881DTkPXuQcnMJ++STYhEHkI8cIWryZDL+9reK10abTOTMmIGUk4MhI0MfkSvLBN7jqfPyy5GsXVuStkhPN/LVVzauucZBv356F2lWloFXXonk4EETNpvKgw8WctNNlTP9CBaSBPfea+feeyvRFFaHEEIuqFFefz2S998Px+HQl7N79pg4elTmu+/Sy33s9u0mjhwpvXrA4TCwVL6Na5WfsFEiIIok47zyyoDic7kkv9UuiiLxwQfhrF5tLf770aMygwerfPedhM3mv+NRCwujYMSIMo8p//knMaNH6y5QbjeGc9vrAeOJExiOH0et5NhiLSbG72CvQPnzT9/NPrvdwOLFYfTr58ThgLvvjmPHjpL77dhhIicnj7vvDm1RDEVE1YqgxtA0WL7cWiziZ9i7V2bJkvI33xITPaVOxTvD8mZDWdNkIGlGvRmkIDwB9803liumZ2jdWqF5c998aHKywsGDso/I79sn8e9/B7ZxaF69mrjBg0m4+WZihw7Vh1h5PMSOGoV5504MBQV+RRxAs1rRIsu+YqlJjEb/X1RnKos++yyMXbu8h4bl5Bj59NOKrv0F1YFYkQtqDJcLCgr8r3b37Cn/1GvVykPHjm5++aX0VblbMdBpwxTU1CfJ/PNPlAsvxOOnnr00JAmmTs1h1KhYDh6Ui4dpjR+fx4QJ0T731zSJY8fKrzG2/O9/xIwa5ZUyMe3bR87EiRjPGbTlcwzAfdllWH76CesPP+Bp1oyCRx+t9AZoZbjuOic7dpi9Jg/Gxnp45BG9lPPPP82oqu//bU6OWBsGAyHkgmKOHDGeFrLKld+di8WiG/ie21UdGaly880OoHzT6rlzs3n22WhWrPBd2QPExemVFGpSEs5KpiEuvVRhxYp01q7Vhevaa51YrfD++x4fF/i4OI2BA8tPHUTMmeMl4gDyoUOEf/GFjw8r6GWDamIialgY7o4dMW3bRsz332M4neu3LV1K5ty5eNq1q9RrrCgjRxZw6pSRn3+2kJtroEEDD/fdV8Rll+lleVdf7eCbb2w+I2YTEupOZUt9Qnx9Cjh61Mitt8Zz880J9O+fwM03J7BnT/V0to0enUfjxiUfbotF5brrHFx+eWB1uhERGrNm5XDNNf5TENHRGjt3yqxbZ8bhW7kYMCYTXH+9ixtvdBaXJr/8ci6tWilw2jk1JsbDoEEq7duXX5omlVJTjqL4NZxwd+hA9pQpFA4ciGXdOkxHjhSLOIB88CDRL79c4ddVWQwGmDo1lx9+SGfp0nRWrkzn4YdLGqtuv93BZZe54CxX2YYNFZ56KvQqPs4HxIq8nqNp8PjjMWzZUrI6zskx8uSTsaxYkVHl4UHXXuvi668zmDkznOxsI7feauemmyquuI88UsCGDWayskq+YCIjVVJTjdxxRwJ2u0RyssLIkQX8/e/Vs9l28cUKy5als2BBGCdOGBk0qIhrrokJqIrP36AqDb2dvPDxx4l+7jnkgwd1a7akJAz5+cQ/8gi43X4nTcI50yZLw+3G+vXXmHfswNGrF66rr67SVMCICM2v4YQsw8KFmcyZE8GGDWaiolRGjCgI6EtOUP1ImlYdPtkV57ifKWZ1gYSEBDIqUG9bF6hKzCkpRm69NdHHM9FiUfnii0y6dKm5DreKxr1okY25c8PJyjIQG6vidML+/d7VFU2bKixblkFcXGDlhxUl0JiNe/YQ/9BDxXPINcB9ySVkfvmlXo6oKJg3b0YzGIh+4QXM27eX+5yuyy7Tx7WWgpSVRcKttyIfOqTXsRsMuDp3JnPxYhIaNgz4vXY44McfrUgSXH+9o3hue20Tip9FqNm4mzRp4vd2kVqp57jdEh4/aU2PR6pzFlt33WVn+fIM1q1L4+uvM/z6SR47JvP558FvR/e0b0/G4sUUDhmCo08f8keOLBFxAFnG1a0banx8QN6dqtmsTzEsg9gnnsB0WsRBN3o2b9xIeAVmkaxZY6ZPn0QeeyyWxx6LpW/fRNatC625I/URkVqp57Rvr5ff7drl/WFNTlbo2rXqVmQ1gSyD2116p6Us1+xFpqrC1KmRrF5tweWSaNlSYcqUXBo08L4KUBs3Jnfq1LKfzGwu1+VCtVjIHzOmXEch85YtPrdJQPinn6K++mrZcQCKAi+9FM3BgyVlhSkpJl58MZqVK9MpbYyLIPgIIa/nSBK8/noOzzyjl9+pqu7VOGlSLn68hesMNhu0a6dw9Kj3KdysmRJQVUkgKArMnh3BL7+YMZvhvvsKuftumDAhik8/Dcft1te++/aZSE018t13GaVq8v79RmbNiqCgwED//nZuvdWBJIEnKQmldWufChfVbEZt3BilRQtyX30Vj58NUh9Ky5IG2OW6ZYuJQ4d8X8BffxnZudPk17xaUDcQQi7gsssUVq5M59dfzSgKXH21C3MIXE1Pn57N44/HsXevTFGR3kL/7LN5xMRUz4p82LBYfvzRisejC/aGDWaOHVNZs8ZSLOJn2LfPxLJlVm65xXcj99tvrUyYEE1amr6k/d//LKxc6WDmTH3sXvasWcQOH4584AB4PHiaNydn2jSUjh0rFK/Spg1mP7PPHddcQyD/nTabhsmk+bw2sxkslqBspQkCRAi5ANCv7q+5puKplKIiicxMA40be6rFB7MsFAWWLrXy1VdhHDpkxOmUiItTGTasgLAw+PFHCx9+GMEvv1gYNy6/eEzuufz8s5lPPgnH44E777TTv7/Dp7Bj61aZP/6wFIs4QF6egU8+gYIC3+d1uSRSUnzfAE2DmTMjikUcwOk08NNPVrZvl7n4YgW1USMyFy/GcPw4ktuNp3nzSlWaZM2dS0LfvsiZmfqxAaV5c/JfeYX4AB7fsaNCmzaKT3t+69Zu2rWrmWoU45EjRMyciZSXh/2223DecEO99t6sLNXy0du6dSvz589HVVV69erF7bffXh1PK6jDaBq88EIUq1frDSOJiSoPPFDIgw8W1cjxsrJ0g+YdO0xe4nr8OBw4YMRgkIqdgP74w8L27WaWLPFNdbz9dgSzZ0eQl6ffd+1aC+vWFfHaa95137//bim+z9nk5EgkJChewgx616Pe5ORNXp7kc1+A3FwDK1daufjiksmNaikVCYGiNmpE+tq1RMyahZySopc6PvKI/6FdfpAkeO+9bEaMiOHwYf2Na9VK4Z13cmpEWy0rVhA9fjzyiRMAWH/4AcdNN5FTi0Yc5wtVFnJVVZk7dy4vvPAC8fHxjBs3ji5dutC0adPqiE9QR3n33QgWLgzD5dLFLjvbyPTpkVxyibu4+686mTAhmm3b/CcI7HZfody+3cSSJVbuustx1v0kFi0K8xJou93AihU2nnqqgEaNSnLJXbu6iIxUfXxD4+I0nnkmnxdfjOb4cf3jEx7u4cYbHX5XreHhGpGRKqdOecdoNKqsW2ehZUuF225zVNtGohYdTf64cZV+fHKyh2++yeT4cQOSBI0b10wZJ5pG5NtvF4s4gMFux/q//yFv345y8cU1c9zzlCqXH6akpNCoUSMaNmyILMv07NmTDRs2VEdsgjrMqlWWYhE/Q1aWkQ8+qJmhSf7SFmXhduu+oGdz8KCRU6d8T/lTp4xs2eK9s3v55W4uv9yFJJWkUSIi9M7OG2908t//ZjB0aAF33lnE3LnZTJvm3wVIlqFvXwdWq7cgejwSv/9u4ZlnYrj77nhcdaxAqEkTteZEHJAKCzGcY4sHupuS7fvva+y45ytVXpFnZWURH1+SgYuPj2f//v1VfVpBHac0o2Ons2bymxXdbLNYVK66yrutv0kTD3Fxqk/9eWysx+9qev78LN56K5L1682YTBqDBhXx8MMRrFkjk5trYPz4vICcxp5/Pp/oaJWVK63s3y+Tl2fkjPWdy2Xgt9/MfPxxGI88UjNpqbqIZrP5dfnRzGbc7dsHIaLQpspC7q8xVPKTUFu1ahWrVq0CYMqUKSQkJFT10DWCLMt1NrbSCEbMXbsa2bbN+zabTWPIkMBjqUjcgwcb2L1bo7Dw3HPLnx+oRrducP/9ERiNJWKRkAB9+kh8+mlJZYYkaVx5pUT37v4nC77++pl/SaSmRvC3v5nYtSuRoiJo3RpeeEFh8OCSz4DdDmvWSISHw5VXasW17i+9pP9ccYXE5s3ex1BViY0boxg3LrBcdmWoi+e14dZb0WbNQjprSI7WsSMRDzxAhCzXyZgDIRhxV1nI4+PjyTy9Sw6QmZlJrJ9xm71796Z3797Fv9fV1ttQbAsORsxjx0rs3h3Htm0yBQVGEhI89Orl4NprcwN2FKtI3IMHw/HjEXz3nY28PAmLRRf19HTfU7hJEw/z56eRne37PK+8AgkJEaxebcHj0XPhzz2XH1DM998fx/r1JV8a+/fD+PESl1+eQWysxtKlFqZOjeKvv2RMJo3WrRVmz86mdeuzh4bF42/qY3i4nYyMmjNprpPn9ahRRBiNWH/4AcnpRGndmtzJk1FPuyHXyZgDIBgt+lUW8tatW3PixAnS0tKIi4tj3bp1jAhwqL8gdAkL0/jPfzLZtMnE7t0mrrrKScuWNTfCVJLgmWcKePrpApxO3Tz9oYdi+eEH31O4YUO1VNN4g0Ef0TpyZIH/O5RCQYHEwYO+xzp2TOarr2zcfbedyZOji6s9nE6JXbvMPP10DN98U7LQuffeInbtMnnNtmnSROGppyoWz3mBJFEwciQFI0cGO5KQp8pCbjQaGTp0KK+++iqqqnLdddfRrFmz6ohNUMeRJOjSxV2jg7XOxWCgWKT79XOwZo3vpmunTi7Ma9cSOX06xvR01MhIigYNouihh6p0XP8leBq//24hNlbl8GHf0pMjR2ROnTKc9iiFO+6wU1gI//53OHl5+pzv0aPzadFCzPEWVJ5qqSPv3LkznTt3ro6nEggCZsAAO2vWWFizxkJ2tpHwcA+dOim8dN+fxNz3tFdpm/HwYbTwcOwDB1bqWGFhGu3aKT5GEyCxdq2ZxEQPRiM+A8gkyXeUypAhdoYMEb6WgupDdHYKQhaDAWbOzGHvXpm1a81cfLGbbt3cxIzyrk8GMOblEfb555UWcoB33smhV68GpKV5XwEUFBjZu9dEcrLCgQPeZYxt27qJj6+5Mj6BAMQYW8F5wAUXKAwbVkT37m4kCQynN8vORbJXbRUcF6fSpYv/vzmdEtOn53DhhS6iolTi4z306OEsnqciENQkYkUuOO9wXn011v/9D+mcPIeSnFzl5+7VS2XFCslrTADoK++uXd2sXJlBSoqMzaaxYYOJUaNiUFXo39/O4MH2Cre6FxVJ/PWXkaZNPURFicFVAv+IFbkgIAoKJFJTjYFORA0qRffdh7NnT9TT1jaawYC7QwfyqsHz8rHH9EYjm01/I0wmjU6dXEycqM9qkSRo21Zh7txwxoyJ4ccfrRxafYKkMcPJ6zyI2H/8A+OBAwEd6/XXI+jTJ5Hbb4+nb99Enn8+qtRJtYL6jViRC8rE7YZnnolh/XozRUUSDRt6eOqpfPr392+GXCcwmchauBDrsmVYVq3C3bEjRffeS6k1iRV7aj77LIufl3s49sUWmnSK5qon2mAylyy1c3Mlli2zYrcbaMoRfqAvbbUUSAO+BdPWrWR+9hme1q1LPc7y5Rbmzg2noECvhCkshM8/D6NlSw+PPFJY6uME9RMh5IIymTgxiiVLbKiqLlSZmUZeeimazp0zaNKkDi/PDQYcN9+M4+abq/2pw774DwPefRf58GG0X20oP15A1ty5xYbLBw/KxRuik3iRtqR4PV4+epSoadPInj271GP8+99hxSJ+BqfTwIoVVgYOLCItzUjz5krQ/DQFdQuRWhGUyR9/WIpF/AwnTsjMmeM7J6NekJZG5Btv6N6YqoqhsBDz5s3EPP108V1atFCKK1WSSPX7NIa0tDIPc+57foaUFJkbbkjkllsS6NMnkTlzamZImSC0EEIuKBN3Kb0+BQX1c/i/Yf585OPHfW6XU1J0+3n0UbfXXefEbFY5hv9xzmdW76XRr58ds9n7ikeSNDIzDRz/ixzDAAAY9UlEQVQ9KpOfb+DAARPvvhvBhg112JNPUCsIIReUSZs2vlMBo6NV7ruvnuZpSzMylSSv1s+pU3MZNy6frzu/yBFrG6+7Ki1akDd2bJmHGTzYzh132GnQQK+8iYvzEBWl+qzUs7ONzJtX+6vytDQDo0dHM3hwHCNHxpCaKqQkmIgcuaBMpk3L5dQpI3v2yDgcekv5gAFFXHppzVh/VSeqCjt3mpBljfbtlWpxuVEffBBl1izko0e9bne3b8/ZCWtJgkcfLYRHbRhSF1I0bRrG48fxNGxI/rPP4ilnjIUkwf/9Xy6pqfls22amQwc3TzwRy7ZtvmMAzvXYrGnS0gwMGBDv1fy0fr2JhQuzSE4WowaCgRByQZnEx6t8+20Gv/xi5vBhmd69HTVqOHCGvDzdA7N5cw8JCRU/3saNMs89p1uWGQy6ZdmMGd6TCMvD5YL0dH2yY7FGx8WRO2ECUdOmYTx2DM1mw92+PTlvvVXq86hJSWX+vSySklSSkhy4XHo1zLlje8PCVO66q3bnmL/+eqRPB+vhwyamTo3ivff8jJwU1DhCyAXlYjDA3/7mAmrHxubVVyP59lsbJ08aSEhQufJKF2++mVM827s8FAWefTaWvXtLxObPP82MGBHL0qUZAa3MZ8wI58svw8jMNBAbq3LLLXbGjNEnFDr79SO9b1/kPXvQoqPLXV1XBy+/HHV6smJJ8JKk0aePg759a7cU9Ngx/750J0+K9EqwEO+8oEbRNEhNNZCVFdjl/4oVFj7+OIyjR2XcbgMnTsh8/bWNt98OvErm99/NfkfO/vWXkUOHyjfH/OEHCzNnRrJ/v4msLCMHDpj44IMIFi06qw5dllEuuqhWRBxgwwYzmub9HmqaRFiYVuum82d7m55NZa6cBNWDEPJ6it0usXq1mW3bTDXWLbh5s8zNNydw002J9O2byJAhcafTA6Xz+edhFBZ6i62iSPz8c+AF05qG39ekaVJAr3XBAm+DZoDCQgNffVX1hqLKcu5IgDO4XLVfPTRmTB4tWniXMzVtqjBmTF6txyLQEUJeD/niCxt9+iQwZEg8AwbEc8stCdV+WexwwMiRsWzbZiYz08iJEzI//WRlxAj/lmpnKE1oKzIaoEcPFy1b+m7GJicrtGpVfo68tM3D2t5UPJsLL/StA42KUnnwwdqvHkpKUlm4MItbb7XTrZuTfv3sLFiQSbt2YqMzWAghr2dkZRl4441IDh0yoWkSRUUGtmzRnWyqk6VLrRw65Jve2LVLJj+/dEG88047YWHeqm00alx5ZeD5eZMJpkzJ5YIL3JjNKjabykUXuXj77eyA0hDXXutElr2/USRJo1u34FndT56cyxVXOImM1N+bJk0UHnigkM6da8/U42ySkz289142S5Zk8sEH2ULEg4zY7Kxn/Oc/Nj/mCHDggIzdLmGzVU+epbDQ4Lc7UVGk0ytb/8e55RYHGzYUsXy5lePHZRITPXTv7mTUqPwKHb9HDxc//JDO1q0mTCa4+GJ3wLnkYcMK2bDBzG+/mcnJMRIVpdKli4unn87Hn99mbRAZqfHll5ns2CHz118yV1zhEnPOBcUIIa9nnLvSPINeEVJ9yfJbbrEzc2aEz5dGixYKcXGlC5AkwaRJeYwcWcDu3TItW3pISqrcas9ohMsvr/iK1WiEDz/MZtcumd9/N9O5s6vO1M1fdJHCRRfVjVgEdQeRWqlnDBxop0ULXyG44AKlOoYDFhMXpzFiRD7NmunHMpk02rd38/rrgRktxMerXHWVq9IiXh1ceKHC0KGh0fwkqN+IFXk9Izpa46WXcpkyJYqjR41YrRodOrh5663qb+QYMsTOLbc4WLHCSkyMyvXXO338KwUCQdURH6t6SN++Tnr1SmfPHpnoaI2mTWtu1RsdrTFwoDAaFghqEiHk9RSjETp2DH7KICvLwPjxURw4IGM2a9x0k4Phwwtrvckl2Bw9auTDD8PQNOja1cXevSYuv9zNtdc669x7YbdLvPlmBNu2mbHZVB59tJCePYNX0SMQQi4IIooC994bx59/motv273bRF6egXHjKlalEsp88omNt96K4tQpvRFq7lx9norNpnLJJW4WLMgiLKz6NqKPHTMydWokaWlGGjdWGDMmn6SkwCpgPB6455441q8vqd7ZtMnMSy/l8fe/iyuvYCE2OwVBY/FiiT17vIcvORwGVq604gnSHqfLBTNmRHDvvXEMGxZb47O+7Xb44IOIYhHXkU7/zcDvv1t47bXIajve4cNGBg6MY/HiMH75xcKiReEMGpQQ8Bja776zsmWL93uSlWVk7lxhcBFMhJALgsaOHQa/Leb5+RIOR+3nEzQN7r8/jqlTI1m92sqyZTYefjiOL76oudb8HTtMHDlS9oXx9u3V92UydWokhw97P9+hQzLTpgX2ZfHrrxbcbl/ZyMw0CGPoICKEXBA0br1VJSrK95K+QQO1WlMJgbJ6tYWNG81ejUyZmbpxQ02JVGKi//fgbMzmqh/c6YSxY6NZudLq9+/HjweWZe3e3enjXAQQF6fWuVx+fUIIuSBodOmice21DiyWEmFo1EjhySfzgyIKa9easdv9rzZdNbSXl5zsoWPH0puWwsM93HVX1XPP999v5LPPwvy+PoCGDQPLZd12m4NOnbzjjY318MAD9dQxqo4gNjsFQWXWrByWLrWydKmNyEiVJ54ooGXL4CTIL7/cjcWi4nR6i110tIrZXMqDqoEPPsjm2Wej2bnTRG6uhMslYbVCTIzK7bcXVVnI09IM/PGH5DMG9wwtWig8+2xgm8tGIyxcmMUbb0SwfbsZm03j4YcLuPZaUbUSTISQC4KKJOnzVW65xRHsULjxRgcXX+xm48azLds0cnIMfPmljbvusrN7N4wYEcexY0bCwjRuvNHBiBEFbNhgprBQomdPZ4U7ZCMjNd57r6TjVVX1fYKICA1j+ePTyyUtzVDq+ODu3Z28+WYOzZoF/uUZHq4xcWL9qSoKBYSQCwSnObPafPTRGNauteLx6KvYEydkJk2KIiHBwyuvyOzbV7Ji379f5uOP9fnlbrdEcrLC2LF59O9fedceg0FvpKou2rZVaNoU9u3zvr1pU4V587KIiRG7lKGOyJELBGcRHq7h8Ug+Rg6ZmUZefjnaS8QBnE4D6ekyTqc+7fHgQROvvRZNYWHd2fmzWOCJJzwkJpasumNiPAweXCRE/DxBrMgFgnNwOv2LcF5eYOL8119Gli+38Pe/Bz9ddIZ//EPl0kuzef/9CNxueOihQjp1Cn5nr6B6qNKK/LfffmPUqFEMGjSIAwcOVFdMAkFQ8efGI0kaf/ubk/Dw8lewRiM1sjl67JiRN96I4KOPwigqqviKv00bD6+/nsubb+Z6ibim6ZU5jrrzvSOoIFUS8mbNmjF69Gg6dOhQXfEIBEHn+efz6dKlpF7aZlO56ionU6fmcsMNuuPQGaxW35rq5GSFvn2rVxXffDOC/v0TePPNKF54IZobbkhgy5aqX1CvXm2mX78EevdO5PrrGzBqVDSKWKiHHFU6E5o2bVpdcQgEdYbwcI3FizP5/nsrmzebuOoqF9dfrw+vWrjQw6JF+fz3vzaaNvVwxx1FPPtsDCkpMm63RLNmCv/6Vx6WajQSOn7cwCefhJOerpewaJqei584MYZvvsmo9POmpxsYOzaGY8dKZODYMX208eTJwkg5lKi1HPmqVatYtWoVAFOmTCEhIaG2Dl0hZFmus7GVRijGDHU/7oce0n8yMy24XJE0bqzHPHBgJAMHgv7xsfDzz/DXXx7sdmjfHiQpqsLHSkuDf/3LyKFDEs2aabz4oofGjfW/ffSRgbQ03zrEEydkDIYE4uLKf35/7/Xbbxu8RBzA45HYsCGMhIQaLJwPkLp+fpRGMOIuV8gnTZpETo6vq8vgwYPp2rVrwAfq3bs3vXv3Lv49I6PyK4maJCEhoc7GVhqhGDPU/bizsyWeeCKWfftkFEVfbX/wgUKjRr4xR0ToP5mZ3rcfP25g8WIbiYkqt91mx+qnQz493cCAAfGkpJSI9U8/aXz+eQZJSSqRkVaMxlifShpZVikszEANYHChv/c6NTUafxJgt6t14v+lrp8fpVGTcTdp0sTv7eUK+YsvvljtwQgEocDw4bH8/HOJ8qanG7n/fpXvvycgp6O3347go4/CSUszYjRqzJoVwezZ2XTo4J2Enjo1kpQU70FWBw/KvPZaFDNm5NC/v4MZMxT27Tv7PhqdO7uqZM83ZEghS5fayM313ipr2VIkyUMNUUcuEPghI8PgM2IXYN8+idWry087pKYaikUc9JRFSoqJceOife579Kj/b4UTJ/THWiwwZ04WPXo4adJEITlZ4c477UyblsOyZRZeeSWSn36yVHiwV6dOCoMGFRXXl5vNKh07upk6NTBfVUHdoUo58vXr1zNv3jzy8vKYMmUKycnJjB8/vrpiEwiChsMh+a3ecLuhoKD89c9XX4X5zWsfO2YkP18iMrJEdc9u1DmbuLiSnEm7dh6++ioTu11CljXcbol77onnzz9NOJ0GPvlEpUsXF598klWh0seJE/N46KFCvvvOSvPmHm64wSF8VUOQKv2XdevWjW7dulVXLAJBnSEpyUOzZh6ysrzFuFUr6N27/Pb7hAQVg0HzGokLen35uWNpR4/OZ+NGs9fKPClJYdQo33kmNpv+2EmTItmwoaQ0xm438MsvFt57L4Knnioo/wWeRfPmHh5/XEwvDGVEakVQb/B4YM8emdTU8idRSRJMnpxD27ZujEZdPJs1U3j+eYWIiPJzGHfcUUSrVucu6TUuu8zlU5qYnOzhk08yufFGO5df7qJvXzvz52f55NLPZscO37SPpkn8/nvwq00EtY+4iBLUC376ycy//hXNsWNGLBaN9u3dzJ6dTVxc6aJ86aUKK1ems3KllYICiX79HLRqFU8gBQk2G8ycmc3zz0eTmmrEbIbLLnMxfbr//HO7dh7mzs0O+PVYLP7jPrNiF9QvhJALznsKCiReeCGav/4ynf4dfv3VyFNPxbJgQVaZjzWboX//ynVpXnSRwjffZJKXJ2E2a35LDyvLvfcWsm2b2aviJC7OwyOPVCytIjg/EEIuOO9ZssTGX3/5nup798oUFkoBzU+pClFR1f/8/fs7OXkyn//8x0ZOjoH4eJWHHirkiitKdxuqDjIzDRw8aKR1a6XMqxlB7SKEXHDe43TCGWf6s1FVAmqmqasMG1bIww8X4nTqJYo1aY+nabrn508/WUhLM9KggYfevR1MnpwnvDrrAGKzU3Dec+eddpKSfDcOW7b0eJUBhiKSBFZrzYo4wPz5YSxaZOP4cb3L9fhxmS++COPf/65CR5Kg2hBCLjjviYvTGDMmn5Yt3UiShs2m0qmTi7feCnxzsb6zYoUVl8tbLhwOA0uXCiGvC4jUiqBecNdddvr3d7BunZmYGJXOnd0iJVABSusaPff2nByJ+fPDOXnSyODBhVx2mWj3rw2EkAvqDTabRq9elffSrM/06eNgwwaz16rcYlHp10+v6FEU+PRTG++8E8mpU7qsfPutjdtuK+K118RI3JpGpFYEAkG5DBtWxO2322nUSEGSNBo3VhgwwM6QIUVs3SrTt28i48fHFIs4QG6ugW++sbF7t1gv1jTiHRYIBOUiSfDmm7mkpRk4eFCmdWuFxEQVTYNnn41h717fTlOAnBwjixfbGD/ed9yAoPoQQi4QCAKmQQOVBg1cxb/v3Stz5EjpMmIwaDRv7n8omKD6EKkVgUBQaWRZw1CGirRpozBgQFHtBVRPEUIuEAgqTevWHlq18u0mNZk0rrrKwYcfZlXJ/EIQGCK1IhAIKo0kwcyZOfzznzEcPCijaRItWij83//llDm9UVC9CCEXCARVokULD99+m8mhQ0Y8Hn2VfnaNvt0uMW9eGNu2mWnbVuGxxwpqZP5MfUYIuUAgqBZatvTd1MzPlxg0SHcy0jRd3Zcts/L555k0aBDCg27qGCJHLhBUkN27Ze6/P5abbkpg0KB41qwRZg6l8fbbEWzbZi4WcYC9e01MmhQVxKjOP8SKXCCoAEePwtChcV4ld/v2ybz7bjZXXeUq45H1k927/deXHzlSvkuTIHDEilwgqACvvmr0qZtOSzMya1ZEkCKq28TE+E+fhPrUybqGEHKBoAKcPOl/0lZenvgo+ePpp/Np0sS7eiUx0cPw4cLJqDoRZ59AUAE6dfK/wmzcWHQv+qNNGw+zZmVz9dUOOnRwc8UVTt54I4eePUUaqjoROXKBoAKMGaPy/fcutm83ccZ1qGVLhRdeEBP+SqNrVzeff162N6qgagghFwgqQGQkfPVVJu+9F87OnSaaNvXw1FMFJCSIUjpB8BBCLhBUkPBwjdGjRY5XUHcQOXKBQCAIcYSQCwQCQYgjhFwgEAhCHCHkAoFAEOIIIRcIBIIQRwi5QCAQhDhCyAUCQY2xbZvMV19ZOXFCSE1NUqU68gULFrBp0yZkWaZhw4YMHz6c8PDw6opNIBCEKIWFEg8+GMf27Sby8w00aOChf387kyaJDtiaoEpfk506dWL69Om88cYbNG7cmCVLllRXXAKBIISZODGKdess5OfrEpOWZuQ//7GxerUlyJGdn1RJyC+55BKMRn2ucLt27cjKEvMUBAIBp2fReFNYaOTzz8OCEM35T7W16P/444/07Nmz1L+vWrWKVatWATBlyhQSEhKq69DViizLdTa20gjFmCE04w7FmKH247ZY/EtLVJQ54DjEe12BY5Z3h0mTJpGTk+Nz++DBg+natSsAixcvxmg0cvXVV5f6PL1796Z3797Fv2dkZFQm3honISGhzsZWGqEYM4Rm3KEYM9R+3D16RLJtWwSKUjK/PT7ewwMPZJKRoZTxyBLEe+1LkyZN/N5erpC/+OKLZf599erVbNq0iQkTJiBJ/ofuCwSC+sXYsfmkpxv47TcLeXn6ZueDDxbSsWNgIi6oGFVKrWzdupX//ve/vPzyy1gsYhNDIBDoGI3w5pu55OVJpKcbaNbMg1l4VNcYVRLyuXPnoigKkyZNAqBt27Y8+uij1RKYQCAIfaKiNKKihHtSTVMlIX/33XerKw6BQCAQVBLRbiUQCAQhjhBygUAgCHGEkAsEAkGII4RcIBAIQhxJ0zQt2EEIBAKBoPKIFfk5PPfcc8EOocKEYswQmnGHYswQmnGHYswQnLiFkAsEAkGII4RcIBAIQhzjSy+99FKwg6hrtGrVKtghVJhQjBlCM+5QjBlCM+5QjBlqP26x2SkQCAQhjkitCAQCQYgjhFwgEAhCnGpzCDqfCEVT6d9++41FixaRmprK5MmTad26dbBDKpWtW7cyf/58VFWlV69e3H777cEOqVxmzZrF5s2biY6OZvr06cEOJyAyMjKYOXMmOTk5SJJE79696devX7DDKheXy8XEiRNRFAWPx0OPHj0YOHBgsMMKCFVVee6554iLi6vdMkRN4MPWrVs1RVE0TdO0BQsWaAsWLAhyROVz9OhRLTU1VZs4caKWkpIS7HBKxePxaP/85z+1kydPam63Wxs9erR29OjRYIdVLjt37tQOHDigjRo1KtihBExWVpZ24MABTdM0raioSBsxYkRIvNeqqmp2u13TNE1zu93auHHjtL179wY5qsD49ttvtbfeekt77bXXavW4IrXih1A0lW7atGmpNlB1iZSUFBo1akTDhg2RZZmePXuyYcOGYIdVLhdeeCERERHBDqNCxMbGFldP2Gw2kpKSQuJcliQJq9UKgMfjwePxhIT7WGZmJps3b6ZXr161fmyRWimH8kylBRUjKyuL+Pj44t/j4+PZv39/ECOqH6SlpXHo0CHatGkT7FACQlVVxo4dy8mTJ7nhhhto27ZtsEMql48++oghQ4Zgt9tr/dj1Vsiry1S6Ngkk5rqO5qfaNRRWW6GMw+Fg+vTpPPjgg4SFhQU7nIAwGAxMmzaNwsJC3njjDY4cOULz5s2DHVapbNq0iejoaFq1asXOnTtr/fj1VshD0VS6vJhDgfj4eDIzM4t/z8zMJDY2NogRnd8oisL06dO5+uqr6d69e7DDqTDh4eFceOGFbN26tU4L+d69e9m4cSNbtmzB5XJht9t55513GDFiRK0cv94KeVkIU+mao3Xr1pw4cYK0tDTi4uJYt25drZ3s9Q1N05g9ezZJSUn0798/2OEETF5eHkajkfDwcFwuF9u3b+e2224Ldlhlcs8993DPPfcAsHPnTr799ttaPa9FZ6cfnnzySRRFKd7cCgVT6fXr1zNv3jzy8vIIDw8nOTmZ8ePHBzssv2zevJmPP/4YVVW57rrruPPOO4MdUrm89dZb7Nq1i/z8fKKjoxk4cCDXX399sMMqkz179jBhwgSaN29efFV5991307lz5yBHVjaHDx9m5syZqKqKpmlcccUVDBgwINhhBcwZIa/N8kMh5AKBQBDiiPJDgUAgCHGEkAsEAkGII4RcIBAIQhwh5AKBQBDiCCEXCASCEEcIuUAgEIQ4QsgFAoEgxPl/i26kSKAIvsQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(6,4))\n", "ax.scatter(datos.X1, datos.X2, c=df.y);\n", "ax.set_title(\"Datos ESL.mixture\");" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Dividimos los datos en el set de entrenamiento y de test." ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "X = df.drop(columns = 'y')\n", "y = df['y']\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " X,\n", " y.values.reshape(-1,1),\n", " train_size = 0.8,\n", " random_state = 1234,\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Creamos y entrenamos el modelo SVC lineal." ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "SVC(C=1, kernel='linear', random_state=123)" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svc = SVC(C = 1, kernel = 'linear', random_state=123)\n", "svc.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Clasificamos con el algoritmo entrenado los datos de test." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0,\n", " 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 0], dtype=int64)" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predicciones = svc.predict(X_test)\n", "predicciones" ] } ], "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.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }