{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Machine Learning con Python"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Esta notebook fue creada originalmente como un blog post por [Raúl E. López Briega](http://relopezbriega.com.ar/) en [Mi blog sobre Python](http://relopezbriega.github.io). El contenido esta bajo la licencia BSD.*"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Una de las ramas de estudio que cada vez esta ganando más popularidad dentro de las [ciencias de la computación](https://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n) es el ***aprendizaje automático*** o ***[Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico)***. Muchos de los servicios que utilizamos en nuestro día a día como google, gmail, netflix, spotify o amazon se valen de las herramientas que les brinda el [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) para alcanzar un servicio cada vez más personalizado y lograr así ventajas competitivas sobre sus rivales. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Qué es Machine Learning?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Pero, ¿qué es exactamente [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico)?. El [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) es el diseño y estudio de las herramientas informáticas que utilizan la experiencia pasada para tomar decisiones futuras; es el estudio de programas que pueden aprenden de los datos. El objetivo fundamental del [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) es ***generalizar, o inducir una regla desconocida\n",
"a partir de ejemplos donde esa regla es aplicada***. El ejemplo más típico donde podemos ver el uso del [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) es en el filtrado de los correo basura o spam. Mediante la observación de miles de correos electrónicos que han sido marcados previamente como basura, los filtros de spam aprenden a clasificar los mensajes nuevos. El [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) combina conceptos y técnicas de diferentes áreas del conocimiento, como las [matemáticas](https://es.wikipedia.org/wiki/Matem%C3%A1ticas), [estadísticas](https://es.wikipedia.org/wiki/Estad%C3%ADstica) y las [ciencias de la computación](https://es.wikipedia.org/wiki/Ciencias_de_la_computaci%C3%B3n); por tal motivo, hay muchas maneras de aprender la disciplina."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tipos de Machine Learning\n",
"\n",
"El [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) tiene una amplia gama de aplicaciones, incluyendo motores de búsqueda, diagnósticos médicos, detección de fraude en el uso de tarjetas de crédito, análisis del mercado de valores, clasificación de secuencias de ADN, reconocimiento del habla y del lenguaje escrito, juegos y robótica. Pero para poder abordar cada uno de estos temas es crucial en primer lugar distingir los distintos tipos de problemas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) con los que nos podemos encontrar.\n",
"\n",
"### Aprendizaje supervisado\n",
"\n",
"En los problemas de [aprendizaje supervisado](https://es.wikipedia.org/wiki/Aprendizaje_supervisado) se enseña o entrena al [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) a partir de datos que ya vienen etiquetados con la respuesta correcta. Cuanto mayor es el conjunto de datos más el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) puede aprender sobre el tema. Una vez concluído el entrenamiento, se le brindan nuevos datos, ya sin las etiquetas de las respuestas correctas, y el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje utiliza la experiencia pasada que adquirió durante la etapa de entrenamiento para predecir un resultado. Esto es similar al método de aprendizaje que se utiliza en las escuelas, donde se nos enseñan problemas y las formas de resolverlos, para que luego podamos aplicar los mismos métodos en situaciones similares.\n",
"\n",
"### Aprendizaje no supervisado\n",
"\n",
"En los problemas de [aprendizaje no supervisado](https://es.wikipedia.org/wiki/Aprendizaje_no_supervisado) el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) es entrenado usando un conjunto de datos que no tiene ninguna etiqueta; en este caso, nunca se le dice al [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) lo que representan los datos. La idea es que el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) pueda encontrar por si solo patrones que ayuden a entender el conjunto de datos. El [aprendizaje no supervisado](https://es.wikipedia.org/wiki/Aprendizaje_no_supervisado) es similar al método que utilizamos para aprender a hablar cuando somos bebes, en un principio escuchamos hablar a nuestros padres y no entendemos nada; pero a medida que vamos escuchando miles de conversaciones, nuestro cerebro comenzará a formar un modelo sobre cómo funciona el lenguaje y comenzaremos a reconocer patrones y a esperar ciertos sonidos. \n",
"\n",
"### Aprendizaje por refuerzo\n",
"\n",
"En los problemas de aprendizaje por refuerzo, el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) aprende observando el mundo que le rodea. Su información de entrada es el feedback o retroalimentación que obtiene del mundo exterior como respuesta a sus acciones. Por lo tanto, el sistema aprende a base de ensayo-error. Un buen ejemplo de este tipo de aprendizaje lo podemos encontrar en los juegos, donde vamos probando nuevas estrategias y vamos seleccionando y perfeccionando aquellas que nos ayudan a ganar el juego. A medida que vamos adquiriendo más practica, el efecto acumulativo del refuerzo a nuestras acciones victoriosas terminará creando una estrategia ganadora."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sobreentrenamiento\n",
"\n",
"Como mencionamos cuando definimos al [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), la idea fundamental es encontrar patrones que podamos generalizar para luego poder aplicar esta generalización sobre los casos que todavía no hemos observado y realizar predicciones. Pero también puede ocurrir que durante el entrenamiento solo descubramos casualidades en los datos que se parecen a patrones interesantes, pero que no generalicen. Esto es lo que se conoce con el nombre de *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste) o sobreajuste*.\n",
"\n",
"El *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste)* es la tendencia que tienen la mayoría de los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) a ajustarse a unas características muy específicas de los datos de entrenamiento que no tienen relación causal con la *función objetivo* que estamos buscando para generalizar. El ejemplo más extremo de un modelo *sobreentrenado* es un modelo que solo memoriza las respuestas correctas; este modelo al ser utilizado con datos que nunca antes ha visto va a tener un rendimiento azaroso, ya que nunca logró generalizar un patrón para predecir.\n",
"\n",
"### Como evitar el sobreentrenamiento\n",
"\n",
"Como mencionamos anteriormente, todos los modelos de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) tienen tendencia al *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste)*; es por esto que debemos aprender a convivir con el mismo y tratar de tomar medidas preventivas para reducirlo lo más posible. Las dos principales estrategias para lidiar son el *[sobreentrenamiento](https://es.wikipedia.org/wiki/Sobreajuste)* son: la ***retención de datos*** y la ***[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)***.\n",
"\n",
"En el primer caso, la idea es dividir nuestro [conjunto de datos](https://es.wikipedia.org/wiki/Conjunto_de_datos), en uno o varios conjuntos de entrenamiento y otro/s conjuntos de evaluación. Es decir, que no le vamos a pasar todos nuestros datos al [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) durante el entrenamiento, sino que vamos a *retener* una parte de los datos de entrenamiento para realizar una evaluación de la efectividad del modelo. Con esto lo que buscamos es evitar que los mismos datos que usamos para entrenar sean los mismos que utilizamos para evaluar. De esta forma vamos a poder analizar con más precisión como el modelo se va comportando a medida que más lo vamos entrenando y poder detectar el punto crítico en el que el modelo deja de generalizar y comienza a *sobreajustarse* a los datos de entrenamiento.\n",
"\n",
"La *[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)* es un procedimiento más sofisticado que el anterior. En lugar de solo obtener una simple estimación de la efectividad de la *generalización*; la idea es realizar un análisis estadístico para obtener otras medidas del rendimiento estimado, como la media y la varianza, y así poder entender cómo se espera que el rendimiento varíe a través de los distintos conjuntos de datos. Esta variación es fundamental para la evaluación de la confianza en la estimación del rendimiento.\n",
"La *[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)* también hace un mejor uso de un conjunto de datos limitado; ya que a diferencia de la simple división de los datos en uno el entrenamiento y otro de evaluación; la *[validación cruzada](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada)* calcula sus estimaciones sobre todo el [conjunto de datos](https://es.wikipedia.org/wiki/Conjunto_de_datos) mediante la realización de múltiples divisiones e intercambios sistemáticos entre datos de entrenamiento y datos de evaluación.\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Pasos para construir un modelo de machine learning\n",
"\n",
"Construir un modelo de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), no se reduce solo a utilizar un [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje o utilizar una librería de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico); sino que es todo un proceso que suele involucrar los siguientes pasos:\n",
"\n",
"1. **Recolectar los datos**. Podemos recolectar los datos desde muchas fuentes, podemos por ejemplo extraer los datos de un sitio web o obtener los datos utilizando una [API](https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones) o desde una base de datos. Podemos también utilizar otros dispositivos que recolectan los datos por nosotros; o utilizar datos que son de dominio público. El número de opciones que tenemos para recolectar datos no tiene fin!. Este paso parece obvio, pero es uno de los que más complicaciones trae y más tiempo consume. \n",
"\n",
"2. **Preprocesar los datos**. Una vez que tenemos los datos, tenemos que asegurarnos que tiene el formato correcto para nutrir nuestro [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje. Es prácticamente inevitable tener que realizar varias tareas de preprocesamiento antes de poder utilizar los datos. Igualmente este punto suele ser mucho más sencillo que el paso anterior.\n",
"\n",
"3. **Explorar los datos**. Una vez que ya tenemos los datos y están con el formato correcto, podemos realizar un pre análisis para corregir los casos de valores faltantes o intentar encontrar a simple vista algún patrón en los mismos que nos facilite la construcción del modelo. En esta etapa suelen ser de mucha utilidad las medidas estadísticas y los gráficos en 2 y 3 dimensiones para tener una idea visual de como se comportan nuestros datos. En este punto podemos detectar [valores atípicos](https://es.wikipedia.org/wiki/Valor_at%C3%ADpico) que debamos descartar; o encontrar las características que más influencia tienen para realizar una predicción.\n",
"\n",
"4. **Entrenar el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo)**. Aquí es donde comenzamos a utilizar las técnicas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) realmente. En esta etapa nutrimos al o los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje con los datos que venimos procesando en las etapas anteriores. La idea es que los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) puedan extraer información útil de los datos que le pasamos para luego poder hacer predicciones. \n",
"\n",
"5. **Evaluar el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo)**. En esta etapa ponemos a prueba la información o conocimiento que el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) obtuvo del entrenamiento del paso anterior. Evaluamos que tan preciso es el algoritmo en sus predicciones y si no estamos muy conforme con su rendimiento, podemos volver a la etapa anterior y continuar entrenando el [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) cambiando algunos parámetros hasta lograr un rendimiento aceptable. \n",
"\n",
"6. **Utilizar el modelo**. En esta ultima etapa, ya ponemos a nuestro modelo a enfrentarse al problema real. Aquí también podemos medir su rendimiento, lo que tal vez nos obligue a revisar todos los pasos anteriores. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Librerías de Python para machine learning\n",
"\n",
"Como siempre me gusta comentar, una de las grandes ventajas que ofrece [Python](http://python.org/) sobre otros lenguajes de programación; es lo grande y prolifera que es la comunidad de desarrolladores que lo rodean; comunidad que ha contribuido con una gran variedad de librerías de primer nivel que extienden la funcionalidades del lenguaje. Para el caso de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), las principales librerías que podemos utilizar son: \n",
"\n",
"### Scikit-Learn\n",
"\n",
"[Scikit-learn](http://scikit-learn.org/stable/) es la principal librería que existe para trabajar con [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), incluye la implementación de un gran número de [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) de aprendizaje. La podemos utilizar para clasificaciones, extraccion de características, regresiones, agrupaciones, reducción de dimensiones, selección de modelos, o preprocesamiento. Posee una [API](https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones) que es consistente en todos los modelos y se integra muy bien con el resto de los paquetes científicos que ofrece [Python](http://python.org/). Esta librería también nos facilita las tareas de evaluación, diagnostico y [validaciones cruzadas](https://es.wikipedia.org/wiki/Validaci%C3%B3n_cruzada) ya que nos proporciona varios métodos de fábrica para poder realizar estas tareas en forma muy simple. \n",
"\n",
"\n",
"### Statsmodels\n",
"\n",
"[Statsmodels](http://statsmodels.sourceforge.net/) es otra gran librería que hace foco en modelos estadísticos y se utiliza principalmente para análisis predictivos y exploratorios. Al igual que [Scikit-learn](http://scikit-learn.org/stable/), también se integra muy bien con el resto de los paquetes cientificos de [Python](http://python.org/). Si deseamos ajustar modelos lineales, hacer una análisis estadístico, o tal vez un poco de modelado predictivo, entonces [Statsmodels](http://statsmodels.sourceforge.net/) es la librería ideal. Las pruebas estadísticas que ofrece son bastante amplias y abarcan tareas de validación para la mayoría de los casos. \n",
"\n",
"### PyMC\n",
"\n",
"[pyMC](http://pymc-devs.github.io/pymc/index.html) es un módulo de [Python](http://python.org/) que implementa modelos estadísticos bayesianos, incluyendo la [cadena de Markov Monte Carlo(MCMC)](https://en.wikipedia.org/wiki/Markov_chain_Monte_Carlo). [pyMC](http://pymc-devs.github.io/pymc/index.html) ofrece funcionalidades para hacer el análisis bayesiano lo mas simple posible. Incluye los modelos [bayesianos](https://es.wikipedia.org/wiki/Inferencia_bayesiana), distribuciones estadísticas y herramientas de diagnostico para la covarianza de los modelos. Si queremos realizar un análisis [bayesiano](https://es.wikipedia.org/wiki/Inferencia_bayesiana) esta es sin duda la librería a utilizar.\n",
"\n",
"### NTLK\n",
"\n",
"[NLTK](http://www.nltk.org/) es la librería líder para el procesamiento del lenguaje natural o [NLP](https://es.wikipedia.org/wiki/Procesamiento_de_lenguajes_naturales) por sus siglas en inglés. Proporciona interfaces fáciles de usar a más de 50 cuerpos y recursos léxicos, como [WordNet](https://wordnet.princeton.edu/), junto con un conjunto de bibliotecas de procesamiento de texto para la clasificación, tokenización, el etiquetado, el análisis y el razonamiento semántico. \n",
"\n",
"Obviamente, aquí solo estoy listando unas pocas de las muchas librerías que existen en [Python](http://python.org/) para trabajar con problemas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico), los invito a realizar su propia investigación sobre el tema."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"## Algoritmos más utilizados\n",
"\n",
"Los [algoritmos](https://es.wikipedia.org/wiki/Algoritmo) que más se suelen utilizar en los problemas de [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) son los siguientes:\n",
"\n",
"1. [Regresión Lineal](https://es.wikipedia.org/wiki/Regresi%C3%B3n_lineal)\n",
"2. [Regresión Logística](https://es.wikipedia.org/wiki/Regresi%C3%B3n_log%C3%ADstica)\n",
"3. [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n)\n",
"4. [Random Forest](https://es.wikipedia.org/wiki/Random_forest)\n",
"5. [SVM](https://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte) o Máquinas de vectores de soporte.\n",
"6. [KNN](https://es.wikipedia.org/wiki/K-vecinos_m%C3%A1s_cercanos) o K vecinos más cercanos.\n",
"7. [K-means](https://es.wikipedia.org/wiki/K-means)\n",
"\n",
"Todos ellos se pueden aplicar a casi cualquier problema de datos y obviamente estan todos implementados por la excelente librería de [Python](http://python.org/), [Scikit-learn](http://scikit-learn.org/stable/). Veamos algunos ejemplos de ellos."
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"### Regresión Lineal\n",
"\n",
"Se utiliza para estimar los valores reales (costo de las viviendas, el número de llamadas, ventas totales, etc.) basados en variables continuas. La idea es tratar de establecer la relación entre las variables independientes y dependientes por medio de ajustar una mejor línea recta con respecto a los puntos. Esta línea de mejor ajuste se conoce como línea de regresión y esta representada por la siguiente ecuación lineal:\n",
"\n",
"$$Y = \\beta_{0} + \\beta_{1}X_{1} + \\beta_{2}X_{2} + ... + \\beta_{n}X_{n}$$\n",
"\n",
"Veamos un pequeño ejemplo de como se implementa en [Python](http://python.org/). En este ejemplo voy a utilizar el dataset Boston que ya viene junto con [Scikit-learn](http://scikit-learn.org/stable/) y es ideal para practicar con [Regresiones Lineales](https://es.wikipedia.org/wiki/Regresi%C3%B3n_lineal); el mismo contiene precios de casas de varias áreas de la ciudad de Boston. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# graficos embebidos\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" CRIM | \n",
" ZN | \n",
" INDUS | \n",
" CHAS | \n",
" NOX | \n",
" RM | \n",
" AGE | \n",
" DIS | \n",
" RAD | \n",
" TAX | \n",
" PTRATIO | \n",
" B | \n",
" LSTAT | \n",
" TARGET | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.00632 | \n",
" 18 | \n",
" 2.31 | \n",
" 0 | \n",
" 0.538 | \n",
" 6.575 | \n",
" 65.2 | \n",
" 4.0900 | \n",
" 1 | \n",
" 296 | \n",
" 15.3 | \n",
" 396.90 | \n",
" 4.98 | \n",
" 24.0 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.02731 | \n",
" 0 | \n",
" 7.07 | \n",
" 0 | \n",
" 0.469 | \n",
" 6.421 | \n",
" 78.9 | \n",
" 4.9671 | \n",
" 2 | \n",
" 242 | \n",
" 17.8 | \n",
" 396.90 | \n",
" 9.14 | \n",
" 21.6 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.02729 | \n",
" 0 | \n",
" 7.07 | \n",
" 0 | \n",
" 0.469 | \n",
" 7.185 | \n",
" 61.1 | \n",
" 4.9671 | \n",
" 2 | \n",
" 242 | \n",
" 17.8 | \n",
" 392.83 | \n",
" 4.03 | \n",
" 34.7 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.03237 | \n",
" 0 | \n",
" 2.18 | \n",
" 0 | \n",
" 0.458 | \n",
" 6.998 | \n",
" 45.8 | \n",
" 6.0622 | \n",
" 3 | \n",
" 222 | \n",
" 18.7 | \n",
" 394.63 | \n",
" 2.94 | \n",
" 33.4 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.06905 | \n",
" 0 | \n",
" 2.18 | \n",
" 0 | \n",
" 0.458 | \n",
" 7.147 | \n",
" 54.2 | \n",
" 6.0622 | \n",
" 3 | \n",
" 222 | \n",
" 18.7 | \n",
" 396.90 | \n",
" 5.33 | \n",
" 36.2 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO \\\n",
"0 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 \n",
"1 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 \n",
"2 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 \n",
"3 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 \n",
"4 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 \n",
"\n",
" B LSTAT TARGET \n",
"0 396.90 4.98 24.0 \n",
"1 396.90 9.14 21.6 \n",
"2 392.83 4.03 34.7 \n",
"3 394.63 2.94 33.4 \n",
"4 396.90 5.33 36.2 "
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# importando pandas, numpy y matplotlib\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"# importando los datasets de sklearn\n",
"from sklearn import datasets\n",
"\n",
"boston = datasets.load_boston()\n",
"boston_df = pd.DataFrame(boston.data, columns=boston.feature_names)\n",
"boston_df['TARGET'] = boston.target\n",
"boston_df.head() # estructura de nuestro dataset."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# importando el modelo de regresión lineal\n",
"from sklearn.linear_model import LinearRegression\n",
"\n",
"rl = LinearRegression() # Creando el modelo.\n",
"rl.fit(boston.data, boston.target) # ajustando el modelo"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[('CRIM', -0.10717055656035465),\n",
" ('ZN', 0.046395219529796909),\n",
" ('INDUS', 0.020860239532179539),\n",
" ('CHAS', 2.6885613993179454),\n",
" ('NOX', -17.795758660309225),\n",
" ('RM', 3.804752460258007),\n",
" ('AGE', 0.0007510617033251836),\n",
" ('DIS', -1.4757587965198111),\n",
" ('RAD', 0.30565503833909574),\n",
" ('TAX', -0.012329346305270286),\n",
" ('PTRATIO', -0.95346355469055721),\n",
" ('B', 0.0093925127221896297),\n",
" ('LSTAT', -0.52546663290078854)]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Lista de coeficientes B para cada X\n",
"list(zip(boston.feature_names, rl.coef_))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Pred | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 30.008213 | \n",
"
\n",
" \n",
" 1 | \n",
" 25.029861 | \n",
"
\n",
" \n",
" 2 | \n",
" 30.570232 | \n",
"
\n",
" \n",
" 3 | \n",
" 28.608141 | \n",
"
\n",
" \n",
" 4 | \n",
" 27.942882 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Pred\n",
"0 30.008213\n",
"1 25.029861\n",
"2 30.570232\n",
"3 28.608141\n",
"4 27.942882"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# haciendo las predicciones\n",
"predicciones = rl.predict(boston.data)\n",
"predicciones_df = pd.DataFrame(predicciones, columns=['Pred'])\n",
"predicciones_df.head() # predicciones de las primeras 5 lineas"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"-2.2467754490437951e-15"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Calculando el desvio\n",
"np.mean(boston.target - predicciones)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Como podemos ver, el desvío del modelo es pequeño, por lo que sus resultados para este ejemplo son bastante confiables."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Regresión Logística\n",
"\n",
"Los modelos lineales, también pueden ser utilizados para clasificaciones; es decir, que primero ajustamos el modelo lineal a la probabilidad de que una cierta clase o categoría ocurra y, a luego, utilizamos una función para crear un umbral en el cual especificamos el resultado de una de estas clases o categorías. La función que utiliza este modelo, no es ni más ni menos que la función logística.\n",
"\n",
"$$f(x) = \\frac{1}{1 + e^{-1}}$$\n",
"\n",
"Veamos, aquí también un pequeño ejemplo en [Python](http://python.org/)."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Creando un dataset de ejemplo \n",
"from sklearn.datasets import make_classification\n",
"X, y = make_classification(n_samples=1000, n_features=4)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Importando el modelo\n",
"from sklearn.linear_model import LogisticRegression\n",
"\n",
"rlog = LogisticRegression() # Creando el modelo\n",
"\n",
"# Dividiendo el dataset en entrenamiento y evaluacion\n",
"X_entrenamiento = X[:-200]\n",
"X_evaluacion = X[-200:]\n",
"y_entrenamiento = y[:-200]\n",
"y_evaluacion = y[-200:]\n",
"\n",
"rlog.fit(X_entrenamiento, y_entrenamiento) #ajustando el modelo\n",
"\n",
"# Realizando las predicciones\n",
"y_predic_entrenamiento = rlog.predict(X_entrenamiento) \n",
"y_predic_evaluacion = rlog.predict(X_evaluacion)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sobre datos de entrenamiento: 0.95\n",
"sobre datos de evaluación: 0.94\n"
]
}
],
"source": [
"# Verificando la exactitud del modelo\n",
"entrenamiento = (y_predic_entrenamiento == y_entrenamiento).sum().astype(float) / y_entrenamiento.shape[0]\n",
"print(\"sobre datos de entrenamiento: {0:.2f}\".format(entrenamiento))\n",
"evaluacion = (y_predic_evaluacion == y_evaluacion).sum().astype(float) / y_evaluacion.shape[0]\n",
"print(\"sobre datos de evaluación: {0:.2f}\".format(evaluacion))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Como podemos ver en este ejemplo también nuestro modelo tiene bastante precisión clasificando las categorías de nuestro dataset."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Arboles de decisión\n",
"\n",
"Los [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) son diagramas con construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que ocurren de forma sucesiva, para la resolución de un problema.\n",
"Los [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) están compuestos por nodos interiores, nodos terminales y ramas que emanan de los nodos interiores. Cada nodo interior en el árbol contiene una prueba de un atributo, y cada rama representa un valor distinto del atributo. Siguiendo las ramas desde el nodo raíz hacia abajo, cada ruta finalmente termina en un nodo terminal creando una segmentación de los datos. Veamos aquí también un pequeño ejemplo en [Python](http://python.org/)."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Creando un dataset de ejemplo\n",
"X, y = datasets.make_classification(1000, 20, n_informative=3)\n",
"\n",
"# Importando el arbol de decisión\n",
"from sklearn.tree import DecisionTreeClassifier\n",
"from sklearn import tree\n",
"\n",
"ad = DecisionTreeClassifier(criterion='entropy', max_depth=5) # Creando el modelo\n",
"ad.fit(X, y) # Ajustando el modelo\n",
"\n",
"#generando archivo para graficar el arbol\n",
"with open(\"mi_arbol.dot\", 'w') as archivo_dot:\n",
" tree.export_graphviz(ad, out_file = archivo_dot)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# utilizando el lenguaje dot para graficar el arbol.\n",
"!dot -Tjpeg mi_arbol.dot -o arbol_decision.jpeg"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Luego de usar el lenguaje [dot](http://www.graphviz.org/content/dot-language) para convertir nuestro arbol a formato jpeg, ya podemos ver la imagen del mismo.\n",
"\n",
""
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"precisión del modelo: 0.92\n"
]
}
],
"source": [
"# verificando la precisión\n",
"print(\"precisión del modelo: {0: .2f}\".format((y == ad.predict(X)).mean()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"En este ejemplo, nuestro árbol tiene una precisión del 89%. Tener en cuenta que los [Arboles de Decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) tienen tendencia a *sobreentrenar* los datos."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Random Forest\n",
"\n",
"En lugar de utilizar solo un arbol para decidir, ¿por qué no utilizar todo un bosque?!!. Esta es la idea central detrás del [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) de [Random Forest](https://es.wikipedia.org/wiki/Random_forest). Tarbaja construyendo una gran cantidad de [arboles de decision](https://es.wikipedia.org/wiki/%C3%81rbol_de_decisi%C3%B3n) muy poco profundos, y luego toma la clase que\n",
"cada árbol eligió. Esta idea es muy poderosa en [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico). Si tenemos en cuenta que un sencillo clasificador entrenado podría tener sólo el 60 por ciento de precisión, podemos entrenar un montón de clasificadores que sean por lo general acertados y luego podemos utilizar la sabiduría de todos los aprendices juntos.\n",
"Con [Python](http://python.org/) los podemos utilizar de la siguiente manera:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"precisión del modelo: 1.00\n"
]
}
],
"source": [
"# Creando un dataset de ejemplo\n",
"X, y = datasets.make_classification(1000)\n",
"\n",
"# Importando el random forest\n",
"from sklearn.ensemble import RandomForestClassifier\n",
"\n",
"rf = RandomForestClassifier() # Creando el modelo\n",
"rf.fit(X, y) # Ajustando el modelo\n",
"\n",
"# verificando la precisión\n",
"print(\"precisión del modelo: {0: .2f}\".format((y == rf.predict(X)).mean()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### SVM o Máquinas de vectores de soporte\n",
"\n",
"La idea detrás de [SVM](https://es.wikipedia.org/wiki/M%C3%A1quinas_de_vectores_de_soporte) es encontrar un plano que separe los grupos dentro de los datos de la mejor forma posible. Aquí, la separación significa que la elección\n",
"del plano maximiza el margen entre los puntos más cercanos en el plano; éstos puntos se denominan vectores de soporte. Pasemos al ejemplo."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXsAAAELCAYAAAA4HCbKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FMUbx7+ze/1yl3bpvSd0CEgNoihKE7GAgEhH4AeI\nIgjY6DbAgoqKdGmigEgv0rsQWgghvfdckkuu387vj7uEIwQISEhC7vM89+R2ys6b3Xnfe3fm3RlC\nKYUNGzZs2HiyYepaABs2bNiwUfvYjL0NGzZsNAJsxt6GDRs2GgE2Y2/Dhg0bjQCbsbdhw4aNRoDN\n2NuwYcNGI8Bm7B8hhJBuhJD0upbjYSCE+BNCOEIIYzneTQgZ+hjaTSGEdK/tdmw8GISQKELIjbqW\nw8ajo1aNPSGkCyHkFCGkmBBSSAg5QQhpSwjpQAgpI4RIq6kTTQiZYPkuIITMJoTctJRPJoSsIIT4\n1abcDQGLYQ6srfNTSntRStfV1vmtm7J8bNQR1f3gUkqPU0rD60geASFkMSEknRCisuj915a8vYSQ\nOdXU6UcIybZyVp6yOCxKi+05SwgZ/pj/lXpFrRl7QogcwE4A3wJwBOAFYA4ALaX0DIAMAK9VqdMM\nQASAjZakPwD0ATAIgBxASwD/ArB5gmbIQ1UihPeoBbHRoKk3P7iWvjkTQBsA7SilMgDdAFywFFkN\n4M1qqg4F8BullCOEdARwCMBhAEGUUmcA4wG8WLvS13MopbXyAdAWgPIe+TMBHKqS9iWAPy3fnwOg\nBuD1AG36ANgKIA9AAYCllnQGwEcAUgDkAlgDQG7J8wfAAXgLQCqAfACz7tGGEMAiS9kcAMsAiCx5\n3QCk36MuB3OniwdQCmAugCAApwEUA9gEgG9VfoylbCGAvwB4WNKPWc5VBkAF4PV7lbdqe4IlP7Ea\n2SquA2M5PgJglOX7cAAnAHwFoAhAEoAXreraA1gBIAvmH/F5VucJAvCP5X7kA/gNgL1V3WQAz9ZW\nP7R9aqQ3d9yDqn3ZojtTAVy26qtCq/w+AC4BUAI4CaC5Vd4MAAmWPh8D4GWrvOGW8kssfWQegL8B\nvHMXWcWW9qOs0hwBaCratPTVpXV9XevbpzY7kMxy81bD/IvqWCXfB4ABgLflmAGQDuAly/HnAA4/\nQHuspSMutnQIIYBOlryRFiPnD0AK4E8Aay15FUbuZ0udFgC0AMLv0s7XALYDcABgB2AHgIWWvNsU\npJq6HIBtlnpNAOgshtAf5ieXGABvWco+azGOrQAIAHwH4GiVcwVaHdek/D6L3MJqZKu4DhVG+jCA\nkZbvwwHoAYyC+WliHIBMq7rbYP7REwNwAXAWwFhLXhDMT2J8AAoARwF8bVXXZuzr+FPdPajaly1l\nzgBwh9m4XgfwtiWvNcxOVDtL/3jLUp5vyX8NgLvl+wCYnRQ3q75lAPA/mG2ACMCHMDtT4wE0B0Cq\nyPYLgOVWx28DuGj5LgFgBPB0XV/X+vap7U4UDmAVzEbcALO36WqVfwDATMv352H2yFnL8XIAGx+g\nrY6W+kw1eYcAjLM6DrUYL8bKyHla5Z8FMLCa8xBLRw2s0m6S5fttClJNfQ5AR6vjfwFMszpeVGEI\nYfaUP7fKk1pk9rU6l7UcNSnf7R6yVVyHuxn7eKuyEktZVwBuMP84iqzyBwH45y7tvFyhmJZjm7Gv\n409196BqX7aUGWx1/AWAZZbvywDMrVL/BoCud2kvGrecuuEAUqvkMzA/hZ6w9K1MWJwgS35nmJ8g\nBJbjk7A8CcA8XMwBCK3r61rfPrU6QUspvUEpHUEp9QHQDIAngG+siqyBeawNlr8bKaUmy3EBAI8H\naM4H5k7DVZPnAbOnUEEaAB7MhqqCHKvvapiNZVVcYDZ0FywTP0oAe2D2WGtKrtV3TZVjrVW7t8lM\nKS2HeXjG6y7nrUn5/xIpVHl9KKVqy1c7AH4we+3ZVtfkJ5ivFQghboSQTYSQDEJICYB1AJz/gxw2\n6g5rHdHAfP8Bcx+YWnH/LX3AGxb9JYS8ZQm8qMhrhtv7wG39klLKUUp/pJR2gXmIcAGAlYSQcEv+\nSZjtQ39CSBDMTxQbLNWVMBv7B7EdjYLHFnpJKY2D2bg3s0reBsCbEPIMgP6W/AoOAniKEHI341aV\ndAC+hBC2mrwsmD3XCnxhftTLrabsvSiAuZM3oZQ6Wj4OlFL5A57nblhPkt0msyVyyRlmL6c6alK+\nNibh0mEejnK2uib2lNLmlvyFAEwAmlFK7WH+UbeF/D4ZVPSnNAALrO6/I6XUjlK62RI59wvMwzRO\nlFJHANdwe3DBXfslpVRHKf0RZiMeYZW1FubhojcB7KWU5lvKq2GeA3ut6rkaO7UZjRNGCHmvwlgT\nQnxgfrw/XVHG4n3+AfNQTwql9KJV3iGYh3m2EULaEEJ4hBAZIWQcIWRENU2eBZAN4HNCiIQQIiKE\ndLLkbQTwriWW3A5mA7TpLk8Blf9C1QRL+eUAviGEVHiuXoSQHjW8LPdrh1gdbwQwghDSkhAitMh8\nhlKaZsnPhXk8HDUsXytQSrMB7AewxHJ/GEJIECGkq6WIHYByAKWWvjCtNuWx8dAILDojIoSIYH7y\nvR8VfXU5gHGWcEdCCJESQnpbdE0KszEvAMBYdLfZXc5nPikh7xBCniaEiC16PwzmfhRtVWwtzEO/\no3G7kwgA0wEMJ4S8TwhxtpyzJSFkIxoxtelhqQC0B3CWEFIGs5G/AvOMvjVrYPa011ZzjtcA7Aaw\nGeYZ+Kswh2QdqFrQYoj7AgiG2dNIh3kyCABWwjx8cAzmSBI1gEnW1atp+27exgcwRxacsQxLHIB5\nDuB+9WrSDq04tvzYfQzzZHIWgAAAb1iVnQ1gjeXR+LUalK+JV3+3MrSaPOvjt2CeFL4Oc7TOFpgn\n8gBzuG0bACUwR1n8WUNZbDxedsOsFxWfT3H/vlzRVy/AHAn2Pcz3Px7mPgFK6XWYgyZOwzwM1Azm\nsfg7zmOF2lInG+agg/EAXqWUplRWojQV5rF6CcxBErDKOw1zwMKzABIJIYUwB2Dsut9FeJIhlkkN\nGzZs2LDxBGMbO7Vhw4aNRoDN2NuwYcNGI8Bm7G3YsGGjEWAz9jZs2LDRCKi1BbEIIbaZXxsPBKX0\noRZ2awjY9MHGg1AbulCrqx/2XHr8wv1L2XicLPTYFalw19W7++LT5evIupahtrHpw5PPop0zIvVj\nogAAD6tntaULtqVuGwnWndCGDRuPni6HL5t1jIBTuOmi71/j8WIz9o2ALaIlkfHmTqhWuOli61oe\nGzaeJPp1PhfRPilfgsEP780/DmzGvhEQ7xhW4W3YDL0NG4+QLaIlkfFJYQDqt6EHbMb+iaZy6IYA\n9fGx0oaNhsxCj12R8Qir90a+gvsae0KIAOa1KSoWtjoC4CdKqaEW5bLxCNCPiWowHbEhYNMFG4DV\nsA3qvzdvTU08+2WWcj/AvMrdUEva6FqUy8Z/wLoz2nik2HShkVM5bFNPJ2HvRU2MfTtKaQur40OE\nkCu1JZCN/4ZVZ4TCreF4HQ0Emy40YhrasE1VamLsjYSQYEppAgBYdoYx1q5YNh4Wy2SszdDXDjZd\naIT0cF7XupvAiQEa1rBNVWpi7KcB+IcQkmw59gdQ3eYhNuqQ28YRbYa+trDpQiOjy+HLkd0GOzXI\nYZuq3NfYU0oPEUJCAYTBvMlAHKVUV+uS2Xgg2iflS56EDlmfselC42Khx67I+h47/yDc1dgTQl6F\nuUMTq78AEEwIAaV062OQz0YNWOixKxKwhVfWFjZdaFw8KcM2VbmXZ98X996WzNbB65gntVPWQ2y6\n0EgwO05OT+Tb5nc19pTS4Y9RDhsPQTeBE2ObjK19bLrQOKh8Qn5CHacavUFLCOkDoAkAUUUapXRu\nbQll4/5YDd08kR2zvmLThSePCl0CnlxDD9TsDdqfAYhh3ql9OYDXAZytZbls3IMn3QOpr9h04cmj\nMelSTTz7TpTS5oSQK5TSOYSQxQD21rZgDQXKcSiIO29n1JSzjkEty0X2zrUad92YOmc9xKYL96E0\nI0FYlpMssnMP0Mq9g+ttpFJjnO+qibHXWP6qCSFeAAoBuNeeSA0HzmTEpV8+COFK8+0cXd1p3J/f\noOWohXGOgc0096/94NgMfZ1j04V7kHxwvWvakc1efmHNaPT2pcS328DMgOeG5NW1XFWxmoRtVMOg\nNTH2OwkhjgC+AlBxYZbXnkgNh7RjW51lfGr3yZ+HGB6fj6M7fseWlV8Htp+2IuZRt7XQY1dkY+uc\n9RCbLtwFTVEOP+Xgeu8vNu8jLp4+yM9KxwcDX/B2b9NdKXZyrzcLxTVmh6kmxv5LSqkWwJ+EkF0w\nT0xpa1eshoG6KFvY5qlODI/PBwA0ax+FtUvmCx51O7bJ2HqDTRfugrowm+/k7sW5ePqwAODi6QNH\nN09OXZjNrw/GvrFMwt4LpgZlTlV8oZRqKaXF1mmNDc5khFFbzgCAvW+4+uTev7lSZSEopTiwZR1k\nnoHqR9leY/ZE6iE2XbCCUgqDupShlELmHqArys0msRfOAABiL5yBMi+HyNwD6nzc3lqHGrMe3esN\nWg8AngAkhJA2uPX2oBxAo1w+N2H3SrfkQxu8QClx8A0rbz58boIqPS5vUq+ObgKRCHw7J13LMZ8l\nPar2bIa+fmDThTspiD0njdmwMMSgKWf4YinXdPCs+IiB0xK/nDIqSCAUQq/Tockb0xMFMgdTXclo\n8+Zv517DOD0ADAfgBWCxVboKwKxalKlekh19WF4YfcDz6+3HiKOLG9Ysmi25uvmLgNZvfxUf9OLw\nbIOmjBU7uhsIU5OHpftjM/T1CpsuWGFQlzLX1s0LnTj/G6Z1VHdEHz/Efv/xu6GdP/zt8tNzt17S\nluTzRfYuBlYgvNdbx7WKTX/u5F5v0K4BsIYQ8hql9I/HKFOdoVMp2esbFgYqk2PshDIHY1Cfcanu\nLbuWAkBx0lW7p/u8yji7ewIAXho+gZwY+KIUAPgSOceXyLlHJYeto9YvGqMuUEoRv2OZZ/b5fa4A\n4NHuhbyQl8ZnEUKgykoSObi40dZR3QEAraO6w0HhSlVZSSKn4FZqqYu3vq7k3iJaEhnv2DD2hH3c\n1MQNPUEIWUEI2QsAhJAmhJBRtSxXnXBtzezgJmHBsm/+OsaM/2ih4MbmL4NKMxOFACC0V+jjrlzk\nOM5s0xOuXoRI7vjIY+pthr5e02h0IeXQBhdtcrTbvNXb2Hmrt7Ha5Gi3lEMbXABA5OBiUOZlM8UF\n5qjK4oI8KPOyGZGDS51OxC702BVp2c9BbdOfO6lJNM5qAKsAfGg5jgfwO4AVtSRTncCZTChIuGw3\nfO0W8PgCtOzUDW26Po/CG+dlcq8gnV/XVwsv/nhcMWtIH7HCw4vGXjhDmg37tGJdc5j0WnJz21Lv\n0pQYe77U3hDYZ2yag3/TB4q3txn6es9qNAJdAIDi+AtOg8a/x3j4BQIABox/j9m4crkjnhuSL1F4\nGbw798ueMaine1jrpxAXfQ7enfvlSBRelcY+9difznnn97oDgGu7F3P8ur5aWFuyNsYXpB6Gmhh7\nBaV0MyFkBgBQSg2EkCdudx7CMOAJxVxueirjFRgCSily0pIhbh5sAgBWIKSRE7+Ly718TK7TlLHt\n3h2ukrrc6tzX1s0PcJXx7Ucu/JpJuXFNuHHpjPCn3vvpmrUC3AuboW8QNApdAABWKDFkp1X6MshO\nSwYrlFT+ryF9xmY7hbUrKctOFoUP6aF1DmldGYWWfupvx6xjv/uO//QrBgCWzZnmy/AEnE+nvspH\nLedy8Y7IfEHje0HqYaiJsS8jhDhXHBBCOgAoqT2R6gZCCIJeHJ4+7+03fLr2eZVJir3GFavU2oBW\nzxRfWPZ+oK4gXUZ4AlPY61MTPSK73+axcyYTcq6dcpx/5CpEEimCm7XGtfOnkXf1pNz/mQH39Whs\nhr7B0Ch0AQD8ewzL+uvH9+xz0lMJAJw9uJu2mbAk6+auX90Kog+5A4BLm+ezQ3qNvOMN2cIrR12G\nTvmQad6hKwDgzSmzmD/Xr3N51MZ+oceuyHywNr2pITUx9lMB/A0gkBByCoALgNdqVao6wv+ZgQVS\nN39tTPxFO6FXS2PkwJcLz30zPsJezBe/MfVjJMde4e3/5YMm7d796arMI6ByEoowDBiWpeqyUiKS\nSAEA5apSMI6C+0Yj2Ax9g6LR6ILcO0Tb7t1lMenn9joCQLt3lykzz+5xzDyx1fvNdz8GAPy2ZJ4P\n5UwktM+YXOu6hMfnylW3fgPVqlIQlv/IAhgW7ZwRqR8TBcCmNw9CTbYlvEAI6QrzVmwE5q3Y6vyN\nuEdJ/vUz0msbvwwglGMdglsrWw3/NA0AOKMRqqxk8ef7L0Du6IQOz/dBWvwNJOxd7dF6xJxUANAW\n5/NSDm92kbn7qz8e1l/cf9T/mKTrV2laUqKxff8Piu/Vbn0y9Dn5ZbxfNl1wKSvX8Z7vElT8fJcg\nVXVpdS1nXdIYdEGv0eDsN+PCTOUlIlZqr20/5ac4gVgMACiIPug+bNocPP3SAAAAw7LYvGyJe4Wx\n50wmpBz5XcFxlFu3eC4tKykmDMPgr9XLuObD5mQ/CvmWi3dE5o+JqtXNRYwmDr/+flERn1QgDglU\naEYPaFMA4I40HvtowqwfFzVZ4lgMYAKALjC/SHKcELLM8tp4gyf/xgXJ1VWfhHd84SW4+wbg7zU/\nuZxeMl7Y8b1l8QBAQcFY3VSW5QHUPHSpLSnknf9mfNO2XZ9l27/0Mtn523K6feP6MrlvRFm7KT/m\n8CWyu3oz9cnQ5xWW8/qOWt+0pbOQdZXwyLT58YqxQ55KX7Xlopd12ntju6S+9UrLorqWt6540nXB\nZDLh9PwBrT18/JkOAwfjzP6ddqfnDWjdZd72aJZlAQAMw1aWZ9lb5oNSiqurPg6SQCvv/twLzBmi\npXv/3KSX+zUpbTFqYb5TUIv//Gb54xi24SjF6Onbg3JTC+Tt3CXMX9Fp3OnzqfYgBHlWaWf+TbNf\nuah/IkPI/U9aT6jJMM5aAKUAvoPZmxkMYB3Ma3k3eGI2fRkQ2e0FjP10EQAgvE17fD5xqNyoVTMZ\nZ/c4CqT2hgVjB/AHTpqJ5OtXcO3cCbSd9F0uAKSd2Obcsn1nduzHXxJLXbLkg4nCiNfeibtXm/XJ\n0APA2m2XnZs4CtgJbd0IADR1ETML1531bushZazTlq49692YjT2ecF1IPbLFiYAyH/+6BQKhCM8P\nGIYJPSKZlKN/OEmd3IyMnaJ85Wez7Fm+2Wys+eoTuEa+mAcAqsxEoSr9hnzhrlOMpS6Z2Ksjz++Z\nN3LkXkH/acmEymGbxzAJeyOhQBgdky3/uZc/I2AZ9Ap1ZEb/nSRnGEJ+6R1AKtLe3pUsj0ssEEYE\nu9T5chA1pSbGvimltInV8T+EkOu1JdDjhjPqiJObR+WxvbMLOJMJ57+dEOHh6SFo/8zz5My+Hfhl\n7jQQEEgUXhqZV7AWAEx6LePk606s6xr1uns+29U3Qw8Aao2BcRSylf+Ho5gHo4kjVdO0emPDem59\n9DzRuqAvK+aLpXYQCM2bcAmEIoilMhRcOuyiNJRL2nToSqKP52Ptl59CJJHCYDRyPp37FgKASa9h\nxHby2+pK7OQw6dT/qc8s9NhVYegfy56waq2BsROwEFie5gUsAzGfBY8lVMAypCLNTshDucbQoPSh\nJsJeJIR0rDiwRCDUG0NVHeqCTH7m+X0OhXEXpJTefY5UXZDJ54llhgO/r8GFoweQnnADP89+H5zJ\nBP/AQMFHyzYwb3+6iLzz1c+Q2Tti6e4zsJdJhVn/HnAAAPeWTxcf3LqBq6i7fN4MTtGk/V093y6H\nLz82Q5+aWczfui/W4cSFNCl3j2sAAL26hRQfTCnlzmWqkFqsw08X87kOrb1LqqY90zGgMXv1QAPU\nBaNWzWRHH5ZnRx+WG7V3N7xGrZphBCKjqliJP39egszkBPzx0xKolIXQFGRIF/z2NzNq1gLy+eb9\noJTiw583od+wCSRp70pvAJB7h2q1Wp3xz5+/oZnJCfjj56+pVqc3yr1DH2qIq1/ncxG3LWD2Hwx9\nmVrP7Dp8U77r8E15mVp/T5vXLNRVS3mscXNMAc0o1WFzTAHlCXlG8Hm3pVEea2wW6tqghu9q4tm3\nBXCSEJIO8zilL4A4QshVAJRS2qI2BXxQcq8cl13f+EVwULNWNCE1kUg8w4qbDfs0mVQZW6soJ3Nw\nIIomLbB83jSYjEa4evkChKF+IRFMRR2foDCoiovAsCx8gkKRX1bMAwDHwOaa8NffT1z19ec+Jp2a\ndQyNVIb3n5xRnVwLPXZFYvDjMfT7jiXI3pu/NzhMIaYZJTrSuoV38bKFfZPvNr7Ytrmn5qsPX0hc\n/PNJn3JNMRv1lL9y3tRnM/45nSyrmlbbstdzGpQuaIvzeRe+fyfCWaFgASBp13JT5KTvYkX2CmN1\n5eykYlZiJ8PRHb9jz/oVkMhkENnJOYlMDju5AwEAO7kDnFzdoSpWwickjJw4dpQPmN9DaTVu0Y0T\nWxYHHNi6USxWeGlajVuU/DDr4ywX74jMT2IfybBNTn4Z79VxGyOkBCwALPz+mGnrz2/Euinsqn0/\nQiTk0Q3fvX5j+sJ9AUfO5Ir9vBw0G5f2TQYA67QN3/VNFgl5dbb2z8NA7uX5AgAhxP9e+ZTSlLvU\noz2XHn/sXs/Rj/u3evfz79mmT3WGTqPBzCG9OPdnhiZ6tHm2tGq5MbMWsOnxsTj4xzrMWrYRLl4+\n+GXudHoj9oaaakrEs374jXHx8sGKBTNAKdBj4DB8PnkYF/ry5CSP1s+U3qsjL9o5IxIA3u/z+YXH\nPXTTuveyVu+0cWFbuEuhM3KYdiidmzHl2cQ+z4aW3r923eDT5etISmm9nu16WF2w1H3s+nDttwX+\nTQI9nYZNm0MAYPWXn9DY5OyiZm9+mFK1XLi/u1NEm/Zk5cKZGPzOLHR68WWc3rcDqxfPNTEMi2FT\nP2Y7PN8Hp/fvxObvP8cnK/7E19PHcVAE5Yf0Hp0tlDk+ktUtH7WuTPp0lz+XWeA0qrUrAYBfo/Mo\n66UoWjqnd8qjOH9tUFu6UJPQy5RH3WhtwZlM0JQUsRGRHQAAQrEYwc3bIL8oR1C1nLq4gP3p03ch\nc3CCVqPGJ8P7wajXgycQEHuFm7i4XEU+HfkKNRr0RCx3NJUpC9hLJw9TBoRkH1kfmLJvlanV2C9u\n2Ln737HoU4WhByxDN4/JowfMYWNFpVq2qat55V0hj0GoswgZOaWPfFOVxkZD0gUAMJTmC5s99Xql\n0Wj2VGdy5fJPwqrlNIWZwjM3z5Mz+3eAEAZrF8/FL3OnQyS1g0AgYikot3bxXPrL3GlELHc06crL\nmOmvPweGYRlHnU5xcsEQl9CXJyZ7d+h1z1Dje9Gv87mI9kn5EuDR6kp2Tqmwu4u48ho0dxGTf3JL\n77gGjYEGNcFwPxiWhb1XgHbf5tUAgLzMNFw+eRj2fhFqjuNQlpsmMOq1YFgWIokUoz/6HN/tOo1v\nd56CWGoHqdwBoz/6HAvX72S+/usYkcjsaatRC+I6f/L7peCeI9Oc3b3o93vOku92HGf6DB7Bu7H5\nq8CqMlQYeqdc9QWnXPWFnoPSwYiKLxmMtxwfjlIUFWtYg9EEnd5Iiku1j+w+8FgGgV4O2t0J5pcV\nc8v0uJBdjpYR7o90UxUb9R+JR1DZgS2/cXqdFnqdFgf/WM9JPILKAEBbUshqSwpZANAW5QmbtO2I\nZfsvYtmBi2jR8Wk4uXmidZdn8c2O4/h2xwmmeYeu8OnYJ6/r3G2X2k358RrLF9DZq7bi662H2U+X\n/87Eb/8hQFtSeF/n0ahVM1XnDj522h7ZIjZLwlHKEaHykol7ZO9foVm4e9mBlFJOb+KgN3E4kFLK\nNQ13L3tkDTQgajJm36AI7DUmdcuyBWFbfvwKBr0eLk07Kk0GPTn2Yd82Bp2WUEqhaNqpQKtRo2OP\nlwAA9k4KtOjQFcd3b8W6RXOwYsFMEELgG9aM5F4+an/9t3mhOnU56TdqIsRSOwBA5579yPZVP4or\n2u3hvK51jzUxDGMwqR2KzJNJCVqtYPCYNShSF7SiAJ3+dufUbh39VSOnbQvNzi8XmDhKOEopyxCE\n+jlpVi3qH3+3scQHYdmCvgkjp20L3RKr5OsMHKaMaJ/RsbW3zdg3MgJfHJF9dtFo5zFPN2UAQOTg\nYoqcODH75PzBzcsLsgUAIFW46xkGTJde/cFYYumjer+CmHMnEX38EMY+2wIMwyCsVTuiUaokJ+cP\nbl6WnyVQeHrDP6wpAMA/vBmc3D1peV6aQGTvXG3/5YwGErvq44Ds62ccAcCjSXtl2NBPk4V/TWnT\n7UwcKKUQ8hhi4mhLsYjPfftpr4RuHfz/s1GeMSEqa2xakfit7YlyAOjQ0ks1Y3xU1n89b0PkiTP2\nyXtX+PUb+T8a1ftVolIWYcGEIY6xSZed+o2YQPoOn4Ds1CR8MuwlhVAkxr9H9uGp7r1QVqLEtXMn\nMHjKhyjMyUJhdibemDwTnwx7iVB63a3fiP8RJ1cP7N24Ai8N/x+EYjHO/bMXUoWnFrjdm7eWZVx6\nasioVl50StsWJEGpJr1Wn/Fd80e0oaubSNA/yoNkqvT46FAa+bCrN46lq8RTZu8O2Pj9gPj/eg3C\ngxS643+MupqdV8Z3shcbJWJ+g5pIsvFoSN6/zt3bL4Adv2YrAGDZJ1PZf5dOaurt4yuYvvUgAODL\nScMEyTeu4syBXWgd9RwA4MyBXXDz8cPr46Zi2SfvYuGmffhh1kSoslPFfiHh7LgVm/Hh4J7ISIyD\nd1AYMhLjUJiTyYS5+tx1Hfukv3/y8ClJsD/zdjcAwJDdVxxVa8Y4FiqLsa5/MABgwbEM0txVgmAn\nETvp010hx34fecXRXvyf5gJEQh5d+/WrCQVKNQsACkdJne2cVdfca1vCMpgjDqqDUkrltSPSw8OZ\nTChOTxT1fWscGJaFk6s7WnR6Gqd2byV93hoHQgg8/YPQukt3nNyzDT/PnoofPpwElseHwt0LfYa+\njcLcbHwhOhpTAAAgAElEQVQ8tA88/YPQqkt3emrvdtLnrXEAIbh27gQm9+4AqdyBqsrKTa3GfJ50\nN0NvpBSx5WrR5MgAEEIQ4iTFc34KbIzJFC7u6gFCCLzlQkR62iFRqUW/UEcy9WC6XXX/15R5e3x2\n/3PT1WiicHOW6Lf+MijWw0V2zycAlmHg7S5/ol7lrysaoi4AQHlmnOzlsRMYhZt5w52eg4Yzy+dO\n5/ceOgYisXlOp9ebo7Hsk/dw4eh+jOwSDgBgeTx88ftBKNw94ejqjuL8HPQcMhq/zJ3O9B46Bq6e\nPhg2fR5mj3gFDgpXFOXncSF93k6tGuVjjSb1mmxiC09Gankha0wzb7x77LppVAsFK+KZR3X6hDpi\nf2IxBjRTQC4sQFxyobBDq9ufSLfvj7X/6KuDQeU6E5EKWTp/2nOJL/eIuO9idI3ZyFdw17FiSqkd\npVR2l0+97NwMy0IkdzDdvGK2uwa9Dimx1yAQCGGdlhhzCSKJHbr0egXf7/0X7y5ejpKiAmSlJCL+\n8r9wdHEz1427TivqMgyDkbMWQigWgzr7FXSauebqL5d+bQbcaegBgEcInAR807ls85yVzsjhcn4Z\nIxPzubhC86KZBhOHhCItnMV83CjQwGQ03TED/8Nv5xV7/7npOqebD37tFwRvIRG8Nm5TRG1dQxt3\n0hB1AQB4Mmdd7MVzlT9SN6LPUw6Eu3HxbGWZuOhzMBmN1MXDG1/8fgBf/H4Arl6+uHh0P5T5OSjI\nzoCDwhU3os9TalW3S6/+6PjiSyhRlek7fLDyqk+Xfvd8B4O1d9Gdzr41f3smu5hKpELjjUJtpXyx\n+Ro4i/koVBuQU6JjhAL2tsH73MIydtrC/cGDmzqTNf2DMbipM5m2cH9wbmEZCxv35b6hlwBACIkC\nEEwpXUUIcQFgRylNvk+dWg81M+o0JG7rtz6q1OvmDUN6j01VF2QKb279NlAoEhOjwQCTyQiGYWEy\n6BEe2R6ZSfHQGThDWVEuf83pePD45iCVpTP/h8ykm8hJT4FPcARUJSUcz8mrlO/koc45/bdnRNuO\nyEiMg95IDR1nrb+yZO9H1Xr0AHCwtMTu6/xcn1y9gV/KmXjdvJ3oTZWaCQzxRu8XAhNmfXkwMMRB\nyKQVa2HkKEKcRbiaqwFHKSQiHiezExr4LIOoDv7KizE5dqGs0W5oS1cAQH65Af/blYQAbweN0UQJ\nZ+IYkYhn1GuNPCdHiWHmpKdTmwS7aD9cdNDnwpVMeyd7seGjd55Jbdvc84E2UnncNITQS+DhdMFS\nr9b1IeXIFudcy4Yhbu1ezHFrEVV6ZtGYpkIBn6WUQqsuB48vAOVMcPcLBI8vQFp8LKQKL82wye+L\n2z3bEwBw/p89WP/1fKjLSiGRyeHg4sFlpaeZQvr9L/n6xs9CfUPMvkZafCxav/3VdcfA5nftW5qi\nHH7ips/9+MpE+6JSNZq7yDhCCJLLtabv5vaO/9/HO0OceODpDSaSVqJDc1cJ4ou00Bs5sCxDZTKR\nQcBjEODjoGnbyqdk3cbzvj/3Dao8/9gdiYCAZ3SwFxl0WiMrEfNNBj1H+DwGA15qnjNqYJvCFZsv\nOG/YfsUdAAa/3CJn1MDIWttI5VFQW7pw3ygQQshsAB8AmGlJEgBY/6gFeRhi1s0LVPCNive//EHQ\nb+Bg6aVfZ4bnXjjoEtG2E6Z/twaDJs8Ey7KYMO9r+ISE4+a1qwaHVj3SO3608QqPL0BOegoAgOM4\nZKUkIqhpawyY+AGyMtKMPr3GJrQYtSCxySuTspsNmx2XrxfkObTqkf75nncNS/Z+FElAueoMfXR5\nuXhyRlrIpKhgybr+bfihDhJaVKBRzZK53Vzw3svo3Kxl8PZfBsWUCYXlzmIeJrV3h0rHIVwhwmfP\n+WFwEyemSKkWDgqWCS+cTnItUKr5aSW3hkIzVXo4S3jo7ioQ5+SVigaHyAScSiOJtJcK3vR0lo58\nf3v4qOnbgzNvZCkmtXAWdJQz0uHvbwtPySjmP7Yb84RSn3Uh/eQOx9yTW33Hz5orGj9rrij35Fbf\nhN0r3CVSKZm4YCkmLfwedvYO6Dt8PJ57bSiykhOhFrnldpi+6jLh8bms5MTKc2UlJ0IokWDC/KUo\nLiyk8Gmd3mHaimvurZ5WdZi24rLWzitHa+eV02H6qsv3MvQmg55cWTop7DWZ0n7NsxEYHO5Jb5Zq\nTH3faJ2yZ+3Qa22be2r2rX3rWudnwrNSlDp80NkTLlI+GBDMjPLG9E6eRK/WCaLchAJntVq+9s9L\n7iVaE9QG84iM2mD+PiTMgVeYpxJHuQkFYUKI9SqtaF4bf9HK3877vjt/r89Pa876Dg2WiYYGy0Q/\nrTnru/6vK461f0fqHzV5qeoygNYALlBKW1vSrtzvbcHa9mQ4kwkH3n8+8tej1yrHH7/5YAL37z97\nmF+PxVSm/fDhZEREdkBeZhoO/fkbeA7uZYbiPIlRr2VEEimier+K1JvXkZkcDw/fQJpy8zoNfWVK\nkkdk9zvGAauLuKnK3MxMD4GPxHNuV/Omx4nF5ei58azpUkSzSwCQ89ELkSBQa7i8+OffXNMizFFI\nLuWoMaSlC+IKNHAQsSjRmtDOyw7NXCWYeSTDpNUZ2XBnMTxkfJxIU+Gd9h5o62WHz45n4HqeBk1d\nxUgs1CL+7e4Yue8Ktz0uh9nwaggqxkKXnM3hnu7dMn3MQPNSrfWRhuDZP6wuWMrVqj5c+un90NeH\nDpN16NEXAHB63w6s/XqBadh7H7HWaaf2/YUeA4bh+w8ngZU6aXSqIj4xGXkcx6FDjz4ghOD8P3sg\nlTuA8PicwD2ksOngmWkPI9Mw7crIj7/8E+cHdwAhBJRStF1/ils0r/eNyCpPmt0HrWqiUpaL+QxB\nex8ZskrNDo6nTIC0Eh1mRnlh0v40jmMYo0mrFzzlZYeL2eVo6S7F2Eg3HE8txfILuXC346NMb8Km\nvm0RryzHh6fjTW82dWS7+JpH246nluJ0OVSbfhh48+Gvdu1SZ549AB2ltHLsjBAifdRCPAwVG4aU\nl96yyapiJQhDYJ1WVqLEuUO7EXvhNHoOGQNNbqrdS8PGMePmLIFQLEZG4k10erEfXL39ab6GKluM\n+uxGdYZ+0c4ZkT3WxDBOueoLdzP0ACBkCFeo0Vf+gio1BggYpvL67drgDVBIfDzsjYc2DL/iGOha\nyGOA85lleDbAHg4iHq7mqWHkKEp1JhACajRxELDAvoRivNvRbOgBQG3gEOUnQ3KxDiq92dsp0hrA\nMgRl+lvzUSq9CaIq4582Hop6qQuAecMQVcmtjaDKSpTgOBOqpmnLy/HjR+/g9fHTYFQVils81Yn3\n9pzFiGjbEdf/PQ1P/yD0GjIGespqXbsMTG4yaMZDGfqFHrsiBQIeVDo9Z+DM6qA3UZTpjRCJ7lxm\nYN/6Ydeffz4iJ19jpHvjlWjjIUUbDyn2JihRpjfByFGodUYUFasFDkIWZzJUaOoixpg25uFNld4E\nb7kACgkfRRojKGfWBYYlVKW7XRcEAl6j1IWahF5uIYT8DMCBEDIWwEgAv9auWPdGo8zjpfyzyVXm\n5qeeO+Z1Sa/Bo0lizCVkpKYYAcL/fMIQ8tzrbyHxWjRS4mJQVlKM0R99gW3Lv4FvSASee+1NSGRy\nePoH4bMJQyBzdEJWRoah/fvLU/liuzs6wgsrxkQuVJbAXmPKnOjqxjryeKbp6Wle5zTl9iJKjOFi\nsZowhHneTl481FlR2CM+zuOZotOshMciOreERghF2smpKT6xWo1EH/e+Jk/cXjzilY4RXm7y2BWf\n90sJ6vad84ddvSEXsohQiHE8tQQbr+ZDx1FKwTBd/eRwlvBRquPww7kcvBLhjPhCDZQaI2ZFeaNH\nsB4fHEjFiL2XaXR+KQ3ycVRPO5Aq9rITELWRozoez9jv+fBq327csue6w6nzqXKxhG/kOEr0ehPb\nIyq4+MWng+vt0gp1SL3TBc5kRPKhTS5Go5Fu+PYzWlasJADw97pfqECu0G/+/gtxWUkxQCn+XrMM\nzm6eeOGNEbh86ghMRgNeHjkJfmFNENn1eUzu3QH5mek4tnsbbTFiXopzaJvyqu0Vp8aKsk/tUACA\nR6eXChz8IrQZZ/faZxxa70kpxXOsRsJr5oXffRQYNST8QkiQIqTDupMyDzsBSSnRUp6INa74/aIi\nJaNEpFSqhb7eDupl83snS0QCLJjaPfPcxXT7F9xF4mcD7WHiKK7mqXE+swwj/0qgDJ/lBCxhovzk\nuJ6vwdHUUjiKeWAIwc6bSnzU1RvBTiKM3J6AOaficCqnhIYHKTRrLufbHUstJQCQqjJwK754udqN\nVC7H5og2/HVFwXEUIjGfU6l0/OAAZ/XbgyLz+byGPwd8X8+eUvoVgD8tn1AAH1NKv6ttwe6GtqSA\nd/6b8U2DFCJ3P18vqUZVSs4e+BupN68DBJTjONLrzTHISIqD3MkZFbvs7Fj1PXoMHA4XL1/MGfUq\ntBo1GIaBTqOurFt1sTQAiFj6ZuT3yWlo6idHoQPr+VJSfMTLCTdDDuvL3V9t4SVO5QwykafYrWmE\ns8tHuZlBqwryncs5E6uwIwh24YFhCBE7s7IsmdE1kxrs2gXbiVdtOYF5P+6WVLTBMgQEQInWiGkH\nUtDCTYr+Ec7gE0Jg4phzmWVQ6U1o720HI0ex6mIuMkp1+Px5P4j5DCoWODuYVkg7ekoZqVYjYQDS\nzssOXnKB+fzVPBR+8dMJ98U/HA3gZxW4bNsd45Efk+4uzSlwmfnZvqBVf0Q731mjcVPfdIFSiisr\nPgxGxiXvtq2bO3AmI7l08jAunTwMzsRRvkjC9XpzLFTKIpQUFSCsdTsU5mVj57qf4RsSjhcHjcTC\n8YOQdP0yQAhMJhOunD0OzsRRwjB3eN9FCZckV354J2KAKdZtgCnW7coP70TEbl3qnrDp8+DR3kTi\nbSyUpJh0aKXV4PiBaIz/YG9kQkqhmMdyJNxVAIkAhGcwCpCa63Y1Ntu+qZSIshJynZ4ZsKqF0fLW\nrIuTxABi/t8Wn85CXrkBg5or4GEnIHqtkWcwUZzJKEOEixhBTiL8dUOJbbGFmN3NG2EKMQgBCAEu\nKsuNQU4i+HJ6GaWUNHOVoLmrBAxAWJbc8b+duZQhGfzOHxHG5Gy3M6cS3U4difNwLChS7N5x2XvU\ntO3B91s5tiFQo2ichzpxLY1R3tz1q5sHT+01fs5iMioqAl/8fhAunt6glGL+uEFcbpGq3MlOKH15\nxAQmOfYa3bVxFWdQq9gl249Vllvw9kD4hzdD9PFDcPHyxQdL12L+uEEcE9Qx1bfzrRCyr/7+ILL9\nP2dx5q3O8JWLQSlFvy3nuVM5xczF4VHYHp+Da/mliPJxhkpnhLNYgHcPxnDtfOyYdzuaY5tvFGjw\n7Zls/Ng7ALOPZKB7gD1c7fiYcyQd08a8ABMpS91x4IbCUFwu8ZTyiYlSWNedfTgN7bxkmNrpVtrC\nYxnQGjkMaaGAu50Aqy/lQQNijHSTsBPbupE3/ojH0l4BcJXyQSnFJ0czqEewe9Gkt57KaRnhrgXM\nSzaEd1/a5rsX/cnJtFKkl+gwucOtNr6LLjCc2T72yqO+f3ejIYzZ/xdqQx9KMxKEV36d3mTpzlPM\nz7OnIrRVO7wwcDgAYN+mVdi19Y9ybUGm+K2pnzAAsHbxXI4CeG3sO8wLb4wwl9u4Ev8e2QcHhRuu\nnjmG7/ecw6Gt63Fg/4HilqMWJlq3F7PsveCJbmX2b7f0BQD8fCkVX55JxAcdgvCMrwJ9/zyHRc80\nQXKJBgH2Ykw6FAO9yYRVLwdDwDLQmzi8/XcS5j/ri+jsMsQVajGpvTtGbE9Aj26heW2aeZafvZQh\nO3o6ybl/qCP5K64Iy18Kqqw7fFsCKCjW9A+pTBu5PQGUApGeUnT1s8ex1BKczyqHkM9wv/QJZL47\nk40IFzF6hzoBAHbeVOJYvl7zzqiOmb2fDS2pcJSGvfdncLBJZ9/SXYJP/knHT30Db8m8O4Xb9P2A\n649ro5LHPmZPCCkjhKju8qmzR3yTXss4OCsI5TgYDQbIHZ0r5IVM7sAomnYqgntE9rqflpafOX+x\nOHLC4uuU424rZ2fvgIN//Aa/0KaY/t0aEEJg7+wCk968Rk2/zuciFu2cEUlBOT3HQSEWVNZ1kQjA\nUQqFWIASrQEnMpTYEZ+LpBI1Zhy9AQOlxFF0a3TMQcRCZ+JACKn87iBiwSME3648gB1/XPDz4AyS\nxEINOZFWCocqdTkKOItvT+MxBFM6euDP60X4/lwO5M6y8ldebJJnL2AJRwEjR2EvZG9dFz5Dsm5m\nOw2e/EfE7iPxcgDgOAqDiSP2QhY6E4V9VZn1pidq3aT/Qv3VBQ0jlsogEIqg12pg76SozLN3dgHD\nMAjuPzlx26b1qm2b1quC+09O5AkE1N7Z5VY5hStSb15H4vXLWLBhD3gCAeydXUAN+jvGLahBy7iK\nb62n5yoRAgB1kQihNprAUWDuqXhklWkx91Q8OI5SMe/WRiB8hkDKZ6AzcXAU86AzcuAzBHYCFtHn\nUly//fl4ADLzncFR8uf1QvAYcltdMZ+BkGVuS7MX8TC1swfii7T45kwWYpR64/z3n0uQifgQsAx0\nJnqbTjmKWKiLy8WfffNP4IzP9/tUpGu1BsZBxEJvpJDwb2/DTsBC3cA2KqmOu47ZU0rtAIAQMh9A\nFoDfLFlDAHjWvmjV496yW/GhFTPdQ5q3Zpq07YQfPpyE18ZPRUpcDC6fOgy/599CSJ8xOQByKupI\nnV0NP3w0if/aOHO5SycPwzc4AgaDHhmJcZa0I3hqyo+li3bOiMTOW/HzT8vlweP3XpVN7xjEXMkr\nxaHUQoh5LIb8HQ0Dx8FDKsSEVr4oM3IIdpBizombdE+CkoQpxHCz42P5hVw0d5Xgn+QS/JtVhig/\nOX48lwsfuQiEmPBqhBM0RkocRCz+ii3C3gQlwivq/psLEY/BngQlbjufmwRaIwVYhvt7xZCYQB9H\n/YWrWeJhu2LcQ5xETHNXMRafysLgFgokKXW4lqvGohf8ybW8cvLRooMBEjE/setTfmVRbXxKvjuf\nK+voJWGWnc9FqLO5jdVXCrhnOzX6jUoqqa+6IPcO1Wp1BuPvPy4ShLSIxIZvFsBBYZ6w3PDNApgE\nMni0ebbUennvvKsnin5bPNeloty6xXPg5hOAksJ85GelIz8rHeu/Xci5dXn9tsitfp3PRTz9i1Yy\n90QG3KXmRSNnH4/jqIEzzTgay38t1AOleiN+fqE5SvRG9PBXYOBfF4nOBKy/ko8oPzmOppTAwFGU\n6U1YFZ2HniGO2HC1AAQEuWU6fBDlhXI9R5q7SvDViUwYOIrfruSjq58cx1JLUaY3geD28xk5Ch7D\ngDIM98H/uqQOe7VVkVZnJN+sPGXccK1AEK4QY/WlfDhaHKa1l/MxqJkCzdwkzMQ9N1xCAhXqgb2b\nKXt1Dy/4cdVp6fg2LozeRLHuch6e9rfHiTQVwOcZmzawjUqqoyahl3eEltV16GXuleOy1P1rfcrz\n08Ue/kHQqcth7+wCvljK6RRh6YHdB93WUbXF+bzoZe+H61UFQsLwKHgCA8vywArFJpNewxPYORiC\n+ryduvKG+c1U6/h5lcnEzMrK8L2gUcsdWdYw09UjdUBiQoSQxyDYSYhslQEMCHxkYsQUqhDqLEZG\niY4aKSVGDghxlEClN4IQc4fmADAECHUSIl6pg1zIwkXCR2yBBr72AuSVGWCi5nfz+QyBQsiHCUCh\n1gAOFBxHLV4HQdNw19KN3w+Ir3gU3X88Ubb45xM+peU6ViLhmwoK1UIhKDO1kyfK9BwWn8qCv6MQ\nhTqOa97Uo2Txxy+mfPTVId9/L2fKS8p0LKGUIQQwcqC/fvnyjS5tfR/b4mkNYRjnYXXBUq5W9EFd\nmMWP27LEX5VxUyaT2xO+UAiG5SG4RRvExNwoaz1+yR37IV9cPsu/LPWaEwBCCU/PFwoJWL6RgLKE\nYahb2xdzAiw6VBFuDACMwaTeeCMtf3OJ0h0ABto75uwrK1XEajVSF6nZmGapDGjn7oDzOcXwlPFB\nKOGyy827Q7lLhWAIwFGgQK2HgVLwGQJ3Oz6UWhPK9SY0cREjJl8DOwELCZ9BXpkeFAQsAziLBOAx\nBEqtATqTeYyfZQhYQsAIWOPu1UNjPF3Ny4ikZZXwP/hsn39KRrFYKOQZtVojT6XS8t9s4YL2XnaY\ndSgNYj4DgYDlSjli/POnN2J3HLjhsOmvK+5KlZbV6Yw8HiEwUeCNl5pnfzrlmce2eFpt6UJNjP1p\nAD8A2GhJegPA/yilne5Tr9bfGPz3u4nhbdq2lQyY8D5JuXENi94bzbUevyTW3ufBt0KrWOOGl6WK\njtVoRG58vsFfKKx2bZmga5cjZ3X1QnM38+YgMw6koUhjxKT2bnAQ8yHmEXx5LIvjG4n+6WCF8JUw\nD5Kv1uG9w7HQGE2YFeWF7DIDjqWUYs4zPmAZgqMpJfg7TokF3X0xeU8yGDDoF+yGDzuF4EpeKYbs\nvswxLEPX9GjORvk4QWM0odvvZ7nJ/4tK6ts9rNq1QY6cSbF7Z/aukI87ezLzjmXgvY4elTJP/yed\nmz75maS+3cNKftl0QfHX1os+s6O8mApZdmVqtAc3jIh50Ov4sDQQY/9QumCpW6v6kLh3tZs24Zzn\ntK9/ZQDgq3dHc6KQ9plBLwzLe5jzLdo5I9JEKZLK1BAWqGOaiSVaXjWz/C/G3wj38RJJx0S6AQBW\nXszDzQIdQpwFeC7IAQBwMEFJU7N0aohY8ZyuYQwAzD5xEyqDERGuIrwS4YTJe5Lxbc8AKCR8FKgN\neGdPMr7rGYBtsUU4ma6Cn0yC3/q2AgAM2X2Zg0yo6SyTSBZGhREAmHU8jmY7CIq+vcumJKpyHdN1\nwMoWg8Id2Nh8DcQ8BqMrZL6UR+HhXPT93D4p6dkl/B5D1zb/9gU/UinLvlS6f91bV3087B/LWlN1\ntnkJgMEAvgXwjeX4pCWtzmk2bHZC9Lp5QYe6t5KKZA6msFffTfkvhj4+MS92TFpKCxeJAFnlOmaA\no1PuHE+vTOuyBkqhMXJo4nJrc5AQZxH2JRbjh/O5sBeyKFAboJDwmTY8ScmmG9luB1ILka/Wo2eg\nC7bF56CJiwRXcgvQxFUMyx7GaOoqwcroPAh5DMIVYshYEWIKy+D/0z9wdRAb50x9NmXK/L3BnbzM\nL/+JeSzautnfc1OSbh38y6aM7pQ2b8UpH6XGyN4ms9OtDU0yc0oFEU5C5jZZrhbaNju5k3qrC4E9\n3sq9UVbMn/padxcA8Gz3Qn7g80MfyND363wuImrmVgkAqI1Gbuy5a9oCzigCEOHC8LQb/ALj7Hm3\nx6jzGYa2cKsMLENTVzFOp6ugyTXibKZ5hWIxnyESEFJarufG7L3KAICdgIWPXIQWbhIUaYxwlfKh\nkJhf8lZI+HCxxMs3d5PgfGY5nvFzRuSaE+CxDH21Z5P8+IR8aRdPx0qD2NnTkfyQknvXTUlkUiG3\nelH/G1Pm7A7OzlMJ32nvcUtmhZgcylUJASAjR8V3kwk4hYTPVsjiKhNwGTkq/uMy9rVFTXaqSgbw\n0mOQ5YER2SuMkRO/veMx9UFYtHNGJAHlHHM10e9kprX4onsE+2qYBwo1enRbf9o1qtSu5Dm5feW6\n2kZKiZTP0J03laRfuBOyVXr8m1UGEY9gZGtXRPnJUaozYtLuZPylVyp+fKE5Ks+34TT85CLsiCtE\nqLMYKy7momewIxxELHbEFSHEWYxslR7nM8swtqUTjADlnMRlG38YcBMAflxzVrvscqpoYmt/JBWr\nsT8lHz+83fGOWGhrRrzWunDEa60Lnx20qunOeKWoX5hZ5gtZ5Rjb1KMcANo08yj/7OANrmewI+Mg\nYrEzvphGBCrued7GSH3WBcIwiHhtSkbEa1MeeJ/gyp3VdpqHahyKdLGfZaT7hHrIXf7p2ZxQCozf\ne1W8IDfb60svn/SKekZKoTZxzK6bSrRyN79fti+hGAYThbdCgKmdPEEpsOR0Fv7NLJP0C3KnP/Vs\nDkqBsXuvIKlEjT3xSkxu74ECtRGXc8xvxF7KKUehxghnMQ9rLudDwDDo6uOMVdezuCObR1xxchCb\n5n17xPPXCxmSZ/ycGQBYEZPBNY30Vt3r/2wZ4a49vGnktTnfHvHcdzrBrZW7lAGAfcmlXOuOwSoA\nCAtw1hWoDeQ2WdQGEhbg/FgicWqTJ249+5pSdekDA6VI1+j4L4e4AwCcxQI87eOEuGKtuMLYL8jO\n8liel+eho5QcTynDHzGF0Jo4mEwUHIBOPjIAgFzIQyt3KY6klLIV51t5JR3Z5eb+svmaHpSjMAEY\nsyMRPIYAoDBxFP/LKoNCwsOPl9JoiK+jdsWi/kkVMv+woG/C6GnbQ788l8TXmzi8N6pTetUlYO/G\nTwtfShjx/rbQ368n8I0miqmjO1bW7fdceMnqLdHlo/5KkLEMgVjA0t++e/2h3py00XCw3j6z6jpP\nyUadZGKYD2EIAQjwcpg7+f54QqULf7C0xG5KRlqwCZRtwpPhrW0JoJSCZ3lnpKufHBV1u/rJcTmn\nHC+HuROGEJzILMKB1AJojSZQAKP/TgSlwGfHM8FjzG/aGjiKMX8nwkHEg8Zgwsj9V01LPnkx0cnB\nvL799PFdssfP+lsc8PNhewDoEulTOn18l2pflqrKjPFdst9OKxIP3Z5grtvGp3SGpa6Tg9g06o22\nmfNXn/GpmF+YOLxDZkW7DZlGaeyrW4OeTwh8xELDjoRcfv9QdxRp9DiWXoT5ruY1PLYrlfa71KXu\nV0Y/TXpvOYdZHYLR1ccZBo5Dj9/PIk+tw5kMFTr7ylGqM+FyTjnEDDHtSMhlJXwWq6+l4ZeXguAg\nYrEmOp/GpJXrOAEEs7v7MABwMEGJkxnlmNbJE58ez+S+mvpcUr/nwyvjgAEgNMBZd2TLyKv5heU8\nexgdb6UAACAASURBVJnI9CC724cGOOuO/zGq2ro7DsbZZ2UWS3/sEwgRj2BrbBH57Pujvpvr8foh\nNh4O66Gaiifa6sr58wTq7TdzpC8GuhAA2H4zhwbwhGoAUBqN7OT0tJCVfVoyh1ILkKfWY0Pf1gCA\n9w/HYk9SHo6nlaKdZVmP46mlMHIU22/m0I5eDmTozmi819EDrTykuJRdjsUnsjgTZ8L853wYJxEf\nRVoDPjyYinnP+mJnYim193ct/PqTnqk89lb0o1DAoysX9U9UlmhYAHiQTU6EAh5dvfiVausqSzTs\nik0XvGZ28UKgowhJSi2+2XTBa/grLQv/z955x0dRbXH8d2b7brak90IKCQgIBOlFEQFFRQTEhgrY\nO4IPUPSpYH3YQRFEQayoFAFFBZQiSAmdQEgISUjvdXezZe77Y3ZhCSkLpGe+n08+mXLn3ju795w9\nc+6dc640kUpL0+GU/dAlU+OvTU5DpdXOBmk9ohaFRpxZXVJseL8gL6zSZuee3Xycvb0rhc8xVnMT\nDJ75Tqs+oapKM7FLIBegUWDpjT0wad0BaGQS5FZWQyYlWO0MH/6bg6+PFKDYZINBLsNYT8/8mZsT\n/YgDd12Ujrwcy79uifOkballMj0vsTy47rTSzgAZB+iVKjy/5SxuH90lf5xLQoYVPx/yen/ZrjCj\n2cYN7BVS9tGrY85ciqJ3whGhtrSHCceyNUNCNFyAh+CmvzXWi2ZuOau+qAKRNsu5VTUurprDRqPy\ntsz0q9LN1YpwpaL6o5Dw0wAwPSsj6oypWqGu4NB1yd+8XMLBExLz9xGRWQBwwmxSBHooMDzcB9cE\nGjBxbQL6rdwFm90OHoDZxiMhqwpT16YAEKzjGKWqKimrjPqv+EepkBLXM1Bw+/QM1MBHLWXRTF36\nwuaz3hY7D7mEg1QixYI9ebyPr9b88czrzzoV/ZGTecpnX/01KiO3XBEWoKv+4L83ne4R539ZyyJr\nU94nU4sUPmop6x0k/FD1VnnAW13Makuk0tZoUNkTkQHAfwEMdRz6G8BrjLEGs8O0Nu5a+Vj89OQz\neGFYCPw1Mlq6P09/f9rp6DNWq2bV7fFcuF6FmVtOsPz8qqqlkTHpUUrludjC1Yynv88WYTYfjd7+\nerw8KAaz/j4BqYTw32tD4a+R4ZN9ubDbOHx2QzT+89dJvp+HR9XswMAjb+fmBCTkG/3tPOMkHCGx\nwAQ5EV/IbMo3RoTDXyPDp/tycSbfbP3ugwdlQX56HVCdBQgrat5b+k/4i4OCOH+NDEsP5utnzPst\nYunbt6XWfaeXRpC/zrJ+VzXv2j9fT3WbnoxqCtqiLNTlqqmw27nJaadjJ13tIx0UrsU/6RXKew+f\njuMANndIZ+ntsYFYnZSDeTuS+Y+CQk719/AwOlfjeEqk9jMVJi6rwoxgrRJLRvVA/IrtICI8FO+P\nQWFabE8rww/HivHWsC44kFvK8jOrzB+GhKX9WVamfSozPabQaD232iWvysJlw+I9rbcfBofrsDO9\nHMsOFuC16RO4Edf5n3Aq+oqqau6BGatjJ8UapIP6+eKfjArlAzNWx25bNfWoVqNolOBmwf5aa16F\nhXMsskCh0Yr8CgsX7K9t8/LgjmX/BYCjACYCIACTAXwJ4PYm7Fejs2DD7PiFRaUYHqlHtJcSADC5\npy89++sZj0d7R1Avfz0A4NUhnem6r3drXBU9AMiJWInZimHf7UaoVok9OaXgeYabYj3P1Te1lx+e\n+e0Mnt2cyMdKFGW3GgxlHBFeCQrOmXAmRTvztzS1r1rGkopM5MtJrUOj9DLntVN6+eHJjamyEdIc\nYyLTn7Oqt+1N040I13Ln+tzdh/7zV2ajZkeaMqFn0e9/nfKeueWs2lcjY0mFJlry1tgGE3J0QNqE\nLLi6aoDaE+wkmkxKjULC3RAtLI+8IdqAX04UkwQc7u8uvFh6f/dQfJqQDhkRXJddltvtEoNcyoZ/\n/y9dE6jHvpwy6BQyKGWEGxzLLUfHeGHtyRIs2n+GL6my2tdERmdKiXCjwVDxsNmY9fxv6UFxPkqc\nLDRjkEZbepQ3eY2MFlaajYz2xM8nipFXVInSgoh4EIw+/tUnElMKlR4yjpxt3BBlwIbUckpMKVT2\nuzq4UazusCC9ddqk3lnP/3QoKM5XhZMFJjx4Z+/str4SB3BP2UcxxlwH8yuOuN5tAufAJzC+qtSU\nf0ZhDmCMgYiQWW4BR4SkwkrGGCMiwqmSKuilkose73KtVlmEQYUnekeg3GLD7bGBePrPY8iusMK1\nPi0nsb3qE3j6Oq2u0ulvl3McWx0Zk/RneZm23GaXDIrRVs3MyAhNL6tWu14r4wjFi9JPYG5cfGGu\nIt4noDrBoFPZEiut5/qXWW6BTiNvVN+hXCZhqz6dlLTln1RtWWW1ZGDv0Coxf22ttGpZqG1VTV1l\nPTjOnm+yclUWOzRyCaosdhSYbZyciJVVW6FXyFBWbUWeqZrzkkovcP3JiPgKq51+uq03cqoseKJX\nOG5fkwArz8G1vspqO3tYq8u4O8inRCc5H2L7PwFBeddr9eVJZpMyNlxlLrXZuIfOpnm5XltmtiNi\nQ+LJrj2kYYmecerCPEUvb4PqeLHxwj6XGK2ct0FVbz7mS2XmQ4Pyhg+ILE86U6SM7eRt7t0tsFVn\neXMXd5S9iYiGMMZ2AAARDQbQ6nxXZRknlWl/fhXMW8xSQ+c+RRHD7yoc5fN1ryFzzq+4kYKCzpZa\n8eaObPhppPgrrRxgDLuzStjENQmsk15NPyXlsDcDQ9Jr1p9psSjyC81YfCgD4XoVfjqZAxvPcCy/\nCv/96yxCtQq2I72cvRMUeuZ6l6WaTqREuFFvOLc07N2wsIxhp04YXv7rLAVp5fg7rQz3G3yyACBg\n/u8JuXNHxRfmKbpMmdAzafVvx/1e/ydH5q+R0o6MCvbW7JEX9e9KkUo4jBoaXe/SNZHWKQs1XTVl\nNhv3akFB8GmexUZxZPyvr29WzfXxRsZzaqmEvbjlLPXwV+NAThVkHEErkdiGf/uvdGQnH2w+U8hG\na/VFMTWeco+bjCq5hMP0rYkYHuaDrRmFUEklUEs5PLspDf2DPdih7Co2Rm8oetTfv9YUgPEajSle\nozmnRENzZeZnN6UprwnSYF92FcJkMvP1en1V8aL0EwFIR+7cUfEGRWD3UUOjC2b/lebd019Fh/JM\nbPSw6KLocC9LbW1cCb27BZrai5J34o6yfxTAV0Skd+yXALi/6bp06VTmpskPLJ7ZZfyDT3N+waH4\n/pMF6tgTm8JHRgRd8Airl0rtw0K82JAwb/o2MQuddGq8MCCa9uWUYumhDD7KJMn9OjyytJfLIHTC\ngdjAYAOuDfNBucWGN4fFYcbWRDzr5Z/GA2Ss4CWPR0SV13ZtbVTxPCcDsUidltQyCQJU1bzcZbXB\nxm9DMObuTLXOQ8Fv+OKexO83HPeqqKyWPPJcp/KeXQPa1SBsQ7QaWahrVY2NMUzIzIz16jdENfTG\ncbT3tzWaCXt2ePwWHn7C1RWj5jheArB5g+Lo97QCVFSX4+1hcQAgm/X3Sf5sWnnxswa/0rEGw0Xz\nEVqJ1MbzDC/2j0FqmREv9o/Bk38eQ29Okd9Xq60qKLPJRnvrzbVdWxs2xqDkOD5Gr2IGmZpi9GAV\nZdW8jbFz7qOA+b8nLIucFj972q2+23qmVJ/JOVswspO3ua63x0Uuxp2Xqg4B6EFEOsd+q0tqkbVn\nk9eQm8bRmMkPAwACwyO596bdjtkqwwW+ysne3kVjTicH6BRSSUJuGSU9fC28lHLcFOVHyUVVFGyR\nWepS1jFKhWlDaqHOoJQj0qDGnG0nYbfzfF2Wi5MZGRkhe02Veh0nsX4UGp4WpVRavisq8vy8sCBg\nYtcgbsHwrgCAE0WV3Lgf9/m/EBiUCwDTUpcl5EKw7n38caI1pxTsKLQGWWjIVXPUaFQVSGXK2a9/\nTBzHoefg4TRj9DXKo0ajynVsd1Gqqrsr1RWLD6Zrq2x27q1hcbira7Bwkohbte+sfJynZ62KNFQq\ntfFg+PhAGm7vHICPD6SBB8NDvn6F8VptnYbIt0WFhiWFBUEA8KiPX/ad3t6lCVVVqoUFeQEFjFdt\nm9iXOCLwjNHVn2+/qM/TUpcleJWGd6E+ceprERPiE1DdpOFY2hvurMZRAhgPIAKAhIQMH4wx9loT\n9819hHeSzsEYA+PZRX68QLnctj4q5vinOXn+DAi44BowCK+D1I6fTG67sZMPSyysoP25pZgQG4D1\nSXn1rgAYm3IqJo1ZdLd28URKsVk5KiWp2x0Gr7ydVqNfVIDHBdkhGGMXte5baucLDBJxCWQroSVl\nob4XoC7sIy5cksuYY07pwuMcEb4I75TySX6e76rKkkAGXJCQvr7ALBIJx3QSCR+gUXBfH89CpEGN\nzNIqXiK5OOGJk6X5+V6v52V3ur2LEFd+9omzUceMxuzVFaUB4+MCuKOp51dPMuaQx5r3AsDVreOc\n16qnqyIuuOPGWQegFEACgFYZ5jO4743FOz96MtA3MIj8QsKx+qM3+Tu02rxay8rltvkhoVlVYJI7\n1x7wfvqaTtzh/HLsyy7l50fX/Uh4h5dX8W2pyYHT+0ZSuF6FN3al8BP0nrW2AQA2nkdCVZXus1ui\n4KsR5OjFLRn0dUFRwKGpQ2DjGUb8sAehOhU61VGfZOHmgxB89/E+/uKgbgU0qyy4Rpys7wUoV7qp\n1GY/e6H5sxeeVPW98Tba+9ta5s/bzd1U6ov6KyPCM/4BBVEKZfWcbUlRcOS3eGlbEv9WYEidY7ub\nSm32kcjMSo5TvTAgmtYm5TJfibzWNpx8Vpwf+kAvP9wUI6y40Sqk+PFoYeCLgzrT1O6hSCzah4c2\nHcH4zoFYm5TLvElab30B839PsD85olcBFPEAICr9hnFH2QczxkY1eU+ugHvG50XN/LsT99nq5fYz\n1Xbj/XJZ8aN+fvW6Pf4XHJrxfl5u9eKdqQYvTmJZExmT5S+T1TmrH6NUWr6LiDrxQWJe8J88L5mk\n1hc/7Ft3GzYIDxtaxfkcEAaFBHbG4KmUQSOTYsP4a3Dv+oNMZoNlks6QW1t9rpO1Pv51r64QaRaa\nRRZcrfiGVtXUREqEH4ODk+Yd3he88+BedTRHxs9DQrJqi1jp5GaDoZyA09/uO+sPAG8FhuSNMRjq\ndFFJifB9RGTS63k5wQt3pKgjZQrjD52i6m2DB0jnIgt6pQQggrdKSJu5amxvPLzpCJ7fkmi/TqMt\naqg+QDCGAgDRyncTd5T9LiLqwRhrthR1l8K5ZCNVSOjr7e/2dVIi3GbwLAmukln8ZDJruFze4Ix+\nD7Xa/EVYp9MNlQMAJcchUCG3vrsrW3ZXdx+kFpuxL7sS12g9Kh757ajHf/pH0eH8chQZLWxjVOek\nusIpA+cna92+OZGmokllwV1XTUPopVJ+QWDg2YZLnmewh0elmec557Y7bbgGRWuwfpVH0bID+X7O\nDGrLEvIRLZGXv7I9SeurknMAcCy/gn/ayy9jso/PJSXOcU7ejrk7U7Ty66HOePZEdNSxKQEQA+AM\nAGfkN9aSyUuc1Bbjxl3Wl5boZmVnRg0M8kRScSWiJYryZWERp7kGrIlLIc9ikUxMOx2Xa7MqFUT8\n8z4B6bd7eZW+mJMVesBYpfOSSq0v+gVm9PXwaHD5Xu7cUedeLmm0DrYiWnM8+yuVBUcdtcrD5bhq\nGpssi0V6e2pK1zBPlQQAMkpM9tWR0YnBcnmjrl+fdiY14h9TpRcADFJ5FC/rFJn2WX6+zw/lxUIy\nFJ1X7iMNPJE3RO7cUW1e4Td78hIiiqjvQsZYWr0VN6Gyrxmx8nLq6JF4rOeKW3tKBoV4wWyz47pv\ndvNP6XxTb6tjBUJL47Bc2vQgro9Wruwj6jvfkCw46rhAHhrLim8MnjibHhEUpvV6fVgcAcCL206y\n7IyK4kWh4Wkt2a/LxanwQUBbnOtq9uQlzgFMRP0BJDqXmTmWnXUBkNbYnXGHK7HmndgYQ5HFKukf\nJEwWKaUS9PbXI7vcImvg0hbDZSlmLx//6ma3/joyjSUL7oQxaAny7FbFxBCvc8plYIgXfXKmpM5E\nIK2dgPm/JwCiL78m7mRMXwzA1YdX5TjW7DSGogcEf32cRmVemJDGGGNIKanCH2kFiFdrWvxtyPoI\nmP97Aphb35lI03BFsjBkzmo1Z7UbvfKMCa1F0QNAD4WqYsnBdN5otcNotWPpwXS+u0LZ5t+mdir9\nwlxFfGGeoldL96elcUtxMMZ4l207BN9ls9JYit7J4tCI5K8OZlhCFm1hg7/exR739jvbzw3feUuz\n8dsQFOYq4hsuKdIUXIkseOUZEy7X7diUzPYPzFFV8WURn25BxKdboKriy2b7B7qVCKS1EzD/9wSn\nkdTR5cad1ThniOhpAJ9CeNfiMQCNFl7XHRpb0QPCUsptMXHHSuw2iU4itcsacWK2KbnwzdrWpzja\nOS0uC02BnOPYsvBOqRV2OwcAWpegZe2Fc0uYcxXteqFDfbhj2T8KYBCALACZAPoDeLgpO+Vk7KC9\nXZw5YpvisZcjgrdU1mYUvZON34YADOJSzOanxWShOdBKJHx7VPROAub/nuBbaufBoO6Ibh13YuPk\nAZjUDH25gJHeKy+IWNnc7bdmROu+ZWgpWRBpPDryi1juxMbxA/AQhHggzvKMMTa1qTrVFG6b9kbX\nkpPGRM840bpvRlpCFkSahgtexOogbh133DjrAOgA/Algo8tfkyAqevcoXpR+AoA4Wdu8NKssiDQt\n01KXJXQtOWl0uHXavRy5M0GrYozNavKeQFT0l4oYN6fZaTZZEGkeOlIUTXcs+w1ENKapOyIq+stD\nnKxtVppFFkSaH+fkbXtek++Osn8WwHoiMhNRheOv0ZI2NPWKm/bOtNRlwosjeYouLd2XDkCTyoJI\nyyJZuPmgw63TLtfku7Max6OpGj8XsVJU8leEmOSkeWhKWRBpHdR06wBtO6iaK269QUtEnkTUl4iG\nOv+utGHRbdN4SBZuPggAHWGSqaVpClkQaX2ce/MW7WcRRIPKnogeArAdwB8AXgXwO4BXrqRRUdE3\nPo5XwkV3ThPSFLIg0rqpEV+nTSt9dyz7ZwD0BZDGGLsOQC8Alx0GWFT0TYc4WdvkNKosiLQNXOLr\ntGkr3x1lb2aMmQAh4TJj7CSA2MtpTJyIbVrEydomp9FkQaTt0dajaLqj7M8SkSeAtQD+JKJfcImx\n7Ed6r+y1YMPseM5qN7ZEJp6OhGjdNylXLAsibZuA+b8nnFux08bcOnVmqqq1MNG1EN4g3MQYqzdn\nqzMzj+i2aX4cKQz5tpTkpDVnqqqNS5EFR3mW07OXKAPtCJeMWI0abqGpZOGSEmEwxv5mjP3izuAG\nRP98SyEmOWl6LlUWRNofbS2KZpMrBFHRtwwbvw0RffciIk2MZOHmg20lOUqTKntR0bccz9+42Sj6\n7kVEmocak7et0sgSH/XbKeeiYrbSgSci0t5wmbxtlUbWJU3QXlLFRE1TsUi7pS1N0F4qojyIXApN\nIQtNpuxFRERERFoPohtHREREpAMgKnsRERGRDoCo7EVEREQ6AO1W2RNRZWtvv7H6SET3E1GgG+WW\nE9H4xmhTpO0gykKt5TqcLLRbZQ/A7ZlnctAC7TfW7PgDAILcbE+cke94iLJQe3sdShbas7IHABCR\nBxFtJqIEIjpCRLc6jkcQURIRrQBwFEAoEb1ERCeJaAcRfUtEMxxlexLRv0R0mIhWE5GhlnY6EdFu\nRxvza5x7noj2Oq5/pYH+Rjj68DURJRLRj0SkcpyLJ6K/iWg/EW0iogAimgCgD4BviOgAESmJ6GVH\ne0eJ6LOaTTjqut5R/ggRLSMi+eV9wiJtBVEWOrgsMMba5R+ACsd/CQCtY9sHQLJjOwKAHUBfx/41\nAA4CkAPwAHAKwHOOc0cADHFsvwrg/Vra+wXAvY7tx13aHwngM8c2B2CDS10VtdQTAYAHMMCxvwzA\nDAgpJHcB8HYcnwRgmWP7LwC9XerwdNn+CsDNju0vAdwOQAkgA0C04/gKAM+09Hcm/omyUKMeURYa\n8a/dW/YQBtWbRHQYwJ8AgojIz3EunTG217E9CMBaxpiFMVYJYD0AEJEOgJ4xtsNRbgWA2lLRDQTw\nnWP7a5fjIwGMJKKDABIAdAYQ3UCfzzLGdrvUNRhC3PSrAGx21PUigGCXa1wfvYc7rK8jAIYD6Fqj\nXCyAM4yxlAbuSaR9IcpCB5aFBhOOtwPugWDF9GaM2YnoDIRfcwCocinHcOEgqctveTn+zDcZY0su\nobyrL5Fwvm/HGWMD67uGiJQAFgGIZ4xlEdF/cf5+a6vf2YZI+0eUhQ4sCx3BstcByHcM7usAhNdR\n7h8AtxCRgog8AIwBAMZYOYASIhrsKDcZwN91XH+nY/sel+O/A5hKRBoAIKJgIvJtoM9hRNTfsX03\ngB0AkgD4Oo8TkYyInFZKheM+gfODuchxHxNr1M0cdUUQUVQD9yTSvhBl4UI6lCy0Z8ve+Yv9DYD1\njse4/QBO1FIGjLH9JGQeOgIgD8JElTO/6P0AFhORGsBpAFNqae8ZAN8S0SwA65x1M8b+JKIuAHaT\nsMihEoIAFKDu1QBJAJ4goi8AHAfwKWPM6piA+oiI9BC+u/cBJAJY7uifEcIj9FIAxwDkAthz0QfD\nWDURTQHwIxFJAewFsLiOvoi0fURZEGVBjI3jChFpGGNVjoG8DcBDjLFDzdyHCADrGWPdm7NdERFX\nRFlof7Rny/5yWOJ4HFQCWN7cg9sF8RdYpKURZaGdIVr2IiIiIh2AjjBBKyIiItLhEZW9iIiISAdA\nVPYiIiIiHQBR2YuIiIh0AERlLyIiItIBEJW9iIiISAdAVPZNDBFdS0RnW7ofIiKXQ0cdvzXvm4iO\nEVGzB0i7lHaJiCeiyLrON7uyJ6LBRLSLiEqJqIiIdhJRHyLqT0SVzrgZNa45SESPO7blRPQKEZ1y\nlD/jiEFdV5yPDkNDX/Zl1BfhqLPC8ZdGRC/VKJNGREbH+WIi2kBEIS7nlxNRtUsdFURUM0ZJm0Ec\nv01HY4/fxoQx1o0xtr0tt9usyp6EEKkbAHwIwBNCWNJXAZgZY/8CyAQwocY13QB0wfmQqT8BuBnA\nXRACHl0NIc7H9c1wC22By4ra54gLUhd6xpgWwHgAs4joJpdzDEKMcC2AQAixVD6ucf5txpjW5e/H\ny+ljSyOO32ahKcavCNC8yUsgZJEpqef8HABbahx7B8DPju0RAIwAgi+hzVAAqwHkAygE8DE7nzxh\nLoA0CApqBQAduzBpwn0A0iEEanqhnjYUABY4yuYC+BSA0nHuWggxueu6lgfwGIBkAOUAXgMQBWA3\ngFIA3wOQuZR/yFG2CEKQqUDH8e2OuiohRP6bWF95l7Yfd5w/XUvfnJ8D53JsD4CZLvtnAAx32b8J\nQJLL/pcAXmvOcSaOX3H81vgcHgKQBSAbwIwa9/2B41wWhGBq8tru2/E5D3dsvwJgleMzL4cQaC3e\npWwXCJEzSxznbnE5txzAJwB+ddznDgABEAyIEgjB6XrW0W5fx+da4riXj2t8tjyAyDq/q2YWFi2E\nAbscwGi4ZJFxGdhWACEuA/osgFsd+28B+OsS2pMAOAzgXQAqx5c70HFuqmOQRADQAPgZwFc1Bsln\njmt6ADADiKujnfcBrAVggJDZ5xcAb1yCsKxxXNcVQDWArY4+6CBE+rvPUXY4BMHtCSGL0EcAttX1\nZbtZ/ndHvxX1CIvEsd8fgjAOcylzBsD1jm01BAFY7nL+SwDzmnOcieNXHL81PodvHJ9fNwg/ms7x\n+hqEjFc+jr9/4DBMat43XIwaCMre5BgDBOANALsd52QAUgDMhhB77DoIPwidHeeXO+6pl+O72QJB\nod/rqGsegK11tNsbgsLnIISnToRLVq2an99Fn0cLCEwcBAVwFoJgrAPg53L+TwBzHNs3OL4cp7JZ\nCuC7S2hrgON6rpZzWwA86rLfGYDF8UE6B0mQy/k9ACbVUg9BUICRNdpNvQRhGeCyvx/A8y77C+BI\n/QYhLdtbLuc0jj6H1SEs7pS/tp6+OT+HEggWKQ8Xy8hRJg2ChVLiqDsTQDeX88shCEaJ4y+/ucec\nOH47/Pjt7HLsbQCfO7ZPAxjtcm4khKxVF903Llb2f7ic6wrA6NgeAiCnRj++BfBfF3n4zOXckxAS\nsTj3u8Pl6RE1npxr1PssgNU1vos6lX2zT9Ayxk4yxqYwxkIh/NIGQXiUcrICQgIBOP5/xxizO/YL\nIfiF3SUUQro1vpZzgRAeW51kQPgl9nc5luuybYQw2GriC8GiTSCiEiIqAfAbBEvBXfJctk019s0u\n7V7QZ8ZYFYTHW9eUbK64U96dlRbeECy3GQCedfiuz1ULYCxjzBOCpfIUgG10Pt0dA/A/xpin488P\nbRhx/NZKax+/rmUycP47qO0zDHKjPuDCezQCUBIR57i+Zp/SXeplEH7AnZhr7JsgyNpFEFFnxwKI\nHCIqA/A6BNl0ixZdeskYS4IgHN1cDq8BEEJCJp1xjvNONgPoS0R1DY6anIWQ6UZSy7lsCL/8TsIA\n2HDhl+gOhRC+oK4uCs3AGNM1dKGbMJftC/rsWPnhDcHfWBvulGdwA8YYzxh7H4IlP72OMowxtgZC\n8urBLqfaZao3cfy6RWsYv2E1trNrq7/GucslG0AoObKzOAhH3fd4KXwKwXUTzRjTQ8i967YOb+7V\nOLFE9JxzsBNRKIRVCc6Ews5f758gPCqnMcYOuJzbAuExeQ0R9SYiKRFpiehRR7aZmuwBkAPgLSJS\nE5GSiJx5K78DMN2xvNADgt/t+zqsqHO3UPOAo/xSAB+QI8UaCenWRrr5sTTUDrnsfwdgChFdTUQK\nR5//ZYxlOM7nQZgcg5vlL4e3ADzlSGpxQX9JYCyElSonXM+1B8Tx6zatbfzOJSIVEV0F4AEAYiaW\nUwAAIABJREFUP7jUP5eIfIjIB8DLAFZeYt012QPB0v8PCekSr4Ww+up7x/krkQcPCC5TIxHFQZgY\nd5vmtuwrAPQDsIeIKiEIyREI7gFXVkD4lf2qljomQJjJ/gHCbP9RCBMXf9Ys6BjIt0DIYJ8BwVK6\nw3H6Cwhf7HYAqRC+oKdcL6+l7bqsiFkQJmX+dTxe/QnBh9rQde60w5z7DmXxEoTJuGwAnXA+1ycg\n+BJXOB7HJ7hR3h2r6IIyjLGNENwDD7ocXk9EFRBS182DMCF3wuV6t54e2gDi+HWvztY0fgEh01YK\nhCer/zHGNjuOz4cwx3DE8bffcayh+msb0857tED4zm6EMBG7EMBkxtipOq6ts65amAkhD285gCUQ\nfkBq1lUnYvISERGRdgkJaQ1TAUgbeOLpEIjhEkREREQ6AKKyFxERac+IrgsHohtHREREpAMgWvYi\nIiIiHYAmCx5EROIjg8glwRhrN8s0ayLKg8il0BSy0KSR4s7unJ7QlPUX5irindsv5Ixp0raakx+V\n78Une8bCJ6C63dxTQ4QOfj++4VJtmxs/3tFhvs+2xoINs+MBwCvPmJA7d1Q8gBaTv6aShTYbFtSp\n6NuTkncy0fxcwhvYGF+Yq4jvSApfRKS5GTtob5chc1arCYz3zDMdbGlF35S0OZ99Ya4ivjBXEe9b\nam+Xit5Je743EZHWwEjvlb2GzFmt5qx2Y3tX9EAbs+zbszVfGzElSUim2Hgf//Y5+EREWgpXt43X\nE+FdEj3j4kFAe5a1NqPsO5qiB4Cv4wcb+6UWqBsuKSIi4g413Tb2J0f0SjRIOBB4H//qgy3dv6ak\nQWVPRHIIAXecSW//BrCYMWZtwn6dw6nkY0qSMNH8XIdR9ACw7p++J/oFbmz3E5dthZaWBZErY8GG\n2fHYIFjzANDe3TY1ccey/9RRbhGEiG2THccerO+ixuBCa35MUzfXainMU4iunNZBi8mCyJXh6rYB\nOp6iB9xT9tcwxnq47G8hoiNN1SEnHdFtUxsxJUlI9opt6W6ICLSILIhcPjXdNgBgf3JEL6BjKXrA\nPWVvI6JoxlgKABBRFIQkCU1GYa4iviO6bURaPc0uCyKXT023DdAxLXon7ij75wFsJaIzjv0IALUl\nWmgUnBa9qOhFWiHNKgsil09Ntw3QsRU94IayZ4xtIaLOAGIhRJBLYoxVN0VnCnMV8b9+G4Kd113d\nIb8MkdZNc8qCyOUx0ntlr5ErjnOAqOhrUqeyJ6LxEAY0ufwHgGgiAmNsdWN2pDBXES9fugM7b36r\nw34ZIq2T5pYFkcvDac1zVrvRUFztzJQmKnoH9Vn2t6D+WNCNNsCdrpuZoqK/iGTP2Hb9okcbodlk\nQeTyqM1tA4iK3pU6lT1j7IHm6IAz9MFDpls7/Jch0jppLlkQuTxERe8ebr1BS0Q3A+gKQOk8xhh7\n7Uobd1r0oqKvnR+V78UnQ1x22ZpoKlkQuTxERe8+7rxB+xkAFYDhAJYCmAhgz5U2LK6jb5hkz9jz\n3mGRFqepZEHk0nEqedf1805y545q93FuLgd3ol4OZIzdB6CYMfYqgP7AlZmb7U3R28xVnKkkX9oU\nKR7FAduqaHRZaG/wNisZi3JkvM3aZGaKqzVfq6KHKDe14Y4bx+T4bySiYABFAAIut0Gnov/bUsxf\nbh2tiaS1i4IydqwNkMnlUHr6VV/94JunVF4BVxwrRXThtEoaVRbaG3lHdmgTv387WsJxZOd51vXO\nWSn+PYZUNGYbdbltANGibwh3LPsNROQJ4H8AEgCkAfjuShqVL92BP4omt/kIc9n7/9RXJP3r//HG\nXfT5tmM0aPgNihPfv92pMeoWXTitkkaXhfaCpbJUkvjd29EzFizhlv51hGYsWMIlfvd2tKWyVNIY\n9Y8dtLfLgg2z4wmMr1PRQ1T09eGOZf8OY8wM4Gci2ghhYsp8OY2dC4PQTpZYlqYnagbfOJbTe/sC\nAEbdOYW2rPnhikMSO616ceC2OhpNFtobFTlnFF7+geyqawYCAK66ZiA8/QJYZW6awiu6p/FK6haS\njBznalPygDgZ6y7uWPa7nBuMMTNjrNT1mLu0xzAIKq8Ay/H9//J2mxAeJXH/LqgM3lfswhGt+lZL\no8hCe0TlFWAtzs3iCnOyAACFOVkoycvmrtSluWDD7PiRK0RF3xjU9wZtIIAgAGoi6o3zbw/qAFyW\n9drWJ2RzD23Tpf/5Vai92iTx7Ny7JPrWxzOPJO72mjnxBo23fyA7c/IY9Zg6/0zDNdWNaNW3PppC\nFto6VQVZslM/vdvJWJitVPsEmTtPmHEmfPidmXPuvim401VXszPHD1P48DuzrkTZ1+efBzpu9MrL\npT43zkgADwAIBvCuy/EKAC9cSiNO901bjklfknpUdfLHBVGPv/ou5xsUiq8WvOZzas1H1OvRd08V\nntzrYTNWSPrfMr1KafC9oiiIDqu+XUxetyMaTRbaA3ZLNR1aPDNuxLg7ZANG3kK7/1gv3bx4Zlz/\nWcuPecf1K6/MOaO8etA9Zn1Y7GW5uJxKHqhb0YsW/aVT3xu0KwCsIKIJjLGfLreBtuS+4e02nN74\neWBF+nG9VKO3RN70YKZHQIQFAHIPbzNcP+4uLn7YSADAQy+9xb14321enESS4XfVgMrGaH+p6pf4\nAkjQ3tOjtTUaSxbaGtkJm/V5e34NAAD/fjflBsWPKAOA8sxTSqVSLp3wyHQCgAmPTKedv66Vlmee\nUnpGdjddrpIHGrbmAcDrifAuuRAV/aXijs9+JxEtI6JNAEBEXYlo2qU00lbcN4nfvR3OFaYE3P/U\nc5qBA/oaEhY929VcWiAFAIlcyZcU5p9bSF9WVACpXNGoFniBQSIO4NbNFctCWyHnwFb96XWLIidM\nvs9jwuT7PE6vWxSZc2CrHgAkchVvqqyApVrQ6ZZqM0xVFZAo1FckD+4oegBI9IxTg3BFk74dEXdW\n4ywH8CWAFx37yQBWAVjW0IXOSJa4ufW7bxjPI/vAVp9P/0yAh86AnoOuo9QTxyj30DZ9xLUTisIG\njyva9/4jAUvmzZIEhIbTxm8+58Ouvy/z3PWM4ezOdV7lZ47oJBq9NXLkfbkKrafd3fbfCNwYL07K\ntnqW4zJloa2Rt2+T3+Tpc7mBo28DANhtdm7tqh/8AnsPL9MGR1VrQ+PK5z96t67f8FHcnq2/89rQ\nuHJtUOS5cM/Fp4+os//d4AsAQf1vLvCK6lGvcnZX0buspT9RXzmRi3HHsvdhjP0AwA4AjuTKbvul\n21IkSyJivP28cWK32wASNLBS72275tlPj6eX2XN2JRzLjxn/XErYkNuKnWWTf/k0qGjPuvARI671\nDjdI/fd98HhXq7HCnc8Xg/86LK4RbhtckSy0KQjg+fO2iiALjlNE6D5l3mlJRJ+zO/49WCCJ6HO2\n+5R5p8khK0VJCZojy16IHdinh8/APj18jix7IbYoKUFTV1OXoehFObkM3LHsK4nI27lDRP0BlLlT\neVt6S5Y4DsF9RxW89dR9Prfe/yh35sQxJB87zPeb+VRpyu8rfQuO7zIotF7WbnfPypBrdBfcF2MM\n6TvWBLy/djt5+wcCAL3+2D3SnIQtBtcfhNr4UflefPLdsaL7pm1w2bLQ1gjsf0vuyvfne/B2OwcA\n33z0Jh93x/O5hUn7Nad//yoQAKJG3ZcTOeLuwprXZu74KfCup2ZxIyZMBgCotTru919/CvSOjU9x\nLedMNFIz/nxtLIucFj8GmaKivwLcUfYzAKwHEElEuwD4ApjgTuVt7S3ZLhNnnE394yvLjyuX66Vq\nvaXP0x9nJa56N7Qi9bD3tWMn4fTxQ9j95r2eA1749rBc7XFO4TOeB2+3k0arO1eXh96AcpulXsfM\ngg2z45MfGiKuvmk7XLYstDX8ewypAFHKxl/W+wNAlztn5dkt1XRs5by4gaPHAgB2ff6Cvutds5MD\new8vd72W2aycRqs/t++hM4DZrRc85bprzTsZc3emaBBdIe6kJUwgoqEQAj4RhFRsV/ziUGvCUllG\nR75+I9xqKpeGDxmfHzX6gTwA4Hkehcd3e7/53SYER8aAMYa5997MnVy7KKjH3bMyASHwU97h7Tpd\nUFTVguceVN/11CxKO3kMR3ZvR9/nFpfX266g6FvF6huL1U6btqXoKqqqJYP7hFWEBxustR1r6X62\nJB1BFgDgxOqPA0rOHNN6dupWcfWDb5yzxnfNv6vH7Q89i1unPA4ACAjthN9WLY0I7D38iLNMccoh\nNak9Tcv/91+Nh97AAcDKD17nQ4ZPLnCWuVRF73DfNKtB9O+hTPWpM0XKzp28zf17hhjrOtaWcCfE\nsQrA4wAGQ3iRZAcRfep4bbzNYyotkOx5+/6eXn6BCA4KQeIPb+uLTx/K7TZpZhZvs8Fut8E/NByA\n4KsMDI9ESlaRFBDWGx/4ZHqsSspUnTqFI3HfTrzz3KMWlZe/pefDb2WofYLrVARvBG5sNX56c7WN\n7nj8h9jKkkqVn0aGNxdtx4evjkn+8PNdIa7HPn3j1lND+oRVtXR/W4r2LgsAsHPe3d1YdYUirlc/\nnDzwh27n8d0+g1/69hgAgLdzgeHnQz8FhncCePs5iz1lw9LAvP2bAmJ79cVJBvr45Rk2hYfeFjT0\njtzQgTeXAJep6NG8BtFbn+4I/GHdkYCr/NV4P8+ISWN75AJAzWOzHxuS01x9agzcceN8BaAcwEcQ\nrJm7AayEEMu7zbP/k5kx4Z27Yu6SVeA4Dns2b8SS154PYHfMyKrMOa1UanT2pfNnS+5+5gWknTyG\nhL9/R5d7XiwCgPTtP3v7eulVL376Dee89quP/sfin/wwqb42z70l20oeS5f/fMgblSbVO8NDOY4I\n/2SU4/nXN0WFaGSc67GXF2zu9Nf3U4+1dH9bkHYtC9n7N+uqywsV76/bAU9ff5QU5GH62CGK7P2b\ndYZOV5lI42X89oM3tCHRcQCA7xe+DYV/p3IAMBZmyc7+szbw3Z+3kvPaGeOHS+Kf+CDRafRcqqJ3\n0pxykp5VKvvq50OBH42OIC+VFMUmG5786WAgEeFjl2NP/3wo8K5buxe2paddd5T9VYyxri77W4ko\nsak61NxYq8pkcb1vBscJBkp0996wWa04uvzlyIr0RL2nnz/2/LkBuzetg1QmgzogojKw57AKAKgu\nK5T3ujqec73WXF5S72f6o/K9+GTP1qPoASC3oFIe4ynnOMdqilgfFSqqLJKYEA25His6XOhWZrN2\nTLuWhbKME2pPHz94+voDADx9/eHp44esPb/6JP38vsEvJILPTcvD7EkjwXEcOKmc7//w++kAYC4t\nkHn6BfKevv6Sc9f6BfLm0gLZXWOzoofMWa2uLdFIfbSE+yanoFLmq5XzXiqpBAC8VFIYVFJeJuHI\nSyUl5zFfrZzPKaiUtSVl787SwANENMC541iB0GoUVW3wdjuMhVkym7mq3vvj7XZI1Trr32u/R1Fu\nNniexy9fLgIBkJqK9R+t38kt+HEzd/czLyC6W098/NsecJYqdd7RnVoAMER2r9y28Wf+3LXLP2H6\nsM51ujlGeq/s1VzhEGx2HulZpbKKquoGv+NregRV7jhbyRdUWcEzhrVJJSwqzNNU81i3zn4d1oXj\noM3JAgCYywql5rKGf6i1YV2qSgrycHDnVgDAwZ1bUZyfi4qME4Z5y9fSW99ulLz+9UbIFQq8/8tO\n9LluFKVuWBIMANqgSHNpYT65XltamE+3dU+IHTJntZqz2o2XrOjReO6bvMJKaV5hZYOfQVykj7nY\nZKP92cJL8fuzK1Fp5anUbIfrsWKTjeIifdqU+84dS60PgH+I6CwEP2UYgCQiOgqAMcZ6NGUHL5Xy\nrNOKI8teiGXWakm12UiRN0zOjBw5Ob+uctaKEqk+IBjP3jIIgLCKxs7zrPfg6zi5UgUA6HPdKKz5\n/CNotHp07TMA+XnpSnQfXBHY67ryqpzUnOm3DQ0CY2QI62zqPqXuQGjXyr04EPim9j+eSClQTJm5\nJtZoskjMVp6evK9v5tMP9L/oM3Ay5rrO5YmnCnIe/25/EADqEult+uq9cckrfjrk43rsi//edEVB\n3toBbUoW7JZqOvLl3KiS1GM6APCM7FbeY8r80xK5gtVWrij5sE6hUuGj/zwKu90GiUQKuUrN67x8\nERwZQwAQHBkD36BQFOVmoe91Iyl5yScqAJCpdXy3e+eeWvTyczFWUxUnU2n4JXEhkt4/Jl+y26Yx\nwyGYq2007T9roxKOZesAIL5bUPmyd247rVRIa00rZ9Ap+YWv3XzqmVd+janclc15qOT8onm3JAOA\n67GFr92cbNAp29QqOneU/egm70UjcnzlazG3T31MNmrSAyjIPou5940N1nfqVukd08tYWzmt3hPr\nl3+CjzftBRFh27pVbOMPX1v2/vWHbMzkRzi1hxY7N65BSFQsyooKcPTfHYgaP92ZsQjRN03LjRx1\nfy5vreakSk2dX77LhGyTTzQ9Pnd9zJgID9mYGE/kVVow5/uE4D49gisH9g6tcwXB848Myn12Wv9c\nc7WN02qEMBC1HevgtClZSNnwWZC/QaN9e+shAoD3Zj6iTdm4JCh23FNZtZV7Yc1fNPuOkZi79EcY\nfPxQUpCH+Y/cieL8HJw5cRSdunRHauIRFOZkwts/GOu/WsIrvEPPPe35dOlbNfS1NYdspgpu/IgT\nsb1fWKO+VEUPnAuH0Cjj7c1F24PM+WXaFWOjCADe2Z2rfeuT7UGvTB+eVdc1w/qGVx3Y+Oih8opq\nTqdV8E5XZm3H2hLuLL1Ma4Z+NAq83Y6y7DTFDY6XOXyDQnH1oOtQkH5C7arsebsdpVmpil++WIjS\nwgLIFHI8eWNfeOj0sFZXk8loVFiNHuzJG/sxjc7AKsuKOY3ek3/6lkFERHRwyZxYv7j48qsmv5Qq\n1+jtnEQKTiK9aHCOHbS3y5A5q9WWh4YAaJ6JJpudR2pWmeKdQUK2PH8POXoHanDkZJ66PmUPADKp\nBDKphG/oWEelLckCABhzUz3GPfw4J5MrAADX334X9+3SxR41y1Vmp3hUWyq46bcOBgDMf3gilBot\nTJUV4O12jmeMvTptPPS+AXxpfg4nlcn55ydeD8bzZKqs8C9NOeDZ5a7ZKZ6R3U1EhA+3vtELWy99\nItaVxjKKjifleYyI0HIyieDNHBGh5bYm5V30GdSEI0JNy722Y20Jt17nbytwEgnUBm/b8f1CPolq\nkwnJRxKg8g601Cyn8tBi4I23YfnuU3hx8Q+QyxVQabQYfvs9WLH7FOYsXEkgYsE33J866KUfDvoN\nGJeh0mjZ/K9+oWXbExEdEao98f3bEXX1ZcGG2fFD5qxWr9XcBaD5VhRIJRy8dUrb0XxBr1fbeCQV\nmREaqLM0cKlIO0Om9zUf+XcHY4yBMYaje3Yymf5iP3NVYY5cplBi4aZ9WLhpHwLCIqHSaBAaFYuP\nf9uDRZv2UkBEFK8M61Yw5OVVh3o89NZJnoE9MGserfg3Gfc8OVN+5IuXYq2mSu5yV9w4cYZEaCyC\nAnXmowWm859BgYkFBujalK+9sSDGanVdXXnFROzGj3c0++RV9v7NupOrFsSEde6C/Mx0KP07lcVO\nnJF2eMl/uljKi+WcTMaCBk/ISNm4NHzFv6chlckAAItefBq7//gFIZGdYTJWwuDtB5WHjq/0CMkq\nOrrdv6owRz5m8sOY9OQsAEBRbjZm3XWjfdj8dYdc23e+Ag4Akqzyg/dXqnplV56AQSc3zXn62vQe\nsX6m/7zxR/iB4zk6pVzCW+08GM+4wdeEl7z+/IizdfkSL4U/d57WPvvab9Ex3iqWWVZNfXuHliyc\nd3Naa370DB38fjxjrPV28AppCXkwlRZI9733SDdPLy8JAJQUF9v6TF98PPH7d8Kqzp70BABNaFxJ\ndX66ftqcedw11wleqn1/bcKSV5+Hh94AMEAqk6Fzzz44nphUySQya3naMU+9pzc+WP/PubaeG3+9\n/SN/leQqvUetip5nDB/l5/mtKisJAIA79J65T/r65X+cn+f3fVlxgJ0xyEC8WSVThAfrKt95cdSZ\nyFDPKzZQ8gorpeMf/b6LkvFSAKjmJNafF9950s9b02pjGjWVLLS7pXR5Cb/7d+s3mPUceC1VlJZg\n3YrF2gMfP3VVtz79pBMfm4m0k8fo05enh0tlcmSeTkJEXDfwdjsykk9g6M0TkZ+dgbDOXdBr8PVY\n8trznER+OLhHv0FcYPhtSDt5DIwxEBEyUk5CrtFdENXSadU4Y33cnZkeE+6nZp+MuZoO55ernnhx\nfefoCK8qjcns8fKAAEotMWPx/lzMHBiEX45mes9+6w/64L83pV/pZ3DD4KiKTSsmHztwPEft5+1h\n7dcz2NiaFb1I05B/aJtepVbT8PF3AwB+/eYL7tDncyNl1nLt7EUrAQAfzXrM02o2soykRDiVfXpS\nIrSeXhh80zhsW7cKU19cgM9emYHy8nKlh0bt8cT8D/HZKzNRWVYCD70nKstKYMzPlniGxtZp0X9R\nWOD9c1VZ8LJbr+YA4OFfjwYnGo2qg3aT1zNDAjkAeHdXNkaGqcHDprnn6R/jtn435ahKKbsi48ff\nx8P2x8r7j23fm64FgKF9wyvUqiurs61SX1rCSggrDmqDMcZ0dZxrMXi7Hfkn9uve2pEI50qa9JQk\n7N28XvroK+9CrlQhMDwSe7f+hj1/bsCr08ZD7+0Li9kExhgemDUPpUX5eG3aeDw+70Ps2fIr9m39\njXv0lXfBGDDv4Yl4bdp4+IaEI2Hbn3yXO2elAbVn1rExhh1lFbrMe/tCJZUg2lOD39ILsfpEjva7\n8TFQSDkE6+RIyK5EgdGGR3v7cnO2pXkCuEjZf7PuiOcHn+8Ks9nsXNdY//IvF9x2Wi6t/3c6NFBv\nDQ3Ut8sgXc1NW5QFACg5udv7nmfmcP1GCCHGPX38uS/efMHjnjlvILpbLwDAPdNfwmevzqR1Xy7C\n9g1CXpaSwjzMWfQNusT3x79/rIdKrcFdT8/BsjdekNwz/SX0uXYUUsYfxNx7b0aX+P5I3rsDE4N8\n0K2cr/PJZXNVhfdLQ2K4+AADAOClITHc7C2JnpPjfbnO3oKs3ne1L/5OK8eLQ0NoW0aF5HhygbJP\n9yCTaz2pGSXyqc+viSktM8kNepXli/+NS44Mq/8JQK2SsdHDousNXdIRqNNnzxjzYIxp6/hrlYOb\nOA4SmZyVFAqrDBljKM7PBcdJ4HqsKC8bcqUKnbp0x9Q5r2PUpCngOA6mqgoU5+dCodaAMYaSoiLe\nea1CpcJLS35EaXEBjh45VtH78Q8S/XsMqXD1UbpaNRwABUcst6r6XLs5lWZIJcRKzLbzfTHZoJRy\nKDLZYLHYL/o+Nm1L0b783tbIWyO10sd7+3FnTuUZJj62KraJP0oRF9qiLAAASRX24vzcc/vFeTng\nebCaxxjPM5WHFnc9PQd3PT0HHlo9TFWVsJhNqCwrhUKtEcqx89fe+dRs9BgwDIc3b8BrIV6Yr/Gs\n10WlJM6eU3neVZ5dYYYExBebzntTioyCLFTbeBRXWjiplC6YDDWaLbhl2tfdOimgfPoafy5CAeUt\n077uZjSL01Hu4JbPnoiGAIhmjH1JRL4APBhj9a65bg4fJWMMGTtWe5enHtFLNQZLp5H35Wb+s847\ne/e64MDQCKooLUFJUT6TSGWMwLhb738MKccO4tjeXcxiNtFnWw/BGZ3v3enTwHEcEhN2o8eAYbDa\n7Czl5IlqqYdnta04Uz/6zilIOXYQx/ftZv1nf3V40k2nOw+Zs1oNXDwZdaa6Wr6wIM//iNHoUcYx\n1dSrQ+lwYSVOmqzs+qER2avXHw0cEaHjkgpNSC4yYWS0AZuSS2Gy8ogI9TRGhRlMHBHdMDS6ZOWa\nw76B1mrdQ/HCW41ny6ox84903HRdTIGdZ7BZ7RKNRmEzVlbLvL01lqen9M/18VLbVvx8yHv3/gy9\nj7fG8uzUAbmt2UcJtB2f/eXIguO6JpeHouSD6px/N/oBQGD/MfmcRMYOLJ4ZF9wpmgPjkZGcxJRa\nLV9dWSEZNekBcBIJfv/+S6g8/Sz3PDFDPnjM7QCAnRtX49dvlgIQnpZ7DLwWm3/+lg8ccGt21vYf\nQ0bdOQUA8Pv3X+L12DDcy2nqvK9qnqf383L9D5iM2kNGo/bBq8OIgWHFkUz+Rf+AtNdycyJuiNFz\nPIDfkktwQ6QBycVmZJSZodUorF1j/SuUMo6iOvkYQwJ11e98vC3yi7FRICLwjGHq2tOIjPSuiAj1\nNBmrqmUajdJqtdgkEo5w521X5w/oFWLcfTBT/e2aQ34AcPe4nvkDerXuIGYt5rMnolcgvEzSGUKW\nHjmAbwAMbOzOXCqn1i4KNqUd9Lvprqlc6omjbP+Hj3t5d+lfrDV4YditdyDl2EEc3LGFbnngMdqw\nYjHWfPGJTRMUVdXv+WVpO+ffc7XNev5NZ4vZBEbAoJtux/b1P/PBQ8Zl93lmUYFM5cEn/vxR4G9r\nfjJIVFprv/98kbZwx/96YkftKw4yLRbZbaeTu97ZLVgyRe+HN3el8JsOZ1d4RtygWzY3ksI6sdwu\n0b6m1xduD9PYbfIbogw4klsFhZRwTw9/nCoyqXftTVeP7+qFNz/626DwUFT7qM5/7zaeQSUllJ/O\n9d2XXYnxXbywZl8JRoT5gCuzsHEPfec1bEBE8Y6dKb43Req51BMl7NYHv/HatOK+Y2152VhroDXL\nQuHJfZpjX73a+bapT3IAsPaLlzzDht99lpNIqP8NNwMActI/oOvHTpKcPn4YW1Z/y+TeQVVd756T\nk7Xz5yCb1SJ31mWzWmA2VmHQTbdjw8rP2IHjyYXxT7yfrwuJMetDok3HDyyP0p8t5j7sGsHfxlR1\nLpHkGcPk9NRohV7uMbF7GGc7nsX/fCzLMkKrK1nVKaqom1ptvlqtMb2RmR2021jhOa4r3y79AAAg\nAElEQVSLNzLLLUgrNWPiVd7giGSrEs563RhjwL9phfoyidRsZww8AyQEMAZwBATbLdpft5zS3hhj\nQNKpPNjshDvjgvDIrHWejz3Q9+zC5XtCx3UWInA+OGut56ev33Jq6DXhHe5tcHcmaMcB6AXHa+GM\nsSwianCdalPDGEPGznX+H67fQZ6+AbgeoPzH75Uk7d7g/+GGf+DpG4Drx9+D/z39APSePhj/yHR8\n9b9XpB7B0ZV7F06PISK889R9GHPfI0g/eRynjx9Gn+GjcfCfv/mwaydkR42ekudsq+v4p3MA5AAN\nB3P6uqjQa3S0HzdvqOBp6R2g5yavPaheK01PyFXFxQPVGDsirszLoEqdMmNN3DXBwOmSajzbPxBn\nyy2I8Vai2GSFXiHF8/0DuDf/zZX9nWeBl0qGAK0Mq44V4fYu3rg1zgsvbc3An6fLMDJSj91nS3F0\n6jAa/0uC5IeNx/0Xj+kEb7UMAGjezmzJL1uSDPeNu7reRCoiDdIqZQEAsnb8HHj3U7O56yfcCwBQ\nazy4nz5fGHzP03PI5RiO7/sHU194A3PuGk1yg1916pbvA6pyUlVfvzcPNptg/Pyw8G14+QUi/dQJ\nXhsYaeox+aUMcsR/Cuw9vPyb7D84ztu/wYQjx00mZYrV4nF0bH9OJuFwV5cgrsey7bI7vbyLuqnV\nZgDoplabl3eKTO2dejI+taQaFRY7xnf1BoHAGHB7Vy+klVZj9sAg7pGNp5XEcfxbO7O4oeE67Mwo\nR7BOjim9/BCsk+On40XoG+yBvZkVuDHKDzqFjFvw/YHge67y4kZHewqfgYzjln6zL3DoNeEp9fW9\nPeLOOvtqxtg5i5CI6kwv1pwwngfP20mpPi9rag8teN4O12MqrRZH/92OtZ9/jGFjJyF/76/BV3Xr\nph456X7kZqRh848rYTYZEX11PDuckGDyHTAuPXLUA3k12xvpvbLXgg2z4zmr3VjfGmILzzi9UnrO\nFNfLpbDxwiPZxm9DUJin6AIAQ/qEVy187eZTuwst1Tae4YuD+bDaGfZmVSK91IJqGw+NXAKeMWJg\n+DutDIv35WFsnCduiRUGrkbGwUctwy9JJcg3Cn5LnVwGO8+gkp3/ajUyDharvdW7SNoArVIWAIDZ\nbZxKqz23r9JqwXg71TxWVV6GV6eNx6Abx8GWc8rbg7Nob578MOehN+CPH5Yj6eA+jJz0AMrLy21F\nTJPf69EFSU5FD5w3dhpS9ABQzXhSSzhIOWHoyTiCWsLBUsNFIec4/PjRIzBpVFVppdVYd7IYBUYr\nCoxWrDtZjIpqO6QcoJJLwfMMpwpNWHYgDwRg7tAQcERQyyRQyzgczjPCaGWw2HnoFFLwPCO1THKu\nLbVMApvt4rmxjoA7lv2PRPQZAAMRPQxgKoDPm7Zb9cPbrJRzcKveEBpT9cGsx9XjH3qGzpw8hqN7\ndkImV2LhC09i7NSncObEURz+5y/YLFY887/FWLXoHYTFdMGzC5aA4zj0Gnw9ls6fhX433IIdv61j\n/WZ8lqz2Drooit0TPzwdf7i0Ev9UWpNv0hvKQYT1pSXaDaWlXgFSaXVXldps5HnuWp2ucqynZ8md\nR1ICbAycRibBL6dy+UiZvPKnoiJ9TsBX/PzFFvX4MZGaIX3Cq0YPi64YOTTqWPS1H8a/el0oQnQK\nWO08ntyYio3JJVifXMosVh69Aj1wfSc91pwowo70coQblDhdbEJigQnvj45AVrkFb+zIwuKD6fgj\nrQCdwz2Nr+/MVnX1VlKFxY5DuVV4Y3BUrasREpMLFHsOZ3p4GVRWq43nqowWbmjf8MpOIVe+xrkd\n0upkAQCKTh3QkNpgWvnuPA+Nh44A4Ov3XuftJLF+8948icZDmEP++t15MPj44oY77oPdakNVRTnm\nr9wAL/9AjJ36BJ65eQCuumYgVn36Hh828v6MkP5j/t/eeYdHVaV//HvuvdNnMiVl0sskIRBqCEWa\ngiC4UtaGrgK6othd1/JTcS3IKnbZtTcUxLKiYgFEQHYRhIgYIYQAAdLrpCfTZ+695/fHzISAQQZM\nICH38zzzcOfMaUPu+86573nP+zYHxwieBrf5fOK2QzWlAIyXGAxtJo4Titxu+ctWqxkAxmu1ba2i\nwPVXqtyjNBonK1Dfjd/mKSxGDQ402KjDwwv7nE7VVptNe8DlVGdrtPZboqIajXo11r039+AFVy0b\nNCFKobh8QCD7IwV2VNjw+JYKOHyiyAsit3B8HHZU2JBTYUNB4PDgB3vqcENWFIbHaHHDV0fwyf5q\nrDpUKyZbwh3v59XrSpvdBAB+qLCLD915QXsilY40tbjY9VuPhAFAhEHFV1lt8gxLhHtcdsI5YfIJ\ndYN2KoCpgbcbKKWbQmjTLRtSgtdDcl+7u79WwSlZhkFVySFGrdFBEHjITLG2xqJ83SXX3oSDu3dC\nplCitqIMrY110BlMyBg2AtUlRxCf1h9/e+Z1NNZW44HZk6FQqSEzxdpG3vXKoY6rmD+P+3mA78Z3\n1Iv2F2Figknc32hHLOVsiSznXNXWEnNBggk5Vc2I0SrRz6AWt1Y04bmY+CP3VVekG9QcidRwyLc6\nkWFSinUunnH7RPSLUCKv1ol7Fowru2PuyAZeEJE26eXsT69MBwAs2lIBh1dEhFqGvVYHKKUwqWXQ\nK1hEamT4tcYBQaSI0sjwf+PikGRQoM7hw53riqFVycRwFQeGAKVNLmZotAYVrV7EJZjsn715dSHL\nHLug+XLjAf2jL2y2DDGrkVdtZ8LVMsQblOJeqwOvPTnz0AWjzpxdsxdt0J6yLATadYs8HPrmzdj6\n3d+bLQOHoiDnB0arNwCEwOV0CbqYZHf2iBGakgN7IQgCXA6739tMqUJCegZ4rw8NtVV4fNnnMEXF\n4O4ZY+Fy2MALVBh9/9sFHRc+L6x9KNtqc7rm/Vogy4zUMQCwv84mPmKOKb6/prJftlmPKrsbzW4f\nJsWbxB3VLbhCZ6jdbm/TF/m8mswoFQrqXAiTM9SklpHDTS4MilTjUJMbA2RK25vL79JFRHtyZ9/2\nn4yJekY7JkGHVQUNWH+4Bf3ClSioc4EXKZWzhMhYgkFRauTVOuDhKTiW4MbhUZiY7He2uPmbIjgF\nyssYwvaLVNE9VTYmzaQCIUClgxfWvje3IDFWf8yirqyqRXblbZ9mJmg5prbNQ1pdPMmK04n76524\ncsbg2ofvOP+MJSo5q4eqKKUbAWzs6sFPh7Ktn0eYI8OVD7+2krlj2gg8/PrHSB8yHLzPi4VzZmr0\nMSkup8OuvG/pe6S0sACv/uNvokyuYO5f+l57vUfmzcTWNZ9h13/XIyouEU99tA4L58zU1OR+r48d\nObUV8JttJiwsYC7YX4RPLx2OkTEGxiuIuPCjHN32Fpt+7ZUjsbfeBg8v4PHxGXD4BOaSNDPu37w/\nLdGkIIsvTABDCHIqbFhV0MC8eokFD2wqxRSLARemGPDq+zmJF4xKtHu9IumfbHK9vbtOGa2WEY4h\neOni5Pa2//6pGuEqDk9OTmwve31XLRpdPOxeAQ1OH976pRYKGUuTDAo8Oj6WueGrI1g8KREZESr4\nBIoHNpern397R/St146o67hJ+9hL/035x7hYprjZDYebx6MXxIMhhMmpsGHRi5tT/vdpn05U0ik9\nSRYc9VWyqpw10Uu/3EJWvf48Lpm7oP2E98cvP83m/LAFe3f+KN7z3BsMACx94FaRMCydMP1y9pq7\nHwYAfPLy0/jk30/DMnAobC1NeHldDtaseJPZvfad+MHXP14CHDXdvFxY6rp6UJzq8fH9AACLth0i\nj+6rTL15aCJuGpqA8R/l4OvLstHmFZi7R6Zg+me7YrxUJG/PTIVBxaHFxePOb4vJ4smJ+PZQM9q8\nAl4ZnYKb1xTpvtq8B+ePjZInJ5oc/8kpVmtkDPP1wSa8domlve3Na4qIyyfi5T+ldSyDyIuweQQ0\nu3hsK29Di5sHxxJ26cUW8mF+PZnRz4h5Q6MAACv31rP3P/Vd8nMLp5Umxx+NRf/M69viJ8SquWkW\nPe75rgSv+sdlWlw87vwyL2bOpUN6VaKSzuh1h6o8rY2yrMFZDCiFraUJlkx/VFlOJkdyv/7ESvUN\nhUWFYfddOVmn0Br4jCvvK81b/ni/jvXiLelY9tRDiEmy4JG3PwMnkyNlwCDUtzbIgKM3d1itI7fZ\n68vOMvu/qpxlMDhSh31NdmSZw7CxpB71Lh/mrtkNs0aBSrsbDkFgBkSqEDyxmh6uRLOLh4wlsBiV\naHbzGBGrhSBQctVtn2ZyLCFGlUzc1uohXkHE5Znhx7QVKZAZpT6mjCHARRY9ntxaCV6k0Cg5Ydqk\nfvWkwhpNKdDmEZBmUgIAZCxBvFbGfP51XsyqNfnmD5ZeUTioX5SbF0S0OXxsmkmJ3Bo70kzKY8Zo\n3FN/zp2uPl16riz4E4bowyPZlvo6ZE2Y3P5ZvyHDsSsnB+rEzNpFC64yA0DMiGlWu22zOX1o+xlA\npA8Zjjcfvxd7f/oBf3/uLWj1RqQPGU527fxZDvhlIZh0pEEQMq6KMbS3HRlrICsLKtmRMQbUOb3Q\nyVhc+mUu+odrcbDRDgVLoJVxMKj8t5JBxSFCLUOzi0dGhAobi1pgUHEwqTi8uuK/ePYdfnBKuEqs\nbnUz/9xaAaNKdkxbo4qDTxCPKYvRyXGRRY9PCxrxQV49ZCzBnMuGVm/54ZDZoOLYZhePkbFH9/D6\nmZTYkmvVTb9h5eD7Fowrm3/V8EYAaGi0yy80KtDi5hGhPnbc3piopDNOeqgKwL8BPAggLvB6IFB2\nVjCmDrVvWfO52GitQWrmUHy17BVQSlFZVIhft24irFwpDrv52SOTlqzdPfbhD/Njhk+yqXQG+tV7\nR+vt3rYZUbGJGD1lBnQGo79s6/e44iqlOXhzm6zOXI4QZGrUrpd+LqaUUhxotGNjaQO0MhbP7SxG\nncMDn0Cx6erReP+Sobh7eDIULCNuKmpBncMHQaRYVdCA/hEqlLd6sKvKjjSjEl/sb0SaUY1YjZy8\nNDUJD4+LZa4dbIJGxuKYtvsaIGMIvj+uvwERKkxJNUAuZ8VVr161f++GO/dcNN5i+6HcLja6eKSb\nlPisoNHvsdTqwV6rAw+Ni2UuSw/j7l60ztJqczMcy6B/stH1xYEm2j9chS2lre1jfHGgiQ7uF2U/\nW3/jnkZPlYVAwhDk/rAR6UOzsf6jd+G02+C027Dug7fgdbuQPuvWmvMXf7nn/MVf7kmfdWuN3BDt\nWLvizfZ6a1e8CUN4JOIt/ZA2ZLi/7YfvitqE/m3BRU8w6cgwhart9dxSsc3Do83D4/XcUlEQqPCv\nXcVocftQ5/Tgm8tH4I2pg/DN5SNg8/Gk0cVjZ6UNlFLsrLShycXDqGLx9cEm9I9QYWelDW6ewu31\n4enJ8bhnlJl5ZnICGBFo7qStzSMcU9bs4nFeghbJJpV449XDqw/+9+7ce+aPsTYF2vaPUOHrg01w\n+gQ4fQK+KWzCn9KMZMmkePLsWz8m5R2oVYqUImtIXNvaI62iUcWiqZNxe1uiks44qc2eELL3+KQM\nnZV10q7bDpEUfbfcXLzpwzjB5yM6oxFOWxtkCiUS+g2kJGFYhWXKnGM2YBoKf9EUrHgiw+2wEYZl\nIIoiBQhRanSix2lnGE5Gr7phNB4u9pJgXJtg2xKPR35TeUn6YZdbqSAMXRgdU/qPqsoUJceAJYBX\noOAC3gBuQQAhgJenECgFBWBQcGjz8GAYAl6gAAG0MhYUFF7B/3+v5Bh4BBEMAbyC362UBst9ImQs\ngU88WubyiWAZgsljkpveffbS9gM9S5ftML+6clecIIpEq5SJdjfPcAS4fWQ00sKVeGJLJZw+AQII\nvX3uyKo/T+3fvOCBr9OPVDYrOULAB8bQKWX0w39fuX9YZvQZu8F7g83+dGUhUK9b5KGh8BdNwUdL\n0tytTZxSo4HH5QIhBANHjkVtU5t9+B3H5kPmvW78/MJNg2zWSgUAyFUquF0uqNQa6nE7CQFBTNbE\nxnUGRzjHkGNcjH2U4u6KsuS1LS3hADDDYGis8roVhT6f1s37w0RxDIFezqHVy4MXj+oWXqRQcgzc\nvAhCCLiA7ChlDCgFeNF/T2tkLGxeAUG9xBD/vS9jCHwCBSH+MYJl3kBZTLjGt/HD6/LDtEoKANt+\nKdfcvWhdWnObm1PJWer0ioRSiikWPeZnRWHpTzXIq3WAZRmalRlte+vpWUceemZT0vptReGCSCFn\n/PLAMQS3Xz+64t75Y06Y/Ker6S5ZCEXZ5wB4DcAngaK/ALiDUvq7B0m6+8SgKAjY8fScwdfedq/8\nvItmwmFrxSPzZonps+8/FDFgVKcbi+7WRlau0QsgBCLvJZxCRXm3k3lp0xNZDCHHxLXhjgscZhcE\nRsUwIksI0gvyhs8dGkn+lG5EvcOHhd+XQ8OxuLifHlNTDWhy8Xjwu1JRRonw2MQM2ay0aNh9PCZ/\nkoMWjw/zhkXBqOKwMq8eT09Jgk7O4OP8BhQ1uXHbyGj8fX0xWBA8PXEALusXg1aPD5NW/SQyck64\nb0iS7JoBsah3ejD1i13i0n9OPzQ+O7H9+/KCCK9XIGqVjK5Yvcf07vKcpKcmJTCPbC7HtDQDgnN+\n6L8V4itPzTw0PjvR8fE3+cZX3/kx+cmJ8YySJVh9sBkllLN/8dY1v5s4vSvpJcr+tGQh0Lbb5IFS\niv2fPp8QqeAj7vznvxgAeO2xe8RGn7K+/+x7Kjtr43XaGQCQqTSi4HEyrEItiryPAMDSDY8NB/xn\nSYSAfmA7yINHFAkAKBiGTj18sL8ijNE8NCEeAPD89ioQyoESHveNjQUAvPhjlWhrEdzpMWHK1y8e\nxADArd/lI7euFTFaDnedF4u7vi3Bw+fHITNSjf31TizZWoVXLknByz9Vo6jJjQlxJrxzyVAAwM0b\n88Uin+BKZBnVsmlDGABYsGmfGD04uu6Je48mJREphcPpZTRquVhjtXFT5i4fvOj8eGZnlR1lLW48\nMM4/5xd+qhEHjEiuW3zv5KqaOhs3ec6KwQvHRjOpJhWKmlx4ZketuHXV/L3hRvUxgQ+7i+6ShVD8\nTa8FcBUAa+B1VaDsrMKwLAbNfezIh/9+hr9/9hTx3ssm0ojhU2pPpOgBQKkPFxiOA8Oy4BQqCgD/\n+n5xu6Kv9Hpl04sODUjeuyd7YEF+1n8aG43BtlqWFVlCwFMKh08kU1P9tstIjQzZMRqUtrmxrawN\nV64qxH0bSmEOkzOTtGFND/9QSBPf2Ixh72/DmDgjXALF1FQDiprcGJeoQ5iCBSEEF6cZUNTsRqRG\nhhFxOoyKM+HJnCPIWr4NI1Zup5dNH1Rb0+iQ/XVQPNQyFkl6NaYkRSD/oFXd8TtyLINgVL95lw1t\nGjUqpXHBmmJa2uJBxzkPj9G0ty0sblCNjdMwBiUHpYzFtFQ9DpU1HdOvBIAeKguEEGRcemdVeUWN\n864Z48S7ZowTy8qrnWkzb6k+URu5WivK1VqREAJOqREJIWBlchpU9GG1jtx7K8sTU/Pzhqfm5w2/\nt7I8kQ8ofgXDUAXDUABQMgydmmaAjCWQsQSTLXqUtjhAQTF39WHMXX0YlAGjYImYW90iJL3xPyS9\n8T/sa7Qj1aDBtHQjGpw+RGo4ZEb6b7nMSDUiNRwanD5cnG6ESsbBKVAMePcHDF7+I62Ts069Rk6v\nz4xntHIOWjmHef1jmcLD9ccccGMIgU7jzyoVFx3GP3n/lJIntlWLm4pbMcVydM4XJumY/YV1WgAo\nrWqVR2lldGCUBkqOwcAoDSK1MnqotEnRPX+9M0comapKAMw6A3M5ZQzJma5xj3yy124tUyjCTLxS\nHxFy/JfOIlXeXFGaNikjSr1xTBryG2zMFV/8ktxfpXQNU2vazRkcIVBxDPKsDgyP0cLlE3GwwQ0V\nR9A/UoXFFyaipNmNR/9bgRp4w+cPSyQP+/vD7K9yEamSI8/qgFkrw+biVvgyKWQswe4aB8xaOVw+\nEfvrnbg8zYDpqVF4rbDKvfbVqwrNEVp+9XcHov5X3shNSY6A3ctjZ20Lzo83eE70HRlC8OIjF5ff\nc9PYmhnzPxyYZ3Ww7XNudOPKQNvEOIPnsx8Piz6BMjKWYE+tA7ER2hP221fpybLAKdVi9l0vFzqs\nZXIA0JiTvOQUw1p3PB3+nLU2upjlww8umEgogGu++jX8JWut94HomNqObTyiyORW2zEqzq9n99Q6\n4RZENLsELPtzGgCKxVsqUenyaIZEhNFtl44DBXDNN7vhE0XsqXVidqYJdQ4fau1eRGvlqLV7Uefw\nIVzFYVNRC1hC8OKFAzDhk5/om0tmHhwzPN553+LvkjZXNGr+ZIkkALC5opHGxvx+UpIrLs5smTLO\nkvf3J9Yn77G2GUbFaQkA7Klz0vjEKDcAJMbqvVabl+k4F6vNyyTG6nv9uZNzLnlJKHQW8sBHKVL2\n7smuu+sicAF/9Nu/yxctbai4PcrcAABfNjfrl9bXJhxxuhUGJQeLUYniZjdEUUSbV8QXV2eADZwW\nfHFHFbaW2dD4N39/3xXX4Y5N++DkBYgiRUKYnFbbfUQdOAVb1OxGjFaGFrff7m9UyUWbQOmy5y4t\nHD4oxgUAm3cU6+554ru0wVE6WtTsIKOzE5qXLrokpKQkm3cU6+5e9G2axaSkVW1eMmZEYvPLT0wv\nZQiBjxcw68aPBtTWtKoNSg41Dh99/4XLD57JgFG9wYzzR+jJ8gD8ViZmlxZl3D4hVTs91e+yuPaI\nFW/8WGz/LDm1EAAOu93yB6srUg563BqdgiNqmd+OXm3zQsYAd46Oweh4/+ndnypteGVnDd6eNhTT\nU6NQ2urEvLW7cbjZCUIAg4Klbl4kLp4iPVyJQ40uaDgGajmLRhcPtYyhImFw27xRFbfOHVkPAPVN\nDvaq21YN0FDIAMBB4Fv1xlUHIk2ak5pa6psc7BW3/mcAxwsyAOA51vfFm39pb/vkqz/ErPxiT2yC\nXoGKVg+uuzKr+h99xc/+XOJEsW1YADqOE/PrbUyWWQ9eFFHQYMNotZEHgJ/sdvWjtVWWty4ezCzY\nkI93Lx4MSgGDksPN6/fCyXtQ0uJBmkkJQaQoafaAI6D59TZCAdy2MR93nRcNs0aOZblW2trKu5PC\nZIrrs8yMkxdR3OTGN4VN+OuwKKwtahUnTupvvfO6UdaIDnbCyWMttvUfzMvfXVCjNkdo+JFD4kJW\nxpPHWmwbVl7fadvcfTXqiupW5ZX9jVDJWPxYaaeffJ0XOSYr/g8nUpHo+XQmE0aG9eVZWxFU9nvr\n2mBkWB8AuESRzCkt7j9/eCJnrm8jFr0KE5MiAACrC2ux6mAVjjS525V9UZMbokiRZ23F5KRw/Hn1\nLkxI1uLO86LwY1kbvj3YIrp4kXl0Ujxx8RQyBnjyhypcaNFDEIEKVm5/+sGLyjIsEe1Pm5EmjfDt\nirkFP/5SrgWA8SMS7aEmOok0aYQNH1zXaVuX20fWfF8YOTVNTxN0ClJh89I1mw5G3nvjmNo/mkjl\nbNOnlP0Lax/K3tdqw8v7i212Kg6YpNE13W+Ose5yONRLG6zxZrmMn/X5Ltms1Cha0GCHxgvHZXGm\nFgDY0Nqqv25wPHNRSiSWXpiJWzbkY1JiBH6tbYVb9HsEPLK5HOfFa1Hc7EGrW8DFurCGK1bnhsfp\nlGRiShgZHuN/1L1lpJks3FAuV9gJ/+z2ajnHELS4eAyKVovrS9oQGWNwPHLn+dVcIEnyT3sq1Uvf\n2R7vcHjZiWMtTffcNMZ6/GnYUIgz6/g4s+43YRM2bivSX2TRM7P6+4+oDzGrmYU/lHWaSEXi3MFj\na2YPf/ZCwtyyvUgE2/jPmHgWABbVVieUej2qbXvKxTxrG+Qsg51VzeIXKWmVALDP5VSqFCx77ygL\nKW9z4eJVP6OgwQ6vIGJ3nb/+1webUNLsAQiwt9aBOJncszyvgs2pamY8gsBcmen/cbhiYAR+KG4j\ngxXKlqe3VRlVMgZOn4goDUdrXCI51OzF+09frcuwKD0A0NDsZB9/aXNCSVmzOiXJ6Hzi3skVEaex\ncapSyuhF41Ntx5cXHK5XyqjI3jDMHFxZk90byzpNpNLbCCXEsQHA4wDODxRtAbCYUtqrsiC9sPah\n7BKHEwt+KRDnZkXqzBoZPtxTr6ys8Co222zhj5/fj0kKU2HRtkO0tMpuv8ForL8sztQS9MpxiQJT\n2+pfDF/WLxpOn4B7/1sAEIL5WVEwa2R491crrG0CLk2Lwa7KZvECWZjtNlV0/fO1NTENDt4A+FMp\nNzh5MBS0UeDlNw43w6yR4b3dVjQIjO+eBWMrL53avyWo6Pcfrlfc+MBXGXMHhjNmowofrt+ntDu9\n3KK/T6rq/JueOlq1XDzs4mnH+akUnBQO+TjOFVkAAFHgUfTWX4cN4kSMG2bA9jKbaXbJEQ0DYIwl\nQvF0RipZXVhDNx2p4+ebIqoWp2W0mmUyHgCUhBHr3F7G6ROQGKbChqtGYcSKbSAEmJisx7hEHTYX\nt2Kv1YVpyZEYHxOBA0Utrmdi48vera8Lz/OKcR5eJIpAopJWD49fwBvGJOpwflIYtpa1YXuZDTe4\n1aWvxsW30kj90IZaZPOiKM79v1VeiwKKq5O1ZHtlo/Ivd67SrF8xr0DGsSf5xqGhVctFm1uAhxcR\nnF+bm4dWLe/18hDKyv49APkAZsOvDObBH8v78m6cV5cSfEz99lBV1URLWNy0NL9XSoSGYx7eWB4+\nZ2A8c8PgBABAvE5JZq3apZltCj/csQ+GEPHHyibcvjEfSWEqvLu3AgDBZEsYgv09NCEOj2yuQHGz\nkzbbvd7LLMYWDcvSlxOTyi4+Uqh9OaeGi9LKyIZDLaKeYX3npei4YNsHNHG4f2OZ4so/ZbZ0HPfL\nTQeMExN1TMc5L/r+YGRXKvvrLh/a8OmafPPLP9dyUWqObChuEx+68/yKrur/HGvOhUcAABVNSURB\nVKLXy0KQtopCFd9oxy0zUkAIwaAoNbn1m2I5C4KXJmcSQgjGxxtJVlkDO0qjdQYVPQB4RZFhQeif\nV+8i01KisKGkDkqOhYwFbhlhDvaHm9cUg1KK5XmV4ofJlmqzTMYvjIm1Fvk8mse+L9ePSNAyv1TY\nxWS5wlkh+rS3j4xub5tb7SAmjhPMMhmPJzfkmu5IGvBVq0ltb3Mrb5mW2D7n278rk+8rrFNlDYzp\nklV3P0u4Z1RWfOtjW6v0I8wq5herSxydldDazxLe6x0WQrEFpFJKH6eUFlNKiyiliwCkdvO8uoyO\n9kiXKLIu/ugPtFegEEGJmxfabXFuXgTTydF4uyBwFyaGI92ogVsQ8fjYdBACiB1+770ChShQsZ+T\nqfzakn5Aw7IUACJlMmF9WkbBQKeiWlGL2lfjkw5HcpzPe3RY/+GQTubPsgx84tFddK9AwRLSpbbD\nCKNaWPvenIIBY9OrZamxtf9ePP3wNTMHN5+8ZZ+jV8tCRx7IeTPTyQsInnsSKeAWRMYn+g8EAoBA\naaf3GwUoCCXzBsajzePDvIHxoJQGskcd7Y/nReqxuus/t6TtH67RuAC/h9g7iSnFc9Th5aSaWueo\nw8vnmyJreZEe21ak4DqM2/Ra2QH929sLPB4cU08QwbAs02XywBCCN5fMLL7mLyPLkRxjveYvI8vf\nXDKzOBQniJ5OKCt7FyFkAqV0GwAQQsYD6HFpvbz2FrZs6+oI3u1gowaObQ3PyHZ0jOsB+DPb5FTY\nEa6uh1kjx6qCRvgEii8KaxCpliPZoMbzOUXiXGP4b3beD7vdquISGywGDdKNGjy/sxgipdhWboNO\nwSJGK8fn+xrFm8Mjq+6NjvnNabsomUxYGBvX7rYmJ6RqTmlRmF7pb/tRfj1GD7X8xvb4l+mDGmd9\nuTdar2hgzWoZPi9sFudckdXlngGRJo3w4C3ja09es0/TK2SBUoqK7d+Y7LWlSm10sjth3Kymjm6Y\nL6x9KPsQAF4EXtxRjdHxWuRU+G3uWpYRrluzh1yWEU2+KrTSeE7mHKRSHePSWOrxKHwisLGkHn9O\nN+Prw1aIFFAyDJ7aWokLksOQU26jqXKl4+XEpHL2OEXJEoKbIqMag++9oognrNXCkm2VbNCMw1Ei\nzDIYjjGPDVKp3CksY3/+xyrNmEQd2V7hQnJCJKLDEgY2WAkAiBFmzwkzZ4UKyzCYPzur8eQ1exeh\nKPtbAXxACNEH3jcDuL77pnTqeO0t7M9Lb83MHDpcZk5JIptXLjY/lRLFwBzeHtcDANQsI16WbgZL\nCH4stcHjo7hzRArZWdksLs+rEIaq1Y5b9RFN8yIifpPRiQKYmRaFOqcXR1ocuHFIApb8dAQXqHVN\ntioeTfCxfzNGNV0XERlSNqgBKpXHyHK+3CqnTMG64fIB0ycO/o3hMTne4Pv8jasPvPJ+Tsw+u4e7\n86ZxTXMvHSJlnDo79HhZoJRi3weLU0hbrWHkxCnMri3fifuK88IGX/dYKXD0SVdW79wfLpf1Hx8b\nyeyqbkG+1Ymr+seCJZB9eqCWtjS57YMUStu/kiw1xytrD6VEwzEYGKHDuqJ6DIzQYVdNC4wCY49x\nyTy7Dzi4wTKV84HkmN+07QyOEIzWaFpzW1zGDd420uD00dEaTav8OCcElhB8kpx66LnampjdBxzq\noTKF8wHGWKNZspGa7kgasN/YX91Qq2g/PxMR7emxrq5ng1AOVe0BMIQQEhZ432kSjLNJ2dbV4ZlD\nh8vufvZ1AgBDzjuf+ddDt+BqqI75Y19qMDZffbgo+skLMpjPDtZi67VjkGbUgFLKXPLpz5gm0zVe\nGx7RqfkiUS53rz5Uq3txUiaS9Cos/OEgGIC+m5zyu8mmv2pq0q9tbTHEyuTeR2Jja+QMg3ynU/ls\nTU3MmEQTt3zGMADAtoom3P3RFkwec0vW8auTfinhnlcWzyj9I/9HEn+c3iAL9poSRfORX42vrMsh\nSpUaM667lblrxliTraakZu6V9Ras9Zs0tSoVUVLibXXzCgaEPHheKv6WnQIASDZoyI6COn5RbHyn\nJ3AHqFQum09Ao9uLW7MS8XlhDew+Ae+lJJdmqTUntG0XulzyV+qs0QBwV5S5NkOl8tb7fOzyhvrw\nn5wO476bLiAaGQe7lydDl201Frpd1RlK1TH9aViWPhH323k1vVZ2ILqD89gyy43Z06+tzD6+Hgja\nDa9d8RTQmwjFG0cJ4AoAyQBY4n8epJTSxd08t5Dh3U7WnJLUvoSIjE1Am9v7G5PIYLXa/VZi8qGl\nP5fFu3lBm6BTAfAfN0/Sq9BmE064pR8rl/vGGYxY8tMR+AQRGSYN5MDv7tA/WFEet6q1KXpkrA55\nza1YU9gS9UBkdNmTdTUpsTolGWJQt885Sa9CW5NdAEXXuBVIdDm9QRZ8LjurNYSLSpWaBQClWgOt\nIVz0OW3shIWr1YxPcAKAnGHof5JTCx+tqEzc53Lqrx+c0L6MTtarsUkUT3gf8pSykXK5sK2iif36\nsBUmpQyRcrngE+kJ22y32dRzS4sGDAiERLj4SGHki3GJh5+01qQkG9WMXikjGplfHWnlHCKUcrGV\nP7E8nowbi5fl4sljy4Q7p2QFr+sNLNPxKQAAOt00AxBh7v4nhAarIguh7aGeNqGYcb4G0AJ/kuUe\nGeYzatDYts0fPBE9ePQEJiouASuXPEzP12pbOqs7QadzTNDpCmeXHOl37+YC7cKxaWRvnQ3fFdfj\nZkvab/xug0wJ07d9UVkW/f6MoUxSmBoP/m8/vSBM3+kYQf7T0hT91ORE9AtXgRcp/r6+hHukpipl\n7eyRDKXANWt248KkcAT7m6DVtaz7OD58+pzKARHmk+f4lDjj9HhZCItPdzlsNnHdh28zY6bOJDkb\n11CHzSa+vm/lALDsMbljzTIZ/3ZiSvEbddaIp7YfTkgzqBkAeGr7YfFqtf6EpsKBKpXLKwjiTQMT\nmMszYsjqwhr6+q5ScaBKdUKPmPurKywzM0yYOzQSALAyrx6PHqmyzB+ayN4/2oLzVm7HK7mluCIj\nGqsLa6jN4/vd/k4H9tXv21fy0Z18brojacDxZcebhrqTzOaDwf2fbolLFYqyj6OUTuuOwbuK8H7D\nHakzbyv5aOGtqW1urzBBp2t5wWz+3QNBbyUkF91TVZ5ywcocrYlj+X/HJ5b1V6lO+Ag6XqdzPGaO\nKfnb+n0JdkFgJ2h1Lc/FnviEqVMU4RMoUo3+JCIcQ5BmUqKyrY0ZGhUGjmHw0oWZuHH9Xnh5UbxQ\nF9b8XGx8WcKfvlftp/2lIGQ9kx4vC5xCRYfd/GzhhlXPW1a/+6pSExnnXjUgVq1k2d+cGg9yS2RU\nQ0utwF3++S9mAJitN1pvjoxqONEYGpalHyZZCu/fU2F5aWexMlmhcH+YZCkOep91houKXHq4sv19\nv3Alvi9qYYZH66HiWKy+LBvXr8vDMz8dQYZS6TpZf91B02tlv1lgRZ/Bc4Udfl275cclFGW/gxAy\nhFK6tzsm0FV8Ur8llYwcIBqtrj2h1DdxnPBOQnJRidcjj+RkvInjTnoKb7YpvGW2Kfx3V/NB1AwD\nvZwVVxU0MFcPikB5iwc7q+xIUio8z+8slj94XipJ0ashClT8KMlyMOia1vRa2QE80j+7oVaRLW0w\n9Th6hSzoYi2ekX9/o11xJa19KPtEih7wuxs+GB1Te60pvBEAEuRy38lcDfurVJ61qf1CfvpM4eSO\nL/Y3hQ2K8q9jvtjfBD1Yz2u/lMjHxxuZCJUcYRwrzjdF1CyMiZW8wrqBEwZCI4TkBy5ZAOkASgAE\nV770bCYvOZ4Txbv5PfY6ncr55SUZYAjT4uXJrRGRVfdHx1i7cl47bDb1/IqS/m1egXAMwaV6Q919\n0TG1CypK0w84XCoVy4iPRseWdeb9U/vItGwQOPuKOacnB0L7o7IQ6OOsBEILRTYcgkD+Wl6SXuBy\naQFgoEplX56YcrgrV9ZOUcTUwwcHlbg9CgBIUSrc69MyCh6urkz+urk5HABmGY0N/4pPLDs+l0Rf\nI2bP7jMeCG1mVw/WHUwNX5kFnJqiB4A7KsvSHhiXxv11cAKqbG5M/uSn2FEarf18ne6E8fBPlbE6\nnfNg5pBfW3ie0TKMGIymuTEtY79bFImcEHqiFdS6j+MxfU6lZM7pGfQKWTieUBdBS6w1sQaTSnt4\nxnkEAP66Nk/7tLUm9snY+C47pa1mGPyYkbnPGTiFqA7IwisJSaUvxSeWAoCsjyv57ub3ctCWUkpL\n4d/LaOrwvgmA+cxM7+RMXVHABD0MQoWnFMVOt2LeQH+mmjidElOSwpHvdHaLcjVwXLuiD6JkmBMq\neiDgTdCrY+ydO/QWWejIqTztFnrd2jmD4oiMZSBjGcwZFEcOet3ak7U7HdQM067og8gIkRT9GSAU\nV583AXRMPu0IlJ11gjd0Rw+DUOAIgVkh5/9b5t+Dsnl55FQ1I0Wh6FHxL9Z9HI8z5QkgERI9VhY6\nI9Sn3ThW7t5UUk8ppaCUYlNJPY3nZL06wqPEbwkpxDGlVOxwLRBCeowv+Kmab4I8HxdftODbvemZ\n4Vpa3OokEzS6pov1+h51SObG4mW5tZiW3WBVSK6YPYSeLAtBOmZhC4VHomMqryw+optQvUNGAXjd\nvO/zlLQuM+FI9AxCUfYlhJC/AXgD/mMHtwEo7tZZhcALax/KPlXzTUcmh+ntm9Mz8nc7nepoXZQv\n6A3T01j3cTymXyvZ7nsIPVIWOuNUFkGRMpmwIS2jYLvdpgGAcVqdQ8l0XXAxiZ5BKGacWwGMA1AF\noBLAeQBu7s5JnYzgpuypmm+OJ0Yu5y8xGNp6qqIHArZ7AA1WxW8OfEiccXqcLBxPMPjfqbZTMgyd\nHKa3Tw7T2yVFf24SSmwcK4Crz8BcQuZ0NmV7M5JnTs+gJ8pCR4KLoI7B/yQkgoQSGycKwAL444EE\n61NK6fxunNcJ6apVfW/ixuJlubVUst2fbXqaLBzP1BUFzOnuYUmc+4QaG2crgE04GvjrrD3m9bVV\nfZDA6l558poS3UiPkoWOnOqmrETfIxRlr6KUPtjtMzkF+tKqPkhwdX+259HH6XGy0BFpVS/xe4Sy\nQbuWEDK922cSAkETTl9G2qg9q/QYWeiItKqXCIVQlP3fAawhhLgJIbbA66z4o/dVE06QdR/HA7R7\nwp9KhESPkYUgfx738wBAWtVLnJyTKntKqZZSylBKlZRSXeAVdiYm1xl90YQTJOiGKXF26GmyAAAT\nFq5WS4peIhRCyoxCCDESQkYRQs4PvkJp15WPl5IJ5yiSKefscbqyICFxtjmpsieELIDfA2EjgCcA\nbACwKJTOvQsmYPz/8rpM4fdlE06QdR/Hn+0p9Fn+iCx0B6d7gEqibxLKyv5uAKMAlFJKJwHIAtAa\nSucR0Z7cS66txJKYddIGUlci2e3PFqctC92FdIBKIlRCUfZuSqkL8CdcppQeBJAR6gDBbEtLYtZl\n/xFTzNQVBUxfttcHkez2Z5U/JAtdieSBI3GqhKLsKwghRgBfAdhECPkGQOmpDBJU+BPlJkZa5Uv0\nYv6wLHQl0sasxKkQSmycywKXiwghWwCEAfjuVAcKKvyGWkX2kph12Tstkc6vt4/q8yt1id5DV8nC\nH0Va1UucDiHFsw9CKd3yRweMiPbkNlgVWaOL69WjY9ZlpzcXYrb7XmmFItGr6ApZ+CNIq3qJU+WU\nlH1XEWH2tG8qHUZG9hL4TTuRLQIWuGZJN7GExAmQXJAlTpezouw70m7esSoG1BtY9RKDX/Fv8TaJ\nGxvnSZ4GEhIdkCJbSpwuIR2qOhNEmD0HIqI9uRHRnlwQiBPlJiZ4FFziKMssN0r2WgkJiVOGUNo9\nEVoJIT0i9KtE74FSSs72HLoLSR4kToXukIVuU/YSEhISEj2HHmPGkZCQkJDoPiRlLyEhIdEHkJS9\nhISERB/gnFX2hBB7Tx+/q+ZICLmeEBITQr3lhJArumJMid6DJAud1utzsnDOKnucQiJoEuAsjN9V\nu+N/BRAb4njSjnzfQ5KFzsfrU7JwLit7AAAhREsI+Z4QkksI2UsImRUoTyaEFBJCVgDIB5BACHmU\nEHKQELKNEPIxIeS+QN1hhJCfCCF5hJDVhBBDJ+OkEEJyAmM8edxn/0cI+TnQftFJ5pscmMOHhJD9\nhJDPCCGqwGfZhJAthJBfCCHfEUKiCSFXAhgB4CNCyK+EECUh5LHAePmEkLeOHyLQ1+RA/b2EkGWE\nEPnp/Q9L9BYkWejjskApPSdfAGyBf1kAusB1BIDDgetkAAKAUYH3IwHsBiAHoAVwCMC9gc/2ApgQ\nuH4CwNJOxvsGwNzA9e0dxp8K4K3ANQNgbYe+bJ30kwxABDAm8H4ZgPvgP+28A0B4oPxqAMsC1/8D\nMLxDH8YO1x8AmBG4fh/A5QCUAMoBpAXKVwC4+2z/zaSXJAvH9SPJQhe+zvmVPfw31dOEkDwAmwDE\nEkKiAp+VUUp/DlyPA/AVpdRLKbUDWAMAhJAwAHpK6bZAvRUAOktFNxbAJ4HrDzuUTwUwlRCyG0Au\ngH4A0k4y5wpKaU6HvsbDHzd9IIDvA339A0BchzYdH70vDKy+9gK4EEDmcfUyAJRQSo+c5DtJnFtI\nstCHZeGsx8Y5A8yBfxUznFIqEEJK4P81BwBHh3oUx94kJ7Jbno4982lK6dunUL+jLZHg6NwKKKVj\nf68NIUQJ4DUA2ZTSKkLI4zj6fTvrPziGxLmPJAt9WBb6wso+DEBd4OaeBCDpBPW2A5hJCFEQQrQA\npgMApbQNQDMhZHyg3jwAW07Q/i+B6zkdyjcAmE8I0QAAISSOEBJ5kjknEkLOC1xfC2AbgEIAkcFy\nQoiMEBJcpdgC3xM4ejM3Br7H7OP6poG+kgkhqSf5ThLnFpIsHEufkoVzeWUf/MX+CMCawGPcLwAO\ndFIHlNJfiD/z0F4AVvg3qoL5Ra8H8CYhRA2gCMANnYx3N4CPCSEPAvg62DeldBMhZACAHOJ3crDD\nLwD1OLE3QCGAOwgh7wEoAPAGpdQX2IB6mRCih/9vtxTAfgDLA/Nzwv8I/Q6AfQBqAez8zX8MpR5C\nyA0APiOEcAB+BvDmCeYi0fuRZEGSBSk2TkcIIRpKqSNwI/8AYAGldM8ZnkMygDWU0sFnclwJiY5I\nsnDucS6v7E+HtwOPg0oAy8/0zd0B6RdY4mwjycI5hrSyl5CQkOgD9IUNWgkJCYk+j6TsJSQkJPoA\nkrKXkJCQ6ANIyl5CQkKiDyApewkJCYk+gKTsJSQkJPoA/w+ztinF4QyfPQAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# importanto SVM\n",
"from sklearn import svm\n",
"\n",
"# importando el dataset iris\n",
"iris = datasets.load_iris()\n",
"X = iris.data[:, :2] # solo tomamos las primeras 2 características\n",
"y = iris.target\n",
"\n",
"h = .02 # tamaño de la malla del grafico\n",
"\n",
"# Creando el SVM con sus diferentes métodos\n",
"C = 1.0 # parametro de regulacion SVM \n",
"svc = svm.SVC(kernel='linear', C=C).fit(X, y)\n",
"rbf_svc = svm.SVC(kernel='rbf', gamma=0.7, C=C).fit(X, y)\n",
"poly_svc = svm.SVC(kernel='poly', degree=3, C=C).fit(X, y)\n",
"lin_svc = svm.LinearSVC(C=C).fit(X, y)\n",
"\n",
"# crear el area para graficar\n",
"x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n",
"y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n",
"xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n",
" np.arange(y_min, y_max, h))\n",
"\n",
"# titulos de los graficos\n",
"titles = ['SVC con el motor lineal',\n",
" 'LinearSVC',\n",
" 'SVC con el motor RBF',\n",
" 'SVC con el motor polinomial']\n",
"\n",
"\n",
"for i, clf in enumerate((svc, lin_svc, rbf_svc, poly_svc)):\n",
" # Realizando el gráfico, se le asigna un color a cada punto\n",
" plt.subplot(2, 2, i + 1)\n",
" plt.subplots_adjust(wspace=0.4, hspace=0.4)\n",
"\n",
" Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n",
"\n",
" Z = Z.reshape(xx.shape)\n",
" plt.contourf(xx, yy, Z, cmap=plt.cm.Paired, alpha=0.8)\n",
"\n",
" # Graficando tambien los puntos de datos\n",
" plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Paired)\n",
" plt.xlabel('largo del petalo')\n",
" plt.ylabel('ancho del petalo')\n",
" plt.xlim(xx.min(), xx.max())\n",
" plt.ylim(yy.min(), yy.max())\n",
" plt.xticks(())\n",
" plt.yticks(())\n",
" plt.title(titles[i])\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### KNN o k vecinos más cercanos\n",
"\n",
"Este es un método de clasificación no paramétrico, que estima el valor de la probabilidad a posteriori de que un elemento $x$ pertenezca a una clase en particular a partir de la información proporcionada por el conjunto de prototipos.\n",
"La regresión [KNN](https://es.wikipedia.org/wiki/K-vecinos_m%C3%A1s_cercanos) se calcula simplemente tomando el promedio del punto k más cercano al punto que se está probando. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"['sepal length (cm)',\n",
" 'sepal width (cm)',\n",
" 'petal length (cm)',\n",
" 'petal width (cm)']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Creando el dataset iris\n",
"iris = datasets.load_iris()\n",
"X = iris.data\n",
"y = iris.target\n",
"iris.feature_names"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"El error medio del modelo es: 0.02\n"
]
}
],
"source": [
"# importando KNN \n",
"from sklearn.neighbors import KNeighborsRegressor\n",
"\n",
"knnr = KNeighborsRegressor(n_neighbors=10) # Creando el modelo con 10 vecinos\n",
"knnr.fit(X, y) # Ajustando el modelo\n",
"\n",
"# Verificando el error medio del modelo\n",
"print(\"El error medio del modelo es: {:.2f}\".format(np.power(y - knnr.predict(X),\n",
"2).mean()))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### K-means\n",
"\n",
"[K-means](https://es.wikipedia.org/wiki/K-means) es probablemente uno de los algoritmos de agrupamiento más conocidos y, en un sentido más amplio, una de las técnicas de aprendizaje no supervisado más conocidas.\n",
"[K-means](https://es.wikipedia.org/wiki/K-means) es en realidad un [algoritmo](https://es.wikipedia.org/wiki/Algoritmo) muy simple que funciona para reducir al mínimo la suma de las distancias cuadradas desde la media dentro del agrupamiento. Para hacer esto establece primero un número previamente especificado de conglomerados, K, y luego va asignando cada observación a la agrupación más cercana de acuerdo a su media. Veamos el ejemplo"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n9m7QCesAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Creando el dataset\n",
"grupos, pos_correcta = datasets.make_blobs(1000, centers=3,\n",
"cluster_std=1.75)\n",
"\n",
"# Graficando los grupos de datos\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"colores = ['r', 'g', 'b']\n",
"\n",
"for i in range(3):\n",
" p = grupos[pos_correcta == i]\n",
" ax.scatter(p[:,0], p[:,1], c=colores[i],\n",
" label=\"Grupo {}\".format(i))\n",
"\n",
"ax.set_title(\"Agrupamiento perfecto\")\n",
"ax.legend()\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"KMeans(copy_x=True, init='k-means++', max_iter=300, n_clusters=3, n_init=10,\n",
" n_jobs=1, precompute_distances='auto', random_state=None, tol=0.0001,\n",
" verbose=0)"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# importando KMeans\n",
"from sklearn.cluster import KMeans\n",
"\n",
"# Creando el modelo\n",
"kmeans = KMeans(n_clusters=3)\n",
"kmeans.fit(grupos) # Ajustando el modelo"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"array([[ 9.11516192, 9.17538524],\n",
" [-4.4747179 , 5.36904317],\n",
" [ 6.23263898, 3.44671141]])"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# verificando los centros de los grupos\n",
"kmeans.cluster_centers_"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nwZvbJhd7pE9JkHvCPb8d2FVqt0xRijLdYPUycEXg+RVI7yqEMeYLgaf7rLX7pnlcRakDLoR0O07E\ncHYrpO+ADUvhKiRQ7Qz0lvJFD6UN172+DXZeG0ke3qbzUgqAMaYH6Jny+6cpsJiDCCyuA14BfoIK\nLBSlJCrhUhHeX3xQqNT6qbRB/k7ufqHMPsqNDdO2WzLG3IAvXX/YWvufp9MgRZktlGpjdKH3VUkq\nHZCV+uGC2y1Za/uB/unuR1FmG5VN/FU3CKW+UQcLRakh9S/d1sRfpTKo67qi1AFJHQYETfxV4rng\nc1aTHkCDlaJcEDQoKDMJDVaKoihK4ik3NqQm30RRFEVRaosGK0WZARhj1hqTGZDFrK11exTlQqPD\ngIqScJIsnlCUqaJl7RWl7tAcKkXRYUBFURQl8WjPSlEST/mJtSpjV+oNnbNSlBlAOcFH57iUmYDm\nWSnKLEfNY5WZgOZZKYqiKHWHzlkpSt2h5rFK/aHDgIpSh6jAQkk6OmelKIqiJB6ds1IURVHqDg1W\niqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIk\nHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUo\niqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLR\nYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIkHg1WiqIoSuLRYKUoiqIknikHK2PM\nF4wxLxljDrplXSUbpiiKoige0+lZWWC7tfZqt+ypVKNmEsaYnlq3oZrU8/nV87mBnt9Mp97Pr1ym\nOwxoKtKKmU1PrRtQZXpq3YAq0lPrBlSZnlo3oMr01LoBVaan1g1IEtMNVv/RGPMzY8zDxpj2irRI\nURRFUSIUDVbGmKeMMYdjlg8DXwWuBFYCvwa2XYD2KoqiKLMQY62d/k6MeRvwHWttV8xr0z+AoiiK\nUndYa0ueSpoz1YMYYy611v7aPb0ZODzdxiiKoihKHFMOVsCXjDErEVXgC8CfVaZJiqIoihKmIsOA\niqIoilJNquJgYYz5iDHmF8aYCWNMd2D924wx5wOJxA9V4/jVptD5udf+3Bhz1BhzxBhzfa3aWCnq\nNfnbGLPOXaOjxpjP1ro9lcYY8ytjzNPumv2k1u2ZLsaYR4wxJ4wxhwPrOp0I7DljzMBMVSQXOLe6\n+d4ZY64wxvyLu2f+3BjT69aXdf2qZbd0GJnH+t8xrx0LJBLfWaXjV5vY8zPGLAc+CiwH1gEPGWNm\nuqVV3SV/G2MagK8g12g58DFjzLLatqriWKDHXbP31boxFWAXcr2C3AM8Za19J/A993wmEndu9fS9\nGwM+ba1dAawC7nLft7KuX1VupNbaI9ba56qx7yRQ5PxuAv7RWjtmrf0VcAyohxtFvYlk3of8aPqV\ntXYM+AZy7eqNurlu1tofAG9EVn8YeNQ9fhT4owvaqApR4NygTq6ftfZVa+0h9/gM8AxwOWVev1r8\n6r/SdWv3GWOurcHxq8llwEuB5y8hF2WmU2/J35cDLwae18t1CmKB7xpj9htj1te6MVViobX2hHt8\nAlhYy8ZUgXr73nlpTlcDP6bM6zcdI9tCCcMfKvK2V4ArrLVXAxuB/2aMmT/VNlSTKZ5fHIlXsMzC\n5O/EX5MKsNp9z25Ahl1+r9YNqiZWlGL1dF3r7ntnjJkHfAv4lLX2dPC1Uq7flKXr1to1U3jPKDDq\nHh8wxvwSeAdwYKrtqBZTOT/gZeCKwPNFbl2iKfVcjTF/B3ynys25EESv0xWEe8QzHi8H0lr7mjFm\nNzL0+YPatqrinDDGXGKtfdUYcynwm1o3qFJYa3PnUg/fO2NMIxKo/sFa+09udVnX70IMA+bGXY0x\nC9zkNsaYJUigev4CtKGaBMeVnwD+xBgz1xhzJXJ+M1qJ5f6JPAomf88w9gPvcOrUuYgo5okat6li\nGGNavBELY0wrcD31cd2iPAHc7h7fDvxTkW1nFPX0vTPGGOBh4F+ttQ8EXirv+llrK74gH+6LwHng\nVaDfrb8V+DlwEBgEbqzG8au9FDo/91ofIqw4AqytdVsrcK5fA54Gfub+mRbWuk0VOq8bgGfdtfrz\nWrenwud2JXDILT+vh/MD/hGZRhh13707gE7gu8BzwADQXut2VujcPl5P3zvgWiDr/h8PumVduddP\nk4IVRVGUxDPTc4AURVGUWYAGK0VRFCXxaLBSFEVREo8GK0VRFCXxaLBSFEVREo8GK0VRFCXxaLBS\nFEVREo8GK0VRFCXx/H9z9yAbRnT/GAAAAABJRU5ErkJggg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Graficando segun modelo\n",
"f, ax = plt.subplots(figsize=(7, 5))\n",
"colores = ['r', 'g', 'b']\n",
"\n",
"for i in range(3):\n",
" p = grupos[pos_correcta == i]\n",
" ax.scatter(p[:,0], p[:,1], c=colores[i],\n",
" label=\"Grupo {}\".format(i))\n",
"\n",
"ax.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], \n",
" s=100, color='black', label='Centros')\n",
"\n",
"ax.set_title(\"Agrupamiento s/modelo\")\n",
"ax.legend()\n",
"\n",
"plt.show() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Con esto doy por concluída esta introducción al [Machine Learning](https://es.wikipedia.org/wiki/Aprendizaje_autom%C3%A1tico) con [Python](http://python.org/), espero les sea útil.\n",
"\n",
"Saludos!\n",
"\n",
"*Este post fue escrito utilizando IPython notebook. Pueden descargar este [notebook](https://github.com/relopezbriega/relopezbriega.github.io/blob/master/downloads/MachineLearningPython.ipynb) o ver su version estática en [nbviewer](http://nbviewer.ipython.org/github/relopezbriega/relopezbriega.github.io/blob/master/downloads/MachineLearningPython.ipynb).*"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.3+"
}
},
"nbformat": 4,
"nbformat_minor": 0
}