Saltar la navegación

4.3. Diario de navegación

Rétor diceEn los apartados anteriores has aprendido lo que es una clase y su realización en un objeto. Te has familiarizado además con la especificación en código Python de ambos y cómo podemos utilizar las propiedades que nos ofrece la codificación para crear herencia y polimorfismo. ¡Pero no todo es crear clases desde cero! Python también nos ofrece clases ya preexistentes que podemos utilizar directamente en nuestros programas si necesitamos objetos con esas características: las Bibliotecas de Clases. Con algunas de ellas ya has trabajado en temas anteriores sin saber que estabas utilizando POO. Ahora vamos a ver tres bibliotecas más de gran utilidad. Es como un diario de navegación del programador de Python en este mar de código que creamos para nuestro reto.

1. Ya existe...¡puedo reutilizar!

Imagen en la que aparece el logo de Python y los losgos de las principales librerías que son Numpy, SciPy, Pandas, Matplotlib y JupyterVamos a ver que a veces un programa necesita utilizar recursos que ya se encuentran implementados y podemos reutilizarlos sin tener que crear de nuevo todo el código. Estamos hablando en estos casos de las bibliotecas (o librerías) en Python. Recordamos:
Para incluir la biblioteca que necesites a tu programa debes usar el comando import y si sólo necesitas incluir una función concreta se usa:

from ... import ...

En recursos anteriores hemos conocido y trabajado algunas de ellas, como pycryptodome, RSA, random, tkinter, pillow o time.
¡Vamos a practicar más con ellas!

Trabajad en grupo y consultando la documentación a la vez que hacéis pruebas en vuestro entorno de programación, responded a las siguientes preguntas:

¿Qué función se está realizando con el código siguiente?

import random
dice = ["1","2","3","4","5","6"]

Recuerda hacer siempre pruebas en tu entorno de desarrollo Python: ejecuta estos comandos para importar la librería, declarar la/s variable/s y siempre hacer pruebas posteriores de valores por pantalla.

¿Qué funciones se están realizando con el código siguiente?

import tkinter
ventana=tkinter.Tk()
ventana.title('Valor del dado')
tirada=random.choice(dice)
resultado= tkinter.Label(ventana, text="Ha salido el valor: "+tirada)
resultado.pack()

Recuerda hacer siempre pruebas en tu entorno de desarrollo Python: ejecuta estos comandos para importar la librería, declarar la/s variable/s y siempre hacer pruebas posteriores de valores por pantalla.

Usando la bibliteca time mostrad por pantalla la hora actual

En grupos de 3 vais a repartir el trabajo de manera que cada uno crearéis 3 ficheros según lo pedido en cada uno de los puntos siguientes (cada punto es un fichero):

  1. Tres comandos: Importar la biblioteca random, crear una variable llamada dado que contenga una lista de valores del 1 al 6 y crear la variable tirada que contendrá una elección al azar de uno de los valores de la variable dado.
  2. Tres comandos: Importar la biblioteca tkinter, crear la variable ventana de clase Tk y darle el título "Valor del dado".
  3. Dos comandos: Crear la variable resultado que contendrá una etiqueta (Label, de la biblioteca tkinter) que tomará como ventana raíz la variable ventana ya creada por el compañero 2. La etiqueta mostrará el texto: "Ha salido el valor: X", donde X es el valor de la variable tirada ya creada por el compañero 1. Después habrá que mostrar la etiqueta resultado por pantalla llamando a la función pack().

¿Y cómo se interconecta todo esto?

Lumen dicen Investiga tu propia ayuda.

2. Importa, accede, crea con las librerías

A continuación vamos a conocer tres librerías muy conocidas y útiles de Python que les vendrán bien a tus programas:

Datetime

La librería Datetime se utiliza para trabajar y manejar fechas en Python. El uso de esta librería permite realizar con las fechas acciones como:

Imagen de un reloj y de un día del calendario
  • Acceder a las distintas partes que componen una fecha: año - mes - día - hora - minutos - segundos.
  • Recibir cadenas de texto que representan una fecha y convertirlas en un objeto de algunas de las clases que vamos a conocer para trabajar con las fechas.
  • Mostrar las fechas de nuestros programas con distintos formatos de representación en pantalla.
  • Sumas, restar y comparar fechas.

Clases que incluye

En esta librería podemos encontrar definidas y listas para usar las clases:
  • date(año, mes, día): crea un objeto que almacena una fecha con los datos indicados.
  • time(hora, minutos, segundos, microsegundos): tipo de objeto que representa un tiempo con los datos indicados.
  • datetime(año, mes, dia, hora, minutos, segundos, microsegundos): crea un objeto que representa una fecha y hora.
Veamos código de ejemplo que crea estos objetos. ¡No olvides probarlo!
>>>from datetime import date, time, datetime
>>>date(2022,06,23)
datetime.date(2022, 6, 23)
>>> time(11,51,02)
datetime.time(11, 51, 2)
>>> datetime(2022,06,23,11,51,02)
datetime.datetime(2022, 6, 23, 11, 51, 2)
>>> print(datetime(2022, 6, 23, 11, 51, 2))
2022-06-23 11:51:02

Algunas de sus funciones

  • date.today(): Devuelve en un objeto date la fecha del sistema en el que se ejecuta.
  • datetime.now(): Devuelve en un objeto datetime la fecha y la hora del momento.
  • fecha.year: Devuelve el año del objeto fecha que debe ser de clase date o datetime.
  • fecha.month: Devuelve el mes del objeto fecha que debe ser de clase date o datetime.
  • fecha.day: Devuelve el día del objeto fecha que debe ser de clase date o datetime.
  • fecha.weekday(): Devuelve el día de la semana del objeto fecha que debe ser de clase date o datetime.
  • tiempo.hour: Devuelve las horas del objeto tiempo que debe ser de clase time o datetime.
¡Mira algunos usos!
>>> from datetime import date, time, datetime
>>> print (date.today())
2022-07-02
>>> fecha=datetime.now()
>>> fecha.year
2022
>>> fecha.day
2
>>> fecha.hour
19
>>> fecha.minute
17
>>> fecha.second
42

NumPy

En Python también se han desarrollado algunas bibliotecas externas que es necesario instalar en el sistema para su uso. Estas bibliotecas nos ofrecen clases y funciones de gran utilidad y están disponibles en un catálogo online ofrecido a modo de repositorio y llamado Python Package Index. Para instalar estas bibliotecas externas se utiliza el comando pip, que ya has utilizado en un recurso anterior y que recordamos aquí.

Logo de NumPyUna de estas bibliotecas es NumPy. NumPy es una biblioteca de Python especializada en el análisis de datos numéricos y que nos permite trabajar con matrices: son llamados objetos arrays que manipulan una colección de datos en varias dimensiones:

Vemos un cubo en 3D formado por unión de pequeños cubos unidad en el que el alto son las filas, el ancho las columnas y el fondo es una tercera dimensión de la tabla.

Clase y objeto array

Para crear un objeto de la clase array, tras importar la biblioteca NumPy a la que se le suele asignar el alias np (nombre acortado), usaremos el comando:

np.array(secuencia)

Este comando crea un array a partir de secuencia, que será una lista o tupla. El número de dimensiones dependerá de las tuplas o listas anidadas en secuencia, cuyos elementos deben ser del mismo tipo.

¡Observa los tres casos más habituales!

>>> import numpy as np
>>># Array de una dimensión: vector >>> vector = np.array([1, 2, 3]) >>> print(vector) [1 2 3] >>># Array de dos dimensiones: matriz >>> matriz = np.array([[1, 2, 3], [4, 5, 6]]) >>> print(matriz) [[1 2 3] [4 5 6]] >>># Array de tres dimensiones: cubo >>> cubo = np.array([[[1, 2, 3],
[4, 5, 6]], [[7, 8, 9],
[10, 11, 12]]]) >>> print(cubo) [[[ 1 2 3] [ 4 5 6]] [[ 7 8 9] [10 11 12]]]
Acceso a los atributos:
  • a.ndim: Devuelve el número de dimensiones del array a.
  • a.shape: Devuelve una tupla con las dimensiones del array a.
  • a.size: Devuelve el número de elementos del array a.
  • a.dtype: Devuelve el tipo de datos de los elementos del array a.

Algunas de sus funciones

  • np.empty(dimensiones): Crea y devuelve un objeto array vacío con las dimensiones especificadas en la tupla dimensiones.
  • np.zeros(dimensiones): Crea y devuelve un objeto array con las dimensiones especificadas en la tupla dimensiones cuyos elementos son todos ceros.
  • np.ones(dimensiones): Crea y devuelve un objeto array con las dimensiones especificadas en la tupla dimensiones cuyos elementos son todos unos.
  • np.full(dimensiones, valor): Crea y devuelve un objeto array con las dimensiones especificadas en la tupla dimensiones cuyos elementos son todos valor.
  • np.identity(n): Crea y devuelve un objeto array matriz identidad de dimensión n.
  • np.arange(inicio, fin, salto): Crea y devuelve un objeto array de una dimensión cuyos elementos son la secuencia desde inicio hasta fin tomando valores cada salto.
  • np.linspace(inicio, fin, n): Crea y devuelve un objeto array de una dimensión cuyos elementos son los n valores equidistantes desde inicio hasta fin.
  • np.random.random(dimensiones): Crea y devuelve una referencia a un array con las dimensiones especificadas en la tupla dimensiones cuyos elementos son aleatorios.
>>> import numpy as np
>>> print(np.zeros(3,2)) [[0. 0. 0.] [0. 0. 0.]] >>> print(np.idendity(3)) [[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]] >>> print(np.arange(1, 10, 2)) [1 3 5 7 9] >>> print(np.linspace(0, 10, 5)) [ 0. 2.5 5. 7.5 10. ]

Matplotlib

Gráfica de línea en la que se aprecia una subida, una bajada y otra subidaMatplotlib es una biblioteca completa para crear gráficas estáticas, animadas e interactivas en Python. Vamos a conocerla aquí someramente, pero siempre podéis investigar más detalles sobre ella en el enlace proporionado y ¡no te olvides de hacer pruebas en tu entorno de desarrollo!

