{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "**Support Vector Machines**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_This notebook contains all the sample code and solutions to the exercises in chapter 5._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", " \n", " \n", "
\n", " \"Open\n", " \n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "# Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This project requires Python 3.7 or above:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sys\n", "\n", "assert sys.version_info >= (3, 7)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It also requires Scikit-Learn ≥ 1.0.1:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from packaging import version\n", "import sklearn\n", "\n", "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we did in previous chapters, let's define the default font sizes to make the figures prettier:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.rc('font', size=14)\n", "plt.rc('axes', labelsize=14, titlesize=14)\n", "plt.rc('legend', fontsize=14)\n", "plt.rc('xtick', labelsize=10)\n", "plt.rc('ytick', labelsize=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And let's create the `images/svm` folder (if it doesn't already exist), and define the `save_fig()` function which is used through this notebook to save the figures in high-res for the book:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "IMAGES_PATH = Path() / \"images\" / \"svm\"\n", "IMAGES_PATH.mkdir(parents=True, exist_ok=True)\n", "\n", "def save_fig(fig_id, tight_layout=True, fig_extension=\"png\", resolution=300):\n", " path = IMAGES_PATH / f\"{fig_id}.{fig_extension}\"\n", " if tight_layout:\n", " plt.tight_layout()\n", " plt.savefig(path, format=fig_extension, dpi=resolution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Linear SVM Classification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The book starts with a few figures, before the first code example, so the next three cells generate and save these figures. You can skip them if you want." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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WABatmxJVFQUhw8fplmzZqVunsyXrV27NoMGDeLtt99m0aJFvPPOOw7/w7nhhhs4fvy400VoLVu2ZMOGDaUe27BhQ/F0CUfHFxYWsmnTpuLHsrOz2bNnDy1btnQbtxUFW/ELcPzcca6tfS2t41vLAjjhM126dOG9995jx44dLj9RMwsrtkl+/fXXWblyJcOHDzc6HCFc8nQO8D1AX631Z36MxZSsst3H5s2b+eyzz+jevTvx8fF88803HDlyxG3RN2DAAN58800OHTrEv/71r+LHq1atypgxYxgzZgxaa2655RbOnz/P5s2b3Xb/mThxIjfccAOtWrUiPz+fFStW0LRpU4f/4dx222107NiRe++9l6lTp3Ldddfx3XffceHCBe655x6eeOIJbrzxRp577jn69+/Ptm3bmDlzJn/9618dvndiYiJ33303Q4cOZeHChdSoUYPx48dTrVo1+vfv7+HfpnUEY/ELcE3Na9g7bC/5hflGhyKCzIABA4wOwSv3338/7777LqtWrWL06NF88MEHRofkUuPGjV2u+xDCLDwdAb4IHPFnIKJiqlevzsaNG+nduzeJiYk88cQTTJgwoXhOrzMDBw5k3759VK9endtvv73Uc5MnT+a5555jxowZtGrVittvv53ly5fTpEkTl+eMiopi/PjxtG3bls6dO3Pu3Dk++eQTh8eGhYXx73//m86dOzNkyBBatGjB6NGji7f+ueGGG/jwww9Zvnw5ycnJPPPMMzzzzDMuO7+99dZbdOjQgbvuuosOHTpw8eJFVq9eTUxMjMu4rSZYi9+SIsJkna7wj4sXL/Lss8+SlZVldCguKaWYN28eVapUKW6TbBVbt24t3lZTCNPRWru9AaOABUCYJ8cH8paUlKSdycjIcPqclWRnZxsdQkCY8Tp9/TO0bt06n5wn71ye3nHzDr2OdXpjvY36woELPjmvL/jiGk+cO6ELCwtdHvPrzLIrbxU51lNF1+mPczsCfK0DkDeDhbufw9TUVA3oe++9NzABVdDLL7+sAV2/fn199uxZrbXv8ok/HD9+XFeqVEkrpfTmzZsrdC4zX6evBOoajcybJa/RDHnT6QiwUurjohvQDbgf+J9S6t8ln7M/75ZSarFS6pRSaq+T51OUUmfti+x2KqUmelXJCxEigmHk19Xq4ot5F0mYlUCDlxuQV1C+1qplz+tMmJMMGB7uOD5H6yattE5A/Gr8+PHExsayfPlyPvroI6PDcctqbZLr1q3L448/XtzQQ9okV4yvdrJxJdTypqspED+Vuf0L+Bw44eA5T7wN9HBzzJda6+vstxc8PK8QISMYil9wvbp414ldFOpCasbUJDLcdVvtinK2Etmbx0uuci55s8r6gVDVsGFDpk6dCsDw4cMdbqtoJkVtksPDw5k7d26phb5mNWnSJJo2bcqePXt46aWXjA7H0szQlbZIsORNpwWw1vohT2+evJHW+gvgZ59FLkSICZbi153iBhgJ0gBD+Nfw4cMt3SbZ9gmveVWuXJkFCxYA0iZZmI/y5B+QUupz4A9a61/KPF4N+D+tdVeP3kypxsCnWusrWpQppVKwbal2FMgCxmit052cJxVIBahTp047Z6tiq1evTrNmzTwJzdQKCgqCas9aZ8x4nd999x1nz5712fnOnz9fvNWcVy5h24hwN1AbmA047i5tOE+usUuXFKfP9Zh/B6tPrmZUs1H8vt7vy3UOb6xbl+bVuYuOL/f3spy6dOmyXWtd7r7QnubNYOHp9+fSpUtkZmaitebaa691u+e60bTWpKenk5OTQ5MmTahZs6bRIbl16NAhfvrpJ6pWrUpSUpLXrw/0vzUjuLvGLl1SnD7nKIeV5zzeKE/eNOL76DJvOpscXPIGFAJxDh6PA/I8OYf9+MbAXifPVQNi7V/3BA54ck5ZBBc8zHidZlgEZ+YFb454co2uFkC0ntda8xz6qx++Kvc5vLl5e25vrtOXkEVwXvHm+zNu3DgN6D//+c/+C8iH1q5dqwE9c+ZM/e233xodjlunT5/WderU0dWrV9f79u3z+vWyCM53i8aMzJtGfB9d5U2XewwppW4ocbeNUqrkFIZwoDtwzKty3AmtdXaJr1cppeYppWprrU/74vxCWFGoTHsoyV0HOCF8bcKECXTs2JE777zT6FA8UtQmWWtNamoq69atI8zZyiQTqFWrFsuWLSMxMZGrr77a6HCEANzvA/w1sA3QwBr7/aLbFmAs4JPFakqpusreq1Yp1cEem6cL7IQIOmYtfv3ZH75mnVwKdAEt67Qs7gDnbGWxr3hzbhPXGKICoqOjueuuu5y2XTejGTNmEBERYZk2ybfcckvIFr/+zJnOHpe86Z67XeabAAo4CHQAfizxXC5wSmtd4MkbKaWWAilAbaXUUWASEAmgtX4d6AM8ppTKxzbjsZ99+FqIkGPW4hd81x/ekUt5BXyd9QWX8i8VP+ZsZTHYPlwry1dJXrJPaNqzZw8LFy7klVdeMfWoas2aNWnYsCFga5Pcu3dvSxSY+fn5zJ49m5YtW9KzZ0+jwwkIf+ZMZ7zJm74sjK2UN10WwFrrw/YvK5wFtNYPuHn+NeC1ir6PEFZn5uLX32IiY7i50c1GhyFCVF5eHr169eLIkSMkJyczdOhQo0Ny6aqrrqJnz56WaZMMsGTJEp588knq169PRkYGVatWNTokEaJcNcL4o6e3QAYsfpWSkuKyJbCwnlAufoUwWmRkJDNmzADgqaeeMn2bZMBybZIHDhxI+/btOXr0KM8++6zR4YgQ5mpkd26Z2xvYmlkstt/etj8mo7Y+NnjwYHr37u32uBUrVjBt2rQAROSYUoply5YZ9v7BJtSL34t5F7lr6V1M/WKq0aGIENa3b1969+5NdnY2o0aNMjoctxo1asSUKVMAGDZsmCUaerz55puEh4czZ84ctmzZYnRIIkS5aoRRtegG9MO2A+nNQLT9djOwE+gfgDgNdfLkEjZtakxaWhibNjXm5MklhsaTm5sL2OaAycdHwSEQxW+gWml26ZLi8H3c3apUqswn/T/i2VvHe7xow5+LPERoUkoxb948aZPsR23btmXMmDFobf42yf7Om0Xn69KlfHnT2c2T9wz1nOnp3N4ZwCit9Uatdb79thF4HJjpt+hM4OTJJezbl0pOzmFAk5NzmH37UgNaBD/66KP07t2b6dOnU79+ferXrw9cOQVixYoVtGnThpiYGGrWrMmtt97KSRez7BcsWEBSUhLR0dHUqVOH7t27k5+fX/z8W2+9RcuWLYmOjiYpKYmXX36ZQvvM+saNGwO20RKlVPH9ovM2a9aMSpUq0axZM9544w2P33fbtm387ne/o3bt2lSrVo2bbrrJEi0/KyJQI7++aqXp317t5sjGgexHL8ynQYMG0ibZzyZOnGiJNsm+yJuhkk+sdp2eFsCNgQsOHr8INPRZNCZ08OB4CgsvlnqssPAiBw8G9rfs9evXs3v3blavXs3atWuveP7EiRP069ePBx98kMzMTL744gsGDRrk9Hxff/01w4cPZ9KkSezbt4/PPvuMHj16FD//xhtvMG7cOF544QUyMzOZOXMm06dPZ968eYCtUC067vjx48X3//WvfzFixAgef/xx9u7dy+jRoxk2bFjx3DR373vu3DkGDRrEl19+ydatW7nuuuvo2bMnp08H53bQVpz24KiHu1V4us17IPvRC3MqapN85swZvv76a6PDcatsm+SiTwrNqmSb5LVr1xYPrgQjRznTKnnTm/YYVsub7rZBK7IFeFUpNUBrfQxAKVUPeBnY7K/gzCAn5wevHveX6OhoFi9eTFRUlMPns7KyyMvLo0+fPjRq1AiA5OQrOk4X++GHH6hSpQp33XUXVatWpVGjRrRt+2vjgcmTJ/Piiy/Sp08fAJo0acIzzzzDvHnzGDFiBHXq1AGgRo0a1C3xWdCMGTMYNGhQ8ch0UlIS27dvZ/r06dx5551u37dr19JdtefMmcPy5ctZvXo1AwcO9OavzPSsWPwKESrCw8P5+9//TlRUVHFONbuJEyeybNky0tPTefHFF02/yKxbt2589tlndOnSxdRbzong5OlP3CNALeCQUuqQUuoQcAhbK+Qh/gnNHKKiHA9wO3vcX5KTk50Wv2D77b9bt24kJydz7733Mn/+fH788Uenx99+++00atSIJk2aMGDAAN555x3OnTsHwI8//siRI0cYOnQosbGxxbdnnnmG77//3mWcmZmZdO7cudRjN910ExkZGW7fF+DUqVMMHTqUpKQkqlevTtWqVTl16hQ//BDYXzj8TYpfIcwvKSnJMsUvQExMTPGo6uTJk9m3b5/BEbl32223SfErDOHRT53W+nugDdALmIVt5Lcn0Fpr/Z3/wjNe06ZTCQsrXZiEhVWmadPArlSvUqWKy+fDw8NZs2YNa9asoU2bNixatIjExER27drl8PiqVauyY8cOPvjgAxo2bMi0adO49tprycrKKv4o6vXXX2fnzp3Ft71795Kenu42VkfdlIoec/W+AA8++CDbtm3j5Zdf5quvvmLnzp3Ur1/f9B/neUOKXyGspbCwkNdff52ZM82/5KWoTXJubi6pqamWmVrwww8/0L9/f05Y7XN0YVke/9qlbdZorV/VWr+itf5vKHRqi48fQPPmC4mKagQooqIa0bz5QuLjBxgd2hWUUnTq1IlJkyaxbds2EhISeP/9950eHxERQdeuXZk2bRq7d+/mwoULfPrpp8THx1OvXj2+//57mjVrdsWtSGRkJAUFpRsBtmjRgg0bNpR6bMOGDbRs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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–1\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from sklearn.svm import SVC\n", "from sklearn import datasets\n", "\n", "iris = datasets.load_iris(as_frame=True)\n", "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = iris.target\n", "\n", "setosa_or_versicolor = (y == 0) | (y == 1)\n", "X = X[setosa_or_versicolor]\n", "y = y[setosa_or_versicolor]\n", "\n", "# SVM Classifier model\n", "svm_clf = SVC(kernel=\"linear\", C=1e100)\n", "svm_clf.fit(X, y)\n", "\n", "# Bad models\n", "x0 = np.linspace(0, 5.5, 200)\n", "pred_1 = 5 * x0 - 20\n", "pred_2 = x0 - 1.8\n", "pred_3 = 0.1 * x0 + 0.5\n", "\n", "def plot_svc_decision_boundary(svm_clf, xmin, xmax):\n", " w = svm_clf.coef_[0]\n", " b = svm_clf.intercept_[0]\n", "\n", " # At the decision boundary, w0*x0 + w1*x1 + b = 0\n", " # => x1 = -w0/w1 * x0 - b/w1\n", " x0 = np.linspace(xmin, xmax, 200)\n", " decision_boundary = -w[0] / w[1] * x0 - b / w[1]\n", "\n", " margin = 1/w[1]\n", " gutter_up = decision_boundary + margin\n", " gutter_down = decision_boundary - margin\n", " svs = svm_clf.support_vectors_\n", "\n", " plt.plot(x0, decision_boundary, \"k-\", linewidth=2, zorder=-2)\n", " plt.plot(x0, gutter_up, \"k--\", linewidth=2, zorder=-2)\n", " plt.plot(x0, gutter_down, \"k--\", linewidth=2, zorder=-2)\n", " plt.scatter(svs[:, 0], svs[:, 1], s=180, facecolors='#AAA',\n", " zorder=-1)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10, 2.7), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plt.plot(x0, pred_1, \"g--\", linewidth=2)\n", "plt.plot(x0, pred_2, \"m-\", linewidth=2)\n", "plt.plot(x0, pred_3, \"r-\", linewidth=2)\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\", label=\"Iris versicolor\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\", label=\"Iris setosa\")\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.legend(loc=\"upper left\")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plot_svc_decision_boundary(svm_clf, 0, 5.5)\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\")\n", "plt.xlabel(\"Petal length\")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.gca().set_aspect(\"equal\")\n", "plt.grid()\n", "\n", "save_fig(\"large_margin_classification_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnwAAACyCAYAAADYkBK7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABIxUlEQVR4nO3deXxTVfr48c/ThbVAoSyWVTbZQUDWLoIroMKgIiI6MOPoMKOjM46jqONvXMaNxRG/jgs6OvoVFZWvG4KKQGnZ951C2QuUsi9l63Z+fyS5JiWBtCS5Sfu8X6+82iQnuc9N2psn555zHjHGoJRSSimlyq8ouwNQSimllFLBpQmfUkoppVQ5pwmfUkoppVQ5pwmfUkoppVQ5pwmfUkoppVQ5pwmfUkoppVQ5pwmfqjBExIjI7Zf4HI+KyM4AhaSUUmUiIs+IyPoAPE+eiIwOQEgqzGnCpy6ZiKSJyBtebh8tInl2xKSUUnYSkXoi8qaI7BSRcyKSKyKzReR6u2NTFVOM3QEopZRS5dA0oBpwL7AVqA9cDSTYGZSquLSHT4WEiPxXRKaLyMMisldEjorIByJSza1Nqogsdp5iOC4iS0Sko9v9vUVkjoicct4/W0QaOu8bICIZzuc9IiI/iki7i8TUSEQ+cz7mqIh8LyKtS7R5TET2O2P6CIgL8EujlCpnRCQeSAHGGmNmG2N2GWOWGWMmGGM+c7apJCIvisguZw/gdhF5yHlftIj8R0R2iMgZEclyHosu+JktIr8RkY0iclZEtojIX9wfIyKtnGdkzorIZhG5OYgvgwoz2sOnQikFyAGuA5oAnwNbgJdEJAb4BvgPMBKIBboBRQAi0gWYC/wv8AhwDkjll7/h6sBrwFqgKvB34DsRaW+MyS8ZiDPRnAssxPGtOx94FPhZRNoZY06LyB3AP4E/OdsOAx4HjgTsFVFKlUd5zstgEZlvjDnrpc2HOI6JDwOrgGY4jovg6IzZC9wBHAR6ApOBwziOkecRkfuA53Acr1YAHYF3gQLgDWfi9xVwFOiDo/dxElD5EvdVRQpjjF70ckkXIA14w8vto4E85+//BbKBGLf73wV+dv5eBzDA1T62MQVYXIqYquNIFpPdbjPA7c7ffwtkAeJ2fzSOA+odzusLgXdLPO/PwE67X3O96EUv4X0BbsPx5fAssAiYAPRy3tfaeTwaUIrne9l1vHRefwZY73Z9N3BPicf8Gdjo/P0G5zGxqdv9yc44Rtv9eukl+Bc9patCaaMxptDt+j4c41owxhzBkRT+6Dy1+oiINHFr2xWY7euJRaSliHwiIttE5ASQi+NbclMfD+kONAdOOk/X5gHHgdpAS2ebdjgO1O5KXldKqfMYY6YBDYFbgJlAX2CxiDyJ43hWjOPMgVciMkZElovIQefx6S/4OJ6JSD0cvYPvuI5nzse8jOfxbK8xZrfbQ5c441AVgJ7SVYFwAqjl5fZ4HEmUS0GJ+w1u40iNMb8RkdeAAcBg4AUR+ZUx5kdALhLDdzhOgfze+bMQ2AhU8tE+ClgN3OnlPj1lq5S6ZMZxKneW8/KciLyHo2fungs9TkSG4xii8iiOMw0ngAeAoT4e4jqOjnG29/q0pQhdlUOa8KlA2AwMEhExxnGewKmb8z6/GWPWAGuAV0RkJjAK+BFYCVzj7TEikoDj2+sDxpi5ztu6ceG/75XACOCQMeaYjzabgN7A+2639fZ7Z5RSytNGHMelTBxJWn/gBy/tkoElxhhruSsRaemlHQDGmFwR2Qu0NMZ8dIFtNxKRJsaYbOdtPdHJmxWGvtEqEN4CWgD/IyJdRKSNiPwFR0I1wZ8nEJHmIvKyiPQVkWYi0h/ojOMgBTAe6Coik9228TsRaYpjEPIh4D7nLLSrgbdx9PL5MgXHad9vRORq5/ZTRWSi20zdScAoEblPRFqLyBNAr1K9MkqpCkdEEpwrCtwtIp2dx5dhwGPAbOcX28+B90TkNuf9KSLi6vnbAnQTkYHOY8/TOCaXXcgzwGPOmbltRKSjiPzaedwCx/jjTOAjEblSRPoA/+LCx0lVjmjCpy6ZMWY7jhmzrYGfgKU4TpUOM8bM8PNpTgNXAF/gONh9iCMpe8W5jdU4Zve2BRbjGHtyJ1BgjCkGhuNIENcD/waexjGT11fMp50xb3duM9O5zdo4EkiMMVNxHERfwDGLrhPwqp/7o5SquPJwHKceBuYBG4AXgU9wHKsAfu28/jqO489/+WVozDs4EsJPgGXA5cDEC23QGPMejslo9+A4S5IB3A/scN5fjOOUcBSO4+dHOFYh8HmcVOWLeJ6BU0oppZRS5Y328CmllFJKlXOa8CmlVIiJSBMRmSsim0Rkg4g8bHdMSqnyTU/pKqVUiIlIIpBojFkpIjVwVEb4lTFm40UeqpRSZaI9fEopFWLGmBxjzErn7ydxLAHUyN6olFLlmSZ8SillIxG5HEflhSU2h6KUKsciduHl+Ph406pVK7vD8MupU6eoXr263WH4LZLi1ViDI5JiBVixYsUhY0w9u+MoLRGJA6YBfzbGnChx3/04ltWgSpUq3RMTEykqKqK42LMSVlRUFFWqVLGuG2MQCXxRheLiYqKi7OsjsHv74RCD3dsPhxgq+vYBtmzZUrbjnd3FfMt6ueKKK0ykmDt3rt0hlEokxauxBkckxWqMMcByEwbHpdJcgFgcVWQeuVhb9+Ndfn6+Wbx4sRk/frwZPHiwGTdunHXf8uXLDWDq1KljbrnlFjN+/HizePFik5+ff6kvse1/E3ZvPxxisHv74RBDRd++MWU/3kVsD59SSkUqcXTB/QfYZIwp1WLesbGx9OrVi169evHoo4963HfgwAEaNWrE3r17+e677/juu+8AqFatGr1792bq1KnUrVs3ULuhlIogmvAppVToJeGoiLBORFY7b3vS+F+ZxquBAweSnZ3Nzp07ycjIsC6bN29m1apV1KlTx2p7//33U6tWLVJSUkhOTva4TylV/mjCp5RSIWaMmQ8EfqAdICI0b96c5s2b8+tf/xpw9Pxt3brVGnt0+vRpPvjgAwoLC5kwwVHuumPHjqSkpJCSksJ1111HvXoRNyRSKXUBmvAppVQ5V79+ferXr29dj4mJYfr06aSnp5ORkcHSpUtZv34969ev56233uLjjz9m5MiRAGzdupWioiK7QldKBYgmfEopVcFUqlSJG2+8kRtvvBGAs2fPsnz5cusUcGpqqtV2woQJvPPOO7z22mu88cYbVi9gly5diI6OtmsXlFKlpAmfUkpVcFWqVCE5OZnk5GSeeOIJj/vi4uKoX78+hYWFTJs2jWnTpgFQo0YN7rvvPiZOnGhHyEqpUgr5YjIi8hdn7cj1IvKpiFQRkToiMktEspw/a4c6LqWUUuebMGEC+/fvp2PHjrz33nuMGjWKFi1acPLkSWJifukz2LBhAykpKTz11FP88MMPnDhx4gLPqpQKtZD28IlII+AhoL0x5oyIfA7cCbQHZhtjXhaRscBY4PFQxqYiy5Qp8NRTsHv31TRtCi+8AM4hR0qpABMRKleuzL333su9994LwN69ez0WeJ43bx7z589n/vz5gGNB6C5dulingIcMGUJsbKwt8Sul7DmlGwNUFZECoBqwD3gC6Oe8/0MgDU34lA9TpsD998Pp0wDCrl2O66BJn1Kh0qiRZ+nfu+66i6ZNm1rjAJctW8aqVatYtWoVH3zwAUeOHLHazpw5k7Zt23L55ZcHpSqIUup8IU34jDF7RWQCsBs4A/xkjPlJRBoYY3KcbXJEpP4Fn0hVaE895Ur2fnH6tON2TfiUskd8fDw333wzN998M+BY+mXJkiVkZGRw9uxZ6/TvuXPnGDp0KOfOnaNRo0ZWD2BKSgodOnSwvWyVUuVVqE/p1gaGAM2BY8AXInJ3KR5v1ZasV68eaWlpQYgy8PLy8iImVgj/eHfvvhpvS5jt3m1IS5sX+oD8FO6vq7tIilWFp2rVqtG/f3/69+/vcfuRI0cYMGAA8+fPZ+/evXz22Wd89tlnANSuXZupU6dy/fXX2xGyUuVaqE/pXgfsMMYcBBCR/wP6Arkikujs3UsEDnh7sDFmMjAZoE2bNqZfv36hifoSpaWlESmxQvjH27Qp7Nrl7XYJ67jD/XV1F0mxqsiSmJjI119/TXFxMZmZmdZagBkZGWRnZ9O8eXOr7dixY1m2bBkpKSl0796dU6dOUb16dRujVypyhbrvfDfQW0SqOWtJXgtsAr4FRjnbjAK+CXFcKoK88AJUq+Z5W7VqjtuVUpEhKiqK9u3bM2bMGKZMmcLu3bvZuXMnLVu2tNr88MMPzJkzh2effZYtW7YQHx9v1RBOT0+3MXqlIk+ox/AtEZEvgZVAIbAKR49dHPC5iNyLIykcFsq4VGRxjdNzzNI1NG0qOktXqXKgWbNmHtdnzZrF/PnzSU9Pp1q1ahQXF7N06VKWLl1KUVGRtUD03r17SU9PJyUlhcaNG9sRulJhL+SzdI0x/wD+UeLmczh6+5Tyy8iRjkta2jw99ahUOVWvXj2GDh3K0KFDSUtL49ixYyxatIj09HRuuOEGq93MmTO57777ALj88sutSSCpqalcccUVtswE/mXpKHTpKBUWtNKGUkqpiFCjRg1uuOEGj2QPHOMCBw0axIIFC9i5cyc7d+7kf//3fwFHArht2zZr9q8xJugJoOfSUejSUSosaMKnlFIqot10003cdNNNFBUVsW7dOmsSSHp6Os2bN7eSvYKCApo1a0bnzp2tXsCePXtSpUqVgMajS0epcKQJn1JKqXIhOjqaK6+8kiuvvJI//elPGGM8SrytX7+enJwccnJy+PHHHwGoVKkSPXv2JCUlhTFjxtC0adNLjmP37tLdrlQo6AqXSimlyiURoVatWtb1rl27Wmv/PfDAA3Tu3JmCggLmz5/PSy+9xKlTp6y2X3/9NV9++SW5ubml3q6vnDEAuaRSZaY9fEoppSqMhg0bMnz4cIYPHw7A0aNHWbBgAUuXLqVt27ZWuxdffJFly5YB0Lp1a1JTUxk4cCDbt2+nefPmFxwH+MILnmP4QJeOUvbTHj6llFIVVu3atbn55pt57rnnPJK4oUOHct1111G9enWysrL4z3/+Y60TOHbsWKtdQUEBxcXFHs85ciRMngzNmoGI4+fkyTp+T9lLEz6llAoxEXlfRA6IyHp/2p85c4Y777yTf//736xdu/a8BEMF3hNPPMGsWbM4evQoS5cuZeLEicTHx5OQkEDXrl2tdp988gl169bllltuYfz48SxevJj8/HxGjoSdO6G42PFTkz1lNz2lq5RSofdf4A3gI38aG2OYOnUqU6dOBRy9UklJSdZM0+7du1OpUqXgRVuBxcbG0qNHD3r06EFaWhoHDhzwSLjXrl3L0aNHmT59OtOnTwegatWq9O7dm+uuu44nn3zSrtCV8qA9fEopFWLGmHTgiL/tq1atyltvvcVdd91FkyZNrATj8ccfp2/fvsTHx3PNNdfwj3/8g59//tlj8oEKrKioKGJifukrmThxorXu3/3330+7du04c+YMc+fOZcaMGVa7oqIixo4dyzfffMPhw4ftCF1VcNrDp5RSYU5EGDNmDGPGjAFg165dpKenW+vNZWZmMnfuXObOnQs4lifp3r271QOYnJxMQkKCnbtQrjVr1oxmzZpx9913A3Dw4EHmz5/v0eu6bt06XnnlFet6+/btSU1Ntd6jJk2ahDxuVbFowqeUUmFIRO4H7gdHibG0tDSP+5s0acJdd93FXXfdRWFhIXl5eeTl5XHy5ElOu00P3bp1K1u3bqVKlSrUqFGDuLg4atSoQWxsbKniycvLOy+GULJ7+6WNoXbt2gBW+/z8fKZMmWK9T8YYAHJycvj888/p0KGDtQB0UVER0dHRl7T9YLE7hoq+/UuhCZ9SSoUhY8xkYDJAmzZtTGlqRp88eZJFixZZ1SaWLFnCuXPnPNo0a9bMqjebkpJCmzZtLrjUSFpamq11q+3efiBjOHfuHMuXL7d6aDds2MC2bdusJC85OZktW7aQnJxsvUddunRh/vz55eY10O2HniZ8SikACgsLyc7OZt++fZw8eZIFCxbQsGFDmjRp4jFmSYW/kjVn3ROM9PR0FixYwK5du9i1axcff/wx4OhFLJlg6PseHJUrVyYpKYmkpCTGjh3rUd+3qKiIPXv2cPDgQb766iu++uorAOLi4nj11Vc5deoUN910k53hqwil/81KVXDGGNavX09WVhbg+MCJiYlh37595ObmsmrVKlq3bk3Hjh2DXnS+ohCRT4F+QF0R2QP8wxjzn2Btr2SC4a3mbG5u7nkJRt++fa0xZq5TkCrw3P+voqOj2bFjB9u2bbPem4yMDLZt28aJEyc86v7Onj2bn3/+mZSUFJKSkjyqiihVkiZ8SlVgxhgWLFjAgQMHKCoqOu9+121ZWVkcP36cpKQkTfoCwBgzws7te6s5u3XrVisBdCUYP/30Ez/99BPgmI369NNPWwmgJhjBIyK0atWKVq1a8Zvf/AaAffv2sWTJEvr27Wu1mzZtGm+99RYvv/wyIkKXLl2s9yclJYXLLrvMrl1QYSjkCZ+IxAPvAR0BA/wW2AxMBS4HdgJ3GGOOXuh58vPz6dGjB1FRUURHR3tc+vXrx9NPPw3A/v37+cMf/mDdV7L9o48+Svv27QH47rvvmD179nnPFx0dTUJCAg899JC1/TfffJP8/HyPNq7n7tGjB506dQIgOzubo0eP8tVXX533nFFRUaSmplqDpzMzM8nLy/O6TzVr1rT+eQsLCzl06JDPfYqNjSUqSlfcURe3fv16n8meu6KiIg4cOMD69eutv21VfogIrVu3pnXr1vz2t78FHAmGewLo+nKwYMECTTBs0LBhQ2rXrk2DBg2s20aMGEHNmjXJyMhg2bJlrF69mtWrV/M///M/9OjRg6VLlwJQXFzMjh07aNGihX5hq8Ds6OGbBPxgjLldRCoB1YAngdnGmJdFZCwwFnj8Qk9SXFzM8uXLvd5Xt25d6/eTJ0/y9ddf+3yekSNHWglfRkYGkyZN8tquRYsWHgnfE088wYkTJ7y2ffnll60PxYULF7Jnzx4effRRr22PHDlizeZ64IEHmDNnjtd2w4YN4/PPPwccSzK0atXK5z7NmjWL6667DoAnn3ySiRMnek1MW7RowZIlS6zHdevWjby8PB5++GEefPBBj7YPPfQQv/71rwHHoNXnnnvOa2IcFRXFhx9+SFxcHADjxo0jMzPTaxLbrVs36zmPHDnCa6+95jOJve2222jqrDy+dOlS1q1bZyXCn3zyidW+Zs2a3HjjjdY+zZ07l+LiYq/736RJE+sD6sSJE+Tk5Pjcp7p161pJtGvwu+t5IjW5LiwsJCsryyPZy8howqefduLw4WokJJxmxIh1pKRkA46kLysri3bt2unYrgqgZM3Z2bNnM336dOsU4/Llyz0SDHDUnHVPADXBCC7X6wxw+vRpli5daiXoffr0sdpt2rSJjh07kpiY6DFRp2PHjhF7/FKlF9KjtojUBFKB0QDGmHwgX0SG4BjPAvAhkMZFEr7KlSuzdOlSioqKzrvUr1/fapeYmMi0adMoKiqiuLj4vLbt2rWz2t5yyy0kJiZa97m3j4+P99j+H//4R06fPu3xXK727j0gjRo1Ii8vjyFDhpy37eLiYo91mq644gqOHz/udZ8SExPdX0fq16/vc5/cP4zz8/PJz8/3+hqW3KesrCzy8vI4e/YsGzZs8LgvNzfX+j0nJ8da78ub999/3/p95syZPqewDx8+3Er4Dh8+zPPPP+/zObt06WIlfJ9//jkTJ04EYMKECR7JdMuWLdm6dat1fciQIZw8edLrc77yyis89thjAMyYMYMRI3yfZTt27Jh1+mrgwIHn7b8rORw+fDgffeQonrBjxw569uxp3Td27FhGjx5tXf/oo4/o3bs3AK+99hoff/yxz8T0ww8/tLY1cuRIzp496zUxHT58OAMGDABg5cqVfPjhhz6T2LvuustjHzIymvDOO1eRn+/4+zl0qDrvvHMVgJX0AR691SUT827dulGnTh3A8cUkNzfX6z5VqVKFyy+/3HrO3NxcRMRrnLGxsV6XqFChFR0dzU033WRNGHAlGK4EcNGiRWRlZZGVlWUdAxITEz3WmtMEI3iqVatGv379vM4gzc7OJiEhwVoCxtV5EB8fT1JSEu+//77H56Yqn0L9Nb0FcBD4QES6ACuAh4EGxpgcAGNMjohc9C9PROjRo8dFNxgXF8ett97qV3Du35Yu5qWXXvKrXXJyMoWFhRfsZXR56623/HrOFi1aeCRgF/Lyyy/zz3/+02sSW/Kb9+rVqyksLGTHjh2sXbvWo33jxo2tdtdccw0///yz18S0uLiYatWqWW0fe+wx7rnnHq9tr7jiCqtdnTp1eOaZZ3wmse6Lkvbs2ZPf/OY3FBUVUadOHUaMGGG1cz/dAdCvXz/y8vK8JubuSXT16tVp3bq1z31yTzhiYmKoVKmSdT9g/V5YWGi1y8/P59ChQx7Xd+3aZV0/e/as9fvu3btZsWKF1/ewdevWHte/+eYbn5UUOnToYCV8mZmZvP76617bAfTv39+jd+/TTztZyd4vMcfw6aedPHr5li5dyoQJE7w+55w5c+jfvz8Ar7/+Oq+++qrXdq1atbImibiu5+XleW07fvx4K6mfOnUq99xzj0dS+Lvf/c7nPqrgKZlgFBQUsHr1amuiwfz588nJyfEoCedKMFxJoJaEC40BAwZw8OBBNm3a5HGafvfu3aSlpVlf0gAeeeQR4uLiSElJoU+fPtbZGhX5JJQzr0TkKmAxkGSMWSIik4ATwJ+MMfFu7Y4aY2p7ebz7QqTdXd9Swl1eXl5E/dNEUrzhEqv7/5F7Il1YWGjdd+bMGapUqWJddx9rWVBQQEFBgXWf+8+oqCiqV69uPefx48etWp4l21erVo2qVasCjoTyxIkTHm3cf69Ro4ZHgnrbbb/CmPNPv4kYpk372mOfXMMZSj5nkyZNrO0fOHDAKiFVMs5KlSp5JLLr16+3ks+Sz9m4cWOr9+HIkSPs2LHDI7569eoxatSoFcaYq84Lvpxo06aN2bx5s60xlHb9seLiYjIzMz1mAmdnZ3u0qVq1Kr169bJOM/bu3dvn/3M4rH9mdwyB3v6uXbvYsmUL119/PeAYrhIfH299GXX12rs6Q66++mrWrFlTrl6DSNs+gIiU6XgX6h6+PcAeY4xr4NiXOMbr5YpIorN3LxE44O3Bl7IQqZ3C4Q+kNCIpXo217BYsWMC+ffus6wkJpzl0qPp57RISTnskhg0bNmTYsGEBjcXf16W4uJiCggKPHtjY2FhGjRoV0HjUpYuKiqJ9+/a0b9+e3//+94AjwXDvYdq0aRNpaWnWsI+SCUZycrLHmGwVWK6ScC4iwqeffmol6KtWrWLZsmUsW7aMV199lXfffdcaP56dnY0xxhpqEwjua4Hm5+dTqVIlXQs0gEL6Chpj9otItoi0McZsBq4FNjovo4CXnT+/CWVcSlVEDRs2JDc31+pZGzFinccYPoBKlQoZMWKddT06OpqGDRuGPFaXqKgoKleubNv23YnIM8BxY8y/7I4lUviqOetKAFeuXOmRYICj5mxKSgo33HAD2dnZWnM2iCpVqsSvfvUrfvWrXwGOSY+LFy+2EsCrr76avXv3Ao5leiZNmkTTpk09xmm2bdu21BN1vK0F6lJyLVBVdnakzH8Cpjhn6G4HfgNEAZ+LyL3AbuCi3Qdnzpyhbdu2Pgek23G7r/vi4+P56KOPbNm2++1RUVE6Y05ZmjRpwqpVq6zrrnF6vmbpuj9OATAUx/FLlVG9evUYOnQoQ4cOBTxLwmVkZLBkyRI2btzIxo0bad26NbfddptVEu5SEgzlnxo1anD99ddbp3wBK+GLioqiVq1a7N69m48//tijYsvo0aMZN26cX9so7VqgquxCnvAZY1YD3s49X1vK58HuMS3+KjmT1E7uSaGvBHHs2LGMGjUqoMlmsG5v0KAB77zzTljFFCmJdUxMDK1bt/ZYmiUlJZuUlGxiYmI8TuOCo3evdevWFeLUiogMAz4GrjDG7HLeNgm4GeiL40tqnjFmpX1Rlj/eSsKtWLGC9PR0atWqRa1atS5YEi4lJYUrr7yyQvyN2u3VV19l/PjxrF+/3mOc5v79+z0mpG3bto0//OEPVi9gz549rXG+UPq1QN0fq0rHr/+Kix38jDH+TRkNoKpVq7Jx40avMyp9zbQM5u0l7zPGUK9ePerVq0eDBg2YNGkSOTk57Nq1i/z8/KBu+0IxFRcXW+OgfCkoKGD37t0hfDfLLpySaXfelhh57rnnuO2222zv6S15adGiBXFxcURH+176xBjDmTNnWLJkCcuWLQubxD+IifWXOJaG+jtwn4g8CozAMeEsV0RGAW8Ea+PKoXLlyvTt25e+ffuSlpbG4cOHrQTDtRzM/v37L1gSrmSCoQInOjqaLl260KVLFx588EGMMWzbts3jWDJv3jxmzZrFrFmzAMdp46uuuorU1FSSk5M5d+6cR7J3sbVAz507R2FhoSb1ZeDvK3bBg1+wgrsQEfFYQy9c+KpLmpiYSOPGjenRo4dtdUmNMX4liBs2bGDHjh0BTTaDlWTXq1eP++67L6xics0yLSws9OglKyoq4siRIyF9z/0hIgwfPpxBgwZhjPH4cDxz5gwiwowZM5g6dWrY1VN1JdaBZowxIvIk8L2IbAOeAq4xxrjWkmkFPBfwDasL8pVglKw5614Szj3B0JJwweUqCedu8ODBfP7559b7s3btWhYuXMjChQu54YYbrAk94Ej2/FkLNDs7m+bNm4dgj8oXvxK+ix38RORbIAVHtYzbgxZtmAv3uqQiQkxMzEW/GW3ZssVjUdxwlpaWxuTJk+0Ow4OrJ7VkIrh8+XIOHjwYsl7m0t6elZVFzZo1qVmzJnXq1OHIkSMcPnyY/fv3Ex8fz+9+97uwSvyLi4utxDpI7+NPIrIM+CdwizFmmdt9T7u31WOgPXzVnHVNBElPT2fdunVWguEqCde5c2ePiQZaEi546taty7Bhw6yZ/ceOHWPBggVkZGTQrFkzj89Kf9YCNcawb98+TfjKwO8+0Qsd/IB/Ae/imGFbYWldUgWep3PdRUdHR8wSE2lpadx+e3jnLe6JdTBm7orINUAXQICLncnQY2CYaNiwIXfccQd33HEH4JlguGrOrlmzhjVr1lgl4Vq1amUlf6mpqVoSLoji4+Otii1z5871WJz+8OFqXh9T8vYLDUlSvvmd8F3o4GeMmSsi/QIaWYQpWZc04b4Eoo6fX0KouFYxh989bPWoaF1SpcrGV2IdoOfuAvwfjlUFbgJeAm701V6PgeHLPcEArLGorgRw4cKFbN26la1bt/LBBx8AWDVnXQmgloQLjpJVVi60Fqi77du3M2HCBOs9uuqqq7Riix/8nbRRqoNfKJw7d47GjRt7Hdw9YMAAaw2nvXv3egyUL9n+xRdfpGvXrgBMmTKFb7/91usg8QYNGvDPf/7T2v7TTz/NuXPnrHYJCQkkJiZaHz7ekr2St7vKmLkqDixcuJDDhw973af69etbYxbPnTvHxo0bfe5TgwYNrHFYp06d8oizZHv9FquUJxFpBswAXjXGvC8iS4G1ItLPGJNmb3TqUlWtWtWjJFxhYSGrV6+2xpi5SsJ5qzl79913s3DhQk0wAqQsa4GKCAsXLuT777/n+++/B6BKlSr07t2blJQUBg4cSJ8+fUK7IxHioglfuB78jDHWekAluZ8mPX36NEuWLPHaDvCY4bl69Wp8lWtr0aKFR8L3+uuvW+WlAP72t7951Jv1h4iwd+9eK+F7+umnmTNnjte2w4YNs2Lbs2cP3bp18/m8s2bN4rrrrgPg2WefZfz48V7bNW/enO3bt1vXGzZsyMmTJ3n++eetJNmVHP7973/nD3/4AwAzZ87kkUce8TmL8scff6RGjRoAPP7446xdu9ZrEtu3b18efvhhwFGG66mnnvKZxN5///3WYOCff/6ZxYsXWzNMJ06caLWvU6eOtagrwKeffkphYaHXhLdDhw7Wcx44cMAjiS7ZvmPHjlYy71oF3ts+ValSxaol7Joko4l15BCROsAPwHRjzHMAxpj1IvIFji+6+klSzsTExHDVVVdx1VVX8cgjj2CMITMz00oAXTVnv//+e/r378+IESM8SsJpzdmyK+taoE899RT9+/e33p+NGzeS5qzYcuDAASvhO3jwIAsWLNCKLU4XTPjC+eBXuXJlsrOzvQ7udiUbAI0bN2bhwoU+B4N36dLFanv33XfTvXt3r4PES/4zP//885w5c8a6v6yL0bqP9+vduzfVqlXzuk/t27e32sXGxtKlSxef++RKOMDxzSc+Pt7rPpU8FXby5Eny8vK8ziY9deqU9fuxY8fIzMz0uU/uMzmXLFnCvHnzvLYTESvhO3bsGO+9957P5xwwYICVnP3www9MnDgROH9ZllatWnkkfL///e85efKk1+d85ZVXeOyxxwCYM2cOI0aM8Ln9Y8eOWTP77r77bubOneu13fDhw/nss88A2Lp1K1dccYW1r+PHj+fGG2+0ksPp06dz9dVXA46/p7fffttrYtq8eXNmzJhhbePaa6/lzJkzXhPT3/3ud9bYuwULFjBp0iSfSexrr71m9QS//fbbbN++3SMZfvbZZ4mOjqZjx47WyvvHjh3zWES8ZNJ7/fXXWwPg169fby3RULJ9XFwcPXr0sPZpzZo1GGO8xpmQkGC99ufOnSMvL8+jTWxsrM/3rbSMMUeA86b/G2OGB2wjZVBYWEj//v2tiQYXqjmrLo1rBYh27dpZM0h3795NRkYGRUVFtGvXTkvCBciF1gL1Jjo6msqVK9O8eXOaN2/OyJEjATh06JA1Uce1hiPAjz/+yD333ANAu3btrFP0KSkpAS0JFykumPCF68EPHP+U/vSoVa1a1e/uXdd0f3889NBDHtdL1iX1V5UqVazfX3jhBb8e07RpU1avXu1X2+eee47nnvO+ekTJJTb2799PUVERy5Yts2aTuhLEmjVrWu0GDRrEhg0bfM6krF79lzEY48aN4/Dhw17buifJ9evX55133vGZxLpP9b/22mupXLkyRUVFNGjQgEceecRql5CQ4LFPd955J6dPn/Y629PVswqOmWSp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8ApAU2SllFJKBYWI0KZNG9q0acN9990HOErCZWRkUFRUdNFTuSUZY9i3bx/NmzcPRrjlmvbwKaWUUipkGjduzIgRI2jUqFGZHn/u3DlrMojynyZ8SimllAq5SpUqlelxmZmZNG3alJEjR/L222+zYcMGiouLAxxd+aMJn1JKKaVCrmHDhkRHR5fqMSLC6tWr2bNnD5988gl/+MMf6NixI/Xq1WPIkCF8+umnQYo28mnCp5RSSqmQa9Kkicf14lree+lK3v7GG2+wdu1a/v3vf3PnnXfSqFEjjhw5wrfffsvy5cutdjt27ODZZ59l7ty5nD59OvA7EGF00oZSSimlQi4mJobWrVuTlZVFUVERh989fMH20dHRVK5cmUqVKp1Xc3bnzp1kZGR4VOP46aefeOaZZwCIjY2le/fupKSkkJKSQlJSEnXq1Anm7oUdTfiUUkopZYuOHTty/Pjxiy6+HB0dTf369SksLDzvPhGhefPm583cvfLKK60FotesWcPixYtZvHgx48ePp0aNGhw9etQ6pXzkyJFynwBqwqeUUkopW4gISUlJPmvpxsTEYIyxaunOmzfP7+fu1asXvXr1AuD48eMsWrSIjIwM0tPTiY+Pt5K9/Px8GjduTGJiotUDmJKSQuvWrX2WhItEmvAppZRSyjYiQqdOnWjXrh3Z2dns27ePgoICYmNjadiwIU2aNLnkyhq1atViwIABDBgwAMBjWZft27cTExPD9u3b2b59Ox9++CEADRo0IDk5mWeffZYOHTpc0vbDgSZ8SimllLJdTEyM11OzweDec9e2bVuOHDnC2rVrycjIsC65ublMmzaNF1980Wp76NAhXnrpJVJSUujRoweVK1cOeqyBogmfUkoppSq0mJgYunXrRrdu3Xj44YcxxrBlyxYWLVpE69atrXYHDx7kySefBKBy5cr07NmTlJQUUlNT6dOnDzVr1rRrFy4qrJZlEZEBIrJZRLaKyFi741FKqUATkfEikikia0XkKxGJtzsmpZQnV0m40aNHe/QGXnbZZdbaf+fOnSMjI4MXX3yRAQMG8Pe//91qd+LECQ4cOGBH6D6FTcInItHAv4GBQHtghIi0tzcqpZQKuFlAR2NMZ2AL8ITN8Sil/FS7dm3efPNN1q1bx6FDh/jmm2949NFH6dWrF/3797faffnllzRo0IC2bdty33338dFH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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–2\n", "\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "Xs = np.array([[1, 50], [5, 20], [3, 80], [5, 60]]).astype(np.float64)\n", "ys = np.array([0, 0, 1, 1])\n", "svm_clf = SVC(kernel=\"linear\", C=100).fit(Xs, ys)\n", "\n", "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(Xs)\n", "svm_clf_scaled = SVC(kernel=\"linear\", C=100).fit(X_scaled, ys)\n", "\n", "plt.figure(figsize=(9, 2.7))\n", "plt.subplot(121)\n", "plt.plot(Xs[:, 0][ys==1], Xs[:, 1][ys==1], \"bo\")\n", "plt.plot(Xs[:, 0][ys==0], Xs[:, 1][ys==0], \"ms\")\n", "plot_svc_decision_boundary(svm_clf, 0, 6)\n", "plt.xlabel(\"$x_0$\")\n", "plt.ylabel(\"$x_1$    \", rotation=0)\n", "plt.title(\"Unscaled\")\n", "plt.axis([0, 6, 0, 90])\n", "plt.grid()\n", "\n", "plt.subplot(122)\n", "plt.plot(X_scaled[:, 0][ys==1], X_scaled[:, 1][ys==1], \"bo\")\n", "plt.plot(X_scaled[:, 0][ys==0], X_scaled[:, 1][ys==0], \"ms\")\n", "plot_svc_decision_boundary(svm_clf_scaled, -2, 2)\n", "plt.xlabel(\"$x'_0$\")\n", "plt.ylabel(\"$x'_1$ \", rotation=0)\n", "plt.title(\"Scaled\")\n", "plt.axis([-2, 2, -2, 2])\n", "plt.grid()\n", "\n", "save_fig(\"sensitivity_to_feature_scales_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Soft Margin Classification" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAACyCAYAAABMWnkMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAABkTklEQVR4nO3dd1hURxfA4d+AFBF7lKKIvbdYosaKvdfYJVGjxhI/jTFRY4pJLNHEErvR2I1GjTF2YwF7770hijS70dgQ5vtjYQMI7C7SOe/z3Efu3dnZmQWOw92ZM0prjRBCCCGEEOmFVXI3QAghhBBCiKQkA2AhhBBCCJGuyABYCCGEEEKkKzIAFkIIIYQQ6YoMgIUQQgghRLoiA2AhhBBCCJGuJNkAWCnlppTyUkpdUEqdU0oNiqGMUkpNVUpdVUqdVkpVSKr2CSGEEEKI9CFDEr7WK+BTrfVxpVRm4JhSapvW+nykMk2AIuFHFWBW+L9CCCGEEEIkiCS7A6y1DtRaHw//+jFwAcgTrVgrYLE2OAhkU0q5JFUbhRBCCCFE2pcsc4CVUvmBt4FD0R7KA/hFOr/F64NkIYQQQggh4i0pp0AAoJRyBP4ABmut/4n+cAxPeW2vZqVUH6APgL29fcV8+fIleDtTkrCwMKys0v56xfTQT+lj2pHU/bx8+fJdrXWu+D4/cty0s7Or6OTkRIYMGbC2tkapmEJvzLTWaK2Nfdda8+zZM6ysrOJVX2JJDz+H6aGPkD76KX1MHHHGzYhglhQHYANsBYbE8vgcoHOk80uAS1x1Fi1aVKd1Xl5eyd2EJJEe+il9TDuSup/AUZ1AsThv3rwaw80FbW1trZs1a6ZXrFihnz59anG71q9fr3PkyGGsz8rKSjdo0EAvWbJEP3ny5I37HV/p4ecwPfRR6/TRT+lj4ogrbiZlFggF/Apc0FpPiqXYOuD98GwQVYFHWuvApGqjEEKkBw4ODvz+++80b94cpRQbN26kU6dOODs78+GHH+Lt7U1YWJhZdTVv3pzAwED+/PNP2rRpg7W1Ndu2bcPT05OCBQsSEhKSyL0RQgjLJeW96OqAJ1BXKXUy/GiqlOqrlOobXmYT4ANcBeYC/ZOwfUIIkW506NCB9evXExAQwNSpU6lUqRL//PMP8+fPx8PDgwIFCjBy5EguXrxosi5bW1tat27NmjVrCAoKYtasWbz77rs0bNgQGxsbAF68eMEXX3zBmTNnErtrQghhUlJmgdirtVZa67Ja6/Lhxyat9Wyt9ezwMlprPUBrXUhrXUZrfTSp2ieEEOlRrly5GDhwIEeOHOHChQt88cUX5MuXj5s3bzJ27FhKlChB5cqVmTZtGnfu3DFZX44cOejbty/79u1j/vz5xusbN25k3LhxlC1blvLlyzNx4kQCA+UDPiFE8kjbM66FEEKYrXjx4owZM4br16/j5eVFz549yZw5M0ePHuV///sfrq6utGjRgpUrV/L8+XOT9UXc/QUoVqwYffv2JXv27Jw6dYqhQ4eSN29eGjVqxNKlS82eciGEEAlBBsBCCCGisLKyok6dOvz6668EBwezYsUKmjZtitaaDRs20LFjR5ycnOjduze7d+82a/BaqlQpZs2aRWBgIH/88QetW7fG2tqav//+m3HjxkXJHCGDYSFEYpMBsBBCpDPPnz/n+++/5/r16ybLZsyYkY4dO7Jx40b8/f2ZMmUKFStW5J9//mHevHnUrl2bggUL8uWXX3Lp0iWT9dnZ2dG2bVv+/PNPAgMDmTFjBl988YVxAHzt2jXc3d0ZNmwYZ8+efeO+CiFETGQALNI9X19flFIcPXo0xnMh0pqwsDC+/vprChYsSM2aNfnll1948OCByec5OTkxaNAgjh49yrlz5xg+fDhubm7cuHGDMWPGULx4capUqcL06dO5e/euyfpy5sxJ//796dq1q/Ha2rVruXXrFhMmTKBMmTJUqFCByZMnExQU9EZ9FkKIyGQALFIFf39/+vTpQ968ebG1tSVPnjz07t2bW7duWVRPnTp1+Pjjj+Ms4+bmRmBgIOXLl3+DFovUwNkZlHr9cHZO7pYlLjs7O7p27YqDgwN79+7lo48+wtnZmffee49//om+P1HMSpYsybhx4/D19WXnzp306NEDR0dHDh8+zMCBA3FxcaFly5asXr3arPnCEYYMGcKePXvo06cP2bJl48SJEwwZMoQ8efLQtm3biBzxQohkklbipgyARYp3/fp1KlWqxNmzZ1m0aBFXr15l6dKlnDt3jsqVK+Pr65ugr2dtbY2zszMZMsR/o8SXL18mYItEYgkOtux6WmFtbc3SpUsJCgpi0aJF1KtXj5CQEM6cOUPmzJmN5c6fP29ywGllZYWHhwfz588nODiY3377jSZNmqC1Zv369bRv3x5nZ2f69OnDnj17TNanlKJGjRrMmTOHwMBAVq9eTatWrbC2tsbW1tY4VeLly5fs3LlT5gsLkcTSStyUAbBI8QYMGICVlRXbt2+nXr165MuXDw8PD7Zv346VlRUDBgwAYr672717d5o3b278eteuXcyYMQOlFEqpGAfPMU2BOH/+PM2aNSNz5szkzp2bzp07R/lINuJ1xo8fT968ecmbN28ivBNCJKzMmTPz/vvvs337dm7evMnChQuNA8wbN25QqlQpihcvbvZ8YQcHBzp37symTZvw9/dn8uTJvP322zx69Ii5c+dSq1YtChUqxNdff82VK1dM1mdvb0+7du1Yu3YtAQEBjBs3zvjY5s2bqVevHu7u7gwfPpxz587F/40QQqQ7MgAWKdr9+/fZsmULAwYMwMHBIcpjDg4O9O/fn82bN5s1f/Hnn3+mWrVq9OjRg8DAQAIDA3FzczP5vMDAQGrVqkXp0qU5fPgw27dv58mTJ7Rs2TLK3addu3Zx+vRptmzZwo4dOyzvrBDJKG/evFSrVs14fvXqVZydnbl8+bJxvnCtWrWYO3cuDx8+NFmfk5MTgwcP5vjx45w9e5Zhw4aRN29erl+/zvfff0/RokWpWrUqM2fO5N69eybre+uttyhQoIDx/Pnz5+TPn59bt24xfvx4SpcuTYUKFZgyZQrBqe1WlBAiyckAWKRoV65cQWtNiRIlYny8ZMmSaK3NupuUNWtWbG1tcXBwwNnZGWdnZ6ytrU0+b9asWZQrV47x48dTokQJypYty+LFizly5EiUu8T29vbMnz+f0qVLU6ZMGfM7KUQKVK9ePfz8/Ni8eTNdunQhY8aMxrm57u7uPHv2zOy6SpUqxQ8//ICvry/bt2/ngw8+wNHRkUOHDjFgwABcXFxo3bo1f/zxBy9evDCrzo4dO3Lt2jV2795N7969yZo1KydOnOCTTz6hXr168e22ECKdkAGwSBUi5wiNLGI+YWyPJ4Rjx46xe/duHB0djUfEneNr164Zy5UuXRo7O7tEa4cQSS1Dhgw0btyYZcuWERwczMKFC6lbty4NGzYkY8aMALx69Yphw4Zx5MgRk/N7ra2tqVevHgsXLiQoKIhly5bRuHFjQkND+euvv3jvvfdwdnY27iRnzvzjiCwWQUFBrFy5khYtWvD+++8by/j6+tKzZ0+8vb1lvrAQwkgGwCJFK1KkCEqpWOf3XbhwAaUUhQoVwsrK6rX/MENCQt64DWFhYTRr1oyTJ09GOa5cuWKcXwyQKVOmN34tkbScnCy7Hnn1s4dHnVS7+jk+MmfOzAcffMCOHTtYsWKF8fq2bduYMGEC77zzDiVKlGDMmDHcuHHDZH2ZMmWiS5cubN68mVu3bjFx4kTKly/Pw4cPmTNnDjVq1KBw4cJ88803XL161WR99vb2tG/fnnXr1vH5558bry9dupQFCxbg4eFBgQIF+OKLL7hw4UL83gQhhEVxMyXHTBkAixQtR44cNGrUiJkzZ/L06dMojz19+pQZM2bQpEkTcuTIQa5cuQgMDIxS5tSpU1HObW1tCQ0NtagNFSpU4Ny5c7i7u1O4cOEoR+QV8yL1CQoCrV8/Yks5m1ZWP7+pyFOHChcuzODBg8mdOzeXLl3iyy+/JH/+/Mad5F69emWyPhcXF4YMGcKJEyc4ffo0n332Ga6urvj4+PDdd99RpEgR3n33XWbNmsX9+/ctamvHjh0ZOXIk7u7u3Lx5k3HjxlGyZEkqV67MnDlzLO67EOmdJXEzJcdMGQCLFG/69Om8evWK+vXrs3PnTvz8/PD29qZBgwZorZk+fToAdevWZfPmzaxbt45Lly4xZMgQ/Pz8otSVP39+Dh8+jK+vL3fv3jXrI9EBAwbw6NEjOnbsyKFDh/Dx8WH79u306dOHx48fJ0qfhUgtihQpwuTJk/H392fTpk106tQJe3t7du3axbhx46IMls35fStTpgwTJkzg5s2bbNu2jffff59MmTJx4MAB+vfvj7OzM23atOHPP/80a75wkSJFGD16ND4+Pnh7e/Phhx+SJUsWjh49yvbt243lXr16ZdG8ZiFE6iYDYJHiFSpUiKNHj1KqVCk8PT0pWLAgXbp0oUSJEhw5csS4Mrxnz57Go3r16jg6OtKmTZsodQ0dOhRbW1tKlixJrly5uHnzpsnXd3V1Zd++fVhZWdG4cWNKlSrFgAEDsLOzkzm/QoTLkCEDTZo0Yfny5QQHBzN//ny++eYb4/z8W7du4erqatxJzpz5wvXr12fRokUEBwezZMkSGjZsSGhoKGvXrqVt27a4uLjQr18/9u/fb9Z84dq1azNv3jyCgoL4/fff+fTTT42Pb9myBWdnZz788EN27dol84WFSOu01qn6KFq0qE7rvLy8krsJSSI99FP6mLrF/MGf4Uj81+aoTsVxc/bs2RowHsWLF9djxozRN27csKgef39//dNPP+myZctGqa9QoUJ61KhR+urVq1pry38Ohw8fHqW+fPny6S+++EJfuHDBonqSUlr+XYssPfQzrfYxOWOm4fVjj5tyB1gIIUSi69OnD0ePHmXQoEHkzp2bixcvGufmNmzY0Ow7rq6urnz66aecOnWKU6dOMXToUFxcXLh27RqjRo2icOHCVK9enTt37lg0X3jcuHFcuHCBL774Ajc3N27evMnYsWMpUaIEnTp1im+3hRAplAyAhRDCTJZmjRD/UUpRsWJFpkyZwq1bt9iwYQMdO3bE3t4eBwcHrKwM/x2FhoayefNmszK4lC1blh9//BE/Pz/+/vtvunXrhoODA/v37+fmzZu4uLgYd5IzZ3vy4sWLM2bMGHx9ffHy8qJnz55kzpyZkiVLGssEBASwatUqnj9/Hv83Q4h0IiXHTBkACyFSpcjpdSIfMaXXsaRsXCKvfvby8kZrQyAPDn7zutMTGxsbmjVrxooVKwgKCmLKlCnGx3bs2EHTpk3JmzcvgwcP5tixY2bNF27QoAFLliwhODiYxYsXkyVLFkJCQlizZg1t2rTBxcWFAQMGcPDgQbPmC0dksQgKCmLQoEHGxxYvXkyHDh1wdnamd+/e7N69W+YLi1QjqeNmTDEz4tcvIWLym5ABsBBJ6NKlS9SsWdOsnetE3CxJr5OYqXhScpqf1CBr1qzkz5/feP78+XOKFSvG7du3+fnnn6lUqRKlS5fmhx9+eC2rS0wcHR3x9PSkSJEi+Pn5MWHCBMqUKcP9+/eZOXMm1apVo1ixYnz33Xf4+PiYrM/BwYGsWbMaz93d3alYsSKPHj1i3rx51K5dm0KFCvHVV19x+fLleL0HQiQViZv/kQGwEEnkzp07DBs2jH379lGhQgU2bNiQ3E0SIsVp2bIlFy5c4PDhwwwcOJC33nqL8+fPM2LECGrXrm3y7m1kefLk4bPPPuP06dOcPHmSTz/9FGdnZ65cucI333xDoUKFjDvJPXjwwKw6O3fuzNGjRzl37hzDhw/Hzc0NX19fRo8ezfDhw+PbbSFEEpMBsBBJICQkhGbNmvHkyRO01jx58oQOHTrw9ddfy8enQkSjlKJy5cpMnTqVgIAA1q9fT4cOHejZs6cxrVpAQIBxJzlzNtsoV64cP/30E35+fmzZsoWuXbvi4ODA3r17+eijj3B2dua9995j3bp1Zs0XLlmyJOPGjcPX15edO3fSo0cPevXqZXx827ZttGzZktWrV8t8YSFSILMGwEope6XUMKXU30qpk0qp05GPxG6kEKnd+PHjOX36dJRd6J49e8bEiRNp3Lgx//zzTzK2ToiUy8bGhubNm/P777/z5ZdfGq//9ttvLF++3Dhf+JNPPuH48eMm7xBnyJCBRo0asXTpUoKCgli0aBH169cnJCSEP/74g1atWuHq6srHH3/MoUOHzJov7OHhwfz582natKnx+qJFi1i/fj3t27fH2dmZPn36sGfPHovuYAshEo+5d4BnAsMBX2At8Ee0wySl1Hyl1G2l1NlYHq+jlHoUPsA+qZT62sy2CZHitW3blhw5cpAhQ4Yo158+fcru3bspXbo0ly5dSqbWCZH6dOjQgdGjR1O0aFGCg4OZMmUKFStWpHTp0kycONGsOjJnzsz777/Ptm3buHnzJuPHj6d06dLcu3ePGTNmULVqVYoXL87o0aPx9fW1qH0TJ05k8uTJVKhQgUePHjF37lxq1apFwYIFjbtXCiGSj7kD4NZAe611H631KK31t5EPM+tYCDQ2UWaP1rp8+PGdmfUKkeKVLFmSc+fOUbJkSRwcHKI89uLFC27dukXFihX566+/Xnuu1potW7ZEuXuc2iVUVobYRK83NlaxREBr65jbF2lXX6OUnOYnLcuXLx8jR47k4sWLHDp0iI8//tg4X9jb29tYLjQ01Kwty/Pmzcvnn3/O6dOnOXHiBJ988glOTk5cvnyZr776igIFClCrVi3mzp3Lw4cPTdbn5ORkzGJx9uxZhg0bRt68efH19eXOnTvGco8ePeLevXvxeQtEOpLYMRPSX9w0dwD8FDC9/DYOWuvdgPlZyYVIY7Jnz86kSZPo37//a4NgrTX//vsvnTt3ZuTIkVHmBc+YMYMmTZqwdu3aJG5x4kkJK4ABYpt+bcn1yGl+Ih9BQQnXThE7pRTvvPMO06ZNIyAggHXr1jFixAjj497e3jg5OdG1a1e2bNlicr6wUory5cszadIkbt26xebNm+nSpQsZM2Zkz5499OnTB2dnZzp06MD69evNyldcqlQpfvjhB3x9fdmxY0eUucK//PILLi4utG7dmjVr1vDixYv4vxkizUopMRPSTtw0dwA8ARiilErsRXPVlFKnlFKblVKlEvm1hEhy1tbW/PjjjyxatOi1QTAY5gVPmTKFhg0b8ujRI/bu3cvnn38OwFdffSXzB4WIg42NDS1atODdd981Xjt48CDPnj3jt99+o0mTJri5uRl3kjMlQ4YMNG7cmGXLlhEcHMyCBQuoW7cuL1++ZNWqVbRs2RJXV1cGDhzIkSNHzMpXXLduXdzc3IzXbt68SWhoKH/99Rft2rXDxcWFvn37sm/fPvl9FyIRqdh+wZRS66JdqgU8As4DUf7k1Vq3NOvFlMoPbNBal47hsSxAmNb6iVKqKfCz1rpILPX0AfoA5MqVq+LKlSvNeflU68mTJzg6OiZ3MxJdeuhn5D5ev36dzz//nEePHr12F8nGxoasWbPy/Plznjx5AoC9vT3jxo2jfPnySd1si5jzffTwqBPrY15e3ma9Tlx1WCKm14ur7ojySf3z6uHhcUxrXSm+z0/PcfPly5fcu3ePe/fuRbnDmjVrVgoXLmxx3SEhIcb6Imd4sLe3J2fOnOTIkQNbW1uL6rt//z7379/n6dOnxutvvfUW7u7usT4vPcRMSB/9NNVHD486sT5mbsw0VY8l4hM3k+P7GGfc1FrHeAALzD1iqyOGOvMDZ80s6wu8Zapc0aJFdVrn5eWV3E1IEumhn9H7+ODBA+3h4aEdHBw0EOVQSmlra+so12rWrJk8DbeAOd/HmD/8MhzmiqsOS474ti+pf16Bo9rMWGvqSK9xMywsTB84cED3799f58iRQ48YMcL4WHBwsF60aJF+/Pix2a8RFhamjx07pgcPHqxz584d5Xe1Vq1aeu7cufrhw4cWtfv06dP6s88+066urnrVqlXG64cOHdIzZ87U9+7di7OPaVF66KepPiZEzDRVT2LHzeT4PsYVNxMkmJp7xDUABpz57470O8DNiPO4jvQayNOi9NDPmPoYGhqqhw0bFuMgOPqRMWNGferUqaRvuAVkAJw4ZABsGVPfnxcvXuhHjx4ZzydPnqwB7eDgoLt166a3bt2qX716ZfbrhYSE6E2bNulOnTppe3t74++svb297tChg16/fr1++fKl2fW9evVKh4SEGM89PT01oG1sbHSbNm30mjVr9M6dO82uLzVLr/83RCYD4PiJK26amwd4p1IqWwzXsyildppZx3LgAFBMKXVLKfWhUqqvUqpveJH3gLNKqVPAVKBTeOOFSNOsrKz44YcfWLp0KZkyZTIm+o/Jixcv+PZbcxOvJI6EWI1syQrg2FYWJxRL6o5t9bNIfWxtbcmSJYvxPH/+/FSvXp2nT5+ydOlSGjVqhJubG0OHDuX0adPp7jNkyECTJk1Yvnw5wcHBzJ8/Hw8PD54/f87KlStp0aIFefLkYdCgQRw9ehRT/71ZW1tHSZvYsmVLGjZsSGhoKH/++Sdt27bl1KlT9OvXj2PHjsX/jRCJLqljJkjcNIe5zaoDxDShyR6oaU4FWuvOWmsXrbWN1jqv1vpXrfVsrfXs8Mena61Laa3Laa2raq33m9k2IdKENm3aMGvWrNdyBUcWFhbGpk2buHHjRhK2LKqEWI1syQrguDbKi6mOhBJT3WkoE52IpnXr1uzdu5dr167x7bffUrhwYQIDA5k4caLFWxxnyZKFHj16sHPnTm7cuMHYsWMpUaIEd+7cYerUqVSuXJmSJUsyduxYbt68aVad7733Hlu3buXWrVv89NNPlCtXjtDQUGbPns2ff/5pLCf3jVKepI6ZYFncTEipKW7GOQBWSlVQSlUIPy0bcR5+VMawoMI/0VspRDoQGBjIoEGDTKZVCg0NZdy4cUnUKiHSl4IFC/L1119z+fJl9u/fT79+/ejTp4/x8d27d9OwYUOWLFliXKAal3z58jFixAjOnTvH0aNHGTRoELly5eLixYuMHDkSd3d3405y5uwI6eLiwqeffsrJkycpWbIkQ4cO5f333zc+PmXKFGrUqMGcOXN48OBB/N4EIdIBU3eAjwJHMMxl+jv8POI4BIwAZMMKId7Qy5cvadKkiVkJ+0NCQli8eLEkzxciESmlqFatGjNnzqR169bG60uWLGHbtm28//77ODs7G3eSM7VRjVKKihUrMmXKFPz9/dmwYQMdO3bE3t4eb29vPvzwQ5ycnOjUqRObNm0yma8YIGPGjPz4448ULVrUeG316tXs27ePvn374uzsTLt27fjrr794+fJlvN8LIdIiUwPgAkAhQGFYmFYg0pEHyKK1np+oLRQiHdi9ezenTp3CwcEhzikQEbTWTJ06NQlaJoSIbPz48cyaNYtq1arx77//smTJEho2bEi+fPn48ccfzarDxsaGZs2asWLFCoKCgpg3bx61a9fm+fPn/P777zRr1ow8efIYd5KzZFrD1q1bWbx4MfXr1yckJIQ1a9bQunVrXF1dmTNnTny7LUSaE+cAWGt9Q2vtq7W20lofDT+POAK11il0ZocQqUv9+vV5+PAha9as4ZtvvsHDw4OsWbOSMWNGMmfO/NrCuOfPnzN58uQoOUOFEIkvR44c9O3bl/3793PlyhW++eYbChYsSEBAQJQtjv/55x8CAwNN1pc1a1Y+/PBDvL298fX1ZcyYMRQvXpzbt2/z888/U6lSJeNOcn5+pjdkdXR0xNPTk23btuHn58eECRMoU6YM9+7dI1u2bMZy165dw8fHJ17vgRBpQmzpIYD3zT1iqyMpDknnk3akh35a0sewsDB98+ZNvWrVKj148GBdvnx5bWdnpx0dHbWDg4O2trbW06ZN00FBS/X+/e7ay0vp/fvddVDQ0hjrc3KKOT2Nk5NlfYitnrR0mPOeSBq0lC0pvz9hYWF63759+vr168Zr06ZN01ZWVrpRo0Z66dKl+smTJxbVd/jwYT1w4ED91ltvafgvN7iHh4eeP3++fvTokUV9PHnypH769KnxvHv37hrQNWrU0HPmzNH37983u66klpz/NyRE3EwPMdOc9ySlpUGL67PWGdHObQEbIGJtoRWGHeFeAIvfeCQuhIhCKYWbmxtubm689957ALx69Yrz589z+PBhvLy8ePDgEJcurSEszHAn+MWLG1y6ZFiw4+TUNUp9CbWXfEyrjhMyvU5i0jq5WyDSIqVUlO2XAQICArC2tmbr1q1s3boVR0dH2rZti6enJx4eHlhbW8dZX+XKlalcuTITJ040TmtYt24dXl5eeHl5MWDAAGbMmMGzZ89o0KCByalT5cqVi3KeMWNGHBwc2Lt3L3v37mXgwIG0aNGC999/n8aNG1u0k11allAZHGKSGuJmWo6ZsU6B0FpnjjiATsBpDCnP7Pkv/dlJoEsStFMIgSHXaNmyZenVqxfLli2jfv09xsFvhLCwp/j4jEymFgohAMaOHUtgYCAzZ86kWrVqPHnyhMWLF9OgQQO6detmdj02NjY0b96clStXEhQUxNy5c6lVqxbPnj3j/v37NG3alLx58/LJJ59w4sQJtJkjlpkzZxIUFMSiRYuM84X/+OMPWrVqxejRo+PbbSFSDXPzAP8E/E9rvU9r/Sr82AcMBiYmWuuEEHF68SLmHKKxXRdCJJ2cOXPSr18/9u/fz+XLl/n6668pUKAATZs2NZY5fvw4kyZNIii224SRZMuWjV69erFr1y6uX7+Oq6srRYsWJTg4mClTplChQgXKlCnD+PHjuXXrlsn6MmfObMxicfPmTcaPH0/p0qXp2LGjsczy5csZPXo0vr6+8XoPhEipzB0A5wf+jeH6UyBfgrVGCGERO7uYf/1iuy6ESB5FihTh22+/5dq1a3Tu3Nl4ffbs2Xz66afkyZOHJk2a8Ntvv5m1uDV//vy4uLhw8eJFDh06xMcff0zOnDk5d+4cw4cPJ1++fNSvX59FixaZlV4xb968fP7555w5c4ZSpUoZr0+aNImvvvqKAgUKUKtWLebNm8fDhw/j9R4IkZKYOwA+BExVSuWJuBD+9WTgYGI0TAhhWsGCY7CycohyzcrKgYIFxyRTi4QQcVFKRZmv26pVK1q1aoWVlRVbtmyha9euODk50aNHD/bt22dWfe+88w7Tpk0jICCAv/76i/feew8bGxt27NhB9+7dcXJyomvXrmzZssWs/MIRtNZ8//33dO7cmYwZM7Jnzx569+6Ns7MzHTp04OBB+e9fpF7mDoA/BHICvkopX6WUL+AL5AZ6J07ThBCmODl1pVixX7CzcwcUdnbuFCv2y2sL4AxlY6sjcduYWGLbXz6266m1nyJta9asGWvXriUwMJDp06dTpUoVnjx5wsKFC1mzZo2xXFhce9uGs7W1pWXLlqxatYrg4GB++eUXatSowbNnz/jtt99o0qQJbm5uxp3kTM0XVkrRuHFjfvvtN4KCgliwYAF169bl5cuXrFq1imvXrhnLPn361Oz5x6lJeombMUmtfTSXWW+F1voaUBZoBkzCcOe3KVBGa3018ZonhDDFyakr1ar5UqdOGNWq+cY4+AXL95KPjbOzYfVy5CP2tsX8mnH9p2Ju2Vy5Yq47NDTmOoKDX2+3s7NlfRcisbz11lsMGDCAgwcPcunSJb788kt69OhhfHz27NnGneSCzUhBkC1bNnr37s2ePXvw8fHhu+++o0iRIgQFBTFp0iTefvttypYty48//oi/v7/J+rJkyUL37t3ZsWMHN27c4IcffoiyQ96gQYMoUaIEY8aM4caNG/F6D1KihIibMcVMpeL+Y/1NYmZ84mZMB8Tc7jQTN2PLj5ZaDslnmXakh36mhT5amhvS0jrepGx82hxfkgc4ZUsLv2uRNWjQQIMhH7C1tbVu2rSpXrNmTZTcvqaEhYXpAwcO6P79++scOXIY61NK6fr16+tFixbpx48fW9y20NBQXbRoUWN9gK5Vq5aeO3eufvjwocX1RZfav5fxyalrSR2WvmZCtDs+Uloe4FjvACulhiil7CN9HeuR6KN0kfi8vQ1/2i1cGPe1uHTvnjoSGwohRCqzbt06Vq5cSYsWLVBKsWnTJnx8fHBycmLSpElm1aGUomrVqsyYMYPAwEDWrl1Lu3btsLGxYfv27XzwwQc4OTnh6enJ33//TWioeZu9WllZce7cOTZt2kSnTp2wt7dn9+7dxvnCS5Yssbi/r1694vr16+zbt4/Hjx+zb98+rl+/btEcZiHiEtcUiIFApkhfx3Z8nJgNTFIRA76ffkrulqRfCxdaNugWQoh0wN7envbt27Nu3ToCAgKYNm0amTJl4vHjx+TIkcNYzsfHhwsXLpisz9bWllatWrF69WqCgoKYPXs21atX5+nTpyxdupRGjRrh5ubG0KFDOX36tMn6MmTIQJMmTVi+fDnBwcHMnz8fDw8Pnj9/Tvny5Y3l9uzZw7FjxzDcnHud1pozZ86wbt06Tpw4QUBAAK9evSIgIIATJ06wbt06zpw5E+vzhTBXXBthFNBa34v0dWxHwaRrrkg0tWrBs2fg6ZncLRFCCBGHXLly8fHHH1O8eHEuXrxo3CkS4Mcff6RkyZJUqlSJqVOncvv2bZP1Zc+enY8++oi9e/dy9epVRo0aRaFChQgMDGTixImUK1eOcuXK8dNPPxEQEGCyvixZstCjRw927tyJv78/ZcqUMT42dOhQKlWqRKlSpRg3bhw3b/6Xs1xrzb59+7hy5QqhoaGv3YGOuHblyhX27dsng2DxRsxaBKeUin3PRpE2WFmBvT3EsT2nEEKIlKVYsWI4OjoazzNnzkyWLFk4duwYgwYNwtXV1biT3LNnz0zWV6hQIb755huuXLnC/v376devH9mzZ+f06dN89tlnuLm50bBhQ5YuXcq//8a0PUBUrq6uxq9fvXpF1apVyZUrFxcuXOCLL74gf/78eHh4sGDBAo4dO8bt27dNTr0IDQ3l9u3bnD171uTrCxEbcxNiPFJKbVVKjVBKVUs3A2JfX8PH8aNGwcqVUL48ZMwIhQvDggWGMjdvwnvvQY4ckDkzdOsG0ZOOR8yNvXMH3n8fcuaETJmgXj04ceL11331CsaPh5Ilwd6e6q1aQZs2cObM62UXL4Z33oFs2Qx1FiwIXbsaXivCuXPQvj3kyQN2doYlnB4esHHjf2VMzfedNg2KFjUMkosWNZybKzAQ+vWDfPnA1hZcXaFPHzDjzkRaEHkFsIdHnVSzkja2lcuWsDSFUEzXEyINUVpLZSREbCZMmEBQUBC///47zZs3B2Djxo107NiRr776yux6lFJUq1aNmTNnEhgYyJo1a2jTpg3W1tZs27YNT09PnJycjDvJmTNfOEOGDPz888/4+/uzfv16OnTogK2tLd7e3vTt2xcfHx9jPb17t6BDh/Z06NCetm3bGL/u3bsFgPFOcEqbE2xJlpzYJEQclLhpWgbTRQBoA9TGkAZtFPBSKbUf8Aa8tdYHEqV1KcWGDTB7NvTvbxjo/vor9OxpGMx98QXUrQtjx8KRIzB/vmGQOG/e6/U0bmx4/qhRhhwq06cbph4cOAClS/9XrmtXw4C7QQPo14+AQ4dw37ABqlWDPXvg7bcN5ZYuhQ8+gJo14bvvDIPzmzdh82bD4DJXLrh3z9A+gL59wd0d7t6Fo0fh0CFo1sx0/6dNM7T3o48Mg/zly+F//4P79+Gbb+J+7s2bhna/fAkffgiFCsHVqzBrFnh5GdqRNatZ34bUKraMRWZkMkpW8Wmf1uDt7U2dOnXiLGdJCiFL07QlVh1CpBYZM2akQ4cOdOjQgdu3b7NixQqWLFkSZQe6VatWcfLkSTw9PSlevHic9dnZ2dGmTRvatGnD/fv3WblyJUuWLGH//v0sWbKEJUuW4OrqSteuXfH09Iwy5SEmNjY2NG/enObNm/Po0SNWr17NyZMnyZAhg3EA/OiRfYzPjX7dz8+PAgUKmPO2JAlL42bELA5TcdPSGCZx0wyxpYeI7QAyAvWBBUAIEGppHQl5JGg6Hy8vQ36PH380nF+/bjh3cNDa1/e/crdva21np7VSWk+cGLWONm20trHROnIqmQ8+MNTTpo3WYWH/XT961FBHo0b/Xfv7b0PZDh2MZb28vLQ+dUpra2uta9SI+lqZM2sdEhJ7n/76y1Df77+b1/cFC16/5uiotZ/ff9dfvNC6cmWtM2SIej2in5G1bKl1rlxRy2mt9ZEjhv58802kl/PSeuFCQx0LF8bd3lQkMVJwJYX4pu5J7SmLzCVp0FK29PBz+CZ9rFGjhjFlWeXKlfXUqVP17du3LarjypUr+ptvvtEFCxaMkgKtXLly+qefftIBAQFm17V37169cuVK4xFXnIlcbu/evbHWGRISon18fPTevXv1zp079d69e7WPj48Oiev/zDcU33Rn8vOaOOKKm2bvCaKUclJKdcSwEcYMoBOwD/gu4YbjKVTr1oY7pxFy5YJixQzzZgcMiFq2Zk0ICTFMn4ju88+jfh5SsaLhLu/27fDkieHan38a/h05MmrZsmWheXPYu/e/6Q1Zs8LTp4apDLEtBoi4u7p5M/zzj7k9jqprV8ib979zW1v45BPDVI3162N/3qNHhrvnLVsa7orfvfvfkT+/YSrJ339HfU7GjFH/FUIIkeBGjx5Nz549yZw5M0eOHOF///sfrq6utGjRAm9vb7PqKFy4MKNGjeLq1avs27ePvn37kj17dk6dOsXQoUPJmzcvjRs3ZtmyZSbnC798+TJe/QgJCXntmo4hk8Tdu3clk4SIwtxFcOcAH6AvEAR8BGTTWtfRWn+biO1LGQrGkOgie3ZwcTHMqY1+HQxTD6IrUeL1ayVLGrauitg55/p1w8A6prIR0ySuXzf8+8UXhoF569aGQXm7doapF5HnINeubZh3vHAhvPUWVK9umLZw/nxcPTav3QA+PrE/79IlCAszTBnJlev149Kl1z8vihiwZ8lifvuEEEJYpHbt2vz6668EBwezYsUKmjZtitaaDRs2RNni+MmTJya3YVZK8e677zJr1iwCAwP5448/aN26NdbW1mzdupVu3brh7Oxs3EkupvnCtra28erHq1evoswD1pJJQpjJ3DvAWYFQ4CnwL/AYiN+fa6lRbJkR4sqYYO4vVfRylvwyFiliGMhu3GiYC3zjBvTuDcWLQ6QAxqJFhgV0o0cbFuBNnGi4ozx9unmvE9MsfnPaGVGmWzfYti3mY/HiqM+RAbAQQiSZjBkz0rFjRzZu3Ii/vz9TpkyJklZtxIgRFCxYkC+//JJLly6ZrM/Ozo62bdvy559/EhgYyMyZM6latSpPnjxh0aJF1K9fH3d3d4YNGxYli4OrqyvWFmYhsra25vfffydv3rwMGTKEEydOcObMGckkIcxi1gBYa50XqAD8CZQH1gL3lVLrlFKfmFOHUmq+Uuq2UirGnzZlMFUpdVUpdVopVcGsHqQmMSUnv3DBMJCOmGJRqJDhrmlMZSPu2kae8G9nB02bGga1R48aBsMBARB9Z6DSpQ1TMNatg1u3DK8zfLh5A9mY7hZHtC+mu+MRChc2DJ5fvoT69WM+qleP+pyqVQ1tevdd0+1KJRJiJa21dcwZGeL628zc8pbuUx/bdXg900Vs7UjpGTCESI+cnJwYNGgQWcNvRGit2b9/Pzdu3GDMmDEUL16cKlWqMH36dO7evWuyvpw5c9KvXz8OHDjA5cuX+frrrylQoAD+/v5MmDCBMmXKUKFCBSZPnvzaHeCsWZ/HWGf06wcPHiQ4OJjJkydTtWpVzpw5Yxz8duz4njF7ROSjY0fDAD9yJglLY6ylcTMmVlYxZwiSuJk0zP5Waa2vaq3nAR8AHTAMgpsA5m6bthBoHMfjTYAi4UcfYJa5bUs1JkyIOuA8ftww/7dePYjI49i6teHfceOilj171jB4rVHDMH0ADHNpo6sQ/nfD/fv//Rv946ts2QyD6KdP4XnMQSaKZcsMg+YIL1/C5MmG39LwNDsxypnTMDhfswYOHnz9ca2jpmsDw7zhixcN/6YRQUH/LXnw8vI2fm3JCtvYPoFMiOuxrVoOC4t52UZo6OvXLG13Ss+AIYQwTG04cuQIO3fupEePHmTOnJnDhw8zcOBAXFxcmDNnjtl1FSlShG+//ZZr166xZ88e+vTpQ7Zs2Thx4gRDhgzB3d2d48ePG6ckzJ27npUrV7Fy5SrWrPnT+PXcuYZ1J9bW1hQpUoTTp09z8OBBBgwYQMOGDaPc+dU65hxk0a/7+flZHEstjZsxHQn1miJ+zEqDppSqDHiEH9UBO+AEMBHwMqcOrfVupVT+OIq0AhaHr9o7qJTKppRy0VoHmlN/qnDjBjRqZFgUFhhomIKQMSP8+ON/ZRo0gA4dYMUKePAAmjenwKFDhsVk9vYwdep/ZRs2NEwZqFUL3Nzg4cP/thKO2NFt8WLDYLVNG8MdWRsb2LULtm41vI45i82KFoUqVQxp1DJnht9+M6R8++orw+vGZdYsw6C9Vi3DXOS33zb8dvv4wF9/Ga6NGvVf+T//hB49DHmWu3c3730VQgiRKKysrPDw8MDDw4Pp06fz119/sWTJErZu3Rpli+O9e/cCUL16dVQcyW+VUtSoUYMaNWrw888/s3HjRhYvXsymTZsYO3Ysn332GWXKlMEu+vqaSKytrcmdOzelS5dGKUWVKlWoUqUKe/bsIcjC3F2hoaHhu9ulnFRqImmYmwd4H3AM2AX8DOzRWpveAsYyeQC/SOe3wq+9NgBWSvXBcJeYXLlymb1i1ZRsJ09SHrh27Rp+3t7YBwVRFfD19cU32muUf/gQ++fPORjtuvPFixQHTp48ycPwa8WDgnAG9n31FYVmziTnyJFYvXjBPyVLcu2jj3hy/75hI4qI/vXpQ95s2XDesoWMO3fiYmfH3XLluN6zJ/8+emQs61K3Lrm8vXGcNo0Mjx8TkiULT4oUwW/iRB46OIC3N46OjuQtXpysq1Zhe/8+2sqK587OBPXrh3/r1ujwuiL6fvHiRYKiX2vQAOt//yXPnDnY377N89y58R8wAP+6daO0O6Kf0b8fNlOn4rZ8OW9t3Yr94sWE2dryPHduHr79NgH58/M0vPyTJ0+4GP7+RW5HWvLkyZN4/rzWifWRmOuzpLyldcck9jrevO6UKf7fy+SRWHEzpUpt35/4SI4+uri48PnnnzNkyBCePXtmfP3Lly/z+PFjTp48SY4cOciZM2ecg9gIOXPm5JNPPmHgwIE8ePCAe/fuERISgoODgyFVlZUVSikyZMhgHFjb2dnx6tUrdu3aFaWux48fkyGDecOayOUePHgQZ9k3j7Gxib2ON6875Ulpv5PKnBWQSqlMCTHgDb8DvEFrXTqGxzYC47TWe8PPdwCfa62PxVVnsWLFtDkT85NV9+6GhWjxXG1qzsYCaUF66Gd8+xjXbkIx/VhZUt7SumMSn92OUvvi66T+eVVKHdNaV0qIulJF3HxDEk+STlhYGCNHjmTJkiX4+/sbr1etWhVPT086duxIzpw5za7v8uXLLF26lAsXLpA/f34qVKjA8ePHuXv3LuXLl6dTp044xbCIYt++feF3cw06dGgf62usXLnK+HXOnDmpV69urGXfNMbGJr3FzeT4eY0rbpq7CC6h7/bG5BYQ+fP0vEBALGWFEEIIkQJYWVkxbtw4bty4wfbt2/nggw9wdHQ0zs39448/LKqvaNGifPfdd/z++++0bNmSly9fMnfuXBYuXMjgwYPJkycPTZs2ZcWKFTx79sz4vPhkknj27FmcUzZE2mXBesVEtw54PzwbRFXgUZqa/yvEG7A0I4Ml1xNzz/jY2pFW9pIXQvzH2tqaevXqsXDhQoKCgli2bBnNmjWjffv/7sSOGjWKvn37mpWD18rKipo1a+Lu7k5QUBArV66kRYsWKKXYvHkznTt3xsnJiZ49e+Ll5UWePHmiPF+pmOuPfN3W1pYaNWpYHEslbqZ+5s4BfmNKqeUYJry8pZS6BXwD2ABorWcDm4CmwFUM+YZ7JFXbhEjpTKS0fKPyCb1nfEr5WFYIkXwyZcpEly5d6NKli/Haq1evmDVrFrdv32bOnDkULFiQbt264enpSeHCheOsz97envbt29O+fXvu3LnD77//zuLFizly5AgLFixgwYIF5MuXj6FDh+Li4oLWmt9/Xx1nndbW1hQvXhwbGxtCQyEwMJA8efIYB+aurq506dKF06c9KVu2bJTnStxM/ZLsDrDWurPW2kVrbaO1zqu1/lVrPTt88BuxI/YArXUhrXUZrfXRpGpbolu4MHVP3BFCCCHeUIYMGdixYweff/45rq6u+Pj48N1331GkSBHeffdddu/ebVY9uXLl4uOPP+bw4cNcuHCBkSNH4u7uzs2bNxk0aBBHjhwxubVy5EwSEVxcXLhy5QqjRo2iUKFCBAQE8NNPP1GuXDnKlSvHmTNn3qj/ImVJSVMghBBCCJGGlS5dmvHjx3Pz5k22bdvG+++/T6ZMmThw4AA2NjbGcn5+frx48cJkfcWLF2fUqFHs3LmTtWvXMmvWLKytrTlz5gzPnz+PMkcYDIPwiBzCMaVsK1SoEN988w1Xrlxh//799O3bl+zZs3Pp0iXcIqX9PHr0KP/+mxTLo0RiiXUKhFJqiLmVaK0nmS4lhBBCCGG4A1u/fn3q16/PzJkz2bRpE1WrVjU+3r17d06cOEHHjh1p3rw5WuvXBqtaa86ePcuVK1cAQ07fHDlykCNHDrTWvHr1yrgznIODAy9fvsTGxgYPDw9KlSplMl9xtWrVqFatGlOmTOHkyZNky5YNgJCQEJo2bcrTp09p27Ytnp6e1K1b1+IFeCJ5xTUHeKCZdWhABsBCCCGEsFimTJmiLJR78eIF9+/f58GDB8yePZvChQszePBgunXrRrdu3ShUqBBaa/bt28ft27ej7P4WQSmFjY0NlSpV4unTp0ybNo0jR44A8N133+Hu7k7Xrl3x9PSkePHicbbPzs6OKlWqGM+DgoIoUqQI+/fvZ8mSJSxZsgRXV1djfWXKlEmgd0YkplinQGitC5h5FEzKBgshhBAi7bKzs+PEiROcOnWKoUOHYmNjw9WrVxk1ahSFCxdm1apVnD17NtbBb2RhYWFkypSJX3/9lfPnzzNixAjc3Ny4ceMGY8eOpUSJErzzzjtMmzaNO3fumNU+Nzc39u3bx5UrV/jmm28oWLAgAQEB/Pjjj5QtW5YTJ04kxNsgEpnMARZCCCFEilO2bFnjoPLvv/+mW7duZM+endq1a3PlypUog187uz3kyNGft97qSI4c/bGz22N8LDQ0lCtXrlCkSBHGjh2Lr68vXl5e9OzZk8yZM3PkyBH+97//4erqSosWLVi1ahXPnz832b7ChQszatQorl69yt69e/noo4+oUqVKlC2ihw8fzrJly2S+cApkdho0pVQOoDGQD7CN/JjW+rsEbpcQQgghBAANGjSgQYMGvHz5Mspuc2AY/GbOPAelDJkfrK3vkjnzHABevKhpLOfn50eBAgWwsrKiTp061KlTh2nTprFu3TqWLFnC1q1b2bBhAxs2bCBr1qy0b98eT0/P8DzBsd8vVEpRvXp1qlevHmWu8s2bNxk/fjwAjo6OtGvXDk9PT+rUqSPzhVMAs+4Ah29McQX4Cfge6AmMBIYC7yVa64QQQgghwtna2hIQEBDl7m+mTMuNg98ISr0kU6blxvPQ0NAo2yRHcHBwoFOnTmzcuBF/f3+mTJlChQoVePToEfPmzaN27doUKlSIr776isuXL5tsX+SFddmyZWPGjBlUrVqVJ0+esGjRIurXr4+7uzvDhw83e8qFSBzmToH4EVgG5AGeA3Ux3Ak+CoxPnKYJIYQQQkQVPcevldW9GMtFvx4SEhJnvU5OTgwaNIhjx45x7tw5hg8fTt68efH19WX06NEUK1aMKlWqMH36dO7evWuynVmyZKF///4cOHCAS5cu8dVXX1GgQAH8/f2ZPHlylLvApnbFEwnP3AFwWWC6NnyHQgE7rXUwMAwYlUhtE0IIIYSIwtY2yixMwsJyxlgu+vWTJ0+ybt06k5tkAJQsWZJx48Zx48YNdu7cSffu3XF0dOTw4cMMHDgQFxcXWrVqxerVq82aL1y0aFG+++47rl27xp49e5gyZQo5cuQAMKZra9q0KcuXL+fp06cm6xNvztwBcOSflmDAPfzrJ4BrgrZICCGEECIWrq6uUe6e/vtvZ7S25dkz8PU1XNPaln//7Wws8+zZM9atW0erVq1wdXU17iRn6s6rlZUVHh4eLFiwgODgYH777TeaNGlCWFgY69ato3379ri4uPDRRx+xd+9ek/UppahRowb9+vUzXjt16hSvXr1i8+bNdOnSBWdnZ3r06MHOnTsJCwuz/A0SZjF3AHwcqBz+tTcwWin1ATAVOJ0I7RJCCCGEeE3kHdnAsNDt8eOPmDfPno8/hn//zcnjxx9FWQCXKVMmmjRpQqlSpbh37x4zZsygSpUqFC9e3Jgf2BQHBwc6d+7Mpk2b8Pf3Z9KkSbz99ts8fPiQX375hZo1a1KoUCG+/vpr4+Yc5qhYsSJly5Zl+vTpVKlShcePH7Nw4ULq1auHu7s7fn5+ZtclzGfuAHgkEDF7/EvgDjANyA58lAjtEkIIIYR4TYYMGShSpEiUu8B37pRjw4YwXr60YfnyxlEGv9bW1hQtWpTPPvuMM2fOcPz4cT755BOcnJzw8fEhf/78xrKHDx/m4cOHJtvg7OzMJ598wvHjxzl79izDhg0jT548XL9+ne+//56iRYtSrVo1Zs6cyb17Mc9Rjt6nAQMGcPDgQS5dusSXX35J/vz5sbW1JW/evMZyq1evJjg42Lw3SsTJrAGw1vqo1tor/Os7WusmWussWutKWmu5AyyEEEKIJFO6dGly585tHASvWbOGsLAwQkJC+PPPP3nx4gVgGPzmzp2b0qVLA4YpCG+//TaTJk3i1q1bHDhwgFy5cgGGTBFt27bF2dmZ9u3bs379epML5wBKlSrFDz/8wI0bN9i+fTsffPABjo6OHDx4kAEDBuDi4kLr1q1Zs2aNsV1xKVq0KN9//z3Xrl1j165dxswS/v7+dOjQgTx58tCsWTNWrFjBs2fP4vX+CfPToO1USmWL4XoWpdTOBG+VEEIIIUQsInLvFilShCdPnrB9+3ZevXoFGAay27Ztw9ramiJFilC9evUo6ckiZMiQgUqVKhnP7969S7FixXj58iWrV6+mZcuWuLq6MnDgQLPmC1tbW1OvXj0WLlxIUFAQS5cupVGjRoSGhvLXX3/Rrl07XFxc6Nu3L/v27TNr/nHku7+PHz+mefPmKKXYtGkTnTt3xsnJiQ8//BBvb2+ZL2whc6dA1CHa5hfh7IGaMVwXQgghhEg0SinKlCnz2tbDL1684M8//6R+/fqUKVMmxsFvTJycnNixYwc3btzghx9+oFSpUty9e9c4N3f//v1mty1Tpkx07dqVLVu2cOvWLSZOnEj58uV58OABc+bMoUaNGlF2kjNH8eLFWbduHQEBAUydOpXKlSvz+PFj5s+fT4MGDbh//77Z7RMmBsBKqQpKqQrhp2UjzsOPykAfwD+OKoQQQgghEsWdO3eYN2/ea6nNQkNDmTNnTrzqdHNzY9iwYcb5woMHD6Zy5cpUq1bNWOaLL77g119/5dGjRybrc3FxYciQIZw4cYLTp0/z2Wef4erqio+PD99++y1FihTh4sWLzJo1y6xBbK5cuYx3pS9cuMDIkSPp3bs3b731lrHvzZo1Y+rUqdy+fTte70F6YOoO8FHgCKCBv8PPI45DwAhAtkFOB4KDl3HgQH68va04cCA/wcHLkrtJQgiRokncTHxjxoyJ8aP/p0+fMmbMmDfKqRsxX3jy5MkcPnzYuB1yUFAQ48ePp1evXjg7O9OxY0c2btxo1nzhMmXKMGHCBG7evMm2bdvw9PQkU6ZM/Pvvv/Tv3x9nZ2fatm0bZR5zXIoXL87o0aOZOXOm8drOnTvZtGkTgwYNwtXVlebNm7Ny5UqZLxyNqQFwAaAQoIB3ws8jjjxAFq31/ERtoUh2wcHLuHSpDy9e3AA0L17c4NKlPhLMhRAiFhI3E9+dO3f45ZdfYh0ohoSEMGPGjAR/3cyZMzNv3jzq1KnD8+fPWblyJc2bNydPnjwMGjQoxi2Xo7O2tqZ+/fosXryY4OBgChQoQMOGDQkNDeXPP/+kbdu2uLi40K9fPw4cOGDRTnE1atTg999/p3nz5gBs3LiRjh074uzsTK9evfjnn3/i3fe0JM4BsNb6htbaV2ttFZ4J4kakI1BrHRrX80Xa4OMzkrCwqH9Fh4U9xcdnZDK1SAghUjaJm4kvtru/ERLiLnBMMmXKRI8ePfDy8uLGjRuMHTuWEiVKcOfOHWbMmGG8Uwzw77//mlVfjhw52Lp1K35+fvz000+ULVuWBw8eMHv2bN59912KFi3Kt99+y7Vr10zWlzFjRjp06MD69esJCAjg559/plKlSvzzzz9s374dR0dHY9lbt27F701IA8xdBIdSqolSaoNS6rxSyi38Wi+lVL3Ea55ICV68uGnRdSGESO8kbiYuU3d/IyTWXeAI+fLlY8SIEZw7d44jR44wffp0nJ2dAQgLC6NUqVJ4eHgwf/58s+68urq68umnn3Lq1ClOnTrF0KFDcXFx4erVq4waNYrChQtTo0YN5syZw4MHD0zWlzt3bv73v/9x5MgRzp8/z9y5c40D9MDAQNzd3XnnnXeYNm0ad+7cebM3I5UxNw1aV2AlcAXD9Aeb8Iesgc8Tp2kipbCzy2fRdSGESO8kbiYuU3d/IyTWXeDolFJUqlSJvn37Gq9dvHiR4OBgvL29+fDDD3FycjLuJBeRsi0uZcuW5ccff8TPz4+///6bbt264eDgwL59++jbty/Ozs60a9eOtWvXvrYIMCYlSpSgQYMGxvPTp0+TKVMmjhw5wv/+9z9cXV1p2bIlq1at4vnz5/F7I1IRc+8Afw701lp/AkT+rh0Eyid0o0TKUrDgGKysHKJcs7JyoGDBMcnUIiGESNkkbiaeO3fuMHPmTLMWiYFhGkJi3gWOTcmSJQkKCmLevHnUrl2b58+fs2LFCpo1a0aePHnMTn9mbW1NgwYNWLJkCcHBwSxevJgGDRoQEhLCmjVraNOmDa6ursad5MydL9yoUSOCgoJYvnw5TZo0QWvN+vXr6dChA25ubon+R0NyM3cAXAQ4EMP1J0AWc19MKdVYKXVJKXVVKTU8hsfrKKUeKaVOhh9fm1u3SDxOTl0pVuwX7OzcAYWdnTvFiv2Ck1PX5G6aEEKkSBI3E8+LFy9o3bo1rVq1olWrVlSpUiXKvFaAHDlyGB9v1qwZuXPnTpa2Zs2a1bhRha+vL2PGjKF48eLY2NhQoEABY7kHDx7g5+dnsj5HR0c8PT35+++/8fPzY8KECZQpU4Z79+4xc+ZMqlWrRrFixfj++++5fv26yfocHBzo1KkTmzZtwt/fn8mTJ1OhQgWqVKmCg4PhD7iwsDDGjRvH5cuX4/9GpERaa5MHcBVoEP71Y6Bg+Nc9gLNm1mENXAMKYthU4xRQMlqZOsAGc+qLOIoWLarTOi8vr+RuQqyCgpbq/fvdtZeX0vv3u+ugoKXxrisl9zOhSB/TjqTuJ3BUWxAb4zokbiYfiZmWM9XP9evX66xZs2oMKVs1oGvUqJE0jYuHsLAwHRAQYDy/ffu2njhxolZK6bp16+oFCxbof/75x6I6T548qT/99FPt7Oz82vswZ84cff/+fYvq+/fff41f79ixw1hflSpV9PTp0/WdO3csqk/r5Pl5jStumnsH+BdgqlKqevi5m1LqA2ACMMvMOt4BrmqtfbTWL4EVQCsznytSIEnzI4QQ5pOYKcAwX9jFxcV4/vjxY7Jly4atrS07d+6kR48eODk50aVLFzZv3mzWfOFy5crx008/4efnx5YtW+jatSsODg7s3buXjz76CGdnZ9q3b8+6devMmi8ccfcXDAvpunfvjqOjI4cOHeLjjz/GxcWFVq1asXr1akJDU2dCMLMGwFrrCcAaYBuQCfACZgOztdbmTqzJA0S+v38r/Fp01ZRSp5RSm5VSpcysWyQDSfMjhBDmk5gpYlKwYEEKFixIUFAQc+fOpWbNmjx79ozly5fTvHlzi3Zzy5AhA40aNWLp0qUEBQWxcOFC6tWrR0hICKtXr6ZVq1a4urry8ccfc/jwYbPmC5cuXZoFCxYQHBzMb7/9RpMmTQgLC2PdunUMGTIkylbT5tSXUihLGquUcgBKYhg4n9daP7Hgue2BRlrrXuHnnsA7WuuBkcpkAcK01k+UUk2Bn7XWRWKoqw+GbZjJlStXxZUrV5rdh9ToyZMnr81vShnqYvhUJDoF7LS4tpTbz4QjfUw7krqfHh4ex7TWleL7fImbKYHEzPgw1c8DBw4wZsyYKDl3y5Qpw9SpU5OieQkieh9fvnzJvXv3CAkJIV++/zKHXL16FUdHR3LmzImNjU1MVcUoJCSE+/fvc+/evSg7wtnb25MjRw5y5syJra2t2fW9evWK+/fvo5QiV65cxmuXLl0ie/bs5MyZEzs7uzj7mBTijJuxzY0IHxg7ADMAf+A28BvwVlzPiaOuasDWSOcjgBEmnuNr6vVkLlvyMcxj47Vj/373eNWXUvuZkKSPaYfMAU7ZUuLPocTM+Elrc4BjYs73cs+ePcb+KaV0vXr19MKFCy2aLxwWFqaPHz+uP/nkE+3k5BTlPatZs6b+5Zdf9IMHD+LVh1mzZkWpr2rVqnrmzJn67t27ZvcxocUVN01NgfgW6A5sxDBntwHmz/mN7ghQRClVQCllC3QC1kUuoJRyVuH30pVS72C403wvnq8nEpmk+RFCCPNJzBRvokqVKqxbt4733nsPW1tbduzYQffu3XFycqJr167cu2d6uKSU4u2332bSpEncunWLzZs307lzZzJmzMiePXvo06cPzs7Oxp3kQkJCzG5f79692b59Ox988AGOjo4cPHiQ/v374+LiQvv27d+k64nC1AC4LfCh1rqP1vp/QDOgtVLK2tIX0lq/Aj4GtgIXgJVa63NKqb5KqYjM0e8BZ5VSp4CpQKfwEbx4A8HByzhwID/e3lYcOJA/zgUXJ0/Wx9tbGY+TJ+vHWoeTU1ecnT/AkOADwBpn5w9iTfNjSTuEECK5WBqrzI2bgEUxMz5tEWmXjY0NLVq0YNWqVQQFBfHLL78Y5wt7eXmRNWtWY9kbN26YrC9Dhgw0btyY3377jaCgIBYsWEDdunV5+fIlq1atomXLlri6ujJw4ECOHDlicn6vtbU19erVY+HChQQFBbF06VIaNWpEaGgoT578N2M2LCzMonzFiSWDicfdgD0RJ1rrw0qpV4ArURe0mUVrvQnYFO3a7EhfTwemW1qviF3EquOIhRcRq46B14LuyZP1efhwR5RrDx/u4NChUrx44ftaHY8e7SMoaBEQsQI0lKCgRWTNWv21ui1phxBCJBdLY5UlcfPixZ7h/+mbjpnxaYtIP7Jly0bv3r3p3bs3169f5+rVq2TIYBjS3bt3jyJFilC8eHE8PT3p0qULefLElHPgP1myZKF79+50794dPz8/li1bxpIlSzh//jzTp09n+vTpFCtWDE9PT7p164a7u3uc9WXKlImuXbvStWtXAgMDefjwIcHBwQDs2bOHOnXqUKhQIbp164anpyeFChVKmDfGAqbuAFsD0fNlvML0wFmkEJasOo4exCM8e3Y+xjoCAn4xu25Z/SyESA0sjVWWxE1DBtCoHynHVbfETWGOAgUKRNni+Pz582TOnJkzZ87w+eef4+bmZtxJLvKd2Ni4ubkxfPhwzp49y7Fjxxg8eDC5c+fm0qVLfPnll+TPn586derw66+/8ujRI5P1ubi4UKJECeP53bt3cXV15dq1a3z77bcULlyYd999l9mzZ3P//v34vQnxYGoArIClSql1EQdgD8yNdk2kUC9e3LToumVizv0XU92J2w4hhEgYyRGrLH1NiZsiLjVr1iQwMJC1a9fSrl07bGxs2L59O++//z6urq5mDVrBMF+4QoUKTJ48GX9/fzZu3EinTp2wt7dn165d9OrVC2dnZzp27MiGDRvMni/crl07bt68ybZt2/D09CRTpkwcOHCAfv36UalSpSSbGmFqALwICMCwEC3iWIph+kPkayKFsrPLZ9F1y8Q8FTymuhO3HUIIkTCSI1ZZ+poSN4Uptra2xo0qgoKCmD17NtWrV+edd94xzhXWWjN69GhOnz5tsr4MGTLQtGlTli9fTnBwMPPnz6dOnTo8f/6clStX0qJFC/LkycOgQYM4evSoWfOF69evz+LFiwkODmbJkiU0bNiQjh07GvMK3717l/79+3PgwIFEGRTHOQDWWvcw50jwVokEY8mq42zZ6sVYR8aMJWOsw9W1j9l1y+pnIURqYGmssiRuGhIgRc3dGlfdEjfNFxYWltxNSLGyZ8/ORx99xN69e9mwYYPx+oEDB/jqq68oV66ccSe5gIAAk/VlyZKFHj164OXlxY0bNxg7diwlSpTgzp07TJ06lcqVK1OyZEnGjRvHzZumP63IlCkT3bp1Y+vWrYwdO9Z4fcWKFcyaNYt3332XokWL8u233+Lj4xO/NyEG5m6FLFIpJ6euZMlSLcq1LFmqERi44LVVy+XLbydjxpJRymbMWJIqVc5RrNgv2Nm5Awo7O3eKFfuFokVnmr2i2cmpa4x1yEIOIURKElvMdHLqGmO2B0viZvHi83F17YW5WSAkbprHxcUFe3t7smfPbjxKly6d3M1Kkezt7Y1f58qVi379+pE9e3ZOnz7NZ599hpubGw0bNmTJkiVmbZmcL18+RowYwblz5zhy5Aj/+9//yJUrFxcvXuSLL77A3d0dDw8P5s+fb9YfKZF3latfvz5Dhw7FxcWFq1evMmrUKAoVKkSNGjWYN29e/N6AyK+V3Gko3lSxYsX0pUuXkrsZicrb25s6derE67mXL/cnIMC81M0ZM5aMsmoZDHcbYgu40Vcomypvypv0M7WQPqYdSd1PpdQb7QQXmcTN2MUWM21sXAkJef3umCVxU2Jm/KSHfiZnH1+8eMGmTZtYsmSJcS5v7ty58ff3N2aW0FpHGZzGJSQkhL///pslS5awdu1aXrx4AcDEiRM5cuQInp6eNGzY0Fi3KaGhoezcuZPFixezZs0anj59Sv369dm2bZuxbSEhITHuZBdX3JQ7wGlcQMAvZpeNLduDrFAWQqQXscXMmAa/YFnclJgpUiI7OzvatGnDmjVrCAoKYtasWXz99dfGAeqDBw8oXLgww4YN4+zZsybrs7GxoVmzZqxYsYLg4GDmzZtH7dq10VqzYsUKmjVrRp48eRg8eDDHjx83a75wRBaL4OBgFi9ezLBhw4yP79+/H1dXVwYMGGBRfmEZAKd5MWdqsISsUBZCpB9vHjNBsuGI1ClHjhz07duXAQMGGK+tX78eHx8fJkyYQJkyZYw7yQUFBZmsL2vWrHz44Yd4e3tTpkwZRo8eTbFixbh9+zY///wzFStWpHTp0vzwww/4+ZneXsLR0RFPT0/q169vvPb3339z7949Zs6cSbVq1ShWrBjff/89169fj7MuGQCneRZv2vcaWaEshEg/3jxmgmTDEWmHp6cne/fu5aOPPiJbtmycPHmSTz/9lDx58tC0aVOz05/Z2toycuRILly4wOHDhxk4cCBvvfUW58+fZ8SIEbi7u1O3bl0WLlzI48ePzW7fqFGjOHHiBEOGDMHZ2ZkrV67w9ddfU7BgwTifJwPgNM7VtY/ZZWPL9iArlIUQ6UVsMdPGxjXG65bETYmZIjVSSlG9enVmz55NUFAQq1evplWrVlhbW/P06VNsbAyZTbTW7N69m9DQuD9FUUpRuXJlpk6dSkBAAOvWraN9+/bY2tri5eVFjx49cHJyokuXLmzevJlXr16ZrK98+fJMnDgRPz8/Nm/eTJcuXahatWqcz5MBcAoWsQc81DVrD/jLl/vj7Z0hfIVyBi5f7k/RojOxssoWpVz08whVqpwjLCz6LkUhODl1Zd++PFFWP+/blwcnp64W7Wsve9oLIRLbm8ZNeD1GWlllo3p1/xifb0ncvHr1c4tiZuT+SNy0jK+vL0opjh49GuO5iB87OzvatWvH2rVrCQwMZNas/xaMHj58mNq1a+Pu7m7RfOEWLVqwcuVKgoKCmDt3LjVr1uTZs2csX76cpk2bkjdvXoYMGcKJEydMzu/NkCEDjRs3ZtmyZezbty/OsjIATqEiVgu/eHED0MY94GMLfv+tXP5vj/mAgFns3p2dsLCHUcpGP4/g7a2Ivk0nhODtrV5bABISEsDu3dkJClpE9H3tY2qjpf0RQghLJVTcjClmGuLj6yyNm9FfL7aYGZ/+pDb+/v706dOHvHnzYmtrS548eejduze3bt2yqJ46derw8ccfx1nGzc2NwMBAypcv/wYtFpHlzJkzyhbH9+7do0CBAvj7+xvnC0fsJGfOfOFs2bLRq1cvdu/ejY+PD99//z1FixYlODiYyZMnU6FCBcqUKcP48ePN+hmxsop7iCsD4BTK0tXCsa1cjm2wmxDCwh7K6mchRIqRUHEzKaXXTDvXr1+nUqVKnD17lkWLFnH16lWWLl3KuXPnqFy5Mr6+vgn6etbW1jg7O5udeism5uTFTc+aNm3KtWvX2LNnD3369CFbtmzGublvv/22RXUVKFCAL7/8kosXL3Lw4EEGDBhAzpw5OXfuHMOHDydfvnzUr1+fRYsWWTRfODIZAKdQlq8WTpiVywlBVj8LIZJDao2b6THTzoABA7CysmL79u3Uq1ePfPny4eHhwfbt27GysjJmIahTpw4///xzlOd2796d5s2bG7/etWsXM2bMQCmFUirGwXNMUyDOnz9Ps2bNyJw5M7lz56Zz585R7lRGvM748ePJmzcvefPmTYR3Im1RSlGjRg3mzJlDYGAgq1evpmXLlnTp0sVY5tGjR/Tq1QsvLy+Tm2MopahSpQrTp08nICCAv/76i/feew8bGxt27NhB9+7dcXZ2Nu4kZ2q+cGQyAE6hLF8tnDArlxOCrH4WQiSH1Bo301umnfv377NlyxYGDBiAg0PURYEODg7079+fzZs38+DBA5N1/fzzz1SrVo0ePXoQGBhIYGAgbm5uJp8XGBhIrVq1KF26NIcPH2b79u08efKEli1bRhmU7dq1i9OnT7NlyxZ27NhheWfTMXt7e9q1a8dff/3FTz/9ZLy+evVqfv31V+rWrUv+/PkZMWIE58+fN1mfra0tLVu2ZNWqVQQFBTFnzhxq1KjB06dPWbZsGY0bN8bNzY1PP/2UU6dOmaxPBsAplKWrhWNbuRzbgreEYGWVTVY/CyFSjISKm0kpPWbauXLlClrrKPNHIytZsiRaa65cuWKyrqxZs2Jra4uDgwPOzs44OztjbW36D5tZs2ZRrlw5xo8fT4kSJShbtiyLFy/myJEjUe4S29vbM3/+fEqXLk2ZMmXM76SIIvIuch4eHnz55Zfkz58fPz8/fvjhB0qVKkXFihWZOnWqWRtZZM+enT59+rBnzx6uXbvGt99+S+HChQkKCmLSpEmUL1+esmXLxlmHDIBTKEv3gC9adCaurv2IvLrY1bUftWo9iHGferCJVoMNdepoIGO06xmpU0e/lgLIxsaVWrUemN1G2dNeCJHYEipuxhQzDfHxzeNmiRJLzW5fWo+bsW2tGzEAMnfr3fg4duwYu3fvxtHR0XhE3Dm+du2asVzp0qWxs7NLtHakRwULFuT777/n2rVr7N69m169epE1a1aOHz/OqlWrjN93rTXPnj0zq76vv/6ay5cvc+DAAfr370+OHDk4c+ZMnM+L/2xwkeicnLri5NQVb29vqlWrY7weHLwMH5+RvHhxEzu7fBQsOAYnp64ULTqTokVnvlZPlSrnXrtmWP38C4Y5cNa4uvYCwNW1e7Tr3QFiTQEU0UZL+iOEEIkloeJmTFxdeyVY3LS0P2lJkSJFUEpx7tw5Wrdu/drjFy5cQClFoUKFsLKyeu2OoLkbL8QlLCyMZs2aRfloPoKTk5Px60yZMr3xa4mYWVlZUbNmTWrWrMm0adNYv349WbJkMT5+/PhxPDw8aN++PZ6entSqVSvOzA5KKapWrUrVqlWZPHkymzZtok2bNrGWlwFwKhORFidiZXBEWhwwP6j+l/ongiH1z4MHu3j27Pxr1wGz/4MQQoiURuJmypIjRw4aNWrEzJkz+eSTT6LMA3769CkzZsygSZMm5MiRg1y5chEYGBjl+adOnSJ//vzGc1tbW5ObL0RXoUIFVq5cibu7u3EjB5F87O3tad++fZRrXl5ePH78mPnz5zN//nzy5ctH165d8fT0jHX6TARbW9sY/7iKTKZApDIJkRYnttQ/UYO46fJCCJEaSNxMeaZPn86rV6+oX78+O3fuxM/PD29vbxo0aIDWmunTpwNQt25dDh06xLp167h06RJDhgzBz88vSl358+fn8OHD+Pr6cvfuXZOZBcCQheLRo0d07NiRQ4cO4ePjw/bt2+nTp0+802qJhDV06FAuXLjAyJEjcXd35+bNm4wbN46SJUvSqFGjN65fBsCpTMKkxbE09U/KSBUkhBDxIXEz5SlUqBBHjx6lVKlSeHp6UrBgQbp06UKJEiU4cuQIBQoUAKBnz540adKEnj17Ur16dRwdHV/7WHvo0KHY2tpSsmRJcuXKxc2bpr+vrq6u7Nu3DysrKxo3bkypUqUYMGAAdnZ2Muc3BSlevDijR4/Gx8eHXbt20atXL7JkyUKhQoWMZR4/fszKlSvNmi8cmUyBSGXs7PKF7wr0+nXzWWNZcE4ZqYKEECI+JG6mTG5ubsydOzfOMjY2NgwePJi1a9fGWqZo0aIcOHDgteuR5w7nz5//tbnERYoUYfXq1bHWu3DhwjjbJpKOlZUVtWrVolatWkydOpV///3X+Ngff/xBjx49yJIli3G+cM2aNVPWTnBKqcZKqUtKqatKqeExPK6UUlPDHz+tlKqQlO1LDRIiLU5sqX+ir3w2VV4IIVIDiZtCpB0ZM2bkrbfeMp5ny5aNihUr8s8///Drr79Sp04dChYsyJdffhlnPUk2AFZKWQMzgCZASaCzUip65GgCFAk/+gCzEFEkRFqc2FL/VKlyLsbrspBDCJGaSdwUIu1q3bo1R48e5fz584wYMQI3Nzdu3LjBjz/+GOfzknIKxDvAVa21D4BSagXQCoi8gqAVsFgbPqc4qJTKppRy0VoHvl5d+pUQaXFiS/1jSUogIYRILSRuCpG2lShRgrFjxzJ69Gh2797N+fPnjVtqxyQpp0DkASIv3bwVfs3SMkIIIYQQQrzGysqKOnXq0L9//zjLJeUd4Ji2dIm+3505ZVBK9cEwRQLghVLq7Bu2LaV7C7ib3I1IAumhn9LHtCOp++n+Jk+WuJkmpYc+Qvrop/QxccQaN5NyAHwLcIt0nhcIiEcZtNa/AL8AKKWOaq0rJWxTU5b00EdIH/2UPqYdqa2fEjfTnvTQR0gf/ZQ+Jr2knAJxBCiilCqglLIFOgHropVZB7wfng2iKvBI5v8KIYQQQoiElGR3gLXWr5RSHwNbMSyXna+1PqeU6hv++GxgE9AUuAo8BXokVfuEEEIIIUT6kKQbYWitN2EY5Ea+NjvS1xqIfclezNLDfpPpoY+QPvopfUw7UnM/U3PbzSV9TDvSQz+lj0lMRd8ZRQghhBBCiLQsSXeCE0IIIYQQIrml6gGwqa2VUzul1Hyl1O20nK5IKeWmlPJSSl1QSp1TSg1K7jYlBqWUvVLqsFLqVHg/v03uNiUWpZS1UuqEUmpDcrclMSilfJVSZ5RSJ5VSR5O7PZZI6zETJG6mFRIz05aUGDdT7RSI8K2VLwMNMKRPOwJ01lqfj/OJqYhSqhbwBMPueKWTuz2JQSnlArhorY8rpTIDx4DWaen7CKCUUkAmrfUTpZQNsBcYpLU+mMxNS3BKqSFAJSCL1rp5crcnoSmlfIFKWutUlbMzPcRMkLiZzE1LMBIz05aUGDdT8x1g49bKWuuXQMTWymmG1no3cD+525GYtNaBWuvj4V8/Bi6QBnf/0wZPwk9two/U+ddnHJRSeYFmwLzkbot4TZqPmSBxM62QmCkSW2oeAMu2yWmMUio/8DZwKJmbkijCP+Y6CdwGtmmt02I/pwCfA2HJ3I7EpIG/lVLHwndXSy0kZqZBaTluSsxMU1Jc3EzNA2Cztk0WqYNSyhH4Axistf4nuduTGLTWoVrr8hh2OHxHKZWmPp5VSjUHbmutjyV3WxJZda11BaAJMCD8I/fUQGJmGpPW46bEzDQlxcXN1DwANmvbZJHyhc/v+gNYprVek9ztSWxa64eAN9A4eVuS4KoDLcPneq0A6iqlliZvkxKe1jog/N/bwJ8YphakBhIz05D0FDclZqZ+KTFupuYBsDlbK4sULnyhw6/ABa31pORuT2JRSuVSSmUL/zojUB+4mKyNSmBa6xFa67xa6/wYfh93aq27JXOzEpRSKlP4oiOUUpmAhkBqyTYgMTONSA9xU2Jm2pFS42aqHQBrrV8BEVsrXwBWaq3PJW+rEpZSajlwACimlLqllPowuduUCKoDnhj+8j0ZfjRN7kYlAhfASyl1GsNAZJvWOs2mvEnDnIC9SqlTwGFgo9Z6SzK3ySzpIWaCxM00RGJm2pEi42aqTYMmhBBCCCFEfKTaO8BCCCGEEELEhwyAhRBCCCFEuiIDYCGEEEIIka7IAFgIIYQQQqQrMgAWQgghhBDpigyAhYhEKeWrlBoax+PdlVJPYns8qSmlFiqlJDWQECJZSMwUqZUMgEWKEx6gdPgRopTyUUr9FJ5A25zn5w9/bqXEbmtSSYt9EkIkDImZr0uLfRIJK0NyN0CIWGzHkOjdBqgJzAMyAf2Ss1FCCJFCScwUwgJyB1ikVC+01kFaaz+t9W/AMqA1GLYBVUp9rpS6ppR6ppQ6o5SKvH3k9fB/j4TfAfAOf15lpdTfSqm7Sql/lFJ7lVLV3rShSqkWSqljSqnnSqnrSqkx4VvNRjzuq5T6Uik1J/x1bymlPotWR1Gl1K7wOi4ppZoqpZ4opbrH1adIzx+klPJXSj1QSi1QSjm8ab+EEKmKxEyJmcICMgAWqcUzDHc2AEYDHwIDgJLAOGCOUqpZ+OPvhP/bGMN2mm3DzzMDSzDcHXkHOAlsUkq9Fd9GKaUaYfiPZjpQCugJvAeMjVb0E+AMUAEYD0yI+I9EKWUF/Am8AqoC3YFvALtIz4+tT4T3pzRQH+gItAEGxbdPQog0QWJmzH0CiZkCQGsthxwp6gAWAhsinb8D3AV+x/CR3jOgZrTnTAE2hX+dH9BAJROvo4BAoFuka77A0Die0x14Eul8N/BVtDKtgSf8t9W4L7A8WpkrwJfhXzfCEMjzRHr83fA+dI+rT+HvlR+QIdK1ucD25P4+yiGHHElzSMyUmCmH5YfMARYpVePwlcMZMNzF+AsYiOHuhT2wRSmlI5W3wRA0Y6WUyg18D3gAToA1kBHI9wbtrAi8o5QaFumaVXi9zhj+swA4He15AUDu8K+LAwFaa/9Ijx8Bwsxsw3mt9atodVcx87lCiLRBYqbETGEBGQCLlGo30AcIwRDoQgCUUgXCH28B3Iz2nBATdS7CEMQ/wRD4XwA7ANs4nmOKFfAtsCqGx+7E0TbNf1OQVPh5fMVVtxAifZCYaT6JmUIGwCLFeqq1vhrD9fMYgrC71npnLM99Gf6vdbTrNYD/aa03AiilnDDMDXsTx4HisbTVXBeAPEopV611QPi1SkQNyLH1SQghQGKmxExhERkAi1RFa/1YKfUT8JNSSmG46+GIYSFEmNb6F+A2hjlvjZRSvsBzrfUj4DLQTSl1CMO8uAn8FyTj6ztgg1LqBrASw7y00sA7WuvPzaxjG3AJWKQMCeUzApPC64q4yxFbn4QQIlYSMyVmipjJLX+RGn0FjAKGAucwBMN2hKe9CZ/b9T+gF4a5XX+FP68nhsB/DFgBzMfEHDhTtNZbgWYY5sgdDj+G8/pHjXHVEYZhFbJd+PMXAWMwBPLnJvokhBCmSMyUmCmiiVhxKYRIQZRS5TCkHKqktT6WzM0RQogUTWKmsJQMgIVIAZRSbYB/MaT6yY/h4zwFvK3ll1QIIaKQmCnelMwBFiJlyIwh2bsb8ADwBj6RQC6EEDGSmCneiNwBFkIIIYQQ6YosghNCCCGEEOmKDICFEEIIIUS6IgNgIYQQQgiRrsgAWAghhBBCpCsyABZCCCGEEOmKDICFEEIIIUS68n+7M42Sq9pL2QAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–3\n", "\n", "X_outliers = np.array([[3.4, 1.3], [3.2, 0.8]])\n", "y_outliers = np.array([0, 0])\n", "Xo1 = np.concatenate([X, X_outliers[:1]], axis=0)\n", "yo1 = np.concatenate([y, y_outliers[:1]], axis=0)\n", "Xo2 = np.concatenate([X, X_outliers[1:]], axis=0)\n", "yo2 = np.concatenate([y, y_outliers[1:]], axis=0)\n", "\n", "svm_clf2 = SVC(kernel=\"linear\", C=10**9)\n", "svm_clf2.fit(Xo2, yo2)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10, 2.7), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plt.plot(Xo1[:, 0][yo1==1], Xo1[:, 1][yo1==1], \"bs\")\n", "plt.plot(Xo1[:, 0][yo1==0], Xo1[:, 1][yo1==0], \"yo\")\n", "plt.text(0.3, 1.0, \"Impossible!\", color=\"red\", fontsize=18)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.annotate(\n", " \"Outlier\",\n", " xy=(X_outliers[0][0], X_outliers[0][1]),\n", " xytext=(2.5, 1.7),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", ")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plt.plot(Xo2[:, 0][yo2==1], Xo2[:, 1][yo2==1], \"bs\")\n", "plt.plot(Xo2[:, 0][yo2==0], Xo2[:, 1][yo2==0], \"yo\")\n", "plot_svc_decision_boundary(svm_clf2, 0, 5.5)\n", "plt.xlabel(\"Petal length\")\n", "plt.annotate(\n", " \"Outlier\",\n", " xy=(X_outliers[1][0], X_outliers[1][1]),\n", " xytext=(3.2, 0.08),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", ")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.grid()\n", "\n", "save_fig(\"sensitivity_to_outliers_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note: the default value for the `dual` hyperparameter of the `LinearSVC` and `LinearSVR` estimators will change from `True` to `\"auto\"` in Scikit-Learn 1.4, so I set `dual=True` throughout this notebook to ensure the output of this notebook remains unchanged." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvc', LinearSVC(C=1, random_state=42))])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import numpy as np\n", "from sklearn.datasets import load_iris\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.svm import LinearSVC\n", "\n", "iris = load_iris(as_frame=True)\n", "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = (iris.target == 2) # Iris virginica\n", "\n", "svm_clf = make_pipeline(StandardScaler(),\n", " LinearSVC(C=1, dual=True, random_state=42))\n", "svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ True, False])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_new = [[5.5, 1.7], [5.0, 1.5]]\n", "svm_clf.predict(X_new)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.66163411, -0.22036063])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svm_clf.decision_function(X_new)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAACyCAYAAABMWnkMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAB0mElEQVR4nO2dd3hUVdrAf2fSQyAklCQkQBJKDKTRFZQiKgooiK5YUHHd1bWsFV37urb9dBXF1XXVddVV7GAHRYSgIEWQhAAhlBRIARIIaaTP+f6YzGVuZjKZZCaZCTm/55knM+eec+97T+59551z3yKklCgUCoVCoVAoFN0Fg7sFUCgUCoVCoVAoOhNlACsUCoVCoVAouhXKAFYoFAqFQqFQdCuUAaxQKBQKhUKh6FYoA1ihUCgUCoVC0a1QBrBCoVAoFAqFoluhDGCFQqFQKBQKRbdCGcCKbokQIkUIsVQIkS+EqBFC5Agh3hdCJLlo/5OFEF8JIQqEEFIIsdAV+1UoFIqOxlP0oxDi1qZj1wghtgkhzmlPH4XCFsoAVnQ7mpTtVqAWmA8MB65v2nyniw4TBOxs2l+1i/apUCgUHYqn6EchxHxgCfAMMAr4BVgphBjUlj4KRUsIVQlO0Z0QQpwF/AzcJ6V80cb2UCnlcRcfsxK4XUr5jiv3q1AoFK7Ek/SjEGIzsENK+UeLtn3AZ1LKBx3to1C0hFoBVnQ3XgA221LuAM2VuxDiISFEZSsv9chNoVCcDniEfhRC+AJjgFXNNq0CJjraR6Gwh7e7BVAoOgshxDDgLOCqNgz7N/BJK30K2i2UQqFQeAAeph/7Al7AkWbtR4Dz2tBHoWgRZQAruhOjm/5udXRA04qHSx/5KRQKhQfiifqxuY+msNHmSB+FwgrlAqHoTgQ2/a10dIBygVAoFN0ET9KPJUAjEN6svT+nVnwd6aNQtIhaAVZ0J3Y2/Z0CfNx8oxAiUEp5slmzcoFQKBTdAY/Rj1LKOiHENuB84FOLTecDyxzto1DYQxnAim6DlPJXIcQK4J9CiABgA6ZHZaOBPwJ/A9Y3G9OuR3xCiCBgaNNHAzBICJECHJdSHmz3SSgUCkUH4IH6cTHwnhBiS5MsfwIGYDK6aUMfhcImKg2aolshhPDDlHtyATAEqAOygW+BZ6SUNS46zlRgrY1N70opF7riGAqFQuFKPE0/CiFuBe4HIjCtUN8tpfyp2b5a7aNQ2EIZwAqFQqFQKBSKboUKglMoFAqFQqFQdCuUAaxQKBQKhUKh6FYoA1ihUCgUCoVC0a1QBrBCoVAoFAqFoluhDGCFQqFQKBQKRbeiy+cB7t27txw6dGjrHd1IVVUVPXr0cLcYdlEyugYlo2tQMsK2bdtKpJT9OuwAFig96hqUjK7B02X0dPlAyWjGrh6VUnbp1/Dhw6Wns3btWneL0CpKRtegZHQNSkYpga1S6VENdU24BiWj83i6fFIqGc3Y06PKBUKhUCgUCoVC0a1QBrBCoVAoFAqFoluhDGCFQqFQKBQKRbdCGcAKhUKhUCgUim6FMoAVCoVCoVAoFN2KLp8GzR5Go5GSkhJOnDhBY2Oj2+QIDg4mMzPTbcd3BCWjHi8vL3r37k3fvn0xGNTvRIVCoVAoTidOawM4Pz8fIQTR0dH4+PgghHCLHBUVFfTs2dMtx3YUJeMppJTU19dz5MgR8vPzGTRoUIcfU6FQKBQKRedxWi9tVVVVERkZia+vr9uMX0XXQwiBr68vkZGRVFVVuVschUKhUCgULua0NoAB9fha0W7UtaNQKBQKxemJ+oZXKBQKhUKhUHQrlAGsUCgUCoVCoehWdJoBLIQYKIRYK4TIFELsEkLcaaPPVCFEmRAiren1WGfJ1xWZOnUqt99+e4ftf+HChcyePdvp/aSmpiKEoKSkxOEx77zzDkFBQU4fW6FoD0UVRUx5ZwqHKw+7WxSFQqHocnQFHdqZWSAagHullL8JIXoC24QQP0gpdzfr97OU0nmrqwuzcOFCSkpK+Oabb+z2W758OT4+Ph0mx5IlS5BSOr2fiRMnUlRURJ8+fRweM3/+fGbOnOn0sRWK9vDkT0+y/uB6nlz3JK/OetXd4igUCkWXoivo0E5bAZZSFkkpf2t6XwFkApGddXxn8aRfM3V1dQCEhoZ2aFqw4OBgevfu3aocreHr60t4eHibMnEEBATQv39/h/srFK6iqKKIt9PexiiNvJ32tkfc8wqFQtFV6Co6VLhiha/NBxUiGvgJSJBSllu0TwWWAflAIbBISrnLxvibgJsA+vXrN+aTTz6xeZzg4GCGDh3qEpnvXn03b+94m98n/57F0xe3aWxjYyNeXl4O9//Tn/7EsWPH+PTTT3WfJ06cyOuvv05dXR3Z2dnMnDmT+Ph4XnjhBQC++uor/v73v3PgwAH8/f0ZOXIk7777rk1D8oYbbqC+vp73339fk1EIwciRI7ntttu4/fbbreSYOXMmcXFxBAYG8sEHHzBo0CDWrVvHd999x0MPPcShQ4cYM2YMf/jDH/j9739PRkYGgwcP5ueff2bWrFnk5OTQp08fli5dyqJFi/jwww/5y1/+Ql5eHmPGjOHVV18lOjoaQOtTVFSkybxixQr+8Y9/sGvXLgICApgwYQL/+9//8Pf356OPPuK1115j3759+Pv7c/bZZ/N///d/DBgwoE3/q+bs37+fsrIyh/tXVlZ6vOuGktE+L+59kRWHV9AgG/AW3syKmMVdw+6y6tfRMk6bNm2blHJsR+3fUT3qKajr1jUoGZ3H0+UDpUPN2NWjUspOfQFBwDZgno1tvYCgpvczgX2t7W/48OGyJXbv3t3itrZQWF4o/Z/ylzyODHgqQBZVFLVpfHl5eZv6X3/99XLWrFm6z0FBQfLqq6+WGRkZcseOHVJKKadMmSJvu+02KaWURUVF0sfHRz7//PMyJydHZmRkyDfffFMePnzY5jG++eYb6efnJ0tLSzUZ16xZI728vGRRUZFNOaZMmSKDgoLkPffcIzMzM+Xu3btlXl6e9PX1lXfffbfcs2eP/PTTT+XAgQMlIHNycqSUUq5du1YCsri4WEop5dtvvy29vb3l9OnT5ebNm2V6erpMSUmRF1xwgXast99+W/bo0UP7vHLlSunl5SUffvhhuWvXLpmeni7/8Y9/yKqqKimllG+99Zb89ttv5YEDB+TmzZvl1KlT5TnnnNOmebdFW6+htWvXOn3MjkbJ2DKW97r51dI939EyAltlJ+lle3rUU1DXrWtQMjqPp8snpdKhZuzp0U6tBCeE8MG0wrtUSrm8+XZpsRospVwhhPiXEKKvlNLx6KkO4MmfnsQojQA0yka3+LT4+/vz3//+Fz8/P5vbCwsLqa+v5/LLL2fw4MEAJCQktLi/GTNm0KtXL5YtW8aNN94ImFZdp0+fTnh4eIvjYmJitBVngAcffJDY2FheeOEFhBDExcWxd+9eHn74Ybvn09DQwKuvvkpcXBwAixYt4oYbbsBoNNrMv/vkk08yZ84cnnrqKa0tKSlJe//73/9eex8bG8trr71GfHw8+fn5REVF2ZVFoTBjea+bcdc9r1AoFF2NrqRDHfIBFkL4CyH+IoRY1ZSdYYfly8F9COAtIFNKadOHQAgR3tQPIcT4JvmO2dtvY2Mjn3zyCb/++ivHjh1zSdCWJWZflrpGk79rXWOdW3xaEhISWjR+AZKTkznvvPNISEjgsssu47XXXqO4uLjF/t7e3syfP5+lS5cCUFtby7Jly1iwYIFdOcaMGaP7vGfPHsaNG6fz750wYUKr5+Pn56cZvwADBgygvr6eEydO2Oy/fft2pk6d2uL+fvvtN+bMmcPgwYPp2bMnY8eanngcPHiwVVk8BU/yM+/KpBWl0fv/erPjiEOqScfG/I3avW6mrrGOX/J/cZV4HonRaOTYMbuqVqHoEig96hraq0e7kg51dAX4X8ClwKfAL0B7rMxJwLVAhhAirantIWAQgJTy38DlwC1CiAagGrhStmLR1tfXM3/+fO1zr169iImJITY2lgcffFBrNxpNv0jaWt3LU37N9OjRw+52Ly8vVq1axaZNm1i1ahVvvfUWDz74IOvWrSM5OdnmmAULFjBx4kQKCgpITU2lrq6OSy+9tE1ySCnbVWba21t/6Zn3Yf4/tYWqqipmzJjBeeedx3vvvUf//v0pKSnhnHPOcThQzxPoClGzXYEFny+grLaMq5ddzc5bd7Zp7Pabt3eQVJ5NTU0Nffv2JSoqiuTkZFJSUkhOTiY5OZmhQ4eqqoiKLoPSo66hvXq0K+lQRw3gucDvpJSr23sgKeV6wK6lJKV8BXilLfv18vLi0ksvJTs7m+zsbMrLy0lPTyc9PZ1FixZp/aqqqsjKysLX1xdfX1/8/Px0r8DAQJtKviv9mhFCcNZZZ3HWWWfx2GOPMXLkSD7++OMWDeAJEyYwZMgQPvzwQ37++Wfmzp3bZof0+Ph4vvzyS13bli1b2n0OLTFq1ChSU1P585//bLVtz549lJSU8MwzzxATEwOYUsR1JZpHzT465VHCg1p2RVHYJq0ojV3FprjZXcW72HFkB0lhSa2MUhgMBgIDA8nPzyc/P59vv/1W21ZUVKS5Ra1evZoePXqQmJjo8UFAiu6H0qOuobvoUUcN4JPAoY4UpL34+Phoxo6UkuPHj2vGsOVqZX19PWBK3VVXV0dlZaVuP8nJyZoBXFRURH19PX5+fqydv1YzmNuSyaGz2bRpE6tXr2bGjBmEhYWxfft2Dh06xIgRI+yOu+aaa/jPf/5Dbm4un3/+eZuP+6c//YnFixezaNEi/vjHP7Jr1y5ef/11gHatDLfEww8/zMUXX8wjjzzC1VdfjZSSVatWcfPNNzNo0CD8/Px45ZVXuO2228jMzOTRRx912bE7A0/wMz8dWPC53oWnPavA3RF/f3/Ky8s5cOAAaWlp2iJCYWGhLibgjjvuIDMzEyEEQ4cO1a0Ujxs3jrCwMDeehaK7o/Soa+guetTR51rPAfcIITz6OZgQgj59+jBu3Djmz5+Pr6+vti00NJTRo0eTmJjI8OHDGTx4MOHh4YSEhBAUFKR7JH/8+HGOHj3KoUOH2L9/P7t372b79u2kpaVRUFCg9WtsbKS8vJza2lqX+x63leDgYDZs2MDs2bMZNmwY9957L48++mirPr0LFiwgKyuLXr16cf7557f5uIMHD2bZsmV89dVXJCcn8+KLL/LXv/4VMH2puoqZM2fywQcfsHLlSkaNGsWUKVNYu3YtBoOBfv368e677/LFF18wYsQI/va3v7F4cdtS1bkTT/Ez7+pYrlqYMa9eKFrHy8uL4cOHc8UVV/D000/zzTff8Ntvv2nbpZScddZZJCcn4+3tzb59+/j000955JFHuPjii/nXv/6l9d2/fz/vvvsuaWlpXcoNSdF1UXrUNXQnPdriCrAQ4qtmTZOBC4UQu4F6yw1Syks6QDaXYzAYNJcHe0RFRVFdXU1dXR21tbXaq6GhQdevqqqKvXv3Aibju7lrRd++fa18XR3hnXfesfvZTGpqqvY+Pj6elStXtvlYQ4YMQUpJRUWFlazNj2t5PEtmz56tK5m8ZMkSevXqRb9+/QBTyWbLHwgLFy5k4cKFun040mfmzJk6f29L5s+fb7XN3T9KHMVT/My7Os1XLcycrqsXnY0QgrfeegswPUnLzMwkPT1dWzE+88wztb4rV67kjjvuAExP6eLj47WV4pSUFM4991yXPiFSKJQedQ3dSY/aW9E91uz1ObAGOGxj22lFcHAw4eHhDBo0iGHDhpGQkMDo0aNJSkrSFZUQQhAUFISPjw9SSmpraykvL6e4uJj8/HydAZadnc3u3bs5cOAA+fn5HD16lLKyMmpqatoV+OVJvPrqq2zZsoWcnBw+/PBDnnzySRYuXKgCZxzElX7mzkZAuyKC2l1R2AdKD7Sp3R7ujiQvqiiCvsS13tM9+Pr6kpyczHXXXcfixYv58ccfueiii7TtsbGx/O53v2P48OE0NDSwY8cO3nvvPRYtWsSVV16p29fixYv55JNPyMrKorGxsbNPRXGa4Co96gk60J36x1V61N061CyDPT3a4vKklPKGjhGpa2Je4bWkZ8+enHHGGYApe4F5pdjsZ2y5olpdXU11dTUnT5602ndoaCixsbGAyVe5uLhYt5Ls7e3t0asl+/fv55lnnuHYsWNERUXxpz/9iccee8zdYnUZzFGzt357K69ve50/jflTu1csnI2AdkUEtbuisKsfrnbZvtwdSf7kT0+CD102ymzWrFnMmjULMFV72rlzp7ZS7Ovrq+mz6upq7rvvPm0RIDAwkMTERG2leObMmVpec4XCHq7So56gA92pf1ylR92tQ80y2NOjjuYBXiOE6G2jvZcQYo0T8p02GAwGAgIC6N27N/379ycqKkpntA4fPpwzzjiDmJgYIiMj6du3Lz179sTX11fnK1tdXU1hYSE5OTns2bOH9PR0tm/fzq5du9i3b5/On66+vt4jVkxefPFFCgoKqKmpYf/+/Tz11FNWPxYU9nFF7XRn9+EJMngC7j4H8/FPF4KCgjjzzDP505/+xGuvvcaSJUu0bbW1tTz44IPMnj2bqKgoTp48yebNm3njjTe49dZb2bp1q9a3vLycp556iq+//pqDBw92GRcnRedxOuhAd+sfV+AJ5+CIHnX0GfVUwJZF4w+c0zaxuic+Pj4EBQXRp08fIiIiiI6OJi4ujqSkJAYMGKDrZw7OCwwMxMvLC6PRSHV1NWVlZTq3gtzcXLZv3056ejp79uwhOzubgoICSkpKbK40KzwXW9HLnb0PT5DBE3D3OdjyZTxd6d27t2bUHjp0iJKSEtasWcOLL77I9ddfrxW0ASgtLeXRRx/lkksuYfDgwfTp04dp06Zx99138+mnn7rxLBSewumgA92tf1yBJ5yDI3rUrgEshBgthBjd9DHJ/LnpNQ64CSiwswtFGwkICCAqKoohQ4YwYsQIRo0aRUpKCvHx8QwZMkTnVmEuQlFfX09lZSXHjx+nqKiI3Nxcjhw5ovWrra1l79695OXlcfjwYUpLSzl58qRVUJ/CPbgietnZfXiCDJ6Au8+h+fG7G2aj9q677uKdd97RuT+EhIRwzz33cO6559KnTx9KS0tJTU3lpZde0lIvgqmox3XXXccLL7zA6tWr7VbEVJw+nA460N36xxV4wjk4qkdbWwHeCvyKqfLbqqbP5tdm4EHgCaelVdjF29ubHj16EBISomsfPny4ltotLi6O6OhoIiIiCA0NpWfPnlq/mpoaXXDegQMH2L17N2lpaaSlpVFTU6P1raiooLy8/LQIzusq2Ite7qx9eIIMrsKZ4AtXnUN7ZehOq79tpVevXrzwwgv8+OOPmi779ttvefrpp7n++uu1frt27dIC7s4//3z69+9PZGQks2bN4qGHHuLQIY9Maa9wktNBB3qKDgXX6rD2nkNH69HWcnTFYKrelg2MByx/StcBR6WU7ndC7cYIIbRgOUuj15LAwECGDh2qS+lmTvHW0NCAt7e3ViikqKiI8vJybaxlareePXvSp08f4FSKMU8OzusquCJ62dl9eIIMrsKZ4AtXnUN7ZbB1fIU1QggiIyOJjIxk5syZum1RUVG8/vrrWtDdjh07KCwspLCwkBUrVujSKz777LNkZ2drKdqSkpJa1KMKz+Z00IGeokPBtTqsvefQ0XrUrgEspcxreqvyWXVhfHx86N27t1W7lFIzgM306NFDS+lmzmZRV1dHRUUFgGYA19TUkJmZaVVS2tJgVmnQHMMVtdOd3YcnyOAKnC2F6opzcEYGy+OLx8U2p4XphoSFhXHTTTdpn41GI9nZ2ZoxPGTIEG3bsmXL+PXXX3XjhwwZQnJyMpdeemmrhYQUnsPpoAM9QYeC63SYJ8hgT4/aK4RxnaOCSin/52hfhecghMDHx0fXFhkZqb03Go26YiCW2Srq6uq04Lzqauu0KSNGjCAwMBCAkpIS6urqdMaxj4+PWj1WuBxPKIXqCTIoTmEwGBg6dChDhw7lsssu021bvHgxW7du1Qp6mHO1HzhwgMGDB2sGcEZGBn/+85+19GzJycmMHDmy1aJKCkVXxBN0WGfIYG8FuPmRfAEfwOxYYcBUEa4WUAawG5g6dSoJCQm88sorHbJ/g8GAv7+/zZLGwcHBpKSk2HSrqK2t1X0xHD9+XOdWcckll3DFFVfwhz/8gZCQEM3oNhqN1NTU4Ofnh5eXl8NydvQ8KLoGLQVftHUVuKvLoHCcs88+m7PPPlv7XF9fz549e0hLS9NyvANs3bqVdevWsW7dOq3N29ubM844g+TkZF599VWCg4M7VXaFoiPwBB3WWTLYK4ShOUIJIWYBjwN3YQp+A5gALAa6Xo4OD2fhwoWUlJTwzTff2O23fPlyqxXczsTb21sL0LNH37596dGjh2Ycv//++/j6+lJTU6P5HoMpW8Xu3bu1fTd3qVCrLQp7eEIpVE+QQdF+fHx8SExMJDExUdd+ySWX8O233+pKP+/du5edO3eSnZ3Nu+++q/WdM2cOdXV12kpxcnIyw4cPb9OPeoXCXXiCDussGVoLgjPzPPB7KeVGi7YNQoi7gHcA+5ZaFyY8HCwyimmEhcFhN2UmMbsThIaGukcAO9TX11sZ5c3ljI+Pp7GxkdraWp2fcGNjI/7+/lpwXkNDA1VVVdr2YcOGae8LCgqorKzEz8+Puro6ampqqKqq0laP2+JeYTQakVKqLygXUVRRxJXLruTjyz9u16/1oooi7ky7k+/Hft+m8a4uKd2ec3BlOVZPLoXc3ejTpw8zZ87UBdxVVVWxc+dOCgoKdLrjhx9+oLq6mu+++05rCwgIICEhgXvvvZf58+cDp9JYKhTNcZcOBdfqsPaeQ2fpUUejlKKBKhvtJ4FBbZKoi2HL+LXX3hEsXLiQ2bNn8+yzzxIVFUVUVBRgevR/++23a/2WL19OUlISAQEBhIaGMmXKFF0+YEuuuuoqK384o9HIwIEDefHFFwGTgn7uuecYMmQIAQEBJCYm8v7772v9c3NzEULw4Ycfcu655xIQEMDrr79OWVkZ1157Lf3798ff35/Y2FheeuklbVx0dDQvvvgigYGB+Pv7U15ezi233MKwYcMYO3YsCxYsICsrS6ucl5aWxjXXXEP//v0ZOHAgTz/9NBUVFVRUVFBSUkJtbS3l5eVkZmaSlpbGb7/9xvXXX09ISAgBAQFMnjyZTZs2aand3nnnHYKCglixYgUJCQn4+vqSmZnpqn9Xt8cycre94zPKMto8fvvN25F/ldwy9hYMwsCtY29F/lW2KyijvedglqH5q60ydHYp5NraWp544gm++uor8vLyVJU1B+jRowcTJkxg3rx5uvaMjAw+++wzrWjHoEGDqK6u5tdff9XFS7z33nsMGTKEyy67jCeeeIIvv/xSzb0CcJ8OBdfpUWfOobP0qKMrwJuBl4UQ10gpCwCEEJHAi8CmNkmkaBfr1q0jODiY7777zqaCPHz4MFdeeSV///vfueyyy6isrGTTppb/NQsWLOCyyy7jxIkTWoaIdevWUVRUxFVXXQXAI488wmeffcarr75KXFwcGzdu5I9//CMhISHMmjVL29eDDz7I888/z1tvvYWPjw+PPPIIGRkZfPPNN/Tv35/c3NwWk9FLKbnooosoLS3l7bffZvjw4WRlZVFTU0NQUBBZWVncfPPNPPLII8yZM4fMzExuvvlmAgICuPHGG6mtrdXcJAICAqitreUvf/kLhw4d4ssvv8Tf359FixYxZ84cli1bhr+/P4cOHaKmpoZHH32Ul19+mcjISPr06UNFRQVSSgwGAz4+Pg6Xc25oaODQoUMUFhZSUVHBhg0bGDBgAAMHDtRl2HBkvHl1vy3jPQlnszCYx0ukU+Pbe3xX7cMZ3FEKubGxkb/+9a/a5969e2uP782P8keMGGEzHkChZ8iQIZpha6a0tJQdO3bo/IrT0tLIzs4mOzub5cuXa+29e/fmrLPOYsWKFVpb82w9itMXd+tQV8rgLh1qKYM9HL2jbgS+AHKFEObKb5FAFjC3nfIp2oC/vz///e9/W/SDLSwspL6+nssvv1yrnpSQkNDi/mbMmEGvXr1YtmwZN954IwBLly5l+vTphIeHU1VVxeLFi1m1ahXnnGOqdh0TE8OWLVt49dVXdQbwn//8Zy6//HLtc15eHqNGjWL8+PGAacW3JVavXs3GjRvZtWsX8fHxAMTGxmrbFy9ezJQpU/jb3/5GRUUFo0ePZt++fSxevJh77rkHAD8/P4KDgxk5ciR79+5l9erVrFu3jsmTJ1NTU8Mrr7zCpEmTWL16NbNnz6ahoYHGxkbuuusuxo0bp1XEa+6PLISgsrKSL7/8kvj4eIYPH66TXUrJzp072bdvH2AyIry9vSksLOTIkSNs376dYcOGkZCQYPNRp63xZhwZ74k4G7nr7vGu2oczuKMYhp+fH/fee6/m41pSUmIV9OXl5UV8fLzOKE5OTqZ///6dKmtXJCQkhClTpujann32WX7/+9/r/IrT0tIoLi7m2LFjWr/Gxkb69u1LVFSUbt6Tk5MJCwvr7FNRdDCngw50tw5tLkNLOOQCIaU8ACQBszAFvr0IzAQSpZT7nZRT4QAJCQl2g8CSk5M577zzSEhI4LLLLuO1116zWwLU29ub+fPns3TpUsBk8C1btkxL+7N7925qamq48MILCQoK0l6vvfYaBw4c0O1r7Nixus+33HILn3zyCcnJySxatEj3Jdqc7du3ExERoRm/zcnMzGTSpEm6trPPPpuCggJdZgkze/bswWAwcNZZZwGmHw5JSUkkJydTXl7O6NGjiYqKwtvbmxkzZtDQ0ICU0mpV3dLg3LBhA3fffbf2uaysjKuvvpq33nqLzMxMGhsbdcYroLXt27ePDRs2WO1fSsmGDRvYt29fu8Z7Iu4uA+oJpUydxV2lkL28vHj++ef54YcfOHr0KAUFBaxYsYJnnnmG+fPnExcXh9FoZOfOnSxdupT77ruPCy64gLCwMAYMGMBFF13EAw88wEcffaTdEwr7+Pj4kJCQwDXXXMM//vEPVq1axZEjRygsLOS///2v1u/gwYNUVFSwa9culi5dyv3338+MGTMIDw8nIiKC77//XutbUVGhStx3YU4HHehuHWpLhpZwuFKBNLFKSvmylHKJlPIH2YZvZSHEQCHEWiFEphBilxDiTht9hBDiZSHEfiHEDiHEaEf3f7rTWqYFLy8vVq1axapVq0hKSuKtt95i2LBhpKentzhmwYIFrFu3joKCAr7//nvq6uq49NJLAbQyyF9//bVWMjktLY1du3axatUqu7JddNFF5OXlsWjRIkpKSpg1axY33HCDTRlau4TsBYq0tKraEkIIzb3BnIu4teMLIUhJSeHiiy/W2g4cOICUEj8/v1ZXZhsbGzl8+DBbt27Vte/cuZOjR4+2aig0NjZy9OhRdu7cabefJ+DuMqCeUMrUWTyhFLIQQjNqH3zwQT766CP27NlDZWUlmzdv5vXXX+fWW29l0qRJBAUFUVRUxHfffcezzz7LVVddxYgRIwgKCmL8+PH88Y9/5NVXX2X9+vU2f7Aq9AghiIiIYOTIkVpbTEwMFRUVbNmyhTfeeIPbbruNSZMm0bNnTw4fPky/fv20vn/961/p2bMn48aN4w9/+AOvvPIKP//8M2VlZe44HUUbOR10oLt1aEsy2MJeIYx7gH9JKWua3reIlHKxAzI1APdKKX8TQvQEtgkhfpBS7rbocxEwrOk1AXit6a/bCAtrOQuEpyGE4KyzzuKss87iscceY+TIkXz88cckJyfb7D9hwgSGDBnChx9+yM8//8zcuXMJCjL5i48YMQI/Pz/y8vI499xz2yxL3759ufbaa7n22mu56KKLuOqqq/j3v/9ttYo9evRoioqKyMzMtLkKPGLECNavX69rW79+PVFRUTZLlo4YMQKj0cjGjRuZPHkyAOXl5WRkZGhGuNnobW78NspGjtQfIcwnDC9xKqrbx8eH/v37a354AwYM4NJLL7UyfkvrS1mSt4S7Iu+it3dvrV1KyZ49e5g9ezZRUVEMGzaMuXPnWmWdKK0v5aWCl7g76m7dePNKcHx8fKt+gM5GDzuDu8uAekIpU2fx5FLIgYGBjB8/XnNtAtMP5ZycHO0Rvvkx/sGDB/n111+tqqzFxsZa+RYPHjy4y7j4uIvAwEDGjRvHuHHjtDaj0Uhubi4DBw7U2g4fPkxNTQ1bt261+tE9Z84cvvjiC21sXl4e0dHRLp17V+gfZzIYuEKG7qxDPUUGZ3FFKeQ/A+8CNU3vW0Jicouwi5SyCChqel8hhMjE5EdsaQDPAf7XtLK8SQjRWwgR0TTWLbgr1Vlb2bRpE6tXr2bGjBmEhYWxfft2Dh06xIgRI+yOu+aaa/jPf/5Dbm4un3/+udbes2dPFi1axKJFi5BSMnnyZC2wzmAw6EqNNuexxx5j9OjRjBw5koaGBpYvX05sbKxNF47p06czYcIELrvsMl588UWGDx/O/v37qaqqYu7cudx7772MGzeOxx9/nEsuuYTMzExeeOEFnnnmGZvHHjZsGHPmzOHmm2/mjTfeoHfv3jz88MP06tWLq6++GqDFR4SlDaXUGGsobSilr09fq+2HDh0iJiaG6upqvL29rVZvl5UsI7Mqk8+KP+MPEX+wGj9y5EjWrl1LcHAwdXV1BAQEWI3fc3JPi+PNx7dHe2unuyIQz5VlQFNTU5k6dWq7x7tCBnfQ1UohGwwGu0Fflr6tu3bt0oK+LHVNcHCwlVE8cuRIFXDXCgaDQRcvAfDBBx/w6quvsmPHDp1v8c6dO3UrxQcOHGD48OEEBweTlJSk8y1OSEho99y3V/8034c5g0F79uGsDK44h/bibh3qahnchdOlkKWUMbbeuwIhRDQwilNFNcxEAocsPuc3tbVoANfX1/Pf//6X2NhYYmNjiYyM7Jb5XIODg9mwYQP//Oc/OXHiBAMHDuTRRx9ttZb9ggULePzxx+nXrx/nn3++btuTTz5JWFgYzz//PLfccgu9evUiJSWF+++/3+4+/fz8ePjhh8nJycHf358zzzyTr7/+2mZfg8HAypUrue+++1iwYAEVFRXExsby+OOPA6YV4k8//ZS//vWvPPPMM4SFhfHAAw/o0r815+233+auu+7ikksuoaamhkmTJvHdd99pBqctt4NG2UhFYwUAFY0VhHiH6FaBGxsbKSwsJCYmhsLCQqt9lNaXsvbEWiSS1BOpXN7vct0qrr+/P4888gjPPPMMeXl5uvzHjoy3PP6KFSvYv3+/ds1HR0cTGBjYrsjb0zEQT+F+zEFfloFf9fX1ZGVlWa0WFxcX89NPP/HTTz9pfb28vLQqa2bjrPk9o7BNS3NvmVO9qKiI/v37c/ToUX7++Wd+/vlnbZuXlxdpaWlaEPXevXsJDg5uNeDOlRlY3JUFxhOyFyg6D+GIG68QwktK6ZKoBiFEELAOeFpKubzZtm+Bv0sp1zd9/hG4X0q5rVm/m4CbAPr27TvmgQcesNympcVKSUlhyJAhmu+nEMItX+KNjY0eb5R3JxkbGxut3B+K64qpaKxAIhEIenr3pJ9PP7Kzszl48CBgcoUICgqyGWjyev7r/Hj8RxpowBtvzutzHjdF6lfJXTU+JyeH48ePW21bVrOMX6p/Me1DeDMrYha3Rd9mVZiksrJSc3WprKzUAgFbQgiBt7e3NqYzsJTRU+loGadNm7ZNSjm29Z7tw1KP9uvXb8wnn3zSUYeyS319PdXV1Zw8eVL7W1NTY9UvKiqKI0eOEBAQQGBgoPbXk1aKu9p129DQwMmTJ3VzX1tby6hRo7Tvyr1791JRUYGPj4/duX9x74usOLyCBnlK/9w17K42yebsPjprfFf7P3sqnSGjPT3qqAFcCWwAUpteW9pjEAshfDBVjfvelt+wEOJ1IFVK+WHT5yxgqj0XiNjYWHn22Wdrj9aKik51XblyJX376h9le3l56UrrWpba9fX17ZBVhoqKCpv+qp5Ed5KxsrKSurpT/kGNspGDtQeRnLoXBIJBfoPIy8kjJycHgAEDBjBp0iQ2bNhAYWGh1re0vpTb999OvTyVRs1X+PLKsFd0q7iuGv/BBx+wfv167ZrPzc2l3q8e7gQsbF1/L39qnq3Bt86X6OhoYmNjiYmJYcqUKfj4+BAZGUlBQYFDEfteXl4MGzbMqkRsR9Hex3edSUfLKIToUAPYkri4OJmVldUZh3KIkydPsmvXLp0LxWWXXaalPrTE39+fhIQE3WpxUlISwcHBnS736XDd1tbW6tzV5s6dy9q1a20GMf7xj3/kjTfeoKiiiNglsdQ0nvrhEuAdQPad2Q6voBZVFBH7ciw1De3bR2eOPx3+z55AZ8hoT486mgf4UmAKpjRojwN1QohfaDKIm5VIbkkIAbwFZNoJmvsKuF0I8RGm4Ley1vx/fXx8+N///qd9rq6uJjc3l+zsbEJCQggLC6O2tlZ7NTY2ar94bdHcILY0lr29vdVj4NMAHx8f6uvrtVXP0oZSm/0s2728vBgwYAAAYWFhOgN2WckyqxVUozRa+fKaHyH269evXePNPnxXX3215s8MphXthZ8u5KO9H9EgT60sN8pGAi4MoPqzavbu3cvevXsBU6L+hx56SFfVTztnFwTiKRTOYivoKzU1lQMHDli5UOTl5dkM+oqJibHyLXZ10NfpSPNYjS+++AIpJbm5uVY5i5OSkgCT32xDo/6pVk1dDRc/fzEPJT9EcnIyMTExdufeXvYAR3xx3T3eEncG0ikcx6FvMinlD8APAEKIAGAScA3wBKZUao48l54EXAtkCCHSmtoeoqmUspTy38AKTPmF92Mqs2w7d5YdAgICiI+PJz4+nszMTF2ErJSShoYGzRiuq6vTGcd1dXXaq6KiwmrfBoOhRePY19fX410IFCZ8fX11P4BqjDW61V8AiaTGqH8Ma3ktWbL35F4a0Cv/BhrYe3Kvzf6lpXqD29HxzceZ8fLyYmfZTp3xC1BvrGfkeSNZ/856cnJyyM7OJicnh9DQUG699VYMBoOW7s5Ma4F45uj+mJgYYmNj6dOnjzIoFJ2G2e/dsvywOeDO0ijetWsXOTk55OTkaJkPAC3oq3nAXfOAVIUeIQQxMTHExMQwd+5crd38w31j/kYrHSYNkq1FW5n3t3kYDAYqKyu1eV6xYgX9+vUjISFBa3N39gFXZi9wZyCdwnEcXsoRQoQBU5te52IyXDcAax0Z3+TXa/ebsin7w22OytRWhBD4+PhovpTNMRqNmgFsaRhbrh5XV1fr6rlbYs4v29w4NhdaUIaC62lsbKSqqkrz6xVC4OXlRY8ePVr8QSKEwM/Pj9raWqSURPlFtbj/bLK1x//mlc8jzfLiPTfkOZ0bgy33BfO4oUOH2hyfW53L/Tmnggv/EfsPBvsPthrfEq1F3iYkJGhBLampqcTGxupWocGxQLycnByuvPJKrS0oKEgzSmJiYrjpppu0cq9tveZramrIyMigqKgIo9HIV199RUREBImJiQ75eZ5OJaUVjmMr6KuhocFmwF1LQV9xcXFWFe7Cw7vPyl1lZSVbtmyhtLQUo9GIwWAgJCSE8ePH2/XRNN/fG6/fqN27Zl1cV1fHjtodbLtgmy7rjZSShQsXUlxcjMFg0Ob+ypQruW/Ufdy440ZqGmva7ELx642/8n3a98z+drbWtuLiFZyfdL6dUadwVfYCFUjXdXDoW0EIsQuIBrZgcnu4GdgopaztMMlcRFu+hA0GA/7+/i1+2TY0NLRoHNfV1VFfX68rp2smKiqKffv22TSOzW3qC7ptSCkpKyuzWsE0r/KXlZVhMBgIDg62+f8PCAigsbHR5v/Lcl9gymlsWVba0n/YjKUbgy33BThVatmWz+3LBS/rPi/JX8LioXpPoebn6gzOnMO8efPIycnhwIEDlJeXs2PHDnbs2AGgW5l74IEHeP/99zUD2Wwkx8bGMmTIECIiIrTzWrt2rS6wz9vbm9raWnJzc8nNzSU0NJRp06bZ9NFXmSwUzfH29mbkyJGMHDmSa665Rms/fPiwlVGclZXF7t272b17Nx9++KHWNywszMqFIi4u7rTS1Y2NjaxYscIq6NBoNHLs2DFWrlyJv78/M2fOtLmgYOveNePl5cWoUaOYPn0606ZN09pra2s5//zztbnPzMwkMzOTjz76CGaB1zjTcRplI3ctv4uLvS7W5r55QC/o7/+79t6l23bzqpt5KfelTr3/PaEMsMIxHL2Tg4FGTG4JVUAF4JnZ2i3w8fGhurqawMBAl+zP29sbb29vm/uTUlJfX2/TOBZCIKWkpqbGZnSzed+2jGNzxTKVAugUUkpOnDjRahU3o9HIiRMn6N27t03F11rwV319PY2NjdqxzPvw9fXV9TOvnJofATbQYHMF1ay8vby8dFkgcqtzya/L1+0zvy6fvJo83SqwK6+B9p5Dz549WbZsGWD6P5SWlmrBeDk5ObpiJtnZ2RQWFlJYWGhVzGTs2LH8+uuvGI1GvvnmG2pqaux+OR0/fpxvvvmG2bNn6+bBXFK6pap65rZ9+/ZRVlbGpEmTlBHcjQkPD+fCCy/kwgsv1Nqqq6vZuXOnzijesWMHR44c0aprmvHz87MKuEtOTnZLwJ2zNDY28sUXX7T6w7qmpoYvvvjCqniP+d6trbW/Dtb83vX392fp0qWAae537dpFeno6v+z4hXeC36ER0z1b11jHsuxlfPzCx1BpmvuRI0dq8z569GgtqPjo0aMcqDzAodpDumMfqj1EdlU27KNT7v+WygCrVWDPxFEf4CghxFBOuUDcCQQJIX4G1kopX+wwCZ2gf//+FBQUEBkZSUBAQIde+Ob0a76+vlaZCioqKhg1apTN1WNzW0NDg5aSxhYtGcfm1ePu9KVeVlbWqvFrxrxS3Lt3b117RUVFi4rf/GOmsLCQ4uJiamtrWbt2LdOnTwdM2RiOHDmiGVeOBLFZBtFFRESQm5ur9W2++mum+SqwecXUFTh7DmC65kNDQwkNDWXsWOsg2w8//JB//OMfmnFsaSibqxOuXbtW+5HYGrW1tXz//ffEx8cTFRWFt7d3u0pKd1YmC0XXICAgwCrgzhz01Xy1ODc3l23btrFtmz63fnR0NMnJycyfP5/PP//coaAvd7NixQqHnyoZjUZWrFihKwlvvncdobkONRMQEMDYsWMZO3Ys277dhvd2b70froDohdGIbwU5OTn89ttv/PbbbwCcccYZfPLJJ9r935oe7Yz735WBdIqOx+FnOVLK/cB+IcTbwHhM+SMXYMoM4ZEGcK9evQAoLCy0+6i7o6mpqWnRrcJgMGiP481GsHnlsb6+noaGhla/3M15Wr29vfHx8dHem1+OKGF7MnoKNTU1+Pr66nywjx0LRErr8xNC0qfPqR8TAQEB2sqhlNLmD40G2UBZQxnB3sEIo6C4uFg71vHjx7U5GjhwINu3n/IXczSIzRxEFx8frzOAj9Tb9u1t3m6rVHR7cfYcHMHb25vo6Giio6Ntbq+pqbH56DS3OpfH8x7nb9F/s/KDrqioIDExkZqaGoYMGcJjjz1m9VjUEzJZqCjwro1l0Nell16qtZ84ccIq4G7nzp2aq84555zDokWLANP3T/OAO8ugL3dSWVmpexr5xz9eTFmZtf4PDq7hzTdNRYxqamq0vK327t2/5v2VJ6KfsLp3LXWoLWwFoTXQQO+E3mz/53bKysp0cx8REcG+ffu078fW9Ghn3P+eUAYYIK0ojdnrZ/NL/C8khSW1ax+eoMM6WgZHfYDHAdOaXpMAP2A78AIOBsG5i169emmGsLtITU1l1KhR7R5fW1vLwYMHtRU0yxU1sx+mPQYMGGDlgxkbG8vgwYOpr6+nqKiI48ePExoa6tFBQ6mpqZpvmpkrrvhdi/0/+eRT7X2fPn0499xzAfj11191BqiZe/bfQ35dPlG+UVb+twAZGRmMGzcOb29vhg0bpinf54Y8p/Xx9va2KnLRPIiuuLhYt31pvOlx4H+K/sMPpT9wfsj5NjMwFBcXuyxpuL1zsEXzc3AFGRkZNttfLniZk8aTNv2gAW6++WZeeOEFBgwYQENDg5UBbC+ThZSSnJwchg0b5rLzsEVXiwJ39IlKd6d3795MnjyZyZMna201NTVs27aN/Px8vLy8eO6559iwYQMrV65k/fr1Ovcfy6Cv5gF3nblavGXLFt1nW8avrfYtW7Zw7rnn2r13q43VLd67Zh1qi19v/FULYm3+fQSmDB7nnHMO55xzDgA5OTm6H/GO6tEvvviC/fv3a/8DV869J5QBBljw+QKqGqu4etnV7Lx1Z7v24Qk6rKNlcPTbbAOwDVMFtyXAz1LKKvtDFK7Cz8+PYcOG2fzSNvthWj5itjSQ8/LyrPwwhRDMnz+fmTNnIqUkICAAb29vCgsLyc/PZ+vWrYSGhjJu3Di3/3hoTkupwNoyzrJYihlLP1xb/rfNxyUkJFBWVsbhw4dbraLWv39/XRBd8+wL0HoGBvO4mBjXVSU3n0NrLgReXl5W5+AK2vN/EEIwefJknnrqKVJTU63SFbY2j0ajkTfffJOJEydq6Zw2b97Mvn37tB+GYWFhTn0hdsUo8OrqasLDw60Ms9Mt6MuVNA++NBgMeHl5ER0dzZAhQ7j22mvx9vYmKytLF3CnC/pqon///jYD7mwFfbkCZ/WoK3SoGVtBrObvI3tBrO0pSd/Y2MihQ4d48MEHtbZ+/fppcz916lRmz55NVyatKI1dxbsA2FW8ix1HdrR5FdgTdFhnyOCoZgtRBq9nYumHOWbMGKvtDQ0N5Ofn6wzksLAw+vTpYxUIBacCrQoLC3nqqad45513dKvGlu/NfpidSXszIVgaqa7KwmBOb9eWY4PzWSRchRCCSZMmtZhBwdvbGyllh0VQO/N/8Pf3x8/Pz8oAdmQee/ToQWRkpPb5gw8+4OWXTx03ICBAu85Hjx7N3/72N21bdXV1q4+wu2oUeEtBX9nZ2Zrv9969e+nfv7+VT313w9Hgy8bGRiZOnMh9992HEIKamhqrCnfp6ekcPXqUH374gR9++EHbhznoq/mPElfMvbN61JU6tL1BrO3VowMHDuSOO+7Q5r+4uJjVq1ezevVq8vPzNQO4uLiY+++/Xzf3ISEhLU+Oh7Dg8wW6z+1ZBfYEHdYZMjgaBKeM3y6KpR/mtGnTyMjI0PlNtYS/vz+JiYlMnz6djz76yOqRmXnfgwYNspnmKjY2lpCQEJcbTbaKNziCpRyuyMKwc+dOK1cGW0gpKS4u1gVfOJtFwpUIIUhMTCQ+Pl57/FhfX4+Pj0+Hu8M4+39o7zyee+65jB49Wvs8ZswYrrjiCu0H4vHjx7W0WMePH9cM4Pr6enr27Enfvn21nMc//vijdr0nJydT7VXdJaPAAwMDyc7Otqr0deLECV3w5ZVXXsn27du1oC9L48DTg75cSXuDL/39/RkzZoxusUJKSV5enpVR3Dzoy8zgwYNtzn1bssQ4q0ddlcnGmSDW9t7/AwYMYMmSJYBp7g8ePKjNueVTru3bt/POO+/ojjFo0CBTzuIrr6SkpIS+ffvalbuzsVz9NdPWVWBPyGTRWTKoZ1vdiIaGBpvGb2l9KUvylnBX5F06ReHv78/ll1/OrbfeqpWXtnSvKCgo0Nps0atXrxaN48GDB1uV3HSEkJAQnQ9wW8aZcTYLQ/N5bC2ApHnwhSsyMLgab29vLeins3D2/9DeeYyKitKlc7ruuuu47rrrtM9lZWXaNW55jRYVFeHl5cWRI0c4cuQIl19+OU899ZS2/dNPP2VNwBqrKPD6hnru+OwO3pj7hkevnNqq9HXy5EnN6JFSEhgYiJ+fnxb09eWXX2p9H3roIZ5++mnAtJp88OBBjwn6ciVt1aOtBV8JIbRFCsu5bx70ZQ64y8vLIy8vj6+++krr27NnT5sBdy2lAHVWj7oik40n6FEhBIMHD2bw4MHMmTNHNzY+Pp5XXnlFm/uMjAwOHjzIwYMHmTJlis6Yf/jhhzlx4oT2gyQxMdFl6VfbQvPVXzNtWQX2hEwWnSWDMoC7EYcOHbLZvqxkGZlVmTYfFwkhiIqK0gIPLKmpqSE3N9em/7E5OC8tLY20tDSrsUIIIiMjWzSQW/LDHD9+PCtXrjzV0OMwVNn4RdjjsNU4M4mJie3KwmBeeWg+j44GkBw6dIiYmJhOycDQFXD2/9BR8xgcHExKSgopKSm69kGDBlFdXU1hYSHZ2dkUFxfz2GOPadd9XFwcT//ytM1I9k83fcqnN3xK7969mThxIt9++622PTU1laioKAYNGmTTLcmdWH6JCyFYv369VmXN0jBLS0tj5MiRWt8vv/ySm2++WQv6slytNAcedVXao0fN49ryA7N50BecMhqbrxYfPnyYDRs2sGHDBq2vwWBg+PDhVqvF4LwedfbeBc/XowMHDuS2204VpjXPfXp6OgChoaHatg8//JCcnBzts8FgYNiwYaSkpHDllVfqfth0JAdKD7Sp3RaekMmis2RQBnA3or1BAy0FX/n7+3PGGWdopW8tkVJy7Ngxmzlgs7OzOXjwIPn5+Rw9ehQvLy/69evHgQMH2LFjB1u3buW3336zMpCjo6PJzc3F19dX8//65O2frY5tS07L7An+/v6EhoZqaXzM0cP2CA0N1dL32JrH1rCcR0/IwOAJ2Ps/2MqmAfr/gzvm0WAwEBUVRVRUFKmpqTr/YIBf402R7Lt27eLEiRNUVlayd+9e1m5ey97AvZw4cULnt1xbW8u5556LlFLbt/l691Qsq6xdffXVWrvlI3UfHx9GjBihC/oyV1nr2bMnJ06c0FbQvv32W6Kjo7tMwJ2r9Whb8Pb2Jj4+nvj4eK666irAZJjt2rWL7OxsKisrKS0tZcuWLSxfvpw9e/awZ88ePv74Y20fL730Ek8//TTXX389vr6+CCHarEed1aHQ9fSo5dynpqbqtr3xxhvaD8H09HQyMzPJysoiKyuLpKQkzQD++eef+dvf/qb9IElJSeGMM85wmXtb9cOnUoSmpqYyderUNu/DEzJZdJYMnq9tFC6jM4OvhBD07duXvn376lZfLWXZtGkTR44csSpXnZiYyA033MCKFSv4+OOPNfmef/55rRrR//73P4dyHBsMBmbOnGnVPm3aNIeqGIEpGMWylKeteXQEy3l0JovE6YQz/wdwfyYLM7Yi2c3Fas4++2zOPvtshg4dSlhYGJWVldq4srIypkyZQnZ2NocOHdIesTb/gu0KWD4SvuGGG7jhhht0lb7Mr549e2p9zaW16+rqrCp9paSkMGrUKKvCQu7GU4JYbV1z/v7+REREMG/ePObNm0dQUBD5+fm61eKGhgZWr17N2rVreffdd/Hx8WmXHnX23j2d9Oh5553Heeedp32ura1l9+7dpKWl6b7/Nm/ezI8//siPP/6otfn6+jJixAhSUlJ44403Oizzh8KaFg1gIcQ9ju5ESmmd8E/hcXhK8JWUki1btlBSUgJgpXzNqwSXXXYZl112GXl5eWRnZ9OrVy/i4uLIycnhuuuu45///Cd9+vSx2odZEVZVVbFlyxays7N17hW9e/fGYDAwe/bsFuvYm+nTpw9Tp07Vfbm39zF183lsbxaJ0wln/g/g/kwW4Hgk+/79+ykvL2fSpEnatv79+7N2rSmVel1dnS7f9y233OJyWTsby0pftigrK2PWrFmkp6eTnZ1tFfT1/vvvc8011wAmf+Tly5eTkpJCdHS028rDe4IedfSaq6ysZPjw4dxwww0IIZBS8sMPP/DFF1+Qnp7OF198wYwZM7R0l7b06MmTJ7U4j+TkZGJjYzEYDE7fu6ezHvXz82PUqFFW+f+vvfZa4uLidC4sBw4cIC0tjZKSEt25TZ06lV69emmuK8nJyQwZMsRt1/3piL0V4D87uA8JKAO4CzBgwACKioo0ReBI0IAQwuXBV45G/kop8fLy4oILLiAxMZHU1FT27NmD0WiksLBQc6cwGo1aoE1jYyMHDhxgyZIlLSrlkJAQnUFs9jk2z4WXlxcRERFa1HZzmgdfOELz4AtnskicbhgMBqZPn05NTQ0ZGRkUFRVhNBrx8/Oz+38w485MFuBcJLslvr6+DB06lKFDhwKcFgZwa/Tt25fly5cDUF5ezo4dO3Tlhy0NiGPHjmnBiuagL/Nq8dixY50qNtQWPEGPtveaE0Lg6+vLBRdcoAv6OnLkCBs3btRWc41GIwcOHODFF1+00qNBQUG6uU9OTmbMmDHs27dPu3cNBkOr92531KNhYWFcfPHFupLSFRUVZGRk6Oa5vLycdevWAfD1119r7UFBQSQmJvLoo49y0UUXAVg9QVU4TovfClLKzgsHV3QKEREROkW9+uH3MVb20/VpAFYHFfOH/6YCppvLMnLXWZyJ/DVj6YdpKzjv5MmTXH755S0WByktLaW0tNQqvZB53wMHDmwx93G/fv2sgi+Cg2taPAdLzMEXzkY/n674+/trVaLa47/mjkwW9jICuLscc1ejV69emruILQICArjwwgtJS0uzCvqaNGmSVuinoaGBF154ocOqrLlbj3aE/ggLC7MK1GpoaOCyyy7TBTump6dTVFTEL7/8wi+/nApIMgd9WQbcDRgwwG6mH6VHTfTs2ZOJEyfq2oKCgtizZ4/ux2BaWhqFhYVs3LhRFx/x0ksv8e9//1s3980DeLsqHlEKWXF60LwKT3Ol3VJ7UVGRy4wKZyJ/HSUwMJARI0YwYsQIq23mlYDmwXnmz4cOHdLSDNnyw+zRowcxMTHMmzeP+Ph4vLy8ePPNU7/QHSmF7Gz0s8JzsJcRoKVyzOZx6n/ZNvr27atlLjhy5IjOMLD07czKyuKBBx7QPpsrfZmNg5kzZ+oi+NuKu/VoZ+kPy6CvK6+8Ums/evSolVFsGfT1ySefaH379u1rlYUiPj4eHx8fqyA2pUdPYc6eEhcXx/z587X24uJi0tPTdXmkt2/fzt69e9m7dy+ffvqp1v7SSy/x5ptvsnTpqQDFhoYGjzL+W8NTSiEjhAgFLgQGATrnHSnlEy6Wy+NpaGjQHrfW1dXh6+vbKY9bncFWCV5Hx9lSGO2ZA2cif12BORiif//+nHnmmQC6R+9m2YQQHDlyxObq8c6dO9m1axf33XcfCQkJdh/Pm904evfurT0adDb6WeE5uDMjQHcmLCyMCy64gAsuuMBqW0BAAHfccYdmnFlW+gLYsWOHZgAvXbqUkpKSNlX6crcedbf+6N+/P+effz7nn3++1lZWVsYvv/xCeXk5RqOR2tpa0tLSeOutt+wGfSUnJxMdHY2U0m5hDltBrO6eB3fQr18/XbAdwJtvvsndd99t9aOkoaGBEydOaP0qKiro168fZ5xxhu4HSXJyshZL40l4TClkIcSZwLdALdAPKAAimj7nAt3GALYVeWvGXt1yT8AVUbfg3By4SgZXYDQa7QZwhIaGMnToUKZNm6YFHpSWlpKTk6MZxDU1NdpjPlsBJFlZWTz++OMYjUZ8fX2JiYnh1ltvbdfj0I6YA4VzeEpGAMUpYmNjW6z0tWPHDl3axtdff52ffz6VAsxc6SslJYXp06czZcoUq/27W496sg41B8d5e3szadIkLeDT8nG+OejLnB/eYDDw+OOPExcXB1gHRYMpJ/LEiRM9dh7cia2AO3Ow46xZs7S2rKwsamtrNUPZkqioKD777DMmTJgAmHyQg4KC3Bpw5zGlkIF/AEuBO4Fy4FygCvgQeMulEnkwztQt9wRcEXXr7Bw4I4MrFZfRaHQohc/x48f55ptvmD17NgaDgZCQEEJCQhg1apTdeTCf89ChQ3n66adZsmQJhw8fJisri/z8/HYZwCo9jufhCRkBFC1jr9IXmNK1xcXFkZ6erqv09fXXX1NSUqIZwNnZ2ZpfcXuD2VylR12VPcFZHNWhYMoe8fDDD2MwGCgvLycjI0NbrYyJiSEqKsrud+XRo0f58MMPiY2NJSkpiR49enjMPHgi5mBHyx97Y8eO1c29ZYW75t9Jf/7zn1m2bJlWXdD8ozAxMZEePXp0uPyeVgo5CbhRSimFEI2An5QyWwjxF+ADTMaxXYQQ/wVmA0ellFbJ+IQQU4EvAXM5leWOuFY0NDTwz3/+UwtUio6O7rAShK6K9nYXAwYMaNfju+ZRt87MgTMy5OXltXlcS6xdu9YhxQ2mnI5r165l+vTpWpuj8+Dt7c3w4cNZtWoVsbGx5OTksG/fPurr69v046i+vp4lS5bw2GOP2aye16dPH4/6sdVd8MSy1grHMecrhlMBiuaVysmTJ2v9Nm/ezL/+9S/AlP924cKFbSrxbCt7QXv1qCv0uCtorw7t1auXtjqckZFhM4i0Od7e3tTU1PDyyy/z8ccfM2zYMObMmcPYsWPbrPe6871nDrizDLozZ06yrJBXVFREVVUVGzduZOPGjVq7EIIbbriBt94yrXvW1dVx9OhRIiMjXfr942mlkC2fNRwBBgOZQCXg6NX0DvAK8D87fX6WUs52cH+AyQC+4447dG3h4eHExsZy9dVXa6UMq6urOXbsGAMGDGjXsr4rshe4G8tqaCYkYOui1X+Bm8e5Iuq2+cqnEBIprWUQQi9DRESEywzgmpoandvD/PmXtyjDxx9/BphWgmtqavD397cb+b8kbwl3Rd7VYuR/QkICQ4cO1aW2cST62dvbm5UrV1JZWcmaNWus+vbs2dMqtZvlj0J7fsqK9qPKWref8HA4YqOCblgYHD5s3d7ReHl5aZUtLYO+AMaMGcM//vEP0tPT2blzZ7Mve8f0qKuyFzijQ12FszoU7GdQsaVH/f39mT17Nl999RV79+7ltdde0wwxcDyLhCvn4XTAy8uL4cOH69pWrVrFsWPHdD7FaWlp7N69m/79+2v9tm3bxsSJEwkNDbUKdhwxYkS7V+k9rRTyb8A4YC+QCjwlhAgDFgA7HNmBlPInIUR0O2S0i7e3N3/605+0YKW8vDwOHz7M4cOHdWmUNm3axLnnnouvry/R0dE6QyE2NpYZM2bYXTnujOwFbaV58FZr+Wst09aYaOkXm779l19+Yc6cOS6Jui0qKtISsgM2lWbzdiGEVeS1mfYE4mVkZLR4LHvtGRkZjBs3zm7kf2ZVZquR/83nwBz9/J+i//BD6Q+cH3K+1XiDwcCqVasoKyuzyl6RnZ2t5VDdscP27RgZGakZxBdeeCHvvfee9jk8PPy0SK7ujsBUVda6/dgyfu21u5Phw4ezaNEi7fP27ds5cOBA0z1sX4/W1NSwbds2vvrqK6699lqrMtdt1aPO6NCWgr/aeu84q0PN52MLe3o0ICCAtLQ0Kisr2bVrly4HriN6FExuJZ70ZNbTsLwWhBBMmDCBSy+9lIEDB2I0GqmpOfWDori4WCuJvXbtWq2oD5h0Y15enrbivmfPHvr16+dQwJ2nlUJ+GDDXo3wE0yruPzEZxL93oTxnCSHSgUJgkZRyV2sDvL29ee2117TPjY2NFBQUkJ2drXvUUVFRQf/+/Tl69KiWMsSS4uJizQBetGgRhw4d0q2kGY1Gt2YvsKSl4K2GhgZyc3PJzc0lNDRUF7wF7Q8aMI9zRdRtYWFhmyvySCmt5tGZQLyWjOnWMI9zNvLf1hy0Nt4cJX3hhRdaySWlpLS01Cpjhfl9Xl4eBQUFFBQUsH79epKSknRf5v7+/lr+3OYryDExMR5XirY57g5M9ZRyzIrOIyUlhaqqKo4ePWq3X11dHRkZGbz88stIKTnzzDPx9/d3So86o0ObG8DtvXec1aHQfj169OhRJk2axMmTJ62+F1obD/C///2Pjz76yCpvbnevstaWa8HMJZdcQklJCQUFBVY5i48dO6Zbbb/qqqtIS0sjMjJSV8Bm7969DBkyBC8vr8472SZEZ5YHbFoB/qYFH+BegFFKWSmEmAkskVIOa2E/NwE3AfTr12+MZd7B1jAajdTV1VFbW6u96uvrdb/Kd+/eTXV1tW7cgAEDdKuq8+Zd2uIxli//XHtvdri3dj9oP2VlZXZTxpgxGAwEBwdrn0tLS3XbHT0HMFVPq6io0OVmbMscmM/fmX3AqXmsrKykoaGh1frv3t7eVnN/4sQJ3ThHZRBC0Lt3b6tzAHg9/3V+PP4jDTTgjTfn9TmPmyJv0vUxz4Oz49uD5TVvMBgoKyvTPjeXpTne3t74+flpL19fX937jqCystLhc3XmWnCG5jJWV1drPpGWspgNBz8/vzb5jU6bNm2blNJ2DWEX4IwedQXTpk1tcdvatalWbW25JjqL6upqZs68qMXtK1asxM/Pj+rqak6ePEmvXr2oq6tzSo86q4ct57G9946zOhSsvwugc/RoTU2NzYUpg8FAQEAAgYGBur+2jGJPvBab01YZXa1Hm1eo27t3L1VVVTrbJSoqivz8fMLDw4mMjARMC3m1tbUtzn1bsadHHU2DtgaYJ6U80ay9F/CFlPJcZ4WUUpZbvF8hhPiXEKKvlLLERt83gDcA4uLiZFsrRrVGYGAg+/bt0z1injJlisOPTSxvyv79+1NfX8/kyZNd8s/88ccf27SS29jYqAVvWSbJbo3mimXq1Kls2LDB4RXt5nNgTofjzD7q6+uZOnWqVjbSkVUUo9FInz59dP+7r776yuHgDUsZ/Pz8bM5DaX0pa0rX6CL/1xxfw7w+83SrD+Z5cHa8s6SmpjJv3jztc0VFhbZqbKs4iL258vb2ZvDgwS36H4eEhLRr1dXRSnDOXgvOYEtGy8eHnVmOuT10tB51BluytKc6oLsxl6u1pL06MC8vj5MnTxIXF+fQAkjz8Wb9YZ5HZ+4dZ3UoWM9DZ+nRgQMHMnr0aKu8uQUFBVayCyEYOnSozrc1JSWF/fv3e/y12Jb7pTP06NSpU7WAO/O8BwcH89JLL/Hcc89psr7xxhvcfPPNCCEYMmSI1dy3ljGkLTiqkafSrPhFE/6AdS3adiCECAeONGWaGA8YgGOu2HdbGT9+POPHj9e15eTksH379nbVLc/Ly+OSSy5h+/btNsvrDh8+XOdY3hLOBh74+vq2yw3CvMoXFhbWLpeOsLAw7X2/fv3atQ/zOFcF4uXm5rZZBvPjHGcj/z0tc0DPnj1JSkoiKSnJapvRaOTw4cMtGscFBQUcOHCAAwcO2Nx3cHCw1fVu/jx48GC7pVJbwxPLELujHLOi/Xh5gS1b0mCANnopOEzz+98Rqqur+eqrr1i7dq1LslC4IhDPGR0K7tOj5niIuLg4rrjiCq1vSUmJlVG8e/du9u3bx759+6yqrD3xxBM6F4r4+PgOeyLWkXSmHjUH3A0fPpzf/e53pKamcujQId3/zd/fn+TkZHbv3s3+/fvZv38/n31msmd69eqlK+7x5ZdfMnjwYOLj49v1XWJXeiHEaIuPSUIIS6dTL2AGpqIYrSKE+BCTId1XCJEP/BXwAZBS/hu4HLhFCNEAVANXys70z2gFZ+qW5+XlkZubS2FhIYWFhVrNejPXX38977zzDmAKDHjuued0BoPZD9PZwINzzjlHV5HH0ejlc85xyW8cwNoNo63jXBGIl5iYqFPejkZRm3/xOhv535UyBxgMBgYMGMCAAQM4++yzrbbX1NSQm5tr00DOzs6mrKyM7du3687XjBCCqKgoKwM5JiZGexRn75e+KkPctQkLazkLRGfR0kKqgwus7aL5/e8IgYGBXHfddSQnJ7Nz5852PU201B/O6lFndahZHk/So3379mX69Om6dJe1tbVkZmbqjGJzlbXmQV8+Pj7Ex8dbVVnr27evzeN5Cp6gRy31/HXXXcd1111HXV2dNvfmV8+ePbW+9fX1XHHFFdTV1Wlluy1/kIwdO1bnAmqL1sz3rZisIQmssrG9GvizIycopbyqle2vYEqT5pHYq1tui+bR3mlpaeTn59s0FCxX3nbt2sUrr1hPQ79+/Xj22Wfb5XdkDjwwl/8088knn+nOryVfUPO4I+0Mzz5y5AhDhw51eh+9evVySSCev7+/FrkKaKvl9ggNDdV8wO1F/jtSw/50yhzg7++vpY5qjpSSY8eO2QzOy87O5tChQ9pr3bp1urHPP/88l1xySYurx+ZgIFWGuOvijlRnHYHlMo0jj52b3/+tYb7/LY3HHTt2sG/fPodcIWpqali/fj3r1q3TKuQVFBQ4pUed1aHQNfSon58fKSkppKSkcP311wMmvbZ69Wq+/vprnWG8f/9+m5l4LIO+LAPu3BH0ZQtP1aO+vr7anNmivLycuXPnkp6ezt69e8nIyCAjI4P33nsPMJU5v/rqq+0eo7UrIQbTEmE2MB4otthWh6moRQc9KPI8nIn29vb2Jjo6mujoaLvHGD58OC+88IJVJH9xcXG7/V4sleTcuXP54osvHB47d+5c7b0rSk+2VemaMZ+Dq8pfTps2zeEqRn5+fkybNk3X5mzkf3fIHCCEoG/fvvTt29fKpQhM/5NDhw7ZNJC9vb2prq5m165d7NplOxnM008/zbBh+jhZVYZY0RWwvP/t0dL9n5iYSHl5eavj6+vr2b17N2+++SYLFizQ2isrK9slt+W946wOha6pR4UQ+Pj4cP755zN79qmyBZWVlboKd+bS2+YMPN9++63WNzAwkMTERN2KZWJiolsC67pqOfc+ffrw8ccfA1BVVcXOnTt1q/SjR49uZQ+tGMBSSnPlge6bG8QCIQSTJk1qMVWIt7c3UkqnUi7FxsZyzz336NqMRiNFRUVs2rTJ4eAHS6SUjB49WreS1tpjGSEEc+bM0ZWNdEXpSS8vr1azDtjC/MjPVeUvDQYDs2fPtplOzpI+ffowdepUq0eOzl4LnXEteTo+Pj7a9dic1NRUTpw40WJwXm5urs4XDBwvQ6xQuBvL+98ejugPeyQmJnLFFVewcOFC3T6aZzlyFEs96qwOhdNLjwYFBXHWWWdx1llnaW3Ng77Mxll+fj6bN29m8+bNunPp6KAvW5wO5dx79OjBhAkTmDBhQpvGOfwsQAhxEXAbEAvMkFIeEkL8AciRUv5of/TpgxCCxMRE4uPjOy3a22AwEBkZyaBBg9oVeCCltOmHGRUVxaOPPkpISIiuva6ujpiYGI4dO0ZYWJh287UneKN58IUzwRNVVVUukcGMwWBg+vTpuoIiRqMRg8Fgt6CIGVvXQmlpKf3793foWnDHtdSVCA4O1h4/NsdoNJKWlqYLvnMkCKa6uponnniCefPmteheMWjQoC4ZzKLoWpjvf3vY296W8XFxcbr2lJQUfvvttzYtqNTV1fHTTz+xf/9+XdCXMzrU8jxORz3aPOjLjLnKWvOAu+ZBX2BKQdo8Z3F7g75s4WlB2Z2Jo2nQrgH+DfwHmE5T8BqmQLj7AbcZwHv39sTyx5GjYXPORv/6+XljNMZg8hJp+/j2HL954IGjQWxTp05l8+bNVo+aU1M/4uab+9kYfxgwResGBARoxsFFF12ky+jgaOCDZdCBM8ETmzZtcioYsSX8/f216kTtwTLyPzU1tc2pylTmgLZjMBhISkoiNzdXU9yOBMF4eXmxfft2Tpw4wbZt29i2bZvNfQ8cOLBFA7lfv36n3Yp8e/SoszrUFRkY3JHFoTn6ks5TtXZHSzobDC2fgyO0Z3x79KjRaOTxxx/XHpn7+Phw77338ve//x1/f38SEhKIiYlpd9BXd9Kjffr04dxzz+Xcc09lkLUM+rJcLT527BipqamkpqZqfW0FfbU34K4rBWW7Gkd/Ft0P/FFK+VHTqq+ZTcATrher43E2+tcd45sHHjhSyjg0NJTQ0FCbqd1a/g4PZ+zYsWRnZ3P8+HHNDzM8PJw///nPWtBBa1kobAUduDoAra3BiIrTh/YEwSQlJXH8+HGKi4tbDM7Lz88nLy+PvLw8XZS3mR49ehAbG8udd97Jl19+qTOQo6Oj25Seqivjbh3qqn04i7MlnZ09h/YY+m3VowaDgR49evDYY4/pgr4sA6vXrFnD7NmzPT7oy1OxDPq67rrrANPT24KCAiujeN++fVZBX2BazTXP/bhx48jKymLo0KF25/50CspuK46ewTBgo432SqCX68RRtIYrAg8c4ddffwVMVefMBkJkZKQWdNBaKUwhhBZ08NJLL5GVlaWtoEVHR1NRUeGQE31HBKApTh/acy2Yr83+/ftz5plnWvWtq6vj4MGDLRrIJ06cICMjgxMnTvDSSy9ZjY+IiGhx9XjAgAHdutyqwnNo670zadIkXQGdyspK3bijR48SGBhoM+grKCiII0eOEBgYCMCePXuIiory+Gpq7sacKjIqKopZs2Zp7VVVVTYD7sypVlesWMHzzz/PvHnzCAwMJCEhwSrgzrLEfXf9TnXUAC4EhgN5zdonA7Yz4Cs6BMvAA3vYCzxoC7b8MB0JvoiNjWXUqFEIIbQE7pYYDAaefvppYmNjW3yc3FEBaIrTh464Fnx9fRk6dKiWuq85paWl5OTkkJeXx7PPPqszkPPy8igqKqKoqIgNGzZYjfXz8yM6OrpFA7lXL7WeoOgcnL13mhuvN9xwA9ddd50W9GVpnPn6+mrGL8AFF1xAfn6+LujL/DcqKqoDz/r0oEePHpx55pm6H/BGo9GqytrAgQM5dOgQW7ZsYcuWLbp9NA+4S05OplevXuzfvx/oHt+pjhrAbwAvW7g/DBRCnAM8BzzeEYIpWsYcvGUPS98iV+NI8IVlCpJHHnmEuXPnWqV2e/DBB7n99tu57rrrKCoqor6+nmPHjpGWlsbSpUsJCQnRGQmWLhyeHPig6Fw6+1oICQkhJCSE8vJy7r//ft22xsZGCgoKWlw9Pnr0KFlZWWRlZdncd58+fVrMjKFQuBpX3zstBX2dPHlSe19TU0NoaCiHDx+2GfT1wgsvaN8f+fn5lJSUMGLECBWY2goGg4Fhw4YxbNgwLr/8clJTUzl48CDHjh1jx44duh8ku3bt0ip4Llu2TNtHSEgIY8aMYdq0acTExBAUFETv3r2Jioo6Lb9THTobKeVzQohg4AdM5Y/XArXA81LKVztQPsVpQHNnfzD5NhUXF5OQ0IdXXrHln/QY5eUR5OXlac7/3333nbb1tttu46efftKtoJlX0cLDw0+7G1XROp4QBOPl5cWgQYMYNGiQzYIIlZWVWuU8WwbysWPHOHbsmOaCpFC0hj4I7xSOBuFBx987lqu//v7+pKWlWVX6MhtnI0eO1Pq+9957PPTQQ3h7ezNixAjdSnFXqLLmCfTp04dp06bpXAnr6urYs2ePbt7T0tI4duwYq1evZvXq1Vpfb29vzjjjDKuV+n79bAXQdy0cthKklA8LIZ4GRmDKC7xbStm+bNoegLORt139+OB8KVJnxpv9MIuLW+oRzr59+3SGguUKwM6dO7VXcy688EJWrlwJmKrFvPDCC8oPU+ERBAUFkZCQYNOHTkrJkSNHtGv+2muvdYOEjuMJOswTZHCnHgXng/Dcha1KX1JKpJT89NNPgCkL0fDhw9m3b59WZc0c9BUdHU1OTo429quvviIuLq7VoC+Fae6TkpJISkrS9IyUksLCQquAu71792rfte+//762j4iICKtgx2HDhnWpubdrAAshAoF/AHMxpT5bDdwhpSzpeNE6ls5KkeOpxwf96oAjJTztje8ImvthWqaB+fLLL3UrZ5araZZleffv388TT+gTlVj6YS5evFjrf/ToUfz9/ZUfpsItCCEIDw8nPDyciRMnerwB7Ak6zBNk8HQ92pUQQuj8S++66y7uuusuXdCX2UCzdBMqLS1lzpw5wKkqa5a+raNGjdKtQiusEUIQGRlJZGQkM2fO1NrNVdaaG8bmWAfzYhOYfrBYzn1KSgpJSUm6gDtPorUV4L8BC4GlQA1wFfAa8Ds7YxSKDqd3796MHj261XKHoaGhPPzwwzoD2dIP85///KfW99577+X999/X/DAt/Y8TExNtZgxQKBQKRcdiK+jLkrKyMmbPnk16ejqHDh2yqrL23XffMWPGDAA2bNjAsWPHSElJYeDAgadNQFdHYavKmtFoJDs728ooPnjwoM2Au9jYWKvV4kGDBnX2qVjRmgE8D7hRSvkRgBDifWCDEMJLSukBv70VCvtER0fz1FNP6dos/TAtb0IpJf7+/jb9MGfPns3XX5tyZR4/fpzf/e53Vv7HKnBJoVAoOp/o6Gidfm7uV2zpZvHKK6/w0UcfAaaFFEu/1vHjx+t8kBW2MRgM2hPayy67TGs/fvw4O3bs0BnFu3bt0p7SLl++XOvbu3dvnn32WT7//HPtfzBixIhWKwe6ktYM4IHAz+YPUsotQogGYABwqCMFUyg6ipb8MN9//33ee+89Dh8+bBWcNGbMGK3fgQMHWLNmDWvWrLHa9+LFiwkICNB+LW/evJnjx48TGxvL4MGDO/XmVigUiu5GaGioVdCXJWPHjqW4uFgL+lq3bh3r1q0DYM6cOXzxxReAKX7kjTfeOK2Cvjqa0NBQpk6dqnMDqq+vtxlwV1JSQkVFBS+//LLW18vLy2bAXf/+/TtE3tYMYC+grllbgwPj3IKjQQOuOpYzgQuniwzO4mnnIIQgIiKCiIgIJk6caLPP8OHDWblypc1IfqPRqCsXvWTJEj788EPtc2RkpOZeMWnSJG666SbgVPCHCs5TuJvOuvc84d73BBmc5XQ4h87k3nvv5d5777UZ9DV58mSt3/bt27nvvvu0z5ZBX+PHj6eiosJjfVs9CR8fHxITE0lMTGTBggWA6fuuqKiIrVu38swzz2irxVlZWVrl2aVLl2r7CA8Pt3KhGD58uNMBd60ZsgJ4XwhhWXbMH3hTCKEl9pNSXuKUFE4wfHgFLaTU7FA8IXDBE2Rwlq54DsHBwVx44YVW7VJK1qxZo3OrSElJ0cru5uXlaVWSfv75Z8rLyzUD+OjRo0RHR2upiJq7VgwbNkytHis6DHfoUU+49z1BBmc5Hc7BHbQU9GWmT58+3HLLLTaDvp5//nmdAfyf//yHuro6kpOTPTroy1MQQjBgwAB69erFgw8+qLWfPHmSnTt36lwo0tPTOXz4MN99950uFaq/v7/NgLu2BLG3ZgC/a6PtfRttCkW3RwiBl5eXbhX3/vvv14olNDQ0kJ+fr60WR0REaP3y8vKoqakhMzOTzMxMq32npqYyZcoUAD7++GN27NihC9SLiopSuY8VCoXCRSQkJPCvf/0L0Ad9paenExoaqtPfixcv1untIUOGaEbZjBkzdEWcFC0TGBjI+PHjdfNlNBrJycmxcqE4ePAgv/76q1XO9JiYGJ0LhT3sfmNKKW9o/6koFApLvL29iY6OJjo62qowyPjx4ykrKyMnJ0dzqbB0rbAMsPv888/5+OOPrfY9aNAgZsyYoSltKSXbtm0jNjaWkJAQFe2sUCgU7aB50FdqaqpOn952221s27aNtLQ0XZW15cuXU19frxl0O3bs4K233tIMtM4O+uqKGAwGhgwZwpAhQ5g3b57WXlpaahVwt3PnTu079PPPP29132rJSKHwEHr16mWVGN4W119/PfHx8bogvcLCQrKzszli4Qx4+PBhxo0bB5jcNswrxpdeeimvvfYal1xyCZGRkR16TgqFQnG6c9ttt2nvLYO+0tPTOf/887VtP/30k92gr7vuugsfH59Olb2rEhISwpQpU7Qno2Ca+6ysLN1q8Q8//NDiPjrNABZC/BeYDRyVUlqVQRKmn1NLgJnASWChlPK3zpJPoegqXHTRRVx00UW6turqavLy8nRtZWVlJCUlkZ2dTVlZGdu3b2f79u1MnDiRRYsWkZiYqBnA//d//8d3331nlf84NjaW/v37q9VjhUKhcABbQV9mJk+ezN///nfNONu7d68W9PX999+zaNEire/NN99MSEiIrsqacnOzj4+Pj5bh6ZprrgGw+93VmbP5DvAK8L8Wtl8EDGt6TcBUcGNCC3019u7tifn82lL73BX10xUKTyEgIEBXAQ/gjDPOID09HSklJSUlmlsFwI033sjw4cO1vlu3btWlA7Jk4sSJbNiwATD5Y73yyiuakRwTE6MqLJ0GtEePKh2qULQNc/lhM+agr/T0dKqrqzVjraamhrfeeotGi1KH/v7+JCQkkJKSwo033qgKM7mATjOApZQ/CSGi7XSZA/xPSimBTUKI3kKICCllkaPHaEvt865aP12haCtCCPr160e/fv2YMGECqamp/Oc//9H1Wbx4MTfffLPO79j83tJNorCwkDvvvFM3NiwsTDOG77//fs2F4+TJk/j5+XWp2vAKx3Wg0qEKhXPYCvoCk87+5JNPdP6teXl5bN26la1bt3LBBRdoBvAHH3zAZ599psubO3jwYHecTpfDk9bTI9EX18hvanPYAFYoFO1j0KBBLZamrK+v194LIbjllls04zg3N5cjR45w5MgRNm7cyO233671ffTRR/nnP/9JdHS05k5hXjmOi4uzKkSiUCgUCvDz82PevHktBn1NmjRJa1+7di2ff/65LugrODiYZ599ljVr1vDEE090quxdCWFacO2kg5lWgL9pwQf4W+DvUsr1TZ9/BO6XUm6z0fcmwJRAlTFjYKu2be3aVIdkmTZtaovbHN2Ho1RWVhIUFOTSfboaJaNr6I4y1tfXU1tbS21tLb1799ZWfHNzczl27JjNMT169NC5bGRnZ+Pn56e9pJT07NnTo32PO/p/PW3atG1SyrEdtX9n9ei0aVNb3OZqHQrd897qCJSMzuNJ8tXW1lJVVcXJkyeprq7m5MmTNDQ0EBUVRVlZmebqJqUkMzOTgIAAAgMDtb/u9CvujHm0q0fNFag64wVE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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–4\n", "\n", "scaler = StandardScaler()\n", "svm_clf1 = LinearSVC(C=1, max_iter=10_000, dual=True, random_state=42)\n", "svm_clf2 = LinearSVC(C=100, max_iter=10_000, dual=True, random_state=42)\n", "\n", "scaled_svm_clf1 = make_pipeline(scaler, svm_clf1)\n", "scaled_svm_clf2 = make_pipeline(scaler, svm_clf2)\n", "\n", "scaled_svm_clf1.fit(X, y)\n", "scaled_svm_clf2.fit(X, y)\n", "\n", "# Convert to unscaled parameters\n", "b1 = svm_clf1.decision_function([-scaler.mean_ / scaler.scale_])\n", "b2 = svm_clf2.decision_function([-scaler.mean_ / scaler.scale_])\n", "w1 = svm_clf1.coef_[0] / scaler.scale_\n", "w2 = svm_clf2.coef_[0] / scaler.scale_\n", "svm_clf1.intercept_ = np.array([b1])\n", "svm_clf2.intercept_ = np.array([b2])\n", "svm_clf1.coef_ = np.array([w1])\n", "svm_clf2.coef_ = np.array([w2])\n", "\n", "# Find support vectors (LinearSVC does not do this automatically)\n", "t = y * 2 - 1\n", "support_vectors_idx1 = (t * (X.dot(w1) + b1) < 1).ravel()\n", "support_vectors_idx2 = (t * (X.dot(w2) + b2) < 1).ravel()\n", "svm_clf1.support_vectors_ = X[support_vectors_idx1]\n", "svm_clf2.support_vectors_ = X[support_vectors_idx2]\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10, 2.7), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\", label=\"Iris virginica\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\", label=\"Iris versicolor\")\n", "plot_svc_decision_boundary(svm_clf1, 4, 5.9)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.legend(loc=\"upper left\")\n", "plt.title(f\"$C = {svm_clf1.C}$\")\n", "plt.axis([4, 5.9, 0.8, 2.8])\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n", "plot_svc_decision_boundary(svm_clf2, 4, 5.99)\n", "plt.xlabel(\"Petal length\")\n", "plt.title(f\"$C = {svm_clf2.C}$\")\n", "plt.axis([4, 5.9, 0.8, 2.8])\n", "plt.grid()\n", "\n", "save_fig(\"regularization_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Nonlinear SVM Classification" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAocAAADUCAYAAADukYmSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAUSElEQVR4nO3df5Dcd13H8eebpBFocaIULoZ0CJ0pDBUJ2hOrHYZrASdoW9SRoR1xmIEx4AgGxw5a6kjlZGCE4dfATCejbUfAomJBKFBSJUtGG2gbciWtJaWghSOXRqYuJq3kms3bP27zmWuSo3d7u9/PZff5mNmZ3e/u916f3fvuJ69897vfi8xEkiRJAnhS7QFIkiRp5bAcSpIkqbAcSpIkqbAcSpIkqbAcSpIkqVi9lAefffbZuXHjxp7DHnnkEc4888ye11+Omtnmm++233v+7t27f5CZz+jjkFac03luNb9u/r59++h0Opx//vlV8kf5tR+G/AXn18xc9OWCCy7I5dixY8ey1j9ds803322/d8BduYR56nS8nM5zq/l181/60pfmpk2bquWP8ms/DPkLza9+rCxJkqTCcihJkqTCcihJkqTCcihJkqTCcihJPYqI6yPiYETcc8Lyt0TEvoi4NyL+ahDZ69ZBxNzl4osnyvV16waRJmmlaOK9bzmUpN7dCGyevyAiLgZeBbwwM38WeN8ggh96aGnLJQ2HJt77lkNJ6lFm7gQePmHx7wPvycwj3cccbHxgkrQMSzoJtiTpCT0XeElEvAv4EXBVZt554oMiYguwBWBsbIxWq7XEmIkF71n6z1qew4cPN55p/px2u02n06mWP8qvfb38iQXv6ddYLIeS1F+rgZ8CLgR+EfiHiDi3e8LZIjO3AdsAxsfHc2Jiom8D6OfPWoxWq9V4pvlz1q5dS7vdrpY/yq/9Ssg/Ub/G4sfKktRf08DN3T9AcAdwDDi78pgkadEsh5LUX58BLgGIiOcCa4Af9DtkbGxpyyUNhybe+5ZDSepRRNwE7AKeFxHTEfEG4Hrg3O7pbT4JvO7Ej5T74cAByJy77NjRKtcPHOh3kqSVpIn3vsccSlKPMvPKBe56baMDkaQ+cs+hJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJPUoIq6PiIMRcc+8Ze+NiG9GxDci4tMRsbbiECVpySyHktS7G4HNJyy7DXhBZr4QuB+4uulBSdJyWA4lqUeZuRN4+IRl2zPzaPfmV4ENjQ9MkpZhde0BSNIQez3w96e6IyK2AFsAxsbGaLVaPYccPnx4Wesvl/n18tvtNp1Op1r+KL/2w5xvOZSkAYiIa4CjwCdOdX9mbgO2AYyPj+fExETPWa1Wi+Wsv1zm18tfu3Yt7Xa7Wv4ov/bDnG85lKQ+i4jXAZcCL8vMrD0eSVoKy6Ek9VFEbAb+BHhpZj5aezyStFR+IUWSehQRNwG7gOdFxHREvAH4CPA04LaImIqI66oOUpKWyD2HktSjzLzyFIv/pvGBSFIfuedQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQkiRJheVQ0siLiFdHxJGIePa8ZR+KiG9HxFjNsa1U69ZBxNzl4osnyvV162qPTBqsUdj2LYeSBJ8C9gJ/BhARVwFXApsz86GaA1upHlrgVVlouTQsRmHbX117AJJUW2ZmRLwd+HxEfBu4BrgkM78VEecAHwOeCTwG/EVm3lxxuJI0UJZDSQIyc3tE3An8JXBZZt7Zveso8NbMnIqIZwK7I+LWzHy02mAlaYD8WFmSgIi4BNgEBFA+IMrMmcyc6l4/CPwPcHaNMUpSEyyHkkZeRGwCbgbeAnwGePcCjxsHzgC+19jgJKlhlkNJI637DeUvAO/PzOuBdwCviIiJEx73dOBvgTdkZjY9zpVmbIHvcC+0XBoWo7DtWw4ljayI+GngVuCWzHwnQGbeA/wj8/YeRsRPAJ8G3p2Zt9cY60pz4ABkzl127GiV6wcO1B6ZNFijsO37hRRJIyszHwaef4rlrzl+PSICuBH4cmZ+rLnRSVIdA99zWPNkkSvlRJUzh2bYOrWVA4fr/LfC/NHLr73t187vs4uA1wC/ERFT3cvPPdFKEfFHEXFvRNwTETdFxJMHP1RJWr6Bl8OaJ4tcKSeqnNw5yd4f7mXyK5PNBps/svm1t/3a+f2Umf+WmU/KzBfNu+z9cetExLOAPwTGM/MFwCrgiibGK0nLtaSPlfft28fExMQSI1oL3rP0n7VUNbPnHFlzhDsuvINclVz3tevY86E9rJld00i2+aOc31rwnma2/dr5K8Jq4CkR8RjwVGB/5fFI0qJ4zOGAPbjxQZK5LzYmyYPPfpDzvnWe+eZriGXm9yPifcB3gf8Dtmfm9vmPiYgtwBaAsbExWq1Wz3mHDx9e1vrLZX69/Ha7TafTqZY/yq/9MOfHUs7IMD4+nnfdddfSAmLh+wZ9Moia2TB3rNm5Hz6XHx39UVn2lNVP4Ttbv8O6swZ/8JX5o5tfe9vvZ35E7M7M8eWNqFkR8VPAPzF3rGKbuW8/fyozP36qx/cyt87XarWq7pE1v17+xMQE7XabqampKvmj/NoPQ/5C86unshmgyZ2THMtjj1vWyU5jx56ZP9r5qurlwH9m5n9n5mPMnWD7VyqPSZIWZeDlsObJImufqHLX9C5mO7OPWzbbmeX26WZOk2b+6ObX3vZr568A3wUujIindk+F8zLgvspjkqRFGfgxh/NPCtn07tea2QB73rjHfPOr5Nfe9mvn15aZX4uITwFfB44Ce4BtdUclSYvjF1IkaQAy8x3M/Sk+STqteMyhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJNW2f//c3xxczGXLlpNWf+773rf49a+99uT8yy5b/PrbTj5d4wVbtix+/c997uT89esXv/7u3SetPnHxxYtff//+3l/7U/1dyN27F5+/fv3J63/uc4vPvuCCk1a/dP9+pu6+e3HrX3bZyfnXXuu2N8rb3gIsh5IkSSosh5IkSSr8CymSVNv69Sd/5LQE9191FetvuaX3/B/z8dJi7N62jYmJid5/wDKeO0Brx47e89evh8zewy+4YHn5l122rPxb1q/n4099KlNTU739gGuvPfXHvYvktneab3sLcM+hJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJA1ARKyKiD0RcUvtsQyzmUMzbJ3ayoHDB2oPRQ3zdz84lkNJGoytwH21BzHsJndOsveHe5n8ymTtoahh/u4Hx3IoSX0WERuAXwf+uvZYhtnMoRlumLqBJLlh6gb3II0Qf/eDtbr2ACRpCH0QeBvwtIUeEBFbgC0AY2NjtFqtnsMOHz68rPWXq1b+B+7/AEc7RwF4rPMYb7rpTbz1vLc2Po6ar3+73abT6VTL93c/nO89y6Ek9VFEXAoczMzdETGx0OMycxuwDWB8fDwnJhZ86BNqtVosZ/3lqpE/c2iG7f++naM5VxCO5lG2H9zOdVdex7qz1jU6lpqv/9q1a2m329Xy/d0P53vPj5Ulqb8uAi6PiP8CPglcEhEfrzuk4TO5c5JjeexxyzrZ8fizEeDvfvAsh5LUR5l5dWZuyMyNwBXAlzPztZWHNXR2Te9itjP7uGWznVlun7690ojUFH/3g+fHypKk086eN+4p12t/tKdm+bsfPMuhJA1IZraAVuVhSNKS+LGyJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEmSCsuhJEk9mjk0w9aprRw4fKD2UBo3ys992FkOJUnq0eTOSfb+cC+TX5msPZTGjfJzH3aWQ0mSejBzaIYbpm4gSW6YumGk9qCN8nMfBZZDSZJ6MLlzkmN5DIBOdkZqD9ooP/dRYDmUJGmJju85m+3MAjDbmR2ZPWij/NxHheVQkqQlmr/n7LhR2YM2ys99VFgOJUlaol3Tu8qes+NmO7PcPn17pRE1Z5Sf+6hYXXsAkiSdbva8cU+53mq1mJiYqDeYho3ycx8V7jmUJElSYTmUpAGIiM0RsS8iHoiIP609Hg2nI2uO8MBLHvDLIOory6Ek9VlErAI+CrwSOB+4MiLOrzsqDaMHNz7II09/xC+DqK885lCS+u/FwAOZ+R2AiPgk8CrgP0714H379i3ruK12u83atWt7Xn+5zK+Tf2TNEWZ+aQYCrvvadez50B7WzK5pdAyj+toPe77lUJL671nA9+bdngZ+af4DImILsAXgjDPOoN1u9xzW6XSWtf5ymV8nf3rTdLl+jGPc/zP3s+HuDY2OYVRf+2HPtxxKUv/FKZbl425kbgO2AYyPj+ddd93Vc1jtb4ya33z+zKEZzv3wuXC0u2AVPPrcR7n1o7ey7qx1jY1jFF/7YcqPONVU5TGHkjQI08A5825vAPZXGouGkCei1iBZDiWp/+4EzouI50TEGuAK4LOVx6Qh4omoNUh+rCxJfZaZRyPizcCXgFXA9Zl5b+VhaYgcPxH1xMQE7XabqampugPSULEcStIAZOYXgC/UHockLZUfK0uSJKmwHEqSJKmwHEqSJKmIzHziRx1/cMR/Aw8uI+9s4AfLWH85amabb77bfu+enZnP6NdgVqLTfG41f7TzR/m5D0P+KefXJZXD5YqIuzJzvLHAFZJtvvlu+/XyR0Ht19j80c0f5ec+zPl+rCxJkqTCcihJkqSi6XK4reG8lZJtvvlu+xqk2q+x+aObP8rPfWjzGz3mUJIkSSubHytLkiSpsBxKkiSpqFIOI+KqiMiIOLvh3MmI+EZETEXE9ohY33D+eyPim90xfDoi1jac/+qIuDcijkVEI1+9j4jNEbEvIh6IiD9tIvOE/Osj4mBE3FMh+5yI2BER93Vf960N5z85Iu6IiLu7+X/RZH53DKsiYk9E3NJ09qhyfm1+fq0xt3Zzq82vNefWbr7z6wDn18bLYUScA7wC+G7T2cB7M/OFmfki4BbgzxvOvw14QWa+ELgfuLrh/HuA3wJ2NhEWEauAjwKvBM4HroyI85vInudGYHPDmccdBf44M58PXAj8QcPP/whwSWZuAl4EbI6ICxvMB9gK3Ndw5shyfq02vzY6t8KKmF9vpN7cCs6vMMD5tcaeww8AbwMa/yZMZv7vvJtnNj2GzNyemUe7N78KbGg4/77M3Ndg5IuBBzLzO5k5C3wSeFWD+WTmTuDhJjPnZc9k5te71w8x9yZ+VoP5mZmHuzfP6F4a2+YjYgPw68BfN5Up59fuzUbn1wpzK1SeX2vOrd1859cBzq+NlsOIuBz4fmbe3WTuCWN4V0R8D/gdmv+f7XyvB75YMb8JzwK+N+/2NA2+eVeSiNgI/DzwtYZzV0XEFHAQuC0zm8z/IHNF5ViDmSPL+fVxnF9HiPNr/63u9w+MiH8B1p3irmuAtwO/2u/MxeZn5j9n5jXANRFxNfBm4B1N5ncfcw1zu8Q/0c/sxeY3KE6xbOTOnRQRZwH/BLz1hL0rA5eZHeBF3eOvPh0RL8jMgR8jFBGXAgczc3dETAw6b1Q4v9abX1fY3ArOr4Dz66Dm176Xw8x8+amWR8TPAc8B7o4ImNvl//WIeHFmHhh0/in8HfB5+jx5PVF+RLwOuBR4WQ7gJJNLeP5NmAbOmXd7A7C/0liqiIgzmJu4PpGZN9caR2a2I6LF3DFCTRxAfhFweUT8GvBk4Ccj4uOZ+doGsoeW82u9+XWFza3g/Or8OsD5tbGPlTNzb2Y+MzM3ZuZG5jbsX+jnxPVEIuK8eTcvB77ZVHY3fzPwJ8Dlmflok9mV3AmcFxHPiYg1wBXAZyuPqTEx96/03wD3Zeb7K+Q/4/g3NiPiKcDLaWibz8yrM3ND971+BfBli+HgOL86v+L82nT+UM+vo3aew/dExD0R8Q3mPn5p9KvvwEeApwG3dU/3cF2T4RHxmxExDfwy8PmI+NIg87oHh78Z+BJzBwv/Q2beO8jME0XETcAu4HkRMR0Rb2gw/iLgd4FLur/vqe7/9JryM8CO7vZ+J3PHxHhKGQ3KyM6vTc+tUH9+rTy3gvPrQPnn8yRJklSM2p5DSZIk/RiWQ0mSJBWWQ0mSJBWWQ0mSJBWWQ0mSJBWWQ0mSJBWWQ0mSJBWWQ/VVRLw6Io5ExLPnLftQRHw7IsZqjk2STmfOr2qKJ8FWX3X/pNGdwJ7M/L2IuAp4G3BRZn6r7ugk6fTl/KqmrK49AA2XzMyIeDtzf0Lq28A1wCXHJ66I+CzwEuBfM/O3Kw5Vkk4rzq9qinsONRARcTvwYuCyzPzivOUXA2cBr3PykqSlc37VoHnMofouIi4BNgEBPDT/vszcARyqMS5JOt05v6oJlkP1VURsAm4G3gJ8Bnh31QFJ0pBwflVTPOZQfdP9Bt0XgPdn5vURcQfwjYiYyMxW3dFJ0unL+VVNcs+h+iIifhq4FbglM98JkJn3AP+I/7uVpJ45v6pp7jlUX2Tmw8DzT7H8NRWGI0lDw/lVTfPbympURPwLcwdTnwk8DLw6M3fVHZUknf6cX9UvlkNJkiQVHnMoSZKkwnIoSZKkwnIoSZKkwnIoSZKkwnIoSZKkwnIoSZKkwnIoSZKkwnIoSZKk4v8BjmI3hG90eSoAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–5\n", "\n", "X1D = np.linspace(-4, 4, 9).reshape(-1, 1)\n", "X2D = np.c_[X1D, X1D**2]\n", "y = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n", "\n", "plt.figure(figsize=(10, 3))\n", "\n", "plt.subplot(121)\n", "plt.grid(True)\n", "plt.axhline(y=0, color='k')\n", "plt.plot(X1D[:, 0][y==0], np.zeros(4), \"bs\")\n", "plt.plot(X1D[:, 0][y==1], np.zeros(5), \"g^\")\n", "plt.gca().get_yaxis().set_ticks([])\n", "plt.xlabel(\"$x_1$\")\n", "plt.axis([-4.5, 4.5, -0.2, 0.2])\n", "\n", "plt.subplot(122)\n", "plt.grid(True)\n", "plt.axhline(y=0, color='k')\n", "plt.axvline(x=0, color='k')\n", "plt.plot(X2D[:, 0][y==0], X2D[:, 1][y==0], \"bs\")\n", "plt.plot(X2D[:, 0][y==1], X2D[:, 1][y==1], \"g^\")\n", "plt.xlabel(\"$x_1$\")\n", "plt.ylabel(\"$x_2$  \", rotation=0)\n", "plt.gca().get_yaxis().set_ticks([0, 4, 8, 12, 16])\n", "plt.plot([-4.5, 4.5], [6.5, 6.5], \"r--\", linewidth=3)\n", "plt.axis([-4.5, 4.5, -1, 17])\n", "\n", "plt.subplots_adjust(right=1)\n", "\n", "save_fig(\"higher_dimensions_plot\", tight_layout=False)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('polynomialfeatures', PolynomialFeatures(degree=3)),\n", " ('standardscaler', StandardScaler()),\n", " ('linearsvc',\n", " LinearSVC(C=10, max_iter=10000, random_state=42))])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.datasets import make_moons\n", "from sklearn.preprocessing import PolynomialFeatures\n", "\n", "X, y = make_moons(n_samples=100, noise=0.15, random_state=42)\n", "\n", "polynomial_svm_clf = make_pipeline(\n", " PolynomialFeatures(degree=3),\n", " StandardScaler(),\n", " LinearSVC(C=10, max_iter=10_000, dual=True, random_state=42)\n", ")\n", "polynomial_svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–6\n", "\n", "def plot_dataset(X, y, axes):\n", " plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n", " plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n", " plt.axis(axes)\n", " plt.grid(True)\n", " plt.xlabel(\"$x_1$\")\n", " plt.ylabel(\"$x_2$\", rotation=0)\n", "\n", "def plot_predictions(clf, axes):\n", " x0s = np.linspace(axes[0], axes[1], 100)\n", " x1s = np.linspace(axes[2], axes[3], 100)\n", " x0, x1 = np.meshgrid(x0s, x1s)\n", " X = np.c_[x0.ravel(), x1.ravel()]\n", " y_pred = clf.predict(X).reshape(x0.shape)\n", " y_decision = clf.decision_function(X).reshape(x0.shape)\n", " plt.contourf(x0, x1, y_pred, cmap=plt.cm.brg, alpha=0.2)\n", " plt.contourf(x0, x1, y_decision, cmap=plt.cm.brg, alpha=0.1)\n", "\n", "plot_predictions(polynomial_svm_clf, [-1.5, 2.5, -1, 1.5])\n", "plot_dataset(X, y, [-1.5, 2.5, -1, 1.5])\n", "\n", "save_fig(\"moons_polynomial_svc_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Polynomial Kernel" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svc', SVC(C=5, coef0=1, kernel='poly'))])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVC\n", "\n", "poly_kernel_svm_clf = make_pipeline(StandardScaler(),\n", " SVC(kernel=\"poly\", degree=3, coef0=1, C=5))\n", "poly_kernel_svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuQAAAEQCAYAAAD4T2H3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABnXklEQVR4nO29eXxU93X3//5qAwlJSEhi34yRwYBtcLBjYxNwcJrYsUPjOhtJnzh9Gif5xd2eJm22tuny1G2fpllqt66fPrGdhcSNGy8QO7GtYAI4xLLNImPAEmYRCMQwI0BCEqPRfH9/3BkxGs2MZrnr3PN+veYlzZ0795753jtnPvfc8z1Haa0RBEEQBEEQBMEZSpw2QBAEQRAEQRD8jAhyQRAEQRAEQXAQEeSCIAiCIAiC4CAiyAVBEARBEATBQUSQC4IgCIIgCIKDiCAXBEEQBEEQBAcRQS6MQim1WSn1qNN2CKCUukkptVcpFVZKveS0PYIg5I74VG+hlFqvlGpXSkXkuAl2IoJc8BVKqb9VSh1QSl1QSvUopVqUUquctisN3wb2AJcDdwEopeYqpTbF7D+jlPqOUqoi3x0opZYqpZ5QSr2tlNJKqa8XsK1pSqlvK6UOKaUuKqVOKKWeU0rdXsA2dYrHZ/PdniAI5qKUuksp9QulVCD2/VybYp0JSql/jfmsC0qpZ5RSs+23Niv+E/hvYB7wRwBKqauUUluVUgMxv/aXSimV7w6UUu+KjcGJ2Jjdk2IdpZT6ulKqK7bfl5RSS5PWMW1clVJrYxePZ2L7OxDb9vw8t3dPGv89MZ/t+QER5ILtKKVKlFKlDu3+IPB54CrgZuAw8HOl1DSH7MnEQuCXWutOrXUoNmY/A2qA1cDHgLuBbxSwjyrgCPA1jLHIi5jTfh14L/Bl4Grg1pi9DxVgH8CngRkJj8cK3J4gFBUO+9RJwMvA/8qwzreA38HwWauBWmCzgzanRClVBzQCv9Ban9Ban1NK1QIvAN3AdcAfAl8k8+cdj2rgDQzBP5BmnT8D/hT4g9h+TwMvKKVqEtb5FiaMq1LqM0ALEAQ+BFwJ/E8Mjfi1XLaVRD+jffcMrfVgAdsrbrTW8vDpA0OMPQr0YTibrwCbgUcT1qkA/hE4DlwAWoH3Jm3n/RhCdxD4FfBRQAPzY6/fE9vH7RhOKAIsy3LbSzBEXS+GQ/oRMN3EMaiN2frePN7378DJ2OfeD3wk4fW7gDbgItAJfBVQ2YwrMD9mU+LjHuA2IArMSdjOJ2L7rzVhLN4Avp7ne58FuoDqFK/VF2CTBu52+rsiD3lk8/CzT8UQshpYm7R8MhAGPp6wbE7Ml+Xqd2cCP8QQjv3AbuCWhNc/A3TE9tcBfDqFLQ/HPncvsBVYGXttbQq/uxb4HHAeqEzYzteAEyT49ALGrQ+4J2mZwvht+WrCssqYzZ8xc1yB2Ri/U99J83pdnp/rHqDPzu+f1x+OGyAPBw8+/FvMqbw35sx/EnM8jyas80NgJ/AuYAFwX8wJXBN7fW7sy/wvwCKMiO2xFD8eEYwoyk3AFRhR3vG2PQM4g/EDcyVG1HUT8ApQElvn4zGHlunx8TSfvwL4AnAOmJbDuClgB/Am8L6Y7bcBH4y9/g5gGPjr2GeN2/gH2YwrUApMx/hB/aPY/5XA3wD7kmxpio31LQnHY7zxeCjN58pLkANTMH4EvpLFus+NZ1/S+hrjHD2DIS4+Gz/28pCH2x742KeSXpC/O7a8KWn5PuCvcxjbSUA7hu99F5dS+eK+74PAUOwzX4ERWR4C7oy9roDtGBcj12Pcgfzb2PGZgfF7sCRm610YfrcC+B7wsyRbroutd1ns+eosxiylfyS1IF8Q2/51Sct/Bjxm8rj+SWw7M8dZL6ffltg5OgwcxbhA3AyscPo76uaH4wbIw6EDb9wyu8joq+tq4CyxH4+Yw4sCc5Pe+xTwb7H/78eIDidGf7/C2B8PDbwjYZ1stv03QEvS6/WxbV0fe14Tc6yZHjVJ27gj5jyiGD+e1+c4du+JvffKNK//ECPVJHHZ14Hj2X722PNRjhojspO8XYXxw/yx2POyLMZjahq78xXk18eOyQezWHfWePYlrf8XGKlFyzFu314Avub090ce8kh++Nmnxt6XTpBviPkolbT8l8B/5DC+n8aIEDemeX0H8N2kZY8C22P/vzvmUyuT1tkN/Fm6zwA8n2K7c2Pr3Rh7XpnFmE1JY3cqQb4qtv3kY/ldjHQaM8f134BzWayX028LcCPwSQzfvRp4AuOuRrPT31W3PsoQ/MrlGFf/v44v0Fr3KaXaEta5FkPwvZk0f2UCxpceYDHQqmPfwBi/SbG/CIbjy2Xb7wDepZTqS2P/K1rrXgwnnQtbMJxEI4aT/y+l1I1a65NZvn8FcFJrvT/N61diRDIS2Q78VSwfMZvPng6dabnWOoJxq9ZOsp7cpLU+kcuGtdZ/m/B0dyw38qvA3+WyHUGwAT/71HxQpPdnqVgB7NVan0nz+pUYgjWR7cAHYv+/AyOlKJA0PhMxPnsmku1Uicu11gNY43dT7Xe8Mct1XLNaP9ffFq31r0n4LiilXsY4X/8AIw9fSEIEuX/JRkSVELtthnHrL5H4RJRsv/wXtdbDOW67BEPYfiHF9roBlFIfB/5jnH1/Rmv9w/gTrfUFDMfSAexUSrUDv49x+zIbxhu7TGOiye6zp+IUxu3pRBoxUlzi4zEXI5UmEz/QWptZqaQd4/NcCTyZaUWl1HMY0ZK0aK2rM7z8G6BWKTVNa92dq6GCYCG+9anjcArDRzUCgYTlUzHy47Mlm/FNNW7xZSUYnzGV/zmfYZunMNJXEpka+xsfs9UY6XiZ+Hut9d+Ps07iPonttzNpv90J65gxrm8Bk5VSM7XWXelWKvS3RWs9rJR6FWjOwTZfIYLcv3RgOO0bgLcBlFKTMPIeD8XW2YXhBKdrrbek2c5+YH3Ssuuz2H82234d+DBwVGud/AMT5xlSR48SGU+4lWBEkbLldWCGUurKNFHyNzHSLBK5GSNlpVcplc1nT8Wvga8ppWZrrY/Hlr0H4zb5a7HnXRjR/0xk+vHJGW1UgPkFcJ9S6jta61HRN6VUndb6bOzp72Pc3s2X5RgT3c5mXk0QbEd8ampewxiX9wAbAWKl+a7EyIHPlteBTyilGtNEyfdj+NnEKPnNXBKRrwPTgKjW+u0c9vtr4B+VUhP1pQoh78HwtUdiz19lfL8bymGfhzEE93sw5s4QKxe4GqPCC5g3rk8A/wB8iRSR6wT/XdBvS6xM5NUYpXyFVDidMyMP5x4YVUI6Mb7QS4HHGTsB6QcYkzLuxphoshIjunJX7PV5GILwnzEmIN2F4aQ0MC+2zj2kmG2dxbZnYsyG/ynwztg6t2LkUo/JYczi89ZipDq8EyMH8B0YzvsicHUO2ynBcNJvYkzeuiw2hr8de/1ajMksX+fSpM5eRk/qzPjZY+sk55CXYlRu+SXG7dtbMXLg/7WAc6ACw8kuxxAUD8X+X5jjdi7DqApwAKNs1iKMW++fA47ladudGClFyzBuKf8+xgTcbzv93ZGHPFI9/OZTY9ucEvMZa2M2/n7s+fSkcTkR29cKjLTB3UBpDvuZhHFhsx1DmF6GkY4Sn9T52xgC9fMYUdhUkzq3xXzobbH334gx+X51bJ1UOeSTMcTxj2O+6K7YMf3TAs6Tai753X7gL2P/z01Y589j+7krtt8fY4jimoR1Ch7X2Hb+P4z5B4/FjuO82Nj8K/B/8/yMf4Xx+7gg9tm+GzseOc3Z8tPDcQPk4eDBNxzc9zCE32mMCXSbGf3jUY4hLN/GmK1/CiOCkjiZ6A6M216DMYf3qZhTmxZ7/R5S/3hks+1mjCv4HozbrgdjTqIij89bhZFS0YXxg9cFPA28M2m9R4Ej42yrDvi/GLcKBzHE+YcTXo+XPQyTuuxhNp891WSfubFj1I9R+utfgQkFnAPzGVvqSwMvJaxzDwkTyjJsa0bMnrcTxvc54LY8bXsfRtSvF2MyZxtG1Zkyp7878pBHqofffGqCLal8yNcT1pkY20e8XOEmEsq3xtZ5KdHvpNnXbIyLnLOx7exitHj+LJfuVKQqe1iD0XDtOJd884+By2Ovp5uYehVGGsggRuDhryig5CGpSyzqpPNExY5lvLTuVmBZ0nZMGdfYeuswytcGY/uLnxfz8vyM38S4OLyI8V34BbFJsPJI/VCxgRME01BK/RHGbP56rXXUaXtyRSm1FTigtf6M07a4AaXUX2NE3K7RxsQeQRBsxOs+NRuUUkcxyubd77QtxYSMq3eQHHKhYJRSn8fIcwtg5E/+BcaVvud+OJRSk7l0m1gwuB24T8S4INhDMfnUbIi1hL9IYV2HhSRkXL2FIxFypdR3MW7JndZaL0vx+lqMVILDsUU/1Vr/jW0GCjmhlPomxkShBoxbgT8G/kZrHXbUMEEQBA8iPlUQ/IdTgvxdGDl238sgyL+gtb7DZtMEQRAEQRAEwVZKnNip1vpX5FYCSBAEQRAEQRCKEkcEeZbcqJTao5R6LpYHJQiCIAiCIAhFh1sndb6OUWqnTyl1O/AUabo7KaXuBe4FmDhx4jtmz5prigE6oeGXyr4zeJbbjqJsuxbKLyVJo03/3FYgdpqLO+0c+110p51jGc9Oo9RVFFQUXVJCUktv02hvP3RGa91kycYxzw9b6XfH7ssqP2xuGmixnOtuoVjtVGnPO6u/R8U5ngXta3gYdBRdqkEpVEkJ8ePQkcEXO1b2UCk1H9icKoc8xbpHgJU6dXeuEZoXLtL/+cDrBdnVH7zUuby+obSgbaUjGH6dhoprLdl2JHhuzLKqhok5b+dU+A2mV4x7aBxH7DQXt9ipgpc6QVc01I55vTN8kDkVi+w0KS/GszPY3sOcg5sZuOwk3e9ZzNQ6a7pKL5t322ta65WWbDyJ5oWL9P/L0Q8PBPtH/q9rsCdYcSa8m8aK5aZsKxrsGfW8qqHKlO0CdIX3MbPC/TeJxU5zSWVnWfBU2vVLG+ostig1R8IdzK9Y6Mi+c8EOO4PtIapat9Jfs4Mza6qpWnbdGJ++fFZ6X+zKCLlSajrQrbXWSqnrMVJrglbu0w4hbhXJIjwfAS4IbmA8IV5MBFraqDq0idcWHqJyxkzMk3DewQkhbhZWinDBv8RFt6ocoqx3rAB3SngL4xM9doLGeZ3suvVy5jevy/n9jghypdSPMDpVNSqljmN0vSoH0Fo/hNGE5HNKqQhGJ7GPaotC+V4V4iLChWLBTyIcjKh4VetLDJa8xoUVQapWrWBeHs7by3hViIsIFwolU5Q7TmlDHYTPiPj2GNGhkNE7NU8cEeRa64+N8/oDwANW2uBFIZ4owkWAC14lUYCDP0R4ItFjx5nZfJbQolrmzn8/enqd0ybZRlyIe1WEiwAX0pGN0AaJcBcr3T/fyoSuHbxyyxnKU095HBdXpqxYideEuIhwoRjwuwhPRvf3Gn99Isa9JsQlEi5A9iI7joht/xFoaWNi5xZOL9hDxd1zqF22Lu+5QL4S5HEx7nYhLiJc8DrJAhxEhCcT8YHI85IQFxHuD1QkdW52OkRkC+kItoeo7u6A5m4m3Lqy4NRDXwhyLwhxEeGClxEBnj2lA0GocdoKa/GqEBcR7k1yimRXisgWzGPylD4GGuuobCq85HZRC3K3p6fIxEzBi6QS3yACPBtCm19iQtfLvHpLd955hm4nXkvczWI8GuyBygjR3h4R4S4mF6GdtcgOZ6yeLAhZEWwPMWHnM5yse4MzM6pNqZJVtILczVFxHRkm0muIcRHhgpsR8W0OI5VVhrYRumWY8iXNRVtZRaFcKcaTU1JKykpEjDuITIIUvEo8b/zwgj1ULJ+Tst54PhSdIHdzVHwkIl4pQlxwD4miW1UOoXr9VYbQauJivGzWq+gV01l4w51Om+Qr0qWknA07YY1/yLq8nyB4CLPzxhMpKkEev1XqJiGeKjf8fNh90SOh+EgX3U4mUXSrcKmIcAtoqO1joHEy5YsXO22Kb5DccOtJFN2pGtmI4BaKETPzxhMpKkEO7hHjMklTKJRsBXUmRFw7T/TYcS72d3F4Rp8vu3HaiYhw88m6Xbs0shGKHCvyxhMpKkGuUE6bIEK8CDFDGCengmSDiGlvE2zvIVpzlorzP+HotSVULbvZlDxDYSwixAsna+EtCD7EqrzxRIpKkDuJCHH3YIaATsQMYSypIP4injd+4bYp9K2bymzJG7cEEeL5kU58i/AWhLEEWtqY3v8rOm45Tk3TYmbcsN6S/YggLxAR4tYynrhOFXkW4Su4gcZppZwpQfLGLUCEePakEt8ivAUhNyZOGUY1NVkmxkEEed6IEC+c3/poA8Fz5WOWN0we4oUHD4w8zySwJfIsuBU9cA6Y7LQZRUVciIsIT02+4nv1hrmc6RkrBxrrI2zbeMwM0wTB84Qbqi3dvgjyPIiLcRHi45Mpwh08Nz3N8nIR2UJxUCoVlcxAhPhYzIx8pxLjmZYLgp+IDoXQTTXAoKX7kW9bDogQT08m4S3iWvAb6uAeLvZ3cbFkNhOcNsbDiBC/hKSeCIL9BNoOMilwmO6ZJ4F6S/clgjwLJD1lNNK9URBSE5/MWVq5g0O3VlJSWcXUutR3goT0iBC/JMAT63uLABcE++j++VYmdO1g/4oT1M5vosrkuuPJiCAfB79HxUV8C0J2xMtidS/dj1q1lPnN6+g8IO0gc8HvQjw5Cl7aUCf1vQXBZoLtIapat3JRb+PMLTB5yTJTO3KmQwR5GvwqxOMCPLF6iYhvQciOOZfB+UWXMcsG511M+LVqSkoBLgiC40ye0kfFZTPoWrPEtv4RIshT4CcxnioCXtFQa0v1kob6YYI9YzurNtQPW7pfQbCSiI8EZaH4UYi7UYQ31kfSVlkRBL8RHTR0UaTe2qoqyYggT8AvQjxZhDsVAd+68bgj+xUEKygdCEKN01Z4A78JcTeK8ESktKEgGARa2ig/uokdK05QO7GJKqzNG09EBHmMYhfjbhHhglDMqJoqrC6N5XX8kieeKMLdJsAFQRhNPG+8pGYH3XdXM33Z7balqsTxvSAv5goqiSJcBLggWEOwvYdJ25+mtO4Nds2vRDHNaZNciR+i4iLCBcG7GHnj0+hfZl/eeCK+FuTFGBUXES4I9hAvcdhf8hq9y4IjlVWEsRRzVNzt6SiCIGSP3XnjifhWkBeTGJd0lPFZs2F22gmkkssu5EvjtFKqptfS/Z7rHYmouJ1iFeIiwvNj9Ya5aSePSh674BTxvPFdt5yhfF4z8xzy5b4U5MUixiUanj2pxHim5YIg5E+xpqdISkphpBLjmZYLgpXEe0ecWrCH6nUN1K5e52hgxVffgmIQ4iLCBcE96IFzUFc8gtMcNCBCXBAE9zN3aQ3BpYuZccN6p03xjyD3uhgXIS4I7qKk77TTJriWYhDjIsIFofgJh3sJNziXN56ILwS5l8W4CHFBcB/B9h4m7f41J2a1c66yxNZatYK1iBAXBH8QHQqBi2Rh0Qtyr4pxEeKC4D6C7T1Ejx2n6tAmTq3olMoqRYQIcUHwH7qmBrf0jihqQe5FMS5C3Boa6ofTVlkRhFyYz2H6byrjwntuk8oqRUBciIsIt57G+kjaKiuCYCfdP9/KhK4dtC46Qznu8ONFK8i9JsZFiFuLlDYUBCERFRmirPeUCHEbkdKGgtPESxyeXniIirvnULvM2coqiRSlIPeqGBchLgjuRyqreJuR1JSaMhHjguAjgu0hqrs7YNEFJty6knkuSzcsOkHuJTEuQtwbSFMhQfA+Y1JTwmecM0bIC2ksJBTK5Cl9DDTWUdnkvon4jghypdR3gTuA01rrZSleV8C3gduBfuAerfXr4285Xv/W3WJcRYZQvf4T414VttJUSIBYZZXtT0tlFY8hkzXH4lVhK42FhHwZHoxQ1bqVkzV7ODOjGjfe43TqLH4UeAD4XprXbwOaY493Av8e+zsurhfjwQBU+kuIxxFhK3iVkY5uy/ZLZRWPIEI8PSJsBT8RaGlDXXmejtmbqVg+h6pl17kmbzwRR759WutfKaXmZ1hlPfA9rbUGdiql6pRSM7TWJ+2x0HwSJ22qMhGgguAVAi1tTL+wjaM3H6fmyptpaL7WaZOEDIgQFwQhTjyYEnrHUmpWuqMjZzpKnDYgDbOAzoTnx2PLPElirrgfI+OC4HVqZ1SipjaKGHc5iXniIsYFQQCYu7QGNXGCq8U4uHdSp0qxTKdcUal7gXsBmpqaOBV+w0q7ckZFhqAyFhUPGwH+sB6kM3zQYcsyY42N89K+ku++7BnLwu32wjEHsTMVkWuG2acWMli+gM4D4ZzeGx7UOb/HiyT74a7wPnv3Hxky/qkEysqymrAZ1oMcCXdYa5gJWGPngrSv5Lsve8azcLv9fdzNx+12Rq6BvSVXoKmia5+7fbFbBflxYE7C89lAV6oVtdYPAw8DNC+8Qk+vGDNH1DHSVVHpDB9kTsUiJ0zKGjNsTDeJMxX57suOsczUVOgT96zLaqKqF445iJ2pCOxpo7lsF3tuLWFOjrnjnQfCzFlcYZFl7iHZD8+sWGrbvvNt7HMk3MH8ioUWWGQuZtiZbhJnKvLdlx3jmamx0O/e8+6sJqr66bjbgdvtDOxpY/7E13j9nSuZuXSS0+ZkxK2C/BngPqXUjzEmc57zUv64lDM0yFaMu71bZqYKMMtuSx09z+aze7XqjCC4AemwmT3ZinG3d8zMVAHmyttSR8+z+exerTojZCbYHqKy6zVOXdPntClZ4VTZwx8Ba4FGpdRx4K+AcgCt9UPAsxglDzswyh5+ygk780HEeHa88dzRnNZPJ17r66az7UenUrzD/UjVGW9QOhBEzawCBp02RYghYtw89j/3dk7rpxOv9XWzePlHJ8wyy1ak6kzxEe/IeXjhISrmz6GkzP13Kp2qsvKxcV7XwOdtMsc03CjG7YrC5pKekg/ptt1zdkLB25ZItZCOYHsPkwJH6J55Eqh32hzf42UhblcUNpf0lHxIt20zfLFEqgUziFdW6V7RyYRVRkdOt+ePg3tTVjyHG8U42BeF9XJUVyLVQioCLW1UHTIiLJXzZ1Llws5ufsLLYhzsi8J6OaorkWrBLKY3Q3DRAmZ4qGeEnOUm4FYxLghC7gTbe6hqfYmy+l30vHuQhnetd2UTCT/hdTEuCIL9hBuqnTYhJ0SQF0gxi3ErUznWbJhdFOkgmSqwCN6lcVop/c0ziF5eS4OIcccQIW5gZSrH6g1ziyIdJFMFFsFfRIdC4O6m7SkRQV4AxSzGwdpUjmJJBynkokLEvMvp7QWK87vtBUSMX8LKVI5iSQcp5KJCxHzxEGwPMSlwmFMz+/DavJ/i+CY6gNvFuNWTLO0mnXitr7vogDW5YRyLseURG+qHc642I9jLcFON0yb4kmIS41ZPsrSbdOLVC77YOBZjyyM21kdyrjYjuI/kyipem/dTPF7CRtwuxmH8CLTZUdh0gtks0kWijW6NhTWIsTpSnelOQ7Gk7giCWRSTGIfxI9BmR2HTCWazSBeJNro1FtYgxupIdaY7DcWSuuNHgu0hqlq3MljyKudWhEYqq3gNEeQ54gUxPh5WRGXjotKLkXknBbHXxsov6IFzTpvgO4pNiGeDFVHZuKj0YmTeSUHstbESRtM4rZSK2XV0vWeVZyfhyxmYB14W43Cpu6QVdbZFYApFQ12V0xb4Bj+KcTC6S1pVY1sEpiB4ixKnDfASKhjwvBhPJN+0FjNSOWTioiAI4F8xHicb4ZwuZcOMVA6ZuCgUA0ND54jUe6vMYTJyCZ0l8VQVP2F29NyKVJkNn1yTskOcdNkci3QkFdyG38V4tpgdQbciVSadL5Yum2ORjqRCKiRCngVezBv3SwQ6XbtmN6XOuOVYSEfS7CjpOw013o60eAG/iHG/RKDT+WI3pc645VhIR1LzCLS0UbrtIXZM28mRid1Om1MQcvSzxEtiHEZHt+M544J55BJt3rrxOKs/Nj1tJF8Q/IZfxDhcim5fedvYcntCYeQaad628RirPjYrbSRf8A7JlVUmr7rak5VVEhFBPg7FljduNX5odpOpkky65Rsf28qcisLKMwrWE2zvYdLuX3NiVjvnKkuowlt1bL2An8S4k/ih2U0+keaNj21lfkVh5RkF54keO8HM5rN0L61j/vw7GJ7e4LRJBSOCPAPFkjdup0jONhfZy/nMkuJRfATbe6hqfYn+ktfoXRZErVrKfI9HW9yIn8W43QI521xkyWcWvE4xiHEQQT4uXo6Ou1n0uimf2c3jJNhD9NhxqqtPElwSpupdt3m2jq0X8KMYd7PodVM+s5vHSXAf4XCv0yaYikzqTEMxRMfH6xBZDKRr15xL9N9NFwdWYmUZy2KgdkYlamqjiHGLKAue8qUYh/E7RBYD6XxxLncA3HRxYCVWlrH0G+GG4pmAX1xnucl4OTo+HsUiNrPNzQ6ET/OFjvv4xsIHaKyYaoNlziORf8EtxFNVhLHYKTaD7SGix04kLU0/2bT751uz3vb3vlNLzWvnU74WaJky8v8ZFeKvJ/wzX7/4RRp0/cjypnVXZb0vryGRf/OJDoVgotNWmIsI8hQUQ3RcGM1DJ77D672t/PuJ7/AXl/2dZftJFW02hPHYSjdWC2O/RP4Fd+PnvHE3EWhpY2LnFiYs7QNgOHwh9sr6tO+pmrkj6+1fqFiddv2y3gsj//9ryavsVR1srPzffDm6EoAznTCwsQP406z3lw+GMB57AWK1MPZL5N9udE0NMOi0GaYhZ0Maijk67jcC4dM8FfgJGs1TgSf43Kw/LChKnmmSbCqBLcLYG+j+XiINVU6bUVSIGHeGQEvbqOflRzdxauEhqm9poHLx8pHlQ02TIUN84uwd12S9z+FjleOuHxw4x9PP/jc6Ck+XHeV3br+Hab2a4eAJThx8nlwFea4TZUUYFwfdP9/KhK4dtC46QznFk2IoZ2ESEh23Bzsrvzx04jtEiQIQZbjgKLmkewhC9ogYt494beaSmh1UTblUa/vEihATVq1kZorKQQ1NFwkGUvRIaLqY03yKrhPhcdf/v288gEYDoLXmpx2/5is33wfNKzm9uB2+kvXuAPM7mAruJn5+X9TbOHMLlC9p9nzt8UREkKegWKLj6USv0wTbe/jpX/dkeD37bUWmDRM8amyrobl+zOvx6PiQHgJgSA+NiZJbdXGQqV654D0C/SG+8NL9fGPtl2msmjL+G3yOnydxJpMuklsIwfbQqOcTdj7DhZK99CwZoGzRAvoXL7n0GqQVyy27t5hqVzoC/SGeeesFhqJG9HooGuHpt17g3ms30Fg1hal1zWkvDiZPCnH2u3/PxZk3UTJrOiUTmwBoaM7ue5guh1vwFtFjJ6iu6eLNpUP8Y/Qg35z1YadNMhU5QxMotuj41o3HM07ss5t4reeLQ9uYVGtOgR81+TZKOn5MWXcjgWO3jJkYlBgdj5McJbcq4m23GJcLAGt5aPdGXu/ex7/v3shfrLrPaXNcjUziHM22jccyTuzLhXiUsCLcSbjhUoR4/7IBai9vomrZOldWCnr49Y1EdZIv1lEefn2jESUn/cXB0fYWTrx5himHWyg70j+yvG/nMi7e8IFxhbndYlwuAKxj4pRhfjR8hDdCb486d4oBOWOSKJboeBw70yuC7WOj3iV9pwHQJ04ysetljiw8RM3cBi6+62ZT9qmPVhH9wCLO7d9DTdtjDD6yjIHlNxKtNqLfr51rHYmOxxnSQ+zpe92U/buJbMW4lDnMnUB/iKc6XjDmIXS8wOeWb5AoeRpULCVBouOjMSO9ItDSRvnRTXQsPET1vAYqF19r5IED00kfBXcDe0/vH4mOxxmKRthzev+4753XvI7TTXOJrIH4FgYCxyh5+TdUvLKXCTuvZmD5jSORc8g+em4F2YpxKXOYO91c4IWzB9HoUXdYigER5DGKLTpuJ/HId0W4k7opZTA4uli/rq4kWNFN4O4SGpatN/VHo/NUmIbma6H5Wo5e2cLQm7toONzO1HbjwuqHZ9dQWv4xLty8PmVKi5PYKYzfeO6obfvyIqUDQahJ//pDuy9F96I6KlHycRAxbi7B9hATdj7DQMlezq0YSJsP7mYev+vBgt4/5nejrpnTTXPpv7yV/YdaWdnRPfJS37lKBlrn0H/dmqyEuZ3CeP9zb9u2r2IjOhTi21W/Iapjz5PusHgdEeQJFFt03A7ipbSOzN1DzdwGzk9tJNIwKcWaMyxvRR6PopxfcozEarhDb+5ixpYuQgdXoWbNGImeQ+q8czsQgew+VE0VqUpoxaPjibmvEiXPhHLagKIicq6X0m3/xakVnURXXV1Uk9gKZWpdM9zczNFpLbSvMpZVBPvQgeP0Hd3D/B2dBI7dQqZa6yKQvUNQneUnJfuJaCOYlTwPweuIIBfyIh4VHxraxoWlA9QuWsSsG+502izDQSdFUk43zSXQ0Mr5Qz9m+cklqL4BAM6fHSZw7M6ibkghFE5idDyORMkFq4mXdhtafz3dd4epWnaHq1NSnGTURUpsiE7ufJrumv1UvHmETLXWBe/w2MRNI1V64hRTlFwEOZKukiuBljaqDm2ie0UnatVSyyPfhZIYRTkMgBHBL91/jN5j36Lq4cvpv9x8YW5naUfBOvYE0uS+BsbPfRWEXAm0HaRy96+5WLKXM7dA2eQq5l+7wWmzPMeMG9bDDYYwr3sqxNm+sRFUyeH2DoG2gxzgTcKM/v3Mdh6CFxBBHkPSVcYnLsTPLDxE5d0zqVp2m6ciNmNu9TYbs/dPzmmn6uVHGHzkalNzzRMn1HaGDzKnYpEp202HXABYwxPrC8t9FYRsiUfF9684Qe3lTdQuu47ICfltKoQZN6znv37zQyLbttJ3NMikhb9Hzf5aS++M5tqwSEhPvKrQgN7G36+6oehqjyciglwYl2B7D5O2P81QyV4CKwaoWrWiaL4Q8bzz/oZW3jq0k8tjueZT7ljrtGk5Iw2LBMGbJEfFJy9ZNuJju06EHbbO+0yta4Y7mzm582kuhgcZDDzLwMaOrCd95oo0LDKHuBjvr9nB8NVl1K5e46kgYK6IIBcyEo+KH154iMrlM6latrbovhDxlJbTy9oJXN7K5FdfYPCRIwwsv5H6FdZGtQVnCbS0Ud3dQWnlDnbNr6Sq6TqnTRJ8RjwqfvSWM5QvaWZhkQQ73MiMG9ZzbO95IjcO0XF088ikT5lH5F4ap5VyfvY0+lcvKTrtkYzvBbkKBiRdJQWRwWEGnniSisod9Ly7hIZ3mVuu0I0k5poH39xF1ct7qdx9tQjzIiVeIah76X5PzIUQiot4TfHTCw9Rcfccal3a0KfYKCudyMw7f39k0ueEg92WRssFIVt8L8iF0cSrp+hbauhufh61amnRpKdky5g0ltYuQifckcaSqfOqpKzkztylNZxfdBmzfHaOC86RmBMbrynuNx/rBmbcsJ6ehldpqjpB7fFSckkyydR1VdJVzGVo6JzTJtiGOf3Lc0Qp9T6l1EGlVIdS6kspXl+rlDqnlNode/ylE3b6jUBLGxU7vs+R6ZvR1Yqq9bd56oci0B/ik89+kTP9oYK3NbWumfk3b2DyqmWcvKWbweAzDD7yKD27Dppgaf6k68aZbZdOQRCcw/CxP6Bj9mYG7qxlwvo7POVjsyXQH+L3Npnji60k3uU0V9GXrhNnth06hdyI1Fc7bYIt2C7IlVKlwIPAbcAS4GNKqSUpVt2mtV4ee/yNrUb6mDmXQe3KRVRMbvTc7dOHdm/k9e59/PvujYA5An1e8zpq16wjfOck3lq2k4rW/ya0+SWTLBYEwW9Mb4YJ713J/Js3eM7HZsvDr29k16l9PPz6JV/sVoHeMeMCr1W9ROm2hwi0tDltjuBjnIiQXw90aK3f1lqHgR/jUNV+qT+emkhDldMm5Ey8m6JG81THC5zpD40R6PkSj5ZPX387gbsHKB3azOAjjxJs7zHJekEQ/EB0KISuqXHaDEsJ9Id45i3DFz/9luGLkwW6W4j79rpP3EXPurOU9D/GwMYnCba778LBj0QHAwzXTHbaDNtw4v7KLKAz4flx4J0p1rtRKbUH6AK+oLXeZ4UxhUzoLJZ83sSum6+uGqYc70VtErspRnWUb776CD8/8qsRgW5Gm/PESZ/65d9Q8fJeBlpX03/dWtNqlwuCkDtuz+kNtoeYsPMZeqvbaa0Z8KSPzZaHXx/ti7/9yiM8//avRgS6G9ucT61r5vRqqBt8k8rDffQ7bZAwMul57y1nKJ/XzLwivZuUiBOCXKVYppOevw7M01r3KaVuB56C1B5MKXUvcC9AU1MTp8JvZG9I5RAqnH/ubbBnXprlpXSG0+cah/UgneGDbPjkGnrOThjzen3dRTY+tjVvu3Ihcn4ANamX4HurKK14PyXV1ZQMTyQ8qOk84P76t+FBzZ69p3jyrRcY0kbThaFohE2HfomKnWrD0Sj/56UfcN+Cz5qyzxJWM7TyOgYW99EXjlBx8Q3On6mhrLYyvZ2xY144qc85wJTtm2entZhhZ+SaYfaphQyWL7DsXPfK96hQkv3wkXCHrfs/07MgzfKytLaE9eDIa1b6YsPHniVy5xyovoKqCbUQhq592Z0XQ4M663WdZGhQ88auUzx9YLQv/ln7aF/8zRd/wOcvN8cX52tnqvGMDE/j2Ox6SqeUEq7oojecKUqe+nwDTDv3E89PN2O2nZHzA5SEz3Nx+QCl71xFRXU1ZeGJBX8HvPA9ckKQHwfmJDyfjREFH0FrfT7h/2eVUv+mlGrUWp9J3pjW+mHgYYDmhVfo6RXLsjZE9VpX8jBTV8Z418ZUPwAAPWcnWN7VMU5gTxvNZbvYt2KQWe+885KNB8LMWVxhiw3ZEugP8YWX7ucba788EmHpPBDmmdATaBUddVkXJTryf0RHePFMC19c+wkTIzMVQC0ndm5i6RsTaY/cQtO68Y95oWTqxmnG9u3oKGoGZtgZP/f33FrCHIsm1rnxe2QFiX74ioVX6PkVCx226BLpbDkS7hh5LZMvLuSzBNtDzDj0MwYuO0XXDUuYWjdn/Dcl0bUvzMyl7jqHAv0h/rzlfv5p3SVf3LUvzNM92fniP7nVTF+cG+nHs4Kj7S30v9nOrC2NDM27M2198kydOM069xPPTzdjtp2BPW1cUfsWu5aeYcYN5mUzu/F7lIwTgrwVaFZKXQacAD4KbEhcQSk1HejWWmul1PUYue5B2y11CelSYxIpNE3GC3njiTnhf7HqvpHlewL7GYpmbkkc1dEx7zMDY9yilA7Yc3p6KRVKEIqNdKkxiaRKkym2KhGJOeFfufmST917OjtfnPw+txAvedtTspW+o99i4qPXMDhnbOMgN6RBCcWH7YJcax1RSt0H/AIoBb6rtd6nlPps7PWHgLuBzymlIsAA8FGtdXJai2/IpqRdvmXvSgeC4IE5RsmTNhNzwp9Y/+Code9++vMcCL09atlQNMKewH5LbHt15iGqXj7C4CNHuHDzesknF4QiJZuydvF14nnjR2e9zfmJJVQx12rzbCF50mZiTvjjd432xR/56ec5GEzhi09b44vNYGpdM9zZzMmdTzO3soa3zo//HsFcwuFep01wBEeKZmqtnwWeTVr2UML/DwAP2G2XX1E1VcCg02ZkJHnSZqZod7JAt5LEJkKHd29j7pYuAsfS3+oUBKH4Gdj4JP0lr9KzLER01dVF1QU2edJmpmh3skD3EuGGat8KQzcQbiiuu0rZ4EhjoGKhoX44p+VuItjew+AjjzIYfIbWGnfXXo1Hx+O3QoeikZHShm4gXjqr4RPrqb6pjHkDu6UkoiDYSGN96jSJdMutpnFaKTNX1BVd4594dDzRF8dLGwqCUBjSVqoACs3nzTRBz0oCLW1M7NzC4Xl7qFw+k9pl17m6QUVidDxOPEp+z5R7HbIqDXXuz8UXhGKj0JzeTJP0hEskRsfjxKPk99S7zBebgK6pIdorFxt2Eh0KoZtqcPtdeysQQe4gTkzQC7b3UN3dQenSPmoXLWLWDXeO/yaHSTVpcyQn3F3lbDlc2U390BEmbR8miL/yyb1Wl790IIia6f50LcF6zJ6kNzR0rugmckLqSZsjOeH+cXWux+11+dMRaGljQtcOWhedKepa/enISpArpT4E/AC4Qmt9NLbs28AdwCqtdbd1JlqDClpX8tBs0kXSk9fJlsZppfRXlTGxYVahptlCppxwN9V4Tm4c1OSzfPJ052i+E469SmJ5TnCJKCul3GkTioF0kfREptQM2WSN/WTKCXd7jedCiPR1U1Y9zWkzsibdOZrNpGQnCLaHqGrdSknNDnrWlVC+uLngVK9UpTldQQZfnO3ReQL4c+BrwKeVUl8APgbc5EUxbhfpIob1ddPZ9qNTWW/HqujicJMHyqt4kJHSWfXbmffmNk61AKvdXf/00rk6uvGQW6PbbiaxPKdrUqpqmOG0CU6SOmK4IOeIYTbrBttDcChHAwVX0lrTxrSeXoLbYdr77BHkl87V0c2H3B7dzpdge4josRPMbD7LrqXTmGlS7fF0pTkdJ4MvzkqQx+qBfwX4mVLqEPBV4N1a63al1Bzg+8BUYAj4a631T00w2/Okiwyma0IhFA9T65o5MfUANScinLIxDTXftBGJbptDcnnODyz/EHNwNrIW6A9BJY2OGuEwdkYMo4MBhmsmA32mb1uwj3hgJdjQSuPWTQxsDNF/3RoamsePthaSMuK16LYZzOcwJY0TTLtrn6o0pxvuVo7ni7M+wlrr55VSrcDfAXdqrVtjL0WAP9Za71ZKTQVeU0r9XGvdX5DlguBxRjcNKjxAmY3YFmHtLMnlOTcef5xrrv7DtOun6j5rhU2CIOROPA3xZNnT1OzbT1UrBFnDb//V8oyC24+i2gyGmiabsp1UpTnHm3RsR4rLw69n9sVZlz1USr0buAZQwEiaitb6pNZ6d+z/00AP+DsaIwhxjBrv5iBi2zzU2W6Ga+pM3Waq8pwvBFoyloRLTG+xgrhNGH5bEIQ8KF28hNLachqnGb5WBLd7SVeaMxTOXIo4McXFSrvI4IuzEuRKqWuAnwJ/ADwF3J9mvZVAOdCZo62CjeiBc1Kezya6OUlV4AiR/uKv5OGluvzB7fuZeGyLqTX4M5XnTEVyeosVtZxT2SQIQnHjtrr84zE0dA5dZ350PE5UR/lR5+Np35Oc4mKFL05lVzLjXs4ppeZhdNX8F631d5VSrwB7lVJrtdYvJazXAHwP+J9+bnMvCHHmNa/jKC0M1eyi/MJlBF5rK+qKK16Y/Bls76Gq9SUGh7YRWjVM+ZLCZ/PHSVWeM6Jj5TlTkEv3WTNtEgShuCnGyZ/Zkq405/7eA2nfk0v3WTPtSiZjhFwpNQX4ObBZa/03AFrrN4CfkBAlV0pNAJ4E7tdav1yg3UVDushgfd1Fmy0RnGJe8zpq16wjUhthevBZAi3u7Irqpeh2voyI8fpdRG8qo3bNOlO7KD6x/kHe+NRzfGTR+1EoPrLo/Tx349Mpy3ba1X02bhMnec3UDXsMr0UMBf/it3M1cqiNiwNd/Lq0dfyVs+Dxux5k96efY/enn+NDVxq++MNXvp8Hln8r5fp2dZ+N25XJF2eMkGutQ8CVKZZ/JP6/UkoBjwK/1Fp/P39z7UU3NBG2uBZ5uohhZ/ggsMiy/fqB+GS4/zX7C45XsRiPqXXN9E48Q820SssrruTb/TV+rnaGDzKnonjPzcZppfRPr2boXSst6U6bbZWVTOktZkfJhdQRwyPhDuZXLHTAmuIiPhnuf83+AjNd7ovtopDOr/FztdjPz3jt8Yt6G2+ugvJpzab65OQ0lA+s+FDK8zNT91m7yyWaMQPhJuAjGGksvx1b9rtaa3eGAoWiID4ZbiOZq1i4DaPiSn5kI7a9kDZSzGRbZSVj91lB8BDxyXA/0o/zv1d4xxcXwniC288pI9kQF+P9NTsYvrqM2tVrTA+QJKeh/Kgz9fmZsfuszRQsyLXW28mhWosgFEpiFPKFQAtf7P+EuzpxpUHVVEFv/u8Xse1u0lVZSXV+Zuo+KwheITEK+UKghT/xiC8uFBHchdM4rZTzs6fRv3qJ6WI8VRpKuvMzU/dZu5EaPSaQbzMWIT/smAxnBd2cpPJCHT27DlK/onjTQtyMHjhn2bYlDcV5CmnIIuSOHZPhhOJkaOgckXprmvW4KQ0lFySybQJSH9o+kqOQEW3NZDizqZhQy8l31nPi2m1UtP63ayd3+gKLSn7mWmVFMB+pD20fyVHIiLZmMpwg5EqqNJSIdiYNJRfESwmewstRyHgr5kBDK/VbH2Ng4030X7eWhuZ6p03LCa/eEYoeO87F/i4OV/ZRxVzTt58qDaXzQJg5iytM35cgOI1Xo5DFgpfvBkUOtXGh5DxHJgYs8cWp0lC69oWZudTdvlgEueApvD4ZbmpdM6eXQd3JA1SdKsXdbjM1XrsjFC93ODS0jYOrhk2fzS8IyZT2Wpca5RbcNBnOj3jxblCwPcSEnc9wsWQvb1lQWcXruPfICUIKkqOQno1A1lWhDxf/j7bTBFramNi5hfbFB5nSOInad62VHwDBUkomNjltgi0kRyG9EIEUnCPuiw8v2EPF8jnULrtOfHESIsj9ytl+py0QgJK+04C3Ula8xtylNZxfNI/Z81ej6+qcNkcQBMGXTG+G4IrFzLhhvdOmuBKZ1GkCXutyqConO22CAFBjzQxzITV6ep3TJggW46Yuh2U9fbbvUxDcSnTImOwbbpDfvXT4OkJuVrdOJyeyeXWCnZ+ZWtfMkfnHGOp/iRlb9hM6sYopd6x12qyiRfcXUPxd8BROTma7NMluAbByZHlD00Vadm9xzC5BcJLEjpyvLIJyJE0lHb4W5MWA1ybYCQaJFVcGdn+f8kf3MjjnFprWXZXX9uy8MMumY6jbiDRYU+pQEOKkm0wXDEyw2RLBSeyqfjJet1A3EM8bP3HNfsoWLWChpKpkRAS54AkC/SG+8NL9fGPtl4umE9zUuma4uZkTZZuYUwrtBfhROy/MvHDnJbGyyqurhiUqIwgmEegP8ect9/NP64rHF5uJXdVP3F7aMNgeYj6HOX/jRaqXr6a+eeX4b/I5IsgtQNJIzOeh3Rt5vXufJ+qN54oRvY2Ou56QHfGozJG5e6iZ2+D7yirh80GnTXCMTNHK7z/aYZsdR7ZvpKpIqko8/PpGdp3aJ/XGhXEZGjIqiQ01yby1bJBJnRbglTSS0oA3cmvj3Tk12hNdOfPh1ZmHGDr+CAMbnyTY3uO0OZ5n7tIaalcuYvYHPlUUIkjID7fUap4/OM3W/VlFvDunRktXTiEt8bzxk0N76JhxwWlzPIMIcr9SU+O0BVmT2J0z3pWzmJjXvI7aNeuI3lTGkembqdjxfQItbU6b5WncNpEz0B/ik89+UQSMTymWiiuJ3TnjXTn9QHngHGWVUh1kPILtIQY2Pkn/a9/gxJXPE/zw5cy/eYOrgiKB/hC/t8mdvtj3gtyotHLe9v2u2TCbZbfNG/NYs2F2TtvJp+Time5hjr18gt6Xt3O0vSWn/dlNPDoe7wg3FI0UZZR8al0zsz/wKWpXLmLOZU5b410C4dP8ccWfcpoLrprImZhyJbiL1RvmcuVtC8Y8Vm/IraV3usl0TVXFESGMR8cTfbFEyYVkGqeVUn5NOV+tPMikWSucNmcMiSlXbkNyyBOwM/fbrLSWXO1qaK6H5g8ysWUhVbs2cYg3ONLd7dr8xsToeJx4lLzYcskh/3xyL1Y+sYKH3v4H9pa38+2SGj7MLU6bA4xNufrc8g0yGW4c7KpUAealtaSyK9geYu6x7ZzHiLJSl4eBLiExOh4nHiWXXPJLeKH6iZUMDZ3jocHXaAsfc925kZxyde+17vLFIsgT8Erutxk0rbuKnikVNL/VRmnpfk5OOwYuFOR7AvtHIjJxhqIR9gT2O2SR9eyu2k/Fm0cY2Lia/uvWGhdR4yCTheGtg2/xVM8z6BLNj/Qubg1fzzynjSJ1ypVdF5Ph80F0Y4Mt+zITt+R+m8GZ7mHOBM5ysf9tBoMnPNulcO/pNL74dPH64nxwe/UTqwi0tFF+dBMvLnyTJ4cOulL0pkq5ctMFg/e8mwfwSrSyfsUiQidOcjkzOMmg0+ak5In1Dzptgq3E65OH67dz5NhmZu/oJHAs//rkfiHQ0sYPBv+M4UbjOxYtUWw+dwynb5iGwqlTriRKbg9ORysbmqeM3JGs27OFI717uBi54No7kpl4/C5/+WIhO4YHIww88SQDehvnVgzwZEM/uluBdpfoDYVTp1y56YJBBLkFSLRSKISpdc3wgWZO7NzExNJuyk50EGyfnVWk3I1YmQoWrzd+Kvo8m5sPEkEDEIkOu0L4bjz++Jjb/MPR4aJNuXIbmaKVR8L22dG07iqC7bO4bGctpaXtdLr0jqQwltNn24kc2E3ozYn090yH3KYWuAYr0sACLW2oK8/TMXsz1fMa6Fu5mi3P/a0rRe/GztS+2C0XDODQpE6l1PuUUgeVUh1KqS+leF0ppb4Te32vUupaK+1xamKn4G6croxRvngxFY2Taaj1doUGq1LBAi1tVOz4Pt3Nz/P91V3oktHuzA0Vefb3Hhxzmz+ih21JufJz/XE30tA8hYGZ76CRaVQEvf2dthMnq2IcbW/h/NYW6lvqiFR8iMoNHzTuengQM9PA4tVUysI/IVI7RNN71zHzzt/np4d2pp1n4DQH0vliF6Vc2S7IlVKlwIPAbcAS4GNKqSVJq90GNMce9wL/bquRNpBPdRTBXgqpjGGWmD88o5eTQ3uYtP1pqU+eQOT8ANODz3Lu5uNUrb+Nt8O9rpxr8OA13+KNTz3Hlo/8kAmlFQBMKK3goff8rS3792L+uN2kS1+xKq3lVDtEDr7NyZ1PW7L9YqPQqhj5Cvqj7S3M+E0Ps15fzdB1vyNpgzHiNcaZ9yrn1tRQPrlxpAunm+cZPLD8W+z+9HO88PHRvvjB99nji7PBiZSV64EOrfXbAEqpHwPrgTcT1lkPfE9rrYGdSqk6pdQMrfVJKw2zM/fbLWktw5UN6N69SAXM0RRaGcOMzqJT65o5vQx6aGVg9zbmbukicOxO+WEA0BFqplUyfOVcptY1u36ugZMTO72Inbnfdk7Ca1p3FYEWmLYHjvTuQQcClK1e47l8crswoypGIZ1FpzGDt6YvZPpldTm9r9iZPKWPgcY6ShcvIXLi0nIvzDNw88ROJwT5LKAz4flx4J1ZrDMLsFSQu0UkC85TiIBKJeYhv6YSU+ua4eZmTi9rp+dX26lpe4yBjTdlXX2lGOnZdZCSaWFO15wD3D8G6WrpO53f7maKuVKFcUF9FdNb2ihv2cSZ0GaOrrqaec3rnDbNdRQqnlIJ+nx9sWAQOdTGxYEuOmYM4J5OD9mRrpa+G3LcwRlBrlIs03msY6yo1L0YaS00NTVxKvxGfkZVDkE/qDLrSxyG9SCd4YOW7ycbItcM86ZaQaQfOg9cmuUUHtSjnrsVK+wMhUM8+dYLDOlLX9on21/gA9UfYkrF+ALwgbe/z3DU+BEZjkb5Py/9gHtnfqZAO+fBFfM4M+88um+QksHX6DtVQ7SqhrKJ5p2z1pyb6YsP5rKvSP8gJf0XGJ7eT7RuMp1Na6kYrnX1eRoe1Dzw0qXzIU78vLhvwWct2a+ORtBlNXDKnrFJ9sNHwh227LcQwnrQWTtXVzJ83V2UXDjL8NGLHD59AlU5gYoJtaNWGxrUdO1z7zkex2w7Q+EQTx8Y7YefOvgCH5iUnR8GeODQaF/8zRd/wL2zPpOVnfriNRyYV8LFYTheGoKwvd1/zT8/F6R9JZv9RM4PoMJnCV83xNmqGymprCJyYqKnzs8HXkzti7/54g/4/OXW+OJccEKQHwfmJDyfDXTlsQ4AWuuHgYcBmhdeoadXLMvPqgpQwQAVDbXjr1sgneGDzKlYZPl+siGwp43msl3sWzHIrGvuHFneeSDMnMUVDlqWHVbY+ejLT6BVdNQloCbKM30/GTdKHugP8eIrvyQS+xGJ6Agvnmlhw+yPcM3iaSZY18jps+2Ef7Wd3mNBZh+7hsE55pVFtOLczJQKlu2+QptfYkLXyxxacYzay5tg4h0sWNpoqp1W0HkgzKGht0bOhzgRHeHQ0EHLvmPh87225o8n+uErFl6h51cstG3f+XIk3IHjdlYAtdD9861MHXiFt9YNULZgdEnErn1hZi51vy82285Htqfxwxd+wldWjB8lD/SHaPnNWF/8sTkfYdnS8X3x0fY9LH5zIm/1rmT6NVMoqzTDf2eP2ednpjSwTPsJtoeYsPMZQiV76V0F5Zc3j7qb46Xz81AktS/uiBx0xWdwQpC3As1KqcuAE8BHgQ1J6zwD3BfLL38ncM7q/HE/o6pqwKV1yMcjFA7xtWe/wTfWftm0W06FNCNK11l04/HHuebqPzTFvnhZxKPtLQRf3pdzEyG7KSQVrGfXQSp3/5rBkr2Ebhlm8pJlzGtel1NUPNAf4gsv3W/aOZLr9uzOb5fqKt6j7PKrmHDoGAtPnqIrz5iS04TCIb626Rv80zpzvmeFThBM11n0R52P879XmOOLvUQ+aWDxZj+HFx6iYvkcagusnx/oD/HnLfebdo7kuj2357jbLsi11hGl1H3AL4BS4Lta631Kqc/GXn8IeBa4HegA+oFP2W2nnzh/cgBdf4bTZ9s9N7lo4/HH8548mU5YFSKg0on5/b0H8t5mOuY1r4PmdZzYuYnug8/TtGW/pyd9JlaRKek7jT5xkgldL3P8lm7KlzSzMM8cWzMm2Fq5PSuQ6ire41yomv6hbiITA5xejfd8cefj7OrOb/JkKmFVqHhKJ+hz8cXdnKT6VAc9tRU0XWVvhNxJ4lHxkro36L67mgnTVpoyx6GQCbZ2bM9pHGkMpLV+FkN0Jy57KOF/DXzebrsAwsHztqStuIWSubPpa51ByY4OzusWBpYc88zkokB/iBdO/9LRSijJpBPzVuY5z7rhTk4vbqenfju9x75F1cOX03+5t4R5oKWNiZ1bqKsaGFm267LD1K5qonbZurzFSaHVcqzeniCAUaM8yBqqWuHC9m1c9NhEz0B/iBdjvjifSXJWCKt0gj7bfOd5zes4SgtDNduoeXkbA22r6b9ujWfrkGdDXIhfKNlLz7IBoquuZr5J56AZFXOs3J4bkFp3CeiGJqdNsJ2G5noqN3yQyqs/w+ztK5jxmx6Otrc4bVZWPLR7I1FGV0LJlmRh5VTzH7OYWtfM7A98iqr3riCwopOh448w+MijBNt7Rj3cQKI9gZY2Ljz891Scf4xzNx/n2PsUb398Em9/fBKTVy1j/s0bCooUpqqWUwhmb89sJF3FuzQ0TzF88fRP0bhrDhd/8SpHtm8kMuz+dMKHXx/ti3OpGZ4srNzki+c1r6N2zTqGby5jsH4XVa1bCba7xz4zCbS0UbrtIQ7P28bAnbVMWH+HqReEqSrmuGl7bkAEuQBA/YpF9DfNZxoznDYlK+KCOpI4Az8HYW22sHK6q2ecec3rqFp/G+E7J/HWsp1M3fXwyKNix/cZ2PikY8I82N7DwMYnmbr/R5dsOv8YgRWdnP3wfGZ/4FPMuuFO5jWvG3nkS6A/xIZNf8yTHc+PKnH1Xwef5WDw7by3map8odPHPBlJV/E2Teuuou73vsLU/v/BtCcqGO7tdXWQJC6oE31xLsLabGFldmfPqXXNVC5ezpSlM2icZn0VNrsJtofo+/6jDJx6hBO3nGHCe1cWHAhJJNAf4nef+mOefmu0L/7J/md5qwBfnKp8odt8ca6IIBc8SbrJk9kIayuEVSFdPc1mal0z82/ewPT1t49Em9/++CTO3XycI9M3M3HLvxPa/JJt9sSF+MWX/5bu5uc5trZvJBJ+9sPzqVp/m+m35h/avZG9Zw4SGR6dQ6rR/NnWf8p7m/mec3Yg0fHiYtr71jB03e9Q0VdJzc9OcmT7Rk6fbXfarDGkmzyZjbC2QlgV2tkzHZGBPlO35wa6f76V0m0PsX9ZKwN31lK7prBASCoefn0jbYHUvvjLv8zPFxdyzrkZR3LI3Y7f8si9iBWVUPLNJXdrXvHUumbWrLuX4JkJY16bUtnDc11fGrM8+v6b6H3hFwXttyQ8+odrInBk4SEql8+katlayyerxY8HQDRF+4K3zx3jTH8o52NUyDlnFxIdLy6arlrE+fMHmBduZsClFVgKqYaSSVjlk0tuVV7xUNNkjKJw+bN6w9y0ZQftaIQVn6czHL3kn6PzB+m+u4Tpy263xC/Hjwek8cVn8/PFhVbgcSsiyJPQDU2oYMBpM4RxiE+ezKcOudnCys1t0VOJcYDQQD1nPj/2ojNyHs7fVWjOahmRhtE93KpYYdsEtcTjUV5Sxl3N7wXgp+2/YCgaoaykNK9jZHf5wlyQ6HhxU14+mQFOUR44B3VOWzOa+OTJfOpRmy2srG6LPjR0Lu/3phLjmZabRbA9RFXrVkpqdnDmlhJUUxPhhkvdSs2atJmKxONRXlLGBxe9Fw08dfCSL87nGLm9fGG+iCAXRhiubED37sXtmUyJ5QrzaYNsprDyclv0VAK580CYWYvvTLG2N0h1PJ5sfx4UnjxGuSDR8eKkdGIZR7iMib8+QqC7hYEDuylbvcYVZRETyxXm44vNFFZWtkWfWtfMoeXHKOl/mYpXdlHV6v6KK6MqpiwZoGzRAmbesN62/ac6Hk8dHOuLi6VCihm4W3kJQgrMytc2YyKm2/OK/Uaq4zEUjYzJX/TaMcp0rkp0vPhpWncV4Zs+wcLjd1D263IuPr2Zkzufdtos0/K1zZiIaXVe8bzmdUxYfwfDN5fRMXszFTt+QKClzZRtm008NzyxYsoMG8U4pD4e6Xyxl3K/zZ40nIhEyNNgdh75mg2zE9qHzxtZ3lA/XFAnQ7+RnK/9geUfYg75NWwwow65F/KK/USq46HRY7IXvXaMxjtXJTqePZdyeReMWm5XLm++NDRPgeYPMrFlIXV7tnCkdw86EHAsWp6cr/2BFR9iZp6+2Iw65HbkFU+ta4Y7mzm582m6a/YndEm2N1oeaGmjurtj5Pnw8OhUmt7qds7cMsCEJeY09MmHVMcjrS/2UO63lc2IRJCnwIo88ktiPLvlQmqS87XzbUlv1kRMN+cV+5F0xyPQH+J9T3yKi8NhJpRW8Iu7H8n7Fmm6Dq9Wkelcleh47jiVy2sWTeuuItg+i4WtczjT9SoXQ5s5uWiBoxHQQlrSmzUR08684hk3rOf04nYiU7bScXQz83d0Ejh2i+XN2OITM08t2EP1TaMvwsP1l+btqGmz8+5sbBbpjkegP8QdP77ki3/20fx8carurlZjdTMib3ggQSB1fvALgRa+2P+JnL8Ubp6IaSYNjRdTTuxsaLzogDWpsUPgmnm8rejwOt7+Mtku0XH/EY+WV7WvobF1K/3Hd9AV+E/bouWp8oNfCLTwJ3n4YqsnYlpFPFp++mw7Z7ZtpXbvY/R93yiDU1o6ecz6DRM/S3BwUorlFxjY+OSY5frdsxn45ZOjot8DJXs5d80ANYsWW3IBZofINet4WxmpzrRPK89VEeTCGMqC/UTrnLZiLGaVK/TyRMxc2fraFqdNGBerBa6Zx9vuEpeZbK+NaBHjPicuzPtaFtK4ZQtHjv6UyLwGy4W5WeUKrZyIaRdxYX50cQu6+wgVPf0p1/v+Tb9Ou41TKZYNVd/OqZt+PSryDbVULVtn2bG1WuSadbytjlRn2qeV56oI8gz4sR65qqoB3NmqOVV+cETnngtsdh1yIX/sELhmHm+776yks/3B1u/y5RWfsmy/grdITGMJdG7jYmgzR1ddbVn+cKr84IjOPRfY7DrkTjKveR2YqJO79oWZuer3zdvgONghcs063k7cVbHjXBVBngapR+4+UuUHu6EOuVuwO7fZDOwQuGYdbyfurKSzfW+wQ6Ljwiji0fLKloXU79nCkd5X6Tpw2JJoear8YDfUIXcLTuQ3F4odIteM4+3UXRU7zlUR5DbRUD+ccgJnQ/2wA9b4m2KdiGl3bnOh2CVwzTreTtxZSWV7fCLn2L53QjY01kfSdkwsBoyJhVcxvaWN8pZNnHFo0mc2FGuDFyfymwvBLpFrxvF26q6KHeeqCHKbSCxt2Bk+yJyKRQ5aIxQbduc2m4HXUofccGdlRIy7Ojru7kuFeGnDI+EO5lcsdNga64inscxq3UrgzW10HvwmUQvTWAQDJ/KbC8VLqUPFelcFRJCPix/zyP2IF9M9EvFi1Rg3CNxccMudFXeLcYPh4FlKG+qcNsP3JKax1O7aRKeFaSxm4cV0j0S8WDXGSyLXy3dVLgxkLlMrgjwDkkfuH7yW7pGIV6vGuEXgeoXw+aAnxLhGOW2CkMSlSZ9bbZn0WQheS/dIxKtVY7wscr3CeGIcoMQGOwTB1SSne1jREtdKMqV+CMWBFxsADQfPOm2CkEBD8xQqN3yQSdd/jVn7f4uG/zpE16b/5PTZdqdNGyE53cNrvjhT6ofgX+JivLQuc0BFBLnge1Kle3gJr6V+CLnhjbzx0UQapjttgpCGuDCPVn2S+pY6zv7gp64R5qnSPbyEl1I/BHsZT4yDpKxkheSRFy9eTfdIpNhSP7yez28mXhTjiUguuXtxWxqLV9M9Eim21A+v5/O7gQsDwazEOEiEfFx0Q5PTJggWIuke7iMxn9/PeF2MS5Tc/cSj5ZXTP0Xjrjlc/MWrjkXLJd3DfSTm8wu5k4sYBxHkgs+RdA934fV8frPwuhhPRHLJ3U/TuqsYXv1ZFh6/g9LtES4+vZmj7S222iDpHu7C6/n8TpPNJM5kJGVF8DXFlu5hJ1aklnixfKNVFIMYjzRMpyx4ymkzhCyIl0ic1L6GKTuf4eLxNziyppuqZdfZUiKx2NI97MSK1BIvlm90C9lO4kxGIuSC4EEC/SE++ewXHY1amJ1aki6f32+RGa+UN8wFiZJ7h4bmKVT/7j1Eqz7JtCcqOPuDn3Jk+0ZXTPp0I4H+EL+3yVlfbHZqSbp8fr/54nzIV4yDCPKs0A1NhIPnnTZD8CHphHeuYthsAW9Faonk8xenGJdccm8ST2O57OhqKjed5/zWFtvTWNxEOuGdqxg2W8BbkVoi+fz5UYgYBxHkguBqUgnvfMSw2dFsK0pFmpXP74a7B7kSPh8sSjGeiETJvUc8Wj6hYT2ztjQy9Ga7b0V5KuGdjxg2O5ptRalIs/L53XD3wC4KFeMgglwQssIJkZdOeOcqhs2OZluVWvLE+gd541PPjXnkmufvtSotxTSBMx0SJfc20963hoszb+L6rvlOm+KIyEsnvHMVw2ZHs61KLXn8rgfZ/ennxjxyzfP3S5UWM8Q4iCAXfEquAtsJkZdKeOcjhs2OZrs5tcRrVVr8IMYTkSi5dykpn0Lf6QHKDxw2NZ88V4HthMhLJbzzEcNmR7PdnFrilyotZolxEEGeE37II9f9vU6bYAu5CGwnRF464f3NV7+bkxi2Ipqdb2qJHXcZvNR11W9iXKLk3qZk7iwGB66gdHvE1HzyXAS2EyIvnfD+ziupfXG6z2FFNDvf1BI77jJ4vetqNpgpxkEEedb4qUFQpKHKaRMsJVeB7YTISxeF/tXxV3ISw1ZEs/NNLcn2Iihf4e6lKi1+E+OJSJTcm4w0Ebr6M8zbfjU1PztZcPWVXAW2EyIvXRT6V8fS+OI0YtiKaHa+qSXZXAQVItr9UKUl3vTHLDEOIsgFH5KtwA70h9iw6Y95suN520Veuij09ElNOYlhtzQ+yuUiKN/0IDen0iTiZzEuUXLv03TVIgaW38jsCSuZPzitoG1lK7AD/SF+96k/5um3nrdd5KWLQk+vbspJDLul8VG2F0GFpAa5OZWmUC4MBHPuwJkt0hhI8BXpoqifW75hTEOFh3ZvZO+Zg5SgRi23o2GNWQ2L3NL4KNuGP8nCPdVxSYdbLj7S4Wchnsxw8CylDXVOmyEUQGnvuYLeny6Keu+1Y7/zD7++kbZAal9sdcMasxoWuaXxUTYNf5JFe6pjkgm3XHyYjdkpKsnYKsiVUlOAx4H5wBHgw1rrnhTrHQF6gWEgorVeaZ+VQjGTKYqaKBDjwhAgih61vptEnhfI9SIo306dbrn4SIWI8UtI907vUzKx8BTOTFHURIEYF4eQxhd7XOTZSbYXQYV26XTLxYeZWC3Gwf6UlS8BLVrrZqAl9jwdt2itl4sYt4/S2AlXzGQbRU0UhuUlZXxk0fsLKsXnZ7JNJTE7B7zQSaRmTUIVMZ4aySX3N9lGURPFYXlJGR++8v0FleLzM9mkkliR/13oJFKn65nbIcbB/pSV9cDa2P+PAS8Bf26zDQURDp6noqHWaTMsQ9VUAYNOm2EZ2QjpXCK6wvjkcxEUp5D0oMRcdCfeHz4fREcrRYinQKLkQjZCOpe0FmF8srkIyvbORS4k5qPns41C318IdolxsF+QT9NanwTQWp9USk1Ns54GnldKaeA/tNYP22ZhBnRDEyoYcNoMwWLMFoZ+J9u7CWbmgBeSi27G+0ei4mUyTScTkkvubcp6+izdvhXi0M9kcxFkdv53ofnohb4/X+wU4nFM/7VQSr0IpJpK/9UcNnOT1rorJthfUEod0Fr/Ks3+7gXuBWhqauJU+I2cbc4FVTmECpcWtI2wHqQzfNAkiwonMjhMSX8vw++I0DppPqp/AmhN54Gw06aNS3jQfDtbO99M6ZBaO9/Me19W2GkFqewMhUPc/9Y/8+UrvsiUinrL9v3NRd9M+1qyTeON5wNvf5/hqPFDPhyN8n9e+gH3Lfhs1rbk+34dO290WQ0AkQHNqTfcf9wLJdkPd4X3jf+mGlCRIQifsdi61IT1IEfCHY7sOxfcaOfwtAj99VcyXHEZQ8cm0nUizNCgpmufuef6a0dT++JXj75JV31++7LCTitIZWcoHOIf3vpnvmShL87kh1ON23jj+cCh0b70my/+gM9fnoMvLvD92dqZSDQaASqhrAyw71wxXZBrrW9N95pSqlspNSMWHZ8BnE6zja7Y39NKqSeB64GUgjwWPX8YoHnhFXp6xbJCP0JGVG+g4JSVzvBB5lQsMsmiwgi0tDGxcwvH5+6hcvlMqhdfx9S6WXQeCDNncYXT5o2LFXY+s/jfTN0eFGZnoD/EF166n2+s/bLlkYHOA2Emzu0btb9HX36Cfb1v8kzfT1xzhyDTeAb6Q7z4yi+JaOOHPKIjvHimhS+u/URW45fP++MRcRidK37qjTDTl7n/e1QoyX54ZsXSrN5X1mukrTgRJT8S7mB+xULb95srbrQzeDTE3GNvcX72QbqWLWFqXTNd+8LMXGruuf7Tpeb74kLsDPSH+POW+/mnddb74q59Ycov6xu1v0e2P8G+82/yzIWf8JUV7vDFmcYz0B+i5Tdjfemf3Jq9Ly7k/dnamYgTkfE4dk/qfAb4ZOz/TwJPJ6+glJqklKqJ/w/8FmBt2NvnzF1aQ+3KRcy/eQNT65qdNkdIIt+63Gbsz2ut6KHweuS5vj9x0qbki+eG1CX3LkND54jUVztthq0UUpu70P15sRV9ofXI7axnnlhf3AkxDvYL8n8A3qOUagfeE3uOUmqmUurZ2DrTgO1KqT3AK8DPtNY/t9lOQUiLHS3gE/dlpyAOhUfv75uvfndMGUK3U2guerbvD58PGhM3RYgXRKRhulRcEfLCzuobdgviUHj0/r7zynfHlCJ0O4Xmo9tVz9zJqHgits440loHgXUplncBt8f+fxu4xk67/I7u7yXSUOW0GZ6h0Oobue4r37rc+bDx+OMj+xvWUTYf2kIU47lXqs0UWpJyvPenS08RBMFe7Ky+UWht7lzZ2DnaF/+sfbQv9kK1mUJLUtpR0tItYhzsj5ALgqexM2Jtdl3ubPb3wulfjuwvEo2M/ADE8UqU3AriEXGQ9BSzkSi5kCt2RqytqM093v5ezMIXeyFK7lbckKKSjAhyn+OHZkBmkipibce+4oSHw3zz1Ues21+S00/Gj11KvS7E+wa98x0XUe4NooPOl/9NFbG2Y19xwsNhvvOKNb744dez9MXSpTQv3BQVT0SK5OaIbmgiHCy80oqbKPZmQGZhd8OgVLnMGth6/BXT9xXfX3w2eyKLpyzwZWfSYkhN8ZIYl2ZB3mK4ZjJgbR3ydNjdMChVLrMGfnXMGl+893RqX7yoYYF0Ji0AtwrxOCLIfUqwvYeq1pcYHNpG66JhypHqKuNhd8OgRBEc6A/xvic+xcXhMAORQc70h0z/4Xli/YOeKXdpJcUgxOGSGK+Y7K3PIM2C3E2gpY3yo5vYueIEtRObqGKu7TbY3TAoUQQH+kPc8WNrffHjdz1oSRlJPxONXVC5VYyDpKz4kkBLGxU7vs+R6ZuJ3lRG7Zp1zGseM9dWSMLMTpK5YmeqjF/xempKIl4V41IG0b0E20MMbHySgVOPcGZFJ5NXLXOsVK5d1TdSYWeqjFA48VxxyspcLcZBIuS+I9jeQ3V3B6VL+6hdtIhZN9zptEmewam0DbtTZazGzkZH41Es0fA4XhXiyUiU3H1Ej52guqaLU1eXMWH1HY72rHAqbcPuVBkrsbPJkVOMTlFxf3dWiZD7kMZppUyoKmNiwyynTRGyoNBGN27D7kZHqSimaHicYhHjEiV3LxOnDKOamnzbQM7ORjVWY3eTIztxYwWVbBBB7mOGm2qcNkHIAidTZczGyc6fcRFebEIcikeMC+4n3OCv7pyJOJkqYyZe7PqZDSPpKbg7VzwdkrLiQ/TAOadNEHKgmCqc2N3oKDElBYojLSWRYhXikYbpEDwlaSuCqyiWCid2NzmyAy8L8TgSIfcrddKZU7AXuxodpYuEixgXhPyIV1Z5ZeYRp00RCsTuJkdW49X0lFSIIPcZJX2nnTZB8ClW5sL7RYSDIcT9IMale6fzJFdWKV/SLBW5PE6x5MF7PT0lFZKy4jP0iZMMlvRwuDLgSP1Ywb+YnQtf7OkoqfCDEBfcQbA9RFXrVgbrdzG8xPnKKoI5eD0P/kJCd/FiEeJxRJD7hEBLG1WHNtG98BDnl8+katl14lwFWzEjF34kAh6tNP76QITD6I6bfhPjUgLRORqnlXJ+dg0XFy+mXn4vigKv5sEXsxCPI4LcBwRa2pjYuYXAik6qVq2QW46CZ0gXBdenwr4T434T4mCkrZQFTzlthu8ZaprstAmCjym21JR0iCD3CXMug/OLLmOWiHHBxSQLcPBPFDwZPwvxZCRK7gxDQ1KRS3AOvwjxOCLIfUSkQSqrCO5CBPhY/JyekgqJkjtD9NgJLg500TFjAPnlEOykWIV4T3Ts710iIsh9QOlAEKQHkOAwIr4zI0I8MxIlt4f4ZM4BvY03V0H5tGaZbyTYQrHmiY8nxOOIIPcJqqYKGHTaDMEnpBLfIAI8HZKekhmJkttDoKWN6u4O+mt2MHx1GbWr14gYFyynWIU4XBLjVVXjfy4R5EXMqMoq82dS1XSd0yYJRYiI7/wRIS64jZnNZ9m1dBozb1jvtClCkeMHIQ7ZiXEQQV60SGUVwWxEeJuHpKfkh6StWE843Ou0CUKRU6w54nFyiYonIoI8R1Qw4LQJWSOVVYR8SCe8QcR3oYgQzx9JW7Ge6FAIJkK4odppU4Qio5ij4XHyiYonIoI8Dyoaap02IWuksoqQirTR7miliG4LECEueAVdU4PMNxLMwg9CHPKPiicigrxIKR0IombKRE4/kynSDamj3fpU2CpzfEk0GqFvsFdEuElEGqZD8JSkrZhMsD3EhJ3P0FvdTmvNAOXIRE6hMPwmxKEwMQ4iyIsSdbbbaRMEm8hHdAvWkhgNV6U1IsYFVxNoaaP86CYOLzxExfI51C5bJZVVhLzxixAHc6LiiYggLzLilVWOrzjG+flNUlnF44jg9g6p01LkjoPgfmYtqub0rStl8r+QNyLEC0cEeZEQbO+hqvUlhoa2EVgxwORVy8S5egQR3d7G7fnhoSybUngFSVsxl+hQCN0keeNC7lwYCBKNVnJhoLfoRTiYm56SChHkRURDbR9Vl02n+z2L5Zajy9DRCOHz6cuJiej2Fm4X4VB8Qlwwl3je+MWSvbQuQvLGhaxJjIZTVuYrMW6FEI8jgrzYqJOqKk6SPtot1UuKAS8IcbgkxidNdK+NgnPE88ZPregkuupqFsrdVGEcRolwEtNSijstzw4hHkcEeQ64tQZ5PG/8tYWHqKycSRVznTap6Mm1VrdUL/EuXhHhMDoqXuxiXJoE5UewPcR8DnP+pnJ633OH3E0VMuKn3PBErE5PSYUI8hxxUw3yeN74YMlrXFgRlI6cFiEdKv1HoggHEeJuQ5oEFcbQ0DmnTRBcjghx+4R4HBHkHiZ67DjV1ScJLglT9a7bJNJhAiK+/YvXRDj4T4gLhRHPGz9Z9wZnZlQjCY5CIn4V4XHsTE9JhQhyj1MzOYKa2ihiPE9SCXAR3/7BiyIcRIgLuRFsD1HVupULehs9ywaIrrqa+XI3VSBTbrh/cFqIxxFBXgREGiTOkS0iwAWvivA4MmHzEpJHnh3RYyeoruni1NVlTFgteeOCRMPB2fSUVNgqyJVSHwK+DlwJXK+1fjXNeu8Dvg2UAv+ptf4H24xMgxsndJYOBFEzq5D6sekRAS6A90U4iBBPRvLIc2PilGFUU5OIcR8j0XADtwnxOHZHyN8A7gL+I90KSqlS4EHgPcBxoFUp9YzW+k17TEyPmyZ0hja/xISul2ld1C31Y5NIFuEiwP1HMQhwkNQUoXDiJQ73rOgk2nC10+YIDiDRcAO3CvE4tgpyrfV+AKVUptWuBzq01m/H1v0xsB5wXJC7gZHKKkPbCN0yTPmSZqmsgohwoXhEOIgQFwonnjc+oLdxboWRNy6/Ff5BRPgleqJBhnUlpbhTiMdxYw75LKAz4flx4J3pVlZK3QvcG3t68R23zXjDQtvMohE4U/BWfhz/558L3lQKzLHResROcxE7zcUtds6zcuPJfnj5bbP844etxyQ7n8ei34o4PhtPyxE7zcUtdqb1xaYLcqXUi8D0FC99VWv9dDabSLFMp1tZa/0w8HBs369qrVdmZaiDeMFOL9gIYqfZiJ3m4hU7C0X8sHWIneYidpqL2GkepgtyrfWtBW7iODAn4flsoKvAbQqCIAiCIAiCKylx2oAUtALNSqnLlFIVwEeBZxy2SRAEQRAEQRAswVZBrpT6oFLqOHAj8DOl1C9iy2cqpZ4F0FpHgPuAXwD7gf/SWu/LchcPW2C2FXjBTi/YCGKn2Yid5uIVO83EK59Z7DQXsdNcxE5zcb2dSuu06dmCIAiCIAiCIFiMG1NWBEEQBEEQBME3iCAXBEEQBEEQBAfxrCBXSn1IKbVPKRVVSqUtZaOUOqKUalNK7VZKvWqnjbH9Z2vn+5RSB5VSHUqpL9lpY2z/U5RSLyil2mN/69Os58h4jjc+yuA7sdf3KqWutcu2HO1cq5Q6Fxu/3Uqpv3TIzu8qpU4rpVLWi3bReI5np+PjqZSao5TaopTaH/uu/1GKdVwxnlYgvthcxBfbZqcbfIf4YRPxvC/WWnvyAVwJLAJeAlZmWO8I0OhmO4FS4BCwAKgA9gBLbLbzn4Avxf7/EvCPbhnPbMYHuB14DqOO/Q3Abxw41tnYuRbY7MS5mGTHu4BrgTfSvO74eGZpp+PjCcwAro39XwO85cbz08LPL77YXDvFF9tjpxt8h/hhc+30tC/2bIRca71fa33QaTvGI0s7rwc6tNZva63DGD0411tv3SjWA4/F/n8M+G2b95+JbMZnPfA9bbATqFNKzXChna5Aa/0rIJRhFTeMZzZ2Oo7W+qTW+vXY/70Y1aFmJa3mivG0AvHFpiO+2B47HUf8sLl43Rd7VpDngAaeV0q9poz2zm5kFtCZ8Pw4Y08iq5mmtT4JxkkNTE2znhPjmc34uGEMs7XhRqXUHqXUc0qppfaYljNuGM9scc14KqXmAyuA3yS95KXxtArxxdkhvrhwisUXu2Ess8VVY+lFX2x6p04zUUq9CExP8dJXtdZPZ7mZm7TWXUqpqcALSqkDsas90zDBTpVimen1KDPZmcNmLB/PFGQzPraM4ThkY8PrwDytdZ9S6nbgKaDZasPywA3jmQ2uGU+lVDXw38Afa63PJ7+c4i1uHM+UiC82F/HFllMsvtgNY5kNrhpLr/piVwtyrfWtJmyjK/b3tFLqSYxbWaY6LRPsPA7MSXg+G+gqcJtjyGSnUqpbKTVDa30ydvvmdJptWD6eKchmfGwZw3EY14ZE56C1flYp9W9KqUat9RmbbMwWN4znuLhlPJVS5Rg/AD/UWv80xSqeGM90iC82F/HFllMsvtgNYzkubhpLL/viok5ZUUpNUkrVxP8HfgtIOUvYYVqBZqXUZUqpCuCjwDM22/AM8MnY/58ExkSTHBzPbMbnGeB/xGZQ3wCci9/2tZFx7VRKTVdKqdj/12N8B4M225kNbhjPcXHDeMb2//+A/Vrrf0mzmifG0yrEF+eE+GIb7HSD78gCN4zluLhlLD3vi5NneXrlAXwQ40rnItAN/CK2fCbwbOz/BRizq/cA+zBuW7rOTn1p5u9bGDPDnbCzAWgB2mN/p7hpPFOND/BZ4LOx/xXwYOz1NjJUe3DYzvtiY7cH2AmscsjOHwEngaHY+fk/XTqe49np+HgCN2Pc8twL7I49bnfjeFr0+cUXm2un+GJ77HSD7xA/bK6dnvbFKmagIAiCIAiCIAgOUNQpK4IgCIIgCILgdkSQC4IgCIIgCIKDiCAXBEEQBEEQBAcRQS4IgiAIgiAIDiKCXBAEQRAEQRAcRAS5IAiCIAiCIDiICHJBKACl1IeUUheVUvMSln1bKXVIKTXNSdsEQRD8gvhiwetIHXJBKIBYZ7BWYJfW+tNKqS8AfwbcpLVud9Y6QRAEfyC+WPA6ZU4bIAheRmutlVJfAX6mlDoEfBV4d/wHQCn1DLAaaNFa3+2gqYIgCEWL+GLB60iEXBBMQCn1MnA9cKfW+rmE5bcA1cAn5UdAEATBWsQXC15FcsgFoUCUUu8GrgEU0J34mtZ6C9DrhF2CIAh+Qnyx4GVEkAtCASilrgF+CvwB8BRwv6MGCYIg+BDxxYLXkRxyQciT2Gz+Z4F/0Vp/Vyn1CrBXKbVWa/2Ss9YJgiD4A/HFQjEgEXJByAOl1BTg58BmrfXfAGit3wB+gkRmBEEQbEF8sVAsSIRcEPJAax0Crkyx/CMOmCMIguBLxBcLxYJUWREEC1FKvYgxyWgSEAI+pLX+tbNWCYIg+AvxxYLbEUEuCIIgCIIgCA4iOeSCIAiCIAiC4CAiyAVBEARBEATBQUSQC4IgCIIgCIKDiCAXBEEQBEEQBAcRQS4IgiAIgiAIDiKCXBAEQRAEQRAcRAS5IAiCIAiCIDiICHJBEARBEARBcBAR5IIgCIIgCILgIP8/pJzB+Uj9WZgAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–7\n", "\n", "poly100_kernel_svm_clf = make_pipeline(\n", " StandardScaler(),\n", " SVC(kernel=\"poly\", degree=10, coef0=100, C=5)\n", ")\n", "poly100_kernel_svm_clf.fit(X, y)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(10.5, 4), sharey=True)\n", "\n", "plt.sca(axes[0])\n", "plot_predictions(poly_kernel_svm_clf, [-1.5, 2.45, -1, 1.5])\n", "plot_dataset(X, y, [-1.5, 2.4, -1, 1.5])\n", "plt.title(\"degree=3, coef0=1, C=5\")\n", "\n", "plt.sca(axes[1])\n", "plot_predictions(poly100_kernel_svm_clf, [-1.5, 2.45, -1, 1.5])\n", "plot_dataset(X, y, [-1.5, 2.4, -1, 1.5])\n", "plt.title(\"degree=10, coef0=100, C=5\")\n", "plt.ylabel(\"\")\n", "\n", "save_fig(\"moons_kernelized_polynomial_svc_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Similarity Features" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–8\n", "\n", "def gaussian_rbf(x, landmark, gamma):\n", " return np.exp(-gamma * np.linalg.norm(x - landmark, axis=1)**2)\n", "\n", "gamma = 0.3\n", "\n", "x1s = np.linspace(-4.5, 4.5, 200).reshape(-1, 1)\n", "x2s = gaussian_rbf(x1s, -2, gamma)\n", "x3s = gaussian_rbf(x1s, 1, gamma)\n", "\n", "XK = np.c_[gaussian_rbf(X1D, -2, gamma), gaussian_rbf(X1D, 1, gamma)]\n", "yk = np.array([0, 0, 1, 1, 1, 1, 1, 0, 0])\n", "\n", "plt.figure(figsize=(10.5, 4))\n", "\n", "plt.subplot(121)\n", "plt.grid(True)\n", "plt.axhline(y=0, color='k')\n", "plt.scatter(x=[-2, 1], y=[0, 0], s=150, alpha=0.5, c=\"red\")\n", "plt.plot(X1D[:, 0][yk==0], np.zeros(4), \"bs\")\n", "plt.plot(X1D[:, 0][yk==1], np.zeros(5), \"g^\")\n", "plt.plot(x1s, x2s, \"g--\")\n", "plt.plot(x1s, x3s, \"b:\")\n", "plt.gca().get_yaxis().set_ticks([0, 0.25, 0.5, 0.75, 1])\n", "plt.xlabel(\"$x_1$\")\n", "plt.ylabel(\"Similarity\")\n", "plt.annotate(\n", " r'$\\mathbf{x}$',\n", " xy=(X1D[3, 0], 0),\n", " xytext=(-0.5, 0.20),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", " fontsize=16,\n", ")\n", "plt.text(-2, 0.9, \"$x_2$\", ha=\"center\", fontsize=15)\n", "plt.text(1, 0.9, \"$x_3$\", ha=\"center\", fontsize=15)\n", "plt.axis([-4.5, 4.5, -0.1, 1.1])\n", "\n", "plt.subplot(122)\n", "plt.grid(True)\n", "plt.axhline(y=0, color='k')\n", "plt.axvline(x=0, color='k')\n", "plt.plot(XK[:, 0][yk==0], XK[:, 1][yk==0], \"bs\")\n", "plt.plot(XK[:, 0][yk==1], XK[:, 1][yk==1], \"g^\")\n", "plt.xlabel(\"$x_2$\")\n", "plt.ylabel(\"$x_3$  \", rotation=0)\n", "plt.annotate(\n", " r'$\\phi\\left(\\mathbf{x}\\right)$',\n", " xy=(XK[3, 0], XK[3, 1]),\n", " xytext=(0.65, 0.50),\n", " ha=\"center\",\n", " arrowprops=dict(facecolor='black', shrink=0.1),\n", " fontsize=16,\n", ")\n", "plt.plot([-0.1, 1.1], [0.57, -0.1], \"r--\", linewidth=3)\n", "plt.axis([-0.1, 1.1, -0.1, 1.1])\n", " \n", "plt.subplots_adjust(right=1)\n", "\n", "save_fig(\"kernel_method_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Gaussian RBF Kernel" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svc', SVC(C=0.001, gamma=5))])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rbf_kernel_svm_clf = make_pipeline(StandardScaler(),\n", " SVC(kernel=\"rbf\", gamma=5, C=0.001))\n", "rbf_kernel_svm_clf.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–9\n", "\n", "from sklearn.svm import SVC\n", "\n", "gamma1, gamma2 = 0.1, 5\n", "C1, C2 = 0.001, 1000\n", "hyperparams = (gamma1, C1), (gamma1, C2), (gamma2, C1), (gamma2, C2)\n", "\n", "svm_clfs = []\n", "for gamma, C in hyperparams:\n", " rbf_kernel_svm_clf = make_pipeline(\n", " StandardScaler(),\n", " SVC(kernel=\"rbf\", gamma=gamma, C=C)\n", " )\n", " rbf_kernel_svm_clf.fit(X, y)\n", " svm_clfs.append(rbf_kernel_svm_clf)\n", "\n", "fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10.5, 7), sharex=True, sharey=True)\n", "\n", "for i, svm_clf in enumerate(svm_clfs):\n", " plt.sca(axes[i // 2, i % 2])\n", " plot_predictions(svm_clf, [-1.5, 2.45, -1, 1.5])\n", " plot_dataset(X, y, [-1.5, 2.45, -1, 1.5])\n", " gamma, C = hyperparams[i]\n", " plt.title(f\"gamma={gamma}, C={C}\")\n", " if i in (0, 1):\n", " plt.xlabel(\"\")\n", " if i in (1, 3):\n", " plt.ylabel(\"\")\n", "\n", "save_fig(\"moons_rbf_svc_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# SVM Regression" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvr', LinearSVR(epsilon=0.5, random_state=42))])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import LinearSVR\n", "\n", "# extra code – these 3 lines generate a simple linear dataset\n", "np.random.seed(42)\n", "X = 2 * np.random.rand(50, 1)\n", "y = 4 + 3 * X[:, 0] + np.random.randn(50)\n", "\n", "svm_reg = make_pipeline(StandardScaler(),\n", " LinearSVR(epsilon=0.5, dual=True, random_state=42))\n", "svm_reg.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnsAAAEQCAYAAADI77KTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAACRxUlEQVR4nOydeXiMVxfAf28mC7EXQYgICUKorZTYa6ut1SpVWvtOqX0vkti3opSqrbVUi1a1vqqitrZKo43YYgmRkEgQicgyM/f7Y8w0eyaZyWQS9/c88yTzLveemcycnHvuWRQhBBKJRCKRSCSSgolNXgsgkUgkEolEIsk9pLEnkUgkEolEUoCRxp5EIpFIJBJJAUYaexKJRCKRSCQFGGnsSSQSiUQikRRgpLEnkUgkEolEUoCRxp7E4iiKclxRlLUZPZdIJBJrR+oxSX5CGnuSvOAtYHpeC5EaRVFGKYpyS1GUeEVRziuK0iKL66soiiLSeXSylMwSiSTPsDo9pihKS0VRDiiKEvpcFw0w4p7WiqJ8ryjKPUVR4hRF+VdRlEEWEFdiQaSxJ7E4QoiHQoiYvJYjOYqi9AY+ARYA9YEzwCFFUSobcXsnoEKyx9HcklMikVgH1qjHgKLARWAc8MzIe5oBAUBPwAtYD2xUFOW9XJFQkidIY0+SBkXHFEVRbiiK8kxRlABFUfo9P6f3Zr2nKMqp516wK4qidEh2v52iKKsVRQlTFCVBUZQQRVEWJTuf6XaHoiilFEXZpijKo+fzH1EUpXay8wMURYlVFOU1RVEuKoryVFGUY4qiuJnwsicAW4UQnwshLgshxgL3gJFG3BslhLif7JFoghwSicQMvIh6TAjxkxBihhDiW0Br5D0LhBCzhBCnhRA3hRDrgX3A2zmVQ2J9SGNPkh6+wGBgNFALWAhsUBSlS7JrlgCrgXrAL8D3iqJUfH7uQ6AH8C7gAfQGrmZj/q1AE+ANoDEQB/xPUZTCya5xQLeFMghoCpQEPtOfVBSlxXNFmtljxvNr7YGGwOFUchxGt+rNin2KokQoinJaUZSe2XidEokk93ih9JiZKQ48yoVxJXmEbV4LILEuFEUpgs7L1UEIcfL54VuKojRGpzRHPT+2Xgix5/k944CO6LxgswBX4BpwUuiaL99Bty1qzPweQHeglRDixPNj7z8foy+w6fmltsBoIcTV59csA7YoimIjhNAC59Ap8Mx4+PxnGUAFhKc6Hw60y+T+WGAScBpQP5f7a0VR+gshvspibolEkku8oHrMLCiK0hV4DfA257iSvEUae5LU1AIKoVuBimTH7YDgZM9/1/8ihNAqivLn83tBt6L9BbimKMph4Cfg0HPllRWe6LYfko8frShKQLLxARL0CvI5Yc9lLAk8FEI8A64bMV9yRKrnSjrH/rtYiEhgebJD5xRFKQNMAaSxJ5HkHS+yHssxiqJ4AzuBD4UQZy01ryT3kcaeJDX6rf1u6FahyUlCZwBlihDib0VRqqBLXGgLbAP+URSlvRGKMrPxkyttdQbnbEC3/QEcymKuBUKIBUAkoAHKpzrvRFpvX1b8CQzM5j0SicS8vIh6zCQURWmOzqCd8zxuT1KAkMaeJDWXgATAVQiRJqv0ufIDeJXnWaeKoijoYlK+1V/3PEvtG+AbRVG2An8A7ui2RbKa3wZd/Ip++6M4UAfYko3XYfT2hxAiUVGU80D75zLraQ/szcacPJ/zXjbvkUgk5uWF02OmoChKS+BHYK4QYpWp40msD2nsSVIghIh5Hjey7LnyO4Eunf9VdNsS+iSGkYqiXEOXsj8KXXzLegBFUSagM3guoFtFvwc8Ae4aMX+QoijfowukHgY8Bvye378zG68ju9sfK4AvFUU5iy4GbwTgTMpg6YVAYyHEa8+f90f3+vzRvTfd0MUDTc3GvBKJxMy8qHpMUZSi6IxR0BmblRVFqYduS/jO82tS67HW6Ay9dcAORVH0OxwaIcQDY+eWWDfS2JOkx2x025eT0Cm+J+gU3pJk10xDFwDdALgN9BBC6JVgDDAZXQabQGcMvS6EiDNy/oHAKuAAurib00Cn54ovVxBCfK0oSml0gdkV0NWq6iyEuJ3ssgpAtVS36gO5NehW+4NkcoZEYhW8cHoMaAQcS/Z83vPHNmDA82Op9dgAwBHd+zQp2fHbQJXcEVNiaRRdkpFEYhzPtz9uAa8IIc7lsTgSiUSSbaQek7xoyDp7EolEIpFIJAUYsxl7iqJsfl5Y9mKyY+8oihKoKIpWUZRG5ppLIpFIJBKJRGIcZtvGfZ7NEwtsF0J4PT+mrzW0AZgk3eUSiUQikUgklsVsCRpCiBPJ0tn1xy4D6JKhJBKJRCKRSCSWRsbsSSQSiUQikRRgrKL0yvM6RMMAChUq1LBy5cp5LJEOrVaLjU3e28NSjrRYiyxSjrSYSxYhBMnDTBRFydYuwbVr1yKFEGVNFsRIpB6TcmQXa5FFypGWAqfH9IKY44GuJs/FdI4fBxoZM0b16tWFtXDs2LG8FkEIIeVID2uRRcqRFmuRBTgnzKjfsvOQeiwtUo60WIssUo60WIss5tJj1mFCSyQSiUQikUhyBXOWXtkF/A7UUBTlrqIogxVF6aEoyl10/QF/VBTlZ3PNJ5FIJBKJRCLJGnNm4/bJ4NR+c80hkUgkEolEIskechtXIpFIJBKJpAAjjT2JRCKRSCSSAoxVlF7JDk+ePCEiIoKkpKRcn6tEiRJcvnw51+fJCDs7O5ycnPJsfolEkju8SHqsSJEiVKpUKc/ml0gk+czYe/LkCeHh4VSsWJHChQvnemeOmJgYihUrlqtzZIQQgmfPnhEaGopKpcoTGSQSifl5kfSYVqslNDSUyMjIPJlfIpHoyFfbuBEREVSsWBFHR8cC34JNURQcHR2pWLEiRYoUyWtxJBKJmXiR9JiNjQ3lypUjOjo6r0WRSF5o8pWxl5SUROHChfNaDItiiZW/RCKxHC+aHrOzs0OtVue1GBLJC02+MvaAF87wedFer0TyIvAifa9fpNcqkVgr+SpmTyKRWA9qtZqQkBDCwsJITEzE3t4eZ2fnvBZLIpFIjOZF0WPS2MsDHjx4wKeffsro0aMpW9ZifdolErMghODixYsEBQUBoNFoDOfCw8OxsbEhICAALy8v6dUpwEg9JsnPvGh6LN9t4xYERo4cyblz5xg9enReiyKRZAshBKdPnyYoKAiNRpNCQYJOYQohCAoK4vTp0+j6eEsKIlKPSfIrL6Iek8aehdm5cycODg4cPHgQOzs79uzZk9ciSSRGc/HiRSIiItIox9RoNBoiIiK4ePGihSSTWBKpxyT5mfygx37//XemTp1qtvHkNq6Fee+993jvvfcA2LFjRx5LI5EYj1qtNqyE9Zw86cKuXXWIinKkdOk4+vQJoE2be4BOUQYFBeHp6YmtrVQ1BQmpxyT5FWvXY5cvX2bMmDEcPXqU0qVLm21cqYElkgJORgHILi4u2VJeISEhKZ6fPOnChg2NSEzUjREZWYQNGxqhUvnTrFlwivvc3NzM8lqM4eLFiyxfvtxi80kkktynIOsxIQTR0dGULFmSokWLcv36dZYtW8aIESMoWrSoWeaQxp5EUkDJKgDZ398fDw8PowOQw8LCUoyxa1cdg4LUk5hoy44dtQ1KUqPREBYWZhFj7969e8yZM4fNmzfnWccIiURiXgqyHhNC8MMPP+Dr60vx4sU5cuQILi4u3Lx50+yds2TMnoWoVKkSK1asSHEsICCAQoUKcenSpTySSlJQMSYAWb89YWwAcmJiYornUVGO6V4XGZmyYLAl+r+CbuW9fft2xo0bx40bNywy54uG1GMSS1JQ9ZhWq+Wbb76hfv36vPHGG0RGRtK7d2+D/LnRIlUaexaiadOm/PXXXymOjR8/niFDhlCrVq08kkpSUMmNAGR7e/sUz0uXjkv3ujJlnqV4bmdnl+XYOUGtVrNhwwamT58OQOPGjQkJCWHFihVmjXWR/IfUYxJLUlD12IYNG+jVqxfx8fFs27aNa9euMXTo0Fwt8SKNPQuRWkl+9913+Pv7M2/evDyUSlIQySgAedSozvTu3ZNRozpz8qSL4Zx+ZZxVSytnZ+cUK84+fQKwt095j729mr59Aw3PVSqV2QuU6rc+6taty4gRIzhz5oxh1e3k5GTWuSQpkXpMYikKkh5LTExk8+bN/PjjjwD069ePr7/+msDAQD744AOLJH6YzdhTFGWzoigRiqJcTHbsJUVRflEUJej5z1Lmmi/ZHLn2KF68eIbnssurr77KjRs3ePjwIQkJCUyaNIk5c+ZID4TE7GQUgBwZWQQhFEMAcnJFmd59qXFxSXl9ixYhDB9+jjJlnqIogjJlnjJ8+Dlatryb6X2mcO3aNdq2bUv37t1Rq9Xs37+f48eP55r30FJIPSaRpKQg6LH4+HjWrVuHh4cHgwcPZufOnQAUK1aMXr165cp2bUaY05zcCqwFtic7Ng34VQixSFGUac+fm69wTD6iYcOG2Nvbc+7cOfz9/bG1tZXFSCW5grEByLt21aFFC51iNCYA2dbWFg8PjxSr7RYtQgxjJLsS0K2GPTw8zLJqFUKgKAqFCxfm5s2brF27lmHDhuV7Iy+/IfWYxFLkdz22c+dOJk+eTFhYGK+++iqfffYZnTp1ytYY5sRsxp4Q4oSiKFVSHX4DaP38923Accxs7OVmZeuYmBizZfU5ODhQv359fvjhB7Zt28bOnTvlPypJrmBsAHLq48YEIHt5eREdHZ1lHI1KpcLJyQkvLy8jJM6Yx48fs2DBAgIDAzl48CAuLi7cuHGjwNXtk3pMIklJftRjMTExqFQqHB0d0Wg0VK9enS+//JI2bdrkecu13I7ZKyeEuAfw/OcLHVDTtGlTPv30U5o2bUrXrl3zWhxJAcXYAOTUx435p60oCt7e3nh4eKBSqdJsQ9ja2qIoCh4eHnh7e+dYwSUmJrJq1SqqVavGsmXLcHJyIiEhwTCHJO+QekxiCfKTHnv06BHz58/H1dWVTz/9FNDF5R07doy2bdvmuaEHoJhzRfncs3dQCOH1/PljIUTJZOcfCSHSxO0pijIMGAZQtmzZhhm13ilRogTu7u5mkzcrNBqNWffUd+zYwZgxYzhz5gyenp5G3xcUFMSTJ0/MJkdOiY2NNVuBR1OxFlmsUY7ExETi4uIM3qITJyqxfn19EhL+M5IcHNSMHOlviEtRFAVHR8c0CjYrEhMTSUpKMmyz2tnZkZiYaNJ7Eh8fz/Xr10lISODy5fr88ENTHjwohJNTAkOG3KRduwijxmnTps15IUSjHAuSTaQey5jr168TGhpqdd+VvMZaZLFGOfKDHlOr1YSHhxMREYFWq6VkyZJUqFABR8f/vI1HjjixaVNVIiIcsq3DwHx6LLeNvatAayHEPUVRKgDHhRA1MhujRo0a4urVq+meu3z5craMJFMx5/YHQIcOHfDw8DBY/sbi7+9P/fr1zSZHTjl+/DitW7fOazEA65HFGuVQq9UcOHAgy3ZAqWNUypcvT6VKlbJdkT4zWbLDkydPKF68OLGxsbz11lvUr7+UtWtfJi7Zwt3RETZuhL59sx5PURSLGnvJkXosJZcvXyY8PNzqvit5jbXIYo1y5Ac91qVLFw4dOkTPnj2ZOXMmL7/8corzO3bAsGHkWIeB+fRYbu+HHAD6A4ue//w+l+ezOrRaLQ8ePGDr1q0EBATw9ddf57VIkgKO8QHIKbl//z4PHjzIdkV6U7l27RpTp07l8uXLBAQEULRoUQ4fPkyVKimVJOiez5xpvKKUmAepxySWxhr1WEhICEuXLmXq1KlUrFiRhQsXsnTp0gxrTM6caT06zJylV3YBvwM1FEW5qyjKYHRGXntFUYKA9s+fv1CcOHGCChUqsHXrVvbu3UupUmavPiORpMHLywsnJ6dsb9/lpCJ9TomIiGDMmDHUrl2bI0eO0K9fP7RareH8nTvp35fR8eQEBgZmfZHEaKQek+QF1qLHbt68ybBhw6hWrRrr16/n5MmTANStWzfTYuKm6DBzY85s3D4ZnHrNXHPkR1q3bp3iH5hEYgn0AcgZ9ZTMiuQV6evUqWN2+QICAvD29iYuLo5hw4Yxd+7cNAWRK1eG27fT3lu5csbjhoWFMWfOHLZs2WJmiV9spB6T5AV5rceEEAwZMoRt27Zha2vL0KFDmTJlCq6urkbdnxMdllvItDaJpICiKAp16tTB09OTkJAQ7t69y/3791Nck1kMjH5l7OnpaZYMWI1Gw7Vr1/D09KRWrVoMHjyY4cOHU7NmzXSv9/NLP97Fzy/ttbGxsSxdupRly5YRFxeHra2tNE4kkgJAXuix288tNEVRsLW1ZezYsUyePDnbXTSyo8NyG9kuTSIp4Nja2uLm5kalSpVSbIeYqyK9Mfzyyy80bNgQb29vHj9+jEqlYuXKlRkaeqCLadm4EVxdQVF0P1MHNuv747q7uzN//nzi4uJ466235DauRFLAsIQeO3/+PD169MDNzY1nz3S9cTds2MDKlStz1C7NGB1mKaSxJ5G8IGSnIr0efUX6nPLvv//SsWNHOnToQHR0NOvWraN48eJG39+3LwQHg1ar+6lXkqn744aHh9OkSRNOnjzJ3r17qV69eo5llkgk1ktu6LEzZ87QuXNnGjVqxPHjx5kzZ062y7dkREY6zNLIbVyJ5AUhNyvSp8e1a9eoX78+JUqUYPny5YwePRoHB4ccjZWcc+fOMXnyZI4fPw5A1apVWbhwIe+8845VFC+VSCS5h7n12JMnT+jYsSMODg74+fkxevRoSpQoYdAvBQVp7EkkLwjpVaSPjCyS5rqcVKTXExMTYygAXr16dTZu3Mhbb71lluzN4OBgZs6caWgm/tJLLzF79mxGjhxpFiNSIpFYP6bqMSEEhw8fZt++fXz22WcUL16cn376iQYNGlCkSNpxCgr5bhv3RQu6ftFeryT3cHZ2ThHr0qdPAPb26hTX2Nur6dMnwPBcpVIZFauSlJTE+vXrcXd35/r160RE6CrEDx482GRD79GjR0yePJkaNWqwc+dOHBwcmDx5MtevX2f8+PH50tB7kb7XuVm+R/LikVM9VqFCBQ4cOECTJk3o1KkThw4dIjQ0FIAWLVoUaEMP8pmxV6RIEUJDQ0lMTCzwCkQIQWJiIqGhoTneRpNIkuPikjJguUWLEIYPP0eZMk9RFEGZMk8ZPvxcmqKlqe9LjhCC77//njp16jBq1Cg8PT2pWbNmmjIqOSEhIYGVK1fi7u7OsmXLSExMpG/fvixeHMKePUsoXboUVaroqtTnJ140PRYVFUWhQoXyWhRJASEnekwIwTvvvMMbb7xBVFQUn3/+OdevX6dSpUqWFt/Ajh1QpQrY2GARPZavtnErVapEZGQkt2/fRq1WZ32DicTHx+epkrK1taVEiRLEpS7BLZHkgOxWpFepVHh4eGRariAkJISePXvi7u7OgQMH6Nq1K7/99ptJcgoh2LNnD9OnT+fWrVsAtGnThqVLl3LlSsMUpQxu39aVNoD801XjRdNjhQoVolKlSoZyFhKJKeREj7m5uVGyZEm2bdvGe++9Z5ZSUqaQuo2aJfRYvjL2bGxscHJyMovXwBiOHz9uFT1pL126lNciSAoIXl5eREdHExERkWlxUpVKhZOTE15eXmnO3bx5k3379jFp0iQqV67MsWPHePXVV82iQE+ePMmkSZM4e/YsAJ6enixZsoQuXbqgKApvv2097YdyyouqxyQSc2GsHktISMDV1ZV69erx66+/WlDCzMmLNmr5ahtXIpGYhr4ivYeHByqVKk0bIltbW4NHz9vbO0V268OHD5kwYQKenp7MmTPHULeqefPmJht6V69epUePHrRs2ZKzZ89Srlw5NmzYwL///kvXrl0NclhT+yGJRJI3ZKXHnj17RmJiIoULF6ZZs2ZWl6WfF3osX3n2JBKJ6aSuSB8WFkZSUhJ2dnY4Ozvj4uKSwnhLSEhg7dq1+Pr6Eh0dzcCBA5k/fz4VK1Y0WZaIiAjmzZvHhg0b0Gg0ODo6MnnyZCZNmkTRokXTXG9N7YckEknekVqP+fv78++//+Lg4EDt2rV5/fXXs1VJwJLkhR6Txp5E8oKir0jv5uaW6XVxcXH4+fnx6quvsmTJErP0yo2Li2PVqlUsWrSImJgYbGxsGDp0KPPmzaNChQoZ3mds+6H4+HiTZZRIJNZLTEwMn376KTY2NkyZMoUqVapQrlw5q/TkpSYv2qjJbVyJRJKG3377jQEDBqDRaChVqhQBAQEcOnTIZENPo9GwZcsWqlevzsyZM4mJiaFz5878+++/bNy4MVNDD7JuP/T06VN8fHwyzSCWSCT5l0ePHjF//nxcXV2ZPn06586dA/7b2rV2Qw/ypo2aNPYkEomBK1eu8MYbb9C6dWt+/fVXgoODAcyyZXv48GEaNGjAoEGDCA0NpX79+vz666/8+OOP1K5d2+hxMmo/9Pvvv1O9enXmzJlDy5YtTZZXIpFYF7t27cLV1ZWPP/6YFi1acPbsWfbs2ZPXYuUIS7dRk8aeRCIhJiaGkSNH4uXlxfHjx1m4cCHXrl2jWrVqJo+t74/bsWNH/v33X1xcXNi+fTvnzp2jbdu2Jo0thCA6OhoAd3d3ateuzalTp9i7d6/Jckskkrzn3r17huLHNWvWpFOnTvzzzz98//33vPLKK3ksXe5y4cIFs40ljT2J5AVGX9S3UKFCnDp1ipEjR3L9+nWmTZtG4cKFTRo7NDSUQYMGUa9ePQ4fPkyJEiVYvHgx165d4/3338fGxjT1c+HCBTp06ECHDh0QQlC2bFkOHz6Mt7e3SeNKJJK8JyQkhLFjx+Lm5sbMmTMBqF+/Pnv27KFu3bp5LF3ucvbsWbp3727WkknS2JNIXkA0Gg1ffPEFjRo1IjY2Fjs7O86fP8+aNWsoW7asSWNrtVpmzpyJh4cHW7ZsQaVSMW7cOG7cuMGUKVNMLvAbEhJC//79adCgAX///Td9+vTJtNaWRCLJP9y8eZNhw4ZRrVo1PvvsM/r168fs2bPzWiyLcPLkSTp27EiTJk344YcfTF5wJ8cixp6iKOMURbmoKEqgoijjLTGnRCJJixCCQ4cOUa9ePYYMGYK9vb2hj23qBuPZJSkpiU8//ZSAgAAWLFjAs2fP6NmzJ5cvX2bVqlWULl3aZPlPnTpF9erV+frrr5k8eTI3btxg/PjxeV4RXyKRmIdVq1axfft2hg4dyo0bN9i0aZNZwkmsFSEER44coXXr1rRs2ZLDhw9TtGhRpk2bZoiZNge5buwpiuIFDAUaAy8DXRVF8cjteSUSSUpiYmLo0KEDnTt35tmzZ3zzzTecOXOGqlWrmjSuEILvvvsOLy8vxowZg1qtplmzZpw5c4ZvvvkGd3d3k8ZPSkriypUrALzyyisMHz6cq1evsnjxYkqWLGnS2BKJJG8JCAjg3XffNbRZnDVrFjdv3uTTTz+lcgEuoCmE4Mcff6RZs2a0b9+e3377jZIlS/Lxxx9z+/ZtFi5caNYuO5bw7HkCfwgh4oQQauA3oIcF5pVIJOjKkQAULVqUl156iVWrVnHp0iV69uxpcpmCP//8k5YtW9KjRw+uXbuGu7s71apV49SpUzRt2jTN9dlp/i2EYN++fdSuXZv27dsTHx+Pg4MDq1atwtXV1SS5JRJJ3nL+/Hl69OhB3bp1+fHHHw19sJ2cnHB2ds5j6TInO3osNVqtlv3799OoUSO6du3KH3/8QenSpfHz8yM4OJi5c+fy0ksvmV1mRR+gnVsoiuIJfA80BZ4BvwLnhBBjk10zDBgGULZs2YbWkkodGxubbhV/KUfeYy2yWLMcGo2G+/fv8+DBA2rXrm3WavKJiYncvXuXR48eAboCzRUqVKBs2bI8ffo03ffkyBEnli2rQULCf62NHBw0TJp0lXbtIlJc+/TpU+7evUtsbCyFChWiUqVKlChRIlsytmnT5rwQolEOXl6OkHpMypFdrEUWS8sRHBxMVFQUKpWKcuXK4eTkhEqlspr3AzJ+T7Kjx1Lz8OFD7t+/z7NnzwCws7OjXLlylC1bNsOENbPpMSFErj+AwcDfwAngM2BlRtdWr15dWAvHjh3LaxGEEFKO9LAWWaxRjoSEBLF69WpRpkwZAYh+/fqJ0NBQs8wTFRUlJkyYIOzs7AQgChUqJKZNmyYeP36crizJcXUVAtI+XF1TXvfHH38IQJQvX15s3LhRJCUl5UhWdItKi+i41A+px9Ii5UiLtciS23JotVpx8uRJw3d53bp1YsGCBSn0hiXkyA6m6jE9iYmJYsuWLcLDw0MAAhAuLi5i7dq1Ii4uLks5zKXHLBLVLIT4AvgCQFGUBcBdS8wrkbxoxMfHU79+fa5cuUKbNm1YunQpDRs2NMu4a9euxc/Pj8ePH6MoCh988AG+vr5Gd6vIrPl3VFQU586do2PHjjRu3JgNGzbw3nvvWc0qXyKRZB8hBIcPH8bX15dTp06xe/duevfuzciRI/NatByTmR5LTkJCAtu2bWPhwoWGRAs3NzemT59O//79TU6Iyy4WMfYURXESQkQoilIZeAvdlq5EIjETCQkJgK5eXt++falfvz6dO3c2OSZPq9Wye/duZsyYwe3nnbtfe+01li5dmu0aUBk1/y5RItqQbXf37l2KFi3KsGHDTJJbIpHkHUIIfvjhB3x9ffnrr79wcXFh7dq1dO/ePa9FM5mM9Jg+l+TZs2ds2rSJJUuWcPeuzq9Vo0YNpk+fznvvvWfWcJrsYKk6e3sVRbkE/ACMFkI8stC8EkmB5vr16/Tq1YuLFy/y119/Abpsti5duphs6P322280adKEvn37cvv2bby8vPjpp5/45ZdfclTs089P1+w7OYoSx+PHI2nevDmnT5+WnjyJpACg1WqZOnUqkZGRbNy4kevXrzN69Giz1o3LK9LTY46OMGdOPMuWLaNq1ap8+OGH3L17Fy8vL3bv3k1gYCD9+/fPM0MPLOTZE0K0sMQ8EsmLQlRUFD4+Pqxbtw57e3t69OiBp6enWca+fPkyU6dO5YcffgCgQoUK+Pj4MGDAAFQqVRZ3Z4y+9+PMmXDnjkCI21Su/DmbNw8xuW2aRCLJO9RqNbt372bDhg0cOnSIokWL8tNPP+Hi4lLgamCm1GNQqZKWJk2+Z8qUoURFRQHQoEEDZs+eTffu3U3uFGQurEMKiURiNElJSdSvX581a9YwcOBAgoKCqFChgslesfv37zNixAjq1KnDDz/8QNGiRZk/fz5BQUEMHjzYJEMPIDAwkIcP1zxv/q1w8uRdbt70kYaeRJJPSUxM5IsvvqBmzZq8//77PH78mJCQEEAXn1bQDD09ffvC+fNRzJo1hydPXuLbb98iKiqKpk2b8uOPP3Lu3DnefPNNqzH0wEKePYlEYhparZaffvqJLl26YGdnx/Lly6lVqxa1a9cG4OrVqzke++nTpyxfvpwlS5bw9OlTVCoVI0aMYO7cuZQrV85k2e/du8fHH3/MF198QYkSJejXrx+lSpWiefPmJo8tkUjyhsjISBo2bMidO3do0KAB+/fvtypPVm4RHh7OihUrWLduHbGxsQC0bt2a2bNn06ZNG5PDZ3KLgv1XkUgKAEePHuWVV16hW7du/O9//wPgnXfeMRh6OUXfH9fDw4OPP/6Yp0+f0q1bNwICAli/fr3Jhl5sbCzz5s3Dw8ODrVu3MnbsWK5du0apUqVMGlcikeQNcXFx/PrrrwCUKVOGHj168NNPP1mlJ8vchIaGMn78eNzc3FiyZAmxsbF07NiREydOcOzYMdq2bWu1hh5Iz55EYrUEBgYyZcoUfvrpJypXrsxXX31Fx44dTR5XCMH//vc/pkyZwsWLFwFo2LAhy5cvp1WrViaPryc6OpolS5bQuXNnFi5caHLbNIlEkjc8efKEdevWsWLFCqKjo7l79y5ly5Zl1apVeS1arnP79m0WLVrE5s2bSUxMBKB79+7MmjWLV155JY+lMx5p7EkkVohGo6F79+5ERUWxePFiPvzwQwoVKmTyuP7+/kyePNmwOq9SpQoLFiygd+/eJq/KxfNej1FRUQghqFixIkFBQVbf+kgikaTP48ePWb16NatWreLRo0d06tSJmTNnUrZs2bwWLddJSEhg8ODBbN++HbVajaIovPPOO8ycOZOXX345r8XLNgXX5yqR5DNiY2NZunQp8fHxqFQqdu/ezY0bN5gyZYrJht6dO3f44IMPaNiwIb/++islS5Zk2bJlXLlyhT59+qQx9NRqNbdu3eL06dMcO3aM06dPc+vWLdRqdbrjnz9/ntdee41u3boRExPDgwcPAKShJ5HkQ8TzNqqRkZHMnz+fli1bcvbsWQ4dOlTgY20vXbpEv379uHjxIps3b0YIwfvvv09gYCB79uzJl4YeSM+eRJLnqNVqNm/ezMcff8z9+/fx8PDgzTffNMsWQXR0NAsXLmTVqlUkJCRgZ2fHmDFjmDVrVrrNtoUQXLx4kaCgIEDnYdQTHh6Ov78/Hh4eeHl5oSgKkZGRjB8/nh07dlCmTBnWrl1LrVq1cHJyMll2iURiWe7du8eyZcsICwtj165duLu7ExwcTKVKlfJatFznwoUL+Pr6sm/fPoQQNGjQgMGDBzNt2rQCEYIiPXsSSR6h3/Z8+eWXGT58OFWrVuXMmTO8+eabJo+dmJjImjVrqFatGosXLyYhIYHevXtz5coVVqxYkaGhd/r0aYKCgtBoNCkMPcBwLCgoiNOnTyOEoHDhwvzxxx9Mnz7dUDjVmoOUJRJJWpKSkhgzZgxubm6sWrUKOzs7gxe/oBt6Z8+epVu3btSvX5+9e/diZ2fHyJEj8fLyYtOmTQXC0APp2ZNI8hRfX1+SkpLYt28fb775psmGkhCC/fv3M3XqVK5fvw5A8+bNWbZsGU2aNMn03osXLxIREZHGyEuNRqPh9u3bFC1alHr16nH58uU8rQwvkUhyzoEDB7h+/TobNmygf//+BcaTlRUnT57E19eXw4cPA1C4cGFGjBjBxIkTqVixIsePH89bAc2MNPYkEgty+/Zt5s+fz8KFC3FycuLbb7/FycnJLMbS77//zqRJkzhz5gyg68e4ePFiunfvnqURqVarDR49PSdPurBrVx2iohwpXTqOPn0CaNFCVzDV3t6eGzdu4OXlJQ09iSSfceXKFWJiYnjllVdo3rw50dHRXL9+HVdX17wWzezs2PFftwsXF8F7713k99/H8ttvvwFQtGhRRo8ezYQJEwp0+IncxpVILMDjx4+ZMmUKNWrUYOfOnfzxxx8AVKxY0WhjaccOqFIFbGx0P3fs0B2/fv06N2/epFmzZpw5c4ayZcvy6aefEhAQwBtvvGGUt1Bf9V7PyZMubNjQiMjIIgihEBlZhA0bGnHypIvhGkVR0twnkUisl4CAAN59911q1arFhAkTAHjppZdwcXGxmKGXkR7LrbmGDYPbt0EIuHNHYdGiqvz2mzMlSpRgzpw5htIqBdnQA+nZk+Rj1Go1ISEhhIWFkZiYiL29Pc7OzlbVj1EIwZo1a5g3bx6PHj3i/fffx9fXFxcXl6xvToZeacXF6Z7fvg1Dhwq+/PJLjh4dwsKFCylcuDATJkxgypQpFC9ePFvjh4WFpfDq7dpVh8TElO9hYqItu3bVMXj3NBoNYWFhuLm5ZWsuiUTyH7du3cp1HXbhwgXmzZvHd999R9GiRZk6dSofffSR2cY3lvT02LBhut/1PWfNyYwZgri41IvdIpQsuZ7gYChRooT5J7VSrOM/okSSDYQQPHv2jAMHDgBZZ4zmJYqicObMGRo0aMCSJUuoX78+kHJroXJl8PPLXNnNnPmfgtTz7JnCzz+3RFHUlC5dmmvXruU4mFpfLFRPVJRjutelPp6UlJSj+SSSFxl91vvjx495+PBhrukwIQSKovDnn39y/Phx5syZw7hx49JN0MoJ5tBjcXG64+Y09jQaDd988w137vQC0r5/0dEleIHsPEBu40ryGfqM0YSEBKMzRk0hu/XmAE6fPk3z5s0JCAgAYMuWLRw+fDiFoZd8a0G/us1sO+POnYzOVMbf358qVaqYlDVnb2+f4nnp0nHpXpf6uIzXk0iyR/KsdyGE2XWYEILjx4/z2muvsX79egAGDhzI7du3mTdvnlkNPXPpsYz1W/ZISkpi69ateHp60qdPHyD9gStXNs98+Qlp7EnyFfqM0awUoEajISIiwtAOLLsIIQgICODAgQP4+/sTFhZGZGQkYWFh+Pv7c+DAAYMxp+fatWu89dZbNG/enFu3bnHv3j1Al+WVfHWe2eo2I8qWfZbucVdXG7MU+SxRogQJCQmG5336BGBvn9KgtbdX06fPf69ZpVLJoskSSTbJTtZ7dnSYEIKff/6ZFi1a0KZNGy5duoSjo84Tb29vn+3QjqzIiR7LyMgy1fhKSEhgw4YNVK9enYEDBxIUFISbmxuDBt3A0THl/wpHR50H8kVDGnuSfENGGaOjRnWmd++ejBrVOUUCgX51nJkXLr05bt68yQ8//MCVK1ey9B7GxsYihGDKlCnUrl2bX375BR8fH65du0aHDh3SnSM7q9vAwEC6dOlCRMRg4GmKc+ZQWteuXQOgZs2aKWKEWrQIYfjwc5Qp8xRFEZQp85Thw88Z4vX0ZDf2UCJ5kclNHTZ8+HA6derE7du3WbNmDTdv3mTAgAG58TKAnHnp/Px0eis5puixZ8+esWbNGtzd3RkxYgTBwcHUqFGDbdu2ce3aNb744jU2blRwdQVFAVdX2Lgxd+IDrR2LxOwpivIRMAQQQAAwUAgRb4m5JQWHjDJG9YkE+oxRIIVREhISkmUSQfLOEVmtuPVoNBrUajUXL16kUKFCDBkyhLlz51KuXLlM76tcWbflkd5xPffu3WPOnDls3rwZrVZLsWLF6NTpF/74ozt379oYFR+TGQEBAYYeuYGBgVSvXp3atWuneP0tWoSkMe70qFQqPDw8rCYRRiLJD6TWYSdOVGLDhvo50mEajYZ9+/bRunVrypYtS58+fWjcuDEffPBBmrCM3MAYPZYavb7KTpxfesTGxvLZZ5+xbNkywsPDAfDy8mLWrFn07NkTlUqVYs4X0bhLTa579hRFqQh8CDQSQngBKuDd3J5XUvDITsaoHn3GaGak7hyRmsxW3kIIgoKCmDNnDuvXr8/S0IPMV7exsbF8/PHHuLu7s2nTJhRFYfTo0Vy/fp09e97kzh0btFoIDs6ZAgsLC2Pw4MG8/PLL/PnnnyxatMhQcsHLywsnJ6cUijI9VCoVTk5OeHl5ZV8AieQFJrUO27GjdrZ1mFqt5ssvv8TLy4tevXqxZcsWANq0acOQIUMyNPTMXfIkp166vn11+isneiw6Oho/Pz+qVKnC5MmTCQ8Pp0GDBuzfv59//vmH3r17Z6m/XlQstSy3BQoripIEOAKZ//eVSNIhtzJGM4qhOXnShS1b6hEb64A+o8sU76Ge9Fa3Pj4anj79Anf3OYaV6ptvvsmiRYuoUaOGUeNmRUxMDLVr1+bp06eMHz8+TX9cRVHw9vbOsDeura0tQgiryXSWSPIbqXVYZGThdK/LSIdt2bIFPz8/bty4QZ06dfj66695++23M51zxw4YNw6iov47Zo6SJ+by0hnDw4cPWbVqFatXryY6OhqApk2bMmvWLF5//XWpi4wg1409IUSooijL0KXFPAMOCyEO5/a8koJHehmjkZFF0lyXnYzRjGJotm6tT0yMPeml7Zuj3px+a0HfH3fq1KlcunQJgMaNG7Ns2TJatGhh9HgZoVarOXToEN26daNYsWKsWbMGb2/vDGVVFIU6derg6elpqGGYlJSEnZ2d1dUwlEjyG6l1WJkyz3jwIO2iNSMddvDgQUqWLMl3331Ht27dsLHJeHMuPSMvOeYoeZLbW6QREREsX76cdevWERsbC0Dr1q2ZPXs2bdq0KfBG3rNn6Sfm5QTF1NIUWU6gKKWAvUBv4DHwDfCtEOKrZNcMA4YBlC1btuGePXtyVSZjiY2NpWjRonkthpTjOYmJicTFxRlqR/32W0XWr69PQsJ/xoeDg5qRI/1p2fIuoDNeHB0dM9zaSD4m6GJoUo+ZHooi2Lv3OxRFQQiBnZ1dtt+buLg47t69S0xMzHPZHahYsSKlSpXK1jiQ/t8mOjqau3fvEh8fj6enpyEzL7fJ68+JnjZt2pwXQjSy1HxSj0k5ssIYfZNahwkhcHBwoEiRImi12kwNPD1HjjixbFkNEhIy39JUFMHRo79Z3d8mKSmJ+/fvExkZiVarBaB48eJUqFDBYnLm5XuSkJDA/fv3iY6OZty4cWbRY5ZYorcDbgkhHgAoirIPaAYYjD0hxEZgI0CNGjVE69atLSBW1hw/fhxrkEXKoUOtVnPgwAE0Gg22trY0axaMRqNJ07+1WbMQ9MlrKpWKtm3bZuiNOn36tGFbAOCrr2plaeiBbuWtVquxtbVFrVbj5OSEt7e3Ua8jODiYmTNnsnPnTgBKlSrFrFmzGDp0KA4ODkaNkZrkf5u//vqLyZMn89tvvxn641pyqyOvPyd5hdRjUo6sSK7DAFq2vJulDktKSqJatWrZKrE0YAAkq6SUIZUrK7Ru3dpq/jaHDx/m66+/ZvPmzYYt7+7duzNr1ixeeeUVi8qSV+/J8ePH6dy5M/b29gwdOtRs41rC2LsDvKooiiO6bdzXgHMWmFdSwLC1tcXDw8MQTwamZ4waGweYnJzWm3v8+DELFixg9erVJCQkYG9vz4cffsiMGTNy5M1Lj/j4eLp06YKiKKxbt44hQ4bIwscSiZWQXIcZk/UOUKdOHerUqZPh+fQwpkixNdWbCwoKYuHChXh5efHZZ5+hKArvvPMOM2fONEsdUWvnwoULhIWF0blzZ7y9vfn4448ZNmwY5cuXZ82aNWaZI9ezcYUQfwLfAn+jK7tiw/PVr0SSXfQZo1l5qYzNGDW2c4QOQbFiCdmuN5eYmMiqVauoVq0aS5cuJSEhgffee4+rV6+ydOlSkw29hw8fcv/+fTQaDYUKFeL777/n+vXrjBw5Uhp6EomVkZ2s9woVKuQo6z2rIsWlS1tHvblLly7Rt29fatasyZYtWxBC0K9fPwIDA9mzZ0+BN/TOnj1L9+7dqV+/PpMmTTKEBM2ZM4fy5cubdS6LFFUWQnwshKgphPASQrwvhDDCwSyRpEWfMerg4IBKpUqjMG1tbQ0ePW9v7yyNQmdn5xTXpNc5AgRFi8YzduyffPHFgRSGnqIoGXoPhRB88803eHp68tFHH/Hw4UNatWrFX3/9xY4dO6hSpUq2X39yEhISWLFiBe7u7oSGhnL69GlAl6VWrFgxk8aWSCS5g16HVahQAdB545OTXR2WHumVRQGdkffVVxAZmbeGnr+/Pz179qR27drs3LkTGxsbBg8ejJeXF19++SWenp55J5wF8Pf3p2PHjjRp0oTTp08zf/58zpw5k6uhNjKtTpJnqNVqQ8ZnYmIi9vb2RmV8KopC4cKFad++vUkZo7du3WL27Nl07NiRQoUKAf+VU0kdQ5PeNotKpcLW1jbdlffp06eZNGkSf/zxB6DrULFkyRK6du1q8hdaq9WyZ88eZsyYwa1bt+jYsSO1atWiZcuWJo0rkUhyn4cPHzJnzhw2bdrEggULiIyMpGXLlhQqVMhsWe+WLIuSHc6ePYuPjw8HDx4EdElpgwcPZurUqVSuXJnjx4/nrYC5iBCCpKQk7O3tiYiI4MKFCyxatIhRo0ZZZHEujT2JxUnerQJS1nILDw/H39/fqFputra2uLm5ZavkCeiUrZ+fH2vWrMHW1pamTZtSpEgRo2NoFEXBxsYGDw8PoqKiUsh47do1pk2bxv79+wEoV64c8+bNY/DgwWYrWaLVapk/fz7Fixfn8OHDtG/fvkArSYmkIJCQkICDgwMODg7s37+ffv36Ubt2bTp27Jgr81lT54hTp07h4+PD4cO6qmuFCxdmxIgRTJo0qcD31xZCcOjQIXx8fGjRogVLliyhQ4cOBAcHU7hw+nUWcwPZG1diUVJ3q8is7+zp06fJjdJAY8aMYeXKlfTr149r164xatQoo2JoQLcSbdCgAd27d08RNP3gwQPGjBlD7dq12b9/P46OjsyZM4egoCCGDx9usqF35coV+vfvT0xMDLa2tvz888+cP3+e9u3bmzSuRCLJXa5cucIHH3xAvXr1UKvVFClShOvXr7Np06YcZ9/nB4QQHDlyhFatWtGiRQsOHz5M0aJFmTp1KsHBwaxYsaJAG3parZZ9+/bRsGFDunTpwr1796hVqxbw3+6UJZHGnsSiZNStIjUajYaIiAguXrxo8pxCCHbv3s2NGzcAmD9/PhcuXGDz5s1UqlTJEEPj4eGRaRxgzZo16datG1WrVjUYb1qtloULF1KtWjU+/fRTtFotQ4YMISgoiHnz5pnsng8PD2fkyJF4eXmxf/9+/v77b0CXECLbAkkk1ktAQADvvvsutWrV4ttvv+X11183xOdZ+h+9JdEXim/atCnt27fnxIkTlCxZkjlz5nD79m0WLVqEk5NTXouZ60yZMoW3336bmJgYNm/eTFBQEAMGDMgzeeQ2rsRiZNStIqP4OL2Hz9PTM8eesRMnTjBp0iT++usvJk6cyLJly3B3d09zXXY7R2g0Gr766iuePHnCjBkzAHj99ddZsmSJWXrGajQaFi5cyOLFi3n27BkjRoxgzpw5L4SSlEjyGzt2pIyP++CDK/j41DV4sj766KMC/93VarV89913+Pr64u/vD0Dp0qWZMGECo0ePpkSJEnksYe6SlJTEzp07ady4MZ6engwaNIj69evTu3dvq+g6lPcSSF4YQkJSxsGdPOnChg2NDI3AM+o7GxwcjEqlSpHIkZiYaChqnB5Xrlxh2rRpfP/991SqVImtW7fSr1+/LGU0Jg7wl19+YfLkyfzzzz8sW7aMevXqsWzZMl577bUsxzcWlUrFiRMnaN++PQsXLjRbf1yJRGJeduzQ9ZmNe1616fZtWL68Bn37/sjq1a+m6D9dENFoNHzzzTf4+fkZdmLKly/P5MmTGT58OEWKpG1pWZBISEhg27ZtLFq0iFu3bjF16lQWLVpErVq1DNu21oDcxpVYjLCwsBRevV276hgMPT36vrN6NBoNFy5cwN/fn7CwMCIjIwkLCyMuLo4DBw4QEBDAjh2CKlXAxgaqVNEp3/Xr13P06FEWLFjAtWvX6N+/v8nbnv/++y+dOnWiQ4cO/PPPP7i4uODm5sb58+czNPR27CCNbBnx888/07hxY27fvg3AgQMH2LdvnzT0JBIrRQjBhAnPDIaenrg4hVOnOmfL0MuOrrA06cmWlJTE1q1b8fT0pE+fPly8eBEXFxfWrFnDzZs3mTBhQoE39D7//HPc3d0ZPnw4ZcuW5YcffmDhwoV5LVa6SGNPYjGM7VaR+rgQIk2Mn/7YF188Y/BgLbdvgxC6VfWwYVC7th/Xr19n+vTpJsfHhIaGMmjQIOrVq8fPP/9M8eLFWbRoEVevXuWll17KsFelfsWfWrbUSvyff/6hQ4cOdOrUiaioKMLCwgAM5WAkEon1cfbsWVq0aEFERPpJFsZ0sdBjrK7IC9KTbdCgJJydJzFw4ECCgoJwc3Nj48aNXL9+nTFjxhTomMTkvY2vXLmCm5sbP//8M3/88YdZSmvlFkYZe4qi3FUUZUKqY3UURYlXFMV6/JQSq8bYbhWZd7FIyY4dtdM0+46LgwULipocIxMTE8Ps2bPx8PBgy5YtqFQqxo4dy40bN5g6dWqWCm3mTNJZ8euOg85gHTJkCPXr1+f8+fOsXLmSS5cu0bRpU5PklkgkuYMQgrjnX+qkpCTu3LlDqVKx6V6bVReL5GSlK/KS9GRLTLQjMvIjatSowfbt27l27RpDhw5No+MLEtHR0fj5+VG5cmV+/fVXABYtWsSJEyfo0KGD1Rp5eoyN2fsdSN2FeBWwSQhxyawSSQoszs7OhIeHG7x0ffoEpIjZg7R9Z/WkTuTo1+8SzZoFZ+gdzM6qOjVJSUls2rSJuXPnEhERAcDbb7/NwoUL8fDwMHqcjGS4c0cACoqiUKRIESZOnGjW/rgFlZwW4ZZITEWj0bBv3z58fX1p1qwZ69evx9vbmxs3brBnj12KmD3IuO9s6kSOfv2caN06M12RKy8nW+j1VWoUxZXAwMACXxUgKiqKTz75hNWrVxMdHU3nzp0pW7YsQI7aUeaVHsuOsTdK/0RRlDeB+kCvXJBJUkBxcXExZGmB8d0q0kvkWL++PhqNhtKl44iMTBsXkp1VtR4hBD/88ANTp07lypUrQB/s7ZeTlFSec+cUzp6FbNh6VK6s2/JIjaLc5Y8/Qnn11Vf55JNPsi/oC4a5inBLJNlFrVaza9cuFixYwJUrV6hRo0aKTjV2dnZGd6tIL5Fj2bIaeHpmrCtyosdSk9rANLaTRnR0NGvWrEFR+iNE2t7flSsrBd7QE0LQtGlTgoKC6NGjB7NmzaJBgwY5Hisv9Zixxt4fwHJFUV4CngLLgPlCiCizSyQpsNja2uLh4ZGi/EpW3Sog/USOhARdIkd63sGMVtWZ8ddffzFp0iROnDgBgJPTeB4/XmoYVx9DA8ZXpffzI82KH55So8Y2ihZ9M3sCvqDoi3BnVJtRfywoKIjo6Ogc9xKVSJIjhEBRFGbMmMHSpUupU6cOX3/9NW+//Xa6Bo4x3SrS2w5NSFAxc2b6uiIneiw16RmYWemxqKgoVq1axZo1a4iOjgYuYWPzBVrtf2Er5pDNWgkNDWXjxo20bt0aRVFYtWoVlStXNqmkljXoMWMTNM4DiUAjYDygBj41qySSFwIvLy+ju1XoySyRo0WLEIYPP0eZMk9RFIGrK2zcaLxBduvWLfr06UPjxo05ceIEpUuX5pNPPqFQoRVpDMzsxtD07QsbNwoKF44AtNjahjJx4jUCA2eapRbfi0BeFOGWvLjEx8fz6aefGoqXjxgxgv3793PhwgV69eplkicrs61ana4AV1dQFLKtxzIiO7GA4eHhTJkyBVdXV3x9fYmOjqZ169b8+usQtm8vZHbZrI3bt28zatQoqlatip+fH0+fPgWgc+fOJutra9BjRnn2hBAJiqL4A92A/sB7Qogks0sjKfDou1Vk5M62tbVFrVanuCejrVp9IofeO+js7Iy3t7dRcuj7465du5bExEQcHBwYP34806dPp0SJEowfn/59t2/rSg9ktRVy+/ZtXFxc6NvXhpiYfdjY2DBo0CBsbSsaJZ8kb4pwS15Mnj59ysaNG1m6dCn37t1jypQpNGzYkKpVq1K1alWzzJHVVm1u9LLNyMBMrsdatw4lJCSEzp078+zZMwA6duzIrFmzaN68ueGegmbc6YmJiWH8+PFs374dRVEYOHAg06ZNM5TAMhVr0WPZKb3yOzAa+F0IcdBsEkisGrVaza1btzh9+jQxMTGcPn2aW7dupTHIsoO+W0X37t2pX78+zs7OlC1bFmdnZ+rVq0f9+vVTrKD79AnA3j7lfA4OKRM5VCqVUX0WExISWL58Oe7u7qxYsYLExETef/99rl27xqJFiwxV3jOLlcmsLEJUVBTjx4/Hw8ODPXv2ADrvwLBhw6QBkk0yKsIdGVkEIRRDEe6TJ10yvU8iyYxPP/0UNzc3JkyYQM2aNfn1119ZtGiR2efx89NtfybHwUGTq9uhWemxAQMScHWdTkREBM+ePaN79+6cPXuW//3vfykMvYLIo0ePAChSpAgBAQGMGjWKmzdvsmHDhkyL6mcXa9Fj2TH2LgBaYEIW10kKAEIIAgICOHDggKGgsVqtJiwsDH9/f0NBY329oZyg71bh7e1N69at8fb2JiIigqFDh5KU9J/jOPVWbZkyTxk50j9NrJ+LS9og4uSvZ/fu3dSsWZNJkybx6NEj2rZty/nz59m+fTuVU2nF9BRzclJvhcTHx7N06VKqVavGmjVr+OCDD1IEckuyT06LcOvrFEokGfHo0SO0Wi2g275s2LAhp06d4ujRo7Rt2zZX4j7T26qdNOlqrnrMstJjarUDGs18SpUqxYULF/j+++955ZXUhTcKFhcuXKBnz564u7sTHR2NjY0Nf/zxB5988gmVKlUy+3zWosey42roC2wQQgSaVQKJ1ZEXwaQ3btxgxowZ7Nmzh3LlyqHRaLCzs8swkUO33av7XaVS4eHhkaHnLHl/XIDatWuzZMkSXn/99QzlTp5hl5E3P/kWyeuvv87x48fp3LkzixcvljF5ZiCnRbiTLxQkkuQ8ePCA0NBQunfvzpdffskbb7zB3LlzMyyMbm5Sb9UePx4B5F6p2pR6LOMSKlWrVuXll1/ONTmsgbNnz+Lj48PBgwcpXrw4Y8eONZzLzb+/teixTF+hoig2iqKUUxRlKlAHmJXdCRRFqaEoyoVkjyeKoozPobwSC2DpYNKNGzfi6enJwYMHmTNnDtevX6dPnz5GJXKoVCqcnJzSNa6uXLnCG2+8QatWrfjrr7+oUKECmzZt4p9//qFz585ZGqh9+0JwsG4Fnh5OTvEGz+a0adM4cuQIP/74ozT0zEROi3DnpPaVpGBz7949Jk6cSJUqVbh//z6vv/66oWampQy9vKJ27Qs0atQTSH/VWrlywc9ev3z5Mk2aNOHMmTPMnz+f27dv4+vrawjbyU2sRY9l9SlvCdwDBgBvCyEeZXcCIcRVIUQ9IUQ9oCEQB+zP7jgSy5BRMOmoUZ15++03GTWqc4rYAn0waXZj+OLj43n48CEAjRo1on///gQFBTFv3jyKFi1qSOTw8PBApVKlMfoURTF49FJ7FsPDwxk5ciReXl4cOHCAIkWKMHfuXIKCghg8eHC2M+rS2wpRqeIJDx/EgwcPAF1Ac0b9cSU5w9nZOcvYzdRFuI2N3ZS8OAgheO2111i5MhxFuc3kyRP488+v8fcv2M2fzp49S7du3ahfvz579+5FpfoYW9uEFNcU1BIqQgh+/fVXVq5cCYCnpye7du0iODiY2bNnU7JkSYvJYi16LFNjTwhxXAhhI4TwFEKcMcN8rwE3hBDmSXORZEry5Ipjx44ZlVyR28GkWq2WHTt2ULNmTSZM0IV/NmjQgM8//zzNhzuzRA5HR0e6d+9OnTp1DIZeXFwcvr6+uLu789lnnyGEYNiwYVy/fp2PP/44x0259bE2lSqpAQHcxs5uNIsWvWyopC4xP6ljMNOL3Rw+/Fy2YjclLwY3b95kwoQJxMfHoygKb731LQ4O23n6tAxCKFbVe9bcnDx5ko4dO9KkSRMOHjxI4cKF+eijj7hzZyFbtzoU6BIqQgh+/PFHmjVrRrt27Vi9ejXx8fEAvPvuuxQrVsziMlmLHrN0euC7wC4Lz/nCYUql7uwEkyZPFQ8LC8swg+m/Cu4CO7twEhN/pH79l/jggw+Mej36RI7k4x8/ftwQo6fRaNi2bRuzZ882BLV27dqVxYsXU6uWeVbvffvC9u1duH//KKNGjWL27MWUKVOG48ePm2V8SVqyW4Q7q9hNScHnypUrLFy4kB07dmBra2sI4/jqq1o8/59vQJ9kZayxk9NOFJZA78ny8fExFIYvWrQoY8aMYcKECYZFaW6Ud7EWzp8/z9ChQ/H398fV1ZX169czcOBAHBwc8lQua9FjiinZlNmaSFHsgTCgthAiPNW5YcAwgLJlyzbUl6zIa2JjYylatGhei2GUHImJiSQlJaHVatFqtQghMs2UVRQFW1vbNOPGxMSk8Py9/fabCJFeUK9g797vDM/t7OzSlfHIESeWLatBQsJ/bmwHBzWTJl2jXbuITF9TZujfkydPnnD37l1DfShHR0dcXFzM9neLjIykZMmS2NraGrwEyZVHfvqMWApzyxIbG4tarc7257lNmzbnhRCNzCZIFkg9ZrocyfWYjY0NdnZ2aWKe0kOr1RIcHMyjR4+wsbGhbNmylCtXzhD31LZtqwz12NGjv2U5fvp6TMOkSVfNosdMITo6mnv37hmKAKtUKsqVK5et4vX56TOSGrVaja2tLYmJiQQFBVG+fHleeuklk5MGC5oes6Sx9wYwWgjRIbPratSoIa5evWoRmbLi+PHjtG7dOq/FyFCOzDx4xqBfQdSp81/K9+nTp1OkfI8a1TndgsZlyjxl3bqfDM/TK2h8//59GjYsTVhY2kBTV1dd8kNOOXToECtWrODIkSPPx3OlS5cdHDzYjJAQxaSVtxCCQ4cOMWXKFAIDA1m0aBFTp05N91pr/4zkBeaWJbPPua2tLUKIdD3ViqJY1NhLjtRjxsuR2d9Xb6xktBNx7949KlSogBCCjh070rBhwxSeLD1VqqSfVW+sHjL1/oxI/Z4Y6z3UarXs378fX19fLly4AECZMmX46KOPGD16dLYTD6z9M5KapKQkduzYwYIFC6hWrRqHDh0C/mtzZ0lZjCWv9Zgl9zv6ILdwzUZW5VH0ZLdSt7OzM+Hh4YYx0+s9m1Uw6dOnT1m2bBlLly7l6dMn6cqVUWX3rAgJCWHWrFnUrVuXI0eOULJkSWbOnEmZMh8yerR9tnpApoe/vz+TJk3i6NGjuLu78+233/LWW2/lTFiJWdDHbnp6ehISEkJYWBhJSUnY2dnh7OyMi4uL3LrNpxhb5umLL56xe3cCEREOVK6sMGDANc6eHc9vv/1GcHAwZcuW5eeff87wH72pvWcza3VmLozpY6vRaNizZw9+fn4EBuqqoJUvX55JkyYxYsSIHMcl5xcSEhLYtm0bixYt4tatW9SrV48hQ4YYzltzX+y81mMW0ZCKojgC7YHhlpjvRcCY8ij65Aq9oaZPrgBSxAuEhIQY4uFcXFzw9/c3nNNfl5HBqMfFxQW1Ws2WLVuYM2cO9+/fp2fPnpw5oyEsLG0eUGaV3dMjOjqaxYsXs3LlSuLj41m+fDnjx49n1qxZlC5dmipVMu8BaWyszfLly/nnn39YvXo1w4cPN2oLSWIZ0ovdlORvjNdjDQx67PZtmDevIkWLujBr1iwKFy4MZP6PPnm9uTt3BJUrK9ny/GfV6swcZNbHVqNRM2FC/PNabE2Buri4PGHq1KkMGjTI8B4UdNasWcPkyZNp3Lgxn3zyCV27drVqAy898kqPWcTYE0LEAaUtMZelUavVBis9MTERe3v7XLfSje21l5PkisyCSdPrW5s8mHTt2rWMHTuWZs2asW/fPpo2bZpmtQrZW1EnJSWxYcMG5s2bR2RkJAC9evWidu3ahmxeyLwHZGar5ejoaBYuXEifPn14+eWXWbFiBZ9++qlF6i9JJNZCftNjUIRSpdYzfbrxNfL0yQnHj/+W7e05Uz2DxpCxDhMMGJCIEPo4rirY22/Dx0ehf/+C7dGOjY3ls88+o2bNmnTt2pUhQ4ZQt25d2rdvn++MvLymYH9SchFTMl5NJaPyKKk9eImJ6QfnZlWp28vLi+jo6CxX3CqVCgcHB6KiogAYOHAglSpV4o033jC85pQrauOz2IQQfPfdd0ydOtXwHjdv3pxly5bRpEmTNFmwGa28Var0V8szZgiiotYwf/58Hj58iJOTEy+//DJOTk6ZCyaRFCDysx67e9dyxZBzqseyQ0Y6DDQIkVJnJyba8fHH0L+/+ea3JqKjo1m7di0rV64kKiqKMWPG0LVrV0qWLEmHDpmG/UsyoGCXDs8l9HEm+lVpaoNIfywoKIjTp0+b1D82PYwtj2Jjk/68WVXqzqqgsa2tLTY2Nly+fJlu3boxffp0QNdQ+s0330zzT0HfiUKr1f3MSkH+8ccftGzZkrfeeougoCCqV6/O/v37OXHiBE2aNEn3nvQKHzs6Qka26p07gnHjxlGvXj3Onz+fwkuYl+SkNqJEkhPyux4z5xaqMWRXj2UXPz8oXDj1a30KpG/smjNe0JpYt24drq6uzJo1iyZNmvD777+zZs2avBYr3yM9ezkgJ+3Ekme8moqxvfa0WgV7e3W2kiv0pBdM+ujRI0qVKsXZs2fx9fUlKSmJKVOmGIw9U7lx4wbTp0/nm2++AXTZZfPmzWPo0KFZto7JaOWdUW9bO7v7fP/9T3Tq1MkqtgPy0sMieTHJz3qsoHV+iI6OJjh4LTY2t4EZQGXs7cMZNeou+/Y1Stews7Sxm5tEREQYyo04OjrStm1bZs2aRYMGDfJYsoKD9Oxlk8zaifXu3dNs7cQyw9hee2XKxJlcqVsfTOrt7U3RokUJCwtj2rRpvPnmm1y9epVFixaZHN8WFRXF+PHj8fT05JtvvqFQoULMmDGDGzduMGrUKKN7BKa38vbzg0KFtCmuc3QUfPFFeV5//XWrMJzy2sMiefHIz3qsXLn4AtP5QaPRMHv2bIMn6+nTz2na9D1+/PF/xMeXZ+XKV1iwQEl316IgGLuhoaGMHz+eKlWqsHHjRgAGDBjAvn37pKFnZqRnL5sYG2cCGWe8mkp2yqOYWqlbCMHevXuJjY2lSpUqvPvuu9StWxcvLy+TX0d8fDyrV69mwYIFREdHoygK/fv3x9fXl0qVKpk8/oMHD/jjj/kkJDxGUfwQwgVXVwU/P4W+ffPeyNOT1x4WyYuHNeixsmXLcvfuXWxsdD4HY/SYSqWifv36+T4jOzw8nOXLl1OhQgV8fX0BaNOmDbNmzaJNmzYpFqGWiBe0NMHBwSxevJjNmzej0Wh4//336dKlC6GhoXktWoFFevaySXbaienRZ7yai5z22kuOSqXCyckpU6PtzJkzeHt788477/DFF18AYGNjY7Khp++PW6NGDaZOnUp0dDTt27fH39+frVu3msXQ27BhA+7u7qxfv55hw4oQFmaPEEquxNqYgjV4WCQvHnmpx54+fcqKFSto165diq3cF6H3sd6T5ebmxtKlS9FqtXTs2JFTp05x9OhR2rZtm+5uQ27HC+YGO3boilHb2Oh+Ju9DPHDgQL744gsGDBhAUFAQW7ZswcPDI69EfSGQnr1sYmycSVYZr6aQ3V57qe/NqFK3nhs3bjBlyhT27dtHhQoV2LRpEwMGDODkyZMmy37s2DEmTZrE33//DUCdOnVYunQpHTt2NHlsfas4W1tbbG1tadWqFYsXL8bT09PksXMLa/CwSF488lKPbd68mYkTJ9K2bVtKlSpFYmJige99nNyTpX/vu3fvjqenJxMnTsxj6cxPegWi+/dPIDr6GaNGlWTNmjWULFnSLAt7iXFIz142MTbOJKuMV1Px8vIyqvehvpdrmTJlcHZ2pl69enTv3p06depkGK927949Dh8+zPz58wkKCmLw4MFG91jMiEuXLtG1a1fatm3L33//jbOzM5s3b8bf398sht6vv/5Ko0aNWL9+PQCDBg3iwIEDVm3ogXV4iiUvHpbUY48ePWLevHk8evQIgMGDB3Pq1Cl+/fVXunTpYpQeM2YnwhoJCgpi0KBBeHh48Nlnn5GUlMQ777zDhQsX+P7773FMHYxXQEivQLRG48DcubrPnZeXlzT0LIw09rKJs7NzCsXUp08A9vYpt9SMzXg1BWPKo6hUKmrUqEG3bt1o06YN3t7euLm5pVkZP3v2jEWLFhmyaps3b05ISAizZ882uf3OvXv3GDZsGHXq1OHHH3+kaNGi+Pr6EhQUxMCBA002Ii9evEjnzp1p164dDx8+NCgQa0i8MAZr8BRLXjwsoccePHjAjBkzcHV1Ze7cucTGxgK6bEt9H21j9ZiHhwfe3t755nsdGBhI3759qVmzJlu2bEEIQb9+/QgMDGTPnj14enry7rvv8uDBg7wWNVe4cyf9JLLIyIJp3OYH8p8/PI8xpZ2YuTG1155Wq+Wrr75i1qxZhISE0KNHD7RaLTY2NpQsWdIk2WJjY1m+fPnz/rhPUalUjBw5ko8//phy5cqZNLaeRYsWMXPmTIoXL86SJUsYO3YshQoVMsvYliI9D0tkZFoDO7c9xZIXi9zWY6tXr2b69Ok8e/aMnj17MmvWLB4+fJjutXndM9ScXLhwAV9fX/bu3QvojNWBAwcyffp0qlWrZrhu0aJFfP311wQHB/POO+/klbhm59KlS9SqVYvKlZVcby8nyR754xtkRWQ3Xk5RFKpVq5a7DY5z0GvvwoULDBo0CH9/fxo1asSXX35Jq1atTJYldX9cgDfeeINFixZRs2ZNk8ePiYkxlB5p3Lgx48aNY+bMmZQunT+78WUns1pPbniKJS8WuaHHQkJCKF68OCVKlKBixYq8/fbbTJ8+3RBKkbrrTXoy5dfex2fPnsXHx4eDBw8C4ODgwJAhQ5g8eTKurq4prk1MTOSzzz4D4Ny5c4SFheXr77MQgl9//RUfHx9OnDhBQEAAfn5eud5eTpI95DZuDjA2Xg50X4Tr168TEBBgFfXR9Iq9ePHiPH36lB07dvDnn3+abOgJIfjxxx95+eWXGTZsGPfv36dx48acOHGC7777zmRDT61Ws2HDBjw8PJg3bx4Abdu2ZcWKFfnW0IOcZ1bn54xEiXVgLj128+ZNhg0bRrVq1Vi9ejUAb7/9Ntu3b7f6mFlTOXHiBB06dKBJkyYcPHgQR0dHJkyYwM2bN1m7dm0aQw9g69at3Lt3D9DtrixevNjSYpsFvc5v1qwZ7du358aNG3zyySdUrVqVvn1h40ZwdQVF0f0sKLUR8yvSs5cD9HEm+o4HWq02U0NOq9USFBREdHR0nsWdhIWFMWfOHCIiIjhw4ABVq1bl8uXLhhpXpvD3338zadIkjh07BoCbmxsLFy6kV69eJr9WIQQHDx5k6tSpXL58mebNm9OrVy+ePXtmstzWQHY9LPk5I1FiXZiqx65evcqCBQvYuXMntra2DB06lP4FtVlrMlJ7sgCKFi3KmDFjmDBhAmXLls3w3sTERPz8/Khbty7//vsvL7/8Mhs3bmTatGlUqFDBUi/BLERFRfHOO+/g5OTE+vXrGThwIA4ODobzfftK486akJ69HKKPM0keh5EZyQviWpKYmBjmzJmDh4cH27dvx93d3VCjzVRD7/bt2/Tr14+GDRty7NgxSpUqxfLly7l8+TK9e/c2i1E7d+5cunfvjkajybI/bn7FWA9Lfs1IlFgvpuixCRMmsHfvXsaNG8fNmzf59NNPqVyAg7JSe7JOnDhByZIl+fjjj7l9+zYLFy7M1NADnVfvzp07jBo1CoAWLVqQlJSUL7x7Go2GXbt2MWDAAIQQlClThuPHjxMUFMSIESNSGHoS60O6B0xArVZz48aNFKvhkyddMgxy1mg0XLt2DU9PT4t4Zv7880/eeOMNwsPD6d27NwsWLKBq1aomj/v48WMWLlzIJ598QkJCAvb29owdO5aZM2dSqlQpk8cPDg5GURRcXV157733KFeunFH9cfMrqT0skLI3rjG1ESWSnJITPRYUFMQnn3xCyZIlszRw8jtarZb9+/fj6+vLhQsXAF3f7gkTJjB69GiKFy9u9Fhr1qyhSZMmNG/eHIBSpUrRv39/PvvsM5YsWZImYcsaSEpKYufOnSxYsIBr165Rq1YtIiMjKVu2LI0bN85r8SRGIo09E8hJQVytVsudO3fMYnSlhxCCqKgoypQpQ82aNWnSpAkzZswwizdMCMEnn3yCj48PUVFRAPTp0wc/Pz+zBFU/evSIBQsWsHr1anr06MHu3bupUaMGNWrUMHlsa6cgZSRK8hc5Lexta2tboA09jUbD119/jZ+fH5cuXQKgfPnyTJo0iREjRuSoLNW0adNo3LhxitJJixcvpkGDBlb5/Q4MDKRr164EBwdTr149vv32W3r06GGW8B+JZbG+T1c+IjsFcZMryYsXL3Lv3j0SExOxt7c32z/zv/76i8mTJxMVFcWFCxcoUaIE33//vUljwn/9ce/fv8/48eMBaNWqFcuWLaNRo0Ymj5+QkMC6devw8fHh8ePHDBgwgPnz55s8bn4kP2ckSvInOdFj+sLeBfFzmpSUxI4dO1iwYIHB0+7i4sLUqVMZPHiwSeWd+j4PYtMbj6DzEo4ePdo0oc3Is2fPuHHjBl5eXlStWhUvLy9Wr15N165d5a5CPsYi5rmiKCUVRflWUZQriqJcVhSlqSXmzW2MLYibupBkQkICYWFhREZGEhYWhr+/PwcOHMhxxm5wcDDvvfcejRs35tKlS4wcOdJsmb+nT5+mWbNmvPPOOyQkJFCzZk0OHDjAsWPHzGLoga7m1IQJE3jllVfw9/dn8+bNsrq6RGIhcqrHClph74SEBDZs2ED16tUZOHAgQUFBVK1alc8//5zr168zevTofFfHMzvExsaydOlS3Nzc6NatG2q1msKFC/PDDz/QrVs3aejlcyzl2fsE+J8QoqeiKPZAgSijbWxBXNBtjWSUYalfVeckY/ePP/6gVatWqFQqZs6cyZQpU7IVQ5IRQUFBTJs2jX379gHg5ORE5cqVCQgIMMt2w8mTJ3FwcKBx48aMGTOGpk2b0qFDB5PHlUgk2SOneqygxNDGxcWxadMmlixZQmhoKAA1atRg5syZ9OnTxyq3V81JdHQ09+/fp0qVKkRFRdGuXTtmz55d4F/3i0aue/YURSkOtAS+ABBCJAohHuf2vJYgdSFMXeHb9DxqSorephlhbMZuQkIC//77LwCNGjVi4sSJXLt2DV9fX5MNvQcPHjB27Fhq1arFvn37KFy4MLNmzeL69euULVvWZAVw9epV3nzzTVq2bImPjw8ApUuXloaeRJIHaDQaQkNDU3j3jNFjBaGwd3JP1rhx4wgNDaVOnTrs3r2bwMBA3n///RfC4Dl69CihoaG8+uqr/P777/zyyy+0bNkyr8WSmBkltwv9KopSD9gIXAJeBs4D44QQT5NdMwwYBlC2bNmGe/bsyVWZjCU2NpaiRYtmeo2+ubeet956E0jrlVMUwd693wFw4kQlduyoTWRkYcqUeUbfvoG0bHk32bVKinZlyeV49OgRoaGhaDQa6tSpk2Gg7JEjTmzaVJWICAecnBIYMuQm7dpFZPg6hBCEh4dz//59g6exTJkyODs7G1bwxrwfGaFWqwkLC+PBgwfY2NhQoUIFnJycchzoa4os5kTKkRZrkaVNmzbnhRDmiTUwgvyoxzQaDRcvXsTFxSXFbkJWekxRFM6dq54tHZOTz0V29ZgxxMTEEBsbS0REhKEMlaOjIxUqVDC5TaSxBAcHM3DgQKZMmcLrr79ukTn1qNVqwsPDsbW1NbSufPLkiVl2hEzFWnQHWI8sZtNjQohcfQCNADXQ5PnzTwCfjK6vXr26yIikpCRx8+ZNcerUKXH06FFx6tQpcfPmTZGUlJThPaZw7NixLK/56aefxJ49ewyPMmViBYg0jzJlYsWePXvE2LG/C3v7pBTn7O2TxNixvxvG2Lt3r7h582YKOU6ePCmaNGkiAFG3bl3x888/ZyjTV18J4eiYcn5HR93x1Gg0GrFt2zbh4uIi0C3nRadOncS///6bo/cjI1avXi1UKpUYNWqUCA8Pz/E45pDFnEg50mItsgDnRC7rt4we1qrHEhISxKZNm8Qbb7whNBqNEEKIixcvigsXLoi9e/capcf27t0rFi68bbSOSU8OY8iOHjOGyMhIMXv2bLFy5UqDrmvWrJk4dOiQ0Gq1ORs0hwQGBgpAzJkzx2Jz3r17V4wbN04ULlxY2NjYiJEjRxrOWct31lrkEMJ6ZDGXHrNEgsZd4K4Q4s/nz78FGmRnACEEAQEBHDhwAH9/f7MmN5hK6rIgffoEYG+vTnEseW/TzDLd9Ogz3fQ8e/aMFi1aEBISwubNm/n7778z3facOTNlT0LQPZ85M+WxI0eO0LBhQ/r3709ISAj16tXjl19+4dChQ9Spk/W2c2ZoNBq2bt3KN998A8Dw4cMJDAzk008/xcnJyaSxJZL8SF7qsfj4eD799FPc3d0ZMmQIoaGhPHjwAIDatWtTt27dFIW9M9JjffsGPu+Y4GKUjjEFY/VYVoSHhzNlyhRcXV3x8fFBo9HQpk0bjh49yqlTp+jUqVOBTz7YsGEDVatWZe3atfTq1YvLly+zbt26vBZLYkFy3dgTQtwHQhRF0VtFr6Hb0jX2fk6fPm1oJ5W8RABgOBYUFMTp06ctbvBVrlw5ReeDrHqbZpTplvr406dP+e677wAoXLgwX375JUFBQQwcODDLTgt37mR+PCAggNdff5327dtz4cIFKlWqxLZt2zh//jzt2rUz4lVnzi+//EKDBg0YOHAgO3fuBHRB4C9CvTyJJD3yUo/Fx8dTtWpVxowZg4uLC4cOHeLs2bOGLTz4r7C3h4cHKpWK1q3DUuixsmXjGDnybwYPLoy3tzchIekbRxnpnpyQlR7LitDQUMaPH4+bmxtLly7l6dOndOrUiZo1a3L06FHatGlToI28oKAg7t7VhQfVr1/fkGG8detWqlevnsfSSSyNpaJPxwI7nmfi3gQGGnvjxYsXiYiISKMcU5M8ucFUr1R20Pc2vXbtGlqtFsi8t2lGmW6lS6dcwh47dow1a9YYssP69etntEyVK8Pt22mPOzurGTJkBFu2bEGr1VKsWDGmT5/O+PHjKVy4sNHjZ8TFixeZOHEihw8fxs3Njd27d9OrVy+Tx5VI8juW1mNPnjzhypUrNG7cGAcHB9q2bcvgwYNp3bp1hgZO6sLe5cqF8dZbfyUr7P1f4d+MdIw5u6XldI7g4GAWL17M5s2bDYkn3bt3Z9asWbzyyiscP37cfEJaIZcuXcLPz4/du3czZMgQNmzYQOPGjWW3ixccixh7QogL6GL3soVarU7RIB6Ma+NjqXZkemrXrs2tW7dISEjI8to+fQJSVKeHlNu8oNu2TUxM5Pz585QoUSLb8vj5wbBhKbdA7OwSiYgYzhdfbMXW1pbRo0cze/Zss1bAv3nzJn/99RcrVqxg1KhRsleiRIJl9dijR49YvXo1n3zyCYUKFTK0Hvzqq6+MHsOYwt7p6RhHR91xc5HdOYKCgli4cCFffvklarUaRVHo1asXM2bM4OWXXzafYFbKhQsX8PX1Zd++fTg6OjJhwgQmTpyY12JJrASr7nmSURufyMgiCKEY2vicPOmS6X25TWBgoCGrKyuy2uYFXWbY4sWLc7zt2bcvbNwIlSvr4pBtbEJIShpAUtJW3n77bS5dusTq1atNNvSePHnCrFmzWLBgAQDdunXj1q1bfPTRR9LQk0ieYwk99uDBA2bMmIGrqytz586lZcuWHDhwINd6rep1jKsrKIru58aNuuOWniMwMJD33nuPmjVrsmXLFoQQvP/++wQGBvL1119blaG3dOlSzp49m+JYcHAwU6dONewM5ZTPPvuMX375hZkzZxIcHMzSpUspX768SWNKCg5Wbexlp42PntTJDblNRqv2UaM607t3T0aN6pxGibdoEcK6dT/x9dffsm7dTykMPZVKRY0aNUzyTAohKFbsAI6OtQAbtNrKvPrqLU6dOsW3336Lh4dHjscGXeX8devW4e7ujp+fH7du3QJ020A58URKJAUZS+gxf39/Fi1axOuvv86FCxf47rvvTO5ws2MHVKkCNja6nzt2pDzfty8EB4NWq/tpTkPPmDn8/f15++238fLyYteuXdjY2DB48GCuXLnC9u3b8fT0NL9ARnDz5k0GDBhAxYoVsbe3x8nJiTZt2pCUlMTXX3/NwIEDU3weJk2axGeffWa0w0DPyZMn6dixI2fOnAHAx8eH27dv4+PjQ5kyZcz6miT5H6uuGGlsG5/Uxy3ZxienTcTTQ6VS4eTkhJeXV47l+euvv5g0aRInTpwAoFq1aixatIi3337bLMHIp06dYsiQIVy9etWs/XElkoJKbuixkJAQFi9eTIkSJfDz86N9+/YEBQVRrVo10wVGZ9gl30K9fVv3HHLHqMsOf/75J76+vhw8eBAABwcHBg8ezNSpU6lszqDBHPD48WO8vb1p0qQJ69evp1SpUjx8+JDQ0FDs7OyYPHky7777LocPHwZ0mcJ79+5lzpw5RnlhhRD8+uuv+Pj4cOLECZycnLh//z6AWUNyJAUPqzb2jG3jkzq5wZJtfHLSRDw1tra2CCHw8PDAy8srR0ZZcHAwM2bMYNeuXQC89NJLzJkzh5EjR5plK0f/GosVK4ZKpeL777+X/RIlEiMwpx67efMmCxcuZNu2bQCMHDkS0HnVzWXoQeZlT/LK2Dtx4gS+vr788ssvgC7cZcSIEUycONFqunmcOXOG+/fv07t3b9q1a4e9vX2KXZqePXtSq1Yt1q9fD+heU/HixRk/frxR43fr1o0ff/yRihUrsmrVKoYOHYqjY4HoPirJZaza2HN2diY8PNxgaBiT3GDpNj45XbWrVCpeeumlZJluLjnaun306BF+fn6sWbOGxMREHBwcGDduHNOnTzdLNfibN28yY8YM7O3tGTRoEC+//DIXL16URp5EYiTm0mOfffYZY8aMwdbWlmHDhjFlypRc82SZWvbEXAghOHLkCD4+Ppw8eRKAokWLMmbMGD766COrq9n5yiuv4OHhwXvvvQfoFt1RUVGG8yqVijlz5vDuu+8CcPnyZWbPnk2pUqXSHU+r1XLo0CFef/11bGxs6Nq1K127dmXgwIEyLlqSLaza2HNxccHf39/wXO8ZyyiLLfl9liKnq/Zy5crh7e2d43kTEhJYt24dPj4+hpZt/fr1w9fXF1dX1xyPqycqKgo/Pz/Wrl1r2H7QIw09icR4TNFj//77L46Ojri7u9O8eXM+/PBDJk2alOsLWkuUVskMIQQ//vgjvr6+/Pmnrh5/yZIlGTduHB9++CEvvfSSZQTJJk+fPuX1119nwoQJ1K1bN90Fd8+ePalWrRo3btzAwcEhXa+eRqNhz549+Pn5ERgYyHfffccbb7zBiBEjcv9FSAokVm3s6WvYJU+AyKyGnUqlwsPDw6JlVyztfRRCsGfPHmbMmMHNmzcBaNu2LUuXLqVBg2w1JsmQX375hV69evHkyRMGDhzI/PnzcXZ2LvD1qSSS3CAneqxo0aL07NmT77//ng8++IBt27bh5eXFihUrLCKzJUqrpIdWq2X//v34+vpy4cIFQNeje8KECYwePdoq+rdmxJMnT2jdujVr1qyhW7duGV6nUqn48MMPGTduHE2bNk1huKrVanbs2MGCBQu4du0atWrVYseOHXTt2tUSL0FSgLFqYw/Ay8uL6OjoLAuSmiO5ISdY0vt48uRJJk2aZEjdr1WrFkuWLKFz584me9u0Wi0PHz6kTJkyeHl50aZNG+bPn2/x91MiKYgYq8dAFzoxZcoUSpQowdy5cxk7dqyFpPwPfVzezJm6rdvKlXWGXm7F66X2ZAGUL1+eyZMnM3z4cIoUSbtbYm2cOHGC27dvG1Uya+zYsURFRdGkSRNAt4jX63BfX1+KFi3Kt99+S48ePbCxseqiGZJ8gtUbe/o2PhcvXiQoKAgghbI0R3KDKVjC+5iQkMCbb77J999/D+iU4Pz58xk4cKBZvJjHjx9n8uTJODg4cPLkSSpUqMC+fftMHlcikegwVo/duXOHJUuW4Ofnl+eerL59cz8ZIykpyeDJ0r8vLi4uTJ06lUGDBpmls4+l0GfDfvDBB0yePJnSpUtz9+5djh49yubNm1NcqygK8+bN49ixY6xevZqtW7dy6tQpHB0dOX78OM7OzjJcRmJWrN7Yg7RtfMLCwkhKSjI5ucEcxMfH8/PPP5OQkICnp6dZvY8RERHMnTuXatWq8f333+Po6MiUKVOYOHEiRYsWNVn2S5cuMXXqVA4ePEilSpXw8/NLscKUSCTmI7UeCw0NJSIigmvXruHl5UWnTp2IjY1l6NCh+cKTZQoJCQls3bqVRYsWERwcDICbmxvTp0+nf//+uVYMOjdp0qQJX375JStXrmTgwIGo1WqqVKliSNZITmxsLOvXrzck1LVo0YKIiAiqVKlCxYoV80B6SUEnXxh7eoxp42MptFotu3fvNlQr79y5M23btuXevXuAad7HuLg4Vq5cyeLFi4mJiWHZsmUMHTqUefPmUaFCBbPI/7///Y+uXbtSpEgRFi5cyLhx4/LVKloiya/Y2Njw77//4uvry7lz53BxcWH16tXY2tqaJYPemomLi2PTpk0sWbLE0Pe7Ro0azJw5kz59+uTZot1c9OvXL8s+5nfv3qVevXpERUWxceNGjh8/TqtWrSwkoeRFJX9/s/KIqKgoOnXqxLlz56hXrx6//PIL7dq1A3QBtjn1Pmo0GrZv387s2bMNirBLly7Url3bLD0Onz59yq1bt/Dy8qJVq1ZMnTqVjz76SFZbl0gsSJcuXfjf//5H1apV+fzzz/nggw/ypScrO8TGxhIeHo6bmxsREREA1KlTh1mzZvH222+jUqnyWMLcJSoqij///JPOnTtTsWJFBg8eTI8ePYiPj5eGnsQiyMjPbPD48WNAVzvJ3d2d7du3c/78eYOhB/95H729vWndujXe3t64ubllaej9/PPP1K9fn0GDBhEaGkqDBg349ddfOXjwIIUKFTJJbo1GwxdffIGHhwdvvPEGarWawoUL4+fnJw09iSSXUavVfP3114aOGP369WP79u1cvXqVIUOGFGhDLzo62lAO6u7du0RERNCoUSP279/PhQsX6NWrV4E29CIiIpg6dSpVqlShZ8+eREdHoygKixcv5tVXX81r8SQvENKzZwT3799n7ty57N69mytXrlC+fHlDpwpT+eeff5g8ebKhKnzlypXx8/Pjvffey3EWlt67GBoaSnh4OJcuXeLYsWO4u7uzaNEio7ZKknsoExMTsbe3JzExEbVane+3WiQSS5CYmMiXX37JwoULuXHjBnv27OGdd96hb173G7MAUVFRfPLJJ6xevZro6GhAVwz50KFDdOzYscDHBd+/f59FixaxceNGEhIS6N27NzNmzJC9wyV5hvyvnQlarRYfHx8WL15MQkJCjluP7diRtoRBq1Z3mTVrFtu3b0cIQYkSJZg5cyZjx47NsSdPCJFutl/NmjWpWbMmKpWKYsWKZZqEkdEYoGvfdODAgTzLfJZI8gtqtRp3d3dCQkJo2LAh3333Xaa11/ID6emx1HZreHg4y5cvZ926dTx9+hSANm3aMHv2bBRFoXXr1pYX3ILodevjx49Zv349ffr0YcaMGVSvXj2vRZO84EhjLwOePHnCxYsXmTNnDm+99RaLFi3Cw8Mj2+Ok11B8wIBEYCZq9Xbs7OwYNWoUs2fPpnTp0jmWVwjB6dOnCQ8PR6vVpnuNRqMhKCiI6OhovL290xhr+jEyqgUmhMhyDIlEojP2XFxc2LhxY4HwZKWnx4YN0/3ety+EhoayZMkSNm7cSHx8PACdOnVi1qxZhk5BBbkoe1BQEAsXLiQuLo7du3dTs2ZNQkNDZZiMxGqwiLGnKEowEANoALUQopEl5s0uQggCAgKoW7cuxYsXx8nJidOnT9OsWbMcj5leQ3G12h6YxzvvPGPhwoVmaWB+7tw57t69m2X8i0ajISIigosXL1KnTp0U5y5evGhU0dfMxpBIJFCoUCFOnTqV7408Penpsbg4mDpVzcmTY9iyZYuhT/gbb7zBzJkzeeWVV/JAUsty6dIl/Pz82L17N/b29owYMQKtVouNjY009CRWhSUTNNoIIepZq6Hn7+9P+/btqVevHv/++y+gK15siqEHcOeOSPe4oriyZ88ekw29xMRE1qxZw9WrV1MYeidPujBqVGd69+7JqFGdOXnyv44deu+cWq02HFOr1SkKQ6c3xokTlTIdQyKR/EdBMfRAt3WbHqGhNmzYsIGkpCTeeecd/vnnH7777juzGXo7dkCVKmBjo/u5Y4fpYxw54mQW2b766iu8vLz4/vvvmThxIrdu3WLlypWy44XEKnnhP5V37tzhgw8+oGHDhly4cIFVq1ZRs2ZNs4z9559/Ym8fnu65ypXN84/gwoUL7N+/P8U/lpMnXdiwoRGRkUUQQiEysggbNjRKYfABhISEpPt7RmOsX18/0zEkEknBpHLljM6E0K9fPwIDA9mzZw9169Y125z6rePbt0GI/7aOs2PwpTfGsmU1cmQ0Apw9e5Y///wTgA4dOjBr1iyCg4NZsmQJ5cuXz9mgEokFsJSxJ4DDiqKcVxRlmIXmzJK4uDjq16/Pnj17mDJlCtevX+fDDz80uRTCzZs36d27N6+++ioJCROAlPsfpjYUP3PmDKtWrQKgcePGTJw4MYXMu3bVITEx5Q59YqItu3b9t+Wq0WgICwszPA8LC0vh1UtvjISEzMeQSCQFk2HDglGp4lMcU6kSWLGiEF9++SWenp5mnzOjreOZM00bIyFBla0xQNeXvEOHDjRp0oS5c+cC4OTkxPz58+V2rSRfoAiR/jajWSdRFGchRJiiKE7AL8BYIcSJZOeHAcMAypYt23DPnj25JosQgsePH1OqVClAVzvP0dExXQMvNjY2W23JNBoN9+7dIyIiwpCVVa5cOQIDX2bzZnciIhxwckpgyJCbtGsXYfS4T548QaVSodFoiI+P5/HjxyQmJlKrVi1sbGyIiYlJsZ369ttvIkRaz6GiCPbu/c7w3M7OzvD6zDGGJcnu30bKYTmsRZY2bdqct2TYiCX1WHYw5e/x9OlT7t27R3R0NOfP1+R//2vBo0fFcHKKZ+jQW9nSY9mVo23bVhnqoKNHf7PIGLGxsYSGhhIbG4utrS3ly5enbNmyZtuqtZbvipQjLdYii7n0mEUSNIQQYc9/RiiKsh9oDJxIdn4jsBGgRo0aIjfS84UQ7Nu3j2nTpnH9+nVOnDhBixYtMr3n+PHjRpUKiI+PZ82aNSxYsIDHjx+jKArvv/8+vr6+uLjotj0XLNBfXQio9fyRubz6Eig2NjYkJCQAujig4sWLY29vT9myZfHy8uLMmTMpPGylS8cRGZm2t2bp0nEpDDonJydDptzp06dNHsOSGPu3kXJYHmuSxZJYQo/lhJz8PU6cOIGPjw9HjhwBoHDhwowYMYKLF+vj7FwcKIwxeswUOSpX1m27pj1ufAmXnIwhhECr1aJSqVi7di2LFi1iypQpDBkyBEdHR6PlNwZr+a5IOdJiTbKYg1zfxlUUpYiiKMX0vwMdgIu5PW9yfv/9d5o3b07Pnj1xcHDgxx9/pHnz5iaPq9Vq2bFjBzVr1mTKlCk8fvyYdu3a8ffff7Nt2zaDoZdd9CVQ9AkTqb2vei9fUFAQp0+fpkKFCilWmn36BGBvnzJxwt5eTZ8+ASnGcHZ2Njx3dnZOkeCR3hgODpmPkRlqtZpbt25x+vRpjh07xunTp7l165ZM8JBIrAQhBEeOHKFVq1a0atWKI0eOULRoUaZNm8bt27dZsWKF0d93c+Dnpwt5SU52Q2DSG8PBQZPuGFqtln379tGwYUO++OILAIYOHcqNGzf48MMPcXR0lHpMkm+xhGevHLD/eQKBLbBTCPE/C8wL6LJVe/bsiVarZePGjQwcONAsHSCOHTvG5MmTOX/+PABeXl4sXbrULDW1AgICCAsLy3IcfQmU+Pj4FLX1WrTQJU3s2lWHqChHSpeOo0+fAMNxPcmNURcXF/z9/TMdo1+/SzRrlvEY6ZFZkebw8HD8/f1lkWaJJA8RQvDTTz/h4+NjSD4oWbIk48ePZ+zYsbz00kt5Ipe+YHNWhZyzO0a/flfp2/c/j6RGo2HPnj34+fkRGBiIh4cHZcuWBcDBwQGQekyS/8l1Y08IcRN4ObfnSU5kZCRr165lxowZ2Nvbc/DgQapXr06RImm3JbPLpUuXmDp1KgcPHgR0HjEfHx/69+9vlh6PR44cITw8PEUM4YkTlfjqq1rpGm4ajYZHjx6lGadFi5A0xp0elUqFh4dHCqPX1tYWDw+PFOVXUo9ha2uLfgGb3hipyapIs/6YLNIskVgerVbLd999h6+vr2GhV6ZMGSZMmMDo0aMpXry4Wec7csSJAQOyZ7j17Zs9486YMY4fjyD59nOfPn345ptvqFWrFjt37kzTr1fqMUlBoECVXnn27BmLFy+mWrVq+Pj4cPLkSQDq169vsqF3//59RowYQZ06dTh48CBFixbFx8eHa9euMWjQIJMNvbt379KlSxcWLFiQYtv25EkX1q+vn2UZFWNRqVQ4OTnh5eWV5pyXlxdOTk5ZvpbMxkhOToo0SySS3EWj0bBr1y7q1q3L22+/jb+/P+XLl2f58uUEBwczffp0sxt6O3boSp6YUkbFXAgh2LhxIw8fPgRgxIgRfPvttwQEBNCnT580+k/qMUlBoEC0S9NqtezcuZMZM2YQEhJC165dWbx4MbVqGR88nBFPnz7lgw/+x/79ryDEOmA6r732Kzt2dKFcuXJmkd3GxobixYtz/fp1pk+fbtg6AN02akJC+mVUUnvuTp50yXLrtlq1atStWzfdlaeiKHh7e2e4XaEoisGjl9V2RUZFmjOSTx+D6OnpaZZtdolEkpLt29VMmBBPVJQj0BSoi4vLE6ZOncrgwYNz3JPbGGbO1JU8SY6+jEpyr5sx/XdzyrNnz/j8888BGDduHBqNhpEjR9K2bdsM75F6TFJQKDCfxhUrVuDk5MS2bdto06aNyeNpNBoiIyOpWHEy0dFLAb1n0JXffx/EkSOmKaHY2FiWLl3KoUOHOHPmDMWLF+fSpUucOHGCyMhIw3U6xZyW1Mf1RZD1tfH0HkD4L/5OpVJRvHjxTI00RVGoU6cOnp6ehISEEBYWRlJSEnZ2djx9+pS2bdsapcQyKtKcmXz6+9zc3LIcXyKRGIcQgkGDjrB1azOE0JeSqIK9/TZ8fBT698/9fwMZdeBIfjyr/rs5RQjBihUrWLp0KeHh4Xz22WccPnyYdu3aZXmv1GOSgkK+3cYNDAykd+/eREVFYWNjw08//cTZs2dNNvT0wcovv/wyt2/fJjp6Cv8ZejqyW9gzOWq1mg0bNuDu7s78+fOpUqUKMTExgM4YS13vr3TpuPSGSXM8J4WUM8PW1hY3Nze8vb1p3bo13t7e2NvbG71aNaZIsynySSSSzImLi+OTTz4hICCALVvcESLlAjEx0Y6PP7bMej+jDhzJj5ujiHJykperOn78OHXq1OG3336jRo0atG/f3qi4OqnHJAWFfGfs3bt3j6FDh1K3bl1+/vnnFH1sTS106e/vT7t27ejSpQuBgYHPDS/XdK/NaKWaGXfu3KFu3bqMGDECd3d3fv/9d/bs2WMo8Azpl0BxcMi8jAoY7wFMSkrKvuA5QN8UPSM5MjpuKfkkkoKKftfAzc2N8ePHP/9OpW9t5USP5QQ/P13Jk+SkLqNijPfPGKKiopg9ezYVK1bkxo0bAHzzzTf88ssvtGzZMltjST0mKSjkG2NPq9Xy8ccf4+7uzrZt2/jwww+5ceOGWbZs79y5w/vvv0+DBg04erQcNja3AS2+vkMoXTr91V/GvSLTos+WrVixIjVq1GDfvn2cPHmSV199Nc21qUuZtGgRwsiR/pQp8xRFEZQp85Thw8+licUz1gNoZ2dnvOAmkFMPpaXkk0gKGtHR0fj6+uLq6sqUKf5ERPwJaFi8eCQvvWS6HjOFvn1h0qSruLqCooCrK2zcmHJ71hjvX2ZEREQwdepUqlSpgq+vL61atTIku+U0HlHqMUlBweqNvR07BFWqgK2tDUuXjqZOnYVcvnyZlStXUrp0aZPGfvz4MVOnTqV69ep89dVXqFTvY2u7Fa22MqAQEVGYmBhI/b01trBncHAwffv2pUaNGkRHR6NSqdi/fz89evTIcAtBXwIluXevZcu7rFv3E19//S3r1v2UbkmVnBRSzk2MKdKcl/JJJJZkxw6oUgVsbHQ/zZmFqvdkubq6Mnv2bB4+7IiNzRdAFcCGBw8ciY1VcqzHzEW7dhEEB4NWC8HBaePwTCmi/PTpU2rUqMGyZcvo1q0bFy9eZO/evbi7u5sks9RjkoKC1Rp7QggmTfqb99+PN6TrP3vmREDAh/zxRzWTxk5MTGT16tW4u7uzZMkSEhISePfddylX7gvUavtU10Lx4mS6Ik3N48ePmTJlCjVr1mTfvn0MHTo0W6VZjC2BkpwWLUIYPvxclh7AnHb1yC7peSitST6JxFLoEw/MXXYkPDycKVOm4Orqiq+vL9HR0bRp0wYnpy/QagunuDYneszS9O2rk8lYGYODg1m5ciUARYoUYfXq1Vy+fJmdO3dSu3Zts8gk9ZikoGCV2bjnz59n0qRJHD++BV0Pxv9IL13fWIQQ7N27l+nTp3P9+nUAWrRowbJly2jcuDEZhfw9fAj6BFm1Wk1ISAinT4eRmJiIvb09zs7OuLi4YGtrS1hYGHXq1OHRo0d88MEH+Pj4ZPuLn7oESmovoK2tLUIISpYsyaNHjwzdM7JbSDk3MaZIc17KJ5FYiswSD3Kix+7evcvSpUvZuHEj8fHxAHTq1IlZs2bh7e1tlB6zVowpohwUFMTChQv58ssvsbGx4c0338TNzY3333/f7PJIPSYpKFjdJzIxMZFGjRo9b1eT/eSIjOo0/f7770yaNIkzZ84AUKNGDRYvXkz37t0NxlTGTbOzbpdz/vx5atSogZeXF2PGjKFHjx7Uq1cvR+8BpCyBcvToUYoUKWIogaI3LlUqVaaV3fUYWwTZ3Hh5eREdHW218kkkliAniQfp6TFv72AWLVrEli1bDIkDb7zxBrNmzaJRo0aGezPTY/mZ+/fvM3HiRHbv3o29vT2jRo1i8uTJVKpUKVfnlXpMUhCwum1cRVGYMWMG169fx9U1e0HF6W2XDBmipXHjVTRr1owzZ87g5OTEgAGHefbsMj16vIGbm2LYTsk4ZkTXLke/ukv9hddoNAghuHbtGqdPn2bu3LkmGXrJsbW1xd7ePkUJFDc3N2xtbQ0eQH2MX+ptX1tbW8NKMy9a+Fi7fBKJJchu4kF6eqx//wSqVp3Fhg0bSEpKolevXixYcJsLF76jceNGKeIATYl9s0ZiY2MB3VbtqVOnmDhxIsHBwXzyySe5buiB1GOSgoHVefbs7Ozwe66V/PxSFtmEzJVWetsl8fE2/PXXmxQuPINJkybh6jqdDz8snGnhTv2K2skpnuXLC1G37kWCgrJul6PVag3tcurUqZPpteYisyLIybeX8wprl08iyW3Mocc0GgfAj379dIvhv//2zLIAcWo9Zk3xecbw559/4uvry40bNwgICKBYsWLcuHEjT/SF1GOS/I5VfzpTK62s2udkvC3iSlBQEBUrVqRKlczjZ5LHjBw//gfNmzfnwAHrb5ejL4JsrVXbrV0+iSS3yL4eE0B67Qwr8+WXXwLw+uvZ02OtW7dOM15utiYzhRMnTuDr68svv/zCSy+9xEcffYRarUalUuW5QSX1mCS/YtXGHhgXsAs6r9pLL8URFVU0zTlXV4WKFSsC2Y+fke1yJBKJqRijx/SeLCHWoCubkpLKlf8zAE0tQJxbrclM5dChQ3Tu3BknJyeWLFnCyJEjKVo0rU6XSCTZw+pi9nLCr7/+SqNGjYiKGgY8TXEu9XZJduNnQkNDZbsciUSSa5w4cYL27dvz6quvcvDgQezs5mFrm7Jzg6l6LDXmbk2WU4QQ/Pjjj+zcuROA9u3bs3HjRoKDg5k8ebI09CQSM5Gvjb3AwEC6dOlCu3bt8Pf3p1Klkwwbdp7KlUWGdZqyE7wcExPDH3/8keKYbJcjkUhMRQjBL7/8QqtWrWjVqhVHjhyhWLFiTJs2jdDQJWzdap9pvTlTkzDM1Zosp2i1Wvbt20fDhg3p2rUrn3zyCUIIbG1tGTp0KIULF856EIlEYjRWv42bHmFhYcyZM4ctW7ag1WopVqwY06dPZ/z48VkqCWPjZ548ecKNGzcMmWB6SpeOIzKySJpxZbsciUSSFUIIfvrpJ3x8fPjzzz8BKFmyJOPHj2fs2LG89NJLQNbbvtmNA0xNXpZnOXr0KB9++CGBgYF4eHiwZcsW+vbtK7NYJZJcxCLGnqIoKuAcECqE6JrTcfQNvpctW0ZcXBy2traMGjWKOXPmPK/LZxwZKdLQ0FA2bdrE7NmzKV68ONWrV8fDw4OAgADDVm6fPgEpYvZAtsuRSCSZo9Vq2b9/P76+vly4cAGAMmXKMHHiREaNGkXx4sWzPaax8czpkd0MYVNJSkoyFH+3sbFBCMHOnTvp1atXtjoFSSSSnGGpbdxxwOWc3qxWq9mwYQPu7u7Mnz+fuLg4evToQWBgIGvWrMmWoZceMTExzJ49Gw8PDxYsWGBQxo6OjmmSLGS7HIlEYiwajYadO3dSp04devbsyYULFyhfvjzLly8nODiYadOm5cjQM5XstibLKQkJCWzYsIHq1asTGhoKQKtWrQgICKBPnz7S0JNILESue/YURakEdAH8gAnZuVcIwcGDB5k6dSqXL+tsxVdffZWlS5fSvHlzk2VTq9V8/vnnzJ07l4iICN59910WLFiQwsCT7XIkEklO2Lp1KwsWLDB03XFxcWHq1KkMHjyYQoUK5bF0pnkGsyIuLo5NmzaxZMkSQkNDadKkCSVKlAB0Nevklq1EYlks4dlbBUwBtNm56fz587Rt25bu3btz+fJlqlatyp49ezhz5oxZDD3Qba0sX76cmjVrcvbsWXbt2pVuuRQvLy+cnJyyXIXKdjkSiQTg2bNnDBw4kKCgIKpWrcrnn3/O9evXGT16tFUYernN5MmTGTduHNWqVePw4cP8/vvveeLBlEgkOhQhRO4Nrihdgc5CiFGKorQGJqUXs6coyjBgGEDZsmUbLl68mIcPHwI6z1qFChUoW7ZspqvBI0ec2LSpKhERDjg5JTBkyE3atYtIc11cXBz379+nSpUq2NjYoFarM/TCxcbGpkj9f/bsGQkJCYDO65hMfgAcHBxyJYsstRx5hbXIAdYji5QjLdYiS5s2bc4LIRplfaV5SK7HypQp03Du3LlUqFDBkHRhDMbqsexgib+HRqPhwYMHlChRgsKFC5OQkEBSUlKKea3lc2EtcoD1yCLlSIu1yGI2PSaEyLUHsBC4CwQD94E44KvM7qlUqZIAhIODg5g0aZJ4+PChyIqvvhLC0VEIXSdJ3cPRUXdcz82bN0Xv3r0FIJycnMS5c+eyHPfYsWNpjiUlJYmbN2+KU6dOiWPHjolTp06JmzdviqSkpCzHyynpyZEXWIscQliPLFKOtFiLLMA5kYv6LbNHtWrVhFqtzpa8xuixnJCbf4/IyEgxa9YsUaJECQGIhQsX5okc2cFa5BDCemSRcqTFWmQxlx7L1cAyIcR0YDpAMs9ev6zu69u3L35+fri6umZ4jVqtNvQonDChAXFxKT1q+gKh77yTyPTp01m7di0qlYpZs2YxZcoUihUrlqPXJNvlSCSSrFCpVNlOPsis0LE1tDFLjY+PD0uWLCE2Npa33nqLmTNn0qBBg7wWSyKRpIPVZREUKlSIr776KsPzQgguXrxoCHrWbR80S/faO3d09e78/f3p168f8+fPN7RNk0gkEmsirwsdG8O9e/coX748iqKQkJBAt27dmDlzJrVr185r0SQSSSZYzNgTQhwHjmd1nY1NxjkjQghOnz5NREREihZmGRU6dnZWoyi2/Pzzz7LIsUQisWrystBxVgQHB7No0SK2bNnCvn376NKlCz4+PjKrViLJJ+SrdmkXL15MY+iBrtCxvb06xTF7ezUffHAFkN0sJBKJ9WNqC7TcICgoiEGDBhk6XQwaNMhQbUAaehJJ/sHqtnEzQq1Wp6h1B3DypAu7dtUhKsqRokUTsbdX8/SpA6VLx9GnTwCNGoWhVteUNe8kEonVsmPHf23PXnoJCheGhw+z3wLN3Gi1Wjp06MD9+/cZPXo0kyZNolKlSnkjjEQiMYl8YwWFhKQsYnzypEuKtmUxMQ7Y26sZM+bPZAWPVYSEhJg1mSJ5YkhiYiL29vY4Ozvj4uIijUqJRJItduxI2bYsKkrnzfvyy9w18jLSYw8fPmTDhg2sWbMGBwcHvvrqK9zd3SlXrlzuCSORSHKdfGOdhIWFpfDq7dpVJ0V/WoDERFt27apjMPY0Gg1hYWFmMfbSSwzREx4ejr+/Px4eHnh5ecntDYlEYhSWzsDNTI/dvn0bjUZDYmIi//77L6+88gre3t7mF0IikVicfGPsJSYmpngeFeWY7nWpjyclJZk8d0aJIXr0x4KCgoiOjsbb21safBKJJEssmYGblR6zs7PDzs6Obt26kZCQgBBC6jGJpICQbxI0UidZlC4dl+51qY+bIzkjo8SQ1Gg0GiIiIrh48aLJc0okkoJPRpm2uZGBa6we02q1Uo9JJAUMqzf2rly5ghCCihUrotX+1143owzcPn0CDM9VKhXOzs4mzZ9RYsioUZ3p3bsno0Z15uRJF8M5jUZDUFAQarU6veEkEonEgKUycKUek0hebKzW2AsJCWHAgAHUqlWL77//HhcXlxReuhYtQhg+/BxlyjxFUQRlyjxl+PBzyZIzdLi4uKQeOttyJEefGBIZWQQhFCIji7BhQ6MUijK9+yQSiSQ1ffvCxo3g6gqKovu5caP54/W+++47nj17Zngu9ZhE8mJhlTF706dPZ9WqVQghmDRpEq1bt8bW1hYPD48Uq9MWLULSGHd6VCoVHh4eJmfI5nViiEQiKdj07Zu7mbfx8fGcPXuWV155xXBM6jGJ5MXC6jx78fHxLFq0iLfffpurV6+yZMkSSpYsCYCXlxdOTk5Z9pxUqVQ4OTkZin+aQl4mhkgkEkl2SUpKYsuWLcycORPQtaBs2rRpimukHpNIXiysztizs7Pj3LlzfPXVV7i6uqY4pygK3t7eeHh4pNto3NbW1uDRM1dGrL29fYrnlkwMkUgkEmNJSEhgw4YNVK9enUGDBnH48GHDYtXJySnFtVKPSSQvFlZn7KlUKho2bJjheUVRqFOnDt27d6d+/fo4OztTtmxZnJ2dqVevHt27d6dOnTpmKxng7Oycwqi0VGKIRCKRGMtvv/1GtWrVGDFiBOXKlePgwYOcPXvWsFiVekwiebGxypg9Y7C1tcXNzS3X40lcXFzw9/c3PNfHs+jbtOlbs5k7MUQikUgyIyYmhsjISNzc3KhWrRo1a9Zk69atvPbaa2kWu1KPSSQvNvnW2LMUeZUYIpFIJOkRHR3NmjVrWLlyJS+//DJHjx6lUqVKHDlyJMN7pB6TSF5srG4b1xrJi8QQiUQiSU5UVBSzZ8/G1dWV2bNn07RpUxYsWGD0/VKPSSQvLtLYM4K8SAyRSCSS5GzevBlfX1/atWvH33//zcGDB3n11VeNvl/qMYnkxUX66I1Enxji6elJSEgIYWFhJCUlYWdnh7OzMy4uLnLLQyKRmI3Q0FCWLl1Ks2bN6NWrFyNGjKBz587Url07x2NKPSaRvJjk+rdaUZRCwAnA4fl83wohPs7teXMLSyWGSCSSF5Pg4GAWLVrEli1b0Gg0lCpVCoBixYqZZOglR+oxieTFwhJLuASgrRAiVlEUO+CUoiiHhBB/WGBuiUQiyTfMnz8fHx8fbGxsGDhwINOmTaNKlSp5LZZEIsnn5HrMntAR+/yp3fOHyO15JRKJJD8QGBhITEwMADVr1mTUqFHcuHGDzz77TBp6EonELChC5L7dpSiKCjgPuAOfCiGmpjo/DBj2/KkXcDHXhTKOMkBkXguBlCM9rEUWKUdarEWWGkKIYpaaTOqxLJFypMVaZJFypMVaZDGLHrOIsWeYTFFKAvuBsUKIdBWhoijnhBCNLCZUJliLLFKOtFiLLFKOtFiLLHkph7W8B2A9skg50mItskg50mItsphLDouWXhFCPAaOA50sOa9EIpFIJBLJi0quG3uKopR97tFDUZTCQDvgSm7PK5FIJBKJRCKxTDZuBWDb87g9G2CPEOJgJtdvtIBMxmItskg50mItskg50mItsuSlHNbyHoD1yCLlSIu1yCLlSIu1yGIWOSwasyeRSCQSiUQisSyyXZpEIpFIJBJJAUYaexKJRCKRSCQFGIsae4qidFIU5aqiKNcVRZmWznlFUZTVz8//qyhKA2PvNbMcfZ/P/6+iKGcURXk52blgRVECFEW5oCjKuVyWo7WiKNHP57qgKMocY+/NBVkmJ5PjoqIoGkVRXnp+zpzvyWZFUSIURcmoNI+lPiNZyWGpz0hWcljyM5KVLJb6jLgoinJMUZTLiqIEKooyLp1rcu1zIvVYtuWQeizteanHUp6Xeiy39ZgQwiIPQAXcAKoC9sA/QK1U13QGDgEK8Crwp7H3mlmOZkCp57+/rpfj+fNgoIyF3o/WwMGc3GtuWVJd3w04au735PlYLYEGwMUMzuf6Z8RIOXL9M2KkHBb5jBgjiwU/IxWABs9/LwZcs5QuMfJ7K/VYHnxGszteLn9GpR7LnhwW+YwYI4sFPyMW1WOW9Ow1Bq4LIW4KIRKB3cAbqa55A9gudPwBlFQUpYKR95pNDiHEGfH/9u4nZIo6DOD494G8pBFEVKClBR1CSIIQMoP0FIZ0SapTgQQeCjpEh7x16RZ16CYdgjCIRKI0+kMRZGVlaUVB2aFEKUhBvUSHp8PMi+O677szr/NnHb4feHH3N/PbfebHsw+/HX87k3mmfPolsGaZ73VZcXTUt43XewzYexnvt6jM/Aw4vcQufeTIzDh6ypE647GYtnOkaSxd5sipzDxSPj4H/AysntitqzyxjjWMo6O+bbyedcw6Nsto6lifk73VwJ+V5ye49MAW26dO3zbjqNpJMbNekMAHEfFtFLdHWq66cdwTEUcj4mBErG/Yt+1YiIirKS6K/Xalua0xqaOPHGmqqxypq48cqa3PHImIdcBdwFcTm7rKE+vY8uKwjl3MOnYp61iHdayP6+wtiCltk9d9WWyfOn3bjKPYMWILxQdgc6X53sw8GRE3AB9GxC/lN4Uu4jgCrM3M8xGxDdgP3F6zb9uxLNgOfJ6Z1W9GbY1JHX3kSG0d50gdfeVIE73kSESsoijEz2Tm2cnNU7q0kSfWseZxWMcuZR27mHWs4zrW55m9E8DNledrgJM196nTt804iIg7gT3AQ5n5z0J7Zp4s//2b4j6/G7uKIzPPZub58vEBYEVEXF/3GNqMpeJRJk5rtzgmdfSRI7X0kCMz9ZgjTXSeIxGxgqJAvpGZ+6bs0lWeWMcaxmEdm8o6VmEd66GOZQsLDev8UZxF/B24lQsLCtdP7PMgFy9GPFy3b8tx3AL8BmyaaF8JXFN5fAh4oMM4buLCha83An+UY9PaeDQZX+BairUOK7sYk8prrmPxhbyd50jNODrPkZpx9JIjdWLpK0fK43sdeHmJfTrJk5qfW+vYADla9/X6yNFZn5U+cqRmHNax6dtHV8cua8CWcXDbKH5xchzYXbbtAnZVDv7VcvsPwN1L9e0wjj3AGeD78u+bsv22clCPAj/1EMdT5fscpVg8u2mpvl3GUj5/Anhzol/bY7IXOAX8R/HtZedAOTIrjr5yZFYcfebIkrH0mCObKf7L4lhl/Lf1lSezPis95qh1rGEsPeaodaxZHNaxjuuYt0uTJEkaMe+gIUmSNGJO9iRJkkbMyZ4kSdKIOdmTJEkaMSd7kiRJI+ZkT5IkacSc7GmuRcSOiPg3ItZW2l6JiOMRceOQsUlSHdYxDc3r7GmuRUQAXwPfZeaTEfEs8BzFPQp/HTY6SZrNOqahXTV0ANJSMjMj4nngvYg4DuwGti4UyIh4B7gP+DgzHx4wVEmayjqmoXlmT1eEiDhEcc/E7Zl5sNK+BVgFPG6RlDTPrGMaimv2NPciYiuwgeI+gX9Vt2XmJ8C5IeKSpLqsYxqSkz3NtYjYAOwDngb2Ay8OGpAkNWQd09Bcs6e5Vf5y7QDwUma+FhGHgWMRcX9mfjpsdJI0m3VM88Aze5pLEXEd8D7wbma+AJCZPwJv4bdiSVcA65jmhWf2NJcy8zRwx5T2RwYIR5Ias45pXvhrXF3RIuIjikXPK4HTwI7M/GLYqCSpPuuYuuZkT5IkacRcsydJkjRiTvYkSZJGzMmeJEnSiDnZkyRJGjEne5IkSSPmZE+SJGnEnOxJkiSNmJM9SZKkEXOyJ0mSNGL/AzVfN7iNUmcAAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–10\n", "\n", "def find_support_vectors(svm_reg, X, y):\n", " y_pred = svm_reg.predict(X)\n", " epsilon = svm_reg[-1].epsilon\n", " off_margin = np.abs(y - y_pred) >= epsilon\n", " return np.argwhere(off_margin)\n", "\n", "def plot_svm_regression(svm_reg, X, y, axes):\n", " x1s = np.linspace(axes[0], axes[1], 100).reshape(100, 1)\n", " y_pred = svm_reg.predict(x1s)\n", " epsilon = svm_reg[-1].epsilon\n", " plt.plot(x1s, y_pred, \"k-\", linewidth=2, label=r\"$\\hat{y}$\", zorder=-2)\n", " plt.plot(x1s, y_pred + epsilon, \"k--\", zorder=-2)\n", " plt.plot(x1s, y_pred - epsilon, \"k--\", zorder=-2)\n", " plt.scatter(X[svm_reg._support], y[svm_reg._support], s=180,\n", " facecolors='#AAA', zorder=-1)\n", " plt.plot(X, y, \"bo\")\n", " plt.xlabel(\"$x_1$\")\n", " plt.legend(loc=\"upper left\")\n", " plt.axis(axes)\n", "\n", "svm_reg2 = make_pipeline(StandardScaler(),\n", " LinearSVR(epsilon=1.2, dual=True, random_state=42))\n", "svm_reg2.fit(X, y)\n", "\n", "svm_reg._support = find_support_vectors(svm_reg, X, y)\n", "svm_reg2._support = find_support_vectors(svm_reg2, X, y)\n", "\n", "eps_x1 = 1\n", "eps_y_pred = svm_reg2.predict([[eps_x1]])\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(9, 4), sharey=True)\n", "plt.sca(axes[0])\n", "plot_svm_regression(svm_reg, X, y, [0, 2, 3, 11])\n", "plt.title(f\"epsilon={svm_reg[-1].epsilon}\")\n", "plt.ylabel(\"$y$\", rotation=0)\n", "plt.grid()\n", "plt.sca(axes[1])\n", "plot_svm_regression(svm_reg2, X, y, [0, 2, 3, 11])\n", "plt.title(f\"epsilon={svm_reg2[-1].epsilon}\")\n", "plt.annotate(\n", " '', xy=(eps_x1, eps_y_pred), xycoords='data',\n", " xytext=(eps_x1, eps_y_pred - svm_reg2[-1].epsilon),\n", " textcoords='data', arrowprops={'arrowstyle': '<->', 'linewidth': 1.5}\n", " )\n", "plt.text(0.90, 5.4, r\"$\\epsilon$\", fontsize=16)\n", "plt.grid()\n", "save_fig(\"svm_regression_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svr', SVR(C=0.01, degree=2, kernel='poly'))])" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVR\n", "\n", "# extra code – these 3 lines generate a simple quadratic dataset\n", "np.random.seed(42)\n", "X = 2 * np.random.rand(50, 1) - 1\n", "y = 0.2 + 0.1 * X[:, 0] + 0.5 * X[:, 0] ** 2 + np.random.randn(50) / 10\n", "\n", "svm_poly_reg = make_pipeline(StandardScaler(),\n", " SVR(kernel=\"poly\", degree=2, C=0.01, epsilon=0.1))\n", "svm_poly_reg.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–11\n", "\n", "svm_poly_reg2 = make_pipeline(StandardScaler(),\n", " SVR(kernel=\"poly\", degree=2, C=100))\n", "svm_poly_reg2.fit(X, y)\n", "\n", "svm_poly_reg._support = find_support_vectors(svm_poly_reg, X, y)\n", "svm_poly_reg2._support = find_support_vectors(svm_poly_reg2, X, y)\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(9, 4), sharey=True)\n", "plt.sca(axes[0])\n", "plot_svm_regression(svm_poly_reg, X, y, [-1, 1, 0, 1])\n", "plt.title(f\"degree={svm_poly_reg[-1].degree}, \"\n", " f\"C={svm_poly_reg[-1].C}, \"\n", " f\"epsilon={svm_poly_reg[-1].epsilon}\")\n", "plt.ylabel(\"$y$\", rotation=0)\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plot_svm_regression(svm_poly_reg2, X, y, [-1, 1, 0, 1])\n", "plt.title(f\"degree={svm_poly_reg2[-1].degree}, \"\n", " f\"C={svm_poly_reg2[-1].C}, \"\n", " f\"epsilon={svm_poly_reg2[-1].epsilon}\")\n", "plt.grid()\n", "save_fig(\"svm_with_polynomial_kernel_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Under the hood" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "image/png": "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UaNG0XCfRWv3v1Q6cOBArrjiCp599lkSEhKoU6cOgwYNIicnp5zvSPUREmK56SZ31+iSJa7q5vcpedatW8ddd93Fs88+63UoIgAsXLiQwYMH8/HHH2Ot9ToczyhxC1LWwj//CZ06QUYGdOkCn38e2Mk4165dy2233Ubbtm2ZO3cuderUCdzBfSguLo7k5GTOP/987r333jIncEOGDGHKlCl7t6dMmcKgQYMw+8zrsmvXLvr378+iRYtYunQpp59+Op06dWLbtm2l9jVq1Cg6derEt99+y80338y0adMYNWoUY8aMYfny5TRr1oynnnrqsDEtWrSI7777jvnz5zN9+nTmzJnDrFmzyvhOVD+NGmUyfrwb1+Z369at44477qBNmzbMnj2b2rVrex2SCAC1a9dmxYoVXHPNNXTr1q3aJnC6qzQIZWbCdde5JavATa774IOBuzS6Zs0annvuOebOnUtERATXXXcd1113HfXq1SM3NzcwQZRRMMUzdOhQOnXqxMSJE0lJSSElJYXevXtzyy23HPKyZ9++fbnzzjv58ccfqVWrFu+99x7PP/88Dz744N7nXHzxxaVe8/zzzzNr1izee+89EhMT97ZfffXVpcbM9e3bl4EDB+5tu/fee0lLS2PNmjWH/F1iY2N54YUXqFGjBs2aNaNXr14s33cdJiklJMT/fzx++uknnnvuOd58803CwsIYOHAgw4YN45hjjgmq71leXl5QxVMefow7mN7vk08+mY8++oiZM2fywgsvcM0113DWWWdx++23065du1Inu1WZErcg87//ufnZvvkGataE119324GyYMEC+vXrt3c7OzubSZMmMWnSpMAFUQ6Ngnxdr+TkZJKTk1mwYAFN/mBl8Dp16tCtWzemTJlC7dq1adu27QGJ3m+//cYDDzxAWloaW7ZsobCwkOzsbH7++edSz2vZsmWp7R9++IGhQ4eWamvVqtVhE7dTTjmFGjVKuocGDRrw0UcfHfb3FX9avHgxPXv23LtdWFjI5MmTmTx5sodRVT3B3l/50Zdffkn//v3p1asXzzzzjNfhBIQStyDy4Ydw9dXw++/QpImbn+2UUwIbwxlnnEGrVq1YtmwZ1lpOPfVUWrduTVxcXGADKYOxY8dyzz33eB3GAX7//Xc+/fRTvv/+e8LCwrjooos46aSTDvmawYMHM2DAAGrWrMkj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–12\n", "\n", "import matplotlib.patches as patches\n", "\n", "def plot_2D_decision_function(w, b, ylabel=True, x1_lim=[-3, 3]):\n", " x1 = np.linspace(x1_lim[0], x1_lim[1], 200)\n", " y = w * x1 + b\n", " half_margin = 1 / w\n", "\n", " plt.plot(x1, y, \"b-\", linewidth=2, label=r\"$s = w_1 x_1$\")\n", " plt.axhline(y=0, color='k', linewidth=1)\n", " plt.axvline(x=0, color='k', linewidth=1)\n", " rect = patches.Rectangle((-half_margin, -2), 2 * half_margin, 4,\n", " edgecolor='none', facecolor='gray', alpha=0.2)\n", " plt.gca().add_patch(rect)\n", " plt.plot([-3, 3], [1, 1], \"k--\", linewidth=1)\n", " plt.plot([-3, 3], [-1, -1], \"k--\", linewidth=1)\n", " plt.plot(half_margin, 1, \"k.\")\n", " plt.plot(-half_margin, -1, \"k.\")\n", " plt.axis(x1_lim + [-2, 2])\n", " plt.xlabel(\"$x_1$\")\n", " if ylabel:\n", " plt.ylabel(\"$s$\", rotation=0, labelpad=5)\n", " plt.legend()\n", " plt.text(1.02, -1.6, \"Margin\", ha=\"left\", va=\"center\", color=\"k\")\n", "\n", " plt.annotate(\n", " '', xy=(-half_margin, -1.6), xytext=(half_margin, -1.6),\n", " arrowprops={'ec': 'k', 'arrowstyle': '<->', 'linewidth': 1.5}\n", " )\n", " plt.title(f\"$w_1 = {w}$\")\n", "\n", "fig, axes = plt.subplots(ncols=2, figsize=(9, 3.2), sharey=True)\n", "plt.sca(axes[0])\n", "plot_2D_decision_function(1, 0)\n", "plt.grid()\n", "plt.sca(axes[1])\n", "plot_2D_decision_function(0.5, 0, ylabel=False)\n", "plt.grid()\n", "save_fig(\"small_w_large_margin_plot\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj4AAADlCAYAAABTVP1pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA62klEQVR4nO3dd5wU9f3H8dfnGr0jqDS7FPUgIBpURKMJGruIRixgFGsMiRpFjWASSYy9xi5q/MVTRMVeQcQAAlKkGlRAiiAq5eCAK9/fH99dWJbrt7uz5f18PPZxuzOzM5+52/3ee2a+M2POOUREREQyQVbQBYiIiIgkioKPiIiIZAwFHxEREckYCj4iIiKSMRR8REREJGMo+IiIiEjGUPARERGRjKHgIyIiIhlDwSeKmY02szeCrgOSq5ZUY2YtzGy1me0bdC2JZGZjzOyPQdchUldm1svMnJntFYN59QvNq3UMSqtrLYPNrDDoOjJZxgSfikJEOV+u3wPnJbQ4iYcbgbecc1+FB5jZFWb2jZltMbMZZnZUdWdmZn3NbJyZrQh9XgbHo+iaMLM7zeydqMG3AjebWbMgapLEM7PdzOxhM1tiZltDgf9DMzs+6NrizcwmmNmD5QwfYGaRtyX4L7AH8EPCipOklTHBp7qcc+udc+uCrkNqz8waAhcDT0YMOxu4DxgF9MA3hG+bWcdqzrYxMBcfjItiWnDtHQp8FjnAOfcF8DUK75nkZaA38FvgAOAk4G2gVZBFAZhZlpllB12Hc26bc+47p3s0CQo+u4jeMxTaonjYzEaZ2VozWxPa0s6KmKaRmT1rZoWhra3hZvaGmY2OmMbM7E9m9pWZFZnZF2ZWo39OZlbPzO4NLWOLmU0xsyMjxvcNDSs0s/VmNtXMDqpqXDyYWfvQnpGzzewjM9tsZrPNrHNoL9vE0LDPosOHmd1sZnNCtX4f+ps0iBh/VmjLtlPEsPtCv9u2wIlAGfBpxGz/CIx2zj3unFvgnPsdsAq4vDrr45x7yzl3o3NuTGjecRPxWVkU+qysMbOXI8bnmtk2oC/w59DveV7ELMYBv4lnjZIczKw5cBRwg3PuQ+fcUufcNOfcnc65FyKma2Nmr4U+T0vN7CIzm2tmIyOmcWY2IGr+S8zs2ojXfwx9NzeF9n4+EaohPH5w6Ht7opnNBbYBXcwsz8xuN7PlofdOM7NfRS2rv5ktDLVtn+BDXKx+Tzsd6oqo8xeh38MmMxtvZntHvW94qL0tDLXxI8xsSdQ0Q8xsfqjuL83sDxbx/6Ga9V1qZovNbFvo5yXljP8ytIzvzexdM8sJjTvY/B6+DWa2MdTOHlOrX1SGUPCpnkFACdAHuAoYBpwdMf4u4GjgdOBYIB/fGEX6G36L7EqgK/B34FEz+3UN6vhnaLkX4fdafAG8Y2Z7hL4ErwGTQss/DL+Ho7SycRUtyMxuDH3ZK3tUdqioe+jn5fjDL4cB9YDRofW4Efg50BofSiLlhN7XDf8P/Hj87zxsTGjdbw7Vem1ouv7OudX43/2M8NadmeUBPYH3opbzHv5vmmyuA4YAVwCdgVOA9yPGl+J/d+B/r3sAR0aM/wzoHRkWJW0Vhh6nmFn9SqYbDewHHAecBlwA7FWL5ZXhv4vdgHPxe5oeiJqmPv67eSm+rVsKPI1vI88FDgaeAV43s3wAM+sAvIr/nHcPzfOftaivJuoBw/Ht6c+B5sAj4ZFmdg4wArgJ+BmwgKi2KhRQRgG3AF2Aa4Dr8d/dajGz04EHgXuBg/Bt88NmdnJofC/gIXw7eiD+bxh5iPv/8BtxvfH/F0YCW6q7/IzknMuIB/6LX8KOhiL82Aw4YK+I6d6IeN8EYHLUvN4Hngg9b4zfqjknYnwj4Cf8Hobw6yLgqKj53Ivvh1JZzW9EzGMbcEHE+GzgK3yoahlaj6PLmU+F4ypZdkt8Q1nZo0El778JWAe0jRj2APA90Cpi2NNAQRW1PAY8EzXsl0AxcAOwETg0YtyrkdMDe4bWv2/UPG4BFtXis1QIDI7jZ/Uj4K4qpjkJ2ABYOeMOCa3vvvGqUY/keQBnAj/i/9lNBu4EDosYf0Do83BExLBO+AA9MmKYAwZEzXsJcG0ly+4PbAWyQq8Hh+bTM2KaffGBqWPUe18FHg49HwV8Gfl5xoen7W1zBcufEGoXo9v1IsBFTNcvNK/WUXUeGDHNoNC8wusyGXgkannvAUsiXi8Dzo+aZhgwv5KaBwOFEa8/BZ6KmmY0MCn0/AxgPdCkgvltAC4M+nOYSo9M2+MzEb81Efk4txrvmxP1eiXQJvR8XyCXiL4WzrlN+P4gYV3xW0HvRO4xwe/VqO5ZR+HlbD9845wrxX85uzrnfsR/Wd41szdDu6Q7hKarcFxFnHM/OucWV/GorK9Ld3xoWx0xrCMw1jn3Q9Swb8IvzKyDmd1v/lDgj6Hf0xBgeVR97wHT8KFvoHNuWsToBpS/xRN9fN/KGRYTZva30K71yh79Knj7OGCYmX0Q2sVd3pkoPYDZLtTyRQn/XbTHJwM4517Gh/uT8X17+gBTzOzG0CRd8MEjso1aim/HasTMjjWz90OHrDYCY4E8YPeIyUqAWRGvf4b/rs2Pav9+zY72rwswJerzPLmaZRWwa7t+XTXet9U5tyji9Up8G9s89LozUX3ogKnhJ2a2G9ABv+c+cr3+QfXbdfDr/mnUsEn4/xvgN7SXAt+Y2fNmdqGZNYmY9m7gCfNdCm4ys841WHZGyrTgszn6nzdR/1ArUBz12rHjd2cRwyoSnvZkdv5ydsPvuaiOypbjN9ecG4I/9DERf3jky/Bx9MrGlbuwuh/qygemRA3rwa6NWT4wM7TMVvgwsztwLf6QVS98iJkVVV/4kKIBkeEKYC3QIup1KTs3zuDDa/R7Y+VefINW2SO6UQXAOXcvfpf2O/hd5l+ZWZeoyboT+r2Vo2Xo5/e1LV5Si3Nui3PufefcX5xzffAd+0eGDvNaFW/fPptyps0NPzHfp+5N/CGfs/CHjy8Kjc6LeM/W0EZZWFZo3oeyc/vXJeL91a2xPOvLade/q8b7SqJeh9vWrHKGlSc83WXsvF4H4dv2mqisXd+ID48D8XuYhgMLzWzP0PiR+JD0Kj70zjGzi8qZn4RkWvCJh8X4YNQ7PMD8WUWRHYfn43cHdypnr8nSGixnGxF9OcyfLfHz0PwBcM7Nds7d7pzrh98NfGF1xpXjEXbdiop+TC/vjWbWCL/FMzNiWEv81lHksA74M0/Cw36N3zN2tnPuXefcPHxYa0xE8An1CxgL/A7/Zf97VAkz2bG1hHNuGzAD31co0vH4s7tizjm31jm3sIrH5krev9g5dyc++Bn+8FWkfHbdExl2ELAyam+bZJb5+L5y9fFBJQsfPAAwf0LBnlHv+R7fXyw8TdvI1/jPYh7wB+fcZOfcl+XMozwz8Z/h3ctp/1ZE1HuYmUUGoMOrMe94WkhEux6y/XXo+7UCf0h5lz3iNVjOAnbuo0fodWS7XuKc+8g5NxzfFjTCH+4Oj/+fc+5+59yv8aH34hosP+PkBF1AqnPOFZrZU8DtZrYW38nsZnZs5eCc22hmdwJ3hr7YE/H/zA8Hypxzj1VjOZvM7F/AP0LL+Qb4A9AW3xFub3xnwnH4L+M++C/IvyobV8nyfsT3G6iN8D/p2RHDeuDD3/yIYd3xx+PDjcQP+N/LaWb2BXACvhP0xvA0oa3Ot4C7nXNPmdln+C2cfs65CaH5vIv/e7SKOKx2N/BcaPpP8VtpexLRmbEyZtYY368J/N+2o5l1B350zi2rzjyquZzr8XuhPsNvkV6ID7wToibNATqHtvo2u50vwXAUO3d+lDQV2kv6EvAUPghvxAeUPwEfOuc2ABvMX+/pUTMbij8Ueje7XpbhI+BKM/svfg/pKHY+ZPw//Gd/mJmNxbdfw6qq0Tn3pZk9D4w2s2uAz/F7JfsBXzvnxuK/h9cA95rZw/gO0JfV7LcRc/cBT5vZNOAT/Mkrh+H7b4aNBB4ws3X4dikXv3emnXMueoOsIncAL5nZDHwfov74/kZnAJjZSfgNyYn4NvkYoAmwIHQCw534z8AS/P+DI4k4JCfliHcnomR5ENVpOWJ4L6ru3PxgZfPC/7N+DtiE/6d1A/Ah8K+IaQy/hyK89+d7/LHb46tbM/4shHtDy9iKP5R0ZGhcW/xekBWhccvwZ0XkVjYuTr/ry4CFUcOuBaZHDbuZUAe+iN/RQ/jOemuA+/Ff6nAnv5b4raNHo+ZTwK4d0CcDV0YNuwLfOGzF7wGK7uw8OPKzEDWuX2hc9GN0jH93t4TWcTP+EN0bQH450w3CH6Yti/qc1cd3hDw86O+cHvF/hNqEUfhDxD+FPjf/wweblhHTtcVv+BQB3+L3CMxl587Ne+L7CBXiT5o4k6jOzcDVoXakCN/GDWTn9nMwER13I96Xiw8JX+OD/HeheiI7Qf8aWIQPW5+GPuPV6dz8YDnDB1B15+bCqPfsNE1o2I34tqgQeBbff2dB1Pt+gw9zW0J/g0lEnOxSTm3lLfsydhw9WAxcEjHuSGA8fsOwKPR3GxIal4c/q2spvl1biT8ZpGnQn81kfljolycxZGb18B/EO5xzdwVdTyYys/74Lbaubuf+BpW951Z8g5nvnIs+/p8SzOxK4FTnXHX7jkmGMn+dnTHO9xGRajCzV4Ac59zJQdcitadDXTFgZj3Y0Vm1Cf46Dk3weyIkAM65d8zsIaA9PoRWx4nAVakaekKK8XsWRaQOQn01L8cfNi7B7wE7NfRTUpiCT+z8EX8mTvhUzr7OueqcMSZx4py7v4bTH1r1VMnNVaO/mIhUi2NHP8MG+EOI5zvnXgm0KqkzHeoSERGRjKHT2UVERCRjKPiIiIhIxohLH5/WrVu7vfbaKx6z3smmTZto1KhRXJexru06vu71NS7L0earNrSf3x6r00VGK5eIdUqkRYsWUVpaSteuXaueOEUk4m9kznHz0qWszsvjsT32AIvfZw4S+7mbMWPGWufcbnWdT6LaGUi/7yXEfp2KmhQxv998crbmcMh7h8S1nYyWju0M6HNXF5W2M/E4R75nz54uEcaPH5+Q5YxbOM7l/iXXMRL3h3f+4MrKyuK2rEStU6IcffTRLj8/P+gyYiquf6OSkh3Py8r8IwES+bkj6npOtX0kqp1xLv2+l87Ffp3Kysrcfvfv5xiJm/DNhJjOuyqBtTMjRjg3bJhzX30Vl9nrc1d7lbUzOtRVDScfeDIvD3yZ3Kxc7plyD9e8d034wlIisVNQAEccAT+FLgxrFvc9PSKxYmac0fkMAF5e8HLA1SRAaSk88gjcey9s2BB0NVIDCj7VpPAjcVVQAOeeC1OnwosvBl2NSK2c2dVf4mbsgrGUubKAq4mzTz+F1ath330hPz/oaqQGFHxqQOFH4iIcesrK4JZbYOjQoCsSqZVee/aifdP2rNi4gmkrpgVdTnyNGeN/nnmm9symGAWfGlL4kZiKDj0jR6oRlZSVZVnbD3eNXTA24GriqKwMXg4dzhswINhapMYUfGpB4UdiQqFH0tAZXULBZ+HY9G0Xp0yBlSuhY0fo1SvoaqSGFHxqSeFH6uzjjxV6JO0c2fFIdmu4G4t/XMwXa74Iupz4CB/mGjBA39sUpOBTBwo/UicPPgivvabQI2klOyub0zqfBqTx4a6BA+HKK+E3vwm6EqkFBZ86UviRGnnrLfjxR/88KwtOOUWhR9LOmV382V1pe1r74Yf7DRcd5kpJCj4xoPAj1VJQACefDMcfD0VFQVcjEjfH7H0Mzeo1Y+6auSxauyjockR2ouATIwo/UqnIjswnnQT16wddkUjc5GXnbT/c9eK8NLoulXNw0UXw5JOwbVvQ1UgtKfjEkMKPlEtnb0kGOrvb2QAUzCsIuJIYmj0bnn4abroJsrODrkZqScEnxhR+ZCcKPZKhfrHPL2hRvwXzvp/HvDXzgi4nNsJnc51xhoJPClPwiQOFHwHgs88UeiRj5WXnbb+mT1oc7nIOXnrJPz/zzGBrkTpR8IkThR+hVy+45BKFHslYkYe7Ur79mzULvvwS2rSBo48OuhqpAwWfOFL4yVClpf5nVhb8618KPZKxjtn7GFo3bM2iHxal/sUMX3jB/zzrLMjJCbYWqRMFnzhT+MkwBQX+Gh8//OBfmyn0SMbKycrZfk2fgrkp3Mm5rGxH8DnnnGBrkTpT8EkAhZ8MEe7IPH36jr4AIhkuLQ53lZTA9df7Ts19+gRdjdSRgk+CKPykueizty69NOiKRJJC3059aduoLV/99BUzv5sZdDm1k5cHV1zh78iepX+bqU5/wQRS+ElTOmVdpELZWdkM6DoASPHDXZI2FHwSTOEnzSj0iFQpfLjrxfkvpl579+mncO21MGdO0JVIjCj4BEDhJ41MmqTQI1KFIzoeQbsm7ViybglTlk8JupyaGT0a7rpL/fbSSJXBx8w6mNl4M1tgZvPM7PeJKCzdKfykifvvh9dfV+gRqUSWZXHOQf5sqOe/eD7gampg2zbfrwd0Nlcaqc4enxLgGudcF+Bw4Eoz6xrfsjKDwk9qajl5Mqxd61+Y+ZuOKvSIVGrQwYMAf3ZXcWlxwNVU0wcfwE8/wcEHQ7duQVcjMVJl8HHOrXLOfR56vhFYALSLd2GZIjr8PPzVwwo/yayggINvvhmOOw42bw66GpGU0X337nTdrStrN6/lva/eC7qc6vnPf/xP7e1JKzW6/KSZ7QX0AKaWM24oMBSgbdu2TJgwIQblVa6wsDAhy4m3JjRhZJeRjJg/gjErxjDwyYFcse8VWBrsRVi3bh2lpaVp8Xfa7aOP6HrbbVhZGUvy81kydWra7OlJle9SEO0MpM7vpyaCWKefN/o587+fz90f3k2jlY1iNt94tDNZRUUcMWYM2cCUTp3YEsDfX5+7OHHOVesBNAZmAGdUNW3Pnj1dIowfPz4hy0mUcQvHuZxbcxwjcX945w+urKws6JLq7Oijj3b5+flBl1F3L7zgXFaWc+C+ueAC59LgbxMpkd8lYLqrZrtT2SNR7Yxz6dfWOBfMOn3z0zeOkbiGtzV0G7dujNl849LO/PvfzoFzffrEdr41oM9d7VXWzlTrrC4zywVeBp53zo2NVwjLdCcfeDK3dr1VfX6STdQp60sGD06bPT0iibRX8704osMRbC7ezKsLXw26nModfLC/EKkuRpp2qnNWlwFPAgucc3fHv6TM1qd1H3V4TibTp+s6PSIxdN4h5wHw7zn/DriSKhxyCDzyCFxwQdCVSIxVZ4/PEcD5wLFmNiv0ODHOdWU0ne2VRHr2hMsvV+gRiZGzup5FTlYO73/9PqsLVwddjmSg6pzVNck5Z865Q5xz3UOPtxJRXCZT+AlYSYn/aQYPPKDQIxIjrRq24oT9TqDMlVEwL0lvYXH55fDss7B1a9CVSBzoys1JTOEnIAUF0Lv3ztfqUegRiZnwNX2S8nDXF1/4Q1zDhgVdicSJgk+SU/hJsHBH5pkz4cUXg65GJC2dfODJNMlrwrSV01i4dmHQ5ezsuef8z4EDoV69YGuRuFDwSQEKPwkSfcPRyy8PuiKRtNQwtyFndT0LgGdmPRNwNRFKS+H50C01zj8/2FokbhR8UoTCT5zpLusiCTWkxxAAnp3zLKVlpQFXEzJ+PKxcCfvsA336BF2NxImCTwpR+IkThR6RhDuiwxHs13I/Vm5cyftfvx90OV74MNd556kNSGMKPilG4ScOpkxR6BFJMDNjcP5gAEbPGh1oLQBs2ABjxvjn550XbC0SVwo+KUjhJ8buvhvefFOhRyTBLsi/AMN4deGr/FT0U7DFZGfDHXfAZZfB/vsHW4vElYJPilL4qaM33oA1a/xzMzjxRIUekQTr0KwDx+1zHFtLt/LC3BeCLaZRI7jiCvjXv4KtQ+JOwSeFKfzUUkEBnHoq/OIXsGlT0NWIZLTB3QcD8PSsp4MtRDKGgk+KU/ipociOzGecAQ0bBl2RSEY7vfPpNK3XlGkrpzFvzbxgivj73+G662DZsmCWLwml4JMGFH6qSWdviSSdBrkNOKfbOUBAnZyLi+Hee+HOO2HVqsQvXxJOwSdNKPxUQaFHJGmFr+nz3JznKC4tTuzC33zT9/fr2tXfqkbSnoJPGlH4qcDnnyv0iCSxw9odRpfWXVi9aTVv/u/NxC78qaf8z4suUruQIRR80ozCTzl69ICrr1boEUlSZsYlP7sEgEdnPJq4Ba9aBW+9BTk5ukVFBlHwSUMKPyElJf6nmb9Wj0KPSNK6IP8C6mXX493F77Jk3ZLELPS55/z9uU4+Gdq0ScwyJXAKPmkq48NPQQH07LnztXoUekSSVquGrRjQdQAOxxOfPxH/BZaVwROh5QwZEv/lSdJQ8EljGRt+wh2Z58yBF18MuhoRqaahPYcC8NTMp+LfydkMRo+Gq66CE06I77IkqSj4pLmMCz/RZ29deWXQFYlINR3V8Sg6t+7MqsJV8e/kbObvwP7AA76Pj2QMBZ8MkDHhR6esi6Q0M2Poz/xen7h2ck7H9k+qTcEnQ6R9+FHoEUkLF+RfQF52Xnw7Od92Gxx/PEyeHJ/5S1JT8MkgaR1+ZsxQ6BFJA3Hv5FxSAo8+Ch98oHv1ZSgFnwyTtuHn9tvhnXcUekTSwKU9LwXgyZlPxr6T81tvwfLlsP/+cOyxsZ23pAQFnwyUNuHn9dfhu+/8czP41a8UekTSwFEdj6JL6y58V/gdryx8JbYzf+QR//PSSyFL/wIzkf7qGSrlw09BAZx2mt9iKywMuhoRiSEz48pD/RmZD3z2QOxm/M03fs9wvXoweHDs5ispRefwZbBw+DnzxTO5Z8o9ANz1y7uwZN9rEtmR+ayzoFEjADZs2MCaNWsoLo7v9T+aNWvGggUL4rqMRIvVOuXm5tKmTRuaNm0ag6okk12QfwHDPxzOpGWTmPXdLLrv3r3uM33sMX9G18CB0KpVrWaRqHYG1NZUplGjRrRv356sWuy1U/DJcCkXfio4e2vDhg2sXr2adu3a0aBBg7jWv3HjRpo0aRK3+QchFuvknKOoqIgVK1YAKPxInTSp14Qh3Ydw/2f38+BnD/LEKXXs6FxWBs8/759ffnmtZpHIdgbU1lSkrKyMFStWsHbtWtrU4lYjOtQlqXPYq5JT1tesWUO7du1o2LBh8oa2NGdmNGzYkHbt2rEmfKsQkTq4src/3PX8F8/zw+Yf6jazrCyYORMefxwOP7xWs1A7kxyysrJo27Yt69evr937Y1yPpKikDz+zZlV6nZ7i4mIaNGgQWHmyQ4MGDRJyGEDS3wGtDqD/fv3ZUrKFJ2c+WfcZtmoFF19c65Mg1M4kj9zcXErCN6KuIQUf2S6pw09+Pvzxj5Vep0dbYMlBfweJpd/1/h0AD097mNKy0trNZPVqiFEY1+c7OdTl76DgIztJuvATbqzM4J//1HV6RDJM//36s2+LfVm6fimvf/l67WZyySWw117wyScxrU1Sk4KP7CJpwk9BAfzsZ7BqlX9tptAjkmGyLKtup7Z/9RW88QasXQsHHhjj6iQVKfhIuQIPP+GOzHPnwpgxiVtuQK699lr69+8f03lOnDiRU045hXbt2mFmjB49OqbzF0mUIT2G0Ci3ER998xFzVs+p2ZsfeMCfwn7uuVCLM4DSidoZT8FHKhRY+Ik+e+uqq+K/zIBNmzaN3r17x3SehYWFHHTQQdx3333qkCkprXn95vy2x28BuGvyXdV/44YN8NRT/vnvfx+HylKL2hlPwUcqlfDwk2F3WS8uLiYvL4+JEyfy17/+FTOjW7duMZn3iSeeyKhRoxgwYECtLvIlkkyGHT6MLMvi/774P5ZvWF69N40eDRs3Qt++0L17PMtLampndpYaVUqgEhZ+Miz0AGRnZzN58mQApk6dyqpVq5g0adJO04waNYrGjRtX+vhEnTYlze3dYm/O6noWJWUl3D/1/qrfUFIC9/iLsmb63h61MzvTlZulWhJyhefZs2MWeuzWYAKTG1GzQJiVlcWqVato0qQJhx56aLm/z8suu4yBAwdWOp927drVaLkiqejaPtdSMK+AR2c8ys19b6ZpvUquDv7tt/6eXPvvD6eeGreaUqGtUTuzMwUfqba4h5/bboNjjoHjjkv7PT2RZs6cSX5+foW/x5YtW9KyZcsEVyWSfHrt2YujOx3Nx0s/5vEZj3NNn2sqnnjvvWH+fFi+HLKzE1dkklI7s4OCj9RIzMPPuHFw6KGwxx4+7Bx/fEzqrOmel5qI9f1zZs2aRY8ePSocP2rUKEaNGlXpPN5++22OOuqomNUkkqyu63MdHy/9mHun3svVh11NbnZuxRNnZUHHjnGtJ1XaGrUzOyj4SI3FLPyE+/Tstx9Mnw5pdjO+6po9ezYnnHBCheMzaRe0SFVO2P8EurTuwoK1C3hx3osMOmTQrhM99BCccgp06JD4ApOU2pkdFHykVuocfiI7Mp9zDjRuHMdqk1tJSQkLFy5k5cqVNGzYkObNm+80vra7oAsLC1m8eDHg72a8bNkyZs2aRcuWLekY561gkXjJsiyu+fk1XPz6xdzx3zs49+Bzd55g2jR/CYwRI2DFCt/PR9TORNBZXVJrtT7bKwPP3qrMbbfdxgsvvED79u0ZPnx4zOY7ffp0evToQY8ePSgqKmLEiBH06NGDW265JWbLEAnCeYecx+6Nd2f26tm89b+3dh55++3+50UXKfREUDuzg/b4SJ3UeM+PQs8uBg0axKBB5eyur6N+/folz01mRWKoXk49rutzHde8dw1/nfhX6hEKOF9+CWPHQl4eDBsWaI3JRu3MDtrjI3VW7T0/c+Yo9IhITFza81JaN2zN1BVT+anFT37gHXf421Ocfz7suWewBUrSqjL4mNlTZrbGzOYmoiBJTdUKPwcfDNdfr9AjInXWKK8Rfzz8jwAs22sZe2zb5q/UnJUFf/pTsMVJUqvOHp/RQGzvaiZpqdzwgyMnHIDM/LV6FHpEJAau7H0lLeq3YH3z9VywfoW/WvO558IBBwRdmiSxKoOPc24i8GMCapE0EB1+umZ9QcGiRf7sCvCBR6FHRGKgab2m/P4wfzuKh/sU+ys033xzwFVJslMfH4m5cPg5d142D074iX23bsWNGRN0WSKShq4+7GqyS7KZdFARkx+4Hg48MOiSJMnF7KwuMxsKDAVo27YtEyZMiNWsK1RYWJiQ5SRSuqzTPh9N47kxZWQ5uPVomNvwE64Yf0hs7+0VoVmzZmzcuDEu845WWlqasGUlSqzXacuWLXH5HAfRzkD6fC8jpcs6WUkJrb5qxZoD1/CHV//APw7+R9yWlch2BtTWVKW27UzMgo9z7jHgMYBevXq5fv36xWrWFZowYQKJWE4ipcU6FRT4vjzO8a/Ou3Fr3+9xK1+mQ8eOsb+xaciCBQtiehuJysT6lhXJINbrVL9+/Uovj19bQbQzkCbfyyhps05Dh/L6u1u5qKkxlank7ZtHnw594rKoRLYzoLamKrVtZ3SoS2Ir6jo9BW260OmzvWp+kUMRkaosWQJPP03PH9fT9NsWANz44Y1qY6RS1Tmd/T/AZOBAM1tuZr+Nf1mSsubP3+U6Pc2+a1a7KzyLiFTmb3+DkhI+bNOGjWv2pEX9Fny89GPe//r9oCuTJFads7p+45zbwzmX65xr75x7MhGFSYoaORI+/HCXU9ZrfXsLEZHyLFgATz8N2dk826kT2cXZXH/E9YD2+kjldKhL6u6112D5cv/cDI49ttxT1hV+KnbttdfSv3/yXS5r4sSJnHLKKbRr1w4zY/To0UGXJOINH+73Ll9yCcsbNgTgd4f9jj0a78GMVTN4ecHLAReYfNTOeAo+UjcFBXDGGXDMMbBhQ5WTK/yUb9q0afTu3TvoMnZRWFjIQQcdxH333UeDBg2CLkfE+/RTv8HVsKG/C3tIw9yG/LnvnwH48/g/U1JWElSFSUntjKfgI7UX2ZH53HOhmj31FX52KC4uJi8vj4kTJ/LXv/4VM6Nbt25Bl7XdiSeeyKhRoxgwYABZWWouJEl8+SU0aADXXAO7777TqN/+7Lfs02IfFq5dyHOznwuowOSidmZnasmkdup4l3WFHy87O5vJkycDMHXqVFatWsWkSZN2mmbUqFE0bty40scnn3wSRPkiwRgyBBYvhuuu22VUXnYet/a7FYARE0ZQVFyU6OqSjtqZncXsOj6SQeoYesLC4efMF8/knin3AMT2Oj+VzefRR2HoUP/8scfg0ksrnjYykPXsSZPPP696umrKyspi1apVNGnShEMPPbTcdb/ssssYOHBgpfNp165djZctktIqufv6bw76DXf+905mr57NXZPv4ua+cb6NRZK3NWpndqY9PlIzc+fGJPSEac8PzJw5k/z8/AoDX8uWLdlvv/0qfVR1XPzmm2/GzCp8NG3aNC2u4itprqAAnnjC34y0EtlZ2dzzK78x9fdJf2flxpWJqC6pJUM7Y2ZJsddIe3ykZrp123ETwBjdZT1ue36qG6CGDt2xRVaVGTNifjXVWbNmVXr10VGjRjFq1KhK5/H2229z1FFHVTh+2LBhnHfeeRWO37RpE126dKm6WJGgrF8PV18Na9ZA69Zw2mmVTn7M3sdweufTeWXhK9z44Y2MPm10/GpLgbYmGdoZgBYtWlReaAIo+Ej1bNsGeXk+6Iwc6YfF8NYTcT/slcRmz57NCSecUOH4WOyCbt26Na1bt65w/MaNG2kYOiVYJCmNHOlDzxFH+LuwV8Mdx9/Bm/97k2dmP8OVh17Joe0OjW+NSSwZ2hkgKe49puAjVSso8Ie1PvgAOnSIaeCJlKnhp6SkhIULF7Jy5UoaNmxI8+bNdxrfsmVLWrZsGUhthYWFLF68GICysjKWLVvGrFmzaNmyJR07dgykJslA8+fDAw/4tif8sxr2bbkvww4bxj//+0+GvTuMSUMmpX17UhG1Mzuoj49ULtyR+csvYezYuC8uE/v83Hbbbbzwwgu0b9+e4cOHB13OTqZPn06PHj3o0aMHRUVFjBgxgh49enDLLbcEXZpkCuf8Ia7SUt8xuIY3pbyp7020adSG/377XwrmFcSpyOSndmYH7fGRikWfvXX11QlZbKbt+Rk0aBCDBg0Kuoxy9evXL+2DpyS5sWP9bXBatPD35qqhpvWactuxt3HJ65dw3fvXcdIBJ9E4r3EcCk1uamd20B4fKV+MTlmvrUzc8yMi5QjfvuBvf4NWrWo1iyHdh9Bzj54s37CcEeNHVP0GSWsKPrKrgENPmMKPiPDKK/DMM5Vf/6YK2VnZPHrSo2RZFvdOvZeZq2bGsEBJNQo+sqtFiwIPPWEKPyIZLicHLrgAsrPrNJuee/bk6t5XU+bKGPrGUErLSmNUoKQaBR/Z1S23wPjxgYeeMIUfkQxTWgo33QTffRfT2f7lmL/Qvml7pq+czkPTHorpvCV1KPiI9+qrsGzZjtf9+iVF6AmrTvhRGEoO+jtInd1/P4waBb/8Za1uBVORJvWa8OAJDwJw00c3sXzD8hrPQ5/v5FCXv4OCj/g+PWee6cPOunVBV1OhysJPbm4uRUW6GWEyKCoqIjc3N+gyJFV9882Oq8OPGhXzDbBTO5/KaZ1Po3BbIVe9dVWN/oGqnUkexcXF5OTU7sR0BZ9MF9mR+fzzoVmzoCuqVEXhp02bNqxYsYLNmzdriywgzjk2b97MihUraNOmTdDlSCpyzt/SYfNmOOccOOmkuCzmgRMeoEleE15b9Br/nvPvar9P7UxyKCsrY/Xq1TSr5f8rXccnkyXJ2Vs1VdF1fgBWrlxJcXFxXJe/ZcsW6tevH9dlJFqs1ik3N5e2bdvStGnTGFQlGefpp/0V4lu2hPvui9ti2jdtz7397+W3437LVW9fxdF7HU3HZlVfITj8uU5EOwNqayrTqFGjKm+PUREFn0yVoqEnrKLwk4h/uBMmTKj0Zn+pKB3XSVLM11/D73/vn993H8R5r+GQ7kN4bdFrjFs0jsGvDuaDCz4gy6o+CNK0adOEBft0/F4mwzrpUFcmmj8/pUNPmM72EkkjEybApk0wYAAk4ArDZsbjJz/Obg13Y/yS8dw/9f64L1OSg4JPJura1YedP/85ZUNPmMKPSJq46CKYOBEeeSRhbVKbRm14/OTHAbjhgxuY//38hCxXgqXgk0m2bt3x/M9/hr/8JaVDT5jCj0gKi/yuHnlkrW9LUVundj6VId2HsLV0K+eNPY8tJVsSunxJPAWfTFFQAAcdBEuXBl1JXCj8iKSgH36A3r3h/fcDLePe/veyT4t9mPndTK5595pAa5H4U/DJBOGOzIsX+/vepCmFH5EUUlYGF14I06fDiBExvVBhTTWt15QXB7xIXnYeD09/mIK5BYHVIvGn4JPuos/eCp81kaYUfkRSxB13wJtvQosW8J//BH7YveeePbnnV/4M0Ytfv5hFaxcFWo/Ej4JPOkvxU9ZrS+FHJMm9+y7ceKN//uyz0KlTsPWEXN7rcs7udjaF2wo5reA01m9ZH3RJEgcKPukqQ0NPmMKPSJL68kt/VeayMn+SRZyuzlwb4VPcu+3WjYVrF3Lu2HN1F/c0pOCTrr7+OmNDT5jCj0iSKS311+lZtw5OO823TUmmSb0mjPvNOFo2aMlb/3uLmz66KeiSJMYUfNLV8OHw8ccZG3rCFH5Ekkh2NjzwABx7LDz3HGQl57+gfVrsw0tnvUS2ZXP7p7fzxOdPBF2SxFByfuqkdl59FZYs2fG6b9+MDj1hCj8iSeToo/39uBo3DrqSSh2797E8dOJDAFz2xmW88eUbAVcksaLgky4KCuDMM6FfP/jpp6CrSToKPyIBGjECxo3b8TpFNsgu7XUpNx11E6WulIEvDWTK8ilBlyQxoOCTDiI7Ml94ITRvHnRFSUnhRyQAo0b5q8QPHAgrVwZdTY399Zi/Mrj7YIpKijjx+ROZ/d3soEuSOlLwSXUZfvZWTSn8iCTQHXfATTf5NunJJ2HPPYOuqMbMjMdOeoyTDziZn7b8xHHPHcfcNXODLkvqQMEnlSn01IrCj0gC3H03/OlPvk166qmE3HE9XnKzc3nprJc4cf8TWbt5Lcc+cyzz1swLuiypJQWfVLVwoW9IFHpqReFHJE6c823SNaF7Xj32GAweHGhJsVAvpx4vD3yZX+77S77f/D19R/dl6vKpQZcltaDgk6o6d4a//U2hpw4UfkTiYPlyuO8+f+r600/DxRcHXVHM1M+pz6tnv8rJB5zMj0U/8otnf8F7X70XdFlSQwo+qWbr1h3Pb7gBbr1VoacOFH5EYqxDB3j9dXj55bTY0xOtQW4Dxp49lgvzL2RT8SZ+/X+/5vEZjwddltSAgk8qKSiALl38VZklZhR+ROroq6/g+ed3vO7bF049Nbh64iwnK4enTn2KP/X5EyVlJQx9YyhXvXUVxaXFQZcm1aDgkyrCHZm/+cZfqFBiSuFHpJZefRUOPRQuuMBfLT5DZFkWtx9/O6NPHU1edh4PTXuIY589lmXrlwVdmlRBwScVRJ+99Yc/BF1RWlL4EamBzZvhssvg9NP9RVNPPBF69Ai6qoS7sPuFfDz4Y/ZovAeTlk0i/5F8xswfE3RZUgkFn2SnU9YTSuFHpBo++AC6d4dHH4W8PLjnHnjtNWjaNOjKAnF4+8OZfdlsTjrgJNZtWcdZL53FOWPOYdXGVUGXJuVQ8ElmCj2BUPgRqcRDD8Hxx8P//gfdusFnn8GwYUl7w9FE2a3Rbow7ZxwPnvAgDXIaUDCvgM4PdeaBqQ+wrXRb0OVJhMz+pCa7ZcsUegKi8CMSoaxsx/PTT4fdd4e//x0+/xzy84OrK8mYGVf2vpL5V87npANOYsPWDVz9ztV0frAzz8x6hpKykqBLFKoZfMysv5ktMrPFZnZDvIuSkOuug08+UegJiMKPZLzp02HIEPjZz6Ak9E97zz39maU33OAPc8ku9mq+F+POGccrZ79C59ad+WbdNwx+bTD73b8f/5j0D77f9H3QJWa0KoOPmWUDDwEnAF2B35hZ13gXlqlaT5zoTw0NO/JIhZ4AKfxIRikrg5kz/d3UDznEn601ejTMng0ffbRjugYNAisxVZgZp3U+jbmXz+XZ055lv5b7sXT9UoZ/OJz297Tn1//3a574/Am+K/wu6FIzTk41pukNLHbOfQ1gZi8ApwLzK3pD102bYNq0XUeYQa9eO17PnQtFReXPpE0b6NTJP9+40d+iIUqThQuhUSN/nLlhQz/w66/hhx/Kn2fjxv46OOC/4DNmVLQKsPfe0Lq1f756tT/sVJ5YrVNJCXz4Id1uvRUef9w3NC1bVlyfJEw4/Jz54pncM+UeFrRdgO1tNMptFHRpMbNww0IarUit9em0ZYvvXwL+NgmRWrSAAw7wz7du9f/Mw6Kn7dIFmjf3z5cuhRUrdllW07lzoUkT6Nlzx8CpU6G4guu2dOrkL+QHsHYtzK+wuYSf/xxyc/3zOXPgxx/Ln651azjoIP+8qAgmT654nvn50KqVf754MSxZssskLWbP9ss94gg/4PvvYb/9YMOGHRM1bw4XXQSXX+7HSY1lZ2Vzfv75DDpkEO8ufpeHpj3EW/97a/sDYO/me3NY+8Po3KozHZt1ZM8me5KXnccX676g3rf1yM7KxkiPDeBkaGusqq1XMxsA9HfOXRx6fT5wmHPuqkreVO5Mi804vm/f7a+fmj6dfTZtKncWY/fck/v33x+AbuvX89CsWRUubkjPnnzTuDEANyxcSP/Vq8udbm7TplwVOt0yp6yMDz75pMJ5/uPAA3ln990BOH3FCn6/eHG508VjnUZ36sToTp3SYk/PrFmzKCkpoVdkOExRa1utZf5B83FZ2uNTJyOZ4Zyr8wfig5wcd1xpabnjPm7dmhHdugGw+5YtvDC14nsqXXfwwUwLbWRc/PXXnPftt+VO9129epxz+OHbX7/26ac0Kym/z8bje+3F86GNnL7ff89fKgk+p/bpw/pQ8PnnnDn0/umnhK3Ttw0acH7v3v6Fc4yZMoVSM6a2bMmk1q2Z2bw5xSnQaTnV2pltedtY22ota3dby/pm6ynLKav6TVIzlbQz1dnjU95/311afjMbCgwFmGZGg/r1d3lTiRnr1q3b/vrL3FyKKthlutS57dOuKSpiXjnTuVBxazdtYl2oAfoGyp0WYHF29vZ55jhX4XQAK7du3T7tim3bKpw2luu0rF493m7alInNmsH69RXWlkpKSkpwEeudynLW5bDfD/vxQ4cf2NJyC678fJ+awl+mBCiigj2i1RDZzjyYlcXuEd8hF7Gh8HXE9zKnuJg54T3C4Wkjnn9XVLR92iVlZcyOmhbAOccPeXk7fY6/aNCARhUEr6WlpTvaj61bmdGo4i3cHzdsYGN2NgALcnLIqmDaRVlZ2+eZXVzMZ6GNvfKs3LJl+7SLnWNKedM6R2FOzk7rdPoBB2yvBdh5708SS8V2puGahnRc0BFnji1NtrC5xWa2NdpGcYNiiusX48z5NiYLtTW1UGk745yr9AH8HHg34vVwYHhl7+nZs6dLhPHjxydkOYmUbut09NFHu/z8/KDLiKl0+xs5l9h1Aqa7Ktqd6jwS1c44p795skvHdsa59PobhSVqnSprZ6qzD3MasL+Z7W1mecA5wLi6ZTERERGRxKvyUJdzrsTMrgLeBbKBp5xz8+JemYiIiEiMVaePD865t4C34lyLiIiISFwlf3d9ERERkRhR8BEREZGMoeAjIiIiGUPBR0RERDKGgo+IiIhkDAUfERERyRgKPiIiIpIxFHxEREQkYyj4iIiISMZQ8BEREZGMoeAjIiIiGUPBR0RERDKGgo+IiIhkDAUfERERyRgKPiIiIpIxFHxEREQkYyj4iIiISMZQ8BEREZGMoeAjIiIiGUPBR0RERDKGgo+IiIhkDHPOxX6mZt8DS2M+4121BtYmYDmJpHVKfum2PpDYderknNutrjNJYDsD+pungnRbH9A61UWF7Uxcgk+imNl051yvoOuIJa1T8ku39YH0XKdYSsffT7qtU7qtD2id4kWHukRERCRjKPiIiIhIxkj14PNY0AXEgdYp+aXb+kB6rlMspePvJ93WKd3WB7ROcZHSfXxEREREaiLV9/iIiIiIVJuCj4iIiGSMlA8+ZnaHmS00szlm9oqZNQ+6proys7PMbJ6ZlZlZyp7KaGb9zWyRmS02sxuCrqeuzOwpM1tjZnODriVWzKyDmY03swWhz9zvg64pGamdSW5qa5JfMrU1KR98gPeBg5xzhwBfAsMDricW5gJnABODLqS2zCwbeAg4AegK/MbMugZbVZ2NBvoHXUSMlQDXOOe6AIcDV6bB3yke1M4kKbU1KSNp2pqUDz7OufeccyWhl1OA9kHWEwvOuQXOuUVB11FHvYHFzrmvnXPbgBeAUwOuqU6ccxOBH4OuI5acc6ucc5+Hnm8EFgDtgq0q+aidSWpqa1JAMrU1KR98olwEvB10EQL4D/S3Ea+Xo3+oSc3M9gJ6AFMDLiXZqZ1JLmprUkzQbU1OEAutKTP7ANi9nFE3OedeC01zE35X2vOJrK22qrNOKc7KGaZrJyQpM2sMvAwMc85tCLqeIKidSVlqa1JIMrQ1KRF8nHPHVTbezC4ETgJ+4VLkwkRVrVMaWA50iHjdHlgZUC1SCTPLxTdEzzvnxgZdT1DUzqQstTUpIlnampQ/1GVm/YHrgVOcc5uDrke2mwbsb2Z7m1kecA4wLuCaJIqZGfAksMA5d3fQ9SQrtTNJTW1NCkimtiblgw/wINAEeN/MZpnZI0EXVFdmdrqZLQd+DrxpZu8GXVNNhTqCXgW8i+/E9qJzbl6wVdWNmf0HmAwcaGbLzey3QdcUA0cA5wPHhr4/s8zsxKCLSkJqZ5KU2pqUkTRtjW5ZISIiIhkjHfb4iIiIiFSLgo+IiIhkDAUfERERyRgKPiIiIpIxFHxEREQkYyj4SFyZ2TOhO/G+EnQtIpK+1NZIdSn4SFw55y4EJjvnTg+qBjO7zczGB7V8EYk/tTVSXQo+kgm6A7MCrkFE0l931NYkPQUfSTlmNtrMRtbgLd2BmfGpRkTSldqa9KTgk0bM+5OZLTKzIjNbY2Yvx2jeg83MheabFxr2UmjYk6HXTcysJDTszErmdUpoGmdmx4WGHW1mZaFhA2JRc2i+uwF7AqVm9qGZbQpdKr13rJYhkmnU1pS7LLU1KULBJ71cBwwBrgA6A6cA70dPZGY3mllhFY+jot4WPm5dH/hZ6PkRoZ/hafsA2YADPq6oSOfcOODR0MvHzWx34CnAgNHOuTE1WOeq9Aj9vAb4C7725cBLZpYTw+WIZBK1NbtSW5Mi9MdIL/2Bt5xzH4ZeLwWmlDPdI8CLVcxrReQL59xSM1sC7AUcaWbfA3sAG/B3Rm7DjkZprnNubRXz/yPQDzgQf0y8LfAV8Lsq3ldT3YFi4Azn3BIAM/sTMA/YF1gU4+WJZAK1NbvqjtqalKDgk17GAXeZWT7wEvByeY2Cc+5H4MdazH8CMBi/9fV9aNi/gOuBI9nRGEWf1bBLA+Oc22xmg4Cp+IaoDBjknCuMntbMbgRujBhUD3Bmdm3EsBOcc5+UU3MPYGy4IQrZHPqZXc70IlI1tTW7UluTInSoK4045+7Fb9W8g98F/ZWZdYmerpa7n2FHI3MEvvHZCtyH3918LBA+lj0hqq6iCkpuz44GIQvYp4LpHsFvTYUf48oZNr2C93YHPo8a1gsoBBZX8B4RqYTamnJ1R21NSjDnXNA1SByYWS7wA3CJc64galxLoGUVs1gR3YiYWQdgWejlevxu5iPN7Av8bunG+IapdWhLr7L6dge+AFrjz4LoAawDDnHOfVvFe0cDS5xzI6uYriF+9/ifnXN/Dw0z4BPgC+fc5ZW9X0SqprZGbU2q0aGuNGFm1wOrgc+AEuBCYBtRW0RQ+93Pzrlvzexr/NZSM+DT0KhJwEGh53Oq0RAZ8DS+IZqG3209ATgceNbMfuGcK6tpfeU4BN84XmD+omJrgZFAR+C0GMxfJOOorSmX2poUokNd6aMe/vj3dOC/QD7wC+fc6hgvJ/KY+qTQz8jj3ROqMY/f4TtHbgUudM5txTeem/GdEK+pc5Ved3wnxpvwHSznAA2Aw6rRIVJEyqe2ZlfdUVuTMnSoS0RERDKG9viIiIhIxlDwERERkYyh4CMiIiIZQ8FHREREMoaCj4iIiGQMBR8RERHJGAo+IiIikjEUfERERCRjKPiIiIhIxlDwERERkYzx/4M2Ac86OL3aAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# extra code – this cell generates and saves Figure 5–13\n", "\n", "s = np.linspace(-2.5, 2.5, 200)\n", "hinge_pos = np.where(1 - s < 0, 0, 1 - s) # max(0, 1 - s)\n", "hinge_neg = np.where(1 + s < 0, 0, 1 + s) # max(0, 1 + s)\n", "\n", "titles = (r\"Hinge loss = $max(0, 1 - s\\,t)$\", \"Squared Hinge loss\")\n", "\n", "fix, axs = plt.subplots(1, 2, sharey=True, figsize=(8.2, 3))\n", "\n", "for ax, loss_pos, loss_neg, title in zip(\n", " axs, (hinge_pos, hinge_pos ** 2), (hinge_neg, hinge_neg ** 2), titles):\n", " ax.plot(s, loss_pos, \"g-\", linewidth=2, zorder=10, label=\"$t=1$\")\n", " ax.plot(s, loss_neg, \"r--\", linewidth=2, zorder=10, label=\"$t=-1$\")\n", " ax.grid(True)\n", " ax.axhline(y=0, color='k')\n", " ax.axvline(x=0, color='k')\n", " ax.set_xlabel(r\"$s = \\mathbf{w}^\\intercal \\mathbf{x} + b$\")\n", " ax.axis([-2.5, 2.5, -0.5, 2.5])\n", " ax.legend(loc=\"center right\")\n", " ax.set_title(title)\n", " ax.set_yticks(np.arange(0, 2.5, 1))\n", " ax.set_aspect(\"equal\")\n", "\n", "save_fig(\"hinge_plot\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Extra Material" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Linear SVM classifier implementation using Batch Gradient Descent" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = (iris.target == 2)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "from sklearn.base import BaseEstimator\n", "\n", "class MyLinearSVC(BaseEstimator):\n", " def __init__(self, C=1, eta0=1, eta_d=10000, n_epochs=1000,\n", " random_state=None):\n", " self.C = C\n", " self.eta0 = eta0\n", " self.n_epochs = n_epochs\n", " self.random_state = random_state\n", " self.eta_d = eta_d\n", "\n", " def eta(self, epoch):\n", " return self.eta0 / (epoch + self.eta_d)\n", " \n", " def fit(self, X, y):\n", " # Random initialization\n", " if self.random_state:\n", " np.random.seed(self.random_state)\n", " w = np.random.randn(X.shape[1], 1) # n feature weights\n", " b = 0\n", "\n", " t = np.array(y, dtype=np.float64).reshape(-1, 1) * 2 - 1\n", " X_t = X * t\n", " self.Js = []\n", "\n", " # Training\n", " for epoch in range(self.n_epochs):\n", " support_vectors_idx = (X_t.dot(w) + t * b < 1).ravel()\n", " X_t_sv = X_t[support_vectors_idx]\n", " t_sv = t[support_vectors_idx]\n", "\n", " J = 1/2 * (w * w).sum() + self.C * ((1 - X_t_sv.dot(w)).sum() - b * t_sv.sum())\n", " self.Js.append(J)\n", "\n", " w_gradient_vector = w - self.C * X_t_sv.sum(axis=0).reshape(-1, 1)\n", " b_derivative = -self.C * t_sv.sum()\n", " \n", " w = w - self.eta(epoch) * w_gradient_vector\n", " b = b - self.eta(epoch) * b_derivative\n", " \n", "\n", " self.intercept_ = np.array([b])\n", " self.coef_ = np.array([w])\n", " support_vectors_idx = (X_t.dot(w) + t * b < 1).ravel()\n", " self.support_vectors_ = X[support_vectors_idx]\n", " return self\n", "\n", " def decision_function(self, X):\n", " return X.dot(self.coef_[0]) + self.intercept_[0]\n", "\n", " def predict(self, X):\n", " return self.decision_function(X) >= 0" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ True],\n", " [False]])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "C = 2\n", "svm_clf = MyLinearSVC(C=C, eta0 = 10, eta_d = 1000, n_epochs=60000,\n", " random_state=2)\n", "svm_clf.fit(X, y)\n", "svm_clf.predict(np.array([[5, 2], [4, 1]]))" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(range(svm_clf.n_epochs), svm_clf.Js)\n", "plt.axis([0, svm_clf.n_epochs, 0, 100])\n", "plt.xlabel(\"Epochs\")\n", "plt.ylabel(\"Loss\")\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-15.56761653] [[[2.28120287]\n", " [2.71621742]]]\n" ] } ], "source": [ "print(svm_clf.intercept_, svm_clf.coef_)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-15.51721253] [[2.27128546 2.71287145]]\n" ] } ], "source": [ "svm_clf2 = SVC(kernel=\"linear\", C=C)\n", "svm_clf2.fit(X, y.ravel())\n", "print(svm_clf2.intercept_, svm_clf2.coef_)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "yr = y.ravel()\n", "fig, axes = plt.subplots(ncols=2, figsize=(11, 3.2), sharey=True)\n", "plt.sca(axes[0])\n", "plt.plot(X[:, 0][yr==1], X[:, 1][yr==1], \"g^\", label=\"Iris virginica\")\n", "plt.plot(X[:, 0][yr==0], X[:, 1][yr==0], \"bs\", label=\"Not Iris virginica\")\n", "plot_svc_decision_boundary(svm_clf, 4, 6)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.title(\"MyLinearSVC\")\n", "plt.axis([4, 6, 0.8, 2.8])\n", "plt.legend(loc=\"upper left\")\n", "plt.grid()\n", "\n", "plt.sca(axes[1])\n", "plt.plot(X[:, 0][yr==1], X[:, 1][yr==1], \"g^\")\n", "plt.plot(X[:, 0][yr==0], X[:, 1][yr==0], \"bs\")\n", "plot_svc_decision_boundary(svm_clf2, 4, 6)\n", "plt.xlabel(\"Petal length\")\n", "plt.title(\"SVC\")\n", "plt.axis([4, 6, 0.8, 2.8])\n", "plt.grid()\n", "\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-12.52988101 1.94162342 1.84544824]\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import SGDClassifier\n", "\n", "sgd_clf = SGDClassifier(loss=\"hinge\", alpha=0.017, max_iter=1000, tol=1e-3,\n", " random_state=42)\n", "sgd_clf.fit(X, y)\n", "\n", "m = len(X)\n", "t = np.array(y).reshape(-1, 1) * 2 - 1 # -1 if y == 0, or +1 if y == 1\n", "X_b = np.c_[np.ones((m, 1)), X] # Add bias input x0=1\n", "X_b_t = X_b * t\n", "sgd_theta = np.r_[sgd_clf.intercept_[0], sgd_clf.coef_[0]]\n", "print(sgd_theta)\n", "support_vectors_idx = (X_b_t.dot(sgd_theta) < 1).ravel()\n", "sgd_clf.support_vectors_ = X[support_vectors_idx]\n", "sgd_clf.C = C\n", "\n", "plt.figure(figsize=(5.5, 3.2))\n", "plt.plot(X[:, 0][yr==1], X[:, 1][yr==1], \"g^\")\n", "plt.plot(X[:, 0][yr==0], X[:, 1][yr==0], \"bs\")\n", "plot_svc_decision_boundary(sgd_clf, 4, 6)\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.title(\"SGDClassifier\")\n", "plt.axis([4, 6, 0.8, 2.8])\n", "plt.grid()\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise solutions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. to 8." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. The fundamental idea behind Support Vector Machines is to fit the widest possible \"street\" between the classes. In other words, the goal is to have the largest possible margin between the decision boundary that separates the two classes and the training instances. When performing soft margin classification, the SVM searches for a compromise between perfectly separating the two classes and having the widest possible street (i.e., a few instances may end up on the street). Another key idea is to use kernels when training on nonlinear datasets. SVMs can also be tweaked to perform linear and nonlinear regression, as well as novelty detection.\n", "2. After training an SVM, a _support vector_ is any instance located on the \"street\" (see the previous answer), including its border. The decision boundary is entirely determined by the support vectors. Any instance that is _not_ a support vector (i.e., is off the street) has no influence whatsoever; you could remove them, add more instances, or move them around, and as long as they stay off the street they won't affect the decision boundary. Computing the predictions with a kernelized SVM only involves the support vectors, not the whole training set.\n", "3. SVMs try to fit the largest possible \"street\" between the classes (see the first answer), so if the training set is not scaled, the SVM will tend to neglect small features (see Figure 5–2).\n", "4. You can use the `decision_function()` method to get confidence scores. These scores represent the distance between the instance and the decision boundary. However, they cannot be directly converted into an estimation of the class probability. If you set `probability=True` when creating an `SVC`, then at the end of training it will use 5-fold cross-validation to generate out-of-sample scores for the training samples, and it will train a `LogisticRegression` model to map these scores to estimated probabilities. The `predict_proba()` and `predict_log_proba()` methods will then be available.\n", "5. All three classes can be used for large-margin linear classification. The `SVC` class also supports the kernel trick, which makes it capable of handling nonlinear tasks. However, this comes at a cost: the `SVC` class does not scale well to datasets with many instances. It does scale well to a large number of features, though. The `LinearSVC` class implements an optimized algorithm for linear SVMs, while `SGDClassifier` uses Stochastic Gradient Descent. Depending on the dataset `LinearSVC` may be a bit faster than `SGDClassifier`, but not always, and `SGDClassifier` is more flexible, plus it supports incremental learning.\n", "6. If an SVM classifier trained with an RBF kernel underfits the training set, there might be too much regularization. To decrease it, you need to increase `gamma` or `C` (or both).\n", "7. A Regression SVM model tries to fit as many instances within a small margin around its predictions. If you add instances within this margin, the model will not be affected at all: it is said to be _ϵ-insensitive_.\n", "8. The kernel trick is mathematical technique that makes it possible to train a nonlinear SVM model. The resulting model is equivalent to mapping the inputs to another space using a nonlinear transformation, then training a linear SVM on the resulting high-dimensional inputs. The kernel trick gives the same result without having to transform the inputs at all." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 9." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Exercise: Train a `LinearSVC` on a linearly separable dataset. Then train an `SVC` and a `SGDClassifier` on the same dataset. See if you can get them to produce roughly the same model._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the Iris dataset: the Iris Setosa and Iris Versicolor classes are linearly separable." ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [], "source": [ "from sklearn import datasets\n", "\n", "iris = datasets.load_iris(as_frame=True)\n", "X = iris.data[[\"petal length (cm)\", \"petal width (cm)\"]].values\n", "y = iris.target\n", "\n", "setosa_or_versicolor = (y == 0) | (y == 1)\n", "X = X[setosa_or_versicolor]\n", "y = y[setosa_or_versicolor]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's build and train 3 models:\n", "* Remember that `LinearSVC` uses `loss=\"squared_hinge\"` by default, so if we want all 3 models to produce similar results, we need to set `loss=\"hinge\"`.\n", "* Also, the `SVC` class uses an RBF kernel by default, so we need to set `kernel=\"linear\"` to get similar results as the other two models.\n", "* Lastly, the `SGDClassifier` class does not have a `C` hyperparameter, but it has another regularization hyperparameter called `alpha`, so we can tweak it to get similar results as the other two models." ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [], "source": [ "from sklearn.svm import SVC, LinearSVC\n", "from sklearn.linear_model import SGDClassifier\n", "from sklearn.preprocessing import StandardScaler\n", "\n", "C = 5\n", "alpha = 0.05\n", "\n", "scaler = StandardScaler()\n", "X_scaled = scaler.fit_transform(X)\n", "\n", "lin_clf = LinearSVC(loss=\"hinge\", C=C, dual=True, random_state=42).fit(X_scaled, y)\n", "svc_clf = SVC(kernel=\"linear\", C=C).fit(X_scaled, y)\n", "sgd_clf = SGDClassifier(alpha=alpha, random_state=42).fit(X_scaled, y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's plot the decision boundaries of these three models:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def compute_decision_boundary(model):\n", " w = -model.coef_[0, 0] / model.coef_[0, 1]\n", " b = -model.intercept_[0] / model.coef_[0, 1]\n", " return scaler.inverse_transform([[-10, -10 * w + b], [10, 10 * w + b]])\n", "\n", "lin_line = compute_decision_boundary(lin_clf)\n", "svc_line = compute_decision_boundary(svc_clf)\n", "sgd_line = compute_decision_boundary(sgd_clf)\n", "\n", "# Plot all three decision boundaries\n", "plt.figure(figsize=(11, 4))\n", "plt.plot(lin_line[:, 0], lin_line[:, 1], \"k:\", label=\"LinearSVC\")\n", "plt.plot(svc_line[:, 0], svc_line[:, 1], \"b--\", linewidth=2, label=\"SVC\")\n", "plt.plot(sgd_line[:, 0], sgd_line[:, 1], \"r-\", label=\"SGDClassifier\")\n", "plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"bs\") # label=\"Iris versicolor\"\n", "plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"yo\") # label=\"Iris setosa\"\n", "plt.xlabel(\"Petal length\")\n", "plt.ylabel(\"Petal width\")\n", "plt.legend(loc=\"upper center\")\n", "plt.axis([0, 5.5, 0, 2])\n", "plt.grid()\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Close enough!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 10." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Exercise: Train an SVM classifier on the Wine dataset, which you can load using `sklearn.datasets.load_wine()`. This dataset contains the chemical analysis of 178 wine samples produced by 3 different cultivators: the goal is to train a classification model capable of predicting the cultivator based on the wine's chemical analysis. Since SVM classifiers are binary classifiers, you will need to use one-versus-all to classify all 3 classes. What accuracy can you reach?_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's fetch the dataset, look at its description, then split it into a training set and a test set:" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import load_wine\n", "\n", "wine = load_wine(as_frame=True)" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ".. _wine_dataset:\n", "\n", "Wine recognition dataset\n", "------------------------\n", "\n", "**Data Set Characteristics:**\n", "\n", " :Number of Instances: 178 (50 in each of three classes)\n", " :Number of Attributes: 13 numeric, predictive attributes and the class\n", " :Attribute Information:\n", " \t\t- Alcohol\n", " \t\t- Malic acid\n", " \t\t- Ash\n", "\t\t- Alcalinity of ash \n", " \t\t- Magnesium\n", "\t\t- Total phenols\n", " \t\t- Flavanoids\n", " \t\t- Nonflavanoid phenols\n", " \t\t- Proanthocyanins\n", "\t\t- Color intensity\n", " \t\t- Hue\n", " \t\t- OD280/OD315 of diluted wines\n", " \t\t- Proline\n", "\n", " - class:\n", " - class_0\n", " - class_1\n", " - class_2\n", "\t\t\n", " :Summary Statistics:\n", " \n", " ============================= ==== ===== ======= =====\n", " Min Max Mean SD\n", " ============================= ==== ===== ======= =====\n", " Alcohol: 11.0 14.8 13.0 0.8\n", "<<26 more lines>>\n", "wine.\n", "\n", "Original Owners: \n", "\n", "Forina, M. et al, PARVUS - \n", "An Extendible Package for Data Exploration, Classification and Correlation. \n", "Institute of Pharmaceutical and Food Analysis and Technologies,\n", "Via Brigata Salerno, 16147 Genoa, Italy.\n", "\n", "Citation:\n", "\n", "Lichman, M. (2013). UCI Machine Learning Repository\n", "[https://archive.ics.uci.edu/ml]. Irvine, CA: University of California,\n", "School of Information and Computer Science. \n", "\n", ".. topic:: References\n", "\n", " (1) S. Aeberhard, D. Coomans and O. de Vel, \n", " Comparison of Classifiers in High Dimensional Settings, \n", " Tech. Rep. no. 92-02, (1992), Dept. of Computer Science and Dept. of \n", " Mathematics and Statistics, James Cook University of North Queensland. \n", " (Also submitted to Technometrics). \n", "\n", " The data was used with many others for comparing various \n", " classifiers. The classes are separable, though only RDA \n", " has achieved 100% correct classification. \n", " (RDA : 100%, QDA 99.4%, LDA 98.9%, 1NN 96.1% (z-transformed data)) \n", " (All results using the leave-one-out technique) \n", "\n", " (2) S. Aeberhard, D. Coomans and O. de Vel, \n", " \"THE CLASSIFICATION PERFORMANCE OF RDA\" \n", " Tech. Rep. no. 92-01, (1992), Dept. of Computer Science and Dept. of \n", " Mathematics and Statistics, James Cook University of North Queensland. \n", " (Also submitted to Journal of Chemometrics).\n", "\n" ] } ], "source": [ "print(wine.DESCR)" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(\n", " wine.data, wine.target, random_state=42)" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
alcoholmalic_acidashalcalinity_of_ashmagnesiumtotal_phenolsflavanoidsnonflavanoid_phenolsproanthocyaninscolor_intensityhueod280/od315_of_diluted_winesproline
213.162.362.6718.6101.02.803.240.302.815.681.033.171185.0
10012.082.081.7017.597.02.232.170.261.403.301.272.96710.0
12212.424.432.7326.5102.02.202.130.431.712.080.923.12365.0
15412.581.292.1020.0103.01.480.580.531.407.600.581.55640.0
5113.831.652.6017.294.02.452.990.222.295.601.243.371265.0
\n", "
" ], "text/plain": [ " alcohol malic_acid ash alcalinity_of_ash magnesium total_phenols \\\n", "2 13.16 2.36 2.67 18.6 101.0 2.80 \n", "100 12.08 2.08 1.70 17.5 97.0 2.23 \n", "122 12.42 4.43 2.73 26.5 102.0 2.20 \n", "154 12.58 1.29 2.10 20.0 103.0 1.48 \n", "51 13.83 1.65 2.60 17.2 94.0 2.45 \n", "\n", " flavanoids nonflavanoid_phenols proanthocyanins color_intensity hue \\\n", "2 3.24 0.30 2.81 5.68 1.03 \n", "100 2.17 0.26 1.40 3.30 1.27 \n", "122 2.13 0.43 1.71 2.08 0.92 \n", "154 0.58 0.53 1.40 7.60 0.58 \n", "51 2.99 0.22 2.29 5.60 1.24 \n", "\n", " od280/od315_of_diluted_wines proline \n", "2 3.17 1185.0 \n", "100 2.96 710.0 \n", "122 3.12 365.0 \n", "154 1.55 640.0 \n", "51 3.37 1265.0 " ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.head()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2 0\n", "100 1\n", "122 1\n", "154 2\n", "51 0\n", "Name: target, dtype: int64" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_train.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's start simple, with a linear SVM classifier. It will automatically use the One-vs-All (also called One-vs-the-Rest, OvR) strategy, so there's nothing special we need to do to handle multiple classes. Easy, right?" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "LinearSVC(random_state=42)" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_clf = LinearSVC(dual=True, random_state=42)\n", "lin_clf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oh no! It failed to converge. Can you guess why? Do you think we must just increase the number of training iterations? Let's see:" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "LinearSVC(max_iter=1000000, random_state=42)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_clf = LinearSVC(max_iter=1_000_000, dual=True, random_state=42)\n", "lin_clf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even with one million iterations, it still did not converge. There must be another problem.\n", "\n", "Let's still evaluate this model with `cross_val_score`, it will serve as a baseline:" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n", "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "0.90997150997151" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", "cross_val_score(lin_clf, X_train, y_train).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Well 91% accuracy on this dataset is not great. So did you guess what the problem is?\n", "\n", "That's right, we forgot to scale the features! Always remember to scale the features when using SVMs:" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvc', LinearSVC(random_state=42))])" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_clf = make_pipeline(StandardScaler(),\n", " LinearSVC(dual=True, random_state=42))\n", "lin_clf.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now it converges without any problem. Let's measure its performance:" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9774928774928775" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import cross_val_score\n", "\n", "cross_val_score(lin_clf, X_train, y_train).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice! We get 97.7% accuracy, that's much better." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see if a kernelized SVM will do better. We will use a default `SVC` for now:" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9698005698005698" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svm_clf = make_pipeline(StandardScaler(), SVC(random_state=42))\n", "cross_val_score(svm_clf, X_train, y_train).mean()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's not better, but perhaps we need to do a bit of hyperparameter tuning:" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svc',\n", " SVC(C=9.925589984899778, gamma=0.011986281799901176,\n", " random_state=42))])" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import RandomizedSearchCV\n", "from scipy.stats import loguniform, uniform\n", "\n", "param_distrib = {\n", " \"svc__gamma\": loguniform(0.001, 0.1),\n", " \"svc__C\": uniform(1, 10)\n", "}\n", "rnd_search_cv = RandomizedSearchCV(svm_clf, param_distrib, n_iter=100, cv=5,\n", " random_state=42)\n", "rnd_search_cv.fit(X_train, y_train)\n", "rnd_search_cv.best_estimator_" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9925925925925926" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rnd_search_cv.best_score_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ah, this looks excellent! Let's select this model. Now we can test it on the test set:" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9777777777777777" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rnd_search_cv.score(X_test, y_test)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tuned kernelized SVM performs better than the `LinearSVC` model, but we get a lower score on the test set than we measured using cross-validation. This is quite common: since we did so much hyperparameter tuning, we ended up slightly overfitting the cross-validation test sets. It's tempting to tweak the hyperparameters a bit more until we get a better result on the test set, but this would probably not help, as we would just start overfitting the test set. Anyway, this score is not bad at all, so let's stop here." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 11." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_Exercise: Train and fine-tune an SVM regressor on the California housing dataset. You can use the original dataset rather than the tweaked version we used in Chapter 2. The original dataset can be fetched using `sklearn.datasets.fetch_california_housing()`. The targets represent hundreds of thousands of dollars. Since there are over 20,000 instances, SVMs can be slow, so for hyperparameter tuning you should use much less instances (e.g., 2,000), to test many more hyperparameter combinations. What is your best model's RMSE?_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's load the dataset:" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import fetch_california_housing\n", "\n", "housing = fetch_california_housing()\n", "X = housing.data\n", "y = housing.target" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Split it into a training set and a test set:" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "\n", "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,\n", " random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Don't forget to scale the data!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's train a simple `LinearSVR` first:" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/ageron/miniconda3/envs/homl3/lib/python3.8/site-packages/sklearn/svm/_base.py:1206: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvr', LinearSVR(random_state=42))])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import LinearSVR\n", "\n", "lin_svr = make_pipeline(StandardScaler(), LinearSVR(dual=True, random_state=42))\n", "lin_svr.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It did not converge, so let's increase `max_iter`:" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('linearsvr', LinearSVR(max_iter=5000, random_state=42))])" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lin_svr = make_pipeline(StandardScaler(),\n", " LinearSVR(max_iter=5000, dual=True, random_state=42))\n", "lin_svr.fit(X_train, y_train)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's see how it performs on the training set:" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9595484665813285" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.metrics import mean_squared_error\n", "\n", "y_pred = lin_svr.predict(X_train)\n", "mse = mean_squared_error(y_train, y_pred)\n", "mse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the RMSE:" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.979565447829459" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sqrt(mse)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this dataset, the targets represent hundreds of thousands of dollars. The RMSE gives a rough idea of the kind of error you should expect (with a higher weight for large errors): so with this model we can expect errors close to $98,000! Not great. Let's see if we can do better with an RBF Kernel. We will use randomized search with cross validation to find the appropriate hyperparameter values for `C` and `gamma`:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "RandomizedSearchCV(cv=3,\n", " estimator=Pipeline(steps=[('standardscaler',\n", " StandardScaler()),\n", " ('svr', SVR())]),\n", " n_iter=100,\n", " param_distributions={'svr__C': ,\n", " 'svr__gamma': },\n", " random_state=42)" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.svm import SVR\n", "from sklearn.model_selection import RandomizedSearchCV\n", "from scipy.stats import loguniform, uniform\n", "\n", "svm_reg = make_pipeline(StandardScaler(), SVR())\n", "\n", "param_distrib = {\n", " \"svr__gamma\": loguniform(0.001, 0.1),\n", " \"svr__C\": uniform(1, 10)\n", "}\n", "rnd_search_cv = RandomizedSearchCV(svm_reg, param_distrib,\n", " n_iter=100, cv=3, random_state=42)\n", "rnd_search_cv.fit(X_train[:2000], y_train[:2000])" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Pipeline(steps=[('standardscaler', StandardScaler()),\n", " ('svr', SVR(C=4.63629602379294, gamma=0.08781408196485974))])" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rnd_search_cv.best_estimator_" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.58835648, 0.57468589, 0.58085278, 0.57109886, 0.59853029])" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "-cross_val_score(rnd_search_cv.best_estimator_, X_train, y_train,\n", " scoring=\"neg_root_mean_squared_error\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Looks much better than the linear model. Let's select this model and evaluate it on the test set:" ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.5854732265172222" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_pred = rnd_search_cv.best_estimator_.predict(X_test)\n", "rmse = mean_squared_error(y_test, y_pred, squared=False)\n", "rmse" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So SVMs worked very well on the Wine dataset, but not so much on the California Housing dataset. In Chapter 2, we found that Random Forests worked better for that dataset." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And that's all for today!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.13" }, "nav_menu": {}, "toc": { "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 6, "toc_cell": false, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }