{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from sklearn import datasets, svm, metrics\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "cifre = datasets.load_digits()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      ".. _digits_dataset:\n",
      "\n",
      "Optical recognition of handwritten digits dataset\n",
      "--------------------------------------------------\n",
      "\n",
      "**Data Set Characteristics:**\n",
      "\n",
      "    :Number of Instances: 1797\n",
      "    :Number of Attributes: 64\n",
      "    :Attribute Information: 8x8 image of integer pixels in the range 0..16.\n",
      "    :Missing Attribute Values: None\n",
      "    :Creator: E. Alpaydin (alpaydin '@' boun.edu.tr)\n",
      "    :Date: July; 1998\n",
      "\n",
      "This is a copy of the test set of the UCI ML hand-written digits datasets\n",
      "https://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits\n",
      "\n",
      "The data set contains images of hand-written digits: 10 classes where\n",
      "each class refers to a digit.\n",
      "\n",
      "Preprocessing programs made available by NIST were used to extract\n",
      "normalized bitmaps of handwritten digits from a preprinted form. From a\n",
      "total of 43 people, 30 contributed to the training set and different 13\n",
      "to the test set. 32x32 bitmaps are divided into nonoverlapping blocks of\n",
      "4x4 and the number of on pixels are counted in each block. This generates\n",
      "an input matrix of 8x8 where each element is an integer in the range\n",
      "0..16. This reduces dimensionality and gives invariance to small\n",
      "distortions.\n",
      "\n",
      "For info on NIST preprocessing routines, see M. D. Garris, J. L. Blue, G.\n",
      "T. Candela, D. L. Dimmick, J. Geist, P. J. Grother, S. A. Janet, and C.\n",
      "L. Wilson, NIST Form-Based Handprint Recognition System, NISTIR 5469,\n",
      "1994.\n",
      "\n",
      ".. topic:: References\n",
      "\n",
      "  - C. Kaynak (1995) Methods of Combining Multiple Classifiers and Their\n",
      "    Applications to Handwritten Digit Recognition, MSc Thesis, Institute of\n",
      "    Graduate Studies in Science and Engineering, Bogazici University.\n",
      "  - E. Alpaydin, C. Kaynak (1998) Cascading Classifiers, Kybernetika.\n",
      "  - Ken Tang and Ponnuthurai N. Suganthan and Xi Yao and A. Kai Qin.\n",
      "    Linear dimensionalityreduction using relevance weighted LDA. School of\n",
      "    Electrical and Electronic Engineering Nanyang Technological University.\n",
      "    2005.\n",
      "  - Claudio Gentile. A New Approximate Maximal Margin Classification\n",
      "    Algorithm. NIPS. 2000.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(cifre.DESCR)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABiEAAACBCAYAAACmTRnCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAbgklEQVR4nO3de5BWdf0H8M8iqaCxgGZqXhZG0QmVJSxHRmWd8FKOQAZ0nXaNUisvaxfRyiBK0qkGMKfC0Vgc79jImo1dmHHpIt6QpawcCFlGRU2RBZUQufz+SBi8/fx+1cN5eJ7Xa8Y/PLznzGefc873+32+n32erduyZcuWAAAAAAAAeJf1KLsAAAAAAACgOmlCAAAAAAAAhdCEAAAAAAAACqEJAQAAAAAAFEITAgAAAAAAKIQmBAAAAAAAUAhNCAAAAAAAoBCaEAAAAAAAQCE0IQAAAAAAgEJoQgAAAAAAAIWomibESy+9FBMnToz9998/evXqFcccc0z88Y9/LLsstvPCCy/EpEmT4tRTT43+/ftHXV1dtLW1lV0WEfHAAw/EueeeG4MHD4499tgjDjrooBg/fnwsWbKk7NJ4xT/+8Y8YN25cDBw4MHr37h177713nHDCCfGb3/ym7NJ4E5dddlnU1dXFEUccUXYpRERHR0fU1dW94X/33ntv2eXxioceeihGjRoV/fv3j969e8cRRxwRV155ZdllEREtLS1v+gzV1dXFE088UXaJNW/p0qXx6U9/Og444IDo3bt3HH744TFlypRYt25d2aXxioULF8app54affr0ife+971x8sknR2dnZ9ll8Qp7CpXPnkLlsqdQ+ewp7HyqbU+hZ9kFvFtaWlritttui9bW1jj00EOjra0tPv7xj8fdd98dxx13XNnlERHPPvtsTJkyJQ466KAYMmRIdHR0lF0Sr7jiiivir3/9a4wbNy6OOuqoeOqpp+Kqq66KD33oQ3HvvfdWzYC3M1uxYkU8//zz0dzcHPvvv3+sW7cufv3rX8eoUaNi5syZcdZZZ5VdItt5/PHHY+rUqbHHHnuUXQqvcf7558eHP/zhVx075JBDSqqG7f3hD3+I008/PYYOHRqXXnpp7LnnnrFs2bJ4/PHHyy6NiDj77LNj5MiRrzq2ZcuWOOecc6KhoSE+8IEPlFQZERGPPfZYfOQjH4n6+vo499xzo3///rFgwYKYNGlSLFy4MNrb28suseY99NBDcdxxx8WBBx4YkyZNis2bN8fPf/7zGDFiRNx///1x2GGHlV1izbOnUPnsKVQuewqVz57CzqUa9xTqtmzZsqXsIt6p+++/P4455pj48Y9/HN/85jcjImL9+vVxxBFHxD777BP33HNPyRUS8b/fLFm9enXsu+++8eCDD8aHP/zhmDVrVrS0tJRdWs2755574uijj45dd91127GlS5fGkUceGWPHjo3rr7++xOp4M5s2bYphw4bF+vXr45FHHim7HLbz6U9/Op555pnYtGlTPPvss/Hwww+XXVLN6+joiBNPPDHmzJkTY8eOLbscXmPt2rUxaNCgGD58eNx2223Ro0fVfFi3qv3lL3+J448/Pi677LL49re/XXY5NW3q1Knxne98Jx5++OEYPHjwtuPNzc1x3XXXxXPPPRf9+vUrsUJOO+20WLBgQSxdujT22muviIh48sknY9CgQXHyySfHr3/965IrrG32FHYO9hQqlz2FnZM9hcpVjXsKVfEO77bbbotddtnlVV273XffPSZMmBALFiyIxx57rMTq2Gq33XaLfffdt+wyeAPDhw9/1WIhIuLQQw+NwYMHx7/+9a+SquKt7LLLLnHggQdGd3d32aWwnT/96U9x2223xfTp08suhTfx/PPPx8aNG8sug+3ceOON8fTTT8dll10WPXr0iBdffDE2b95cdlm8hRtvvDHq6uris5/9bNml1Ly1a9dGRMT73//+Vx3fb7/9okePHq9b57Hj/fnPf46RI0dua0BE/O/6jBgxIu6888544YUXSqwOewo7B3sKlcuews7JnkJlqtY9hapoQixatCgGDRoUffr0edXxj3zkIxERvmcT3oYtW7bE008/HXvvvXfZpbCdF198MZ599tlYtmxZTJs2Le6666746Ec/WnZZvGLTpk1x3nnnxZe+9KU48sgjyy6HN3DmmWdGnz59Yvfdd48TTzwxHnzwwbJLIiLmzZsXffr0iSeeeCIOO+yw2HPPPaNPnz7xla98JdavX192ebyBl19+OW699dYYPnx4NDQ0lF1OzWtqaoqIiAkTJkRnZ2c89thjccstt8QvfvGLOP/886vqo/w7q5deeil69er1uuO9e/eODRs2VMVvOO7M7CnAu8+eQmWyp1DZqnlPoSr+JsSTTz4Z++233+uObz22cuXKHV0S7PRuuOGGeOKJJ2LKlClll8J2vvGNb8TMmTMjIqJHjx5xxhlnxFVXXVVyVWz1y1/+MlasWBHz5s0ruxReY9ddd41PfvKT8fGPfzz23nvv+Oc//xk/+clP4vjjj4977rknhg4dWnaJNW3p0qWxcePGGD16dEyYMCF+9KMfRUdHR/zsZz+L7u7uuOmmm8oukdf4/e9/H6tWrYrPfe5zZZdCRJx66qnxgx/8IKZOnRp33HHHtuPf+c534oc//GGJlbHVYYcdFvfee29s2rQpdtlll4iI2LBhQ9x3330REf64e8nsKcC7z55CZbKnUNmqeU+hKpoQ//3vf2O33XZ73fHdd999278D6R555JH42te+Fscee2w0NzeXXQ7baW1tjbFjx8bKlSvj1ltvjU2bNsWGDRvKLouIWLVqVXzve9+LSy+9NN73vveVXQ6vMXz48Bg+fPi2/x81alSMHTs2jjrqqLjkkkvid7/7XYnV8cILL8S6devinHPOiSuvvDIiIs4444zYsGFDzJw5M6ZMmRKHHnpoyVWyvRtvvDHe8573xPjx48suhVc0NDTECSecEJ/85Cdjr732it/+9rcxderU2HfffePcc88tu7ya99WvfjW+8pWvxIQJE+Kiiy6KzZs3xw9/+MN48sknI8J71rLZU4B3lz2FymVPoXJV+55CVXwdU69eveKll1563fGtH99/o4+9Am/sqaeeitNOOy3q6+u3fTcqlePwww+PkSNHxhe+8IVt3x98+umnx5YtW8oureZ997vfjf79+8d5551XdikkOuSQQ2L06NFx9913x6ZNm8oup6ZtXat95jOfedXxrX9rYMGCBTu8Jt7cCy+8EO3t7XHKKae86vvtKc/NN98cZ511VlxzzTXx5S9/Oc4444y49tpro7m5OSZOnBirVq0qu8Sad84558S3v/3tuPHGG2Pw4MFx5JFHxrJly+Kiiy6KiIg999yz5Aprmz0FePfYU6hs9hQqV7XvKVRFE2K//fbb9hsk29t6bP/999/RJcFOac2aNfGxj30suru743e/+51nZycwduzYeOCBB2LJkiVll1LTli5dGldffXWcf/75sXLlyujq6oqurq5Yv359vPzyy9HV1RXPPfdc2WXyBg488MDYsGFDvPjii2WXUtO2zjev/aO6++yzT0RErF69eofXxJubO3durFu3zlcxVZCf//znMXTo0DjggANedXzUqFGxbt26WLRoUUmVsb3LLrssnn766fjzn/8cf/vb3+KBBx6IzZs3R0TEoEGDSq6uttlTgHeHPYWdjz2FylALewpV0YRobGyMJUuWxNq1a191fOv3azY2NpZQFexc1q9fH6effnosWbIk7rzzzvjgBz9Ydkkk2PrR8DVr1pRcSW174oknYvPmzXH++efHgAEDtv133333xZIlS2LAgAG+C7VCPfroo7H77rv7DdSSDRs2LCJe/53oW7+Duxo/jrwzu+GGG2LPPfeMUaNGlV0Kr3j66aff8BNdL7/8ckREbNy4cUeXxJvo169fHHfccdv+2OS8efPigAMOiMMPP7zkymqbPQV45+wp7JzsKVSGWthTqIomxNixY2PTpk1x9dVXbzv20ksvxaxZs+KYY46JAw88sMTqoPJt2rQpPvWpT8WCBQtizpw5ceyxx5ZdEq/xn//853XHXn755bjuuuuiV69eFnglO+KII+L2229/3X+DBw+Ogw46KG6//faYMGFC2WXWtGeeeeZ1xxYvXhx33HFHnHzyydGjR1UsiXZaW/+uwLXXXvuq49dcc0307NkzmpqaSqiKN/LMM8/EvHnz4hOf+ET07t277HJ4xaBBg2LRokWv+y3Gm266KXr06BFHHXVUSZXx/7nlllvigQceiNbWVvNQyewpwDtjT6Hy2VOobLWwp1AVf5j6mGOOiXHjxsUll1wS//nPf+KQQw6J2bNnR1dX1+vezFKuq666Krq7u7f9ZuNvfvObePzxxyMi4rzzzov6+voyy6tZ3/jGN+KOO+6I008/PZ577rm4/vrrX/Xvn//850uqjK3OPvvsWLt2bZxwwgnxgQ98IJ566qm44YYb4pFHHomf/vSnfou7ZHvvvXeMGTPmdcenT58eEfGG/8aO9alPfSp69eoVw4cPj3322Sf++c9/xtVXXx29e/eOyy+/vOzyat7QoUPji1/8YvzqV7+KjRs3xogRI6KjoyPmzJkTl1xyiY/yV5BbbrklNm7c6KuYKsy3vvWtuOuuu+L444+Pc889N/baa6+4884746677oovfelLnqEK8Kc//SmmTJkSJ598cuy1115x7733xqxZs+LUU0+NCy64oOzyap49hZ2HPYXKZE+h8tlTqGy1sKdQt6VK/vLI+vXr49JLL43rr78+Vq9eHUcd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",
      "text/plain": [
       "<Figure size 2000x300 with 15 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "_, axes = plt.subplots(ncols=15, figsize=(20,3))\n",
    "im=cifre.images\n",
    "lab=cifre.target\n",
    "for ax, image, label in zip(axes, im, lab):\n",
    "    ax.set_axis_off()\n",
    "    ax.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    ax.set_title('%i' % label)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1797, 8, 8)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "im.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "X = im.reshape((len(im), -1))\n",
    "X_tr, X_te, y_tr, y_te = train_test_split(X, lab, test_size=0.1, shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(gamma=0.001)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-3\" type=\"checkbox\" checked><label for=\"sk-estimator-id-3\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">SVC</label><div class=\"sk-toggleable__content\"><pre>SVC(gamma=0.001)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "SVC(gamma=0.001)"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svc = svm.SVC(gamma=0.001)\n",
    "svc.fit(X_tr, y_tr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "pred=svc.predict(X_te)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABiEAAACBCAYAAACmTRnCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAiX0lEQVR4nO3de3BV1dnH8d9BAkm4JIBcCyRYRQpoglAKVJswIkWlkCoiWDRBKt5QQqtOq1UCisjY2tA6FnUwiVYUFQkKFdFOgg7eEAgOWgUHgheQCdUEuQdZ7x9OUvICstbJWTk7Od/PjDNmz8POc/Zznr3W3iv7nJAxxggAAAAAAAAAACDCmkU7AQAAAAAAAAAA0DSxCAEAAAAAAAAAALxgEQIAAAAAAAAAAHjBIgQAAAAAAAAAAPCCRQgAAAAAAAAAAOAFixAAAAAAAAAAAMALFiEAAAAAAAAAAIAXLEIAAAAAAAAAAAAvWIQAAAAAAAAAAABeRGQRorCwUKFQSOXl5ZHYHTygRsFGfYKPGgUb9Qk+ahRs1Cf4qFGwUZ/go0bBRn2CjxoFG/UJPmoUbNTHv8A9CVFdXa1Zs2bpjDPOUMuWLXXGGWfovvvu05EjR6Kd2g9at26dRo0apbZt26pNmzYaOXKkysrKop2WF/fff7+GDBmijh07Kj4+XmeddZZyc3NVUVER7dROaseOHZo0aZLOPvtstWnTRsnJyRo8eLCKiopkjIl2ehFFDwXfqlWrNGXKFPXv31+nnXaaUlNTo52SlTlz5mjMmDHq3LmzQqGQ8vLyop2SF/RQ8B09elQLFixQenq6Wrdurc6dO+viiy/WW2+9Fe3UftCWLVs0YcIEde/eXYmJierTp49mz56t/fv3Rzu1iMrMzFQoFDruv1GjRkU7tZMqLS09Yc6hUEjvvPNOtNOLqPLy8pO+1lAopOuuuy7aKZ5QTk7OD+b95ZdfRjvFiKA+jUNjHIf27t2rmTNnatSoUWrfvr1CoZAKCwujnZYX1Cf4uB4KtsbYQ1LszLUlahR01OfEmkdkLxE0adIkPf/887r22ms1aNAgvfPOO7r77rv12Wef6bHHHot2eie0fv16nX/++erRo4dmzpypo0eP6pFHHlFGRobee+89nX322dFOMaLWrVun9PR0TZgwQW3atNF//vMfPf7441qxYoXKysrUqlWraKd4nN27d+uLL77QuHHj1LNnT1VXV+u1115TTk6OPvnkE91///3RTjFi6KHgW7RokRYvXqzzzjtP3bp1i3Y61v70pz+pS5cuGjBggF599dVop+MNPRR8t99+ux566CFNmjRJN910kyorK/Xoo48qIyNDa9as0eDBg6Od4nE+//xzDR48WElJSZo2bZrat2+vt99+WzNnztS6deu0bNmyaKcYUd27d9fcuXPrbGsM57tbb71VP/3pT+tsO/PMM6OUjR8dO3bUU089ddz2lStX6umnn9bIkSOjkNWpXX/99RoxYkSdbcYY3XDDDUpNTdWPfvSjKGUWWdSncWiM49Du3bs1e/Zs9ezZU2lpaSotLY12St5Qn+DjeijYGmMPxdpcmxoFG/U5CRMBBQUFRpLZtm1bvfbz3nvvGUnm7rvvrrP997//vQmFQmbjxo312r8vl1xyiWnXrp3ZvXt37bYdO3aY1q1bm8suuyyKmf1PpGp0Mi+88IKRZJ555hkv+/dl9OjRplWrVubIkSNRzYMeiq0e+vLLL83hw4eNMcZceumlJiUlpd77bAg1r72iosJIMjNnzoxqPseih2Knh6qrq01CQoIZN25cne1bt241ksytt95ar/37MmfOHCPJbNq0qc72a665xkgyX3/9dZQy+14kz3EZGRmmX79+9U+qAZWUlBhJ5vnnn492Kifley534YUXmrZt25oDBw542b8Pb775ppFk5syZE+1UqM8JBKk+xjAOHTx40OzcudMYY8zatWuNJFNQUBDdpI5BfYJdH2O4HjImNq6HGmsPBX2ubQw1CnqNqI//+gTq45jefPNNSdKECRPqbJ8wYYKMMVq8eHFY+01NTdXo0aO1atUqpaenKz4+Xn379tWLL75Y75yl7/MeMWKEOnToULuta9euysjI0PLly7V3796I/J4gq3l8srKyMqx/n5mZqf79+2vdunUaNmyYEhIS1KtXLy1YsCBySZ5Aamqq9u/fr8OHD3v9PQ2FHmocunXrpri4uIjusyF6qLE8Jl0f9FDwVVdX68CBA+rcuXOd7Z06dVKzZs2UkJAQ1n5912jPnj2SdFzeXbt2VbNmzdSiRYuI/J4gOXLkSMTee77rc6xvv/028B+/Fmk7d+5USUmJLrvsMsXHx4e1j4asUY1FixYpFArpqquu8vY7goD6BEtjHYdatmypLl26RGRfQUZ9Ggeuh4KrsfZQLM21qVGwUZ+T8/ZxTHv37tXBgwdPGRcXF6ekpCRJ0qFDhyTpuIIkJiZK+v5jgMK1ZcsWXXnllbrhhhuUnZ2tgoICXXHFFVq5cqUuuugiSd9/ZtfXX39ttb+kpKTaQfPQoUMnfBMlJibq8OHD2rRpk4YMGRJ27r6EU6Maxhj997//1ZEjR7Rlyxb94Q9/0GmnnabMzMyw8/nmm290ySWXaPz48Zo4caKee+453XjjjWrRooWuvfba2rjdu3db7a9NmzZq2bJlnW0HDhzQvn37tHfvXq1evVoFBQUaOnRo2CcBn+ihpt1DPjREDzUm9FDT7KGEhAT97Gc/U2FhoYYOHaoLLrhAlZWVuvfee9WuXTtNnTo17Hx81igzM1Pz5s3TlClTNGvWLHXo0EFvvfWW/vGPf+jWW28N5EcZ1ucct3nzZrVq1UqHDx9W586ddd111+mee+6p1w0Hn/WpMXnyZO3du1ennXaaLrjgAj344IMaNGhQ2Dn7Fqlx6Nlnn9XRo0f1m9/8pl75NESNalRXV+u5557TsGHDAntTiPoEuz5SbI1DjRH1CT6uh4ItlnqoMc61JWoU9BpRnwjXp97PUpgTP7KSnZ1tJJ3yv4yMjNp/s2TJEiPJPPXUU3X2v2DBAiPJ9O/fP6z8UlJSjCSzZMmS2m1VVVWma9euZsCAAbXbtm3bZpWzJFNSUlL778455xzTu3fvOh/pc+jQIdOzZ08jybzwwgth5R1JkapRjZ07d9aJ6d69u1m8eHHY+WVkZBhJ5i9/+UvttkOHDpn09HTTqVOn2kc1jTHWNTrR46tz586tE3PhhReazz77LOy8I4Ueir0eqhGpx48bqoeMaTyPH9NDTbeHtmzZYs4777w6MWeccYb5+OOPw87Pd42MMebee+81CQkJdWLuuuuusHOOpEjW59prrzV5eXlmyZIl5sknnzRjxowxksz48ePDzs93fdasWWMuv/xys3DhQrNs2TIzd+5c06FDBxMfH2/Wr18fdt6R5GscMsaYgQMHmq5du5rvvvsu7PwaooeO9fLLLxtJ5pFHHgk750iiPnUFrT7GMA4dK4gf90N9/ieI9TGG66FjNeXrIWMabw8Fea5tDDUyJtg1oj7+6+PtSYg77rhDkyZNOmVcu3btav//kksuUUpKim677TYlJiZq4MCBevfdd3XXXXepefPmOnDgQNj5dOvWTb/+9a9rf27btq2uueYazZs3T1999ZW6dOmiLl266LXXXrPaX1paWu3/33TTTbrxxhs1ZcoU3XHHHTp69Kjuu+8+7dy5U5LqlbdP4dSoRvv27fXaa6/p4MGD2rBhg1588cV6f+RC8+bNdf3119f+3KJFC11//fW68cYbtW7dutq/4rWtUb9+/Y7bNnHiRA0aNEgVFRVavny5du3a1aTqQw81rPr0kA8N0UONCT3UdHuoTZs26tevn4YOHaoLL7xQX331lR544AFlZWXpzTff1Omnnx5WPj5rJH3/CO0vfvELXX755erQoYNWrFih+++/X126dNG0adPCytmncOuzcOHCOj9fffXVmjp1qh5//HHNmDEj7KdyfNZn2LBhGjZsWO3PY8aM0bhx43Tuuefqj3/8o1auXBlWzr5FYhzavHmz1q1bpxkzZqhZs/p9UqvvHjrWokWLFBcXp/Hjx9crZ5+oT7DrI8XeONTYUJ/g43oo2GKthxrbXFuiRkGvEfWJcH0isZIRyS8o2rRpk+nbt2/tikvLli3N/PnzTadOnUxaWlpY+0xJSTG/+MUvjtu+cOFCI8m8/fbb9czamDvvvNPExcXV5j1o0CBz1113GUlm6dKl9d5/ffn+srw1a9YYSebll18O699nZGSYnj17Hrf93//+t5H8feH1ddddZ3r06GH279/vZf+26KHY7aFI/uVPQ/VQY/nLn3DRQ35E8ou++vfvb6ZNm1Zn++bNm01cXJy54447wtqv7xo988wzJiEhwXz++ed1tufk5JjExMQ6XyoeDb7nCR9//LGRZO69996w/n1D9NCJTJgwwbRo0aLOU0bR4qtG99xzj5Fk3n///XrtpyFr9O2335rExEQzevToiO2zvqjP/wSxPsYwDh0riH9pT33+J4j1MYbroWM15euhxtpDQZ9rG0ONgl4j6uO/Pt6ehKiqqrL6y8sWLVqoffv2tT/369dPmzZt0kcffaRvvvlGffv2VUJCgmbMmKGMjAxf6UqSvvvuO1VUVFjFtm/fvs6XcsyZM0e33XabPvzwQyUlJemcc87RnXfeKUnq3bu3l3zrK9wanciwYcPUtWtXPf300xo9enSkUjyhr776yiouKSnplN/1MG7cOD3++ON644039Mtf/jIS6UUMPRRbPdSQItlDQUYPNc0eeuONN7Rp0yY99NBDdWLOOuss/eQnP9GaNWu85Foj3Bo98sgjGjBggLp3714nZsyYMSosLNSGDRs0YsSIiOdbH5E8x/Xo0UOSrD+fNFz16aET6dGjhw4fPqx9+/apbdu2kUgxoiJRo0WLFunss8/WwIEDI53eCUWiRsXFxdq/f3+9vyPBN+oT7PpIsTUONUbUJ/i4Hgq2WOqhxjjXlqiRFOwaUZ/I1sfbIsT06dNVVFR0yriMjAyVlpbW2RYKheo89vavf/1LR48erdeL/fTTT2WMUSgUqt22efNmSar9srTPP/9cvXr1stpfSUnJcV/C3K5dO51//vm1P7/++uvq3r27+vTpE3bePtWnRidy8OBBVVVVhZ3Pjh07tG/fvjpfdvL/ayR9/83sNgoKCpSTk/ODMTUnk/rk7Qs9FHs9VF/R6KEgo4eaZg/t2rVL0veTq/+vurpaR44cCTsfnzXatWvXCT+KoLq6WpLqlbcvkTzHbd26VZLUsWPHsPNpiB76/7Zu3ar4+Hi1bt06rJx9q2+N3n33XX366aeaPXt2RPJpqBo9/fTTat26tcaMGVPvnH2iPsGujxRb41BjRH2Cj+uhYIulHmqMc22JGtXkLAWzRtQnsvUJ1HdCnMiBAwd09913q2vXrpo4cWLY+ezYsUNLly7VZZddJknas2ePnnzySaWnp6tLly6SFNHPb1y8eLHWrl2rP//5z/X+/FZfwqnRvn37FAqFlJiYWCdmyZIl+uabbzRo0KCw8zly5IgeffRR/e53v5MkHT58WI8++qg6duxY56+/wvn8xoqKihPe+Fi4cKFCoZDOO++8sPP2hR5qmj3kk88eaozooabZQzVPdTz77LMaNWpU7fb169frk08+0dSpU8POx2eNevfurVWrVmnz5s11nkx55pln1KxZM5177rlh5+1LOPXZs2ePWrZsqZYtW9ZuM8bovvvuk6R6PXXosz4nmids3LhRL730ki6++OIm1UPHWrRokSTpqquuikg+DXGeq6io0Ouvv66JEyceNx8NGuoT7PpIsTUONUbUJ/i4Hgq2WOqhxjjXlqiRFOwaUZ/I1sfbIkTfvn3Vt29f5383fvx4devWTX379tWePXv0xBNPaOvWrVqxYoXatGlTJzYUClmvqPfu3VtTpkzR2rVr1blzZz3xxBPatWuXCgoKamPi4+PD+ivXN954Q7Nnz9bIkSPVoUMHvfPOOyooKNCoUaM0ffp05/01lHBqtGXLFo0YMUJXXnml+vTpo2bNmun999/XP//5T6Wmph73emtW4srLy0+5727dumnevHkqLy9X7969tXjxYpWVlemxxx5TXFxcbVw4NZozZ47WrFmjUaNGqWfPnvr666+1ZMkSrV27VrfccovOPPNM5336Rg81zR6SpA8++EAvvfSSpO9Xsquqqmpv0KWlpelXv/pVbWxQekiSnnrqKW3fvl379++X9H3davK++uqrlZKSEtZ+faGHmmYPDRw4UBdddJGKioq0Z88ejRw5Ujt37tTf//53JSQkKDc3t058UGp0++2365VXXtEFF1ygadOmqUOHDlq+fLleeeUV/fa3v1W3bt2c9+lbOPVZv369Jk6cqIkTJ+rMM8/UgQMHtHTpUq1Zs0ZTp049btE/KPW58sorlZCQoGHDhqlTp0766KOP9NhjjykxMVEPPPCA8/4aSrjnOen7v85avHixhgwZoh//+McnjQtKjWosXrxYR44caRQf9UN9gi+WxiFJevjhh1VZWakdO3ZIkl5++WV98cUXkqRbbrlFSUlJYe3XF+oT7PpIXA81xeuhxtpDjXGuLVGjoNeI+kS4PvX+VgkT2S8omjdvnunTp4+Jj4837dq1M2PGjDEbNmw4Lu7bb781ksyECRNOuc+UlBRz6aWXmldffdWce+65pmXLlqZPnz7m+eefr3e+xhjz6aefmpEjR5rTTz+9dt9z5841hw4disj+IyFSNaqoqDBTp041ffr0Ma1atTItWrQwZ511lsnNzTUVFRXHxZ9++ulmyJAhp9xvRkaG6devn3n//ffN0KFDTXx8vElJSTEPP/xwvfKtsWrVKjN69GjTrVs3ExcXZ9q0aWN+/vOfm4KCAnP06NGI/I76oIdip4eO3deJ/svOzq4TG5QeqvkdJ8u7pKQkYr8nHPRQbPXQ/v37zezZs03fvn1NQkKCSUpKMqNHjz6uTkGqkTHGvPvuu+biiy82Xbp0MXFxcaZ3795mzpw5prq6OmK/I1yRqs/WrVvNFVdcYVJTU018fLxJTEw0AwcONAsWLDhuvA1SfebPn28GDx5s2rdvb5o3b266du1qJk2aZLZs2RKR/UdCpL8QdOXKlUaS+dvf/nbSmCDVqMaQIUNMp06dAvFl4ceiPt8Lan2MYRyq+R0nm8tF+suGXVGfYNfHGK6Han5HLFwPNdYeCvJc2xhqZEywa0R9/NcnIosQ0bBixQoTCoXMBx98cMrYmkKhYX344YdGklm+fPkpY2smDGg49FDw0UPBRg8FHzUKNuoTfNQo2KhP8FGjYKM+wcf1ULDRQ8FHjYIt1uoTzA+4tVBSUqIJEybonHPOiXYqOImSkhINHTpUl156abRTwQnQQ8FHDwUbPRR81CjYqE/wUaNgoz7BR42CjfoEH9dDwUYPBR81CrZYq4+374Tw7cEHH4x2CjiFm2++WTfffHO008BJ0EPBRw8FGz0UfNQo2KhP8FGjYKM+wUeNgo36BB/XQ8FGDwUfNQq2WKtPo30SAgAAAAAAAAAABFvIGGOinQQAAAAAAAAAAGh6eBICAAAAAAAAAAB4wSIEAAAAAAAAAADwgkUIAAAAAAAAAADgRfNoJ1BeXm4dm5OTYx2bnp5uHZufn28dG2uWLVtmHTt9+nTr2KysLOtY6vPDSktLrWMLCwutY8vKyrzs16U3Y41LLV3Ohy5capmZmeklh0iorKy0jnU5x7j0hcv4lpycbB3r8j5pClyOY69evaxjU1JSrGNdjnlqaqp1bFPh0m+5ubnWsS7H3VcPuew3qFzGi6KiIutYlx5yOXc2hWPuyqUvXMZpFy41isXznC2XMctlTuzSm2PHjrWObSpc5nIuPeRST2oUGb7m8LNmzbKO3bZtm3VskM+HLud1l/sz8+fPt47lvR4Zvq6HsrOzrWNd+i0W53IuY0teXp517Pbt261jCwoKrGN93U86FZ6EAAAAAAAAAAAAXrAIAQAAAAAAAAAAvGARAgAAAAAAAAAAeMEiBAAAAAAAAAAA8IJFCAAAAAAAAAAA4AWLEAAAAAAAAAAAwAsWIQAAAAAAAAAAgBcsQgAAAAAAAAAAAC9YhAAAAAAAAAAAAF40j3YCycnJ1rFlZWXWsVlZWdaxubm51rH5+fnWsUFVWVlpHetyHNPS0qxj58+fbx3bFI65q9LSUuvY4cOHW8e61Gjjxo3WscXFxdax6enp1rFNga9+q6qqck/GQmpqqpf9NrTVq1dbx7rUyOW97quPXfJ1GWMbkstryMnJ8ZLD9u3brWPz8vKsYwsLC92TaeRcxuny8nLrWJfj7nLuCmpf+OJyLnLh0kMufeEyLw8yl+sWl75wGYdc5hUu7xNf5+WgcqmPS6xLff76179ax44dO9Y6tqlwmVe4XOO4oEYnt2zZMuvYmTNnWsf6qmVTuR5yme+49FB2drZ1rMvY4uu4N4V5n8vY76KoqMg61mV88zX3bGgu89fJkyd7ycHlnOgyh47WXI4nIQAAAAAAAAAAgBcsQgAAAAAAAAAAAC9YhAAAAAAAAAAAAF6wCAEAAAAAAAAAALxgEQIAAAAAAAAAAHjBIgQAAAAAAAAAAPCCRQgAAAAAAAAAAOAFixAAAAAAAAAAAMALFiEAAAAAAAAAAIAXLEIAAAAAAAAAAAAvmkc7geTkZOvYzMxM69icnBzr2PT0dOvYvLw861iX19aQKisrrWPT0tKsY12Oo0sOsaiqqso6NikpyTq2rKzMOjY1NdXLfpuC8vJy69isrCzrWJe6++JS9yDbtm2bdezw4cO95OCrnqtXr7aOHTt2rJcc6svlnOHyejMyMsLI5tRcej4WFRYWeol1mffh5Hz1m8v4Fotc5sXFxcVecnAZh2Kt31z6wuXY+Lq2jbX6uPJ13e1ynZWfn+8lh6ByGQOWLVtmHetyzF3mfS7jW1Phcl3n8v6dPHmydazLfR+X85zL+8/lHl5QBWEMiLV7PpLb+zclJcVLDqWlpdaxQb0HfSyehAAAAAAAAAAAAF6wCAEAAAAAAAAAALxgEQIAAAAAAAAAAHjBIgQAAAAAAAAAAPCCRQgAAAAAAAAAAOAFixAAAAAAAAAAAMALFiEAAAAAAAAAAIAXLEIAAAAAAAAAAAAvWIQAAAAAAAAAAABesAgBAAAAAAAAAAC8aB7tBHJycqxj09PTvew3OTnZOrYpSE1NtY7Nz8+3jh0+fLh7MhHOITc310sODS0lJcXLfl3e61VVVdax27dvt46trKy0jg1qbxYWFlrHbty40V8iOCmXMSAzM9M6tqCgwDq2vLzcy343bNhgHTt27Fjr2IbkMp4nJSVZx7qcM5YtW2Yd61KfpsLl+LiMAXl5edaxvsaL0tJS69imwOU4Ll261EsOLsfcpZYu5/qG5jIGuLwOl3q66NWrl3Wsy9hSXFwcRjb++cqrrKzMOtbXXCUW+bpmKCoqso51mds0BS7jucuxcbmed7lPsHr1auvYWORyPnKpva/7ck3lvo8tX+c4l/tOLvOapsLlfeZyj8jlnOgyDjWGa1aehAAAAAAAAAAAAF6wCAEAAAAAAAAAALxgEQIAAAAAAAAAAHjBIgQAAAAAAAAAAPCCRQgAAAAAAAAAAOAFixAAAAAAAAAAAMALFiEAAAAAAAAAAIAXLEIAAAAAAAAAAAAvWIQAAAAAAAAAAABesAgBAAAAAAAAAAC8aB7tBJKTk61jCwsLrWO3b99uHTt9+nTrWJd8m4LU1FTr2JKSEuvYqqoq69isrCzr2PT0dOvYzMxM69iG5vI6ioqKrGNdauSrN/Pz861j8/LyrGMbUk5OjnWsy3GsrKy0jp01a5Z1rAuXHIJ8PvT1/nU5Pi59XFZWZh1bXl5uHRtULvVxOWdMnjzZOjYtLc061qXnmwqX4zN27FgvObiM0y59XFpa6iWHhuTSFzNmzPCSQ1JSknWsy7nTJTYWuYwBLr3pMt92iQ2q3NxcL/t1uXZyuR4qLi52TyaGtGvXzst+XcbCWOMyz3WJDQKXeXlje20n4zK2uIzTLudEl/lZkK9DfXCZ57rMz1zum7rkEIvXTi5z8+HDh1vHZmdnW8c2huPOkxAAAAAAAAAAAMALFiEAAAAAAAAAAIAXLEIAAAAAAAAAAAAvWIQAAAAAAAAAAABesAgBAAAAAAAAAAC8YBECAAAAAAAAAAB4wSIEAAAAAAAAAADwgkUIAAAAAAAAAADgBYsQAAAAAAAAAADACxYhAAAAAAAAAACAFyFjjIl2Ej5UVlZax+bm5nqJTU9Pt47FyaWmplrH+qolflhmZqaX2Ly8POdcGrPS0lLr2OHDh3vJoYkOCYGXn59vHdurVy/r2LFjx4aRTbC4nKuLi4u95JCTk2MdG2vnraAIhULWsSUlJdaxLmNWQ8rKyrKOTU5Oto516SGXHAoLC61jY1FZWZl17IABA6xjGdMbnst7ffLkydaxGRkZ1rEufexyfggyl7F31qxZ1rEFBQXWsS5zBUSGr7o3hXmC5HZPzOXelct73eUaxyXfWONSH5f5mcsxd7lX4TKvaSpcjnt5ebl17MaNG61jt23bZh3rcp81kngSAgAAAAAAAAAAeMEiBAAAAAAAAAAA8IJFCAAAAAAAAAAA4AWLEAAAAAAAAAAAwAsWIQAAAAAAAAAAgBcsQgAAAAAAAAAAAC9YhAAAAAAAAAAAAF6wCAEAAAAAAAAAALxgEQIAAAAAAAAAAHjBIgQAAAAAAAAAAPCiebQT8CU5Odk6Njc31zo2KyvLOra0tNQ6NjU11Tq2Ibm83vT0dC85bN++Peo5BJnL+7ewsNA61qX25eXl1rEuvYmG51LLoJ63JLfX4dIXLv1WWVlpHZufn28d6/LamgKX4+jynszJybGOdal7Xl6edSx+mEtvJiUlWccG+dxlq7i42DrW5TgWFRVZx/JejxyXuW5KSorHTFBfLucXl1qWlZV5ic3MzLSODTKX6+6MjAzrWJf5mcu8ApHh67qyqfTQ6tWrrWNdzl0u479Lb7oc91i77+PyXne5VnQ5jhs3brSOjUUu73WX+XZ2drZ1bGO4l8OTEAAAAAAAAAAAwAsWIQAAAAAAAAAAgBcsQgAAAAAAAAAAAC9YhAAAAAAAAAAAAF6wCAEAAAAAAAAAALxgEQIAAAAAAAAAAHjBIgQAAAAAAAAAAPCCRQgAAAAAAAAAAOAFixAAAAAAAAAAAMALFiEAAAAAAAAAAIAXzaOdwLJly6xjp0+fbh2bnJxsHVtZWWkdm5mZ6SWHoEpPT7eOLS4uto4tLy+3js3OzraOdalPU5GVlWUdW1ZWZh1bWlpqHevyPnHJF5GRlJRkHevSm6mpqe7JNBBfubmcY1xycDl/xpq8vDzrWJfzy+TJk61jMzIyrGPxw1x6yOV85NJDQT53+ZCfn28d6zLXjrXj6FNBQYF1bG5urr9EUG9BmH/E4vXQjBkzrGNnzpxpHetyjYOG53Jt68Ll/lCQpaWlWce6zLlc+sJlvzg5l7lcTk6OdazL/NnlvlwscpmfuVyzutzLaQxjFk9CAAAAAAAAAAAAL1iEAAAAAAAAAAAAXrAIAQAAAAAAAAAAvGARAgAAAAAAAAAAeMEiBAAAAAAAAAAA8IJFCAAAAAAAAAAA4AWLEAAAAAAAAAAAwAsWIQAAAAAAAAAAgBcsQgAAAAAAAAAAAC9YhAAAAAAAAAAAAF6EjDEm2kkAAAAAAAAAAICmhychAAAAAAAAAACAFyxCAAAAAAAAAAAAL1iEAAAAAAAAAAAAXrAIAQAAAAAAAAAAvGARAgAAAAAAAAAAeMEiBAAAAAAAAAAA8IJFCAAAAAAAAAAA4AWLEAAAAAAAAAAAwAsWIQAAAAAAAAAAgBf/B1c7YbR9HEtDAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 2000x300 with 15 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "_, axes = plt.subplots(ncols=15, figsize=(20,3))\n",
    "for ax, image, l, p in zip(axes, X_te, y_te, pred):\n",
    "    ax.set_axis_off()\n",
    "    d=image.reshape(8,8)\n",
    "    ax.imshow(d, cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    ax.set_title('l={:d}, p={:d}'.format(l, p))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0.98, 'Confusion Matrix')"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfIAAAHgCAYAAABej+9AAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABfWElEQVR4nO3deVxU5f4H8M9hBmYGGAZQEFBE3HBfM38uudxMMzOXyiW7gabeCis1zawMl5S0m5pmLmVqJqn3plZW7rmVlqK4YShiiqECCgyLDMzM+f3BZXIElGGYOTPM5/16nZfOmXPO85kj8p3nOZsgiqIIIiIickpuUgcgIiKiqmMhJyIicmIs5ERERE6MhZyIiMiJsZATERE5MRZyIiIiJ8ZCTkRE5MRYyImIiJwYCzkREZETYyEnktjFixfRt29faDQaCIKAbdu2Vev2//zzTwiCgLVr11brdp1Zr1690KtXL6ljEFULFnIiAJcuXcK//vUvNGzYEEqlEj4+PujWrRs+/vhj3Llzx6ZtR0ZG4syZM5g7dy7Wr1+Phx56yKbt2VNUVBQEQYCPj0+5+/HixYsQBAGCIODf//63xdtPS0vDzJkzkZCQUA1piZyTXOoARFL74Ycf8Oyzz0KhUOCFF15Aq1atUFRUhMOHD2Pq1Kk4d+4cVq1aZZO279y5gyNHjuCdd97BhAkTbNJGWFgY7ty5A3d3d5ts/0HkcjkKCgrw/fffY9iwYWbvbdiwAUqlEoWFhVXadlpaGmbNmoUGDRqgXbt2lV5v165dVWqPyBGxkJNLu3z5MkaMGIGwsDDs27cPwcHBpveio6ORnJyMH374wWbtZ2RkAAB8fX1t1oYgCFAqlTbb/oMoFAp069YNX3/9dZlCHhcXhwEDBuCbb76xS5aCggJ4enrCw8PDLu0R2QOH1smlLViwAHl5eVi9erVZES/VuHFjvP7666bXer0ec+bMQaNGjaBQKNCgQQO8/fbb0Ol0Zus1aNAATz75JA4fPoyHH34YSqUSDRs2xJdffmlaZubMmQgLCwMATJ06FYIgoEGDBgBKhqRL/363mTNnQhAEs3m7d+9G9+7d4evrC29vb0RERODtt982vV/RMfJ9+/bhkUcegZeXF3x9fTFo0CCcP3++3PaSk5MRFRUFX19faDQajB49GgUFBRXv2Hs899xz+Omnn5CdnW2ad+zYMVy8eBHPPfdcmeVv376NKVOmoHXr1vD29oaPjw/69++PU6dOmZbZv38/OnXqBAAYPXq0aYi+9HP26tULrVq1Qnx8PHr06AFPT0/Tfrn3GHlkZCSUSmWZz9+vXz/4+fkhLS2t0p+VyN5YyMmlff/992jYsCG6du1aqeXHjh2L9957Dx06dMCiRYvQs2dPxMbGYsSIEWWWTU5OxjPPPIPHHnsMH330Efz8/BAVFYVz584BAIYOHYpFixYBAEaOHIn169dj8eLFFuU/d+4cnnzySeh0OsyePRsfffQRnnrqKfzyyy/3XW/Pnj3o168f0tPTMXPmTEyePBm//vorunXrhj///LPM8sOGDUNubi5iY2MxbNgwrF27FrNmzap0zqFDh0IQBGzZssU0Ly4uDs2aNUOHDh3KLJ+SkoJt27bhySefxMKFCzF16lScOXMGPXv2NBXV5s2bY/bs2QCA8ePHY/369Vi/fj169Ohh2s6tW7fQv39/tGvXDosXL0bv3r3Lzffxxx8jICAAkZGRMBgMAICVK1di165dWLp0KUJCQir9WYnsTiRyUTk5OSIAcdCgQZVaPiEhQQQgjh071mz+lClTRADivn37TPPCwsJEAOLBgwdN89LT00WFQiG+8cYbpnmXL18WAYgffvih2TYjIyPFsLCwMhliYmLEu//bLlq0SAQgZmRkVJi7tI01a9aY5rVr104MDAwUb926ZZp36tQp0c3NTXzhhRfKtDdmzBizbQ4ZMkSsVatWhW3e/Tm8vLxEURTFZ555Rnz00UdFURRFg8EgBgUFibNmzSp3HxQWFooGg6HM51AoFOLs2bNN844dO1bms5Xq2bOnCEBcsWJFue/17NnTbN7OnTtFAOL7778vpqSkiN7e3uLgwYMf+BmJpMYeObksrVYLAFCr1ZVa/scffwQATJ482Wz+G2+8AQBljqW3aNECjzzyiOl1QEAAIiIikJKSUuXM9yo9tv7tt9/CaDRWap3r168jISEBUVFR8Pf3N81v06YNHnvsMdPnvNtLL71k9vqRRx7BrVu3TPuwMp577jns378fN27cwL59+3Djxo1yh9WBkuPqbm4lv54MBgNu3bplOmxw4sSJSrepUCgwevToSi3bt29f/Otf/8Ls2bMxdOhQKJVKrFy5stJtEUmFhZxclo+PDwAgNze3UstfuXIFbm5uaNy4sdn8oKAg+Pr64sqVK2bz69evX2Ybfn5+yMrKqmLisoYPH45u3bph7NixqFOnDkaMGIHNmzfft6iX5oyIiCjzXvPmzZGZmYn8/Hyz+fd+Fj8/PwCw6LM88cQTUKvV2LRpEzZs2IBOnTqV2ZeljEYjFi1ahCZNmkChUKB27doICAjA6dOnkZOTU+k269ata9GJbf/+97/h7++PhIQELFmyBIGBgZVel0gqLOTksnx8fBASEoKzZ89atN69J5tVRCaTlTtfFMUqt1F6/LaUSqXCwYMHsWfPHvzzn//E6dOnMXz4cDz22GNllrWGNZ+llEKhwNChQ7Fu3Tps3bq1wt44AMybNw+TJ09Gjx498NVXX2Hnzp3YvXs3WrZsWemRB6Bk/1ji5MmTSE9PBwCcOXPGonWJpMJCTi7tySefxKVLl3DkyJEHLhsWFgaj0YiLFy+azb958yays7NNZ6BXBz8/P7MzvEvd2+sHADc3Nzz66KNYuHAhEhMTMXfuXOzbtw8///xzudsuzZmUlFTmvT/++AO1a9eGl5eXdR+gAs899xxOnjyJ3Nzcck8QLPXf//4XvXv3xurVqzFixAj07dsXffr0KbNPKvulqjLy8/MxevRotGjRAuPHj8eCBQtw7Nixats+ka2wkJNLe/PNN+Hl5YWxY8fi5s2bZd6/dOkSPv74YwAlQ8MAypxZvnDhQgDAgAEDqi1Xo0aNkJOTg9OnT5vmXb9+HVu3bjVb7vbt22XWLb0xyr2XxJUKDg5Gu3btsG7dOrPCePbsWezatcv0OW2hd+/emDNnDj755BMEBQVVuJxMJivT2//Pf/6Dv/76y2xe6ReO8r70WGratGm4evUq1q1bh4ULF6JBgwaIjIyscD8SOQreEIZcWqNGjRAXF4fhw4ejefPmZnd2+/XXX/Gf//wHUVFRAIC2bdsiMjISq1atQnZ2Nnr27Inff/8d69atw+DBgyu8tKkqRowYgWnTpmHIkCF47bXXUFBQgOXLl6Np06ZmJ3vNnj0bBw8exIABAxAWFob09HR8+umnqFevHrp3717h9j/88EP0798fXbp0wYsvvog7d+5g6dKl0Gg0mDlzZrV9jnu5ubnh3XfffeByTz75JGbPno3Ro0eja9euOHPmDDZs2ICGDRuaLdeoUSP4+vpixYoVUKvV8PLyQufOnREeHm5Rrn379uHTTz9FTEyM6XK4NWvWoFevXpgxYwYWLFhg0faI7Eris+aJHMKFCxfEcePGiQ0aNBA9PDxEtVotduvWTVy6dKlYWFhoWq64uFicNWuWGB4eLrq7u4uhoaHi9OnTzZYRxZLLzwYMGFCmnXsve6ro8jNRFMVdu3aJrVq1Ej08PMSIiAjxq6++KnP52d69e8VBgwaJISEhooeHhxgSEiKOHDlSvHDhQpk27r1Ea8+ePWK3bt1ElUol+vj4iAMHDhQTExPNlilt797L29asWSMCEC9fvlzhPhVF88vPKlLR5WdvvPGGGBwcLKpUKrFbt27ikSNHyr1s7NtvvxVbtGghyuVys8/Zs2dPsWXLluW2efd2tFqtGBYWJnbo0EEsLi42W27SpEmim5ubeOTIkft+BiIpCaJowdkqRERE5FB4jJyIiMiJsZATERE5MRZyIiIiJ8ZCTkRE5MRYyImIiJwYCzkREZETYyEnIiJyYizkREREToyFnIiIyImxkBMRETkxFnIiIiInxkJORETkxFjIiYiInBgLORERkRNjISciInJiLOREREROjIWciIjIibGQExEROTEWciIiIifGQk5EROTEWMiJiIicGAs5ERGRE2MhJyIicmIs5ERERE6MhZyIiMiJsZATERE5MRZyIiIiJ8ZCTkRE5MRYyImIiJwYCzkREZENxMbGolOnTlCr1QgMDMTgwYORlJRktkyvXr0gCILZ9NJLL1nUDgs5ERGRDRw4cADR0dE4evQodu/ejeLiYvTt2xf5+flmy40bNw7Xr183TQsWLLCoHXl1hrY3o9GItLQ0qNVqCIIgdRwiIrKQKIrIzc1FSEgI3Nxs17csLCxEUVGR1dsRRbFMvVEoFFAoFGWW3bFjh9nrtWvXIjAwEPHx8ejRo4dpvqenJ4KCgqwK5bRSU1NFAJw4ceLEycmn1NRUm9WKO3fuiEGBsmrJ6e3tXWZeTExMpXJcvHhRBCCeOXPGNK9nz55i7dq1xVq1aoktW7YU33rrLTE/P9+iz+fUPXK1Wg0A6LjhX5B7lv02JBXVkCtSRyAicgp6FOMwfjT9PreFoqIi3Eg34Ep8A/ioq97r1+YaEdbxT6SmpsLHx8c0v7ze+L2MRiMmTpyIbt26oVWrVqb5zz33HMLCwhASEoLTp09j2rRpSEpKwpYtWyqdy6kLeenwhtxTAbmX4xRyueAudQQiIucglvxhj8Oj3moB3uqqt2NEybo+Pj5mhbwyoqOjcfbsWRw+fNhs/vjx401/b926NYKDg/Hoo4/i0qVLaNSoUaW2zZPdiIjIJRhEo9VTVUyYMAHbt2/Hzz//jHr16t132c6dOwMAkpOTK719p+6RExERVZYRIoylQwBVXN8Soiji1VdfxdatW7F//36Eh4c/cJ2EhAQAQHBwcKXbYSEnIiKygejoaMTFxeHbb7+FWq3GjRs3AAAajQYqlQqXLl1CXFwcnnjiCdSqVQunT5/GpEmT0KNHD7Rp06bS7bCQExGRSzDCiKoNjv+9viWWL18OoOSmL3dbs2YNoqKi4OHhgT179mDx4sXIz89HaGgonn76abz77rsWtcNCTkRELsEgijCIVR9at3Rd8QHLh4aG4sCBA1XOU4onuxERETkx9siJiMgl2PtkN3thISciIpdghAhDDSzkHFonIiJyYuyRExGRS+DQeg3gduYO5P/JgdvFIgi3DdDFBMLY1cv0vqrf5XLXKx7rB/2zvnZKWWJgVCaeeTkd/gF6pCSq8Om7dZGU4GnXDMzETMzETM6SqTLsfda6vbjW0HqhCGNDDxRNqFXu23e+DjWbiibXhigAhu5e5S5vKz2fysL4mDRsWBiE6H5NkZKoxNy4FGhqFds1BzMxEzMxkzNkcnUOUciXLVuGBg0aQKlUonPnzvj9999t0o6xkyf0Uf4wdqugMPvLzSbZkQIY2yohBtv3IShDx2diR5w/dm3yx9WLSiyZVg+6OwL6jbxt1xzMxEzMxEzOkKmyjNUwOSLJC/mmTZswefJkxMTE4MSJE2jbti369euH9PR0aYNlGeD2ewEM/Wz3aL3yyN2NaNKmACcO/d2uKAo4eUiNFh0L7JqFmZiJmZjJ0TNZwvC/s9atmRyR5IV84cKFGDduHEaPHo0WLVpgxYoV8PT0xBdffCFpLvnuXEDlBkN3+x738fE3QCYHsjPMT1/IypTDL0Bv1yzMxEzMxEyOnskSBtH6yRFJWsiLiooQHx+PPn36mOa5ubmhT58+OHLkSJnldTodtFqt2WQrsp15MPzDG/CQ/LsOERFRhSStUpmZmTAYDKhTp47Z/Dp16pieEnO32NhYaDQa0xQaGmqTXG5nCuF2rRj6x71tsv370d6WwaAHfO/5dutXW4+sDGkuMmAmZmImZnLUTJbgMXIHMH36dOTk5Jim1NRUm7Qj25kLYxMPiI0UNtn+/eiL3XDxtCfad881zRMEEe265yExXprLO5iJmZiJmRw1kyWMEGCwYjJCkPojlEvSr1C1a9eGTCbDzZs3zebfvHkTQUFBZZZXKBRQKKworneMENL+vkRCuKGHcEkHqGUQA/+3K/KNkB3MR/F4/6q3Y6Utq2pjyuJUXDjliaSTnhgyLgNKTyN2bWQmZmImZmImMidpIffw8EDHjh2xd+9eDB48GABgNBqxd+9eTJgwodrbc7ugg+LNv4fsPVaWXC6hf8wbxVMCAACyA3kAAENv+w+rlzrwnR80tQx4YeoN+AXokXJOhXdGhSM7076XwTETMzETMzlDpsoyiiWTNes7IkF80ANTbWzTpk2IjIzEypUr8fDDD2Px4sXYvHkz/vjjjzLHzu+l1Wqh0WjQeetrkHvZfxi8IhXdIY6IiMzpxWLsx7fIycmBj4+PTdoorRW/nQuCt7rqR5Tzco3o3PKGTbNWheRnJwwfPhwZGRl47733cOPGDbRr1w47dux4YBEnIiIiByjkADBhwgSbDKUTERGVKj1pzZr1HZFDFHIiIiJbM4oCjGLVi7E169qSU11+RkRERObYIyciIpfAoXUiIiInZoAbDFYMRBuqMUt1YiEnIiKXIFp5jFzkMXIiIiKqbuyRExGRS+AxciIiIidmEN1gEK04Ru6gt2jl0DoREZETY4+ciIhcghECjFb0X41wzC45CzkREbkEHiN3YKohVyAXHOcReilx7aSOUEbD5xKkjkBERDZQIwo5ERHRg1h/shuH1omIiCRTcozcioemOOjQOs9aJyIicmLskRMRkUswWnmvdZ61TkREJCEeIyciInJiRrjVyOvIeYyciIjIibFHTkRELsEgCjBY8ShSa9a1JRZyIiJyCQYrT3YzcGidiIiIqht75ERE5BKMohuMVpy1buRZ60RERNKpqUPrLOQABkZl4pmX0+EfoEdKogqfvlsXSQmedmlbeT4Pmu3pUFwugDxbjxuTGqCgk6/p/YAVV6A+mGW2TkEbNW681cgu+e4m5X5iJmZiJmai8rn8MfKeT2VhfEwaNiwMQnS/pkhJVGJuXAo0tYrt0r6gM6IoTIXM0fUqXKagrRpXPm1pmtInhNkl292k3k/MxEzMxEzWMuLvM9erMhml/gAVkLSQHzx4EAMHDkRISAgEQcC2bdvsnmHo+EzsiPPHrk3+uHpRiSXT6kF3R0C/kbft0v6ddj7IGhZs1gu/lygXYPB1N01Gb/sPpEi9n5iJmZiJmaxVekMYayZHJGmq/Px8tG3bFsuWLZOkfbm7EU3aFODEIbVpnigKOHlIjRYdCyTJVB7l+TyEvXQW9d44j9qrU+GWq7dr+464n5iJmZiJmaiEpMfI+/fvj/79+0vWvo+/ATI5kJ1hvhuyMuUIbayTKJW5gjY+yO/ki+IAD7jf1MF/83UEzU9B2uwmgJt9bk7giPuJmZiJmZjJUtbfa90xe+ROdbKbTqeDTvf3D4tWq5UwjX3kd/Uz/b24vgpF9VWoP+k8lIl5KGylvs+aRER0Nz6P3AHExsZCo9GYptDQUKu2p70tg0EP+AaYD1X71dYjK8Mxv+Po6yhgUMvgftN+334dcT8xEzMxEzNZqrRHbs3kiBwzVQWmT5+OnJwc05SammrV9vTFbrh42hPtu+ea5gmCiHbd85AY75iXUshuFcEtzwCDr7vd2nTE/cRMzMRMzEQlHP8r1F0UCgUUCkW1bnPLqtqYsjgVF055IumkJ4aMy4DS04hdG/2rtZ2KCIUGuN/4u3ftnlEEjz8LYPCWw+gtg983N5D/sC8MvnLIbxahVlwaiusoUNDGvsPqUu8nZmImZmIma1l/QxjH7Ps6VSG3hQPf+UFTy4AXpt6AX4AeKedUeGdUOLIz7dPjVaQUIOT9S6bXtb5KAwDk9vBD5phQeFwthPrQZbjlG6D3k+NOax9kDQsC3O37AyX1fmImZmImZrKWURRgtOIJZtasa0uCKEp389i8vDwkJycDANq3b4+FCxeid+/e8Pf3R/369R+4vlarhUajQS8MglxwnB+ilLh2Ukcoo+FzCVJHICIqQy8WYz++RU5ODnx8fGzSRmmtWHDsEaisuA/HnTw93ux0yKZZq0LSHvnx48fRu3dv0+vJkycDACIjI7F27VqJUhERUU1ktHJo3VFvCCNpIe/VqxckHBAgIiIXYv3TzxyzkDtmKiIiIqoUlz/ZjYiIXIMBAgxW3NTFmnVtiYWciIhcAofWiYiIyOGwR05ERC7BAOuGxw3VF6VasZATEZFLqKlD6yzkRETkEmrqY0wdMxUREZGTi42NRadOnaBWqxEYGIjBgwcjKSnJbJnCwkJER0ejVq1a8Pb2xtNPP42bN29a1A4LORERuQTxf88jr+okWnh8/cCBA4iOjsbRo0exe/duFBcXo2/fvsjPzzctM2nSJHz//ff4z3/+gwMHDiAtLQ1Dhw61qB0OrRMRkUuw99D6jh07zF6vXbsWgYGBiI+PR48ePZCTk4PVq1cjLi4O//jHPwAAa9asQfPmzXH06FH83//9X6XaYY+ciIjIAlqt1mzS6XQPXglATk4OAMDfv+SRr/Hx8SguLkafPn1MyzRr1gz169fHkSNHKp2HPXIbcMQnjaXM7yJ1hDIaTqv8DyoRkbWq6zGmoaGhZvNjYmIwc+bM+69rNGLixIno1q0bWrVqBQC4ceMGPDw84Ovra7ZsnTp1cOPGjUrnYiEnIiKXYLDy6Wel66amppo9xlShUDxw3ejoaJw9exaHDx+ucvsVYSEnIiKygI+Pj0XPI58wYQK2b9+OgwcPol69eqb5QUFBKCoqQnZ2tlmv/ObNmwgKCqr09nmMnIiIXELp0Lo1kyVEUcSECROwdetW7Nu3D+Hh4Wbvd+zYEe7u7ti7d69pXlJSEq5evYouXSp/OJQ9ciIicglGuMFoRf/V0nWjo6MRFxeHb7/9Fmq12nTcW6PRQKVSQaPR4MUXX8TkyZPh7+8PHx8fvPrqq+jSpUulz1gHWMiJiIhsYvny5QCAXr16mc1fs2YNoqKiAACLFi2Cm5sbnn76aeh0OvTr1w+ffvqpRe2wkBMRkUswiAIMVpy1bum6oig+cBmlUolly5Zh2bJlVY3FQk5ERK6hui4/czQs5ERE5BJEK59+JvKhKURERFTd2CMnIiKXYIAAg4UPPrl3fUfEQk5ERC7BKFp3nNv44HPXJMGhdSIiIifGHjmAgVGZeObldPgH6JGSqMKn79ZFUoKny2bqFJiGsS1PoaV/Bup4FuDl/f2wJ7XkjkRywYBJ7Y6hZ92rCFVrkVvkgV+v18O/T3ZG+h0vu+S7G//tmImZmKmyjFae7GbNurbkmKnsqOdTWRgfk4YNC4MQ3a8pUhKVmBuXAk2tYpfNpJLr8UdWLcz6/ZEy7ynlerSslYFlZzpg8A/PYMKBfmioycaK3jvK2ZJtSb2fmImZmMkxMlWWEYLVkyOStJDHxsaiU6dOUKvVCAwMxODBg5GUlGTXDEPHZ2JHnD92bfLH1YtKLJlWD7o7AvqNvG3XHI6U6WBafSxKeBi7U8PLvJdXrEDUnoH46UpjXNb6IiGzDmb93h2ta2Ug2DPXLvlKSb2fmImZmMkxMrk6SQv5gQMHEB0djaNHj2L37t0oLi5G3759kZ+fb5f25e5GNGlTgBOH1KZ5oijg5CE1WnQssEsGZ8j0IGr3IhhFILf4wY/yqy6OuJ+YiZmYybGV3tnNmskRSXqMfMcO8+HYtWvXIjAwEPHx8ejRo4fN2/fxN0AmB7IzzHdDVqYcoY11Nm/fWTLdj4ebHlM7HMX2Pxsjr9jDbu064n5iJmZiJsdWU4+RO9TJbjk5OQAAf3//ct/X6XTQ6f7+YdFqtXbJReWTCwYs6bEbAoCY32z/xYuIiMpymK8XRqMREydORLdu3dCqVatyl4mNjYVGozFNoaGhVrWpvS2DQQ/4BujN5vvV1iMrQ5rvOI6YqTxywYCPe+xGiFceovY8adfeOOCY+4mZmImZHJsRVj6PnCe73V90dDTOnj2LjRs3VrjM9OnTkZOTY5pSU1OtalNf7IaLpz3RvvvfJ2kJgoh23fOQGC/NpRSOmOlepUW8gU8OovY8iewipd0zOOJ+YiZmYibHJlp5xrrooIXcIb5CTZgwAdu3b8fBgwdRr169CpdTKBRQKKr3hKotq2pjyuJUXDjliaSTnhgyLgNKTyN2bSx/eN8epM7kKS9GmDrH9LqetxbN/TKRrVMg444nlvbcjZb+GRj/c3+4CSJqK0tOcskpUqDYKLNLRkD6/cRMzMRMjpGpsvj0MxsQRRGvvvoqtm7div379yM8vOzlTrZ24Ds/aGoZ8MLUG/AL0CPlnArvjApHdqa73bM4SqZWtdKxoe/3ptfvPHQEALDlUlMsOfUQ+oT+CQD4/sn/mq03atdA/H6zrl0yAtLvJ2ZiJmZyjEyuThAr8+RzG3nllVcQFxeHb7/9FhEREab5Go0GKpXqgetrtVpoNBr0wiDIBf4Q3U/K/C5SRyij4bQjUkcgIonpxWLsx7fIycmBj4+PTdoorRVDdo+Gu1fVz+cpzi/C1sfW2DRrVUjaI1++fDkAoFevXmbz16xZg6ioKPsHIiKiGotD6zYg4WAAERFRjeAQJ7sRERHZmrX3S3fUy89YyImIyCXU1KF1h7mOnIiIiCzHHjkREbmEmtojZyEnIiKXUFMLOYfWiYiInBh75ERE5BJqao+chZyIiFyCCOsuIXPUO5+wkBMRkUuoqT1yHiMnIiJyYuyRExGRS6ipPXIWchfhiE8aG5KYIXWEMra2CJA6AhHZSE0t5BxaJyIicmLskRMRkUuoqT1yFnIiInIJoihAtKIYW7OuLXFonYiIyImxR05ERC6BzyMnIiJyYjX1GDmH1omIiJwYe+REROQSaurJbizkRETkEmrq0DoLORERuYSa2iPnMXIiIiInxh45ERG5BNHKoXVH7ZGzkAMYGJWJZ15Oh3+AHimJKnz6bl0kJXgykwNlSlqlQtoeBfJSZHBTArXaFaPlG/lQhxtMy1zerMS1HxTITpRDn++GAUcz4eEj2iXf3fhvx0zM5JhEAKIVvxLs/9ukclx+aL3nU1kYH5OGDQuDEN2vKVISlZgblwJNrWJmcqBMmcc90HDkHfT8OhvdP8+GUQ/8MlYDfcHfyxgKBQR2L0LT8QUVb8jGpN5PzMRMrpjJ1UlayJcvX442bdrAx8cHPj4+6NKlC3766Se7Zhg6PhM74vyxa5M/rl5UYsm0etDdEdBv5G275mCm++u2KgdhQ3TwaWKAppkBHefl4s51GbIT3U3LNH7hDiLG3YF/W71dMpVH6v3ETMzkipkqq/TObtZMjkjSQl6vXj188MEHiI+Px/Hjx/GPf/wDgwYNwrlz5+zSvtzdiCZtCnDikNo0TxQFnDykRouO0vTqmKlyinNL/kN5aIyStF8eR9xPzMRMNT2TJUrPWrdmckSSFvKBAwfiiSeeQJMmTdC0aVPMnTsX3t7eOHr0aLnL63Q6aLVas8kaPv4GyORAdob5qQJZmXL4BUjTq2OmBxONwOkPvOHfoRg+TQwPXsFOHG0/MRMzuUImcqBj5AaDARs3bkR+fj66dOlS7jKxsbHQaDSmKTQ01M4pyRGcmuON3ItyPPxv677IEZFrKb0hjDWTI5K8kJ85cwbe3t5QKBR46aWXsHXrVrRo0aLcZadPn46cnBzTlJqaalXb2tsyGPSA7z3fJP1q65GVIc0J/cx0f6fe98aNAx7ovjYbqiDHGVYHHGs/MRMzuUomS4ii9ZMjkryQR0REICEhAb/99htefvllREZGIjExsdxlFQqF6cS40ska+mI3XDztifbdc03zBEFEu+55SIyX5lIKZiqfKJYU8bQ9Huj+RQ686jlWEQccYz8xEzO5WiZygOvIPTw80LhxYwBAx44dcezYMXz88cdYuXKlXdrfsqo2pixOxYVTnkg66Ykh4zKg9DRi10Z/u7TPTJVzao43rv2gwP99ooXcy4jCjJIhLne1CJmyZJnCDAGFmW7IvyoDAGgvyCH3MsIz2AgPX/t8lZZ6PzETM7lipsqqqbdolbyQ38toNEKn09mtvQPf+UFTy4AXpt6AX4AeKedUeGdUOLIz3R+8MjPZLdPljSoAwKFIX7P5HeZqETak5Ofl8iYV/vjUy/TeoRd8yyxja1LvJ2ZiJlfMVFk1tZALoijdqP/06dPRv39/1K9fH7m5uYiLi8P8+fOxc+dOPPbYYw9cX6vVQqPRoBcGQS44/g8RmRuSmCF1hDK2tgiQOgKRS9GLxdiPb5GTk2P14dKKlNaKiLi3IPNUVHk7hgIdkp77wKZZq0LSHnl6ejpeeOEFXL9+HRqNBm3atKl0ESciIiKJC/nq1aulbJ6IiFyItWeeO+pZ6w53jJyIiMgWSgq5NcfIqzFMNZL88jMiIiKqOvbIiYjIJdTUs9ZZyImIyCWIsO6Z4g46ss6hdSIiImfGHjkREbkEDq0TERE5sxo6ts6hdSIicg3/65FXdYKFPfKDBw9i4MCBCAkJgSAI2LZtm9n7UVFREATBbHr88cct/lgs5ERERDaQn5+Ptm3bYtmyZRUu8/jjj+P69eum6euvv7a4HQ6tExGRS7D3nd369++P/v3733cZhUKBoKCgqocCe+REROQirBlWv/tEOa1WazZZ88TO/fv3IzAwEBEREXj55Zdx69Yti7fBHjlJxhGfNNYpwSB1hDKOtZNJHYGI7hIaGmr2OiYmBjNnzrR4O48//jiGDh2K8PBwXLp0CW+//Tb69++PI0eOQCar/P97FnIiInINVThhrcz6AFJTU80eY6pQVO3RqCNGjDD9vXXr1mjTpg0aNWqE/fv349FHH630dji0TkRELqH0GLk1EwD4+PiYTVUt5Pdq2LAhateujeTkZIvWYyEnIiJyANeuXcOtW7cQHBxs0XocWiciItdg5xvC5OXlmfWuL1++jISEBPj7+8Pf3x+zZs3C008/jaCgIFy6dAlvvvkmGjdujH79+lnUDgs5ERG5BHvfovX48ePo3bu36fXkyZMBAJGRkVi+fDlOnz6NdevWITs7GyEhIejbty/mzJlj8VB9pQr5d999V+kNPvXUUxYFICIiqol69eoF8T4Xn+/cubNa2qlUIR88eHClNiYIAgwGx7t8h4iICIDD3i/dGpUq5Eaj0dY5iIiIbKqmPv3MqrPWCwsLqysHERGRbYnVMDkgiwu5wWDAnDlzULduXXh7eyMlJQUAMGPGDKxevbraAxIREVHFLC7kc+fOxdq1a7FgwQJ4eHiY5rdq1Qqff/55tYYjIiKqPkI1TI7H4kL+5ZdfYtWqVRg1apTZvWDbtm2LP/74o1rDERERVZsaOrRu8XXkf/31Fxo3blxmvtFoRHFxcbWEsreBUZl45uV0+AfokZKowqfv1kVSgiczMdN9pa0WkLVXQOGfgJsC8G4L1JtohKrB38sYdUDqRwJu7RQgFgGarkDY20a417JLRBP+2zFTTc/kyizukbdo0QKHDh0qM/+///0v2rdvXy2h7KnnU1kYH5OGDQuDEN2vKVISlZgblwJNLem+lDCTc2TKjRdQZ7iIFl8aEbHCCFEPXHjZDYY7fy9z9d8Csg8KaPyhEc1WG1GUASRPtu+dkaXeT8zETA6jhvbILf6N8t5772HChAmYP38+jEYjtmzZgnHjxmHu3Ll47733qhzkgw8+gCAImDhxYpW3URVDx2diR5w/dm3yx9WLSiyZVg+6OwL6jbxt1xzM5HyZIj41ovYgEarGgGcEED7biKLrAgoSS97X5wKZWwWEvmGEz8OAVwsgfJYReacE5J22S0QA0u8nZmImh1H69DNrJgdkcSEfNGgQvv/+e+zZswdeXl547733cP78eXz//fd47LHHqhTi2LFjWLlyJdq0aVOl9atK7m5EkzYFOHFIbZonigJOHlKjRccCu2ZhJufPZMgr+VOmKfmz4Dwg6gX4dP57GVU44BEsIu+UfX4hOOJ+YiZmoupVpXutP/LII9i9e3e1BMjLy8OoUaPw2Wef4f3337/vsjqdDjqdzvRaq9Va1baPvwEyOZCdYb4bsjLlCG2sq2At22Im58wkGoGrH7rBu50Iz/+dQlKcKUBwFyH3MV/W3R8ovmWfXI62n5iJmaR096NIq7q+I6rywbrjx49j/fr1WL9+PeLj46scIDo6GgMGDECfPn0euGxsbCw0Go1pCg0NrXK7RNXpSqyAO8lAo/m8CyKRw6qhx8gt7pFfu3YNI0eOxC+//AJfX18AQHZ2Nrp27YqNGzeiXr16ld7Wxo0bceLECRw7dqxSy0+fPt309BigpEduTTHX3pbBoAd8A/Rm8/1q65GVIc2D4ZjJ+TJdiS05oa35F0Z41Pl7vnttEWKxG/RamPXKi2/DbmetO9J+YiZmItuwuEc+duxYFBcX4/z587h9+zZu376N8+fPw2g0YuzYsZXeTmpqKl5//XVs2LABSqWyUusoFAr4+PiYTdbQF7vh4mlPtO+ea5onCCLadc9DYrw0l1Iwk/NkEsWSIp61T0CzVUYo6pq/79kcEOQitL//Pe/On0DRdQHebe3z1d4R9hMzMZPDqKEnu1n8FerAgQP49ddfERERYZoXERGBpUuX4pFHHqn0duLj45Geno4OHTqY5hkMBhw8eBCffPIJdDqd2Q1nbGXLqtqYsjgVF055IumkJ4aMy4DS04hdG/1t3jYzOXemK/ME3P5JQOPFRsi8gOLMkvkyb8BNCcjVQO0hIlI/coNcU7LMlQ/c4NVGhLcdz+uUej8xEzM5CkEsmaxZ3xFZXMhDQ0PLvfGLwWBASEhIpbfz6KOP4syZM2bzRo8ejWbNmmHatGl2KeIAcOA7P2hqGfDC1BvwC9Aj5ZwK74wKR3amu13aZybnzZTxn5IBraSx5j+r4bNKLksDgPpTRKQKQPIbbhCLAJ+uQIO37XscXer9xEzM5DCsPc7toIVcEO/31PNyfPvtt5g3bx6WLVuGhx56CEDJiW+vvvoqpk2bVulnl5enV69eaNeuHRYvXlyp5bVaLTQaDXphEOSCE/wQkcPrlGCQOkIZx9rZ50stkRT0YjH241vk5ORYfbi0IqW1InTxbLipKncotzzGO4VInfieTbNWRaV65H5+fhCEv48N5Ofno3PnzpDLS1bX6/WQy+UYM2aMVYWciIjIZqw9zu3Mx8gr20O21v79++3SDhERuaAaOrReqUIeGRlp6xxERERUBVZd+FdYWIiioiKzeY503ICIiMikhvbILb6OPD8/HxMmTEBgYCC8vLzg5+dnNhERETmkGnpnN4sL+Ztvvol9+/Zh+fLlUCgU+PzzzzFr1iyEhITgyy+/tEVGIiIiqoDFQ+vff/89vvzyS/Tq1QujR4/GI488gsaNGyMsLAwbNmzAqFGjbJGTiIjIOjX0rHWLe+S3b99Gw4YNAZQcD799u+QZtN27d8fBgwerNx0REVE1Kb2zmzWTI7K4kDds2BCXL18GADRr1gybN28GUNJTL32IChEREdmHxYV89OjROHXqFADgrbfewrJly6BUKjFp0iRMnTq12gMSERFVixp6spvFx8gnTZpk+nufPn3wxx9/ID4+Ho0bN0abNnZ8EgQRERFZdx05AISFhSEsLKw6shAREdmMACufflZtSapXpQr5kiVLKr3B1157rcphiIiIyDKVKuSLFi2q1MYEQWAhJ6fmiE8aq/+bl9QRyrjaOV/qCFRFMge7+6YoFgFaezVWMy8/q1QhLz1LnYiIyGnxFq1ERETkaKw+2Y2IiMgp1NAeOQs5ERG5BGvvzlZj7uxGREREjoM9ciIicg01dGi9Sj3yQ4cO4fnnn0eXLl3w119/AQDWr1+Pw4cPV2s4IiKialNDb9FqcSH/5ptv0K9fP6hUKpw8eRI6nQ4AkJOTg3nz5lV7QCIiIqqYxYX8/fffx4oVK/DZZ5/B3d3dNL9bt244ceJEtYYjIiKqLjX1MaYWHyNPSkpCjx49yszXaDTIzs6ujkxERETVr4be2c3iHnlQUBCSk5PLzD98+DAaNmxYLaGIiIiqHY+Rlxg3bhxef/11/PbbbxAEAWlpadiwYQOmTJmCl19+2RYZiYiIqAIWD62/9dZbMBqNePTRR1FQUIAePXpAoVBgypQpePXVV22R0eYGRmXimZfT4R+gR0qiCp++WxdJCZ7MxExOl6nwpAHar4pR/IcRhkwRtRco4Nnz7//mhlsispcVofA3A4y5IhTtZfB7wwPu9e1/Swn+2zlfplYP5eDpF6+hccs81Aoswpzo5jiyt7YkWaqCN4T5H0EQ8M477+D27ds4e/Ysjh49ioyMDMyZM8cW+Wyu51NZGB+Thg0LgxDdrylSEpWYG5cCTa1iZmImp8sk3hHh0cQNflM9yr4nish4sxD6v4yo/aECQetVkAcJSH+1EMY79v0NJfV+YqaqUaoMuPyHFz6d3UiS9q3GoXVzHh4eaNGiBR5++GF4e3tXaRszZ86EIAhmU7NmzaoaqUqGjs/Ejjh/7Nrkj6sXlVgyrR50dwT0G3nbrjmYiZmqg6qrHL4vecCzV9nBNn2qiKKzRvhNU0DRQgb3MDf4TfOAqBNRsEtvl3ylpN5PzFQ1xw/548uPG+DIHufphbsCi4fWe/fuDUGo+My9ffv2WbS9li1bYs+ePX8HktvvZnNydyOatCnAxk8CTfNEUcDJQ2q06FhgtxzMxEz2IBaV/Cnc1VkX3AQI7gJ0p4zwHmSfHI64n5jJRVh7CZmD9sgtrprt2rUze11cXIyEhAScPXsWkZGRlgeQyxEUFFSpZXU6nekGNACg1Vr3NHoffwNkciA7w3w3ZGXKEdpYV8FatsVMzGQr7g0EyIIE5HxaBP+3FBBUQO7XxTCkizBk2u83lCPuJ2ZyETX0Fq0WF/JFixaVO3/mzJnIy8uzOMDFixcREhICpVKJLl26IDY2FvXr1y932djYWMyaNcviNogIEOQCAj5Q4NbcIlx7rACQAcpOMii7yKSORkRWqLZTVZ9//nl88cUXFq3TuXNnrF27Fjt27MDy5ctx+fJlPPLII8jNzS13+enTpyMnJ8c0paamWpVZe1sGgx7wDTA/PuhXW4+sDGmeJ8NMzGRLHs1lCP5KhXp7PVH3B08EfqyEUStCHmK/G1044n5iJhfBk93u78iRI1AqlRat079/fzz77LNo06YN+vXrhx9//BHZ2dnYvHlzucsrFAr4+PiYTdbQF7vh4mlPtO/+9xcHQRDRrnseEuOlubyDmZjJHty8Bcj8BBRfNaLovBGqHvbrlTvifmIm18BbtP7P0KFDzV6Loojr16/j+PHjmDFjhlVhfH190bRp03LvHGcrW1bVxpTFqbhwyhNJJz0xZFwGlJ5G7Nrob7cMzMRM1cVYIEJ/zWh6rU8TUXTBADcfAfIgNxTs1cPNV4A8SEBRshFZi4qg6iGD6v/s28OTej8xU9UoPQ0IqX/H9LpOPR0aNstDbo4cGdct68hR9bH4f69GozF77ebmhoiICMyePRt9+/a1KkxeXh4uXbqEf/7zn1ZtxxIHvvODppYBL0y9Ab8APVLOqfDOqHBkZ7o/eGVmYiYHy1R03oj0VwpNr7MXl5yq7jVAjlrvKWDIFJG1uAiG2yJktQV49ZdD86L995fU+4mZqqZJq1zM//KM6fX46SkAgN1bA7FoeoQkmQgQRFGs9GCBwWDAL7/8gtatW8PPz8/qxqdMmYKBAwciLCwMaWlpiImJQUJCAhITExEQEPDA9bVaLTQaDXphEOSCdP/ZiGyp/m9eUkco42rnfKkjUBXJrDwkWd30YhH2ar9CTk6O1YdLK1JaKxpNnweZhYeA72YoLMSl2LdtmrUqLOqRy2Qy9O3bF+fPn6+WQn7t2jWMHDkSt27dQkBAALp3746jR49WqogTERFZoqbeotXiofVWrVohJSUF4eHhVje+ceNGq7dBRETkyiw+a/3999/HlClTsH37dly/fh1ardZsIiIiclg17NIzwIIe+ezZs/HGG2/giSeeAAA89dRTZrdqFUURgiDAYDBUf0oiIiJrufqd3WbNmoWXXnoJP//8sy3zEBERkQUqXchLT27v2bOnzcIQERHZCk92A+771DMiIiKH5upD6wDQtGnTBxbz27ele3YvERGRq7GokM+aNavMnd2IiIicAYfWAYwYMQKBgYEPXpCIiMjR2Hlo/eDBg/jwww8RHx+P69evY+vWrRg8ePDfmxNFxMTE4LPPPkN2dja6deuG5cuXo0mTJha1U+nryHl8nIiIqPLy8/PRtm1bLFu2rNz3FyxYgCVLlmDFihX47bff4OXlhX79+qGwsLDc5Sti8VnrRERETsnOPfL+/fujf//+5W9KFLF48WK8++67GDRoEADgyy+/RJ06dbBt2zaMGDGi0u1UukduNBo5rE5ERE6rup5Hfu8dTXU6ncVZLl++jBs3bqBPnz6meRqNBp07d8aRI0cs2pZ9H0JMRBZzxCeNXfyks9QRymgy4TepIzgFg4PdStsgFtuvsWrqkYeGhprNjomJwcyZMy3a1I0bNwAAderUMZtfp04d03uVxUJORERkgdTUVLPHmCoUCgnTVOGhKURERE7Jmgem3NWb9/HxMZuqUsiDgoIAADdv3jSbf/PmTdN7lcVCTkRELqG6jpFXh/DwcAQFBWHv3r2meVqtFr/99hu6dOli0bY4tE5ERGQDeXl5SE5ONr2+fPkyEhIS4O/vj/r162PixIl4//330aRJE4SHh2PGjBkICQkxu9a8MljIiYjINdj58rPjx4+jd+/epteTJ08GAERGRmLt2rV48803kZ+fj/HjxyM7Oxvdu3fHjh07oFQqLWqHhZyIiFyCvW/R2qtXr/veg0UQBMyePRuzZ8+ueijwGDkREZFTY4+ciIhcAx9jSkRE5MRqaCHn0DoREZETY4+ciIhcgvC/yZr1HRELORERuYYaOrTOQg5gYFQmnnk5Hf4BeqQkqvDpu3WRlODJTMzETNVAmayF357rUF7Nh1xbjLRxTZDf1t/0vv8P16A+cQvyrCKIMgG6+l7IHBgKXQNvu+S7G//tnDdTZdj78jN7cflj5D2fysL4mDRsWBiE6H5NkZKoxNy4FGhq2fGJPMzETDU4k5vOiKK6nkgf3qDc94sDlUh/tgGuvN0a1ya3QLG/AnU/+QOyXPvuM6n3EzNRVUleyP/66y88//zzqFWrFlQqFVq3bo3jx4/brf2h4zOxI84fuzb54+pFJZZMqwfdHQH9Rt62WwZmYqaanKmgpS9uDQw164XfLbdTbdxppoG+thJFwZ7IHFofskIDPNIK7JKvlNT7iZnsoJoemuJoJC3kWVlZ6NatG9zd3fHTTz8hMTERH330Efz8/OzSvtzdiCZtCnDikNo0TxQFnDykRouO9v0lwkzM5CqZ7ktvhM8vGTCoZNDVtd9QrSPuJ2aykRpWxAGJj5HPnz8foaGhWLNmjWleeHh4hcvrdDrodDrTa61Wa1X7Pv4GyORAdob5bsjKlCO0sa6CtWyLmZippmcqj9eZLAStSYZQbITBxx1/TWgGo7e73dp3xP3ETFRZkvbIv/vuOzz00EN49tlnERgYiPbt2+Ozzz6rcPnY2FhoNBrTFBoaase0RGQrBU19cHV6yTHy/Ba+CP4i2e7HyKnmc6THmFYnSQt5SkoKli9fjiZNmmDnzp14+eWX8dprr2HdunXlLj99+nTk5OSYptTUVKva196WwaAHfAP0ZvP9auuRlSHNYAUzMVNNz1QeUSFDcYASheFqpI9qCNEN8Pk13W7tO+J+YiYb4DHy6mc0GtGhQwfMmzcP7du3x/jx4zFu3DisWLGi3OUVCgV8fHzMJmvoi91w8bQn2nfPNc0TBBHtuuchMV6aSymYiZlqeqZKEQFBb7/fmo64n5iJKkvSr1DBwcFo0aKF2bzmzZvjm2++sVuGLatqY8riVFw45Ymkk54YMi4DSk8jdm0s/wxbZmImZrKMoDPAPaPQ9Nr9lg4e1/Jh9JTD4CWH/8405Lf2hV7jAVmeHpqDNyHPLkJeB/vuM6n3EzPZXk29jlzSQt6tWzckJSWZzbtw4QLCwsLsluHAd37Q1DLghak34BegR8o5Fd4ZFY7sTPudaMNMzFSTMymv5KPekvOm1wFbrgIAtJ1rI31EODxu3oHPbxlwy9fD6ClHYZgXrk1qgaJg+/bwpN5PzGQHNfTOboJ4v6ee29ixY8fQtWtXzJo1C8OGDcPvv/+OcePGYdWqVRg1atQD19dqtdBoNOiFQZALTvBDRFRDXPyks9QRymgy4TepI1AV6MVi7Me3yMnJsfpwaUVKa0XrF+dB5qGs8nYMRYU4s/ptm2atCkmPkXfq1Albt27F119/jVatWmHOnDlYvHhxpYo4ERGRJWrqWeuSn2b45JNP4sknn5Q6BhER1XQ1dGhd8kJORERkFzW0kEt+r3UiIiKqOvbIiYjIJfDyMyIiImfGoXUiIiJyNOyRExGRSxBEEYIVt06xZl1bYiEnIiLXwKF1IiIicjTskRMRkUvgWetERETOjEPrRERE5GjYIyciiznik8Z2piVIHaGMfiHtpI5Ad+HQOhERkTOroUPrLOREROQSamqPnMfIiYiInBh75ERE5Bo4tE5EROTcHHV43BocWiciInJi7JETEZFrEMWSyZr1HRALORERuQSetU5EREQOhz1yIiJyDTxrnYiIyHkJxpLJmvUdEYfWiYiInBh75AAGRmXimZfT4R+gR0qiCp++WxdJCZ7MxEzMVEMzbVwaiF9+9EVqsgIeSiNaPFSAF99JQ2hjnWmZqU83xukj3mbrPfHPTLw+/5pdMpbiv101qqFD6y7fI+/5VBbGx6Rhw8IgRPdripREJebGpUBTq5iZmImZamim00e8MTAqE4u3X0Tsxksw6IG3RzZCYYH5r8T+ozLxdcJZ0zT23TS75Csl9X5ylkyVVXrWujWTI5K0kDdo0ACCIJSZoqOj7ZZh6PhM7Ijzx65N/rh6UYkl0+pBd0dAv5G37ZaBmZiJmeybaV5cCvoOv40GEYVo1LIQbyy+ivS/PHDxtMpsOYVKhH+g3jR5qe17kFTq/eQsmSqt9DpyayYHJGkhP3bsGK5fv26adu/eDQB49tln7dK+3N2IJm0KcOKQ2jRPFAWcPKRGi44FdsnATMzETNJnytfKAABqX4PZ/J+3+OHZlq0wvncEvpgXjMICwW6ZHHE/OWImkvgYeUBAgNnrDz74AI0aNULPnj3LXV6n00Gn+/sYllartap9H38DZHIgO8N8N2Rlys2OldkTMzETM9mX0QisiKmLlp3y0KBZoWl+7yFZCKxXhFp1inH5vAqr5wbj2iUF3lv9p11yOdp+ctRMlqipN4RxmJPdioqK8NVXX2Hy5MkQhPK/9cbGxmLWrFl2TkZENdknb9fDlT9U+GjbRbP5Tzx/y/T38OaF8A8sxrRhjZH2pwdCGhTZOyZVB57sZlvbtm1DdnY2oqKiKlxm+vTpyMnJMU2pqalWtam9LYNBD/gG6M3m+9XWIytDmu84zMRMzGQ/n7xdF7/t9sGC/yYjIOT+J2s161AydJz2p8Ie0RxqPzlyJnKgQr569Wr0798fISEhFS6jUCjg4+NjNllDX+yGi6c90b57rmmeIIho1z0PifHSXErBTMzETLYniiVF/NcdGiz4TzKC6j+4h33pbMmJcP6B9jk72xH2kzNkskRNPWvdIb5CXblyBXv27MGWLVvs3vaWVbUxZXEqLpzyRNJJTwwZlwGlpxG7NvrbPQszMRMz2SfTJ2/Xw89b/TBzTQpU3kbcTi/5VeilNkChEpH2pwd+3uqHhx/VQu1nwOVEJVbOrIvW/5eHhi0KH7D16iP1fnKWTJXGp5/Zzpo1axAYGIgBAwbYve0D3/lBU8uAF6begF+AHinnVHhnVDiyM93tnoWZmImZ7JNp+7raAICpTzcxm//GoqvoO/w25O4iTh5SY+vnASgscENASDG6P5GNkRNv2iVfKan3k7NkcnWCKEr7FcNoNCI8PBwjR47EBx98YNG6Wq0WGo0GvTAIcoE/RESubGdagtQRyugX0k7qCA5PLxZjP75FTk6O1YdLK1JaK7r0nw25u7LK29EXF+LIT+/ZNGtVSN4j37NnD65evYoxY8ZIHYWIiGqyGnrWuuSFvG/fvpB4UICIiMhpSV7IiYiI7IE3hCEiInJmRrFksmZ9B8RCTkRErqGGHiN3mBvCEBERkeXYIyciIpcgwMpj5NWWpHqxkBMRkWuooXd249A6ERGRE2MhJyIil2Dvh6bMnDkTgiCYTc2aNav2z8WhdSIicg0SnLXesmVL7Nmzx/RaLq/+sstCTkREZCNyuRxBQUE2bYND60RE5BIEUbR6AkoewnL3pNPpKmzz4sWLCAkJQcOGDTFq1ChcvXq12j8Xe+Q2IK9XV+oIZeiv/SV1BCKbcsQnjV38pLPUEcpoMuE3qSNIx/i/yZr1AYSGhprNjomJwcyZM8ss3rlzZ6xduxYRERG4fv06Zs2ahUceeQRnz56FWq22Iog5FnIiIiILpKammj3GVKFQlLtc//79TX9v06YNOnfujLCwMGzevBkvvvhiteVhISciIpdw9/B4VdcHAB8fnyo9j9zX1xdNmzZFcnJylTOUh8fIiYjINYjVMFkhLy8Ply5dQnBwsHUbugcLORERuYbSO7tZM1lgypQpOHDgAP7880/8+uuvGDJkCGQyGUaOHFmtH4tD60RERDZw7do1jBw5Erdu3UJAQAC6d++Oo0ePIiAgoFrbYSEnIiKXUJW7s927viU2btxY9cYswEJORESugQ9NISIiIkfDHjkREbkEwVgyWbO+I2IhJyIi18ChdSIiInI07JETEZFrkOAxpvbAQg5gYFQmnnk5Hf4BeqQkqvDpu3WRlOApSZZnI5PRtfdN1AvLQ5FOhvNn/LBmaQT+uuotSZ67OdJ+YiZmqmmZlMla+O25DuXVfMi1xUgb1wT5bf1N7/v/cA3qE7cgzyqCKBOgq++FzIGh0DWw/+8GR/y3q4zqukWro3H5ofWeT2VhfEwaNiwMQnS/pkhJVGJuXAo0tYolydO6w2388J8wvPFiV7z76sOQy4x4f+nvUCj1kuQp5Wj7iZmYqaZlctMZUVTXE+nDG5T7fnGgEunPNsCVt1vj2uQWKPZXoO4nf0CWa999JvV+orIkLeQGgwEzZsxAeHg4VCoVGjVqhDlz5kC047eeoeMzsSPOH7s2+ePqRSWWTKsH3R0B/UbetluGu733+sPY80M9XE1R4/JFHyyc3QaBwYVo3FwrSZ5SjrafmImZalqmgpa+uDUw1KwXfrfcTrVxp5kG+tpKFAV7InNofcgKDfBIK7BLvlJS7yer2PkWrfYiaSGfP38+li9fjk8++QTnz5/H/PnzsWDBAixdutQu7cvdjWjSpgAnDv39XFhRFHDykBotOtr3P0dFvLxLeuJ5Oe6SZXDE/cRMzFTTM92X3gifXzJgUMmgq2u/IW2n20/3EvH3M8mrMjlmHZf2GPmvv/6KQYMGYcCAAQCABg0a4Ouvv8bvv/9e7vI6nQ46nc70Wqu1rpfq42+ATA5kZ5jvhqxMOUIb6ypYy34EQcT4yYk4l+CHKynV9xB6SznifmImZqrpmcrjdSYLQWuSIRQbYfBxx18TmsHobb8v+c6ynyrCY+Q20LVrV+zduxcXLlwAAJw6dQqHDx82exj73WJjY6HRaExTaGioPePa3ctvnkNYwzzMf7ed1FGIyAEUNPXB1eklx8jzW/gi+Itkux8jJ8cjaSF/6623MGLECDRr1gzu7u5o3749Jk6ciFGjRpW7/PTp05GTk2OaUlNTrWpfe1sGgx7wDTA/kcyvth5ZGdKe0P/SlHN4uHs6pr/SGbfSVZJmccT9xEzMVNMzlUdUyFAcoERhuBrpoxpCdAN8fk23W/vOsp8qJMLKY+RSf4DySVrIN2/ejA0bNiAuLg4nTpzAunXr8O9//xvr1q0rd3mFQgEfHx+zyRr6YjdcPO2J9t1zTfMEQUS77nlIjJfqUgoRL005hy69buDtVzrjZpr0l3Q44n5iJmaq6ZkqRQQEvf2qi9Pup1I19GQ3Sb9CTZ061dQrB4DWrVvjypUriI2NRWRkpF0ybFlVG1MWp+LCKU8knfTEkHEZUHoasWtj+WeO2torb55Dz35pmDOlI+4UyOFXq+S4U36eHEU6mSSZAMfbT8zETDUtk6AzwD2j0PTa/ZYOHtfyYfSUw+Alh//ONOS39oVe4wFZnh6agzchzy5CXgf77jOp9xOVJWkhLygogJub+aCATCaD0Wi/O9Mf+M4PmloGvDD1BvwC9Eg5p8I7o8KRnSnNWeIDnrkKAJi/8jez+YtmtcGeH+pJEQmA4+0nZmKmmpZJeSUf9ZacN70O2FLyu0DbuTbSR4TD4+Yd+PyWAbd8PYyechSGeeHapBYoCrZvT1jq/WQVIwDByvUdkCDa86Lte0RFRWHPnj1YuXIlWrZsiZMnT2L8+PEYM2YM5s+f/8D1tVotNBoNemEQ5ILj/BDJ69WVOkIZ+mt/SR2ByOVc/KSz1BHKaDLhtwcvZEd6sRj78S1ycnKsPlxakdJa8WirNyGXKaq8Hb1Bh71nF9g0a1VI2iNfunQpZsyYgVdeeQXp6ekICQnBv/71L7z33ntSxiIiInIakhZytVqNxYsXY/HixVLGICIiV1BDH2PqBNcLEBERVYMaWshd/qEpREREzow9ciIicg01tEfOQk5ERK6hhl5+xkJOREQugQ9NISIiIofDHjkREbkGHiMnIiJyYkYREKwoxkbHLOQcWiciInJi7JETEZFr4NA6ERGRM7P2meIs5C6DTxqrHJkDPT2olEGrlToC1SCO9qQxABiSmCF1BDN38vTY30nqFM6NhZyIiFwDh9aJiIicmFGEVcPjPGudiIiIqht75ERE5BpEY8lkzfoOiIWciIhcA4+RExEROTEeIyciIiJHwx45ERG5Bg6tExEROTERVhbyaktSrTi0TkRE5MTYIyciItfAoXUiIiInZjQCsOJacCOvI3dYA6My8czL6fAP0CMlUYVP362LpARPZnLwTK0eysHTL15D45Z5qBVYhDnRzXFkb23J8pRytP3ETMxUFUmrVEjbo0BeigxuSqBWu2K0fCMf6nCDaZnLm5W49oMC2Yly6PPdMOBoJjx8HLPXWpO5/DHynk9lYXxMGjYsDEJ0v6ZISVRiblwKNLWKmcnBMylVBlz+wwufzm4kWYZ7OeJ+YiZmqorM4x5oOPIOen6dje6fZ8OoB34Zq4G+4O9lDIUCArsXoen4goo35EhKh9atmRyQpIU8NzcXEydORFhYGFQqFbp27Ypjx47ZNcPQ8ZnYEeePXZv8cfWiEkum1YPujoB+I2/bNQczWe74IX98+XEDHNkjfS+8lCPuJ2ZipqrotioHYUN08GligKaZAR3n5eLOdRmyE91NyzR+4Q4ixt2Bf1u9zfNUCxby6jd27Fjs3r0b69evx5kzZ9C3b1/06dMHf/1ln+d5y92NaNKmACcOqU3zRFHAyUNqtOgozTdMZnJejrifmImZqktxrgAA8NA45nFiVyZZIb9z5w6++eYbLFiwAD169EDjxo0xc+ZMNG7cGMuXLy93HZ1OB61WazZZw8ffAJkcyM4wP1UgK1MOvwBpvmEyk/NyxP3ETMxUHUQjcPoDb/h3KIZPE8ODV3BURtH6yQFJVsj1ej0MBgOUSqXZfJVKhcOHD5e7TmxsLDQajWkKDQ21R1QiIpd2ao43ci/K8fC/res8SU0UjVZPjkiyQq5Wq9GlSxfMmTMHaWlpMBgM+Oqrr3DkyBFcv3693HWmT5+OnJwc05SammpVBu1tGQx6wPeeb7d+tfXIypDmhH5mcl6OuJ+YiZmsdep9b9w44IHua7OhCnLMQlZpopW9cR4jL2v9+vUQRRF169aFQqHAkiVLMHLkSLi5lR9LoVDAx8fHbLKGvtgNF097on33XNM8QRDRrnseEuOlueSEmZyXI+4nZmKmqhLFkiKetscD3b/IgVc9Jy/iNZik3alGjRrhwIEDyM/Ph1arRXBwMIYPH46GDRvaLcOWVbUxZXEqLpzyRNJJTwwZlwGlpxG7NvrbLQMzVY3S04CQ+ndMr+vU06Fhszzk5siRcV15nzVtxxH3EzMxU1WcmuONaz8o8H+faCH3MqIwo+RkN3e1CNn//nsVZggozHRD/lUZAEB7QQ65lxGewUZ4+Dpg71W08jGmDtojd4hxUS8vL3h5eSErKws7d+7EggUL7Nb2ge/8oKllwAtTb8AvQI+Ucyq8Myoc2ZnuD16ZmSTN1KRVLuZ/ecb0evz0FADA7q2BWDQ9QpJMjrifmImZquLyRhUA4FCkr9n8DnO1CBuiK1lmkwp/fOpleu/QC75llnEoRiMgWDGy4KDHyAVRlO4rxs6dOyGKIiIiIpCcnIypU6dCqVTi0KFDcHd/8A+qVquFRqNBLwyCXJDuPxtVjczKQyO2YLDySggiRzckMUPqCGbu5OkxpdMvyMnJsfpwaUVKa8Wj6lGQCx5V3o5eLMLe3A02zVoVkvbIc3JyMH36dFy7dg3+/v54+umnMXfu3EoVcSIiIotwaL36DRs2DMOGDZMyAhERuQjRaIRoxdA6Lz8jIiKiaucQJ7sRERHZHIfWiYiInJhRBISaV8g5tE5EROTE2CMnIiLXIIoArLmO3DF75CzkRETkEkSjCNGKoXUJb7tyXyzkRETkGkQjrOuR8/IzIiIil7Ns2TI0aNAASqUSnTt3xu+//16t22chJyIilyAaRasnS23atAmTJ09GTEwMTpw4gbZt26Jfv35IT0+vts/FQk5ERK5BNFo/WWjhwoUYN24cRo8ejRYtWmDFihXw9PTEF198UW0fy6mPkZeeeKBHsVXX+JM0RLFI6ghlGMRiqSMQ2dSdPL3UEcwU/i+PPU4ks7ZW6FHy+0F7z8OVFAoFFApFmeWLiooQHx+P6dOnm+a5ubmhT58+OHLkSNWD3MOpC3lubi4A4DB+lDgJVQkfNEZkd/s7SZ2gfLm5udBoNDbZtoeHB4KCgnD4hvW1wtvbG6GhoWbzYmJiMHPmzDLLZmZmwmAwoE6dOmbz69Spgz/++MPqLKWcupCHhIQgNTUVarUagiBYtS2tVovQ0FCkpqY6zOPpmKlyHC2To+UBmKmymKlyqjOTKIrIzc1FSEhINaUrS6lU4vLlyygqsn4UUBTFMvWmvN64PTl1IXdzc0O9evWqdZs+Pj4O85+lFDNVjqNlcrQ8ADNVFjNVTnVlslVP/G5KpRJKpdLm7dytdu3akMlkuHnzptn8mzdvIigoqNra4cluRERENuDh4YGOHTti7969pnlGoxF79+5Fly5dqq0dp+6RExERObLJkycjMjISDz30EB5++GEsXrwY+fn5GD16dLW1wUL+PwqFAjExMZIf67gbM1WOo2VytDwAM1UWM1WOI2ZyVMOHD0dGRgbee+893LhxA+3atcOOHTvKnABnDUF01JvHEhER0QPxGDkREZETYyEnIiJyYizkREREToyFnIiIyImxkMP2j5iz1MGDBzFw4ECEhIRAEARs27ZN0jyxsbHo1KkT1Go1AgMDMXjwYCQlJUmaafny5WjTpo3phhRdunTBTz/9JGmme33wwQcQBAETJ06ULMPMmTMhCILZ1KxZM8nylPrrr7/w/PPPo1atWlCpVGjdujWOHz8uWZ4GDRqU2U+CICA6OlqyTAaDATNmzEB4eDhUKhUaNWqEOXPm2OWe5PeTm5uLiRMnIiwsDCqVCl27dsWxY8ckzeTqXL6Q2+MRc5bKz89H27ZtsWzZMsky3O3AgQOIjo7G0aNHsXv3bhQXF6Nv377Iz8+XLFO9evXwwQcfID4+HsePH8c//vEPDBo0COfOnZMs092OHTuGlStXok2bNlJHQcuWLXH9+nXTdPjwYUnzZGVloVu3bnB3d8dPP/2ExMREfPTRR/Dz85Ms07Fjx8z20e7duwEAzz77rGSZ5s+fj+XLl+OTTz7B+fPnMX/+fCxYsABLly6VLBMAjB07Frt378b69etx5swZ9O3bF3369MFff/0laS6XJrq4hx9+WIyOjja9NhgMYkhIiBgbGythqr8BELdu3Sp1DDPp6ekiAPHAgQNSRzHj5+cnfv7551LHEHNzc8UmTZqIu3fvFnv27Cm+/vrrkmWJiYkR27ZtK1n75Zk2bZrYvXt3qWPc1+uvvy42atRINBqNkmUYMGCAOGbMGLN5Q4cOFUeNGiVRIlEsKCgQZTKZuH37drP5HTp0EN955x2JUpFL98hLHzHXp08f0zxbPGKupsnJyQEA+Pv7S5ykhMFgwMaNG5Gfn1+ttz2squjoaAwYMMDs50pKFy9eREhICBo2bIhRo0bh6tWrkub57rvv8NBDD+HZZ59FYGAg2rdvj88++0zSTHcrKirCV199hTFjxlj9MCZrdO3aFXv37sWFCxcAAKdOncLhw4fRv39/yTLp9XoYDIYy9yxXqVSSj/S4Mpe+s5u9HjFXkxiNRkycOBHdunVDq1atJM1y5swZdOnSBYWFhfD29sbWrVvRokULSTNt3LgRJ06ccJhjhp07d8batWsRERGB69evY9asWXjkkUdw9uxZqNVqSTKlpKRg+fLlmDx5Mt5++20cO3YMr732Gjw8PBAZGSlJprtt27YN2dnZiIqKkjTHW2+9Ba1Wi2bNmkEmk8FgMGDu3LkYNWqUZJnUajW6dOmCOXPmoHnz5qhTpw6+/vprHDlyBI0bN5Ysl6tz6UJOlouOjsbZs2cd4tt3REQEEhISkJOTg//+97+IjIzEgQMHJCvmqampeP3117F79267P2WpInf33tq0aYPOnTsjLCwMmzdvxosvvihJJqPRiIceegjz5s0DALRv3x5nz57FihUrHKKQr169Gv3797fpYzUrY/PmzdiwYQPi4uLQsmVLJCQkYOLEiQgJCZF0P61fvx5jxoxB3bp1IZPJ0KFDB4wcORLx8fGSZXJ1Ll3I7fWIuZpiwoQJ2L59Ow4ePFjtj4+tCg8PD1MvoGPHjjh27Bg+/vhjrFy5UpI88fHxSE9PR4cOHUzzDAYDDh48iE8++QQ6nQ4ymUySbKV8fX3RtGlTJCcnS5YhODi4zJet5s2b45tvvpEo0d+uXLmCPXv2YMuWLVJHwdSpU/HWW29hxIgRAIDWrVvjypUriI2NlbSQN2rUCAcOHEB+fj60Wi2Cg4MxfPhwNGzYULJMrs6lj5Hb6xFzzk4URUyYMAFbt27Fvn37EB4eLnWkchmNRuh0Osnaf/TRR3HmzBkkJCSYpoceegijRo1CQkKC5EUcAPLy8nDp0iUEBwdLlqFbt25lLl+8cOECwsLCJEr0tzVr1iAwMBADBgyQOgoKCgrg5mb+K1omk8FoNEqUyJyXlxeCg4ORlZWFnTt3YtCgQVJHclku3SMH7POIOUvl5eWZ9ZguX76MhIQE+Pv7o379+nbPEx0djbi4OHz77bdQq9W4ceMGAECj0UClUtk9DwBMnz4d/fv3R/369ZGbm4u4uDjs378fO3fulCQPUHL88N7zBry8vFCrVi3JzieYMmUKBg4ciLCwMKSlpSEmJgYymQwjR46UJA8ATJo0CV27dsW8efMwbNgw/P7771i1ahVWrVolWSag5IvgmjVrEBkZCblc+l+NAwcOxNy5c1G/fn20bNkSJ0+exMKFCzFmzBhJc+3cuROiKCIiIgLJycmYOnUqmjVrJunvTJcn9WnzjmDp0qVi/fr1RQ8PD/Hhhx8Wjx49Kmmen3/+WQRQZoqMjJQkT3lZAIhr1qyRJI8oiuKYMWPEsLAw0cPDQwwICBAfffRRcdeuXZLlqYjUl58NHz5cDA4OFj08PMS6deuKw4cPF5OTkyXLU+r7778XW7VqJSoUCrFZs2biqlWrpI4k7ty5UwQgJiUlSR1FFEVR1Gq14uuvvy7Wr19fVCqVYsOGDcV33nlH1Ol0kubatGmT2LBhQ9HDw0MMCgoSo6OjxezsbEkzuTo+xpSIiMiJufQxciIiImfHQk5EROTEWMiJiIicGAs5ERGRE2MhJyIicmIs5ERERE6MhZyIiMiJsZATERE5MRZyIitFRUVh8ODBpte9evXCxIkT7Z5j//79EAQB2dnZFS4jCAK2bdtW6W3OnDkT7dq1syrXn3/+CUEQkJCQYNV2iKh8LORUI0VFRUEQBAiCYHpK2uzZs6HX623e9pYtWzBnzpxKLVuZ4ktEdD/SPxmAyEYef/xxrFmzBjqdDj/++COio6Ph7u6O6dOnl1m2qKgIHh4e1dKuv79/tWyHiKgy2COnGkuhUCAoKAhhYWF4+eWX0adPH3z33XcA/h4Onzt3LkJCQhAREQEASE1NxbBhw+Dr6wt/f38MGjQIf/75p2mbBoMBkydPhq+vL2rVqoU333wT9z6u4N6hdZ1Oh2nTpiE0NBQKhQKNGzfG6tWr8eeff6J3794AAD8/PwiCgKioKAAlT+KKjY1FeHg4VCoV2rZti//+979m7fz4449o2rQpVCoVevfubZazsqZNm4amTZvC09MTDRs2xIwZM1BcXFxmuZUrVyI0NBSenp4YNmwYcnJyzN7//PPP0bx5cyiVSjRr1gyffvqpxVmIqGpYyMllqFQqFBUVmV7v3bsXSUlJ2L17N7Zv347i4mL069cParUahw4dwi+//AJvb288/vjjpvU++ugjrF27Fl988QUOHz6M27dvY+vWrfdt94UXXsDXX3+NJUuW4Pz581i5ciW8vb0RGhqKb775BgCQlJSE69ev4+OPPwYAxMbG4ssvv8SKFStw7tw5TJo0Cc8//zwOHDgAoOQLx9ChQzFw4EAkJCRg7NixeOuttyzeJ2q1GmvXrkViYiI+/vhjfPbZZ1i0aJHZMsnJydi8eTO+//577NixAydPnsQrr7xien/Dhg147733MHfuXJw/fx7z5s3DjBkzsG7dOovzEFEVSPz0NSKbiIyMFAcNGiSKoigajUZx9+7dokKhEKdMmWJ6v06dOmaPhFy/fr0YEREhGo1G0zydTieqVCpx586doiiKYnBwsLhgwQLT+8XFxWK9evVMbYmi+aNLk5KSRADi7t27y81Z+sjarKws07zCwkLR09NT/PXXX82WffHFF8WRI0eKoiiK06dPF1u0aGH2/rRp08ps614AxK1bt1b4/ocffih27NjR9DomJkaUyWTitWvXTPN++ukn0c3NTbx+/booiqLYqFEjMS4uzmw7c+bMEbt06SKKoihevnxZBCCePHmywnaJqOp4jJxqrO3bt8Pb2xvFxcUwGo147rnnMHPmTNP7rVu3NjsufurUKSQnJ0OtVpttp7CwEJcuXUJOTg6uX7+Ozp07m96Ty+V46KGHygyvl0pISIBMJkPPnj0rnTs5ORkFBQV47LHHzOYXFRWhffv2AIDz58+b5QCALl26VLqNUps2bcKSJUtw6dIl5OXlQa/Xw8fHx2yZ+vXro27dumbtGI1GJCUlQa1W49KlS3jxxRcxbtw40zJ6vR4ajcbiPERkORZyqrF69+6N5cuXw8PDAyEhIZDLzX/cvby8zF7n5eWhY8eO2LBhQ5ltBQQEVCmDSqWyeJ28vDwAwA8//GBWQIGS4/7V5ciRIxg1ahRmzZqFfv36QaPRYOPGjfjoo48szvrZZ5+V+WIhk8mqLSsRVYyFnGosLy8vNG7cuNLLd+jQAZs2bUJgYGCZXmmp4OBg/Pbbb+jRoweAkp5nfHw8OnToUO7yrVu3htFoxIEDB9CnT58y75eOCBgMBtO8Fi1aQKFQ4OrVqxX25Js3b246ca/U0aNHH/wh7/Lrr78iLCwM77zzjmnelStXyix39epVpKWlISQkxNSOm5sbIiIiUKdOHYSEhCAlJQWjRo2yqH0iqh482Y3of0aNGoXatWtj0KBBOHToEC5fvoz9+/fjtddew7Vr1wAAr7/+Oj744ANs27YNf/zxB1555ZX7XgPeoEEDREZGYsyYMdi2bZtpm5s3bwYAhIWFQRAEbN++HRkZGcjLy4NarcaUKVMwadIkrFu3DpcuXcKJEyewdOlS0wlkL730Ei5evIipU6ciKSkJcXFxWLt2rUWft0mTJrh69So2btyIS5cuYcmSJeWeuKdUKhEZGYlTp07h0KFDeO211zBs2DAEBQUBAGbNmoXY2FgsWbIEFy5cwJkzZ7BmzRosXLjQojxEVDUs5ET/4+npiYMHD6J+/foYOnQomjdvjhdffBGFhYWmHvobb7yBf/7zn4iMjESXLl2gVqsxZMiQ+253+fLleOaZZ/DKK6+gWbNmGDduHPLz8wEAdevWxaxZs/DWW2+hTp06mDBhAgBgzpw5mDFjBmJjY9G8eXM8/vjj+OGHHxAeHg6g5Lj1N998g23btqFt27ZYsWIF5s2bZ9HnfeqppzBp0iRMmDAB7dq1w6+//ooZM2aUWa5x48YYOnQonnjiCfTt2xdt2rQxu7xs7Nix+Pzzz7FmzRq0bt0aPXv2xNq1a01Zici2BLGis3SIiIjI4bFHTkRE5MRYyImIiJwYCzkREZETYyEnIiJyYizkREREToyFnIiIyImxkBMRETkxFnIiIiInxkJORETkxFjIiYiInBgLORERkRP7f5KKfqD2xkG9AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#disp = metrics.plot_confusion_matrix(svc, X_te, y_te)\n",
    "disp = metrics.ConfusionMatrixDisplay.from_predictions(y_te, pred)\n",
    "disp.figure_.suptitle(\"Confusion Matrix\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "proviamo con la lda"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-4 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-4 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LinearDiscriminantAnalysis(n_components=6)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-4\" type=\"checkbox\" checked><label for=\"sk-estimator-id-4\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">LinearDiscriminantAnalysis</label><div class=\"sk-toggleable__content\"><pre>LinearDiscriminantAnalysis(n_components=6)</pre></div></div></div></div></div>"
      ],
      "text/plain": [
       "LinearDiscriminantAnalysis(n_components=6)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lda = LDA(n_components=6)\n",
    "lda.fit(X_tr, y_tr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "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1Lx58xQXF6err77a2+8IAuoTLNE6DjVr1kypqalh2VeQUZ/oEI3XQ7FyTyFaeyiW5trUKNioz8l5+zimXbt2ad++faeMa9q0qZKTkyVJ+/fvl6TjCpKUlCTpyMcAhWrDhg0aNWqUbrzxRuXl5am4uFhXXXWVli5dqosuukjSkc/s+uabb6z2l5ycXDNo7t+//4RvoqSkJB04cEDr1q3TgAEDQs7dl1BqdJQxRv/5z3906NAhbdiwQX/4wx/UuHFjZWdnh5zPt99+q0suuUQjR47UmDFj9OKLL2rixImKj4/XddddVxP39ddfW+2vZcuWatasmaQjNWrVqtVxMce+t7p27Rpy7j7QQw27h3zw2UPRiB5qmD2UmJion/3sZyopKdHAgQN1/vnnq6qqSvfcc49atWqlCRMmhJyPzxplZ2dr5syZGj9+vKZNm6Y2bdrovffe01//+lfdcsstgfwow7qc49avX6/mzZvrwIEDat++va6//nrdfffddbrh4LM+R40bN067du1S48aNdf755+vBBx9U//79Q87Zt3CNQy+88IIOHz6sX/3qV3XKpz5qdNTBgwf14osvatCgQYFdJKc+wa6PFFvjUDSiPsEXS9dDsXJPIVp7KBrn2hI1CnqNqE+Y61PnZynMiR9ZycvLM5JO+V9WVlbNv1mwYIGRZJ599tla+58zZ46RZHr16hVSfmlpaUaSWbBgQc226upq06FDB9OnT5+abZs3b7bKWZIpKyur+XfnnHOO6datmzl06FDNtv3795szzjjDSDIvv/xySHmHU7hqdNT27dtrxXTq1MnMnz8/5PyysrKMJPPnP/+5Ztv+/ftNZmamadeuXc2jmsYY6xod+/jqZZddZlJSUszOnTtr/d6BAwcaSeahhx4KOfdwoIdir4eOCtfjx7576FjR8nFM9FDD7aENGzaYvn371oo588wzaz0e78p3jYwx5p577jGJiYm1Yu68886Qcw6ncNbnuuuuM4WFhWbBggXmmWeeMTk5OUaSGTlyZMj5+a7PihUrzBVXXGGeeuops2jRInP//febNm3amISEBLN69eqQ8w4nX+OQMcb069fPdOjQwXz//fch51cfPXSsxYsXG0lm9uzZIeccTtSntqDVxxjGoWMF8eN+qM9/BbE+xnA9FCv3FIyJ3h4K8lzbGGpkTLBrRH3818fbkxC33367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W4To0aOHevTo4fzvRo4cqY4dO6pHjx7auXOnnn76aW3atElLlixRy5Yta8XGxcVZr6h369ZN48eP18cff6z27dvr6aef1ldffaXi4uKamISEhJD+yvXdd9/V9OnTNXToULVp00YffPCBiouLNWzYME2ePNl5f/UllBpt2LBBQ4YM0ahRo9S9e3c1atRIK1eu1N/+9jelp6cf93qPrsRVVlaect8dO3bUzJkzVVlZqW7dumn+/PmqqKjQE088oaZNm9bEhVKjLVu2aOTIkcrJyVFqaqo+/fRTzZkzR71799Z9993nvL/6QA81zB6SpE8++USvvvqqpCMr2dXV1TU36DIyMnTZZZfVxAalhyTp2Wef1ZYtW7Rnzx5JR+p2NO9rrrlGaWlpIe3XF3qoYfZQv379dNFFF2nu3LnauXOnhg4dqu3bt+vRRx9VYmKiCgoKasUHpUa33XabXn/9dZ1//vmaNGmS2rRpo9dee02vv/66fv3rX6tjx47O+/QtlPqsXr1aY8aM0ZgxY3TWWWdp7969WrhwoVasWKEJEyaob9++teKDUp9Ro0YpMTFRgwYNUrt27fTZZ5/piSeeUFJSkh544AHn/dWXUM9z0pG/zpo/f74GDBigH//4xyeNC0qNjpo/f74OHToUFR/1Q32CL5bGIUl67LHHVFVVpW3btkmSFi9erH//+9+SpN/85jeBu4lKfYJdHym2rodi5Z5CtPZQNM61JWoU9BpRnzDXp87fKmHC+wVFM2fONN27dzcJCQmmVatWJicnx6xZs+a4uO+++85IMqNHjz7lPtPS0syll15q3njjDdO7d2/TrFkz0717d/PSSy/VOV9jjNm4caMZOnSoOf3002v2ff/995v9+/eHZf/hEK4a7dixw0yYMMF0797dNG/e3MTHx5uuXbuagoICs2PHjuPiTz/9dDNgwIBT7jcrK8v07NnTrFy50gwcONAkJCSYtLQ089hjj9Up36O++eYbM2LECJOammri4+NNly5dzO9//3uzc+fOsOy/ruih2OmhY/d1ov/y8vJqxQalh47+jpPlXVZWFrbfEwp6KLZ6aM+ePWb69OmmR48eJjEx0SQnJ5vhw4cfV6cg1cgYYz788ENz8cUXm9TUVNO0aVPTrVs3M2PGDHPw4MGw/Y5Qhas+mzZtMldddZVJT083CQkJJikpyfTr18/MmTPH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",
      "text/plain": [
       "<Figure size 2000x300 with 15 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pred_lda=lda.predict(X_te)\n",
    "_, axes = plt.subplots(ncols=15, figsize=(20,3))\n",
    "for ax, image, l, p in zip(axes, X_te, y_te, pred_lda):\n",
    "    ax.set_axis_off()\n",
    "    d=image.reshape(8,8)\n",
    "    ax.imshow(d, cmap=plt.cm.gray_r, interpolation='nearest')\n",
    "    ax.set_title('l={:d}, p={:d}'.format(l, p))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0.98, 'Confusion Matrix: lda')"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#disp = metrics.plot_confusion_matrix(lda, X_te, y_te)\n",
    "disp = metrics.ConfusionMatrixDisplay.from_predictions(y_te, pred_lda)\n",
    "disp.figure_.suptitle(\"Confusion Matrix: lda\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'/home/fc/hg/metodi_di_calcolo_in_chimica/statistica'"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pwd"
   ]
  },
  {
   "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.11.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