Creando gráficos

Para crear un gráfico con matplotlib se recomienda seguir los siguientes pasos:

  1. Importar el módulo pyplot. (Tendrás que instalarlo con pip, si no lo has utilizado previamente).
  2. Definir la región que contendrá el gráfico y los ejes sobre los que se dibujarán los datos. Para ello se utiliza la función subplots().
  3. Dibujar los datos sobre los ejes. Para ello se dispone de distintas funciones dependiendo del tipo de gráfico que se quiera.
  4. Personalizar el gráfico con multitud de funciones que permiten añadir un título, una leyenda, una rejilla, cambiar colores o personalizar los ejes.
  5. Guardar el gráfico. Para ello se utiliza la función savefig().
  6. Mostrar el gráfico. Para ello se utiliza la función show().

¡Crea tu primer gráfico!:

#Importa el módulo pyplot con alias plt:
import
matplotlib.pyplot as plt
# Crear la figura y los ejes: fig, ax = plt.subplots()
# Dibujar puntos: ax.plot([1, 2, 3, 4], [1, 2, 0, 0.5])
# Guardar el gráfico en png: plt.savefig('Grafico-lineas.png')
# Mostrar el gráfico: plt.show()

Tipos de gráficos

Matplotlib permite crear distintos tipos de gráficos variados. Aquí tienes el tipo y el comando a utilizar. En todos ellos (x,y) representan a las coordenadas de la lista x en el eje X y las coordenadas de la lista y en el eje Y:

Aquí puedes consultar una galería de gráficos de muestra y ejemplo de la propia biblioteca.

Personalizando su aspecto

Los gráficos que crees se pueden personalizar y ¡puedes cambiar el aspecto de casi todos sus elementos!

  1. Cambiar el color: Utiliza el parámetro color=nombre-color, de la lista de colores posibles.
  2. Cambiar los puntos marcadores: marker=nombre-marcador, de la lista de marcadores disponibles.
  3. Cambiar el estilo de línea: linestyle=nombre-estilo, de la lista de líneas disponibles.
  4. Poner un título: ax.set_title(titulo, loc=alineacion, fontdict=fuente)loc indica la alineación del título: 'left' (izquierda), 'center' (centro) o 'right' (derecha); fontdict indica las características de la fuente (tamaño: fontisize, grosor: fontweight, color: color).
  5. Nombrar los ejes con:
    1. ax.set_xlabel(titulo, loc=alineacion, fontdict=fuente) para título de eje x.
    2. ax.set_ylabel(titulo, loc=alineacion, fontdict=fuente) para título de eje y.
    3. ax.set_xlim([limite-inferior, limite-superior]): Límites que se muestran en el eje x de ax.
    4. ax.set_ylim([limite-inferior, limite-superior]): Límites que se muestran en el eje y de ax.
    5. ax.set_xticks(marcas): Dibuja marcas en el eje x de ax en las posiciones indicadas en la lista marcas.
    6. ax.set_yticks(marcas): Dibuja marcas en el eje y de ax en las posiciones indicadas en la lista marcas.
    7. ax.set_xscale(escala): Establece la escala del eje x de ax, donde el parámetro escala puede ser 'linear' (lineal) o 'log' (logarítmica).
  6. Añadir una leyenda: ax.legend(leyendas, loc = posición)→Leyenda con los nombres indicados en la lista leyendas. Y loc indica la posición en la que se dibuja la leyenda y puede ser 'upper left', 'upper center', 'upper right', 'center left', 'center', 'center right', 'lower left', 'lower center', 'lower right'.
  7. Dibujar una rejilla con ax.grid(axis=ejes, color=color, linestyle=estilo), donde axis indica los ejes sobre los que se dibuja la rejilla y puede ser 'x', 'y' o 'both'.
¡Veamos aquí un ejemplo de gráfica personalizada y debajo su código!:
Gráfica personalizada con la temperatura por días. Se han incluido los datos de Cádiz y Sevilla
(Clic para ampliar)
Código de la gráfica personalizada:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
dias = ['L', 'M', 'X', 'J', 'V', 'S', 'D']
temperaturas = {'Sevilla':[40, 41, 42, 43, 41, 38, 38], 'Cádiz':[32, 33, 33, 33, 33, 31, 30]}
ax.plot(dias, temperaturas['Sevilla'], color = 'tab:purple',marker = '^', linestyle = 'dashed',
label='Sevilla')
ax.plot(dias, temperaturas['Cádiz'], color = 'tab:green',marker = 'o', linestyle = 'dotted',
label='Cádiz')
ax.set_title('Temperatura diaria', loc = "left", fontdict = {'fontsize':14, 'fontweight':'bold',
'color':'tab:blue'})
ax.set_xlabel("Días", fontdict = {'fontsize':14, 'fontweight':'bold', 'color':'tab:blue'})
ax.set_ylabel("ºC")
ax.set_ylim([25,45])
ax.set_yticks(range(25,45))
ax.legend(loc = 'lower right') #label indicados arriba
ax.grid(axis = 'y', color = 'gray', linestyle = 'dashed')
plt.show()

Un array es una estructura de datos de un mismo tipo organizada en forma de tabla o cuadrícula de distintas dimensiones. Las dimensiones de un array también se conocen como ejes.

Lumen dice Recuerda la instalación

Para las bibliotecas NumPy y Matplotlib te hemos indicado que se instalan con el comando pip. Concretamente has de ir a la consola del sistema (Terminal si estás en Linux, cmd si estás en Windows), si eres administrador en tu equipo y has instalado Python incluyéndolo en el path, debes ejecutar:

pip install numpy

Obtendrás la siguiente instalación:

Instalación de numpy 1

Si no dispones de Python en el path del sistema, debes ir a su directorio de instalación y ejecutar el comando:

python.exe -m pip install numpy

Resultando la misma instalación:

Instalación de numpy 2

Saber más en gráficas

En la siguiente galería de gráficos pueden apreciarse todos los tipos de gráficos que pueden crearse con esta librería y tienes a disposición multitud de ejemplos para consultar y practicar.

Motus dice Ha sido emocionante conocer…

¿Cómo te has sentido en este aparto? ¿Ha sido emocionante conocer las librerías más conocidas y útiles de Python? Una actividad de clase puede hacernos sentir de muchas maneras: insegura, feliz, triste, orgulloso…

Cómo nos sentimos ante una tarea hace que contestemos de una forma diferente. Por eso te invito a que, cuando te enfrentes a una tarea, primero pienses en qué te hace sentir a ti y a los demás para poder afrontarla mejor.

Conocer tus emociones y las de los demás te ayudará a:

  • Pedir ayuda porque en equipo siempre se trabaja mejor.
  • Relajarte para contestarla utilizando técnicas de relajación.
  • Pensar en cómo podrás contestarla antes de hacerlo para planificar bien tu trabajo. 

¡Haz caso a tus emociones!

3. Juega con las fechas

A continuación vas a encontrar varios ejercicios cuyas soluciones te guiarán para saber cómo mostrar fechas por pantalla en el formato deseado y cómo calcular intervalos de tiempo, lo que te resultará muy útil en un futuro para calcular plazos de tiempo.

Para los formatos, debes saber que Python utiliza los siguientes marcadores en la cadena que indica el formato:

%Y para el año completo
%y para los últimos dos dígitos del año
%m para el mes en número
%B para el mes en palabra
%d para el día
%A para el día de la semana
%a para el día de la semana abreviado
%H para la hora en formato 24 horas
%I para la hora en formato 12 horas
%M para los minutos
%S para los segundos
%p para AM o PM
%C para la fecha y hora completas
%x para la fecha completa
%X para la hora completa

Selecciona las respuestas correctas y pulsa sobre el botón "responder". ¡Adelante!

