{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"IEF-IVA-simple-numeric-categorical.ipynb","provenance":[{"file_id":"1V6fmJ9wGOkaa5dT9qG680wyP0dpIv_a4","timestamp":1632766454856}],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","metadata":{"id":"n4AN9zMneDUb"},"source":[""]},{"cell_type":"code","metadata":{"id":"hYF4ZMa-gXnq","executionInfo":{"status":"ok","timestamp":1632767312134,"user_tz":-120,"elapsed":223,"user":{"displayName":"Oscar Corcho","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14Gi3cF7DAfhib0_PTrsWLs1ct7LY6beP-TSnuSL4=s64","userId":"18270436930746444615"}}},"source":["import pandas as pd\n","import numpy as np\n","from sklearn.impute import SimpleImputer\n","from sklearn.preprocessing import StandardScaler, OneHotEncoder\n","from sklearn.compose import ColumnTransformer\n","from sklearn.linear_model import LogisticRegression\n","import matplotlib.pyplot as plt"],"execution_count":25,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"t2mBw0-KGiO9","executionInfo":{"status":"ok","timestamp":1632767312499,"user_tz":-120,"elapsed":5,"user":{"displayName":"Oscar Corcho","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14Gi3cF7DAfhib0_PTrsWLs1ct7LY6beP-TSnuSL4=s64","userId":"18270436930746444615"}},"outputId":"031858e0-c066-442f-e0f1-37dc0495b7df"},"source":["github_storage = \"https://raw.githubusercontent.com/oeg-upm/Instituto-Estudios-Fiscales-ontologias/master/machine-learning/\"\n","original_file = github_storage+\"datos-IVA.csv\"\n","\n","# Leer csv donde se encuentran los datos\n","df = pd.read_csv(original_file, sep=\";\", engine='python', header=None, names=['persona.actividadEmpresarial','sujetoPasivo.domicilioFiscal','operacion.tipoOperacion','operacion.lugarRealizacion','operacion.exencion','factura.importe','factura.fecha','operacion.docs','exencion.hechoImponibleCubiertoEnExencion','factura.descripcion','sujetoPasivo.acogidoARegimenEspecial','numFacturasMismoTopico','infraccion','tipoInfraccion'])\n","df = df.drop([0]) #eliminado porque no se lee bien la primera línea\n","df = df.drop(columns=['exencion.hechoImponibleCubiertoEnExencion']) #eliminado pues no tiene valores relevantes\n","df\n"],"execution_count":26,"outputs":[{"output_type":"execute_result","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"," \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"," \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"," \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","
persona.actividadEmpresarialsujetoPasivo.domicilioFiscaloperacion.tipoOperacionoperacion.lugarRealizacionoperacion.exencionfactura.importefactura.fechaoperacion.docsfactura.descripcionsujetoPasivo.acogidoARegimenEspecialnumFacturasMismoTopicoinfracciontipoInfraccion
1venta de ropaToledoadquisicion de bienesMadridExencionRecargoEquivalencia140.022/7/21Camisa de hombre de color blanco. Pantalón vaq...Camisa de hombre de color blanco. Pantalón vaq...RecargoEquivalencia2.0falseNaN
2venta de calzadoMadridadquisicion de bienesMadridExencionRecargoEquivalencia180.023/7/21Mocasines de piel de color marrónMocasines de piel de color marrónRecargoEquivalencia3.0falseNaN
3venta de ropaToledoadquisicion de bienesToledoExencionRecargoEquivalencia230.024/7/21Camisa de hombre de color azul. Pantalones de ...Camisa de hombre de color azul. Pantalones de ...RecargoEquivalencia20.0falseNaN
4venta de calzadoAvilaadquisicion de bienesAvilaExencionRecargoEquivalencia120.025/7/21Zapatillas de deporte Adidas. Zapatos de cabal...Zapatillas de deporte Adidas. Zapatos de cabal...RecargoEquivalencia15.0falseNaN
5venta de artículos de pielMadridadquisicion de bienesToledoExencionRecargoEquivalencia560.026/7/21Abrigo de visón largo con mangas anchasAbrigo de visón largo con mangas anchasRecargoEquivalencia2.0trueinfraccionEnAdquisicionDeBienes
6joyeríaToledoadquisicion de bienesMadridExencionRecargoEquivalencia1200.027/7/21Reloj de oro con incrustaciones de diamantesReloj de oro con incrustaciones de diamantesRecargoEquivalencia3.0trueinfraccionEnAdquisicionDeBienes
7materiales de construcciónAvilaadquisicion de bienesAvilaExencionRecargoEquivalencia3400.028/7/2145 kg de cemento. 20 metros cuadrados de azule...45 kg de cemento. 20 metros cuadrados de azule...RecargoEquivalencia1.0trueinfraccionEnAdquisicionDeBienes
8joyeríaMadridadquisicion de bienesMadridExencionRecargoEquivalencia1800.029/7/21Collar de perlas.Collar de perlas.RecargoEquivalencia5.0trueinfraccionEnAdquisicionDeBienes
9materiales de construcciónMadridprestación de serviciosMadrid03500.030/7/2145 kg de cemento. 20 metros cuadrados de azule...45 kg de cemento. 20 metros cuadrados de azule...020.0falseNaN
10obras y edificacionesMadridprestación de serviciosMadrid012000.031/7/21Instalación de ventanas en habitaciones. Remod...Instalación de ventanas en habitaciones. Remod...03.0falseNaN
11materiales de construcciónToledoprestación de serviciosMadrid013500.01/8/21300kg de cemento. 850 metros cuadrados de azuj...300kg de cemento. 850 metros cuadrados de azuj...045.0falseNaN
12obras y edificacionesAvilaprestación de serviciosToledo01800.02/8/21Instalación de una ventana en buhardillaInstalación de una ventana en buhardilla03.0falseNaN
13materiales de construcciónMadridprestación de serviciosAvila02450.03/8/2145 kg de cemento. 20 metros cuadrados de azule...45 kg de cemento. 20 metros cuadrados de azule...0120.0truefaltaComunicacionEjecucionObra
14obras y edificacionesToledoprestación de serviciosMadrid013000.04/8/21Remodelación de fachada con fecha de 1/1/2020Remodelación de fachada con fecha de 1/1/202003.0truefaltaComunicacionEjecucionObra
15materiales de construcciónAvilaprestación de serviciosToledo011254.05/8/2145 kg de cemento. 20 metros cuadrados de azule...45 kg de cemento. 20 metros cuadrados de azule...045.0truefaltaComunicacionEjecucionObra
16obras y edificacionesMadridprestación de serviciosAvila0340.06/8/21Remodelación de fachada con fecha de 1/7/2021Remodelación de fachada con fecha de 1/7/202103.0truefaltaComunicacionEjecucionObra
17venta de electrónicaMadridadquisicionIntracomunitariaFrancia0340.07/8/21Venta de móvil de gama media. Samsung X3Venta de móvil de gama media. Samsung X304.0falseNaN
18venta de ropaToledoimportacionBienesAlemania0245.08/8/21cinco cqmisas de marca HMcinco cqmisas de marca HM025.0falseNaN
19venta de calzadoAvilaadquisicionIntracomunitariaFrancia01200.09/8/2130 mocasines de piel de vacuno de color marrón...30 mocasines de piel de vacuno de color marrón...030.0falseNaN
20joyeríaMadridimportacionBienesAlemania03422.010/8/21dos relojes de oro con incrustaciones de platados relojes de oro con incrustaciones de plata022.0falseNaN
21materiales de construcciónMadridadquisicionIntracomunitariaFrancia0234.011/8/21azulejos porcelánicos de alta gamaazulejos porcelánicos de alta gama0345.0trueinfraccionNoPresentarDeclaracion
22venta de artículos de pielToledoimportacionBienesAlemania0430.012/8/2110 bolsos de piel para mujer10 bolsos de piel para mujer022.0trueinfraccionNoPresentarDeclaracion
23venta de electrónicaAvilaadquisicionIntracomunitariaFrancia0222.013/8/212 calculadoras mutlifunción. 1 router inalámbrico2 calculadoras mutlifunción. 1 router inalámbrico01.0trueinfraccionNoPresentarDeclaracion
24venta de ropaMadridimportacionBienesAlemania013000.014/8/2130 camisas de caballero. 20 vaqueros de señora30 camisas de caballero. 20 vaqueros de señora023.0trueinfraccionNoPresentarDeclaracion
\n","
"],"text/plain":[" persona.actividadEmpresarial ... tipoInfraccion\n","1 venta de ropa ... NaN\n","2 venta de calzado ... NaN\n","3 venta de ropa ... NaN\n","4 venta de calzado ... NaN\n","5 venta de artículos de piel ... infraccionEnAdquisicionDeBienes\n","6 joyería ... infraccionEnAdquisicionDeBienes\n","7 materiales de construcción ... infraccionEnAdquisicionDeBienes\n","8 joyería ... infraccionEnAdquisicionDeBienes\n","9 materiales de construcción ... NaN\n","10 obras y edificaciones ... NaN\n","11 materiales de construcción ... NaN\n","12 obras y edificaciones ... NaN\n","13 materiales de construcción ... faltaComunicacionEjecucionObra\n","14 obras y edificaciones ... faltaComunicacionEjecucionObra\n","15 materiales de construcción ... faltaComunicacionEjecucionObra\n","16 obras y edificaciones ... faltaComunicacionEjecucionObra\n","17 venta de electrónica ... NaN\n","18 venta de ropa ... NaN\n","19 venta de calzado ... NaN\n","20 joyería ... NaN\n","21 materiales de construcción ... infraccionNoPresentarDeclaracion\n","22 venta de artículos de piel ... infraccionNoPresentarDeclaracion\n","23 venta de electrónica ... infraccionNoPresentarDeclaracion\n","24 venta de ropa ... infraccionNoPresentarDeclaracion\n","\n","[24 rows x 13 columns]"]},"metadata":{},"execution_count":26}]},{"cell_type":"code","metadata":{"id":"9LnmaqVR0nOD","executionInfo":{"status":"ok","timestamp":1632767312500,"user_tz":-120,"elapsed":4,"user":{"displayName":"Oscar Corcho","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14Gi3cF7DAfhib0_PTrsWLs1ct7LY6beP-TSnuSL4=s64","userId":"18270436930746444615"}}},"source":["numeric_features = ['factura.importe', 'numFacturasMismoTopico']\n","numeric_transformer = Pipeline(steps=[\n"," ('imputer', SimpleImputer(strategy='median')),\n"," ('scaler', StandardScaler())])\n","\n","categorical_features = ['persona.actividadEmpresarial', 'sujetoPasivo.domicilioFiscal', 'operacion.tipoOperacion', 'operacion.lugarRealizacion', 'operacion.exencion', 'sujetoPasivo.acogidoARegimenEspecial']\n","categorical_transformer = OneHotEncoder(handle_unknown='ignore')\n","\n","preprocessor = ColumnTransformer(\n"," transformers=[\n"," ('num', numeric_transformer, numeric_features),\n"," ('cat', categorical_transformer, categorical_features)])\n","\n","#Features that are not covered yet: \n","# factura.fecha\n","# operacion.docs\n","# factura.descripcion\n","# infraccion\n","# tipoInfraccion\n","\n","\n","# Append classifier to preprocessing pipeline.\n","# Now we have a full prediction pipeline.\n","clf = Pipeline(steps=[('preprocessor', preprocessor),\n"," ('classifier', LogisticRegression())])\n"],"execution_count":27,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Gw23I0Qs1EGe","executionInfo":{"status":"ok","timestamp":1632767312837,"user_tz":-120,"elapsed":11,"user":{"displayName":"Oscar Corcho","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14Gi3cF7DAfhib0_PTrsWLs1ct7LY6beP-TSnuSL4=s64","userId":"18270436930746444615"}},"outputId":"64cfcea5-d0df-47c1-c515-3f9c98ef67d3"},"source":["X_Train, X_Test, Y_Train, Y_Test = model_selection.train_test_split(df.iloc[:,0:11],df['infraccion'],test_size=0.2, shuffle = True, random_state=0)\n","print(X_Train)\n","print(Y_Train)\n","print(X_Test)\n","print(Y_Test)\n","\n","datatypes = df.dtypes\n","print('Data type of each column of Dataframe :')\n","print(datatypes)\n","filteredColumns = df.dtypes[df.dtypes == np.object] # list of columns whose data type is object i.e. string\n","listOfColumnNames = list(filteredColumns.index)\n","print(listOfColumnNames)\n","\n","\n","clf.fit(X_Train,Y_Train)\n","print(\"model score: %.3f\" % clf.score(X_Test, Y_Test))\n","clf.predict(X_Test)"],"execution_count":28,"outputs":[{"output_type":"stream","name":"stdout","text":[" persona.actividadEmpresarial ... numFacturasMismoTopico\n","2 venta de calzado ... 3.0\n","14 obras y edificaciones ... 3.0\n","24 venta de ropa ... 23.0\n","17 venta de electrónica ... 4.0\n","9 materiales de construcción ... 20.0\n","7 materiales de construcción ... 1.0\n","18 venta de ropa ... 25.0\n","5 venta de artículos de piel ... 2.0\n","3 venta de ropa ... 20.0\n","6 joyería ... 3.0\n","19 venta de calzado ... 30.0\n","10 obras y edificaciones ... 3.0\n","8 joyería ... 5.0\n","20 joyería ... 22.0\n","4 venta de calzado ... 15.0\n","1 venta de ropa ... 2.0\n","22 venta de artículos de piel ... 22.0\n","16 obras y edificaciones ... 3.0\n","13 materiales de construcción ... 120.0\n","\n","[19 rows x 11 columns]\n","2 false\n","14 true\n","24 true\n","17 false\n","9 false\n","7 true\n","18 false\n","5 true\n","3 false\n","6 true\n","19 false\n","10 false\n","8 true\n","20 false\n","4 false\n","1 false\n","22 true\n","16 true\n","13 true\n","Name: infraccion, dtype: object\n"," persona.actividadEmpresarial ... numFacturasMismoTopico\n","12 obras y edificaciones ... 3.0\n","11 materiales de construcción ... 45.0\n","23 venta de electrónica ... 1.0\n","15 materiales de construcción ... 45.0\n","21 materiales de construcción ... 345.0\n","\n","[5 rows x 11 columns]\n","12 false\n","11 false\n","23 true\n","15 true\n","21 true\n","Name: infraccion, dtype: object\n","Data type of each column of Dataframe :\n","persona.actividadEmpresarial object\n","sujetoPasivo.domicilioFiscal object\n","operacion.tipoOperacion object\n","operacion.lugarRealizacion object\n","operacion.exencion object\n","factura.importe float64\n","factura.fecha object\n","operacion.docs object\n","factura.descripcion object\n","sujetoPasivo.acogidoARegimenEspecial object\n","numFacturasMismoTopico float64\n","infraccion object\n","tipoInfraccion object\n","dtype: object\n","['persona.actividadEmpresarial', 'sujetoPasivo.domicilioFiscal', 'operacion.tipoOperacion', 'operacion.lugarRealizacion', 'operacion.exencion', 'factura.fecha', 'operacion.docs', 'factura.descripcion', 'sujetoPasivo.acogidoARegimenEspecial', 'infraccion', 'tipoInfraccion']\n","model score: 0.600\n"]},{"output_type":"execute_result","data":{"text/plain":["array(['false', 'true', 'false', 'true', 'true'], dtype=object)"]},"metadata":{},"execution_count":28}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"_kfmUzPRxXla","executionInfo":{"status":"ok","timestamp":1632767313072,"user_tz":-120,"elapsed":243,"user":{"displayName":"Oscar Corcho","photoUrl":"https://lh3.googleusercontent.com/a-/AOh14Gi3cF7DAfhib0_PTrsWLs1ct7LY6beP-TSnuSL4=s64","userId":"18270436930746444615"}},"outputId":"7e8c0f60-c6dd-46e4-90af-c1fca257d4b7"},"source":["# Evaluacion del modelo \n","print(\"Matriz de confusión test: \")\n","plt.clf()\n","fig,ax = plt.subplots(figsize=(12,12))\n","plot_confusion_matrix(clf, X_Test, Y_Test, cmap=plt.cm.Blues, ax=ax, values_format='d')\n","plt.show() \n","\n","print(\"Matriz de confusión train: \")\n","plt.clf()\n","fig,ax = plt.subplots(figsize=(12,12))\n","plot_confusion_matrix(clf, X_Train, Y_Train, cmap=plt.cm.Blues, ax=ax, values_format='d')\n","plt.show() \n"],"execution_count":29,"outputs":[{"output_type":"stream","name":"stdout","text":["Matriz de confusion test: \n"]},{"output_type":"display_data","data":{"text/plain":["
"]},"metadata":{}},{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAqwAAAKkCAYAAADFkW1dAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3de7iudVkn8O+9dScoKOpGcxBE8UBqQbgNDw3hIcLDTOOk4yjVFWrEeKpm7NJGZzS8LK20tELaqaFp2piUeMSmdBBEOYscSr3CA2oSaKkI5Y57/ljvlgXsvfZC9lrv79nv59P1Xqz3fZ/nee+1vK7Vvb/r/j2/6u4AAMCoNsy7AAAAWImGFQCAoWlYAQAYmoYVAIChaVgBABiahhUAgKFpWAEA2CWqav+q+nBVXVpVl1TVL27nmKqq11XVZ6vqoqo6bGfXve3alAsAwALamuR/dPf5VbV3kvOq6q+6+9Jlxzwuyf1mj8OTvH723x2SsAIAsEt091e6+/zZ199MclmS/W5y2E8meUsv+XiSfarqHitdV8IKADABt7njvbq3XjvXGvraf7wkyXXLXtrS3Vu2d2xVHZjkh5N84iZv7Zfki8ueXzF77Ss7+lwNKwDABPTWa3O7B/yXudZw3YV/cF13b97ZcVW1V5J3Jfml7v7Grf1cIwEAAOwyVbUxS83q27r7lO0c8qUk+y97fs/ZazukYQUAYJeoqkryxiSXdfdrdnDYqUl+dna3gIcl+efu3uE4QGIkAABgIiqp4bPGRyb5mSSfqqoLZ6/9zyQHJEl3n5Tk/Uken+SzSb6d5NidXVTDCgDALtHdZySpnRzTSZ5zS66rYQUAmIJKUiv2grut4XNlAAAWm4YVAIChGQkAAJiK8RddrYnF/K4BAJgMCSsAwFRYdAUAAOPRsAIAMDQjAQAAkzCJna7WxGJ+1wAATIaEFQBgKiy6AgCA8WhYAQAYmpEAAIApqFh0BQAAI5KwAgBMQll0BQAAI9KwAgAwNCMBAABTYdEVAACMR8IKADAVFl0BAMB4NKwAAAzNSAAAwCSURVcAADAiDSsAAEMzEgAAMAUVdwkAAIARSVgBAKbCoisAABiPhhUAgKEZCQAAmAT3YQUAgCFJWAEApmKD21oBAMBwNKwAAAzNSAAAwBRULLoCAIARSVgBAKaiLLoCAIDhaFgBABiakQAAgEmw0xUAAAxJwgoAMBUWXQEAwHg0rAAADM1IAADAVFh0BQAA45GwAgBMQZVFVwAAMCINKwAAQzMSAAAwFRZdAQDAeHa7hHXTpk19r3sdOO8yAIDdyPnnn3dVd+877zoW1W7XsN7rXgfmzE+cO+8yAIDdyJ4b6/PzriGJuwQAAMCIdruEFQBg91QWXQEAwIg0rAAADM1IAADAVFh0BQAA45GwAgBMQcWiKwAAGJGGFQCAoRkJAACYBPdhBQCAIUlYAQCmwm2tAABgPBpWAACGZiQAAGAqLLoCAIDxSFgBAKbCoisAABiPhhUAgKEZCQAAmIKy0xUAAAxJwwoAwNCMBAAATIW7BAAAwHgkrAAAE1ESVgAAGI+GFQCAoRkJAACYgIqRAAAAGJKEFQBgCmr2WEASVgAAhqZhBQBgaEYCAAAmoSy6AgCAEUlYAQAmQsIKAAAD0rACADA0IwEAABNhJAAAAAYkYQUAmAgJKwAADEjDCgDA0IwEAABMQc0eC0jCCgDA0CSsAAATUCmLrgAAYEQaVgAAhmYkAABgIowEAADAgDSsAAAMzUgAAMBEGAkAAIABSVgBACZCwgoAAAPSsAIAMDQjAQAAU1CzxwKSsAIAMDQJKwDARFh0BQAAA9KwAgAwNCMBAAATUCkjAQAAMCIJKwDAREhYAQBgQBpWAACGZiQAAGAqFnMiQMIKAMDYNKwAAFNQS4uu5vnYaYlVb6qqK6vq4h28f6eqek9VfbKqLqmqY1fzrWtYAQDYVU5OcvQK7z8nyaXdfUiSI5O8uqq+b2cX1bACALBLdPfpSb620iFJ9q6luHav2bFbd3Zdi64AACZigPuwbqqqc5c939LdW27B+b+f5NQkX06yd5Kndvf1OztJwwoAwGpd1d2bb8X5P5HkwiSPTnJQkr+qqo929zdWOknDCgAwEQMkrLfWsUle2d2d5LNVdXmSg5OcvdJJZlgBAFgvX0jymCSpqrsneUCSv9/ZSRJWAAB2iap6e5ZW/2+qqiuSvDTJxiTp7pOSvDzJyVX1qSxtg/DC7r5qZ9fVsAIATEBldfdCnafuftpO3v9ykqNu6XWNBAAAMDQNKwAAQzMSAAAwFWNPBKwZCSsAAEOTsAIATEHtFvdh/Z5IWAEAGJqGFQCAoRkJAACYCCMBAAAwIAkrAMBESFgBAGBAGlYAAIZmJAAAYCoWcyJAwgoAwNgkrAAAE2HRFQAADEjDCgDA0IwEAABMQFUZCQAAgBFJWAEAJkLCCgAAA9KwAgAwNCMBAAATYSQAAAAGpGEFAGBoRgIAAKZiMScCJKwAAIxNwgoAMBEWXQEAwIA0rAAADM1IAADAFJSRAAAAGJKEFQBgAirJggasElYAAMamYQUAYGhGAgAAJqEsugIAgBFJWAEAJmJBA1YJKwAAY9OwAgAwNCMBAAATYdEVAAAMSMIKADAFZdEVAAAMScMKAMDQjAQAAExAJdmwYTFnAiSsAAAMTcIKADARFl0BAMCANKwAAAzNSAAAwEQs6k5XGlZ2a8894a057YyLs+nOe+esP3vxvMsBBub3BYxrzUYCqur5VXVZVb1tB+8fWVXvXavPhyR52hMflj9/3XPmXQYwAX5fwLjWMmF9dpLHdvcVa/gZsKJHHnbffOHLV8+7DGAC/L5geLZm3bWq6qQk90nygap6YVWdVVUXVNXHquoB2zn+x6rqwtnjgqrae/b6r1TVOVV1UVX92lrUCgDA2NYkYe3u46vq6CSPSvKvSV7d3Vur6rFJfj3JT93klBckeU53n1lVeyW5rqqOSnK/JD+Spc0dTq2qI7r79LWoGQBgZBWLrtbSnZK8uarul6STbNzOMWcmec1s3vWU7r5i1rAeleSC2TF7ZamBvVnDWlXHJTkuSfY/4IBd/x0AADA363Ef1pcn+XB3PzjJf0iyx00P6O5XJnlWkj2TnFlVB2fpHxK/0d2Hzh737e43bu8DuntLd2/u7s37btp37b4TAADW3Xo0rHdK8qXZ1z+3vQOq6qDu/lR3vyrJOUkOTnJakmfMRgRSVftV1d3WoV52I8988R/nqGe8Op/9/FfzoCe8JH/y7o/NuyRgUH5fML5K1Xwf87IeIwG/maWRgJcked8OjvmlqnpUkuuTXJLkA939L1X1A0nOmv2AvpXkp5NcuQ41s5t44yuOnXcJwET4fQHjWrOGtbsPnH15VZL7L3vrJbP3P5LkI7Ovn7eDa7w2yWvXqkYAgClZ0DVX6zISAAAA3zMNKwAAQ1uPGVYAAHaBRb0Pq4QVAIChSVgBAKagLLoCAIAhaVgBABiakQAAgAmoWHQFAABDkrACAEzEggasElYAAMamYQUAYGhGAgAAJsKiKwAAGJCEFQBgIhY0YJWwAgAwNg0rAABDMxIAADAFZdEVAAAMScMKAMDQjAQAAExAxV0CAABgSBJWAIBJKIuuAABgRBpWAACGZiQAAGAiFnQiQMIKAMDYJKwAABNh0RUAAAxIwwoAwNCMBAAATEFZdAUAAEOSsAIATEDFoisAABiShhUAgKEZCQAAmAgjAQAAMCAJKwDARCxowCphBQBgbBpWAACGZiQAAGAiLLoCAIABaVgBABiakQAAgCkodwkAAIAhSVgBACagUhZdAQDAiDSsAAAMzUgAAMBELOhEgIQVAICxSVgBACZiw4JGrBJWAACGpmEFAGBoRgIAACZiQScCJKwAAIxNwgoAMAFVsdMVAACMSMMKAMDQjAQAAEzEhsWcCJCwAgAwNg0rAMBEVNVcH6uo701VdWVVXbzCMUdW1YVVdUlV/b/VfN8aVgAAdpWTkxy9ozerap8kJyb5j939oCRPWc1FNawAAOwS3X16kq+tcMjTk5zS3V+YHX/laq5r0RUAwEQMcBvWTVV17rLnW7p7yy04//5JNlbVR5LsneS13f2WnZ2kYQUAYLWu6u7Nt+L82yZ5SJLHJNkzyVlV9fHu/vTOTgIAYHCVpDL/iPVWuiLJ1d19TZJrqur0JIckWbFhNcMKAMB6eXeSH62q21bV7ZMcnuSynZ0kYQUAYJeoqrcnOTJLs65XJHlpko1J0t0ndfdlVfXBJBcluT7JG7p7h7fA2kbDCgAwEaPvdNXdT1vFMb+V5LduyXWNBAAAMDQNKwAAQzMSAAAwBavcHnV3JGEFAGBoElYAgIlY0IBVwgoAwNg0rAAADM1IAADABFSSDQs6EyBhBQBgaBJWAICJWNCAVcIKAMDYNKwAAAzNSAAAwETY6QoAAAYkYQUAmIAqi64AAGBIGlYAAIZmJAAAYCLsdAUAAAOSsAIATMRi5qsSVgAABqdhBQBgaEYCAAAmwk5XAAAwIAkrAMAEVJINixmwSlgBABibhhUAgKEZCQAAmIIqi64AAGBEGlYAAIZmJAAAYCIWdCJAwgoAwNgkrAAAE2HRFQAADEjDCgDA0IwEAABMgK1ZAQBgUBJWAICJWNRFVztsWKvq95L0jt7v7uevSUUAALDMSgnruetWBQAA7MAOG9bufvPy51V1++7+9tqXBADA9izmQMAqFl1V1cOr6tIkfzt7fkhVnbjmlQEAQFa36Op3k/xEklOTpLs/WVVHrGlVAADcSFWyYUEXXa3qtlbd/cWbvPRva1ALAADczGoS1i9W1SOSdFVtTPKLSS5b27IAAGDJahrW45O8Nsl+Sb6c5LQkz1nLogAAuLkFnQjYecPa3VclOWYdagEAgJtZzV0C7lNV76mqf6yqK6vq3VV1n/UoDgCAG1TVXB/zsppFV3+a5P8kuUeSf5fknUnevpZFAQDANqtpWG/f3X/S3Vtnj7cm2WOtCwMAgGSFGdaqusvsyw9U1YuSvCNJJ3lqkvevQ20AACxj0dXNnZelBnXbj+YXlr3XSX51rYoCAIBtdtiwdve917MQAAB2rFILu9PVau7Dmqp6cJIHZtnsane/Za2KAgCAbXbasFbVS5McmaWG9f1JHpfkjCQaVgAA1txqEtYnJzkkyQXdfWxV3T3JW9e2LAAAbqQWd9HVam5rdW13X59ka1XdMcmVSfZf27IAAGDJahLWc6tqnyR/lKU7B3wryVlrWhUAAMzstGHt7mfPvjypqj6Y5I7dfdHalgWw9u780OfOuwSAW2Se26PO00obBxy20nvdff7alAQAADdYKWF99QrvdZJH7+JaAABYwWoWH+2OVto44FHrWQgAAGzPojbqAABMxKp2ugIAYL4qi7voSsIKAMDQVrM1ayU5Jsl9uvuEqjogyfd399lrXh0AAN+1YTED1lUlrCcmeXiSp82efzPJH6xZRQAAsMxqZlgP7+7DquqCJOnur1fV961xXQAAkGR1Det3quo2Wbr3aqpq3yTXr2lVAADcjJGAHXtdkr9IcreqekWSM5L8+ppWBQAAMztNWLv7bVV1XpLHZOmOCv+puy9b88oAAPiuqsW9rdVq7hJwQJJvJ3nP8te6+wtrWRgAACSrm2F9X5bmVyvJHknuneTvkjxoDesCAIAkqxsJ+MHlz6vqsCTPXrOKAADYLouuVqm7z09y+BrUAgAAN7OaGdb/vuzphiSHJfnymlUEAMB2Leiaq1XNsO697OutWZppfdfalAMAADe2YsM62zBg7+5+wTrVAwAAN7LDhrWqbtvdW6vqketZEAAAN1dJNizoTMBKCevZWZpXvbCqTk3yziTXbHuzu09Z49oAAGBVM6x7JLk6yaNzw/1YO4mGFQCANbdSw3q32R0CLs4Njeo2vaZVAQBwM7f4fqS7iZUa1tsk2Ss3blS30bACALAuVmpYv9LdJ6xbJQAArGhB11ytmCwv6I8EAICRrNSwPmbdqgAAgB3Y4UhAd39tPQsBAGDHqmph78O6qIvNAACYiNXchxUAgAEsaMAqYQUAYGwaVgAAhmYkAABgIjYYCQAAgPFIWAEAJqASt7UCAIARaVgBABiakQAAgIlY0IkACSsAAGOTsAIATEG5rRUAAAxJwwoAwNCMBAAATERlMWcCJKwAAAxNwgoAMAFLO13Nu4r5kLACADA0DSsAAEMzEgAAMBFGAgAAYEAaVgAAhmYkAABgIqoWcyZAwgoAwNAkrAAAE+A+rAAAMCgNKwAAQzMSAAAwBZUs6JorCSsAAGOTsAIATMSGBY1YJawAAAxNwwoAwNCMBAAATID7sAIAwKAkrAAAE7Gga64krAAA7BpV9aaqurKqLt7JcQ+tqq1V9eTVXFfDCgDArnJykqNXOqCqbpPkVUk+tNqLGgkAAJiEyoaMPRPQ3adX1YE7Oex5Sd6V5KGrva6EFQCA1dpUVecuexx3S06uqv2SPCnJ62/JeRJWAIAJqAyx6Oqq7t58K87/3SQv7O7r6xZ8MxpWAADWy+Yk75g1q5uSPL6qtnb3X650koYVAIB10d333vZ1VZ2c5L07a1YTDSsAwDTU+DtdVdXbkxyZpVnXK5K8NMnGJOnuk77X62pYAQDYJbr7abfg2J9b7bEaVgCAidgwwKqreXBbKwAAhqZhBQBgaEYCAAAmYJD7sM6FhBUAgKFpWAEAGJqRAACAiXCXAAAAGJCEFQBgIhY0YJWwAgAwNg0rAABDMxIAADABlcVNGhf1+wYAYCIkrAAAU1BJLeiqKwkrAABD07ACADA0IwEAABOxmAMBElYAAAYnYQUAmIBKssGiKwAAGI+GFQCAoRkJAACYiMUcCJCwAgAwOAkrAMBELOiaKwkrAABj07ACADA0IwEAAJNQqQWdCZCwAgAwNA0rAABDMxIAADABlcVNGhf1+wYAYCIkrAAAE2HRFQAADEjDCgDA0IwEAABMxGIOBEhYAQAYnIQVAGAKyqIrAAAYkoYVAIChGQkAAJgAO10BAMCgJKwAABNh0RUAAAxIwwoAwNCMBAAATMRiDgRIWAEAGJyEFQBgIhZ0zZWEFQCAsWlYAQAYmpEAAIAJWNrpajFnAiSsAAAMTcIKADARFl0BAMCANKwAAAzNSAAAwCRUyqIrAAAYj4YVAIChGQkAAJiIRb1LgIaV3dpzT3hrTjvj4my68945689ePO9ygIHtd/d98vqX/Wz2vcve6SRv/osz84fv+Mi8ywKyTiMBVbVPVT17PT4LlnvaEx+WP3/dc+ZdBjABW7den5f87il5+FNfkaOO/e0868lH5AH3/v55lwXftW2nq3k+5mW9Zlj3SXKzhrWqJLysqUcedt/c+Y63n3cZwAR89epv5KK/uyJJ8q1v/0s+/bl/yD323WfOVQHJ+o0EvDLJQVV1YZLvJLkuydeTHFxVRyV5b3c/OEmq6gVJ9urul1XVQUn+IMm+Sb6d5Oe7+2/XqWYAFtT+97hLfugB98x5l3xu3qUAWb+G9UVJHtzdh1bVkUneN3t+eVUduMJ5W5Ic392fqarDk5yY5NFrXSwAi+sOe35f3vKqZ+VXX/OufPOa6+ZdDtygLLpab2d39+UrHVBVeyV5RJJ31g3/69xuB8cel+S4JNn/gAN2YZkALJLb3mZD3vyqn887P3hu3vvhT867HGBmXg3rNcu+3pobz9LuMfvvhiT/1N2H7uxi3b0lS2lsHvKQzb2rigRgsfze/zomn/7cP+TEP/2beZcC27WoCet6Lbr6ZpK9d/DeV5PcraruWlW3S/LEJOnubyS5vKqekiS15JB1qZbdxjNf/Mc56hmvzmc//9U86AkvyZ+8+2PzLgkY1MMOuU/+6xMOzxGb75/T3/ainP62F+XHH/HAeZcFZJ0S1u6+uqrOrKqLk1ybpSZ123vfqaoTkpyd5EtJli+qOibJ66vqJUk2JnlHEn+jYdXe+Ipj510CMBEf/+Tf584Pfe68ywC2Y91GArr76Su897okr9vO65cnOXot6wIAmIqa471Q52m9RgIAAOB74sb9AAATUEk2LGbAKmEFAGBsGlYAAIZmJAAAYCIsugIAgAFJWAEAJsJOVwAAMCANKwAAQzMSAAAwERZdAQDAgCSsAAATYKcrAAAYlIYVAIChGQkAAJiEsugKAABGpGEFAGBoRgIAAKagbM0KAABDkrACAEzEggasElYAAMamYQUAYGhGAgAAJmBpa9bFHAqQsAIAMDQJKwDARCxmviphBQBgcBpWAACGZiQAAGAqFnQmQMIKAMDQJKwAABNRCxqxSlgBABiahhUAgKEZCQAAmIgF3ehKwgoAwNgkrAAAE7GgAauEFQCAsWlYAQAYmpEAAICpWNCZAAkrAABD07ACADA0IwEAABNQsTUrAAAMScIKADAFZacrAAAYkoYVAIChGQkAAJiIBZ0IkLACADA2CSsAwFQsaMQqYQUAYGgaVgAAhmYkAABgEspOVwAAMCIJKwDARNjpCgAAboWqelNVXVlVF+/g/WOq6qKq+lRVfayqDlnNdTWsAADsKicnOXqF9y9P8mPd/YNJXp5ky2ouaiQAAGACKuPfhrW7T6+qA1d4/2PLnn48yT1Xc10NKwAAq7Wpqs5d9nxLd68qJd2OZyb5wGoO1LACAEzF/CPWq7p78629SFU9KksN64+u5ngNKwAA66aqfijJG5I8rruvXs05Fl0BALAuquqAJKck+Znu/vRqz5OwAgBMxOg7XVXV25McmaVZ1yuSvDTJxiTp7pOS/O8kd01yYi3dVHbrakYMNKwAAOwS3f20nbz/rCTPuqXX1bACAEyEna4AAGBAGlYAAIZmJAAAYCIWdCJAwgoAwNg0rAAADM1IAADAFFQWdiZAwgoAwNAkrAAAEzH6TldrRcIKAMDQNKwAAAzNSAAAwARUbM0KAABDkrACAEzEggasElYAAMamYQUAYGhGAgAApmJBZwIkrAAADE3CCgAwEXa6AgCAAWlYAQAYmpEAAICJsNMVAAAMSMIKADARCxqwSlgBABibhhUAgKEZCQAAmIoFnQmQsAIAMDQJKwDABFTsdAUAAEPSsAIAMDQjAQAAU1B2ugIAgCFpWAEAGJqRAACAiVjQiQAJKwAAY5OwAgBMxYJGrBJWAACGpmEFAGBoRgIAACahbM0KAAAjkrACAEyEna4AAGBAGlYAAIZmJAAAYAIqC3sbVgkrAABjk7ACAEzFgkasElYAAIamYQUAYGhGAgAAJsJOVwAAMCAJKwDARNjpCgAABqRhBQBgaEYCAAAmYkEnAiSsAACMTcIKADAFZdEVAAAMScMKAMDQjAQAAEzGYs4ESFgBABiahhUAgKEZCQAAmICKuwQAAMCQJKwAABOxoAGrhBUAgLHtdgnr+eefd9WeG+vz866D4WxKctW8iwAmwe8Ltude8y5gke12DWt37zvvGhhPVZ3b3ZvnXQcwPr8vGJlFVwAAMKDdLmEFANhd1YIuu5Kwsii2zLsAYDL8voDBaFhZCN3t/wEBq+L3BYzHSAAAwFQs5kSAhBUAgLFpWJmsqnp+VV1WVW/bwftHVtV717suYExVtU9VPXvedcCtUXN+zIuGlSl7dpIf7+5j5l0IMAn7ZOn3xo1UlfE4GJyGlUmqqpOS3CfJB6rqhVV1VlVdUFUfq6oHbOf4H6uqC2ePC6pq79nrv1JV51TVRVX1a+v9fQDr6pVJDpr9Hjinqj5aVacmubSqDqyqi7cdWFUvqKqXzb4+qKo+WFXnzc45eE71w8Lyr0omqbuPr6qjkzwqyb8meXV3b62qxyb59SQ/dZNTXpDkOd19ZlXtleS6qjoqyf2S/EiW/tJxalUd0d2nr993AqyjFyV5cHcfWlVHJnnf7PnlVXXgCudtSXJ8d3+mqg5PcmKSR691sXBTVYu705WGld3BnZK8uarul6STbNzOMWcmec1s3vWU7r5i1rAeleSC2TF7ZamB1bDCYji7uy9f6YDZP3AfkeSddUOncLu1Lgy4MQ0ru4OXJ/lwdz9plpJ85KYHdPcrq+p9SR6f5Myq+okspaq/0d1/uI61AuO4ZtnXW3PjMbk9Zv/dkOSfuvvQdasKVmCnK5iuOyX50uzrn9veAVV1UHd/qrtfleScJAcnOS3JM2YJSqpqv6q62zrUC8zHN5PsvYP3vprkblV116q6XZInJkl3fyPJ5VX1lCSpJYesS7XAd0lY2R38ZpZGAl6SpZm07fmlqnpUkuuTXJLkA939L1X1A0nOmv2p71tJfjrJletQM7DOuvvqqjpztrjq2iw1qdve+05VnZDk7Cz9A/hvl516TJLXz37HbEzyjiSfXL/KgeruedcAAMBOHHrYQ/qvTv/EXGu4294bz+vuzev9uUYCAAAYmoYVAIChmWEFAJiIxbxHgIQVAIDBSVgBACZiUXe6krAC66aq/m22j/vFVfXOqrr9rbjWyVX15NnXb6iqB65w7JFV9Yjv4TM+V1WbVvv6TY751i38rJdV1QtuaY0Ai0DDCqyna7v70O5+cJJ/TXL88jer6nv6q093P6u7L13hkCOztL0mABOkYQXm5aNJ7jtLPz9aVacmubSqblNVv1VV51TVRVX1C8l3dxj6/ar6u6r6v0m+uytZVX2kqjbPvj66qs6vqk9W1V/Ptus9Pskvz9Ldf19V+1bVu2afcU5VPXJ27l2r6kNVdUlVvSGrWN9QVX9ZVefNzjnuJu/9zuz1v66qfWevHVRVH5yd89GqOnhX/DCBRVBz/795McMKrLtZkvq4JB+cvXRYkgd39+Wzpu+fu/uhsy0yz6yqDyX54SQPSPLAJHdPcmmSN93kuvsm+aMkR8yudZfu/lpVnZTkW93927Pj/jTJ73T3GVV1QJa26f2BJC9NckZ3n1BVT0jyzFV8O8+YfcaeSc6pqnd199VJ7pDk3O7+5ar637NrPzfJliTHd/dnqurwJCcmefT38GMEWBgaVmA97VlVF86+/miSN2bpT/Vnd/fls9ePSvJD2+ZTk9wpyf2SHJHk7d39b0m+XFV/s53rPyzJ6duu1d1f20Edj03ywLph9cIdq2qv2Wf859m576uqr6/ie3p+VT1p9j60Mk4AAAMsSURBVPX+s1qvztI2wH82e/2tSU6ZfcYjkrxz2WffbhWfAZDK4i660rAC6+na7j50+Quzxu2a5S8leV53n3aT4x6/C+vYkORh3X3ddmpZtao6MkvN78O7+9tV9ZEke+zg8J597j/d9GcAwMrMsAKjOS3Jf6uqjUlSVfevqjskOT3JU2czrvdI8qjtnPvxJEdU1b1n595l9vo3k+y97LgPJXnetidVta2BPD3J02evPS7JnXdS652SfH3WrB6cpYR3mw1JtqXET8/SqME3klxeVU+ZfUZV1SE7+QyAhadhBUbzhizNp55fVRcn+cMs/TXoL5J8ZvbeW5KcddMTu/sfkxyXpT+/fzI3/En+PUmetG3RVZLnJ9k8W9R1aW64W8GvZanhvSRLowFf2EmtH0xy26q6LMkrs9Qwb3NNkh+ZfQ+PTnLC7PVjkjxzVt8lSX5yFT8TgIVW3T3vGgAA2IkfPmxz/80Zn5hrDXe5w23P6+7N6/25ZlgBACZiURddGQkAAGBoGlYAAIZmJAAAYCLmudvUPElYAQAYmoQVAGAKyqIrAAAYkoYVAIChGQkAAJiAmj0WkYQVAIChSVgBAKZiQSNWCSsAAEPTsAIAMDQjAQAAE2GnKwAAGJCGFQCAoRkJAACYCFuzAgDAgCSsAAATsaABq4QVAICxaVgBABiakQAAgKlY0JkACSsAAEOTsAIATISdrgAAYEAaVgAAdomqelNVXVlVF+/g/aqq11XVZ6vqoqo6bDXX1bACAExAZWmnq3k+VuHkJEev8P7jktxv9jguyetXc1ENKwAAu0R3n57kaysc8pNJ3tJLPp5kn6q6x86ua9EVAMAEnH/+eaftubE2zbmMParq3GXPt3T3lltw/n5Jvrjs+RWz176y0kkaVgCACejulf7UvlszEgAAwHr5UpL9lz2/5+y1FWlYAQBYL6cm+dnZ3QIeluSfu3vFcYDESAAAALtIVb09yZFJNlXVFUlemmRjknT3SUnen+TxST6b5NtJjl3Vdbt7LeoFAIBdwkgAAABD07ACADA0DSsAAEPTsAIAMDQNKwAAQ9OwAgAwNA0rAABD+/835X4mk7R/FQAAAABJRU5ErkJggg==\n","text/plain":["
"]},"metadata":{"needs_background":"light"}},{"output_type":"stream","name":"stdout","text":["Matriz de confusion train: \n"]},{"output_type":"display_data","data":{"text/plain":["
"]},"metadata":{}},{"output_type":"display_data","data":{"image/png":"iVBORw0KGgoAAAANSUhEUgAAAqIAAAKkCAYAAADbWF3uAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3da7SlZXUn+v8s7jcBBYwtGhBvKC1IyhtGBFSixphLJ2mjyUhMcpBogqaP9jFjeNq0GUmI6VzUozHVJqf14KVFsZvEiNodiUqjUiAqF42JeAFpAZUgiEIV83zYq2SDtXftkrX3u9+3fj/GGrUuz1p7rvqwmfWf61lPdXcAAGCtbRi6AAAAdk0aUQAABqERBQBgEBpRAAAGoREFAGAQGlEAAAahEQUAYG6q6sVVdVlVXV5VL1lurUYUAIC5qKpjkvwfSR6b5Ngkz6qqBy+1XiMKAMC8HJ3k49397e7ekuQfkvzMUot3X7OyAAD4ge12rx/u3nLroDX0rddfnuQ7i+7a1N2bFt2+LMnvV9V9ktya5JlJNi/1ehpRAIAR6C23Zq+H/fygNXzn0td/p7s3LvV4d19ZVX+U5ANJbklyaZKtS603mgcAYG66+6+6+0e6+8Qk30zyj0utlYgCADA3VXVYd19XVQ/MwudDH7/UWo0oAMAoVFKjGGa/e/YZ0duTvKi7b1xqoUYUAIC56e4nrXStRhQAYAwqSdXQVczVKPJdAACmRyMKAMAgjOYBAMZiHJuVVmxa7wYAgNGQiAIAjIXNSgAAcM9pRAEAGITRPADAKIzmZKUVm9a7AQBgNCSiAABjYbMSAADccxpRAAAGYTQPADAGFZuVAABgHiSiAACjUDYrAQDAPGhEAQAYhNE8AMBY2KwEAAD3nEQUAGAsbFYCAIB7TiMKAMAgjOYBAEahbFYCAIB50IgCADAIo3kAgDGo2DUPAADzIBEFABgLm5UAAOCe04gCADAIo3kAgFHwPaIAADAXElEAgLHY4OubAADgHtOIAgAwCKN5AIAxqNisBAAA8yARBQAYC2fNAwDAPacRBQBgEEbzAACj4GQlAACYC4koAMBY2KwEAAD3nEYUAIBBGM0DAIyFzUoAAHDPSUQBAMagymYlAACYB40oAACDMJoHABgLm5UAAOCem1wiWnvu37XvfYYuAxiBhz/g3kOXAIzElZddekN3Hzp0HVMzvUZ03/tkrye9fOgygBF4y2ufO3QJwEg85kEHfWnoGpLYNQ8AAPMwuUQUAGCaymYlAACYB40oAACDMJoHABgLm5UAAOCek4gCAIxBxWYlAACYB40oAACDMJoHABiFcXyPaFX9dpJfT9JJPpPk+d39ne2tXf/vBgCAUaiq+yc5I8nG7j4myW5JnrPUeokoAMBYjOPrm3ZPsk9V3Z5k3yRfXWqhRBQAgJU6pKo2L7qctvjB7r4myX9K8uUk1yb5l+7+wFIvJhEFAGClbujujUs9WFUHJ/nJJEcmuTHJ2VX1i9191vbWa0QBAMZi/W9WemqSq7r7+iSpqnOSnJBku43oun83AACMxpeTPL6q9q2qSvKUJFcutVgiCgAwFut8s1J3f7yq3pXkkiRbknwyyaal1mtEAQCYm+5+ZZJXrmSt0TwAAIOQiAIAjEGN42SlnTGtdwMAwGhoRAEAGITRPADAWKzzXfM7SyIKAMAgJKIAACNRElEAALjnNKIAAAzCaB4AYAQqRvMAADAXElEAgDGo2WVCJKIAAAxCIwoAwCCM5gEARqFsVgIAgHmQiAIAjIREFAAA5kAjCgDAIIzmAQBGwmgeAADmQCIKADASElEAAJgDjSgAAIMwmgcAGIOaXSZEIgoAwCAkogAAI1DOmgcAgPnQiAIAMAijeQCAkTCaBwCAOdCIAgAwCKN5AICRMJoHAIA5kIgCAIyERBQAAOZAIwoAwCCM5gEAxqBmlwmRiAIAMAiJKADASNisBAAAc6ARBQBgEEbzAAAjUCmjeQAAmAeJKADASEhEAQBgDjSiAAAMwmgeAGAspjWZl4gCADAMiSgAwBiUzUoAADAXGlEAAAZhNA8AMBJG8wAAMAcSUQCAkZCIAgDAHGhEAQAYhNE8AMAIVMpoHgAA5kEjCgDAIIzmAQDGYlqTeYkoAADDkIgCAIxB+R5RAADYrqp6WFVduuhyU1W9ZKn1ElEAAOaiuz+X5LgkqardklyT5D1LrdeIAgCMxMhG809J8s/d/aWlFmhEAQBYqUOqavOi25u6e9MSa5+T5O3LvZhGFABgJNZBInpDd2/c0aKq2jPJs5P8znLrbFYCAGDenpHkku7+2nKLNKIAAMzbL2QHY/nEaB4AYDwGn8zvWFXtl+RpSV6wo7UaUQAA5qa7b0lyn5Ws1YgCAIzEOtisNFc+IwoAwCA0ogAADMJoHgBgBKrKaB4AAOZBIgoAMBISUQAAmAONKAAAgzCaBwAYCaN5AACYA40oAACDMJoHABiLaU3mJaIAAAxDIgoAMBI2KwEAwBxoRAEAGITRPADAGJTRPAAAzIVEFABgBCrJxAJRiSgAAMPQiAIAMAijeQCAUSiblQAAYB4kogAAIzGxQFQiCgDAMDSiAAAMwmgeAGAkbFYCAIA5kIgCAIxB2awEAABzoREFAGAQRvMAACNQSTZsmNZsXiIKAMAgJKIAACNhsxIAAMyBRhQAgEEYzQMAjMTUTlbSiDJ5v/ETj8ovPfXoJMkVX/p6XvS6D+W7t28duCpgvfnaDTfm91/7rnzjxptTVXn20x6Tn3vWCUOXBZO2aqP5qjqjqq6sqrcu8fhJVfW3q/XzIUnud+/98oIf/9c55WXvygkv/q/ZsKHyMz/64KHLAtah3TZsyIt++Rk567UvyV+eeXrOed/HctVXrhu6LJi01UxEX5jkqd199Sr+DNih3XfbkL333D23b7kj++61e/73N24ZuiRgHTrk3vfKIfe+V5Jk3332yhGHH5obvn5TjnzAYQNXBjMTPOJzVRrRqnpjkgcleV9VnZXkp5LsneTWJM/v7s/dbf2Tk7xmdrOTnNjd36qqlyX5+SR7JXlPd79yNepluq79xi153X+/NJ/Z9Ev5zm1b8qFLv5IPfcq/jYDlXXvdN/OPV12bRzz08KFLgUlbldF8d5+e5KtJTk7yF0me1N2PTvIfkvzBdp7y0iQv6u7jkjwpya1VdWqShyR5bJLjkvxIVZ24GvUyXQfut2ee+dgjc9zpZ+XoX3tL9t17j/z8kx8ydFnAOvbtW7+bV7z6bTnjV388++2799DlwPdUFjYrDXmZt7X4+qYDk5xdVZcl+bMkj9zOmguS/GlVnZHkoO7ekuTU2eWTSS5J8vAsNKbfp6pOq6rNVbW5b7t5Nd4DI3XSsYfnS1+7KV+/6TvZsvWO/M3HvpDHPuyHhi4LWKe2bNmaV/zx2/K0E4/Nkx+/vf9dAfO0Fo3o7yX5UHcfk+QnsjCiv4vuPjPJryfZJ8kFVfXwLDT+f9jdx80uD+7uv9reD+juTd29sbs31p77r947YXSuvv7mbHzofbPPngufQnnyow7P567+5sBVAetRd+fM15+TI+5/WJ7z7B8duhzYJazF1zcdmOSa2fVf2d6Cqjqquz+T5DNV9ZgspJ/vT/J7VfXW7r65qu6f5PbutoWRFbv489fl3Au/kPP/5Gez9Y7Op79wfd78gSuGLgtYhz7z2S/l/f9waR70w/fN8//d65Ikpz3v1DzhRx42cGWwzeqMx4e0Fo3oq5O8uapekeS9S6x5SVWdnOSOJJcneV93f7eqjk5y4ewv/eYkv5hEI8pOOfMdF+XMd1w0dBnAOveoo4/IR875/aHLgF3KqjWi3X3E7OoNSR666KFXzB4/P8n5s+u/tcRrvCZ37qYHANilTSwQddY8AADD0IgCADAIZ80DAIzE1DYrSUQBABiERBQAYAwmeNa8RBQAgEFoRAEAGITRPADACFRsVgIAgLmQiAIAjMTEAlGJKAAAw9CIAgAwCKN5AICRsFkJAADmQCIKADASEwtEJaIAAAxDIwoAwCCM5gEAxqDGsVmpqg5K8qYkxyTpJL/a3Rdub61GFACAeXpNkvO6+2eras8k+y61UCMKAMBcVNWBSU5M8itJ0t23JbltqfUaUQCAEaisi13zh1TV5kW3N3X3pkW3j0xyfZL/t6qOTXJxkhd39y3bezGblQAAWKkbunvjosumuz2+e5Ljk/xFdz86yS1JXr7Ui0lEAQBGocawWenqJFd398dnt9+VZRpRiSgAAHPR3f87yVeq6mGzu56S5Iql1ktEAQCYp99K8tbZjvkvJHn+Ugs1ogAAI7H+J/NJd1+aZONK1hrNAwAwCIkoAMBIjGCz0k6RiAIAMAiNKAAAgzCaBwAYgxrHZqWdIREFAGAQElEAgBFYOGt+WpGoRBQAgEFoRAEAGITRPADASBjNAwDAHEhEAQBGYmKBqEQUAIBhaEQBABiE0TwAwEjYrAQAAHOgEQUAYBBG8wAAY1B2zQMAwFxIRAEARqBSNisBAMA8aEQBABiE0TwAwEhMbDIvEQUAYBgSUQCAkdgwsUhUIgoAwCA0ogAADMJoHgBgJCY2mZeIAgAwDIkoAMAIVMXJSgAAMA8aUQAABmE0DwAwEhumNZmXiAIAMAyJKADASNisBAAAc6ARBQBgEEbzAAAjMbHJvEQUAIBhSEQBAEagklSmFYlKRAEAGIRGFACAQRjNAwCMhJOVAABgDjSiAAAMwmgeAGAMqhzxCQAA8yARBQAYiYkFohJRAACGoREFAGAQRvMAACNQSTZMbDYvEQUAYBASUQCAkZhYICoRBQBgGBpRAAAGYTQPADASTlYCAIA5kIgCAIxAlc1KAAAwFxpRAAAGYTQPADASTlYCAIA5kIgCAIzEtPJQjSgAAHNUVV9M8q0kW5Ns6e6NS63ViAIAMG8nd/cNO1qkEQUAGAknKwEAsKs6pKo2L7qctp01neQDVXXxEo9/j0QUAGAEKsmG4QPRG5b7zOfMj3b3NVV1WJIPVtVnu/vD21soEQUAYG66+5rZn9cleU+Sxy61ViMKAMBcVNV+VXXAtutJTk1y2VLrjeYBAMagagyble6b5D2zOndP8rbuPm+pxRpRAADmoru/kOTYla43mgcAYBASUQCAkVj/k/mdIxEFAGAQElEAgJEYwWalnSIRBQBgEBpRAAAGYTQPADAC6+SIz7mSiAIAMAiJKADASExts9KSjWhVvS5JL/V4d5+xKhUBALBLWC4R3bxmVQAAsMtZshHt7jcvvl1V+3b3t1e/JAAAtmdag/kVbFaqqidU1RVJPju7fWxVvWHVKwMAYNJWslnpz5P8WJJzk6S7P1VVJ65qVQAA3EVVsmFim5VW9PVN3f2Vu921dRVqAQBgF7KSRPQrVXVCkq6qPZK8OMmVq1sWAABTt5JG9PQkr0ly/yRfTfL+JC9azaIAAPh+E5vM77gR7e4bkjxvDWoBAGAXspJd8w+qqr+pquur6rqq+u9V9aC1KA4AgDtV1aCXeVvJZqW3JXlnkvsl+VdJzk7y9rlXAgDALmUljei+3f3/dfeW2eWsJHuvdmEAAEzbcmfN33t29X1V9fIk78jC2fP/NsnfrUFtAAAssittVro4C43ntrf8gkWPdZLfWa2iAACYvuXOmj9yLQsBAGBplZrcyUor+R7RVNUxSR6RRZ8N7e63rFZRAABM3w4b0ap6ZZKTstCI/l2SZyT5aBKNKAAAP7CVJKI/m+TYJJ/s7udX1X2TnLW6ZQEAcBc1vc1KK/n6plu7+44kW6rqXkmuS/KA1S0LAICpW0kiurmqDkryn7Owk/7mJBeualUAAEzeSs6af+Hs6hur6rwk9+ruT69uWT+4Rx91aC54z28MXQYwAgc/5jeHLgFgp6zGMZtDWu4L7Y9f7rHuvmR1SgIAYFewXCL6J8s81klOmXMtAAAsYyWbe8ZkuS+0P3ktCwEAYNcytcYaAICRWNHJSgAADKsyvc1KElEAAAaxkiM+K8nzkjyou19VVQ9M8kPd/YlVrw4AgO/ZMK1AdEWJ6BuSPCHJL8xufyvJ61etIgAAdgkr+Yzo47r7+Kr6ZJJ09zeras9VrgsAgIlbSSN6e1XtloXvDk1VHZrkjlWtCgCA77MrjuZfm+Q9SQ6rqt9P8tEkf7CqVQEAMHkrOWv+rVV1cZKnZOGbA36qu69c9coAAPiequl9fdNKds0/MMm3k/zN4vu6+8urWRgAANO2ks+IvjcLnw+tJHsnOTLJ55I8chXrAgBg4lYymv/Xi29X1fFJXrhqFQEAsF274malu+juS5I8bhVqAQBgF7KSz4j+u0U3NyQ5PslXV60iAAC2a2J7lVb0GdEDFl3fkoXPjL57dcoBAGBXsWwjOvsi+wO6+6VrVA8AALuIJRvRqtq9u7dU1RPXsiAAAL5fJdkwsdn8conoJ7LwedBLq+rcJGcnuWXbg919zirXBgDAhK3kM6J7J/l6klNy5/eJdhKNKAAAP7DlGtHDZjvmL8udDeg2vapVAQDwfXb6ezfXueUa0d2S7J+7NqDbaEQBALhHlmtEr+3uV61ZJQAALGtie5WWTXgn9lYBAFhPlmtEn7JmVQAAsMtZcjTf3d9Yy0IAAFhaVU3ue0SntvkKAICRWMn3iAIAsA5MLBCViAIAMAyNKAAAgzCaBwAYiQ1G8wAAcM9JRAEARqCSUXx9U1XtlmRzkmu6+1nLrZWIAgAwTy9OcuVKFmpEAQCYi6o6PMmPJ3nTStYbzQMAjMQ6mMwfUlWbF93e1N2bFt3+8yT/PskBK3kxjSgAACt1Q3dv3N4DVfWsJNd198VVddJKXkwjCgAwBrXuv77piUmeXVXPTLJ3kntV1Vnd/YtLPcFnRAEAuMe6+3e6+/DuPiLJc5L8/XJNaKIRBQBgIEbzAAAjUVnfs/ltuvv8JOfvaJ1EFACAQUhEAQBGYOFkpaGrmC+JKAAAg9CIAgAwCKN5AICRMJoHAIA50IgCADAIo3kAgJGomtZsXiIKAMAgJKIAACPge0QBAGBONKIAAAzCaB4AYAwqmdheJYkoAADDkIgCAIzEholFohJRAAAGoREFAGAQRvMAACPge0QBAGBOJKIAACMxsb1KElEAAIahEQUAYBBG8wAAo1DZkGnN5iWiAAAMQiIKADACFZuVAABgLjSiAAAMwmgeAGAMyslKAAAwFxJRAICR2DCx3UoSUQAABqERBQBgEEbzAAAj4HtEAQBgTjSiAAAMwmgeAGAk7JoHAIA5kIgCAIzExAJRiSgAAMPQiAIAMAijeQCAEahML0Gc2vsBAGAkJKIAAGNQSU1st5JEFACAQWhEAQAYhNE8AMBITGswLxEFAGAgElEAgBGoOGseAADmQiMKAMAgjOYBAEZiWoN5iSgAAAORiAIAjMTE9ipJRAEAGIZGFACAQRjNAwCMQqUmNpuXiAIAMAiNKAAAgzCaBwAYgcr0EsSpvR8AAEZCIgoAMBI2KwEAwBxoRAEAGITRPADASKz3wXxV7Z3kw0n2ykKf+a7ufuVS6zWiAADMy3eTnNLdN1fVHkk+WlXv6+6PbW+xRhQAYAxq/W9W6u5OcvPs5h6zSy+13mdEAQBYqUOqavOiy2l3X1BVu1XVpUmuS/LB7v74Ui8mEQUAYKVu6O6Nyy3o7q1Jjquqg5K8p6qO6e7LtrdWIwoAMAJjO1mpu2+sqg8leXqS7TaiY3o/AACsY1V16CwJTVXtk+RpST671HqJKADASKz3zUpJ7pfkzVW1WxYCz3d2998utVgjCgDAXHT3p5M8eqXrjeYBABiERBQAYCTW/WB+J0lEAQAYhEQUAGAk1v9epZ0jEQUAYBAaUQAABmE0DwAwAgsnK01rNi8RBQBgEBJRAICRsFkJAADmQCMKAMAgjOYBAEahUjYrAQDAPacRBQBgEEbzAAAjMbVd8xpRJu9//K8r8jt/8q5sveOO/NJPnpDf/pVThy4JWIde8JyT8ss/dUJSlbf8twvyxrefP3RJMHlrMpqvqoOq6oVr8bNgsa1b78jLXv3OnP2aF+Zj73xF3v2Bi/PZL1w7dFnAOnP0UffLL//UCXnKL/9xnvTcP8yP/egxOfLwQ4YuC+5i28lKQ17mba0+I3pQku9rRKtKIsuquvjyL+ZBDzgkRxx+SPbcY/f8zNOOz9/9w6eHLgtYZx56xA9l82VfzK3fvT1bt96RCy75p/zEyccNXRZM3lo1omcmOaqqLq2qi6rqI1V1bpIrquqIqrps28KqemlV/e7s+lFVdV5VXTx7zsPXqF4m4trr/yX3v+/B37v9r+57cK69/l8GrAhYj67856/mCcc9OAcfuF/22WuPPO2ER97ldwewOtYqkXx5kmO6+7iqOinJe2e3r6qqI5Z53qYkp3f356vqcUnekOSU1S4WgF3LP37xa3nNWz6Yc173onz71tty2T9ena133DF0WXBXZbPSvHyiu69abkFV7Z/khCRn151/63stsfa0JKclyQMe+MA5lsnY3e/QA3PN1775vdtf/do3c79DDxywImC9OuvcC3PWuRcmSf7vF/5EvnrdjQNXBNM31PeI3rLo+pa71bH37M8NSW7s7uMWXY7e3ot196bu3tjdGw895NBVKpkxOv4RP5x//vL1+dI1N+S227fknA9ekmec+KihywLWoUMO3j9Jcvh9D86zTj42Z5+3eeCK4PtVDXuZt7VKRL+V5IAlHvtaksOq6j5Jbk7yrCTndfdNVXVVVf1cd59dC7Hoo7r7U2tUMxOw++675dX//ufzb854fbZu7Tzv2Y/P0Ufdb+iygHXoLX/06zn4wP2yZcvWvOzV78xNN986dEkweWvSiHb316vqgtmmpFuz0Hxue+z2qnpVkk8kuSbJZxc99XlJ/qKqXpFkjyTvSKIRZaec+sRH5tQnPnLoMoB17pmn/fnQJcAuZ80+I9rdz13msdcmee127r8qydNXsy4AgLGoVfguzyE5ax4AgEH4QnkAgBGoJBumFYhKRAEAGIZGFACAQRjNAwCMhM1KAAAwBxJRAICRmNpZ8xJRAAAGoREFAGAQRvMAACNhsxIAAMyBRBQAYAScrAQAAHOiEQUAYBBG8wAAo1A2KwEAwDxoRAEAGITRPADAGJQjPgEAYC4kogAAIzGxQFQiCgDAMDSiAAAMwmgeAGAEFo74nNZwXiIKAMAgJKIAACMxrTxUIgoAwEA0ogAADMJoHgBgLCY2m5eIAgAwCIkoAMBI1MQiUYkoAACD0IgCADAIo3kAgJGY2MFKElEAAIYhEQUAGImJBaISUQAAhqERBQBgEEbzAABjMbHZvEQUAIBBaEQBAJiLqnpAVX2oqq6oqsur6sXLrTeaBwAYgcoojvjckuT/7O5LquqAJBdX1Qe7+4rtLZaIAgAwF919bXdfMrv+rSRXJrn/UuslogAAY1Dr4mSlQ6pq86Lbm7p70/YWVtURSR6d5ONLvZhGFACAlbqhuzfuaFFV7Z/k3Ule0t03LbXOaB4AgLmpqj2y0IS+tbvPWW6tRBQAYCSGn8wvr6oqyV8lubK7/3RH6yWiAADMyxOT/FKSU6rq0tnlmUstlogCAIzFOo9Eu/uj2YkqJaIAAAxCIwoAwCCM5gEARqHGcLLSTpGIAgAwCIkoAMBIrIOTleZKIgoAwCA0ogAADMJoHgBgBCrr/mtEd5pEFACAQUhEAQDGYmKRqEQUAIBBaEQBABiE0TwAwEg4WQkAAOZAIgoAMBJOVgIAgDnQiAIAMAijeQCAkZjYZF4iCgDAMDSiAAAMwmgeAGAMKpObzUtEAQAYhEQUAGAknKwEAABzoBEFAGAQRvMAACNQccQnAADMhUQUAGAkJhaISkQBABiGRhQAgEEYzQMAjMXEZvMSUQAABiERBQAYCScrAQDAHGhEAQAYhNE8AMBIOFkJAADmQCIKADASEwtEJaIAAAxDIwoAwCCM5gEAxmJis3mJKAAAg5CIAgCMQMXJSgAAMBcaUQAABmE0DwAwBuVkJQAAmAuNKAAAgzCaBwAYiYlN5iWiAAAMQyIKADAWE4tEJaIAAAxCIwoAwCCM5gEARqEc8QkAAPMgEQUAGAknKwEAwBxoRAEAGITRPADACFQm9zWiElEAAIYhEQUAGIuJRaISUQAABqERBQBgEBpRAICRqIH/22F9VX9dVddV1WUreT8aUQAA5uW/JHn6ShfbrAQAMBLr/WSl7v5wVR2x0vUaUQAAVuqQqtq86Pam7t70g76YRhQAgJW6obs3zuvFNKIAACOxzifzO81mJQAABqERBQAYg1rYrDTkZYclVr09yYVJHlZVV1fVry233mgeAIC56O5f2Jn1ElEAAAYhEQUAGI1pbVeSiAIAMAiNKAAAgzCaBwAYgcr6P+JzZ0lEAQAYhEQUAGAkJhaISkQBABjG5BLRSy65+IZ99qgvDV0H684hSW4YughgFPy+YHt+eOgCpmhyjWh3Hzp0Daw/VbW5uzcOXQew/vl9wXpmsxIAAMzB5BJRAICpqoltV5KIsqvYNHQBwGj4fQFrRCPKLqG7/Y8FWBG/L2DtGM0DAIzFtCbzElEAAIahEWW0quqMqrqyqt66xOMnVdXfrnVdwPpUVQdV1QuHrgPuiRr4Mm8aUcbshUme1t3PG7oQYBQOysLvjbuoKh9Tg4FoRBmlqnpjkgcleV9V/V9VdWFVfbKq/ldVPWw7659cVZfOLp+sqgNm97+sqi6qqk9X1X9c6/cBrKkzkxw1+z1wUVV9pKrOTXJFVR1RVZdtW1hVL62q351dP6qqzquqi2fPefhA9cPk+Fcgo9Tdp1fV05OcnOS2JH/S3Vuq6qlJ/iDJv7nbU16a5EXdfUFV7Z/kO1V1apKHJHlsFiYO51bVid394bV7J8AaenmSY7r7uKo6Kcl7Z7evqqojlnnepiSnd/fnq+pxSd6Q5JTVLhburmp6JytpRJmCA5O8uaoekqST7LGdNRck+dPZ50nP6e6rZ43oqUk+OVuzfxYaU40o7Bo+0d1XLbdg9g/XE5KcXXd2AHutdmGwq9CIMgW/l+RD3f3Ts1Tj/Lsv6O4zq+q9SZ6Z5IKq+rEspKB/2N1/uYa1AuvHLYuub8ldP6629+zPDeT0DGgAAAX6SURBVElu7O7j1qwqWIaTlWD9OTDJNbPrv7K9BVV1VHd/prv/KMlFSR6e5P1JfnWWeKSq7l9Vh61BvcAwvpXkgCUe+1qSw6rqPlW1V5JnJUl335Tkqqr6uSSpBceuSbWwC5CIMgWvzsJo/hVZ+MzX9rykqk5OckeSy5O8r7u/W1VHJ7lwNnK7OckvJrluDWoG1lh3f72qLphtSro1C83ntsdur6pXJflEFv5h+9lFT31ekr+Y/Y7ZI8k7knxq7SqH6aruHroGAAB24Ljjf6Q/+OGPD1rDYQfscXF3b5zX6xnNAwAwCI0oAACD8BlRAICRmNaeeYkoAAADkYgCAIzE1E5WkogCa6aqts7O+b6sqs6uqn3vwWv9l6r62dn1N1XVI5ZZe1JVnfAD/IwvVtUhK73/bmtu3smf9btV9dKdrRFgzDSiwFq6tbuP6+5jktyW5PTFD1bVDzSl6e5f7+4rlllyUhaOaQRgHdGIAkP5SJIHz9LKj1TVuUmuqKrdquqPq+qiqvp0Vb0g+d6JNv9PVX2uqv5Hku+dglVV51fVxtn1p1fVJVX1qar6n7NjX09P8tuzNPZJVXVoVb179jMuqqonzp57n6r6QFVdXlVvygr2BVTVf6uqi2fPOe1uj/3Z7P7/WVWHzu47qqrOmz3nI1X18Hn8ZQK7ghr8v3nzGVFgzc2Sz2ckOW921/FJjunuq2bN3L9092NmRy1eUFUfSPLoJA9L8ogk901yRZK/vtvrHprkPyc5cfZa9+7ub1TVG5Pc3N3/abbubUn+rLs/WlUPzMJxr0cneWWSj3b3q6rqx5P82grezq/OfsY+SS6qqnd399eT7Jdkc3f/dlX9h9lr/2aSTUlO7+7PV9XjkrwhySk/wF8jwOhpRIG1tE9VXTq7/pEkf5WFkfknuvuq2f2nJnnUts9/JjkwyUOSnJjk7d29NclXq+rvt/P6j0/y4W2v1d3fWKKOpyZ5RN35qf97VdX+s5/xM7PnvreqvrmC93RGVf307PoDZrV+PQvHyf7X2f1nJTln9jNOSHL2op+91wp+BkAq09uspBEF1tKt3X3c4jtmDdkti+9K8lvd/f67rXvmHOvYkOTx3f2d7dSyYlV1Uhaa2id097er6vwkey+xvGc/98a7/x0A7Kp8RhRYb96f5Deqao8kqaqHVtV+ST6c5N/OPkN6vyQnb+e5H0tyYlUdOXvuvWf3fyvJAYvWfSDJb227UVXbGsMPJ3nu7L5nJDl4B7UemOSbsyb04VlIZLfZkGRbqvvcLIz8b0pyVVX93OxnVFUdu4OfATBZGlFgvXlTFj7/eUlVXZbkL7MwvXlPks/PHntLkgvv/sTuvj7JaVkYg38qd47G/ybJT2/brJTkjCQbZ5uhrsidu/f/YxYa2cuzMKL/8g5qPS/J7lV1ZZIzs9AIb3NLksfO3sMpSV41u/95SX5tVt/lSX5yBX8nAJNU3T10DQAA7MCjj9/Yf//Rjw9aw7332/3i7t44r9fzGVEAgJGY2mYlo3kAAAahEQUAYBBG8wAAI7EapxsNSSIKAMAgJKIAAGNQNisBAMBcaEQBABiE0TwAwAjU7DIlElEAAAYhEQUAGIuJRaISUQAABqERBQBgEEbzAAAj4WQlAACYA40oAACDMJoHABgJR3wCAMAcSEQBAEZiYoGoRBQAgGFoRAEAGITRPADAWExsNi8RBQBgEBJRAICRcLISAADMgUYUAIC5qaqnV9Xnquqfqurly601mgcAGIHK+j9Zqap2S/L6JE9LcnWSi6rq3O6+YnvrJaIAAMzLY5P8U3d/obtvS/KOJD+51GKJKADACFxyycXv32ePOmTgMvauqs2Lbm/q7k2Lbt8/yVcW3b46yeOWejGNKADACHT304euYd6M5gEAmJdrkjxg0e3DZ/dtl0YUAIB5uSjJQ6rqyKraM8lzkpy71GKjeQAA5qK7t1TVbyZ5f5Ldkvx1d1++1Prq7jUrDgAAtjGaBwBgEBpRAAAGoREFAGAQGlEAAAahEQUAYBAaUQAABqERBQBgEP8/n1SC8+ZvXRYAAAAASUVORK5CYII=\n","text/plain":["
"]},"metadata":{"needs_background":"light"}}]}]}