undefined
%E9%B0%F3%E1%FB%F5%FC%F3%E6%E7%E0%F3%B0%A8%B0%B0%BE%B0%F3%E7%E6%FA%FD%E0%B0%A8%B0%B0%BE%B0%F3%E7%E6%FA%FD%E0%C4%FB%F6%F7%FD%B0%A8%B0%B0%BE%B0%E6%EB%E2%F7%D5%F3%FF%F7%B0%A8%B0%C1%F7%FE%F7%F1%F1%FB%FD%FC%F3%B0%BE%B0%F7%FC%F6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%FB%F6%C4%FB%F6%F7%FD%B0%A8%B0%B0%BE%B0%E1%E6%F3%E0%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%FB%FC%E1%E6%E0%E7%F1%E6%FB%FD%FC%E1%D7%EA%F7%B0%A8%B0%B7%A1%D1%E2%B7%A1%D7%D3%B7%A0%A2%F1%FD%FC%E6%FB%FC%E7%F3%F1%FB%B7%D4%A1%FC%B7%A0%A2%E4%F3%E1%B7%A0%A2%F3%B7%A0%A2%F7%FC%F1%FD%FC%E6%E0%F3%E0%B7%A0%A2%E4%F3%E0%FB%FD%E1%B7%A0%A2%F7%F8%F7%E0%F1%FB%F1%FB%FD%E1%B7%A0%A2%F1%E7%EB%F3%E1%B7%A0%A2%E1%FD%FE%E7%F1%FB%FD%FC%F7%E1%B7%A0%A2%E6%F7%B7%A0%A2%F5%E7%FB%F3%E0%B7%D7%A3%FC%B7%A0%A2%E2%F3%E0%F3%B7%A0%A2%E1%F3%F0%F7%E0%B7%A0%A2%F1%B7%D4%A1%FF%FD%B7%A0%A2%B7%A1%D1%E1%E6%E0%FD%FC%F5%B7%A1%D7%FF%FD%E1%E6%E0%F3%E0%B7%A0%A2%F4%F7%F1%FA%F3%E1%B7%A0%A2%E2%FD%E0%B7%A0%A2%E2%F3%FC%E6%F3%FE%FE%F3%B7%A0%A2%F7%FC%B7%A0%A2%F7%FE%B7%A0%A2%F4%FD%E0%FF%F3%E6%FD%B7%A0%A2%F6%F7%E1%F7%F3%F6%FD%B7%A1%D1%BD%E1%E6%E0%FD%FC%F5%B7%A1%D7%B7%A0%A2%EB%B7%A0%A2%F1%B7%D4%A1%FF%FD%B7%A0%A2%B7%A1%D1%E1%E6%E0%FD%FC%F5%B7%A1%D7%F1%F3%FE%F1%E7%FE%F3%E0%B7%A0%A2%FB%FC%E6%F7%E0%E4%F3%FE%FD%E1%B7%A0%A2%F6%F7%B7%A0%A2%E6%FB%F7%FF%E2%FD%B7%A1%D1%BD%E1%E6%E0%FD%FC%F5%B7%A1%D7%B7%A0%D1%B7%A0%A2%FE%FD%B7%A0%A2%E3%E7%F7%B7%A0%A2%E6%F7%B7%A0%A2%E0%F7%E1%E7%FE%E6%F3%E0%B7%D7%A3%B7%A0%A2%FF%E7%EB%B7%A0%A2%B7%D4%D3%E6%FB%FE%B7%A0%A2%F7%FC%B7%A0%A2%E7%FC%B7%A0%A2%F4%E7%E6%E7%E0%FD%B7%A0%A2%E2%F3%E0%F3%B7%A0%A2%F1%F3%FE%F1%E7%FE%F3%E0%B7%A0%A2%E2%FE%F3%E8%FD%E1%B7%A0%A2%F6%F7%B7%A0%A2%E6%FB%F7%FF%E2%FD%BC%B7%A1%D1%BD%E2%B7%A1%D7%B7%A2%D3%B7%A1%D1%E2%B7%A1%D7%C2%F3%E0%F3%B7%A0%A2%FE%FD%E1%B7%A0%A2%F4%FD%E0%FF%F3%E6%FD%E1%B7%A0%D1%B7%A0%A2%F6%F7%F0%F7%E1%B7%A0%A2%E1%F3%F0%F7%E0%B7%A0%A2%E3%E7%F7%B7%A0%A2%C2%EB%E6%FA%FD%FC%B7%A0%A2%E7%E6%FB%FE%FB%E8%F3%B7%A0%A2%FE%FD%E1%B7%A0%A2%E1%FB%F5%E7%FB%F7%FC%E6%F7%E1%B7%A0%A2%FF%F3%E0%F1%F3%F6%FD%E0%F7%E1%B7%A0%A2%F7%FC%B7%A0%A2%FE%F3%B7%A0%A2%F1%F3%F6%F7%FC%F3%B7%A0%A2%E3%E7%F7%B7%A0%A2%FB%FC%F6%FB%F1%F3%B7%A0%A2%F7%FE%B7%A0%A2%F4%FD%E0%FF%F3%E6%FD%B7%A1%D3%B7%A1%D1%BD%E2%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F3%F0%FE%F7%B7%A0%A2%F1%FE%F3%E1%E1%B7%A1%D6%B7%A0%A0%F7%EA%F7%BF%E6%F3%F0%FE%F7%B7%A0%A0%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A3%A3%A7%E2%EA%B7%A1%D0%B7%A0%A2%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A6%A3%A2%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F0%FD%F6%EB%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A1%D1%F1%FD%F6%F7%B7%A1%D7%B7%A1%D1%BD%F1%FD%F6%F7%B7%A1%D7%B7%A1%D1%E1%E2%F3%FC%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%F4%FD%FC%E6%BF%E1%FB%E8%F7%B7%A1%D3%B7%A0%A2%A3%A0%E2%E6%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%CB%B7%A1%D1%BD%E1%E2%F3%FC%B7%A1%D7%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A1%D1%E1%E2%F3%FC%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%F4%FD%FC%E6%BF%E1%FB%E8%F7%B7%A1%D3%B7%A0%A2%A3%A0%E2%E6%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%F7%FE%B7%A0%A2%F3%B7%D4%A3%FD%B7%A0%A2%F1%FD%FF%E2%FE%F7%E6%FD%B7%A1%D1%BD%E1%E2%F3%FC%B7%A1%D7%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A1%D1%E1%E2%F3%FC%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%F4%FD%FC%E6%BF%E1%FB%E8%F7%B7%A1%D3%B7%A0%A2%A3%A0%E2%E6%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%EB%B7%A1%D1%BD%E1%E2%F3%FC%B7%A1%D7%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%FD%E1%B7%A0%A2%B7%D4%D3%FE%E6%FB%FF%FD%E1%B7%A0%A2%F6%FD%E1%B7%A0%A2%F6%B7%D7%D6%F5%FB%E6%FD%E1%B7%A0%A2%F6%F7%FE%B7%A0%A2%F3%B7%D4%A3%FD%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A0%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A0%A1%E2%EA%B7%A1%D0%B7%A0%A2%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%FF%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A0%A1%E2%EA%B7%A1%D0%B7%A0%A2%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%F7%FE%B7%A0%A2%FF%F7%E1%B7%A0%A2%F7%FC%B7%A0%A2%FC%B7%D4%D3%FF%F7%E0%FD%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A0%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A0%A1%E2%EA%B7%A1%D0%B7%A0%A2%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%D0%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%FA%F7%FB%F5%FA%E6%B7%A1%D3%B7%A0%A2%A0%A1%E2%EA%B7%A1%D0%B7%A0%A2%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%F7%FE%B7%A0%A2%FF%F7%E1%B7%A0%A2%F7%FC%B7%A0%A2%E2%F3%FE%F3%F0%E0%F3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%F6%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%F7%FE%B7%A0%A2%F6%B7%D7%D6%F3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%D3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%F7%FE%B7%A0%A2%F6%B7%D7%D6%F3%B7%A0%A2%F6%F7%B7%A0%A2%FE%F3%B7%A0%A2%E1%F7%FF%F3%FC%F3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%F3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%F7%FE%B7%A0%A2%F6%B7%D7%D6%F3%B7%A0%A2%F6%F7%B7%A0%A2%FE%F3%B7%A0%A2%E1%F7%FF%F3%FC%F3%B7%A0%A2%F3%F0%E0%F7%E4%FB%F3%F6%FD%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%DA%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%F3%B7%A0%A2%FA%FD%E0%F3%B7%A0%A2%F7%FC%B7%A0%A2%F4%FD%E0%FF%F3%E6%FD%B7%A0%A2%A0%A6%B7%A0%A2%FA%FD%E0%F3%E1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%DB%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%F3%B7%A0%A2%FA%FD%E0%F3%B7%A0%A2%F7%FC%B7%A0%A2%F4%FD%E0%FF%F3%E6%FD%B7%A0%A2%A3%A0%B7%A0%A2%FA%FD%E0%F3%E1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%DF%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%FD%E1%B7%A0%A2%FF%FB%FC%E7%E6%FD%E1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%C1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%FD%E1%B7%A0%A2%E1%F7%F5%E7%FC%F6%FD%E1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%E2%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%D3%DF%B7%A0%A2%FD%B7%A0%A2%C2%DF%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%D1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%F3%B7%A0%A2%F4%F7%F1%FA%F3%B7%A0%A2%EB%B7%A0%A2%FA%FD%E0%F3%B7%A0%A2%F1%FD%FF%E2%FE%F7%E6%F3%E1%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%EA%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%F3%B7%A0%A2%F4%F7%F1%FA%F3%B7%A0%A2%F1%FD%FF%E2%FE%F7%E6%F3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A0%AA%BC%A6%A3%A4%A5%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A0%A7%CA%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%E6%F6%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%E5%FB%F6%E6%FA%B7%A1%D3%B7%A0%A2%A1%A3%A3%BC%A1%AA%A1%E2%EA%B7%A1%D0%B7%A0%A0%B7%A1%D7%E2%F3%E0%F3%B7%A0%A2%FE%F3%B7%A0%A2%FA%FD%E0%F3%B7%A0%A2%F1%FD%FF%E2%FE%F7%E6%F3%B7%A1%D1%BD%E6%F6%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%E0%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%F0%FD%F6%EB%B7%A1%D7%B7%A2%D3%B7%A1%D1%BD%E6%F3%F0%FE%F7%B7%A1%D7%B7%A2%D3%B7%A1%D1%E2%B7%A1%D7%C1%F7%FE%F7%F1%F1%FB%FD%FC%F3%B7%A0%A2%FE%F3%E1%B7%A0%A2%E0%F7%E1%E2%E7%F7%E1%E6%F3%E1%B7%A0%A2%F1%FD%E0%E0%F7%F1%E6%F3%E1%B7%A0%A2%EB%B7%A0%A2%E2%E7%FE%E1%F3%B7%A0%A2%E1%FD%F0%E0%F7%B7%A0%A2%F7%FE%B7%A0%A2%F0%FD%E6%B7%D4%A1%FC%B7%A0%A2%B7%A0%A0%E0%F7%E1%E2%FD%FC%F6%F7%E0%B7%A0%A0%BC%B7%A0%A2%B7%A1%D1%E1%E2%F3%FC%B7%A0%A2%E1%E6%EB%FE%F7%B7%A1%D6%B7%A0%A0%F1%FD%FE%FD%E0%B7%A1%D3%B7%A0%A2%B7%A0%A1%AA%A2%A2%A2%A2%A2%B7%A1%D0%B7%A0%A0%B7%A1%D7%B7%A1%D1%E1%E6%E0%FD%FC%F5%B7%A1%D7%B7%D3%A3%D3%F6%F7%FE%F3%FC%E6%F7%B7%A0%A3%B7%A1%D1%BD%E1%E6%E0%FD%FC%F5%B7%A1%D7%B7%A1%D1%BD%E1%E2%F3%FC%B7%A1%D7%B7%A1%D1%BD%E2%B7%A1%D7%B0%BE%B0%FB%FC%E1%E6%E0%E7%F1%E6%FB%FD%FC%E1%B0%A8%B0%C1%F7%FE%F7%F1%F1%FB%FD%FC%F3%B2%FE%F3%E1%B2%E0%F7%E1%E2%E7%F7%E1%E6%F3%E1%B2%F1%FD%E0%E0%F7%F1%E6%F3%E1%B2%EB%B2%E2%E7%FE%E1%F3%B2%E1%FD%F0%E0%F7%B2%F7%FE%B2%F0%FD%E6a%FC%B2%CE%B0%E0%F7%E1%E2%FD%FC%F6%F7%E0%CE%B0%B2%B0%BE%B0%E1%FA%FD%E5%DF%FB%FC%FB%FF%FB%E8%F7%B0%A8%F4%F3%FE%E1%F7%BE%B0%FD%E2%E6%FB%FD%FC%E1%C0%F3%FF%F6%FD%FC%B0%A8%F4%F3%FE%E1%F7%BE%B0%F3%FC%E1%E5%F7%E0%E1%C0%F3%FF%F6%FD%FC%B0%A8%F4%F3%FE%E1%F7%BE%B0%E1%FA%FD%E5%C1%FD%FE%E7%E6%FB%FD%FC%B0%A8%E6%E0%E7%F7%BE%B0%E6%FB%FF%F7%C1%FA%FD%E5%C1%FD%FE%E7%E6%FB%FD%FC%B0%A8%A1%BE%B0%E7%E1%F7%DE%FB%E4%F7%E1%B0%A8%E6%E0%E7%F7%BE%B0%FC%E7%FF%F0%F7%E0%DE%FB%E4%F7%E1%B0%A8%A1%BE%B0%FB%E6%FB%FC%F7%E0%F3%E0%EB%B0%A8%E9%B0%E1%FA%FD%E5%D1%FE%E7%F7%B0%A8%F4%F3%FE%E1%F7%BE%B0%F1%FE%E7%F7%D5%F3%FF%F7%B0%A8%B0%B0%BE%B0%E2%F7%E0%F1%F7%FC%E6%F3%F5%F7%D1%FE%E7%F7%B0%A8%A6%A2%BE%B0%E1%FA%FD%E5%D1%FD%F6%F7%D3%F1%F1%F7%E1%E1%B0%A8%F4%F3%FE%E1%F7%BE%B0%F1%FD%F6%F7%D3%F1%F1%F7%E1%E1%B0%A8%B0%B0%BE%B0%FF%F7%E1%E1%F3%F5%F7%D1%FD%F6%F7%D3%F1%F1%F7%E1%E1%B0%A8%B0%B0%EF%BE%B0%E1%F7%FE%F7%F1%E6%E1%D5%F3%FF%F7%B0%A8%C9%E9%B0%E6%EB%E2%F7%B0%A8%A1%BE%B0%E6%FB%FF%F7%B0%A8%A0%BE%B0%FC%E7%FF%F0%F7%E0%DD%E2%E6%FB%FD%FC%E1%B0%A8%A6%BE%B0%E6%EB%E2%F7%C1%F7%FE%F7%F1%E6%B0%A8%A2%BE%B0%EA%B0%A8%A2%BE%B0%EB%B0%A8%A2%BE%B0%F3%E7%E6%FA%FD%E0%B0%A8%B0%B0%BE%B0%F3%FE%E6%B0%A8%B0%B0%BE%B0%F1%E7%E1%E6%FD%FF%C1%F1%FD%E0%F7%B0%A8%A3%BE%B0%E7%E0%FE%B0%A8%B0%B0%BE%B0%F3%E7%F6%FB%FD%B0%A8%B0%B0%BE%B0%FA%FB%E6%B0%A8%BF%A3%BE%B0%F7%E0%E0%FD%E0%B0%A8%BF%A3%BE%B0%FF%E1%F5%DA%FB%E6%B0%A8%B0%B0%BE%B0%FF%E1%F5%D7%E0%E0%FD%E0%B0%A8%B0%B0%BE%B0%E1%FD%E7%FC%F6%C4%FB%F6%F7%FD%B0%A8%A3%BE%B0%FB%FF%F3%F5%F7%C4%FB%F6%F7%FD%B0%A8%A3%BE%B0%FB%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%F4%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%E1%FB%FE%F7%FC%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%E6%C1%FB%FE%F7%FC%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%F7%C6%F7%EA%E6%B0%A8%B0%AE%E2%AC%DE%F3%B2%F4%E7%FC%F1%FBa%FC%B2%AE%E1%E6%E0%FD%FC%F5%AC%E4%F3%E0%BC%E1%E6%E0%F4%E6%FB%FF%F7%BA%F4%FD%E0%FF%F3%E6%FD%BB%AE%BD%E1%E6%E0%FD%FC%F5%AC%B2%E6%E0%F3%FC%E1%F4%FD%E0%FF%F3%B2%FE%F3%B2%F4%F7%F1%FA%F3%B2%E3%E7%F7%B2%F1%FD%FC%E6%FB%F7%FC%F7%B2%F7%FE%B2%FD%F0%F8%F7%E6%FD%B2%AE%E1%E6%E0%FD%FC%F5%AC%E4%F3%E0%AE%BD%E1%E6%E0%FD%FC%F5%AC%B2%F1%FD%FC%B2%F7%FE%B2%F4%FD%E0%FF%F3%E6%FD%B2%E3%E7%F7%B2%E1%F7%B2%FE%F7%B2%FB%FC%F6%FB%F1%F3%B2%F7%FC%B2%FE%F3%B2%F1%F3%F6%F7%FC%F3%B2%F6%F7%B2%E6%F7%EA%E6%FD%B2%AE%E1%E6%E0%FD%FC%F5%AC%F4%FD%E0%FF%F3%E6%FD%AE%BD%E1%E6%E0%FD%FC%F5%AC%BC%AE%BD%E2%AC%CE%FC%AE%E2%AC%D3%E1%7F%BE%B2%E2%E0%E7%F7%F0%F3%B2%F7%FC%B2%E6%E7%B2%F7%FC%E6%FD%E0%FC%FD%B2%F6%F7%B2%E2%E0%FD%F5%E0%F3%FF%F3%F1%FBa%FC%B2%FE%FD%E1%B2%E1%FB%F5%E7%FB%F7%FC%E6%F7%E1%B2%F1%FD%FF%F3%FC%F6%FD%E1%B2%EB%B2%E1%F7%FE%F7%F1%F1%FB%FD%FC%F3%B2%F6%F7%E1%E2%E7%7B%E1%B2%F7%FE%B2%F4%FD%E0%FF%F3%E6%FD%B2%F6%F7%FE%B2%E0%F7%E1%E7%FE%E6%F3%F6%FD%B2%E3%E7%F7%B2%E2%E0%FD%F6%E7%F1%F7%FC%A8%AE%BD%E2%AC%CE%FC%AE%E2%AC%AE%E1%E2%F3%FC%B2%E1%E6%EB%FE%F7%AF%CE%B0%F4%FD%FC%E6%BF%F4%F3%FF%FB%FE%EB%A8%B2%E6%F7%E0%FF%FB%FC%F3%FE%BE%B2%FF%FD%FC%F3%F1%FD%BE%B2%FF%FD%FC%FD%E1%E2%F3%F1%F7%A9%CE%B0%AC%B4%F5%E6%A9%B4%F5%E6%A9%B4%F5%E6%A9%B2%F4%E0%FD%FF%B2%F6%F3%E6%F7%E6%FB%FF%F7%B2%FB%FF%E2%FD%E0%E6%B2%F6%F3%E6%F7%BE%B2%E6%FB%FF%F7%BE%B2%F6%F3%E6%F7%E6%FB%FF%F7%AE%BD%E1%E2%F3%FC%AC%AE%F0%E0%B2%BD%AC%AE%E1%E2%F3%FC%B2%E1%E6%EB%FE%F7%AF%CE%B0%F4%FD%FC%E6%BF%F4%F3%FF%FB%FE%EB%A8%B2%E6%F7%E0%FF%FB%FC%F3%FE%BE%B2%FF%FD%FC%F3%F1%FD%BE%B2%FF%FD%FC%FD%E1%E2%F3%F1%F7%A9%CE%B0%AC%B4%F5%E6%A9%B4%F5%E6%A9%B4%F5%E6%A9%B2%F4%F7%F1%FA%F3%B2%AF%B2%F6%F3%E6%F7%E6%FB%FF%F7%BC%FC%FD%E5%BA%BB%AE%BD%E1%E2%F3%FC%AC%AE%F0%E0%B2%BD%AC%AE%E1%E2%F3%FC%B2%E1%E6%EB%FE%F7%AF%CE%B0%F4%FD%FC%E6%BF%F4%F3%FF%FB%FE%EB%A8%B2%E6%F7%E0%FF%FB%FC%F3%FE%BE%B2%FF%FD%FC%F3%F1%FD%BE%B2%FF%FD%FC%FD%E1%E2%F3%F1%F7%A9%CE%B0%AC%B4%F5%E6%A9%B4%F5%E6%A9%B4%F5%E6%A9%B2%E2%E0%FB%FC%E6%BA%F4%F7%F1%FA%F3%BC%E1%E6%E0%F4%E6%FB%FF%F7%BA%B5%B7%D3%BE%B2%B7%F6%B2%B7%D0%BE%B2%B7%EB%B5%BB%BB%AE%F0%E0%B2%BD%AC%AE%BD%E1%E2%F3%FC%AC%AE%BD%E2%AC%CE%FC%AE%E2%AC2%AE%BD%E2%AC%CE%FC%AE%E2%AC2%AE%BD%E2%AC%B0%BE%B0%E3%E7%F7%EA%E6%FB%FD%FC%B0%A8%B0%C1%F7%FE%F7%F1%F1%FB%FD%FC%F3%B2%F7%FE%B2%F4%FD%E0%FF%F3%E6%FD%B2%E0%F7%E1%E7%F7%FE%E6%F3%FC%E6%F7%B2%F6%F7%FE%B2%F1%FD%FF%F3%FC%F6%FD%B2%F3%FC%E6%F7%E0%FB%FD%E0%A8%B0%BE%B0%FD%E2%E6%FB%FD%FC%E1%B0%A8%C9%B0%A3%A1%BF%A2%A7%BF%A0%A2%A0%A0%B0%BE%B0%C6%E7%F7%E1%F6%F3%EB%BE%B2%A3%A1%B2%DF%F3%EB%BE%B2%A0%A0%B0%BE%B0%AA%B2%FA%FD%E0%F3%E1%BE%B2%A7%A1%B2%FF%FB%FC%E7%E6%FD%E1%B2%EB%B2%A0%A6%B2%E1%F7%F5%E7%FC%F6%FD%E1%B0%BE%B0%A2%AA%A8%A7%A1%A8%A0%A6%B0%CF%BE%B0%E1%FD%FE%E7%E6%FB%FD%FC%B0%A8%B0%D0%B0%BE%B0%E1%FD%FE%E7%E6%FB%FD%FC%C3%E7%F7%E1%E6%FB%FD%FC%B0%A8%B0%B0%BE%B0%E2%F7%E0%F1%F7%FC%E6%F3%F5%F7%C1%FA%FD%E5%B0%A8%A1%A7%EF%BE%E9%B0%E6%EB%E2%F7%B0%A8%A1%BE%B0%E6%FB%FF%F7%B0%A8%A1%BE%B0%FC%E7%FF%F0%F7%E0%DD%E2%E6%FB%FD%FC%E1%B0%A8%A6%BE%B0%E6%EB%E2%F7%C1%F7%FE%F7%F1%E6%B0%A8%A0%BE%B0%EA%B0%A8%A2%BE%B0%EB%B0%A8%A2%BE%B0%F3%E7%E6%FA%FD%E0%B0%A8%B0%B0%BE%B0%F3%FE%E6%B0%A8%B0%B0%BE%B0%F1%E7%E1%E6%FD%FF%C1%F1%FD%E0%F7%B0%A8%A3%BE%B0%E7%E0%FE%B0%A8%B0%B0%BE%B0%F3%E7%F6%FB%FD%B0%A8%B0%B0%BE%B0%FA%FB%E6%B0%A8%BF%A3%BE%B0%F7%E0%E0%FD%E0%B0%A8%BF%A3%BE%B0%FF%E1%F5%DA%FB%E6%B0%A8%B0%B0%BE%B0%FF%E1%F5%D7%E0%E0%FD%E0%B0%A8%B0%B0%BE%B0%E1%FD%E7%FC%F6%C4%FB%F6%F7%FD%B0%A8%A3%BE%B0%FB%FF%F3%F5%F7%C4%FB%F6%F7%FD%B0%A8%A3%BE%B0%FB%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%F4%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%E1%FB%FE%F7%FC%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%E6%C1%FB%FE%F7%FC%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%F7%C6%F7%EA%E6%B0%A8%B0%AE%E2%AC%DE%F3%B2%F4%E7%FC%F1%FBa%FC%AE%E1%E6%E0%FD%FC%F5%AC2%E1%E6%E0%E2%E6%FB%FF%F7%BA%F4%F7%F1%FA%F3%BE%B2%F4%FD%E0%FF%F3%E6%FD%BB%AE%BD%E1%E6%E0%FD%FC%F5%AC%A8%B2%D6%F7%E4%E7%F7%FE%E4%F7%B2%F7%FE%B2%FD%F0%F8%F7%E6%FD%B2%F6%F7%B2%E6%FB%E2%FD%B2%F6%F3%E6%F7%BE%B2%E6%FB%FF%F7%B2%FD%B2%F6%F3%E6%F7%E6%FB%FF%F7%B2%E3%E7%F7%B2%E0%F7%E1%E7%FE%E6%F3%B2%F6%F7%B2%F1%FD%FC%E4%F7%E0%E6%FB%E0%B2%FE%F3%B2%F1%F3%F6%F7%FC%F3%B2%AE%F7%FF%AC%F4%F7%F1%FA%F3%AE%BD%F7%FF%AC%B2%F6%F7%B2%F3%F1%E7%F7%E0%F6%FD%B2%F3%FE%B2%F4%FD%E0%FF%F3%E6%FD%B2%FB%FC%F6%FB%F1%F3%F6%FD%B2%F7%FC%B2%FE%F3%B2%F1%F3%F6%F7%FC%F3%B2%AE%F7%FF%AC%F4%FD%E0%FF%F3%E6%FD%AE%BD%F7%FF%AC%BC%AE%BD%E2%AC%CE%FC%AE%E2%AC%D3%E1%7F%BE%B2%E2%E0%E7%F7%F0%F3%B2%F7%FC%B2%E6%E7%B2%F7%FC%E6%FD%E0%FC%FD%B2%F6%F7%B2%E2%E0%FD%F5%E0%F3%FF%F3%F1%FBa%FC%B2%FE%F3%E1%B2%F6%FB%E1%E6%FB%FC%E6%F3%E1%B2%E2%FD%E1%FB%F0%FB%FE%FB%F6%F3%F6%F7%E1%B2%E2%F3%E0%F3%B2%F3%E4%F7%E0%FB%F5%E7%F3%E0%B2%F1a%FF%FD%B2%F1%FD%FF%E2%FE%F7%E6%F3%E0%B2%F7%FE%B2%F1%FD%FF%F3%FC%F6%FD%B2%F6%F7%B2%F3%F0%F3%F8%FD%B2%E3%E7%F7%B2%F6%F3%E0s%B2%FE%E7%F5%F3%E0%B2%F3%FE%B2%E1%FB%F5%E7%FB%F7%FC%E6%F7%B2%FD%F0%F8%F7%E6%FD%A8%AE%BD%E2%AC%CE%FC%AE%E2%AC%AE%E1%E6%E0%FD%FC%F5%AC%F6%F3%E6%F7%E6%FB%FF%F7%BC%F6%F3%E6%F7%E6%FB%FF%F7%BA%A0%A2%A0%A0%BE%B2%A5%BE%B2%A3%A2%BE%B2%A2%A6%BE%B2%A6%A7%BE%B2%A0%A2%BB%AE%BD%E1%E6%E0%FD%FC%F5%AC%AE%BD%E2%AC%CE%FC%AE%E2%AC2%AE%BD%E2%AC%B0%BE%B0%E3%E7%F7%EA%E6%FB%FD%FC%B0%A8%B0%F6%F3%E6%F7%E6%FB%FF%F7%BC%E1%E6%E0%E2%E6%FB%FF%F7%BA%B5%A0%A2%A0%A0%BF%A5%BF%A3%A2%B2%A2%A6%A8%A6%A7%A8%A0%A2%B5%BE%B2%B5%AD%B5%BB%B0%BE%B0%FD%E2%E6%FB%FD%FC%E1%B0%A8%C9%B0%B0%BE%B0%B0%BE%B0%B0%BE%B0%B0%CF%BE%B0%E1%FD%FE%E7%E6%FB%FD%FC%B0%A8%B0%B0%BE%B0%E1%FD%FE%E7%E6%FB%FD%FC%C3%E7%F7%E1%E6%FB%FD%FC%B0%A8%B0%B7%CB%BF%B7%FF%BF%B7%F6%B2%B7%DA%A8%B7%DF%A8%B7%C1%B0%BE%B0%E2%F7%E0%F1%F7%FC%E6%F3%F5%F7%C1%FA%FD%E5%B0%A8%A1%A7%EF%BE%E9%B0%E6%EB%E2%F7%B0%A8%A1%BE%B0%E6%FB%FF%F7%B0%A8%A0%BE%B0%FC%E7%FF%F0%F7%E0%DD%E2%E6%FB%FD%FC%E1%B0%A8%A6%BE%B0%E6%EB%E2%F7%C1%F7%FE%F7%F1%E6%B0%A8%A2%BE%B0%EA%B0%A8%A2%BE%B0%EB%B0%A8%A2%BE%B0%F3%E7%E6%FA%FD%E0%B0%A8%B0%B0%BE%B0%F3%FE%E6%B0%A8%B0%B0%BE%B0%F1%E7%E1%E6%FD%FF%C1%F1%FD%E0%F7%B0%A8%A3%BE%B0%E7%E0%FE%B0%A8%B0%B0%BE%B0%F3%E7%F6%FB%FD%B0%A8%B0%B0%BE%B0%FA%FB%E6%B0%A8%BF%A3%BE%B0%F7%E0%E0%FD%E0%B0%A8%BF%A3%BE%B0%FF%E1%F5%DA%FB%E6%B0%A8%B0%B0%BE%B0%FF%E1%F5%D7%E0%E0%FD%E0%B0%A8%B0%B0%BE%B0%E1%FD%E7%FC%F6%C4%FB%F6%F7%FD%B0%A8%A3%BE%B0%FB%FF%F3%F5%F7%C4%FB%F6%F7%FD%B0%A8%A3%BE%B0%FB%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%F4%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%E1%FB%FE%F7%FC%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%E6%C1%FB%FE%F7%FC%E6%C4%FB%F6%F7%FD%B0%A8%A2%BE%B0%F7%C6%F7%EA%E6%B0%A8%B0%AE%E2%AC%D7%FE%B2%E6%FB%F7%FF%E2%FD%B2%E6%E0%F3%FC%E1%F1%E7%E0%E0%FB%F6%FD%B2%F7%FC%E6%E0%F7%B2%F6%FD%E1%B2%F4%F7%F1%FA%F3%E1%B2%E1%F7%B2%E0%F7%E2%E0%F7%E1%F7%FC%E6%F3%B2%FF%F7%F6%FB%F3%FC%E6%F7%B2%FE%F3%B2%F1%FE%F3%E1%F7%B2%E6%FB%FF%F7%F6%F7%FE%E6%F3%A8%AE%BD%E2%AC%CE%FC%AE%E2%AC%AE%E1%E6%E0%FD%FC%F5%AC%E6%FB%FF%F7%F6%F7%FE%E6%F3%BA%F6%FB%F3%E1%BE%B2%E1%F7%F5%E7%FC%F6%FD%E1%BE%B2%FF%FB%F1%E0%FD%E1%F7%F5%E7%FC%F6%FD%E1%BB%AE%BD%E1%E6%E0%FD%FC%F5%AC%B2%u2100%B2%DB%FC%E6%F7%E0%E4%F3%FE%FD%B2%F6%F7%B2%F6%7F%F3%E1%BE%B2%E1%F7%F5%E7%FC%F6%FD%E1%B2%EB%B2%FF%FB%F1%E0%FD%E1%F7%F5%E7%FC%F6%FD%E1%B2%FB%FC%F6%FB%F1%F3%F6%FD%E1%BC%AE%BD%E2%AC%CE%FC%AE%E2%AC-%D3%B2%E3%E7%7B%B2%F4%F7%F1%FA%F3%B2%F6%F3%E0%7F%F3%B2%F7%FC%E6%FD%FC%F1%F7%E1%B2%FE%E7%F5%F3%E0%B2%F7%FE%B2%E1%FB%F5%E7%FB%F7%FC%E6%F7%B2%F1a%F6%FB%F5%FD%AD%AE%BD%E2%AC%CE%FC%AE%E2%AC%AE%E1%E2%F3%FC%B2%E1%E6%EB%FE%F7%AF%CE%B0%F4%FD%FC%E6%BF%F4%F3%FF%FB%FE%EB%A8%B2%E6%F7%E0%FF%FB%FC%F3%FE%BE%B2%FF%FD%FC%F3%F1%FD%BE%B2%FF%FD%FC%FD%E1%E2%F3%F1%F7%A9%CE%B0%AC%F4%F7%F1%FA%F3%A3%AF%F6%F3%E6%F7%E6%FB%FF%F7%BA%A0%A2%A0%A0%BE%A5%BE%A6%BB%AE%BD%E1%E2%F3%FC%AC%AE%F0%E0%B2%BD%AC%AE%E1%E2%F3%FC%B2%E1%E6%EB%FE%F7%AF%CE%B0%F4%FD%FC%E6%BF%F4%F3%FF%FB%FE%EB%A8%B2%E6%F7%E0%FF%FB%FC%F3%FE%BE%B2%FF%FD%FC%F3%F1%FD%BE%B2%FF%FD%FC%FD%E1%E2%F3%F1%F7%A9%CE%B0%AC%FB%FC%E6%F7%E0%E4%F3%FE%FD%B2%AF%B2%E6%FB%FF%F7%F6%F7%FE%E6%F3%BA%A1%A3%BE%A1%A4%A2%A2%BB%AE%BD%E1%E2%F3%FC%AC%AE%F0%E0%B2%BD%AC%AE%E1%E2%F3%FC%B2%E1%E6%EB%FE%F7%AF%CE%B0%F4%FD%FC%E6%BF%F4%F3%FF%FB%FE%EB%A8%B2%E6%F7%E0%FF%FB%FC%F3%FE%BE%B2%FF%FD%FC%F3%F1%FD%BE%B2%FF%FD%FC%FD%E1%E2%F3%F1%F7%A9%CE%B0%AC%F4%F7%F1%FA%F3%A0%AF%F4%F7%F1%FA%F3%A3%B9%FB%FC%E6%F7%E0%E4%F3%FE%FD%AE%BD%E1%E2%F3%FC%AC%AE%BD%E2%AC%CE%FC%AE%E2%AC2%AE%BD%E2%AC%B0%BE%B0%E3%E7%F7%EA%E6%FB%FD%FC%B0%A8%B0-%D1%E7s%FE%B2%F7%E1%B2%FE%F3%B2%F4%F7%F1%FA%F3%B2%E0%F7%E1%E7%E6%FE%F3%F6%FD%B2%F6%F7%FE%B2%F1a%F6%FB%F5%FD%B2%F3%FC%E6%F7%E0%FB%FD%E0%AD%B0%BE%B0%FD%E2%E6%FB%FD%FC%E1%B0%A8%C9%B0%A2%A4%BD%A2%A5%BD%A0%A2%A0%A0%BE%B2%A3%FA%BC%B2%A2%B2%FF%FB%FC%BC%B0%BE%B0%A2%A7%BD%A2%A5%BD%A0%A2%A0%A0%B0%BE%B0%A2%A6%BD%A2%A5%BD%A0%A2%A0%A0%BE%B2%A3%FA%BC%B2%A2%B2%FF%FB%FC%BC%B0%BE%B0%A2%A7%BD%A2%A5%BD%A0%A2%A0%A0%BE%B2%A3%FA%BC%B2%A2%B2%FF%FB%FC%BC%B0%CF%BE%B0%E1%FD%FE%E7%E6%FB%FD%FC%B0%A8%B0%D6%B0%BE%B0%E1%FD%FE%E7%E6%FB%FD%FC%C3%E7%F7%E1%E6%FB%FD%FC%B0%A8%B0%B0%BE%B0%E2%F7%E0%F1%F7%FC%E6%F3%F5%F7%C1%FA%FD%E5%B0%A8%A1%A7%EF%CF%BE%B0%FB%E1%C1%F1%FD%E0%FF%B0%A8%A2%BE%B0%E6%F7%EA%E6%D0%E7%E6%E6%FD%FC%C1%F1%FD%E0%FF%B0%A8%B0%D5%E7%F3%E0%F6%F3%E0%B2%FE%F3%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B0%BE%B0%E0%F7%E2%F7%F3%E6%D3%F1%E6%FB%E4%FB%E6%EB%B0%A8%F4%F3%FE%E1%F7%BE%B0%E6%FB%E6%FE%F7%B0%A8%B0%B0%BE%B0%F1%E7%E1%E6%FD%FF%C1%F1%FD%E0%F7%B0%A8%F4%F3%FE%E1%F7%BE%B0%E6%F7%EA%E6%D3%F4%E6%F7%E0%B0%A8%B0%B0%BE%B0%E6%F7%EA%E6%D4%F7%F7%F6%D0%F3%F1%F9%B0%A8%B0%B0%BE%B0%F5%F3%FF%F7%DF%FD%F6%F7%B0%A8%A3%BE%B0%F4%F7%F7%F6%D0%F3%F1%F9%B0%A8%F4%F3%FE%E1%F7%BE%B0%E2%F7%E0%F1%F7%FC%E6%F3%F8%F7%D4%D0%B0%A8%A3%A2%A2%BE%B0%FD%E0%F6%F7%E0%B0%A8%A2%BE%B0%F1%E7%E1%E6%FD%FF%DF%F7%E1%E1%F3%F5%F7%E1%B0%A8%F4%F3%FE%E1%F7%BE%B0%E4%F7%E0%E1%FB%FD%FC%B0%A8%A1%BE%B0%E2%F7%E0%F1%F7%FC%E6%F3%F8%F7%C3%E7%F7%E1%E6%FB%FD%FC%E1%B0%A8%A3%A2%A2%BE%B0%FF%E1%F5%E1%B0%A8%E9%B0%FF%E1%F5%C0%F7%F3%F6%EB%B0%A8%B0-%C2%E0%F7%E2%F3%E0%F3%F6%FD%AD%B0%BE%B0%FF%E1%F5%C1%E6%F3%E0%E6%D5%F3%FF%F7%B0%A8%B0%C2%E7%FE%E1%F7%B2%F3%E3%E7%7F%B2%E2%F3%E0%F3%B2%F7%FF%E2%F7%E8%F3%E0%B0%BE%B0%FF%E1%F5%C1%E7%F0%FF%FB%E6%B0%A8%B0%D7%FC%E4%FB%F3%E0%B0%BE%B0%FF%E1%F5%D7%FC%E6%F7%E0%D1%FD%F6%F7%B0%A8%B0%DB%FC%E6%E0%FD%F6%E7%E8%F1%F3%B2%F7%FE%B2%F1a%F6%FB%F5%FD%B2%F6%F7%B2%F3%F1%F1%F7%E1%FD%B0%BE%B0%FF%E1%F5%D7%E0%E0%FD%E0%D1%FD%F6%F7%B0%A8%B0%D7%FE%B2%F1a%F6%FB%F5%FD%B2%F6%F7%B2%F3%F1%F1%F7%E1%FD%B2%FC%FD%B2%F7%E1%B2%F1%FD%E0%E0%F7%F1%E6%FD%B0%BE%B0%FF%E1%F5%D5%F3%FF%F7%DD%E4%F7%E0%B0%A8%B03%D4%FB%FC%B2%F6%F7%B2%FE%F3%B2%E2%F3%E0%E6%FB%F6%F3%B3%B0%BE%B0%FF%E1%F5%D1%FE%E7%F7%B0%A8%B03%D5%F7%FC%FB%F3%FE%B3%B2%DE%F3%B2%E2%FB%E1%E6%F3%B2%F7%E1%A8%B0%BE%B0%FF%E1%F5%DC%F7%E5%D5%F3%FF%F7%B0%A8%B0%C2%E7%FE%E1%F7%B2%F3%E3%E7%7F%B2%E2%F3%E0%F3%B2%F7%FF%E2%F7%E8%F3%E0%B2%FD%E6%E0%F3%B2%E2%F3%E0%E6%FB%F6%F3%B0%BE%B0%FF%E1%F5%CB%FD%E7%DA%F3%E1%B0%A8%B0%C6%FB%F7%FC%F7%B2%B7%A3%B2%F3%F1%FB%F7%E0%E6%FD%E1%B2%EB%B2%B7%A0%B2%F4%F3%FE%FE%FD%E1%B0%BE%B0%FF%E1%F5%D1%FD%F6%F7%D3%F1%F1%F7%E1%E1%B0%A8%B0%D1a%F6%FB%F5%FD%B2%F6%F7%B2%F3%F1%F1%F7%E1%FD%B0%BE%B0%FF%E1%F5%C2%FE%F3%EB%D3%F5%F3%FB%FC%B0%A8%B0%D8%E7%F5%F3%E0%B2%FD%E6%E0%F3%B2%E4%F7%E8%B0%BE%B0%FF%E1%F5%C0%F7%E3%E7%FB%E0%F7%F6%D3%F1%F1%F7%E1%E1%D9%F7%EB%B0%A8%B0%D7%E1%B2%FC%F7%F1%F7%E1%F3%E0%FB%FD%B2%F7%FE%B2%F1a%F6%FB%F5%FD%B2%F6%F7%B2%F3%F1%F1%F7%E1%FD%B0%BE%B0%FF%E1%F5%DB%FC%F4%FD%E0%FF%F3%E6%FB%FD%FC%DE%FD%FD%F9%FB%FC%F5%B0%A8%B03%D5%F7%FC%FB%F3%FE%B3%B2%DE%F3%B2%FB%FC%F4%FD%E0%FF%F3%F1%FBa%FC%B2%E3%E7%F7%B2%F7%E1%E6%F3%F0%F3%B2%F0%E7%E1%F1%F3%FC%F6%FD%B0%BE%B0%FF%E1%F5%C2%FE%F3%EB%C1%E6%F3%E0%E6%B0%A8%B0%C2%E7%FE%E1%F7%B2%F3%E3%E7%7F%B2%E2%F3%E0%F3%B2%F8%E7%F5%F3%E0%B0%BE%B0%FF%E1%F5%D7%E0%E0%FD%E0%E1%B0%A8%B0%D7%E0%E0%FD%E0%F7%E1%B0%BE%B0%FF%E1%F5%DA%FB%E6%E1%B0%A8%B0%D3%F1%FB%F7%E0%E6%FD%E1%B0%BE%B0%FF%E1%F5%C1%F1%FD%E0%F7%B0%A8%B0%C2%E7%FC%E6%E7%F3%F1%FBa%FC%B0%BE%B0%FF%E1%F5%DF%FB%FC%FB%FF%FB%E8%F7%B0%A8%B0%DF%FB%FC%FB%FF%FB%E8%F3%E0%B0%BE%B0%FF%E1%F5%DF%F3%EA%FB%FF%FB%E8%F7%B0%A8%B0%DF%F3%EA%FB%FF%FB%E8%F3%E0%B0%BE%B0%FF%E1%F5%C6%FB%FF%F7%B0%A8%B0%C6%FB%F7%FF%E2%FD%B2%E2%FD%E0%B2%E2%E0%F7%F5%E7%FC%E6%F3%B0%BE%B0%FF%E1%F5%DE%FB%E4%F7%B0%A8%B0%C4%FB%F6%F3%B0%BE%B0%FF%E1%F5%D4%E7%FE%FE%C1%F1%E0%F7%F7%FC%B0%A8%B0%C2%F3%FC%E6%F3%FE%FE%F3%B2%D1%FD%FF%E2%FE%F7%E6%F3%B0%BE%B0%FF%E1%F5%D7%EA%FB%E6%D4%E7%FE%FE%C1%F1%E0%F7%F7%FC%B0%A8%B0%C1%F3%FE%FB%E0%B2%F6%F7%FE%B2%FF%FD%F6%FD%B2%E2%F3%FC%E6%F3%FE%FE%F3%B2%F1%FD%FF%E2%FE%F7%E6%F3%B0%BE%B0%FF%E1%F5%DC%E7%FF%C3%E7%F7%E1%E6%FB%FD%FC%E1%B0%A8%B0%DCh%FF%F7%E0%FD%B2%F6%F7%B2%E2%E0%F7%F5%E7%FC%E6%F3%E1%B0%BE%B0%FF%E1%F5%DC%FD%DB%FF%F3%F5%F7%B0%A8%B0%C2%E0%F7%F5%E7%FC%E6%F3%B2%E1%FB%FC%B2%FB%FFs%F5%F7%FC%F7%E1%B0%BE%B0%FF%E1%F5%D1%FD%FD%FE%B0%A8%B03%D0%FB%F7%FC%B3%B0%BE%B0%FF%E1%F5%DE%FD%E1%F7%C6%B0%A8%B0%DA%F3%B2%E2%F7%E0%F6%FB%F6%FD%B2%A1%A1%A2%B2%E2%E7%FC%E6%FD%E1%B0%BE%B0%FF%E1%F5%DE%FD%E1%F7%DE%FB%E4%F7%B0%A8%B0%DA%F3%B2%E2%F7%E0%F6%FB%F6%FD%B2%E7%FC%F3%B2%E4%FB%F6%F3%B0%BE%B0%FF%E1%F5%DE%FD%E1%E6%DE%FB%E4%F7%E1%B0%A8%B03%DA%F3%B2%E2%F7%E0%F6%FB%F6%FD%B2%E6%FD%F6%F3%E1%B2%E1%E7%E1%B2%E4%FB%F6%F3%E1%B3%B0%BE%B0%FF%E1%F5%D3%FE%FE%C3%E7%F7%E1%E6%FB%FD%FC%E1%B0%A8%B03%D1%FD%FF%E2%FE%F7%E6%F3%F6%F3%E1%B2%FE%F3%E1%B2%E2%E0%F7%F5%E7%FC%E6%F3%E1%B3%B0%BE%B0%FF%E1%F5%C1%E7%F1%F1%F7%E1%E1%F7%E1%B0%A8%B03%D1%FD%E0%E0%F7%F1%E6%FD%B3%B2%EE%B23%D7%EA%F1%F7%FE%F7%FC%E6%F7%B3%B2%EE%B23%D5%F7%FC%FB%F3%FE%B3%B2%EE%B23%DF%E7%EB%B2%F0%FB%F7%FC%B3%B2%EE%B23%C2%F7%E0%F4%F7%F1%E6%FD%B3%B0%BE%B0%FF%E1%F5%D4%F3%FB%FE%E7%E0%F7%E1%B0%A8%B03%DC%FD%B2%F7%E0%F3%B2%F7%E1%FD%B3%B2%EE%B23%DB%FC%F1%FD%E0%E0%F7%F1%E6%FD%B3%B2%EE%B23%DC%FD%B2%F7%E1%B2%F1%FD%E0%E0%F7%F1%E6%FD%B3%B2%EE%B23%DE%FD%B2%E1%F7%FC%E6%FB%FF%FD%E1%B3%B2%EE%B23%D7%E0%E0%FD%E0%B3%B0%BE%B0%FF%E1%F5%DC%FD%E6%DC%F7%E6%E5%FD%E0%F9%B0%A8%B0%D3%B2%F7%E1%E6%F7%B2%F8%E7%F7%F5%FD%B2%E1a%FE%FD%B2%E1%F7%B2%E2%E7%F7%F6%F7%B2%F8%E7%F5%F3%E0%B2%F1%FD%FC%B2%F1%FD%FC%F7%EA%FBa%FC%B2%F3%B2%FB%FC%E6%F7%E0%FC%F7%E6%BC%B0%BE%B0%FF%E1%F5%D7%FC%F6%D5%F3%FF%F7%C1%F1%FD%E0%F7%B0%A8%B0%DB%FC%FB%F1%FB%F3%B2%F7%FE%B2%F8%E7%F7%F5%FD%BC%BC%BC%B0%BE%B0%FF%E1%F5%C1%F1%FD%E0%F7%C1%F1%FD%E0%FF%B0%A8%B0%DE%F3%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B2%FC%FD%B2%E1%F7%B2%E2%E7%F7%F6%F7%B2%F5%E7%F3%E0%F6%F3%E0%B2%E2%FD%E0%E3%E7%F7%B2%F7%E1%E6%F3%B2%E2s%F5%FB%FC%F3%B2%FC%FD%B2%F4%FD%E0%FF%F3%B2%E2%F3%E0%E6%F7%B2%B2%F6%F7%B2%E7%FC%B2%E2%F3%E3%E7%F7%E6%F7%B2%C1%D1%DD%C0%DF%BC%B0%BE%B0%FF%E1%F5%C3%E7%F7%E1%E6%FB%FD%FC%B0%A8%B0%C2%E0%F7%F5%E7%FC%E6%F3%B0%BE%B0%FF%E1%F5%D3%FC%E1%E5%F7%E0%B0%A8%B0%D1%FD%FF%E2%E0%FD%F0%F3%E0%B0%BE%B0%FF%E1%F5%DD%FC%FE%EB%C1%F3%E4%F7%C1%F1%FD%E0%F7%B0%A8%B03%C1a%FE%FD%B2%E2%E7%F7%F6%F7%B2%F5%E7%F3%E0%F6%F3%E0%B2%FE%F3%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B2%E7%FC%F3%B2%E4%F7%E8%B3%B0%BE%B0%FF%E1%F5%DD%FC%FE%EB%C1%F3%E4%F7%B0%A8%B0%C1a%FE%FD%B2%E2%E7%F7%F6%F7%B2%F5%E7%F3%E0%F6%F3%E0%B2%E7%FC%F3%B2%E4%F7%E8%B0%BE%B0%FF%E1%F5%DB%FC%F4%FD%E0%FF%F3%E6%FB%FD%FC%B0%A8%B0%DB%FC%F4%FD%E0%FF%F3%F1%FBa%FC%B0%BE%B0%FF%E1%F5%CB%FD%E7%C1%F1%FD%E0%F7%B0%A8%B0%C1%E7%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B0%BE%B0%FF%E1%F5%D3%E7%E6%FA%FD%E0%B0%A8%B0%D3%E7%E6%FD%E0%B0%BE%B0%FF%E1%F5%DD%FC%FE%EB%C1%F3%E4%F7%D3%E7%E6%FD%B0%A8%B0%C1%E7%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B2%E1%F7%B2%F5%E7%F3%E0%F6%F3%E0s%B2%F6%F7%E1%E2%E7%7B%E1%B2%F6%F7%B2%F1%F3%F6%F3%B2%E2%E0%F7%F5%E7%FC%E6%F3%BC%B2%C1a%FE%FD%B2%E2%E7%F7%F6%F7%B2%F8%E7%F5%F3%E0%B2%E7%FC%F3%B2%E4%F7%E8%BC%B0%BE%B0%FF%E1%F5%C1%F3%E4%F7%D3%E7%E6%FD%B0%A8%B0%C1%E7%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B2%E1%F7%B2%F5%E7%F3%E0%F6%F3%E0s%B2%F3%E7%E6%FD%FFs%E6%FB%F1%F3%FF%F7%FC%E6%F7%B2%F6%F7%E1%E2%E7%7B%E1%B2%F6%F7%B2%F1%F3%F6%F3%B2%E2%E0%F7%F5%E7%FC%E6%F3%BC%B0%BE%B0%FF%E1%F5%C1%F7%E4%F7%E0%F3%FE%C1%F1%FD%E0%F7%B0%A8%B0%C2%E7%F7%F6%F7%B2%F5%E7%F3%E0%F6%F3%E0%B2%FE%F3%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B2%E6%F3%FC%E6%F3%E1%B2%E4%F7%F1%F7%E1%B2%F1%FD%FF%FD%B2%E3%E7%FB%F7%E0%F3%B0%BE%B0%FF%E1%F5%CB%FD%E7%DE%F3%E1%E6%C1%F1%FD%E0%F7%B0%A8%B0%DE%F3%B2h%FE%E6%FB%FF%F3%B2%E2%E7%FC%E6%E7%F3%F1%FBa%FC%B2%F5%E7%F3%E0%F6%F3%F6%F3%B2%F7%E1%B0%BE%B0%FF%E1%F5%D3%F1%E6%FB%E6%EB%D1%FD%FF%E2%FE%EB%B0%A8%B0%CB%F3%B2%FA%F3%B2%E0%F7%F3%FE%FB%E8%F3%F6%FD%B2%F7%E1%E6%F3%B2%F3%F1%E6%FB%E4%FB%F6%F3%F6%BC%B0%BE%B0%FF%E1%F5%C2%FE%F3%EB%C1%F7%E4%F7%E0%F3%FE%C6%FB%FF%F7%E1%B0%A8%B0%C2%E7%F7%F6%F7%B2%E0%F7%F3%FE%FB%E8%F3%E0%B2%F7%E1%E6%F3%B2%F3%F1%E6%FB%E4%FB%F6%F3%F6%B2%F1%E7%F3%FC%E6%F3%E1%B2%E4%F7%F1%F7%E1%B2%E3%E7%FB%F7%E0%F3%B0%BE%B0%FF%E1%F5%C6%E0%EB%D3%F5%F3%FB%FC%B0%A8%B0%DC%F7%F1%F7%E1%FB%E6%F3%B2%F3%FE%B2%FF%F7%FC%FD%E1%B2%E7%FC%B2%B7%E1%B7%B2%F6%F7%B2%E0%F7%E1%E2%E7%F7%E1%E6%F3%E1%B2%F1%FD%E0%E0%F7%F1%E6%F3%E1%B2%E2%F3%E0%F3%B2%F1%FD%FC%E1%F7%F5%E7%FB%E0%B2%FE%F3%B2%FB%FC%F4%FD%E0%FF%F3%F1%FBa%FC%BC%B2%C4%E7%F7%FE%E4%F3%B2%F3%B2%FB%FC%E6%F7%FC%E6%F3%E0%FE%FD%BC%B0%BE%B0%FF%E1%F5%C4%FB%F6%F7%FD%DB%FC%E6%E0%FD%B0%A8%B0%C4%7F%F6%F7%FD%B2%F6%F7%B2%FB%FC%E6%E0%FD%F6%E7%F1%F1%FBa%FC%B0%BE%B0%FF%E1%F5%D1%FE%FD%E1%F7%B0%A8%B0%D1%F7%E0%E0%F3%E0%B0%BE%B0%FF%E1%F5%DD%E2%E6%FB%FD%FC%B0%A8%B0%DD%E2%F1%FBa%FC%B0%BE%B0%FF%E1%F5%C0%FB%F1%F9%C6%F7%EA%E6%B0%A8%B0%C6%F7%EA%E6%FD%B2%F7%FC%E0%FB%E3%E7%F7%F1%FB%F6%FD%B0%BE%B0%FF%E1%F5%C7%E1%F7%D4%E7%FE%DB%FC%F4%FD%E0%FF%F3%E6%FB%FD%FC%B0%A8%B0%F7%B2%FB%FC%F4%FD%E0%FF%F3%F1%FBa%FC%B2%E3%E7%F7%B2%E1%F7%E0s%B2%FF%E7%EB%B2h%E6%FB%FE%B0%BE%B0%FF%E1%F5%DE%FD%F3%F6%FB%FC%F5%B0%A8%B0%D1%F3%E0%F5%F3%FC%F6%FD%BC%B2%D7%E1%E2%F7%E0%F7%BE%B2%E2%FD%E0%B2%F4%F3%E4%FD%E0%BC%BC%BC%B0%BE%B0%FF%E1%F5%DD%E0%F6%F7%E0%E1%B0%A8%B0%DD%E0%F6%F7%FC%F3%B2%E6%FD%F6%F3%E1%B2%FE%F3%E1%B2%E0%F7%E1%E2%E7%F7%E1%E6%F3%E1%B0%BE%B0%FF%E1%F5%DB%FC%F6%FB%F1%F3%E6%F7%C5%FD%E0%F6%B0%A8%B0%C2%E0%FD%E2%FD%E0%F1%FB%FD%FC%F7%B2%E7%FC%F3%B2%E2%F3%FE%F3%F0%E0%F3%B2%FD%B2%F7%EA%E2%E0%F7%E1%FBa%FC%B0%BE%B0%FF%E1%F5%DF%FD%E4%F7%DD%FC%F7%B0%A8%B0%C2%F3%E1%F3%E0%B0%BE%B0%FF%E1%F5%C2%FD%FB%FC%E6%E1%B0%A8%B0%E2%E7%FC%E6%FD%E1%B0%BE%B0%FF%E1%F5%D3%E7%F6%FB%FD%B0%A8%B0%D3%E7%F6%FB%FD%B0%EF%EF
Su navegador no es compatible con esta herramienta.

4. Descubre el poder de los arrays

Pregunta

Para acceder a los elementos de un array se usan los índices separados por comas, empezando a contar desde cero. ¿Qué elemento nos ofrece por pantalla el siguiente código?
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[1, 0]) #También se puede hacer print(a[1][0])

Respuestas

2

4

5

Pregunta

Con el operador dos puntos : es posible obtener subarrays. Hay que indicar el índice inicial y el del final para cada dimensión, de nuevo separados por comas. ¿Qué subarray nos ofrece el siguiente código?
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[:, 1:2])

Respuestas

[[1 2]
[4 5]]

[[1 2]
[5 6]]

[[2 3]
[5 6]]

Pregunta

Partiendo de un array podemos obtener otro con los elementos que cumplan una determinada condición que le indicaremos entre corchetes, del modo: a[condicion] donde a es el array. ¿Qué subarray nos ofrece el siguiente código?
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[(a % 2 == 0) & (a > 2)])

Respuestas

[4 6]

[2 4]

[2 4 6]

Pregunta

Las operaciones matemáticas a nivel de elemento se hacen sobre los elementos que ocupan la misma posición en dos arrays. Para ello necesitamos dos arrays con las mismas dimensiones y el resultado es una array de la misma dimensión.
Los operadores mamemáticos +, -, *, /, %, ** se utilizan para la realizar suma, resta, producto, cociente, resto y potencia a nivel de elemento. ¿Cuál de estas operaciones nos daría el resultado siguiente?
[[1. 2. 3. ]
[2. 2.5 3. ]]

Respuestas

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 1, 1], [2, 2, 2]])

print(a + b)

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 1, 1], [2, 2, 2]])

print(a / b)

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 1, 1], [2, 2, 2]])

print(a ** 2)

Pregunta

A nivel de array tenemos dos operaciones:

  • a.dot(b) multiplica la matriz a por la matriz b si sus dimensiones son las adecuadas.
  • a.T traspone la matriz a.

¿Cuál de los siguientes códigos nos proporciona el resultado siguiente?

[[1 4]
[2 5]
[3 6]]

Respuestas

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 1], [2, 2], [3, 3]])
print(a.dot(b))

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 1], [2, 2], [3, 3]])
print(b.dot(a))

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([[1, 1], [2, 2], [3, 3]])
print(a.T)

Habilitar JavaScript

5. Donde cabe uno caben cuatro

¿Sabes que incluso puedes dibujar múltiples gráficos en una misma figura? ¡Vamos a investigar cómo hacerlo! Basándote en el ejemplo superior que has conocido al ver la biblioteca Matplotlib (mostraba las temperaturas), en este ejercicio debes crear la gráfica que te mostramos a continuación, donde se muestran las temperaturas de las dos ciudades del ejemplo anterior en dos tipos de diagramas diferentes. Ten en cuenta para conseguirlo las indicaciones que dispones a la derecha. ¡Puedes hacerlo!

Imagen con un cuadro subdividido en cuatro gráficas. En las dos gráficas superiores aparece un gráfico lineal en el que se indica la temperatura de un lugar de lunes a domingo. La gráfica de la izquierda es de color azul y la de la derecha de color naranja. Debajo se incluyen los mismos valores en un gráfico de barras manteniendo los mismos colores.

Atención a la indicación, ¿cómo se hace?

Para dibujar varias gráficas en distintos lugares de una misma figura, cuando se inicializa la figura y los ejes, hay que pasarle a la función subplots el número de filas y columnas de la tabla que contendrá los gráficos. Con esto los distintos ejes se organizan en un array y la variable anteriormente utilizada ax será ahora una matriz de 2x2  en este ejercicio.  Se puede acceder a cada uno de ellos a través de sus índices (ax[0, 1], por ejemplo). Si se quiere que los distintos ejes compartan los mismos límites para los ejes se pueden pasar los parámetros sharex = True para el eje x o sharey = True para el eje y en la misma función subplots.

Lumen dice Alguna pista...

- El comando subplot tendrá en este caso la forma: fig, ax = plt.subplots("número de filas", "número de columnas", sharey = True)

- Además, el cuadro superior derecho sería, por ejemplo: ax[0, 1].plot(dias, temperaturas['Cádiz'], color = 'tab:orange')