ELF>`-@@ @8 @@@@@@88@8@@@ ww4 wwTT@T@DDPtdWWQtdRtdww((/lib64/ld-linux-x86-64.so.2GNUGNUK0)h -Ќx閃(JMNORS46V:?PKE'G&vyc}~$WXZ[\]%_`b#!*+,./0Bt)359<DHefghik7o; 21rI@>=zp^uqTUmsFdCA 8n {YLxj lQ a"w|-* `?@0H0AP`   *+,-./012358:=@BEILNOQRSTUVWXY[\]^_`acdefghijlmopqruvwyz|}~w1Ny1Ny1N{1N{1N}1N}1N/1hs/1hs< "11hs< "01hs21hs? "21hsT/e? "V/e@ "51hs@ "51hs 61hsC "61hs C "D "g1D "ʼn1Nۗ1NG1Nۙ1Nۙ1Nۛ1Nۛ1N۝1N۝1N2b1NۍeO1hsQ1hsQ1hsS1hsS1hsU1hsĹ@U1hsW1hsV1hs9Y1hsK1N۲o1NqX1N۹1Nۺ1Nۧݣk1N~1N۽1Nۿ1Nۿ1Nq1hsq1hss1hsr1hsIu1hsu1hsw1hsw1hsy1hsy1hsgf#ͭK|R1NG-U1NU1NW1NBEW1N Y1NY1N[1N[1N : ]1N`d 1hs1hs.ś1hs1hs1hs1hsk|1hs1hs1hs1hsl`k CkYt1NkYu1Nv1NoI  To[}/OKVD%grthK1u @L1uR`L1u*M1usM1u& N1uj`N1ux xxx(xx0xh *@ 8xxM@xXxQx`xxHxxnPxIc@!Xx/xe`x^ d@,P@}x6x BA1uPxx`A1u,B1uVB1u! x C1u`C1u4D1uvD1u; D1u`aE1uN1utO1uP.@4 O1uZ`_P1uP1uIQ1u Q1ur`4R1uR1uN`-@S1uhpx}hxpxxxUxxx xxmxx=(xxMHx S1u E@T` T1u x>~T1uT1u iU1u! x`U1uk O@"SV1uKV1u >W1u6`WCxx9xxH@xxxFxx1x_PO@ J@"9e@`xd@ E1uR@X KF1u F1u{`6G1u x"G1ud@ H1u H1uc` I1u:I1uJ 8xI1uhxxxd@xvxxx ]@x^x5xxK@>H8xg@1u kJ1u@@e#`J1uUK1u`P@libdl.so.2__gmon_start___Jv_RegisterClasseslibm.so.6libpthread.so.0closeopen64__errno_locationlseek64readwritelibc.so.6strncmp__strdupclosedir__stack_chk_failunlinkmkdirreallocgetpidchmodstrtokstrlenmemsetstrstrrmdir__fprintf_chkmemcpymalloc__strncpy_chkopendir__xstat64__ctype_b_locstderrgetuidreadlinkexecvp__memcpy_chkreaddir64__sprintf_chkmemmoveaccessstrcmp__libc_start_mainfree__environlibcrypt.so.1par_current_execsize_load_my_libperl_16par_basenamesize_load_my_par_1__libc_csu_finisize_load_my_libperl_21size_load_my_libperl_8size_load_my_libperl_25size_load_my_libperl_29size_load_my_libperl_30size_load_my_libperl_34size_load_my_libperl_4size_load_my_libperl_41size_load_my_libperl_38size_load_my_libperl_0par_env_cleansize_load_my_libperl_45size_load_my_libperl_49par_current_exec_procpar_dirnameget_username_from_getpwuidsize_load_my_libperl_11par_cleanupsize_load_my_libperl_15size_load_my_libperl_19size_load_my_libperl_20size_load_my_libperl_9size_load_my_libperl_24size_load_my_libperl_28_IO_stdin_used__data_startsize_load_my_libperl_33size_load_my_libperl_37my_mkfilesize_load_my_libperl_5size_load_my_libperl_40size_load_my_libperl_1size_load_my_libperl_44size_load_my_libperl_48size_load_my_libperl_10size_load_my_libperl_14size_load_my_libperl_18name_load_my_par__libc_csu_initsize_load_my_libperl_27size_load_my_libperl_23name_load_my_libperlsize_load_my_parsize_load_my_libperl_36size_load_my_libperl_32__bss_startsize_load_my_libperl_2size_load_my_libperl_43size_load_my_libperl_6size_load_my_libperl_47size_load_my_libperl_17size_load_my_libperl_13size_load_my_par_0_endsize_load_my_libperl_26size_load_my_libperl_22par_mktmpdirsize_load_my_libperl_35size_load_my_libperl_31_edatapar_setup_libpathpar_findprogsize_load_my_libperl_42size_load_my_libperl_3size_load_my_libperlsize_load_my_libperl_7size_load_my_libperl_46size_load_my_libperl_39par_init_envsize_load_my_libperl_12GLIBC_2.2.5GLIBC_2.4GLIBC_2.3GLIBC_2.3.49 ui zii ii ti  ui w xj(xnxxxx x(x0x 8x @x Hx Px Xx`xhxpxxxxxxxxxxxxxxxxx x!x"x#x$x%x& x'(x(0x)HJ9H5 7% 7@% 7h%7h%7h%7h%7h%7h%7h%7hp%7h`%7h P%7h @%7h 0%7h %7h %7h%7h%7h%7h%z7h%r7h%j7h%b7h%Z7h%R7hp%J7h`%B7hP%:7h@%27h0%*7h %"7h%7h%7h% 7h %7h!%7h"%7h#%7h$%7h%%7h&1I^HHPTId@H d@H ]@HHI7HtHÐUHSH=p7uKwHj7HwHHH9s$fDHHE7wH77H9r#7H[fff.UH=7HtHtwÐHt(HHW0HD@8 HDHufff.ULO81SHHt$@I HIHIA%L IIAL IIAL II HNLIHA%L IH8I(AL H HDNHH@sHVhHhHBH3H3BH3BHHHH HJHH9uLHO HL$HWH_HwLLHHH LyZHHHH!H!Ht$H LAHHHHH H!H\$HL!H LLyZLHHLH LF LHHH LL̓HH!H!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$ȃH!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL H$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$ H!H HyZHHHHH ؉,LIHHL HIH!HT$(I!L LyZHHHHH F HHHH L΃HHH1H1HnLHH HHHH HD$0HH1HL$8L1H0nHHHHH ,0LIHL IIHH1HT$@H1H1nHHL ɍ41HHHH IIHH1HD$HH1HnHHL ʍHHHH IكHH1H1IHL$PH(nHHL AB,HHHH IIHH1HT$XH1H1nHHL ɍ41HHHH IIHH1HD$`H1HnHHL ʍHHHH IكIHH1H1H(nHHL AHL$hB,HHHH IIHH1HT$pH1H1nHHL ɍ41HHHH IIHH1HD$xH1HnHHL ʍHHHH IكIHH1H1H(nHHL AB,HHHH H$IIHH1H$H1H1nHHL ɍ41HHHH IIHH1H$H1HnHHL ʍHHHH IكIHH1H$H1H(nHHL AB,HHHH IHH1IH$H1H1nHHL ɍ41HHHH IIHH1H$H1HnHHL ʍHHHH HH1H$H1L(nHHHHH F HHHH HH1H1H1nLLHHH$H ,1HHHH ރHH1H$L1H nHHHHH LIHL ɃHH1H1LnHHHHH HHF HܼH HH$II!Ht5HH H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$II!III I!M IN HIHL F HHHH HH$II!Ht5HH H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$II!III I!M IN HIHL F HHHH HH$IHt5HH I!H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$II!III I!M IN HIHL F HHHH HH$II!Ht5HH H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$ II!III I!M IN HIHL F HHHH HH$(II!Ht5HH H!L MH,.LIHL AB,HHHH HH$0II!H HH L!L IHHIHL эLIHL IL$8II!III I!M IN HIHL F HHHH HH$@II!Ht5HH H!L MH,.LIHL AB,HHHH HH$HII!H HH L!L IHHIHL эLIHL IL$PIIII I!I!M IN HIHL F HHHH HH$XH$`II!Ht5HH H H!L MH,.LIHL AB,HHHMH IHHH H!L!IH HHHHHH M ʍbAHH$hIIHLH1H1H HHL IHD HH$pII LAHH42LL1H1H,LHH ʉ, HHHH HH$xHHHL1L1LHHHH HƍLIHL ڃH$N HH1H1M1HIIHL FHHHH HH$MIHL HH1H1H,)LHL AF HHHH HH$LHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIFHH$HL L݃HH HH1L1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIFHH$HL L݃HH HH1L1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIHFHL H$LHH HH1L1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIFHH$HL L݃H HH1HL1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$HIL H$H43HH1H L1H,LLHHH ,3LIHLL MHIHL H1L1IHHIHL FLo_wW HoH_HwHW H[]DLd$L|$IH\$Hl$ILl$Lt$H8Hu+1H\$Hl$Ld$Ll$ Lt$(L|$0H8fDL57Mt<=t]ItVIAE<=tuE)IHtMcL@LLHuB<+=tHH]HufhE1L)JD+HA/Kfff.H7t H@Ht$ 1e@Ht"t<0ռ7H1fff.UHSHH\$ HcD$ HH7HHHHPu1HHsHuH[]H\$Hl$1Ld$Ll$HLt$L|$HH>=IHH%Ht$ AL1HHt[HDH9HEHu1H\$Hl$ Ld$(Ll$0Lt$8L|$@HHfH=ɻ71H?Ht fHH8uuHcH7t'HIH}7LcuKrfDH{7HItLcH5D7HJL5-7KDl$ A$=LufDtH=fuE)HH-޺7A|$HHEOT$ H7HA$t$<=t I<=tA$HIu=HfHHull$ ALkfSe@H@dH%(HD$81HH\$ HD$HHD$HHD$ HHD$(fD$011e@1e@1(e@1/e@1?e@1Ke@1e@1Te@1^e@1he@1ue@1~e@1H޿e@/HtHƿTe@11H޿e@ HtHƿe@11H޿e@HtHH I}HHHH ~8Hcп=f@Htu" HDA:fDI1e@e@1MhM$M[f@HH1HD$ f@1yP8uQfD$MMif@HH1HD$ f@\$'HjtLKe@H1HH$dH3%(HD$8HĘ[]A\A]A^A_1LD$0HwL$|$0L$u$C |$011L$,ùܺHDŽ$#EgH$IU8H$ȀH$ЀHDŽ$؀vT2HDŽ$HDŽ$DŽ$8HT$@fD|$0LH$HcH$$8 H9H$LHHH$H$tf@)Hc9NH|$@HcL$(HHD$H$8L$(ȃ@$8YHT$HL)I4Ht$(Ht$(@?1DHLH$HTH$HTH$HTH$HT H$HT(H$ HT0H$(HT8HD$ Ht$(H$0HD$ Ht$(H@)ƒ?l@H)Ht0@H|$@HcӹH$8^fDL$ f@fI,$I}=HE1tHHItf.MmMLHItBf@DHHD$ sHD$ HfHD$8@I]ZH$&f@1HNHtH!HHD$0H}H?uHD$0zf@|$0'H$L$HH?HcЃ8Ƅ:81)HI|8HcLLD$3H$7L$q$0LH$1LH$2HH$4HH$5HH$@H$6IH$I(Hˆ$sHAЈ$pHH$qHH$ȀH$rHˆ$wH$tHH$uHH$ЀH$vHˆ${H$xHH$yHH$؀H$zHˆ$H$|HH$}HH$H$~Hˆ$H$HH$HH$f.EEIH1EVf@HHL9uH$@Ƅ$hHD$ f@H$MMGf@HH1ME8@1)HI<HcLD$(|LLD$(1LH$A$C$H$E|$0H|$0)LOHD$ f@L<$+xAVAAUIATUSH@dH%(HD$81LqHHhHt$e@1H-գ7HXI}HLt'H2HP@8 HDHuI}LD$HHHtW7H7`W$ H|$Hl$ Ef@1H1Hue@NE~IM1@Aعf@H11HI4$1HIA9H|$LHT$8dH3%(uAH@[]A\A]A^ÐDAIMH=;7IغW1/H\$Hl$Ld$H(H$dH%(H$1zAf@Af@1Hy<1H$dH3%(HuhH$H$L$ H(@HHAxA|$HcHHtMcHHL{B#ffffff. fffff.Hl$Ld$H-7L%7Ll$Lt$L|$H\$H8L)AIHIcHt1@LLDAHH9rH\$Hl$Ld$Ll$ Lt$(L|$0H8ÐUHSHH7HtwDHHHuH[ÐHHPAR_CLEANPERL5LIBPERLLIBPERL5OPTPERLIOPAR_INITIALIZEDPAR_SPAWNEDPAR_TEMPPAR_DEBUGPAR_CACHEPAR_PROGNAMEPAR_ARGCPAR_ARGV_0PAR_GLOBAL_DEBUGPAR_GLOBAL_TMPDIRPAR_TMPDIRPAR_GLOBAL_TEMPPAR_GLOBAL_CLEANPAR_CLEAN=1%s/%sLIBPATHDYLD_LIBRARY_PATH..par-C:\TEMP/tmpTEMPDIRTMPUSERUSERNAME%s%s%s%sparl.par%s%scache-%s%s%02x%s%stemp-%u%s%s%stemp-%u-%u%sSYSTEMPAR_ARGV_%iexe/proc/%i/%slibperl.so.5.10/:__ENV_PAR_CLEAN__ ELF>%@@@8 @@@@@@88@8@@@ ``X ``TT@T@DDPtd,,@,@QtdRtd``88/lib64/ld-linux-x86-64.so.2GNUGNUz[ [*B`as CIH g>9 c2UVOhqL?`1Wb^ PrZNDaTAl -S5EG@'"=K#oi\;M04Bm[F]*</3jfek!d( )6R$,X.Y+J_78p%:&nQO @B( O  8M OQV[\cegilnpqrzJk" nFG-k|.śd||A qXGoK?,|l`j CևffŹ@ĉCE ղq_{2b : ݣk Izw 2n 79,b~?5/4]A\#NQ2B PH+oCTc ix j`#@z`h`@ L@J`P@' FL@+{E@Z@^@@@@N@4 @j`&@4>@L`@2^@-v ``G@6%x`p#@K@ K`L!`c`_@!@O@c@[+%@:_@' x`M!`J@"D@I@libperl.so.5.10__gmon_start___Jv_RegisterClassesPerl_sys_termPerl_Istatbuf_ptrPerl_sys_init3Perl_Iexit_flags_ptrPerl_save_destructor_xPerl_Icompcv_ptrPerl_atfork_lockPerl_Icurstackinfo_ptrperl_constructPerl_croak_nocontextPerl_Iparser_ptrPerl_av_shiftPerl_sv_2pv_flagsPerl_Itop_env_ptrPerl_Itainted_ptrPerl_sv_setpvnPerl_newSVpvPerl_newXS_flagsPerl_Iin_eval_ptrPerl_Iop_ptrPerl_Ieval_root_ptrperl_freePerl_mg_setPerl_atfork_unlockPerl_sv_setpvPerl_Gthr_key_ptrPerl_Gdo_undump_ptrPerl_Iperl_destruct_level_ptrPerl_gv_fetchpvperl_runPerl_dounwindPerl_newXSperl_destructPerl_av_fetchboot_DynaLoaderperl_parsePerl_safesysmallocperl_allocPL_memory_wraplibdl.so.2libm.so.6libpthread.so.0pthread_getspecificcloseopen64__errno_locationlseek64readlibc.so.6__register_atforkexitstrncmp__strdupclosedir__stack_chk_failunlinkmkdirreallocmemchrgetpidstrtokstrlenmemsetstrstrrmdirmemcpy__strncpy_chk__lxstat64opendir__xstat64__ctype_b_locgetuidreadlinkexecvp__memcpy_chkreaddir64__sprintf_chkmemmoveaccessstrcmp__libc_start_main__environlibcrypt.so.1_edata__bss_start_endpar_current_execpar_basename__libc_csu_finiXS_Internals_PAR_BOOTpar_env_cleanpar_current_exec_procpar_dirnameget_username_from_getpwuidpar_cleanup_IO_stdin_used__data_startxs_init__libc_csu_initname_load_my_par_plXS_Internals_PAR_CLEARSTACKsize_load_my_par_plpar_mktmpdirpar_setup_libpathpar_findprogpar_init_envGLIBC_2.4GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.4GLIBC_2.2.5`ii ii ri ti ui ui ` `f`a```` `(`0`8`@`jH` P` X` ``h`p`x```````````````` `!`"`#`$`% `&(`'0`O8`d@`(H`)P`*X`+``,h`-p`.x`/`0`1`2`3`4`5`6`7`8`9`:`;`<`=`>`?`@`A`B`C `D(`E0`F8`G@`HH`IP`JX`K``Lh`Mp`NH;E?H5 % @% h% h% h% h%ڮ h%Ү h%ʮ h%® hp% h`% h P% h @% h 0% h % h % h% h%z h%r h%j h%b h%Z h%R h%J h%B hp%: h`%2 hP%* h@%" h0% h % h% h% h% h % h!% h"% h#%ڭ h$%ҭ h%%ʭ h&%­ h'p% h(`% h)P% h*@% h+0% h, % h-% h.% h/%z h0%r h1%j h2%b h3%Z h4%R h5%J h6%B h7p%: h8`%2 h9P%* h:@%" h;0% h< % h=% h>% h?% h@% hA% hB% hC%ڬ hD%Ҭ hE%ʬ hF%¬ hGp% hH`% hIP% hJ@% hK0% hL % hM% hN1I^HHPTI_@H_@HǐL@HH HtHÐUHSH=x uK`Hr H`HHH9s$fDHHM `H? H9r+ H[fff.UH=/ HtHt`ÐHt(H;HW0HD@8 HDHufff.ULO81SHHt$@I HIHIA%L IIAL IIAL II HNLIHA%L IH8I(AL H HDNHH@sHVhHhHBH3H3BH3BHHHH HJHH9uLHO HL$HWH_HwLLHHH LyZHHHH!H!Ht$H LAHHHHH H!H\$HL!H LLyZLHHLH LF LHHH LL̓HH!H!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$ȃH!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL H$H!˃HL$H!H HLyZHHHHH HFLIHHL H!HT$H!H LyZLLHHH LF HHHHH LH!ÃLH!H HyZLLHHH Lˍ42LIHHL HD$H!˃HL$ H!H HyZHHHHH ؉,LIHHL HIH!HT$(I!L LyZHHHHH F HHHH L΃HHH1H1HnLHH HHHH HD$0HH1HL$8L1H0nHHHHH ,0LIHL IIHH1HT$@H1H1nHHL ɍ41HHHH IIHH1HD$HH1HnHHL ʍHHHH IكHH1H1IHL$PH(nHHL AB,HHHH IIHH1HT$XH1H1nHHL ɍ41HHHH IIHH1HD$`H1HnHHL ʍHHHH IكIHH1H1H(nHHL AHL$hB,HHHH IIHH1HT$pH1H1nHHL ɍ41HHHH IIHH1HD$xH1HnHHL ʍHHHH IكIHH1H1H(nHHL AB,HHHH H$IIHH1H$H1H1nHHL ɍ41HHHH IIHH1H$H1HnHHL ʍHHHH IكIHH1H$H1H(nHHL AB,HHHH IHH1IH$H1H1nHHL ɍ41HHHH IIHH1H$H1HnHHL ʍHHHH HH1H$H1L(nHHHHH F HHHH HH1H1H1nLLHHH$H ,1HHHH ރHH1H$L1H nHHHHH LIHL ɃHH1H1LnHHHHH HHF HܼH HH$II!Ht5HH H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$II!III I!M IN HIHL F HHHH HH$II!Ht5HH H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$II!III I!M IN HIHL F HHHH HH$IHt5HH I!H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$II!III I!M IN HIHL F HHHH HH$II!Ht5HH H!L MH,.LIHL AB,HHHH HH$II!H HH L!L IHHIHL эLIHL IL$ II!III I!M IN HIHL F HHHH HH$(II!Ht5HH H!L MH,.LIHL AB,HHHH HH$0II!H HH L!L IHHIHL эLIHL IL$8II!III I!M IN HIHL F HHHH HH$@II!Ht5HH H!L MH,.LIHL AB,HHHH HH$HII!H HH L!L IHHIHL эLIHL IL$PIIII I!I!M IN HIHL F HHHH HH$XH$`II!Ht5HH H H!L MH,.LIHL AB,HHHMH IHHH H!L!IH HHHHHH M ʍbAHH$hIIHLH1H1H HHL IHD HH$pII LAHH42LL1H1H,LHH ʉ, HHHH HH$xHHHL1L1LHHHH HƍLIHL ڃH$N HH1H1M1HIIHL FHHHH HH$MIHL HH1H1H,)LHL AF HHHH HH$LHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIFHH$HL L݃HH HH1L1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIFHH$HL L݃HH HH1L1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIHFHL H$LHH HH1L1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$IHL ڃH43HH1L1LLLHHH LIFHH$HL L݃H HH1HL1HLHH DLHH$IHL LՃHHHH1L1HLHH D LHH$HIL H$H43HH1H L1H,LLHHH ,3LIHLL MHIHL H1L1IHHIHL FLo_wW HoH_HwHW H[]DLd$L|$IH\$Hl$ILl$Lt$H8Hu+1H\$Hl$Ld$Ll$ Lt$(L|$0H8fDL5 Mt<=t]ItVIAE<=tuE)IHtMcL@LLHuB<+=tHH]HufhE1L)JD+HA/Kfff.H1Ht$ Hff.Hޓ t H@1`@Htt<0 HD1@UHSHH\$ HcD$ HH HHHHPu1HHcHuH[]Hl$Ll$HH\$Ld$H8IH`@dH%(H$1JPLcB<$tuLcL/HHte18?LHHHH$dH3%(uQH$H$ L$(L$0H8u@1a8LHHLDH158H181Ҿ@@HHPS18qHyH1HX8TH 1C 88H@H1HX8HH1@ f%fC"}8HH1HX`81Ҿ(b@H1HC(?8HH1HX"8H#H1HC08~HH1HX8aH1H8t 18CHHHHS818H'H1H@H@@8HH1H@H@H\8HH1HX?8HHHCP[AVAUATUHSHHt?uHĐ[]A\A]A^@HHtHHLp@99H1LI&A|HcMHII蹠`@H1HLtD$%=@LLHTHLHHHĐ[]A\A]A^AV:"f.AF:AF:fLx_SH18HHH¿t 1[fD1Q8HR@%=@t%1,8H-@%=uH߾[H\$Hl$Ld$H8 H$dH%(H$ 1A`@A`@1H8y<1H$ dH3%(HuhH$ H$( L$0 H8 @HHAxA|$HcHHtMcHHLB#ffffff. ff.H\$Hl$1Ld$Ll$HLt$L|$HH>=IHHEHt$ AL1HHt[H#DH9HEHu1H\$Hl$ Ld$(Ll$0Lt$8L|$@HHfH=Y 1H?Ht fHH8uuHcHc t'HIH LcuKrfDH+ VHItLcH5ԋ HJ$L5 KDl$ A$=LufDtH=fuE)HH-n A|HHEOT$ HL HA$t$<=t I<=tA$HIu=HfHHull$ ALkfAWAVAUIATA`@US`@HXL=HD$ `@HD$(`@Hl$0HD$0`@HD$8`@HD$@`@HD$H(b@(LHHD$HtK;t4HEIHH1L.Ht8u1LL';uHX[]A\A]A^A_LLHD${HT$IHkHL$J|1HYHT$IHMMa@1H$H1ɉLHHt2L(AE u18L1HH P9O1`8'b@HHHt6H@1H(,8)b@HHHCHC@418vEa@HHHt;1&a@HI'HC1H(8*LHH18H61|8H a@H1ZHH؅ H}tt +H[]A\A]f.18oLH9n p18BHHwfx[fDHH) 1L HCH(8LHH+H= Hۄ HCH- L AD$ tID$HHMHCHC t>HCHH 鿨b@H01/H Hw b@H0118R1HH 1801LHafH18.b@`#@8b@HHCH1U8H1?8A(b@E1ɺZ@LTb@HHH s Ht H r X1fffff.Hl$Ld$H-n L% n Ll$Lt$L|$H\$H8L)AIHIHt1@LLDAHH9rH\$Hl$Ld$Ll$ Lt$(L|$0H8ÐUHSHHm Ht`DHHHuH[ÐHHPAR_CLEAN/proc/self/exe..%s/%s/proc/%i/%sLIBPATHDYLD_LIBRARY_PATHPERL5LIBPERLLIBPERL5OPTPERLIOPAR_INITIALIZEDPAR_SPAWNEDPAR_TEMPPAR_DEBUGPAR_CACHEPAR_PROGNAMEPAR_ARGCPAR_ARGV_0PAR_GLOBAL_DEBUGPAR_GLOBAL_TMPDIRPAR_TMPDIRPAR_GLOBAL_TEMPPAR_GLOBAL_CLEANPAR_CLEAN=1par--e--C:\TEMP/tmpTEMPDIRTMPUSERUSERNAME%s%s%s%sparl.par%s%scache-%s%s%02x%s%stemp-%u%s%s%stemp-%u-%u%sSYSTEMARGVperlperlxsi.cDynaLoader::boot_DynaLoaderInternals::PAR::BOOT/:__ENV_PAR_CLEAN__ ib@kb@%s: execution of %s failed - aborting with %i. %s: creation of private temporary subdirectory %s failed - aborting with %i. Cpar.pl#!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if 0; # not running under some shell package __par_pl; # --- This script must not use any modules at compile time --- # use strict; #line 158 my ($par_temp, $progname, @tmpfile); END { if ($ENV{PAR_CLEAN}) { require File::Temp; require File::Basename; require File::Spec; my $topdir = File::Basename::dirname($par_temp); outs(qq{Removing files in "$par_temp"}); File::Find::finddepth(sub { ( -d ) ? rmdir : unlink }, $par_temp); rmdir $par_temp; # Don't remove topdir because this causes a race with other apps # that are trying to start. if (-d $par_temp && $^O ne 'MSWin32') { # Something went wrong unlinking the temporary directory. This # typically happens on platforms that disallow unlinking shared # libraries and executables that are in use. Unlink with a background # shell command so the files are no longer in use by this process. # Don't do anything on Windows because our parent process will # take care of cleaning things up. my $tmp = new File::Temp( TEMPLATE => 'tmpXXXXX', DIR => File::Basename::dirname($topdir), SUFFIX => '.cmd', UNLINK => 0, ); print $tmp "#!/bin/sh x=1; while [ \$x -lt 10 ]; do rm -rf '$par_temp' if [ \! -d '$par_temp' ]; then break fi sleep 1 x=`expr \$x + 1` done rm '" . $tmp->filename . "' "; chmod 0700,$tmp->filename; my $cmd = $tmp->filename . ' >/dev/null 2>&1 &'; close $tmp; system($cmd); outs(qq(Spawned background process to perform cleanup: ) . $tmp->filename); } } } BEGIN { Internals::PAR::BOOT() if defined &Internals::PAR::BOOT; eval { _par_init_env(); if (exists $ENV{PAR_ARGV_0} and $ENV{PAR_ARGV_0} ) { @ARGV = map $ENV{"PAR_ARGV_$_"}, (1 .. $ENV{PAR_ARGC} - 1); $0 = $ENV{PAR_ARGV_0}; } else { for (keys %ENV) { delete $ENV{$_} if /^PAR_ARGV_/; } } my $quiet = !$ENV{PAR_DEBUG}; # fix $progname if invoked from PATH my %Config = ( path_sep => ($^O =~ /^MSWin/ ? ';' : ':'), _exe => ($^O =~ /^(?:MSWin|OS2|cygwin)/ ? '.exe' : ''), _delim => ($^O =~ /^MSWin|OS2/ ? '\\' : '/'), ); _set_progname(); _set_par_temp(); # Magic string checking and extracting bundled modules {{{ my ($start_pos, $data_pos); { local $SIG{__WARN__} = sub {}; # Check file type, get start of data section {{{ open _FH, '<', $progname or last; binmode(_FH); my $buf; seek _FH, -8, 2; read _FH, $buf, 8; last unless $buf eq "\nPAR.pm\n"; seek _FH, -12, 2; read _FH, $buf, 4; seek _FH, -12 - unpack("N", $buf), 2; read _FH, $buf, 4; $data_pos = (tell _FH) - 4; # }}} # Extracting each file into memory {{{ my %require_list; while ($buf eq "FILE") { read _FH, $buf, 4; read _FH, $buf, unpack("N", $buf); my $fullname = $buf; outs(qq(Unpacking file "$fullname"...)); my $crc = ( $fullname =~ s|^([a-f\d]{8})/|| ) ? $1 : undef; my ($basename, $ext) = ($buf =~ m|(?:.*/)?(.*)(\..*)|); read _FH, $buf, 4; read _FH, $buf, unpack("N", $buf); if (defined($ext) and $ext !~ /\.(?:pm|pl|ix|al)$/i) { my ($out, $filename) = _tempfile($ext, $crc); if ($out) { binmode($out); print $out $buf; close $out; chmod 0755, $filename; } $PAR::Heavy::FullCache{$fullname} = $filename; $PAR::Heavy::FullCache{$filename} = $fullname; } elsif ( $fullname =~ m|^/?shlib/| and defined $ENV{PAR_TEMP} ) { # should be moved to _tempfile() my $filename = "$ENV{PAR_TEMP}/$basename$ext"; outs("SHLIB: $filename\n"); open my $out, '>', $filename or die $!; binmode($out); print $out $buf; close $out; } else { $require_list{$fullname} = $PAR::Heavy::ModuleCache{$fullname} = { buf => $buf, crc => $crc, name => $fullname, }; } read _FH, $buf, 4; } # }}} local @INC = (sub { my ($self, $module) = @_; return if ref $module or !$module; my $filename = delete $require_list{$module} || do { my $key; foreach (keys %require_list) { next unless /\Q$module\E$/; $key = $_; last; } delete $require_list{$key} if defined($key); } or return; $INC{$module} = "/loader/$filename/$module"; if ($ENV{PAR_CLEAN} and defined(&IO::File::new)) { my $fh = IO::File->new_tmpfile or die $!; binmode($fh); print $fh $filename->{buf}; seek($fh, 0, 0); return $fh; } else { my ($out, $name) = _tempfile('.pm', $filename->{crc}); if ($out) { binmode($out); print $out $filename->{buf}; close $out; } open my $fh, '<', $name or die $!; binmode($fh); return $fh; } die "Bootstrapping failed: cannot find $module!\n"; }, @INC); # Now load all bundled files {{{ # initialize shared object processing require XSLoader; require PAR::Heavy; require Carp::Heavy; require Exporter::Heavy; PAR::Heavy::_init_dynaloader(); # now let's try getting helper modules from within require IO::File; # load rest of the group in while (my $filename = (sort keys %require_list)[0]) { #local $INC{'Cwd.pm'} = __FILE__ if $^O ne 'MSWin32'; unless ($INC{$filename} or $filename =~ /BSDPAN/) { # require modules, do other executable files if ($filename =~ /\.pmc?$/i) { require $filename; } else { # Skip ActiveState's sitecustomize.pl file: do $filename unless $filename =~ /sitecustomize\.pl$/; } } delete $require_list{$filename}; } # }}} last unless $buf eq "PK\003\004"; $start_pos = (tell _FH) - 4; } # }}} # Argument processing {{{ my @par_args; my ($out, $bundle, $logfh, $cache_name); delete $ENV{PAR_APP_REUSE}; # sanitize (REUSE may be a security problem) $quiet = 0 unless $ENV{PAR_DEBUG}; # Don't swallow arguments for compiled executables without --par-options if (!$start_pos or ($ARGV[0] eq '--par-options' && shift)) { my %dist_cmd = qw( p blib_to_par i install_par u uninstall_par s sign_par v verify_par ); # if the app is invoked as "appname --par-options --reuse PROGRAM @PROG_ARGV", # use the app to run the given perl code instead of anything from the # app itself (but still set up the normal app environment and @INC) if (@ARGV and $ARGV[0] eq '--reuse') { shift @ARGV; $ENV{PAR_APP_REUSE} = shift @ARGV; } else { # normal parl behaviour my @add_to_inc; while (@ARGV) { $ARGV[0] =~ /^-([AIMOBLbqpiusTv])(.*)/ or last; if ($1 eq 'I') { push @add_to_inc, $2; } elsif ($1 eq 'M') { eval "use $2"; } elsif ($1 eq 'A') { unshift @par_args, $2; } elsif ($1 eq 'O') { $out = $2; } elsif ($1 eq 'b') { $bundle = 'site'; } elsif ($1 eq 'B') { $bundle = 'all'; } elsif ($1 eq 'q') { $quiet = 1; } elsif ($1 eq 'L') { open $logfh, ">>", $2 or die "XXX: Cannot open log: $!"; } elsif ($1 eq 'T') { $cache_name = $2; } shift(@ARGV); if (my $cmd = $dist_cmd{$1}) { delete $ENV{'PAR_TEMP'}; init_inc(); require PAR::Dist; &{"PAR::Dist::$cmd"}() unless @ARGV; &{"PAR::Dist::$cmd"}($_) for @ARGV; exit; } } unshift @INC, @add_to_inc; } } # XXX -- add --par-debug support! # }}} # Output mode (-O) handling {{{ if ($out) { { #local $INC{'Cwd.pm'} = __FILE__ if $^O ne 'MSWin32'; require IO::File; require Archive::Zip; } my $par = shift(@ARGV); my $zip; if (defined $par) { open my $fh, '<', $par or die "Cannot find '$par': $!"; binmode($fh); bless($fh, 'IO::File'); $zip = Archive::Zip->new; ( $zip->readFromFileHandle($fh, $par) == Archive::Zip::AZ_OK() ) or die "Read '$par' error: $!"; } my %env = do { if ($zip and my $meta = $zip->contents('META.yml')) { $meta =~ s/.*^par:$//ms; $meta =~ s/^\S.*//ms; $meta =~ /^ ([^:]+): (.+)$/mg; } }; # Open input and output files {{{ local $/ = \4; if (defined $par) { open PAR, '<', $par or die "$!: $par"; binmode(PAR); die "$par is not a PAR file" unless eq "PK\003\004"; } CreatePath($out) ; my $fh = IO::File->new( $out, IO::File::O_CREAT() | IO::File::O_WRONLY() | IO::File::O_TRUNC(), 0777, ) or die $!; binmode($fh); $/ = (defined $data_pos) ? \$data_pos : undef; seek _FH, 0, 0; my $loader = scalar <_FH>; if (!$ENV{PAR_VERBATIM} and $loader =~ /^(?:#!|\@rem)/) { require PAR::Filter::PodStrip; PAR::Filter::PodStrip->new->apply(\$loader, $0) } foreach my $key (sort keys %env) { my $val = $env{$key} or next; $val = eval $val if $val =~ /^['"]/; my $magic = "__ENV_PAR_" . uc($key) . "__"; my $set = "PAR_" . uc($key) . "=$val"; $loader =~ s{$magic( +)}{ $magic . $set . (' ' x (length($1) - length($set))) }eg; } $fh->print($loader); $/ = undef; # }}} # Write bundled modules {{{ if ($bundle) { require PAR::Heavy; PAR::Heavy::_init_dynaloader(); init_inc(); require_modules(); my @inc = sort { length($b) <=> length($a) } grep { !/BSDPAN/ } grep { ($bundle ne 'site') or ($_ ne $Config::Config{archlibexp} and $_ ne $Config::Config{privlibexp}); } @INC; # File exists test added to fix RT #41790: # Funny, non-existing entry in _<....auto/Compress/Raw/Zlib/autosplit.ix. # This is a band-aid fix with no deeper grasp of the issue. # Somebody please go through the pain of understanding what's happening, # I failed. -- Steffen my %files; /^_<(.+)$/ and -e $1 and $files{$1}++ for keys %::; $files{$_}++ for values %INC; my $lib_ext = $Config::Config{lib_ext}; my %written; foreach (sort keys %files) { my ($name, $file); foreach my $dir (@inc) { if ($name = $PAR::Heavy::FullCache{$_}) { $file = $_; last; } elsif (/^(\Q$dir\E\/(.*[^Cc]))\Z/i) { ($file, $name) = ($1, $2); last; } elsif (m!^/loader/[^/]+/(.*[^Cc])\Z!) { if (my $ref = $PAR::Heavy::ModuleCache{$1}) { ($file, $name) = ($ref, $1); last; } elsif (-f "$dir/$1") { ($file, $name) = ("$dir/$1", $1); last; } } } next unless defined $name and not $written{$name}++; next if !ref($file) and $file =~ /\.\Q$lib_ext\E$/; outs( join "", qq(Packing "), ref $file ? $file->{name} : $file, qq("...) ); my $content; if (ref($file)) { $content = $file->{buf}; } else { open FILE, '<', $file or die "Can't open $file: $!"; binmode(FILE); $content = ; close FILE; PAR::Filter::PodStrip->new->apply(\$content, $file) if !$ENV{PAR_VERBATIM} and $name =~ /\.(?:pm|ix|al)$/i; # Do not let XSLoader pick up auto/* from environment $content =~ s/goto +retry +unless +.*/goto retry;/ if lc($name) eq lc("XSLoader.pm"); } outs(qq(Written as "$name")); $fh->print("FILE"); $fh->print(pack('N', length($name) + 9)); $fh->print(sprintf( "%08x/%s", Archive::Zip::computeCRC32($content), $name )); $fh->print(pack('N', length($content))); $fh->print($content); } } # }}} # Now write out the PAR and magic strings {{{ $zip->writeToFileHandle($fh) if $zip; $cache_name = substr $cache_name, 0, 40; if (!$cache_name and my $mtime = (stat($out))[9]) { my $ctx = eval { require Digest::SHA; Digest::SHA->new(1) } || eval { require Digest::SHA1; Digest::SHA1->new } || eval { require Digest::MD5; Digest::MD5->new }; # Workaround for bug in Digest::SHA 5.38 and 5.39 my $sha_version = eval { $Digest::SHA::VERSION } || 0; if ($sha_version eq '5.38' or $sha_version eq '5.39') { $ctx->addfile($out, "b") if ($ctx); } else { if ($ctx and open(my $fh, "<$out")) { binmode($fh); $ctx->addfile($fh); close($fh); } } $cache_name = $ctx ? $ctx->hexdigest : $mtime; } $cache_name .= "\0" x (41 - length $cache_name); $cache_name .= "CACHE"; $fh->print($cache_name); $fh->print(pack('N', $fh->tell - length($loader))); $fh->print("\nPAR.pm\n"); $fh->close; chmod 0755, $out; # }}} exit; } # }}} # Prepare $progname into PAR file cache {{{ { last unless defined $start_pos; _fix_progname(); # Now load the PAR file and put it into PAR::LibCache {{{ require PAR; PAR::Heavy::_init_dynaloader(); { #local $INC{'Cwd.pm'} = __FILE__ if $^O ne 'MSWin32'; require File::Find; require Archive::Zip; } my $zip = Archive::Zip->new; my $fh = IO::File->new; $fh->fdopen(fileno(_FH), 'r') or die "$!: $@"; $zip->readFromFileHandle($fh, $progname) == Archive::Zip::AZ_OK() or die "$!: $@"; push @PAR::LibCache, $zip; $PAR::LibCache{$progname} = $zip; $quiet = !$ENV{PAR_DEBUG}; outs(qq(\$ENV{PAR_TEMP} = "$ENV{PAR_TEMP}")); if (defined $ENV{PAR_TEMP}) { # should be set at this point! foreach my $member ( $zip->members ) { next if $member->isDirectory; my $member_name = $member->fileName; next unless $member_name =~ m{ ^ /?shlib/ (?:$Config::Config{version}/)? (?:$Config::Config{archname}/)? ([^/]+) $ }x; my $extract_name = $1; my $dest_name = File::Spec->catfile($ENV{PAR_TEMP}, $extract_name); if (-f $dest_name && -s _ == $member->uncompressedSize()) { outs(qq(Skipping "$member_name" since it already exists at "$dest_name")); } else { outs(qq(Extracting "$member_name" to "$dest_name")); $member->extractToFileNamed($dest_name); chmod(0555, $dest_name) if $^O eq "hpux"; } } } # }}} } # }}} # If there's no main.pl to run, show usage {{{ unless ($PAR::LibCache{$progname}) { die << "." unless @ARGV; Usage: $0 [ -Alib.par ] [ -Idir ] [ -Mmodule ] [ src.par ] [ program.pl ] $0 [ -B|-b ] [-Ooutfile] src.par . $ENV{PAR_PROGNAME} = $progname = $0 = shift(@ARGV); } # }}} sub CreatePath { my ($name) = @_; require File::Basename; my ($basename, $path, $ext) = File::Basename::fileparse($name, ('\..*')); require File::Path; File::Path::mkpath($path) unless(-e $path); # mkpath dies with error } sub require_modules { #local $INC{'Cwd.pm'} = __FILE__ if $^O ne 'MSWin32'; require lib; require DynaLoader; require integer; require strict; require warnings; require vars; require Carp; require Carp::Heavy; require Errno; require Exporter::Heavy; require Exporter; require Fcntl; require File::Temp; require File::Spec; require XSLoader; require Config; require IO::Handle; require IO::File; require Compress::Zlib; require Archive::Zip; require PAR; require PAR::Heavy; require PAR::Dist; require PAR::Filter::PodStrip; require attributes; eval { require Cwd }; eval { require Win32 }; eval { require Scalar::Util }; eval { require Archive::Unzip::Burst }; eval { require Tie::Hash::NamedCapture }; eval { require PerlIO; require PerlIO::scalar }; } # The C version of this code appears in myldr/mktmpdir.c # This code also lives in PAR::SetupTemp as set_par_temp_env! sub _set_par_temp { if (defined $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/) { $par_temp = $1; return; } foreach my $path ( (map $ENV{$_}, qw( PAR_TMPDIR TMPDIR TEMPDIR TEMP TMP )), qw( C:\\TEMP /tmp . ) ) { next unless defined $path and -d $path and -w $path; my $username; my $pwuid; # does not work everywhere: eval {($pwuid) = getpwuid($>) if defined $>;}; if ( defined(&Win32::LoginName) ) { $username = &Win32::LoginName; } elsif (defined $pwuid) { $username = $pwuid; } else { $username = $ENV{USERNAME} || $ENV{USER} || 'SYSTEM'; } $username =~ s/\W/_/g; my $stmpdir = "$path$Config{_delim}par-$username"; mkdir $stmpdir, 0755; if (!$ENV{PAR_CLEAN} and my $mtime = (stat($progname))[9]) { open (my $fh, "<". $progname); seek $fh, -18, 2; sysread $fh, my $buf, 6; if ($buf eq "\0CACHE") { seek $fh, -58, 2; sysread $fh, $buf, 41; $buf =~ s/\0//g; $stmpdir .= "$Config{_delim}cache-" . $buf; } else { my $ctx = eval { require Digest::SHA; Digest::SHA->new(1) } || eval { require Digest::SHA1; Digest::SHA1->new } || eval { require Digest::MD5; Digest::MD5->new }; # Workaround for bug in Digest::SHA 5.38 and 5.39 my $sha_version = eval { $Digest::SHA::VERSION } || 0; if ($sha_version eq '5.38' or $sha_version eq '5.39') { $ctx->addfile($progname, "b") if ($ctx); } else { if ($ctx and open(my $fh, "<$progname")) { binmode($fh); $ctx->addfile($fh); close($fh); } } $stmpdir .= "$Config{_delim}cache-" . ( $ctx ? $ctx->hexdigest : $mtime ); } close($fh); } else { $ENV{PAR_CLEAN} = 1; $stmpdir .= "$Config{_delim}temp-$$"; } $ENV{PAR_TEMP} = $stmpdir; mkdir $stmpdir, 0755; last; } $par_temp = $1 if $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/; } sub _tempfile { my ($ext, $crc) = @_; my ($fh, $filename); $filename = "$par_temp/$crc$ext"; if ($ENV{PAR_CLEAN}) { unlink $filename if -e $filename; push @tmpfile, $filename; } else { return (undef, $filename) if (-r $filename); } open $fh, '>', $filename or die $!; binmode($fh); return($fh, $filename); } # same code lives in PAR::SetupProgname::set_progname sub _set_progname { if (defined $ENV{PAR_PROGNAME} and $ENV{PAR_PROGNAME} =~ /(.+)/) { $progname = $1; } $progname ||= $0; if ($ENV{PAR_TEMP} and index($progname, $ENV{PAR_TEMP}) >= 0) { $progname = substr($progname, rindex($progname, $Config{_delim}) + 1); } if (!$ENV{PAR_PROGNAME} or index($progname, $Config{_delim}) >= 0) { if (open my $fh, '<', $progname) { return if -s $fh; } if (-s "$progname$Config{_exe}") { $progname .= $Config{_exe}; return; } } foreach my $dir (split /\Q$Config{path_sep}\E/, $ENV{PATH}) { next if exists $ENV{PAR_TEMP} and $dir eq $ENV{PAR_TEMP}; $dir =~ s/\Q$Config{_delim}\E$//; (($progname = "$dir$Config{_delim}$progname$Config{_exe}"), last) if -s "$dir$Config{_delim}$progname$Config{_exe}"; (($progname = "$dir$Config{_delim}$progname"), last) if -s "$dir$Config{_delim}$progname"; } } sub _fix_progname { $0 = $progname ||= $ENV{PAR_PROGNAME}; if (index($progname, $Config{_delim}) < 0) { $progname = ".$Config{_delim}$progname"; } # XXX - hack to make PWD work my $pwd = (defined &Cwd::getcwd) ? Cwd::getcwd() : ((defined &Win32::GetCwd) ? Win32::GetCwd() : `pwd`); chomp($pwd); $progname =~ s/^(?=\.\.?\Q$Config{_delim}\E)/$pwd$Config{_delim}/; $ENV{PAR_PROGNAME} = $progname; } sub _par_init_env { if ( $ENV{PAR_INITIALIZED}++ == 1 ) { return; } else { $ENV{PAR_INITIALIZED} = 2; } for (qw( SPAWNED TEMP CLEAN DEBUG CACHE PROGNAME ARGC ARGV_0 ) ) { delete $ENV{'PAR_'.$_}; } for (qw/ TMPDIR TEMP CLEAN DEBUG /) { $ENV{'PAR_'.$_} = $ENV{'PAR_GLOBAL_'.$_} if exists $ENV{'PAR_GLOBAL_'.$_}; } my $par_clean = "__ENV_PAR_CLEAN__ "; if ($ENV{PAR_TEMP}) { delete $ENV{PAR_CLEAN}; } elsif (!exists $ENV{PAR_GLOBAL_CLEAN}) { my $value = substr($par_clean, 12 + length("CLEAN")); $ENV{PAR_CLEAN} = $1 if $value =~ /^PAR_CLEAN=(\S+)/; } } sub outs { return if $quiet; if ($logfh) { print $logfh "@_\n"; } else { print "@_\n"; } } sub init_inc { require Config; push @INC, grep defined, map $Config::Config{$_}, qw( archlibexp privlibexp sitearchexp sitelibexp vendorarchexp vendorlibexp ); } ######################################################################## # The main package for script execution package main; require PAR; unshift @INC, \&PAR::find_par; PAR->import(@par_args); die qq(par.pl: Can't open perl script "$progname": No such file or directory\n) unless -e $progname; do $progname; CORE::exit($1) if ($@ =~/^_TK_EXIT_\((\d+)\)/); die $@ if $@; }; $::__ERROR = $@ if $@; } CORE::exit($1) if ($::__ERROR =~/^_TK_EXIT_\((\d+)\)/); die $::__ERROR if $::__ERROR; 1; #line 1012 __END__ ;ggd~DTltT4 Ą<dTTtdԉԋ4dTtěğ $D<dTtlzRx f4$4fkAGG$\}M[@E}D }LD ~IACAD0EP~MQ c0@D XAB,$ BBB A(CA0GETAClV@H؃$Ѓ'YNPO4؅6BBB CB(FA0A8EDD@"D4 DCLACAD l+AD0]4BBB CB(CF0A8G S4' BBB B(A0A8CLЃ$ؗBDA A(D0$-D<țJDTl$Q_@FU @ h`@@o@@@  `hp@(@H o@oo@`!@!@&!@6!@F!@V!@f!@v!@!@!@!@!@!@!@!@!@"@"@&"@6"@F"@V"@f"@v"@"@"@"@"@"@"@"@"@#@#@&#@6#@F#@V#@f#@v#@#@#@#@#@#@#@#@#@$@$@&$@6$@F$@V$@f$@v$@$@$@$@$@$@$@$@$@%@%@&%@6%@F%@V%@f%@v%@%@%@%@%@%@%@%@8c@[GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment 8@8T@T !t@t$8@X4o@> @ F@No@[o@j(@(Htp@ph ~ @ y @ %@%x:h`@h``@`^ ,@,@``````x`x(` 0#ELF>@@8@ &&6&6 WW6W6$$PtdAAQtdRtd&&6&699GNU ?AAA98t8cf ]fP7S0zFBC) Yh j!oN+RScDLYtX%Gr># L<e NiB}L^9?P@.CTfkK7H  5pprwdq.mm)Xq*a![Xq'&}h+t=\EHu2ac 9=kb"RYrvb&uiQk6P l_IOvve[hs4.A{4=Qx~m)}cmQ9C:Tzp"j=I]g}r/e'7@.8PxLz A2|4DL}n8,qOfZ=$u] `x ao*m"T>/$G.RBT!i^]` #aKh_K2^@_0+NEYcn6xlGTN4|j% Jk~v?3@7.{2y>9_%^&&Chfg_~3 #~w Dt7+&:g=YS{WV"Dxg<QXI3>/ W`?`)OqK*H?ey,pRXi%~SfK.|-Bl,f%YN`B W"C=sl(5: ( %6!^+)Pd*O78yyjeT}L<TA (:y<"9Q@Wn(N\Q:n9s$M!$I2ogJOhstCA%\1X 'bc[| v,m#L~ eYEhWe&R<_nxosUcd-pdH; ript';:s=-kKuUsc(R 5N/J0SM;:[hFTBrv#Z -2oV'w(j2/)eE p`aG )@8 9k8L;sO= m@D {;2,y\ZA03p4U5A$z*F|&n/vA~QMFRU5OMX?As'ChcE<0M  8kr2 _5J  ;gqzXl1-,:>k*%!#.zIw^3M*Q 4ug n5r[%v` iKi!qO0V:#JT5Sd;F bJZ JyL\.b#8 l7BH|WY|a]4\MMzY(Poml/&HtMk>^160>yNDqV|w/Z?>dG#gv8qUV \u6' `o[-ZP$]wE6^Kb+,eF<}I;"bBE9 f4) D -Z3;1Z/,SIl"SI+w w[1J$8+-7W0[G3(_V?&0C]DHlP?Bj_U1t1{y6H+d3$~)U aRbfUW{!HDC*I$7u@joGF6uux'Gjm]AFr4i3Ed5|i(Jt{[, }oXxpQa@ RgtzKUO1"'n!\>{6W~b Sd}wzEV{xP1^ZFVj]NnG? <\a*<-`9Vl  BR`P3" B@P$!0XRhADhPAH 0J `L0)v!29" @ hp@'C>@%A5@B!-2 @@ "A'H0J`4`(#P1( ! A1 p-بQ  0!a A|A F;  `La: PeDd4HD"T $d @!0*JB!$`@  + B$! @L( D@ FJbBQDE 0C88@P "1 B  `cBvBD4bɡH * F@S& GB(@!& 8@@ L@N@ FЈ( Pg" @`0h"(K058DD#@*RcD-kP0 %DDA$A(%@P  r@#$i0M1L%b H<@HXB *tH@0@\#a!BĀ"i@H B8B$8X""U `x%! A @$! )@u H( 0 $J#D@E P$DBHP( B$H A`$P@@H@ Cdd@ B,b(R" a a `1H0P 8"@ HAH C D"!`H P @8@IP 1P0 *@A Bd$R'`P"PHA`$@1A 1 q(4F! ` "@%89mDN#D mH ( Q_ F@HeY"C D"H!8 hO`LQ2,&@ܢ%  @@T  CQ$ 2%B @Dc@QBG.(B1j ! B""H"5QBp ` 1@  0!Q @0 @7 A$J4 @JP,0TeRE  DHBL QU$IʄpJ @@#YJFyI@@mA D%(8T H@s@1(H &% !CAU@ gB<*2$!'X젊$B@ 0@!A@@rP $8P0  9)A<(5 [B@@@(u#P @@A`( H1-,XѰ`E!B #(Lp@ '@P@@   !%',-045:;<?@DFHLOQSUVWY[]acghjknpqrtuw{}   "'(+,./257:;>BEKMRUZ\^`bcdeghkmnpqtwxyz}  #$'()*+,-03579:<>?@CDEIKMPQSTXY[\]`begklmoqtwyz{|    %&(*+03468>?BCEGJMNOPRTXY[\^dgjmqstwxyz{|}  !"#%)*,/4589;>ABCEFHKLMNOQRTUXYZ[`bcdiqrtwxy{}~ !#$&*,/13567:;>?CEFILOQSUXY[^adfghikoptwxz~   %'*+-0159:<>?ACGJKMNRUWXY[]^_cfhjlopqtwxz|}   "$)-034569=>?BFHLRTUVZ\^`cegimopruynƎFPZ@WdOawQ῀!e:3 ̿Դ$ZFm<Y.o,b%ic㍉\P<= % >P ͜&j[a.nkت̓i*}-@au Yg.N$عxڰTAA0Z< mh.Rz/c8 ͤvTb>}L=׉\+(PI F#_ˇe΀^lHӀBΉ.U#j_Ywቌk7gaQ9s-;q~7)z7Xz 6'd:|]Du) Pga]#_)b'ǓJ*clQxנYW.IGKC?!D1-ք-P,sJEיִRٻfZP6Wx=fUnk o\bmY D!%yGD"ހL2Qno Vn uer@^ƽaY^2whNK6OZhjXHxĝ^P\=L8ٙ]]©atoc!$~<n5QpQB5RtA xTY!JZ,jv2T>]G@YF|JԌNhG8 K'֮`GV5S-eGlb̶c~OnqD 7}=CE ]nY$9(9G-;u|'T \ܟVYŰҥ`Io#_$b tfJFA1 g]DY$yf!*#Q8|B}VIYN"xItYz+(PnBHOΎh7LYn|e0>msK}fgo*80{(Qs~:|:&!| dk2'+jMHWr@(G_n?  0rem&.4w?yw.lE\<=|LJ?yy 2^LO;:j<{Җl .ϥ[%'~2kYj $/v94Ayk#}U/J *\ldQP\$:g.?&(_^&fxCs2$2?bha bY^+RîT8IXq 6A mni DI̛Y~>o}MxhwQpaz`}nƞ7?=)̼'驪q!}a@[.:zW7@8G iĮX=YsJfdgP1h=PMCPb *žnY$ T0boQ/AO 8~pMTganzŸ(T\I ˖๚*RDX%UnHC؅D)E0KJs/N}"5>mAEL@/^ sԑ'9hao*͗ YY^?zl}/N~dm:'p #ړrU=.`E>mDxTF_{hp*v@b);v,U_+yxjm1((k\'Jgᮼ}qX% ?BDqYU| DŽZZ55\!1W*ͽל=cD6A:M4̉N1+=J-]Sw *7q3xuq̠jgV }6ELFPֶ37(ԛ])2eI6x9 |Y-qfnend_3c:\cഛODomXFQE Hd(Vȇղ1MVD op>Y'V:m 4!| ,5;Շ6dBG<쐑zF>&3Cq#V Sg@{oSx@Rr9\Ae8#什R*ΗLYxGUIb-'xdӻ=sHP@?x7+Bݜu<=NyⴷƌY7i,Mtpݙmc +C[jPCYq}r-z(>HDAJYo"})I]f/i N(`9A|2Ky۾XDIcto8Cҫ{haJW,MhtI>E&}@B4d(h>nv+.llA)I.XsJ:Y{6hFvKdn2a7]3hkfFsғOq@eo*ivȿ#^kjYڅr[FGd/h%4ac1fOd9e1_G=a"hS<_6}jE]2娵)Z4W1= ⿚tU0q'C'ޕq(wu%Bxj 88~T]WNd SCE힐W=|]xU $_y r7fP,pRh0# W\P'j}_M^u͋ )J{H+m`Iipy2,ļL"~N$' 3xvtè\qY -pb L| $׌[0Eyztir dpUsx':b\~$Cf4 Vlcso ŋ~[Y;@ [~Y$CjR;c~hSX r7QU I.w{>o8 !;-gFn  =i`Tl2Gb'-31ֿhf2LQL_0mi0ΧX~e6Wq4oNJJe2 /@d|` ŝtmY=hg2}а̥ L\)ĉk[†8[QQ65ekpɯ@}~HbvTIN8=};J"hY_AkT0IF7QOZBrB™)H޿^/]U=iG~uB.V$f)P5 _V=D|NYCLYd?K L& 19{uDHY O,3@k/kBRz="~6R` )VJ4[ -_DX o/s)2 =F_e}Zb+u\u0)?"]sk䝚37Ak)Dv6W}L-6ڳW$<ˀMk]A< @H;dǤXI G)}_WYGeZ DJkąSM?&WUI٘L&ҩUA<Ȟ㤭Yab2/Wnڗ|,P3b`W~vUV ٫[a 8;(%|GR$SѻJ%mT$OG(G7&ñq<U)J?$J1iղq3iڬi#A8#(O;\ iWJHNV OJ5BBE60MbB+V55{|NvŅo/Wn< ._gUC~,s)R:|YQkDg̜NP+D.Hʻn˘OrDǣKl2d_'h `K /WnhmMz&laYJA HL ;SLkUܓ͖=OOkJksK‹(g[,̛  v<=^<1X]ƮhOhQ}_;z|B x~ԟ88L^7ᐛ*R0&fxZzch_Fۦk KiI :FƿRHyɢֆKI)6Hӄ0;#ɮsKQsܪN}@CTz7;o`] !:V))-:!ZЂUeCZu7c#"N>zV<"ou{@XDx@-d=f,U֍`%l58+̜,;: 7A13-7eb*#7Zj*Jaos>VHni뽜ژR:m>mKޟc ovlL9zcUVY|#w\00LV%>LG!cn4m\86mp> -OC$`_acg)X,H0d6&ZdHhŊdL\;85]eWs4Ld.[{{*wɴpnKC̶Rw(+^}_.?1>IbæS9ML|?߫ʟ/BD9@^> sO2] dvH<KS˩;1eCZy}`5lں9;#.MԸbI? p!'j*EF?2Dk!c =$ Z7^ˆU1/?BETZ$U#$*!avDT 7= 0l@"f}Mf:[1Cq}j{ӌ_24ϽK k;{(+s͛YhP5S3՛ޱ,}_Ͻ8XۼKSJIR!>Q+x`>;vFDzF ѕn;EJ'y<;R4{Z8l'ZM/~Z` #S-[M/S9)zIv,+&8YlP'%ϋWxi|$2]UYK:dVK_nJpOZ7Wo[!Gkru%MTGv7B@%Oq`AILa˱:iziGAg@c"QsY;WiK 6jPF:g6bsf?uvJ_ZRy|N. q'B97l`Y9{q(P[:cOnDe(^ӢX+ =(e}X!E<0IhazJkHڅrsFxo]݌ik*P2:. (T5%6D ³n21鄾׫"iܛ|#IJl#MP {Z){TFH:_ޚʒha~" OdVC>?A }O[ 6i Zx3Cٸ,Dto[V0(j,KCWJ}X.F~}ؤPx]}1&)Q9SnX`Ei+*^P>EXjhu⍸2[maTPĤ*,1˼O|+@8"&Ŷ!e0bXלPn^ i5 "YCB)kvA1ANJ՜BD x(aIHs7P\fA\Tz`^:H 0 ?E pM Jl @:K ^_O c `X C  H . ]h6' Z  I\A r X% 08W d_9 u N `p:  ~- ` :  +B @ 1Z yw @eQ `fD  LR TMu /Iw 78]M6 > !iw л]f6 `0ۇ h, 0 ~O 0 @  0Y}H O   5 rd 328- ! \  h6( 7 A/\+9 K ^iI #I * A  1uW p\]@  Pe= p @;~ V0   g < f /G ` s 0?R p?+ C ?~ ! E u 0A _ d 31 =  @I P< j/ ' h Pp R9 l : `J%I zP 05-e: PS P1O#. !* )   ;RXC p )  p,! _M u A H !  2v(  z qW @gD2 h 7^ /5 1 kH @ aq @>9  p?[} 6KE N %; 0( l ta p1t7 ` z$ 5q =(  z|  gW@ 0DI ? '`6@M pFW5B ! @7 0nD & _Bs P?  EKh 6J A .  =A p @^ P/ P^- 0 fz `d 3> ,7 3' 6@ Z s oiq =L зz  k Ph] p_ V+ O s ? P tE a #j 9A p <! 0V @Z]Li 7 PPiE i 6G  0}F/T DS Ay co P<N p "  q? | !#@*6K| {/, `^X  v p8  cZ4 Y PKV `Y]v 0N H; 1 u @py @P e 0 k^ .D $H 0 ~ ?) ! 1C W be 4` @0} W =C  z pK}@6H   -8 % K` p0E n rZo < e P4] @.A&`6@x X7 8 @e] b`` 00z Pm 0;3 @;q >F hcV X]7 p Z PSl *[ ]d 3:Q @(|  ! Pt r >XD ! H 0gQ x{8 ` v co8 ~aS ,6^g 069  r L6 p  ВL  =M 0R* `) B  @nQ >O o5> ` Ii  @$Ob `21 ] B h@|O ZoF _L @"]j6 a 15; + gG@4X g~ dp `^ # pu8PZ ; , i 8S\ A 0R @ZO? \ D 0< ?փ dsC Vj  PO {j+ T c 3O= ;? Z | @f 5  ! Z s@ _i  pM. 9 02B  6 @s b @2]l P:*{ y9 ,m : Wo? p^ cu A JE ] mh 7B  Y `>8; P/ q `> `jj vhL$ `c  P Y pp 6b; 0- mH <5 6, K Q 0nx:` `0Fr >f 0l n <E Z MP'6@x (?0 " 8 Հ A APP) " ?) u#C S Z Ф- ur >| `hPJ \P6)~  `B $" P 1f< 0n -A=  T e @ ~ = 6@~l p:w `g `eT PEaA }@6  2=!( 6@ ` lX 0[/ ? 0}  0taՂ 0a*o k L!g 6 0{ GXm ;qA Z  s ? ^ H) $ z Ph U~  1 S+ i L&6@a 1&`6@w ;_ /R  W `2I`'6g 6"4 % )K p^hv A~R >I PZ  ; F I 0h  #M6`= pv а 9# в7 <Ek `9h e 0-Cc P3\ IW ctP +V7 ` 0f p5  C.  @U8 P g `6U# @ G !(  95:`#  R2  ; hh `7<  P: ^ /}6>, 4 * K ~: PV X]* p) fX `]'R @g 6E \ w) " nL Zw ` . P M8 з < M |9 P Zp P=sJ s P GP `">1 YGH6bK pd` 0,s @?- U PW8H: @ , 'V pX*@U  V Y " 0X&6@6P F Uw  @>" ` *> @ E  LSv 2  ` |hc 2? l @B P', R`J , ` 5 1f 5  Oa* . f(  6 o Uc 2U FW/(   k% 0 A  P {B P'_ 0 71E L lT P5-  Pj] 0.|u @FN \@6  `=v A4 P Dc 2 6"@ [ 0 i y wW [l :ˁ ^ ^ ` {  i -P  @*  0>:f% # &  (~ p+ P P* F z Pfl :6 i9d 3R `_  0O /@ p =5  [E 5t i?  e @m  + `  p@ )  4 ai @8 ]\ m! p ' `a1m :B  n <^[ `63 ps)F v @ $0z  = P ! @'6@' ` NE g I" H; ^iT pDI 4] )[ pis p?"4 d{ P+ ] U VLK[  po  +:+ PL 60 a h 7F z o <1  `} : `! SF { r#W []J  FA(   E F ^ 0/t% v   Z Эj_ /Ip =y Py: h P7 ^c 03} pit @(  6 4 W 5 P1 Ac `3Q uL r6 pd  EAA E  ow pe< c B"`6o <i 7 Џ-  pXz\ e  pb%^ /*| V ` \H6G rP 0Rv Ap =G6 B % P gB *Q _/ o  l} B#& `g i >:(  UH  a}6 ))S g pl bp'6@$  b,% 7G_ / (  ݉ m`M 8 l :/ ` ) @  nFg 6(/  k 9v p7P 04 Z  0BP*a 1i 7Q <IC i %} [ Z 42 "@  ? V UI@ p2  3D ew_ /Z_ /F ) i"u @9  P.2  tv_ `/i 08t @' 0 4g 6/ AZ 0f\| 0(6*5  ok 9Ft @ d  `~  u8} P_ ` 0> 0Q QC  h _  N1 p hFo p<| b c 21e `4 I :@! % x 5 ". ` /= 0   g$Q 0l xaQ @y r `W 0# k P}6W pc} 6g 6- { wYt 0@ 0@I ND p+ h(`6@=  |ņ g0  @|a `1>Z b 2U Vp p=O 0{  @  `=h! 0?  !w  p J ЪAyM V 0Z @ 7   i # }9 l) @% to <k 9ku @`  6('f 5! _ hv< c Uu @8 EY 0r@R $  OG; + w Q '  Fy! | [u @AU F , ~ sX jH Z Б7l\ < C  ЌZ 8S e^W `\}L n ;Y< U  P @; 3 :&6@  dc5 @! )i 7E pY BZY tVC p 4JW \] gv `AP p-H# ` 7,I - C  9 f>J @}$ `f{ c @3 u [ #: @ rp, -J n*- p p P @ 5 / oS 7-2 ` ! " `  % ,L `+ df 5 pE&j 8i P8Fb 2X n^ . + `{ "0` 0k :  fy) "  <C 0 T; P,   Z7 D 3 7i 7x Z~`6{ `U @  = h 07 p2b 1pg @6Hn ;k N Z 2 d4_ /n 0<  v `oy 2 `  T`8 [ Y.Q @?_ /y  5%8@L] - Q0 Jg 6-* ) }R0 0  | 0h6P fG (6@* 3 Y  po Q Ph1 0% $Z V Z]R !T 0E e Э4h ` a( >y ,N Y PE G  pcXc 2$ cQM4 p aX e~F u A< Pf k 9PU VL$ `r ?+ V > Ioi 7‹ JR E a, h{4 V6('  F4 7wU pVLA D h 0eZ  p#z ; `1 jg p6  -e p} 6e. u` 0 iI G ` p 7 2D  L [w  /  |e 41 F @ Vf Pg- )e 4me 47 h 6 p r;%? Y XuE PV ~ JN  |  u 3{ _] . gh 7 _C  A :X esn ;i- P @ I P  @=h @7w  @ F6 0f -  9% 7X o% `6 b W$ pcI fT :N Zl 0al :@  0, P ~ @Jj 8  05VNd 3Q5 P3  Pn}6 0j0EF `y @D 0 e 4E P-<, Ā Aa 10 @ B %|  <_ /m P;M * ? / ` / з q h5W [%< O  MH J 1 ` : g0 at @bk 9ڄ e;| @p| @݊ p & 6@'6@r ?[ @T `?; 0 & 6@p9 0 iu A<. @ ~b P2 @ FQ `C5  O Um `;A  o R |X n9 P }x "V- (z  ;S PZm b  PfTP $? BoJf @5CT 0DN p7"   \P(  U|  У{c 2 A9l 0: w  k [h 7g4  (K dk  n ;(  [ +U MK} |G s  9m @;[e 4]= 7w M @N  Y $ o n <L `) @" j  p  e @4K 3 `QF> % Ic PiuV PY  ^w 4  pC  Ss `?b~ 5F }   .! ?  i~ja'`6@x q7 P O p  o <   _ d 4I 83x 0QDK dY `| > + ,# obU PVu @W b   C  TC P L  0V^ .M p, gI O'c@ R  Xv* ]tz ^n ;Qa @1@ ZM KM jJ Az> 0( V(P q@ `U\e6)   V [] f8 J dX P~^ .z   |2 W+ @X A x  s 0__u"   \| ~ prv5 * =8 D: *j# Э&6@ 7e ,S \]#9 P \d6I >N   [> pU MR" @H Zp 0= 2 W  KMS a_? @]   frb 2} a'd 39     f 0P, 5 < K EO i 8  8 i `8   pg  / (j 8+r >  6& & , 2~Z  `22&`6@) t; P. ^ .o  plk 9` 0/- $ 0Jb  l  'k 9t P@l :&6@gC dC  . lNL [NI Pp = d_ 0  B t ?I =  #l6q m  j p8 3_L x =  ' PVą f\I   . @ aM D D E2$ ` tp `=s ? pG+ ^|0 0 ;t& 6@/) P! ̈ i ('6@A P_G kt p@*0 pR6 z `: 0  о ? $ wr p>:H @ rN  ! O U W\86{ `1? r ZD T Yw7 P} x Ԇ g6 g -h 5V p = 0H5 1 ?4 s ?A ȫ6Zz  k  @ Z|} ` \ |1. :   ( *N ]1 bn ; ` 4&  u7} n64  L P 91@ {N ut2@B B6P QR y  `d A Hy bB p \%: 0 + `JQ r &2 } L n= cj`6(/ eP (4 ( U W]N N @'`6@ N  ) R 6Y ppދ 0^F D^ .+L Ʉ ed 04 ~ @ ``Jm :e W\+L j], z 9x \`(6 c o @<g 5g 5 @  P] S p}> &  R C <(6@4 P 5 p d 4 W  W] Ptx Hx 2&6@>U M] P.~ bG7 Л O  0EC   { @ + a   0 w  0 `n2t @ q ==G 'w `Q2 :   @&c 2 .106X lE,h6ȉ m YH P  З W> p' eA  qX7y u'6@B 84 S W b#B 0 t'$ dG  "h 6$>  Id 4 0 g4 x ,8 P Yf 5=a 01/ @ =H  '8 d6(/ @ ` P+ Y Y 0fk 9$ s> Q 1 DtI< @Q v 8 P] NV Xn ;mN 0i 8; P" ? z X6z p^O~ 0  pZz  0imj 9?- S @QmT 0'F  5 e 4 Z T D{ - 0V X; `7 {> XG97 s ?f 5 b  &+ K F t q P>@ @ c y p6 `H U 0WM `6 _ . :@J @6 G`Z 6 P M  `. CG д H @ ?  O @f7 Н 4 `  a0n е =< J _N ] g? } lN p\ ^ 0pp h&6@ gF [ .K! i}] .vj 8460 9?  pZ V ~0 @_   $ A p kx #\T6ˊ p ^ "+    1Ka o  bf 5F  P5G b 1b p2^i 7*0 4 @ *6 @= x{ p\ `cEz v P _J#  V P*O, Hqo <r[ `g> ' IZ @h1 0 #a 1q > p@B  w $S [9C, -9   a'. oZ 0by P U*  !D  $[ L ) W (  # '`6@"b 1y D' 6@5Y q  k# H% @ x. %Z6 G  PD 05 E7 P 5 1 A&y [Z ` <  %( q7  TW% P$ H dsG |K d 2R poX"PSX h~Mj 8#6( .>  E:/ s ?/^ .j @f f (  0of `5< d 3 }(H rF ~ 066P x Pl  G l ~; b  5y% PU$ b 02& p/ a 1& . , dO $ " 0 pSk p9~ Ip <p @R) # T ExI , PruS P',A }A P XY {jqm ;  e_ 0 MB oCi1  `f vq p ; 9 0  0o `< `p9 ;  >j 8R W \'6@ZE R  pfY x CF s ?`5 6 mg P6u~ @5V ^ ^ ;! ` ,ڈ i 0 P I| 0y( V gbe -f 5Yx K @U1 ` I| PR2  @Zr >:  _j 8* 7 S @]cD p# _` po G  }6^ @/ ~ @e 4;O ` 0Y `/~4h 6B9 Z3R `*L @Qʇ h  ΋ J 0p-  eS P.k 9 &9 } @z W  e8 rG `} He p4c 3yD 0* _b ]w  <  Is ?'7 Г H|F 0} gx #>\! zmp @=t `@ $ (27  `p E s [f P5S(    0e sQ Y-  n"P1 2 ^9M RD 7 5 0f   hV Y]؁ ^ P `7 MH* p* f 5fa P1]" ULf0  6d p3V: )  mR @ peK P^g D   gP P9K* ? O jOq =T g$ b I  { ^R@ pU{ p7o < uhY @w    P} DN POH ` H0 > `P I+ `J  3 azq >ZQ L 3n ;G p ; p  ` ` z J Ve{# PL IMM  0b BC 0ip =. E \ 4  Xk 09w &T D ja 1] `.  4p =6k P9q ={ 1< G @ 0Q;[ hv :< Bw% * tt @@8 7P ] p.{ x  i18 hS l < f . $T E&! p7| ~l | #`6"= Н lO ~ +:f 05(k @9 i! ? A +v pAKG P ^ .K P7N !m| PTA |T Dh p7s ?J A? P2 J&` P0* 05 qG  >`6P 0{sr >A 0 Z L *l :ED   f5 .  0< l __gmon_start___fini__cxa_finalize_Jv_RegisterClassesPerl_linklistPerl_sawparensPerl_cv_const_svPerl_ck_concatPerl_ck_nullPerl_ck_svconstPerl_custom_op_descPerl_newSVivPerl_sv_2mortalPerl_hv_commonPerl_sv_2pv_flagsPL_op_descPerl_custom_op_namePL_op_namePerl_sv_newmortalPerl_gv_efullname4Perl_ck_bitopPerl_ckwarnPerl_warnerPerl_newMYSUBPerl_save_pushptrPerl_croakPerl_messPerl_qerrorPerl_ck_matchPerl_pad_findmyPerl_av_fetchPerl_formPerl_yyerrorPerl_ck_rvconstPerl_gv_fetchsvPerl_sv_freePerl_pad_allocPL_ppaddrPerl_ck_anoncodePerl_pad_add_anonstrrchrPerl_push_scopePerl_save_pptrPerl_save_I32Perl_av_create_and_pushPerl_call_listPerl_pop_scopePerl_av_create_and_unshift_onePerl_stack_growPerl_op_const_svPerl_newSVsvPerl_cv_ckproto_lenPerl_ckwarn_dPerl_sv_setpvnPerl_sv_catpvfPerl_sv_catpvn_flagsPerl_op_refcnt_lockPL_op_mutexpthread_mutex_lockPerl_croak_nocontextPerl_op_refcnt_unlockpthread_mutex_unlockPerl_block_startPerl_pad_block_startPerl_save_hintsmemcpyPerl_gv_stashpvPerl_mg_findPerl_safesysfreePerl_op_freePerl_refcounted_he_freePerl_op_clearPerl_cv_undefPerl_pad_undefPerl_newXSPerl_gv_fetchpvPerl_newSV_typePerl_mro_method_changed_inPerl_gv_fetchfilePerl_newXS_flagsstrlenPerl_safesysmallocPerl_sv_usepvn_flagsPerl_sv_setpvPerl_savepvnPerl_newCONSTSUBPerl_save_vptrPerl_save_sptrPerl_savesharedpvPerl_packagePerl_save_hptrPerl_save_itemPerl_gv_stashsvPerl_sv_setsv_flagsPerl_newPMOPPerl_av_lenPerl_av_popPerl_sv_setivPL_checkPerl_av_pushPerl_sv_2iv_flagsmemcmpPerl_pmtransPerl_newSVpvnPerl_utf8n_to_uvuniqsortPerl_uvuni_to_utf8_flagsPerl_swash_initPerl_bytes_to_utf8Perl_newSVuvPerl_hv_common_key_len__stack_chk_failPL_memory_wrapPerl_ck_ftstPerl_pad_freePerl_pregfreePerl_pad_swipePerl_op_nullPerl_peepPerl_newSVpvn_sharePerl_sv_backoffPerl_refcounted_he_fetchPerl_gv_AVaddPerl_scalarvoidPL_opargsPerl_scalarPerl_scalarkidsPerl_deprecate_oldPerl_sv_2nvstrncmpPerl_dorefPerl_oopsHVPerl_oopsAVPerl_refkidsPerl_modPerl_save_pushi32ptrPerl_newSVpvn_flagsPerl_refcounted_he_newPerl_ck_returnPerl_newPVOPPerl_newPADOPPerl_newGVOPPerl_newSVOPPerl_ck_methodstrchrPerl_newOPPerl_newNULLLISTPerl_scalarseqPerl_block_endPerl_pad_leavemyPerl_leave_scopePerl_newLISTOPPerl_force_listPerl_ck_repeatPerl_prepend_elemPerl_newSTATEOPPerl_intro_myPL_hints_mutexPerl_append_elemPerl_append_listPerl_scopePerl_fold_constantsPerl_create_eval_scopePL_sv_placeholder__sigsetjmpPerl_delete_eval_scopePerl_mg_freePerl_newBINOPPerl_newUNOPPerl_newSVREFPerl_newCVREFPerl_newHVREFPerl_newAVREFPerl_newRANGEPerl_sv_upgradePerl_newPROGPerl_get_cvn_flagsPerl_call_svPerl_markstack_growPerl_invertPerl_newGVREFPerl_ck_smartmatchPerl_ck_readlinePerl_ck_evalPerl_hv_copy_hints_hvPerl_newFORMPerl_savepvPerl_pad_tidyPerl_gv_fetchpvn_flagsPerl_newWHENOPPerl_newGIVENOPPerl_sv_2boolPerl_newLOGOPPerl_newCONDOPPerl_ck_sassignPerl_pmruntimePerl_pregcompPerl_bind_matchPerl_ck_splitPerl_convertPerl_newANONHASHPerl_newANONLISTPerl_jmaybePerl_newLOOPEXPerl_gen_constant_listPerl_listPerl_pp_pushmarkPerl_pp_anonlistPerl_listkidsPerl_ck_subrPerl_gv_fullname4Perl_dofilePerl_ck_sortPerl_newASSIGNOPPerl_newWHILEOPPerl_newLOOPOPPerl_newFOROPPerl_newSLICEOPPerl_utilizePerl_newATTRSUBPerl_vload_modulePerl_lex_startPerl_start_subparsePerl_load_module_nocontextPL_thr_keypthread_getspecificPerl_load_modulePerl_newSVhekPerl_newRVPerl_gv_HVaddPerl_sv_setpvfPerl_sv_cmpPerl_pad_fixup_inner_anonsPerl_newSVPerl_sv_catpvPerl_newANONATTRSUBPerl_newANONSUBPerl_newSUBPerl_apply_attrs_stringPerl_newSVpvPerl_pad_compname_typePerl_my_attrsPerl_myPerl_localizePerl_ck_listiobPerl_ck_funPerl_newSVpvfPerl_ck_substrPerl_ck_unpackPerl_ck_truncPerl_ck_chdirPerl_ck_joinPerl_ck_selectPerl_ck_rfunPerl_ck_definedPerl_ck_lfunPerl_ck_lengthconstPerl_ck_indexPerl_fbm_compilePerl_ck_grepPerl_ck_existsPerl_ck_exitPerl_ck_diePerl_ck_deletePerl_ck_execPerl_ck_globPerl_newGVgenPerl_gv_IOaddPerl_ck_shiftPerl_ck_requirememmovePerl_sv_force_normal_flagsPerl_ck_openPerl_mode_from_disciplinePerl_ck_eofPerl_ck_spairPerl_allocmyPerl_pad_check_dupPerl_pad_add_namePerl_nothreadhookPerl_dounwindPerl_PerlIO_stderrPerlIO_printfPerl_my_exit__longjmp_chkPerl_my_failure_exit__errno_locationPerl_get_svPerl_get_avPerl_init_argv_symbolsPerl_av_clearPerl_sv_utf8_decodePerl_init_stacksPerl_new_stackinfoPerl_init_debuggerPerl_get_hvPerl_doing_taintgetuidgeteuidgetgidgetegidPerl_my_unexecgetpidperl_freePL_veto_cleanupPerl_magicnamePerl_sv_magic__xstat64Perl_sv_chopPerl_moreswitchesPerl_sv_derived_fromPerl_vstringifyPerl_sv_lenPerl_PerlIO_stdoutPL_do_undumpPerl_grok_hexPerl_sv_growPerl_parse_unicode_optsPerl_grok_octPerl_upg_versionPerl_my_setenvPerl_eval_svPerl_taint_properPerl_save_intPerl_free_tmpsPerl_require_pvPerl_eval_pvPerl_get_cvmemchrPL_curinterpPerl_mg_setPerl_PerlIO_fileno__fxstat64Perl_sv_getssetegidseteuidPerl_candoPerlIO_rewindlseek64PL_sigfpe_savedPerl_rsignal_saveexecvPerl_rsignal_restorePerl_hv_name_setPerl_gv_SVaddPL_bincompat_optionsPerl_deprecatePerlIO_fdopenPerl_rsignal_statePerl_instrPerlIO_ungetcPerl_pad_newPerl_boot_core_PerlIOPerl_boot_core_UNIVERSALPerl_boot_core_xsutilsPerl_boot_core_mroPerl_PerlIO_stdinPerl_setdefoutgetenvPerl_yyparsestrerror_rPerlIO_binmodePerl_filter_addPerlIO_openPerl_find_scriptPerl_gv_checkPerl_my_popenPerl_rsignalstrtolPerl_filter_delPerl_call_atexitPerl_safesysreallocpthread_key_deleteperl_constructPerl_runops_standardPerl_sv_nosharingPerl_sv_nounlockingPerl_sv_destroyablePL_NoPL_YesPerl_sighandlerPerl_init_i18nl10nPerl_set_numeric_standardPerlIO_initPerl_reentrant_initPerl_hv_ksplitsysconfPL_mmap_page_sizeperl_allocpthread_setspecificpthread_key_createpthread_mutex_initPL_dollarzero_mutexPL_my_ctx_mutexPerl_sys_termpthread_mutex_destroyPerlIO_teardownPL_perlio_mutexPerl_sys_init3Perl_sys_initPerl_av_shiftperl_runperl_parsePL_use_safe_putenvPerl_get_hash_seedperl_destructPerl_my_fflush_allPerlIO_destructPerl_PerlIO_closePerl_sv_clean_allPerl_ptr_table_freePerl_sv_clearPerlIO_cleanupPerl_free_tied_hv_poolPerl_reentrant_freePerl_sv_free_arenasPerl_sv_clean_objsPerl_call_methodPerl_call_pvPerl_call_argvPerl_gv_name_setPerl_share_hekPerl_unshare_hekPerl_is_gv_magicalPerl_is_gv_magical_svPerl_magic_freeovrldPerl_gp_refPerl_gp_freePerl_newGPPerl_safesyscallocPerl_gv_initPerl_sv_reftypePerl_sv_add_backrefPerl_gv_fetchfile_flagsPerl_gv_const_svPerl_amagic_callPL_AMG_namelensPL_AMG_namesPerl_gv_fetchmethod_autoloadPerl_save_scalarPerl_is_utf8_idcontPerl_is_utf8_digitPerl_warnstrcmpPerl_gv_stashpvnPerl_vnumifyPL_sig_namePerl_new_versionPerl_newIOPerl_hv_clear__memcpy_chkPerl_gv_fetchmethPerl_mro_get_linear_isaPerl_mro_meta_initPerl_gv_autoload4Perl_gv_fetchmeth_autoloadPerl_Gv_AMupdatePerl_sv_unmagicPerl_gv_handlerPerl_lex_endPerl_pmflagPerl_scan_vstring__ctype_b_locPerl_yywarnPerl_scan_numPerl_grok_numberPerl_my_atofPerl_sv_setnvPerl_sv_setuvPerl_keywordPerl_is_utf8_alnumPerl_is_utf8_stringPerl_sv_pvn_force_flagsPerl_str_to_versionPerl_parser_freePerl_PerlIO_clearerrPerl_av_storePerl_savesharedpvnPL_utf8skipPerl_is_utf8_markPerl_filter_readPerl_PerlIO_readPerl_PerlIO_errorPerl_my_pclosePerl_utf8_to_uvchrPerl_sv_cat_decodePerl_sv_magicextPerl_utf16_to_utf8Perl_diePerl_av_unshiftPerl_yylexPerl_utf8_lengthPL_no_myglobPerl_save_boolPerl_save_I8Perl_save_I16Perl_save_generic_pvrefPerl_utf8_hopPerl_sv_utf8_upgrade_flagsPerlIO_apply_layersPerl_PerlIO_tellPerl_delimcpyPerl_sv_recode_to_utf8Perl_sv_catsv_flagsPerl_utf16_to_utf8_reversedPL_warn_reserved__snprintf_chkPL_warn_nosemiPerl_save_destructor_xPerl_pad_resetPerl_pad_pushPerl_av_extendPerl_do_dump_padPerl_dump_indentPerl_find_rundefsvoffsetPerl_find_runcvPerl_cv_clonePerl_av_fillPerl_regdumpPerl_regpropPerl_re_intuit_stringPerl_reg_stringifyPerl_regnextPerl_save_re_contextPerl_savestack_grow_cntPerl_reg_temp_copyPerl_regdupe_internalPerl_sv_dupPerl_reg_numbered_buff_storePL_no_modifyPerl_re_dupPerl_ptr_table_fetchPerl_ptr_table_storePerl_regfree_internalPerl_reg_qr_packagePerl_reg_numbered_buff_lengthPerl_is_utf8_string_loclenPerl_report_uninitPerl_reg_numbered_buff_fetchPerl_sv_untaintPerl_reg_named_buff_firstkeyPerl_hv_iterinitPerl_reg_named_buff_nextkeyPerl_hv_iternext_flagsPerl_reg_named_buff_iterPerl_reg_named_buff_allPerl_newRV_noincPerl_reg_named_buff_scalarPerl_reg_named_buff_existsPerl_reg_named_buff_fetchPerl_reg_named_buffPerl_vmessPerl_to_uni_foldmemsetPerl_sv_len_utf8PL_foldPL_regkindPerl_sv_compile_2opPL_fold_localePerl_reginitcolorsPL_variesPL_simplePerl_ninstrPerl_repeatcpyPerl_re_compilePL_core_reg_enginePL_reg_namePL_reg_extflags_namePerl_regexec_flagsPerl_re_intuit_startPerl_debprofdumpPerl_watchPL_op_sequencePerl_sv_2uv_flagsPL_op_seqPerl_pv_escapePerl_pv_prettyPerl_pv_displayPerl_sv_peekPerl_sv_taintedPerl_set_numeric_localPerl_sv_uni_displayPerl_debopPerl_stashpv_hvname_matchPerl_debPerl_runops_debugPerl_deb_stack_allPerl_despatch_signalsPerl_debstackPerl_dump_vindentPerlIO_vprintfPerl_do_gvgv_dumpPerlIO_putcPerl_do_gv_dumpPerl_do_hv_dumpPerl_gv_dumpPerl_do_op_dumpPerl_do_pmop_dumpPerl_op_dumpPerl_pmop_dumpPerl_dump_evalPerl_dump_formPerl_dump_subPerl_dump_packsubsPerl_dump_allPerl_PerlIO_setlinebufPerl_do_sv_dumpPerl_do_magic_dumpPerl_hv_placeholders_getPerl_hv_backreferences_pPerl_hv_itervalPerl_hv_iterkeysvPerl_av_arylen_pPerl_sv_dumpPL_vtbl_svPL_vtbl_envPL_vtbl_envelemPL_vtbl_sigPL_vtbl_sigelemPL_vtbl_packPL_vtbl_packelemPL_vtbl_dblinePL_vtbl_isaPL_vtbl_arylenPL_vtbl_mglobPL_vtbl_nkeysPL_vtbl_taintPL_vtbl_substrPL_vtbl_vecPL_vtbl_posPL_vtbl_bmPL_vtbl_fmPL_vtbl_uvarPL_vtbl_defelemPL_vtbl_collxfrmPL_vtbl_amagicPL_vtbl_amagicelemPL_vtbl_backrefPL_vtbl_utf8PL_vtbl_arylen_pPL_vtbl_hintselemPerlIO_putsPerl_magic_dumpPerl_rninstrPerl_ibcmpPerl_ibcmp_localehtovshtovlvtohsvtohlPerl_my_swabnPerl_get_op_namesPerl_get_op_descsPerl_get_no_modifyPerl_get_opargsPerl_get_ppaddrPerl_get_vtblPL_vtbl_regdatumPL_vtbl_regdataPL_vtbl_regexpPL_vtbl_isaelemPerl_mini_mktimePerl_get_re_argPerl_mg_getPerl_my_dirfdPerl_get_db_subPerl_my_strlcpyPerl_my_strlcatPerl_get_contextPerl_getenv_lenPerl_seedgettimeofdayPerl_my_socketpairPerl_vverifyPerl_getcwd_svgetcwdPerl_init_tmtzsetlocaltime_rPerl_PerlIO_flushPerl_wait4pidsigactionsigemptysetPerl_my_forkPerl_setenv_getixPerl_mallocPerl_new_warnings_bitfieldPerl_reallocPerl_sv_2cvPerl_write_to_stderrPerl_PerlIO_writePL_no_memPerl_savesvpvPerl_screaminstrPerl_fbm_instrPL_freqPerl_mfreePerl_my_clearenvPerl_my_strftimeunsetenvPerl_callocPerl_sv_vsetpvfnPerl_vwarnPerl_warn_nocontextPerl_vwarnerPerl_die_wherePerl_report_evil_fhPerl_warner_nocontextPerl_vcroakPerl_my_vsnprintf__vsnprintf_chkPerl_my_snprintfsrand48_rdrand48_rstrtoulPerl_vcmpPerl_vnormaldivPerl_scan_versionPerl_newSVrvPerl_sv_insert_flagsdup2Perl_taint_envPerl_do_execfreePerl_do_exec3Perl_my_popen_listPerl_do_aexec5Perl_my_cxt_initPL_my_cxt_indexsetlocalePerl_set_contextPerl_atfork_unlockPerl_atfork_lockPerl_vdiePerl_die_nocontextPerl_mess_nocontextPerl_vformPerl_form_nocontextPerl_mg_magicalPerl_magic_regdata_cntPerl_magic_getuvarPerl_magic_setamagicPerl_magic_freearylen_pPerl_magic_gettaintPerl_magic_settaintPerl_magic_setmglobPerl_magic_setuvarPerl_magic_clearhintPerl_magic_sethintsigaddsetsigprocmaskPerl_whichsigPL_sig_numPerl_csighandlerPerl_magic_regdatum_setPerl_magic_setutf8Perl_magic_setcollxfrmPerl_magic_setsetregidsetreuidsetgroupsPerl_magic_freeregexpPerl_magic_setregexpPerl_magic_killbackrefsPerl_sv_kill_backrefsPerl_magic_setdblinePerl_magic_setvecPerl_do_vecsetPerl_magic_getvecPerl_do_vecgetPerl_magic_getsubstrPerl_sv_pos_u2bPerl_magic_setsubstrPerl_magic_setposPerl_magic_getposPerl_sv_pos_b2uPerl_magic_setarylenPerl_magic_wipepackPerl_magic_setpackPerl_magic_existspackPerl_magic_clearpackPerl_magic_getpackPerl_magic_nextpackPerl_magic_scalarpackPerl_hv_eiter_setPerl_magic_sizepackPerl_magic_setnkeysPerl_magic_getnkeysPerl_magic_clearisaPerl_mro_isa_changed_inPerl_magic_setisaPerl_magic_clearsigPerl_magic_setsigPL_csighandlerpPerl_magic_getsigPerl_magic_clear_all_envPerl_magic_set_all_envPerl_hv_iterkeyPerl_magic_clearenvPerl_magic_setenvPerl_emulate_cop_ioPerl_magic_getgetgroupsPerl_sv_copypvPerl_magic_lenPerl_magic_regdatum_getPerl_mg_copyPerl_mg_clearPerl_save_allocPerl_mg_sizePerl_vivify_defelemPL_no_helem_svPL_no_aelemPerl_magic_getdefelemPerl_magic_getarylenPerl_mg_lengthPerl_magic_setdefelemPerl_mg_localizePerl_reentrant_sizePerl_reentrant_retrygethostbyname_rgetnetbyname_rgetprotobyname_rgetservbyname_rgetpwnam_rgetpwent_rgetpwuid_rgetnetent_rgetprotoent_rgetprotobynumber_rgethostent_rgetservent_rgetservbyport_rgethostbyaddr_rgetgrnam_rgetnetbyaddr_rgetgrent_rgetgrgid_rXS_mro_invalidate_method_cachesPerl_croak_xs_usagePerl_mro_get_from_namePerl_mro_get_private_dataXS_mro_is_universalPerl_mro_set_private_dataXS_mro_get_isarevPerl_mro_set_mroPerl_mro_meta_dupXS_mro_get_pkg_genXS_mro_get_mroXS_mro_set_mroXS_mro_method_changed_inXS_mro_get_linear_isaPerl_mro_registerPerl_bytes_from_utf8Perl_get_arenaPerl_offer_nice_chunkPerl_hv_placeholders_setPerl_hv_placeholders_pPerl_unsharepvnPerl_hv_kill_backrefsPerl_hv_riter_setPerl_hv_eiter_pPerl_hv_riter_pPerl_hv_free_entPerl_hv_clear_placeholdersPerl_refcounted_he_chain_2hvPerl_hv_iternextsvPerl_hv_delayfree_entPerl_hv_scalarPerl_newHVhvPerl_hv_undefPerl_hek_dupPerl_he_dupPerl_av_reifyPerl_av_existsPerl_av_makePerl_av_undefPerl_av_deletePerl_pp_nullPerl_pp_setstatePerl_pp_pushrePerl_pp_gvPerl_pp_method_namedPerl_pp_methodPerl_vivify_refPerl_pp_aelemPerl_is_lvalue_subPerl_sv_mortalcopyPerl_save_aelemPerl_pp_aelemfastPerl_sub_crush_depthPerl_pp_eqPerl_pp_enterPerl_cxincPerl_pp_leavePerl_pp_entersubPerl_block_gimmePL_no_symrefPL_no_usymPerl_pp_definedPerl_pp_leavesublvPerl_tmps_growPerl_pp_leavesubPerl_pp_nextstatePerl_pp_orPerl_pp_cond_exprPerl_pp_andPerl_pp_grepwhilePerl_pp_unstackPerl_pp_substPerl_rxres_savePerl_pp_preincPerl_sv_incPerl_pp_iterPerl_pp_helemPerl_save_deletePerl_save_helemPerl_save_gpPerl_do_readlinePerl_sv_unref_flagsPerl_nextargvPerl_do_close__lxstat64Perl_start_globPerl_do_opennPerl_pp_matchPerl_dowantarrayPerl_pp_qrPerl_pp_aassignsetresuidsetresgidPerl_pp_rv2avPerl_softref2xvPL_no_localize_refPerl_save_aryPerl_save_hashPerl_do_kvPerl_pp_printPerl_do_printPerl_save_generic_svrefPerl_pp_joinPerl_do_joinPerl_pp_addPerl_sv_2numPerl_pp_readlinePerl_pp_rv2gvPerl_pp_padsvPerl_save_clearsvPerl_pp_concatPerl_pp_sassignPerl_pp_stringifyPerl_pp_gvsvPerl_pp_constPerl_sv_add_arenaPerl_sv_report_usedPerl_sv_newrefPerl_dirp_dupPerl_ptr_table_clearPerl_any_dupPerl_ptr_table_newPerl_ptr_table_splitPerl_fp_dupPerlIO_fdupopenPerl_rvpv_dupPerl_mg_dupPerl_gp_dupPerl_cx_dupPerl_si_dupPerl_parser_dupPerl_ss_dupPerl_sv_isobjectPerl_sv_isaPerl_sv_truePerl_sv_2ioPerl_cast_uvPerl_sv_vcatpvfnPL_hexdigitfrexpgcvtPerl_sv_setuv_mgPerl_sv_vcatpvf_mgPerl_sv_catpvf_mgPerl_sv_catpvf_mg_nocontextPerl_sv_vcatpvfPL_warn_uninitPerl_io_closePerl_sv_free2Perl_sv_rvweakenPerl_sv_collxfrmPerl_mem_collxfrmPerl_sv_cmp_localePL_vtbl_ovrldPerl_sv_blessPerl_sv_replacePerl_sv_setref_nvPerl_newSVnvPerl_sv_setnv_mgPerl_sv_setref_ivPerl_sv_setref_uvPerl_sv_setiv_mgPerl_sv_catpv_mgPerl_sv_setpv_mgPerl_sv_setpvivPerl_sv_setpviv_mgPerl_sv_setref_pvnperl_clonePerlIO_clonePerl_sv_setpvn_mgPerl_sv_setref_pvPerl_sv_setsv_mgPerl_sv_eqPerl_sv_utf8_downgradePerl_utf8_to_bytesPerl_sv_pvbyten_forcePerl_sv_pvutf8n_forcePerl_sv_utf8_encodePerl_sv_2pvutf8Perl_sv_2pvbytePerl_looks_like_numberPerl_cast_ivPerl_sv_decPerl_sv_catpvf_nocontextPerl_sv_vsetpvf_mgPerl_sv_setpvf_mgPerl_sv_setpvf_mg_nocontextPerl_sv_vsetpvfPerl_sv_setpvf_nocontextPerl_vnewSVpvfPerl_newSVpvf_nocontextPerlIO_isutf8PerlIO_getcPerl_PerlIO_eofPerlIO_fast_getsPerl_PerlIO_get_cntPerl_PerlIO_get_ptrPerl_PerlIO_set_ptrcntPerl_sv_resetPerl_pp_oncePerl_unimplemented_opPerl_pp_lockPerl_pp_srefgenPerl_pp_stubPerl_pp_splitPerl_save_pushptrptrPerl_is_utf8_spacePerl_pp_listPerl_pp_reversePerl_pp_unshiftPerl_pp_shiftPerl_pp_pushPerl_pp_lslicePerl_pp_refgenPerl_pp_splicePerl_pp_anonhashPerl_pp_hslicePerl_pp_existsPerl_pp_deletePerl_pp_eachPerl_pp_aslicePerl_pp_quotemetaPerl_pp_lcPerl_to_utf8_lower__ctype_tolower_locPerl_pp_ucPerl_to_utf8_upper__ctype_toupper_locPerl_pp_ucfirstPerl_to_utf8_titlePerl_pp_cryptcrypt_rPerl_pp_chrPerl_uvchr_to_utf8_flagsPerl_pp_ordPerl_pp_sprintfPerl_do_sprintfPerl_pp_indexPerl_pp_posPerl_pp_vecPerl_pp_substrPerl_pp_lengthPerl_pp_octPerl_grok_binPerl_pp_i_negatePerl_pp_i_ncmpPerl_pp_i_nePerl_pp_i_eqPerl_pp_i_gePerl_pp_i_lePerl_pp_i_gtPerl_pp_i_ltPerl_pp_i_subtractPerl_pp_i_addPerl_pp_i_moduloPerl_pp_i_dividePerl_pp_i_multiplyPerl_pp_complementPerl_pp_nePerl_pp_gePerl_pp_lePerl_pp_gtPerl_pp_ltPerl_pp_right_shiftPerl_pp_left_shiftPerl_pp_absPerl_pp_subtractPerl_pp_dividePerl_pp_multiplyPerl_pp_intfloorceilPerl_pp_srandPerl_pp_randPerl_pp_sinPerl_pp_atan2Perl_pp_notPerl_pp_negatePerl_pp_bit_orPerl_do_vopPerl_pp_bit_andPerl_pp_scmpPerl_pp_slePerl_pp_snePerl_pp_seqPerl_pp_ncmp__isnanPerl_pp_repeatPerl_pp_modulofmodPerl_pp_powPerl_pp_postdecPerl_pp_predecPerl_pp_postincPerl_pp_undefPerl_pp_chompPerl_do_chompPerl_pp_schompPerl_pp_chopPerl_do_chopPerl_pp_schopPerl_pp_transPerl_do_transPerl_pp_studyPerl_pp_gelemPerl_pp_blessPerl_pp_refPerl_pp_anoncodePerl_pp_prototypePerl_pp_rv2cvPerl_pp_av2arylenPL_no_symref_svPerl_pp_rv2svPerl_pp_padavPerl_pp_padhv_LIB_VERSIONPerl_cx_dumpPerl_savestack_growPerl_save_padsvPerl_save_destructorPerl_save_padsv_and_mortalizePerl_save_set_svflagsPerl_save_svrefPerl_save_aptrPerl_save_shared_pvrefPerl_pp_regcresetPerl_pp_leavewhenPerl_pp_leavegivenPerl_pp_xorPerl_pp_enterwhenPerl_pp_enterloopPerl_pp_rangePerl_pp_wantarrayPerl_pp_entergivenPerl_pp_leavetryPerl_pp_entertryPerl_pp_leaveevalPerl_pp_leaveloopPerl_pp_enterevalPerl_pp_requirestrstrPerl_pp_exitPerl_pp_enteriterPerl_pp_dbstatePerl_pp_resetPerl_pp_flipPerl_pp_callerPerl_pp_flopPerl_pp_mapwhilePerl_pp_grepstartPerl_rxres_freePerl_pp_breakPerl_pp_continuePerl_pp_gotoPerl_pp_redoPerl_pp_nextPerl_pp_lastPerl_pp_returnPerl_rxres_restorePerl_pp_formlinePerl_pp_substcontPerl_pp_regcompPerl_pp_smartmatchPerl_pp_syscallPerl_pp_getlogingetlogin_rPerl_pp_egrentendgrentPerl_pp_sgrentsetgrentPerl_pp_ggrentPerl_pp_epwentendpwentPerl_pp_spwentsetpwentPerl_pp_gpwentgetspnam_rPerl_pp_eserventendserventPerl_pp_eprotoentendprotoentPerl_pp_enetentendnetentPerl_pp_ehostentendhostentPerl_pp_sserventsetserventPerl_pp_sprotoentsetprotoentPerl_pp_snetentsetnetentPerl_pp_shostentsethostentPerl_pp_gserventPerl_pp_gprotoentPerl_pp_gnetent__h_errno_locationPerl_pp_ghostentPerl_pp_semctlPerl_do_ipcctlPerl_pp_semgetPerl_do_ipcgetPerl_pp_shmwritePerl_do_shmioPerl_do_msgsndPerl_do_semopPerl_do_msgrcvPerl_pp_timePerl_pp_sleeppausePerl_pp_alarmPerl_pp_gmtimegmtime_rPerl_pp_tmsPerl_pp_setpriorityPerl_pp_getpriorityPerl_pp_setpgrpsetpgidPerl_pp_getpgrpgetpgidPerl_pp_getppidPerl_pp_execPerl_pp_systemPerl_pp_waitpidPerl_pp_waitPerl_pp_forkPerl_pp_closedirPerl_pp_rewinddirPerl_pp_seekdirPerl_pp_telldirPerl_pp_readdirreaddir64_rPerl_pp_open_diropendirPerl_pp_rmdirPerl_pp_mkdirPerl_pp_readlinkPerl_pp_linkPerl_pp_renamePerl_pp_chrootPerl_pp_chownPerl_applyPerl_pp_chdirfchdirPerl_pp_fttextPerlIO_has_basePerl_PerlIO_get_bufsizPerl_PerlIO_get_basePL_warn_nlPerl_pp_ftttyisattyPerl_pp_ftlinkPerl_my_lstatPerl_pp_ftrownedPerl_my_statPerl_pp_ftisPerl_pp_ftrreadeaccessPerl_pp_statPerl_pp_getpeernamePerl_pp_ssockoptgetsockoptsetsockoptPerl_pp_shutdownPerl_pp_acceptPerl_pp_pipe_opPerl_pp_listenPerl_pp_connectPerl_pp_bindPerl_pp_sockpairPerl_pp_socketPerl_pp_flockPerl_pp_ioctlPerl_pp_truncateftruncate64Perl_pp_tiedPerl_pp_filenoPerl_pp_closePerl_pp_sysseekPerl_do_sysseekPerl_do_seekPerl_pp_tellPerl_do_tellPerl_pp_sysopenPerl_pp_eofPerl_do_eofPerl_pp_sendsendtoPerl_pp_sysreadrecvfromPerl_pp_prtfPerl_pp_leavewritePerl_pp_enterwritePerl_pp_getcPerl_pp_selectPerl_pp_sselectPerl_pp_dbmopenPerl_pp_untiePerl_pp_tiePerl_pp_binmodePerl_pp_umaskPerl_pp_openPerl_pp_diePerl_pp_warnPerl_pp_rcatlinePerl_pp_globPL_no_securityPerl_pp_backtickPerl_PerlIO_context_layersPerl_swash_fetchshmatshmdtPerl_ingroupexecvpPL_sh_pathexeclPerl_PerlIO_seekkillpgfchownfutimesfchmodPerlIO_intmode2strPerlIO_opennPerlIO_has_cntptrPerlIO_canset_cntPerl_PerlIO_set_cntPerl_regclass_swashPerl_to_utf8_foldPerl_is_uni_space_lcPerl_is_uni_alnum_lcPerl_is_uni_alnumPerl_ibcmp_utf8Perl_is_uni_digit_lcPerl_utf8_distancePerl_pregexecPerl_is_utf8_charPerl_utf8n_to_uvchrPerl_is_utf8_xdigitPerl_is_utf8_punctPerl_is_utf8_printPerl_is_utf8_graphPerl_is_utf8_cntrlPerl_is_utf8_lowerPerl_is_utf8_upperPerl_is_utf8_asciiPerl_is_utf8_alphaPerl_is_utf8_idfirstPerl_is_utf8_alnumcPerl_utf8_to_uvuniPerl_pv_uni_displayPerl_uvchr_to_utf8Perl_to_utf8_casePerl_to_uni_lowerPerl_to_uni_lower_lcPerl_to_uni_titlePerl_to_uni_title_lcPerl_to_uni_upperPerl_to_uni_upper_lcPerl_is_uni_xdigitPerl_is_uni_xdigit_lcPerl_is_uni_punctPerl_is_uni_punct_lcPerl_is_uni_printPerl_is_uni_print_lcPerl_is_uni_graphPerl_is_uni_graph_lcPerl_is_uni_cntrlPerl_is_uni_cntrl_lcPerl_is_uni_lowerPerl_is_uni_lower_lcPerl_is_uni_upperPerl_is_uni_upper_lcPerl_is_uni_digitPerl_is_uni_spacePerl_is_uni_asciiPerl_is_uni_ascii_lcPerl_is_uni_alphaPerl_is_uni_alpha_lcPerl_is_uni_idfirstPerl_is_uni_idfirst_lcPerl_is_uni_alnumcPerl_is_uni_alnumc_lcPerl_deb_nocontextPerl_vdebPerl_debstackptrsXS_Regexp_DESTROYXS_Internals_HvREHASHXS_Tie_Hash_NamedCapture_flagsXS_Tie_Hash_NamedCapture_SCALARXS_Tie_Hash_NamedCapture_NEXTKXS_Tie_Hash_NamedCapture_FIRSTKXS_Tie_Hash_NamedCapture_EXISTSXS_Tie_Hash_NamedCapture_FETCHXS_re_regnames_countXS_utf8_is_utf8XS_Tie_Hash_NamedCapture_CLEARXS_Tie_Hash_NamedCapture_DELETEXS_Tie_Hash_NamedCapture_STOREXS_re_is_regexpXS_re_regexp_patternXS_re_regnameXS_Internals_SvREADONLYXS_re_regnamesXS_Internals_rehash_seedXS_Internals_hash_seedXS_PerlIO_get_layersXS_Internals_hv_clear_placeholdXS_Internals_SvREFCNTXS_utf8_unicode_to_nativeXS_utf8_native_to_unicodeXS_utf8_downgradeXS_utf8_upgradeXS_utf8_decodeXS_utf8_encodeXS_utf8_validXS_version_qvXS_version_newXS_UNIVERSAL_canXS_UNIVERSAL_isaXS_UNIVERSAL_DOESXS_UNIVERSAL_VERSIONXS_version_noopXS_version_stringifyXS_version_numifyXS_version_normalXS_version_vcmpXS_version_booleanXS_version_is_alphaXS_version_is_qvPerl_sv_doesXS_attributes_reftypeXS_attributes__guess_stashXS_attributes__fetch_attrsXS_attributes__modify_attrsXS_attributes_bootstrapPL_no_wrongrefPL_no_sock_funcPL_no_dir_funcPL_no_funcPL_uuemapPL_uudmapPerl_pp_unpackPerl_pp_packPerl_pp_sortPL_patleavePL_perlio_fd_refcntPL_perlio_fd_refcnt_sizePL_perlio_debug_fdPL_runops_stdPL_runops_dbgPL_revisionPL_versionPL_subversionPL_interp_sizePL_interp_size_5_10_0PL_force_link_funcsPerl_Istack_sp_ptrPerl_Iop_ptrPerl_Icurpad_ptrPerl_Istack_base_ptrPerl_Istack_max_ptrPerl_Iscopestack_ptrPerl_Iscopestack_ix_ptrPerl_Iscopestack_max_ptrPerl_Isavestack_ptrPerl_Isavestack_ix_ptrPerl_Isavestack_max_ptrPerl_Itmps_stack_ptrPerl_Itmps_ix_ptrPerl_Itmps_floor_ptrPerl_Itmps_max_ptrPerl_Imodcount_ptrPerl_Imarkstack_ptrPerl_Imarkstack_ptr_ptrPerl_Imarkstack_max_ptrPerl_ISv_ptrPerl_IXpv_ptrPerl_Ina_ptrPerl_Istatbuf_ptrPerl_Istatcache_ptrPerl_Istatgv_ptrPerl_Istatname_ptrPerl_Itimesbuf_ptrPerl_Icurpm_ptrPerl_Irs_ptrPerl_Ilast_in_gv_ptrPerl_Iofs_sv_ptrPerl_Idefoutgv_ptrPerl_Ichopset_ptrPerl_Iformtarget_ptrPerl_Ibodytarget_ptrPerl_Itoptarget_ptrPerl_Idefstash_ptrPerl_Icurstash_ptrPerl_Irestartop_ptrPerl_Icurcop_ptrPerl_Icurstack_ptrPerl_Icurstackinfo_ptrPerl_Imainstack_ptrPerl_Itop_env_ptrPerl_Istart_env_ptrPerl_Ierrors_ptrPerl_Ihv_fetch_ent_mh_ptrPerl_Ilastgotoprobe_ptrPerl_Isortcop_ptrPerl_Isortstash_ptrPerl_Ifirstgv_ptrPerl_Isecondgv_ptrPerl_Iefloatbuf_ptrPerl_Iefloatsize_ptrPerl_Iscreamfirst_ptrPerl_Iscreamnext_ptrPerl_Ilastscream_ptrPerl_Ireg_state_ptrPerl_Iregdummy_ptrPerl_Idumpindent_ptrPerl_Iutf8locale_ptrPerl_Irehash_seed_set_ptrPerl_Icolors_ptrPerl_Ipeepp_ptrPerl_Imaxscream_ptrPerl_Ireginterp_cnt_ptrPerl_Iwatchaddr_ptrPerl_Iwatchok_ptrPerl_Iregmatch_slab_ptrPerl_Iregmatch_state_ptrPerl_Idelaymagic_ptrPerl_Ilocalizing_ptrPerl_Icolorset_ptrPerl_Idirty_ptrPerl_Iin_eval_ptrPerl_Itainted_ptrPerl_Iperl_destruct_level_ptrPerl_Iperldb_ptrPerl_Iorigargc_ptrPerl_Iorigargv_ptrPerl_Ienvgv_ptrPerl_Iincgv_ptrPerl_Ihintgv_ptrPerl_Iorigfilename_ptrPerl_Idiehook_ptrPerl_Iwarnhook_ptrPerl_Ipatchlevel_ptrPerl_Ilocalpatches_ptrPerl_Isplitstr_ptrPerl_Iminus_c_ptrPerl_Ipreprocess_ptrPerl_Iminus_n_ptrPerl_Iminus_p_ptrPerl_Iminus_l_ptrPerl_Iminus_a_ptrPerl_Iminus_F_ptrPerl_Idoswitches_ptrPerl_Iminus_E_ptrPerl_Idowarn_ptrPerl_Idoextract_ptrPerl_Isawampersand_ptrPerl_Iunsafe_ptrPerl_Iexit_flags_ptrPerl_Isrand_called_ptrPerl_Itainting_ptrPerl_Iinplace_ptrPerl_Ie_script_ptrPerl_Ibasetime_ptrPerl_Iformfeed_ptrPerl_Imaxsysfd_ptrPerl_Istatusvalue_ptrPerl_Istatusvalue_posix_ptrPerl_Isig_pending_ptrPerl_Ipsig_pend_ptrPerl_Istdingv_ptrPerl_Istderrgv_ptrPerl_Idefgv_ptrPerl_Iargvgv_ptrPerl_Iargvoutgv_ptrPerl_Iargvout_stack_ptrPerl_Ireplgv_ptrPerl_Ierrgv_ptrPerl_IDBgv_ptrPerl_IDBline_ptrPerl_IDBsub_ptrPerl_IDBsingle_ptrPerl_IDBtrace_ptrPerl_IDBsignal_ptrPerl_Idbargs_ptrPerl_Idebstash_ptrPerl_Iglobalstash_ptrPerl_Icurstname_ptrPerl_Ibeginav_ptrPerl_Iendav_ptrPerl_Iunitcheckav_ptrPerl_Icheckav_ptrPerl_Iinitav_ptrPerl_Istrtab_ptrPerl_Isub_generation_ptrPerl_Iforkprocess_ptrPerl_Isv_count_ptrPerl_Isv_objcount_ptrPerl_Isv_root_ptrPerl_Isv_arenaroot_ptrPerl_Ifdpid_ptrPerl_Iop_mask_ptrPerl_Imain_cv_ptrPerl_Imain_root_ptrPerl_Imain_start_ptrPerl_Ieval_root_ptrPerl_Ieval_start_ptrPerl_Icurcopdb_ptrPerl_Ifilemode_ptrPerl_Ilastfd_ptrPerl_Ioldname_ptrPerl_IArgv_ptrPerl_ICmd_ptrPerl_Ipreambleav_ptrPerl_Imess_sv_ptrPerl_Iors_sv_ptrPerl_Igensym_ptrPerl_Icv_has_eval_ptrPerl_Itaint_warn_ptrPerl_Ilaststype_ptrPerl_Ilaststatval_ptrPerl_Iexitlistlen_ptrPerl_Iexitlist_ptrPerl_Imodglobal_ptrPerl_Iprofiledata_ptrPerl_Icompiling_ptrPerl_Icompcv_ptrPerl_Icomppad_ptrPerl_Icomppad_name_ptrPerl_Icomppad_name_fill_ptrPerl_Icomppad_name_floor_ptrPerl_IDBcv_ptrPerl_Igeneration_ptrPerl_Iin_clean_objs_ptrPerl_Iin_clean_all_ptrPerl_Inomemok_ptrPerl_Isavebegin_ptrPerl_Iuid_ptrPerl_Ieuid_ptrPerl_Igid_ptrPerl_Iegid_ptrPerl_Ian_ptrPerl_Icop_seqmax_ptrPerl_Ievalseq_ptrPerl_Iorigalen_ptrPerl_Iorigenviron_ptrPerl_Iosname_ptrPerl_Isighandlerp_ptrPerl_Ibody_roots_ptrPerl_Inice_chunk_ptrPerl_Inice_chunk_size_ptrPerl_Imaxo_ptrPerl_Irunops_ptrPerl_Isv_undef_ptrPerl_Isv_no_ptrPerl_Isv_yes_ptrPerl_Isubname_ptrPerl_Isubline_ptrPerl_Imin_intro_pending_ptrPerl_Imax_intro_pending_ptrPerl_Ipadix_ptrPerl_Ipadix_floor_ptrPerl_Ipad_reset_pending_ptrPerl_Ihints_ptrPerl_Idebug_ptrPerl_Iamagic_generation_ptrPerl_Icollation_name_ptrPerl_Icollxfrm_base_ptrPerl_Icollxfrm_mult_ptrPerl_Icollation_ix_ptrPerl_Icollation_standard_ptrPerl_Iutf8cache_ptrPerl_Inumeric_standard_ptrPerl_Inumeric_local_ptrPerl_Inumeric_name_ptrPerl_Iutf8_alnum_ptrPerl_Iutf8_alnumc_ptrPerl_Iutf8_ascii_ptrPerl_Iutf8_alpha_ptrPerl_Iutf8_space_ptrPerl_Iutf8_cntrl_ptrPerl_Iutf8_graph_ptrPerl_Iutf8_digit_ptrPerl_Iutf8_upper_ptrPerl_Iutf8_lower_ptrPerl_Iutf8_print_ptrPerl_Iutf8_punct_ptrPerl_Iutf8_xdigit_ptrPerl_Iutf8_mark_ptrPerl_Iutf8_toupper_ptrPerl_Iutf8_totitle_ptrPerl_Iutf8_tolower_ptrPerl_Iutf8_tofold_ptrPerl_Ilast_swash_hv_ptrPerl_Ilast_swash_tmps_ptrPerl_Ilast_swash_slen_ptrPerl_Ilast_swash_key_ptrPerl_Ilast_swash_klen_ptrPerl_Iglob_index_ptrPerl_Iparser_ptrPerl_Ibitcount_ptrPerl_Ipsig_ptr_ptrPerl_Ipsig_name_ptrPerl_Iptr_table_ptrPerl_Ibeginav_save_ptrPerl_Ibody_arenas_ptrPerl_Inumeric_radix_sv_ptrPerl_Iregex_pad_ptrPerl_Iregex_padav_ptrPerl_Ireentrant_buffer_ptrPerl_Icustom_op_names_ptrPerl_Icustom_op_descs_ptrPerl_Iperlio_ptrPerl_Iknown_layers_ptrPerl_Idef_layerlist_ptrPerl_Iencoding_ptrPerl_Idebug_pad_ptrPerl_Iutf8_idstart_ptrPerl_Iutf8_idcont_ptrPerl_Isort_RealCmp_ptrPerl_Icheckav_save_ptrPerl_Iunitcheckav_save_ptrPerl_Iclocktick_ptrPerl_Iin_load_module_ptrPerl_Iunicode_ptrPerl_Isignals_ptrPerl_Ireentrant_retint_ptrPerl_Istashcache_ptrPerl_Isharehook_ptrPerl_Ilockhook_ptrPerl_Iunlockhook_ptrPerl_Ithreadhook_ptrPerl_Ihash_seed_ptrPerl_Irehash_seed_ptrPerl_Iisarev_ptrPerl_Imy_cxt_size_ptrPerl_Imy_cxt_list_ptrPerl_Idestroyhook_ptrPerl_Ibreakable_sub_gen_ptrPerl_Iregistered_mros_ptrPerl_Gcurinterp_ptrPerl_Gthr_key_ptrPerl_GYes_ptrPerl_GNo_ptrPerl_Ghexdigit_ptrPerl_Gpatleave_ptrPerl_Gdo_undump_ptrPerl_Gop_mutex_ptrPerl_Gdollarzero_mutex_ptrPerl_Gsh_path_ptrPerl_Gsigfpe_saved_ptrPerl_Gsv_placeholder_ptrPerl_Gcsighandlerp_ptrPerl_Guse_safe_putenv_ptrPerl_Gperlio_fd_refcnt_ptrPerl_Gperlio_fd_refcnt_size_ptrPerl_Gperlio_debug_fd_ptrPerl_Gmmap_page_size_ptrPerl_Gop_sequence_ptrPerl_Gop_seq_ptrPerl_Gmy_ctx_mutex_ptrPerl_Gmy_cxt_index_ptrPerl_Ghints_mutex_ptrPerl_Gperlio_mutex_ptrPerl_Gveto_cleanup_ptrPerl_Grunops_std_ptrPerl_Grunops_dbg_ptrPerl_Grevision_ptrPerl_Gversion_ptrPerl_Gsubversion_ptrPerl_Ginterp_size_ptrPerl_Ginterp_size_5_10_0_ptrperlsio_binmodePerlIO_arg_fetchPerlIOUtf8_pushedPerlIO_modestrPerlIOBase_poppedPerlIOBase_noop_okPerlIOBase_noop_failPerlIOBase_eofPerlIOBase_errorPerlIOBase_setlinebufPerlIOUnix_filenoPerlIOStdio_modePerlIOStdio_get_basePerlIOStdio_get_bufsizPerlIOStdio_get_ptrPerlIOStdio_get_cntPerlIOStdio_set_ptrcntPerlIO_vsprintfPerlIO_sprintfPerlIOUnix_oflagsPerlIOBase_pushedPerlIOPending_pushedPerlIOCrlf_set_ptrcntPerlIOBuf_set_ptrcntPerlIOBuf_bufsizPerlIOBuf_get_cntPerlIOBuf_get_ptrPerlIOBase_clearerrPerl_PerlIO_fillPerlIOCrlf_get_cntPerlIO_getposPerlIO_setposPerlIOBase_filenoPerlIO_getnamePerlIOMmap_unmapmunmapPerlIOMmap_mapmmap64abortPerlIOBuf_poppedPerlIO_list_freePerlIOBuf_get_basePerlIOMmap_get_basePerlIO_list_allocPerlIO_allocatePerlIOBase_readPerlIOBuf_readPerlIOPending_readPerlIOBuf_pushedPerlIOStdio_filenoPerlIOStdio_flushfflushPerlIOStdio_errorferrorPerlIOStdio_setlinebufPerlIOStdio_clearerrPerlIOStdio_eoffeofPerlIOStdio_tellftello64PerlIOStdio_seekfseeko64PerlIOStdio_writefwritePerlIOStdio_readfreadfgetcPerlIOUnix_tellPerlIOUnix_seekPerlIOUnix_writePerlIOUnix_readPerlIO_sv_dupXS_PerlIO__Layer__findXS_PerlIO__Layer__NoWarningsPerlIO_tab_svPerlIO_list_pushPerlIO_clone_listPerlIO_debugPerlIOUnix_refcnt_decPerlIOUnix_closePerlIOPending_set_ptrcntPerlIOPending_seekPerlIOPending_fillPerlIOBuf_tellPerlIOBuf_seekPerlIOBuf_writePerlIOMmap_writePerlIOCrlf_writePerlIOBuf_flushPerlIOMmap_flushPerlIOCrlf_flushPerlIOStdio_closefclosePerlIOBase_closePerlIOBuf_closePerlIO__closePerlIOMmap_closePerlIOBase_flush_linebufPerlIOBuf_fillPerlIOMmap_fillPerlIO_layer_fetchPerlIO_define_layerPerlIO_find_layerPerlIO_parse_layersPerlIO_default_bufferPerlIO_stdioPerlIO_perlioPerlIO_default_layersPerlIO_unixPerlIO_rawPerlIO_crlfPerlIO_mmapPerlIO_utf8PerlIO_removePerlIO_bytePerlIO_default_layerPerlIORaw_openPerlIO_popPerlIOCrlf_binmodePerlIOCrlf_pushedPerlIOPending_flushPerlIO_releaseFILEPerlIOStdio_pushedPerlIOPending_closePerlIO_cleantablePerlIOBase_binmodePerlIOPop_pushedPerlIORaw_pushedPerlIO_pushPerlIOBuf_openPerlIOBase_unreadPerlIO_pendingPerlIOBuf_unreadPerlIOMmap_unreadPerlIOCrlf_unreadPerlIOStdio_unreadPerlIOStdio_fillPerl_PerlIO_unreadPerlIO_apply_layeraPerlIOBase_dupPerlIOMmap_dupPerlIOBuf_dupPerlIO_resolve_layersPerlIO_tmpfilePerlIO_reopenmkstemp64PerlIO_stdstreamsPerlIO_stdoutfPerlIOUnix_refcnt_incPerlIO_exportFILEPerlIO_findFILEPerlIOStdio_dupPerlIOStdio_openfopen64freopen64PerlIO_importFILEPerlIOUnix_dupPerlIOUnix_openPerlIOUnix_pushedPerl_Gppaddr_ptrPerl_Gcheck_ptrPerl_Gfold_locale_ptrPerl_cast_ulongPerl_cast_i32Perl_grok_numeric_radixPerl_my_atof2strtodPerl_scan_octPerl_scan_binPerl_scan_hexPerl_hugePerl_pp_scalarPerl_pp_regcmaybePerl_pp_lineseqPerl_pp_scopePerl_sv_nolockingPerl_save_opPerl_save_freepvPerl_save_freeopPerl_save_mortalizesvPerl_save_freesvPerl_sv_insertPerl_magic_setfmPerl_magic_setbmPerl_newHVPerl_newAVPerl_magic_setglobPerl_oopsCVPerl_hv_deletePerl_hv_fetchPerl_hv_existsPerl_hv_storePerl_hv_store_flagsPerl_hv_delete_entPerl_hv_fetch_entPerl_hv_exists_entPerl_hv_store_entPerl_pack_catPerl_packlistPerl_unpack_strPerl_unpackstringPerl_cv_ckprotoPerl_sv_usepvnPerl_sv_usepvn_mgPerl_sv_setsvPerl_save_listPerl_save_nogvPerl_save_ivPerl_save_longPerl_is_utf8_string_locPerl_uvuni_to_utf8Perl_pp_rv2hvPerl_pp_bit_xorPerl_pp_sqrtPerl_pp_logPerl_pp_expPerl_pp_cosPerl_pp_popPerl_pp_hexPerl_pp_rindexPerl_pp_sgePerl_pp_sgtPerl_pp_sltPerl_pp_lcfirstPerl_pp_dorassignPerl_pp_dorPerl_pp_orassignPerl_pp_andassignPerl_pp_semopPerl_pp_msgrcvPerl_pp_msgsndPerl_pp_shmreadPerl_pp_syswritePerl_pp_fteexecPerl_pp_ftewritePerl_pp_ftereadPerl_pp_ftrexecPerl_pp_ftrwritePerl_pp_symlinkPerl_pp_killPerl_pp_utimePerl_pp_chmodPerl_pp_unlinkPerl_pp_ftsvtxPerl_pp_ftsgidPerl_pp_ftsuidPerl_pp_ftpipePerl_pp_ftdirPerl_pp_ftfilePerl_pp_ftblkPerl_pp_ftchrPerl_pp_ftsockPerl_pp_ftzeroPerl_pp_fteownedPerl_pp_ftctimePerl_pp_ftatimePerl_pp_ftmtimePerl_pp_ftsizePerl_pp_ggrgidPerl_pp_ggrnamPerl_pp_gpwuidPerl_pp_gpwnamPerl_pp_gsbyportPerl_pp_gsbynamePerl_pp_gpbynumberPerl_pp_gpbynamePerl_pp_gnbyaddrPerl_pp_gnbynamePerl_pp_ghbyaddrPerl_pp_ghbynamePerl_pp_msgctlPerl_pp_shmctlPerl_pp_msggetPerl_pp_shmgetPerl_pp_localtimePerl_pp_ftbinaryPerl_pp_lstatPerl_pp_getsocknamePerl_pp_gsockoptPerl_pp_fcntlPerl_pp_seekPerl_pp_recvPerl_pp_readPerl_pp_dbmclosePerl_pp_dofilePerl_pp_dumpPerl_pp_keysPerl_pp_valuesPerl_pp_mapstartPerl_pp_padanyPerl_init_i18nl14nPerl_do_execPerl_do_aexecPerl_do_binmodePerl_do_open9Perl_do_openPerl_av_fakePerl_hv_magicPerl_sv_taintPerl_hv_iternextPerl_gv_fetchmethodPerl_gv_efullname3Perl_gv_efullnamePerl_gv_fullname3Perl_gv_fullnamePerl_printf_nocontextPerl_fprintf_nocontextPerl_sv_utf8_upgradePerl_sv_pvutf8Perl_sv_pvPerl_sv_pvn_nomgPerl_sv_pvnPerl_sv_pvutf8nPerl_sv_2pv_nolenPerl_sv_2pvPerl_sv_pvbytenPerl_sv_pvbytePerl_sv_pvn_forcePerl_sv_nvPerl_sv_uvPerl_sv_2uvPerl_sv_ivPerl_sv_2ivPerl_sv_catsv_mgPerl_sv_catsvPerl_sv_catpvn_mgPerl_sv_catpvnPerl_sv_force_normalPerl_sv_2pvutf8_nolenPerl_sv_2pvbyte_nolenPerl_sv_unrefPerl_refstrxfrmPerl_new_collatePerl_new_ctypePerl_set_numeric_radixlocaleconvPerl_new_numericnl_langinfomodfPerl_sortsv_flagsPerl_sortsvboot_DynaLoaderXS_DynaLoader_dl_load_fileXS_DynaLoader_dl_unload_fileXS_DynaLoader_dl_find_symbolXS_DynaLoader_dl_undef_symbolsXS_DynaLoader_dl_install_xsubXS_DynaLoader_dl_errorXS_DynaLoader_CLONEdlsymdlerrordlclosedlopenlibdl.so.2libm.so.6libpthread.so.0libc.so.6__environlibcrypt.so.1_edata__bss_startlibperl.so.5.10GLIBC_2.2.5GLIBC_2.4GLIBC_2.3GLIBC_2.3.4GLIBC_2.11    ui " ui "͌ ui "Ì ui "݌ii .ii 8ti BNui "0&60`&6h&6p&6x&68&6&6&6&6P&6&6Ћ&6&6h&6&6&6P&6&6&6(&6x&6'6'6 '6X'6 '6؏('6(0'6h8'6@'6H'6m`'6zh'6p'6x'6'6'6'6'6'6'6P'60'6'6'6'6'6'6'6'6'6—(6ŗ(6ɗ(6͗(6ї (6՗((6ٗ0(6ݗ8(6@(6H(6DŽP(6X(6`(6h(6p(6x(6(6(6(6(6(6 (6(6(6(6(6"(6'(6*(6.(61(65(68)6)6})6<)6? )6F()6K0)6P8)6U@)6ZH)6`P)6cX)6g`)6jh)6np)6)6{)6)6{)6,)69)6{)6D)6{)6K)6Q*6{*6s*6{*6] *6c@*6H*6P*6=X*6<`*6Fh*6'p*6,x*6+*60*66*6=*65*6<*6P*6D*6L*6Q*6V*6]*6d*6\*6c*6l*6s+6k+6r+6{+6 +6z(+60+68+6@+6H+6P+6X+6`+6h+6 p+6x+6+6+6+6+6+6+6+6+6+6k+6q+6+6+6+6+6x+6,6,6 ,6,6% ,6-(,630,688,6>@,6JH,6WP,6]X,6e`,6jh,6pp,6wx,6,6,6,6,6,6,6+,6,6G,6$,6,6,6,6,6,6,6-6-6-6-6 -6(-60-68-6@-6'H-67P-6DX-6V`-6ch-6up-6x-6-6-6-6-6-6-6-6-6-6-6-6'-66-6H-6_-6k-6|.6.6.6.6 .6(.60.68.6@.6H.6P.6`.6.h.67p.6Ax.6K.6U.6_.6j.6w.6[ .6.6_ .6Q.6.6.6.6.6.6.6.6/6/6/6/6 /6(/6 0/68/6%@/6+H/65P/6BX/6B `/6Bh/6 *p/6*x/6/6*/6*/6*/6*/6*/6#*/6(*/6-*/62*/67*/6<*/6A*/6F*/6M*06W*06`*(06g*806q*H06|*X06*h06*x06*06*06*06*06*06*06*06*06*16*16*(16 +816+H16!+X16'+h167+x16D+16O+16X+16b+16s+16+16+16+16+26+26+(26+826+H26+X26+h26+x26+26y26 *26*2626*26*26*26*26*26%26(*26/"363"367"36>*36İ 360 (36^;@36pdH36DP36X369E`36}dh36Gjp36idx363636l36l36l36l36l36l36l36l36m36m36 m36m46m46m46m46m 46"m(46&m046*m@46H46P46X46464646 4646 4646464646 4646464646T4656$56J356+560 565(56:056?856D@56HH56MP56RX56Y`56^h56İp56dx56h56l56r56x56~565656565656565656565656ƛ66̛66қ66؛66ޛ 66(66066866@66H66P66X66`66h66p66 x66&66,66266O366666;66y|66B6666G66P66Z66`6676%(76e76k76q 76w(76~076876@76H76P76X76`76h76p76x7676)_76n76=767676˜7676 7676&E76՜76ߜ767676768686861c86 86(86M(086886@86 H86 P86X86`86 h86p86(x86.86,86986786B86@86I86R86P86X86V86a86=86h86s86`8696j9696t96 96~(96096896@96H96P96X96`96h96p96x9696.96969696ŝ96͝96֝96ԝ96ݝ969696@96L96G9696:6Q:6V:6[:6 :6(:60:68:6hk@:6F(H:6pP:6X:6`:6j^h:6 dp:6x:6*:6 :6:6:6":6%:6(:62:68:6B:6H:6O:6T:6;(:67>:6[:6b;6h;6n;6k;6 ;6l(;6u0;6|8;6z@;6H;6P;6X;6`;6h;6mp;6x;6;6;6;6;69;6Ǟ;6О;6֞;6ϩ;6;6ѝ;6;6۞;6ߞ;6;6;6<6<6<6<6 <6(<6!0<6&8<6@@<6*H<62P<6<X<6D`<6Lh<6Rp<6xx<6X<6HE<6b<6l<6c<6c<6<6v<6{<6wc<6k<6<6<6<6<6<6=6=6Ɵ=6r=6 =6ϟ(=6ן0=6l8=6ޟ@=6H=6P=6X=6`=6h=6p=6x=6 =6v/=6=6=6%=6r=6=6r=6*=62=6:=6C=6H=6M=6Q=6-=6?k>6V>6\>6b>6n. >6h(>6/k0>6'k8>6q@>6xH>6P>6X>6`>6h>6p>6rx>6r>6>6>6à>6ˠ>6Ӡ>6ܠ>6>6>6>6>6>6>6>6>6!>6(?6.?64?6;?6A ?6H(?6O0?6V8?6]@?6dH?6jP?6qX?6k`?6zh?6jp?6x?6?6?6j?6?6?6?6j?6j?6?6?6?6?6š?6ϡ?6Z/?6ء?6ݡ@6j@6ߠ@6@6 @6(@6j0@68@6j@@6H@6P@6 X@6`@6h@6!p@6'x@6.@65@6=@6F@6M@62r@6T@6[@6a@6h@6*n@6o@6v@6@6@6@6A6A6A6A6 A6ɢ(A6Ѣ0A6ڢ8A6@A6HA6PA6XA6 `A6hA6pA6%xA6.A67A6?A6IA6RA6YA6`A6gA6nA6uA6|A6A6A6A6jA6jA6HjB6B6 B6(B6B0B68B6G@B6PHB6PB6XB6ѣ`B6ܣhB6pB6xB6B6B6 B6,B6=B6PB6]B6tB6B6B6B6ˤB6B6B6nB6B6C6C60C6FC6Y C6m(C60C68C6@C6ĥHC6֥PC6XC6`C6hC6pC6xC6C6C6C66C6.C6PC6HC6jC6bC6C6}C6C6C6C6ϦC6ǦC6D6ܦD6D6D6 D6(D60D6(8D6~k@D6DHD6WPD6kXD6z`D6hD6pD6xD6D6ǧD6קD6D6D6D6D6'D6@D6YD6cD6mD6wD6D6D6D6E6E6ͨE6E6ܨ E6ݝ(E60E68E6@@E6LHE6GPE6XE6`E6QhE6VpE6[xE6E6E6E6E6hkE6F(E6pE6E6E6j^E6 dE6E6*E6 E6E6E6"F6%F6(F6F6" F6+(F690F6O8F6T@F6;(HF67>PF6[XF6E`F6VhF6cpF6kxF6F6lF6nF6|F6}F6F6F6F6F6F6mF6F6F6F6mF6F60G6G6˩G6ԩG6 G6(G60G68G6!@G61HG6HPG6eXG6`G6hG6lpG6xG6G6G6!G6&G6ԪG6G6G6G6G6G6$G6GjG6/G6BG67G6XG6cH6cH6H6vH6{ H6wc(H6k0H6b8H6u@H6HH6PH6XH6`H6hH6ƟpH6rxH6H6sH6ןH6lH6ޟH6H6H6H6H6H6H6H6 H6v/H6֠H6ѫH6k^I6rI6I6rI6* I62(I6:0I6C8I6H@I6MHI6QPI6-XI6?k`I6VhI6\pI6bxI6n.I64kI6/kI6'kI6qI6xI6I6ܫI6I6I6I6rI6rI6I6I6I6J6J6J6J}J6 J6(J6 0J6\}8J6 @J6HJ6PJ6XJ6br`J6hJ6pJ6xJ6hFJ6"J6%J6(J6+J6.J61J64J6kJ6zJ6jJ6J6J6J6jJ6J6K6K6jK6jK67 K6(K60K68K6š@K6ϡHK6Z/PK6ءXK6ݡ`K6jhK6ߠpK6xK6K6K6jK6K6jK6K6?K6 K6K6K6!K6'K6.K65K6=K6FK6ML62rL6TL6[L6a L6h(L6*n0L6E8L6O@L6]HL6pPL6}XL6:`L69hL6:pL6F:xL69:L6S:L6x:L6:L6:L6:L6:L6:L6L6L6L6L6L6ƬL6ЬL6ܬL6]:M6f:M6o:M6M6 M6:(M6':0M60:8M6@M6HM6jPM6jXM6Hj`M6hM6 @6@6 6#H6(6}6 6CȤ666h6"H6*(6/M6M6M6M6M6M6{M6 M6MM6M6M6)M6UM6M6/M6M6\N6N6N6N6 N6(N60N658N6@N6HN6PN6XN6`N6hN6pN6ixN6N6N6N6N6N6/N6N6N6N6N6N6N6_N6N6N6N6O6O6O6O6f O6(O630O68O6@O68HO6PO6XO6`O6hO6pO6xO6O6O6O6ZO66O6rO6[O6O6'O6O6O6tO6O6O6O6O6P6P6HP6~P6 P6u(P680P68P6@P6HP6APP6XP6`P6hP6;pP64xP6P6P6P6P6P6]P6P6]P6OP6P6-P6P6KP6&P6P6P6Q6Q6Q6Q6 Q63(Q60Q6#8Q6@Q6HQ6)PQ6"XQ6`Q6WhQ6pQ6xQ6QQ6Q6Q6FQ6Q6Q6Q6?Q6 Q6Q6pQ6YQ64Q6Q6Q6Q6R6R6R6R6 R6(R60R68R6*@R6HR6%PR6XR6 `R6hR6pR6TxR61R6R6;R6R6R6R6hR6R6R6tR6R6R6vR6R60R6$R6S6S6kS6S6& S6P(S6+0S6Q8S6@S6HS6]PS6MXS6`S6hS6#pS6xS6NS6S6S6S6S6S6oS6S6+S67S6S6S6=S6S6S6JS6T6T6T6IT6 T6(T6?0T6[8T6S@T6HT6IPT6qXT6`T6LhT6pT6xT6T6T6T6`T6T6+T6T6T6T6T6T66T6mT6T6iT6T6sU6U6U6U6 U6(U60U68U6@U6MHU6PU6XU6r`U6hU6pU6xU6U6U6?U6U6\U6:U6FU6U6U6U6U6uU6iU6U6~U6U6V6RV6lV69V6Y V6p(V6,0V6g8V6@V6HV6PV6xXV6`V6:hV6vpV6xV6V6CV6V6V6V6V6V6V69V63V6V6V6V6JV6V6V6 W6-W6W6>W6@ W6g(W6n0W68W6@W6HW6PW6UXW6O`W6;hW6`pW6OxW6|W6IW6`W6W6zW6W6?W6W6W6]6W6Z6W6`_6Y6Y61Y6Y6Y6Y6Y6 Y6Y6iZ6CZ6Z6Z6 Z6(Z60Z6R8Z6@Z6HZ6PZ6XZ6`Z6hZ6pZ6'xZ6(Z6dZ6(Z6Z6Z6Z6Z6Z6Z6Z6tZ6AZ6PZ6tZ6@Z6[6[6[6A[6n [6r([60[68[6@[6H[6P[6X[6`[6h[6p[6x[6D[6[6[6|[6[6![686[6[6b[6%[6[6[6[6[6[6[6\6\6M\6\\6 \6(\60\68\6@\6WH\6dP\6X\6^`\6oh\6 p\6x\6C\6\62\6v\6\6\6\6\6\6\61\6\6q\6k\6\6h\6d]6]62]6) ]6u(]6B0]68]6@@]6H]6P]6#X]6`]68h]66666666ȕ6Е6ؕ666666666 6(60686@6H6P6X6`6h6p6p]6x]6]6`]6]6]6)]6x]6]6a]6]6{]6.]6]6]6]6]6]6^6.^6c^6u^6 ^6(^60^68^6^@^6eH^6zP^6aX^6 `^61h^6p^6x^6^6W^6h^6^6=^60^6^6^6^6^6^6^6J^62^6^6^6_6_6*_6_6| _6'(_60_6'8_6@_6H_6LP_6X_6_h_6p_6%x_6_6N_6_6_6_6_6w_6 _6_6_67_6t_666`6606666d66Z6:6Ȃ6Ђ6؂66X6ȍ6666B6666' 6(640686@6`H6P6X6Xh6Hp6zx6-66 666p666;6ȃ6Ѓ666؃6w6666686866 6E(6E0686@6H65P6X6~`6h6p6x66P6w66(66V6665Ȅ6Є6؄6666666B6S6  6j(6j06j86j@6H6P6uX6)`6h6p6ox66666666ȅ6Ѕ666؅6Z6A6A66\666t6t 6F(60686F@6]H6 P6 X6`6~h6p66x626K6U66W6W6f66 Ȇ6І6m؆6f66466666 6 6(606867@6H6P6`6h6*p6Wx6666o6o6i6V6ȇ6Ї6 ؇6676"66E6661 63(686}@6H6kP6aX6`69h6p6/x6z6z666C66q666KȈ6Ј6؈6V6X6V66"6 6 666(6e06 86@666H6P6X6J`6h6p6x6f6f666666{ȉ6{Љ6؉6666666#6h6h 6;(6;06+86+@6JH6JP6JX6J`6Jh6Jp6x6666656565656565Ȋ65Њ65؊65656565696666 60686@6Ћ6(6H6+P6SX6S`6h6p6Px6<66x66E6666_6aȋ6؋66D6Y66O66*6>6> 6(6$06lP6lx6l86RX6R6R@6H6`6h6p66U6U666y66D6DȌ6DЌ6،666666666 6(6606b86@6H6P6X6`6h6p6x66666C66A66:6a666666 6(60686@6H6`6x666Ў6666(66666666Џ6؏66666 6(60686@6H6P6X6`6h6p6x66666666А6ؐ66ؑ666 6(6P6X666Ȓ6В6ؒ6666666660686`6h6p6x666666666ȓ6Г6ؓ66666666 6(666686`6h6666(6@6X6p66666Ș6И6ؘ66666 6(66'6'6'6'Ȏ6'@6'6'6'6'6'6'6' 6'(6'06'86'@6'H6'P6'h6'6'6'6'6'6'6'6'6'6'ȑ6'6'6'6'86'`6'h6'p6'x6'6'6'@6'H6'X6'86'@6'H6'P6'X6'`6'h6'p6'x6'6'6'6'Д6'ؔ6'6'6'6'6'6'6' 6'(6'06'86'@6'H6'P6'X6'`6'h6'p6'x6'6'6'6'6'6'6'6'6'6'6'6'Ȗ6'Ж6'ؖ6'6'6'6'6'6'6'06'@6'H6'P6'X6'p6'x6'6'6'6'6'6'6'6'6'6'ȗ6'З6'ؗ6'6'6'6' 6'06'86'H6'P6'`6'h6'x6'6'6'6'6'6'6'6'6'6P6hX6hh6hБ6h6hp6B66 660666؎6@6@6@6@606886H6P6X6`6h6p6x666ȏ6c66666Ȑ666X6`6p6Nx6N6 6I06 @6H666666 6(6P6>6#6666$6$66Ȕ66x6 6(666606}@6`6kh6p666M66  6(686p6x6 6m66w6(6h686!6N6d6(6K`6?h6m6(6~6O6* 61(6`6,h6666 6(6!`6h66X6$ 6(6Dh676767676@6Xh6666-`6L@6 666}6}ȥ6}6.66o6إ666X666,6 6(6 0686@6<H6P6X666ب66`69 69696969h6(666ȩ6p6A06A6A6AЩ6A6Х6j6666666 6(606j86|@6lH6yP6X6`6h6p66U@6U66h6H66*p6*P6*Ȧ666h6Ц666ئ66x66 6 6,ȧ6,6666,ا6,6,6,6_6_6_6q6Ш68666@6 666H6g(6g6g6gP6 06 6 X666l6Ч666>6,86`6|x6G6c6Ȩ666p6I696w66ة6`6`6`6`6b `6(`60`68`6 @`6H`6P`6X`6``6h`6p`6x`6z`6J`6U`6H`6`6`6`6z`6`6`6`6`6?`60`6 `6`6 a6a6 a6xa6 a6x(a6 0a6L8a6@a6Ha6EPa6 Xa6`a6 ha6pa6xa62a6a6a6a6a6Ca6a6la6a6a6a6a6a6-a6a6a6b6b6b6b6 b6@(b60b68b6@b6Hb6Pb6Xb6j`b6hb6cpb6 xb6b6Yb6b6tb6b6Jb6]b6b6b6b6b6b6xb6b6b6b6^c65c6c6c6 c6n(c60c6 8c6@c6Hc6Pc6>Xc6`c6Ghc6pc6Mxc6'c6c6c6c6c6`c6c6c6c6c6c6 c6c6c6c6!c6d6"d6#d6d6 d6(d60d68d6b@d6Hd6uPd6$Xd6`d6hd6pd6xd6Od6%d6&d6Dd6d6 d6d6d6d6d6)d6d6d6d6:d6.d6e6e6e6e6j e6*(e6^0e68e6+@e6,He6Pe6Xe6,`e6Ghe6-pe6xe6.e6/e6He6}e6e6e6}e6e6e6e6He66e6e6e6e6e6/f6f60f6f6W f60(f6q0f6Y8f6U@f6Hf6,Pf6Xf6`f6hf6pf6xf6f6f61f6nf62f6f6f6f6{f63f6wf6f6Bf6Cf6f63f6g6\g6g64g65 g6(g60g6_8g6@g6Hg6-Pg66Xg6e`g6hg6pg6xg6g67g6"g6g68g6g6Qg69g6g6:g6 g6g6g6sg6g6g6h6h6Dh6;h6< h6T(h6a0h6D8h6@h6Hh6Ph6oXh6`h6hh6cph6xh6h6h6h6=h6>h6h6th6kh6<h6h6gh6Lh6h6h6qh6?h6i6@i6i6hi6 i6.(i6g0i68i6B@i6Hi6[Pi6Xi6C`i6hi6Dpi6 xi63i6i6i6 i6Ei6Fi6Gi67i65i65i6i6Hi6Ei6i6i6i6+j6Ij6j6'j6u j6J(j6#0j68j6@j6QHj6"Pj6Xj6K`j6hj6bpj6Lxj6j6j6j6j6Nj6Kj6j6Mj6j6@j6Nj6j6Oj6j6Pj6j6k6k6k6Qk6R k6S(k60k6k8k6V@k6Hk6Pk6[Xk6`k6hk6apk6@xk6k6k6Tk6k6%k6Uk6hk6Uk6k6k6k6k6Vk6k6k6k6l6"l6l6l6W l6N(l60l68l6-@l6Hl6 Pl6Xl6X`l6hl6pl6\xl6l6Yl6l6l6l6_l6l6l6l6Yl6Wl6Ll6l6l6Zl6[l6qm6m6\m6+m6 m6(m6>0m6]8m66@m6Hm6zPm6^Xm6`m6hm6_pm6xm6`m6km6Nm6m6m6am6m6m6bm6 m6:m6m6cm6m6m60m6[n6n6n67n6e n6(n60n68n6^@n6fHn6Pn6Xn6`n6hn6pn6gxn6n6Rn61n6hn6n6n6in6[n6Fn6n6 n6n6n6n6sn6 n6jo6ko6#o6lo60 o6m(o60o6"8o6n@o6Ho6Po6oXo6`o6 ho6ppo6Kxo6o6o6o6o6o6mo6qo6o6ro6Yo6vo6o6so6to6<o6uo6Gp6p6Wp6vp6i p6(p6w0p68p6S@p6Hp6xPp6(Xp6`p6hp6pp6xp6yp6p6zp6p6{p6yp6{p6p6p6p6p6p6|p6:p6p6}p6q6Rq6q6~q6 q6(q6<0q6n8q6@q6Hq6Pq6Xq6<`q6hq6pq6xq6q6q6q6q6q6Gq6Uq6q6q6q6q6zq6/q6q6q6)q6r6r6r6|r6 r6&(r60r68r6@r6Hr6>Pr6Xr62`r6hr6(pr6xr6r6(r6r6dr6r6Tr6r6r6r6gr6yr6?r6r6&r6r6r69s6s6 s6s6 s6(s60s68s6@s6Hs6RPs6Xs6`s6*hs6\ps6xs6s6s6s6s6s6~s6s6Os6]s6s6s6s6s6s6Ss6s64t6t6t6t6 t6(t60t68t6@t6Ht6Pt6Xt6_`t6ht6pt6xt6t6t6%t6t6t6rt6t6lt6t6t6t6{t6t6t6t6Ft6 u6%u65u6u6X u6(u6^0u68u6%@u6Hu6Pu6Xu6`u6hu6pu6xu6)u6;u6u66u6u6u6u6Fu6Wu6u6^u6Au6u6u6u6u6v6Av6iv6v6 v6 (v6 0v68v68@v6Hv6Pv6/Xv6r`v6hv6pv6xv6v6v6v6v6ov6v63v6v6v6_v6v6v6Bv6Pv6v6v6w6w6w6w6 w6(w60w68w6@w6Hw6`Pw6Xw6`w6hw6pw6xw6w62w6 w6>w6vw6vw6w6Bw6w6=w6w6rw6w6w6gw6w6kx6wx6x6[x6 x6L(x6\0x68x6@x6Hx6'Px6Xx6`x6hx6[px6xx6-x6x6x6x6x6x6x6x6x6x6x6x6dx6x6x6Gx6y6-y6Zy6y6/ y6S(y6/0y6%8y6@y6RHy6Py6.Xy6`y6\hy6py6xy6Ay6y6y6ry6jy6y6y6y6]y6Iy6$y6}y6y6y6y6y6z6z6z6z6 z6(z60z68z6S@z6Hz6Pz6Xz6`z6hz6pz6xz6z6z6z6z6z6hz6z6z6vz6z6z6z6lz6z6;z6z6{6H{6{6{6 {6g({6m0{68{6@{6H{6P{6X{6$`{6h{6p{6x{6{6{6{6{6{6T{6o{6{6{6{6{6{6{6{6{6{6e|6|6|6|6  |6f(|60|68|6@|6H|6P|6X|6`|6h|6p|6x|6J|6/|6|6n|6|6|6|6|6|6{|6|6|6|6|6=|6q|6}6(}6}6}6 }6(}60}6j8}6@}6H}6P}6X}6`}6h}6p}6!x}6R}6}6V}6s}6}6}6}6l}6+}6}6}6}6j}6A}62}6}6~6~6~6~6 ~6 (~6|0~68~6@~6QH~6P~6X~6w`~6h~6Dp~6Nx~6~6~6~6T~6~6~6y~6~6~6&~6~6~6~6~6~6H~66666. 6b(60686m@6H6P6X6`6h6;p6x66666666}6666n6s636666666` 6(606 86@6AH6P6X6`6Qh6p6x6666666p66=6Ȁ69Ѐ6s؀6666&666P66 6(606]HB2CH53%3@%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3h P%23h @%*3h 0%"3h %3h %3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h %z3h!%r3h"%j3h#%b3h$%Z3h%%R3h&%J3h'p%B3h(`%:3h)P%23h*@%*3h+0%"3h, %3h-%3h.% 3h/%3h0%3h1%3h2%3h3%3h4%3h5%3h6%3h7p%3h8`%3h9P%3h:@%3h;0%3h< %3h=%3h>%3h?%3h@%z3hA%r3hB%j3hC%b3hD%Z3hE%R3hF%J3hGp%B3hH`%:3hIP%23hJ@%*3hK0%"3hL %3hM%3hN% 3hO%3hP%3hQ%3hR%3hS%3hT%3hU%3hV%3hWp%3hX`%3hYP%3hZ@%3h[0%3h\ %3h]%3h^%3h_%3h`%z3ha%r3hb%j3hc%b3hd%Z3he%R3hf%J3hgp%B3hh`%:3hiP%23hj@%*3hk0%"3hl %3hm%3hn% 3ho%3hp%3hq%3hr%3hs%3ht%3hu%3hv%3hwp%3hx`%3hyP%3hz@%3h{0%3h| %3h}%3h~%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h% 3h% 3h% 3h% 3h% 3h% 3h% 3hp% 3h`% 3hP% 3h@% 3h0% 3h % 3h% 3h% 3h% 3h%z 3h%r 3h%j 3h%b 3h%Z 3h%R 3h%J 3hp%B 3h`%: 3hP%2 3h@%* 3h0%" 3h % 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3hp% 3h`% 3hP% 3h@% 3h0% 3h % 3h% 3h% 3h% 3h%z 3h%r 3h%j 3h%b 3h%Z 3h%R 3h%J 3hp%B 3h`%: 3h P%2 3h @%* 3h 0%" 3h  % 3h % 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3h% 3hp% 3h`% 3hP% 3h@% 3h0% 3h % 3h% 3h% 3h% 3h %z 3h!%r 3h"%j 3h#%b 3h$%Z 3h%%R 3h&%J 3h'p%B 3h(`%: 3h)P%2 3h*@%* 3h+0%" 3h, % 3h-% 3h.% 3h/% 3h0% 3h1% 3h2% 3h3% 3h4% 3h5% 3h6% 3h7p% 3h8`% 3h9P% 3h:@% 3h;0% 3h< % 3h=% 3h>% 3h?% 3h@%z 3hA%r 3hB%j 3hC%b 3hD%Z 3hE%R 3hF%J 3hGp%B 3hH`%: 3hIP%2 3hJ@%* 3hK0%" 3hL % 3hM% 3hN% 3hO% 3hP% 3hQ% 3hR% 3hS% 3hT% 3hU% 3hV% 3hWp% 3hX`% 3hYP% 3hZ@% 3h[0% 3h\ % 3h]% 3h^% 3h_% 3h`%z 3ha%r 3hb%j 3hc%b 3hd%Z 3he%R 3hf%J 3hgp%B 3hh`%: 3hiP%2 3hj@%* 3hk0%" 3hl % 3hm% 3hn% 3ho% 3hp%3hq%3hr%3hs%3ht%3hu%3hv%3hwp%3hx`%3hyP%3hz@%3h{0%3h| %3h}%3h~%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3h P%23h @%*3h 0%"3h  %3h %3h% 3h%3h%3h%3h%3h%3h%3h%3h%3hp%3h`%3hP%3h@%3h0%3h %3h%3h%3h%3h %z3h!%r3h"%j3h#%b3h$%Z3h%%R3h&%J3h'p%B3h(`%:3h)P%23h*@%*3h+0%"3h, %3h-%3h.% 3h/%3h0%3h1%3h2%3h3%3h4%3h5%3h6%3h7p%3h8`%3h9P%3h:@%3h;0%3h< %3h=%3h>%3h?%3h@%z3hA%r3hB%j3hC%b3hD%Z3hE%R3hF%J3hGp%B3hH`%:3hIP%23hJ@%*3hK0%"3hL %3hM%3hN% 3hO%3hP%3hQ%3hR%3hS%3hT%3hU%3hV%3hWp%3hX`%3hYP%3hZ@%3h[0%3h\ %3h]%3h^%3h_%3h`%z3ha%r3hb%j3hc%b3hd%Z3he%R3hf%J3hgp%B3hh`%:3hiP%23hj@%*3hk0%"3hl %3hm%3hn% 3ho%3hp%3hq%3hr%3hs%3ht%3hu%3hv%3hwp%3hx`%3hyP%3hz@%3h{0%3h| %3h}%3h~%3h%3h%z3h%r3h%j3h%b3h%Z3h%R3h%J3hp%B3h`%:3hP%23h@%*3h0%"3h %3h%3h% 3h%3h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2h P%22h @%*2h 0%"2h  %2h %2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h %z2h!%r2h"%j2h#%b2h$%Z2h%%R2h&%J2h'p%B2h(`%:2h)P%22h*@%*2h+0%"2h, %2h-%2h.% 2h/%2h0%2h1%2h2%2h3%2h4%2h5%2h6%2h7p%2h8`%2h9P%2h:@%2h;0%2h< %2h=%2h>%2h?%2h@%z2hA%r2hB%j2hC%b2hD%Z2hE%R2hF%J2hGp%B2hH`%:2hIP%22hJ@%*2hK0%"2hL %2hM%2hN% 2hO%2hP%2hQ%2hR%2hS%2hT%2hU%2hV%2hWp%2hX`%2hYP%2hZ@%2h[0%2h\ %2h]%2h^%2h_%2h`%z2ha%r2hb%j2hc%b2hd%Z2he%R2hf%J2hgp%B2hh`%:2hiP%22hj@%*2hk0%"2hl %2hm%2hn% 2ho%2hp%2hq%2hr%2hs%2ht%2hu%2hv%2hwp%2hx`%2hyP%2hz@%2h{0%2h| %2h}%2h~%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2h%r2h%j2h%b2h%Z2h%R2h%J2hp%B2h`%:2hP%22h@%*2h0%"2h %2h%2h% 2h%2h%2h%2h%2h%2h%2h%2h%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h%z2hп%r2h%j2h鰿%b2h頿%Z2h鐿%R2h逿%J2hp%B2h`%:2h P%22h @%*2h 0%"2h  %2h %2h% 2h%2h%2hо%2h%2h鰾%2h頾%2h鐾%2h逾%2hp%2h`%2hP%2h@%2h0%2h %2h%2h%2h%2h %z2h!н%r2h"%j2h#鰽%b2h$頽%Z2h%鐽%R2h&逽HHu2HtHÐU=3HATSubH=2t H=2RH2L%2H3L)HHH9s DHH3AH3H9r3[A\fUH=2HtH2HtH=2@ÐHl$Ld$HH\$HHIHtHHH$Hl$Ld$HfDH^(HtOHHtQHEHsHtfHHt HH[HsHuH+HmLhfDHu@HKfffff.HHtN"fHH9rvøHH9Grffffff.HP t&um@"t^H@(wE@"t>HP(f.J t.t&t"H@0H9tf1DuÐHRHuH@0afffff.UHSHHC %=t|~j=ts=Df=DtF=uhHs(H1t/HC(HHpQF|ffDH[]@`tT@v1H[]D==}=t1DfDDtNfDu1C"tHs(Hm=]=uH[(DHC(HPH94H8H9H[]- 1/b1*@1Hu 1F wH@mtH@8fDHN(HQ ffBt A#uHQ(B" uN"@ff.Hfff.HV(HJ ÐSHH H HvtzMHHH E1E11HHD$HD$$Ht3HpF tHFH [HH [1,@H2HH H [fff.SHH H HvtzHH2H E1E11HHD$HD$$Ht3HpF tHFH [HH [1|@HA2HH H [fff.H\$Hl$HLd$HI1HALHHE tHEH$Hl$Ld$H@HHHl$H$Ld$"1H@UHSHHF"@F#F f%f[HS(B HJf%Ff B"!Ht<C |f%f]tf[^&DHL!H1DHH[]fDf]rf\hHH[]f.A f%Ff wA"`H\$Hl$HLd$Ll$H(HHHMMt HtHHMtLHMtLHH5RH12f.SHV(HHt#H5tH1 HH[nfDHVHGHfH\$Hl$HLd$HF Hf%f tyH tJH5HIt-H01ɉHH@ %@=@tK#LcC f%fvHHl$H$Ld$HfDK#@f.Hl$HH5_H\$1HHHHHH\$Hl$HÐUSHHA@ f%f=it6H52L H5aHI1:HHH[]YLHT$H $wHT$IH $빐Hl$HH5H\$1HHHH HH\$Hl$HÐUHSHHF f%f=it6H2HH5H1HHHH[]fHfDH\$Hl$HLd$HHHtrF fV"%==t9uD~t>=t7=ft.=t' f@H$Hl$Ld$HV"sH^(C S"%=gHC(HHpAHC(HH@Hpu<1EtH5H~1tC#_f.EtFfDH\$Ll$HHl$Ld$ILt$L|$H8N Lf( F#ffF#AD$ f%ft0HHl$H\$Ld$Ll$ Lt$(L|$0H8f.Mt$(AF %=f%ftf=uUAtKAF tDIIVH@Hv3|:u,|:u%C#C#fF#EDC#tHAT$#@tC%~=u#H H5oLL1:fAT$#Ƚ f%ftC@0ft8f~ t01f=LI !fAT$# @LL HItAD$ It$(Lf%fAD$ 訲L&ID$(IULH4聲IHHAGIEIT$(LfDHH=m2HuHH4H=iƹ1ff.HH=-2XuHHH=Iƹ1ff.H\$Ld$HHl$Ll$H(o@H譲H+HLIt,Mt'It!M,$ILgLLH ILH\$Hl$Ld$Ll$ H(fff.ATAUHSHHF@tyHvPHtpHHt^x tU:H0HtCHcPHp HDt,H H9uWׅH4H1 HtT@H9tgEt21C@uH[]A\酼DH{PH[]A\oH[]A\Hx HD$ZHD$H@ HDžAUATUHSHF"t[H^(HtRAI @K !wHcLHLt 1HHHHH[HuH[]A\A]H\$Hl$HLd$Ll$HLt$H(HJF!t,:HHl$H$Ld$Ll$Lt$ H(HDf fAF#@t/fAfA)fADf.C"t&Hs(HtfDLnH4MLufAt,fAt$fAtfEuoCf=t f=fH{(蟺H{8HC(莺H{0HC8}H{HHtHtHft fD[HsPHHHC!C!H$Hl$Ld$Ll$Lt$ H(DfAsA$VfL52LuvLkLILkuBMHHH$Hl$Ld$Ll$Lt$ H(sf=?HnH=ùƹ1=HRH=ƹ1!fUHSHHHHxPHt @mFH@PH@mupHx@ti{ HlH(!HHDž(HEHHHp@HHH@@HH@8蘿Hc HH@HHCuHHp`Ht@lH@`HPluOtHx@tH@@HPlfPlH[]fDPH5H1@Hp8ḤHf`lHPlHH蘣HRLd$IHl$Lt$L|$HH\$Ll$HHMII HoMIYMH@HXHt5Hu#HHx@HHH HHIEHHXIE@IEH0趱fDHLHLhHHHLLHLxPHfHlHLp@fDHHl$ H\$Ld$(Ll$0Lt$8L|$@HHfHHPHHEHHH6B1H=hH@DB$Hx Htt H@P$H@mH)HLHDD$HE1蝾H@DD$D@$H HRHIHtH`HYfDH0H5HHEf H{HHLHLhH&HLxPHfHlHLp@HfHlfIE@HH?*H5sLLH1ff.H\$Hl$LLd$Ll$ELt$L|$HHIIAHLHHD$HIHD$I HyH $HLHIHT$K,'LHHH $ALHLHL`HHhPHHl$ H\$Ld$(Ll$0Lt$8L|$@HH@HHLJƋT$LLHL$AHHLHc fff.H\$Hl$HLd$Ll$HL|$Lt$H8H@IILLp8H@L9tH@H舻L@H@HH$.Hx H@HtA$HHtdH0H7H@HH0H0EL@HEHPHEHtHHH6IG0LMHLAHMDLIHL`8IEfHlHtH@Hx0@H(LH\$Hl$Ld$Ll$ Lt$(L|$0H8f.1H螛IG0cffff.H\$Hl$HLd$HLf(H0H߰HHLHߺHH0HLHx HHǀHx @KH$Hl$Ld$H鏽AUAXATAUSHHH@ DfMcf% fE H2JDe"ADe#HEtM@tM@H HH0豝xuH HH0k@ IHH@HE8Ad$ 1LH譛H0Ht B<(HW2HHJH[]A\A]1H@HHH XH H HHE8H H@H HHXLHHH12H5zHJ1l@AWAVAUATIUSHHt$(HT$hHL$pdH%(H$1HZ(Li(C j HH@H$HkAE , IEH@H$MuHT$(B#A%D$|A L$8A$C tAE B#HL$(Di#AHL$(EHY(HDD$|H$E?t$8 HHf.fHH9uH$E111ADL$|/fDEMH Kf9 H9}R;$}u@H Kf9u@*HcA46@EH@Hf1H$9|fEt HD$(H#@Ht$hL Ht$pLH$dH3%(HD$( H[]A\A]A^A_HT$(B#B#AE AHD$(ADh#|H5 LH$HL$(,HD$PLL$LH$Y#<iD$L+ Nl-HDŽ$Ll$`HDŽ$EH$HH H*XLf.L HHH51LHD$XH;l$`H$ H\$XL$Lt$@D$4ME1IH\$ H\$`@DD$LHHH)LLOIEH$H9v } IEAIH9rDd$4Hct$4H H|$XMLt$@H\$ L$1E1)H$Lt$`Ld$ HD$@f.L3MI)MH|$ 1HL蔭H$H|$ L)AHL賢ItaH|$ IV1LƄ$RHT$@H$AH|$ ImH$H|$ LL)ALLHCHPH9HCAHD9l$42Lt$`Ld$ H1LLЬH$L)AHLLHT$@H$ALƄ$ɡLLtH$L)LHLA蕡H$H|$XHHjH@H$HDHD$`DL$8Eu(DD$|H$EHHD$(H#H;l$` H$E1Lt$8DŽ$ID$@D$4HD$ AD$XH$LM~HL$8H9$|$@L$ Ht$ E$D$@$MHt$PHUIHL1A貟MI\H9;H9II)L;l$ oHD$ L)I9tL9LNM Ht$PMHMHL1Ld$@LT$T$4K,L$XEH9DFd$4Dd$4L9Hv*HvHvHDHvZH=v=H=v3H=v)H=vH=vHH9Ƀ9҉T$X@I\LhH9L;t$`D$4T$@MAAD|$|Et@= w =ۃHD$(Hx(GHT$(H5/AELHB(HL$PH^ٟ#LHdHL$(LHA(IT$H4躒HD$(LHP(ID$HЁK Ht$P蔒H$L脒@tEtH$Dl$XEt HT$(J#@H$H$~H|$8H$IH$HT$(J# fH$H$"LLIH$"HHHcA46H߾@1@HT@6WD$E~1MHfK;$|HE111ɿDD$|EffHt0HE1fHt$PH MHL1HsHIA$L$ƶIH$DD$LH$ILLLL$L)rLL$L$HHD$ L)LL$8\HH*X\E1ADŽ$D$XVH|$XH 1L$18H$HL$@!H5ʛ2H=1\@UHSHHV %!(~n=+=fD=Ct<=C"tH 32HH5ҙ2H94HsHtHgHCH[]Ã' fD||fDHHHCHH HtHS8HHHHpuH HS8HHH0軽HS8H HHЁ` HS8H HЁH HS8H H4x=#ffffHs(HHHC(f.}zHs(HvHsHC(HHĩHCxC"NC#cH{(SHC(.fDHvH臩bf.HvHHKQ<@{"fDff.fF SHu[f蓯C Hf%fC He2HSHHC[fAWAVAUATUHSHHXHtF!tHX[]A\A]A^A_fHuH肯H@H蓤C!L Lt$HE1C!H]S %=l=Hs0HfF u!f.HHP0HEHp0fF tHIH3HF!H{==DH@IH3!Wmft1fDHCHOHv1H=t)c!M HHpIc!H3IH@=B@=D$C"C#HS0Ht{J ffulHK(Htcq ffuTHI(HtKfA uCHyu9Hq(v ffu&HI0q ffuȀC#J#I#DH3IMD={s=fD=Dr=H3Iߐ=*=-H3IfD=)=hq=HfJf.Hz(5H諱IC f%fHEHJ4HC(H HEHS(JHEJH HC(LcIH3H3Ht)F f%fC F!IߨH蠟HX[]A\A]A^A_f=PH3If.Hs8HfF uHHP8HEHp8fF tHyHEHp@fF uHHP@HEHp@fF tHIHEHpHfF $DHHPHHEHpHfF t@{#HC(H@@ f%f=HS0B f%f=~HR(B Hf%f t f=_HJ0A f%f IHQH0H)L8AG %@=@IH ΟE11AHHp(D$HD$$ )HIHH@Hx HC(H@H@(L`MufMd$MAD$ f%fuI|$(MD$(I0F m HH@HD$HIHJHL$8A HB HT$8DIE1H@Hp LT$($蜬HLT$(fIH@(@JHH@HRH\H1HAG  IGr@H3H$F f%f=H=H3HFH@ f%f=f=f=H@V$HID`$H@P$He1H1HH@D`$H3UDHsPHHu$.HHPPHEHpPHfF t==D=DLc(MzAD$ f%ffH{HID$HIHH fuH@HH ff~@f A8L8I9HINfDH3HIt$F f%1f[f=Ift; t6C#HJHH?HU6fDff H3F Hf%f~qfC# fiH A f%fBTA"@JC K"@Hf%fC H2HHCH2CH3H8L&MAD$ f%fC"zH3IF#`HIՉHB#C#C H2f%H3fC H2H@0HCL{0AG f%fI(>I(M'AD$ uJ1I$H@HD$HIt$HAD$ D1aLHHD$0}HD$0I{#HS(B f%f=HR(B f%f {HRH0H[L AD$ %@=@KI$H E1A1HHp(D$HD$$ YHIHH@Hx I7F  HH@HD$HIHJHL$8HB HT$8DIE1A H@Hp $#HI$H@(@, HH@HRH\H HAD$ ID$HT$8H5ޑHIH1fDHS(BL9 HEJ` _HEJ4FN HEJH DL&MHIAD$ f%f I$HHEI$B f%fB#It$(F fHLxH@1B@I)IHM?AD$#t LHC f%fI4$HvLHkI$@" C"C"I$HHH2HD{#HSS ffȀC"fH3I߃fS F#C"@HFHCHFK#H3LM$$MAD$ f%fM$$M~AD$ f%eI$HbH ffNIL$(H@fA 4Hy)HIHfA  HyLy0I9HY(HK ffL;{IO(Hy ffI0HL;?HqHtDF fAfA~H1HIDH3q"@s"HHHHD$0tLHiAL$#HD$0H#I7Bf.HI@HIL"LH趷HHD$HHEHJ4HEHJH Hs(ix#HuHB Hf%HS(HEL~tyHCtHăH1艃HH[] wHQw2f fV H@XHFH[]lHw2fHހʇHfS H8HCElHH[]H\$Hl$HV HH% t\t'eHHl$H\$HHv2f~fV ~HHFk뼐HYv2f fV ~H@PHFH\$Hl$HkHjH1"`DHl$Ld$HLl$H\$H(HIAt.F"t(H^(HtH޹DH kH[HuLH\$Hl$Ld$Ll$ H(H\$Hl$HLd$Ll$HLt$HHHAHx Ht K#@C AA@AAt=C"ƒ S"AT$܃ EjAA@tnfDHHl$(H\$ Ld$0Ll$8Lt$@HHC H=o2LcBDuGH=ANcI<8fK#c"fLk(MtLDH:MmMuE1C HUo2%H q2H9 "f.ȰC" DH苞C f%f=iZHZr2H H@H1HAHHsHs HC"HCAfDAEADA$fA!fDA#fDfHs(HhAAE\?C"@wE\AA[AE\TE\EE\!HSH01H]H@  HSH01H;HH@H5=xHH1AE\?wAE ADA$:IA!fDA#fD{A@2K#E\AwAAE\ +HXHtJ ffE1H)HE1蔘1H蹉HHNlH5|HIrHLHHmlHfHs(HAeA=C"zE\?C"E1H{Hs(DH/C"A@tA+u C"@@ ɀAK#E\?A HC(P fft!f9HHH,H@(IH@HuAE f]I}IMHH5tH11fC"Hs0DHE1Hs(H6dAvAuK#E\AA$LHC(LhMt fLDH誔MmMuAffDAAAK"yAC AEH ztHl2McJ fuB{"HizxHl2%HH5tzH1\lHHw@fH/ztfiuHHHL$}HL$H묐A|AKAD$f6fftAfHC(DHAHp? K#K#OAAA@A@AAD$fvK#A~C f%fUE\@?C"tfC#DC#{HH,|HAE1AAAPfAD$҃Df%c#HAfC Hk2HHCHC(Hp(,fHr(F HDXEHr(F HHcpH#HHfH5wHIܖHLHHfHHDžXE1ftfuR0P ffP Hj2HH@(HHPIEP#ʀP#fDAM#AD$҃<UHXHH vE11AH$豋@ tZHH uE1A1H$胋HpH諌pHXNHH uE1A1H$)HHYgIu(V fu:HNHH5LoH1\HHcftzHHteH9t`IUL.AE f%IEfAE Hh2HIEAE#ȀAE#SHv(V fuHN^IEHN(HUHHRHRHiH@lC 8HSH01HyH01H荖DH5tH1WHHH5mH1<@ATIUHSH H@lt/HF(HXHt"fH޺HH[Hu[]LA\ffffff.H\$Hl$HLd$Ll$Lt$L|$0H8AILc蹄I@ ff% fAD$ H`g2JEt$"M|$(M$$ID$Ha2F4AuXAucH0HtB<(ufHxb2LHHl$H\$Ld$Lt$(JL|$0Ll$ H8f.LH-AtHxID$LHVvHoe2H5jHJ1誋fH\$Hl$HLd$Ll$Lt$L|$0H8IALc艃I@ fHf% кfAE H'f2JIEҁIE(HSHH4.UHCIU(LH$pHH$pH$pH;D$HH$p@ f%fftf=tftftHD$HĀ[fHOHHuy-HT$HB(`#fD$|^hHL$Q Bff% fQ $|$|HT2HcHHADH $Jf.H$p@#@.fH$pH<$Uf.}HT$HHHD$(H$pHD$HH$H$pJ0HHBL$$:\H$H|$81HH$HH$HH$ HH$(HH$0HH$8HH$@HH$HHH$PHH$XHH$`H$HǂH@H)S2HH`HD$0azH $É$HD$0H`Ƅ$tlHD$0H $H5;YH`HD$HHHT$1Hw$|H<$SnHT$HB4DH<$H$H $HHHH$hHHD$HpHHQH$hH91HaH $HD$0H`HD$HHT$HHH@HD$$;A0B{Ht$H<$ua$|H$hH<$1Ҿ=TEHD$HP(B f%f}B#@JnfDH$h@6H$hHt H$h@H$h` H$H<$1HHmH@H0^H $HH@H0F un%_F H $HH@HH DHT$(HD$HH$hH<$1ҾOFHarH<$HQHsxH$HH@H0F pH<$HQHL$H HL$( H\$Hl$HLd$Ll$ALt$L|$IHH8M9mMIfDd$AE DfMcf% fAE HO2JMu(IEMAE"Am#M~H0Ht B< HJ2LHBH8t#H\$Hl$ Ld$(Ll$0Lt$8L|$@HHH T$9uHP(HHHRHP0H\$Hl$ Ld$(Ll$0Lt$8L|$@HHT@Am#P11H`ILHy^HM2H5RHJ1sDH\$Hl$HLd$Lt$ALl$H(HɉIHI2McB0fAkP fD fP H>N2JLp(HPP"@h#H0Ht B<*HH_I2HBH8t:H$Hl$Ld$Ll$Lt$ H(DLHsISDHHl$H$Ld$Ll$HLt$ H(IS1Ҿ\_IHH]H2L2H5{QHJ1mrDSF Hff tvHH1[Wf% fF HM2H@HHFH[ÐUH5CWSHHSBHHtBH01ɉH]H@ %@=@tH1Ҿ ^HhH[]HXH߾1KHHH[]QfH\$Hl$HHHuHHl$H\$HHVDH\$Hl$HV HHf%f tlf t6f=t0HHMuHHl$H\$H1ҾH}VDHvtHHRH1WHK2f fV H@XHFHH\$Hl$HH\$Hl$HV HHf%f tlf t6f~t0HHtHHl$H\$H1Ҿ~HUDHutHQH1WHJ2f fV H@PHFHH\$Hl$HH\$Hl$HLd$Ll$Lt$L|$AHH8IIgH@ f% fC H[J2HLc(C"HCM$MSIH_HC0DHD꾞HC#Mt$HL$T1HHIT1HI1HTLHHD$!KL$HLM,$M>aeHCHUH@H4ºTH1eIEHUHH4ºTAD$ 1ɉf%fDAU#AF f%fHD$D˄AO#IEtu Ht$HmJHD$H\$Hl$ Ld$(Ll$0Lt$8L|$@HHDLH5JIDLHL$JL$H\$Hl$HLd$H(t'HPH\$Hl$Ld$ H(DF f%f>AHHNjHHQHH@H@HHH@HHH߀H#@H@H@H@HHHpHǃ A9H5T1ɺ H|`HHHShHHH;SpHShtHH+KH HS H)H)HL`1HtHoUI$HL#HHl$H\$Ld$ H(uSDHLJ0HLJ F!F!jHDҁlQHHPH HHXHPH߀H#@HPH@HPHHXHpHl$H\$Ld$ H(DH\$Hl$HLd$ H(IDHHHTHHmGHfHHD$frHShHD$qHSHt:oHH[`tP@1[@H\$Hl$HHtEt=t5HѾ+PHH\$Hl$HH:HHH\$Hl$11HOHSHt F f%f t!f~tf=tf tH[Hߺ#kHH1[OH\$Ld$HHl$Ll$H(~"IxMHv(LnHFgLHHC(LUU HEfftPP fftHHl$H\$Ld$Ll$ H(f fP H=D2HHPf fU HD2HHUH\$Hl$H(F"HHHu:H`1ҾXB1HHvNHHHD$fSHD$H\$Hl$ H(f.H\$Hl$HLd$H(V F"HAfAuzEHN(A f%fttf@tfffwK#H>2H5$A2H94uf=tf=tK#H fDHH\$Hl$Ld$ H(ÐHH}RAt|HDHH\$Hl$Ld$ H1H(IMA#@LHq(?HDH@HHHD$RHD$afDHHHH\$Hl$Ld$ H(@@H\$Hl$HLd$Ll$HLt$H(F"gLv(MAF f%fHHHC(\Q8^I@ L-A2f%f EfAD$ I( AD$#M$$ID$H0Ht EH<2LH( LL⾰H\WH@ f%f FfC I0 HCI\$0HHl$H$Ld$Ll$Lt$ H(Ðf=L6jƅHCtHH@Hp HtH04HH+CHS(HBK#qf#PHs1HCH KH@F":qLHOH>2H5GDHH( 16efffff.H\$Hl$HLd$L|$ALl$Lt$HHHHIHr(H$HAE f%fuAM#LHlILH\$Hl$ Ld$(Ll$0Lt$8L|$@HHfDAG"`Mo(@@M.IŠHtIEIG(LHHDLHpIw(HF HHH@H&IAD$ f%fuAL$#LHfHLfDHscH|?H1DLaLHHaT$ IHHl$ H\$HLd$(Ll$0Lt$8L|$@HHJIw(H-F HHH@HHHF80fIW(B < ffH{bWHDH1C<IT$(H|B f%fjHRH]B f%;fDML_[wAL$#@88TI@ fHcf% fAF H62HMn(IFD$ AF"I$HIF0D$ AF#IEHyIMuMeH0Ht <(H12LHL11HAI$ucHfWf.K?DDuFHfWf. HHxfHHxfHBf@ AE"i H``TAE IU(HJ%H3A f%f!A"@R"H@Hx LaB HDr$H@J$PfH32H HBH;LC1@H@Dp$@HHF80DH\qHD\Q$6B fftQf tJfuWHz ffDLHm5wLH]5HfuHBff%LHzCH22H57HH1XfDHHL$HL$L$IHÐH\$Hl$HLd$Ll$ALt$L|$H8MIHM6HH%LHcHI&Hp(HF tiHHH@HAG#ILHHtqLHBHH~BLH\$Hl$Ld$Ll$ Lt$(L|$0H8uCrHfWf. ЄuAG#MHHuLH`ifDHHxHѾ1HHl$H\$Ld$Ll$ Lt$(L|$0H80@HtHF8081OI@ f% fAG H12H Mo(IGDAAAG"Eg#HEHIG0IHIH0Ht H,2LH MeMtXM}ImLLu11H;IHEL IcfH@YIȾH1LH[2ILHK2PHH;2-LHx@H/2H54HH 1UH\$Hl$HLd$Ll$HLt$H8HF(H+2H Dt @"@LhMtAE f%f t'HH\$Hl$Ld$ Ll$(Lt$0H8fDA}#yIUH01H4AH@ %@=@uAU#AE" HMe A1I1HAHHM1HIJ!HUIMJJ Q ffhfQ H/2H@ LaHQHS(MfHRHS0f@#LhMAU ff A}#IUHPIEHVHPHF(HD$>LH>HD$H#AWAVAUATIUHSHF f%f#R1f!FtB f%f=8IAD$ f%f#9E1AU ffKA|$@7 2L1H8Iž8PKI@ LHf%fAG H-2HIG@WIG(AO" |EAw @AG# Mg0AO"HMIIGƅA|$@x  I}M/IE(L8LHVAt$ LHHcCHAD$A.H@Hx @|9B$t85JI@ HHf%"fAE H,2HIE%VAM"IE(AE#Me0HHIELL+HUID$HIEHID$PIEHL[]A\A]A^A_@HZ0HB(HH@H9uHFHr0AE f%f=LHA& C f%fL+M<L91E1~HQ&2@tKfnIU(HEH=8HHPHR8HHEHH@p ?HAIEHH9LIAE f%Kfpf~tBftH](C Lkf%HL fC Hz%2H@hHCNCALkMfLLNI]HvHLNH{E f%f=iH#2HHLH\$Hl$Ld$Ll$ H(\DC"@DLOWH3,L10<H\$Hl$Ld$Ll$ H(K]HLe4H]DH]0HH\$Hl$Ld$Ll$ H(@H5LO1HL&HHE(HE0f.LHHL ;Lkv@1L<1HLD&HHL:I]RH501HfH\$Hl$HLd$Ll$H8HɉAtA f%f=E11ҾH?HH2LcBt{A ff% fA H#2JDa"HAH0Ht B<(H=2HHBP 9tMH\$Hl$ Ld$(Ll$0H8@Hq(HHL$/HL$jDa"KHHl$ H\$Ld$(Ll$0HH8 (HH1H !2H5T&HJ1FGfffff.H+fffff.Hf+fffff.H\$Hl$HF HHf%f=tHH\$Hl$H@H5uA 1HHHH&HHH¾7HH\$Hl$H1ҾH*fff.H\$Hl$HLd$HAHB f%ftZfH5=H DH1H>IHHk0LH$Hl$Ld$HB"th2IB f%ft*f=tTH@H+If.Hu(F tHvfR"1HaNH8B"@uH5F1HH*HfDH\$Hl$HLd$Ll$H(HDoTa Hx Ht LeMLLcHHEpH4HLcHv*DkTE HLe(f%~fE HH2He!HEE"E"HHHH1HCx@HKx!LHE(H.HHJ HHHl$H\$Ld$Ll$ H(gHH\$Hl$Ld$Ll$ H(@HHIDH\$Hl$HLd$HHHF"Hx Ht S ffC#tH52DulC"rfD=@ttH;HH4DHHl$H$Ld$Hf.@uLc(HLMd$Mt!I|$LHMd$MuHH@if6@HC(L`M?LHuMd$MufDAfttFfELHf3?fDLc(Mu(OLHMd$M3I|$uLH݃HHC"H$Hl$Ld$HEHs(H_Hs(F f%f=9HHHH$Hl$Ld$H,'@AWIAVAUIATUSHhLN(MaM;AW#L AW#@HH@HuE f%ff=tf=uAD$ f%fZf=HD$(HD$01HD$ A AG#AttII90tAG#L9eHD$@D$ID$<H.H9\$  H*HH(Q ffHI(Q ffH}HQ(HHH2H;0HRHJRabyL@0AH ffM@(AH ffIH(H H H;1lHIHqyaR~Cc"?tK#P ffRu K#P ffSuK#HC(HHpHVHPLHEAE f%f=tNE1f=tmLHpC f%f=trM4$K"fDLH5MuIEfHK0FfDC f%f=t!IEMu(tLH6HLHMu(MmIHu8DfQ fftfuHAHHHHHL9uHMu(1ҀyfybNff.H\$Hl$HLd$Ll$Lt$L|$HXAIM[v]L5LHI5HHb2MH@HHl$0H\$(Ld$8Ll$@Lt$HL|$PHXLP51HH߾$LHI05HH1MHHl$0H\$(HLd$8Ll$@1Lt$HL|$PHX HDC\AU 1LHff%IDHXv1HXH]HǃXHH0HH LHI0HH MDHA%HIDp#E f%f=fuH}U#HMuMgM9LL="2NH0IVH@HHcHHH9PHPIH I9LIAF f%A@tfPfvftNf~ff=ff fuIFHHtHSHH9XQM9tAM#@MtAD$ f%f=MDMAD$ f%f#LHLX2$HHy/LHH2IHD$HHXHǃXILH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXLu(M%E1!AF#DIMvMAF f%Hfvftf+DEfDIV(HCHH9XHH;PHcHPIHf.LH A f%fYfH5!H߈T$T$6E11fIT$(H5B f%f #E f%f~S\?IL$0A f%fHq(F HHxHMHcEfDAL$"@LH0LHH0$HHI-IHD1 fRDH5 H0fD@ f%fH߾HHl$0H\$(Ld$8Ll$@HLt$HL|$P1ҾHX% 1Ҿ+HVIHH1H<1HHH# I%LHI}#kAE#@@\HE(H ffVHzHKHH(LHHJHH@(J@IE(H@(H@HI$ZAd$"HH }E11AH$'@ t4HH OE1A1H$&HHpHH E1A1H$&HH'Hfffff.H\$Hl$HLl$Lt$HL|$Ld$HhMADD$LL$L|$pLl$xtlAQ f%Hffu IyAA"t=IA(1HtHHHtQ ff*f.MD$Eu MuE1 LHm IMtMeMH|$t,1ҾHMLHHLDILLHaHD$(L(MH|$ T$Hx H߉Ht$(,LD$(HL$1ҾHH;D$IHT$(HtI9Lz0Lt IH=IH1H龺HMLm8HEHLDLe@Dp"ADp#H\$8Hl$@Ld$HLl$PLt$XL|$`HhDHLL$õLL$1H1HM4&H1Ҿ*HB HD$PLD$(TfD$7H@*P fftf tfHxL@ f%fIp(Ht0F 9HHtH@HHpLD$LHHH1HHID11HI@PLD$H@ f% fE Ht2HE#HmHELD$.LHI=DfDA"@@@"fLHLD$@LD$fDtHHxitHfWf. ЃHLD$(LD$HF80fDH\$Hl$LLl$Ld$HLt$HHMAHL$t Ax"E1Lt$MtpE?AV f%Hffu I~AF"ft6IF(1HtHHHtQ ff{H1ҾHxHHHHL$LD$1ҾHHD$HT$H1HtHLr0HIHD$EuCH9jDk"HHH"HHHl$(H\$ Ld$0Ll$8Lt$@HHH9'HC(H@0HHD$DAV f%fIv(HtF HHtH@HLt$wfDA@ f%Af=A B@Hh1MH1H!H1Ҿ*HHD$f.$oH@bP fftf tff8L11HH%@H11HiHfHHPuKHfWf. ЃKHxDcHHxA"@~@"n1HHF80H%}fAWAAVAUATMULSHHhMt$DHT$HtAP f%fwf Ep#MhLI@12 AMDt$CAD$ f%f f~wfu AD$"LHE1"HHP"IHHr%LHH?DHH߾lHHT$CPHLjP#\!HLh1ҾH IH$t$DEHHߺD$HD$H$H$ Hx HH1DHT$HHh[]A\A]A^A_@IT$(B f%f=HB(1HLH(MQ(MZAa"LIA(LL$(LT$0ML\$8LL$(IH@(LHA@IHIA0LT$0IL\$8M3IF(Ib LHGf.H01DH H0F HHPHT$XHF1HDt$C8$x_DD$C@fIH(A@#fAP H1HRpIPQ ffD$CAD$ E1f%f fLHA@HH#HHHHIrHT$X"H'HT$X@Hq(HOƒHXH9<DSH5HIt.H01ɉHP H@ D$C%@=@HX1ҾHE1lD$CHrH1H5H1ff.H\$Hl$HLd$Ll$H(HIpHH%LHIWHH MHHl$H\$HLd$Ll$ H( AWAAVAUMATMUHSHHT$ A@ f%fE1HMHQ(E f%fB 0It$(H1HHMH5E1ɺHId1HH"HHH$LHH H $H¾HHHIMtAU LfftIt$(F 01EH11S LH11HA LH1ҾAI|HH11 LHH¾ HHH¾ H5YH1ɺHNHH1Ҿ t$ IHE11HHx ǀHx @KdH[]A\A]A^A_ÐAL$#DH1HHEH$u}H51ɺHH1ҾH]LHHOH$HH HH¾H HHHlH511ɺH"B 0PIH5$H1BH514fff.AWE1AVMAUIH1ATAUSHH|H#@MHtL1ҾH^IAAt#A/IFAL(A/ IFAHE1HuqIFAHHtZ1ҾHLHHj AIŃ/vIFHPIVfH HHIHH@H{1H11}H11!DHMIL5 HH[]A\A]A^A_IFHPIVIFHPIVH\$Hl$Ld$HHL$8H H=LD$@LL$HHH)H$I)y)q)i)a)Y)Q)I)AH18H$ILH$HT$HT$ D$0HT$HH$H$L$Hffff.SHHAHH)H$LD$@LL$HI){)s)k)c)[)S)K)CH$$ D$0HD$HD$ HD$ H[H\$Hl$HLd$Ll$HLt$HHIIEHf1EHzHEHHPHr HnH FE11A HD$HD$$ HH H9HHl$(H\$ Ld$0Ll$8Lt$@HHVfDHEHPHEHtHfLHeLHI1HH]LHH¾HI1H߾5LHH¾H5HHߺ IH1ɾH1t$H8@H5Hߺ 1H¾H10HH-H@Hp zAWAVAUATIUHSHHdH%(H$1Mɉt$8LD$ D$?MLL$0D$(|$?u |$([AE1HtHu(F L~E1MtIt$(F |HH@HD$XLvMHu(D HWHD$@IHtHHMtLHq|$(tHt$ HXAU ƒ  MHL$XLLH$H H1Hx Hǃ Ht ǀD$89C@~ HH$dH3%(H HĨ[]A\A]A^A_H AH@lfu%t IEHxt#HLD$X1LLHM HLHNMtIEPf:1H|$0D$OMt|$OuA>u |$(`E1HHEHx@ LD$XLLHH7|$Ot H|$ |$?HH@D@$Hx Htt H@B$HEHWLH@mHDD$HE1H@DD$D@$HH1MAD$HH 1HHHEH,L`8HEHP@HEfHlHEfHlHUHBHH:HH0H+H;Ht$0HH HHǃ Hx WHT$X"HMI1H0 Ht$@H5 D HI]"1HIfHhH H@lftHUf BlH HHx fH H@lHt$01HuIxD#H@H$HH@IH@H0H5H HDJ$L@8HaLT$HEL1yLT$IrHHt$@DH1#H1RODHE@mM HHLHHHYHr0HH0|$(t`H|$O H HMHH@lf AlHMHAHHHH0HHL$ E1HyH?|$OkHHH HEHRlfPlHE@lwH HHHHR`HP`H HEHRhPhH HH@`H HEHHRXHPXH HH@XHEH HpXH HH t tHEHLhHH@LeHp8*ID$PHEMH0HP0tHL$XLHHHx Ht |$O LeAD$laHT$0B f%fAHD$0H!Ht$0LeH1HH`ID$@HEH@@H#@HEH@@H@LeIt$@HHID$8HEHH@@HHEHp8pHEHplHE@l tMt A>cMAH|$@u E8HH901HHHD$(H5A  HIHD$ H@HH@LcpHt$(DH$1HJ8Hz1ALLH=IIVA$LL$(HHHHH@Hp $HT$ HBHp HHHxEt*Hx Ht kHLLH#Hx IfIELL1HH@HqMH tIEH0HH0 Ht$@H5Ht$0HMt:LHpHH=IDWIBEGIN noIt safe aIfter errIors--comIpilationI abortedL|$`Lt$hLl$pLd$xL$L$Ƅ$SHt$`H1 Hp`HHEtHt$0HeHH 1HHID$@HD$0H!E tLD$XLLHH,IE@MH IEHHhIE@IEH0iH Hq0HX;Ht$0HHCHHEfHlu111HHt$0IH-Ld$0HHHT$`HH@H0HH5IHH@H1IIIVE1AHHH$HHT$ HBH@HHD$ HShHHH;SpHShtgHH+KH HS H)HHHHkLpHPHt$ HHtHHH@Hp NHHD$HShHD$끐SMHIH1HH1ҾHH1[I1^fDME1DAWIAVAUMATIUHSHHMu HIE1Mu4fIH< t< t< t< t < MuLHHH1ҾLHH¾}LH1H-HH1ҾHHH¾HH5s HH HIH[]A\A]A^A_H1ɾ1@MRHH!< t,< ft&< t"Mt< tHI< uHHH)H/ 1HH LHHIf.H\$Hl$HLd$Ll$HLt$L|$HHHIIHx Ht S %=z+@ǃ~A@=p@ǃ@H ftfH H5SHDffiH"1HHH5YH1HHHHl$ H\$Ld$(Ll$0Lt$8L|$@HHf.LC(Ap ffH ftfH H5HDffiHm1HHH5H1&HHKK#Jf.Ls(Mt!LLLHMvMuC#K" ȀC#Hx fC#MtIp(HU@HfǁHx HHǁE*=GHE1LHH0(MY@@LfǁHx HHǀHsHIHEHSALLHHOH5 H1HHI1AFtIHPIFHtHHD$1Ҿ HIHCLHIFKLHI1HHNLH¾HHL$I1ҾHLH¾HH5*1ɺHI1HHLHILHHELH¾HBHHmH#@HIUHIEHBHHHH $H $HHBHP(HHH $H $H)HBHP HEHSAL0LHHLYH5 H1HHMIH8HD$fDH\$Hl$HLd$H(HIHt HJHL$HLHHD$fHT$Ht"H ff tMHѾHH2Hx fǂHx HǂH\$Hl$Ld$ H(@HHHHH#ffffff.1fAWAVAUATAUHSHHF"uHx HH;wLE1HHHx fǂHx HǂH[]A\A]A^A_Dz,u XtHx HD$LE.EuIE.EH=eAHuDE1@@H=B@HIE.EAE<v%AE<vAE< vA_tEfDIE.EtbAE<vAE<vAE< vA_tA|u fD-fDIE.EDtH=AHuDA#HHurESA=t A;f>EH t/HT$H f=tf=H HHDH H11ffff.ATHIUHSt%F"tH^(HtfHHH[Hu[]LA\@UHSHHHv(HF f%ftYHtC"@t,HFHu*H+s HHHKH~t)HHH[]`Hvf.V ffuF#@tƒ@HC"HHPHS(HBHC0H@[H`HHp(%fff.AWAVAUATUSHhH|$Ht$ F H1HcʉT$,HL$0F" @t#@~HD$ LT$ HX(I(C f%ffHHT$XL-LE1HT$H@HHALcIcDL@tf.@uHT$ B f%f=i H1HHt$ H|$ HD$ H|$HKT$,H|$H LcLSLC f%fffzfHL$ A %=t+==Dt=ufDA@E1HD$8HCH|$HLT$T$sT$H|$HHT$8Dp#HHPLT$LcIH|$H1LcH|$H11LT$_HCH|$IHLMfM6LT$M2Mf@C f%ff T$,H|$HxLcl|$,t |$,u MC f%f)f tf~tDHT$0H1IH|$DH H} p@1HL$ Dy#HA f%f=iHb1HHt$ H|$d HD$ HD$ Hh[]A\A]A^A_AuRu |$,H|$HLc_f.Ht$ H|$ HD$ f.H|$HLcC#@Hs(H|$ LT$H|$1H%H|$HhH|$IfLT$H|$HLT$LMfLT$M2C#@HT$0H 1IH|$DH HG fH{DLSH[7HT$ B f%f=i$H1H H|$HIDLT$LT$LcIHs(H|$ LT$H|$1HH|$HxH|$I6LT$HT$0H 1McHK(L HfDC#@Hs(H|$LT$)H|$H1ҾeHL$ ILT$A#u H9Y0H|$HLT$LcLT$=t1=fD:=D8f#A@HD$XC f%f Cfpf=f=t Ls(MtRAF LH CLEf%f=tf~uIV(HtJ ff flH HD$X HL$@T$,H|$HLT$LT$H|$@rH|$LT$8HT$HD$8HL$8LT$HBL4A~ HD$@8$t#H|$H/LLT$LT$HT$@HL$XLH|$ALT$A`1LT$Ht$ H|$H|$߀t$,H|$H1tHD$ Cf=Te=fDXfCHT$0HW1McHK(L HH|$1LT$C f%f=H1HL$0Ht$ H|$HHD$ A`HD$81AH|$LT$LT$HI"H|$HHBHK(Q ffyHQ(HL$HAHHH@HPHT$@Hc@HD$XH|$LT$SLT$KH/1HT$0H|$H H1^LT$H|$LrLT$Ht$ H|$yHD$HS1H0HLT$H0LT$F tNHH@HD$XHvHt$@ H|$HLT$LT$HH|$HHpHT$HH|$"LT$LT$HD$@HD$IV1H0HLD$LT$mHLD$LT$@  HL$IVH|$H01:HLD$LT$H@H#AHPE@H|$H51LT$HILT$@ tDHH@HD$XIVHT$@H|$LLT$H|$@LT$HT$HH|$"HLT$LT$HD$@HL$HR(HAHHaHAHPH2HD$IV1H0HLD$LT$&H|$H01"LT$LD$HA0fH@"tx#t HfDHP(fB tHҐtJ" HDHRf.H\$Hl$H(HF(HHhHtH}tHHl$ H\$H(}DHt$6|HEHt$ff.N"t HF(f@ tHtP fft*fH@f.@#@tɀN"`#ff.N"tHF(HtP fftf.@#@tɀN"`#ff.H\$Hl$HLd$H(HF(HL`MtAD$ f%ft"HHH\$Hl$Ld$ H(T@tIT$8H LHHH@HtL@`H\HAɾH1L$fff.SF"HtFHF(H@Ht9Hxt2F f% fF H}1HHFHH[HHP(HJHtQ fft [f.a#[f.H\$Hl$Hn H>HHH\$Hl$HDH\$Hl$HF"HHuHHH\$Hl$H酺DvtHC(@ %%t  t fDuH DHH1jHSH1TqHl$Ll$HH\$Ld$H(Df CIAHt+@"t%HX(HtDHDHH[HuLH\$Hl$Ld$Ll$ H(Dff.H\$Hl$HF"HHt$HF(H@HtHPHtB f%ft"HHH\$Hl$HfHr(1}AWAVE1AUATIUSHHF L-1f%f=IA1F"@G6HFsID$(fAHpHLHIHx Ht ID$(H@f@ HLx(E LHf%D EfE IcIDHEM"HE(IHH5HE0HI/葹HIH01ɉH1H@ %@=@tgE#AD$#Ml$LmID$(H@HLhMDLHMmMuIHL[]A\A]A^A_fE#AD$#DH.HEsIH@(LxI?IW(HuHHHuI׾8cIHAd$"7f.H=AD$ f%f=itNH1HHHL[]A\A]A^A_Y8H5LHcLHHH5H1H\$Hl$HLd$HP"Ht+L`(AD$ f%f=tEf=t/f=u~LHƼHHl$H$Ld$HʀS"S LH>AD$ f%ftHx Ht?t6K#@C f%f=itRHn1HH5HH1C f%f=it/H>1HH5HH1sHHHHH;fffff.cff.Sff.SHH;P"@#t5Hp(N tp&u1ʀP"HHD$^HD$H[t݁t>P ffit8HY1HH5#H1fʀP"@#@@HHMHSHHF"@t"uHP(HrV fftH[H[~fDHHD$蛺HD$fff.ATUSH@"HtH@(HxH5eA HվHItH@D@EDH51A H蠾HItH@xQH!H5 HE1E11H¾1HCH51A H7H51ɺA HIH@IT$H@HBID$H@HHCxt@I$HHHID$pH5cH>HIHL1ҾHHHHHH[H]A\HxI$xxx{Hct HߍFt 1HHHHHE Hؽ1HM(Hf% fE HpHEA f%fA HE(LHRHPHE(1H@1HHHHHHH@HHHH1H1HHH@HxI$xfHx@I$x2fHoHHHH\$Hl$HLd$Ll$H(n F"$H H@mHX1H߾ʺHH1HH߾~HHHHl$H\$Ld$HLl$ 1H(3HIt*@"t$L`(Mt@LHMd$MuLHHl$H\$Ld$Ll$ H(fDH`3@H\$Hl$HLd$Ll$HLt$L|$HhF"tHN(Q ffH5A HJHt!HPDREuHzt HzHH E11AHD$HD$$ ;HtHHtHPDJEt9fHHHl$@H\$8Ld$HLl$PLt$XL|$`Hh髺HztHzyLe(HHE(HHD$ HD$ H1ҾH襸1HH߾HHhLHH5H߾H@HHl$@H\$8Ld$HLl$PHLt$XL|$`Hh#A#@eLa(AD$ AAID$I $HHQH9sYHf.L9Lv8x:ILxu8:u@/HBLL)LHD$(HT$(@I $ID$H)ALHQHH˳E l$ E"Du%AD$ Ef.1LE1˥)fffff.ATUHSHH0HH@L` MH UE11ALD$HD$$ HtH0HtHH E11ALHD$HD$$ HtH0HtHE f%ft+HU0HM(B f%ft-H0HH[]A\fE"HtH0[]A\fDB#H!ƃHuHIHtHqHtN ffuHN(A tHIHt9>uy&uH9VDuB#jH0j1HHHHHD$(HD$(M@H\$Hl$HLd$HF"Ht1HF(@ f%ft?HHH$Hl$Ld$HfHH$Hl$Ld$Hf.H`1Ҿs HH HIHLHl$Ld$HH\$Ll$H(F"IDn VHAHt&@"t HX(HtHDLH[HuLm(Iu(H^HtZC f%H{t!HH\$Hl$Ld$Ll$ H(DH91tf tf~tf tf=ftLI](fU HLBff% fU HJ1HHEH\$Hl$Ld$Ll$ H(]DH\$Hl$HLd$Ll$HLt$L|$H8Hx D.DfAAEt E-H0HMAHHƸHx HHtC}$t=EH H5~HH1 HH.Hx H1Et2H0HKu@:5zuu@:5n@E1f=HAHE1wHx f H\$Hl$Ld$Ll$ Lt$(L|$0H8fDfH HHDFPPt P@=<_PD^H=3DHHH :fAH5 HHHD1諱HHм6u@:5BH(H HJl fJlfDHL fADLEH5nLDH߃@A1HH>H(@A$}f}f1ffff.SHHHtCHǃHXH9HufHHH+SH HHQHHRHSHH HIH HK HH HIHHHH9XHPHHtZH腴HPHH@HuHPHtx tpHhHH5v17H芸fH+C@~ 1HzH`H?tH诣4@H@H@HtHHx8Hurf.SHu 4t$4t %4HffDǃ4@Hu LJ4LJ8/t#4t4LJ4LJ8H@H3f$-xD$t@t$HuHH5UH1HH1HtHBHHfff.H\$Hl$H H۪HtH@H@(Ht'H\$Hl$H1HtHFH@(HH@H@(fDAVAUATLbUnSHHz?-tb~fD=HIgHLHL)AH@IUHH0hIt'I<$?-uGLwt<-uuIH5A H艭HH`HHHHH`H`HPHr(HH肧t@~iII4$1HIH`HPHr(HtPLHm| @t >t tAM yLH߃ []A\A]A^HHH@Hp(LH߹軨H@HH0HHH@Hp(fSHHHP@(HHHHXHPHSHHH@HHC CTHCHCPCXoHC`HChHHCpUC0HC(C4 9C@HC8CD[ffff.UH5A SHHHH0H0NHHsH@H5hHA H@(H` H5>HHA  H5#A HHªHH跲H5AHH 葪H@H1H0HH5AHߺ ZH@H1H0H貙H5HA #H@H1H0H{H0H[]DH\$Hl$H H HtH@H@ Ht'H\$Hl$H1HtHFH@ H蘱H@H@ fDH\$Hl$Ld$Ll$ILt$H(ArAt D9u9A9u4~ ID$8-t41H$Hl$Ld$Ll$Lt$ H(DfPTt fff.SHoPdTٙXNP1҉\t ;Tt [fD;X [ffff.H菨HOH1tÐSff.H\$Hl$HLd$HA̹HHt0HpEIHHl$H$Ld$1HH6H@H$Hl$Ld$Hffff.UHSHHHvHxD$%=@tHHĘ[]HHPHr(Ht,HHH1觾HHĘH[]HH5H@Hp(AWAVEAUEATUHSHH8HT$>шL$HD$1H&EI;:uDH;:t:HHILHLH)I_H覴Et)I$M|$HxvH=Lbf|$t |$HHPHr(HLHcHt ;5H|$t%Ht$H8H[]A\A]A^A_•f.H8[]A\A]A^A_ÐHLH*1=Ht$LH Ht$HA%HHt$HHLHIɲHnALH輠LHyHLHI苲HALH~LH;HD$H501HWHH HHpHR ;IWLHHD$(臑I$IT$/LxHD$(H@HT$HHD$ jHHT$}@IHHT$ H5H1LHIt9P;TtE1E1t1LHMX;\uMHt$(H“DH=HֹfH|$ /HT$蝭HHT$DH8.tHIfx/uDHHmH@Hp(21詺HD$;6ffffff.AWHAVAUATUHSHH(Ht$D&AwvH5HH1fDH]AHc H1ҾMo1ҾmH`HD$HPHT$P-H5J HLt$H1L@D:AG<vLAG<vDAG< v-1HH'IH5x1H|HHHHJHHHHz1HHe1"1HHL)LHHAHL$HHH1HHL$'`1H5̵D)ELH1H yH5T1H5AH1ѹH5ZAH1輹H5H1訹UHSHXT$H|$HHH+GH$LDŽ$HHGT$(HD$ eHH|$諪HD$H$HL$HHH|$1HHL$HHA H)HHL$HBHHj@D$$2HDŽ$E$0f%f C|$f$0xD$ ЋT$$2T$,t Ȁ$2HL$GHT$H|$81H`HD$0芺HL$HT$0$H`Ƅ$SRHD$0HT$H`\$(t5$LHHHBHDŽ$HBP;BT>H|$HD$ HL$HA$HHX[]DHL$ǁ4ǁ8HT$H(H0BP;BTHL$HD$04H`t H|$fDHo1HߒfH|$H趠HD$HH|$螸Ht$H|$HT HT$BPHrBTmHT$H8H+HBHǂ8H9D$Ht H|$$LHD$|$,HcHHHPHH)H$H8HH|$H1H@H0艞HT$HH@H0F %_F HT$HH@HH DfHT$HB&f.H0CH5H1藵H$LHL$HHHAHT$txHL$HPDŽ$HHHH HPfDHHL$HH@H0F DH1H|$ HL$HAODŽ$HUHSHHHPH/H@HH@( E1@ HHHBHHH+kHHHjHHRHSH0H6HvH4Hs H0H6HvHHH01HP1HHH5ιHH胊HHsHPHH@HHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPHHH[] HL$HPHPHPHBHL$HPHtx t&H*H5;H1HLH@H@HtHH@8HufH\$Hl$HLd$HA1訮1HHH8HH|HH(HEHHH@H0HtuF tLHHteH@H~HH@H0F HFH5HH1FfDu3tVHfWf. ЄuHH$Hl$Ld$HÐHHxHtHF80Hش뮹"1HcDH\$Hl$A Ld$Ll$H(HII蚋tzHPDBEuHzufLLH߁ HH1ҾƎHH11wHHHl$H\$Ld$E1Ll$ 1ɉH(ݳDHt H@ht 1H\$Hl$Ld$Ll$ H(DH@f.H\$Hl$HLd$HHAHTDHHHl$H$HLd$HAfHl$Ld$HLt$H\$H=ϦLl$H8IIHdH%(H$1踙PLcB<,tsLcL/HHtcLHLHJH$dH3%(uOH$H$L$ L$(L$0H8u@LLH*Cff.SH5AHhHtHH@H[HH0[fffff.AWAVAUIATIUHSH(UH~1HH HJH-HV1HHH"HLHƅH萪H5j#AH葈Ht-H@HHH0H0#HH迪H5A H@HHHHHHHFLp ME1E11ҹELHMHx1E1HI9t1H1AH9*uHLHgII$Hts=HHtH9tHp1HHD$9HL$IA$HLHI$)EtfHт1L MDH5ƅAH HHt3H@H` /HKHcHH1MvHCHH uH([]A\A]A^A_H(HH5[]A\A]A^A_鎡H膎H@Lp iE1fAWAVLAUMATMUHLSHHHT$L$3Lƿ㠁 H@ƃ1LLH߃@$蟥HAD$ ID$8xH=WHLxLII9HD$L)H=MIA$< t< t< t< t< Dtބu,f6fD< fDt&< @t< t< t< @tIA$uѐM9Lw 1fDHVHNz@ v.t _t-uI9rHHI9wH=Ѣt5It$I9wH=tH5TH1iIA$< t< tHH=; HLcHLL$D $nC<< t< t< ft < t< OHD$QHcL)H9t/HcH9-CD<< t< t< t< t < fDL$Et*;\t<7;EtX;Ttq;uTHL@HsH[]A\A]A^A_ÐPtq贅;PtH53H1"1LH,T;Ptt ;L^LH裘11舣H|$$HT$<-HHPHhHt&H9T$tQHHH9T$t=HHHuH5H1Hb1:[H5RH1LHHL$H52H1UHHzLHEH˗1҉Ǿ1Hl$ 覭HO1HHH,HH=ݞIqHHiH5H1XH5eH1GH5H16H5ZH1%H56HH5НHHH5H1H5H1ަH5zH1ͦH5H1輦H5H1諦H5H1蚦fAWAVAUATUSHHH$HT$xDHƄ$觨HD$HHHxOHt$HH1H莎H51H譬HHHD$Ph HKH51ɺHH(H0臀H5DA HHIH@HHp oH(H=E1H`H(1IL$Ht @H(HQ AL$ H5ɜA HFHHkHH01HHt @HHH5|AHHH~HHH5A HHH~HHXt@H5AH~HH舆1HHt @HHH5AHHHH~HxHHH5HHH1}HH2HHH@H0gHHY1HH@H0(HH@H0F  %_F HH@HH DH(HH0t @j1HALm@kH5A HHJ}H@H5A HH@ H}H@H5fHH@ HoHHH2EHm}-ELeHH L=>D$wHD$`Ht$XHD$@9HcHEHHt$8~Ht$8H߉HD$8E1HE1H߹I9Ht$PHHAtLT$8Ht$PLHALtHt$PH7HAutL ƃD$hEhAT$ID$  v m d DV H=HƹtiH=NHƹL%uLH豑HIDHH@HRHtH}HvL%bHH H-?D$wHD$`HD$@s H|$@ H HvAIHT$@ƃHƃ H5rE1E111HIH5c11AAH*H5_11AAH H5]11AAHH5M11AAHH5.1AAHH5E111AHH5E111AHsH5 E1E11ɺHWH$ H5HAb|Ld$@HD$XH@Hx8!zH@HH@8H@HHT$8cHT$8HB8H8-M EH5DgHILHǾ1\LD$HHT$@MDHHHTyH T$XxH f. Ht$H1LH跔HH 8#u΀x!uHHHaHI Lƃ AtP<  < u@f < fDt0< @t(<#@t IAt<  <  < uH|$`tH|$`bF H_H H81HHfHlH H(d HHEX#HH fH\gHdHHUHT$8cHT$8LHHB0HB8a{H5AHrrHH5}AHHJH@EHh?rHPHHHHHPH@HhHEƀ>L}H5AHIG0IG8qH1HHJH@EHhEHxHH5_HCH-q1Hx}>| t@B>5H=HtH=H Ht$HLH訌H5H蔝|$wHh蝇H_/Hx H@@$HH(ƃHH0tH`Hǃ}  6H{CP;CTHHǃ8HĨ1[]A\A]A^A_Ht$HPH蛎HHH@H0F LIH5ˍE1L1H1苛LHD$@~tIA<$T$X1HwHǎIM/HH !8H(H kH5<HH1HH51E1A11HDtOHHHҐtBz uHHID$XANHjH@HH8H@HH$LoH(H]HvtH5d1Hj1HHD$h[Ht$hHHH$pHt$PHAH@eHt$PH(HpHH5 HDL yLHHHD$PHt$(Ht$hHT$HLd$HD$ HHt$H$H$HȐLD1H$ƃ HHrHdkdH$HIXHt$hHX"< LHE< t< t<-t@UIAGIOPЀ v<-t<.t<_ftIH5qcHEHHʁHu8A|$TfJƃƃtH HHUHIOH= }E1A11HHyH g~8H(H cH@H5DHH1HR8胍H6tHCH1\t1ҾH zH؛LHu^HLHmuBH5 H1< GRH55HH1֌HT$`H5ЅH1H5 DH讌T$hH5=H1蘌H5VH1臌HH@0< %HϺ 1HL$8uHL$8AHPЀ vD$XIH먐HH8iE ff.U SHXHHZ1H8t0HaX1Hދ8Q1H߹^HHH[]H-1X11HH$}HaQH=Z11 ]H=X11\H=.X11\unH=$Y11\fH{H=1zH{H=1yH5n!DžS릹럹f떹HH-Y1tHf.H=W1܄u%H=Y1̄ucvH=LY1跄tH {H==ƹ1Gyffffff.H5oHY1H=X11H[uHHzH=ƹ1xHnHnY1H=X11HM[uHH]zH=nƹ1xATUSHHT$,H|$L'DŽ$H`HOD$,HL$ H$1HHD$,$2L$,xT$,҃HL$ к$2HqHH<$SH&Lh@tEHPHHt x H<$PrH5`kHH1>H<$1qSH4$t tHHHt H:H $HHt t$ HFH4$H8HH $HH%H8HH@HHHAH$HPHt x H<$tqH5rjH1C=H $AP;ATHJH@H@HHH@8HH@H@H?HH@8H8*H@H@HbHH@8H[MfAUATUHSHH<$Ht$LD$?H=i__Ht1 HXH$lHL%I1ǀlA<$H$H@HtHYH $Hǁ@H$H8HHǀH9H$HHǂ8H vH $H$H|$(1I0L$ ƀ H$H`HD$ pH $HT$ $H`Ƅ$"fDfHD$ H$H`H[]A\A]fLEMA8Lt fH:uLE1HI9AŃtYHfHFHJH9tMt6H9v1HJHH9w$8HufHЀxHPuH9H?H $HpHt/H PH11u"L HBI9vMt L9@IAE)H $DlL%G1A<$HuH<$oH$HA$HHP@ FH $HƁ能H$H1ƀHL$H贽H[]A\A]H$ǀ4ǀ8H$L$ ;J0}H<$QH$T$ ;P0|H $AP;ATH$H(H0H $HHt t$ H\AH$HHt t$ H@AH$4sH$H a@IA<$uH<$H5-f1{DH$HpHAHtQIT$H9tMt;I9s6IT$HH9w(8Iu @LxL`uHAHHuMtH$HL fDE1HT$Ht$H<$H$HHt t$ H9@H $HHt$ H@H $HPHtx tsH<$kHH5d17`H $L HkH5dH1Ls7HEHBHI9wH@H@HtHHx8HuoDAWAVAUATUSHH<$$ 0H<$OOH $AP;ATH<$WH<$ |H $H$H@HH@HtBH8HH@XHtH@H@H(H@HAH<$0TH$Hǀ@H$H8HHǂH3H $Hǁ8ƁH2H$DEH $HH>3H$HHǀH 3H$Hǂ!H$HHHHHpH $B҉H$HjH$H HǂHǂ2H(>1H $HH9pt"H1C1DEuHZ@1H*H9w$~H<$1KH$H HL`HFAtjIc1AH,%B HA9t4HUB utHH<$HHp@A9uDH$H H<$1H $H Hǁ HHǁ 1H$Hǀ H$Hx Ht*HHtHKH $Hx HǀH$*H $HƁƁƁƁƁƁƁƁ Ɓ Ɓ Ɓ hH$HHǀH0H$HHtH0H $HǁH$HHǀz0H$HHHǂ\0H $HHHǁ>0H$HxHǀcgH$HHHǂx0H $HHHǁHǁ/H$HHǀgH$HHǂfH $HxHǁfH$HHHǀxHǀb/H$H HO/H $HHH $HHHǁuZH$HHǀ>H$HHǂ=H $H(HHǁ()H$HH)H$H@HHǂ)H $H Hǁ@Hb)H$BP;BT6$<H<$KtxH $A0H$B@tH $ATtHH<$HcHH1EH$HP@ tHH<$HcHH1EH<$O.H $E1L5cH(Hρ` H((H$Hǀ(H$HHH@DzIHD$H DI$HAIE9}H|$1]_H $HHH@HHH@HHH@H'H$H HGH$HHHǂ ǂXHP:H $HHǁPǁ\ǁ@H8H:H$Hǀ8ǀDHcL,$H@HIM AD$H$H Hr:IDž AD$ uH $DEH$Hǂ8H $,Hǁ(]H$HHǀ]H$HHǂǂ]H $H(]H<$+H$H0]H$H r]H $H Hǁ W]H$H Hǀ <]H$H@Hǂ !]H $HPHǁ@Hǁ(HPHtHH$HPHPHuHxHX\H $HP\H$HHPHuH$HzH\H $Hy`\H$Hx(\H$Hz8t\H $HƁƁǁǁv7H<$m,H$HHt,DHH$H\H $HHuH$HHH8H_ HtLfH{ H+Ht{gtDCEx D[HH[HuH $HH8Ht>@t!HWH)PH$H` HHx^[H $HH8K[H$H;[H$HǂH $4FH<$5H$H7H$HHǂ7H $4H[]A\A]A^A_H11H$4HCHKLH<$H+L@1=@HZHHH<$EtDHD3fDH`H|$1HD$[H $$HD$H`Ƅ$HHt tXHD$H$H`oHoIH$HǂH0DXE#Hǂq0HY-뛾HD]H$HmRHcH1?7H2HCYH$HǂH8Ht+f.YH\-1HH<HHuHXHpH6-1H8H<$H[HcȾ1t>mH<$H[HcȾ1U>?H\$Hl$HH1RHH-HHl$H\$@HHE>ffff.H\$Hl$HHպ;MHHl$H\$HH>AVAAUIATIUHSHGhHHH;GpHGhHI+T$HH}u1\@Hu1LHH*RLH,HH}t-ID$ H)HHH޹L?HI$LL[]A\A]DA^nWI]ID$hdAUIATUHSHӉHAtmL&ҋ t,rHH|3D1H Ɖ1H9uHH 1 OKID$H[]A\A]L&It$HtL$XMeT$sH5e1%Uffff.Hv2HFDv 1H=hHc H<9@>~wHiHcHH=tHHu~Iu~G@HH=FeodH[~SfO~AH@HH9s0< vH=d HH=f.V:MP: MP:L@:Lf H=rdfH\$Hl$H(F Ht/HHPHT$HvHHH\$Hl$ H(fDHT$"a\HT$Hffffff.ATLb UMSHt8A$t11It, HtHID, HHu[]1A\ÐHHHtFHvHtPuHHD$HD$H@@HDAWAVIAUATUHSHHFH_HJQE1E1E1J Hu0f@PvA<wHCx HHtWHCPHcҀ|:uHSHtz uHRHr HtH9tI9(tL)YHHufHUAID;jHEQHBtHPHJHR@HqHLHEI@V$I@HJ8EHL@t@HEHPHEHLHt*HH'jIL181@H[]A\A]A^A_ÐH\$Hl$HLd$H(HHtF tH\$Hl$Ld$ H(% wLfMtAD$AD$uyIt$HHtSI4$HvIt$(HiIt$ Ht F < It$HGIt$H:It$0H-LeQHCAI9t$8uID$8fD<HhHHH\$Hl$Ld$ 1H(6tHHHPHFHLHt3H HQHt#IHE1ABH$DIt$ Hhff.H\$Hl$H~ Hu1HnH} tHHl$H\$H@ VQHE H5_1Nf.H\$Hl$H~ Hu1HnH}(tHHl$H\$H@ PHE(H5_1Nf.H\$Hl$HLd$Lt$HLl$H(HIEL(MHEHHDH%AEH4EuH=7Ht1AHHH#H_AHH#I$HHH$Hl$ALd$Ll$HPLt$ HcJHH(M#DIEHPIEHDHOHPHc@NfF _V u#H$Hl$Ld$Ll$Lt$ H(fDH$Hl$Ld$Ll$Lt$ H(UHHREHR8HHDQDAWAVAUIATUSHHH@HH@Hx8H@L`8LO+AƋ t.LItH‰ Љ1H9uҾPAA A1fDAOL$hHcHL$`D$\]ASA5DDL$4LE1F PHHxbHP@F 3HHxfDF HHxfDF )HH@HH?fDHtF GHHsH@HH\HF80BfF HHx#F HH@H?fDI9HLHL$LA=GA>=AUD$@ yH5THcD H5.U4At$@SIcIHHT$PR ELHD$`DT$4D$h1E1AfH@H 5ME11A HpP$o8HP f|!AUEHHHAIHcH9P DAD)1zD HBHPHPHPHB#L 2LLDH2HTHHD3I~1fDI@HfWf. Ѓ@HHfA 1H\8HHA8HH&8HH 8HuH7HH?\H7H?FT$\tYI~~GIcIHHD$PELHD$`D$h1D$@E1D$LML6I~DL$4~@uDL$4MLAvL1D$@VHPDHcHIHHD$Pb1H-HHLd$8D$@A D$LHD$`D$h1E1IIGpAHHD$P1H߉T$(DL$ DT$z,HHT$(HD$@DL$ DT$HT$@A4LHDL$ DT$>4@ DL$ DT$HfWf.+A 1D$@D$LDH|$PLHD$`D$hE1IOPHHL$PLD$@D$LA IGHHHD$PLD$@D$LA IG@HHD$PLD$@D$LAPIT$B u<1LD$@IWHHHT$PyIO@AD$@D$LHL$PIHHD$P:D$@A!HPD$\D$LHL$8IHHL$PD$@AHHHT$(8H 1H0HT$(HHR(HHSxtBHKxHN(CHH@HRHtH>H7H HRHILLMWIQI1AH81A IHHL$PtA AHLH~1HDL$ DT$P tHHmHRH4HVH@80HHDL$ DT$9fW1DT$DL$ f.Ld$81Ld$@D$LD$@IG@1D$@D$LAHD$PIWPA D$@D$LHT$P1IHHT$P1D$@A IHHD$P 1D$@AIWHHHT$PLD$@D$LA I49EjtHHxtdHfWf. HPHt x H4H5(H1tHA IHHDL$ DT$u6DL$ DT$*AIOP1D$@D$LA HL$PL H@H@HWHH@8HOBH50MH12Ifffff.H\$Hl$HLd$Ll$ILt$L|$1HHIHHEMHItMHCHH7Ht1HH~LH\$Hl$ Ld$(Ll$0Lt$8L|$@HHHHIHHE$$HD$3AkHPH@HoH@(@ HHHBHHH HT$H+SHHQHHRHSHH HIH HK HH HIH1HHHP1HHL} HPHH@HHHH+SHH HHQHHRHSHH HIH HK HH HIHHHHPHH91HHHIHWBHH6HWL7BH5ZKAHH0LHe H&7HPHPHPHBdHPHtx t>HA1H5R%H1HcH5JAHH10H@H@HtHH@8HuAWIIAVAUATL$UMl$SHdH%(H$1ȉL$@H|$8%߀|$@DD$\D$LHMM9cHT$8D$LLE1E1LL\$`H HT$pH$D$|HT$hDL9HSI9vfH<:t<'u{HkHtMA~AAA)E<:I9 HSHI9wIL\$`)MHT$8H@@@APYHD$8H@HH9HT$8H@Hx0LH@H|$8Hp0L\$(0-L\$(I1@HD$8L(MANE1H$dH3%(LH[]A\A]A^A_>**FL~PA<{:HkHLMlHT$8L(MWe@HHh@HD$hA~HD$PH|$PIcD\$(HHL$0HL$0HT$PAGALH ::D|$LHT$PH|$8$EE1AA0w!E1HD\$(tFLMt>L;T$pt7Az xDL$|HL$PLH|$8McLLT$0LT$0D\$(HD$hH9D$PtH|$PLT$0D\$(-D\$(LT$0MUL9T$pGMzMw M+AFIHPIFH|A?gH|$8LL\$(L\$(H|$8L"L\$(9Pf(<_fAHt$0\$(Hc.&D\$(HD$PHt$0>D+L$`HT$`H|$8E1LLT$09/LT$0X|$LHT$8L0!|$\  |$\|$\ |$\u|$\uAa<H|$8E1A LLL\$($YHHL\$(HT$8HH H9x |$\|$\ |$\ QH@@D%H|$8H5E1LL\$(HEL\$(H@xu"HxtH|$8H5;L1L\$(t$L|$\H+t%|$\ H<+t|$\ HO!H2HDH|$8H5D1LL\$(HT$8L\$(tH H|$8HL\$( H|$8H5;A lHL\$(OH@Lp 6fIHH|$LH|$8LLL\$($EE1AA0HL\$(Ll$8LI M9Aj @Ń D$@0D$@@t D$LDd$LH|$8HcILLLHD$@L\$(ALT$0EtLT$0 DT$\H|$8L^ALT$0L\$(PHT$8H@HxHHLT$0L\$(-LT$0L\$(tIHHATHcHAAIf1AND!f{A?A ARDAGAVff;MVHT$8H|$8H E1AH(1D$HD$$0r'LH|$8 LT$0D\$(A'IG ID\$(LT$0|$LILHHLT$0T$\H|$8LT$0|$\ A'HH+L$(HT$(Ht$ H|$"f.AUATUHSHHHx DhEA;LMHI9 HL)HHI9.H9u#DILHx LA$ t݀ t؀ tӀ t΀ t1HHL]HHHH@H@HHE)D@$HJ8Hv%1RHz%MDHH18~Hf.L%x%1HHHHiHH@H@HHD@$HJ8H$1HԕLHH1Hx DHxP|A9}H@I$)уtrHHx !tHH@HHHx*H@H5c$HHP81fDHHuHHtlHH9s`H)IH~"OILHx LA$ t݀ t؀ tӀ t΀ tfDAL%V#faA txH L%#-fDfǀHx HǀH1[]A\A]H@H56#HHH81@HзHH1]fDH)1McHHHx @|HxPL%g"Hn"LE[@H5i" HAI.AEwbAM@HB"LH1";HADP@t2HT$ALHDl$Md$D@H!ALH1LfSH?1[Lt$AHpH\$Ll$HHl$Ld$H(AH Dg@{HhHH H譾AH\H HHfD hlH@@$pH L(־HIEXH HtEHh`H dHPhDH$Hl$Ld$Ll$Lt$ H(H\$Hl$HHH*uH\$Hl$HH HHHl$H\$1H)H\$Hl$HHHuH\$Hl$HHW HHHl$H\$1HH\$Hl$HLd$Ll$ILt$L|$HhHIIMLHl$xL?H@Hp Ht H= LH H5H8H&HDHHHD1HHHuHHHLH\$8Hl$@Ld$HLl$PLt$XL|$`HhfDE1LA LT$$[HHLT$"HA <f LHHT$LT$HT$H|$pLT$HHT$ OH|$pD$/L HPH@HH@(H@ HHBHHL+{HILzHHRHSHH HIH HK HH HILLHx H$LHHPH) GIfAHx HLHPLH HH Hx MHHEȀLHHD$HD$HPH$L@H)IDHH11H+I+HHL$P>HL$P_HiH1[HL$P?fI{.A.I{_AB< L9H&AIIAB< TI9_uMDt IM9MLvFAD$gE1<_MfH$0McLfWIJE1E1HT$xH0JHT$pHl0JHT$hPI]6{_1HD$ DL$8DL$8ID$ Ef.%-LHX|$g@HH ML)ALHHD$HD$H$Iaf.IcL@AAu`H5H1D$ LD$HDL$8LT$@L\$P躿HHAEDL$8L\$PLT$@LD$HD$ HÃEuuDLHHHL9t @ID$gI AEIkMt IL9uIfDANEHX tff(HH*D$gBY XwDI9LLHD7MfI*ƾHD$ LD$HLT$@L\$PALD$HD$ LT$@L\$PTHL$xHH1DL$8D$ LD$HDL$8LT$@L\$PFLvD$gAH5H1D$ LD$HDL$8LT$@L\$PֽHHAED$ LD$HDL$8LT$@L\$PH$HH9HHLHz1 HHL$PHL$PI\$AD$MMHHL$PcHL$PLcCI1H IH$H^LHhYHLD$hHL$pHH1HH ML)ALHHD$HD$H$IHD$ LD$hHL$pHH1D$ HD$ DL$88D$ DL$8&H\H1NDL$8D$ HMnAFMtHHH1HHL$PHL$P[LLHH H*XHHL$PQMHL$PYHyH1kHL$P9HHL$PHL$PAHD$ LD$HDL$8LT$@D$ LD$HDL$8LT$@KHH1LT$@DL$8LD$HD$ HH1HL$PHH1HL$PHH1rEHeH1HL$PRHL$PhH5 H14H,H1HL$PAHL$P_oDH\$Hl$HLl$Ld$HXdH%(HD$(1HHl$IH}H@L` Hfeature_D$HD$fD$j1Mt(AME1AHLH$HHT$(dH3%(uH\$8Hl$@Ld$HLl$PHXDSHHp HcH>gu{~euu~tun~puh~r@u^~ouX~t@uN~ouH~b@u>~ yu8~ n@u.~ uu(~ m@u~ bu~e@u~rt1[@m< wH HcHf.d<wH HcHfE<3wHC HcHfC<4wH HcHfB<5bH HcHfDa<:HS HcHfDD<3H HcHfDA<3H+ HcHfDU<"H HcHfDgg~eZ~tP~nF~ef:~t0~b&~yfFg~e~tFg~e ~t~p~rf~o~t~of~b~ y~ nf~ a~ m~ e1~ev~tfjF~m4~e*~s1F[~e&~f[1~oVops1F1~wFHAuH\$Hl$Ld$Ll$ H(ÐHtHHHI菜1HHmsHx HcDHHx HcDDŽ0Hx DHx unEcA$@#AtA@A tE1A%AGD@ LHHHl$H\$Ld$Ll$ <H( EoDJHHx JKJJHx Ƃn@H\$Hl$HLd$Ll$ILt$L|$PHHIA[M$x HÿL0I$x KCHC -HC(Hf@LCC؅I$@ǃDHH1MtAEǃƃ CKLEM<I1HIT$xt BID$xxH菎 HC8聎HHC@1E HEH@HD$LmHU u A|;.HLKpHHHHD$A|;t'HN HALiHHHELd$(Hl$ Ll$0Lt$8L|$@HHHHHHBHǃHǃHH\$HH L#fDHT$"HLӛIHD$fDHD$H5t LHHH'fEU HH@AVIAUIATUSH@Df AHHhHl$8H^H,+A fWH9 Lt$0fW 9f.HD$0Hx`H*HH9^XvuYEtHT$8E1LHLD$L$ $HHT$0D$L$ $yHHHH H9H*X^XwDH@[]A\A]A^HT$8"9Hl$8HEf ATUHSHHHH@HZLHI9thHHtHHt H;tHuHHZH{ H{8ڑH{@ёHHHx []A\黑HH艏ffffff.H\$Ld$HLl$Lt$IL|$Hl$H8H@IIHp8yH@L`(MH#t H$Hl$Ld$Ll$Lt$ H(VHF H t tH=t HuHP@< uXBHj< u@HE< t< t0< mEIPЀ w?fDIAEPЀ v&D< t@3< ufDIAE< t<"AU : 1 (  Mfu%f t t t t IA uLM @H t t t tuvM)M~8H@Hx8kH@LLHH@8L@ {IE8H@ 1HvC$ L@T DtfDMe"LJ{HIHHP0LMM"ff.ATH5v A USHH fHx HBt HPrtkHH , E11AHD$HD$$ zHtHHtP сH []A\DHztHzyHH1ҾHx eHH1rH IH1ҾiLHH¾}HH@qHEXH []A\@ XHPJIHz>HzO,f.AWHL AVAUATEUHSHH(H9HT$LL$HL$BL|$PPPЀ <_Et<'<:rHx HHtB t H@B@t o@<=dHHYQL5e0E,N,+A}x(DAEAIA}yLH豁uLH)M4L9t$FHLvDL9t$+LMPAMwLkH@LkB@uAHx HHtB t H@B@t Lkt{LkAUJvJv _A:AG:MwNfD{:HS{$vA:MwLkAGAL+|$HD$L8H(H[]A\A]A^A_LHnuLHujH5# H1葈fUHSHHHtO HlHt"HvHH5 HH1'A2f.Hx H^v*$^Pv'@D$D$HfD$D$Hv @ATL AUHHcSHHLx H<.IHt,LI9Q|;H@HH8HL9u~AHMuȸH[]A\f.tkHED`B!H9PIcHUIHvc~XHUDHHBHE@H[]A\DHHHH@@H[]A\HEIHHHH蟀HuHx HHw<1:DHH߉L$Lx L$CfHx SHHt+Hu HH@1H1n1~HC[Ð[f.ATUHSHx HPLt ;P0oHE1DH9sc / &  ! #DtH[]A\fD; GHH9rfDHHtfuĀtHHHHXHH'Hx HLHHHHHMI)MLHx MDMHI)MMMEH)H)HHCHHx HH<;H43HHx HHx HtN LHx Ht NLHH>t|HH90tlHx 1HHHH)Hx HHHHH@Hx HDH 뭐HHH9< DHH9< t< tHtHH9wD/Hx Hp HH=2HT$LcDLH;1HH]JHx HcDH@#@Hx @KHx HcDDŽ0Hx DHx t&PHHx PKPJHx ƀHx LA>(DHRHHz1H$dH3%(?H$ H$(L$0L$8L$@HHHuHx Bjf=tf=tPA<vLH;Hx LHx BK8(5fHfDHz5DH@HHxDD1fDJ@B|$:aHT$DHx fDA~>3pff.AUATUSHH<Hvmr@ Hx 1HcDHHx HcDDŽ0Hx DHx tJHHx JKJJHx ƂH[]A\A]DHr@ v_t.t;t t u{@Hx HHHTHx HjLe(AL$ ΁vzM,$LHHD$aAEAL$ "Hx HD$ t { r}iaHHPLHHD$aHD$g@H\$Hl$HLd$Ll$ALt$L|$HHAEEZHH@@@u/Hx HHt@ t H@@@ttukEPPv{<_twEt}:tlEt}'t`HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHf.}vHH`tHHqu@Hx LL$EHHHPbEIt$Hx T$1HHPkVAHx HT$HLcDHP1HHWJHx LHcDHH#@Hx HcDD0Hx DHx PHHx PKPJHx ƀfLHe8(ItHx @K$DHx @KATIUSHx HxKt-H_ HH5H HE1RHH]LHJЀ vPvt?HHE1A1$1HHWHx j[]A\P0 wHH$8;tOHHd;tY3@t@LYHuAE@%=Hx LhXHx @H(H[]A\A]A^A_fDAM@H0Hi:HNaHIIcVHDzDH*X_ f._ I~ H4T$A]IF T$L,E~H0Hti@tcHH@HRHtHtNHH2IEPfHoH H1P1H0E1E1:1H$AdILH8?H5Ø H HHD1iH5D0H=S_ 1afAV11AUATUHSHx @~HuHx HHpH:HE11PHH E1E1E11f.A@A$fA&AE<v AE<CPv A<mHT$HD*HD+AE<vAE<v+T$1Ht$LLT$RjLT$EA@tjA\DcLsEAH=z LT$OHLT$1d$LAAf.ELsMcB )I@@@uBIx HHt@ t I@@@tALst{LsnAPHL$LE1AHLLT$L\$0HT$L\$LT$ H!%tDHJHDH+T$~FHt$1HcALLT$L\$9HLT$L\$tdB L B L@d$LAAbfPPЀ <_;$B LAE< v A$fDFHV0< DHHЀ v<,<}i@{1UArH= LT$L\$3MHLT$L\$FsH=΍ LT$L\$MHLT$L\$V{[ BHJPЀ AfHPЀ v+@LLLT$L\$k-L\$LT$$GuN$BuDH= LT$ILHLT$tF($LAAq$LAAJAD$< vEfIA0LA v($AAOfAWAVNtAULnATIUSHHHHL$0DL$<D$;F< t< t< t< t< uf.LHIPЀ L9t$0PL|$0P PЀ <_<'<:Hx HHtB t H@B@t @<=LH+Hp70HT$(AE,Il-}x*DEHT$(Hŀ}yHHSuHL)I I9LLHL$ HHL$ I9EIIPAIOIm@H@ImB@uBHx HHtB t H@B@t ImtA}ImuUJvJv_A:AG:IOFfDA}:mA:AEIOImAGL9t$0L|$0 M9IAIAEPЀ vAHD$08AE<$<{ImMtt$2AE< {< s< k< f\Ht$0HV>Ht$0HAOHx HHt@ t H@@@t  IM9H@@@uhAPvPvPЀ v <_t<:uUfH20HD$(@AHT$(IM9_A>ULHNuM9FA<:tLHLH)LHHL$ CHL$ IL9AEs$E< tfE< vHI9wE<[t@<{*HT$0:L u(B:L uB:L uB:K HN\t`D+T$0Ht$01HGtF}[Hͅ L L$;H HLDHD$0LL$ $HD$I1*=Hx P0HX8Hcʃ P0PfAEHIEPv(Pv PЀ v<_t<:fgf.M9rH5D H1UELl$0<}HT$0LAEImH@B@ PLU!B<7B<R@HD$0HH脸Hx H< 0< +HZD+T$0Ht$01HEW|$;#L$;@H, HDHD$0AH$I1{;< fDHHDSKNLH#Hx _x0UHHLBHx ƀ/HAEIEPvPvPЀ v<_M9rPNPЀ A<_9E<$-<{%H5 e H( AEHx HHB H@B@A}HHh"vH=O T$ hAHT$  @< z0ƂHx @KHx #]< fM9QfLH+T$0Ht$01HFH|M9gAEEs@AWAVAUATUSHHhdH%(H$X1Hx DEa4HLHKTH$HH$@L=u HHx LHL$`Ht$PH|$XA$<~H@B@7Hx HHtB t H@B@t t A<$yPrDPfD<_*HHt@ t H@@@t HLHDH$HA$HH5 H1PHRt HcHHPIA$I!%t¾:DIT$LDIE1I)L6ƅHx Iff=mMt@f=H5S*0H8 HjHPHHD1H)HHm4Hx 1Ҿ Hg_9PPPЀ <_SE6H=| A;H6Hx HxPL9\< IA$ EHMt$MLHI94El$ID$AE4A|$\Mt$tH=| HPAT$DhEl$Hx AUt AL15L}@LL:H5E4E4HA)MHx HHx HIR@Hx HH0?+Hx HH4,+Hx HHl+Hx HHs7Hx HHP02Hx HHhPH@HH$*Hx HHưtHHx HH^HHx HHƸHHHx HH2HHx HHHHx HHHHx HHGHx HHƨjHx HH8wHx HH@dHx HHPpHHx H@pHx HHRHHHHHHx HHHRHHx HǀHǀHx Hj;Hx x@IHx @0Hx D HE8Hx kDHE@Hx @4Hx H@@Hx @lHx ƀHx H@RxP$Hx fPhHx Phfa1H@P(HH9>:EKHx H:@@IHx ƀ Hx }IHcDDŽHx HcDDŽ0,Hx DHx tPHHx PKPJHx ƀH5 $HHx HcDDŽHx HcDDŽ0$Hx DHx t&EHHx PKPJHx ƀHx HcDDŽHx HcDDŽ0(Hx DHx t&EHHx PKPJHx ƀHx HcDDŽHx HcDDŽ0 Hx DHx t&EHHx PKPJHx ƀHx ElPUl3Hx DH4HE|HxPq@KHx H,PDHx HcDHHPHx DDEu*EHHx PJPKHx @H Hx HcD0ƅ Hx H5= 1LLIfA<$.Hx tH} HH HjHiHE1A<$#NL9LE1!D^AHH9~u܀x~uIHztHx @KHx ƀHx H@@@uUHH0@ 0H@@@0IIvHHP0AN Hx LcD1LHq"JHx HcDDŽ0Hx DHx t&EHHx PKPJHx ƀHx HcDDŽuHx HcDDŽ0"Hx DHx t&EHHx PKPJHx ƀHx DMLEs)EKHx L;x@(HH9.f.IALM)LHL[I~} u} ` f.Hx HHKH1HIHx HHRHHHHHx HH HHQMHHx HǀHǀ=/LHóE1IHx LH @tHx @LHx LHx qf$_HyPuID$I9vAt$H=q 0HPL3DD$XEHHH9HUvH @HH H9ЈHJrHMD$hE1DLaM9Lx AVhf!f#t3A$t*H=Lq T$0HL$(0HT$0HL$(4I~PE\A$HX@t$Xu L$`@T$`HDŽ$8E$IAv#IAvIA!D$XDL;$8v.HL$PLL)HAHH H)HTLH9Q'H,(H1LHML$8 !HfHyP]A|$?IL$LAt$@#'@{t@?CA|${7I'fD{o&}q&H…HBP+J+\uπxHPuDfDHIPHɐfy@DIL$L9rP HHAUHI9wmfA<$-LD$hE1PDIT$ fH< t< t< t< tHx H;E1PHD$PLhHH@HH9LHL$PD)HcHiU}LE9)HLLfDHH9u)MD$hIl8E14Mt*HPH5;v H1HH#Hx HPH Hx IM+*A@Ml${%HQLHD1ҾHHHEHx AH@@#Hx P<$t5<@A t.<%u$B.P:uB&N:uA 1A <Ƀ HQLHDMt$M9v8L9d$pt0|$hJ|$XLA)EE1H>LD$hE1I8I~PdA$p@ W<0}At$0@ <HIBtA $HYl H1A#AE$fHT$PHL$PHHHH+QHHPI DELD$@Ht$PLLD$@L)HLpITH9P$HT$PHjHhD$X|HL$xLE1L)LH,IA-t A+MEH|$PH+oHHhHHPH9PHL$PI DD\$XH E&H|$PO Hx fxh#HT$PHHPHJH;Ha&Hx L9;&HUPH%Him H j }hHҾHDHH­ MIf#tf!(Hk LH+T$pHt$LL$PHt$pHHD$H$ HHD$PHx HL$P1ҾH2HEA}\%Hx ƀHx L9(HcDHUHHx @KHx HcDDŽ0Hx DHx t&EHHx PKPJHx ƀHx ElPUl%Hx DP4EE HxP: @KHx L,@IcLHt$PH2M9fH LHL)vHPHHErA$p@K2P2 H>A $Hq 1 H A$fDHx ƀ Hx IAIAIAHL9MAIH@D$`B@@BHx @KHx HHx H:=~$&IIFHB@ @IHhH=] @Hc4HH=ig HeFHx E@KMHx ƀ Hx HcDDŽHx HcDDŽ0,Hx DHx EHHx PKPJHx ƀHx xEILHx ƀ'f.HHv)Hx`ЃB#Ht$PHLHx LHx E1LL$PLHHP萫H$HIHHT$h%H|$h3'Hx A<$:1HML9v*AE< t< t < t< t< u IL9w݅u }K(LPT$h1HLLL$@:'A}=ALL$@%E$E1E1DE1ME=#H \ HcHA|$:CHPH5h )(E1E1D$XHE1H;tDxA$<'<:D$P}Ku0HH9H5g LHLT$@,LT$@H$HHvHx N:MMHDŽ$HBH5c, HZ;Hx HHHHPH@Hx 9A$s H@@$Lx 1HHIFHx H@@#@Hx HHt@ t H@@@t tH@@@H$HZRA%QA*QA&QHx L\Hx LM#jRDH0HHuH(B"iH iHHHHHRH|hHhHPHH@HTHH5e H1 HH[ HHHH} yhLeHID$LeID$Hx HHHHP0Hx H"1҃¾18HEH@HgHEH@Hƀ|H@@@\gHx HHt@ t H@@@t MfHH [+ 1H>Hx HDžHx LMt_t+H +I9Hx HH*Hx HǀHx ƃ f%HHa HHx HLjLLLHx HHH@HAHHx HǀHǀƃƃM\A|${Mt$%L}Mt$8HIDŽ$@FH$HT$xL)E1LHLL$@H$8V0LL$@IMqIvI *|$XZ+DEHGE H5EH(A|${Mt$%}LHL$(HH$IHL$({ID$I9v A~ULM)IvHLL$HL$(HA6HL$(IH$11A HH$HL$H ] HHD$<|$XIzAD$ LI$H@H$8ID$H$|$Xu AD$ ָH$H$8HH9s+H|$PLL)HGH)HT HH7H9V$H,(H$HHLHH$8L$IH$HT$xE1LHDŽ$@HDŽ$8M(L$8If#ZE-Mt$HTE HBEH5Mt$M9^$AD$PD$ @EIHEHE HE HHx }KuH5_ LH辊Hx ƅP@Hx E1LAHHHQWHx IĀQhEKHx L@Ml$_Hx HJL;Ml$8HDžHx Hǀ3Hx ALH1HL_HIMtH8t4<_64H$A$< t< t< t < t< BII9rBA|$|IT$IL$"Hx @]Hx @KHx HHx H:=8"9vHx I@\Hx @KHx LHx H:=uHH5#Hx IP0BP0Hx 2H@9B$s H@@$Hx @KHx L]AD$0< 9Hx IT$MKu 'Hp@ v<_t<.p@A<A<v L)1A LHHHx LHHH@Hx 9V$s H@R$Hx BKHx H11LH?HHx xKuH5`Z HH HH\H@Hx 9A$s H@@$Hx H@KHx H-AD$IT$0< Hx }KE=Hx @KHx HHx H:=%Hx Ml$f}htAD$0< }KuH5fY LH Hx EKHx L=fHx @0Hx A$IBKHx L4Hx ?}K?ID$% A|$/IT$E9Hx BKHx HHx H:=HH5AD$IT$I<>B*<= *Hx @HHx @KHx H#cHx HH9H;@KIt$H芟Hx H(11LH蓮HHx xKu"PLt ;P0H5W HHQH&Hx @H@Hx 9A$s H@@$Hx H@KHx HPkHx /}K-A|$/LL;`LHŸH@Hx 9V$s H@R$Hx HBKHx H軋Hx ELt ;E0Q EKdAT$0 RHULHHx IĀ}KH@9B$s H@@$Hx @KHx L9AD$Mt$Pv PAT$JJJЀ _Hx LLx A.II$A< cII9rZIt$Ml$Ht$hEt$A=2A>2A~U9EDt-AE< k< c< [< S< KHx I}K7AF<7HHI9t A} 7tH7Lƃ ^Hx }KA|$LH LLPuHIH$@IA>MLLHH$$@4I9HHD$PP$I+LIHx VH@B@uhA}Pv%PvPЀ v<_tAE<'t<:*IAE*H@B@uHHtB utH@Hx 9A$s H@@$Hx }KuELt ;E0u<A|$#Ml$H@@@uHH9rH)HI HU1H Ht LH.Hx 8Hx HL H@9B$s H@@$Hx HH$HHPt1HH.HEHx H@@#@H@Hx 9A$s H@@$Hx @KHx L׿Hx fPtrPqQH=A HHx HcDDŽ|kH5? AH߃A@ wH\; HHx LMfLAD$A:$<>1Hx }KW< t/< t+< t&< t"< tH< t$< t < t< t< tHDqHx EKHx L-鈾 O}K@ HH9, ƅ@H@Hx 9A$s H@@$Hx @KHx L@ HL$PHIqLHHx H@Hx(L9 A}:@A}:MuLPT$h1HLLL$@%LL$@AHHurHx 1@H߈EKHx L1阻Qa<hR[LH5g Ltt4IL;A<$ H5A L@uHPH5D H1 ƅP$Hx E1LAHHHQ謮Hx IĀ}KQL;EKHx L$HH; HUKHk6 HcHAT$IL$ID$<=^EFHx @KHx H#鑻H$HT$xE1LHHDŽ$8DŽ$@ L$8I]A|$.Ml$ܰEBHx @KHx LHx H:=;HH5H5G: HVHx HcDDŽ{H$HH;Hx Hx EK<نEbHx I@KHx L$V@H5B Hg麼Hx IxKH@9Q$s H@R$Hx @KHx L@L9_H5: H1> L9HH@LH߃h$yHx tHA$Hx MLE>Hx @KHx LHx H:=KHH5Hx IxKמH@9Q$s H@R$Hx @KHx LA頸H]E@Hx @KHx LHx H:=HH5HHH53Hx @KHx HHx 7H9=HHHx @5۷@6Hx I@KHx LHx ?H9=H5H鉷HHPAALH贩HHx *H@KHx HP[pHx P@KHx H* P?PЀ 3WEKHx H?϶LH}|$X:HL$PHT$PHHHH+QHHPI DELD$@tHt$PLD$@HIHHHxvCIv8Iv-Iv"IvHL9H҃HLL)Ht7HH9stIvCIv8Iv-Iv"IvHL9HHH0Ht$PHLD$@Ht$PLD$@HH|$PHoHhD$X1HLHRHHx fxh#շHHŷHx`ЃB#鱷LHt*A<${uHx ƀP%A$<{F<[FHx A|$>ƅHx H56 HH;aHx 1P%=[V E4$uLH}Hx IĀ}KbHH9NEKHx ƅ$Hx L$!A|$.ID$EHx BKHx HH AH=r4 HHf4 H1hH@HIUE1Ҁz:HL@lHx LLLLt6t*HH90tHx 11HH4rHx HHH@HAHHx HǀHǀH@x$ԓHx EL9;E00LHx Hƀy% VIExHHx=IEx/EE1DMEEKHE1~{H$HIH|$PrfHx A$Pv PLL$PHPE1LHvIA$a<Hx L$H1HHPD&t91)=Ah@LLH;A>(H@Lx IT$pHHH9H1ҾHLHHtIHx HHppNHx H@pLH z8:IM9H@@@Hx HHt`@ tZH@@@uMA<$\LHu1Hx ]LH¸t<_8 L$HL$HIgfA$u IH1ҾHLHHBIx:HpHxI=t=t =)MtnHcDLHx HcDDŽ0Hx DHx t&EHHx PKPJHx ƀHx L/LHaHIL$HHx H5O8 HLMt LHHH 1~H}H5. |HHHx fMH5. HyuLeH5x. LHHH HfHl6Hx }KA$ƒ{}b;Y8Q<='<=T"MHEKZHDŽ$HD$XE1E1Hx KH5- LuHHH HfHloƀP%Hx E1ALHHHQFHx QoBKHx H%ƬH5v LJHH'H HfHlHx @LHx @KHx L#ZHx @EHx @KHx LHx H:=i;EKHx ƀ#Hx L'Hx BKHx H)ūHHPAALHHHx P@KHx H&mHx @KHx HHx 8H9=8HHHx @5H01DHHP 1@@1@tHH@HRHtHH HAHHHx IL$AHHHQLx H1ҾHbID$Hx H@@#Hx P<$t 1<@ HH<҃ BHx @`Hx @KHx L<٩A|$~Hx EPHx @KHx L$霩Hx ƅH= HHx HHHLHx H' AHH4HHHhHH@LdL9Hx HUH߹HHHx H' AHHH5( LAEPA<|Hx HH 1HHHx HLjLLLHx HHH@HAHHx HǀHǀƃ HALHHx HHHHAE<zwKuWHDv4A} A} A}tA}u H9W I\<<dHvA}tDԃ}0f/A$<-<{<[ƅHx LHaHx A$AI>Hx $@LPM)HcI9tx11ELHHHD$P H@Hx 9A$s H@@$Hx H@KHx HL$PH]+H5Y' A HHItH@xuHxtI$xCHH ' E11AHD$HD$$ |Ht!L MtAD$ E1퀽P$C LHEHLx L1ҾH 1HH_HI1ҾHLH¾H@HHIFXHx @T% DID$x5Hx*I$xAE0HM8HcЃE0Hx @KH@Hx R$PAE< t1< t-< t)< t%< Dt<#tHx L{"Hx ǀՀ 8}P-AH@E11HIt5w@ItXHx HcDDŽ0-Hx DHx t&EHHx PKPJHx ƀHx E0HM8HcЃE0Hx @K}LEKHx L( Hx ^HAE< II9rƅPHx HI9s A}-L9]MH@@@u/HHt@ t H@@@t tA<$wnA$PvPwsHQL$HE1LHfHx H HH9rLHu1Hx <_LHc¸tA}yA}Im]A}RH5+ H1 A}CHH92H5%1HsHx HH)H@HH?IHxkIHx LD$XLHHH)Hx Hc$@LHHLHx HH Hx HHjHc$@HTHjHx @KHx L,顠Hx @NHx @KHx L$pDžPARGVAF9< VZƅP-Hx MeHA$< CII9rHH蒹Hǃt(Hx H| AHHfHx H: AHHHx HLjLLLHx HHH@HAHHx HǀHǀHH90Hx 11HH^y< @Hx Hn AHHt(Hx HP AHHHE<'E0;ELLLt$h|.EHx @KHx L5H< t< t< t<#t< uEKDhHI9pAEI< uLH#[H5 LGuL LhHHLDLZH5 HID$EUHH9 E0HM8HcЃE0Hx @KHx L)Hx @Hx @KHx L<H01ɉHWHP 1@@uH01ɉH.HHH@ 1@tHH@HRHtHHHYH| HAHHyIVHHHuH<҃ ؾEHLx L1ҾH1HH&H1ҾHI1HHLH¾HL@HHIFXIvO1HHS1HHq1HH_H1ҾHKE0HM8HcЃE0HA}A}IEHDH5G" H<,tX<=@t#}KtAHcE0HU8DHx @KKA|$>uEKHx L)闗EKAEPw@ƅHx >yEKHx L) L뫃uIFIIVI9wM9fsAIF\A8tIH5 EKH%,飔Hx H HHNeHx H[ 1HH*AHx MeHI9s(A$8tI\uA$\t8uIfIHx xKtQ@KHx L)ܓE0HM8HcЃE0鞷I9A\IF u@KHx IUH5  HHH@Hx 1HHp81HH>HEH@Hx 9A$s H@@$Hx @KHx LHDžHx HǀHx }0t%}LH? H5 HHEHx L1陒HLx EHB DH1IPHR EDH1ĭMt&AE Ѓ aMuE1Hx HHt#H;sH;H;LEKH%[I<=T<(t^<{t<$M@Hx HHHx f@jHx @KHx LUH@Hx 9A$s H@@$MIl$uHE< t< ft<)Hx HcDHHHHx @KHx HcDDŽ0Hx DHx t&EHHx PKPJHx ƀHx EHx L&cA|$>|$PxH@Hx 9A$s H@@$Hx HHPH@Hp(Hx HHt@ t H@@@t t H@@@tEH@9B$s H@@$Hx @KHx L鄏H$HHPH蕨tHx H@H@(H Hx LHHI-LeHx HH@Hp(蠨Hx H@AGLx(Hx H@@#Hx LݎM:|$XusH@B@u:Hx HHtB t H@B@t t A<$}PP<_A<$$wMA-LHHIA} t(Hx 1HHPijIH@LpHx HHpHx 1LH譶1HHHEHx H@H#Hx HHHx f@jAF Hx HcDHHHHx @KHx HcDDŽ0Hx DHx t&EHHx PKPJHx ƀHx L*IH@HH$@IVuLH@Hx 9A$s H@@$Hx @KHx L鏌<_t<$u)zu#Hx @KHx L [<;HHUHx H H1HPILHvLHc}LLLHZpŋzHx H@H#<&A<${ H0HhHF H@Hx @KHx L E}KtUjH,/ NA<$L@|$`HmTIH@@@u:Hx HHt@ t H@@@t t A<$UA$PkP_<_WA<$$L|$`(Hx Ejf=t'Mt Mf=Df=HH9EKA-%H_Hx HPHJw&HHhH HuC1HCH0Hx Ht/%HHP LuHVa遉ALHRHH@@@u9Hx HHt@ t H@@@t t }zEPP<_<'<:A~Hx H< HE1E1A@KHhAD1Ҁ}(E<:ti<{tAuE$<;EumH0tFHhH& H Hx H0}:tHx DhKHhHֽ HڿHx L1AAHH[AHx H 鯇Lx HIcDHT$PIMp1聴HT$PIHx H@pHx HcDDŽ0Hx DHx PHHx PKPJHx ƀHx H-H11HH߈D$Xd_HHD$PHx I11H@pL@LLtf< t\< tX< tT< DtK< tGHc3|$Xt71H= T$0HL$(LL$@UT$0LL$@HHL$(DHIHcLA(tIhH L舼Hx HH@pHHhHt$PQOHCH5 HM}=uHx P0PLEt,Hx LAA1ɺHH^YHx @KHx H kH5S H1}:ZHx L$PAHHL@KHx LL$PLqIH$H:LIHHL$(yHHL$(tOHhLH譼L)LHIAANHHHujEHHhH߹蕻HhH HA脩HhH$HALHdbHHHx @eHx @KHx LHx HHHx f@jeA<$(LH#M8(!鰃Hx @KHx L逃Hx @nHx @KHx LHx HHHx f@jnA<$(tLHL8(bH5 H~SLHKL8{t|Hx BHx BKHx H鵂LHpZ雂Hx @ZHx @KHx L$jHx BKHx HGHx @$Hx @KHx LHx HHHx f@j$A<$(LHHK8(%Hx @Hx @KHx LHx HHHx f@jA<$(jLHJ8(fOHx @Hx @KHx LHx HHHx f@jA<$(LHlJ8(IHx @wHx @KHx LHx HHHx f@jwA<$(LHI8(uLHLXwHx @&Hx @KHx LHx HHHx f@j&A<$(LHxI8(UHx @(Hx @KHx LHx HHHx f@j(A<$(LH I8(fLHVWH50 A HHx @Hx @KHx LHx HHHx f@jA<$(LHcH8(@Hx @Hx @KHx LHx HHHx f@jA<$(LHG8(lHx @Hx @KHx LW~LHV=~LHU#~LHU ~LcHU}Hx @KHx L3}Hx @4Hx @KHx LHx HHHx f@j4A<$(\LHF8(CLHUE}A<$:eA|$:@UHx LL$PIt$E1HLT$@HP]AHx $H1HIHPH耽LT$@t#|,t =fVANGH5 HHDl$XHx MAƀ}KkLH ęHH+Ht$`HCPCTHChHH;CpHChu HHChHH+SHHC H)HH HEH5 HHU1H^HH5 HHHH1Hx HHH1ECP;CT~H蕥H=Hx HHH螴HHC H)HYHHHwH>Hx HLI9t\HEH@Hƀ<LeM~I|$mH(HJ1H(HPHEH@Hƀ-鷗IE@ Hx fP_UjH~/%=LHۯLHLLLHvH)zIEx LpH0Hx H1@tHH@HRHtH1HHHEH@Hx 9A$s H@@$Hx @KHx LxyH 땀RDH -H@Hx H5_x HߋP$1\1HHHEH@Hx 9A$s H@@$Hx @KHx LxHx @YHx @KHx LxHx @XHx @KHx LpxHx @WHx @KHx L?xHx @dHx @KHx LxH@Hx R$PHx @KHx LwHx @KHx LwHx @Hx @KHx LHx HHHx f@jA<$(DLH@8(+E1E1LHJHx BHx BKHx HvLHDl$XK@{t_'tE1AHHJ|$X,5Hx BHx BKHx H(vHx BKHx H(avHx @KHx L>vH5 HA 觟LHMvHx @Hx @KHx LHx HHHx f@jA<$(LH?8(|LxHSM~uHx @Hx @KHx LHx HHHx f@jA<$(LH>8(\Hx @*Hx @KHx LHx HHHx f@j*A<$(LH>8(LHULtHx BHx @Hx @KHx LHx HHHx f@jA<$(LHn=8(KHx @Hx @KHx LHx HHHx f@jA<$(LH=8(wL)HNKysLH<8{Hx DֈQKHx BCHx HHx HH8(HHo<8(LHx @XHx @KHx L$rHx @Hx @KHx LHx HHHx f@jA<$(`LH;8(GHx @ZHx @KHx L2rHx @_Hx @KHx LrLHIqHx @Hx @KHx LHx HHHx f@jA<$(wLH:8(^LH5I`qHx @hHx @KHx LHx HHHx f@jhA<$(LHa:8(>Hx @%Hx @KHx LpH@Hx LHߋR$P:Hx IĀ}KtEEKHx LwpHhH51 H1׿H5 H1ƿH@@@u3HHt@ t H@@@t t A<$tA$Pv PUHL)H~zH5: L\u"AD$It$< tV< tR< tN< tJ< tCHt:H5 Lu"AD$It$< t< t< t< t < tLH8IH@@@u:Hx HHt@ t H@@@t t A}AEPv Pt:Hx LAAHHHP aHH8IA}$uqHx LHu>1Hx LHuJ1|<_j<_bLH躴¸tH5 H1蜽LH葴¸뚾H3Mt$Hx 7AE<v+AE<v#AE< vA_tH=k A诫HthIE.EDH@@@uHHt@ t H@@@t tA>vLH3uoHx E.A]t A}ݮHH6HHx INH HLI@D)DIH$1eHx *LHDlL9H}DlL8HcDlL6HIDtlL7H/DZlHx @Hx @KHx LHx HHHx f@jA<$(LH[58(8fLHCkHx @VHx @KHx LHx HHHx f@jVA<$(aLH48(HHx @^Hx @KHx L3kHx @UHx @KHx LHx HHHx f@jUA<$(LH448(L/HBjL-HgBjHx @THx @KHx LHx HHHx f@jTA<$("LH38(p Hx @SHx @KHx LHx HHHx f@jSA<$(LH&38(Hx @cHx @KHx LiLHBAmiL>H(ASiL?HA9iL@H@iLH@iL"H@hLH@hHx @Hx @KHx LHx HHHx f@jA<$(aLH18(HHx H Y LHHPLH?*hHx 11LH@@HxHx pHHH@:jxHD11Hh@HIHx 1Ҿ!H߉hxIl$E1胁ILx@>Ae9EH=< HT$0DxHHT$0t DLHФHDuHUEuAEAI}EHx LhXHx @!Hx HxH@9Q$s H@R$Hx H@KHx LfHx @Hx @KHx LHx HHHx f@jA<$(\LH/8(CALBfH53 1H9HHx LHx HHHx @|AM@EtrAtOH AHH־HnH H1SHS AHH覊H1 AHH艊Hx HHHP`~Hx #H@`Hx%HtH AHH3H AHHM @HHx Hp`\~Hx Hh`Hx HppHtH4~Hx H@pH5 H1H5m HLsH8=< t9< @t1< @t)< t%H$HHtHHH$HE< uHx H@p@ tH@ @@t1HLHL)HH1HH躈LHHGIMtnHx HcDLHx HcDDŽ0Hx DHx t&EHHx PKPJHx ƀHx HupHtHtHx H@pHx EKHx L(ZHx @}Hx @KHx LHx HHHx f@j}A<$(zLH#8(f_ LH >H@Hx 9V$s H@R$Hx HBKHx HZ11LH2Hb1Hx BCHx HUpHHz'uHBHx H@9Q$s H@R$Hx HBKHx HoY11LH 2H0Hx BH@Hx 9V$s H@R$Hx HBKHx HY$H@E< < f< < < H$H<,HB t4<#t)H$HHHT$PH HH< $H1ALH*0UXHx @Hx @KHx LHx HHHx f@jA<$(LHV!8(3Hx H ݹ LHHPLH/WHx H LHHPLHI/tWHx @-Hx @KHx LHx HHHx f@j-A<$(LHu 8(RHx @Hx @KHx LHx HHHx f@jA<$(LH 8(~LHU.VE1A1LH5*Hx BKHx HBVLH-(VHx @vHx @KHx LHx HHHx f@jvA<$(LH)8(Hx @Hx @KHx L2ULHE-pULHHH@@@u9Hx HHt@ t H@@@t t }^EPv P\IH@@@u6Hx HHt@ t H@@@t tA<$w;A$PPPЀ <_tILHCsMIAE< t< t< t< t< @t߄tXH= #HtD!H1t3A}=uA}>t%DHM I)!HA1H,$ZHH+S>HH+u1<_HH¸A<$(Hx @`Hx @KHx LCSHx @mHx @KHx LHx HHHx f@jmA<$(LHD8(!L1H(Hx BKHx HRLH8(IHx @KHx L4lRE1E1LH!&Hx BHx BKHx H RHx @YHx @KHx L$QAHx LHfD2IH@@@tWHx A$Pv Pi EHx @KHx L,kQHx HHt@ t H@@@t tA<$vLH螆1Hx sLH(PLH(PLH(PHx @oHx @KHx LHx HHHx f@joA<$(RLH8(9Hx @VHx @KHx L#$PHx @zHx @KHx LHx HHHx f@jzA<$(LH%8(Hx @|Hx @KHx LHx HHHx f@j|A<$(GLH8(.E1E1LH"Hx BHx BKHx HNL*H&NHx @Hx @KHx LHx HHHx f@jA<$(tLH8([LH2&]NLH&CNHx @kHx @KHx LHx HHHx f@jkA<$(LHD8(!LrH%MH@Hx R$PHx @KHx LMHx @lHx @KHx LHx HHHx f@jlA<$(LH8(cHx @UHx @KHx L#LLH$LLH]0H@Hx 9V$s H@R$Hx HBKHx HSnLHx @THx @KHx L#=LHx @Hx @KHx LHx HHHx f@jA<$(LH>8(Hx @iHx @KHx LHx HHHx f@jiA<$(`LH8(GHx @gHx @KHx LHx HHHx f@jgA<$(LHd8(AHx @2Hx @KHx LHx HHHx f@j2A<$(LH8(mHx @Hx @KHx L+XJL=H">JL:H!$JL;H! JLH!IL<H!ILL$PHPLAHL$HIIHx H5_ LPLnHDŽ$8B=N:H$81A LHrHt7H@HpHt*HHt@ HHRH$8Lh$81LHǖHHx H>LHx H$PL0 HLP1螖=HH|Hx B=O: 1A LLHqHH@H@ J<_H$8"HH謠I Hx I L$8LPtI}H= 1[P_]H5- L诊FH0L.H^GHx @+Hx @KHx LXGHx @,Hx @KHx LHx HHHx f@j,A<$(LHY8(6Hx @Hx @KHx LHx HHHx f@jA<$({LH8(bHx @LHx @KHx LMFHx @JHx @KHx LHx HHHx f@jJA<$(LHN8(+LKHEHx @eHx @KHx LEHx @IHx @KHx LdEHx @GHx @KHx LHx HHHx f@jGA<$(LHe8(BLHHDHx @`Hx @KHx LHx HHHx f@j`A<$(mLH 8(THx @aHx @KHx LHx HHHx f@jaA<$(LHq 8(NHx @bHx @KHx LCHx @Hx @KHx LHx HHHx f@jA<$(bLH 8(IHx @WHx @KHx L#4CLQHCLPHCHx @\Hx @KHx LHx HHHx f@j\A<$(LH 8(޾wHx @[Hx @KHx LHx HHHx f@j[A<$(#LH 8(q Hx @]Hx @KHx LAHx @OHx @KHx LALNHAHx @MHx @KHx LHx HHHx f@jMA<$(:LH 8(fH@Hx R$PHx @KHx LALH@Hx @Hx @KHx LHx HHHx f@jA<$(zLH 8(ȼf_Hx @RHx @KHx LJ@Hx @3Hx @KHx LHx HHHx f@j3A<$(ڼLHK 8((f鿼LH?E1E1LHvHx BHx BKHx Hu?LH¸?8Hx @+Hx @KHx LHx HHHx f@j+A<$(LHW8(4ͻHx @Hx @KHx LHx HHHx f@jA<$(yLH8(Ǻ_Hx @yHx @KHx LHx HHHx f@jyA<$( LH|8(YHx @{Hx @KHx LHx HHHx f@j{A<$(LH8(酺LH\=LHl#H@Hx 9V$s H@R$Hx HBKHx H-=Hx @1Hx @KHx L<_1HH]¸ЀO:1HlTH$HE1HH$HHx ƄPHx H$HHHPNbH1HEHuHHP0A2M 52Hx A HLT$@HP8@LT$@I(1MUA~UIEAxxUHxyUE0E1DME/H5 H1eHH9^H$86A|$:C0H$HL$@LAHLT$@HPH)RIH$@LT$@Ht^H$HD$PHx /H@H =/HZ &H߃h$1LT$@ LH@@$LT$@/A<$'Hx HK H wv H5b HHDHP1d< AH5d L9I$I$E<9UH HcHHx H$H1A HHPX>H}Hx H1 HHPKVHx fBjHx BHx @KHx L!c뺸 본문f룸뜸 f듸댸f냸y o D`V Lf@6,f  fI$E1E11H:Hx BKHx H-GHx HHa0HHHx ITHH5EKHx HHx H:=HHHx @5@H5 @1HbH߈EKHx ƀHx LEiH@9Q$s H@R$Hx @KHx H*$LH H@Hx 9V$s H@R$Hx HBKHx HHx @Hx @KHx L2H5™ H1aH5Q H1`Dl$XHx MxK@=Hx @KHx LHx H:=X9HH5H5QJ AH{:Hx @Hx @KHx LHx HHHx f@jA<$(LH8(ьjHLT$@iHx LT$@V*H01DHKHHH@ ^eLH+LHEu>1Hx  HDe OH H1fFNLHVV¸tH5 HH?Hx Q?HH5&HdH@@@u6Hx HHt@ t H@@@t tA<$waA$Pv Pt3H@H V7/HIT &H߃h$1tEH@@$Hx @LHRD1@KHx &HHPHx @H@Hx 9A$s H@@$Hx @KHx H&U<_ LHT¸WAEIM<tvEJHx BKHx H#* EDHx BKHx HHx H:=_HH5 ERHx @KHx L$ H5 @KHQ, HPH"HEH@Hx 9A$s H@@$Hx L C 1u|HHuN1HH8HEHx H@@# H@Hx 9A$s H@@$Hx @KHx L HH @ E11AH$V@ tHHH @ E1A1H$^VHH@"HBHx OHH @ 1HE1A$VHHFWLA $H[ tH5 AH12HH=Mt LHCHx @KHx L: )["Z =HJWƂ%H@Hx 9V$s H@R$Hx BKHx H% HHtY< tU< tQ< tM< tI< @tAHEHt$XHBHHT$0H$@>B;| HT$0[H렉H5ψ H)1 XHHxHHDtHHHH H*X^fffff.USHHHx BlHJlHx P4HH`HtPhf#f!H1HaLHEH3L4>1H`LrHEH H3L>1H^LBHEoH HSLs2HERHKL1ҾLHE1HKL1ҾLHEHKL1ҾLHEH3L\=HsLHD$ K=HL$ sHL8 HEH3L"=HsLHD$(=sLD$(H1LL&HEyH3L!HEkHsL7HKI1ҾL!HI$x @KE2HCLHD$@HSH ]$HL$@H¾LX%@HLHEI$ Ht@sL11L5HEHKs1L9HEH s1LHE{HK1ҾL0HD$@HK辎HSL#HL$@H¾L$@HLHEHK1ҾLHD$@HS辎H L5#HL$@H¾L0$@HL[HEH 1ҾLnHsLHD$ 6HL$ H¾L#@HLHE`HK1ҾLHD$@HKLHsHL$ 5HL$ H¾Lf"HL$@H¾La#@HLHEHKHSLsHL$ HL$ H¾L"sH@LAHEH HSLsHL$ HL$ H¾L!sH@LHETH HSоL"HE5HK,HKL1ҾL HE HKЋs1LL HEHKL1ҾL^ HEI$ Ht@HKSL狳pLKLCE71ɋEI$ HfHlI$ H EkHsL&1ɋEUI$x 1@KE?H 710H (1!H 11 1LHL$ o5HL$ HI$ LH!ѺH HL$ ^ EHL$ H3L&HE1ҾLHL$ 5HL$ HI$ LH!ѺH HL$ EHL$ QHH;] H](WL5x L-1 $HCAA|t&HH9] H](#s A9t$@~LqHHҐtHCI;$(t"Ht.x t%I$(H@ID$Hb!LH3wIDŽ$(1HE 1HE(I$x 1ǀO1ҹ"L6HH5d HHT$0!HT$0H5! H HT$0H5 H 1L!1LH sH1LFHCLHD$@Hs71H5[/H=" 1$EEt;xH0H@VHcH H ȐHHt0H9t+@u%LEHEuA@HDdD@H9x}xLJt8dPddfLJDHVHHRHpHLJP~[LcH ILO@HIt3HHtH9tH@8&uIHIHHH`ufDfDHHH01H1Q @@uHH@(HfAWHcAVAUATUHSHXT$DHD$8Ht$(HHT$8H;PHX[]A\A]A^A_ÐH^ J-HT$8HD$HDH@HD$0HCHHPHHҋIL$$LhvH Lc1IT$HD$HHD$0MLHD$qIEH;D$HtrHP&t @ HT$1HHHExt@HMxHt$DH!D$Hl$II)؅D|$A)D9|$$}HT$0J"HtP t HEx1HnHt$IHDHAN z@%@1H(IHt$LDHbAN 4DсcHA^QfH +HH1H[ Ht$HH1C H% C T$DHL$Ht$(HT$(HHT$8HPHX[]A\A]A^A_ H+I& H*Iff.AWAVAUATUSHHu DEtFH Ht:HH9 tHHx@uHly fHlHHP`HuH(H0HHPHH9PuzH(HHRHtnH HPL8H f.HCHp u!H9tH9tL9tH;o/t p HHufH(H@HCH[]A\A]A^A_f1H.FH0LhH(HLbMtJ,L LPH8ITDu5IUHtI9t HR:&tHHD$HSH*HD$HII9HSH4*L9tL9tH9tH;5s/tHtV uсpHAubf. H(1HHHk H(1HHE % E H(HHRHH HPL8H 7fuup HH2HCHH9tH9tL9tH;l/tHt-p @ uAAAuLAAuDp ff.AWAVAUATUSHHHHt$ HL`XMA|$ HP`HT$0@hD$ffff.HHGHtcH(H;BuiHtVHHt7H H9t+` HGHP с t P 9|~ |HH57 1 H5 1 ffffff.H\$Hl$HLd$HHGHHtVH(H;AHtlL$LHHta LHGu3H H9|~ |H$Hl$Ld$HDH0HLHCH5 1H5m 1AVAAUATUSH(HHGH9F2AH0|L L`HHhHc‰|H9|IHtI9uᐹH; HQ u t t8|H(f%=uH@uuɐ|A HDq H(HRHS[]A\A]A^fAH(HHHP HH(HQ @H56 1Uffff.H\$Hl$HLd$Ll$H(HAm HP IĹHHcI$AH@I$}H0LHIH(HDHHEM Hx`tfHlHHEHp`LH\$Hl$Ld$Ll$ H(fDAWAVAUATUSHHtH0LpLJ8HP9~\HcH I @H98}9HHtH9t@uHxuҋdHx98|fdH[]A\A]A^A_f.89lx9^HcL M$@I9tQM<$MtM9tAGuܾHtH' 1LH߃'I9t~8H0fffff.UH<SHH!H0HH@‰<t8y ǃ<HtHHxHH8HǃtHH|ǃH[]AWAVAUATIUHSH8HL$ T$H0HHx& H0HPHT$(H<H@9HH\$(H L4HÐM.MtXL9tSE} AuFIED@Et Au0IuLH$L$DD$ H$L$DD$fHI9||$teHD$(H L,HD$(LtMt+L9t&AE uIuNt@t8HtM.HIfDH8[]A\A]A^A_f%@1=@tbH;L$ uIuLH$3 H$uH L H9<|H8HH~ []A\A]A^A_ 1hHN 똀|$ukL ? HM AH , LDȀ|$u"Hx H 3 fH HDHӉ M H1HA@A@uH\$Hl$HLd$Lt$IL|$Ll$IHX DD$HDL$1MIHAu E H߈L$DD$LHHIDD$L$EtAM @EIEHh(IEAM @L` AD$H0LDHD|$IEIE@DtExA <@<%HCJH LH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXHLHHI|$4AM @'f.DtY@AM v HKH(HH>f.AWAVAUATIUHSHHxL$(DD$\LL$8HH@XHD$0H$H|$0HT$0HBHHHHL$@HHHHt$@H HcHl$HH\$ E1Ld$PD$,HL4ƉI&f.\$,@AD)I~%@HsA=@HLT$AALcH0H$H@JHHHC LT$%@=@tII$xlA|$ I1HHExt@HMxH(HLT$LT$H$HHH$@HL$ 1ML(H0tIBHEDE1HxL[]A\A]A^A_ILcl$,HL$@H$JHHH$@H|$8tH$H@ %@=@I$HP@H*Hl΁HDDD$\DL$,EPlс@H$HP`HHhLL$8H$L&H4$HHD$H$L"HL$@LcH$JHI $Qlx 1H$D$,fDHD8I$fHl 0PHt$0HNHHT$8H@JH@@HL$@J@ %@=@$HHt$8H<@<%;HuHt$8HxlxA|$ Lt$hE1HHR(HHJ Hy@HcH(Ht$8Hu DT$\Eu HD$8HFH$ξHtH HپH1H$|$\HL$@JR @@HDuvI$DD$\h HHHHL$8HHv HپH14c HrHHHT$8HMHS 1HپHI$E1ffff.U1SHH(H@hDHT$H5 H߉E1AHT$HT$H$HH([]ffffff.AWE1AAVAUATUHSHH8dH HD$,HD$HD$ H$^LctH8L[]A\A]A^A_@H HH@XH@HHHHHP~|LcH E1N,fIIIA~LMeMtL9tAD$ %A=@uI|$HHT$HT$uI$8uKI>@H\$Ll$HHl$Ld$ALt$H(@  HHq HIaAI"11LHE1e 1LHHLHH11HHH1ɺHHH0HEH(H@HCu%ǃ8ǃtǃ|ƃHH$Hl$Ld$Ll$Lt$ H(fH(!H0HAtz HU HHE HI5Iľ H%1IHHL1LHAE % AE AH|HH8HHtHHxHHHAu? H HHz HIjIf.HH9ffffff.AW11AVIAUATUSHHXHL`XLH(1ɺLHHUHHT$HHHHL$8HHUH@LjHD$0ILx`M@IBl`  HcRHHHEHD$( H HAv Hw HD$H HI@lfBlHT$HfHl@IH*@meH@PHEPHL$IH-&.HHRHHHPHIHHR0HP0 HD$1HIH@@Ht H@IHP@HQ@HbHT$HIHR8HP8HL$HAGLx`IHRhPhAF HT$D$0Dl$$H߉D$DH*HHEXH(T$03D$$xJHcD$$HL$H1L$I$D1)HHCxt@HKxH0H߃IA9yH(H@HCIHT$(Dd$DH@XEH@HH@HD$(Lcd$DLD$8L L|$HDL$01Lt$0IMMMbfDHT$8J"HNP 6HCx@HCxfHSIIJ"DI)4D)9D$$|M/MtM9tAU tXIEHL$(H@@@HDL$LT$>DL$LT$@IE<&a<@ y<%l1HDL$LT$LT$DL$P сH AM @@P @@1HDL$LT$\H LT$DL$fDLt$0HHL$H@muMHD$HX[]A\A]A^A_fсBHAA0f.Hp8HHHHHt$H0IHH1Hp0HX[]A\A]A^A_fDI1HHSxBHCx HDL$LT$ DL$LT$f.IIVHHt$HHOHpPH, @IMHw H1VDL$LT$1HIIHT$Hf`lH1x H= ƹ1 Hx H=S ƹ1DADu@t1ƒ$ tDu'du'ῃ FGDLG HHfDJH HHL9ufDDwAA1A`WNtLG HHQH PHL9uD?{t 1GHW0< wHHЀ v<,t <}@BHJPЀ wHPЀ v<}fffff.fffff.HV HBHHtÐHBPff.MHvtFtAHt FHtHcFpHHFhHu 1FH՚ <uVHc…HtfDVATH8IUSH9FPHt9H@HHH HuEHr <uI)IfDe[]A\I)IDe[]A\AUH@ATUSHH8dH%(HD$(1S@B;CDHcHK8rHHC8Hc*S@HHHHǃǃHǃHǃHǃǃ Hǃ(HǃHHP8H HHLhMAE(Ld$A9m(rL2 1ALH(E1A LH$oHtH0~ uHFH8tH߃lA9m(sfDHD$(dH3%(u3H8[]A\A]DH3S@kH=> 1mAUATIUHSHDn(AMcMHHHH:I*X f. <ILHCHHuHLHǃH} `YHC HU H HHJHHHrHHpHrHpHr Hp Hr(Hp(Hr0Hp0Hr8Hp8Hr@Hp@HrHHpHHrPHpPHRXHPXIL$xtAHC HPHIT$xtBHC HP(HIT$xtBHC H@0HID$xt@HkcHHC@H[]A\A]f.LLHH H*XH5$.H=o 1fffff.AWAVAUATUSH(H|$HT$Lf0AD$D$ HH<(T$ IǃHcHvH*X1 f. I It$ HIGID$HD0IcH<HIEIEEu$1fIT$HcHRIES<"v&ID$H|$H5uy H@1fDH HcHDID$IGH=.ID$H=.HDID$HHIDA9dIE;H,IDIT$HH HHJHHHJHHHJHHHJ HH R(P(IGf.H=.-ID$HK1HHtH@ID$HH=.ITA&Ho H= 1]DID$HT$H|$HtHT$HBx1Ht @HD$HPxITIGA$T$ AAWH([]A\A]A^LA_HHHH H*XrMo벹&D &Hn H= 1H5.H=@ 1&HtHH/.H5 1AfHHFPL8L9t,H;FHs/PHPމHf@HVPHf.FdHH5v 1fDHHFPH8H9t$H;FHs'PHPf@HVPHDFdHH5v 1fffff.H\$Hl$1Ld$Lt$HLl$L|$HHHIItH LHHt'HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHÐE|$(HLAIHMcMHI*X f. ILNIt$HLHIEHzI}@t L+IE@I} ]ID$ HPHHH;PD$`IE IID$ HHIHpIwHPIWHPIWHP IW HP(IW(HP0IW0HP8IW8HP@IW@HPHIWHHPPIWPH@XLIGX1HHCxt@HSxIWM} LHIw1HHCxt@HSxIWM} LHIw(^1HHCxt@HSxIW(M} LHIw041HHCxt@HSxIW0IE HxH6|$HPHPHIE HPHPPM}h1IM`MtAUpLHH $ZH $IuxD)IEhLHHIE`1HHCxt@HSxI}0IUxtIELLHPXIE0AEt IuP1Ht AUXHIEP IEPH LLHIEAEfDHP(HPHIE HP0HPPLLHH H*X;HxP|$t HPHPPHPH9PPD$uHP0HPPH52.H=} 1fff.UHSHHHt~ H[]DHvHH{ HtYHwHt H\H{ HwHt HGH{ Hw(Ht H2H{ Hw0Ht HH{ TCu&H{@EH{HHcHIHtdIMHyHcH=.HD$HLHL$RHD$H=^.$$PkHT$HzHD$HxHT$HzHD$Hx HtHT$Hz(HtHD$Hx0HtHT$Hz8HtIEHT$H|fDHcIL|Hǃ(1fDHzH$[H$HzNIEHT$H<t~u)HH9EtHpHL[]A\A]DtfH@uyHHH50h 1fAVAAUATUHSH -LcxIMLHAk1LHKHt~HPLBHHzH~2DK81@A A9|HcHHsH>t~u1HH9EtHpHLHHu@fD[HL]A\A]A^ffff.H\$Hl$HLd$HHFxHtau||HA1A1P@HpHHAHHA趵IcHHl$H$Ld$HYH H$Hl$Ld$HfDHHpH5f 1QfSHH HtsHFxHtju-HA1AP@HtQHHH [E1E11HD$HD$$8HH [@1H [H\$Hl$1Ld$Ll$ILt$L|$HhHHu(1H\$8Hl$@Ld$HLl$PLt$XL|$`HhHsxHtE1E11LD$HD$$HtLpIM~HxI$ E1HD$(jfHHHCH8tbxt\H5\ 1LbLCHHD$ HLAP(HHD$ -HHLIIL9h~@C9C(}Ht$(L:Hu HT$ HT$ H@HHLH\$8Hl$@Ld$HLl$PLt$XL|$`HhfASHuVAuiAu"AuNA tc[D@D8HPH8HD[[D[DHx.H5S 1H5 d D1yATUHSHF0HHPHV0 (tzff}$     #DHu(fDH9 HHU0 uHU0 (uz?uz#xLe(I9ԐtHHU0:)tqI9uLEH8M)H9EPtHUH5HLEH L IuHc H5Y ALLMH1OHHU0HU0OM`[]A\fff.1fDL(ƒsPуL(r)"u0@tHwH=b øf.AVAUAATUHSHH H@Lf0@@uA$PP<_1EHS0LHD)Hcҁ AtdAHHHE1E11HHD$HD$$&HH@HH []A\A]A^A<$$L9Hs0H|%@t3L5.HC0HA4H40Hs0蜴uHC0HHC0JvJvJЀ v݀_tH5ta H1H5` HH8H9CPtHSH5+HLCHK0H` H5` H1L)M fff.H\$Hl$Ll$Lt$HL|$Ld$HH$HH HFL$PL$XIH)H$HH)y)q)i)a)Y)Q)I)AdH%(H$(1LIHD$IIvHD$AIH=v AM)Ld$ LHLpLH|$LL]Ll$H$ HLHBD, BD,!HD$H$0$D$0HD$@ tWHHRHT$HpHvHD$LۻHD$H5 LHD1DHT$Hƹ"HHT$H뚐SH8H9FPHt1H H)[HvHvHvHvHvHvHH9HH[DAWAVIAUATUHSHHdH%(H$1L~0A?{T }LMolHI~ H@HE0AUEHH@Hp HH 4 E11A HD$HD$$ HIc HHD$(LLHL)HD$0MIB <fHHCHT$0E1E11HD$HD$$NH=L`D$?M'AD$ I$HPH$ID$HH8H9EP`H|$0t Ht$0H蓪|$?xH$HD$(H$HED$(HD$(H$dH3%(HD$(H[]A\A]A^A_DHDŽ$AD$ xHIH$H9$SH8H9EPBH-HT$0HELE0HHJHM] IL$A)1A}+H81H9UPH$H$IwHM)E1IL$$L;$HEMH=wH(DEL$1HHDžLCL)L HHmID$?HD$0I$HxHDŽ$E!@t %҃#HHHD$(AD$ I$H@H$Mt$IH8HDŽ$HD$@1L;t$@HT$HH$Ll$(HD$xL|$pLd$hHT$PH$HD$`IHT$X;@H$HD$HH9EPPAAEIL$L9t$@AtHT$PLH迯U@HL$`HT$XHHnH|$xtLd$XJLHHHoHT$xIH$HD$pH9mH)HHT$x\ILLH7H|$pu>fLLHL)WHD$0H8H9EPtHUH5HHT$0HEH5rY LE0HHJH(Y IL$A)1HBf@ -H8H9EPtHUH5H8HT$0HEH5PY LE0HHJHX IL$A)1}DLHxH$LHH$LHHHH IH$fDH$HHͭHIoDž`fILd$hH$HT$HH9UP?HT$(H$HHHEPHm0HH|$?vH|$0Ht$0H@ HHHH+HHL+MHsTHCPCTHChHH;CpHChLH+SHHC L)H HT$0IEHE1IUHt$(1Hu CP;CTHHMAD$ <fHHT$0E1E11HD$Ld$$(HD$?AD$ _LHAD$ EfDH=v DžIHD$(DDžAD$ LLHIH詳MeMAD$ID$f@ H8H9EPtHUH5JHHT$0HEH5"V LE0HHJH`U IL$A)1$HHHD$(fDLH腢zH$LHpIH$HHT$0HELE0HHJHV IL$A)1UHHEdHt$xH߈D$xWIHHCh9iH8H9FPtHVH5L}0LELHf H5S H1L)M bH8H9EPLm0tHUH5H>Lm0LELH H5mS H1L)M HD$(fffff.H\$Hl$Lt$Ld$HLl$HH@t$ Ht$ HHD$cHUIHt_HH|IIL`MtAF uNAEL9d$t HEH\$ Hl$(Ld$0Ll$8Lt$@HHLhf.H߾,<HL$LELHAiDUH8SH]m HHFPH9kHcLHH<(MH~PtXD^hE1E1EGfLMMI9rIMMLML9wIMAID9NhH9vDHH0H97rHcۈQfAH*X& f.l w&HHHy[]1ndH[]H5o.H= 1fHFF(HFH@H@H@PtQfDUHSHta1uHE t tK;Mt @߈E@t @߈[]@1uyupHs HHfDJHHHH9uEtUE(C(E)C)E*C*E+C+E^@EOfuHE) HHv HDQHPHH9u@HA,Hu.D1AHtFHIfH~A(ÐU@H,HSHu:1HtCHHEt []fDH~(fH\$Hl$HLd$Lt$IL|$Ll$H8HIEƅ1HSHHLhHC HHH@L9HC H0H9t"LչHC HA@LHSH9K(^MCPCECTCd KdL{XC`HH@HsF tuHCcdHl$H\$Ld$Ll$ Lt$(L|$0H8f.CdtDwLHt@DHs?IŋHC LH0HSHCECPCCTCdCTωCdHLHC HfMu+C0Cdt$ KdL{8C@@CCdHSH@H\$Ld$HLl$Hl$ALt$L|$H8LIIH/E4,AFH4%IGueHCELHh1HE1HCLLH@D0HCH@Hx谼H\$Hl$Ld$Ll$ Lt$(L|$0H8HCDELxIIG뗐AD$1EH4IG[AW1ɺAVAUATIM$8USHHHDŽ$HFPHD$hHv0Ht$`HL9kPHtHC08^cHCPI9vH$HCP@tMHEH5O HE LH@H@H@0HD$@HC0H;C(mD01DL;kPH:t H.A:t A.Lx@IAJvJvJЀ v_tۄҐtSA8uNA]@uCLMA.$A=$HC00@H=lD@]HD$PHD$XAE1HD$pE1ANaH;C(8]ML|$HDEHK0HH$HK0Hs(1H9H$H[=H\IM$L9|$H#L|$HL;kPIoL$AIMFM9YH|$PLAfD‰tDArEHAD LHI9}H|$PL$IfHD$PM M9[Ht$@H 1LLDT$ ?DT$ @,H$H$LLDT$ HHD$H&H;$DT$ HvIH=v?H=v5H=v+H=v!H=vHH9H҃HH$H9U)H|$X)HHt$H LDT$ Ht$XHLDT$ H$H==(H=/Ht$@H 1LDT$ HC0E1DT$ cEHCPI9H|$P>E%Et }SL HL$@IL1HsL1ɺLaHL$XLLLLLaH HIHSHRLdEHH[]A\A]A^A_D0DAM'MHCPI9HHCPfHD$PHD$XAE1E1ANaL|$HHD$p*DCXHC0L;kPtMHCPI9I$ Cd H|$@HDŽ$1@TH$HHH$vE@tHH$HK0H$BЃHL;kPIHBHvHBHLDT$ L\$(xDT$ L\$(%L$rH$HvH=EHt$hLk0HsPH|$`HH{0EL҃"\Lk0HH$EEHCPH|$@Ht$@LHDŽ$1Ls'Hʟ.0H9tAӃAD\H$HHH$veA= f,LDT$ L\$(Hs0HS(<EH$LAiH)踷H$HK0H$HK0DT$ L\$(HC0E1ZH:tH.t H=HAH9HD$x9@:HD$xDHC0HHD9tHS0H9H$rH9$TH$HHC0H$~]2HH$Hs09:#H|$x?^ID$H$D)`LKH$HH$LD$xHB L1Ht$D)L $AH58 @Ht$@Hn 1LLDT$ 誚HC0E1DT$ ,LDT$ L\$(AHs0HS(<EH$LAiH)ݵH$H$HC0DT$ L\$(1CdHK0A[H ZL HcHH{0?{LDŽ$}L{0DT$ L\$([HHD$xDT$ L\$(HD$xL$H$E1LLLLL$8DT$ L)L\$(H$bH$HD$xHHC0DT$ LL$8L\$(H$I$ H=HH$LLDT$ L\$( H$H$IDT$ L\$(L;kPLDT$ L\$($HCLC0H B H? LDT$ L\$(L$IA)1萪L$DT$ L\$(RHD$HEHCP MI9 LDT$ DT$ tOHC01LL$pL+T$pH9D$pHFHSHD$A1H)HT$HB 4$DT$ I DDDM HCPI9|$H$HSH5LLCHK0H5 H5> L1L)M hHD$H!HD$HH{0H|$HH;{(Ht$HA>{#L;kPtOLK0A9^cH$pHt$@+!H4 LDT$ L\$(D1ۖDT$ L\$(HD$HHHC0M HD$H BH$HLDT$ L\$(\HDT$ L\$(HC0HD$H$HD$HDŽ$HDŽ$L$Hs0H$E1LLHHs0LL$8DT$ L\$(;IH$H$HC0II$ LL$8DT$ L\$(HLHDŽ$ A HDŽ$AjHD$HHC0D8HHC0IGHI I@L$)HDŽ$AHD$HHD$H"HDŽ$AHD$HHDŽ$ A HDŽ$ A HD$H#LHDŽ$ A ~@T$HHG HcHM+ L2 !Ht$@H2 L1RtMHC0E1AE1H M++L@2 뭋 M+!L42 됋_ M+!L 2 p/ M++L1 P_ M++L1 0M*!L0  M)!L" 3M*!L  M)!Lh1 M* !L gM) !L piM*!L< P M)!L 0"M*@+L0 F M)@+L" M*+L  M)+Lh0 tM*+L  M)+L pM*+L< P"M)+L 0iM(!L/ H$HDŽ$1ɾ t ttAAD\H$HHH$v!LL/ M(!L M(+L _H$HDŽ$1ɿr@vtAAD\H$HHH$v!L. M( !Ll. M(+LL. M(@+L. =M(!L oHDŽ$H$1ɾ)< t,1L8L9{PHHGHHC0L9*;L$DL;{PHHH]E1E11HD$HD$$H LhM AE dRIELpIIEyKh19u Bf; t;HI9@IMHqHVH9QHHqShBIEH@HHuD$DKh-HHȉL$xCh莠L9{PHD$Xt2KpuD$xCpC` tHcD$xHHH8AfDHD$XHD$XHĨ[]A\A]A^A_f|$|$D:t$DH=3 袊HtrH3 H)Љƒ4E13|$D>t HAHL$XEHHHL$X%HHD!HT$XEHHHHK(H9K0T$lpHH8)\DL$@E L$@Kh|$D>EHL$`ELHH蟗|$H8H9CPtw|$hH|$XtdHD$XL%r.Ll$`87HHHt7PAuHPELHHHD$0HD$0DT$DExHC0Lc(L98)LCH8M)H9CPtHSH5٣HiLCH L ב IuH H5 ALLMH1+H]% HcH@IIIM)ILs0A<)iaH XHK0HH<)uI9MEHT$XELHHJDH8H9CPt StELHHHD$0MHD$0H;CPD$Ct$A $D$D$DH$ HcHIH= LK`MQAE1DHH|EHD$Xu`H8H9CPtLEHS0LHL)H HIHL$XAHSHRLdK`HHǯIH=[ LMOA@IH= LMMAIt!InH= LWM$JHH辛HD$XBI*H=' LMPAIH= LDcpEMAH8H9CPtHSH5jHHCLK0MLL$H$A)H H5 H1>fDMt!IYH=d LBMNAMH8H9CPtHSH5՟HeHCLK0H H5 MLHLL$H$A)1諱AE1<ILs0 1LyHS0 -uDHHS0 q@ v)_L8AŃ|$D- |$D+ DAHHpL9{PHD$X HSD;j(6HL$XAHCPK` HHA $1L8L9{PHHE1莮H\H@D(PD$D,K`ILs0CxE1D$xHD$X,A})BHD$XA $HHNYH8H9FPtHVH5褝Ls0LCL$DH9 L4$H5 H1E)MED|$hFhH$HT$PAD$=L81L9~P_IHC0I98)1L;{Pt/H~ HjHCMH@LltAEC\C@t %҃EHHTHD$XA $HH A}{ ALv0ILv0AEL81L9KPIFHHLL$0HC0QIHC0LL$0I9" D:( H1L;KPHC0t/Hc HOHCMH@L|tAGFHHTD$<HD$XHH8)(Dl$hA1ɺ5HHHT$XHEHH蒍H$EHHHT$P1HI 1ɺ7HHĔEHLHH@HHe$tA $E1<|w<)%HHДEHLHHIMELLHȞIVELHH跌CdAE1<.H8H9FPINHN0tHVH5!HK0LCH H5S H1L)M fAE<)t0XIfALk0AEI<)uHHnLH蹅IHH8H9SPHC0tHSH59HɐHC0LCHH H5 H1L)M 蟇HT$XELHH%1ɺ7HH:ILHIMHqB@ HHT$0蒉HHH]HHT$0pI~H~0AFPπE<&t 1ɺG_IH81H9FPLv0H,HtH@A~E"A~FA~I@H8H9CPtHSH5H肏Ls0LCDH H5a H1L4$D)MALǡL;SPxHLT$0L\$(LT$0L\$(OLC0HCH L HN HLT$0L\$(IIL$A)1lHC0LT$0L\$(I Lv01oHS0Ɖ:0@ HHS00< v|HLT$0L\$(%LT$0L\$(HC01DAoƒT$<HsHH)M9L | H E T$<AH$H5 DH' HD)MA1EL H FHK0HL;{PHK0H5H0HK0HD$pHC0H8H9CPtHSH5nHHS0HT$pLCHL$pH9 H5& H1L)M ̓H8H9CPtHSH5H譌LCHK0H6 H5 H1L)M 膃KH8H9CPtHSH5̌H\LCHK0HO H5 H1L)M 5L;{PtHSH5HHC0LCHL$pH H$H5 HD)MA1bA~N=A~E21ɺH萆HC0HD$XD$<2H8H9CPtHSH5H葋LCHK0HB H5 H1L)M jIH8H9CPLs0tHSH5HBLs0LKLLt$L)E)L $EKH8H9CPLs0tHSH5lHLs0LCLH H5+ H1L)M ҁHL;SPHS0tHSH5!H豊HS0LKHHT$L)D)L $A<)LCLc(H8M)H9CPtHSH5̊H\LCH L x IuH H5 ALLMH1LCHC(uL x H H5l HL)H=LH> LM1ۀE1D$xHD$XD$D:D$@-LCLk(M)L;cPtHSH5H莉LCHۂ L w IuH H5 ALLMH1PLFLf(H8M)H9FPtHVH5(LCHu L w IuH H5l ALLMH1H5 H1L;{PtHSH50HHC0|$D><LCET$DH$H5 HD)MA1H/ H8H9CPtHSH5҈HbHCLK0MLLL$H$A)eH8H9CPtHSH5H#LCHK0H H5U H1L)M ~H8H9CPtHSH5LH܇HK0LCHX H5 H1L)M ~IL;{PLs0N`fDAWAVAUDiATIUHSHHT$8HF0QH$T$LHD$@IAf<)0<$<(<#MfHU(AILu0< L9wM`Lu0J<\<^i<[(IHLLu0T$L辫HD$ HE08]~HL茒@H|$ H}0D?A{AG<>A?4LD$8AHD$ HĘ[]A\A]A^A_D<+8<.HLE QHL~HD$ EX^fDHH9o< t< t< t< ft< t<#H@H< tH9wM`<\CLS<߉TLD$0L;EPVv A@LLT$L\$qLT$L\$<AafD$LD$8AHD$ HWLD$0L;EPE}IY@<<^t<|@fMMIIHLLu0LD$LD$III!I@HكEHT$0H;UPHT$ HDHEP@HLA++HD$8A*I$8A?AHT$0LmPL;l$0tA*ALl$0H}0H;}(bHT$ fDzfDr fDHD$8ADD$LHL$ 'HLAHD$ I$8EXHT$0LxLM0HEHs LD$@LD+L$@L9L$@LL$H$GA)1YLl$0^,LL\$LT$;xLT$HU(<HL$(ELAiL)LbLT$INjML\$LH\$p%IMHLHvHD$ HT$ fB<|f;EzIZIGH I I@IZAMH@VL)H  < <,AR:+Az{IZ }HLT$L\$_HILT$L\$w HHL$hHT$(HIrE1ILLL$L\$DŽ$HD$ppH=ILL$L\$v DžIYII yHpHT$(ALL\$HD$ptH|$pIL\$ DžM2IZA #IZA IZA IZA IZA<0tY9EhLT$L\$HL$hHT$(E1LLLT$L\$DŽ$HD$piLT$IL\$I LH\$pI@I9bLEHHT$0ML)H;UPtHUH5xL#xLEHpq L f HuH H5g LLML1nt'A{}DHE0I9 8 1LD$0L;EPt,H{ HgHUHHRH\tCME\C@t҃EHLKqHLHD$ nE%҃HLvqHD$ HLƄ9VԺDȋEExM`%҃ HL&qHD$ 뮺HL qHD$ Ex뎺HLpHD$ oE%҃E몋E%҃)TUE%҃SA~{H](%IFH9HBHE(IHLLu0T$L贜HD$ H](Hm0I1HLu0L1躉HD$ W HLoHD$ M`rExRHLoHD$ M`K,HLoHD$ M`EExM`%҃ ,M~tL}01 LISAA?0DED|$(HLm0L56UXHLD(EXDD$LHL$ oI$8HD$0fAE1HM(L)H<-<ΉAF<Z<IXHE0dDD$LHL$ &HLAϒHT$ M$8EXLD$0hDD$LHL$ 7HL藒DD$LHL$ $HL}LD$ fA@QHLDD$LHL$ :HLGHL$ DD$LHHT$ LHdH}0H;}(_LMIMHLHLlDD$LHT$ HHL/dHL$ DD$LHL4赑LD$ HL%AkDD$LHT$ HHLcVMHE8EtHD$ A>߉:1:HL$hHT$(HE1LL\$DŽ$HD$pfH\$pIL\$\I@=+I$8H9EPtHUH5;pLoHELE0Hd H55 LL$IA)1orA>h){@2fKHEA MBHp LL$LT$IA)1L\$-MLT$L\$A<,?IE1A~A:HT$0H9UPfZLekL\$@LEH H LH$D)MA1hLL\$$HD$ V1 NEtEh)ȅHu00< HHHE0z@ vH9t}HHE0I$8H9EPt HU;J(EE\/@t %҃1HLUhHD$ Hm0HL|sHT$0H;UPAtE}HHLH]0LD${LD$II@DD!H] }LRHHE(xHHE(LLHL0HIyAz@1 LM ~ 9Eh1mIJMHM0HD$0H9EPtHUH5lLdlHM0LEH H5 L1L)M =cHT$0H;UPtHUH5lLlHE0LEHL$@H H$H5 LD)MA1e~I$8H9UPHE0tHUH58lLkHE0LEHL$@H\ H$H5y LD)MA1~I$8H9EPLu0tHUH5kLqkLu0LELH H5 L1L)M GbI$8H9EPtHUH5kL&kLEHM0H H5X L1L)M aI$8H9UPtHUH5NkLjHE0LEHH H5 L1L)M aHHLH]0L\$1"y1LD$E.I$8IH9EPLu0H](tHUH5jL]jLu0LEH L4$H5. AL1E)ME|H5jLjLEHM0H H5O L1L)M `HD$0H9EPtHUH5HjLiLEHM0H H5 L1L)M `I$8H9EPtHUH5jLiLEHM0H7 H5 L1L)M i`I$8H9EPtHUH5iLHiLEHM0H) H5z L1L)M !`HD$0H;EPtHUH5siLiLEHM0H H55 L1L)M _iI$8H9EPtHUH5#iLhLu0LELH/ H5 L1L)M _AWAVEAUIATU1SHH8H|$D$,u:II8L9fPt nt#H|$HYcHL;cPAEHk0HH|$AE1E1vHD$,Dt$HD$*CXDD$LH|$LH$[AMHC0H;C(s[<|tT<)tPL$HT$HH|$d$,HItUT$,HHDЃA EMAEu AUDMtPAu D$,A EH8H[]A\A]A^A_D$,h1߃Ct8aHH|$$H!bHHDAWAVAUI ATIUSH(H$H$L$L$_,LH$Rc<HDŽ$HDŽ$i$h"D$`$h#E1H Lό`$AU@DHË$`P\IEHP$H\U@HCXAJH5 Le)H$@ uHL&H$H9$kH$HH$H$H9$ H$H$H$H$HD$8HD$XHD$hH$MH$H$HL$xHH$H$H$PHDŽ$y$HE /H$D$PHHt,H$DFDD@48D$PE1HD$HHH9HT$@H$Ht$pf.MH$HDD$`HL$x Ht$HLKH$H)$HT$HH$HDŽ$H=H|$XHT$hHt$XE1ɹA0L$LOHHH0HF HHH@HfDH$HD$8IH9\$@AHDŽ$H$HHEf8U@MfU@ftH$HEA PfHAL\K$LHL1HD$0LLL$(:LD$0LL$(LIL)HBAH D LH$V|$P$։ȃHE @0Mt H$A ȃHE AH$HPH?pHE HD$PDD$`HL$x HLNIHT$pH$HLH$OHH$H$H=H= H= H=# H)H=H$v'H=vHH9H҃HHT$pH$HT$H HHxE@LfE@H1S!ALGI$LHL1HD$0LLL$(8LD$0LL$(LIL)HBAH D LH$TD$PfDH$H$L$]H$HLT@HH$ HfWf. ЃH$H$L$:]H$HLT*H=.HE HD$P HH$=HhHF80QH$H9$ L9uHz LuHH$L1\H9$H$MHL|$8Hl$8IH$`MS@HC(H$fT$8A HH@T$8HHH9/ LMHHCFHEHCH@fHCH@@H$H9$H$H$H$H$MHD$@HDŽ$HDŽ$AH$D$HfDŽ$H$HL$pH$Lt$hLd$8H$H$HH$H$BHDŽ$y$ HHHDH9HD$Hw H$E1HD$PAHt$xAH|$hH$6DD$`HL$p Ht$PH|$8pDH$H)$HT$PH$HDŽ$H=H$Ht$XE1H|$8A $/HHwH0F HPfZHKEILHqH@H f9H1Ht9}N9rXfWɉNH*Xf.G HKHLHyT$0HL$EHL$HAHCT$0Jt fHCJD DlHCJD fDAHD$@H$AAH9l$H0AIHCH$H|$8B, fXHHC(Ht $D4f$H;$sQHC0HHH+$$Hf pH$HE$H$H$nf6HC8H@Hh*fu$fH$H|$8WH9$H$Dl$HL$HMH{Lt$hLd$8ΉKXHQHCH|$@SIHC|$HHE1ALt$`E1EELd$PLl$hHSEILHzH%oA*9f9rfD9DG9~AEZ͉t$8D)H;D$@DC@C)fA9u8k@H<7)HkƉ|H{D|HsJ|.1Ht79}T$8)ʉFEZD$0DT$(D\$ OQHSD\$ DT$(D$0LBAD;|$HLt$`Ld$PDLl$hHD[H{%PHC$hH$H9$$H$H+$H$HfBCDH|$XuH{ t H{0HCPH$H$HE$HH$H$H+$H$HfF$FHS0HtH$H)HfCDHSHf<u!H{ tH$H+$H' H$A=$H$IE$LHL$XH@HLH$jH{0x H([]A\A]A^A_EHDŽ$H$HSBfLd$8H$H53 1LMfA[DD$`HL$p H|$8H<>HT$xH$HH|$8H$DHH$H$H=H=H=H=9H)H=H$v+H=vHH9H҃HHT$xH$HT$P*fHH$H|$8JM@T$0HL$9=HL$HAHCJD fHCJD @HCT$0Jt %HH$RDD$`HL$x HLHs HHH{ HC H$H$D$8HD$`Ll$HHt$pHHL$hCX9D$8 D$8E1HHCPT$@f8C@AA1uD9L$@T 9w);SsHSt$8T9T$PuAAH$1ɉLDL$(+H0DL$(F HLn|$8*AAUЃHC @0Mt%AEAЃHC @0C@A$AH$1DL%+H0F HHRH$HH@|$8H$$H$H$HJHH$t0HT$`H H$HHqHH$uHT$`D$8"HT$pLGo$H$QHt$h1Ht$`^Ll$HDD$8H|$`H$HHBfFHCPDCDAL)CHL)HHCPt7HtH$A H55.H=3 15H$H+$H$HfBGH{ @t1@t1f1tft1AH$1DLH)H0F HFʃHS @2Mt_AЃHC @0AUЃHC @0YH$x@AUЃHC @0C@B"1LECDD$PLl$H+"1LDL$(gEDL$(IH{ CX<HC24HCD$HHDŽ$HDŽ$HD$@H$H5 L1;AHD$XfDATIH= USU+HtpLHL2>HI$@ )Ht+HxHHHuAƄ$[]A\H2 HHHDH2 AƄ$I$@I$HI$PI$XI$`I$h[]A\AWAVAUATUHSHxH$ H$H$H$ D$Ht$xdH%(H$h1L$0L$H$H AH$D$lH$H$t sdt$lH$GDŽ$<-D$Eu7<-u3H$x-uHH@HuH$H$H$L$LSHH$0H$H$H$L$(IL$DŽ$E1DŽ$HDŽ$DŽ$DŽ$DŽ$HDŽ$H$H$H$H$L$@fDHtH9$QwKDMM~M$L$EFMfLM扔$D$L$뢄tL%G.A<!++H5 Ҁ<DyHDl$PI݉7uCPtHt"HA<$uPtD9|DH$H= LDl$PP< DxL$AGL<8<<5@A9[|$X8L$IL$M$D$L$fDfDxfDDyHDl$PI݉r@H$H|$x.`L$L$;@H$H$|$`L$Hl$p$DEAt$D;D$PD)CD9|$PaL$LC DT$PD$D$D)$AnAt#EH{xH$A,fH$~L$M$D$L$D$$L$0EEAA8$$D$EHt Cd$CdAA@tKd@D$D9$DN$H$hdH3%(Hx[]A\A]A^A_DL$lEQ+C$L$lHcCd ACdXH{xH$BA\I@HsxDDDHCx H{xH$DL$8gDL$8Ht$xIcWEGHAHLH$H$H$DH A DEH$L$H$D$L$HH$Ht$xHLD$L$H$$Dd$DT$D$ H$PH$H$8tD$E6|$Pt/$%$tKd$ChAAHsxH|$xi=$D$H$$$AW9$;$ $H HKpAG$D$H$$wH{xH$\ AD$p9$D$P,A HHH$A9HCxL$HIHPIRHPIRHPIRHP IR @(AB(HCxH$0HH$8HPH$@HPH$HHPH$PHP $XP(HCx%B(HSxHBHBH@H@H@HCx H$H|$xDL$8;H$DLSxHSxDL$8HCx@mH HcHt$`DŽ$2 HD$XH5 H+H$@ HHsCd'HD$XHT$xH HHBLB0HR L$IA)1D$XDD$lH$HHt$xH;,AY1 Cd$D$$$S|$`HIWHHHT$HD@H= -HD$0DDD$@HHT$HHL$0DD$@uIcA<!9HHHT$H&x.HHT$HLD$xIHtBL<ƋBIpHAHAAG)AB$eHsxH|$xH$7H{xH$ D$E;GPD$D$$$D$pDD$lH$HHt$xHDL$8d9DL$81HtHCpLH$D$PSD$`CL$luD$`C$ЉCH$HH$HsxH$H|$x6YH\KdL$D$$$|H{xH$a'H$"H?H$I LHLL$8H$LL$8H|$xHWB D$E|$luxHtsuluAtBLD$xIPD$D9R$H$Eы$D$lDŽ$$D BH|$xHG@D$D$H$$D$8AAHDAKDKdD$D9$-LEы$AA$D$AH$$DŽ$D$l$t$D$H$$$JLHT$H T$HLL$8H|$xH8LGH_(L)H9GPtHWH5;HLT$xMBH L 4 HuH5q LLMH1HD$xHT$xL@HX(H8L)H9BPtHRH5HVHt$xLFH L HuH̍ H5z LLMH1H$H$LHL$0HD$HHT$HL$0LL$8dHsxH|$x2?DD$lH$HHt$xH4H$HS ($D$L$$D$D$L$D$nH$DD$lHHt$xHA`4L$LD$D$H$$D$$J$D$H$$D$l$DŽ$HsxH|$xDL$81DL$8H{xH$DL$8L$DL$8 AHCx`(14fDHsxƒAAD L=PvʍPvPЃ v_uDAB 1A  t~ tfD~=tމH{xEΉADT7~EAEL$HCxuW1Pv1Pv)PЃ v!_tHsx‰AADT=uHCxHCxEH(AwAHCxSE`(AJAtdHCx*`(1Pv5Pv-PЃ v%_t HsxƒAAD L=uHCxtcEH(AAH{xLEDL$8ADL$8HCxEAH(HCxq10fDHsx‰AADT=.Pv΍PvƍPЃ v_uՐHsxH|$xLEDL$8A.DL$8EAtBHsxAF u D&AAH|$xDL$8#.EDL$8t AHCx` $D$L$LHT$HHT$HtH9$v x,L$LHLT$xH$IBHPH$@HDHD$XD%D$ptDD$lH$HLHz/AtH$H|$x.HT$XHz0D$PD$`J\D$H$H$PE1L$D$`ID$PD$pAH$H$D$Lf1LD$X A E‹T$p1Ix04W1ftyHH$D$ID$L$H$Ht$xIH$$LH $H$DT$ HD$T$H$‰HtEA<Ht$X$ANH9L$PNL$P‰L$PVP9T$`MT$`=$E$DED$lT$`$DD$l$f$9$N$AHۉ$KdtKd$ChD%$$tH$H$H|$x-+HT$XD$pL$p;J\HDŽ$DŽ$Ch$HCpH$$D$$TH|$xH$+H$H$H6 EAD$H$H$vLDL$t$pD$pt2|$P;D$`C)CD|$lEu DD$`D9t L$LS AAt&D\$PEH{xH$AL$|$`M$t$P$$L$)$D$L$L$THsxH$H|$x_)Dd$PEtH{xH$A o,AoHHH$AHCxH$HHHPHQHPHQHPHQHP HQ @(A(HCxH$0HH$8HPH$@HPH$HHPH$PHP $XP(HCxHLT$HL$00L$0HŋT$H0HL$XHt$XIHL$PvPt$`L$1YI,tH{xH$D'AEuF$D$H$$$LHLL$8pLL$8HCx$D$H$$$eBHtLƺwHLD$@HLD$@LL$8@LT$xH8MBIZ(L)I9BPtIRH52HHD$xL@H L + HuHq H5n LLMH11/~ t#fD~=t= uӉHsxƒAAD LAta1A t~ tfD~=tމH{xEΉAD L7~O1.fD~ t&f~=t= uHsx‰AADDAtJ1Pv ~'=u HsxƒAAD L=u1Pv ~&=uPw=ukHsxAADT=u=Atk1Pv ~(=u!Pw=uDHsxAAD L=u1Pv ~#=uHsx‰AADT=uAHCx`(1=YPЃ wHsxAAD L=u"AtFHCx`(1PЃ v HsxƒAAD L=uHSx1tEJ(A=PЃ wHsxAADT=uoAtuHCxY`(1AfD4 t t t߃ tڃ tH{xEΉAD L7HCxHCxEH(AHCxDEH( AAtlHCx`(1.HsxƒAAD L=b t̓ tȃ Dt t u@HCxK1Af t t t߃ tڃ tH{xEΉADT7AtwHCx`(1A@ t t t߃ @tփ t݉H{xEΉAD L7HCxua1-Hsx‰AADD= tу t̃ tǃ @t uՐHCxHCxEH(AA@HCxE`(AAtHCxE`(A1PЃ vHsx‰AADT=uHAWAVAAUATUSHHdH%(H$1F HLhL$HHnH8DH$\H$%@Nl-DŽ$X$L$8$H$IHL$xH$tf.D$E$H$HHLHH$8HIŋ$HHL$8$H$D$1DŽ$LDŽ$PA}^HL$xHH$DŽ$lDŽ$dH$ H$L$1DŽ$HDŽ$XDŽ$`$hDŽ$TL$@DŽ$(HDŽ$HDŽ$pHDŽ$xHDŽ$HDŽ$HDŽ$DŽ$PHwHDŽ$ L$dL3 %(H$ (HĨ[]A\A]A^A_Ë$T=~$dt $T DŽ$d$(buH$ Iċ$TH<(fHIMHH@DH@H@DH@ ID$0Hr-ADŽ$AI$H$HEt$AL$\$P $LAAD$pT$`Hct$pDD$PID$h(HH@?T$`t$pDD$P6I Hbf LLmLHtfH@uHuEtII-:H$HHH$HHL$HAHL$HIL$`H$H$t H)AAD$,$XGAD$($P HcH H*fWX$ f.L$`]HߺHH$pHc$XL$`HH*X$f.s HHH$xHc$TIG AWIT$L$L$D$H$8$lH$ L$DŽ$HDŽ$XH$0AT$tH9$ IG$H$@HL$xH$1AHLH`HID$ $ fW$MG$L$H$0H$`H$8H$TH- L$D$xL$H$H$H$H$@DŽ$XIT$ 1 AD$HHt$x H$H$HH$H$AD$$t @AD$IG$H ~AL$,$P@L$L$@E LHDŽ$TL$0E1E1i@f:2f'::t8L -A<1@($@L-A<D5HHrHH$0H$0J-lA-@pHHDŽ$(f.'u Ax{mfz\$=fD$H$EIH=-yH H -<  <  < Et$LD &; AEH@-Ѐ<" AT$ $P <AL$,D AD$H$0L$0L -A]A<@!@=AUIGHDHxHEH$=D$(H$0 HH$H$@H$0H$DPH$HPDLDAPXAH@$ApH) Ή$ I@DHL$HLD$PDT$pDL$XH$PT$`AT$`H$H$HpH$HTDT$pDR$HH$HHHT$`H$HFHT$`H*$X$L$HLD$PDL$Xf.< {IpHljL$HD$`LD$PDL$XND$`L$HLD$PDL$Xf." 9H$L$HLD$PDL$XH$H$2IH$LXACAL$HLD$PDL$XQ$ DDŽ$)1H$D9wD9vHIx6 A9w1$H$ډ$1҃$H$E1҉D IPDHH|$H$H\$8$)ʉ$9r";$ s$HI@D;HK A(DŽ$H$H$H[D$$($,H$H\$8AL$HHA|1A4:9w$9$ vAA)EIMHA;A uD$$(9ʉ$H\$8$,J1҃‹$HAHH$f;uH$Hf $1H$$$҉$A$$D9;$H\$8ACAH$H$IWEt+Et D$LEu$PuAL$,fH5 1HE1H5 1HH$H5t 1HH$rH$H$H(H$H$@H$0I$Lc$TL$L$XD$H$H$0H$LHL$ L$IL$@D$ HD$D$H$V$@$XtD\$xE$Xa H$H$E1LH+H$H$I H$HHhHu$0tO t $tAH$HHPHR$;$>H$HH;Q1ID$ H1H@0H@(H$@L$H$H$DŽ$8L$@L$H$H$XH$L$H$@HD$ D$(L$(Lc$TH4$H$H$ HD$D$IL$@藨$@$XDT$xED$x*f.AT$t 1D@ AD$H$0AL$H$0@$PH$H$H@tZ$P@H$t0H$H躬H$H説H$H蚬H$1H$PEH$D$LH$ED$IWLH$!ED$"H$H$fA~H$,H$(&H$HL$HHIHcH:H*fWX$f.x g HHH$ID$ H@0H@(H@H@H@PH@HH$($XA9D$AD$}AD$$PtAL$t AL$t AL$t AL$yAL$,tAL$,H$HHCx@HCxID$xAD$t A|$\=AW%L$H=-AH<7@@$@[A$uAHc$XHH*X$f. sID$HvH$HHTH$pJHH)HB$$uz @AD$Y@F@=AD$f7?D$H$BEu)H$H9\$(vL9A$3H$tH+\$hH$HHT$ HBH$dH3%(H[]A\A]A^A_A F A"@ fA fDH9\$(vH$0 $DL$dLf rfHT$pH|$HH=IAgEt7H|$Ls 1  w@LcL $DL$dLf H|$1  vH= 1fHt$ H|$H A1HUA fDƄ$vAHt$hH|$HNT$0EЈT$0fDH 1ҵDA%tA\fDx;D$dpT$PA$ifA DƄ$tACƄ$rA0Ƅ$nA$"Ƅ$"A@Ƅ$fAH\$hC$DL$dL~d WJfH\$Hl$HLd$Ll$ILt$L|$HhDd$xHT$ILD$MDۃ"A@"A*MtLHLGLD$HT$DLL$(@LHL$H|$ptHT$pHL "AAt L;|$(w.HEH\$8Hl$@Ld$HLl$PLt$XL|$`HhH AHL 볐H 1誳"Hc AHLԠH\ AHL諠@fDH- AHL胠fDHRc AHL[fffff.H\$Hl$HLd$Ll$HLt$H8MME1IID$H$葡L9sA<t%HEH\$Hl$Ld$ Ll$(Lt$0H8Hb AHL賟fAWAVAUATUHSHH诵HX 1HHI(HvHUUUU\s @ULHPL L8E1HD$DI9I9H9\$H;<-~KctvEPx4HUHHcH9xHcHfH:HH9py1nLo H Ha LLEH1Νs H= LHI$IcHBH H[HHUUUUt s @UAEH`` LH$I薩$Et&fDH< LH$s$utAF AD$ ]ID$H[]A\A]A^A_fH+g LHAs DA AH$a Hu-DLHHȨEC @4H{wH5 1HHf LHI肨CHHSALHHHL@訶H HL1HC tLHIAEH^ LHC % =HG LHs H^ LH谧s Hn^ LH薧\uЩfuHPHx{H`Hk:1b f.PJAELt$HH ^ H@HHt HHHHH] LH1趚AEIWfHHL[]A\A]A^A_1H] LH趦AG % =AEMfDHP] LH~DzЩfmH8Hx[fWf.MGAEH ] fLHIAE~fAEHHBI$IT$H@H AEH] LH$E1ȥ$-LH\H\ LH蛥EE1E1 tgH@HH9tkH@@@tgHIHHG\ LHH̻AEHH \ HHuHH[ LH舘HHLHAHkHH[ HLH1PTHLHAE1HHHHHS趲H\[ HLH1HH HH4H ATIUSHHHtH@趥~AD$ f%f=izH-HH5W 1H[AD$ %v H`H5y H1/[]1A\HMj HcHDqDHPM LEHcHHHH)I<87@ƃRIQHcHHHH)I@w}($Il$HH5 Z H1HcfDIT$(HCH<1HIT$(HHC1AHHHwE ELeH!H5Ŀ HL1HH"DIt$(HHHHH5z HH1裍VfD2HHp@ƃt HG HH11HHpX蓬IT$H01H聬H0HF tGHndwH DLHHD"1H)Hf"1HHIH@HH9OIT$HCH4HH5 X H1lH8fff.AUATUSHHHD<EHHt2LmLM9t"HH5f HMLH1̋t2HɿH5 H1蘋H谵@tJHkuHHtH@HluHHttU HCHPHHCƃH1[]A\A]HxHsH蔰]H;jyHqDntH5V H1贤oH\$Hl$HLd$H<HH  MH1H5U 8LHHHl$H$Ld$H8SHHAHH)H$LD$@LL$HI){)s)k)c)[)S)K)CH$$ D$0HD$HD$ HD$H[UM1HSLIH &U H舆HtsH5U 1HRH HHt3@t-HH@HRHTHtH5T HH1H HQHH[]H5T H1DHH []݌DUM1HSLIH vT H؅Ht+HHH5rT HPH1[]H鑈fHH []uffff.UM1HSLIH T HhHt;Ct5HHPHCHTHt HHH5S []H1 DHH []ffff.H\$Hl$HLd$Ll$H(IŦHHڻH5S H1詇1ALHHLmH觻H VS H¾1MH苄ID$HP8L9t;HA1H:HmH^H S H¾IH1BH: H H%H U HHHl$H\$1Ld$Ll$ 1H(ffffff.AWAHAVAUEoATIUHSHHDq H iR 1LDH覃HHfAHHD$H5IR HL1SE f%f=iHZ-L<H5R H ΰ 1LAՃ HuHHPH|$HQ H5Q LHEH1ӅLEMtAfEH R yHғ-H Q LDHN1跂H}E Y}#<fA@fA@H S D1LH[Hu0HHH~H5 HL1E"t&Hm(HtHLDH/HmHuHHL[]A\A]A^DH xS 1A_ffAfA fA@xH R D1LH蓁Hu8HiHH5 HL1JH R D1LHSHu@HHvH5} HL1 H R D1LHHuHHH5O L1ՃH5O 1L跃E f%f=idHH芄I_f.DE$ELE0MtH O LDH1{LE(H O M1LDHPE H5̭ 1HҼHD$E"e3Ht$HJO HGU"¨(@ ptE!f:HT$L& HHxtLBIH T 1LDHmHt$H}#H5߬ 1HHΊ-IL%DE#HN E" t }#IHx LHWfAs(fAf fA@?f.E#@|LEH "P (fDfA!vyfADfAD8LE(H O ffAt fAE#@HM LHL $tL $fAs)fA@fADvfA HLDH藨f.fAfADE$E?LE0MtH L LDH1}LE(H L MDLDH1f}/Ht$HL H蝔QfAfAfDfA%VfA$f_fA#D fA=DmfAfAt=fAD$fAD$uE# X@HL a|$HL B!@H58K L1GffAtfADfDf[Ht$HK HLUMAH M LDH1L $I{L $@Ht$HK HU"Ht$HK HԒE!Ht$HJ H贒E!Ht$HJ H蔒U"sHt$HJ HtU"HHt$HnJ HTU" Ht$HFJ H4U"Ht$HJ HHt$HI HfAfA\fDfAD@fH eI ELDH1QzHt$HI H舑sH5I L1}H5I L1|H I ELDH1yMHyJ LHL $"L $E#@HrI E#@HdI jfA~fADfADfA@fA@t fAD$E#ƒ`@` HGI LHL $SE#L $E#1 @HH uGHI ofAD$fAD$@E#@HoH ] HHHl$H$1Ld$1HHlAWIAVAUATIUSHHFHHDZEE1E1fJ0HufHHHk} uHEHtDPEuHxtHL>HEHx0t HLHHCPHcҀ|:uHEHp HtI9$(tLtHHuDIAID;jIGFfDH[]A\A]A^A_ÐSH/HH脃H@HtHppH(H[tAWIAVAUATIUHSHH$t$\DD$hDL$tD$xD<H< Y DD$\HT$IH5lH DDD$AH$HU19Iʼn%@Auu!D@@:@H @V@@d@rDځ$%ui@ @@A D$`t=t9E n%=H< LLTAFOE @tH< LL+E 8 |$`t E  IEIMHP|,`H LLt$\H < 1LLI]zhAHaI-DH5i< HLH1.kE}A AA ft]|$`tVE HEH #< L@t$\1LLgE LnAF A"A hU fj AA VAfaAHEHH Ht2H$DL$tLDD$ht$\LHD$D$x$-HEL@(Mtt$\H ; LL躀AF5HE HcHfAV~rH>9 LLD$@ ~D$@SAE A@A$:I$@I$H9I$@@@L_HEt$\H : LALfLU iHEt$\H }> LLL@01eHEt$\H l> LLL@81eHEt$\H [> LLL@@1eHEt$\H ^< LLL@H1eHEt$\H +> LLL@P1feHEt$\H > LLL@X1FeHEt$\H > LLL@`1&eHEL@hMtt$\H = 1LLeHEL@pMt Ax t$\H = LLqHEL@xMtt$\H = 1LLdHELMt Ax t$\H = LLqHELMtt$\H = 1LLUdHELMt Ax t$\H = LLDqHEDA@<^H = Et$\LL1cHEt$\H N< LLD1c@LLcH[]A\A]A^A_HA HcHDH57 LDH1YfLLc@HM6 LLzfH'6 LLzfH6 LLfzfH5 LLFzfHp5 LL&zHX5 LLz HB5 LLy@H)5 LLyH5 LLy|H/5 LLyjH5 LLxy]H5 LL]yFH4 LLFytfH4 LL&yHfH4 LLyfH[4 LLxfH-4 LLxE %=H 4 LLx@HHPIEIUH@E YLEMlt$\H {5 1LL`EBHEHULL$LHHL@_H5 HL1cE H5 L1pcHEt$\H 5 LLL@1p`HEt$\H 5 LLL@1P`AHEt$\H  LLLc@81:FHEH LLo]|H LLX]HEH@UH LL9]HEH@.Hk LL]HEH@Hs LL\E fWfH\$Hl$H(F HHu>y|HD$$E1HHE1H1sZH\$Hl$ H(@;|HD$$Aff.AWAAVAUAAEATIUHSHH8L=o&-D$$D$pDL$DD$ D$(AED$,H [ 1IHDLDHCH.H;Q-L H;S-L* H;JU-L H;6R-L H;S-L H;VR-L H;R-L }H;~R-Lbo iH;zP-LTy UH;P-L AH;S-L -H;T-L H;Q-L{ H;~O-Lm H;N-Le H;P-LL H;R-L< H;Q-L+ H;JP-L H;N-L  t}H;Q-L tmH;R-L t]H;6P-L tMH;nP-L: t=H;~S-L r t-H;O-L tH;O-IH - uL H  HDL1BDCfE*MEKH#-MuJf.PH80LMuDH  1HDLBDCE$LCMt+H  1HDLA{rsCDCEOLC MH  1HDLAC{wtNH5o 1L~HcKHS E1LL$xHLIfH5%m HH1'DLL\A HH{w HHQH8[]A\A]A^A_fH r 1HDL@DCEH  1EHDL@{e#C{gC@H } HDL1{@vfDH  McHDL1V@fH  1EHDL-@MKLs MIFH q E1HDLH$M1?IFMNH H AHDLH$1?HD$xHKHDL$DD$ Lt$$HD$D$($TD H5 HH'LsL7aLA<AVIcNp@IVhH$E1@t$HfLt$,H ! IHL1>Mct$,H  HL1>H  HDL1>H  1HDL>CCH I HDL1x>H  HDL1\>H5 HGHD$xHK HDL$DD$ Lt$$HD$D$($:Sffff.H\$Hl$HH(HtHHE1E1H1HD$$gH\$Hl$ H(Ð1L9Hr-T@D9tHH9Ds HHI9v)\uHD9tH9v\H@H9vHT$:D HHEufD>@th@LPA9uCDEtA:@tIA8LHt(@HDEt+D8uH9@uxLD1DL9HrfDHDHL)HH9wDD:LPu1I9vD LHE: tHDD:u HI9wL9rL1@ffffff.L9HDrfHHL)HH9wXfDD:LPu?I9vD HxHE:Jt'HD D:uHI9wL9wL1@ffffff.t7HH:@8tLI-@A:8u u1ff.t7HH:@8tLI-@A:8u u1ff.H\$Ld$HHl$HHItH9WuHHl$H$Ld$HfDB"u 1fDHj(HuDHmHtfE u H}HDHHLtHtHf.H@HxHH@HxHH@HxHH@@ƒHIHTHƅt!H@ƒHIHTrn%t!H@ƒHIHTrAt"H@HRHDrH@1HzHtfDf DH@HxHH@HxHH@HxHH@@ƒHIHTHƅt!H@ƒHIHTr^%t!H@ƒHIHTr1t2H@HRHDfDf1ffff.1@H1dH%(HD$1HHHH@uHT$dH3%(H$uH`ff.@% fH1dH%(HD$1H<$HHHH Ѓ@uHT$dH3%(uHfDS`ff.~*HcHD7HtHHH9ut;DIIAE~U~NHHDHDHL9uLE~&HFAJ f.HH9ȈHuHG-HqF-HF-H!B-HyG-v 1H HcHDHF-HC-HaG-HA-HYC-HE-HiD-HA-HAA-HB-HAD-HYD-HB-H@-HYA-HC-HaF-H!E-H B-HC-HA-HqC-HC-HC-HD-HB-HE-HC-HA-N~ SDFFlAfAgfffEiDA1D)im׺QǍAIljˋAA)D)AF Aу<k1DVVA<AiAQ1Ⱥų<EA )‰Vi)Ѻ)DV)Ѻk9D)iiұ:A)кDDB sm)dADiAA)DD)EiҵA)кDDD)imAA)udkAAFDF Nf.E71ODDA{׀+C< :gfff)i)׃ FAAEFaF NAzASQAim)AA)D)))хAH)~Nv,A$IDDD))A)DN[fDE.)AiҀQ)A@E.‰)iɀQ)ˉx )AX))EL HiɀQ<DAgfffEiDA1D)>ff.fffff.f.H\$Hl$HHHHu1H\$Hl$HfDF u6tHuHtр~ u˺rH\HtH@f.s/E fDHt H+Pf.HBH~0t2HHHHBHtHtHH9uHf.1H9tHu1HHt.YHfff.H\$Ld$HLl$Hl$IH(HIHFH8H(HHWt@I$MHPH@lu3HH@HH@: tdHBL9`IEx LHlHIH߹HwLLHHl$H\$Ld$Ll$ H(.@A:2 uA:' uA: tsE ЃujE HEL`H\$Hl$Ld$Ll$ H(H@L9`:HHHl$H\$Ld$ALl$ 1H(FHHlE nHHIE VJH@Pf.H\$Hl$HLl$Lt$HLd$IH(I*BMHtMfL9LHLBL9PBD%HHl$H$Ld$Ll$Lt$ H(ff.H\$Hl$Ld$Ll$ILt$H(IIALHAMHt1IEH9s(I)I<LIEL9ILCLMOAHDLd$H$Hl$Ll$Lt$ H(ffffff.H8-8j+fH\$Hl$HHHRHHt H@HEHHl$H\$HÐUHH= 11SH(oIt.Ht$6HtD$b/D$uD1H4$D$ie@iCBЉD$MIpHx@HL;ZHPEE@MHH@L HPH@H!H@ h(HHBHHL+{HILzHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChuHH)HHHC H)H=HFLfLHHr?HPHH@HpHHH+SHH HHQHHRHSHH HIH HK HH HIHHHHPHH<H\$8Hl$@Ld$HLl$PLt$XL|$`HhfDHLD1@HT$L$LH ^H HHIH0DHH!EHE@fDHH@HHHt$;^HChHSHt$l Hf]HPHPHPHBHPHtx t&HWH5K H1P#H8H@H@HtHH@8HuH\$Hl$HLd$Ll$HLt$L|$HHHPAHtxuZx xHVILHIcHNLHHl$ H\$Ld$(Ll$0Lt$8L|$@HH/x uHPHtLrMtAFtqLHLHIHL+*WHsTH&CPH߉CTLHPHHPHǃPH@HH@(@ HHBHHL+kHILjHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC H)H#IGLnHbIcԹHHIEMu[H5 1IEHL3GDHPHH@HWHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPCP;CTHH~HK.HHl$ H\$Ld$(Ll$0Lt$8L|$@HH8fH@H@HwHLh8Mrbf.HH=H HYHPHPHPHBLHZHHr)DHHt$;ZHChHSHt$.HPHtx t;HSH5G H1~H4HPHw|H@H@HtHH@8HufH\$Hl$HLd$HH-[,-H0IHPHtx t6HSHH+BHLUH14fH@H@HtHHp8HuDH\$HHzHl$Ld$HHI&Ht%B LHH$Hl$HLd$Hi>HfH\$Hl$HLd$HHHtBH0L`Lv&Ht>LHHl$H$Ld$HH>f1H$Hl$Ld$HHH\$Hl$HHs&-H8HHŸHDH%HtH\$Hl$HfDNuH/ffffff.SHF t5HH^HxHH|$KHT$HH4=H[fDHT$"YYH|$HHl$Ld$DeH\$HHMcLJHt$HcHHH$Hl$Ld$HE1HE11ҹBH OHl$1E1H{Hm1ɾLl-f.AH9?A9r@ HH+C w;Hg. IAHHMAEAEwAIzfDfH?H;##ff.Ht #fDfffff.H\$Hl$HH-HH9tH\$Hl$H@HA-uCH-HH9ptCH8Ht-EHH<(HHufH-HH늿>Hfffff.H\$Hl$HLd$HH{-I8 MHtQHt,LH9DHtLH$Hl$Ld$HfLH$Hl$Ld$H.>fDHD1@NuHffffff.AWEAVAUAATAUHSHHLt$PDL$LI$DL$LHDd$PDl$TD|$XD$`$DL$\D$d$D$h$D$l$D$p#HD$PH|$HD$HD$XHD$HD$`HD$ HD$hHD$(HD$pHD$0HD$xHD$8H$HD$@( HD$8@HD$xHD$@H$\$4HcH HHHDHsII$L4HI>un5ff.H\$Hl$HLd$HH -I8aMHtb1HIH9rQHu+Lf5Ht)H$Hl$Ld$HfDLH=5NuHH5p-H=2 15f.H\$Hl$HHt&HHtBHH\$Hl$HH5!4 H\$Hl$1H7C70Hſ,E HEHEE@H|fDH\$Hl$HLd$Ll$IH8I*LHE1HMLHHHD$$HEH@Ht HU| thH@H@HHPHMD@$Eu\HHt x u]H4 AHHHH\$Hl$ Ld$(Ll$0H8@HH8H EHH1%H AHHfHPHeHRHXz NHLJHM>HQ tiftukHHRHtlLL H;`H 2 t HHHHH0 HH1ffH@HqfF uHHRHtHQL1 : ufDH\$Ld$HHl$H(D` At`HHRHT$HhHt#DAH HuHT$HHH\$Hl$Ld$ H(@HT$"HHBHT$HfHHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$$HSHHHT$0HHAHt$(HL$8H)H$LD$@LL$H)z)r)j)b)Z)R)J)BH -8WH$HHH$D$0HL$HL$ HL$S#H[fATHUSHHH-H9tKH@HzHH@HzH|H@HzHjH@HRHBHHb@ HUHHPHT$Lem HtE1LHzHT$YHL+H8HH@H h H`H?H@H@ЍTHmH׃|=1H@ԍTHmH׃|=H@HmH׃|=H@DHHƒTHH}!H[]A\@HT$"HH[?HT$IfDH7H5/ H1HLH f.HHL$8H H7LD$@LL$HH)H$)y)q)i)a)Y)Q)I)AH$H$D$0HD$HD$ HD$8HDH\$Ll$HHl$Ld$ILt$L|$HhHt ~  AE1 HAHD D$'L LL$LL$:L$LL$H5, HD$(?L5P 3L5 , xH2-HcL4ЁH^ Mt A<$`LD$(HZ H$L1L9|$'tHHx@t@H\$8Hl$@Ld$HLl$PLt$XL|$`HhDHL fD @@@@@@v @f@V@F@6 @&@@ @@@@@ @@@HH( HD$(zH) HD$(HFH@8HHDHL`AILL$7L$L* H LDMtA<$LH u~H LH\$8Hl$@Ld$HLLl$PLt$XL|$`1HhjfL5&c |$'tHsHC fDLD$(H LLH\$8Hl$@Ld$HLl$P1Lt$XL|$`HhLD$(H H$L1LLd$EHHx@@LD$(H$ MLLH\$8Hl$@1Ld$HLl$PLt$XL|$`Hhpf@@@@@s@c@afLUHSHHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH-89H$HH$D$0HT$HT$ HT$H1H[]ÐH\$Hl$1Ld$Ll$HLt$H(HIMtE H@IHt HHxumAF IH@IEInAF % A$HtA $IUE1HH~HH$Hl$Ld$Ll$Lt$ H(fDLHH@F tKHH@IEH@HhHH@jD"LLH7HJD"LH6HH@@USHHLD$ HD$ uHtbH$HHkHH$HH!H8HT$ H@H P H`H?t@HfHH@H0F tDHHPH$HFzH-H5& H1D"HH51HHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$H\$Hl$HLd$Ll$HLt$HHH-IIՋ8IIIMHHHH$IFHD$IFHD$x,Ht HcH9ӐvH\$ Hl$(Ld$0Ll$8Lt$@HHH5y L1+ffffff.H\$Hl$Ld$Ll$HHL$8H H@LD$@LL$HHH)H$IH)y)q)i)a)Y)Q)I)AH-8IH$IMHHD$HD$ HH$D$0HD$x5HtHcH9v(H$H$L$L$HH5 L1h*USHH=x HHu :@H t t t t tHt0 `H H%H(H0H Hw@H(teH 1Hw@H(g1҅u+H   Y@@f.H,HHtFƃ?H[]H A  A YG@f.H,tH Hw@H(u0H   Y@@f.syH,HrH51 H1(\HH,H17\HH,H1 1H.ƃ?H[]\HH,H1qfAT_IUHSHtbJ0H5+ wy 1HJЀ w@HJЀ v tt H][]A\@ Ht͍J.wHc HfDfDDfD@DfDDfDDsDc DSHH5 L1' 0H5i L1&@AWAVAUIATIUSHHHF tLfAE tMmLHLHnH % E11LAHD$HD$$ (HH& E1LAHHh$H c% E11LAHHD$8D$HD$$ i(HHr& E1ALHL`${HHHD$0 LAHD9D$(AOE1D$,C1DHHH@ &1DHHHHDp1DLHlH@ 1DLHOHH@A9AujD;|$(tcD9l$(f.1DLHH@ 31DLHHHHx;HH[]A\A]A^A_flfDDLH1H0H("-1DHH`H0H"AE9}A1DHH(HHHxAKE9B1DHHH@ u1DHHH0Hy!Hf1DLHH0HH!HAD9l$(s1@D;|$(1E1tA9t 1)H|$8H|$0tuqҸfbAD9l$,^D;|$(H5 H"AWAVAUATI1USHH(]AD$ HtMd$LHrH# E1ALH$#H ! E11ALHID$HD$$ $HHLhLyA11LH.H@ 11LHH0HH+ 1HcHHAA@1DLH HHHH 1HcHHAE9~g1DLH H@ u1DLHn H0Hf11LHI HHH;E~vfD1DLH H@ 1DLH HH@MtmH3 HcHH1A~H(H[]A\A]A^A_fDD)AtH AHH3AuH HcHH1aDLH1X H0HIH A1HHIH55 H f.AWAVAUATUH1SHH8mE ItHmHHH) E1AHH$A0H E1AHHHD$($HH E11AHHD$HD$$ !H@ aH a E1A1HHD$HD$$ D!HHDhH  E11AHHD$HD$$ !HL`M-LHA11LH H@ 11LHc H0H1LH1)H~ A4i1H߉L HAHx dD1)H" IAI 1DLHA9~e1ɉLH H@ u1ɉLH H0Hߺ3AyH A1DLH߃JA91DLHE H@ 1DLH( HAHhH_ ADLH1H8L[]A\A]A^A_Ð11LHHHHzH E1A1HHD$HD$$ H0H3AH2 ALH[fD1DLH@H0HAH|$(H5 ALHEHT ALHpH5 H@UHSHH(F tH^HHGH E1AHH$HtkH E11HAHD$HD$$ ~H0F uH(H []H(H[]f.Hc E1AHH$aHtH(HH[][H(HH[]H5 HAWAVAUATUH SHHhH|$(L$7H|$(H| HHD$8(H|$( HHD$Ha HE< t< ft< t< t< @tHt$HH|$(H E1A1D$HD$$$H|$(IcHt$HH|$(H e E1A1D$HD$$$RH|$(IcD\$ Ht$HH|$(H = E1A1D$HD$$$D\$ EH]D$7|$7udAD$WA<_1L)Ht$8HLVH|$(H5 11H|$(H5 1Ht$7EtH|$(H5 1AWAVAUIATIUSHdH%(H$x1DD$\D$lD$pt/L+Ht>1Mt LLDH$xdH3%(aHĈ[]A\A]A^A_H= HHtHH,I$H9HT$0Lt$pD$@HD$8L|$lIHD$(j@1I<LH)HT$0L0 A$@txH|$8.H9HT$(HA:ILLL<$BT$lH9HLHrT$HcΉt$HL$ HL$ T$t$HH=w1Hc҃t$lDp/D$@|$p.EЈT$@HL$0fL20HL$0@LMfD|$@tD$\E1H|$8H|$8t%D$@fDLL%HD$8HT$0L x&A$HD$8D$@%=@yHD$8D$@fH|$8|$@u4u4L L H: Ll$8HL$8H5 L1tL H Hr MLl$8L 0 LQ H9 AWAVAUIATIUSHH8>-1HAX1A}w$D$ H|$ =BEE1fD8 H|@EHcl$ 1A}r| @9| /Hc$| 1A}r9tEH5h AHHHt3H@H` HcHEHH0HEHH ǃ H81[]A\A]A^A_fDHc$| HcD$ | uEEa1H8[]A\A]A^A_f.~V11A}wE1$D$ dH|$A_HSHE H5C H-!HELc|$ Lc$$Bt B| 9eGB| BT BT H(HL8A IIHcEHP HD$,E1AH$fDDL|$H)H4$HAAv؋|$B| ALl$(1IfD1LHuA<$tD$,A$1]fD|$|$5|$EuB| LH8[]A\A]A^A_Ë|$n|$1Hc$| .@BT |$-aLHH5 H1 H5g H1 T$HDLffff.AWAVE1AUI1ATUSHH8T$ H $"A}wAEAH|$ nH|$AAAD8 "{|H#EMcMcBt B| 9:BT H(HL8A IHcEHP %HD$,E1AH$DL|$H)H4$HAAv؋|$wB| mALl$(IfD1LHuA<$tD$,A$1&McMcB| B| E1H8[]A\A]A^A_@HH H: H58 H"HDcB| BT BT f|$EB| LH8[]A\A]A^A_f|$oP|$a|$X1NLHhEt|$.|$1 1A}rMcB| @9tXB| Mc1A}rB| 9tHcD$ H$HDD$E1HLHZMcB| H5 H1SHHHT$0HHAHt$(HL$8H)H$LD$@LL$H)z)r)j)b)Z)R)J)BH>,8H$HHH$D$0HL$HL$ HL$ff.H\$Hl$HLl$Ld$IH(H 9Xf 9E}HHH*X f. H H4H IuH^HcUL`1H LL$L~LH\$Hl$Ld$Ll$ H(f.ǃ H L%Q,LuJHF,LU u^UHHHH H*XH H=e ƹ1H5X,H= 1H֯ H=T ƹ1fDAWAVAUAATUHSHHhdH%(HD$X1F  H5Z Ld$IHLc @@L?|LcL@IGIfD0uH HHLIu.HHLHD?AIHLHZ8I~LHT$XdH3%(HHh[]A\A]A^A_HC fDugHHsH@HD$HAIl@ HmH ML H1LVHHzHt9PHp HFIHT$H޹H HdC CH=e? 1afAWAVAUATUH1SHH( H HHIHuDE HLH@H(HL[]A\A]A^A_1D HcH3 LHI HHIE H\ E1AHH$ZHt>HxH # E1A1LHD$HD$$$H E1AHH$Ht>HH  E1A1LHD$HD$$$mHU E1AHH$HH % E11AHHD$HD$$ H@ H E1A1HHD$HD$$ H0HHcHH E1A1LHD$HD$$$xHw E1AHH$HtqH K E1A1HHD$HD$$ H0HlH E1A1LHD$HD$$$H HE1A1HD$HD$1$ HLp7L1ɉH9HHpHcH߃LHHLH99=1ɉLHH@ u1ɉLHH0H~fLHH LHE1A1D$HD$$$H(L[]A\A]A^A_fVHHHLchHp HDLHHLH}vt#L A11LH$_HGf.HmH HE1A1HD$HD$$ HHpAffff.HH ,H8SuHH=r 1l@HH=,uHH; H= ƹS 13ff.HH=],8uHH H=Y ƹE 1ff.USHHLD$ HD$ H$HH$H8HT$ H@H P @H8t$HuH`H?t*H@H`H?uH[]@H(H5 H1DHHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$HSHHHT$0HHAHt$(HL$8H)H$LD$@LL$H)z)r)j)b)Z)R)J)BH,8H$HHH$D$0HL$HL$ HL$H[fHHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$HSHHHT$0HHAHt$(HL$8H)H$LD$@LL$H)z)r)j)b)Z)R)J)BHn,8H$HHH$D$0HL$HL$ HL$SH[fH\$Hl$HLd$Ll$IH8I芼LHMHLHHE1HD$$ HCHl$ H\$Ld$(Ll$0H8ff.HHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$ HSHHHT$0HHAHt$(HL$8H)H$LD$@LL$H)z)r)j)b)Z)R)J)BH,8H$HHH$D$0HL$HL$ HL$sH[ÐHH@ HtvDF ADDF N AHPHt8H:t@u Dǁ ~ Hzt@@~ Hzt(~ HHu`u ~ @~ ~ ff.1Hu HH@ HtH9uf.H9tHHfuf.HHtdHH8H HHHHHtIHzt A(fDA8x"HcHHQH:tzu%Hyf.f.fffff.HHR HtHHt HJHH1HH1DHMt 1H@Hr#rHtH@1HfDt BtƇ1ub1ÃJ1fB1f ffffff.HHR HtHBHt HJHH1HH\$Hl$HLd$HH_8HL#MtmAD$ <vBI$Hz t7Sth AD$ t"tp! AT$ DHE@;C uHU8HcȉE@+ʉE@H$Hl$Ld$HL(AD$ fto@DSHHR HH 8,H1[UHSHHBtLHr HHHHHHHH1[]f.HR f.AUATIUSHLJ<f.HEteI$@(tHEHI$@11H(HL11߃A$1H,EuHĈ[]A\A]ÐAWAVAUAATUSHH,Ht$88L8HHDŽ$H@xHD$0HKDŽ$HL$(HHD$ C@;CD DŽ$HCpHH9Chs$C49C0}$H McJ<$t HCh$J4F tHnHt} t*H$H$AHtHHHEHx@H JHHCx@Lsx$@HPH@HUH@(@ HHBHHL+{HILzHHRHSHH HIH HK HH HIL,L~ lE % = HEHPHT$(HulHH9= HH:PHlH~(HHH9LH H= ƹ, 1HH{HH HR<HH辮HF H@H@L % HH@ID$`HH@H@HHx`LH@`?HH@L`M'F e HHxI$Hp8Ht HpI$HF H@H@L  HH@ID$PF  H@4%4|H5X LeHHJHHtHެE <KfQ FHǃF ffHHxnE HEH@HHHH賸H5 HHHHHHҸHnHF H@H@L : HH@ID$XAF HxTff F H@F H@0F gHxPffE IHE@0F {HH@ XF iH@0H"HR F HR Ј HHtHiE <f HǃF HH@HD$(Hn DHE< t< t< t< t< t 1HMA\E1E1EtP< tL< u.>fD< fDt6< @t.HEt"< t< t< u< uf.HE< t< t< t< t< tfMAFLcD$ MI*fWXf.v VJ4LI1 HhMcACDDt$ HH@H@HHxxHHHH@H@L $HID$xHHH@H@L 舶I$LLHH H*XAFLcD$ MxUI*fWXf.u _J<IzHڷ,H5 H1LLHH H*XELf fHUfB KHHDHHUfB HHHH5| LH HtH6E < f Hǃ ^H5 LgG 8E HT$ "HHHL$ Ht'E111<H A H9rZHHtHtHt蓺HǃHT$(H1HHkI$[n虸P1҉Tt9Ⱥu\;X SΦP1҉Xt;Tu;\뵃1҅Pt;Tu\;X ʈHH7\P1҉\*;T;X HH8H HHD$(lH|$(H)HHPHH8GHT$(HH]HT$(H;HHHHH0HߺAHߺHE@ &HxHǃxE <ftHq 1HLHHHxHH%HHT$("H\H0HMcLLDIHUfB HH贵H PHHߺHucHcHQH? fxH&HVB lHE@ HT$ HHFHT$ IzE HEEHHtHt HtHǃ ,HEHHHL$ HEHE@ HN "1HH^HZ H=õ ƹ 1]E tgHEHHHL$HEHHHģH@ { oHȆ HHPHǃHHT$"HHHL$H5-,H=x 1HH_M H5 1H߁ *H5_ HHHHHH HL$ I+@HHrK1Hfff.Rrt Btf ˥f ?鹥HRATU1SHHHLt%F tHH#H@@HztuHz 1 IT$1HHr(Ht!H@ tHH@Ht `"H1[]A\fDt+H1Hx@ŃzuHr F tMH~|@t[HfWf.@ @LfDHtSHF180@/H߹"1H!fHT$HT$f1fH"H1[]A\ÐH1HH\$Hl$HHHHHp@Ht0HP0HH8HHH-1H\$Hl$H@C _S tH̐Hl$Ld$HH\$Ll$H8HIHX@C HHRH$LkHH0L$ H@8ʉD$C H$9Љ}D$ < 9})щL$HcHcHITL跻C tM 1H\$Hl$ Ld$(Ll$0H8H"H8IHEb@HL$HT$ HLT$ L$Zfffff.H\$Ld$HHl$Ll$HXv IHHPHT$ LCHH0Hh@ L$,H@8ʉD$(tI$@@@tuHt E LL$ HcHcHL$补HHT$ HP81H\$8Hl$@Ld$HLl$PHXfHT$ H޹"&s IH]HLLD$cHL$(HT$,HLHcL$(HcT$,HLL$ LD$L$L+HL蚛IE8M UfHL$(HT$,HLLD$NHT$ HLHP8LD$HT$ LHcL$(HcT$,HLL$ LIH$膤HnH\$Ld$HHl$Ll$ILt$HHHHh@} wHC <mL,E1ɹg1HL$I@HEHx tgHHItC <E C HELpHHXI$@1B@H)E tI$@@@ty1HFI9HINHAeAU1H\$ Hl$(Ld$0Ll$8Lt$@HHf.AEfDHC@ 6DHL蕙HLErHLC I%H޺L HT$HT$1HL"HcT$=I$@H E11ALHpP$@ tMI$@H ɵ E1A1LHpP$XHH@@1LHIfI$@H | 1LE1AHpP$ HL;FfDHC@ DH\$Hl$HLd$Ll$HHHHLh@A} IEHx tugLHtcD`ExZDd$AE tH@@@H@1B@uVMcHHJ D1H\$(Hl$0Ld$8Ll$@HHÐC _S tHHXfDH@H E E11AHHpP$@ t>H@H  E1A1HHpP$HH@@fDH@H ճ 1HE1AHpP$dHHHT$LH8Dd$fDH\$Hl$HLd$H(HjHF HD`H@1B@u-DHH)腸1H\$Hl$Ld$ H(H@H E11AHHpP$@ tVH@H ˲ E1A1HHpP$ZH@j~ABfDH@H u 1HE1AHpP$HH4  @Hy H1HH+KH HS IcH)HH9L`HEH9AI$~DHu HUxkIHcҹHLT$I$LT$AtIM4$L#DHHl$0H\$(LLd$8Ll$@Lt$HL|$PHX uII4$먐DHHHLT$L\$蝳L\$LT$,fD}pmHcmHILT$艵HI$HH'LT$<DHD$HL$Ht$HShL\$LT$HD$@LHLT$HHH轟LT$ff.AUATIUHSHHL/HPH@HH@(@ HHBHHL+kHILjHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC H)HHELnHH5Gw IEL+H6HPHH@HHHH+SHH HHQHHRHSHH HIH HK HH HIHHHHPHHH1[]A\A]DHHPH6HHt$HChHSHt$LH]HHҝ D HHPHPHPHB"HPHtx t&HH5 H1ГH#H@H@HtHH@8HuAUATIUHSHHL/mHPH@H!H@(A@ AHHHHBHHL+kHILjHHRHSHH HIH HK HH HIHH 6u HHHPH,$HHLHPHH@HHHH+SHH HHQHHRHSHH HIH HK HH HIHHHHPHHϪH1[]A\A]f. HHPHPHPHBHPHtx t&H1H5B H1HSH@H@HtHH@8HuAVAUIATIUHSHHL7HsTH CPCTHPH@HZH@(E1@ AHHHHBHHL+sHILrHHRHSHH HIH HK HH HIHLHHHPH$HHLHPHH@HHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPCP;CTHH~H+HӨH1[]A\A]A^@HHHHHHGfD HHPHPHPHByHPHtx t&HH5" H1H3H@H@HtHH@8HuH q @H \ @HHz tJH q 1Hfffff.AWAVIAUIATUHSHHA L?<0L%wq Hyq HLEHsTHrCPCTHPH@H@H@(@ HHBHHL+{HILzHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC H)H IEL~HHIE < tII/1L;LHAHPHH@HgHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPCP;CTHH~H=HH1[]A\A]A^A_@HHHHHH#EfDHHHHE@ DHA@ DLH HH肖DHHt$KHChHSHt$H HvHPHPHPHBHPHtx t&HH5 H1`H賡H@H@HtHH@8HuAVAUIATIUSHHHjL7HCHEH 1HHHp(gHHHPH@H:H@(@ HHBHHL+sHILrHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC H)HHFHnH5 1HH?HH HPH@HHHH+SHH HHQHHRHSHH HIH HK HH HIHHHHPHHHH[]A\A]A^@HH*HHifDHH0HAEtIEHPHPIEH|uHLHLHH:1LH]E <HPH8HDGHH`HHHt$+HChHSHt$N HVHPHPHPHBHE@ iHPHtx t&H[H5l H1*H}H@H@HtHH@8Huf.AUATIUHSHHL/载HsTH1CPCTHPH@HwH@(E1@ ALHHHBHHL+kHILjHHRHSHH HIH HK HH HIHH j HHHPH$HHH1&t*HH0HHF HHhHPHH@HHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPCP;CTHH~H$H̟H[]A\A]H;hJ HHPHPHPHB\H5h H12HPHtx t&HH5 H1׆H*H@H@HtHH@8HuH\$Hl$HHHHHp@HtC t"HPH1H\$Hl$HDHCHHHp@ffffff.Hl$Ll$1H\$Ld$H(HHIHX@Ht/HCuNH 1Hy Lat HHçA)IcLH肂1H\$Hl$Ld$Ll$ H(PHHPE1Hu fDA1HHOHuIcffff.H\$Hl$HHHt1H\$Hl$Hf賌Hu~ HtIHɮH@HH0HtH蒞SHu@tzit1Hr~ HtIHrH@HH0HtH;1[ffffff.H\$Hl$HLd$Ll$H(zhHB 8_#HH舃L$L.LLH1GHHHϽHHI茨H5LH<<1HH HcL$H4HtHH HL I,$HHI$ڛHH诀1H$H$L$L$ H(DH=e Hu=HHtH0HtHHJHr F tFHFfH=Re HjH,H9VH@"1;HHff.H\$Hl$HLd$Ll$HLt$L|$HhBHcȃH$(~Lr A>_LHMAL$L|$ LLD¦LL1H轶LH荻HHIJH5{LHؽ<H McHJ J4HL$~H LHE1N$EH J,e HL$H H$(HL$HL$HH JH E <5„% =?HEH@H$(L}H=Mc LHEDH{HyfH=b LLLE1M2L;%P,ILDЃ E/EI.Mt LH8}1H$8H$@L$HL$PL$XL$`HhfDHr F HH@H$(Lv`f.H=a LLL fDEG1DH2DH*Ha LH19 @H$(">IfDHy,HDH軺H#fDHUB DHH$(HH訙IH5` LH1茱H5` LA?:LޟHt#EH,DHH{'L詟HuL A11HH$aH\$Hl$HLd$HzHtQHr H|~#H LcJHtVHHF1H$Hl$Ld$HfHr F tHv룹"1茹HHvHt8H HHٗEH J,e xfDHz_ HHaH迦1HAVAUATIUSHHuH1[]A\A]A^fD胦LHLl$ Sx7fHLH誤LpLHH蘲LHH1LHHHtHLHg@ uHLHS"1HHAI@SzHtHr H1萇1[@Hr F tHvffD"1HHl$Ld$HH\$Ll$ILt$L|$HdH%(H$1HDŽ$F <„H tHH@H$H^EHcЃH$GLm HLL譆A$teHt H$tV1H$dH3%(zH$H$L$L$L$L$HDH=DX LuIL$L9sL$HD$ L$IHD$HT$;D$/u\HT$L茧uD$8u?HI9f$HT$HA:MLLL<$$H~MHu F tVHH@H$LnfDHVB @DH$"L賵HEH$"L蓵I@&fffff.H\$Hl$HLd$H(F@ IHH 1H~e CBH] AHL蠁CBuH\$Hl$Ld$ H(fDHsPH Z L1E1A$+HLH\$Hl$Ld$ HH(EDH HH\$Hl$Ld$ H(HsPH ?Z 1LE1A$賧HHLH\$Hl$HLd$Ll$HLt$L|$HXHB 8~HPpww8H \ HcH= HH HH@HH߁l@@-H=8 HHc8HHvlfHHpx fH@HYH@HLHHHHPH"l5D@'Hx H E _U HH@@:5r B:c B:T B:E HHHzHHBHP8H HHHpH#V<HHHP(5DHH]E fvHHHH H*XH H(H ywH7D(IHHA*膍A<$H HHxE,$E UH]HuHSHH 1A< t< t< ft < t<  HHuHxHH9x$HH1t HH߁iHF8HHEHHPHU| HH4}HHiH HHwiHHH_ir HH߃EiXH@H E1A1HHpP$HHDHH>HHy|1HHhH H(H huH HN HN HHHEgH5N 1HQjHtrH o E11AHHD$HD$$ H8HHH; HWN HH߆HM HHÆH5x,H= 1YUHSHHHz HG Sv!HHE t&HE@H[]H5Q Hc H41@1H[]fDH= Hu1HHCHR8H HHHpH$LHHAP8pH5 M HcH1k5H= Hu @H={ H\ 1|BDHH HP8H HHHpHN<21HHHP8H HHHpHN81)H#tHH蠕1:1ҹHHVE 1@ffff.UHSHHHHttHH8H HHHHHtYBxR;A(MHHHAH0t<@t4HzDƅ~AtHqPHt HHHcHH eH1[]ff.AWIAVEAUIATIU1SHHT$HHX Hu,{H@(Ht*EMHL$HLLHHtQCHCuKA<wUtހPtHDDtnHSHt$E MLHHuH[]A\A]A^A_DHSHuLL $葢LHq $HDH{IEH\$Hl$HLd$HB HA% = teMcH5HL8Le8I$C %AD$E@AD$ C S u %p ЉC H$Hl$Ld$H1Ha@AU1ATIUHSHgLHA4I$HX Ht,HCHtH@Ht HLHHHuIcH H1[]A\A]AVAUIATIUSHHHX HtfHkHtH}u@HHuA|$ ftH5H L1DI$@H[]A\A]A^@L1ҾfLAƉLQHLLUIcLD$fD$H[]A\A]A^DH\$Ld$HHl$Ll$ILt$HHHHx8u#H\$ Hl$(Ld$0Ll$8Lt$@HHDy辎HHtHPHHE1E11LHp@D$HD$$ZHLhMI$ I9AEHLHp@aHLLh@HH@8HuaHEe%Hp8Lh@x:HP0LLvHtyL(I$ I9tiMuuAELp0u%IUHRMcL9}H@@E1GDLLEHcHHUH5m,L1HH5no,LHP01ЖH\$Hl$HLd$Ll$HLt$HHHIHx8HRHHp@E1E11D$HD$$辘HLhMH I9tBHHHp@=`AEHHLh@HH@8It$`Ad$ID$LHH}1H\$ Hl$(Ld$0Ll$8Lt$@HHLh@MuL fDLh@Lp0AEu)IEH@McL9|HHP0IEL,$DL訒Hfff.H\$Hl$HLd$H(HrHHFHL`H@1B@u*J HH^1H\$Hl$Ld$ H(DH@H { E11AHHpP$<@ tNH@H {{ E1A1HHpP$ HH@lfD賑LcJH@H -{ 1HE1AHpP$輐HHE _U HϜfAVAUATUHSHHHL` MtfMl$MtI}uOM$$MuS HHHL$HC tH@B@HD$H[]A\A]A^fH1Ҿ9aHAƉHLHHAUIcHHD$D$H[]A\A]A^ÐHT$"HH3HL$S afDHHHAH[]A\A]A^fff.AV1AUATIUSH`LHA6I$McHP Ht~L5G #DHtH@HtLHHHtRJHBH*tJHK8BD)uJ#VwHA<uHHuLH͜[]A\A]1A^fH\$Hl$HHHHHx8uJHp@HtHHqyHHp@F@u1H\$Hl$HHhfD{aHfffff.AVAUIATIUHSHHHX Ht`L5F fDHA<uHHt>KLCAHHt6HLLI$Hx tECtIG8HT$DfHuI$1Lh M9tH$L@HuHt$L.A|$t&H1[]A\A]A^A_DH$MAD$ _AT$ tLL봐H H@H H@ H H@pH HǀH HǀH HǀH Hǀ(H HǀpH HǀH HǀH HǀH HǀH Hǀ(H Hǀ8fff.H\$Hl$Ld$Ll$HHc,Ht$8HT$@HL$HLD$PLL$X8VHH$D$HD$HD$0HD$ HC@ %-Gv%1H\$hHl$pLd$xL$HĈ@HC HcHDH H`pH HupH}hQHEhHC@ %=a =b2 =` }"1[fDH HѠH HHHHC@ %=H=I~=GuT$/" HD$ T$H(H HHHLLHw "H=A H1tfH HѠH HHHHC@ %=KI=Lv=JT$/ HD$ T$H(H HHHLLHx %"H=A H1tfDH HѠ(H H(H  ~H HC@ %=NY=O=MT$/~ HD$ T$H(H H(H HL0H 4"H=t@ H1:sDH HѠH HHH}HHC@ %=Q=RN=PT$/HL$ B/D$L!' HD$ T$H(H LHLHLHv "H=? HL1BrDH HѠpH HpHhP|HhHC@ %=\Y=]=[T$/HD$ T$H(H HpHhH8LxH" t8"H=> H1nqH HDH HxDH HDH H0DH HDH HpHhHxH8v j"DH== 1p3fDT$/HD$ T$(H HpHhH8Lx "H=Q= 1*pDH HHHHLh "mH=< 1o\H H(H H0HXW j"H=< 1sofDT$/kHD$ T$(H H(H HL0qk "H=B< 1nDH HHHHLc {"=H=n; 1n,H HHHHǀ؇ "H=; 1CnfDT$/HL$ B/D$D!HD$ T$H(H DHLHLHr \"NH=; HD1m7f.T$/HL$ B/D$L) HD$ T$/L HD$ T$(H DLLLHHHHT$H$h` "H=9 LL1lkfDT$/HD$ T$H(H HHpHPhHpHL@xH t!"H=O9 H1olfH H@xT$/HL$ B/D$D!HD$ T$(H DHLHHLH4$ "eH=8 D1kOfH HWpHwhHOxHH[ &"H=f8 1wkf.T$/HD$ T$(H HHpHPhHpHL@xO "H=7 1kfHD$HPHT$uDHD$HPHT$DHD$HPHT$8DHD$HHHD$L"HPHT$fDHD$HHHD$D"HPHT$cfDHD$HHHD$D"HPHT$fDHD$HPHT$DHD$HPHT$}DHD$HPHT$5DHD$HPHT$DHD$HHHD$L)HHHL$SfDHD$HPHT$TDHD$HPHT$8HD$HD$HD$HD$fDSH HH8ŁH Hx赁H Hx襁H Hxh蕁H H肁H HoH H\H H IH Hh6H H#H HH HH HH H ׀H H0ĀH [鷀ffffff.USHHHyHH 6H H}yHEH H@H H} yHEH H}pyHEhH HxyHH H^yHH HDyHH H(*yH H HpyHhH HxHH HxHH HxHH HxHH H(xH H H8txH0H[]ÐHHWhH HHWhHcHHWH)Hu!HcHHGHHHt }H(HH E1E11D$HD$$ H1Ht HHH@H(@UHSHH(BDJDBHJ1HD$$ D$H6-1Ht H9] tHH(H[]HHUffffff.H\$Hl$HLd$Ll$Lt$HXHWhHD"HHWhHWIcH H)H?AMcJ,N,E HEH@HD$(LuH E1E11HHD$HD$1$I~HtHhH|$( HtgH E1A HH$HpHt;HCHPJLkL+H\$0Hl$8Ld$@Ll$HLt$PHXHCH8JLkL+HT$(HVIfDH= L=iH1 zH\$Hl$HLd$Ll$HHH>IHItfH9] CDK1DCLd$L$HKD$Hu|HLH\$(Hl$0Ld$8Ll$@HHH9V tJ |HHBHMHEHnHU HLZZLe[HM@SDCH51 HKLyAUATUSHH(HGhHWH/HHGhHHcHH)HH H E1HcE1HH1HD$HD$${HLh H{IMtHLHA)DHHiHHULHHv1LHIHuHC H)HHHHbHLmLHFHH5OHEL+H([]A\A] HzIH[/ H?xH\$Hl$HLd$Ll$HH(II/eHHHS H9tRHKHtH;tcHsCHk HCHt*LH\$Hl$Ld$Ll$ H("@f.H\$Hl$Ld$Ll$ H(HLWH5. LL1wffffff.H\$Hl$HLd$Ll$0IH(IrIuHH0IUHIEHSIUHCHSIU HS IU(HS(LHL1HHExt@HUxHHCHsHt"LHK1HHExt@HUxHSHs(Ht"LHK1HHExt@HUxHS(HHl$H\$Ld$Ll$ H(HtLHH]K1HHExt@HUxHSXfSH0fHHJHSHD(H$,@@HP [fH\$Hl$HLd$Ll$H(HGhHWH/HHGhHHcHH)HHHHHcH41sYIHC H)H~cE1MtI$HPID$HD(Ht\DhLeHTaLHEHH>L#Hl$H\$Ld$Ll$ H(fDHHH^HLHmH+ Ht@H\$Hl$HLd$Ll$H(HWhH*HHWhHWHcH H)HHcH41L$hXHLkH5+ tHHJHPHT(HtKHB HpH1QpHHJIDLcHl$Ll$ L#H\$Ld$H(fHHlHH* s@H\$Hl$HLd$HHWhH*HHWhHWHcH H)HuzHcL$LWHtjHHJHPHt(Ht9HCHHTSHHCHl$Ld$HH$HfDHHlHHS* sH5W* LHRsf.Hl$Ld$HLl$H\$ILt$L|$HFAuH5%+ H1sHH@HHFL0MtуdHX HHC Ht Hg!,H9tRH[!,HHfHtKH$H$L$L$L$L$HĸHCHu HtHHHLHHD$@KHt$@HHHD$`oH E11ALHD$HD$$ FtHtHHtP с HtHHHHD$8H HD$PHD$PHT$`E1Ht$8E11HD$$HD$sHt$8LL$PH HA$ $eHT$8HHB B% B HS(HD$@@HT$@B H% B H,PCfD{iH H@ HL`(rHHGMHD$8I$H H@HT$PHHT$xAMt$E1Dl$\HT$HH\$hIAIAE9I61LHt$xSHHl$HtT$\HLHhHHXtD$HD$1$Ht$8E1HUE1L$rHHH;L$Pt{HT$PL@HLHPHL$(LD$0ULD$0I@I@HL$(HAIcpHHrQ ցD q IcpD0t D)Q Ht$@HLlH9f.H\$hLIVH5P' 1 oAVAUATUHSHH Ft(HHPHFHDHtLcpLhDfD1E1E1H E1A LH$E1;cHtL M2HEHPHEHD(H@I tNMt3H E1A LH$bHt5H []A\A]A^fH=Ѐ LuHl$LH61LH{>HtHHHpT$1HHlHtHHJHPHT(HtHrBHtH5fDHHfHHHeH5% H1Gmffffff.H\$Hl$HLd$HHWhH*HHWhHWHcH H)HuFHcL$1LPHt9HHEHHCHl$Ld$HH$HHq# XlH5# LHlfffff.H\$Hl$HFHHtTHHPHFHD(Ht)H@ Ht'HHHH\$Hl$1HDdH5N# HlH5+$ 1 l@H\$Hl$HLd$Ll$Lt$L|$H8HGhL/(HHGhHGHcHI)IAU1HcL,Lf H + H5z HE1HHH5;,Lf [H  H5f E1oHATHUSHtDL%:,H+HBHt(HLdukLkiu%t[]A\H H=B ƹX 17\Hx H=B ƹZ 1\SHHHVBtHFH[H@HrF tHHHHL$HBH@ H[fHT$lHL$ UHSHHHHu.fHH{dHHHHHuHDžHH[]fAWAVIAUATIUSHH8Ht$B (HHRHT$ HkHD$D$/AD$ I$LxL|$Ml$HD$ II|7HHD$LH{HHT$HzOHD$HCAD$ % EAAP|$/EKHT$ A t/rHH|51H Ɖ1H9uJ|;S H 1 KNAtHIcDcCHH8[]A\A]A^A_@uSL;%<,A(< E1HT$"LLjL|$IDH|$ HD$H 6HHD$HAD$ %=~I$A AEH@HC|$/HL$/HT$ HL;(|$/HEAAE fHT$ "HiHŋC I$AA0H@HC5ID$@ fH|$ HD$AH 5HHD$HSVHЃp ~(@tCPt>0H5 1/`tuH:,[fD[1QNbHSHPHHKHJHHBH ʁDP SpPuD(H [[Hv~SfD[HvbfDAWAVAUIATIUHSHHHLD$Dt$PHAmU AHEH@HD$LeE1EuzHtE % = bHt$A t.LI|41H Ɖ1H9u 1AAAD;stfHHthD;suC HL$H9uCǃ`@trHt3H9LuÃ8uHLLH4EuH[]A\A]A^A_ÐH!9,EtLH$_H$H[]A\A]A^A_DHsHfDHT$"HLgU IH0_EH8,ADEσAHEHxHEDpfff.HSHHtHH[@1ҾlfHHHHH9HRuHǀHHH[DLt$LcHl$HI~ H\$Ld$Ll$L|$HHAAWHHLHIHHL$IHL$DCD5AA]EeBD1tH]LH\$Hl$ Ld$(Ll$0Lt$8L|$@HHAWAVIHcAUATIUSH8H.H9HLmtH8[]A\A]A^A_fE}IcH9~!9u!f.ډÉ!؉!9uHcH9I|$AƆNAD$ HH|$ HL$%HHЃ(H<8GVHIHD$(HL$HIt$LHL$LD$HHD$JHAD$ HL$LD$A?^%It$LLD$Ѓ(r[LD$HD$AƆND)1HcI<H%HcHELD$(MD$H}EE1O IHtXL()HHcIHH HHtfHHHtHP!9uHHHuI8uHmfM9IfDHcH9UDHEHT$ I4I$HRHIT$H:H>HzH~HzH~HzH~HR HV I|$LD$)[LD$AƆNHDJHD$(fH%PH1HtBHH\$Hl$HLd$H(AԺ%HOHtD`H\$Hl$Ld$ H(DEtE1E11ҹ%HHD$$SHuH5p HHl$H\$Ld$ H(&H\$Hl$%Ld$H(HHUOHItID$H\$Hl$Ld$ H(@E1E11ҹ%HH$SHIuH5 H1X&fffff.H\$Hl$HLd$Ll$HLt$L|$HXHIԉD$EHVHFHt/HHVH\$(Hl$0Ld$8Ll$@Lt$HL|$PHX@HL*M]D#ILZIHt)H9uDH9DIHHҐuME1E1H0DtDHO L AHMHo ILDHIDH1R>f.E(LXMME1HBHHHBuHII;HIXImE몐E1IHELcIL*E#]ILZA׉T$ IMHuYfDH HtHIHHZD;u;CuHsI9t M9LLuBL# ;L$ uEA1LEAIm3HT$HL$HLD$E1HD$D$=|$ID$D$ADM9DE fff.E111d@AȉH1QH\$Ld$HLl$Hl$H(FIIu)ImHH\$Hl$Ld$Ll$ H(fPKHtL!AIMHDAAtHHHL3@HIHHL3fff.SHvH.HH[_+Hl$H\$HFHtIHH@HHFHXHt-HH@GHHH\$Hl$H@H\$Hl$HÐSHHHtSHH@H40gGHK HCHRHD@H@HH@H@ [HH@H<0DDHFt&HH@HHFHHf.HHHHffffff.FSHtHH@HHFHX[DHtHHXDHFtHH@HHFPHtHT$T$ސHFt&HH@HHFHHf.HxHHffffff.HFt&HH@HHFHHf.H(HHffffff.H\$Hl$HLd$Ll$H(HHItKLjMtAE < tiLHVIt$~E u9HySHI$LH\$Hl$Ld$Ll$ H(fDH0UfD%=uIEPuHxuFkHHPHFH|T*JHvHI|$RTDAWAVAAUATUHSHH(HH@D$LcHD$IMALc IE1I$HH+,H9BuHEI$t HC H HqHKH;Tu{ @C AuL#1I|$ Ml$t HHX?HI)1Ml$HHx L`tHH3?HcI9tpHHH[]A\A]A^A_1KHHD$ID$9D$H[]A\A]A^A_f.HHhc f.H\$Hl$HHHHHx t*>t!HHH\$Hl$H>fDH\$Hl$HfAWAVIAUATUSH8Ht$L&Ml$AmD-D$,I|$ t >8HcD$,HT$AƆNHHD$B HT$%HHЃ(H<IHHHT$LcHJHD$ HrH;HD$D@ A?#ALAЃ(BHD$HpNT$,HD$ 1AƆNL<)HcHLNt$,H߃HcID$HT$HZEE11NHHt_H1E1&fDHH IHI?tVIHHtHH !9uHAHHuH?t/E9ELD9DO˃IL9tHID$Il$A@HT$B oI9b%HH׃(H|$>IHD$D@ AID$HT$A B % B |$,HBD$ HD$HT$HHLKL+A AqIyt*NHIl  Hȉ 1H9u 1‰EA)HCHcPL A#l$IHHMHHLkD$ D$ 9D$,~ HD$9HT$HRHT$H|$MHD$LxH8[]A\A]A^A_HT$BHL#f.HcƉAL D$HsLHD$OHD$HCD$&fID$H-HD$HxLT$,HD$ 1AƆN)L<HcHLDt$,H߃HcID$HT$HZHHH@H4HD$HrH<(@@1u!'AƆNfHHH@H4HD$HrI<(@uF@uE1t f, f['I'fAWAIIAVAAUATUSH8D$$HLE#sILpMMtLcMIEHD$(fDM$$MtoID$9u9huHpI9t M9LLuHT$(D;D$$uID$AtLJID$H8[]A\A]A^A_LcIUHT$(@I}"D$LT$L\$LL$ DLL$Hx ILL56CD, Al$A\$D$$HT$(AD ID$ID$ID$LT$M$M&L\$ICHMICD$LL$t0I;C+ILD$LL$>D$LL$ICfDH\$Hl$E1Ld$H(HID$x!H/H\$Hl$Ld$ H(HL$D$HcH$HE1|$HƋ$AD I9DEf.AUIATUSHHFHH@L$LfI4$Ht E111tA t-MHHt fDHʉ щ1H9u1HtHL 1Љ_=I$H[]A\A]HtHIwH5 1CGff.AWAVIAUATUSH HjIIHI}@D$ HE1fDSl$ !HImHEHLC@HHHp9uK Hc~H9u{DL I1AuAA`A@I<8HH9uHHtEtDLLIEEL)xAM HL[]A\A]A^A_@LDCIċKS Dƃ`@tjHtALHLID$y1H; ,ID$HEI$AHtELeIEH@HH>f.HCHfDH{HIEH@밉ǾH5IERfff.H\$Hl$HF HteHHRH,HnHUHt@u*EHEHHl$H\$H@HD%F fHHfDAWAVAUIATUHSHF L6LHRHH]Lct Mt)M<$MtH*,fI9WumM?MuCCA;Ff.Mu9CA;FoHUHcLCHH@y&fD1H\$Hl$Ld$ Ll$(Lt$0H81ALHLpLLHHLL MtAE tpIEHtHPHwHwIE80jCuHH@KCHLffDu#IEfWf. IEHxHHH@HHHF80fDDHLxHfDtqHfWf. LHLQLLH\$Hl$Ld$ Ll$(Lt$0H8HLm!LHLeH\$Hl$HLd$Ll$HLt$L|$H8F t-HH@ Htft xIHHHEHxx1E@uUHUH+PHtHcHPHEHPHUH@H\$Hl$Ld$Ll$ Lt$(L|$0H8LpHUAtIcL E1L$ADI4$HM<$AIXE9uHUHE]fDf3H+H5 1 @AUATUHSHHF ukHEH@H?L E@HEL tH HHEHHEHEHhHEHhE@HH> P HIHPL+H@HH@(@ HHBHHL+kHILjHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChLHH)HHHC H)HID$LnHIEHL+3H5- 1HL kHHPHH@H.HHH+SH HHQHHRHSHH HIH HK HH HIHHHHPHHHL[]A\A]fHHxHHHH0HHcI8HH}HHDHHt$HChHSHt$ HHPHPHPHBH+H5 1HPHtx t&HH5 H1HH@H@HtHH@8HuEHHfffff.AUATUHSHHF ucHEH@H?L HUH HJHHEHL H0HJE@HHDP HIHPL+H@HH@(@ HHBHHL+kHILjHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChDHH)HHHC H)HID$LnHIEHL+H5 1HL H#HPHH@H&HHH+SH HHQHHRHSHH HIH HK HH HIHHHHPHHHL[]A\A]ÐHHH$HHH0HHI@HHHHDHHt$[HChHSHt$ HHPHPHPHBH+H5 1HPHtx t&HH5 H1[HH@H@HtHH@8HuEHHfffff.AWAVIAUA ATIUSHgEHD$IcHH*X f. Hy HT$IEHLxLzHAUHcHPHP~5111L+IHLIHA9HD$H[]A\A]A^A_fDHHHH H*XKH5+H= 1>fDAWAVAUATAUHSHH8FOLmMcIMI9(I}HuH9IUHHL<H*fWf( Xf.EHI$I)L$HEIIcHPHEE@HPHU$L$t-Et(AEH HIfDHHAuHEHPHBA I9WHcH+H*Xf.HHfDHHPH9wHDjHcHEH*Xf.MH<$L$: IHE$L$HPHH*Xf.HpHL7HEHPH@}HpHHEMcL`HEHPH@A)H9HHL~E@t%Et AEH HHfHHAuHEHPHULpH8[]A\A]A^A_@P.HIHL3GHsTHCPCTHPH@HH@(@ HHBHHL+sHILrHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC H)HIELvHHAIzInHIFIcHH55 H+H}HPHH@HHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPCP;CTHH~HH8H[]A\A]A^A_HHHHx fHHHHD H&HPHPHPHBHHt$(HChHSHt$(_HHHH H*XcHHHgfffffffH?HfWHH)A HHHH H*XHHHH H*X6HHHH H*XHH+CHHHHEH@HCJHC WA1EAAEMAFHHxMH*Xf.H<IEHEH EMcH@HHHHHHH H*XHPHtx t&H H5H1rHH@H@HtHH@8HuH5; H=.1uH5+H=1`AWAVAUIATAUSHHF  EAE @unIUIEH+BHDz1LHEAIACHSHLczHcHT$@O|=MtL)H9 H$HtLL+L$\$@D)~HcLLHItAI$M)Lp$tƅHEHPHXHPAD$ %DAD$ $t ƅAD$ @t!tE1E1t1LHĺ|$_AL$ HDD$0;I9HD$pDD$0tLHHDD$0H H9Ht$pHDD$0DD$0HL$pA HH@H$HAD$_fHT$`1Ƅ$B@$H$BLHIANƅH躅DH5 q H1?~fƄ$qj1LHxAD$ fH$Ht$p"HDD$0D$_DD$0fAD$ IL\$8H@ @@LLHL)LT$0L\$(SHHIHL$HHLT$0L\$(MALLT$`Dt$PE1ILd$HLDH|$pHL$8Ht$pHLH)脗HT$pLb ߺHt$pzHT$pLL豜HCHH$HchHI,,A|$kH;l$8HML$PHT$HHHD$LAL$H$AHL$@HPLD;l$lCIt(LcPI9tHHH)HD$@I, H)HTHT$@HCH|$_HcIHD$8t AG HL$8AHLLH)貃 D13fHT$`ALL肃D|$_ILd$HLtAD$ t+I@@@uHL$@ALLHL)5UH|$pHL$@Ht$pLHL)迕HL$pHa HxHT$pLHI$HxtAD$I|$]I$IW1IT$IHRHPII$HRHPAG tH@X@IG$tƅL}HuIcHHIGMwvAD$ %_DAD$ u|$_t AD$ $tƅAD$@t!tE1E1t1LHQ$;E@} HKHELuHHt$pHDD$0dwDD$0HT$@LHL)rHD$pYH¹HH)LRHD$ptLHM=I|$H+xAd$ I|$ZHEHD$8HPB ;B$UB HPHHcB HHHH)HB@T$lHpHDp P$HT$kP$LhLx L`(LX0Lh8HHT$@H@HHXPfHP@HHL$8HEHMH@HMHEH8HXHP$;E@HH5k L1AxH脑H@Hl$HHD$PLNHCHAMHL$@HH|$HHchHD$HD$L$$Il-L9HAAPtyD;|$llHCHLc0Ot5D)t)H;l$8HctH|$8HHHL$0HL$0HL$8H$HZHt$PH|$8gH$HD$89IL;\$8Hl$Ht3D$@H\$8LI+\$I$D)HcȃH HJH|$8Hc胗$tƅLmHIcHHIEI]r HHT$0L\$(詬HT$0B L\$(H]LH舚H]DD)unH$HtNI)LHLLT$0oH$LT$0LL\bHl$HH5i 1HAvLLH^o4L+$HcLLT$0LH)HxHLH*oH$LT$0HxUSHHH/HuF Ѓ %=tuF %=t&H趓HuF@uGHCHH[]fDHHHPH9tHHPHE` HuF@tH wH!+HH[]H51 ufH\$Hl$HLd$Ll$Lt$L|$HHL'HG L)HHPHch HHHH)HhE<NHU8E1Ht%=LzLmXAE < NLuPMHD$AE IEH@HD$ImAF IHT$H9PM/HI#EHLHނLIH pI~H脙1LHooID$HPIT$HHCH5f.Hu`H;uhfID$H8IT$HHCHH\$Hl$ Ld$(Ll$0Lt$8L|$@HHfH57f H1GsDLLIYHSB#t~HU`H;UhxIEHHU`L4HE@LmXL<LxAE < RfDHT$"LHH_L9HLu`/|IEH@L9AE 4,HE`IUHHE`L4MOAF = %AF L9HtH I9.I7AFHM7+n'fDLHM/HI#EHmHFHHE`蝗LIHmHH9E`HH9UhHHEhHu`H1HU`LHsHtNL0fDHU`HfDLLH͊LH]HzfDL @LuPMtA~LHl H$IHEPHE1E1y1LH@HyޫIAELh@IHU`HP0IH@8YHcEHFHHHE`I7kIHHp@VlH5` IH1,@H\$Hl$HLd$Ll$Lt$L|$HHGH/@" LeLULmtwDp#AAD$ % = _E1AE < H IHEHCLHH\$XHl$`Ld$hLl$pLt$xL$HĈfDDp#E1AtLT$ (LT$ HCADp#^fE7D$<EAADD$;1E1E11LLHLT$ D\$E1HD$$:HPHLT$ LEEMhI6H H9UHCP#`4EtfHuHCILHI$HxID$DXE1f(MH tI6F tHLT$ LT$ Hzft-ELHLT$ D\$(WHLT$ D\$(%E1E11LLHLT$ D\$(D$HD$$HLT$ D\$(JD$<E@HCE1Dp#{|$;HLT$  IHHUILH@Hy{E1IHE1yLH'LHhIAELh@IH@8LT$ LuHCILHH5u+LH1lPLHHLT$ D\$(H@HH@HL@(MH]M LƹHLD$0LT$ D\$(uHLD$0LT$ D\$(H7 LHFHLT$ D\$(/ufDAEtIUHJIUH|t ~ |$<AD$ I$HPHT$HIt$AD$ tHLT$ L$0}L$0LHHJnI6LT$ DHLT$ kI6LT$ fDLLLHLT$ I6LT$ HT$HL"HLT$ HT$HHLT$ PP"HLT$ SI6LT$ :LH諤HH sD\$(LT$ 2fHWhSHHH;WpHWhtHH+CHHC[H@賣HShDAWAVAUATUSHHHGH/H"@LuHHHt z E1@ A‰ȃT$$tE0tAt H觅AMSAD$I$HP0HHT$(|$$vHQeI$>THLHa8@HpHWL4qLH谑HIeHChHH;CpHCh^HH+SHHC H)HIGHHHEHH+耜H5[ DH辊HEH+u(HUI9tLH5AF@LuHCH+HHĈ[]A\A]A^A_fHRHILbCf.HHHH=DHEC|$$AF t/|$$1LH_nAV 'LH蝋NЃIH@HHD$8u AF|$$9MD$DHD$PHHD$xHL$`HD$XH+L$DLHT$(H0HI$uƃI$H@HI$ AG@H+HC H)HHUHT$0L}|$$AG xA.H|$8uFEu>IHJHBH)HPv*HA(H;PHGHrI蔋IGHL$0HCH H@HHHHRDLH)IH@HIOHL$HHT$H2@.H\$hHHF<v1F<v*F< v#H=X @KH:f.Hu@uH\$hfIHJHBH)HPHHHmHl$0I,H sIHt$PE1IwHL$XHHPH+T$PFIIGHT$xHA1H9s HV ,H1}fPH[HH0mD$DIHD$PHD$8!fD|$$tIEuDIHxu:I$ u-HB <fuHt$(HpHt$(HkI$HHmHHD$(H1H_EuH|$$AV  %_AF l@L+ImMuI$ƃE1E1t1LH袞DHH Hyt(IOHL$HHDHR: +IHhIGHD$Hf @1ҹLH|AV 'LH{LH赜HH*kDHHChE1E1t1LH谝UAF ]LH]IAF <,„u% =t1LH|IMH@HD$PD$Dt0H@HHHPHr(HH_HHkHHD$(zH1H]MtI$uCH+t/|$$HCHLHH <@E|$$"AF  ,_AV @H_HqHrIIGNfDPLH8ЍJ% =@HT$`Ht$HHH\$h|$$HuLHHjkHHD$(IVB LHҚAV LH讃LHYAF L t8I$(I$ gH^P HH1xWHBf@ 7|$$lH1HZSH>4H R LHO H߄LH1xf.I$HxE1E1H߀HD$HD$HD$$]HHFH8H0HHxHH@H0F@ugI$H@0HD$(5LHAF HHz~H@Hp(bLHfLHWAV (H輁@HwH@fMff.AWAVAUATUSHHHGH/HD$PHH8H HHLjP"у[ɉL$`K@@L$x~L}HH+AG IH@H$IGHD$8H|$8| HT$8H$MD$_HT$@AMxD$_`ƃAG t"H@@@uAMƃ@AeƃHL$PH HQ8HBsAU\HHHT$hrHR8HHL`H$A9D$0HT$PB@%D$tEt$(E#D$dD$|1AW ɋt$dH$L$8Dl$tLD$8Et$d$L$@1+$EL|$HL$Mljt$d$LIL$H9>LcyAL$I)IcL$L|$8I H9L$@L9|$8DT$|HL$$T$|AD$t1HL$H1A tH@R@8L$dI$LH$DL$|HLD$8L$HL$HHT$LH $HL$@P{HD$hHT$PHB@tHR8H HЁH |$_AD$ tƃ|$`@D\$tAD$(H+EۉD$4T$4E1|$4AA!HC EtH)IcHH9CPD;CXAD9l$4McIAID9l$4HHwLHEIL$HtDAAtEA)LcL|$8HT$@McL)I9LLHHLD$(sHL$HLD$(A dH@@@SLLH U=HEAIH D9l$42DT$tEHD$P@AteHT$Hz HHx Ht$HgHhHIT$H:tBRPIT$H HcRAL$H9I`ID$HtAL$Hc@H9t1Dl$tL$dH+$E$DD$tL|$HET$x;S@}H_f.|$`uHEH8HUHHCHHĸ[]A\A]A^A_f.@#uzHXHFH83L8HC H)H[HHHfsH@fDHL$PA@ƃD$_AG f.HPHCLC@uHD$HH\$BfDHD$L HD$HEHEHH([]A\A]A^A_fHEP"u@# ;x#1HM+H52jH1ftfDHCL`(MHHbH@L`(B"NB#HXAHD$L HD$HEHEH@AuEu0LH6LHHEHD$C@tHHieHD$HH\$HEH]HH([]A\A]A^A_f. L@LHHHHL#JE@t HHUI,$HCL#[]HA\@H3HHfH\$Hl$HLd$HHWHHJHWH,HW H)H~jL`HhHC@" t5P#xh҃`t%L#P#HHHHCH4ȃ`R1L#HCL#Hl$HH$Ld$Hf.HHLfDuHpHHHsTeHCP#rffffff.H\$Hl$HLd$Ll$Lt$L|$HhHWL7B"@InM~IAD$ M.IT$Btz?LELHAA]HqHSL#B"@Ml$u EHHHIE@Il$HCL+H#@AE tIUBqM9JE1D$E1L9AD$ jI$HHHL$ IT$AD$ HHDD$DIe ADD$Eu,AE  IEH@HD$(MuD$AE D:L$5EE1LH+AE IEHHHL$(MuE1LHH5E@I/HCL;HH\$8Hl$@Ld$HLl$PLt$XL|$`HhfDHJHWM~MfH, L9E }HEHPHT$(HuD$AE HWf@ IHAH@HD$(MuXHT$("LHhIHL$(fDH@@@KHHDD$GM E1DD$IfH@@@D$_H@@@D$+ID$kfDHH}PPHHmPjHT$ "LHDD$gHL$ HDD${1HH)HL$(fE <„CI$H@HD$ AD$ AtH@DH@AAH@@@e HT$(LHsdI9HT$("LHDD$DL$fDL$IDD$DHT$("HHfAI6DHT$(H"HcfHT$(HrfDM.M'DM9HT1LHDD$^EAD$ DD$fDHT$ LHDD$eDD$HHDD$%E DD$Xf.HUB I)HDD$3bDD$NLHUDD$8H\$Lt$HHl$Ld$Ll$L|$HHHWL'B#I,$Mt$Ml$HѨ@t HLIt u`x|L9tLHHlCE@*Il$HCL3Hl$ H\$Ld$(HLl$0Lt$8L|$@HHAE rƃB#HфyM}AG A} EA"t.HDD$DDD$ HHDD$2P DD$ʃ t`AtMx Mo<ΈMLhP AEfHHMLH HDD$n2DD$HEhAG umIGH@HHCxt@LHHD$0$HD$IE.f.LHM]uHSvHKA#H[IGHHCxt@HEIO1HH0zJHIEL#H>HHA HHHD$?HD$P H\$Hl$HLd$HHGL'HPHGH,I$HTE@t HHJI,$HCL#Hl$H$Ld$HHfH\$Hl$HLd$HH/HG H)H~JHCx#xXHP(HCLeH4HFH8tfHI$HCL#Hl$H$Ld$HHfHHBHHP(HCHLeH4%HEf.H`?H@fUSHHHWHz"x2HO H)H~]HhHB(HtqHEHCH+HH[]HO H)H~[Hr(HhHtnH.&HH#.HEDH¹HHAHSHhHB(HuHRHCH끐H¹HAHSf.HRHCH4널H AN HAHFVH HVHRH H9sDHP@ H9HHwH@ AWAAVAUATAUHSHHH D$ HtjfBLjH@L4M9wJf.IM9v7AE L@f(H\H,H1kfHHHH H*XXHfff.HHHH H1HHH1H#FHHHu #HHtH;P@uH@f1ffff.HtcH~t\LNNLDIHt(H HHHHHHuIMtIHFfDH\$Hl$1Ld$HHHHItH H63HtH$Hl$Ld$HfDL9rI$ H9sL)HD@Hff.SHHHPHt/HvHPHHPH)SH@HH{HPH9@c 1[fDSHHHt@1HǃǃHHH[@L1ɺHHfSAHH@H@AHH[fDH\$Hl$HLl$Ld$H(L HAMt AT$ A;T$r&pAL @IH P BHAD$ WKHTmIHBHZDj H\$Hl$Ld$Ll$ H(ÐAUHG' ATALIUHHHSHLhL^YHJDI)Ir"HHHHHHH0H)I9sHJDH[]A\A]fff.UHSHHHtwFt-H H9tCHPH9t7H8H9t+H;5*+tDEP;EX}!HUHEPHHK HH[]H+EPHH[]fffff.SHHHHtlHHH@@ SP;SX|HHD$!+SPHD$HKHSPHcHH[f.fHSHtJ%H;PH[O[fffff.ATIUSH Ht3DHHufDHHftCuGtXHHuI$ HtOD] t!fD؃H@H|mOuH]H\OHtHfKOIDŽ$ DƒIDŽԈuI$ O[]IDŽ$ADŽ$IDŽ$ IDŽ$A\H\$Hl$HLd$H;HAwH$Hl$HLd$HNfHNHDH$Hl$Ld$HAVAUIATUSH HnH>HIMI*fWf( AXf.J4D$ $?LD$H) $H*Xf.L4H1HILDHMeI]twE1@HHtNHHHIHIHHt/HJHHHH HH1H1L!L9uHHHuIIL9v HH []A\A]A^LHH*XHHHH H*XH5&+H=fA1CDATHIHI UI1HHHSI1HHL#fHJHu%DHHtH;P@uHHH[]A\ÐHHtNH0HHPHHHJHHJHSHHSH8tH;SvHHH[]A\~>HHT$H $@H $HT$DH\$Hl$1Ld$H(HHHItH HF+HtH\$Hl$Ld$ H(DLHH5H HHHHD$;HD$fff.H\$Ld$HLl$Hl$ILt$L|$HXHIu01HH\$(Hl$0Ld$8Ll$@Lt$HL|$PHX~ tH Hs*HHuAEI$HHEA$I$HEEHE I$ HL:C E%E S tH HI(fy DAEHEf<A$@C < %HHPHCHtHVLH\$(Hl$0Ld$8HLl$@Lt$H1L|$PHXFfDAAAF v/H5 L12Hf.E &DH IIIAG@HIDHHILAWH)HEAwAWH<0H34AFdE u % vLHHLAA AH) EJcHLuAFH-@o)AMIpƒQ~̃tfuIt$ LHIt$(LHID$ It$0LID$(H1HHCxt@HSxIT$0p~ID$8ID$8IT$@HH hIt$PLID$@Hc1HHCxt@HSxIt$XIT$PHL;1HHCxt@HSxIT$XfDIt$(LH1HHCxt@HSxIt$8IT$(HLID$8fDAT$HIt$ LHHHCx1HtBHCxA|$LID$ uP1It$8LID$@Hy1HHCxt@HSxIT$8IT$PHH =ID$PIt$@LH0HHCxt@HCxDIt$8LHrIt$ LHNLLHH H*XH5H19H5V+H=/11H\$Hl$1Ld$Ll$ILt$H(HHItH H\HHt$HHl$H$Ld$Ll$Lt$ H(@0)I$ HHLIH*HuLL1HID$xt @IT$xIU MLAV M$AN$Hu1.IFE(LLAF(HuG'IFHuLL4'IFE,AF,0fff.H\$Hl$HLd$HB HItL%=HrHH 1HHExt@HUxIT$H$Hl$Ld$HDHrHtHHRHt+ID$C % = uAd$ @tPC % = tYIt$f.HrH H_@ID$Rf.% w3HHHHID$ff.AW1AVIAUATIUHSHHtH HHtH[]A\A]A^A_('HD$I@HuLL HID$x1Ht BID$xIEEAEHE IE Hu Ht*}gt$ULIE }cIEt HEHtHx0tIELLLP0HmHP(&IEIHEIEEfAEEAEEAEEHD$H[]A\A]A^A_ID$x1@H\$Hl$HLd$Ll$E1Lt$H(HHItH HkHIt#LH$Hl$Ld$Ll$Lt$ H(P%H HHHII%HuLH 1HHCxt@HSxIHuLH1HHCxt@HSxIVHu0LH1HHCxt@HSxIV0Hu(LH1HHCxt@HSxIV(Hu LH1HHCxt@HSxIV Hu8LHZIF8HuLHG1HHCxt@HSxIVELHAFE@AF@HuHSIFHfH\$Ld$HLl$Lt$E1Hl$H(HIItH HHIt#LH$Hl$Ld$Ll$Lt$ H(PQ#I$ HHLHI$C0{0xxMS0Hs8LEEE0C4HEHE HE(EE4{4 Hs@MS4LHE8HE@CHLHs`LEHCIEICJEJCLELHCPHEPChfEhHCXHEX1HID$xt @IT$xClHspLHU`LEl1HID$xt @IT$xHLHUpL򈅁CxExC|E|HHHHHHHH1HID$xt @IT$xCKHLHL<EKCjfEj4 HLLH{1HID$xt @IT$xHLHLf?HLHL爅1HID$xt @It$xHH1HHVH@II)H9HIFH<:HHII)H9HIFH<:HHII)H9HIFH<:HHII)H9HIFH<:HHII)H9HIFH<:HHII)H9IFH HH HPHPHPHHHHHHHHJHHHJHHHJHHHR HP H0H0H0H0HJHHRPDDffff.AWIAVAUIATUSH8HT$Hc~DLf8^@H H*X^#f.^# HL5(@HcAԃ.DvH5HcL1.Ic LDLLHcI4H $_H $HDHcIHTH8H[]A\A]A^A_fKLLHcI4H $ H $HDHcLLI4H $H $HDf.KLLHcI4H $H $HDHcAĉTcHT$LHcI4H $1HIExH $t@IUxHTHT$LHcI4H $1HIExH $t@IUxHTHcHT$LI4H $w1HIExH $t@IUxHTfDHT$LHcI4H $51HIExH $t@IUxHTHcHT$LI4H $H $HDPKHT$LHcI4܉ $1HIEx $t@IUxHTYHcAĉTHc1I4HtLHT$g.HT$HDCKLHHcIHTI4LH $H $HDHcAԉD)KHT$LHcI4܉ $1HIEx $t@IUxAHTYHAĉTGfDHcAĉTDKHT$LHcI4܉ $1HIEx $t@IUxHTYHcIHt9B#@t3J 2=D1DHDf.HhIHDHT$(HD$ HH1HHrHtL,HT$ HBHD$(Hp1HtL,HT$ HBHD$(Hp 1HtLz,HT$ LHB HD$(LHp(HT$ LHB(HD$(LHp0HT$ LHB0HD$(LHp8HT$ HB8HD$(Hp@1HtL,HT$ LHB@HD$(LHpHHT$ LHBHHD$(LHpPHT$ LHBPHD$(LHpXkHT$ HBXHD$(Hp`1HtL+HT$ HB`HD$(H1HtLf+HT$ HHD$(H1HtL?+HT$ HKLLHcI4H $H $HD|fDCKLHHcIHTI4LH $H $HDHcI4H4HtfKLLHcI4H $?H $HD+fDCHcHAĉT$ TIHtPH=*HT$H $'HT$H $BH=*HT$H $,HT$H $vD$ HTenKLLHcI4H $|H $HDHcAĈT"f.CHAĉTCHAĉTfDSLHcI4HT$HT$HDf1HcI4HYHT$LH $H $?KLLHcI4H $H $HDHcIHTbf.KHT$LHcI4܉ $HHD $t@Y6DKLLHcI4H $DH $HDfDHHHH $Ht$HHHT$Ht$HT$H^H $HHtDHHHH H*X}H=}*HTHT$N%HT$u HBH=Y**,+(+HvH=J1++HSH=G1H5*H=j1fSHH1 y@w6H0H@<HHLy9 y@ v[HsHHtF f%f=it"H*HH5HH1 $HfH~ v&HHx ttZHt @Hf1HfH~ vHHx ttHt`H@SHt@V t8HH@(@tPHH@HRHDHt;H[fDV HowHHc HHj [H[Hx[Ha[HI[HpHPHTttHHTH[H0H[HEH[u(HH[HEÐH}N [VHHHHS ff.ATIUHSF H%= t$E H5L1!fDH8HtHLGHHxdLcɉ1KH@HHH9tCH9uH7MHvL9I,tLULHEH/HHHH9Huu[]A\ú<HLHKHxHbD4ff.HSHt'F u%tHC[@ f1[@C fffff.SHHHt[F uYtLHC@tBHH@(@t5HH@HIH|Ht HHH[fD1H[HT$^C HT$fff.ATL UHSV H ƒHKAA LHHH}P t HHH;KtoHnHfWf. []A\HH}S ƒRHKA EHKH[]A\[1]A\@tsHHtHS0H@HpHHtHJHNHtH@80:HHx)u% u0\ HHxHH-0f.HHtOF tHHt?HPHv`Hu;t&HfWf.H 1HÐ HHHxHDHtHF80@UHSHHC Ѓ t4tLu:HSB „ttH[C Ѓ ủtDHH[]fDHCHt H@HuHH5HHP1Hf.1ҹHHHtx tH5HH1H@HtH@HmfH5*H/H1nfDHIH)I)HI9r9H9s0Ht~IA>uk@A@HDH|$0LD$ HpH~Lt$ II)HIVH9PLkLOt5LL}AL+sHtLuHLpK DC 0AE"HLd$0LyLH1@@LF?jLc{ HtLuHInH9h~H{LpK @HLLA;LsAFfMAF %=P]1LLhHHD$軱AFHIH@(@HH@HIHDHHHHL$LcxBD8 K MdLHIUDHL谸裛Ds bfDAu)Au )LtHLt@HtHE{ HHL"HkfDL`E1HD$LHT$L`N$ H5m*IAD$AD$)ID$HT$@HHHH uH@x@0H@(Ht$H\H;H|$tLC=Ht$HLH\HII)HtLeLLtH%@HZAHD$>#HLaIHHLAփ ^LAvc H AHHLAI:D c Ht IH@HEIFvI A HL HIP tLpL;sHIGtIHRHUAW zK HF@ pf.rLL8HHL$ LD$,HHLD$,D$ D$ K T$,A|~DHLd$0LMAI!%tDIVLDIM)_LHHzHHmHL3c @HLd$0LlLHc 'H5LAIHJc HDLLzAW TLsH= 1Effff.H1HtF ut&HH@Hf.sH@HT$"HD$HH\$Hl$HLd$Ll$ILt$L|$HXHHF JHH@HD$L~HLC HHPHT$LsLD$E1E1Mt_HE K 1 "E1E1L9LLHFLH9(|f.HDtVLLLL$ٖLL$MtLHl$0H\$(Ld$8Ll$@Lt$HL|$PHXf.1@1L聖HT$"HLsHT$IfDHT$"QHIHD$1L5fDI$@A@ I$ ELLL^I$ IHL蘡AE IEHT$E1L@LD$M}MHT$HYHD$L=I9sfJI$ LLI$ IHLAE tHIELD$E1HPHT$MuWHT$"LLLD$IHT$E1-HT$"LLLD$IHT$E1HT$LLE1TLD$IHT$IHT$LLE1,LD$IHT$Iffffff.H\$Hl$HLd$Ll$ILt$L|$HxH9HF =  I$ HHDDu A C AD A1HLIt$HHF f%f=iW H X*H H5L1P HUJ s Ѓ AHEE1HID$xt @Ml$xHEu HPAуL$$t)HHPI$@HCR$P@HCHX8HHPHHPAF HCD$D$Iǃ|$$h A LLHD$A  M/|$tu3D$D$ HCD$D$LxIHD$D$D$ qHLPA$A$E1E1t1HLM7M9/MHCxIHx@@mtIE@m L+kI@l%txIUBmHSHR8HHDHLBHHBH HRHIHLHHH|HLLHEI1ݠ|$$u%AE IEIML@HLL葫HC@HHHHH0H(L藒HHHHʁHt1HHtI$@LAuHHHHHHHHHHHCLL耽LLHD$pHT$HL0I@l%xXHpLHCH@HC@0E11H5{L1蚸H53{L1艸1~HCx LLļLLHD$(贼H9D$(gfff.USHHHtZ~ t|HHtXHEHHHEEE HH}HH[]1H[H]@Ht$eHt$H@>tH;}H11肞UHSHHHHtxHEHHEEE HHȞCP;CX|H0CPHSHCPHH,M H[H]@Ht$eHT$Hfff.H\$Hl$HLd$Ll$HLt$H(F AԩtlH%LnLrF HFHBHIVH9PH{LL蚤HHSIuHH@oC u_C %= H$Hl$Ld$Ll$Lt$ H(H@HH9tH*H51ȵDHHH$Hl$Ld$Ll$Lt$ H(fD5fDHPc H AHHHIH{tOHCD@Eu7Hxt0HH0Ht%FtHHPHFH|t H$@HHUHH0HtHHHHHH`HHpHtH c HHHHHHHH HHJHHHJHHHJHHHJ HH HR(HP(HHH H1HC L0C H$Hl$Ld$Ll$Lt$ H(ɛHcdfffff.H\$Hl$HLl$Lt$ALd$L|$HXF It% = jD9AHwMMIN<8AGMD9.DHHH AF 0D AAF 'H5PyH1NfDIAIH@AF % @AF A?tIH@f.3IIP HP IIP(HP(AG@t"AGIIJDINDfDH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXDH1Jc HAAt"`AApAHDHc4H@HLLMSI1LHDHL$LD$LL$|HL$LL$LD$AI)A M|AV %_AF  AF IH@A?IH@sA@6HLLMIL1HDHL$LD$LL$|HL$LL$LD$yI)MAWt4AGI8HcHcLD$I<1I40ĝLD$AIFHHHHIHIFIH@@IFIFI@1Ax@))>fyHL$LD$Hc訠LD$IHL$fDIH@X<LHLD$訸AF LD$!H5_DHHT$HL$LD$_LD$IHL$HT$|DHHT$HL$LD$^LD$IHL$HT$H5uDH1@1LH胍H5qHELH1H\$Hl$H(HHHtIHEHHEEHE HHH\$Hl$ H(@t$\T$HfDSHڰc HXH [fffff.F_|H\$Hl$HLd$Ll$HLt$L|$HHF DA<H( HHD$HELx(HChHH;CpHChHH+SHHHFLnLHHPHH@H2HHH+SHH HHQHHRHSHH HIH HK HH HIH HL$H HHPHHYA}LH#wE %HUHR(L9I׺BLH豧HItH@muH@8H@ f%f=tHH蠴H HINHPH@HH@(@ HHBHHH HT$H+SHHQHHRHSHH HIH HK H0H6HvH4H3HH)HHPHH'HH觕HE %AAD$ E EH{%L HE HB@u0:tGH}H\$Hl$ Ld$(Ll$0Lt$8L|$@HH鸬BIHEJTHJDH\$Hl$ Ld$(Ll$0Lt$8L|$@HHÐH%HcHDA6HEHx t HHЭAE %@=@HEHHp(tfDHUBHH|H]HuIEHx t8[]A\A]1A^Dt[HI9wL9IGL)ȄNu6MքuC HsL|@C @tH+zc H{wH D[$HKH\$Hl$HLd$Ll$H(F  IHDnE6C CHL;SHEHHEHCHEHCC DkE EE uI$HEI$A$H\$Hl$Ld$Ll$ H(@E tgHLxHHEHR HP C % E Hc H@ &@HLZfDHCHH5<L1tfH\$Hl$HLd$Ll$HLt$L|$H8F IIEĩ a<M!H{Ht$HHxtCtH+xc H{kuAIEHMM}LILfHLzHLjHCB(C %DC t'tE1E1t1HH|fDEy C@H\$Hl$Ld$Ll$ Lt$(L|$0H8fDHIUHPHLhLsoDHH`YMC _S vHH{ffD:C HHH\$Hl$Ld$Ll$ Lt$(L|$0H8sdH5M*H=gh1jfDH\$Hl$HLd$H(F H !Ѓw3H HHcH fDHH$kX$HS %_C "C t7t.HHH\$Hl$Ld$ E1E1t1H({H\$Hl$Ld$ H(@%=rHuF f%f=it~HL*L$1HHOH59HLH1dq@ fD$19C $@HHyC DH>IH\$Hl$H(HH$V$HH:]HHl$ H\$H(H\$Hl$H(HHHtKHEHHEEHE H\HH\$Hl$ H(fD$~$H@H\$Hl$HHH\C@uH\$Hl$HfHHH\$Hl$HaH\$Hl$HLd$HF HIԩ &Ѓw.H /FHcH HHUC D_S HS L`t4t+HHH$Hl$Ld$E1E1t1HixH$Hl$Ld$HDtHuF f%f=i~HH*L$1HH+MH5t7HLH1n@HHTC 6C fDHHUwS DHPYIH\$Hl$HLd$HIH'TLHH7HHl$H$Ld$Hff.H\$Hl$H(HHHHtHHEHHEEHE HE7HH\$Hl$ H(Ht$HT$H@H\$Hl$HHHHxH\$Hl$H6@16HK HhH\$Hl$Hfff.H\$Hl$HLd$HIHRLHHJHHl$H$Ld$Hff.H\$Hl$H(HHHHtHHEHHEEHE HIHH\$Hl$ H(Ht$HT$H@ATL UHSV H@t8HsFtIA LHHhHtKP uHuH[]A\HKHpHH9uHn[HH]A\QBfHsf.H\$Hl$HHHHC@uH\$Hl$HfHHH\$Hl$H?]H\$Hl$HHH4C@uH\$Hl$HfHHH\$Hl$H\H\$Hl$HLd$Ll$HHF HIԩ t t7M@t HH@I$HCHl$0H\$(Ld$8Ll$@HHfDЃ%=u HT$HHsMIt HD$I$L;ktOC F<&HT$H HBH9AH{L|XHHT$HPHSHD$C ,DC  E1E1t1HHrf@1HHHHuHHF f%f=iH yD*H H5C2H1qif1҉L$M1C L$]fHHHaHT$HHHO1HHs=C HHT$6HT$H_ 7HuF f%f=itCHC*L$1HHFH51HLH1hH51H1hH;6Ifffff.H\$Hl$HLd$Ll$HLt$L|$HXHIF % =HT$PL|$H ILHL$FHL$ITIH9QM9H{IULLVHLhC %DC t!tE1E1t1HHpH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXDHLyL|$LvDHH_M9L|$ULcLMff.H\$Hl$HHH?HC@uH\$Hl$HfHHH\$Hl$HXH\$Hl$HLd$Ll$HLt$L|$HHF IIE% =HT$DwNH IHD$JT H9QM9H{HLLTHL`HHSH@C %DC t EyC@u%H\$Hl$ Ld$(Ll$0Lt$8L|$@HHfHHWHHAHD$JT H9QL~LHH^M9HD$AIHMnL9hH{LLSNHLpC %DC tUtLHHH$Hl$Ld$E1Ll$Lt$ E1t1H(hD%_AC ul@H$Hl$Ld$Ll$Lt$ H(V'Dk DLHHW3DHH`EHHH$Hl$Ld$Ll$Lt$ H(gfH\$Hl$HHH6C@uH\$Hl$HfHHH\$Hl$HoPH\$Hl$HLd$Ll$HLt$H(F  IIMM?{ @HIUH9PLsLLLLC.HLhC %DC t\tSHHH$Hl$Ld$E1Ll$Lt$ E1t1H(fC _S ukH$Hl$Ld$Ll$Lt$ H(v%fHHUIf&HHCHHH$Hl$Ld$Ll$Lt$ H(eH5&H1]U1HH1SHH8H|$LD$dH%(HD$(1>HL$HHHH) EHD$(dH3%(uH8[]ÐcOff.H\$Hl$HHHXC@uH\$Hl$HfHHH\$Hl$HNH\$Hl$HLd$Ll$IH(MHALLHHnDHHl$H\$Ld$Ll$ H(f.H\$Hl$H(HHHtSHEHHEEHE HHHCHH\$Hl$ H(H$Ht$ Ht$HH$@H\$Hl$HLd$Ll$H8HH9VmLfHcAD LMPIEHIEAEAE LH@HCMeHcSIEHPIEH@AU D AE HcKLAD t D)AU H\$Hl$ Ld$(Ll$0H8@L`HcKHAD t́J HT$HT$L1HT$HHH`H HHQ[H@HHtTHHH@@ LfHvo65fIfHSHu1[F uHFHtHHyHy~HcL 1H HHuAHHt2H9PuL9tH;3*tHp~t(H2HH[f/H)cHHv[Bffff.AWAVAUATUH SHXHt$(-H5U HHH.*Hދ8['"1^HHHl$@HHD$(HD$8H H H H QHo`H H HHH Hǃ ǃ(ǃ,PIHH!HH5>/*HH8ǃ@ǃDwH17HHH8H8H8HH@H8H@H8H@H8HH HHH HH5Y-*HHPǃXǃ\wHR7H`HPI?HPHPHH@HPH@HPH@HPLH G HXH` HHHHHR!HHHH GHHHHHHHHHHHHHHHHHHHHHHHzH HHHHFHHKH HHHHFH HHHFLIt MHLt2L%h+*L(UHL@]ZH@HHLd$0.DH@ H߉HHVHD$0LHH߈9HLH!)HHLH)HHLH(HH1HtHVHHLH(1HHCxt@HSxHHLH(1HHCxt@HSxHLH߈HT(1HHCxt@HSxHHHHH        H1HtHLUHHLHS'1HHCxt@HSxHLH߉  H H H(&H(0LH߉04488H &H HXI1HH ':H H9I1H:H0 H!I1H9H1 HHHǃ|HǃSH H HAH LHMcLxI7%HCx@HHSxH NMLl$ ANLLH%HHCx@HSxAFtJ H HI4NL;l$ uO4AFuILHHp@HHUDHHCxt<@HIQM,$IL%LLH+=I+1dH LHH@H HH$HHHPLH$HPHXLH$HXH`LH$H`HhLH$HhHpLHg$1HHCxt@HSxHpHxLH;$HxHLH"$HHLH $HHLH#HHLH#HHLH#HHLH#HHLH#HHLHs#HH(LHZ#1HHCxt@HSxH(H0LH.#H0HLH#HHLH"HHLH"1HHCxt@HSxHHLH"1HHCxt@HSxHH LH"1HHCxt@HSxH H` LH_"1HHCxt@HSxH` HLH3"1HHCxt@HSxHHh LH"1HHCxt@HSxHh HLH!1HHCxt@HSxHHLH!1HHCxt@HSxHHLH!1HHCxt@HSxHLH߉H K!1HHCxt@HSxH LH߉ H(!1HHCxt@HSxH(H0HHe,H0H8LH 1HHCxt@HSxL-"$*H8LKH@1Ht H@H@LH@QHHHHHHHPHPHXHXH`:H`hLH߉hllHpHǃxHǃHpH1HHCxt@HSxHLH߉HǃfHl1HHCxt@HSxHHHH*fWXZf.H$HDHcH$HH*fWXf.HHHH6 Hǃ HLH1HHCxt@HSxHH LH`1HHCxt@HSxH H LH41HHCxt@HSxH HǃLH HH H HH()1HH(tHPHSH0LHH08LH߉8<<ttxx||ddHHH@3H@LLMMPPTTXX\\NN``hhHpHpllHx1HtHmJHxHE1HHHHx HtLHHx IHLx tHHHH6IHpLH߉pHh1HHCxt@HSxHhHHH1HtHIHHHHHH1HtHGIHLH߈H 41HHCxt@HSxH HLH1HHCxt@HSxHHLH1HHCxt@HSxHHLH1HHCxt@HSxHHLH1HHCxt@HSxHHLHX1HHCxt@HSxHHLH,1HHCxt@HSxHHLH1HHCxt@HSxHHLH1HHCxt@HSxHH LH1HHCxt@HSxH H LH|1HHCxt@HSxH H LHP1HHCxt@HSxH H LH$1HHCxt@HSxH H LH1HHCxt@HSxH H( LH1HHCxt@HSxH( H0 LH1HHCxt@HSxH0 H8 LHt1HHCxt@HSxH8 H@ LHH1HHCxt@HSxH@ HH LH1HHCxt@HSxHH HH LH1HHCxt@HSxHH HP LH1HHCxt@HSxHP >>| | Hp Hp x x HX HX H H H H H H H H H HǃP ƃr ƃh HǃX H Hǃ` t t Hǃ H@" E[2H@H F EA12EH 2H @H LHL J4(31HHCxt@HSxK.H LHL J4(1HHCxt@HSxK.II(uD$(EPCPHc}X{XETHCT H*fWXf.5 O1DKPIHCHExJE1fLsHHEHLHN<J4Y1HHCxt@HSxK>HcCPIL9}H}pH+}`HH. H*fWXf. } 0HC`Hu`HUpH)HHHSpHUhH)HHHShH)HHH*fWXf. HH,E0C0Hc}4H{4H*fWXf.j 0HcS0HC(HH*fWXf.4 Hu(HH.,HPLH-HPHHLHHHHXLHHHHXHHHQHSHEH+EHHHHH@HLHC E@C@EDCD(HC8HhHhHHhHHLH`HEHCxHǃHCHHHH H HHHHHLH1HHCxt@HSxHHLHHHHHHHHHHHg1HHCxt@HSxHHLH;HHLH"1HHCxt@HSxHHLH1HHCxt@HSxHHLHHH 1HHCxt@HSxH HLH1HHCxt@HSxHHLHdHH8LHH8fH@1HHCxt@HSxH@HǃHHE\HǃPHE1C\<f<HXO+HXH`LHH`HhLH}HhHpLHdHǃxHp HǃHǃHHǃǃxHǃ8ƃ8HpHpn=H H HHHIHtL8Lt.Mt)LH;H5HMLL1H LHn1HHCxt@HSxLkTH Ht$0HHt$0HuH1HHI~?HHtH@HxtHL3;LHE CPCTHChHH;CpHChLH+SHHC L)H:I1AD$tI$HPID$HtHsHHIL3HEHHp CP;CTHHǃ xHHH*fWX).f.oH<$3Hc H $HH*fWXf.*H HH%fD$(Ht$0HH Ht"pu@H H)HXH[]A\A]A^A_D$(Hǃ Hǃ OHG&H9DEPE~E1(DHKHSPHc҃@HHcEPIL9QHEHH HJHtӋxűSP;SX|HHD$SPHD$Hǃ@H H!Hǃ HHHH H*X+HHHH H*XHHHH H*XSHǃ0$HHHH H*XHHHH H*XHHHH H*X!HHHH H*X:H& LLH> IHHHH H*XWHHHH H*XXHHXHp=HCh@-HH=h1.P-HxH=l1-N-HZH=v9ƹ,1-H5!*H=l+1--@Hl$Ld$HH\$H(HIHtkHHHHCC uMt LHHHLHHHl$H\$Ld$ H(HT$&HT$Hfff.H\$Hl$HLd$H(LMI$HHI$HAD$AD$ LH% A D$ uLH\$Hl$Ld$ H(LHHl$H\$Ld$ H( fH$Ht$RHt$IH$kH\$Hl$HHH_C@uH\$Hl$HfHHH\$Hl$H%H\$Hl$HLd$HHHIt/LHHHHl$H$Ld$HfDH C@tHH%fff.H\$Hl$HHHC@uH\$Hl$HDHHH\$Hl$H$ffffff.H\$Hl$HLd$Ll$ILt$L|$HXHH H9C HH@HD$LsHE fHEHHHL$LmHT$Hu[HL$11E1H9HLSHtH3DH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXHC u 1Ɓ 3I$@F@!I$  wLLD8I$ HHL~C HHHHD$HL$Ls1H9t0HLE1z/D1LE1cfDM9AH9LLE18AfHT$"HL#:HL$IfDHT$"HL9HIGHD$1L-=(K1UfHD$L5(F  HHPHT$HvK L 7HfHLL6I$ HHLC HHL$H@HD$LkHT$" 9HT$HsD$C HL$HT$LL1L9tIHE1|$gHT$HL$2HT$"HL8HL$IHD$HT$"HLr8HL$IHD$HL$HT$LL1YL9uIHjffff.H\$Hl$HLd$Ll$H8F AH@ @ t,c ߸H\$Hl$ Ld$(Ll$0H8HHztʉ t=HHsLl$H@HD$LH Ht8HHT$HP{Ll$H޹HLP7HEWHuHtJF f%f=it/H*HH5AH1-1C OHHH5(H1-H\$Hl$HLd$HIHHL15#HH@HEHCH$Hl$Ld$Hff.H\$Hl$HLd$HF @Hu!H$Hl$Ld$Hf"u 1fDHLcHHPLHtHHCHBI9rIL9vA<$fyK qffff.ATAH 1UHSHHH9F uEHD$t pB HT$HH)S  H Ht A HHsHzH >H9sr>HFy HH9ȐsZ8yHT$H|$HHHHztCH{,HHkHD$HBHT$HHHPHK HBH[]A\HH@H[]A\HHRHT$ @1HH fDHT$D#4S HD$DHHHpDH{H+zc H{$H\$Hl$HLd$HIHHLHH@HEHCH$Hl$Ld$HH\$Hl$HF HH t1u6HHc Hl$H\$H@1C H*H5H1)@H\$Hl$HLl$Lt$HLd$L|$HHHIAt|B SHH@HD$LbMt]E1AF U t A;1 uiD9t1HHHL$E1LHHEy E@H\$Hl$ Ld$(Ll$0Lt$8L|$@HHH@@@H@U Dx@AAA O@DHT$LHC/IHHAD$ txI$HHHL$Md$'fHH .HT$"LV1IfDHHMU 1 HT$"LH 1HL$IfDH\$Hl$HLd$HIH2HtUC t'HH@HEHCH$Hl$Ld$HDHHLH$Hl$Ld$H{0C t HC@1H\$Hl$HLd$1HIHHtPC t"HH@HEHCH$Hl$Ld$HùHHLH$Hl$Ld$H/C t HC@1Ґfffff.H\$Hl$HLd$H(B IHtNHHHHL$HRHLC ue H\$Hl$Ld$ H(fM HT$"H6/HL$H@SHHF t(HHFHRHT$H1H$H[D@tHT$".HT$D%3H[ffff.H\$Hl$HLd$Ll$HLt$H8HF @ @tv  ЃO)H*HH1fWHHC @tHzHT$ 1HH@U}-HMH͉1f HcD  9}IpxHD$D$IWHL$H Hu*f%=HHdHC@|tLkIEL MtTAD$  u_AT$ Av'I$H@ID$HtA*IEHp(Ht LIEHp H_FtHHPHFH|BLRM9-L :LHt@HcXHP HH!HH9s"HHHH8I Hȁ` H9wH$dH3%(H([]A\A]A^A_]H9'EID$HD$|$;x@LL-AT$ AE1E1t1LL]1LLHGHWH7HHHʋJ u H7HJ HGH7H@0SHHHwF f%f=it+H)HcHHHH5w[1gL$7L$HfDH\$Hl$HLd$HF HЃ  tkuL%C CHHIHƺ=AL$ I\$LH$Hl$Ld$HÐ tcHHH@uxm%CC HyHyhHy8uTHY@HcH [uHB/{fDC fD#H fDH\$Hl$HLd$HH/LeL AT$ L w LHHEHCH+Ld$H$Hl$HHffff.H\$Hl$HH/HHuCHEHCH+H\$Hl$HHfDUSHHHWH/B"t6tt,f+uHC H)H~!H HHEHSH+HH[]ÐHHHHAWAVAUATIUSHH/HuH]F HH@HD$hHmLkHl$HE PHEHhHD$HH$LpHT$HB tI$@@@I,.D$0HL)HD$PID$@"D$\t&D$\tD$\t LD$\AL$@ML$xH[HHS8I$ HHLxAGtt AƄ$AG|$0%IAGAƄ$HCHHIT$H4HFH@(HHD$`3|$\C@HDŽ$D$DDŽ$L$ID$LH$AW|$0jL)T$ T$ HHDA uND IAGAƄ$HCHH!|$\8 I$XI,.LLHD$0HD$P*@M,$Ht$`1LHt$`LHD$`M,$@HL$`A @uO @%A HHXx7HcӉHt$`HH)I$ HHVH HH9uHT$`I$H(LI$HM+l$HILhHT$`HBID$HL$`HHRHIT$ HHRI$HL,I$PM,$HHDŽ$D$DDŽ$ Ht$HH$"LrH$IHD$h[fDH5L1Hĸ[]A\A]A^A_DH< t< t< t< t< tf/fDH.)HÀ; tHLguAWHL$hD$PAA HHL$8D$|uL$P HcHL$8L|$8IIHDI9r II9s A> uII9sIL$0LLH) L$DHID$ L)HIILI]uH@< t< t< t< t < ufDHH9rHl$8tY|$0 H9sI; Iff.LLAH )HL)H9MH$M+t$H+$IHA)D9t$|/H9ED$h//M,$D$xA;D$@$(H$M,$LnH5xLL|$\M,$ ID$LHPID$HIcHC@IEI]I$ID$H9II9A> LH)ڀ|$0  L$DHLHID$ L)H@II]|$0AH:)IH9!; tHLHT$ cHT$ HH9rf.AGH9f+< < < < < DID< t#< t< t< ftII9A< uLH)1@AGI^=H9@HfDHH9#DB u@LLLUIDH9HcIHII9$ADB tI9% f.LLLI8DL$0HHH)L L$DHID$ L)HIAI]M,$D$xA;D$@L$M,$|$\ID$M,$H~H9@L$8H9D$P\IT$ HcL)HH9b|$0mD|$DLt$8IH9IUIHLHEHtHLHD$ aHT$ H5L1蹴El$DI$ fDIuHt$HHt Hxu LDAI]IErPHLHH$ID$hHI;D$pID$h8LI+T$HID$ L)H~jH$IHBHIED$DDŽ$HLiLLLoII1LLLJI{HD$`HDŽ$D$DDŽ$|$09Aw(T$P„ɉT$|HL$8HHL$8I$ Hl$PHHD$pLMIDM.IAHT$HD$MHD$HL$PLLH$HPM.!AG t AƆAGLt%I_PL9tHL$PHL)H,+H)HD HD$PIGHL$0HLHc L$DHH)HIF L)HIImA(AMfIIMuA9o(LIGHHc0HcPHHrH9s;Lt$pI@ L)HLLLǹLD$(YLD$(IL$0LH)LD$( L$D#LD$(I뛐MIGHHchH,+H9l$PHl$8I:LLLIHT$`B@'|$\rID$ IcL)HH99HH*Xf.>HL$`HI}HI\HqID$I$HHMHl$PCID$ IcL)HH9ELLl$0Ll$`M$ 1f.1ɉLLHEHLtHHUA9Ll$0AOleIT$ HcD$PL)HH9L$PLLLID|$DHH\$8A LHH )DLID4N46LH)uL$0LHH)L L$DHID$ L)HLLLIII]|$0t3$LL臼HgHt$H"1LJLH$>fffff.H\$Hl$HLd$Ll$H(HGhH/LgD(HHGhHG@"tbtMcKHBH9s8H HHJHCH+Ld$H\$Hl$Ll$ HH(HMHHJAVAUATUSHHHGhL/Lc HHGhHG@"ILgtDIM9vLI$HI $IHHI9rHCL+HH[]A\A]A^fDHCHPHCH,LL)e HM9IUHHE % =!HELpILt$HE*E H@B@HEN40IL9rfDIM9A}y1LHǮHnAEH ·)LIIEH9s 0@2HHH9rfDHUJT2H9sf2@0H HH9rE Ml$%D@E uQIl$@@HT$HHLt$IE Ml$@tHHJH8MLHHoH0HIŐt6H01ɉHSH@ %@=@tHCJ@HXHFH8t HHELt$HHH@fH\$Lt$HHl$Ld$Ll$L|$HXHGhL?Hc(HHGhHGHHoHD$HGLeHPLuHGAD$L,LLHL)HM9vB1 fDT$IHI6T$T$LHߍJL$HM9wAD$LsutI$HPHLHmAE@t LHH+l$HHcILhHPHCHl$0Ld$8HLl$@HH\$(Lt$HL|$PHXfDLHHcH@PLHH@HtiHEHChHH;CpHCht;HH+SHHL;H5ӔHߺH?fHPHCh@fDLHHHJ|ffff.H\$Hl$HLd$Ll$H(HGH/@ LeHf%f=txLIHC H)H~@AD$@t LHծHELmHl$Ld$Ll$ HHCH\$HH(fHHHHL0IH\$L|$HHl$Ld$Ll$Lt$HHHGhL7Lc HHGhHGILgHPHGML+Il$L,IL$IELafǃM9r\1HI$HtHƹHHD$HD$HUHHHIHRM9sTfǃLcfPHHL$HHL$^H@HID$HChHH;CpHChL+cHID L3jH5tHHλELculHEHPHLHAE@t LH+McKLhHPHCHl$ Ld$(HLl$0HH\$Lt$8L|$@HHHH]HcH@HXHCh/HHHHRDHHAW1AVAUATUSHH8HGhL?HPHc(HWhHcPHHGhH@HHoL$Lg@@LmHCI)I@"Nt\HuF H@B8)΅ID9HcIDI$HCL#HH8[]A\A]A^A_DEoL9L ME1*x@HcAIDHIt*IL9r-I6F tdH@B8)΅ID9|MIL9sEoHCH+HH8[]A\A]A^A_fDH I$2H߉L$DD$ LL$(LL$(DD$ L$tfH߉L$L$DH@H E11AHpP$?@ tQH@H ~E1A1HHpP$ HHf.IaH@H -E1A1HHpP$HHDH߉L$L$fDHCIl$H+H@AUATUHSHHGhL'HcHHGhHG@"HH_t>LkM9H HsHHCHELmHH[]A\A]@HcUPLHcEXH)HHH9|#HHaI9r@H3HHHI9sHELeHH[]A\A]I4$Hsm>H\$Lt$HHl$Ld$Ll$L|$HHGhL?LoHc(HHGhHHoLeLuAD$IFIL|$ I9HD$I$1E1LpHPAHJH9C 7)ʉT$4LD$ L+D$IDDD$,D)ET$0tvAD$ @u} HT$1Dt$8D|$DMILd$HIMHfH3L芭HHD9uMLLDt$8D|$DLd$HDT$0L)HEEHD$ tOMcMI*XZf.Z ILIcHD$ LHIt$Ht$0t~D;|$4Lcl$0I$HHIT H;PuHPL$4tKI$t$4IHH1HHHIL$HHL)IITHHH9uT$,tCHcT$,HH*X{f.{ IcHt$HHI|$CHCHcH,Hk@"k5E1EtsMcMy I*Xf.M Ht$ JHѻAD$@t/CPD;CX II4$HI0AuJlH|$ HCH+H@PL HH@HUHEHChHH;CpHCh#H+kHH(L;HCH"t0҃tt HH5H H2HCHH\$XHl$`Ld$hLl$pLt$xL$HĈf.IvF HDpEH@E1@@DD)AErHD$HD$H9D$ >H0HHD$F HLpEI$IcHPHHChLHHHzDEHT$ EnIcH4HuAD$@"H?EHT$ AIcL$fDI4$AHI謖AFI$It$Lcl$0HH+JHHI9KEJ HH IL$LjI$LhDI$IcLpHPAH HESH@H ͲE11AHHpP$\@ |H@H E1A1HHpP$&HDxHHHH H*XLLHH H*X H I$HPAAD$4Hx1LH5D$4DL$,HD$8EtJLcl$,MI*Xf.ILPHt$LHHD$8{HCHcH,Hk@"'HC IcHT$H)HH9{H|$H*D$X&f.&oIcHT$HHIt$HAD$@tKCPD;CXEt7ILd$ IHDfDIuHI8uHLLd$ HD$HlI$Lcl$0LhD;|$4EaNIT$II$NMD$LhD$0H ؍pHcHDH Hu|$,HcD$,HH*X f. VIcHt$8HHI|$ѵH|$877f.HfHsAI$LxG|> fDID$C>HcHtHuAD$@EnHӞEID$IcLd$IHHDIDIuHI5HLLd$cfDD$4EtMHcD$4IT$HH*Xμf.μMcIcI H4HJ<I$H@HIT$+T$0LH诫I$LHPjHx H1YH<HINIT$IEIcAwHL1HHJ<HfDHHHH9uIT$XIcHH*Xf.J HHH<HL$ݴIt$I$HL$+I$E)IcHPEtEDHH@H E1A1HHpP$HHA|H5)DHHl$`H\$X1Ld$hLl$pLt$xL$HĈ鶓IL+kHt$ HDHlIIcHHkWLLHH H*XoLHLD$˦LD$iHHHH H*X/LLHH H*XeHD$HT$HH H*XDH+,DHHHHH H*XHHHH H*XH5")H=m1贼fff.AW AVAUATUSHH8HGhL/HcHHHT$ HWHT$ HGhHGHD$(L;l$ IHl$ D1HLe躵IHEI9vNHLHUH覫E1E11LLHD$Lt$$@Ll$(H5̕)H1L迌fELLHHt`D$OHT$(H|$(HBP"I6L|lH\$XHKIEE1@#PLLӴHH@HtYH@HHX(H~H/mHLVH^HWHL6H*9LLLHBH\$Hl$HLd$HHHWH/B#@umHuHELeHt$(N  u:z"H8IHEHCL#HH\$0Hl$8Ld$@HHH51HuHL$ HT$(E1肽HHPHEHCH+Hf.@ HPH@`HPIHEHCL#H[fE1E11HD$HD$$HufDHD$ Htx t H8HEHCH+HfDH@HxtDXEuHHt$(/ffffff.H\$Hl$HLd$Ll$Lt$L|$HHWL/B"D$4zD$4HSE1B#@HChMeHcHHHL$(HKHL$(HChHCHD$8MuAF  z"HD$(H+D$8HE*HL$LcHCL#H\$XHl$`Ld$hLl$pHLt$xL$HĈfD$4E1B#@7ImIuMuE  uUz"F 9HPDHH蝊H HMfHDENMIEBfDH5&HHl$`H\$XLd$hLl$p1Lt$xL$HĈHSD$4AgDDt$4EHHHCI9gIUL`HPfDH5!k@Hl$(HI9eH Ll$@I1DHPDLH蔉HIDHEHI9HuF uʺHfHl$(HI9DH Ll$@@D|$LAIǐD$HD$E1D,$HUE11LH} I*HH@HEIHPFH9v\IvCIv8Iv-Iv"IvHL9H҃HHHݗHu1LHHH+MHUHJE %_ D E HC L)HLLH趈IfDHHz@HHtHELmHPHHxHUH@D2Be 1fDIAIIII~HL9HHbΛHI4$F HHhHEALH}guHE1LHoH=BDHHHEH\$Hl$HLd$Ll$H8H/HGLmHHPHGAE L$'IEH@HD$IEH AU uw LHzAD$@HC H)HHHHyHHELeHl$ Ld$(Ll$0HHCH\$HH8 tHH@B@u;H@B@o Ai1HHڌHRf.LHxHHrH HHIqAU @HT$"LLH譍H\$Hl$HLd$Ll$Lt$H8HGhL7LoHc(HHGhHGHHoHPHGHuL$HMF LLHH)H0AD$ u\@Lst LHL)HHcIL`HPHCHl$Ld$ HLl$(HH\$Lt$0H8LHMtƃAD$ HL$.HL$L?Ht1HsvHL$$AWAVAUATUSHHhHGHWL'HHHHD$@HT$ H@D$8B@P fT$>@#~!I4$F HH@+D$8ID$XID$I,$HD$0Md$AD$ @I$H@HD$HMt$E HEH@HD$@L}D$/AD$ tH@@@D$/1E tH@@@E18D$/D$_tsH HT$HLHH IHLH+o|$_AE MIEMH@HD$HMuD$/AD$  |$/HT$HLHɁ 號LpID$>f%frE A |$_HT$@LHDD$Ɂ KDD$LxHHC@#|$/T$XKEuD$@D$XHL$HHc9}L$XHcEMLD$@I6LLH^_HD)D$T^Mt LHbT$TT$8Ht$ HHc^aHT$ B@t HH舉HD$0HT$ HHHCHHh[]A\A]A^A_f.1EDD$HD$X.1ED$X7LHT$HI46E1HHeH7D$T9tHUBbE<ffz@DID$@DHT$@LHXH IH_LH%b|$_ZfAE IELH@HD$@AD$ M} ]d@HT$@"HHkIhH@H }E11AHpP$藒@ H@H |E1A1HHpP$aH@D$8HCqfDHT$H"LHӞI|$/HT$TLH zH;@H@H 5|E1A1HHpP$đHHD$8HCHT$X1LHDD$T$XDD$f.HT$H"LHMD$/IAD$ HT$@"LHL踝IAD$ yHEf@ HL$_HT$@LH{[|$_HtD$T=1H赅HL$@IHE1HHL詑M}H\$Hl$HLd$Ll$Lt$HHHGL/HW@" HHMeH,@#A|$ )I$Hx gLHHDpEDt$AD$ t'H@@@uHT$LHwDt$DH@1B@McHHJ0\E@tdHH„Ww>} HE@H.HEHp@L9t Ht H\HEMtAD$L`@ImHCL+HH\$ Hl$(Ld$0Ll$8Lt$@HHDH IEHCL+HfHHߺ xxE1E1.1HH`MH@H xE11AHHpP$|@ t>H@H xE1A1HHpP$JHH@fDH@H }x1HE1AHpP$ HHE1|$?0E <HcL$XHcT$\HLL$HLD$(H$y`|$3tM Mt LH WHL`HPHCHHHh[]A\A]A^A_AD$3HD$(E1HuF HH@HD$4HuL}F H9@E H@D$?B@HT$P"HHLD$FLD$ILuAF aIH@HD$HIFHD$(AF H@@@IHxD$3HHuF HlHHLD$ WE LD$D$?A ЉL$\~|$4D$449Nƅ)ʅT$XUH|$( T$8HLD$ːLD$.I@H IPHHCHHh[]A\A]A^A_fDLHu^H@H }qE11AHHpP$ @ tnH@H KqE1A1HHpP$چH@D$$DHT$\HL$XHHLL$T$\LL$YH@H pE1A1HHpP$lHH蜇D$$HcH1pLD$HT$H"LH賒HD$(T$49O*L$41IщT$Xt@D$3fDH1HHqLHeIHHTAE IEH@HD$HIUHT$(AE t*H@@@uHEHxD$3jf.D$3E <[HE@ NDE D$?!HHLD$LL$kRH;D$PILD$LL$HD$PHfDD$\1fD|$8EE utt6% =t1HHoH蠍E $Ѓg„@%DE A|$ I$@HxI$Hp@H9tHt H~QI$EHh@I$McLh0HcT$$I$HP8JDH߉T$LL$rLL$IċT$wfDD$8tA|$Sf.HT$H"LHHD$(LHߺ lE1E1x1LHHE1tЍJ% =1HHlnH}1HHnHUB H^H1%mHH5`H1H\$Hl$HLd$Ll$H8HGL'HPM,$HGH,AE t IUBuc tH@@@LHtHHHOE@ulI,$HCL#Hl$ H\$Ld$(HLl$0H8DtcIEHPHT$IEAE tH@A@uHHHwxDHHvLHO`HT$"LHT$AVAUATUSHH HGH/HPHGL$D$LuHAF ILl$H@HD$IvAF tH@@@HC@ f%fl@tWHT$Huf.H< Dt< t< t< @t< HHHT$uHL$LD$LH~D$t^D$LH-pAD$@u[HC H)HHHHUmHHELeHHCHH []A\A]A^HLH`AD$@tLHuD<0u HHl$@H\$Ld$HHl$Ll$H(H/HuLeHEF t@HVBt6E1HH[{HHHBHCHJH HUP t HHAutYHuHF LhteHH@HPH8I9HDHUHCL#HH\$Hl$Ld$Ll$ H(DHƺH|HuIF uH~|@HEP f@H\$Ld$HHl$Ll$H(H/HuLeHEF t@HVBt6E1HH;zHHHBHCHJH HUP t HHAutYHuHF LhteHH@HPH8I9HEHUHCL#HH\$Hl$Ld$Ll$ H(DHƺHx{HuIF uH^{@HEP f@H\$Ld$HHl$Ll$H(H/HuLeHEF t@HVBt6E1HHyHHHBHCHJH HUP t HHAutYHuHF LhteHH@HPH8I9HOHUHCL#HH\$Hl$Ld$Ll$ H(DHƺHXzHuIF uH>z@HEP f@H\$Ld$HHl$Ll$H(H/HuLeHEF t@HVBt6E1HHwHHHBHCHJH HUP t HHAutYHuHF LhteHH@HPH8I9HLHUHCL#HH\$Hl$Ld$Ll$ H(DHƺH8yHuIF uHy@HEP f@H\$Ld$HHl$Ll$H(H/HuLeHEF t@HVBt6E1HHvHHHBHCHJH HUP t HHAutYHuHF LhteHH@HPH8I9HMHUHCL#HH\$Hl$Ld$Ll$ H(DHƺHxHuIF uHw@HEP f@H\$Ld$HHl$Ll$H(H/HuLeHEF t@HVBt6E1HHuHHHBHCHJH HUP t HHAutYHuHF LhteHH@HPH8I9HNHUHCL#HH\$Hl$Ld$Ll$ H(DHƺHvHuIF uHv@HEP f@H\$Hl$HLd$Ll$H(HWL'B"@/Il$Ml$HF I$txHVBtnH¹ EHAAytHHSL#B"@Ml$u EDHHH`E@7Il$|P t HxGuIuHN L`fu HH@HHHL)bAE@ImHCL+Hl$H\$Ld$Ll$ HH(fHRHGMl$It$H,DHƺH8uIuIċN OHFf@ RAHS1B"@E0ID$OHHfhfDHHh HtI$P fff.H\$Hl$HLd$Ll$H(HWL'B"@'Il$Ml$HF I$txHVBtnH¹EHAA9rHHSL#B"@Ml$u E4HHH]E@'Il$zP t HxGuIuHN L`fu HH@J HH$?E@ImHCL+Hl$H\$Ld$Ll$ HH(HRHGMl$It$H,DHƺHsIuIċN WHFf@ ZIHS1B"@U@ID$]HHfffDHHf.H{rI$P fff.H\$Hl$HLd$Ll$H(HWL'B"@?Il$Ml$HF I$txHVBtnH¹&EHAA pHHSL#B"@Ml$u EdHHH[E@WIl$DP t HxGuIuHF L`HMHPHCH uN)H5~IHHp HH?IHHDID$HfDHHbHHa1fI$P @H\$Hl$HLd$Ll$H(HWL'B"@Il$Ml$HF I$txHVBtnH¹&EHAAykHHSL#B"@Ml$u EDHHHWE@7Il$uP t HxGuIuHF L`HMHPIHH?IHHi8E@ImHCL+H\$Hl$Ld$Ll$ HH(HRHGMl$It$H,DHƺHHlIuIF _H*lMHVH5jHHHl$H\$Ld$1Ll$ H(<DID$KfDHH_HH_1fI$P @H\$Hl$HLd$Ll$H(HWL'B"@'Il$Ml$HF I$txHVBtnH¹$EHAAIiHHSL#B"@Ml$u E,HHHTE@Il$xP t HxGuHL`MIuF HIHPHH?IHHH66E@ImHCL+H\$Hl$Ld$Ll$ HH(DHRHGMl$It$H,DHHjIMWH5eFHHl$H\$Ld$1Ll$ H(9ID$ffDHH]HH]<HiIHHHI$P fff.H\$Hl$HLd$Ll$H(HWL'B"@Il$Ml$HF I$txHVBtnH¹"EHAAgHXHSL#B"@Ml$u EHHHRE@Il$_P t HxGuIuHF L`HH@HHHI4E@ImHCL+Hl$H\$Ld$Ll$ HH(fDHRHGMl$It$H,DHƺHgIuIF oHgdDID$ufDHHf[fDHH[CI$P @AWAVAUATUHSHHHH$HGHPHGL4H$HC tHSB{ 0@HH@HD$8HLHPAF % =ILhLl$8AF I^ EDt+F,+ufHA9uAF @uaH$L0HEH$HUHHH[]A\A]A^A_fHUB#ZHHPHLH1AF@tLH*ZffDHH1C DHT$8LH3PHAF Ll$8  N,+L9HL$0IH\$ Lt$(AHD$HD$HL$1ILLAiL)LH>XLd$0H=5H=H=w,H=w"H=wHH9HH=M9IIl@HHPHLH2DAF@H$L2<H A 6HbHAFH]HHEH]HHH[]A\A]A^A_Ð1HHkdHH1HHQHHSHHD$M9IH|$H\$Lt$(H\$ NH|$H`Lt$Lt$IILHAiH)LHVH\$0HLHHEII9wLt$AHL$LHLjcAF AF @t LHkWH $L1HEHMHHH[]A\A]A^A_fH HT$8 HHnfDH~.rHLHHH9u؍THD9HTf.HH9u_L|$MLt$HD$IfDLHAiH)LH>UH\$0A$II9wML|$A$HT$ALLH$bAF %AF f.LHVAHH9HHH E1^HD$I@HLHKAF@uL3+H $HC lLHUf.ATUSHHH/HuLeHEF t@HVBt6E1HH{_HtnHHBHCHJH HH[]A\ËP thHHAuF tXHvFuNHPH8H9HDHEHCL#HH[]A\fHEP tHHAfDtcP umHuHF HHPH8f.HEHJHEHCL#HH[]A\D@ tHuV uztutPP 8HHPHHHp~H_HuHEV uP HHfHuf(F H $f $HHRHxTHHpHPH8H9HDHEHCL#HDHH0_HEdHPHEHCL#HfDHH6HPH8HyH9~Hufffff.ATUSHHH/HuLeHEF tHHVBt>E1HH\H*HHBHCHJH HH[]A\@P t HHAu@ HuV 'P „ HH@HIH6HPH8H9FHBHUHCL#H3HH]HEP f@tzHuHF HH8HPf.HCHEHCL#HH[]A\úH ]HuHEV P uHHcHuf(F ~H $c $nHpFE1HHKYH*HHBHCHJH HH[]A\@P t HHAu@ HuV 'P „ HH@HIH6HPH8H9FHGHUHCL#H3HH(ZHEP f@tzHuHF HH8HPf.HCHEHCL#HH[]A\úHYHuHEV P uHH|`Huf(F ~H $]` $nHpFE1HHUH*HHBHCHJH HH[]A\@P t HHAu@ HuV 'P „ HH@HIH6HPH8H9FHFHUHCL#H3HHVHEP f@tzHuHF HH8HPf.HGHEHCL#HH[]A\úHKVHuHEV P uHH]Huf(F ~H $\ $nHpFE1HHRH*HHBHCHJH HH[]A\@P t HHAu@ HuV 'P „ HH@HIH6HPH8H9FHCHUHCL#H3HHhSHEP f@tzHuHF HH8HPf.HGHEHCL#HH[]A\úHRHuHEV P uHHYHuf(F ~H $Y $nHpFeIEf.-4'f.sezcH@HHHHE@uT@I,$HCL#Hl$H\$Ld$Ll$ HH(f?HH+E@tf.HH]01HHE@tHH0Hf(f(w1 ^1fTfUf(fV€H $Hw@H($tofWYLH|(AD$@ulHC H)HHHH%HHELeHl$ Ld$(Ll$0HHCH\$HH8fDH H@f.LH]-L H$47I(LFBƃ$DX0 @ff.H\$Hl$HLd$Ll$Lt$L|$HHHGHWL/h HHL$ʁheL=)E19IuF tHVBHMtifWf.ALH&AD$@HS IEH)HHPL`HCHHH\$Hl$ Ld$(Ll$0Lt$8L|$@HHij(L=)L5M<fDH>6fWf.AH$/$H5LHHl$ H\$Ld$(Ll$0Lt$8L|$@HHZfHHH# LH +L=)E18e@L=Q)L5M;IL=a)E1:5@H A H4HtFAD$H+uHEHCH+HHLHU AD$@uLeIuF LHE*ff.H\$Ll$HHl$Ld$H8H/HGHuHPLmHGF L$HUtpHF@tfE17H3HHSH+B"@Lmu AD$HLHAD$@t\LH)OB t HJAutYHuHF taH4LH#AD$@uLeHCL+Hl$ H\$Ld$(Ll$0HH8fHH -T+3HT$HH@H\$Hl$HLd$Ll$Lt$L|$HHHGL7P"@MnM~M@ L$ AD$ I.IL$ALHE1Ƀ|$ ]AHAL 0-HHSH+B"@Leu AE&HLHAE@PLmHCL#HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHE tHMAH yE AD$ 0HSB#<fu uE1B"@uDI$LpE HEH@HLHL I1ƃ|$ ]IEAE@taLH!T@HpHOM~MfL,SE 0Jt$ ILLHAE@uM/HCL;HfD<fu u E1B"@ufI$LpE HEH@HLHL I1ƃ|$ ]IEH AE@t@LHME {HH7AD$ 0p@HE@IL$fA W@fIL$fA _>LH] 1HHK,QfD1HHfD1LH,I 1LHIM'I.AD$ |H\$Hl$HLd$Ll$Lt$L|$H8HWL7B"@_MnM~MAT$ I.IL$A.HELHAA)HHSH+B"@Leu AEHLH AE@ LmHCL#HH\$Hl$Ld$Ll$ Lt$(L|$0H8E tHMAP PE &AD$ 0HSB#iI$L`E HEH@HLHL!.AE@LHXHJHWM~MfL,E 0sHCILLHp dAE@tIDI$L`E HEH@HLHL! AE@QM/HCL;Hf.HHAD$ 0JfLHE HE@.L1HIQL1H#)ILH 1HH(wfD1HHcfDM'I.AT$ H\$Ll$HHl$Ld$H(H/HGHuHPLmHGF L$HUtpHF@tfE15H&HHSH+B"@Lmu AD$HLHAD$@tRLH"EB t HB@fuH@@@uIHaHcLHAD$@uLeHCL+Hl$H\$Ld$Ll$ HH(@H8 fDHE@fDHUHufffff.H\$Hl$HLd$Ll$Lt$H(HGH/@ %TAAHuLeHUF t9HF@t/E1H$%HHHBHCHJH HP@B t HB@uH@@@u{H+DHPH8E9HNHUHCL#HH$Hl$Ld$Ll$Lt$ H(HH HD,HD4HfDHUHu[H\$Ld$HHl$HH/HuLeHUF t=HF@t3E1H$HtvHHBHCHJH H7B uBHbHPH8HEHUHCL#HH$Hl$Ld$HDHB@tvHUHufDH\$Ld$HHl$HH/HuLeHUF t=HF@t3E1H3#HtvHHBHCHJH H7B uBHHPH8HDHUHCL#HH$Hl$Ld$HDHB@tvHUHufDH\$Ll$HHl$Ld$H8H/HGHuHPLmHGF L$HEtxHVBtnE14HHK"HHSH+B"@Lmu AD$mHLH AD$@LeHCL+HP HHAxF txHvFun1H91H9)HcLHFAD$@t LHsLeHCL+HHEP tHHAfDP GHD$HuF KH$$iuD$ZJH HEHCL+HH\$Hl$ Ld$(Ll$0H8@@ dHuV tdP „ {HH@HxHH9Bvf.}fDH!HuHEV sP HH(D$HuF H($f.HE$1LHf.D$D$1f.$)HcAD$@fLHAV@t4HHRHfxHH9Pv-HrHHHHH9J|1RHH HEHHHHH9JrfHufH\$Hl$HLd$Ll$Lt$L|$HHHWL'B"@eIl$Mt$HF M,$HF@L=EHAA7HHSL#B"@Ml$u EHHH E@}Il$HCL+HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHAE tIUBU  IEL`M\HSB"IH9tHHE % =HEH@HD$E E1 tH@Dj@AAAItqM1HHL$IH9 LHEHHH9PHUED$HH4 HEL`L`HEHUH@E EF%DE HCMf@#@tHChLc HHChILcE@Mt$Il$HCL3H5HRHGMt$It$H,D tKIEf.zL,dLH AE tGIEHSL`B"3fDH(%HSB#@HChMHcHHChHHSI)IDAHcHUH*X0f.0hzHC H)HH9II9v2L@HHta HH9rHHLHHIMcHED$B J4HM4b@ID$fDHHMsLH8IHT$HHSfD%_DE HHE1HEH@@YIEH@IHLIUHHMHL$M,$AE E}A9 I9oH5zH1LH="vLH(ILHTIL+{LHIIIcHHSIcHI)HHHH H*XH5|H1H5H=~1ffff.H\$Hl$HLd$Ll$Lt$L|$HxHWH/B"@'LeLmLF HUHNA&HEAAH=HSH+B"@Lmu AD$HLHAD$@yLeHCL+HH\$HHl$PLd$XLl$`Lt$hL|$pHxB tHJA\HHHŋ@ untitL%=frHELxMfWD$7E1D$6L$(L$ }f.HHE DuHEL$ fWf.D$ D$(D$6D$ f.zkD$7AE1IuH Hŋ@ u }EuDHEL$(f.@v fWEu_f.0 f(L$Xg|$7f(L$ D$ T$X=T$D$ D$ f.D$(D$ T$D$u\$8D$8f.ztL$ f(@8l$6tf.D$(ztL$ \f(|$6t  fWLHIAD$@IEMeHHCHvfHJHWLmHuL$zHHE bHEfWE1LxD$(D$7D$ D$6fDL$ *fWL$ %=HE1HPHHyKHؽA@HELH% wf(HIMtP1IHt I)@:l$6IE׀|$6!HH9HLHxH5HHl$PH\$HLd$X1Ll$`Lt$hL|$pHxHHef(@LHM HH=D$ nf.D$ HE1D$7IfHH* LHfWfDMI*D$ LHtHU;HE1H@fWID$7E1D$6D$(D$ HЃHH H*XLfDLAHL H*XL$ ^H\$Hl$HLd$Ll$Lt$L|$HHHWH/B"@LeLmLF HUHNA(HEAAH HSH+B"@Lmu AD$HLHEAD$@LeHCL+Hl$ H\$Ld$(Ll$0HLt$8L|$@HHB tHJA\H HuHI P H6- AN %=#HEH@HIALAIHLEMI* fWȨf(u { HtYtHYuLHAD$@MeE HH@HHU DE1AF HEI4LHAD$@EMe E THJHWLmHuL$[LHAN U fE1?PHHAF f(ILH $ $6HEZLH?LHIuk1 @@)MID1MAEʃuAHH@IEHtMtIHuEHHLHAD$@MexDIAHIHI4IE1)@MI*BDHEH@LHm]HH9hHH* LHfWAD$@NLH=LHUAD$@#LAHL H*XLAHL H*XiHЃHH H*X_fffff.H\$Hl$HLd$HHGH/HPHGL$HUB ȃ wp%=t\LH$HuF %=tqHHuF@LeHCHl$H$Ld$HHD wH (H5HHl$H$1Ld$HfDHHHPH9uHHPHE` HuF@jH}]USHHH/HuF Ѓ %=tuF %=t&H&HuF@uGHCHH[]fDHHHPH9tHHPHE` HuF@tH wH(HH[]H51fATUSHGHH/HPHGL$HUB ȃ w%=tkLHCHuF %=tpHHuF@AD$ <LeHC[]HA\ wHH(H5[]A\1@HHHPH9vHHPHE` HuF@kHAD$ <cID$@ Z1LH,Hffffff.H\$Hl$HLd$Ll$H(HGH/x#uHHG H)HHEH HUHHCHH\$Hl$Ld$Ll$ H(DLeMAD$  ЃvSq_AT$ :@L LmHCH+HoDH Hc4H DHH8H!H HEHGH/HfDLHHtV HtEI$H xlxH@HHPHR8HHEHHHHH H1I$LHLhHOI$LhHL LHL fI|$HI$HzrtH+zAd$ I|$ I$ID$H@AD$ 5LHL VIfLAD$ fL M9LLHeAD$@LHmLHmAT$ ID$Hp HFHHJHVH|tsHLHPHH1IID$HIEH@L ID$R$P@ID$L`8I$HH)DXEuHxtI$H0HuFkHHPHFH|THGff.AWAVE1AUATUSHHHGhH/Lc8HIHGhHGILHPHGL$1L9v4IuHIxAM9rHEIcL)HHHLHAD$@uIHC H)HHHHHHELeHHCHH[]A\A]A^A_DLHuff.H\$Hl$HLd$HHGL'HPHGI4$H,HHcHE@t HHI,$HCL#Hl$H$Ld$HHfffff.AWAVAUATUSHHHGhL/LLc0HHGhHGILwHPHGM9H,MLv"fDIHHI$M9wHCM)IE@McN$uPHC L)HLLH8IID$Il$HHCHH[]A\A]A^A_f.HH H\$Hl$HLd$HHGL'HPHGH,I$H#E@t HHI,$HCL#Hl$H$Ld$HHfH\$Hl$HLd$Ll$H(HGH/@"@tpLeHHpLIHbLHcHAE@t LH2HELmHl$Ld$Ll$ HHCH\$HH(@#uBHXHFH8tIL HC H)HmHHHHRfHPHGL$? H@ffff.AWAVAUATUSHHL'HI,$H9E HEH@HD$~E % =t.H8I$HCL#HH[]A\A]A^A_f.HHt` HH6EHE HELpLt$L}EE~xA9AEEAIDxHHH*Xf.zHH4H-HT$HH HD$HHH1HHHuAUAHcH4ID)1#fDE)DIHHDtA?EHI,$HCL#HH\$Hl$Ld$ H(@HH5HHHT$Ht HJHiH9tAHHE@luH5=H13fAtKH @mHE1HHPH0HcJHHHD$tH@HhHl$HtE f.H\$Ld$HHl$Ll$H(H/LmLIHHt+HEHCH+Ld$H\$Hl$HLl$ H(@HE1I$HE1#LH~I$H\$Hl$HLd$Ll$HLt$H(HGIAM@#t4F <YH5(LHH1HCU „@"Z)Hm%At/HC@"ttYHIHIH H1H$Hl$Ld$Ll$Lt$ H(@@"x0DHHHl$H$Ld$Ll$Lt$ H( u1DHHHu1HHjDHHH]IHUB fH5(LH1lHCHHAfDH5(LH1,HF@ ,DI.1DAWAVAUATUHSHHHD$L AT$ LE1L HC@A LHHHpHUHT$P H9HKLxHII9uAG HE@" HD$L8HD$HEHEHH[]A\A]A^A_fM%= tLH0AD$ LD$HTLHHItIFH8L8HE@" YP#`DLHA4@H5DH1WH[]A\A]A^A_ƒ FHD$HS XM|$AG H@(f@ t,MtcLH軿IL{pHD$HH0萿IpLHH@H5-H1H(H5WH1AWAVAUATUSHH(L7I.U L I'ID$@A LLHHP L3cI9~IL$LhIHI9uAE Ѓ%=u LH5H1薿H([]A\A]A^A_%= a3L I9#HCP#`vH@HZHSH4F HH@HD$HvHt$1HIIH@1LD$Hx0t H@HHp0L$L$HHL$E1LHҿE <H}HtDHUHzHttH+ze H}HMHAHEH@E Le@E M&AT$ HCP"P#t HHHHCx#I.HCL3HH([]A\A]A^A_fƒ v /HHָU M&L AT$ .fD O1ҹ HHuHe1HH_H IHCL3HxfDLm-HE@ DHH qHHE1E11HHELhAE@"uteH5(HH1腼L3HDMl$fDH5(H YHH1=)H t HHM>HCL3HsHT$H7HD$DP"HHt HHE }H@HHp0TI HHqgH5%H1H H1H/HO(H5*H1^fDH\$Hl$HLd$Ll$Lt$L|$HHHGH/Hp@#HHwL.!HC H)HHCP"@# teft Hfu>H~AEIIEHPHcLHHLeHCH+HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHHC@"HELmHHCH@HHHHDfDHuHCP"AEIELpAHC IcHT$H)HH9AE tSE1Et@L @D1LHAdHLtHDE9HTrLd$ILH|$H*D$Xf.Ld$IuH}IL@LHDp+@HHDHgH*LHPDHxMfDHD$HT$HH H*XBH5(H= 1RH5H11fH\$Hl$HLd$HHWHHJHWH,HW H)HL`HhHCP#P"um@#t;t HfsuHHI$HCL#HH$Hl$Ld$HL#HHHUaHpHHHs3HCDfHuHCP"<HC@"tC]H5fH1@L#HHl$H$Ld$H;H봐fffff.ATL USoTHGP@9}DHcЃHHSHH2HCPHtI9tׁf HHCP9|f[]A\ff.AWAVAUATAUSHHXDH HDG@H-HD$8HT$@HHHD$HHT$0E9}{DC@HC8ƃAIcDC@<.vH5H1f. HcLHAPAS@HcHDC@McJHDC@E9|DHX[]A\A]A^A_f.APAS@HcHDC@McBDC@8APS@Hcҋ APAS@HcҋDC@McJ#P ʉP DC@@APAS@HcHDC@McBDC@APAS@HcL4IcDC@L,I}L9MuDC@@AHDC@McJ4葼DC@`APAHS@HcHЉK@HcH H HAHQf.APAS@HcL,IcDC@L4I}L9MuDC@@AIcDC@HHH(k H@HC@APAS@HcHDC@McBDC@APAH߉S@HcH4DC@McBDC@WAPAS@HcL,DC@McJH0L(HLHDC@t7HHRHr Ht#H賮HH@H@ DC@HC8AHT$@HDC@McBHDC@HC8AIcDC@HH` HH@Hx j HeE1HE1ɹH1HI*HH@Lh DC@*f.AIcDC@HHCAP1E1H߉S@HcL,APAS@HcLDC@McN4E1D$HD$$LLT$(LLT$(HHD$ LUHL$ HHAHH9D$8AFfHYAPH߉S@HcL,APAS@HcҋDC@McN4LHAF @dH;LM/L9D$8$AFPLHHL$ LD$(HHL$ LD$(A@fAPAS@HcHDC@McBfDC@wAPE1H߉S@HcL,APAS@Hcҋ DC@McN4LAB$LLHLDC@ @AHSDC@McJHL*A}Eu Aƃ  1HHT$(HT$(HLHHT$(jHT$(AHB D B DC@|@ADC@McJ tсp щK @HHHHD$辥HD$H\$Hl$Ld$ H(ffff.SHXLCPtsXHcHx1H*X<f.<w4H{HHEHCH[HHHH H*XH5w(H=1 Sw@HwDHcHx.H*Xf.w1H{8HHC8[@HHHH H*XH5(H=R1Ld$AH\$Bt&Hl$Ll$H(o@HHcHDn.;WD~C@HS8DHcD,ʍHHS8HcC@AH\$Hl$Ld$Ll$ H(SwDH4v40wDHcHx.H*Xf.w1H{8HHC8[@HHHH H*XH5(H=B1UHSHHG@P;WD~C@HsHS8HcH4H4ʍHHS8H(HcH4ʍHHS8HcH,ʍHHS8Hc#C@H[]ffff.H\$Hl$HLd$Lt$HLl$H(H1IIF Dk@AE;CD1HHS8tEHAmIcLHAH߉k@HcHHk871HEDk@IHK8HHCxt@HSxIcLHHAUHC8AHcDk@I.Eu H$Hl$Ld$Ll$Lt$ H(pHHpHtHHHl$H$Ld$Ll$Lt$ H(4@HDk@ӝfDH\$Hl$HLd$Ll$H8G@AHI͍P;WD~DD$C@DD$HS8HcH,ʍHHS8HcD$ʍHHS8HcL,ʍHHS8HcDʉC@Hl$ H\$Ld$(Ll$0H8ff.H\$Hl$HLd$H(H1HIF 1HHsxtFHKx1HtEHAHE @uxzLH_I,$EuH\$Hl$Ld$ H(ÐpHHHtHHHl$H\$Ld$ H(饩DT$WI4$T$KfI$HHCxu@lfDHH։1Ht@HA?ffffff.USHHG@;GDHH-(HHH@HC@HS8HcH4ʍHHS8Hcɉ4ʍHHS8HcC@H[]DCcHC@HHS8HvHcȃHv H4ʉC@HHhHu H9tULcH$Hl$Ld$HfDHsHHHHfH0ID$HH9u1HI$H%;HH6"(H1HHGxt@HWxH\$Ld$HHl$HHnIH}t|ƃHuF u[ƃHE1HHCxt@HSxAD$LH߹蟪HHHl$H$Ld$Hzf.HfD賯HhvfH\$HHl$Ld$HH`HkpH)HDmAAAAMcMxRI*Xf._wUIHcL$HN$ HC`Hl$LcpHShLd$H$HDLLHH H*XH57(H=1ɿSW0H;W4tHG(s@Hcʃ4S0[RW4HcHx8H*X[f.3_w;H{(H4`S0HC(HHHH H*XH5(H=ڼ1!fATUSHH HPDb$CdB$HPu$HcHH*fWf( Xf.H}HHH$McH)L$萹HEHP$L$HcP$L)}H*Xf.HIHHL羫H)LHHH)HxHP@ H []A\HHHH H*X HHHH H*XkH5,(H=w1辽fDH\$Hl$HLd$Ll$0H(AAHHþ H` AM1EHOHH uHHH@H(HHH@AD$McMHCHCC$C C(xdI*X߹f.wgLIHI)LoL⾫HHC苏HHl$H\$Ld$Ll$ H(LLHH H*XH5(H=21yH+WH7HHSHHvH[ÐHGLJ|ƇHSHPP Hxx^HcAHHHH)HHƃw/LHHكFt!FMtAHV HBlt1[HpyHcHHHH)H471[fff.Ht H@@DLPMtjAI xYHcHHHH)IMAEAƒtu!HI@ tLMt LM;S0t#Ðt+HpyMIMuH8ÐI@@DDAAtH HPSHJ HcHHJ HH)HBHHHcPH@HcHHHWHHO`HOhHO0H@HHHC[Hfffff.HPSHJ HcHHJ HH)HBHHHcPH@HcHHHWHHO`HOhHO0H@HHHC[Hfffff.H\$Ll$E1Lt$Hl$HLd$H(H/HuLeLuHt)F HHH@AH1Mt*AD$ t_I$HrHPHA9tSHPHEHCL3HH$Hl$Ld$Ll$Lt$ H(tKI$HxA9uH8HEHCL3HtCHE1HxAGI$fWf. Lt{HfWf.AA EDHtkHFE180AHt[ID$80LHDDf.E1x1fHPSB HJxfHcHHHH)H w;HHHكFt-Rt4r+t!H5͜1OHpy[ø[fH\$Ld$HHl$Ll$H(HOH/AA"ƒt E0tAt譨HKAA"x7HuHF HHH@H3HH?HsTH賏CPLPCTAE A;E$AE HPHcB HHHH)HBHfH+SHPH@HPHShH+S`HPS0PHD`HPHSHR0HP HCH+HH\$Hl$Ld$Ll$ H(uKtvHfWf.  HKHA0HHPAE &HHxHtHF80@HHff.AUATAUSHHHGH/@"tE1tAtʦAH蟾HsTHCPH߉CT腾LPAE A;E$AE HPHcB HHHH)HBHfH+SHPH@HPHShH+S`HPS0PHD`HPH@HR(HP HH+SHP(HSH@PH@XH@`HP0H(H@HH@8HP@HCH+HH[]A\A]DH蠿AE ffffff.H菥=DHDSHWHB"touYHJHCH4HtHF tHHt8H@HvjHB0[@uCtnHfWf. uH[HSHHxHtHF80@HؽHSSGPH;GT~7H[ޟfDUSHHHPJ HcHHJ HH)HBHPH@HcPHHW`HWhPW0P HhHP0HPHp(Ht袐HHH[]MDH\$Hl$BHLd$HHPIHHP8H H4HLLHHdHsTH؊CPHsHߺCTLH$Hl$Ld$HUSHHHHW H)HHPQ HIx=HcHHHH)H41w?HHHFt1Vt9tlH HPHHHCHHH[]@HpyDH8HPHHHCHHH[]ùHHXHHPHPHHHCHHH[]UHSHHHHW HwH)H~pHPHhHH赗HH01Ht#F t(HHHPHvmH[]fDt3HHxH[]fHH舡{tCHfWf.H[ ]fHt+HF80|fH耺fH1[]H\$Hl$HLd$Ll$Lt$H(HGL/@"t1ttHHsTH4CPCTHCH@HHXIuHMeLp蒓HILԹLPAE A;E$AE HPHcB HHHH)HBLfH+SHPH@HPHShH+S`HPS0PH@hHPHSHR0HP HCL#Hl$H$Ld$HLl$Lt$ H(fDHSHMeH4IU蓝*fDH蠹AE @+ff.AVAUATUSHPHH/J HcHHJ HH)HBHPLchH@HcPILoHHW`HWhPW0P L`DpHP0HPHp(Ht謋AƃEIL9r/IuF uH IEIƃL9sfDHLHHC1HH@H0HH@H0F tHrHH@H0F %_F HH@HH DH+HC[]A\A]HA^fMuL9r'HuF tjIuLFfDL8HC L)H|H LIML+kL1HH葝IMcN4Ls@HL͝IEfff.AUAATAUSHHHG@"tE1tAt:AHHsTH胄CPHPCTE ;E$bE HPHch HHHH)HhfEHH+CHEH@HEHChH+C`HEC0EHDmHEE HC@ HE(f%fE"HPHE0Hx 1HtHHE8HE@AHEHH`HEPƃt6At HCHPHH[]A\A]@HH1HH@H0qHH@H0F u1%_F HH@HH DfH萵E H蠴HH@H0F DSHH<$HGHD$HwH|$H$1H`HD$裳H $HT$$H`Ƅ$uXH$HPHcA HIHHHH)HTPH<$HD$H$H`HL$1HJH[@tSH|$H$H`HL$HJH?H<$讱H5H1}}裂H$H8HtHPH`HcQ HIHHHHH)H9\PjH$HpHǀ8DH$41H}fffff.S1H-HSHR0HHPHH`tHC[HDHCH[H0(AWAVAUATUSHHHHGH/@"D$/HPP LcLIP HI)L`ID$Mcl$H@IcD$ILoHHG`HGhAD$G0ID$HD$ AD$ Et$AD$"fD$,ID$0HPIt$(HtAM|$HƃtREIUH9s>fDHH9Րr.H2FuHHT$ИHT$HHƃH9sHD$ HHH H@cf|$,AH螓|$/xXHH٥1HH@H0訖HH@H0F t%_F HH@HH DH+HHL[]A\A]A^A_fIUH9HuFuIuH)fEHuHt>F HHt*H@HHtHF80 f.Md$(I$IT$HHHHpHv HKE1ABH$֡H5GLH1{I fL9fDHC H)H|[H HH9fHHxIF@H萯HH@H0F nfHH+C1HHHD$0,HcT$0HHSwfHHT$kIEHT$Hft#HfWf.@HDHHHT$HL$H@HL$HT$Hp ffffff.H\$Ld$HHl$Ll$Lt$L|$HHHPL?P LcLIP HHWI)L`ID$AL$H@IcD$HHG`HGhAD$G0ID$HD$AD$Mct$(ƇILw=t+HcɅH H $L;<$H IIL3It$PHtIt$XHtH;HtHtHD$HHHHCHl$ H\$Ld$(Ll$0Lt$8HL|$@HHfDI9HMzfHHIHudI9IEƃwH$HLHMt5@I7I,Ifff.AWEAVAUIATIUSHH(LwHMtAV ffAHShHH;SpHShH+CH HH!t HԫH HfHlH ` HPHcB HRHHHH)H MHL@H HDxhH HtAELh`H HL(t$HIEXH HC@H0HH@H豋qHH:s HHHHHHs H躪HHH賙HHǃPH@H@B@tpH@J@H@H91HL@ћHHf~H5ŽHI芮H@LHHrPH~IEPMtAF f%f=At A~"HH1HH@H0ߏHH@H0F %_F HH@HH DH辫uHx NHPHPHHhDh LstH菑HǃPHChLsHMT$HChMcE1LIHI)Nl-H蔟H܋HH@H0F HnAAM}ttHcD$H IHPHH1HH([]A\A]A^A_H0HpH@1Hz0tH@HHp0H0LDHHHH@H0>eHPMǃHPI$HPF f%f=DH谩tt MHHt s0HQzH H@HShHcHLsHShHx HHCƂ HH([]A\A]A^A_fDH訧HH@H0F Of."1H蹭Hf-OfAF f%f=AH51H蔚HHHChL#HH;CpHChLH+SHHC L)H^HI1HtHI$L#HHcHPP LcLIP HI)LhIEH@IcEHHC`HChAEC0IEHAE IE0E}"HPIu(HHyufHHD$kHShHD$cDHV(B f%f=_HB0@ f%f=AI_HH~SHPH Hv#LLH0IHHChXIE(HL`HLjHPHr HL LHA$D$辖}HH5DHHD1HHPJ HcHkpJ HBHPH@HcPHHS`HShPS0HPHP HP0HPHp(HtHw}H H5ԁHHD1HkHHpH@Hp ff.AWAAVAUATUSHHxdH%(HD$h1HWH/B"tE0tAt ɊHSANj D$,B#tbHEHHHCxtQ@LmLcxAE tLLHt=ƃt6@H1HG|DLmE1AE uuH11LHߕHsTHsqCPCTt DhLl$@L}1  LADhE耞MLcHH赓IuHgHHH~DLHǃH(HDHHD$apHrHCMH@t&HHH@Hp _iHH@L` H+H茐H@HxH"H@HxHH@HxHH@H@HL(H@L`HH@IH@HH8HsLLH蔋HHHtHH@H@PHHt2L%t(L裞HL@أHt$Hx[]A\A]A^A_fDT$,9 t'tH|$H5gy 'H`HXvH@H$$HIH@hHxLHDH$H@L@8h1IMnLpH@H@H4H蠞AD$ fDHXH@# ZH=K1蜒HRxH=yƹE1耒H6xH=xƹC1dfff.SHHH耔y1HĐ[fD$%=@t=`tH5~HBH\$Hl$HLd$Ll$ILt$HHHvHtH=t1LHpHHPWоdH5ybE1DH19HHI&}HH[LHI [HHIZH5$eHMLH1R}@HALHYAE IUH|$XH$Ld$hH$D$Hl$hAH$A HHeH@Hp MxHT$pH$D$Ld$h:.tlE1HD$hHD$XHD$xHDŽ$DŽ$\1ҹ"LHLHHH)eH@Hp z/uHHT$pHHLL$HdH@LL$HHp HqH@Hh(1ҹ"HHҋHBо 1ɺLHnH0H5fDAWAVAUE1ATUHSHHXt$Hx HtHHcH@L,IEHcHPpLxHHT$0HHL$ HT$(LMtvAD$ <„t_I$HPHT$@Mt$H|$ HD$ H9LHH_oHT$@H)T$ D$>D$?E <cftHHoHE I<E1EH|$(D$AF </„t6IHHHL$HM~H|$ qH9L$ NfDEAD"|$>I9t)AF <fLHHVnEEDEHXD[]A\A]A^A_H0lIƋ@ <LHrfE1Et$1LH߃gAH|$(D$|$HL;蜁HXHHpiJHsTHPCPCTHC L)H>HXH@L0HChHH;CpHChLH+SIOHHHL$Dk1IGHHHH|$0HL$t HD$0IOIGHt$(1H HwfL;~,I7IF <&„tcHD`CP;CTL;HdAF <IVB fDIVfB  EfIEHH@HIEHHH|$0tHt$0H~HIEH@p|$tHt$(H^HIEHǀH5HpKIT$B )@HUfB  ID LLHt HL)LHHvkAD$ _AT$ D$>D$?LHTD$>D$?DHʾ LHL$kLHHL$}HPIH9lHMEII)IH9HLHHD$feAF HD$tH HD$HIL)E1EHBDD HALHHHD$\RHD$LHAIC DHD$ I>fLLHfIDHVVHT$@LHSHT$@IZfDHT$HLH+HL$HIfDHVB DHH+t$ HHT$LD$VmLD$IHT$H[yAH؂HChEAD"|$?fDAWMAVAUATIUHSHHdH%(H$1HL$(L7|11LHLpHsTH9LCPCTH@L9+t 8hLl$`LL$(LKY**LhH$11y)+HHD$(HHbnIuHVBHHHYT$(LHǃE1ZL$(H(HHKHVMHsH`H@I9A1E HD$0HPD$RHCD$Pf%f CfD$PB ;B$B HPHcB HHHH)H@HBI9DfL+sIDpH@HPHShH+S`HPS0PH@HPP HSR H@(ffP"HPHP0Hx 1HtHHP8H@@EH@HH`HPP#H DdH1HHPJ HcHHJ HH)HBHPH@HcPHHS`HShPS0HPHP HP0HPHp(HtHNHEH6S(Hf` HEHHPqH(1Ht @H(IHA]H@I9!H$dH3%(HXqHĨ[]A\A]A^A_fH@H1HD@DH@p$H^cIH@H@DhHL$(LHߋ@$LJ8HUALT$ DhEH$1/hLT$ IMjH@HD$(DHHT$HL$ zHT$B HL$ 4@1HNfHfDHHjH0Ht%@tHH@HRHtHt H@1H^>H-iH=1onSHG1HH@#tH2F tHHp HVXfDsHfAWIAVMAUIATIUSHL9uF f%Kfv f=HF(IoI9ICHEF" H^(HHHRHB f%f-fwHz(HtLHT$hHT$ufHH[]A\A]A^A_L9tHE@ f%f-fH]HMHLHLHzH[HtQI9$PtC f%f-fwf=f=FHHEF"HE1AH]pH(H5ZL1_tLd$Ll$IH\$Hl$ALt$L|$H8xPHcL="(AHHHH)I$PHHhMLHWHu5DH\$Hl$Ld$Ll$ Lt$(L|$0H8fDLcyt?It$F f%f=itLHuN(LEHRLI 1`Z}t,HpA>@gLD@IAGff.AWIAVAUIATUSHHPX HcAHHHH)5tIt$ HtLAfHpIPIL`A $wLHWHtL9xtFIuF f%f=itcHLM(LA$H!(LH HP1/YA<$lH[]A\A]A^A_L?Iff.AWAVAUAATUSHHHGhL'LwD8HHGhHG@"tE1tAtc[AH8sHsTHBCPCTHCHpH}x#HCXHCHPHT$H߀@#Eщ$rHP$E ;E$lE HPMcHch HHHH)HhLfUH+CKHEH@HEHChH+C`HEC0EHDmHEH@H@(HE HH+CHE(HCHEPHEXHE`HE0H(HEHHE@HD$HE8HC@"@I$E1IHHCxt@LkxLmXA} MM4$IAF *AE AF 0bЃVfl{If.Gf.d@IHzx%If.UHHH5P[]A\A]A^A_11=fHHHEXHC@#u+H+SHHU`HCL#HH[]A\A]A^A_fDH+SHcHM`HHHUhHCI,$HIHUHH$=t1HS`H$HHCHl$hH߉$]rE $f.Ѓ$ft @AM 0yft @f[fLHJ,AF @IV:0AU ffLHmJAF @HC@#HEhAEIEH@HHE`HCkfDLH=rf.MAE <ft.=IUf.Ef.b^AF IH@HE`AE IEH@HEhHCf.LH 6LH5HCHH` HCHPHCH4к^HCHp/fIVfB  IUfB  3INfA LHi,LHiLHpf.CzAE LHpf.`AE IUHzCIEf.rlLHhHHf.I}fG  LHpf.CzAF LHof.`AF ^fDf=LHfGHEPP t1HHRAE <rLH4H8HEXHCWf6DI~fG fD#fVfLHPUHAF ifDLH(UHoAE #"1LHrAE IE@ LH]nf.mgIMfA f5IVfB Jf,IUfB ^[IIUfAUATUSHHHPHWƇH@HcA HIHHHH)HcDHHGHGP;GTz"xHF HHxHH@HhH+HED@E~@HjHsTH9CPHH߉CTGS@B;CD5HH+CHcHK8HJHC8HcS@ǃHEL#@m~LPAE A;E$9AE HPLch LIHI)LhLfAEH+CHAEH@IEHChH+C`HAEC0AEHAEIm IEHE@AELIEXAEHHExbAEMHCHߺ!HIEXHE@H(~XHEH@XH@H@H(H@L#HCHEH@8H[]A\A]ÐHdH'HF HHxHF HHx@HCHH[]A\A]fD@HChHH;CpHChL+cHHID HEP@HEhCP;CT>H^KHCHH[]A\A]@@HS:fH0cS@Hp@fDEHH4WH{cHDHD[iAE f.H;cHDHHH5D[]A\A]1-3DHlHChffffff.H\$Ld$HHl$HHGH/L%\@#tHuHF thLfH@1Hx0tH@HHp0cHLHVHEHPHUHHCHl$H$Ld$HHD"1mIffffff.H\$Hl$HLd$Ll$Lt$H(HGH/P"„~@#@HHHSLeL,HHt x H5wAH=HIH@H0HAD$ I$L`F HH@I9HCHH@(HPHCH4к,HCx"1LH,HCHH+H@(H@0n@MtCAD$ I$Ht,H@HwHtID$80ef.HaZ1LH4KLmHCH+HH$Hl$Ld$Ll$Lt$ H(ÐH+H@(H@0kHCV@I$HxLH+LmHCH+HwDH@H5HPH(AD$ I$H@HH;BHkt[I$fWf. JH_(fDLHh_IIFH0LHdDLH0_HHRHRR@AWAVAUATUSHH(LPL'Eu ImEx9IcHHHH)кHDHHHFH{1G#tI4$F HH@IAEHHt+HJHIHtIcIHIL)H;L. ȅp!AAt?IcHHHH)HDwLHHуFuAHpAuDEjA}(tVMmEu ImExIcHHHH)HT wLHHFHpAyA}(u@G"HC L)HID$H IT$HHCHH([]A\A]A^A_fHpAUnDMcLIHI)Nl-AELHELp0G"HC L)HxM>HCHHPHCH,LHu6ID$Il$HHCHH([]A\A]A^A_f.AAt1IcƾHHHH)HDw[IILFtMH1HBEH@ HIcHHHH)HH;E AHpAuHC L)HWXM#1LHYM|$HHA4ID$HE1HMgHp8YHH4IGHEHLcp$gIHIGHL'HC@#!EEIE HLhHA} H5< HcID$DuLHHHID$HMl$L&DuAH MeIE} H Ml$ID$ID$}}LHHH@H?Le@HI$Mt$L+pIHHPH>McI H9O}AH@I$HPJT:HH*XQf.QHHpHHyHI$HLzHLxHEHMeDp@GHIEHLK%HEH@HHHHEHHpH'bHHMl$1ID$HEHpPH HtH_HH[)HH1ID$HCL+HH([]A\A]A^A_f.HCL#HH([]A\A]A^A_Hc?HߺXH{LLHDI'H M|$ID$H ID$IT$LL HH@H0Ht2AD$ I$L`F HH@I9u^LmLHmLH]MtAD$ I$HtH@HHCHH@(H@(HPHCH41YH2ALHl)^LHeXf.}Yf.HHDH'=HDH}/MEfA@ r@^ID$f@ a+f0fDIf*IT$fB DfLHxPLH`PIIt$fF f.LH-Wf.E*nhDu(I$fWf. I$HxHID$80IEf@ LHc.tAD$ DLH;@ cHHRHT$LhLH;Iċ@  t1LHh9AD$ 0)I$HPH9T$snfDHLLeI|$DLH-HH}'HIHfD;4u*HC H)H~IHH61HEHHHSH+H[]HA\fH9HS=HHH3HH\$Hl$HHHHtH;'KHKHEH\$Hl$HAVAUL-.ATAUHSHPB HD9"HcHHHH)HZ3wEIctLfHsPH\HsXHtH;HtHBHPA A HsHHB PHsPH"UDC HC0HPHs(HtzH:HPA A D{LujHs HkCHHBRUHs0HT+Hs01[]A\A]A^B HуA HXHH@Hp(9HXHS8H@HP(Hs@F@uu*H5*H1eHDLr(MjA>`HPHǃPHD$PDh EIcHD$8D$OHHD$@HL (H)HT$PHT$0`E L@Mt.HL$0L$PLLHLL$ HLL$ LPHpAHHPHHP wIcL@Hn} fHEHx@!L`HMlID$H@H9tHHuI$E1HHPH0HcJHJHt H@HhHuH.AH1LHH%H5.%HH1H0@D$@HBL`fDH5%H1HHXH[]A\A]A^A_EHBL`D$O}DtH|$8HL$8La0HT$8D$@FfDHB HDPEd[L`@f.1Ҁ|$(uL;K1Ҁ|$(=H-(H8HEHT$ 'Hǃ8EHT$ fD"1HJIfLPHT$8D$@zf.H5U LH1$H@ECP;CT~HHPP L@x?Hc‰AHHHHH)I<8wMILуFu$HpyH54$H1Hf9HHHH)M$Mcl$ILkL+IcD$HHC`HChAD$C0ID$HA$ƒ8eHUBmCHD$(E1D$8E1HL$(LHL$0HcS0HC(t;s@HsTHCPHH߉CT71HE@m|$8IT$Xt@E~;L|$0Ll$(E1IHDI7HAIE9HLLl$(HPq HcƃHHq HH)HAHHH@HcHHHK`HKhpHH;Kps0H@HKhHL+kHHID)LT$0LHEHT$ P@H$HT$ GH5H1 H+|$@HtSH|$PtKHD$XHtA@ f%f=QHL$0HfD@ Hf%f=*HHuHPD9h ~y1EHAIHT$ 'HPHT$ HcA HHHH)HAHcHHHKH HcHHHK`HKhHcHK0H@HHC(4;s@sH|$PHD$XH|$OLctH ff|HCH IffuEDHCP fft,HPHcHDPHuLLc\f.H5y H1 HHD$`HtʽuHHPL@Hc@ OH@XHD$@A<$3Il$ HE@AD$HHE@HEPMdHt$@H.H(!H-HEHL$@HcPHAHH(H@HCA|$L!HHXH@H@(ID$8HXHP1HtAHHB(H(IcIL$@ID$PHHpH9}1HxLAL9PI)II40HpHHyH;P0fW 0MI*Xf.GHyHT$(ILHL$ M~(HL$ AVHcHHP|$8tA @%A Et(AKT@II$Ht` I9u狃tLT$0LHEHP8H5H1HYHXH@L@(IH@HDpHC HcL)HH9UMcMI*X/f./&JI}HT$(Ip`'A$D$8MHHT$ {HYIT$ AD$HHB,It$ H=A|$LMD$@IHHHC DqL)HHcH9McM'I*X.f..WJI}HD$(IpHLD$ &HXHH@Hp(HXIT$8H@HP(LD$ II@H+BHHBIHPIPH@A@@LHM H;AVHHHD$ LHD$ P P HSID$@HA$D$8H5H1H5H5H1HAD$ ID$0HPfA$AD$LH5H1]HELLHLD$ "LD$ I1HH'H51Hx.HIHShHH;SpHShqHH+CLHH H+LLHH H*XAVHcHPAFHHH*fW ,Xf.H4HL$ L$$m*HL$ HHBHA$L$fLAHL H*XYHHT$ e>HKhHT$ HHPJ %AMnL9l$I2fIEHHH$%H$IIƃL9l$@I|$ uIE@ufHuPHHuXHtH;HtHHD}L@Hu HEHHBsLHrfDHH HE0HcU(H@HHHSHD$ HD$HMXLD$ HL$E HE0HPHu(HtHBHEHLD$ HD$CHD$HL)HHTtfDHL$H@YAfHXHH@Hp(qHXHU8H@HP(Hu@F@u|HHFH+BHHBHE@HHRHPHE@HH@|fDHCH5QHHl$0H\$(Ld$8Ll$@HP(Lt$H1L|$PHXDHHLh H0DHE@HHHE@` HE@H HEPHU@H@HH\$Hl$HLd$Ll$Lt$L|$HxHGhLPL/LwD8HHGhAP MHHcAHHHH)I)8I@σwbMILFtT9\AB=1HH\$HHl$PLd$XLl$`Lt$hL|$pHxHpHpyAAH51H1= HHCHHPHCHHf.McOIt$ HtXAD$HHBuILHn?ƃE1f.oL;HDD$ _DD$ EuL|$=dHH"1HH@H0SHH@H0F %_F HH@HH DDHC1Hf.HPIl$XA@ D$=OD$=AD$ AD$"fD$>ID$0HPIt$(HtH߉T$T$A$Il$H%=tvH߉T$"f|$>AT$u]L9l$0IuHF XHHH@H\ƃE1E1gH II6DIuMgHpHIGL#(@HXHH@Hp(AHXIT$8H@HP(It$@F@cHHFH+BHHBID$@HHRHPID$@HH@PfDHT$0HL9LGH@u*HHHT$HL$(DD$ DD$ HL$(HT$HHƃI9rHEuH@IL+l$0IO| H +HH@H0F SfHHCHHPHCHH\IEIW@HHHCx@CP;CTLkxZIWLHHT$LIGHHT$HHLh H)DID$@HH ID$@` ID$@H ID$PIT$@H@HHHHT$NHT$<HfWf.kfcIl$(HELeLhHHPHr HLHDE1AB$kH5HHHl$PH\$H1Ld$XLl$`Lt$hL|$pHxuHHT$HT$H4HHxHfH8HF80D!HH8H@Hp 2H)\ff.AWAVAUATUHSHH8HT$(jHHH@L AD$ M,$L|$(MuIGI9rLL)I|$:-KT7I9UH( ALHHL$(AHLH H*HPfP x0HcL@HHHHH)I 9HpyHx`HHPHH@HHHH+SH HHQHHRHSHH HIH HK HH HIHHHHPHH@9HHHP LsH)M$8ID$E|$H@IcD$HHC`HChAD$C0ID$HA<$El$AD$ ID$0Al$"HPIt$(HtHMcEKuH HHHHID$fAH@tID$HH8[]A\A]A^A_fHH@H0F HnID$(HHJHPHHpHv H/L HA$$}HwH5HHD1HH8[]A\A]A^A_fDHHPP L@HcbHHHL$(H@H0 jH1L M,$L|$(MuKT7I9ULHfD"1H>+HI$H HHH1HH+L$(IL$HHHT$ HL$H@HL$HT$ Hp HPHtx t&H"H5H1^HH@H@HtHH@8HuHHT$(HH-He HHPHt x H"H HHHPLd$(Ht x H!HHLHHHH@H0F t;HHPHT$(HnEH@H@HfHH@8H^QHT$("H)HHH@H0F t;HH@HD$(HnH@H@H7HH@8H/"HT$("H)Hfff.SHBHuvH;t` BHCHB(HCHBPHCH BX1DH;HrHf.H>t1.1AE)AEEAEZMZtMZ ARA Mst MsAC1EIA II9DAH3IM)IHFMcN<ƒ)HcHTLH9VCMH{uI*Xf.H LLH LqE1E11ҹfHL9$K @IHH1[]A\A]A^A_A^8A~ 8~A II9ADAE)E)t!@t HEDZHI9Lr @t)A1I@tLL)HAII9v9IVAMI1111TA 6I0H11 ELrDBm!HE1E1@|$/H5L1tHH[]A\A]A^A_Dx#HP1Ҿ.Vx.Lx.BH6HLxL|$8LvIHEBTBB LrI11+fD x#\fDD#u@H#t.D)AB A2ARMr AIDD$/11|t+<HIL3HH8[]A\A]A^A_DHSh1HLc:HHShHSIL{HT$HPHCH,H MHDIM9r_HE t{HE@tqI$A?HH/HHHHIM9sfE @L+|$IMcILsfI$B tHB@{HH3I$fHWhLc2HHWhILw@HUB EDHH5E SDb@@rHHHpH&IU8HH HHHHp5IU8H HH4H{fDǃ|H@HHPHHCHHtCHHxuAE9dIFH8IVHHCHYfDnHfWf. rLH߈L$(HL$(u*AD$ t"IT$R ( )HpH1L3LHHHI2H8HPHHHDI*0HCL3Ht~HHxH8HEHCH+HNH耾"HE@HCx@DHHF80xHfWf. lHHT$(,HT$(:IL$A H=HF80#LH%ARE1DfPAE91Hu1DHH)HB <uHBf@ ID$@ HgHHChfDLE1MEZD$0Eu`IE1HPHT$8Hx tLHLcHU1HJHL$@Hz t HHHHT$8HL$@L)H)H9-LHE1WA1LH4HsHHE1E11HHHD$HD$$HuLHLHLkTAE1CP;CTH71LH蚸HHHD$(LH SPSTHShHH;SpHShHD$(LH+KHHH IVHT$(IFHT$(HHH1L3UI6HtMF t*HHt=H@HmEt*AI@HHxuE1HLHAD$0~HCTAE1HD$8&E1CP;CTHAD9d$01DLHHHD$(EHt$8H踷SPSTHShHH;SpHShHD$(LH+KHH t HIIL31HH{L3XI6HtMF t*HHt=H@HEt*AI!HHxuE1HNrLH9HHpH+HmHIHBf.1HHHDHHLHH,tHHLHw*Ht$0HMLt$8]*LhDHfWf. LHLT$(ALT$(GLt$01MMM1ɉLHHt8IuD$E1HD$$E1H1HHA9}MLt$0EzIFHPIVHHCHESLHZHt$0AHJA9yHt$0H4MD$8 H*1HHD$@;T$8qH E1IHD$HIw1DHHt$01DHHHIuHAD9d$8}HHuHHH谹Ht$@E1E11HHD$HD$$pHeIUH9UtDDHfWf. HHShHD$(JLHHmAHl$0 11ɉLHHt9D$HD$E1$Ht$0E1H1HHA9}LH['HfHShHD$(PH$HF80MLt$0jHHF80PHH5HD$0LֺPHLT$( HLT$(LAMELPHLT$(LT$(HEAHLIDMD H.GAD$ LUr|$0uGHU1Hz Lzt HHA)E9s\HHuHHE1lA1HHIHuIuHcHHE1E111HHD$HD$$HKHuHHH諶HL$HHt$@E1E1HHD$$HL$1jIuHHHcHT$HE1E111HD$$HT$H%IEHIFHUIFIVHHt$@L3I6HtbF tsHHtRH@Hv2IAG %H߾ HH迵cHtHF80uH8IHCL3HtHHxtHfWf. H@1AWAVAUATUSHHHGhL7Hc(HHGhHHoHl$8HH+GHD$ HGHPHGHHD$L Ll$@A.HH@IEAIAHI9HuAF tuL9% =uvHFffDH(HI9rHuF uHI9sHcl$ HHk3H1HFf1Hi+L+t$8H5DIAv:HH1[]A\A]A^A_HfDHEJcH@IEƃ+HD$pHT$PLL$hLD$`HL$XHt$HH|$@H$1@Ht$HcHHkHD$@@=HcD$ HL$HDHHHPHCHHH[]A\A]A^A_HD$xHT$PLL$hLD$`HL$XHt$HHD$HD$pH|$@H$1jkH|$@1WXHt$HH|$@1?@HT$PHt$H1H|$@"#HT$PHL$X1Ht$HH|$@HT$PLD$`1HL$XHt$HH|$@ٿHT$PLL$h1LD$`HL$XHt$HH|$@譿H5XfHHH\$Hl$HLd$Ll$H(HGH/HPHGL$HG H)HH HH ueH LMtWLjLHLH AD$@uyHELeHHCHH\$Hl$Ld$Ll$ H(fD"tSHEH HUHHCHHHH7LHwH=21I;f.H\$Hl$HH/H?HPHEHUHl$HHCH\$HHffffff.H\$Hl$HH/HHPHEHUHl$HHCH\$HHffffff.ATUHSH>Ht`H51I%HqALH軮HLHH9H;u[]LA\[]A\H8H\$Hl$HLd$Ll$Lt$H(HGH/D` AA`AaH HWpHwhHOxHHo 1H LhxHC H)HHC@"\MtlIu1HHHxHEIu1HHH[HEEeHHHEHH LմIuHaHEHCH+HH$Hl$Ld$Ll$Lt$ H(fDHuHF ~HLhH DHHpHPhHpHL@xФ "H=D1IHLuMHEtA`IUHH臮HCL3H-HDHHH]H`DHuHF % =ti1BIH LHHpHPhHpHL@x "u"H=L1 I@"tKE1Ln@fDAUHH@ItH=1袾ItfH\$Hl$HH/H/HPHEHUHl$HHCH\$HHffffff.H\$Hl$HH/HHPHEHUHl$HHCH\$HHffffff.AWAVAUATUSHHHGL'Dh AA\wA]A[1HC L)HOHC@"SHHu1HMl$_HH1ID$HEHHIתID$ D8IH H}HHHL H HHE<$tHPHt LH蒫AF DeHMu(蚿HHIELȰDeH|HHIELL8裰LH蘽LHIE艽IE Hu1H7HH̩IE(#Hu 1HMf HH螩IFHu(1HHH聩IFPHCL#HH[]A\A]A^A_I4$IF % =]1~HH HHpHhH8Lx "H=WH18HHMt$HID$tA[HUHHũHCL3HH[]A\A]A^A_@HBDLL H荻I DH HpHhHxH8踿  H HxI4$IF .HHhH HpHhH8Lx t"MH=1H7f."E<$AF  HULH聨E1E1t1LHE1E1t1HH"H=w1IHfHnUHHZ DHfDE1E1t1HH@HuH='1ƸfH\$Hl$HHH/OHC H)HHHH_HHEHPHUHHCHl$H\$HHfff.H\$Hl$HHH/OHC H)HHHHHHEHPHUHHCHl$H\$HHfff.H\$Hl$HHH/HC H)HHHHHHEHPHUHHCHl$H\$HHfff.H\$Hl$HHH/HC H)HHHHHHEHPHUHHCHl$H\$HHfff.H\$Hl$HH/HHuF t2HxHPHEHCH+H\$Hl$HHfH\$Hl$HH/HHuF t2HxHPHEHCH+H\$Hl$HH.fH\$Hl$HH/HHuF t2HxHPHEHCH+H\$Hl$HHfH\$Hl$HH/HHuF t2Hx/HPHEHCH+H\$Hl$HHnfAVAUATUSHGHH/D` AAPeAQH HHHHǀ H LHC H)HHC@"dMtrIu1HHHNHEIuHvHHEEe获fAHEHAHH "Iu1HdHHHEH+HC[]A\A]HA^f.HuHF % =1HuHIF HLpH fAMLHt 1A}tLHLEDU "MtA}LDH=LD1wIsHLu\MHEtAP~IUHHHCL3H[]A\A]A^@H89DHHHճHDHuHF % =1趮IHuHF % =LvH MLHt 1A}tLHLLȶ P"u>MtA}LDH=LL1.I*fD"E1LnHuHF HUIDLn AUHHfbHCL3Hv1H膭IfDH=~1zIvf.H\$Hl$HLd$Ll$Lt$H(HGH/D` AAMANH H(H H0H賘 -H L0HC H)HvHC@"MMtOIu1HHH)HEIuHQHEMceHHeHHEHLHCH+HH$Hl$Ld$Ll$Lt$ H(@HuHF HLhH DH(H HL04 "H=}D1輯I@HLu褲MHEtAMIUHHOHCL3H'HDHHHHoDHuHF % =tq1IH LH(H HL0d "uH={L1I"tKE1Lnf.IcUHH9@fI_fDH={1ZI{f.AVAUATUSHHHGH/D` AAJIAKH HHHHLݦ H LMyHC H)HHC@"0MtmIu1HuHH HEIuH2HEMceHJHHEHH LEeH(HHEHLƍHCH+HH[]A\A]A^HuHF HHuHF Lh HLpH DHLHHLH4$D "7H=`yDD1bIfHLuLMHEtAJ>IUHHHCL3HH[]A\A]A^H eDHHH转H.DHuHF % =1螧IH LHHHLL "u'H=]xL1UID"cE14g%4WLnTAUHH虋@ƿHuHIF H$I@H=w1蚪If.AVAUATUHSH HGHD` HG H)AHOAGAHSH HHHHL\ H LMHE@"MI61H貼HHGHCIvHoHCMcfH臬HHCHH L!McnHeHHHLMfMu0&fDI4$LHHIHI<$HE H)HHH޹HЩHH3HF HLhHHP  HT$HH蔤Ht$IH LLLHHHHT$DH$进 S"YHT$H=tLD1/I7HEH]HH []A\A]A^HLkMHCtAGVIHH訖HELmHH []A\A]A^HDHH޹ pAGH8H3HF % =1HLIH LHHHLL "u%H=sL1I "E14%4HHrHt$LpLn>IVHHIcNHHHELmHfH;IsH=s15I=DH\$Hl$HLd$HHGhHWHHc(HHGhHGHpHHoL$p H膪tquEH LHFAD$@ute<tMHHzHcLH跄AD$@t LHHELeHHC[]HA\DH봐H뤐H萢딐H\$Hl$HLd$HHGH/HPHG1L$HHLAD$@uJHC H)HHHH"HHELeHl$Ld$HHCH$HHfLHATUSHHHGH/HPHGH|$L$ HC@#HuF HHxH$HH$H+T$LHHAD$@uHHC H)HHHHPHHELeHHCHH[]A\f.LH-HߺHf{_ff.H\$Hl$HLd$Ll$H(H/HGHuHHPHGF L$HHxܨAHC H)H~tExOIcLHIAD$@HELeHHCHH\$Hl$Ld$Ll$ H(f.HEH HUHHCHDHHHHqDHEfDLHcAUATUSHH8HWH/B#bHuF HH@Ld$(HHD$(B f%f=2]H LHoHL IHC@"HC H)HxCP;CXIMIcT$Hlf'EL$ED$ H5fHHH IcT$Hf'HAD$lD$A$D$AD$$1裼HHXHEHCH+HH8[]A\A]MtHC H)HGRCP ;CX+Mc,$HgHHEHLMcl$HHHHEHLMcl$H)HHEHLMcl$ H HHE HLMcl$HHHE(HLMcl$H̡HHE0HLjMcl$H譡HHE8HLKMcl$H莡HHE@HHHL(Mcd$ HkHHEHL @HhD裐H LHP=HL IPf޲HS0DH#Mf.fDHHH荞HŋCP;CXr빐HEH HUHHCHH8[]A\A]@E1Ld$(L蛼HSf. H苐fDHH HHffff.ATUSHHH/HG H)HAHLeH*p H*^H$趟HEHH$2HC@"H*p H*^H$`ID$HH$۟H*p H*^H$(ID$HH$I蟟H*H*p ^H$I$HH$hHCL#HH[]A\DHػ"DHHxHH\$Ld$HHl$Ll$Lt$L|$HHL/HGIuHPMeHGF H,HLxIuMl$F HLpIt$F H@ugDD—HcHHHH?{E@t HH輣Il$HCL+Hl$ H\$Ld$(HLl$0Lt$8L|$@HHfH1H߉D$sD${fH[^fDHCI..Ifffff.H\$Ll$HHl$Ld$Lt$H(H/HGHuLmHPHGF L$HLpHuF tZHxDLHcHfzAD$@t LH蓢LeHCL+Hl$H$Ld$HLl$Lt$ H(Hߺ[FIrfDH\$Hl$HLd$Ll$Lt$H(HGHWL'HH@#H,ʃI4$Ml$F HL`IuF HDpueDD2HcHHHH?]yE@t HH茡ImHCL+Hl$H$Ld$HLl$Lt$ H(fH1HGDH3AeI;fDHHxE@u#HC L)H~&Ml$Il$E1E1HH͠LLH襘IH\$Hl$HLd$HHWHGH/1B#HJL$tHuF HHxHYLHcH xAD$@uKHC H)HHHHHHELeHl$Ld$HHCH$HHLHHߺ۫Hqff.H\$Hl$HLd$HHGH/HPHGL$躬HHcLLwAD$@uLHC H)HHHHTHHELeHl$Ld$HHCH$HH@LH-AVAUATUSHGhHL'Hc(HHGhHGHHoHPHGIL+wL,I @u+HI9r"HuF u1ҹ"HtMcILHk 1H覆HC@"@LH)HHI4$H蘖@ Hp11HwHcLHLsuAE@uzHC L)HLLHIIFMnHHC[]A\A]HA^@McID@HE1E1L1H芕wf.LH荝vHuHUE1E1LHO<H1HOfHƹ1H薴HfDAWAVAUATUSHHHGhL?Hc(HHGhHHoHH+GHD$HGHPHGL4tXݬ u+HI9r"HuF u1ҹ"HtHcl$HHk1H蠄H$p裏AAA;8 r踏#Atۅ@EAH$HH$|HHD$(ϣHT$0HHT$HѺ谣1HDH8A4藚8tHT$(HІHT$H辆D8ǃ4H1L$x HCEAHD$L⋼$pH)I47H~HŃv؋$pv $xǃ8Hǃ4DHcl$HLHHHkqrAF@HC H)HELeLut$p,v$t vHCL#HHĈ[]A\A]A^A_@$pu0Hc4LHqAF@HcD$HT$HHS H)HHHHHPLpHCHHtf$t|uH\1H诃0fHHH腑HDLH}HT$(H覄HT$H蔄$|8щ1DN~ ҹx1 ȉ4LHH5RH1u|Et$$pt$t1HC@"@u3LH)HHvCD$tELH1Hd~D$tHuHUELH>I7Hߋ$t蚐@ tH@DHHq몹1HH|fAWAVAUATUSHH(HGL7HPHGI6LMUA}  HeuH1 HHWE@ID$Il$HHCHH\$0Hl$8Ld$@Ll$HLt$PHXfI MXE1BD"1H!IHt1Hif.HHUIEH LpMIHp@Ht"H^cHcHH?@Hp0HH{}ϐLUHcHH?f @ fHC1LHH  kHoH@Lh F H裒>HCLLHH 迈f1dIŐ}"1H豕E1IfDH5wHHD$(HBH8HJHHC[HHBH HJHHC[HDHBHPHJHHC[HDUSHHHGH/@#t6HuHF tuHHH@HHH+HOHHC@ %- vjHBH8HJHHCHH[]f.uSHfWf. ЃyHCH+HH[]H ]iHcH DHHxHtHF80HBH HJHHCHH[]Ë<;T$fDHBHPHJHHCHH[]HPȋ8%=8%= 8%=`mD8%=pMD8%=@P-D8%=0 D9<;P99fD賁H\$Hl$HLd$HHGH/D` fA@#t:HuHF HHH@H?HH+H(LH+AԁHCHKHpL$~{Df.H+HH$Hl$Ld$HusbHfWf. ЃEHCfDuHPLHFAD$@fHLeHCoHHxHEHPHUHHCH@f.HsHF80\H* H*\LH^iiAD$@[LHhnKHEH HUHHCHf.H* H*h@H* H*xsCH\$Hl$HLd$Ll$Lt$L|$H8HGH/Dx#At:HuHV pHHHRH&HH+@ %-HdHAD,HdD4HdD$HuF lH~ED?khH8HEHCH+HH\$Hl$Ld$Ll$ Lt$(L|$0H8E1AAA}HHH+H ADH^HEH8HUHHCHuD@yAHPHEHCH+HBDu;HfWf. ʃ~H+HfHHzHEH HUHHCHfH߹1HfH HEHCH+HfDHEHPHUHHCHofHSHV:0<|HC!ffff.ATUSHGHH/@"HH(HW@ Hf%f=IgL9Xt9HHp1fǃLH^aMt A|$ A HC@"tRtHbt.HC H)HHPH8HEHDHEHCH+[]HA\HuHV сaLfAL$ ρu`P LE1ffIHHHp0HHgH ƿzSHVHHLxH9aHHEPHL>LHaHHEXHL>LXH`HHE`HLHh!RL`H`HHEHLRtI fLXI90IԾHhzqMH ltID$H@8HIDHHHHH[H1c[/fD"1Hi}Hfy @ f%f=Zǃ HyE1fHHHu]H)D1ҹ"H|HfHF HvH b'Hp@HKH[DifDID$HEH@+HCH fMtA|$ t1LHnE1ID$HtHPfDHHDH\HDHN"1H{HffH5R]1krH߹"1y{HCfH\$Hl$HLd$Ll$Lt$H8HGL'Dp I,$AHt } BHHG\H@LhMIEHx0HZcHH/HHŋ@ H%_DE D$ HEH@HEHUH@IEHp0aAtYAT$ HEHPHEHUH@I,$HCL#HH\$Hl$Ld$ Ll$(Lt$0H8@HuHT$ Zy@H I$HCL#H믐Hvu_a @fDHEHLhMHuHT$ xB{DLHHglffff.H\$Hl$HLd$Ll$Lt$L|$HXHGL/@ T$ImIIuIF HLxIuMeF uHH@HD$MmIMt A} LHYH@LpMIHp0HHED|$_|$At@|$ZHCL#HH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXDHUHzE LD$DD%_DE HBHEHUH@HEDH@D$HMWxIT$HEIHPHEHUH@I,$FH[tS>_ ID$H IT$HHCHHlHD$fHkIDIEHjLpMyXfE @uXDHE@HL$D$D$ADDDG6HPII$HfHEH@HD$HMAD$DHHeHUI^HHCH;L$LLH.iHHj(HT$"HHvHHD$`fDH\$Ld$HHl$Ll$Lt$L|$H8H/HGHuHPLeHGF L,HLxHmIHt } HHVH@LpMIHp0HtxH`\DV8HcLHHH?5AE@u:ID$Ml$HHCHH\$Hl$Ld$Ll$ Lt$(L|$0H8LH]Hqugz\H  ID$IT$HHCHViIfDHEHLpM HCLHHH Lgxffffff.H\$Ll$HHl$Ld$Lt$L|$HxdH%(H$81HGH/HPHGLmL4D$,L}LeMt[Mt A|$ Hspt.HCH fMt A|$ I1LHf,[ H IHEHCL+HH$8dH3%(H$HH$PL$XL$`L$hL$pHxfDID$H:HPH-HHp0HA jLHHT$THT$H@L`HHp0HT$0HHT$YHt$HT$,nD$ I$Hz0t1LH2I$|$H5ܐHT$4HT$H5ɐHB0M<$|$4IG8I$ƀsI$Hp0HtqHx8t^D$1;01nL$,HT$LH=QAF@t LHZLuHCIL+HW@HMI$Hp8Ht HMI$Hx0Hx8|$5IGHL`MwID$HHPZ@Hl$Lt$HH\$Ld$Ll$L|$HXHLcL+LsMtMuCH IHCHELuHH\$(Hl$0Ld$8Ll$@Lt$HL|$PHXfDAD$ u %PvH5@'HzH1N5@AU сu΁ w vLHQH@H@HD$A} 4LH_QH@LxHT$HHx0t 1LH{0IHx0t 1LHd0H|$KHD$|$H56L :2H5*ID$0M'|$"2ID$8HT$HHP0HP8IHP8HP0HT$HƀHHp0HIHx8|$1;01 l|$1;01IlHPHCHELuHIEHLxMID$H|H@HHD$eH JIHp8HtHI|$2܋|$2Dxff.H\$Ld$HHl$Ll$Lt$H(H/HuLeF HLpHmIHtg} HHJOH@LhMtHIEHp0Ht;HTDExEID$HPIT$HHCHCDE1HXj;U ID$H IT$HHCHH$Hl$Ld$Ll$Lt$ H(DaIfDHEHLhM) fHCLHHH _Wffffff.H\$L|$HHl$Ld$Ll$Lt$HHH/LeLuL}Mt A|$ LHMH@LhMIEHx0AF %IH@HD$MfIELt$HHp0;SDL~MxzHPIHEHCL;HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHfDHhtHCLLHH ^VS H IHEHCL;HDID$HLhMHI1H>f.HT$"LHCkIH\$L|$HHl$Ld$Ll$Lt$HHH/LeLuL}Mt A|$ LHLH@LhMIEHx0AF %IH@HD$MfIELt$HHp0{QDLaxzHPIHEHCL;HH\$Hl$ Ld$(Ll$0Lt$8L|$@HHfDHftHCLLHH \Q H IHEHCL;HDID$HLhMHHG1HG<f.HT$"LHiIAWAVAUATUSHHHH/HuLeF *HH@HD$(HuIl$F HH@HD$ It$L}F HH@HD$MgIGE1LuHD$MtA|$ LHJH@Lh1MtA~ LHIH@HhMMAuEu H H߈T$D$eT$D$t'MHE@zMtIEHx0t 1LH(HtHEHx0t 1LHx(HD$H IWHHHCHHH[]A\A]A^A_MCIEHx0t 1LH'(HEHx0t 1LH(T$(t$ HL$0|$FlMe|$0H5Ʌ)ID$0MeH5|$0)ID$8IEH5ƀsLe|$4)ID$0LeH5z|$4z)ID$8HEƀsIEHp0HHx8nHEHx0_Hx8fR|$01;01c|$41;01lcHD$HPIWHHHCHHZHD$IfHZHD$ fZHD$(@IFHEHhHK3fID$HLhMHCHLHH XeHCLLHH D$`XD$fDH@IEHp8Ht H@IEHx0tpHEHp0Ht H@HEHp8Ht Hn@HEHx0Hx8|$4K)HB1H7HfHx8u|$0D)vfDH\$Ld$HHl$Ll$Lt$L|$HHH/HuLeF HLxHuIl$F HH@HD$It$LmF HLpLeI1MA|$ LHDEH@HhHHEHx0t 1LH[$t$DDIALuH5"&IF0LuH5 D &IF8HEƀsHEHp0H_Hx8H1D;0D15`IEHPIUHHCHXf H_CHtHEHx0t 1LHv#J IEH IUHHCHH\$Hl$ Ld$(Ll$0Lt$8L|$@HHHKWIeH3WHD$1WIfDID$HCHhHR1H1H4Tf.Hp=HEHp8Ht H[=HEHx0Hx8D9&HCHLHH TH\$Ld$HHl$Ll$Lt$L|$HHL/HGHWIuHHMeF H,tbHHRHT$@#u@LMtA} tUE1 H]H1 wfDMmIfDUHD$HCIEHtLpMtILx0MtLH1LHGt$y>HcHH?HH!E@t HH3IID$Il$Hl$ Ld$(Ll$0HHCLt$8H\$L|$@HHH@HCLLHH Sffffff.H\$L|$HHl$Ld$Ll$Lt$HhHGHWL'HHM|$HHT$It$I,$F HHRDp Ml$IE1fAM4A} LHHT$@H@HT$L`MHI$Hx0T$E % =[HEH@HD$(LmL$?BʉH9HEH@ADEAI$HHp0Et$L1[E HcHELhA}hHsF f%f=iHS0'HH5e@H1+#?fD@RHEELhDfH.'Ic1HH0A#I$HHp0Dt$L1C#E Hc#HHҐ*Ht$H= HLHcHAG@M}HCL+HrfIEH IUHHGHRfqHDHIHShHH;SpHShIEHH+KH HS H)H~CLhID$Ht}IEHL+nOH541H=H2HCHHHH57LH5?HTHSh@ZHH5UHH#hA~ 4IFfDH\$Hl$HLd$Ll$Lt$H(HGH/@#u{LMtA|$ twHC H)HLHFHPH8HHDHUHCH+HH$Hl$Ld$Ll$Lt$ H(LeHfDID$H{LhMnAEcqLHBHIGHChHH;CpHChHH+SHHC H)H~fIFHHHEHH+~MH581H;H0HCHHHHE5HDHHH%5HHRHChOLH5SHH!Xffff.H\$L|$HHl$Ld$Ll$Lt$HHH/HuL}F HLpHuMgF HLhIoIHHt } HC@ f%f=DLHH>HOH53 HPHHM|$ ID$HGIeGI7fDHEH[LxMNAGCqLHc@HI'HChHH;CpHChLH+SHHC L)HKI@IHI$HC L)HHIl$@5LID$HHHC H)HHHH2HHLe4IcHHEHHL#JH5/1H9H(.HCHH\$Hl$ Ld$(Ll$0Lt$8L|$@HHfDDLHHM|$HPH8HDIHCL;HHHM<LLH2IDLLHLD$1LD$IH M|$ID$DHLD$[OHChLD$<DLHOHHRKDH\$Hl$HLd$Ll$Lt$L|$H8HGHWH/@#HHLfHHH+HDLHIHHrDH@IHCh@IEHc;E1E1LHH@HIED$HD$HD$$Ml$IuHtMH;H)ID$H0F@H3AD$ L/H@Hp(H5:HGIE뭐H\$Ll$HHl$Ld$Lt$L|$HHWhL?HcHHWhHHGHH+WLhHT$HWHOHrH HL$ j L`fMudE1LAHcD$H HHCHPHHHCHHH\$hHl$pLd$xL$L$L$HĘfu A|$ }MtIEHD$(Mm0A|$ IteE1f HLD$ELD$t/MIHx0~LLH;LD$A E1ID$HtLpMtIHx0t<vAE IEH@HD$8HD$PIMHL$01AE tH@@@D$_IHx0,1AE )E1fSHD$(Hl$(HpHF HLhI9Dl$(HuF THLhLl$HHnIL|$PHHp0.L$(Ht$0EIL>IM|$_HktHT$0Ht$0HL1IL?Ht$ LHHL$ A@t HH/HcD$HL$ HDHPHHHCHH@|$_HD$PHt$0HL$_HT$HHHD$H|$_HD$0HD$HLd$0HD$PID$HuLpMhAF]qL3HIDIGI9HChHH;CpHCh^Lcd$D I@J,LkHKDH>H5#1H-H/"HHkHHEHUHHCHtfDHT$P"LHEHD$0HD$PHD$8g|$_UHL$PHL$8L;|$(HL$811Hl$8H)H9HG|$_MMHt$0HHHHD$0 HH+l$0IHHp06,Ht$0H@IIHl$PHHp0,Ht$0DH0I^fH9IHC I/L)HHHLD$Io*HI]'LIGHHH+LD$fDHT$HHvDLl$HHMAE ?tIE@,LHHD$8uLLHLD$$LD$I7Ht$0HT$PHD$_HD$0I@HD$(Hl$(HpHF HHHHI9HuF HHPHH;T$8Hf.HCLLHH LD$'6LD$oDHD$0fDLHAHHbDHLD$+AHChLD$DH{7HHHL$^7HL$H#fHHH;D$8HT$8HH|$8L:H5J H1)AE tIE@T$XHL$HHT$XLH߉l$H?HcD$XHcl$HHD$0HT$0HT$PHHt$0*,HD$8=L:H5H1H11*HsF f%f=it"H@'HH5HH1u8HM#AWIAVAUATUSHdH%(H$1HGhHWL'HcHHGhHH_HHkH)HD$PHGHOHpH HL$hHKHL$H@ f%f=tef=t_H|$HunHcD$PI HHPHHIBIHH$dH3%( HĘ[]A\A]A^A_DH|$HtHD$Hx L]H]AC <,HsLkF HH@HD$(LT$L\$1'M9HLT$L\$vIuF wHHXHL$Hy HD$0L׾ LT$rIRLHLLT$L\$)LT$HL\$0L׺HL\$LT$HL$HT$pLL׹LT$L\$L\$HLT$HDl$ HHP1H(HHx1ҹHHIHOH@Hx0@HULHH$HH$HBhHEHph1ҹHHHEHPXHP`HPp LcLIHI)LpDH߉p IFH@IcFHHC`HChAFC0IFHIv0Iv0H5HMHULz8MLHHHB`H+ApHHB`HLHuOH8IUIEHHHIFXH\$8Hl$@Ld$HLl$PLt$XL|$`HhHHH@pHHH@HHHPHAHEHPIUIEaHE1HD$(H@HD$ IqD LH$HL$DD$eHH$HL$DD$ALpD)MHT$(HHLH+T$ LhHPHLzHLHHLhHzHHUHHR`H)PpHUHB`HD$/f.LHH%%HdH1 HPHz0AHUHBpHUHJ`HL$Hs%HEHx0HLH@HH E1H1LHH"E tAHEHt8uGH5HHl$@H\$8Ld$HLl$P1Lt$XL|$`Hh"1HH)(H5H HHHl$@H\$81Ld$HLl$PLt$XL|$`HhH$HCHLHH H5AHHLuH5HIFhHEHphI$HHpH$H H$HBxffff.H\$Hl$HLd$Ll$H(HWHB#tXH(HHtLHS H)H~SHt} tdH8HPHHHCHH\$Hl$Ld$HLl$ H(fHS HH)HHHH!HUHtLjMtIELMtnIT$Hr0HthHBl u7HHHCHl$H\$Ld$Ll$ HH(fDH"HHUHIE@IHE1H1LHHrE t9fDAF @uUHELuHHCH:fDHHCh(LHu HH5DLH% LHIF)H\$Ll$E1Hl$Ld$HLt$L|$HHHGHWL'x#HHL4tM,$IHHEH@8HHEHEH0HHPE1A HߋJH$V Ht H9(HC L)HHHM|$wHHID$MtA} tcLHLH5HCL;Hl$ H\$Ld$(Ll$0HLt$8L|$@HHHC L)H~KH M|$ID$IEHtHxufDLLHI>DLLHmIH1ALH^AF@uHC L)H~"M|$Mt$LH-LLHIAWAVE1AUATUHSHxHGHHPHGLcHHD$(HCHD$8M,$AE <„uEr >IEHx1A9DLDII9uDH3AA))F <„HD$07Ll$@DAE1LcN|#AG <fIHpH;H9IG~/HcDH)HBH48 fDHH9HuIGKD%IIuLd$HLD$0B<HL$XHT$PE1LgMAt Jt3F@uIIt'Od5MtJt3F@tHI9IuHt$(IcHHD$(@@H|$(Ld$8H{HEI@"tGH|$0t?H*L$h^ XH*D$`HIX$I$HH$@HELeHHx[]A\A]A^A_fDIGf@ sKD%f1LH{AE @IEH@A9DLII9DfDIUB <DH11f.zrH,H*\YBH,H|$`HD$`HT$hH|$0u@ HAE % =@1LH)HHM4HpfHHVB DLLH $DD$ LL$ ILL$DD$ $Hp@H $ $DH H1*H&H5H1AWH5| AVAUATUSHHH/HELeH$HEHHD$51HHI%HI!H"HHHIHHChHH;CpHCh@HH+SHHC H)H'LuH$L}HEAD$ fI$HxHIoIGHHHELe1HHIEHpH+HHuuiHShHH;SpHShHEH+CHHLuH$HE"1HEHHQHELe1HHIEHpdH+HuH%uQH9HCH+HH[]A\A]A^A_HIoBIGHH Ht$HߺP~HUHt$E1E1PH|DLH8 HDHHHHCDH5 H+HH LHH+\HIHHH5[]A\A]A^A_1fH0HChHHShKH\$Hl$HLd$Ll$Lt$L|$HHL'I,$U ʉ֍A߃qIDuLDHHID$HPIT$HHCHH\$Hl$ Ld$(Ll$0Lt$8L|$@HHDHHzHItH@HmLhMtIEH1HHp(L$HIL$tx tmA}N+HU9AMH+H1Hof HUHjHnU H@H@HHD$tHChHH;CpHCh&LH+SHHC L)HI@IHI$HC L)HEuHMl$HID$HAL,HL+QHt$HHL#+HHL$YHHL$pDLLHL$L$I3DLLHI9LHHHg H:HChL$HPI$HGL'Hff.AWAVAUATUSHHHHGhL?Hc(HHGhHGHHoHD$ LeLmAT$ ƒ 3HfD$,qHT$IuMHM)IKIuF -HHPHT$8IEHp1Hg HnHT$HH)HPHHD$ HPLD$H@H[H@(@ HHBHHL+{HILzHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC IcH)HH9MEt&A1J fHTHTHH9uHH3I@1HHp HPHH@L*HHHH+SLHH HHQHHRHSHH HIH HK HH HIHHHHPHHct1T$,LHM9eLL$,E1E1LHNHFH+l$ HHcHHkHELmHHCHHH[]A\A]A^A_fH D$,PHT$j M1LH HL$FIMA <„H8HT$H5HHD18HH[]A\A]A^A_ÐH HPH@H(H@(@ HHBHHL+{HILzHHRHSHH HIH HK HH HIH4H3HHPHChHHHH;CpHChHH)HHHC IcH)HH9Et(A1J @HTHTHH9uHH3Ht$1H@nMt$IFH\IHD$,qHD$HT$8 HHT$8HHA@ JDHDHLD$]LD$HHDH:Hf.AD$ 1, H HPHPHPHBLD$sHHt$LD$k HChHSLD$Ht$ H HPHPHPHBHHt$ HChHSHt$SIFID$H@HPHtx t7HwH5H1FHH5BH1XH@H@HtHH@8HuDH\$Hl$HLd$Ll$Lt$L|$H8HGL'@#E1tM,$IM4$IMt A~ HC L)HMt A~ ^1@ Hc tHCHLHH . ID$H IT$HHCHH\$Hl$Ld$Ll$ Lt$(L|$0H8fIFHTHhHGE=qHHHI!HChHH;CpHChLH+SHHC L)HTIGIHMI$tHC L)HIIM,$HL#6H51HuHHCHfIFHHhHHELx0M}L#LHE1MAtAE MeHEMDLHt,HEHp8Ht@H;p0t:MDH]u!HH HPHHHCHH;HHPHPHHHCHHLLH IDLLHIDLLHIOD"1LH IfDHH HHJ"DH HChH\$Hl$HLd$Ll$Lt$H(HGHWH/@#HHL$HuF HHxQHAŀ}LLHAD$@uWHC H)HHHHHHELeHl$Ld$Ll$HHCLt$ H$HH(DLHH1HmfnH=AA*Ejffff.H\$L|$HHl$Ld$Ll$Lt$HxHGhL7Hc(HHGhHGHHoHD$(HGHPHGL}HHD$ LeA|$ ID$LhMt`IEIEHx@t?t1ID$HHH@8HIDHHH1HAEM9XII7F gHHHHL$8HVM)E1IIE1LHDt$L|$HD$$)H+l$(HHcHHk% WHEH HUHHCH@H5)&H]1H\$HHl$PLd$XLl$`Lt$hL|$pHxúqLHHH@HHEHChHH;CpHChH+kHH(L3H5t1HBHjHCHcfDID$H8H0fHT$8"HHL$8HHc Ht$ HTHD$ @@uaHT$ HEHUHHCHD1@HHCh'LHmHHDHHLHH@.ffffff.H\$Hl$HLd$Ll$Lt$L|$HHHGhL/Hc(HHGhLHHoH)HH]MeE1AD$ udI$H@HD$ID$HtDH|$tI_I9s%AGx@HI9s fyADA A@BLLD$LD$*LHcH8ED-AD-LH0AD-LH(AD-LH AD-LHAD-LHAD-LHAD-HLIHE@LHcHED-AD-LHAD-LHAD-iLLHHL$LD$LL$H|$(IHL$LD$LL$HcED-LHcHED-AD-HL1LD$H5@L1H5L1ffff.H\$Hl$Ld$Ll$HLt$H8F IAHH@HD$LvExyCE f~u1ɃIct AHcHcHT$HDHHH9vv~!x D@1H\$Hl$Ld$ Ll$(Lt$0H8úDDDHcwfDSA.!HfHT$"IfHL@" 9@0LA.AT.H8HAD.H0HAD.H(HAD.H HAD.HHAD.HHAT.HcHA.fDH9A.HfL;HD$H9]HUH9A.H8DfH97HEH9wfA.H"A.AT.HH A.AT.HHAD.HHAT.HcH@HMH9wAA.HHHAA.HHHL1肶 HMH9w6AA.H0H8HSHBL1CH]H9w'AAH0H(HA.H8HHuH9wDAAH0H(HA.H8HAH HH5L1H}H9wAAAH0H(HA.H8HAH HA6HcHqLEL9wKAAH0H(HA.H8HAH HA6HHA>HHAAH0H(HA.H8HAH HA6HHA> H\$Hl$HLd$Ll$HHH1HAIF HH@HD$HVC D$%߉C I $A t H@A@t`HL$HD$ML$AE1HHHD$D,$&C@ux|$t u0H\$(Hl$0Ld$8Ll$@HH C fDE1E1t1HHfDHT$"H2HH}xAWI)IAVAUATUHSHHHHT$ HL$(B HH@HD$8Ll$(IEE`McLL$8{ HIcIH@H9E~tEMLT$0 IAI7HtHF u>t HVBu/<7„tHH@HD$0IDEHH@IQH9H01HHDD$C DD$߉S t oE~"HD$(HPHtHHIH|$8t|E~9HT$ HHAIUHHIϸEC@t HH蹼HH[]A\A]A^A_fIUHHAI茸EDHVB DHHDD$LL$辰LL$DD$+Ht$ HT$8"DD$DD$DE`E1@Lҹ"HDD$LL$LT$AHD$0LT$LL$DD$0HH譝DD$|HHDD$`DD$fffff.AWAVAUATUHSHHHGDh#F t AlHEH@H$E1H/HCD`#Au@E @u$  HUHRH$%DE HCD`#ADҁD! $EkA@H NE1Dd$XHP(HHCAH1HD$@L`D$HD$$ LHHD$8H|$Pt"H0F +HH@HD$8HHD$PE HUHRH$HMHL$h  HD$hH$D$xHD$0H ݮE11ALHD$HD$$ BHHD$ptH0F HH@HD$pt$X/HD$hL|$hH$M1E1HT$0H9T$hH ޢ&E1H$Dd$HLl$hHIsfbH;D$PAEAII9v@L$XH$L)LL|$ Hl( Hu HT$ H,(II)N40L;l$0sNHt$@LH9H9D$8vAUL1H߃D$HAIHIj@Dd$HH$LL)T$XAŀ|$xXEOAHEHHE @tHHE E HD[]A\A]A^A_% = H&H5̻H1EHP(HCH NE1AHAL<1IwD$HD$$ HHD$0t H0F HH@IHD$0IE ]HUHRH$Lm D$8HD$@u_IlE1I9A}IEy fDHH9ŐQ8yH$LHʜH$IHD$@D$8IlE1I9sIH 1&E1HL$`LLHL9tH9D$0vAAEHT$`II9rǀ|$8DH|$@f3EE  HUHRH$LmLx(M,E Mt@#xM9vMLLE1.HpAL9 HxHHI9IH2@A OyÃLHuAfH$"HHH$E HUHJH$LmHP(HHT$0YU Mt <E1M9s-HT$0AEBxAAEIM9wU @HH譴E .HULrL$LmLx(ME Ot5M9E1f.AEIfAfDu A~&L%s&I$L$HL訔L%p&HH5E1H1I<$oLHwT$ I4$HD7LHX1[]A\A]A^A_C< l< d< \< T< DLf@HHx tA u7@6fD Dt& tHA t t uH<.C< < < < < fH+qA~}ALLH)HH?HHHHHH H*XL A~1'HCI9A~2 AFMf< t< t< t< t < @AFIVtN< tF< tB< t;< t7< f+< @t< @t< t< t < @HuѾatA$H5r&H=I1萐AWAVAUATIUHSHHH9H$DD$DL$ BHH)HHH*Xf.6H<諒HxILpL,$HFIFIIL9r+IuHPHtF uչ"1H֠@H+$HMIOAD$ I\$;/Hp&Ll$HLHM5;u[HxH8HiLH!tM'L$ T$HH}HmnHĸ1[]A\A]A^A_ÐHxHhLHs1ҹ"LHΟHÀ;/%HKo&Ll$HLH#6fDHHHH H*X-H HxH8/t1Hn&Ll$HLH賏HxH8HgLHrHxHH5Kp&H=1ݍDATUSHGHH/@"HW H)HwHP(HCHXH9 >H9fǃHǃLeHH+AD$ Il$HHHlH H蠃[]A\Dfx@#n蕚\H5.H1輔@IT$R сX FH= AD$ '"1LHvHfDfl[]A\fDHH}HHCm@ H軙t HjHtHl&H ߁ H1zfDHCHP(HCHHPHHR8HHEHHHH1HzǃjID$ffff.ATUSHHHGH7@"HW H)HHP(HCH,H9XzHt } HHufǃH1H;{ H莘-ǃ f.@#HHH7P сt.L`AL$ ΁1HHRHT$HPHǃHHHL$rzHH HhfǃH:yN H蓗t7 HBHt%Hj&H  H1xH[]A\ÐH+{HCGf.HT$"HHsHHEH8L`HH1fǃHHoyM+I$Hp0Ht1HH ƿlH[]A\Hp@HtaHaDHŃ !zHC1HHH ~Lq? HHCLHHH -bH\$Hl$HLd$Ll$HHHIHոtnF HH@HD$LnHՁtQC /HL$1HHHL贀H\$(Hl$0Ld$8Ll$@HHfDC tI$@@@uHD$HL$HT$LLD$HD$hV|$HL$IHHL$hxHHP1[XHT$"I HH5,HHP1[LHL蚇HH1f.HT$LLHfHL$IH,LzHZ|,L1=uH\$Hl$HLd$Lt$HLl$H(~ IAtQE1 H蹓~ HH$Hl$Ld$Ll$Lt$ H(f.HFHtLhMtIEHp0Ht}DLH$Hl$Ld$Ll$Lt$ H(kHELHHH OYfH\$Hl$HLd$HHHt~ tI6F uH~L1H߉$\$E1I9qHv~AHa~IHL~_LH7~qH%~=HPH HRHH Hy0HHHHp0#pt$ DUArHPHHRHH Hy0HYHHHp0oLeA#HPH3HRH&H Hy0HHHHp0YoDjAL1HZL1HZL1HZL1HZgL1HZL1HZHz|AA|$IfA|$GID$LDRHHhH@HP"HHhH@HP@HHhH@HP1LHH$YH$x uHPHtHR71LHH$YH$x zHPHmHRfDR1LHH$bYH$x HPHHRfDAWAVIAUEATIUSDHH$HT$XH$L$DHD$hdH%(H$1HHT$Pt ~ NLL[gH@HhIT$D$|HDŽ$ADŽ$ HtB f%f=D$gD$`D$fD$KHEHp0HjLlAHE-T$CExE;$0|$C|BHP0Hp8H9 H L`HELHp0T$(`T$(uuE;$0!HED$C T$LHD$8HD$0mIFH@8HIDHLxI$PHt x L|HIWH5j1{HHED$C D$LHD$8HD$0EH@0H@8_D$EaCtA$ L$Ƅ$#L}HT$|Iu賀AHcT$DHt$XL赁D$LT$pAعL1LLT$LT$(HD$pD$1H$xLT$(ID$KLT$PMLZtHE<< <> LLjAHE<|tfDH|$0>H|$8t&Ht$8LTHT$0H9T$8t Ht$8L^D9l$Lt$LDCI$(DLeL(A} + IELLpH@I$(T$LeL(A}  IEMcLp|$K,LLiAʼnOAD1]LLD$(]DDSBT$(D10DFHt$0LKxHt$0LiL|$0AEx1i1E9$0IƾDL$ 1~L$ AHELx0HEDD$|EIHEsEx>uA$ Lx8E<-I$DSA$%=tHHE<><<H$HT$xDD$xaHEƀs~fD$<#t 3t @<?D$EtL9)A|A$+ $D$|SH5Si1L)RIA$x>LhƄ$w|$`D$| Ƅ$bAE<&uIAE< t< t< t< t< t<-D$E+MAHD$PH$E1E1LLDT$(H$HD$$LD$nDT$(HID$KE"<:PP<_HL$XT$DH5^L1}pDHLTAHCI9vUA|IGuJH9AG0H t t t t  H9wHEHƀ<H< t< t< t< t< t|$KƄ$r|$ftƄ$t:-zLH޹H)LLl$pGvH$E1E11LHD$pLl$1D$H$nmD$KILl$PH]1LJƄ$bnDI)@H< t< t< t< t< tIf8Hl]1LHD$(JHD$(!HULhƂaƄ$aLLSHEH@0HEL9L9LnoL9HELgL9IFHQ^LH@8HLEIHH1H$UHp0L]HF@  LsH|$X U\HHF&H >\1 LTHELLSLLS|$gƄ$tD$`A}=I]$u%H|$htL|$hD$KoH< t< t< t< t< t勔$FHT$PH2V HDhDŽ$1ۃ|$`D$KqHD$PH$E1E1DHLH$HD$$D$jHIEH۸A||$gƄ$tz|LVeIHEƀ-D$K^ Lq\ HEfH@H@H HHx8H|$fƄ$tfIFLH@8HLEILh6H dL9HDSMEHA[HDL1VRL$LLLLD$(@$ILD$(fA}$A$HcY1LL$ FL$ LL$ lL$ tLCG?0<  $HT$PLH2]HHHALx01Mt}LLHT$(ADLLVZLAK5L9LkL9HT$(LHT$(?cL9HT$(HLsuHEƀsLD$EHDHL$`HLhTHID$KHA$|HEH5XL1tiAEI]t%< t!< t< Dt< t< t <:@LJ4IHEƀ-$ MD$KLA LHADmHU L11Ne|$fƄ$tA}]$OA$OH^U1LB9LhDqW8XfD]L$LLLLD$("lt hOǃlǃhHEHp(HHHT$HHD$8HT$02HkP1HHF-HEHp(H.^HEHHp(9HHITHEH85H0LHJHEH0F @HH@HD$HHVHHpHL$HHD$HD$HD$$AE1A/HpwH|$HDh%T$$=LA}*LPHI HY1LHJLLAL)LH7HpHL$HMnALH7*LxPHIuA}It$HphHpHL$HLHJ`RII$IT$HhAAHHHD$HD$HD$$^.~HM~H A}H(H S7HpHQIH1H;fDHM,QHpHT$8D [%=nHpHPH1G@HT$0HiH:fDHRHEH0F HN1H;H|$HxHp8-hH5GAH :HHBHEH@HH@0DHhHBHhHH@H@HHp0OlHT$8ƿD;hl#KD9u D$$9tlT$$DeHEH@HH@0HX[]A\A]A^A_fDH DH(H K5HpHMIH1E@fDHpHBOH1E fDHp<5HGKL CO8I$(I$ 4HpH.OIH1\ELLH?XDHH]EH@HHHpH߃@H1oHsJL oN8I(I 3HpH,NIMH1Df.HFHH@HHX1[]A\A]A^A_H|$(tHT$(HHtHh1H&H|$(HT$(HttHpHthHHxx^HVHHH?HH&1]H5LKA6HhTH5:DAHe6HH*?1ff.AWAVAUATIUHSH~ tH[]A\A]A^A_fHFHtHXHtH>u0DHEx"yL9`uLH3HtHHx0Htl/tHHHp0;H9v9HyH9rHH9s?vu@~f.tIHHtHFPHNFXHPHLJHff.H\$Hl$LLl$Ld$ILt$L|$HHHF0LH@HuH1E1E1HtLeHtHLH\$Hl$ Ld$(Ll$0Lt$8L|$@HHf0tRHp<suHD1LPIBHxHPLxL H@G HDրx LEHtL21MhI`uE1M@tHNH5OLLE1ALT$-LT$HLILD>f.SHHHt(Hǀ HHqWHu[fH\$Ll$ILt$L|$IHl$Ld$HDL$)I|$D ILHD$XAHHkHHD$ EEA H1tqATrRAAH-&A(H9wƒAT]DH\$xH$AL$EL$L$L$HĨf.HtHEAEu,Hw#H|$XtATrA@HH۸A1EH;HvUHvJHv?Hv4Hv)HvHH9HɃHH XLL$PE1LLLL$I8HHD$(L$wELT$0AHT$0Ht$(L*HAH@Ht$PHfHD$HE1HD$86HHPHT$HHvH9T$ rH|$0H9HHt$PALEA9THt$P1DL>H0F uHT$8"L[HT$HHDAAE}(EAtz3HPr@_hAt"fS3HPu@_EDAtf+3HDP "AAtf3HDPA t2HDPA@t2HPEE})EAt2HDPAt2HDPyHAeAtfDK2HPCA t02HP(A@t2Hf-HfD0< *HI9w@A$' 1I9H H$*H$HH@HI9DA t@EDI9< ~< v1Lf.<<<H$&HI9v'A9~"< t< tL9@111: HuaIfL(1HLADE \H&HI9GA9>; 51HLH=v1HLLHtI$zE@1I9Dw0A9I$DHLIHH6&HI9wI$E1I9DwA9?I$DHLHH&HI9w8I9< f < 1LHLT$ H=LT$  H H1LHHL$0uHL$0LT$ A HcD$\HZ&MD4O435DL$\E|$w5HYAzO1LHLT$ H=LT$ Kh H1LHHL$0HL$0LT$ A YHcD$\H&MD4O43LD$PAL$\HL$HD\$\E|$wy2HVZAzr<1LHLT$ 'H=LT$ HH1LHHL$0HL$0LT$ A HcD$\H&MD4LD$PHL$HO43AT$\D$\S|$w95AzGLT$ T$\HLT$ P MLD$PMvE[HL$HD\$\T$\|$w1HXAz;1LHLT$ H=LT$ FjH1LHHL$0HL$0LT$ Af1LH<_LT$ ;GL$\-|$wj3HUAzM1LHLT$ ?H=LT$ QIH1LHHL$0HL$0ATHcD$\H&MLD$PHL$HD4O43A6t$\;s$9u@pBH$HLT$ LT$ L$HC(AhDI@HC4EHcS0MH(|$`8f.EHHPH9sHHHPHLKI9LAALщD$\gEZEARL$H$LD$MLd$P$\fP.ugP9w`HHH<+L;11E1L$@IHD$LLHDŽ$L$L$8IIÐ$IT$HTHDŽ$$IT$D,fEMC(uifHEHC HEH@C(HS HfDlC(HS HL4C(C(IT$8HEF,jfEL9rHEMLHH9PsLHLT$ L\$( LT$ L\$(jELD$PHL$HD$LD$PHL$HƄ$H|$PMtLD$PM;pn8DŽ$HUL$HT$xHMH$H@H$ARIHL(HDHEH$HHB1HDHH(tHPHUD+HHPQH$t@H5HLD$@L\$(H$HHyL\$(LD$@LD$@L\$(HHEH9D$xL$LD$@L\$(t L0HHEH$MHU&"Ax "L(I@HEH$H@$,$D3M=AF 2IH=H@Ƅ$H]=LD$PMHL$HDŽ$D\$\Eu L;|$wHcD$\L%E O L;EMHL$HDD$\LD$P:DL$\E|$\ q|$wUHcD$\L%E O L;GAMLD$PHL$HD$\HS H6MH$pMD$`1H$F,i&$;U@} H$H$HA(Ht H$ H1D$D;E@H[]A\A]A^A_H$ptuHs H$pHLT$ LT$ tSH{(H9$s->HGH;HBL$I@(HC HDŽ$pH$HSMHDŽ$HH$(HJ H$HsH$(MD$`MSt{0tHDs9u@*C0;C4C02ILH|$PtHt$PFSt*|$w;HHcH9t HcSH9ZKM΅tQ{08LAA@+ADS+HDHCwHKHLD$PSt{0tHDs9u@)LHS@EH$HLT$ ӾLT$ FC0S89ЉC0L~&LD$PM΋Kt{{0w0LAFt.HLL$0LD$@LL$8螱L$0LD$@LL$8+ADS+HDHCH|$PtHL$PAL\$(ACPACTE HEHC AC(D$H$hLߺ LLT$ L\$(7LT$ L\$(H$H=H$`H$H$`E1LA LT$ L\$($HLT$ L\$(H0F DH@!H$H$H$LHDŽ$A6LT$ L\$(HH$H$LT$ L\$(jH= H=FH= H=v!H=vHH9H҃HH)H=H$ H=II9H҃HD$H$h H$LLT$ L\$(qH$H$H)$H$HDŽ$LT$ L\$(H$uH$hD$Lߺ LL\$(LT$ L\$(H$HH$H$LnDT$xH$AHc$HAMHLT$ T$H4$1LL\$(H$HD$\LT$ L\$(L$EHL$HDD$\LD$PkMLD$PEP;ETHLT$ MƄ$7LT$ Azz LT$ TT$\HLT$ P GHH$H$H$H$Az LT$ T$\HLT$ P Az LT$ T$\HLT$ P|$\_HL$0LD$@LHHHǃHHHLD$@HL$0s$H$HBARуHtHTH$`NDDŽ$$|$wABPL$LL)HA~DHIH(HHP8H H4HL\$(L\$(|$wHc<0HH$pA6LD$PHL$Ht$\AzLT$ T$\HLT$ P ML;}MfOHI9ƐL)HPAzLT$ DsT$\HLT$ Ps|$\_^ xT$@L$0LT$ 4L$0HT$@LT$ p2DŽ$|$\1x|$\_@|$\H%Az1LHLT$ !H=LT$ sH1LHHL$0HL$0LT$ A L; LvHHN aLD$PIJLD$PHC@fx<0MAO43LD$PHL$HAD$\HC Ks9ufA9t 9t IL9sEE)EL9ELD$PLM΋Kt{{0LAFt.HLL$0LD$@LL$8DŽ$H$ABHQHDH$M@+HVDHf<L;fBHDžAI9xL;ML$L$EIILL D$ HLLT$ H$H$H9$LT$ O$H$HH9$I9$wLLL$EL$$C{MABI I9e"LD$PMDŽ$zHH$eDH1HHcH)IHC HH9rHBHC Ls(Ƅ$eEIHDž(1rE@H*Xf.Z H<HS(闻$$H$"IM; HLT$ LT$ $HLT$ )LT$ H$HpL\%E1ɹg1H$@*HLT$ UGH ]HAH1LT$ LT$ |$\ |$\ |$\ |$\ ߽|$\ H|$P+LD$PAH<;N H$E1E1LLHLT$ nLT$ HL$xLHLT$ LT$ D$\0 *D$\a3D$\A#D$\0 |$\_ HL$xLHLT$ DLT$ HL$xLHLT$ LT$ HcD$\H%MD41AF<Z<DŽ$HHHǃHHHLT$ &HH$HMcBDH|$PtHT$PBH$HI9H$w1$E!H$H9D$@Ll$@Ld$hH$H<tMHLLH$HI9H$w1E!H$H9D$@QLl$@Ld$hH$H(tM>HLLp(H$HI9H$w1E3"H$H9D$@Ll$@Ld$hH$Hv<<)tMHLLH$HI9H$w1A<$!%ED$8uЃD$8AT$HFLLlAUуLtHTHT$pHT$@I+VHHT$HINPHL$0_IwTLӍAGPLAGTHl$0HHHHLHHhK DےC 'H[H\$P|$8$MV M$H\$HH9$ H$H$H$H$L\$HL|$XH$H$MH$H$H|$X,L\$ <L$L\$ HDŽ$HDŽ$iHDŽ$E1҉$IUHD$xHD$HL;d$@=HH<2tM9vfD)fDIM9rA$ƒAsL$M9I}H|$`HT$`2ft3IF(HL$PD+T1LHt$0HH;D$HrH|$Hu HD$HH|$HtqH|$hH\$HH${ Ht$hH|$XH$L\$ PL\$ R H|$XH$HL9H$L|$XAGPA;GT~LL荗1fDL$ED$H$ H|$XLDT$(L\$ |DT$(L\$ H$H=)H|$pt^H$Ht$pE1H|$XA DT$(L\$ $@HDT$(L\$ tH0F lH@1fH$D$H$ Ht$xH|$XDT$(L\$ 諡H$H$H)$HT$xHDŽ$DT$(L\$ H$qD$H$ Ht$xH|$XDT$(L\$ 3H$H$H)$HT$xHDŽ$DT$(L\$ H$H$H|$XHDŽ$A4$DT$(L\$ cHH$H$DT$(L\$ H=#H=H=H=H)H=H$v*H=vHH9H҃HfDH$H$HT$xfDHH$DH$H|$X D$LDT$(L\$ ğH$H$HH$H|$XH|$XDT$(L\$ 迬DT$(L\$ CHH$2H$1LLHM1҄D9H|$hHT$8Ht$hL'|AIL$0HLHŅ1҄VPPPЀ <_vHH$gH$1LMLH肑1҄9IL$0HLH"1҄P^PRPЀ F<_HH$L\$ t;1LsH=_H$1LasLHllAH)H$H-9|%DdJ"H9D$@H$EAHD$0YEt&H|$hHT$0Ht$hLnALH$H$DdJ"H9D$@IDLwHuAH$H-{%DdJ&H9D$@FH$ALt$hHT$0ǀH$H1LHL$(rHL$(A Et!MHT$0LL-mALH$H$DdJ&H9D$@1LqH=]H$1LqLH\zgAH! H$H-]z%DdJ"H9D$@"H$EAHL$0]@Et&H|$hHT$0Ht$hL=lALH$H$DdJ"H9D$@IDLuHtAH$H-y%HcDT5J4H9t$@`EALl$0Dt$HL$IDLt$8AL9@ADt&H|$h HT$8Ht$hL7kDH$HH$HcA\H4H9t$@A4$@ cDL$HHt$0E1LL$GiE1޽H$H-wx%Dd J H9L$@9\$0L$H\$@Lt$h]thtptM LLLRj L$0LH$H$Dd5J4 H9r@wĀxuxu@X<H$H-w%Dd J H9L$@dL$Lt$hLl$0IHl$@;tktvLH$H$Ed5J4 H9r@wt$M HT$0LL:i럀xu늀xu@X<H$H-v%Dd J "H9L$@L$Lt$hLl$0IHl$@B< tG t1LlH=`H$1LkLHLemAHH$H-t%DdJ"H9D$@H$EAHL$0_fDEt&H|$hoHT$0Ht$hLfUALH$H$DdJ"H9D$@ IDLpHtAH H$H-s%DdJ"H9D$@H$AEHD$0cf.Et&H|$hHT$0Ht$hLeAH$LH$DdJ"H9D$@<: tIDLHoHuA뱺xDxjDLl$0HcL1"{xxA|$@MT$!E1HcLz1ɄHcLG1Ʉ1ED$8&H$H9FH$AH$H$H$AH$H|$HH$H$D$`HT$pHL$0H\$PH|$XHD$@L9H$usL;$tCALL$81DD$`HT$pLH$Ll$H$D$誏u&H|$hHT$HHt$hLcxHt$01HL~vHL$PHT$XLHt$0pH9tL9tLH$H$H9H$ EDD$xH$ L)HL;$tGALL$81DD$`HT$pLH$Ll$H$D$踎cH|$hHT$HHt$hLb=}H$H9QL$UHT$8DLZu$H|$hBHt$hLLrb*H$HH9H$9uItA|$"uHT$8DL0t븍Ev E1HLzHD$PHt$hH$La1< fDHcL1> H-Po% H-?o%Cv CH$H$HHD$(vHt$8H$H$L _D$HHD$8LD$(LH9D$8AH-n%1AHTII9rAH$H9HBCЃ _ $L貔LzH5LKbLx.LVmEЃ Ã_ @P < @LL$(CL H5LaLwL$(@P <! LʼnH5KLaL^weA1迓L臉H5*L訖L w:蓓L[H5L̈LvjL2H5|L裈LvALfDH5>*L$LvLڈH5`L`LsvfDAWIAVAUATUHSHHHHL$0LD$ DL$\tB ulCHs0%Ht$`CL$HƅD$/C@tHcSHD$ H+D$0H9~PE1HL[]A\A]A^A_F T$HHN0HL$`FƇD$/fMt AG H|$0H|$PHD$ H|$/WHS HJPHHL$@Ht$@H HL$hH9OCdz@|$LRXT$|Ld$0E1DŽ$t$\Hc|$LH$T$LT$|D$PH$L$t$pt$L)H$$$LHc$H$&H$DŽ$L$t H$LIH|$@HHJDF$Ey6  HRHH9HL$@Q +D$PHT$@H$ 0H$vHItCtH$L+vLt$PH$tH$HL0M<|$/HS Hz0HHzMLDl$0|$/HB0H;D$@H$M$KHcB HcHHD$ HD$8HD$81L)r$L|$8LcL9O<HcB |$/IHO0H;L$htPD\$HQ L9LLHCHEAAH)HHPH肔HQL;|$8ID$dMD|$LEDD$|t$LDt$pECRHT$ LcMcN$ L)E1|$HHL$@LHAIW@HS HzHHH|$@HzPHHVHS HBHHD$@f. xL$Huhz@Ld$0E1|$LRXDŽ$T$|fIHt$ H+pHt$PHzHHHUHS HrPHt$@fHT$ L2HS IǀHr HT$ L2|$/H{ HO( @HS Hz(HNHzJHB(`HT$PH)H;$G$D$)A5HT$P$L$2I HC HT$PH|$ p +s1HD$8 Ht$8LHL$軇HS L$HfHT$ L1fLcN$ tPHT$ HHT$PHDD$v1IDD$t%HT$PH|$ DQ1HifAIcHT$ PHL$ y HK HAHH|$/tHAPH@hu M+r@t$LDbDD9|$/RXT$|HL$@HDpHt$@Dn +HT$0Ht$ HqD%=D)D);D$|Ld$0D$|E1DŽ$fDL$BDHT$0LHHT$ 0HS IJDLH+t$0HcH9$|$/t4HT$0HHT$ LQ0HIH9D$0HS Lt$8D$MEHAy MHcCHt$ H)L9HwVfIL9GA9 uHcB@HL$8H)I9|$/YHzMaYILL$0D$LHIH$HLRDH+t$0H|$0HcH9~|$/LH)ǀHcHI9LBCHHD$ HD$pH$H9D$pHFD$p|$/H$LLaL;d$h:HcH$HAD$ %=I$H?H?HPHE1|$HLLHAOHIEHS D AMcN IL9L$0HS %D|$/bHBPH@H|$`LwMAVHl^%<=Ht$PH9t$0t2AG u+H|$0 t C,Ld$0C,T$ +T$0HBHJDAAMcO @HyP&LaAD$ 1E1HT$ H$%=AADD$+HI$DD$HT$PHxD+HfLcd$LLd$0H|$@G %= HD$@HxA:$bHT$@HP~HcLO|?C,Ld$8E1DŽ$D$|D$LHt$@HONAnt$LHT$PL +HS H$HT$ 1*I9LB耽sHT$PH|$ *HK HD$pHC HT$PL0*IHT$ LHD$}*LL$IMaLd$0MHK HT$pH9$,%HcH$LlL$IgHT$0L*HHt*H9D$0s#HK Lt$8IHzHK H|$0HS LL$0H-C,HL$0H9L$PAG HHL$ @L)HcH9QHcH9BH9)Ht$@H~A: $HT$ H|$0)If1HT$ H$(IHT$ H$(I|$/HC H@PH/HP҉PHC HpPH;p0 HKHC HxH„t|$/HpHHKHC H@PH@HHC H@0H@(HD$@cLd$0c{HcɸHDM HC H@HHnHP҉PZHC HpHH;p(HHJHC HxP:$2Hx'Hx(t$LHT$PH|$8L$j'L$HT$ HljW'HT$`ILrHS HGtAIVHH4}AHS H(HK @L;T$ $ HS HBHHt>|$/tHBH;D$@Lct$LML9d$8veH|$@Lt$8MvHzu$ftH|$@ML$MM|$/t~Hz07Lct$LLd$8M)􀽬u6IHcD$|IIH9D$ H|$@YzLct$LfHT$ LLD$%LD$IHz(CHpPTD$LLT$8HIHcI`Hx0LT$ Kff.AWMAVE1AUIATIUHSHHH$PH$DŽ$ HDŽ$L$X@ tH@Dp@AAAML[0^SEH$T$8 cƅHS 1LH+$DSr@NB@DHH9A{ <DžDžDžC@t DžH$McH$LH$PH$LL$H$L$C$`H$Px 6HHx (H$PgHLD$DT$L\$(|sHLD$DT$L\$(@HIH$Ct-H;$SH)I9H$HHtHP8H HHH;Xx D$G$`HC HxH6H$D$`H$H$PMHH$H$ HDT$L\$(H$H$H${HH$DT$L\$(L$8L$HCVH$H9$x |$Hd1EtArހHcMtHC HxH H$H9$t(H$H$HHH$I9rAC HH$fKƅDD$GtIHHtHCPHKCXHPHDžH1|$Gt HHE1H[]A\A]A^A_\HC HHHHL$8 C,tEH|$8„E HHBHC H@H@D0H$I9H$H$L|$8MHL$0I H$HI9H$D80uHT$0LH.G H$H T% DD:0uHI9H$wfCH$H$C,C9@HxPf,CHH$I9H$H$H$HaFfK tIHHtHCPHKCXHPHDžHHsxHtH@$`CK$`UL{PHD)CXxfMOL$FfDc(@H|$8 ErH|$8„EHHu@HC HPHT$8D$LD$PH H9D$8yt$LLd$XxQHD$8EP HL$8H@1LL@)+t$LHD$XHH$H9s LGDŽ$ !HcT$L$`H$Dt$wIL$Ld$hLÃH$T$PD$dH$ H$T$PHc‹T$LHD$xHc‰T$TH$H$H$IIH9L$XrDT$dEDL$LHT$hHϋt$LEIHL$HT$8D)H$PE1H$]HH$AFtH$PH+BIH$ L$PIHt$PHNH9NT$THt$TH$H D$P^Ht$PH$H|$wH$H9s5fDH$H 1P%HH9H$LLH@BtLL$@LL]Lp@H$HH$H9LLHAtHxHxDD$LHT$hHϋt$LEIHHE1|$HHL$8HT$hHAzHH$"L@H;HKrMHKu'H$H$fDHD$x1 HH@HtD\$TEHt$TH$HL$ HL$ Hf.EfEDHT$8HBD0H$I9H$L|$8MHT$0H$IfH$HI9H$D80uHT$0LH@H$HBI9H$vD8rtDD80DuHI9H$wH$H44$@H$H$HHL$xf.HH{PscH+$LKHF,(E)DQDkXHCP@HxP H$H;$v HH$H$L$HT$0f.I9DHH$ uHt$0LH>KH$HHDT$L\$(;wVyJWywWyfwWyV@tDtsJ wCNx[OOFW:fDtfDXfNwfDV1ff.H|(ttH5L]Hc1ef.AHH5W`1[eLcNL9sHDDPDHDHI9wjfAWE1AIAVAUATUSHHT$@HL$PH 0Hv1D$HD$$ Ht$H2gHt$HH _E11ALID$HD$$ fHt$HH suE11ALHD$HD$$ fHt$HH PE11ALHD$HD$$ fHt$HH -_E11ALID$HD$$ JfH$H3F y HvH$H$DŽ$8T9 HuF  HHXIuF  HH@HD$XHL$PHL$@HH$t HYIIMLD$hLLHl$PHTHD$8H DH|$XHxf H/H9sTHT$XHL$XHt$XLD$XHHH@HH  H9vHuDHH9wD$HT$8HHhI4$LrF HH@H$I$HjHDH9HD$0H$L$IL|$(HL$`LD$pH\$0 HDŽ$H)H51HL$`HT$pE1H|$(HIH$aIH$H9HU I @|$t$L1MIl$HDl$0H;\$@|$L9|$@KL9L9$H|$XLH$H|$XLD$hH+T$@HT$hI6I:I BH9@rtHIL9rlLL9voIuĈH HH5XHL1`DGH@wWDGHMtIl$H9l$0VL|$(LH$H0F AHH$H@H$HLjIDL$HD$0H$LD$XHD$`L9l$0vVAmMe@ tbLt$0 LM)L/@+td@-t^@&ftV@!tPHDt LhL9l$0wHD$8H[]A\A]A^A_@L9d$0vA,$I@ uffDHLl$0t ILhM)Ht$HE1LA DL$ TIHH CpE11ALHpD$HD$$ aH0F GHH@HD$(H9\$(8HL$PHT$@LI4$@ IHH@H$MfH HT$8B HHxH$HBH|$(AuDHu>H9$@&]@!@fLLm( HT$(H<8HH9s@+D$(1HEfDA $IHItM@EHIL IuIHAt|$(ubHAu@!tQEt@-tDEҐt@&t8HD$hH9GEtHHE HALɃf1Ht8HtBH uIɈHIDIIDHIIDHHHIɈHIDHjHT$XHt$8L+fH$VHT$`HL fIH$L HHD$(@+@-FHWHH$1A$I HH$HJHH$uHWHH$@A$IHH$HJHH$uHWHH$@A$I HH$HJHH$usHWHH$^fDA$IHH$HJHH$u+HD$0HL$`HHT$pH|$(E1HDŽ$H)H$:[HH$HL|$~E< <  $\L|$(H$H5VH1LZDHD$@1L9H9$4HH$H+T$@HH9 HHAHHAE6H9sHl$PLHHHKHD$8H DHxD$HU1%HH;D$Xr*H|$Xt"L|$@L9qLH)L,HT$@L)HIBID IBID IIDJIIDJH$LbHH$#LDHD$X LDHH1zo$1LmbH$wH$LKbIH$HD$0HuHL$`HT$pH|$(E1DŽ$H)H$XH$H5PL1XH5QLXD$QH5QL1Xfffff.AVHMAUATUHSHu H7HL,E1L9rPHII9vCyB@<=w0H 3%Hw=HtHtIHtkHMtM&HtH]L9[]A\A]A^ÐHHHufD>fwSy„tf.J KxuKi`STDfDDJ@wSS!S S=KqtfD@KGS@yff.USHHHu H25HH,H9rR@HH9vFyB@<=w3H 1%Hw1HtHt=HtWHH9H[]DHH HufD>wSfyĀ„tfJ KxwKywSwfDDJ@wSSH?S3*SUK ytfDPKOS@yff.AWAVAUIATUHSHH(HL$DD$DL$L7HW3LIL31DHHHD$RIHPH@HH@(H@ HHBHHL+sHILrHHRHSHH HIH HK HH HIHHHHPHHUHH(3HǃVKHOALH)HXHChL3HH;CpHChLH+SHHC L)H'QLHHIn(ZIFHT$LHYIFHD$HIF?IF HcT$HHH>IF(HcT$HHHH+HH H@H0/H5N1HIBH1H@HHMP HHxLHH7HPHH@H$HHH+SH HHQHHRHSHH HIH HK HH HIHHHHPHHHH@H9!E tHUz #tNH5oJHH1Qf.HHt@HRHHt-H@80fDH5QJH1wQHH@H0LH8DHHH0HH-HcLLH:IDtHfWf. ЃYHHSDH@P@H(H[]A\A]A^A_fDHWHCh HWHPHPHPHBHRHHH@H0,HHIhDLHHƃV1H¾1H>H1H@HHtpP t*HHtRHRHw,HtCH@80tKHHxuHLH4@HH@H0LH 7ĀtHfWf. ЃHH@RHPHtx t&HPH5 DH1H11H@H@HtHH@8Hufffff.ATIUSHHH,H|]IH9HrK HH9v+ HHv?΀ @rHH9wHH)I $[]A\1fff.ATUHS9HIL"H1fI9vKHyL9€?~HI9wfH}HcHH)rHL9Hr$1D\$L\$LN1L\$LH?IAvTIAvHIAvHt$8H|$(1L\$.L\$fff.5ff.H\$Ld$HHl$Ll$ILt$L|$HxHt$D:LnAHvH %,L9P EAE1A LLH$9H}HB ttHHRHT$(HHHHHtYLP @r HX H` H1I%u\H5>H1C,HI< LEH1AE41҅Ht$LHH@IHH9A$LLH$8Ht;H0F HHRHT$(HHHHtHD$(HI9H5=H1#CA?Ld$0AȀD$1D|$0A:A@E<A?L9P Dr 95sH` HX HD$(LHH!f ADAGAGAEB9HH\$HHl$PLd$XLl$`Lt$hL|$pHxfDHh LHL$.HD$(1HL$HIEB9@HT$(HJHwfDH@P@DD9f.EDAEB9H fDHh LH9qfff.H\$Hl$HLd$Ll$H(IHIH1HtI4$Ht4HH<HH\$Hl$Ld$Ll$ H(DH59H E1ALHHI$DH( H <Mffff.H H <-ffff.H H ; ffff.H H ;ffff.HH ;ffff.HH ;ffff.H H ;ffff.H H y;mffff.HH e;Mffff.HH M;-ffff.HH 9; ffff.HH !;ffff.>_tHP H ;f.>_tHH H :f.HH :mffff.HH :Mffff.H\$Hl$HLd$,HIHD<LHEHHl$H$Ld$A H.fH\$Hl$HLd$,HIHC<LHEHHl$H$Ld$A H1.fAWAVI1AUIATIH5O44ULSHH8LL$%c M9LL$LHD$/MAADL$HD$f<< hL$tJ^@H;9HHL1A$HM%IM9Ht HH;h1LLH=wMt< a< <\< ZfDHAHLD$/HT$AHL>H>AHLHCH8[]A\A]A^A_T$/f.\ffDrVfDtFfDa6fDn&fDHH HRMIHIAWHIAVAUIATUHSH(HT$H*fDH9vCHyH9}tv€?wnHH9wD1I9Ms4Lt$LfDHLL2 A$H\$IH9wLL)A$HT$HH(L[]A\A]A^A_HD$HH(1[]A\A]A^A_H\$Hl$HLd$Ll$,H(IHI@tNH(H={H0HAH4Hپ,L1!HHYHfHHHHH9'HEEH<ȀEHH6?ȀEHH0?ȀEHH*?ȀEHH$?ȀEHH?ȀEHH?ȀEHH?ȀE HH ?ȀE H؃?Hˀ?] ȀE HE HE]H\$Hl$Ld$Ll$ H(A{H4Hپ,L1H؃?Hˀ]EHE@H%H=\ARH%ADfHHEHH ?ȀEH؃?Hˀ?]ȀEHEHH EH؃?Hˀ?]ȀEHEHHEHH?ȀEHH ?ȀEH؃?Hˀ?]ȀEHEHEH?ȀEHH?ȀEHH?ȀEHH ?ȀEH؃?Hˀ?]ȀEHE1f.HHEHH?ȀEHH?ȀEHH ?ȀEH؃?Hˀ?]ȀEHEff.1fH\$Hl$HLd$Ll$ILt$L|$HxLt$0I1MLL$HD$(1HLHHI}HHHT$(Hu,IuHtmLHE HTHT$(HtJMt I$HT$(1Ht 1LHH\$HHl$PLd$XLl$`Lt$hL|$pHxDH1LHHL)HT$(H$1HHEHvRHvGHvF < u7uH8ILGLH@HPILGLHH51d fff.HHH@HHthH0HFH6HHt=Ft7HLAHNJtHt"HIHHH5n1H5kHH1@HHH5[1@ATUSHWhHL'HcHHWhLHHGH)HHHG L)H~mHIl$H ID$HHsHC H)HHHHHLeH HHEH0L#[]A\LLI{Hyfff.H\$Hl$HLd$Ll$Lt$H(HWhHD"HHWhHWIcH H)H%HAHHH8H HHHhHMcJN,HpF HD@LMA 11HHAQ@HIH+tsHC H)H~6LeLHwHEL#H$Hl$Ld$Ll$Lt$ H(HHH}H벺~ArfDHCH JLkL+H McJJ HCHvHfH\$Hl$HLd$Ll$Lt$H(HWhHD"HHWhHWIcH H)H%HAHHH8H HHHhHMcJN,HpF HHLEɀHJTHAPHHIH+ttHC H)H~7LeLHHEL#H$Hl$Ld$Ll$Lt$ H(@HHHH뱺HSnHCH JLkL+H McJJ HCHuHfH\$Hl$HLd$Ll$Lt$H(HWhHD"HHWhHWIcH H)H%HAHHH8H HHHhHMcJN,HpF HHLE@1HHAPHHIH+twHC H)H~:LeLH{HEL#H$Hl$Ld$Ll$Lt$ H(HHH}H뮺~rHCH JLkL+H McJJ HCHrHfATUSHWhHHD"HHWhHWIcH H)HHAHHH8H HHHhHMcJHpF tHHD@LMJTA1HHAQ@HS HHH)H~-HPHhH[]A\D^HSADHHH-H McJJ HCH[]A\HfH\$Hl$HLd$Ll$Lt$H(HWhH*HHWhHWHcH H)HFHHHH8H HHL`MHcHL,HpF HD@M $A1LHTHAQ@HIL#HC L)H~9Il$LHID$H+H$Hl$Ld$Ll$Lt$ H(@LLHIHSA\f.HCH HLkL+H HcHH HCH]HWZfH\$Hl$HLd$Ll$H(H1HHtHJ8H HHHrHKhH)HHKhHKHcHHHLHffffff.H\$Hl$HLd$Ll$H(HWhHOH*HHWhHcHH)HP1҃HcL$L,uHtF tbHPLHHKH8HPHHDHHCH4LcHl$Ll$ L#H\$Ld$H(@HDH\$Hl$HLd$Ll$Lt$H8HWhHD"HHWhHWIcH H)HHGAMcN,J4@# tfHPHGH,кHHHHLsE@t HHK,LkHl$Ld$ Lt$0L+H\$Ll$(H8ÐHt$Ht$HHH\$Hl$HLd$HHWhH*HHWhHWHcH H)Hu]HcH4L$HKH8HPHHDHHCH4LcHl$L#H$Ld$HHlfUSHHHWhH*HHWhHWHcH H)Hu%HcH4HHCHH[]Hfffff.H\$Hl$HLd$Ll$H8HWhHD"HHWhHWIcH H)HAMcJ,N,E tHEH@HD$HuE u8HCHPJLkL+H\$Hl$ Ld$(Ll$0H8fHT$HuHCH8JLkL+HT$H"HxHf.H\$Hl$HLd$L|$L=*Ll$Lt$H8HGhL7D(HHGhHGIcAL$LMcJ4L)IIHAE tiVHHHtTHHHHAIuiH==LtVLHߺLHH̿6fHIHHHjLHjAtMcIM)IFMnHl$Ld$Ll$ HLt$(H\$L|$0H8@JlH H9tGrtVHCJH@HH@(@t-HH@HRL|MtIHE1HCJ4F tL~f1HIwfH\$Hl$HLd$Ll$Lt$L|$H8HGhL7D HHGhHGIcH,LH)HHAMcJ4NlkHCJ4F L~H I9LHH=0LItLHLHH輽HcLHHI)In3IFH+Ld$H\$Hl$Ll$ Lt$(L|$0H8ÐHCJH@HH@(@tOHH@HRL|Mt:I)DH H1HHI@E11H9IfHIHCJtF t&HNHLH1f"1HHHXH\$Hl$HLd$Ll$Lt$L|$H8HWhH*HHWhHWHcH H)HHcL$L,AD$ <ftnHtF ?L~L ID$@t(HHp(Ht1LHHt x !HCL4LkL+8AD$ %@ =@ H HLkL+H\$Hl$Ld$Ll$ Lt$(L|$0H8DLxAD$ HS< IL$fA toI$Hx\I$HxYL1HH"1HAL$ IǁfDH@HHpHHIH!fATH7$H H5USHWH$H cH5H:H#$H FH5yHHF$H )H5lHH-a$HH H5ZHHL%9$H H5FHLH H5:LHL%$H H5)HLH H5LHfL%$H rH5HLFH YH5LH-H6$H 9H5HL%i$H H5HLH H5LHH H5LHL%$H H5HLH H5LHH H5HHlH H5HHSH$H _H5H6H-$H BH5HHH )H5}HHHN$H H5nHH$H H5`HH$H H5QHH$H H5@HH$H H50HlH$H xH5 HOH$H [H5H2H$H >H5HHv$H !H5HH9$LH H5HE1H$LH H5HE1jH$LH H5FHE1CH$LH H5E1HHU$H hH5H?H$LH DH5HE1Hi$LzH H5HE1H$L-H H5uHE1H$LH H5bHE1cH$LWH H5MHE1LcBHJLHFL 1҉D$HD$$EHWfHHPHAHTfDHHHHBLl(MiMe(MHHHT$( Me(M HHD$0HL$0IIHT$(HLqH@HD$HIDHD$@BtHHHHBHDHD$HL;t$@H HD$8s:IHD$8E1E11LHID$HD$$HcH4HCHtHLdF LzHHhHLHHIt$LuHLMcHIM)-ImHHc^HHIEH+Ld$H\$Hl$Ll$ Lt$(L|$0H8ÐH HgLHIkH5\H1HgH\$Ld$HHl$Ll$H(HGhH/D(HHGhHGIcL$HL)IIE~hAHMcJ4tYHCMcHIL)JLeHp1HHHEL#Hl$H\$Ld$Ll$ H(HH5yH19H\$Ld$HHl$Ll$H(HGhH/D(HHGhHGIcL$HL)IIE~hAH McJ4tYHCMcHIL)JLeHp衿HHHEL#Hl$H\$Ld$Ll$ H(H*H5H1iH\$Ld$HHl$Ll$H(HGhH/D(HHGhHGIcL$HL)IIE~hAH:McJ4tYHCMcHIL)JLeHpѳHHFHEL#Hl$H\$Ld$Ll$ H(HZH5H1H\$Ld$HHl$Ll$Lt$L|$HxHHD$(HGhLoD0HHGhEfMcJ HL$0KtF =HF@eHHh(HtGH E11AHHD$HD$$ FHt Hx L H"McHL$(KDH)HH~bHCHNlHEt!HEHPHEHTHt HD1H5HH1Rf.AG <fHCN-uHHHD$(A uuF1Ht 1HH3 1HfD1fHHt/HHt'@@t!H@Ht0HHD˰ 1HfD賰1HHt'HHtH@Ht.HHs 1HfD[1HfDHHt7HHt/H@HtHHt H@H HHHt7HHt/H@HtHHt H@H賯 HHtH6HtfH>t fffff.HHt7HHt/H@HtHHt H胫HfD3 fffff.HHt7HHt/H@HtHHt HHfDӮ fffff.HHtHHt@HÐ蓮 fffff.HHt?HHt7H@HtHHt HCfD+ fDH\$Ld$ILl$Hl$H(H.IH}HM1t@t_HUHHt.: t.HBH+C(H\$Hl$Ld$Ll$ H(DHS(@HC H9s: HJt"HH9rfDHUHHuHC 말HC HJH9rcHC(H9wrHCHk8HHC(LLHKHC8HQHSHS(A tfD;I,$f.9 i HUHoHUHHH+C(HHtGHHt?H@HtH@xHt H蓬HHfs H\$Hl$HLd$H(H+$I8聄LHHHT$HH߹HD$ɣ1H|$H\$Hl$Ld$ H(ffffff.HHt?HHt7H@HtH@pHt HfD賫fD蛫 fDH\$Hl$HHS$H8詃HHH11'HHHl$H\$H龹fDH\$Hl$HLd$H(H$I8QHAD$ <t]„tbI$H@HD$ID$HtcH|$u[H1HH蓎H\$Hl$Ld$ H(IT$B HT$LH뙐sfffff.HHtGHHt?H@HtH@hHt H#HHf H\$Hl$H(HÎ$H8HT$H޹H@l$H\$Hl$ H(fDHHt7HHt/H@HtH@HHt HfDHfDc fffff.HHuHHH6Ht胨HH@SHHH@Hu 1H[@Htc>rt^H@H g@BtH@1E1AHHpP$腴P t=ttFH@H[@H@@B{H ffDHHA HH"[1HfH\$Hl$HLd$Ll$HHH$IIՋ8IHIEHHHH$IEHD$IEHD$މ@ HtMHHHHL$HSLHHIH DH\$(Hl$0Ld$8Ll$@HHHT$"HHHL$H뤐HHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$ HH\$Hl$HLd$HH$I8~LH覔LHHHծH$Hl$Ld$Hf.HHM$8~H5H1襵ffff.Hl$Ld$HH\$Ll$H(H1IHsPHt]1H{tAH{H蚭HCHCP1HCHHS0LHuA證u9HSIcHS HS(HUbH\$Hl$Ld$Ll$ H(fDHSHff.Ld$L|$IH\$Hl$ILl$Lt$HHH{PDkE1AuEHH$H$L$L$L$L$Hf.SHT$ƿAߏHcHuD$(%=uLT$@HS0LH)HH $H1HHHH?1HEILM)MLLT$HCHHLT$HwEI$AADhLHCHLSPHC HC0L)HCHHCHC(HCI4$LHL$DŽHC0HL$HLT$@H1;I$AHDhHC(HCHC f莁HH5L1ڲfUSHHH+H}HtHU@H9tHD$HD$HEHE HE(HbH[]DATHIUHStaHHHHuRH~Ht5H~~)1HHHtHt L?|H}HH9]l[H]A\`[]A\ff.SHHCHt[ÐH{8Hu HC8fYHHCtHC(HC HC[f.HC@HC8HCfffff.Hl$Ld$HH\$HHIHCHtCu0HCXHCHLHCHHt?HHS HS(tH$Hl$Ld$HfHLH$Hl$Ld$H雊HSXHSHfDH eHHÐSH H Ht2HȺfD@tHH8u[@HDƾ@@HtHH[ffff.AW1AVIAUIATIUSHHHT$HPHL|$u[I9HINHLLH)迥LHHH$I)I跜H $LLH)"HuLLHcHMHۉ~ ufDuLH+D$H[]A\A]A^A_LLvtЀP H1[]A\A]A^A_M@H\$Hl$H(HHHt/HHt'Hx(t8HHH\$Hl$ H(w1H\$Hl$ H(HT$H $蚬H $HT$HHt7HHt/H@HtH@XHt HHOw HHfSHHHɃ$8"wHT$HH}H¸HuD$H[fff.H\$Hl$HLd$Ll$ILt$H(IIڍHHH9HN1۸H~LLLtHHH?H9|%HHl$H$Ld$Ll$Lt$ H(DtHILH)L跉Hx HDHtfDH\$Hl$HLd$Ll$HLt$L|$H8IIML>x |uXH3H>tHo~HtIG0MLLHHH\$Hl$Ld$Ll$ Lt$(L|$0H8oHH@HHt'HHtHxHt uHHf. Hfff.HH1BHzt蠴HHÐHHHx8HHfHHx<@HHx\@HHHx蘤HHfHHx@HHHHHx0vHHÐAWAVAUIATIUHSHH @AIEHLHHYHIy)8Iu<tHrHL[]A\A]A^A_fffff.AVE1AUIATIUSHHHHh%}Jy8u@A$<uHHtTHHھLٙIIuH踉uLHL[]A\A]A^@LHD$賂HD$@HЍtAEAI^@H1xfffff.SHHH@xt蠚H[fѤHtH`1[DAWAVIAUATIUHSHHHDhLHDrHIy2%u<tH謁f t I$HHL[]A\A]A^A_fffff.AWE1AVAUIATIUHSHHHDp@% =tHL[]A\A]A^A_H+LHD}HI}lu5<tƐuMtI$H>fD tI$HvH\$Hl$HH$;t#H-$H}HtxHEH\$Hl$HHHtHt|@HHHfDH駄ffffff.Hق$SH H5HʩHH$H [H5鬩@Hl$HH5 H\$Ld$HHɥHHI+HHPuLHHl$H$Ld$HHqAWAVAUATI USHHZMHI$HHD$L Lt$1H螢IHD$H@HH@@H|11LHILHHLHHHD$HߋpAHHHHD$HHt.HD$H@Ht HpHcMhMHH[]A\A]A^A_fffff.H\$Hl$HLd$HHHVHvIH9}?HCHHHHSHMH(L`tAD$H$Hl$Ld$H@H{HHsHt7HxjH*Xmf.HvHSHC@HxSH*X6f.wVHHПHSHCHHHHH H*XfDHHHH H*XH5O$H=1fAWIAVAUE1ATIUHSHH}rH}I~nMA1E1HLLWLcL;E}FILHUEHJtHtLHLLD$yLD$HLHUfHL[]A\A]A^A_fffff.H\$Ll$Lt$Hl$ILd$HHky$H$PHHMH$HH$XH)H$L$`L$h)z)r)j)b)Z)R)J)B;dH%(H$81MlH$ L-{$D$D$0HT$H$@HT$ AUuluP;TtAEX;\uH=1螒Ht̀8tǺHǾA1AEf;Ld$0kH@H@LLLJ8@$HMLDH$1=HcLL$H)I<,MHH'}HH9vXA}H(LH$8dH3%(u0H$H$L$L$L$H舔H=y1ʙH=k1輙@H\$Hl$Ld$HHw$8ujHxwL%gy$L蟡Hz$9H{$HcHH~gYH=1iL蠦u(Hl$H$Ld$HH5Hlj1HH=nƹS 1H5>H1ŠH5H1負HH= ƹF 1覘fffff.ATHIUS@ Hhtby~I$`1[]A\HxDmt8uD<EtD[]HA\@軐 H@AWAVAUIATUSHHt6HHt|H@Ht!HHtЉH[]A\A]A^A_1L 1ADM?MtI_MDH;tHL_yAEL9tHH=1g |DH~ tfDyff.H\$Hl$HLd$Ll$HH(IAxDLHH^sH\$HHl$Ld$Ll$ H(ff.Hx1HHl$Ld$HH\$HHISHC0  t/HKHt HS(H)HH$Hl$Ld$Hf3xHuLoHC0fH\$Hl$HLd$Ll$HLt$H(IAwLcMt*LH$Hl$Ld$Ll$Lt$ H(f.HDLH`H3-rLcMuHHH'oHC0fAWAVIAUATUSHH(H|$HHxHHZVIIE1MHD$u/fDLe(HEHE8I9MHHLeL+e(Le8M9MNM9vK4'LL)I9LFMHtH}(LLM)M舉Ld$Le(M9Le(uH|$HMvvHEHE8Le(I9nfH|$HKvMXHLd$HH(L[]A\A]A^A_ÐN,2L9rfH9IA} Iuu@E1H|$HHT$uHT$uHI׋HuH|$HuhHT$vHHT$+H\$Hl$HLd$H(L&HID$HtAD$u I|$Pu*HtQHHH\$Hl$Ld$ H(nHHHT$H $脓HHT$H $uID$HuID$XHt*ID$1H\$Hl$Ld$ H(f.HHHT$H $TtID$ID$XHT$H $O@AWAVAUATIUHSHHH>W@HI1M< MM9IvIv8WIF(H9vgIUHIIF(H9v>HM9seJLj uHHH9r @ HIN(H IAtDHHsM9v HIvIv8HyfHPu.LL)H[]A\A]A^A_HHL[]A\A]A^A_lHHQsHHL$2H;HL$Wf.AWAVIAUATIUSHH.EIttL}LDHM(H9s#H)HHLޑH~ HM(HH9r1L)H]0:fuHLۉtIHDua1HEHE HE(I`MHct,I}t%LLT$SrT$HHcHDH[]A\A]A^A_fDHHE(HHU0H)H;E HU0{Ht H}t1HL{ltHU0HE(HH)1HU0M.LLci1HE01Hl$Ld$HLl$H\$H(HIjIHCHt H{Pu'HCXLH\$Hl$Ld$Ll$ H(HL͏HHLEDHHPHHt  H@H|j@Hl$Ld$HH\$HHIHXHH_tz+p~nHn$1H;tJHr$H;tdHp$H;tXLHp`HD CpH HHtDe1H$Hl$Ld$HHH@LHMpHː Hfff.AUIATUHSHHt{HHtspLcHE`*fDHBHt HHu+bHHtHHuHL[]A\A]fDHLHHLESI fff.USHH蚏H+H}HtHU@H9tHD$論HD$HEHE HE(HbH[]DHHt7HHt/H@HtHHt HHfD蓅 fffff.Hl$Ld$HLl$H\$H(HInAHCXHtHCHCXHC HC(HLMciHHH\$HHl$Ld$IDLl$ H(fAUL ATIUSH@MmMtjHD$H[]HtDfyAHH[]f.@WH\$Hl$H(H.HH}Ht HE@H9tHt$ȅHEHt$Hi1H\$Hl$ H(f.USHHHHtoH XZ$fDHHtXHHH9HuH9puHY$8Ht$LHt$HHLx ]HHH[]iH[]fH\$Hl$HLd$HHHdH%(HD$(1HH6HHHL9@Hh1HT$(dH3%(H\$0Hl$8Ld$@HHHt$ HEkDHHD$fHHT$HL$LD$tmH3HHFH3HT$HL$LD$\LD$HL$HT$fHHi^HT$HL$LD$rAHT$bH.Cuff.ATUHSHaHAuHHgH;u[]DA\fDH\$Hl$HHH\HHfH\$HHl$Hff.AVIAUATIUSL.MtCIL?IfDH;t HL'fHuLI[]A\A]A^fffff.HHuHHHHtHPBt`1Hf1H\$Hl$HHHHuHH\$Hl$HÐH>tZHHBf1fDH\$Ll$HHl$Ld$H(HIu%HH\$Hl$Ld$Ll$ H(DH>tZIH+DLLeI$HHt1HEH@8HtLLHuI$H9uIHfDHHoH@H=HHP1{H1Vfff.H\$Hl$HLd$Ll$HLt$L|$H8H:IIM#HzHuYHt-H 'HRMH= IE1GHC HHH\$Hl$Ld$Ll$ Lt$(L|$0H8ÐHHtʾoHIHEH I_MH=MIEHIL}1HSnGIGH@ HnILLHLHTHL1&dBfILLHLH1H5ȨL1~fffff.H\$Hl$HLd$Ll$MLt$L|$HH$Ht$@IIHt L;M!M~1HDL$0qLHLHukA$HDL$0T$OLP0MH$H\$MLHHHT$ $T$$T$$$LAHHtKLL SHT$@ILHHZH+HHmu|$OIu HHHHl$`H\$XLd$hLl$pLt$xL$HĈfDmnILYLLHHDL$0L\$8XjHDL$0L\$8tPLP0MtGH$L|$MLHHHT$ $T$$T$$$LAIMu 13DHLLH@Lx QLD$@HLHHAHHH1`fDH\$Hl$HLd$Ll$HLt$H(IIMHR$H HHE1I;YHLLHHL`0H$Hl$Ld$Ll$Lt$ H(waffffff.H\$Ld$HLl$Lt$IHl$L|$H8L>IIAGIGHHBIo8HIG IG(HHIG8I)G0L9IOHHK44HHI(HH9I(tHgHI)`MtLLHLMHHH\$Hl$Ld$Ll$ Lt$(L|$0H8Io(H)L9IOHp1DsTfDHLMxIGH1jH\$Hl$HLl$Ld$H8L&HIAD$ID$(Ht L)I;D$s$H,g L-5@$EeD9}lH A$HcHHHH=1/H&lhH\$Hl$ Ld$(Ll$0Lt$8L|$@HHAH=.1ADAD.H @$IcHH9HL$fHHL$E}E)McN$H=HD1McLHL$a.MHL$x?I*XZf.!J1LHL$0HL$LLHH H*XfDHk uVH?$H(DHIPHtx tILKfHL`UHމH3iLfG7 H3H=C1*]H@H@HtHHp8HuH5ԑL1dHH=DCƹ) 1\H5ܑHlj1dH5$?$H=oZ1\fffff.H\$Hl$HLd$Ll$H8dH%(HD$1H9$H8L-HIu<1HT$dH3%(HH\$Hl$ Ld$(Ll$0H8f.H;tHH=Htr}tlHLTHGHHtH:$L+E1LHHH AHIt=HHHhF,?_I$L(AHHVHL++VSHHt)H9$H9PuHH9Pt:HH@u1o7HHtH+xTHHL $dHLLHM)F\JfH0F H^HyH $)9H $Ht$LLi~HHHL0t=HA4Mt L64AH3HJHljBDj'VH3N LH$Hl$Ld$Ll$Lt$ H(DSHHH=y1"1UUUH Hi!1R3H3>3H HtHPHǃ H HtHPHǃ [fDH\$Hl$Ld$HHH H6MILIMEHtHVHRH=ZAH1!Ht.1HHLn"H$Hl$Ld$HH3$E11HLi6HfDAVHL 1AUATUHH=1SE!M6MtoMfMLHHtHPBuHHHuM9tILDHrH=1 HHk2HH=[]A\A]A^ffff.AVL AUIATIUSHHLJ H KI$ H LLoKLI$ \H=`HL1K M6Mt1I^IDH;tL1HL*4H9tH[]A\A]A^fffff.H\$Hl$HLd$Lt$HLl$H(HIAHHLhH=Ʉ1MtKMmPMtBH[ELHHMH$Hl$Ld$HLl$Lt$ H(AfH[ELHHH$Hl$Ld$Ll$HLt$ H(ScG 1H$Hl$Ld$Ll$Lt$ H(ÐHfff.HGff.HGff.HGff.HG ff.HG(ff.HG0ff.HG4ff.HG8ff.HG@ff.HGDff.HGHff.HGPff.HGTff.HGXff.HG\ff.HG`ff.HGhff.HGpff.HGxff.HHHH HHHHHHHHHHHH H(H0H8H@HHHPHXH`HhH@HHHPHXH`HhHpHxHHHHHH8H<H>H?H@HpHxH|HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH H H H H HHHHH H(H0H4H8H<H@HHHPHXH`HhHpHxHHHHHHHHHHHHHHHHHHH HHHH H(H0H8H@HHHPHXH`HhHlHpHxHHHHHHHHHHHHHHH H(H0H8H<H@HHHLHMHNHOHPHTHXH\H`HdHhHlHpHxHHHHHHH H8HPHhHpHtHxH|HHHHHHHHHHHHHHHHHHHHHHH H H H H H( H0 H8 H@ HH HP HX H` Hh Hr Ht Hx H H H H H H H H H H H H H H H H H HH HP HX H` Hh Hp Hx H| H H H H H H H H H H H H H H H H$HA$H$H $H9$H$H$H$H)$H$H$H$Hq$H$H!$H$H9$H9$H$H$Hq$Hi$H$HA$H$H$HA$HI$H$H$HQ$H$H$H$H$Ðf.7szf.qzr%,fDf.qr1f.L7@zH,f.qszf.qzr%,fDf.qr1f.6@zH, f.v"f.Hzr'H,fDf.r1f.6Hzf.r\HH,H1Ðf.p6s&z$f.THzr)H,f.(r1f.46Hz f.r\HH,H1ftPfWf.tR1҅x\ &5 DYt1Yut ^DYf.zf(fߺUHSHHH HthH@HH9H@@@t=F HHHHL$H~HUL I9wH9HuLEHUH9v:.t1H[]fHHUH[]@vHT$HHL$Hq@AWIHAVAUATUSHH$Ht$HT$HHt$HDHD$( HH$ t t t t݀ t؀+Hf-D$GvNtnuN|$GH^HDH$HFH;$bHL$HH$HĨ[]A\A]A^A_ÀitItH$HD$PHD$XHD$`HD$pE1HD$xDŽ$E1DŽ$1E11D$7HD$8B< }HƒA0H$u D$7ADA0 HH$u@oHT$(Ht$8L&(DH$A5DLcHJTpH9wcBH4HHcBD$7HJTp@D$7A%HcHDpABBDPD$HT$HT$D$H)H*XJDpBDŽ1BLPOD$GHH$PpD$GH$H$DHH$0 v鋼$D$P/HD$pHH*Xȋ$D$XL$PL$HD$xL$HH*XлT$X|$7H$H@@@uAHT$(HH CHD$(HD$D$H8[]f.tHT$(HHL$BH/HT$ HHBHR1D$ L$f.w(T$(f.T$HD$w2T$HD$eT$(T$f.HD$Tf.vf.9D:ff.AVHAUL,ATIUHSHHL9Ht$s8f. t t t t u@HI9HD$wI9-+HD$E1I9JЀ DHH҃0I9HcHL$vH0 AMtI$Ht$L KHD$AI9wHI9HD$JЀ vEt eHPAAI9HT$@<+t<-uHBI9HD$B0< HD$HI9vHHD$JЀ v;I9v.H fuvH=e HucMAtI$HD[]A\A]A^Ht$L3HD$AI9v0 fDHE1[]A\A]DA^DHD$I9vfDHAHD$(@HE1HD$HHcHQHHI9HL$5H0 %HHcHQHHI9HL$H0 Hk HcHHHI9HL$@0 Hk HHHAI9HD$A0 Hk HHHAI9HD$A0 vHk HHHAI9HD$[A0 KHk HHHAI9HD$0A0  Hk HHHAI9HD$AIH0 L9vH9Hk HHHD$HHI9HL$@0DHD$it I&HPI9HT$@H*AH|$@H]1HLD$L$ T$yHHHH H*XfH+\$8HD$PHfDHH9H+T$8HD$PHHD$HDAAHD$HtH|$@D$ 5D$ Q H|$@H2]1.D$ +H|$@H4]1D$ H+\$8D$ 911DS1HH HT$H9HT$HL$LD$D$(HT$HD$tD$H [Hx H*H [HƒHH H*XfAWAVAUATUHSHHHH|$0Ht$ HT$(LD$8L:uB1M/E1HT$(HmHT$ zb,Hl$ IHDMDuIEE1fWE1;M7K$EHA0McI MDuEIAF<vAM5A_+#DuHEEAVЀIHEtf(EA0HMXA*XvfDEWf.k1H|$0$2$H+l$ HT$(EH*H|$8It HD$8HHL[]A\A]A^A_f.H|$0L$L$M7I*A/H|$0$1$MH|$0HZ1$D6AbIA0IHl$ H+l$ HD$(H(fDI9HH+D$ lH|$0HY1pML$8H|$0HY1$;H+l$ $Y@LLHH H*XHIE1$HH+D$ S1HH HT$H9HT$HL$LD$D$HT$HD$tD$H [Hx H*H [HƒHH H*XfAWAVAUATUHSHHHT$0H|$Ht$ HL$(LD$8L*ƒuH1Mm1HT$0HHT$(gHD$ xxeHl$ IHM8uI@'E1fWDd$1IBHH9}HLH+P$HMgH MtgAw@t]IH=($@$HI$M|$tL+5$ XMgYAMI*XuLDd$Ef.gvH|$$.$H+l$ HD$0EH(HD$(HH|$8t HT$8HHH[]A\A]A^A_f.A<$_5M,@#At$M|$@H=$@$HI$IH|$uHx5H*D$fH|$HV1HyHHHH H*Xf6@xI@0IHl$ H+l$ HT$0H*fDH9HH+D$ W-HD$(LDd$H|$$,$MH|$HV1 $fH|$H V1$ H+l$ $HIE1HH+D$ ufS1HH HT$H9HT$HL$LD$D$J&HT$HD$tD$H [Hx H*H [HƒHH H*X̐UHGHHGHHGHHGHfffff.fffff.HwffDfD$fDfDH$Hff.ff.ff. ^'fD N'fDH5yTH1$fffff.H5zTH1$fH(E1ɅHcx2A@H1D$ID$HD$&H(AHcfDH(E1ɅDLcx/HD$1HD$0$&H(ÐALcfDH(E1ɅLcx2H1D$HD$$H&HH(DALcfDH(EE1ɅLLcx$H1DT$HD$$$%H(@ALcfffff.H(DL$DL$0LD$LcH1$$%H(@H(@E1DD$ $E11HD$%H(fDH(DD$E1E11ɃHD$$L%H(ffffff.H(E1E1L$1HD$$%HH(H(E1DD$HL$E11$$H(fcff.MDL${H\$Hl$E1Ld$Ll$H(HHHIIt HILLHHHl$H\$Ld$Ll$ H(E1A}Dn fDAVAUAATUSHHAHHuHS8HcAHH4ʍHHS8HcL4ʍHHS8E9HcC@|?1HHUHƹHIC@P;SD~H[C@fD[]A\A]A^ffffff.H\$Hl$HG@HHP;WD~C@HS8HcH,ʍHHS8Hc C@Hl$H\$HUHSHHG@P;WD~C@HS8HuHcH4ʍHHS8HcH,ʍHHS8HcC@H[]fDUHSHHG@P;WD~\C@HS8HuHcH4ʍHHS8HcH,ʍHHS8HcC@H[]fDE11Afff.ff.cff.Sff.Cff.3ff.ff.Cff.cff. ff. ff.s ff.#ff.ff.ff.#ff.ff.ff.ff.ff.ff.ff.cff.Sff.Cff.3ff.#ff.ff.ff.ff.ff.ff.3ff.#ff.ff.ff.ff.ff.ff.ff.ff.ff.ff.Sff.Cff.3ff.#ff.Sff.Cff.%ff.%ff. ff. ff.!ff.!ff.ff.ff. ff.ff.ff.ff.S ff.C ff.ff. ff.#ff.s!ff.ff.ff.ff.c"ff.S"ff.Cff.ff.ff.ff.ff.H5J1fH5J1ffff.ff.11E1E1=DL[J,@H(HD$@D$HD$HD$8HD$D$0$\H(ffffff.H(HD$8D$HD$HD$D$0$H(AUATA USHH(NA|$HHcHH*fWf( Xf.HD$ $SIHEIcHLhD$ $H*Xf.HHLOE HMAT$Lm% EE HcHAHMHAt,HCH f.HHHÁb H9uH(H[]A\A]@HHHH H*XHHHH H*X7H5,#H=w1fDE1E1!DE1E1t1!fffff.1ffDA DH HOH9AHDAMDH HH9AHD(USHHHT$0HHAHt$(HL$8H)H$LD$@LL$H)z)r)j)b)Z)R)J)BH#8vH$H$D$0HT$HT$ HT$hHHH:H[]HHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)BH$H$D$0HD$HD$ HD$HúfDH\$Hl$HHHC tHCHl$H\$HfHHH\$Hl$1HXF t HFD1<@F tHH@HHF1F tHH@HHFfffff.H\$Hl$HLd$HHIԺ"LHHHl$H$Ld$Hf.1@~fDH\$Hl$HLd$HHI1 LHHHl$H$Ld$Huffff.H\$Hl$HH1H C tHCHl$H\$H@HHH\$Hl$1HfDF t HfCff.F tHH@úfDfDF tHH@úfDfDfDfDADAD1f1f1qf1fAWAVAUIATUSHHH(Ht$HL$HHLdL HHtnAAE1HHD$L|$L|$DMJ|5LM)LjH=wI9wEOd$HLHHuH1HL$HH(H[]A\A]A^A_DLH$LHL$H$HLIH9HL$^IFBD5HT$H몐H\$HHl$Ld$HH=HHIt\.HHt HHtxtH5AHH1@HIt$HL)H2+HHl$H$Ld$HH\$Hl$HLd$HHdH%(HD$h1HLMtLLHH HHH}CH=TBHH53 dH爃H5,BHźdHlH)HH1HH)H9HGHHD$hdH3%(u}H\$pHl$xL$HĈÐ}lS@HtHHǃƃHǃHǃsH5]AH10AUATUS1HH-#I!HBEHt5IEDB`ut+HBEHuH[]A\A]f]ff.SH/Ht*HHt"8.t-H HtIHH[DHǃ [xuH HKHǃ [fDH1H H [f.SHt[ÐHƃƃH[SHt[ÐH5ƃƃH[H\$Hl$HLd$HHHLMtLLHHHHH}CtH=2?HƃHHl$H$Ld$H@H$HǃƃƃH$Hl$Ld$HD}tqAWAVAAUATUSHH=>H8(H=>HH=>HD$H5HD$RH1rH514HID$tHHD$I1=H5f HI8HHuI1 H54 HHHF|$ILHALHLHHHkH=HH t HHH „tƃ>H==HHD$(Ht$(H| tƃL L L H8D[]A\A]A^A_fDE1E1E1AeHPHt x H_ HH5e;1.HPHt x PH0 HH5^;1A"HA"HPHt x HD$ D$HH5F<HD1L51<H|$HPLEt$H|$EAA"H|$"Ht x HD$y D$HH5;L1?H#H(LuMH=;LukH=;LtX=LHHtCHPHt x HH $ H $HljLAH5w;D)L1HLuMqH|$L5;HPLEt$H|$EAA"H|$"Ht x )HD$e D$HH5;1L+HPHt x H- HH591H56 H E1@t2HPHt x gH HH5u91E1L 11 HHg LI 1 HHE LI 1 HH# I ǃ| H@H@H@HHx8HC+f.Eu 1H=Z9Hv1 Hd_1D1H|$t@Ht$Hy9H]tHt$H&H;Mt u f)HL`Hpf.]HL@Hpg[]A\H54@L1ffff.UHASHHH6HL$H)&HPH@w4HT$Ht)Ht$H m#?EHH[]@EH1[]AWAVAUIATUHSDHHHt$ H|$DL$,L&,<EAArHD$8E1M9HD$rH{A$L D#AAIH=v A%E~EM9<HHL$H|$LL)ELHT$8HJHwIfEAtH|$,<HD$ HL9sRI9vML #f.I9v5HL$H|$LH)HALL$LL$AHL9rM9MBAtIH|$*t6D$,t]L$,L/:H|$H21HD$ L HH[]A\A]A^A_@HH1[]A\A]A^A_L$,LN9*fff.H\$Hl$HLd$Ll$,H8IHAH3<LEHL$HEH){IHD$HPHwmIw(HHl$ DH\$Ld$(Ll$0H8f*HkuAHD$빐H1A̾*H1~H51AH1gffffff.AWAVAUATUSHXH|$@Ht$8HLff0L9VH-8L-8fDD3A RA HA >A 4A *A#EHA,~A(Ht$8D~0A6L9D<<d<>fDAWAAVL5<AUE1ATUHSHHXf.DEHH^}(fU De$ЀHcA ?uÃXx@Djf(fj%Hf.E0H0H Y0H5 0HHEȁ1KwbfDf ZaufD=X EDDEDAAE9tAHABAD$ADHAp@=@t!kxV=.DfE0H/H )/H5W*HHEȁ1hgADF$ AHE LE@HLM8DU0L](HD$8HUHT$@HuHt$HHMHHUHMHUHT$HL$LD$0LL$(DT$ L\$\LD$0DLE@LL$(LM8DT$ DU0L\$L](Ht$8Hu Ht$@HuHt$HHuHL$HMHT$HU6E1.f..@PDtUfAD=xZEDDA{A)Du'KHXD[]A\A]A^A_E0H-H_-H5e(HHE1WE0H-H8-H5-HHE10HSHAHH+YH9wH9HBHTH9r HF[D[rf.AWAVAUATUSHHH|$ Ht$HT$F 8LnHMLzM9A}Ly}@x HI9wL9ffILM)H)IDDHHD$(LLHHD$!HL$A,HH;H*Xf.EH<IHD$HcP,LHH8I H@@HuH\$IWHcC,HT$0LITIH9vHT$L)HHHHH9wHD$LI9IvXLl$8IHl$ DHL9u HHH9tA$1HHIM9wLHL$0Ll$8HUH)HHH9uHHH9tHT$HcJ,ITH9OHT$H\$HcJ,I H)HJ8HR@HuLH$$H\$H$K uJHHzHL$H\$H)HKHBHH\$(HXHD$H HH[]A\A]A^A_H\$HHZHt#HZHL$HL+jHBH\$K HH\$K HzwLH$mHL$H$HZHT$ B HH[]A\A]A^A_HHHH H*XLNH54#H=1LH|$H|$ H5$1fAWAVAUATMU1SHHhH$Ht$@dH%(H$X1HL$hL$L/LH+GHD$pDv0DAA$HH$@H)HF8H$HHD$ HD$HH$Ht$@Hw<HL$@$I L$0tLT$pH+CHHcH9R<Ht$@v($MH|$@G$$<H$ AHD$XD|$0H54H$AHT$`Ic thLH+T$`?H!HH?HHc$<H9}$<xu2$$<tu^HcHC L)HH9|yCP;CX}XA%ASv T$0H5'H1f.H9(EJcHDŽ$<뎉HDD$~DD$LLHDD$$<IDD$_D+D$h$<D$<EuDŽ$<AE.H$Ht$hH2Ic1HЅtrA)EDD$<]~QH$I9aH#I9H  Hʋ$<H$ɉ$<AD|$0H=q&DH)*~?3YȃfWf.D$ v$D$ XD$ fWf.D$ wD$ H|$X $^ $HYf(L$ HHC L)H,'IHHIEHt$@F02-LH+CHcT$pHH)H Ht$@H<H|$@(<L;d$`<IuF aHH@$<q<HD$@I1E1@ D$0D$<EuDŽ$<AE,LL$hH$DLH9s!H5# HȃuH9DIrI9":L$AE$<H$LHH)H9yH5X H16fDH$$<D$(E1$H|$8fH$I92E'HH$LAHI!I ׄT&IHLIEHHE1$<D$($<z$H$L$(I9H5H1EDLH+$HL<@ILHHMHD$(tH DE,H$<H$H$(H$4$Hl$XH$H$8L$D$L$IHL$8Ht$PI֐H$LLH+$<LLLHLLLH~HLLHmHL$PLLHZ$4$8AHt$(H߉ Ȉ$$  $( ʃ$<N$<$HT$8$HcZ$<$<)H$I98 t#H #HI98 HH$$<P$<D|$0H$H|$(ADL$0HL$XAHt$(LHxAH$ tyA#H$ 1HI|HHIE$<P$<"EsH$H0H$AH$ uHHH8H8H HH(H HHH HHH HH!HH HH!HH HH!H(H H$ HT$@z(~6HC L)Hz2H$HPI95E/H0H$H$ D$0%=44=4H$ Hc$<IHIE$6LH+$$<HcH4H9HcоHEH{HHPHD$(H D|$0hLx0D$<DŽ$<E&H$l$P11DHt$8=H 4#A$<I9Չ$<%uE!L;$%L$0Ht$8LH뛋$<EHT$@Dr0AA$LH+$Hc$<H H9H 3E,$< -L;$-Dt$(l$8L$Hl$HML;$0L$0L LLHIDHŋ$<$<Hl$HMl$8Dt$(,$<H$(L|$HHL$(D*XD$ D$ $<P$<!H$I9!EHH$~|$0CEЅ@HcIE_/$<H$$<҉$<H9D$h5/HH$yɀwۅh$$<H$LDHcH))H9OEL$(L|$H(HS#H*XD$ D$ $<P$<C#L;$5#,H2H$<LELHEH)HH$(HHH0H$@^IpH|$@HT$hHW8EH$D$0$<~GI9U2H/#DI9>2  Hʋ$<H$ɉ$<I9'H5 H1~fDH5H1gE$<(@h-P$<H$HL$HHH$Hы$<r҉$<HL$H$<;&E|Ht$@F01E1eHT$@HHH$HBH$HBH$HBH$HR H$HQ(H$HQ0H$HQ8H$HQ@H$Q0AAAD#|$0HAH$A,HA@D Q0L+$$<t ED|$(l$8L$HL|$hH\$@7fK0 H$MMLHH@L9$$<P$<H$EHuc01Et T$0$X*$<)Hɉ$<F.HL$@fDH*HI@$<uH*Ht$hHq8H$H9A)*HHH4HHHIHC L)H;)ILH#IEH$#$<HD$ HD$HD|$0H$8H$HD$(HT$8A$<P$<E6DL$0HL$(AHt$8LHA$8"A$8@*XD$ D$ cD|$0H$Ht$(Af$<P$<EDL$0HL$XAHt$(LHAH$ AxH$ J@H*XD$ D$ eD|$0H$HD$(A@$<P$<eEDL$0HL$XAHt$(LHF.AH$ A5H$ :@3HH*XD$ D$ \D|$0H$8H$HD$(HT$8AfD$<P$<E DL$0HL$(AHt$8LHv^A$8 A$8|$0N |$0Vb$8 @xH*XD$ D$ HD|$0H$HD$(A$<P$<Ev DL$0HL$XAHt$(LHAj y D$ X$ D$ D|$0H$8H$HL$(Ht$8A@$<P$<EDL$0HL$(AHt$8LHA$8A $8|$0n|$0v$8@*XD$ D$ ED|$0H$8H$Ht$(H|$8A$<P$<5Ef DL$0HL$(AHt$8LHA$8Q A`$8g @eH*XD$ D$ eH$8H$D|$0H|$(HD$8fD$<P$<uE& HL$(Ht$8EALHX@An$8 Av$8 @*XD$ D$ eD|$0H$Ht$(A@$<P$<E DL$0HL$XAHt$(LHAH$  AH$ : @ H*XD$ D$ eD|$0H$8H$H|$(HD$8A$<P$<EDL$0HL$(AHt$8LHA$8A$8@e*XD$ D$ hD|$0H$8H$HT$(HL$8Af.$<P$<-ENDL$0HL$(AHt$8LHA$89Ad$8P@*XD$ D$ hD|$0H$8H$HT$(HL$8Af$<P$<mEn DL$0HL$(AHt$8LHN6A` o $8ZXD$ D$ D|$0H$HD$(AfD$<P$<E DL$0HL$XAHt$(LHAH$  AH$ B@HH*XD$ D$ \H$8H$D|$0HL$(Ht$8D$<P$< EHL$(Ht$8EALHAN$8AV$8@*XD$ D$ jD|$0H$H|$(A$<P$<]E DL$0HL$XAHt$(LH>&AH$ z A:H$  @HH*XD$ D$ \D|$0H$HD$(A$<P$<E DL$0HL$XAHt$(LH~fA  D$ X$ D$ D|$0H$Ht$(A$<P$< EDL$0HL$XAHt$(LHAH$ AH$ : @ H*XD$ D$ eLH+$$<LH+$퉄$<$<H߅HcHE)HHHD$(H D|$0bHhD$<DŽ$<EH$11HL$8-҃1U$<HA9׉$<uEL;$L$0Ht$8LHHc$<LH)H9M!HH$[DHkfDH$HH$AH$ H|$X$ HI$IEHH$蒼DH$H$A$8щ։%  …퉔$8HIT$菻IET$HH߉躬DH$H$AN$8Mʅ퉔$8XHIT$(IET$HHHc˜DH$H$A$8Љ ȉс …퉔$8HIT$螺IET$HHHc8 H$H$A$8wЉ ȉс …퉔$8`HIT$IET$HHHc谗H$H$A$8Oщ։%  ƒ|$0N$89ʅ퉔$8BHIT${IET$HH߉親fH$H0H$AH$ &HHHH8H8H HH(H HHH HHH HH!HH HH!H!HH(H H ƅH$ HIHH+IEf.H$H$Anf$8ff$8HIT$+IET$HHHĕOH$HH$AH$ 6HHH8H8H HсH(H HсHH HсHH HH!HH HH!HH HH!H(H …H$ HIHT$AIEHT$HHݔ H$H$A$8H|$(B$8HIZ$ͶIEHH$I@H$HH$AH$ 6HHHH8H8HH HH!сH(H(H HցHH HցHH HH!H!HHH H H ʅH$ HIHT$IEHT$HH H$H$Af$8ff$8HIT${IET$HHH?H$HH$AH$ 6HHH8H8H HсH(H HсHH HсHH HH!HH HH!HH HH!H(H …H$ HIHT$葴IEHT$HH- H$H$Af$8Ff|$0nf$8Off$8VHIT$IET$HH>H$HH$AH$ HHHH8H8H!H HH(H(H HցHH HցHH HH!HH HH!HH H ʅH$ HIHT$1IEHT$HH]pH$H0H$AH$ .HHHH8H8HH HH!H(H(H HHH HHH HH!H!HHH H H օH$ HIvHHIE"f.H$HH$AH$ ~H|$XPo$ HI$ޱIEHH$ZDHIT$谱IET$HHHcJD,HsH$<HL$(ELHEH)H$(HQHH$fLLHIDHt$HfDHT$HHT$H>fDHT$HfDHHT$HfHT$H@HcHT$HSHt$H~fDHT$H @HT$HfDHT$HffDHHT$HfHcHT$H HcHT$HD$(|$({$<Df$8cH$ H$ $8H$ f$8H$ H$ +$8$8H$ $8H$ HIHT$fIEHT$HH蒠H$HH$L$0Ht$8LHq@8H=aD谱H5 *$BD|$(Ht$@HH$L+l$8AD#~0D$HH$HFH$HFH$HFH$HF H$HF(H$HF0H$HF8H$HF@f$8f$85$‰$8‰$8L|$HtHHH!D$HHt$HHH8H5LH1tLl$PI@H$I9 ED(HH$AG ]IH@H$ IoH=HH$ HL9uH9tDH9v4@0)ƃ0@1HH9rE7Ll$PD$(AG  IW fH:0tLHILHE1IE$<$<H5 HHLHHD$LHaLD$A@ IMH@H$ IhHT$XLH1HL$0Ht$8LH譿A_HHH H*XHЃHH H*XlHЃHH H*XZl$PAH|$(L+HLxHC L)Hw HD$(IIEHЃHH H*XL|$H1]HT$XLƹHLD$?LD$HH$ MH$H+T$hIcHH?HH$McHH+T$hHH?IЉ$<HH+T$hHH9 H)E1H$8E%H$Hc$<LH)H9~D)$<Hc҃|$0Z |$0A EtHL$@A0@ HDH9r-t t t t ft u HH9fsHhHHH)IEt AO Ht$@F0@u 1LH|HC L)Ha ILHIEHc$<H$L$HC D$$L)HH|$(II}H$MH$Ll$(Dt$8l$PI@I9- ! @H-#HH$T?҉$< D @qtHPH$?I9 H @>HH$L?I9  @HH$T?I9vDA A@ ȃ$<@$N$<$ALLH߈$Hc蓑$<$<H$1I911fH$1DA A@XDHH$ FDA?D 6H$11H$8 t(HPI9x HH$HH$HC MDt$8l$PL)HrLLHyIWDŽ$<H$LHcH)H9~ D)$<a$<H$(MH|$(H$Ht$XAUALHH$ $@H#AUH$Ht$XHD,LEE褷y,H觿HL$(<H$ELHAiFIH$ H$@MI*XD$ D$ $<Aɉ$<hH$I9WE,HH$<HL$(ELHAiH)褩IH$(HPHH$PHI迤LIHHQ$bP$<:H$IH(HH$hHIEHH薕$<P$<$<H$H~'I9v"HH#I9v:<8HI9t$)HcHC L)HH9}LLH藡$<IŋCP;CXTH>$<~AH$H H|$HHHH$$<HǃډH|$HH$I9E.HH$|$0b$<1ɍV$<H|$HHЃH?H9uH|$HDŽ$<L$DL$0HL$XALHLlTH$ 5D$<DŽ$<E'H$11H|$00ƒ҃1U$<HA9׉$<uEtfL;$Ht$0bLH۵Ll$HH$HH$LAHL H*XLH$HH$FH$HHHHH苸IHC L)HLLH$IEHt$(H+nHHhHC L)HH|$(II}1ҹ"LHCHWLl$P/Ht$hMLLH蜞InD$<DŽ$<E-H$l$P11DHL$84H \#HƒA$<I9Չ$<uEt%L;$Ht$8hLHH$HH$LLHϝIkH)iH)@"$<H$/H5H1޳P$<rH$HH$*‹$<J҉$<XD$ D$ 1HIM Hl$HMl$8Dt$(LLHI/H$tH$H$HL+L+kID+D$pH$XdH3 %(Hh[]A\A]A^A_DŽ$<HH9>Hu}t HH9wHHH)$I1L9+$艄$<iLLHIH$ HHH8H8H HH(H HHH HHH HHH HH(HH H H$ dHlH9r;E<t"}}HuыT$ D$  DD$ D$ Eu H?0]HT$XM)LLLt$X讅IHLM(Lt$XL$ QL$ @H9B|DD$H=8DRHJ$1E~^HL$PH1F tHVB tHT$(H@@@H|$(їD$H1AZHH|$($DŽ$H|$(HIŋT$ %ST$ H|$(H5Y1HL$@L$L+d$PHIHRHU8\H$dH34%(HD$P<H([]A\A]A^A_WHHt$PHPH$ HHpH H|$(  HHD$PH0F H9HcHEDDE2HH+T$0IcHH?HtNA)HL$@McHJ3HHH@HD$0H9/L1rHH+D$0HL$@HHBH$HEH$HEH$HEH$HEH$HE H$HE(H$HE0H$HE8H$HE@|$_:vHt$@AAHHHHH H@HD$0H9r H|$(ܲH|$@HD$0H\$0HHXD$ H$ Hl$HHT$8%D$ DEF|$ HDŽ$ E8H|$8HھsHADEMALE 6<F„ujU сS$-HE|$ H$ UH$ HHHH8H8H HсH(H HсHH HсHH HH!HH HH!H!HH(H H EH$ H$ HHfH=E1趓HEUH|$(HHnE <HUB % =H|$(11HٌH|$(腪&,U Hc$\DxHl$x,HL$PH)HHL$P$o,IcHl$HEAHH+D$0HInD$HH|$(H$ "BH|$PHH$ HT$ H$ DHl$8HL$ AH|$ Hھ輞HAEML)F &HH@AH$ $$AHDH$ EuH$ HHEDDE -H|$0H9s'H~#DH240HuDHH9wH9!7HHH+D$0A8T$ H$ DHl$8Ht$ AH|$ Hھ貝HAEMLm(F b%HH@AH$ AHDH$ EuH$ HHH$D|$HEELl$8H$H|$hLl$@Hl$8Dd$ HIE [HEf.5E f.OC=H|$(HHl$pfDHHʀHUu뀤$Ld$pI)|$HIEK$H@IDHD$0H H9t|$HyHLH;HADd$ EHD|$HH$H+D$0[H$ DHl$ IHھLHAEMML9'F "H@f$ =Ef$ ufHMDd$H1AA-A-~@DDD @A?Mc~#H|$(e2A?A?AE },IEH@H$(IEH$ AE t)L$(E1HD$ KD1Ht$@IHIID$HHIHHEHEHH H@HD$0H9j,MK'H$ Hl$`L$HHD$8LEE{@H$HT$ AuHt$8H|$(A3H$LHcnEtdHHLL)HH$(H)HH$(&A9ƉALEwH$ LHcH$ EuHHLL)HHL$蔋HL$H덋T$ H$ Hl$8HD$ DAH|$ Hھ\HAEML$F  H@Af$ )ADf$ Eu$ fHH$ DHl$ IHھLɘHAE0MLh$F H@E$ uH뽋T$ H$ DHl$8H|$ AH|$ HھMHAEMLb!F H@A$ AD$ Eu$ H뚋T$ H$ Hl$8HD$ DAH|$ Hھ讗HAEML!F 6HH@AH$ AHDH$ EuH$ HH딋T$ H$ DHl$8HL$ AH|$ Hھ HAEGML+!F }H@A$ ~AD$ Eu$ HMD$,AE 'IEHPH$(MeI4Ht$`AE $D$hD$H|$8Ht$@DDAFE$HcHHEHH H@HD$0H9:)E#|$ Hv)H$ E1H$E1DHD$ @AAEA9|$HDL;d$`HT$`HL$ LDD$hH|$(L)"H$ HJH.IH=HPHvHPH  DAAAEA9aAEAH$($AE1|$8tD$AE)McLH1LdHD$H+D$0L$ H$ DHl$ HDŽ$ HIH¾L膔AEMLF `H$ (EuH$ HHEO"H$ Hl$8Ht$ 'HL`IwPE#D#HAAEKMLD#F uH|$(蔖IIvH|$(ytH|$(H1MD$(AE $IEHPH$(MMI<H|$hAE 3!DŽ$D$`|$8H|$@DDAFDHE$HcH HEHH4 H@HD$0H9$D9DN|$ BDt$H%L$ H$E1HE1LAAE;D$H}r|$`H;\$hs`HT$hD$LH|$(HH)H$ HJH+HDʀDEAAAAE;D$H|AHH$At0|$ B'DEуADE' HAE1|$8tD$AE)McLH1LaHD$H+D$0M'AE L#IEH@H$(IEH$ AE U Ht$(H@@@? E&H|$@G J&|$8(L$(|$ ZH$ IcN,.uANHcɅH$(~1L9s,Hoq#I9fvHH$(HօɉI9)E}(1|$ ZH+$ H$(D42H$ Hl$8HT$ .@HL`I$H=wSEu~D#HAAEMLDF uH|$(II$H=vH|$(ߚtH|$(H1|EtH|$ HھD$ ̏HgH|$(H5L1ɔ|$8"EHt5A(H H"AH@@uH"HL$0HH8ML$F "HDp }(t$ A|$HE0HULe!0ɉL$8 ȃE,E0HUH$H}@Ld$0HL$PLd$@Z E0HD$0A\$ HLHEL$ H|$(HAD$ % 9EEAH9$E0EY#Eu߉E0떋T$ H$ DHl$8H|$ AH|$ HھOHAE MLF HH@AH$ AHDH$ EuH$ HH딋T$ H$ Hl$8HD$ DAH|$ Hھ認HAE MLZF &H@A$ AD$ Eu$ H뚋t$ H$ DHl$ HÍH¾L AEMLF sHffZ$ Eu$ H롋t$ H$ DHl$ HÍH¾LzAEMLyF XH$ QEuH$ HHH$ DHl$ IHھLHAEc MLF H@fEf$ ufH븋T$ H$ DHl$8Ht$ AH|$ Hھ{HAEMLF H@A$ AD$ Eu$ H뚋T$ H$ DHl$8HL$ AH|$ Hھ܊HAEMLF HH@AH$ AHDH$ EuH$ HHE HT$@HL$0HHHD|$HHl$hHH EEHE1HD$8AF HHHD$ AFHHD$`$H$LH|$(HɃxoIL+$K$HH9T$8wHHT$@H HH+T$0HQHL$`Ht$@H|$0HT HHHxHH9H|$8H$HL{HHl$ HEA7MLEF HL`|$HH;\$8rGHt$@HH+T$0HHPHH|$ HL$0H@H;HH9HL$0HDHD$8$H|$(HLHɃNnHFT$ H$ DHl$8HL$ AH|$ Hھ興HAEMLMF H@Af$ zADf$ Eu$ fH땋T$ H$ DHl$8Ht$ AH|$ HھHAE"MLF HH@AH$  AHDH$ EuH$ HHHT$(HL$@Ht$0H@@@ED$`HH@HDHD$HAF IcDH|$8Hl$hHHD$ DLd$@HHhHŀ|$`HEAuwHAD$ wH+\$0LI$HXH|$(HT$hHt$h$HF8H$I|$H|$0I$HHXH@HDHD$HH;\$HvDHH+T$0I$HPHT$ I$H HT$0H@HH9*HL$0HDHD$H$H|$(HHHɃkHHl$ Hl$8DEMLAF H|$(L$ vL$HH$ DHl$ IHھL薅HAEMLF  H@lj$ wE$ uHEEfH9\$0HAuHU8HD$0HH9HH+D$0H9v!HfH;B8s HB8HR@HuH$HL$0HM8EtrD$ uhA t,H9ːv&He# DEtAHH9wH9ErH9AA)HH+L$0.fA)AADHAH+L$0EE|$8MH$(AE9=IcEH|$@H H4 HHRHT$0H9TA)HtPH$ Lt$(H1L-iH$(HH$ HHHH$ H$(uHA1|$ AMc HLDL4SHD$(HT$(Ht$@H|$(E1E1t1THH+D$0O<HEHl$pH@6fDHLHtLf.AHl$8HH+D$0H|$(HcfD@O @Bf諈H$L$f(( $YzL9 $ HYXf(,ƒȀf.|Ew$L$eH+\$0LIEHXH|$(賒HD$0IEH\$0HXX@DHȀDEAIE DeHE1A$Pv PI  AE 1HX* HEHPH$ HmH|$(H覌@ I LHELτt\H ;E1Pv#H|$(LOH|$(H51ÅHcH@t̾HEuIHL)1HxH$ IL$ HD$`fDIAF IIH@H$IFMH1f4ɍtqAAEEA0DH uIHH)ƒ΀@HQA4$sH$ Ht$`dHH$ IEH@L)|$HHT-HDHD$0H H96|$HHHLbHH|$`轅H|$(LpN EH1AEODHAE/fuHT$hH|$(LIH@A$ tAt$EHl$xt$ H|$PH/HH|$PAHl$ HH+D$0I $H|$(L$)L$H;\$HrDHH+T$0I$HPHt$8I$H3Ht$0H@HH9uH|$0HDHD$H@+HHHLoHrHHHH8H8H HH(H HHH HHH HH!HH HH!H!HH(H H H$ ‰ ʉ% ‰$ dHHH8H8H HH(H HHH HHH HH!HH HH!HH HH!H(H H$ ‰ ʉ% ‰$  HHH8H8H HH(H HHH HHH HH!HH HH!HH HH!H(H H$ HHH8H8H HH(H HHH HHH HH!HH HH!HH HH!H(H H$ ‰ ʉ% ‰$ $‰ ʉ% ‰$ ff$ HHH8H8H HH(H HHH HHH HH!HH HH!HH HH!H(H H$ HHH8H8H HH(H HHH HHH HH!HH HH!HH HH!H(H H$ eff$ H|$(jLLHD$rHD$H|$(iH|$(HD$HfWf.wf.tz1@fDufDfDHHfjfffff.H\$Hl$HLd$HHHIu*LHHHl$H$Ld$H\f.F tRHF@tHE15LHHraHtP tEHx~tH$Hl$Ld$H@AD$ rID$@cDt>HfWf.wf.tz1@fDufDfDHHfifffff.H\$Hl$HLd$HHHIu*LHHHl$H$Ld$Hf.F tRHF@tHE14LHHB`HtP tEHx~tH$Hl$Ld$H@AD$ rID$@cDt>HfWf.wf.tz1@fDufDfDHHf{hfffff.H\$Hl$HLd$HHHIu*LHHHl$H$Ld$Hf.F tRHF@tHE14LHH_HtP tEHx~tH$Hl$Ld$H@AD$ rID$@cDt>HfWf.wf.tz1@fDufDfDHHfKgfffff.H\$Ll$ILt$Hl$HLd$L|$HHHWhID@o0LXHGHH;WpHWhHH+KH HS H)HHPLpLhLHHI$P@HSHHH9H0F 0tkHD` fHF;k0|DH6DH\$Hl$ Ld$(Ll$0Lt$8L|$@HHfHHHKYH _AHD$hHShHD$ H5H1aH5&H1 a@AUATUSHHHhDg@o0H@H0HpH@HHGHHXHGHSHHH9ukH0F 0tOt8HDhHE;k0|DH5HD[]A\A]fH^AH5_H1E`H5H14`fff.AVAUIATUSHHHXDg@o0H@Lp(IHHHH@IFHL(IFHPHCHHXHCHSHHH9H0F 0t>HDh DHD;k0|DH4HD[]A\A]A^H ]AfDHxIvH9t!H)HH HHII~Hx"H@HT$ RIFIHT$H5H1^H5H1^AWAVAUATUSHH HH|$Ht$pD$AHDŽ$tHX H$HX H!HHH*X6Sf.6SH,HXH$H$H$Hl$pHD$pE1H|$Hl$ HPH0Hl$ H9l$pH$Lt$pE1H\$AINH9L$ IVHL$0HT$vcLt$(Ll$8HIILt$Hl$DLcHH9\$ vHI4$LՅD9tLLt$(Ll$8H\$0Ld$Ht$MHHt$8IH;L$HHL$HM9sWID$H9D$I{HHIL)HHEH.t(HI9sfDIH0I6IHHL9wL9v>IfDHIEHmLtID$IT$ID$IT$LIH9wH9\$H;\$II#Ll$(IHsHH|$T$A9HL9wLLl$(Ll$(IIHl$ @IHHYH9sHsHQH|$T$A9tLHLl$(HT$0H9T$ tTH9\$ IAI9LLl$(|tf.H|$0H9|$ Ld$LhHEIHEH\$8H$H9$t H$\$tH$HD$HX H []A\A]A^A_H\$HL$pH$H$L$HDŽ$H|$HD$dH$ H$ H$ HD$hM:D$dHcЃHHԠ HĠ HT$XHD$PHT$HHL$XH|$XHHHHD$PHL$xHD$0HHH+T$PHT$XHT$@HH+D$PHT$(HL$ HHH|$8HD$hH|$8H9|$(uHD$@H9D$ eHD$(HL$ H|$HH1ӅLt$ LD$(E1Hl$81Hl$H\$AHL2DI$I6H|$T$A9HKD-LHLMN$L9d$wHl$IH\$LeM9MH\$M`H\$LI9s@HI6HL)HHHH?HHM,IUT$A9}MeI9r@L;t$ H\$HD$ HT$0fDHHH HH9rHt$(HD$ HHHHHt$(H|$8H9|$(HT$0HT$@H9T$ HD$ HT$0Ht$@@HHH HH9wHT$0HD$0H+D$PHD$XHt$xHl$dHl$HHT$XH|$HHD$PLoHT$PMHD$XDIH\$LLt$(LD$ AHl$@HT$0HD$(@HHH HH9rHD$(IIHHLt$ HT$0sHUI6H|$L$A9L$oHL$HIHA~2HHt$hL$dLHHH0I)HPIHD$HL$dD$dIHD$HHt$hHL$HD$dH1HAHHT$hHl$pHL$pHHH$HHH+$HH|$hH0HHcD$$D$ HTIcHDH HHHA\$l$$4@TAE9 HcT$(D$ IcHDHHTHHIcHDHHHD$(A\$DUHcD$$H|$LdHcD$(I4$HTT$|2l$(D$$9D$(tHcD$(D$ I$HDHI $Hl$$ffDl$(D$$9D$(tiHcT$(HcD$$D$ HTHDH2HH0IcAHDH0H2Hl$$IcăD$ HTHcD$(H HDHHHHcD$(D$ HTH 륋D$L|$ LЋD$(9D$8T$L}UD9t$DT$D+D$8D)9bHcD$HAHk DtPT$DTTT$LTXD$(D$DD$HoD9t$D~fADt$8ZHcI4$H|$LtIT$NuSIIEIUID$ Dt$(D|$(D$(D$D|$Hl$HHcD$HHk IEIIUID$ Dt$(AD|$(D$ HcI4$H|$LtIT$IIuH|$T$II$I$ID$ Dt$(D|$("HcD$HT$8AHk TPT$(TTT$LTXDt$8Dt$(D$ D|$(AD$ IIuH|$T$|"uTIEI$AIUI$D$ IEI$IUI$D$ Dt$(pDt$(D$ ^I$IEIUII$ID$ Dt$(6I$IUI$I$aAWAVAUATIUHSHHXALH'Lt$HMvKHxH*XAf.AwH<HL$D$Lt$jGD$HL$IH1H4ItHHuAM$X I$X H \HLLNH4H<3It5DHHH)HH9Ht5LfDHITH HHHHH H)HH9uLHHHuM9tLKMM$X HX[]A\A]A^A_fAu&DH HLL6LX HX H OjM$X HЃHH H*XsH5%#H="A1iCAu Dff.AWAVAUATUSHHHHD$(HGhHWLoLc HHGhDR"ILgDЃMH HL$ Dz#DA EA@EtuHS LL)HLLH:4H HPHHHCHHHD$ HD$ HĨ[]A\A]A^A_D;SHSDR"]DHD$KHXH0D$A@E IH$H$I4$E1HD$>JHHD$XD$7@ I H@H< :~K- P:oK @:`K Ƅ$DHT$XHHx@9 H@8DŽ$HXeDH@HǃX1Hz0t!H@HHp0D$HD$H$DŽ$Ƅ$HD$XM)IAMcJ Lt$hHL$p HD$(HkhHHD$H@ HT$HHH@D$0HL$HA  HC H+D$(HcT$0HH9HT$P t$0~zl$|L$E1Lt$(Hl$HDd$0DT$dD1DHH041HtHAIIE9֋D$0HL$(DT$dl$|L$HLHL$(Hl$(H+D$PHT$(D$dL,M0HD$pD$dHD$HMLHD$(Ml$L)HD$0L$0E1A~_DDDt$0T$PL$|&@` HXAIE~IEIHIuAl$0EDl$dEtHL$HD$0HHHB|$0YHXxH`HsTHLL$D$D$pCPHsH߉CT8H`ƀHPLL$D$LhM1 IEAE(AE HH@HHHT$(H+SHHHPIED$H@EAHCIUHHRHHS IUHHRHHIELPHH4AE A;E$AE HPLch LIHI)LhfAEAEH@IEHChH+C`HEAEC0AEHAEIEfAEAEHD$XIE HT$XH@AEH$IEXAMLHD@EXHC@#EAEMXHT$XHHHXHL$(PP~)HT$XHHHPLL$D$6D$LL$H(!HLL$D$6HL$X$LL$D$HHL$(HcPHAHH(H@HCtBHHXH@H@(IE8HXHH1HtBHHA(H(IU@IEPfAMHcL$0IHL$PIM)M̀$HH HT$PALHD$HE$D$Ex&H|$Xt Ht$XH Et HT$XHhHPJ HcHHJ HH)HBHSHpHcHH@HcpH HHs`Hshps0H@H HHPH@HBHHH)HH6HNHHRHSHH HIH HK HH HIHL$pHHHPH`HHAt1HL$PIDI9s"IUHIMIHHI9rt$dHD$HH߁` 'Lt$hHS1IIHHT$PtpD$|I1F u1t!~HF@pA@EI@ %=DEI1F HF@AdH|$HfL$0Dt$0MLE1HuHA(HEHE9Ht$HH1T$0Ht$HHk%Lt$HD|$0HIA9~[MeLHL(AD$@HtLHHD$2HT$Ht$HH T$0Ht$HH$H%HcD$0Lt$hHSIH/DI1F >tHF@HDD$LL$D$D\$>DD$LL$D$D\$DHCH@H@(H@H@(H@(HHX1Hz0H@HHp0>D$@HLL$D$CAE D$LL$@$HhHLL$D$ HpH H`H H5r;AH]H5fAHHh7HpH$HH`HhHp HpHHp{ LPD$LL$DHHD$<D$D$0HL$H LiA D$dM@Ƅ$HC H+D$(H=M|$d?HD$HLhA<Eu AwH HoEHEHcT$0ALHHT$P8'"1HDD$LL$D$D\$FDD$LL$D$D\$rDfAMH *AHcD$0HIHHD$PIM)LMDLHAfAEHcD$0IHD$PIM)EM*HT$PH ALHWlf.Ll$pLkfH@@@"H EHD u#BHߺHt$XLL$D$ .D$LL$zHDD$LL$D$D\$?AD\$D$LL$DD$fL+cHT$(HߋL$0D$HIMc%IHD$(LcD$@mHT$XDŽ$HXL+cHT$(HDD$D\$HIMc%ID\$LcDD$rH EHD #H HEHEH$t~HQ'H$HA1HH#H5HH1/ HD$  HAIHPIEHPLhD$LL$H5kH1HD$ HPHtx t>H;H5/H1HH#H5l0H1:H@H@HtHH@8Huffff.E1AW1AVAUATUSH8c>8<H1L(J>8#H[H1*HH(>8]HcHL$K11L0>8H21HH@ 1=8H 1HHLxHcII)IA1E1=8wH0HH\H1w=8PH51H51HU=8.HH91H9=8HB8HH=p1=8HHH|1<8H#H wH5}H:1<8H#H LH5kH:1<8pH#H !H5[Hs:1l<8EH#H H5KHH:1A<8Hc#H H5=H:1<8H8#H H5.H91;8Hu#H uH5H91;81;81;8}H5]#HI1H;8XH5.1H=H=HC'Ht 1H C13;8 HD)H8tL1;8H()1H(:8H 1:8HH 1L:8H-1H:8H0 1H:8oHG 1H}:8VH-L L#H8[]A\A]A^A_Ð1Q:8*H-H1L<4:8 L"1H+?IS1 :8H o}H5s}LH1W1H981HHiHHtM@ <t:ft@L-!}*198zHHO5HoHCf@ u1L-4f98?H 4H5|LH11H:98H1HH198HH MHtpL5FH6M1HT$(88HH 1H88HT$(H5Y}HMIH1Ll$L4$HT$L}4L%+L- |MLffffff.U1SH[884H 1E88HVH1*HH#88HT+1 88Hy%1HX78HoHcPY#H1HHHH@HC78H=HcY#H1H78qH5*1H:1Hv78OHǃ$ 1HHcW780H*HHHH[]ff.AT1USH78H1L 78HH1*HH68H*HcHHI)IEuH168HcH^1H68mH)HHH[]A\1k68DH)HH1f.AT1USH:68H1L !68H2H1*HH58H0)HcHHI)IEE158HH@# 158H]H158HcfHHcV#H1HHL`b58;LHH1F58Hw(C@L t1'58HH"I1H58H1H48H(H(H+[]A\148H:1H48HHH@H148cH'HH0fAW1AVAUATUSHHP48)H1L(748HHH1*HH48HF'HcHHI)IAE138HcHH'HH@ k138H&H1L$38h1LH8I1Leh38AH&HJ@ 01A38Hr&HJHL`AL5wC1H 38H:&1H(28LLAE1LH1I28LH61I28LH1HE28eH=1Hs28LH%HH]H[]A\A]A^A_fD1A28Hr%HHLxf.128HB%H1N$18LH+ID1H18H$HH@ t)118{H$HHLpp1y18RH$H1H,\1851HHS6I(1418 HvHH,AT1UHSHHT$0HH<HL$8LD$@H)H$LL$H)z)r)j)b)Z)R)J)B08H1 HcR#H1HH$$D$0HD$HD$ HD$f08?HHH @ HtPHL`Ld$HmI1Ld$H%08LHHH]H[]A\f1/8HT$HH4Ld$HAU1ATUHSH/8He1L /8tHH1HHy/8RH"HcHHI)IA.1E/8HcH,Hk"HH@ R1/8HD"H1L$.8LH(I1Lk.8H"HJ@ 1.8H!HJHpLI&1I{.8TH!1L(b.8;HMIE1?.8Hp!H1H".8LHH}1.8H1H-8H!H(H+H[]A\A]D1-8H HHHL`1-8jH H1N,t-8ML1Hk2H 1HA-8H5HH11-8HqHH(fAV1AUATUHS,8H1L ,8HH1HH,8HHcHHI)IA1w,8HcL,EHHH@ T1E,8HvH1H,(,8HH%I1,8HH@# #1+8HU1H(+8HHH@HlLE1e AE1+8hH1L0v+8OIcHHE@t1T+8-HHI,17+8H1H+8HOL(L+[]A\A]A^1*8H"HHHL`1*8HrHf 1I*8rH5=HL1f1r*8KHnHH%AV1AUATIUSF*8H1H(-*8H>H1HH *8H<HcHHH)HEv1)8HcL$HHH@ 1)8|HH1L,)8_L1H}.IE1tS1HkW)80HHH@ O10)8 HaHHHLpA1)8HHcjJ#HLMHЃxEEL1H(8H1L((8HZHIE1(8_HH1Hi(8BHHH1M(8&H1H4(8 HeL L#[]A\A]A^fD1 (8H:HHLhf1'8HH1H,'8HH]!AAf1H'8bH5-HH1V1b'8;HkLH"UHSHH"HtH"HHHuH[ÐH,HPossible precedence problem on bitwise %c operatorBareword "%-p" not allowed while "strict subs" in useType of arg %d to %s must be %s (not %s)Missing comma after first argument to %s functionAssignment to both a list and a scalarCan't use bareword ("%-p") as %s ref while "strict refs" in usepanic: MUTEX_LOCK (%d) [%s:%d]panic: MUTEX_UNLOCK (%d) [%s:%d]panic: no address for '%s' in '%s'Constant subroutine %s redefined'%s' trapped by operation mask%-p() called too early to check prototypeStatement unlikely to be reached (Maybe you meant system() when you said exec()?) No such class field "%s" in variable %s of type %sUseless use of %s in void contextUseless use of sort in scalar contextFound = in conditional, should be ==panic: unexpected lvalue entersub args: type/targ %ld:%lupanic: unexpected lvalue entersub entry via type/targ %ld:%luUnexpected constant lvalue entersub entry via type/targ %ld:%luCan't localize lexical variable %spanic: fold_constants JMPENV_PUSH returned %dUsing a hash as a reference is deprecatedUsing an array as a reference is deprecatedDeprecated use of my() in false conditionalValue of %s%s can be "0"; test with defined()Applying %s to %s will act on scalar(%s)Use of /g modifier is meaningless in splitMalformed prototype for %s: %-pCan't use %s for loop variableVersion number must be constant numberParentheses missing around "%s" listUseless use of %s with no valuesArray @%-p missing the @ in argument %ld of %s()Hash %%%-p missing the %% in argument %ld of %s()/%.*s/ should probably be written as "%.*s" (Maybe you should just omit the defined()?) %s argument is not a subroutine name%s argument is not a HASH or ARRAY element or a subroutine%s argument is not a HASH or ARRAY element or sliceCan't use global %c^%c%s in "%s"Can't declare class for non-scalar %s in "%s""my sub" not yet implemented$_Too many arguments for %sNot enough arguments for %sa SCALARan ARRAYa HASHa CODEConstant is not %s referenceBEGINUNITCHECKToo late to run CHECK blockINITToo late to run INIT blockPrototype mismatch: sub %-p (%-p): none vs (%.*s)op.cCan't undef active subroutine__ANON__::__ANON__autouseSubroutine %s redefined# comment %04lx %04lx XXXX %04lx XXXX %04lx %04lx %04lx %04lx %04lx FINAL$[FIELDSa constantdidsimplicit split to @_negative pattern binding (!~)a variableoops: oopsHVoops: oopsAVThat use of $[ is unsupportedlocaldo blocknon-lvalue subroutine callCan't modify %s in %sUseless localization of %sDB::postponedSTDOUTFormat %-p redefinedFormat STDOUT redefinedBareword found in conditional() operator construct&`'123456789+-@array%hashpanic: ck_splitblock or sub {}one of %.*ssubroutine entryModule name must be constantunimportattributes.pm%s[%s:%ld]Runaway prototype%s:%ld-%ldourmyCan't declare %s in "%s", @$%*[]%s%c...%c__ANONIO__defined(@array) is deprecateddefined(%%hash) is deprecatedpanic: ck_grepCORE::GLOBAL::globFile::GlobFile::Glob::csh_globmainrequireopen_INopen_OUT Can't use global %s in "%s"nmnmmPommmmmmmmoommmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmpipGp%pmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmommmmmmmmmmmmmmmpmmmmmmmmmmmmmommmmmmmmommmmomnmmmmmmmmmmmmmmmmmppmppmmmmmmmmmmmnppmpnnmmmnmmmmmmmmmpnpnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnmompnmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm {F{)v?w)vy)vx)vxXyXy)v)v0xzx)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)vyy)v)v)v)v)vy)vwx)vx)v)v)v)v)vxxxxxxxxxxxxx)vxx)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)vxxx)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)vww)v)v)v)v)v)v)v)v)v)v)v)vzxY|x)v)v|)v)vzY|x)v)v)v)vw)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v)v|yyy)v]{)v)v)v)v)v)v8|yy)v8|8|8|)v)v)v)vxxPxf X0pInitialization of state variables in list context currently forbiddenC?panic: POPSTACK program input from stdinARGVDB::argsDB::DBDB::dblineDB::subDB::singleDB::traceDB::signal.../%s/%sPERL5DB_THREADEDuse Devel:: split(/,/,q{%s});PERL5DB %sNo directory specified for -I use no Can't use '%c' after -mname ()Missing argument to -%cx86_64-linux-gnu-thread-multieval_sv()Callback called exitrequire q%c%s%c/proc/self/exemain::FCan't stat script "%s"Setuid script not plain file No #! line#!Very long #! lineNot a perl script PHOOEY Args must match #! lineNo setuid script name Can't do setegid! Can't do seteuid! /dev/fd/%d/%s/usr/bin/sperl5.10.1main::INC%240sDB::CORE::GLOBAL::No code specified for -%c-Puse Config;linux" Built under %s\nConfig::config_vars(qw%c%s%c)/dev/nullhelpPERL5OPTCDIMUdmtwPERL5LIBPERLLIB/etc/perl/usr/local/lib/perl/5.10.1/usr/local/share/perl/5.10.1/usr/lib/perl5/usr/share/perl5/usr/lib/perl/5.10/usr/share/perl/5.10/usr/local/lib/site_perl-e/dev/fd/cc -E-CCan't open /dev/null: %s PERLCan't chdir to %sSTDINstdoutSTDERRstderr:utf8PENPERL_SIGNALSunsafePERL_SIGNALS illegal: "%s"%s had compilation errors. -v5.10.1panic: sysconf: %spanic: bad pagesize %ldperl.c%s failed--call queue abortedpanic: top_env panic: restartop %s syntax OK PERL_HASH_SEED_DEBUGHASH_SEED = %lu NoNe SuChScalars leaked: %ld No %s allowed with (suid) fdscript/5.10.1/x86_64-linux-gnu-thread-multi/x86_64-linux-gnu-thread-multiRecompile perl with -DDEBUGGING to use -D switch (did you mean -d ?) Usage: %s [switches] [--] [programfile] [arguments]-0[octal] specify record separator (\0, if no argument)Module name required with -%c optionInvalid module name %.*s with -%c option: contains single ':'"-%c" is on the #! line, it must also be used on the command line%s This is perl, %-p built for %s Copyright 1987-2009, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page. Can't emulate -%.1s on #! lineSetuid/gid script is writable by worldYOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET! FIX YOUR KERNEL, OR PUT A C WRAPPER AROUND THIS SCRIPT! Setuid script name may not begin with dash Can't change argv to have fd script Effective UID cannot exec script Can't do setuid (cannot exec sperl) $_ = join ' ', sort qw( PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP); s/(?=.{53})(.{1,53}) /$1\n /mg;print Config::myconfig(),"\nCharacteristics of this binary (from libperl): \n Compile-time options: $_\n", Compiled at Apr 23 2010 08:21:31\n"; $"="\n "; @env = map { "$_=\"$ENV{$_}\"" } sort grep {/^PERL/} keys %ENV; print " \%ENV:\n @env\n" if @env;print " \@INC:\n @INC\n";Unrecognized switch: -%s (-h will show valid options)Illegal switch in PERL5OPT: -%cWrong syntax (suid) fd script name "%s" Missing (suid) fd script name /^\s*#(?!\s*((ifn?|un)def|(el|end)?if|define|include|else|error|pragma)\b)/||!($|=1)||print(1../^#!.*perl/i)|/^\s*#(?!\s*((ifn?|un)def|(el|end)?if|define|include|else|error|pragma)\b)/||!($|=1)||print%s -ne%s%s%s %s | %-p %s %-p %sCan't open perl script "%s": %s Can't ignore signal CHLD, forcing to defaultNo Perl script found in input Execution of %s aborted due to compilation errors. panic: sysconf: pagesize unknownpanic: pthread_key_create failed panic: pthread_setspecific (%d) [%s:%d]panic: MUTEX_INIT (%d) [%s:%d]panic: MUTEX_DESTROY (%d) [%s:%d]BEGIN failed--compilation abortedUnbalanced scopes: %ld more ENTERs than LEAVEs Unbalanced saves: %ld more saves than restores Unbalanced tmps: %ld more allocs than frees Unbalanced context: %ld more PUSHes than POPs Unbalanced string table refcount: (%ld) for "%s"-a autosplit mode with -n or -p (splits $_ into @F)-C[number/list] enables the listed Unicode features-c check syntax only (runs BEGIN and CHECK blocks)-d[:debugger] run program under debugger-D[number/list] set debugging flags (argument is a bit mask or alphabets)-e program one line of program (several -e's allowed, omit programfile)-E program like -e, but enables all optional features-f don't do $sitelib/sitecustomize.pl at startup-F/pattern/ split() pattern for -a switch (//'s are optional)-i[extension] edit <> files in place (makes backup if extension supplied)-Idirectory specify @INC/#include directory (several -I's allowed)-l[octal] enable line ending processing, specifies line terminator-[mM][-]module execute "use/no module..." before executing program-n assume "while (<>) { ... }" loop around program-p assume loop like -n but print line also, like sed-P run program through C preprocessor before compilation-s enable rudimentary parsing for switches after programfile-S look for programfile using PATH environment variable-t enable tainting warnings-T enable tainting checks-u dump core after parsing program-U allow unsafe operations-v print version, subversion (includes VERY IMPORTANT perl info)-V[:variable] print configuration summary (or a single Config.pm variable)-w enable many useful warnings (RECOMMENDED)-W enable all warnings-x[directory] strip off text before #!perl line and perhaps cd to directory-X disable all warnings split(/,/,q)+********++**+******************+*********+**+**}1******************3J3*3**1******1***,,*//********}/*m/i0*** 0-**,*0*0**L// /-0:utf8:utf8:utf8:utf8ONNNNNNNNNNNN,SNNNNNNNNNNNNNNNNNN,SNNNNNNNNNNNNRNN,SNNNNNNNNNNNNNNNNNN,S,SR,SNNQNNN,SNNQNNOyQ,S"P,S,SNNNNNNNN,SN,S,SOON,S,SNN,S,S,SN,SNN,S P,S,S,SOCpanic: gv name too long (%lu)VERLOADTF8LOCALEARNING_BITSBad symbol for hashBad symbol for arrayBad symbol for scalaroverloadingin overloaded package has no overloaded magic left TIEHASH (Did you mean &%s instead?) ::ErrnoTie::Hash::NamedCaptureHad to create %s unexpectedlyXPORTAnyDBM_File::ISANDBM_FileDB_FileGDBM_FileSDBM_FileODBM_FileHILD_ERROR_NATIVENCODINGREMATCHOSTMATCHTF8CACHE$%c is no longer supportedFileHandle::IO::Handle::filehandledirhandleBad symbol for %s%s::_GEN_%ldUNIVERSAL%s::SUPERniloverloadCan't resolveStub found while resolving(${}(@{}(%{}(*{}(&{}(++(--(!(=(abs(neg(<>(int(<(<=(>(>=(==(!=(lt(le(gt(ge(eq(ne(+(+=(-(-=(*(*=(/(/=(%(%=(**(**=(<<(<<=(>>(>>=(&(&=(|(|=(^(^=(~(atan2(cos(sin(exp(log(sqrt(x(x=(.(.=(~~8pX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Xx8Xx8 ڱ԰[4899ǹmǹ3]_UUUUUUUU_U__ AUTOLOAD444444555555Name "%s::%s" used only once: possible typoAttempt to free unreferenced glob pointers, Perl interpreter: 0x%pCannot convert a reference to %s to typeglob, right argument in overloaded package , right argument has no overloaded magicOperation "%s": no method found,%sargument %s%s%s%sCopy method did not return a referencepanic: Can't use %%%c because %-p is not availablepanic: Can't use %%%c because %-p does not support method %sVariable "%c%s" is not importedGlobal symbol "%s%s" requires explicit package nameCan't use anonymous symbol table for method lookupCan't locate package %-p for @%s::ISAUse of inherited AUTOLOAD for non-method %s::%.*s() is deprecated%s method "%.256s" overloading "%s" in package "%.256s"p`P@0 xx88888888888888888888888888888888$Ll$Lt Ly p i _ X r\5 %\\\\\\\\\\\\\\\\\\\\\\\\\\\%\&%|%\%\<%%\\$$$$L$\,$###l#\L#"!!! L"| l < \!!,<(8hX(+p`p0PFH88XH ( h x  ( 8xXB"\!\\!\\\\\\K!"\\\\!\\\y"}#M##"""our @F=split(qpl`HҮȮ޿ȮȮȮȮc޿!b9NcƷ1UUUUUUUUUUKӹh?888888888888888888888888886״y&8޳8888888888888888888888o88ȱtޯԠԠkkkkkkkkԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠԠ٫̫ԠԠԠԠԠԠԠ6ԠԠԠ)Ԡ٩ԠԠԠ=_ +  g M 3  { f r)Nk2_u)b1> opo} FEmEEDyD DCCC#CBBBAAGG{GJGFpFVFz> >=3==<q5q//.q%q/qqqq/qp/p?@@ @0@Number too longcomma-less variable listIdentifier too longnext token ???within stringwithin patternnext char ^%c\%03o at %s line %ld, near "%.*s" %-p%s has too many errors. at end of lineat EOFUse of %s is deprecatedcharnamesundefConstant(%s) unknown: %s} is not definedConstant(%s): %s%s%sPropagatedCall to &{$^H{panic: scan_numMisplaced _ in numberIllegal octal digit '%c'Illegal binary digit '%c'Integer overflow in %s number%s number > %s non-portableinteger+-0123456789_floatsayelseif should be elsif;&/|})]oaiuwef!=No comma allowed after %s ;readpipe([{< )]}> )]}>msixopgcmsixopSearch pattern not terminated[#!%*<>()-=])} =wds]rnftbxcavaA01! zZ79~[\]^_?{...}[...]L\uU\lpanic: yylexqr:'{$()| \%c better written as $%clLuUEQMissing right brace on \x{}Missing right brace on \N{}Missing braces on \N{}qqFormat not terminateduse feature ':5.10';LINE: while (<>) {chomp;our @F=split(%s);our @F=split(' ');;}continue{print;}=cutperl -indirCan't exec %sToo late for "-%.*s" optionpanic: input overflow:uniquelvaluelockedUnterminated attribute listsyntax errorUnmatched right curly bracket+-*/%.^&|<Reversed %c= operator!=~ should be !~bare << to mean <<""Excessively long <> operatorUnterminated <> operatorGlob not terminatedreadline{$:+-Array lengthScalarFinal $ should be \$ or $nameSIGYou need to quote "%s"$@"'`q&*<%Array $#+-'"studyNumberStringBackticksBackslashmsyqqwxrCOREqualify as such or use &Bad name after %s%sBareword%s::DATA:encoding(%-p)CORE::%s is not a keywordMissing $ on loop variable__PACKAGE__No such class %.1000s|&*+-=!?:.<> should be quotesmsixopgceeval do subroutine namesort is now a reserved wordMissing name in "my sub"Prototype not terminated$@%*;[]&\_0377777777770xffffffffBinaryOctalHexadecimaloctalhexadecimalInteger overflow in decimal number (Might be a runaway multi-line %c%c string starting on line %ld) (possibly a missing "use charnames ...")}} did not return a defined value%s found where operator expected (Missing semicolon on previous line?) (Do you need to predeclare %.*s?) (Missing operator before %.*s?) %s (...) interpreted as functionWarning: Use of "%.*s" without parentheses is ambiguousCan't find string terminator %c%s%c anywhere before EOF;}continue{print or die qq(-p destination: $!\n);}"%s" not allowed in expressionSearch pattern not terminated or ternary operator parsed as search patternUse of /c modifier is meaningless without /gTransliteration pattern not terminatedTransliteration replacement not terminatedfilter_del can only delete in reverse order (currently)Ambiguous use of %c{%s%s} resolved to %c%s%sAmbiguous use of %c{%s} resolved to %c%sNo package name allowed for variable %s in "our"Can't use "my %s" in sort comparisonPossible unintended interpolation of %s in stringBad evalled substitution patternInvalid range "%c-%c" in transliteration operatorAmbiguous range in transliteration operatorUnrecognized escape \%c passed throughMissing control char name in \cpanic: constant overflowed allocated spaceUnrecognized character \x%02X in column %dMissing right curly or square bracketBEGIN { require 'perl5db.pl' };Unsupported script encoding UTF32-LEUnsupported script encoding UTF32-BEUnterminated attribute parameter in attribute listThe 'unique' attribute may only be applied to 'our' variablesInvalid separator character %c%c%c in attribute listUnmatched right square bracketDelimiter for here document is too longMultidimensional syntax %.*s not supportedScalar value %.*s better written as $%.*sCan't use \%c to mean $%c in expressiondump() better written as CORE::dump()Ambiguous call resolved as CORE::%s(), %sBareword "%s" refers to nonexistent packageAmbiguous use of -%s resolved as -&%s()Operator or semicolon missing before %c%sAmbiguous use of %c resolved as operator %cpanic: snprintf buffer overflowPrecedence problem: open %.*s should be open(%.*s)Possible attempt to separate words with commasPossible attempt to put comments in qw() listSubstitution pattern not terminatedSubstitution replacement not terminatedUse of /c modifier is meaningless in s///Illegal character in prototype for %-p : %sIllegal declaration of anonymous subroutineIllegal declaration of subroutine %-p0b11111111111111111111111111111111A@@"do" to call subroutinesnn&utttRttssZwwvnvvvfv_vWv6vvuuuucu/؅||m|{{:{zzzy6yxxxn^xn=x xxwwnwwwwwwwkwcws>Ց=BnΑnǑuMՐnnB(ǎeJ.nnu6OPjŌW߈g+ЇqIAsps8ssrrrrvr]r5rnnnnc[B+ >~~~Y~~}}}s}\}A}&}}||]9nnʂyrjxQ8" ل'sY#5TVTc,19O_`rd+#Wd dW[+  kdW;6?QKZppppp**W"MTW-wwqS)uPXYdpp"%l/.]fyTV\_nIptM XW BED N !"#$%&'()*+,-./0123456789:;<=>?@ACFGHIJKLOPQRSTUVYg=u|!"#$%E() 4 `=>?C7 <@?"#$%"#()uKw{|}~9>?@>?@=> a fRSV>?@-XX78XyzX8<?BXDBFGHIJXOX>?@>?@XW:c>?@X>?@>?@"Y>?@'XX>?@W>?@X>?@QRSXVX>?@"XW$'B:>?@X~>?@>?@X!#XW(WYX<< F>?@ O !>?@%&'()+,-./WWe456789;XA>?@@>?@WMNOXWWWTUWXW>?@WBJ:WW >?@Y>?@0123W)W+,-./WWW456789W;HIJKLAXWQRSWVeMNO/#TUCX C>?@ !%23)+,-./W456789;>?@LAQRSVMNOTUWWX LQRSV0123)+,-./456789;IJKLAQRSVMNOTUX  0123)+,-./456789;JKLAQRSVMNO2TUX LQRSV0123)+,-./456789;KLAQRSVMNO0123TUX !%*KL0123QRSV>?@BCDEFGHIJKLQRSVW 023)+,-./456789;KLAQRSVMNO23TUX KLQRSV)+,-./456789;AMNOTUX  !%)+,-./456789;>?@AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUWX )+,-./456789;AMNOTUX !%*0123>?@BCDEFGHIJKLbdQRShVWxy*0123CDEFGHIJKLQRS*V0123CDFGHIJKLQRS*V0123DFGHIJKLQRS*V0123FGHIJKLQRSVPLooooo%ooi49!W#!yo(!"#Gqrstuv`HRjkFFTbdxfg Qwsl{|& S}7}qZ ]~1$*6=?AU E:      KLNXpXC+^.  " !"#$%&'()*+m,-./!0123456789:;<=<IB*>?@ABCDDFOE V\FGHc_`aIJbeKdP;o ihwP !"#$%'()*+n,-./tuv z89:;<=j>?@ABCkDEMFGHzf[IJK !"#$%'()*+,-./89:;<=r>?@ABCDEFGHIJK !"#$%()*+m,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+!,-.l/m89:;<=>?@ABCDEFGHIJK !"#$%()*+,-./F89:;<=>?@ABCDEddFGHIJKdddddddddddddddddddddddddddddh !"#$%'()*+,-./F89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJK !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJ>K !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJ@K !"#$%'()*+,-./89:;<=>?@ABCDEFGHIJMK !"#$%'()*+,-./89:;<=>?@ABCDEGGFGHIJKGGGGGGGGGGGGGGGGGGGGGGGG|~GGGGGJF 34CAAA;  :57689>OBB TW=DENE Eĭ^̹™(U?@BX*0123CDFGHIJKLQRSVX\}}bX\}]]]]]]X]]WWXXW<W\nWXW<~~W~mnonqdlop]^oWBWWWWWEWXW\W\WWWWXWooWWWWWkk``o`mWW`W``a"#eeWh``hhb`X`khohpWW``eUUUUUUCPADNAME = 0x%lx(0x%lx) PAD = 0x%lx(0x%lx) %2d. 0x%lx<%lu> FAKE "%s" flags=0x%lx index=%lu %2d. 0x%lx<%lu> (%lu,%lu) "%s" "%s" variable %s masks earlier declaration in same %s (Did you mean "local" instead of "our"?) Variable "%s" is not availableVariable "%s" will not stay shared%2d. 0x%lx<%lu> panic: pad_free curpadpanic: pad_free popanic: pad_swipe curpadpanic: pad_swipe popanic: pad_alloc%-p never introducedscope"our" variable %s redeclaredpad.cregcomp.cpanic: pregfree comppadpanic: regfree data code '%c'Regexp%s in regex m/%.*s%s/alphspacgrapasciblancntralnuloweuppedigiprinpuncPOSIX class [:%.*s:] unknownEmpty \%c{}Missing right brace on \%c{}%cutf8::%.*s %04lx %04lx AlnumBlankXDigitVertSpaceHorizSpaceASCIIInvalid [::] classInvalid [] range "%*.*s"%cutf8::Is%s Unterminated verb patternACCEPTCOMMITPRUNEUnknown verb pattern '%.*s'Sequence (?R) not terminatedIllegal patternExpecting close bracketnopSequence (? incompletedon't ?-Useless use of (?-p)Unmatched (Unmatched )Junk on end of regexpUnmatched [Internal urpQuantifier follows nothingReference to invalid group 0Unterminated \g... patternUnterminated \g{...} patternTrailing \Internal disasterCan't do {n,m} with n > mNested quantifierstuE_TRIE_MAXBUFPERL_RE_COLORSPanic opt closeRegexp out of spacemsixregcompSUCCEEDEOSMEOLSEOLNBOUNDNBOUNDLREG_ANYSANYCANYANYOFNALNUMNALNUMLNSPACENSPACELNDIGITNDIGITLCLUMPBRANCHBACKEXACTEXACTFEXACTFLNOTHINGSTARPLUSCURLYCURLYNCURLYMCURLYXWHILEMOPENCLOSEIFMATCHUNLESSMSUSPENDIFTHENLONGJMPBRANCHJMINMODLOGICALRENUMTRIETRIECAHOCORASICKAHOCORASICKCGOSUBGOSTARTNREFNREFFNREFFLNGROUPPINSUBPDEFINEPENDLIKEOPFAILVERBMARKPOINTCUTGROUPKEEPSLNBREAKNVERTWSNHORIZWSFOLDCHAROPTIMIZEDPSEUDOTRIE_nextTRIE_next_failEVAL_ABEVAL_AB_failCURLYX_endCURLYX_end_failWHILEM_A_preWHILEM_A_pre_failWHILEM_A_minWHILEM_A_min_failWHILEM_A_maxWHILEM_A_max_failWHILEM_B_minWHILEM_B_min_failWHILEM_B_maxWHILEM_B_max_failBRANCH_nextBRANCH_next_failCURLYM_ACURLYM_A_failCURLYM_BCURLYM_B_failIFMATCH_AIFMATCH_A_failCURLY_B_min_knownCURLY_B_min_known_failCURLY_B_minCURLY_B_min_failCURLY_B_maxCURLY_B_max_failCOMMIT_nextCOMMIT_next_failMARKPOINT_nextMARKPOINT_next_failSKIP_nextSKIP_next_failCUTGROUP_nextCUTGROUP_next_failKEEPS_nextKEEPS_next_failANCH_BOLANCH_MBOLANCH_SBOLANCH_GPOSGPOS_SEENGPOS_FLOATUNUSED_BIT_6UNUSED_BIT_7START_ONLYMULTILINESINGLELINEFOLDEXTENDEDKEEPCOPYLOOKBEHIND_SEENEVAL_SEENCANY_SEENNOSCANCHECK_ALLMATCH_UTF8USE_INTUIT_NOMLUSE_INTUIT_MLINTUIT_TAILSPLITCOPY_DONETAINTED_SEENNULLpanic: re_dup unknown data code '%c'panic: reg_node overrun trying to emit %dpanic: Unknown flags %d in named_buff_iterpanic: Unknown flags %d in named_buff_scalarpanic: Unknown flags %d in named_buffSequence (?#... not terminatedpanic: no svname in reg_scan_nameReference to nonexistent named group%s in regex; marked by <-- HERE in m/%.*s <-- HERE %s/panic: bad flag in reg_scan_name in regex; marked by <-- HERE in m/%.*s <-- HERE %s/Constant(\N{%s}) unknown: (possibly a missing "use charnames ...")Constant(\N{%s}): $^H{charnames} is not definedConstant(\N{%s}): Call to &{$^H{charnames}} did not return a defined valueIgnoring excess chars from \N{%s} in character class in regex; marked by <-- HERE in m/%.*s <-- HERE %s/Ignoring zero length \N{%s} in character class in regex; marked by <-- HERE in m/%.*s <-- HERE %s/POSIX syntax [%c %c] belongs inside character classes in regex; marked by <-- HERE in m/%.*s <-- HERE %s/POSIX syntax [%c %c] is reserved for future extensionsInvalid escape in the specified encodingUnrecognized escape \%c in character class passed through in regex; marked by <-- HERE in m/%.*s <-- HERE %s/False [] range "%*.*s" in regex; marked by <-- HERE in m/%.*s <-- HERE %s/Unterminated verb pattern argumentVerb pattern '%.*s' may not have an argumentVerb pattern '%.*s' has a mandatory argumentSequence %.3s... not terminatedSequence (%.*s...) not recognizedSequence (?%c... not terminatedpanic: reg_scan_name returned NULLpanic: paren_name hash element allocation failedSequence (?%c...) not implementedReference to nonexistent groupSequence (?{...}) not terminated or not {}-balancedEval-group not allowed at runtime, use re 'eval'Eval-group in insecure regular expressionSequence (?(%c... not terminatedSwitch condition not recognized(?(DEFINE)....) does not allow branchesSwitch (?(condition)... contains too many branchesUnknown switch condition (?(%.2sUseless (%s%c) - %suse /%c modifier in regex; marked by <-- HERE in m/%.*s <-- HERE %s/Useless (%sc) - %suse /gc modifier in regex; marked by <-- HERE in m/%.*s <-- HERE %s/Sequence %.2s... not terminatedReference to nonexistent or unclosed groupUnrecognized escape \%c passed through in regex; marked by <-- HERE in m/%.*s <-- HERE %s/Quantifier in {,} bigger than %d%.*s matches null string many times in regex; marked by <-- HERE in m/%.*s <-- HERE %s/error creating/fetching widecharmap entry for 0x%lXpanic! In trie construction, no char mapping for %ldQuantifier unexpected on zero-length expressionVariable length lookbehind not implementedLookbehind longer than %lu not implemented in regex m/%.*s%s/|`{"{"{"{"{"{"{"{"{"{"{"{"{"{"{"{"{"{{"{"{"{"{"{"{"{{ ||"{"{|i{|lLD eeeeeeeeee̯̯̯̯̯̯̯̯̯̯W̯̯̯I̯̯̯̯̯̯t̯̯f̯̯̯̯̯̯̯̯̯̯̯q>0̯̯̯̯̯̯̯t̯ɸ̯XH(eEdd$$ĺĹDDĸjJHջż$s"/9JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJbkJJbJJJJFJJJJJJJJJJJJJJJnJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJElllllljl8lllllllllllll LLL_LLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL|LLLxLbLLULLLL-00000000000000000000000000000000000000000000000!!!!!!!!!!000000000000000000000000mI00000000000000000000000000000000000000000000000000000000000000000000000000000000|0000000000|0000000000000000|`'''''''''''''''''''''''''''''''''''''''''''''''''''''''R5'''''''H'>)''''''''''v'j''c''(''''H''.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''gBBftfGfdut vtEsrB1rBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBwqpoFe  !!!$$&'((((,-.///88886789:;8====AB///FGHIIILLLLLLRSTUVWX$Z==99++,,,,,,,,,,****22((((((PPNNOOQQRR &'(+/01,*)854CDETUVW  =!<,>C%5lu %s %cx{%lx}%c%03o%c%o\0WILDSV_UNDEFSV_NOSV_YESSV_PLACEHOLDER<%lu%s>CV(%s)(null)[%s] [UTF8 "%s"](%g)(%ld) [tainted](NULL)[%lu]NULL OP IN RUN%*s%s = 0x%lx "%s" :: " "%s" { GV_NAME = %s-> %s%-4lu %*sTYPE = %s ===> (%lu) DONE (was %s) LINE = %lu PACKAGE = "%s" LABEL = "%s" TARG = %ld ,VOID,SCALAR,LIST,UNKNOWN,KIDS,PARENS,STACKED,REF,MOD,SPECIAL,LATEFREE,LATEFREED,ATTACHED,TARGET_MY,REFCOUNTED,COMMON,BACKWARDS,SQUASH,DELETE,COMPLEMENT,IDENTICAL,GROWS,DOLIST,AMPER,DB,HASTARG,NOPAREN,INARGS,NOMOD,SV,AV,HV,MAYBE_LVSUB,LVAL_DEFER,STRICT_REFS,OUR_INTRO,BARE,STRICT,ARYBASE,WARNING,ENTERED,LINENUM,INTRO,EARLY_CV,GUESSED,SLICE,EXISTS_SUB,NUMERIC,INTEGER,REVERSE,IN_RAW,IN_CRLF,OUT_RAW,OUT_CRLF,EXIT_VMSISH,HUSH_VMSISH,FT_ACCESS,FT_STACKEDPRIVATE = (%s) PADIX = %ld REDO ===> NEXT ===> LAST ===> OTHER ===> REFCNT = %lu {} (RUNTIME)PMf_PRE %c%s%c%s PMf_PRE (RUNTIME) PMf_REPL = ,ONCE:USED,TAINTED,SCANFIRST,ALL,SKIPWHITE,CONST,KEEP,GLOBAL,CONTINUE,RETAINT,EVALPMFLAGS = (%s) FORMAT %s = SUB %s = (xsub 0x%lx %d) SV = 0 PADSTALE,PADTMP,PADMY,TEMP,OBJECT,GMG,SMG,RMG,ROK,WEAKREF,OOK,FAKE,READONLY,BREAK,OVERLOAD,pIOK,pNOK,pPOK,PCS_IMPORTED,SCREAM,ANON,UNIQUE,CLONE,CLONED,CONST,NODEBUG,COMPILED,LVALUE,METHOD,LOCKED,WEAKOUTSIDE,SHAREKEYS,LAZYDEL,HASKFLAGS,REHASH,CLONEABLE,INTRO,MULTI,ASSUMECV,IN_PAD,IMPORTALL, SV AV HV CV ),TAIL,VALID,EVALED,IsUV,TYPED,OUR,STATE,SV = %s%s UNKNOWN(0x%lx) %s UV = %lu IV = %ld (OFFSET) COP_LOW = %lu COP_HIGH = %lu NV = %.*g RV = 0x%lx PV = 0x%lx ( %s . ) CUR = %ld LEN = %ld PV = 0 OURSTASH STASH ARRAY = 0x%lx (offset=%ld) ALLOC = 0x%lx FILL = %ld MAX = %ld ARYLEN = 0x%lx ,REAL,REIFY FLAGS = (%s) Elt No. %ld (%d%s:%d hash quality = %.1f%% KEYS = %ld RITER = %ld EITER = 0x%lx PMROOT = 0x%lx NAME = "%s" BACKREFS = 0x%lx Elt %s [UTF8 "%s"] [REHASH] HASH = 0x%lx PROTOTYPE = "%.*s" COMP_STASH START = 0x%lx ===> %ld ROOT = 0x%lx XSUB = 0x%lx XSUBANY = 0x%lx (CONST SV) XSUBANY = %ld GVGV::GV DEPTH = %ld OUTSIDE_SEQ = %lu LINES = %ld PADLIST = 0x%lx ANONMAINUNIQUEUNDEFINED OUTSIDE = 0x%lx (%s) TYPE = %c TARGOFF = %ld TARGLEN = %ld TARG = 0x%lx FLAGS = %u RARE = %u PREVIOUS = %lu USEFUL = %ld NAMELEN = %ld GvSTASH GP = 0x%lx SV = 0x%lx REFCNT = %ld IO = 0x%lx FORM = 0x%lx AV = 0x%lx HV = 0x%lx CV = 0x%lx CVGEN = 0x%lx LINE = %ld FILE = "%s" FLAGS = 0x%lx EGV IFP = 0x%lx OFP = 0x%lx DIRP = 0x%lx PAGE = %ld PAGE_LEN = %ld LINES_LEFT = %ld TOP_NAME = "%s" TOP_GV TOP_GV = 0x%lx FMT_NAME = "%s" FMT_GV FMT_GV = 0x%lx BOTTOM_NAME = "%s" BOTTOM_GV BOTTOM_GV = 0x%lx TYPE = '%c' TYPE = '\%o' MAGIC = 0x%lx envenvelemsigsigelempackelemmglobnkeystaintsubstrposbmfmuvardefelemcollxfrmamagicamagicelemarylen_phintselem MG_VIRTUAL = &PL_vtbl_%s MG_VIRTUAL = 0 MG_PRIVATE = %d MG_TYPE = PERL_MAGIC_%s MG_TYPE = UNKNOWN(\%o) MG_FLAGS = 0x%02X TAINTEDDIR REFCOUNTED GSKIP MINMATCH MG_OBJ = 0x%lx PAT = %s MG_LEN = %ld MG_PTR = 0x%lx => HEf_SVKEY ???? - please notify IZ %2ld: %lu -> %lu MG_VIRTUAL = 0x%lx BINDRVPVPVIVPVNVPVMGPVGVPVLVPVAVPVHVPVCVPVFMPVIOsv(\0)arylen(#)rhash(%)pos(.)symtab(:)backref(<)arylen_p(@)overload(A)bm(B)regdata(D)env(E)hints(H)isa(I)dbfile(L)shared(N)tied(P)sig(S)uvar(U)overload_elem(a)overload_table(c)regdatum(d)envelem(e)fm(f)regex_global(g)hintselem(h)isaelem(i)nkeys(k)dbline(l)shared_scalar(n)collxfrm(o)tiedelem(p)tiedscalar(q)qr(r)sigelem(s)taint(t)uvar_elem(u)vec(v)vstring(V)utf8(w)substr(x)defelem(y)ext(~)WATCHING, %lx is currently %lx WARNING: %lx changed from %lx to %lx (0x%lx) at 0x%lx %*s REFCNT = %ld %*s FLAGS = (||ܕܕܕyһ<Y@xhXH8(xhXH@/8/8///8/8/8//8/8//8/8//8/8/8//8/8/8/8/8/8/8/8/8/8/8/8/8//8/8/8/8/8/8/8/x/8/8/8/8/8/p//dev/urandomPRINT at %s line %ldchunk, <%s> %s %ld during global destructionclosedunopenedsocket%s%s on %s %s %s%s%s on %s %sPERL_HASH_SEEDInvalid version objectv%ld.%ld.0width%d.%0*d_%d%0*doriginalInteger overflow in versionv.Infvinf, '.' not in PATH on PATHexecuteCan't %s %s%s%sEXECInsecure %s%sCan't forkpanic: kid popen errno readutil.c%.9fpanic: pthread_setspecificFilehandle %s opened only for %sputFilehandle opened only for %sput (Are you trying to call %s%s on dirhandle %s?) (Are you trying to call %s%s on dirhandle?) panic: my_vsnprintf buffer overflowpanic: my_snprintf buffer overflowYour random numbers are not that randomUnknown Unicode option letter '%c'Unknown Unicode option value %luInvalid version format (underscores before decimal)Invalid version format (multiple underscores)Invalid version format (alpha without decimal)Invalid version format (misplaced _ in number)Integer overflow in version %dVersion string '%s' contains invalid data; ignoring: '%s'CC@Signal SIG%s received, but no signal handler set. SIG%s handler "%s" not defined. Maximal count of pending signals (%lu) exceededAttempt to set length of freed arrayFETCHSIZE returned a negative valuesignoCHLDCLDassigning to $^Oopen>open<mg.cCLEARSTOREEXISTSFETCHFIRSTKEYNEXTKEYFETCHSIZE__DIE____WARN__No such hook: %sNo such signal: SIG%sIGNOREDEFAULTUUUUUUUUUUUUwarnings::Bitspanic: magic_len: %ldSize magic not implementedggghonngn[jgggggPi8oggg>hmg{ogggggggggiggglg9h\hoggokkkjjjjjjjjjjjgn"nOnlgggggggggggggggggggggggggggmFmghg hgggggggggggggggggggggggggggQlgLq`H@`ХӤp`@0Ш0X0 T,ĮgtgethostbyaddrgethostbynamegethostentgetgrnamgetgrgidgetgrentgetnetbyaddrgetnetbynamegetnetentgetpwnamgetpwuidgetpwentgetprotobynamegetprotobynumbergetprotoentgetservbynamegetservbyportgetserventtttLLLDDDLLLclassnameInvalid mro name: '%-p'dfsclassname, typeCannot create class: '%-p'!No such class: '%-p'!panic: invalid MRO!classname [, type ]$;$mro::get_linear_isamro::set_mromro::get_mromro::get_isarevmro::is_universalmro::method_changed_inmro::get_pkg_genpanic: hv_store() failed in set_mro_private_data() for '%.*s' %dCan't linearize anonymous symbol tableRecursive inheritance detected in package '%s'Can't call mro_method_changed_in() on anonymous symbol tableCan't call mro_isa_changed_in() on anonymous symbol tablepanic: hv_store() failed in mro_register() for '%.*s' %dmro::invalidate_all_method_cachesmro.chv.cpanic: hv_placeholders_setpanic: hv_placeholders_p (utf8)panic: hv name too long (%lu)%ld/%lddeletestorefetchpanic: refcounted_he_value bad flags %xAttempt to free non-existent shared string '%s'%s, Perl interpreter: 0x%ppanic: hfreeentries failed to free hash - something is repeatedly re-creating entriesAttempt to delete readonly key '%-p' from a restricted hashAttempt to delete disallowed key '%-p' from a restricted hashAttempt to access disallowed key '%-p' in a restricted hashCannot modify shared string table in hv_%sNEGATIVE_INDICESPOPEXTENDUNSHIFTSTORESIZEPUSHOut of memory during array extendCan't call method "%s" on an undefined valuewithout a package or object referenceCan't call method "%s" on unblessed referenceCan't locate object method "%s" via package "%.*s"Can't locate object method "%s" via package "%.*s" (perhaps you forgot to load "%.*s"?)Use of reference "%-p" as array indexDeep recursion on anonymous subroutineDeep recursion on subroutine "%-p"Overloaded dereference did not return a referenceUndefined subroutine &%-p calledCan't modify non-lvalue subroutine callCan't return %s from lvalue subroutine%s returned from lvalue subroutine in scalar contextCan't return a %s from lvalue subroutineUse of freed value in iterationglob failed (can't start child: %s)glob failed (child exited with status %d%s)utf8 "\x%02X" does not map to Unicodepanic: pp_match start/end pointersReference found where even-sized list expectedOdd number of elements in hash assignmentCan't return %s to lvalue scalar contexton an undefined valueCan't call method "%s" %sNot a CODE referencea subroutineUndefined subroutine calledDB::lsubNo DB::sub routine defineda temporarya readonly valueEmpty arraypanic: pp_substSubstitution looppanic: pp_iterREADLINE, core dumped$&*(){}[]'";\|?<>~`panic: pp_matchNot %s referenceOut of memory during array extenda HASHan ARRAYBizarre SvTYPE [%ld]sv.csv_vcatpvfnVSTRINGLVALUEGLOBFORMATpanic: del_backrefBad filehandle: %sBad filehandle: %-pArgument "%s" isn't numericpanic: frexp"%%%c""%%\%03lo"end of string{%s}within ${$/} in NULLREFBizarre copy of %s in %sBizarre copy of %sCannot copy to %s in %sCannot copy to %sSubroutine %s::%s redefinedCan't upgrade %s (%lu) to %luCan't weaken a nonreferenceReference is already weakNot a subroutine referencepanic: sv_insertWide character in %sWide charactercat_decodeCLONE_SKIPWide character in $/Cloning substitution context is unimplementedpanic: ss_dup inconsistency (%ld)Integer overflow in format string for %sArgument "%s" isn't numeric in %sinternal %%p might conflict with future printf extensionsvector argument not supported with alpha versionsInvalid conversion in %sprintf: panic: attempt to copy value %-p to a freed scalar %ppanic: attempt to copy freed scalar %p to %pConstant subroutine %s::%s redefinedUndefined value assigned to typeglobsemi-panic: attempt to dup freed stringsv_upgrade from type %d down to type %dpanic: sv_upgrade to unknown type %luDESTROY created new reference to dead object '%s'Attempt to free unreferenced scalar: SV 0x%lx, Perl interpreter: 0x%ppanic: magic_killbackrefs (flags=%lx)panic: utf8_mg_pos_cache_update cache %lu real %lu for %-ppanic: sv_pos_b2u: bad byte offsetpanic: sv_pos_b2u cache %lu real %lu for %-ppanic: sv_pos_u2b_cache cache %lu real %lu for %-ppanic: sv_len_utf8 cache %lu real %lu for %-pDon't know how to handle magic of type \%oUnable to create sub named "%-p"Can't bless non-reference valuepanic: reference miscount on nsv in sv_replace() (%lu != 1)Can't coerce %s to number in %sCan't coerce %s to integer in %sCan't coerce readonly %s to string in %sCan't coerce readonly %s to stringCan't coerce %s to string in %spanic: sv_chop ptr=%p, start=%p, end=%ppanic: sv_chop ptr=%p (was %p), start=%p, end=%pCan't modify non-existent substringpanic: sv_setpvn called with negative strlenWATCHING: %lx cloned as %lx with value %lx sv_2iv assumed (U_V(fabs((double)SvNVX(sv))) < (UV)IV_MAX) but SvNVX(sv)=%g U_V is 0x%lx, IV_MAX is 0x%lx Invalid argument to sv_cat_decode%bt##,,, 4 Zt G 6 d   6d 4 4 d Z\ 4  t xhX(H" (" H" " !2T#w20 00T#T#T#T#T#T#T#4T#T#T#T#T#3T#T#3T#T#T#T#T#T#T#T#T#2e3|2000T#|2T#T#T#T#444T#T#5T#5T#T#3m,#########X,#################X,###1+####m, PIOIOhPPPIOIOIOQIOIOIOQIOIOIOIOQIOIOIOIOIOIO QIO QIO QIOxQIOIOOOIOQIOOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOQIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOQIOIOIOIOIOIOIOIOIOIOIOIOIOQIOIOIOIOIOIOIOIOIOIOIOIOIOPQQIOQIOIOIORPQIOQIOIOIOIOIOIOIOIOIOIOIOIOQIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOXOIOIOQIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOXOIOIOIOIOIOIOIOIOIOSIOQQIOQIOIOQIOIOIOIOQIOIOIOSSSQQQIOQIOIOIOIOIOIOQIOQQQQQQQIOQIOQIOIOQQQQQQQQQQQQQQQQQQQQQQQQQQQIOIOIOIOIOIOIOIOIOQIOIOQQQQQQIOIOIOIOIOIOIOIOIOIOIOIOIOIOQQIOIOIOIOIOIOIOIOIOIOQIOIOQQIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOQIOIOIOQe9cegggHh h8hee9c9c9cgllllllllllpppp6qxxyzxxxxxxx{{{zzzzzzzzzzzTTdD$D dŢIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII΢IעIIIIIIIIIIIIIIIIIIIעIIIIעIIIݣIILIIIrIIݣIMעIIIIIIIIIIѣIYeq}IIIţI)5AIIIILpp(((((ккp 1"C$e(f( G00H00YPPZ(({h((|hhh}8 pp>X _(null)?$I$ICpanic: unimplemented op %s (#%d) calledsplice() offset past end of arrayOdd number of elements in anonymous hashpanic: avhv_delete no longer supportedAttempt to use reference as lvalue in substrConstant subroutine %s undefinedAttempt to bless into a referenceExplicit blessing to '' (assuming package main)Can't find an opnumber for "%s"Can't return array to lvalue scalar contextCan't return hash to lvalue scalar contextpanic: pp_splitSplit loopSPLICENot a HASH referencesprintfsubstr outside of stringIllegal modulus zeroIllegal division by zeroCan't take %s of %g(anonymous)do_study: out of memoryILEHANDLE*glob{FILEHANDLE}AMEACKAGECORE::_;$CORE::backtick?$@@%&*$Not a SCALAR referenceNot a GLOB referencea symbol!P0%^"$^"^"t$,$##^"^"^"^"T#^"#^"^""Out of memory during string extendOut of memory during list extendpanic: corrupt saved stack indexpanic: leave_scope inconsistencypanic: leave_scope pad codescope.c0FFE0E0<;0<;;;;;CxCBB8BBA AB`BB@@@?p?>`B@>>;==p=0==<<`<@DFDDpGEFpanic: bad gimme: %d Unknown error Compilation error_<(eval %lu)[%s:%ld]_<(eval %lu)pp_ctl.c_<(eval )v%d.%d.%dfeatureNull filename used/loader/0x%lx/%s%s: %s.ph (did you run h2ph?).h (change .h to .ph maybe?)Can't locate %s_<(%.10seval %lu)[%s:%ld]_<(%.10s_eval %lu)Exiting %s via %sNo DB::DB routine defined(unknown)(eval)E0Goto undefined subroutineDB::gotopanic: gotoCan't find label %sLabel not found for "redo %s"Label not found for "next %s"Label not found for "last %s"panic: lastpanic: returnpanic: die Null picture in formlineNot enough format arguments%0*.*f%#0*.*f%*.*f%#*.*fRunaway formatpseudo-blocksubstitution%-p did not return a true value%sCompilation failed in require%sCompilation failed in regexpPerls since %-p too modern--this is %-p, stoppedPerl %-p required--this is only %-p, stoppedPerl %-p required (did you mean %-p?)--this is only %-p, stoppedAttempt to reload %s aborted. Compilation failed in require%s in @INC%s%s (@INC contains:Range iterator outside integer rangeCan't use when() outside a topicalizerCan't "break" outside a given blockCan't "break" in a loop topicalizerCan't "continue" outside a when blockGoto undefined subroutine &%-pCan't goto subroutine from an eval-stringCan't goto subroutine from an eval-blockCan't goto subroutine from a sort sub (or similar callback)Can't "goto" out of a pseudo blockCan't "goto" into the middle of a foreach loopCan't goto subroutine outside a subroutineCan't "redo" outside a loop blockCan't "next" outside a loop blockCan't "last" outside a loop blockCan't return outside a subroutineRepeated format line will never terminate (~~ and @#)Smart matching a non-overloaded object breaks encapsulationx8\I^\ @ ( 8 8 (` @ \goto must have labelTarget of goto is too deeply nested (in cleanup) ~R8 @$@Too many args to syscallToo few args to syscallgetlogingetspnam%s %s %2d %02d:%02d:%02d %dsetprioritysetpgrpsystemrmdirmkdirrenamechrootHOMELOGDIRchdirlstat() on filehandle %sconnectbindsocketpairtruncateFILENOSEEKTELLWRITENegative lengthOffset outside stringREADPRINTF%s_TOPtopbad top format referenceUndefined top format calledpage overflowUndefined format "%s" calledNot a format referenceGETCNon-string passed as bitmaskAnyDBM_FileAnyDBM_File.pmNo dbm on this machineUNTIETIEARRAYTIEHANDLETIESCALARBINMODEumaskPROPAGATE ...propagatedDied ...caughtWarning: something's wrong``rbJanFebMarAprMayJunJulAugSepOctNovDecSunMonTueWedThuFriSat;5;H;`;};;;l::$ 32 non-portablepanic: do_trans_simple_utf8 line %dpanic: do_trans_simple line %dpanic: do_trans_complex_utf8 line %dpanic: do_trans_complex line %dArg too short for msgsndCan't exec "%s": %s$&*(){}[]'";\|?<>~` -cUse of -l on filehandle %slstatWide character in printUnrecognized signal name "%s"sysopenUnknown open() mode '%.*s'Missing command in piped openCan't open bidirectional pipeecho ARGVOUTinplace openCan't open %s: %sBad arg length for %s, is %lu, should be %ldWarning: unable to close filehandle %s properly. panic: sysopen with multiple argsMore than one argument to '%c&' openMore than one argument to '>%c' openMore than one argument to '<%c' openFilehandle STD%s reopened as %s only for inputFilehandle STDIN reopened as %s only for output|tr -s ' ' '\012\012\012\012'|Can't do inplace edit: %s is not a regular fileCan't rename %s to %-p: %s, skipping fileCan't remove %s: %s, skipping fileCan't do inplace edit on %s: %s1^11111111111111111ȉThe stat preceding -l _ wasn't an lstatUUUUUUC͆Infinite recursion in regexREGMARK%s limit (%d) exceeded%lx %d regexp memory corruptioncorrupted regexp pointersREGERRORpanic: unknown regstclass %dNULL regexp parametercorrupted regexp programMalformed UTF-8 character (fatal)panic: paren_elems_to_push < 0Pattern subroutine nesting without pos change exceeded limit in regexEVAL without pos change exceeded limit in regexComplex regular subexpression recursionXhxP8`xVpggMFMFP&WP1*mfm (6 `Y(( c> h{*U GG@YBNphiP?+?:J0f@ EA>A7@0@@@@wUS2SRQ7QPPJvIHQHG,G@@@@FE@@@@@@@@@@@@@@@@@@@@@@@@@@@YLYL@@@@@@@@@@@@@@@@@@KGKJTjOpanic: utf16_to_utf8: odd bytelen %lupanic: swash_get doesn't expect bits %lupanic: swash_get found swatch size mismatchpanic: swash_get got improper swatchpanic: swash_get found swatch length mismatchCan't find Unicode property definition "%-p"SWASHNEW didn't return an HV ref(unexpected continuation byte 0x%02lx, with no preceding start byte)(unexpected non-continuation byte 0x%02lx, immediately after start byte 0x%02lx)(unexpected non-continuation byte 0x%02lx, %d byte%s after start byte 0x%02lx, expected %d bytes)(%d byte%s, need %d, after start byte 0x%02lx)(overflow at 0x%lx, byte 0x%02x, after start byte 0x%02lx)panic: swash_fetch got improper swatchpanic: swash_fetch got swatch of unexpected bit widthUnicode character 0x%04lx is illegalMalformed UTF-16 surrogateTYPEEXTRAS%s: illegal mapping '%s'SWASHNEWMalformed UTF-8 character (empty string)(byte 0x%02lx)(UTF-16 surrogate 0x%04lx)(character 0x%04lx)IsMIsxdigitIsPunctIsPrintIsGraphIsCntrlIsLowercaseIsUppercaseIsDigitIsSpacePerlIsAsciiIsAlphaIdContinueIdStartIsAlnumCIsWord\x{%lx}UTF-16 surrogate 0x%04lxToFoldutf8::ToSpecFoldToLowerutf8::ToSpecLowerToTitleutf8::ToSpecTitleToUpperutf8::ToSpecUpperN߻\2]Malformed UTF-8 character (unexpected end of string) while running setuid while running setgid while running with -T switch while running with -t switchanother variable%%ENV is aliased to %s%s%%ENV is aliased to %%%s%s$ENV{PATH}Insecure directory in %s%sTERM-_.+Insecure $ENV{%s}%sIFSCDPATHBASH_ENV => Internals::HvREHASH $hashrefUsage: %s::%s(%s)Usage: %s(%s)Usage: CODE(0x%lx)(%s)$lastkey$key, $flags$key, $value, $flagsmsixpname[, all ][all]filehandle[,args]inputoutputdetails%-p(%-p)sv, failok=0class, versionv%sobject-ref, methodUNIVERSAL::isaUNIVERSAL::canUNIVERSAL::DOESUNIVERSAL::VERSIONversion::()version::newversion::parseversion::(""version::stringifyversion::(0+version::numifyversion::normalversion::(cmpversion::(<=>version::vcmpversion::(boolversion::booleanversion::(nomethodversion::noopversion::is_alphaversion::qvversion::declareversion::is_qvutf8::is_utf8utf8::validutf8::encodeutf8::decodeutf8::upgradeutf8::downgradeutf8::native_to_unicodeutf8::unicode_to_native\[$%@];$Internals::SvREADONLYInternals::SvREFCNT\%*;@PerlIO::get_layersRegexp::DESTROYInternals::hash_seedInternals::rehash_seedInternals::HvREHASHre::is_regexp;$$re::regnamere::regnamesre::regnames_countre::regexp_patternUsage: invocant->DOES(kind)lobjlobj is not of type versionlobj, ...(undef)reference, kindNULL array element in re::regnames()get_layers: unknown argument '%s'Internals::hv_clear_placeholdersTie::Hash::NamedCapture::FETCHTie::Hash::NamedCapture::STORETie::Hash::NamedCapture::DELETETie::Hash::NamedCapture::CLEARTie::Hash::NamedCapture::EXISTSTie::Hash::NamedCapture::FIRSTKEYTie::Hash::NamedCapture::NEXTKEYTie::Hash::NamedCapture::SCALARTie::Hash::NamedCapture::flagsoperation not supported with version objectCannot find version of an unblessed reference%s does not define $%s::VERSION--version check failed%s defines neither package nor VERSION--version check failed%s version %-p required--this is only version %-puniversal.c$reference@attributesshareuniquattributes::bootstrap$moduleattributes::_modify_attrsattributes::_guess_stashattributes::_fetch_attrsattributes::reftypeA variable may not be unsharedxsutils.c Use of uninitialized value%s%s%sSemicolon seems to be missingUnquoted string "%s" may clash with future reserved wordUnsuccessful %s on filename containing newlineCan't use %s ref as %s refCan't use string ("%.32s") as %s ref while "strict refs" in useCan't use string ("%-32p") as %s ref while "strict refs" in useCan't use an undefined value as %s referenceModification of non-creatable array value attempted, subscript %dModification of non-creatable hash value attempted, subscript "%-p"Modification of a read-only value attemptedOut of memory! Insecure dependency in %s%sUnsupported socket function "%s" calledUnsupported directory function "%s" calledThe %s function is unimplemented"%s" variable %s can't be in a packageCan't localize through a referencepanic: memory wrap`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_  !"#$%&'()*+,-./0123456789:;<=>?  !"#$%&'()*+,-./0123456789:;<=>?@  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~T(3>IU`kvͮü¢кƳ֦̠󬡾˽ūğ  !"#$%&')*+,-./012456789:;<=?@ABCDEFGHJKLMNOPQRSVWXYZ[\]^_abcdefghijlmnopqrstuwxyz{|}~ MULTIPLICITY PERL_IMPLICIT_CONTEXT USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API6 D D @$D@@@@ DD@ 6B"6(6( ""&@  T*T0D V6 W76666d"T"d"T"l"\#l"\#%.%%.%%>%% D.%%.%%%)%%6$$6$$6$$6$$6$$6$$>$$$$$$$$$$$$."#"")77 7677777777 ("(")")"((77)66666Hldh66H( ((" (HDHHh2ivviA HAHAH&"$@@IB6H]H6@@AHDDDDDD6@ @@R 6UB"("  .T""."". "( " ""," ""7I7III)))6)7 ))])]I7)))"6667("("("("(("("(""(("("6@"@6"6(6(6(((66666666 (10123456789abcdef0123456789ABCDEF\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}ZEROHUPQUITTRAPABRTBUSFPEKILLUSR1SEGVUSR2PIPESTKFLTCONTSTOPTSTPTTINTTOUURGXCPUXFSZVTALRMPROFWINCHPWRSYSNUM32NUM33RTMINNUM35NUM36NUM37NUM38NUM39NUM40NUM41NUM42NUM43NUM44NUM45NUM46NUM47NUM48NUM49NUM50NUM51NUM52NUM53NUM54NUM55NUM56NUM57NUM58NUM59NUM60NUM61NUM62NUM63RTMAXIOTPOLLUNUSEDstubpushmarkwantarrayconstgvsvpadsvpadavpadhvpadanypushrerv2gvrv2svav2arylenrv2cvanoncodesrefgenblessrcatlineregcmayberegcresetsubstconttranssassignaassignschopschompi_preinci_predeci_postinci_postdecpowi_multiplyi_dividei_modulorepeati_addi_subtractconcatleft_shiftright_shifti_lti_gti_lei_gei_eqi_nei_ncmpsltsgtslesgesnescmpbit_andbit_xorbit_ori_negatenotcomplementsmartmatchsrandhexoctrindexcryptucfirstlcfirstuclcquotemetarv2avaelemfastaelemasliceeachvaluesexistsrv2hvhelemhslicejoinlsliceanonlistanonhashsplicepushpopunshiftreversegrepstartgrepwhilemapwhilerangeflipdorcond_exprandassigndorassignentersubleavesubleavesublvcallerwarndielineseqnextstatedbstateunstackenterleaveenteriterenterloopleaveloopredodumpsetstatemethod_namedentergivenleavegivenenterwhenleavewhenbreakcontinuepipe_opfilenobinmodeuntietieddbmopendbmclosesselectgetcenterwriteleavewriteprtfsysseeksysreadsyswritesendrecveoftellfcntlioctlflocksockpairlistenacceptshutdowngsockoptssockoptgetsocknamegetpeernameftrreadftrwriteftrexecftereadftewritefteexecftisftsizeftmtimeftatimeftctimeftrownedfteownedftzeroftsockftchrftblkftfileftdirftpipeftsuidftsgidftsvtxftlinkftttyfttextftbinarychownunlinkchmodutimesymlinkreadlinkopen_dirreaddirtelldirseekdirrewinddirclosedirwaitwaitpidkillgetppidgetpgrpgetprioritytmslocaltimegmtimealarmsleepshmgetshmctlshmreadshmwritemsggetmsgctlmsgrcvsemopsemgetsemctldofileenterevalleaveevalentertryleavetryghbynameghbyaddrghostentgnbynamegnbyaddrgnetentgpbynamegpbynumbergprotoentgsbynamegsbyportgserventshostentsnetentsprotoentsserventehostentenetenteprotoenteserventgpwnamgpwuidgpwentspwentepwentggrnamggrgidggrentsgrentegrentoncecustomnull operationconstant itemscalar variableglob valueglob elemprivate variableprivate arrayprivate hashprivate valuepush regexpref-to-glob castscalar dereferencearray lengthsubroutine dereferenceanonymous subroutinesubroutine prototypereference constructorsingle ref constructorreference-type operatorquoted execution (``, qx)append I/O operatorregexp internal guardregexp internal resetregexp compilationpattern match (m//)pattern quote (qr//)substitution (s///)substitution iteratortransliteration (tr///)scalar assignmentlist assignmentscalar chopscalar chompdefined operatorundef operatormatch positioninteger preincrement (++)integer predecrement (--)integer postincrement (++)integer postdecrement (--)exponentiation (**)integer multiplication (*)integer division (/)integer modulus (%)repeat (x)integer addition (+)integer subtraction (-)concatenation (.) or stringleft bitshift (<<)right bitshift (>>)numeric lt (<)integer lt (<)numeric gt (>)integer gt (>)numeric le (<=)integer le (<=)numeric ge (>=)integer ge (>=)numeric eq (==)integer eq (==)numeric ne (!=)integer ne (!=)numeric comparison (<=>)integer comparison (<=>)string ltstring gtstring lestring gestring eqstring nestring comparison (cmp)bitwise and (&)bitwise xor (^)bitwise or (|)integer negation (-)1's complement (~)smart matcharray dereferenceconstant array elementarray slicehash dereferencehash elementhash slicejoin or stringlist sliceanonymous list ([])anonymous hash ({})grep iteratormap iteratorflipfloprange (or flip)range (or flop)logical and (&&)logical or (||)logical xordefined or (//)conditional expressionlogical and assignment (&&=)logical or assignment (||=)defined or assignment (//=)method lookupsubroutine exitlvalue subroutine returnsymbol resetline sequencedebug next statementiteration finalizerblock entryblock exitforeach loop entryforeach loop iteratorloop exitset statement infomethod with known namegiven()leave given blockwhen()leave when blockselect system callwrite exitgetsockoptsetsockopt-R-W-X-r-w-x-s-M-A-O-o-z-S-b-f-d-u-g-k-l-t-T-Bopendirtimesdo "file"eval "string"eval "string" exiteval {block}eval {block} exitsethostentsetnetentsetprotoentsetserventendhostentendnetentendprotoentendserventsetpwentendpwentsetgrentendgrentunknown custom operator/bin/shpanic: vsnprintf buffer overflowDon't know how to get file namerefcnt_dec: fd %d >= refcnt_size %d panic: PerlIO layer array corruptRecursive call to Perl_load_module in PerlIO_find_layerInvalid separator character %c%c%c in PerlIO layer specification %sArgument list not closed for PerlIO layer "%.*s"Usage class->find(name[,load])Layer does not match this perlPerlIOBase_dup %s f=%p o=%p param=%p More than one argument to open(,':%s')openn(%s,'%s','%s',%d,%x,%o,%p,%d,%p) More fds - old=%d, need %d, new=%d PerlIO_binmode f=%p %s %c %x %s perlio.cPerlIO::Layer::findPerlIO::Layer::NoWarningsPerlIO::LayerPERLIO_DEBUG(none)%.40s:%ld refcnt_dec: fd %d: %d <= 0 refcnt_dec: fd %d refcnt=%d refcnt_dec: fd %d < 0 Cannot flush f=%p Layer %ld is %s define %s %p warning:%s %.*s => %p PerlIOCannot find %.*s Unknown PerlIO layer "%.*s"Pushing %s PERLIOPerlIO_pop f=%p %s :raw f=%p :%s (Null)PerlIO_push f=%p %s %s %p TMPDIRw+IrIwUnknown PerlIO layer "scalar"HashCodeZeroing %p, %d refcnt_inc: fd %d: %d <= 0 refcnt_inc: fd %d refcnt=%d refcnt_inc: fd %d < 0 r+Cleanup layers for %p Destruct %p Destruct popping %s Clone %p from %p fdupopen f=%p param=%p bytesunixstdioperliopendingcrlfmmap<>0 but trueInteger overflow in octal numberIllegal octal digit '%c' ignoredOctal number > 037777777777 non-portableInteger overflow in binary numberIllegal binary digit '%c' ignoredBinary number > 0b11111111111111111111111111111111 non-portableInteger overflow in hexadecimal numberIllegal hexadecimal digit '%c' ignoredHexadecimal number > 0xffffffff non-portableAA @0@Perl_magic_setglob is dead code?NOT IMPL LINE %dpanic: mapstart:rawCan't fix broken locale name "%s"perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Failed to fall back to the standard locale ("C"). POSIXabstrxfrm() gets absurdLANGUAGELC_ALLPERL_BADLANGunset LANGUAGE = %c%s%c, LC_ALL = %c%s%c, LC_LC_ALL= %.*s = "%s", LANG = %c%s%c UTF-8PERL_UNICODENo group ending character '%c' found in templateCharacter(s) in '%c' format wrapped in %sMalformed UTF-8 string in '%c' format in unpackCharacter in '%c' format wrapped in unpack()-group starts with a count in %sToo deeply nested ()-groups in %s'%c' allowed only after types %s in %sCan't use both '<' and '>' after type '%c' in %sCan't use '%c' in a group with different byte-order in %sDuplicate modifier '%c' after '%c' in %spack/unpack repeat count overflow'/' does not take a repeat count in %sWithin []-length '*' not allowed in %sWithin []-length '%c' not allowed in %sAssertion: marks beyond string end'@' outside of string in unpack'@' outside of string with malformed UTF-8 in unpackMalformed UTF-8 string in unpack'X' outside of string in unpack'x' outside of string in unpack'/' must follow a numeric type in unpackUnterminated compressed integer in unpack'P' must have an explicit size in unpackCount after length/code in unpacklength/code after end of string in unpackCode missing after '/' in unpackCode missing after '/' in packMalformed UTF-8 string in pack'%c' outside of string in packPerl bug: predicted utf8 length not availableCharacter in 'c' format wrapped in packCharacter in 'C' format wrapped in packCharacter in 'W' format wrapped in packCannot compress negative numbers in packCannot compress integer in packAttempt to pack pointer to temporary valueField too wide in 'u' format in packAssertion: string is shorter than advertisedCan only compress unsigned integers in packInvalid type ',' in %ssSiIlLqQjJfFdDpP(sSiIlLxXnNvV@.Malformed integer in [] in %sInvalid type '%c' in %s'X' outside of string in %sInvalid type '%c' in unpackU0 mode on a byte string%.*lu0000000000fFdDcCsSiIlLnNUWvVqQjJNegative '/' count in unpack@XxuaAZInvalid type '%c' in pack'%%' may not be used in packBNf8'{[bNNfP$H'(B{foCC=,,,?,07F*m('*'P%$ $m##323156{46F*F*m(X+B/.P%.k-?0/0^"a ?,07$#2356./^"6555555555565575]7]7]7]7]7]7]7]7]7]7AA@?`Sort subroutine didn't return single valueSort subroutine didn't return a numeric valueUndefined sort subroutine "%-p" calledUndefined subroutine in sortXS_VERSION%s::%s1.10bootstrap parameterDynaLoader.cDynaLoader::dl_load_fileDynaLoader::dl_unload_fileDynaLoader::dl_find_symbolDynaLoader::dl_undef_symbolsDynaLoader::dl_install_xsubDynaLoader::dl_errorDynaLoader::CLONEPERL_DL_NONLAZYDynaLoaderlibhandle, symbolnamelibreffilename, flags=0%s object version %-p does not match %s%s%s%s %-pperl_name, symref, filename="$Package";A40AAB@B0BPBhB0B@BPBBB0C00CPChCCC`CCDP(DpPDhD0DDDEE@0EPExEEEpE@F8F@`FFFF@G G XG xGGpGGH H@H@`H)H*H@+H,H,I-8I.XI0xI0I0I`1I3Jp3 J38JP4PJ7JP8J9J9J:KA K CHKDpKDK`EKEK`FK GL I0LKPLLhLLLLLML0NLOMQ M@THMUpMVMWM ^M@^M aNb8N`ipNkNPnNoNoOoOp8OqXO@sxOvO0OO0P8P``PPPPQpHQPhQQQQQЯR(R`RжRRR R` S`@SxSPSSS`S TT8TXT xT0TTPTU U8UXUxU U@U UV0VPVxVVVPVVV0W(WXWppWWpW WWXX`8X`XX@X XY08Y XYpxYpYY YP(Z+`Z+Z,Z,Z3Z@5[5[60[`6H[0=p[C[G[L[_\_8\0`X\a\a\Pc\c\d]`d0]eh]g]h]`h]i]j^ k8^kX^n^p^p^q^_@_x____ _`(`P`p````a 8apaaaab8b@hbpb`bb b@cHchccc`cd dPPd pd!d$d%d&e'8eP*Xe+e`.e /e0f0f5@f9hf@;f=f@?f@gK8g`MpgOgOgPg Qg0RhY@hdxh_hahpbi 8iЊPihi`iiPij@jЕxjpj0jjk8kXkkkkplHlhll lllmвm0m@HmpmmPmn n8npPn@xnPn`nno oHohoooop0 pHpp`pp@p`p0pqHqhqq@qqq0q rHrrP8r`WrY(s@{`s|s@ss@tHthttt@t`uP8uXuupu@uv0(vHvPhvvv v wp(wHw`wwwww@;(x;HxBx CxCx DxDx0EyEyE0ypFPyGhyHyHyHyIy`IyIyJz J(z0J@z@JXzPJpz`JzPLzPz Pz0PzP{P {PQ8{@SX{Sx{`T{pT{T{PU{`U| V(|VH|Wh|W|0X|`X|X|PY|Z(}[H}[`}P\}`\}\}\}`~d0~eP~pep~e~`f~f~0g~g j8n`rr0rrspu@@yhPyzz|}~~8`x0ȁ  p@`p@P`pPЯPp0PȄ`й0Hкh`P؅н`0H`x0؆Pp `@pXp 08PPphȈ0Hpȉ@(HpЊ 8PPP(H `@Ȍ ( P pp؍p0`P !Ў"$ $P`%pp&'(`67009P9h9P:;=`>@?0@P@hABCȑGI `J@J`pL`PQPRR PS@S`VPW`YYZ(@]``]x]^a a0aa0bHpbhb@cccȕd`dpefPPgpl0nno0qh0rtu`x zXzx{|p0hPЙ@(`@hP(`08hМ@0H@@  (Hpp@@(P hȟPHhPР'3@ 5h?0FءLpM0 RXSTZȢ]^^0_P`h`` aУPaaaPb0`cHpc`cx@ddeȤee`ffHgh hPh`iȥiPk0l@l`py}0~@h@Pȧ0`(P@hЖ`Ȩ8PXxPЩ@0@Hp Hph ЫP Hh ЬP0pH0Э"$@(h)+@/0`1(4X@6xp8 9=>@ PB@PDhE FFȰFHH(PIHIhJJ KбpKKN0OX PxQPSpVW@X8YXPZxZ[[س`] ^PHhЂ ȴ00PPp0ص P@`P`08`Эpз`а0`H pв`ȸ(` x ع`pP p Ⱥ HxPػ 8Xؼ 0 @`xPȽp@("`%p'02405P 7p@8`9:п;<=0 @PPBpDFI@K MSHUp@Y\``ce0gPipnrw`yz{8p~`00PPp @(0HhPP@@` P`P @h`8`P``0H``pP 0pPpp@@P(`@pXpp`p 8Ph0pP0p@p00H0`0 @ @0Pppp @@0P h 8X4;@(@@BxCEMQ@R`U^`_0g@k@lh0mpopq00X`x И@x0 H `@ @p`pP8 Xx@Pp08hp@8h0p 8 h0(PH`hp@ `!H"p@$`%0&& +(p2`55@8:=D0FPJxKNQST8V`P[P^_0df0gPixkoqru0~X pp И(Hp 000h0н 8X (P` 0 8p `    Hp` p !@#h&()P*+,0-Pp90Q RZ0\P]h@^^P_``pjPx@(%`@8LL NO O8QPQh`^P`bh(hPix`jjqqu(`vHv`vxvvw w@w`ww w8wPwhx@x`xxx@yP{@p{X`|@P` P8Ph p0P0PhpP0`HhЋ0@ (H``pЎ@(P@`xА0@P`p(Е@Xp (P@p 8P`P`Ю Xx0 (Hh @(`HPh`p@`P@P`0 XPp`pP(@Xp Pp0H`x@`Pp0pH`0x@ 8 PhP  (@`0x`@(P@X`x0 P0pPx` @8Pp `       8 0 P @ h `     0  X    P  8  X  @ `  8 P 0p @  ` ` P X      `!!8 "P"p#%% &&('H)p+P--`//80`@1p1@2203p44@4``5566`8:8@;X<=?@A0AH`BhCC E0E@EHP0IpI JpKKLPLM8PMPOxPRSST X PY@Z`[\0]]^P_@```p`x``````` `8aPah a0a@aPa`apaaa(a@aXapaaabb b0b@b0PbH`b`pbxbbbbbbb b8cPch c0c@cPc`cpccc(c@cXcpcccdd d0d@d0PdH`d`pdxddddddd d8ePeh e0e@ePe`epeee(e@eXepeeeff f 0f @f0 PfH `f` pfx f f f f f f!f !f8!gP!gh! g!0g!@g!Pg!`g!pg!g"g("g@"gX"gp"g"g"g"h"h" h#0h#@h0#PhH#`h`#phx#h#h#h#h#h#h$h $h8$iP$ih$ i$0i$@i$Pi$`i$pi$i%i(%i@%iX%ip%i%i%i%j%j% j&0j&@j0&PjH&`j`&pjx&j&j&j&j&j&j'j 'j8'kP'kh' k'0k'@k'Pk'`k'pk'k(k((k@(kX(kp(k(k(k(l(l( l)0l)@l0)PlH)`l`)plx)l)l)l)l)l)l*l *l8*mP*mh* m*0m*@m*Pm*`m*pm*m+m(+m@+mX+mp+m+m+m+n+n+ n,0n,@n0,PnH,`n`,pnx,n,n,n,n,n,n-n -n8-oP-oh- o-0o-@o-Po-`o-po-o.o(.o@.oX.op.o.o.o.p.p. p/0p/@p0/PpH/`p`/ppx/p/p/p/p/p/p0p 0p80qP0qh0 q00q0@q0Pq0`q0pq0q1q(1q@1qX1qp1q1q1q1r1r1 r20r2@r02PrH2`r`2prx2r2r2r2r2r2r3r 3r83sP3sh3 s30s3@s3Ps3`s3ps3s4s(4s@4sX4sp4s4s4s4t4t4 t50t5@t05PtH5t`5tx5`u5u5`v5Pw5|6~86p6667 7PX7Аx77777 708@ 8P88`P8ph88888Б889(90@9X9Вp9 9p99Г99@:p:0:H:h::: ::@; ;@;X; p;0;@;P;`;p;<<0<H<`<Зx<<<<< <0=@ =P8=`P=ph======И=>(>@>X> p>0>@>P>`>p>??0?H?`?Йx????? ?0@@ @P8@`P@ph@@@@@@К@A(A@AXA pA0A@APA`ApABB0BHB`BЛxBBBB B0B@CP C`8CPCМhC@CPCpCCCD(DО@DXDxD@DPDDРDD Ep0EHE`EE@EPEpEEFFТ0FHF`FxFF F0F@FPF`G@G `GGPGG G`G`HбPH hH0H HHI IXIII`IJ` PJ pJpKJ`LJMJMKN(KpNHKOhKOKPKRK@SKpTLU0LV`L XLaLiMk8MkPMp|M|MMЃM NHNN0NNOzRx `MI K<T1l ACACD h*5ACD0$(ACD0D|MI CdACACD MN0Lh>AGMI Q ?HR C@oABACD0?HR C<ZACACD \JMI H$| M[@N(AG0HX0C~MI M,BECB CA(A0C$,*MMNPIT5Dl5DMN0C$ BCACA CD0,yBBA CA(D0FГWMV0IACACD $<HRNPO$d(4MMNPC$@M[@J؜MI D,hBCGCA A(CI04ȞBBB B(CA0A8Gf<ACACD \0>GC4tX_BBB B(A0CA8CD7MN0QMI LMI Q$ <BFACA B4UMV0JTACACD tN GpMN0Fl MVPF$(QBCACA P$`.M_@H$$hUM_@HL$d.M_@HMV@DWL0M $xBFAA C MP0J$,L`PHT\N FtH2ACp4BBCB CB(CA0A8CD@Pl$BACA N 0D 4 EMI LT AGX$t hMMMDP$ [MMI0N OAG @AHCD  ;MD  N G< pN G$\ M\DP MI0K ,DC }N I XDC HMN0I fN0G4 H|MI0NT MV0V$t }MMNPO$ M`PH hMI I  OML C$ H MZPQ, @D $D HMMN@Ll MV@\4 eBBB B(CA0CA8DPR4 &BBCB CB(CA0CA8DPB MN0M RMN@H< T l N G `!:MI I "[MN0G #MI L4 `&. BCBB CB(A0A8DH$X/SACACD@D0MVPR$d5MZ`E$ BFCB B(A0A8CD*hD  +`Eh$+E<+ET+El+E0+E=$+EhBJAA G,+8FBIA A(CD`,+GBBCF CA(D0R4$,xI(BBB B(A0A8D`N\,pL'Dt,LZD,LRD$,ML[PF,PACACD ,Q4-Q-BBB B(A0A8CD`<-UT-UACAD@I$t-VMMNPP-0YiMD0,-YBBCA A(CD0-Z7D,.8ZBCBB A(CA0C4.ZMI IT.[ACD0$t.\LMNpL.]EC$.^TBACA G.@_f,._BBCB A(CA0CDP$$/aZQpL/0c{AN4d/c2 BBCB B(A0CA8CG/n\IP[/poAKGD /pp:/p@ACAF0qO,0q^AGIC$L00rLMMN@L$t0XtM[@D400ua-BIB B(CI0A8CG40hZ#BBB B(CA0CA8CG4 1BBB DB(CA0CA8GT4D1hBBCB CB(A0BA8CDp4|1:"BBB CG(CA0A8G`$1BCHA 41(FBBB B(A0CA8Gj42xN>BBCB B(A0A8CGL2kMI@J,l2 lBBA CA(D0L2plLN J2lACD0420mNBBB B(A0CA8CD`3Hp'4,3`pBCBB B(A0JA8CQ$d3HuMMNpM3wMV@C43w BBB B(A0CA8CDP$3h~dBCAA J, 4BBA A(CD0<4P`MI T\4AKN|4AHACN 4cAHACN 4sAHACN 4@MN0C44@BCEB DB(CA0CA8CDP457MD $T5ȖHRN`V|5@7MD 5` 5XML 5ML 45BCBB B(CA0A8D@M,68AC4D6^%BCBB B(CA0CA8Gc|6uN0G46pBFB CF(CA0CA8CDp6HNMD06xp 7$7Hq<7T7(Fl7`F7MI H7 777UD 8880UD 48x9L8pd8|888888GQ 9P$9H<9@zN F\9t9tD9MMD09uMUD09@WI0C9:?Q C$:ACLD@D:X\:PN@F|:ML _:MI0C:0:(tHK0J:) ;,G$;LLJ4D;XBBB B(FA0CA8CG|;LLJ;,;xfBFBB CA(A0;;}V G<$4<MMNpU$\<M[PJ<HMI J<WHR C<}MI H<XaN J=YAD F$=oGII CD=8aN F$d=qbPM$=MMN`P4=BCBB B(CA0CA8CD`=`>X>`N O<>MI J4\>BCBB CB(CA0CA8CG$>(M[J>>MI J>XN J?MMD@4?MI0T?xGl?AFG$?6BFA CD0?G$?M[pE$?AFABG@<LV0F<@0AACD0\@Gt@MVPJ@( ^a@ AACK $@ |BHACA C4@@ BBB CB(CA0A8CD44ABBB B(CC0A8CD`4lALBBB B(A0CC8CDpA ACACD@4ABBB B(A0CF8CD4A@!XBBB CB(CA0A8G!i44Bh$3BBB CB(CA0A8CDp4lBp(9BBCB CD(A0A8CDpBx+AFGB,MMD04B-BBB CB(A0CA8CD4C/BBB B(A0CC8CD`TCX4,DlCp45DC45DC4AACD0C`5GC5AFGCh6G D6AFG,Dp7uMMD@LD7GdDH8AFGD8D`9FD9D:(DD(: D ::DEH:,EP:DEX:\E`:)DtEx:MI JE; E;0KCE(;fACACD ,Ex;BBCA EA(EG4F;9BBB CB(A0A8GN$LFCBGAA CtFC~HBFCDFC ECFD%EC,FDBCBCA A(D0GGD?D4GDBBB B(A0CA8CDpTGWDlGW/GW $GWoBABA CD0GYDGYoN FGPYMN@JH@ZMN`RAHOP MN0rO@MN0lOMI h$Pб?M^G,DPBBB A(CA0CDPtPMI hP|N G$PxMX@G4PBBCB B(A0A8CDQMI@C4QIAJ$LQPBDA CtQhACD QWACAD G4QHBBCB B(CA0A8CDpQAG4RBBB CB(CA0CA8CDP MXC4]IDMS0G$T]8K MX@J$|]V~MX@J]hYYLJ]YACAD C]`ZAACD ][ACAD C,^[BBA A(CD0L^P^rAJ4d^^BCBB B(A0CA8GG^nAACD $^PoMXPC$^(tM[O _y;EC4$_yu BBB B(A0A8CG4\_ BBB B(A0A8CG$_xZMX@G4_ BBB B(A0A8CG4_rBFBB B(A0CA8D`[4,`PBBB B(A0A8CD`d`تMN0J$`8MXPT$`BAA G`HMI `$`MXpG$aзMXPGDagMI GdaMI PaAACD aHm4aBCBB B(CA0CA8CDPa bCA[$bH$AJMMN`L$tiAMMNLi`SAACD0iTADCD0iTMV0F$i0WMMN`N$j[zN0GDjX\"AC\jp\ $tjh\YM[PGjdN Gj0eN FjfiAC,jhfBCBB A(A0D,$kHg0BCBCB CA(A0JTkHh"lk`hkhQAC4k iBCBCB CB(CA0CA8DPM$khj?M[PL$klcMMIPP$lmMN@M$DlnlM[`G$llsM[`F$lvMMNpF$l@z=MMNK$lX{LMNpH$ m }\MMIPK$4mXNMMI0N\mMI J,|m0hBEB CA(CA0CmplMI Im0MN@ImЈMI G$ n`M[PF4n(MN0JTnMV0GtnMN0J$nM[@FnMI0QnP@N0Cnp|N0GoЕIMD M[Gz(B1MY0G4zHCBBB B(A0A8CD,,{FtBBB CA(A0D@[4\{IBBB B(CA0A8DZ4{L*BBB B(CA0A8Dj${PM[G${U%MX`C|WMS0G<|[MN@K\|\?MS@G4||^BBB B(A0A8CD|dMSPG$|fMXPC4|hi BBB B(A0A8CD4}q)MN@G,T}sdBBB A(A0CDP}Hu MI G}8vMS0C}wMN0C}xMN0C~yMN0C$~zMN0CD~{MN0Cd~|MN0C~}4MN0G~$MN0G~؁LMN0G~<MN0G(,MN0G$8$MN0GDHMN0G4dBBB B(A0CA8D^$BAA CD0$h_BAA CD0$_BAA CD0$ؚ_BAA CD0$<_BAA CD0dHMN0GHMN0GHEMN0C$ĀxMXPT?MS@T &MS@T,0EMN0CL`AACD lMN@W$pMXPKlMN@CԁXAACD X MS@C$HMXPG$< MX@GdBMN0CMMS0\(MI CĂMI CMN@C$X#MXPG$,`IMXT$TrMXPT| MI SAACD $ABAA GMN0M4BBCB B(A0A8CD@<PrMI G4\BBB B(A0A8CD@XgMI GMN0M4Ԅ0BBB B(A0A8CDP$ BAA C4hMI0WTXMN0Kt(MI S$M_pS@VLI0J܅MN0C+MV0G4BBB B(A0CA8DPY4TX*BBB B(A0A8CD`$P'MXP\XMI dԆ$eBGAA C4BBB B(CA0A8CDL%dMI0C(DCoAFHX0CԇhAFsACACD  0ZMV0F,pMN@FLMI0Il!MAACD rMI FĈxrMI F^ACACD aMI F$hACACD D{MN0Fd(| ĉZACACD HMN0F}MN0F$kN CDh\`tXPH@7MD ܊`MN0KMN0KHN C< T l  MI D!HN Hċ!AF$܋P"ZBAA CD@#?MS0C$$'OC<$T$ARlP%%rHC`&rHC&MV0CԌ(HK )MN0G, *aBBFA A(CD0<0,DT8,AGl-AF-AACD x-RN Cč-AACD . ACACD /MX0G,$H1BBB A(A0J,T83BFBCA A(CD05AGhx6HAE46BBB B(A0A8CD$x:MXPJ4<BCBB CB(CA0BA8CD`4TDBFBB B(A0A8CD`KXAHG$KMMLI4ԏxLzBFBB B(A0A8CG4 bBBB CB(A0CA8CD4Di BCBB B(CA0CA8CG|`nGAI4nBCBCB CB(CA0A8DPI$̐p5M[@D4(q%BCBB CB(A0A8D@J4, rBBB FB(A0A8CDP,dzBBA A(CD0x~MI G MS0T4ԑI BBB B(A0A8CD` sHC4$BBB B(A0A8CD`4\ BBB B(A0A8CDP$BAA G@N C,ܒ@BBGB CA(CA0Y AACD ,AACD 4LBBB B(A0A8CG$XBAA CD0Ь'AACD $̓MX`V$زeMXN4 BBB B(A0CA8CDpTAD FtACACD 4BBB B(CA0A8CD4̔*BGB B(A0CA8GX4}BBB B(A0CA8DS4<@BBB B(A0A8CDp$t<M^C4BBB B(A0A8CG6MN0S 0AN C,`AN C$LBACA GtMS0LAN C AN C4Ԗ8 7BBB B(A0A8CD@ @dMD ,dMD LdMD l0dMD ^N C^N C̗^N C@^N C, BBB A(A0G<`MS0L,\`BBB A(A0CD@,[BBB A(CA0DPG MI jܘMI j$ BAA G$8!MI U$D!BAA CD0l"MN0_,#BBA A(CD`$@'xBAA CD0$(RMXPC )MS0C,*MS0KL,MI Yl,MI S,@-BBB A(A0G4/BBB B(A0A8CG43BBB B(A0A8CD`,,P5jBBA A(CD@\6RMS0S|7KMN0G9MI G9`MN0Cܛ0;OMN0K,`<]BBB A(A0G$,>MX@CT8@]MS@[$txAM^PK$CuMV f$ĜhD\MXPG$EMX@CFMN0C$4HGBAA G\G7MS`K4|KHBBB B(A0A8CG$SBAA GܝpU{ACUAACD xXoMI L$4ZMX@L$\p]BAA GhdMS@G$8fjMX`G$̞iMX@C$k M[!Z$mMX`CDpqMS0C$dqMXPC$sMXPC4(uBBB B(A0A8CD$yMXPC$|MXPC$<}HMXpKdfMS0ChMN0G$H-MX@K̠PMS0M$ KMXPC$HMX@W$<M^pGdx?MSPM$M[G4 BEB B(A0A8G!^GN F$MX`G$,M[@G$TMXpJ|MN0M$pMX@W$Ģ(M[PK4xBBCB B(A0CA8DG4$H BSB B(A0A8CDP$\ MXPC4{BBB B(A0A8CD$@yMX@GCMS0W$!MXG$,MXPGT*MN@JtMN0Q4PBBB B(A0A8CG4(SBGB B(A0A8CDP4Pi BHCB CB(A0A8DM$T`M[pR4|_BBB CB(CA0CA8DPO$M[pGܥLV@G` MNPI4`BIB B(A0CA8CD4TBBB B(A0CA8CG$[N[V4!BBB B(DA0CA8D`N"4AC$#+N[PN, %NV@N$L &LMQR$t)L[@H$+BCA Bħ,ABD (-AD I.MN@C4$H/HBCBB B(A0CD8CG4\`4BBB B(CA0CA8CG$6cBAA G$ 90BAA CD0(<MNPF=MV0G$>MI HDX?MI Id?MN0IhA2MN0I4B BBB CH(CA0CA8CDp4ܩMBBCB CB(CA0A8CGheMMDP448fBBB B(A0CA8CD4ln|BBB B(CA0CA8D@FoPqzԪqPrU$r6MMNPP,s>AS$Ds ZQH4lP}]BFEB B(CA0A8DPe$xOMQPJ$̫pDLRQPH`AG4 BBB B(A0BA8CDP4DhBBB B(A0CA8GS4|8BCBB CB(CA0A8Gl4H7BCBB B(A0CA8CG<IzBCBCB CB(CA0CA8CG,].D0D]#\_eth`H`D8b.4Pb BLBB B(A0A8Gt,nBFBB A(CA0C$xpAACD 4DrBBB CB(A0CA8CD`$|wtBCAA F$8xBACA F̮yACABD y-D4y4BCBB CB(A0A8DH<$T؀M[I|MN0C̯ (08,@DH\PtX`hp&԰&WMN C<WMN C4\0 BBCD CB(CL0CA8CDp4BFBB CB(A0CA8D`SȈMS0C$4xMMNE\'Y t'Y 'Y ('Y 4@mBIHB B(A0A8GKxLHMD LHMD 4ؓD0LLHMD lD0LHMD HD0P8N0Cܳph]N@H,]N@HLdؔ]N@H]N@HPԴH]N@H ]N@H,D]N@Hd|]N@H0(]N@HԵh`]N@H $]N@HDؖ\Ж]N@H|]N@HH̶@ MN0M,0XBBA A(CDp`4XLPdH|@QAJ ķxDܷD$xBAA G0~MS0J<~MS0J\~MS0J$|PBAA GHMS0lĸȤE[0LDpAACD $0BABA G$DBAA GlШMI h$`MXPK$VMX@Kܹ MN0J4BBB B(A0A8CDP4jMI MTXjMI M4t BBB B(A0A8CD@fAACD ̺MN0q$MMN@K$XMMN@K< MN0o\MS@J|MI hPbAACD MN@J$ܻMQN@G$h MX@G$,`7MX@l$TxzBVA C|]MV@CMN0l$wMMQQ$8BAA CD0$ BAA CD04AGL`MN0G$lPhMX@GMN0GHMN0GԽMN0G$MXPpMS0H$<YM[@Gd8 MS@G$(BAA G4#BBCB B(A0A8DpiAACD 4Ld:| cxpĿhܿ`&x& $<T7l  $$LMI0M G$D<`DTh(AClQDaD ZDhUDZDUD@AACD0QN0C<2ACT8KN Fth#ACZDgD _DhZDPDPD "48RDLRDd2D|ZD8HMN0Ch]DqMI0JZDXJN J$MI0JDH]D\JN0J|RD,D ACD MNPJGVMI J$H#D<`MN0C$\M^C[AACD0$uBFACA BpbACMI CHDPcAG44,BDCB CB(CA0A8DPNlyN0FWDHDACD $xMMI0F$M[@CDD,DDD\ t D G4BBB CB(CA0CA8CD@4 0BCBCB CA(A0CD@D\KAC4tBBCB B(CA0CA8CD@4`BCBB CB(CA0CA8CD@MN G1D@<HQ4hhHYD 4TBBB B(CF0A8CDP7ML K4BCBB CB(CA0CA8DPI$H\ZL  LI I$, BFAA G4T BBB CB(A0A8D@Ep x UMQ0C D wMI C MV0C4 BBCB B(A0A8CD`TXMI0C4t(VBBB B(CA0CA8CDP4PpBBCB B(CA0A8DPC{MN0CMI J,<BCBA CA(D0El@[AACD0RD~MN0C,(hBGBCA A(D0M$hM[@C0MN0C<yN F\aMD |`yAACD 4BNBCB B(CA0CA8CDP4xnBBB B(A0A8CDp MN@G,p|MI GLMI Ll@BN B$pYN`hH MI C !D ACACD0 !VN0C,!AACD0L0"5MIP\$lP#:BACA Ch#5MD ,#bBCBB CA(A0H#ID$JN F0$MN0H$<$rM[@J$dH&JMMQSp(MV0C$(OMMN@C*1MN@C$(+BACA CD04,BBCB CB(CD0CA8D`L,T-BCBCA A(DPKX.WD.gN0J4.BCBB CB(CA0CA8CDPX/MV@F$/pMMN`c<01T(14l 1ABCBB B(A0CA8Di84MN`J4MIPJ(5^N@Ih5ETNPY$6QD<62HCT72HCl07ADCG72HC$7GM[@C$ :LXPI<-MN@\=iAH,>MV@P$L>+MMN`HtA(MN0JCMI@C$CMMN`H`EMV0CEAFhFTD ,4FBJDB A(CH0,dxGBGBCB CA(A0CH MV0FHHHHH,HDH\HtHHHHHHHH4xHLpHdhH|`HXHPHHH@H8H 0H$(H< HTHlHHHGGGGG,GDG\GtGGGGGGGG4xGLpGdhG|`GXGPGHG@G8G 0G$(G< GTGlGGGFFFFF,FDF\FtFFFFFFFF4xFLpFdhF|`FXFPFHF@F8F 0F$(F< FTFlFFFEEEEE,EDE\EtEEEEEEEE4xELpEdhE|`EXEPEHE@E8E 0E$(E< ETElEEEDDDDD,DDD\DtDDDDDDDD4xDLpDdhD|`DXDPDHD@D8D 0D$(D< DTDlDDDCCCCC,CDC\CtCCCCCCCC4xCLpCdhC|`CXCPCHC@C8C 0C$(C< CTClCCCBBBBB,BDB\BtBBBBBBBB4xBLpBdhB|`BXBPBHB@B8B 0B$(B< BTBlBBBAAAAA,ADA\AtAAAAAAAA4xALpAdhA|`AXAPAHA@A8A 0A$(A< ATAlAAA@@@@@,@D@\@t@@@@@@@@4x@Lp@dh@|`@X@P@H@@@8@ 0@$(@< @T@l@@@?????,?D?\?t????????4x?Lp?dh?|`?X?P?H?@?8? 0?$(?< ?T?l???P8?Pp?o?w0@y@ACACD044hAtBCEB B(A0A8GRlF%AGACDP4GBEDB CA(CA0CD@4hNBBB B(A0A8D\PQwAED04QBBB B(A0CA8CDTTwAED04tXUBBB B(A0CA8DgXwAED0PY HY@Y8Y,0YD(Y\ YtYY Y Y X XD XX4X LX dXK|XKXJD0 YJD0XYJD0YBD0Y,D0 Y*D0$Y1D0< Z0D0T8Z'D0lPZHZ @Z`[0FZxZ pZ ,hZBDCB A(A0C4ZXN FT8[ZACACD tx[ZACACD [[[[[ [$[<[Tx[lp[h[`[X[P[H[@[8[,0[D([\ [t[[[[ZZZZ4ZLZdZ|ZZZZZZ Z$Z<ZTxZlpZhZ`ZXZPZHZ@Z8Z,0ZD(Z\ ZtZZZZYYYY4YLYdY|YYYYYY Y$Y<YTxYlpYhY`YXYPYHY@Y8Y,@YD8Y \0Y t(Y  Y1D0HY0D0,`YjBBCF A(CDPZ ZZ4Z LZ dZ |Z Z ZADCG0[G[ [`MD [4[L["d\FML C8\ 0\ (\CML CX\XMD \  \$\<\ T\l\ \ \ \ \ x\p\h\,`\DX\ 4\P\BBB CB(A0A8CG`8]HMD ]ML\,8_BBA A(BD0_AC`8AJ48`8AJL``MI L4l@ahBBCB B(A0A8CKpxiKi$jBFDBA CpkpACGCD04kBBB CB(A0CA8CDTmMS@C4thnBBB B(A0A8DM4PuBFBGB CB(A0CA8CD(y6DG4PyWBBB B(A0A8D]44x|ABBB B(CA0BA8CG4l`BBCB CB(CA0CA8CDmMX@F4X@BBB B(A0CA8GmMNa$ <MX`GD D\ LPD | TPD   MI I ACD0  "MI N 0"MI N @"MI N< P"MI N$\ `lM[PG,  BBA A(CD0, X `BBCB A(A0CD@4  BBB B(A0A8CG4 BCBB B(CA0CA8CG4T BBB B(CA0CA8CG  P4 XBBB B(A0A8CG .4 .BDB B(A0A8Dp, 45ACD $L 5BCA C$t 6BCA C4 @8MBDB B(A0A8CD@$ X;MBFCA GP, <BDA CA(D0,,  ?BDB A(CA0,\ ABDB CA(A008PЋhP(x X؏(hmzP0—ŗɗ͗ї՗ٗݗDŽ "'*.158}<?FKPUZ`cgjn{{,9{D{KQ{s{]c=<F',+06=5<PDLQV]d\clskr{z kqx %-38>JW]ejpw+G$'7DVcu'6H_k|.7AKU_jw[ _ Q %+5BB B *******#*(*-*2*7*<*A*F*#M*%W*.`*:g*<q*@|*A*B*D*E*H*I*L*N*P*S*U*a*c*d +e+f!+g'+h7+iD+kO+lX+nb+os+p+q+r+s+t+u+v+V+w+x+y+~+y *******%(*/"3"7">*İ0 ^;pdD9E}dGjidllllllllmm mmmmmm"m&m*m   T$J3+05:?DHMRY^İdhlrx~ƛ̛қ؛ޛ &,2O36;y|BGPZ`%(ekqw~)_n=˜ &E՜ߜ1cM(   (.,97B@IRPXVa=hs`jt~.ŝ֝͝ԝݝ@LGQV[hkF(pj^ d* "%(28BHOT;(7>[bhnklu|zm9ǞО֞ϩѝ۞ߞ!&@*2<DLRxXHEblccv{wckƟrϟןlޟ v/%rr*2:CHMQ-?kV\bn.h/k'kqxrràˠӠܠ!(.4;AHOV]djqkzjjjjšϡZ/ءݡjߠjj !'.5=FM2rT[ah*novɢѢڢ %.7?IRY`gnu|jjHjBGPѣܣ ,=P]tˤn0FYmĥ֥6.PHjb}ϦǦܦ(~kDWkzǧק'@Ycmwͨܨݝ@LGQV[hkF(pj^ d* "%("+9OT;(7>[EVckln|}mm0˩ԩ!1Hel!&Ԫ$Gj/B7Xccv{wckbuƟrsןlޟ v/֠ѫk^rr*2:CHMQ-?kV\bn.4k/k'kqxܫrrJ} \} brhF"%(+.14kzjjjj7šϡZ/ءݡjߠjj? !'.5=FM2rT[ah*nEO]p}:9:F:9:S:x::::::ƬЬܬ]:f:o::':0:jjHj Ì͌݌ PK xaoXEP| Y _6c ooooW6~KKKKKKKKKLL.L>LNL^LnL~LLLLLLLLLMM.M>MNM^MnM~MMMMMMMMMNN.N>NNN^NnN~NNNNNNNNNOO.O>ONO^OnO~OOOOOOOOOPP.P>PNP^PnP~PPPPPPPPPQQ.Q>QNQ^QnQ~QQQQQQQQQRR.R>RNR^RnR~RRRRRRRRRSS.S>SNS^SnS~SSSSSSSSSTT.T>TNT^TnT~TTTTTTTTTUU.U>UNU^UnU~UUUUUUUUUVV.V>VNV^VnV~VVVVVVVVVWW.W>WNW^WnW~WWWWWWWWWXX.X>XNX^XnX~XXXXXXXXXYY.Y>YNY^YnY~YYYYYYYYYZZ.Z>ZNZ^ZnZ~ZZZZZZZZZ[[.[>[N[^[n[~[[[[[[[[[\\.\>\N\^\n\~\\\\\\\\\]].]>]N]^]n]~]]]]]]]]]^^.^>^N^^^n^~^^^^^^^^^__._>_N_^_n_~_________``.`>`N`^`n`~`````````aa.a>aNa^ana~aaaaaaaaabb.b>bNb^bnb~bbbbbbbbbcc.c>cNc^cnc~cccccccccdd.d>dNd^dnd~dddddddddee.e>eNe^ene~eeeeeeeeeff.f>fNf^fnf~fffffffffgg.g>gNg^gng~ggggggggghh.h>hNh^hnh~hhhhhhhhhii.i>iNi^ini~iiiiiiiiijj.j>jNj^jnj~jjjjjjjjjkk.k>kNk^knk~kkkkkkkkkll.l>lNl^lnl~lllllllllmm.m>mNm^mnm~mmmmmmmmmnn.n>nNn^nnn~nnnnnnnnnoo.o>oNo^ono~ooooooooopp.p>pNp^pnp~pppppppppqq.q>qNq^qnq~qqqqqqqqqrr.r>rNr^rnr~rrrrrrrrrss.s>sNs^sns~ssssssssstt.t>tNt^tnt~tttttttttuu.u>uNu^unu~uuuuuuuuuvv.v>vNv^vnv~vvvvvvvvvww.w>wNw^wnw~wwwwwwwwwxx.x>xNx^xnx~xxxxxxxxxyy.y>yNy^yny~yyyyyyyyyzz.z>zNz^znz~zzzzzzzzz{{.{>{N{^{n{~{{{{{{{{{||.|>|N|^|n|~|||||||||}}.}>}N}^}n}~}}}}}}}}}~~.~>~N~^~n~~~~~~~~~~~.>N^n~.>N^n~΀ހ.>N^n~΁ށ.>N^n~΂ނ.>N^n~΃ރ.>N^n~΄ބ.>N^n~΅ޅ.>N^n~Άކ.>N^n~·އ.>N^n~Έވ.>N^n~Ήމ.>N^n~Ίފ.>N^n~΋ދ.>N^n~Όތ.>N^n~΍ލ@6  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  #} C  H"H*P/`libperl.so.5.10.1r^.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.data.rel.ro.dynamic.got.got.plt.data.bss.gnu_debuglink $"hCoXEXE7( ||0PPY8oEoT^c hPKPKchKhKBntxaxazaak A@@ &6&(&6(&@&6@&`&6`&x1 W6WY6Y(_6_P!@6@(  6 f@f@%s: creation of %s failed - aborting with errno %i. %s: creation of private temporary subdirectory %s failed - aborting with errno %i. ;p66 MN8pNPNpPRT@UVH@WhpWXYZ@e(0kX lx0l@lzRx 54$45kAGG$\LM[@ELTD MIACAD0E$HM'YNPOPOAIP\$Q"MZG4,R>BBB CB(FA0A8ED,d SBBB A(CA0GETfAFLT"DT DCUACAD 4@VBBB CB(CF0A8G[4<WX BBB CG(A0A8GЃH,tbBCBCB A(A0DpPgVHhh$hQ_@F/9z *@ d@@ox@@8 @  w '@&@H oh&@oo$@w*@+@+@&+@6+@F+@V+@f+@v+@+@+@+@+@+@+@+@+@,@,@&,@6,@F,@V,@f,@v,@,@,@,@,@,@,@,@,@-@-@&-@6-@F-@V-@Cf@0uef@0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0u0uCGCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.ctors.dtors.jcr.dynamic.got.got.plt.data.bss.comment 8@8T@T !t@t$8@4ox@x> 8 @8 F@No$@$d[oh&@h&pj&@&Ht '@ ' ~*@*y*@*`-@`-7d@de@e WWwwwwwwP8x8 x @ 0 #/gFILEc33fbebe/Config_git.pl###################################################################### # WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl # DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead ###################################################################### $Config::Git_Data=<<'ENDOFGIT'; git_commit_id='' git_describe='' git_branch='' git_uncommitted_changes='' git_commit_id_title='' ENDOFGIT FILE28254750/Config.pm #line 1 "/usr/lib/perl/5.10/Config.pm" # This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. # for a description of the variables, please have a look at the # Glossary file, as written in the Porting folder, or use the url: # http://perl5.git.perl.org/perl.git/blob/HEAD:/Porting/Glossary package Config; use strict; # use warnings; Pulls in Carp # use vars pulls in Carp @Config::EXPORT = qw(%Config); @Config::EXPORT_OK = qw(myconfig config_sh config_vars config_re); # Need to stub all the functions to make code such as print Config::config_sh # keep working sub myconfig; sub config_sh; sub config_vars; sub config_re; my %Export_Cache = map {($_ => 1)} (@Config::EXPORT, @Config::EXPORT_OK); our %Config; # Define our own import method to avoid pulling in the full Exporter: sub import { my $pkg = shift; @_ = @Config::EXPORT unless @_; my @funcs = grep $_ ne '%Config', @_; my $export_Config = @funcs < @_ ? 1 : 0; no strict 'refs'; my $callpkg = caller(0); foreach my $func (@funcs) { die sprintf qq{"%s" is not exported by the %s module\n}, $func, __PACKAGE__ unless $Export_Cache{$func}; *{$callpkg.'::'.$func} = \&{$func}; } *{"$callpkg\::Config"} = \%Config if $export_Config; return; } die "Perl lib version (5.10.1) doesn't match executable version ($])" unless $^V; $^V eq 5.10.1 or die "Perl lib version (5.10.1) doesn't match executable version (" . sprintf("v%vd",$^V) . ")"; sub FETCH { my($self, $key) = @_; # check for cached value (which may be undef so we use exists not defined) return $self->{$key} if exists $self->{$key}; return $self->fetch_string($key); } sub TIEHASH { bless $_[1], $_[0]; } sub DESTROY { } sub AUTOLOAD { require 'Config_heavy.pl'; goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/; die "&Config::AUTOLOAD failed on $Config::AUTOLOAD"; } # tie returns the object, so the value returned to require will be true. tie %Config, 'Config', { archlibexp => '/usr/lib/perl/5.10', archname => 'x86_64-linux-gnu-thread-multi', cc => 'cc', d_readlink => 'define', d_symlink => 'define', dlsrc => 'dl_dlopen.xs', dont_use_nlink => undef, exe_ext => '', inc_version_list => '5.10.0', intsize => '4', ldlibpthname => 'LD_LIBRARY_PATH', libpth => '/usr/local/lib /lib /usr/lib /lib64 /usr/lib64', osname => 'linux', osvers => '2.6.24-27-server', path_sep => ':', privlibexp => '/usr/share/perl/5.10', scriptdir => '/usr/bin', sitearchexp => '/usr/local/lib/perl/5.10.1', sitelibexp => '/usr/local/share/perl/5.10.1', useithreads => 'define', usevendorprefix => 'define', version => '5.10.1', }; FILEd1f65aaf/Config_heavy.pl# This file was created by configpm when Perl was built. Any changes # made to this file will be lost the next time perl is built. package Config; use strict; # use warnings; Pulls in Carp # use vars pulls in Carp ## ## This file was produced by running the Configure script. It holds all the ## definitions figured out by Configure. Should you modify one of these values, ## do not forget to propagate your changes by running "Configure -der". You may ## instead choose to run each of the .SH files by yourself, or "Configure -S". ## # ## Package name : perl5 ## Source directory : . ## Configuration time: Fri Apr 23 08:18:41 UTC 2010 ## Configured by : Debian Project ## Target system : linux crested 2.6.24-27-server #1 smp fri mar 12 01:23:09 utc 2010 x86_64 gnulinux # #: Configure command line arguments. # #: Variables propagated from previous config.sh file. our $summary = <<'!END!'; Summary of my $package (revision $revision $version_patchlevel_string) configuration: $git_commit_id_title $git_commit_id$git_ancestor_line Platform: osname=$osname, osvers=$osvers, archname=$archname uname='$myuname' config_args='$config_args' hint=$hint, useposix=$useposix, d_sigaction=$d_sigaction useithreads=$useithreads, usemultiplicity=$usemultiplicity useperlio=$useperlio, d_sfio=$d_sfio, uselargefiles=$uselargefiles, usesocks=$usesocks use64bitint=$use64bitint, use64bitall=$use64bitall, uselongdouble=$uselongdouble usemymalloc=$usemymalloc, bincompat5005=undef Compiler: cc='$cc', ccflags ='$ccflags', optimize='$optimize', cppflags='$cppflags' ccversion='$ccversion', gccversion='$gccversion', gccosandvers='$gccosandvers' intsize=$intsize, longsize=$longsize, ptrsize=$ptrsize, doublesize=$doublesize, byteorder=$byteorder d_longlong=$d_longlong, longlongsize=$longlongsize, d_longdbl=$d_longdbl, longdblsize=$longdblsize ivtype='$ivtype', ivsize=$ivsize, nvtype='$nvtype', nvsize=$nvsize, Off_t='$lseektype', lseeksize=$lseeksize alignbytes=$alignbytes, prototype=$prototype Linker and Libraries: ld='$ld', ldflags ='$ldflags' libpth=$libpth libs=$libs perllibs=$perllibs libc=$libc, so=$so, useshrplib=$useshrplib, libperl=$libperl gnulibc_version='$gnulibc_version' Dynamic Linking: dlsrc=$dlsrc, dlext=$dlext, d_dlsymun=$d_dlsymun, ccdlflags='$ccdlflags' cccdlflags='$cccdlflags', lddlflags='$lddlflags' !END! my $summary_expanded; sub myconfig { return $summary_expanded if $summary_expanded; ($summary_expanded = $summary) =~ s{\$(\w+)} { my $c; if ($1 eq 'git_ancestor_line') { if ($Config::Config{git_ancestor}) { $c= "\n Ancestor: $Config::Config{git_ancestor}"; } else { $c= ""; } } else { $c = $Config::Config{$1}; } defined($c) ? $c : 'undef' }ge; $summary_expanded; } local *_ = \my $a; $_ = <<'!END!'; Author='' CONFIG='true' Date='$Date' Header='' Id='$Id' Locker='' Log='$Log' PATCHLEVEL='10' PERL_API_REVISION='5' PERL_API_SUBVERSION='0' PERL_API_VERSION='10' PERL_CONFIG_SH='true' PERL_PATCHLEVEL='' PERL_REVISION='5' PERL_SUBVERSION='1' PERL_VERSION='10' RCSfile='$RCSfile' Revision='$Revision' SUBVERSION='1' Source='' State='' _a='.a' _exe='' _o='.o' afs='false' afsroot='/afs' alignbytes='8' ansi2knr='' aphostname='/bin/hostname' api_revision='5' api_subversion='0' api_version='10' api_versionstring='5.10.0' ar='ar' archlib='/usr/lib/perl/5.10' archlibexp='/usr/lib/perl/5.10' archname64='' archname='x86_64-linux-gnu-thread-multi' archobjs='' asctime_r_proto='REENTRANT_PROTO_B_SB' awk='awk' baserev='5.0' bash='' bin='/usr/bin' binexp='/usr/bin' bison='bison' byacc='byacc' byteorder='12345678' c='' castflags='0' cat='cat' cc='cc' cccdlflags='-fPIC' ccdlflags='-Wl,-E' ccflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccname='gcc' ccsymbols='' ccversion='' cf_by='Debian Project' cf_email='perl@packages.debian.org' cf_time='Fri Apr 23 08:18:41 UTC 2010' chgrp='' chmod='chmod' chown='' clocktype='clock_t' comm='comm' compress='' config_arg0='Configure' config_arg10='-Dvendorlib=/usr/share/perl5' config_arg11='-Dvendorarch=/usr/lib/perl5' config_arg12='-Dsiteprefix=/usr/local' config_arg13='-Dsitelib=/usr/local/share/perl/5.10.1' config_arg14='-Dsitearch=/usr/local/lib/perl/5.10.1' config_arg15='-Dman1dir=/usr/share/man/man1' config_arg16='-Dman3dir=/usr/share/man/man3' config_arg17='-Dsiteman1dir=/usr/local/man/man1' config_arg18='-Dsiteman3dir=/usr/local/man/man3' config_arg19='-Dman1ext=1' config_arg1='-Dusethreads' config_arg20='-Dman3ext=3perl' config_arg21='-Dpager=/usr/bin/sensible-pager' config_arg22='-Uafs' config_arg23='-Ud_csh' config_arg24='-Ud_ualarm' config_arg25='-Uusesfio' config_arg26='-Uusenm' config_arg27='-DDEBUGGING=-g' config_arg28='-Doptimize=-O2' config_arg29='-Duseshrplib' config_arg2='-Duselargefiles' config_arg30='-Dlibperl=libperl.so.5.10.1' config_arg31='-Dd_dosuid' config_arg32='-des' config_arg3='-Dccflags=-DDEBIAN' config_arg4='-Dcccdlflags=-fPIC' config_arg5='-Darchname=x86_64-linux-gnu' config_arg6='-Dprefix=/usr' config_arg7='-Dprivlib=/usr/share/perl/5.10' config_arg8='-Darchlib=/usr/lib/perl/5.10' config_arg9='-Dvendorprefix=/usr' config_argc='32' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.10 -Darchlib=/usr/lib/perl/5.10 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.10.1 -Dsitearch=/usr/local/lib/perl/5.10.1 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.10.1 -Dd_dosuid -des' contains='grep' cp='cp' cpio='' cpp='cpp' cpp_stuff='42' cppccsymbols='_FORTIFY_SOURCE=2' cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include' cpplast='-' cppminus='-' cpprun='cc -E' cppstdin='cc -E' cppsymbols='_FILE_OFFSET_BITS=64 _GNU_SOURCE=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _LP64=1 _POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __BIGGEST_ALIGNMENT__=16 __CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int __CHAR_BIT__=8 __DBL_DENORM_MIN__=4.9406564584124654e-324 __DBL_DIG__=15 __DBL_EPSILON__=2.2204460492503131e-16 __DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1 __DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024 __DBL_MAX__=1.7976931348623157e+308 __DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021) __DBL_MIN__=2.2250738585072014e-308 __DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34 __DEC128_MAX_EXP__=6145 __DEC128_MAX__=9.999999999999999999999999999999999E6144DL __DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL __DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL __DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97 __DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94) __DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF __DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385 __DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382) __DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD __DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1 __FINITE_MATH_ONLY__=0 __FLT_DENORM_MIN__=1.40129846e-45F __FLT_DIG__=6 __FLT_EPSILON__=1.19209290e-7F __FLT_EVAL_METHOD__=0 __FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1 __FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128 __FLT_MAX__=3.40282347e+38F __FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125) __FLT_MIN__=1.17549435e-38F __FLT_RADIX__=2 __GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GLIBC_MINOR__=11 __GLIBC__=2 __GNUC_GNU_INLINE__=1 __GNUC_MINOR__=4 __GNUC_PATCHLEVEL__=3 __GNUC__=4 __GNU_LIBRARY__=6 __GXX_ABI_VERSION=1002 __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INT_MAX__=2147483647 __LDBL_DENORM_MIN__=3.64519953188247460253e-4951L __LDBL_DIG__=18 __LDBL_EPSILON__=1.08420217248550443401e-19L __LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1 __LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932 __LDBL_MAX_EXP__=16384 __LDBL_MAX__=1.18973149535723176502e+4932L __LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381) __LDBL_MIN__=3.36210314311209350626e-4932L __LONG_LONG_MAX__=9223372036854775807LL __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PTRDIFF_TYPE__=long\ int __REGISTER_PREFIX__= __SCHAR_MAX__=127 __SHRT_MAX__=32767 __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT__=4 __SIZEOF_INT__=4 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2 __SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4 __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __SSP__=1 __STDC_HOSTED__=1 __STDC__=1 __UINTMAX_TYPE__=long\ unsigned\ int __USER_LABEL_PREFIX__= __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_POSIX=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 __VERSION__="4.4.3" __WCHAR_MAX__=2147483647 __WCHAR_TYPE__=int __WINT_TYPE__=unsigned\ int __amd64=1 __amd64__=1 __gnu_linux__=1 __k8=1 __k8__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 __x86_64=1 __x86_64__=1 linux=1 unix=1' crypt_r_proto='REENTRANT_PROTO_B_CCS' cryptlib='' csh='csh' ctermid_r_proto='0' ctime_r_proto='REENTRANT_PROTO_B_SB' d_Gconvert='gcvt((x),(n),(b))' d_PRIEUldbl='define' d_PRIFUldbl='define' d_PRIGUldbl='define' d_PRIXU64='define' d_PRId64='define' d_PRIeldbl='define' d_PRIfldbl='define' d_PRIgldbl='define' d_PRIi64='define' d_PRIo64='define' d_PRIu64='define' d_PRIx64='define' d_SCNfldbl='define' d__fwalk='undef' d_access='define' d_accessx='undef' d_aintl='undef' d_alarm='define' d_archlib='define' d_asctime64='undef' d_asctime_r='define' d_atolf='undef' d_atoll='define' d_attribute_deprecated='define' d_attribute_format='define' d_attribute_malloc='define' d_attribute_nonnull='define' d_attribute_noreturn='define' d_attribute_pure='define' d_attribute_unused='define' d_attribute_warn_unused_result='define' d_bcmp='define' d_bcopy='define' d_bsd='undef' d_bsdgetpgrp='undef' d_bsdsetpgrp='undef' d_builtin_choose_expr='define' d_builtin_expect='define' d_bzero='define' d_c99_variadic_macros='define' d_casti32='undef' d_castneg='define' d_charvspr='undef' d_chown='define' d_chroot='define' d_chsize='undef' d_class='undef' d_clearenv='define' d_closedir='define' d_cmsghdr_s='define' d_const='define' d_copysignl='define' d_cplusplus='undef' d_crypt='define' d_crypt_r='define' d_csh='undef' d_ctermid='define' d_ctermid_r='undef' d_ctime64='undef' d_ctime_r='define' d_cuserid='define' d_dbl_dig='define' d_dbminitproto='define' d_difftime64='undef' d_difftime='define' d_dir_dd_fd='undef' d_dirfd='define' d_dirnamlen='undef' d_dlerror='define' d_dlopen='define' d_dlsymun='undef' d_dosuid='define' d_drand48_r='define' d_drand48proto='define' d_dup2='define' d_eaccess='define' d_endgrent='define' d_endgrent_r='undef' d_endhent='define' d_endhostent_r='undef' d_endnent='define' d_endnetent_r='undef' d_endpent='define' d_endprotoent_r='undef' d_endpwent='define' d_endpwent_r='undef' d_endsent='define' d_endservent_r='undef' d_eofnblk='define' d_eunice='undef' d_faststdio='define' d_fchdir='define' d_fchmod='define' d_fchown='define' d_fcntl='define' d_fcntl_can_lock='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' d_fgetpos='define' d_finite='define' d_finitel='define' d_flexfnam='define' d_flock='define' d_flockproto='define' d_fork='define' d_fp_class='undef' d_fpathconf='define' d_fpclass='undef' d_fpclassify='undef' d_fpclassl='undef' d_fpos64_t='undef' d_frexpl='define' d_fs_data_s='undef' d_fseeko='define' d_fsetpos='define' d_fstatfs='define' d_fstatvfs='define' d_fsync='define' d_ftello='define' d_ftime='undef' d_futimes='define' d_gdbm_ndbm_h_uses_prototypes='undef' d_gdbmndbm_h_uses_prototypes='undef' d_getaddrinfo='define' d_getcwd='define' d_getespwnam='undef' d_getfsstat='undef' d_getgrent='define' d_getgrent_r='define' d_getgrgid_r='define' d_getgrnam_r='define' d_getgrps='define' d_gethbyaddr='define' d_gethbyname='define' d_gethent='define' d_gethname='define' d_gethostbyaddr_r='define' d_gethostbyname_r='define' d_gethostent_r='define' d_gethostprotos='define' d_getitimer='define' d_getlogin='define' d_getlogin_r='define' d_getmnt='undef' d_getmntent='define' d_getnameinfo='define' d_getnbyaddr='define' d_getnbyname='define' d_getnent='define' d_getnetbyaddr_r='define' d_getnetbyname_r='define' d_getnetent_r='define' d_getnetprotos='define' d_getpagsz='define' d_getpbyname='define' d_getpbynumber='define' d_getpent='define' d_getpgid='define' d_getpgrp2='undef' d_getpgrp='define' d_getppid='define' d_getprior='define' d_getprotobyname_r='define' d_getprotobynumber_r='define' d_getprotoent_r='define' d_getprotoprotos='define' d_getprpwnam='undef' d_getpwent='define' d_getpwent_r='define' d_getpwnam_r='define' d_getpwuid_r='define' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservbyname_r='define' d_getservbyport_r='define' d_getservent_r='define' d_getservprotos='define' d_getspnam='define' d_getspnam_r='define' d_gettimeod='define' d_gmtime64='undef' d_gmtime_r='define' d_gnulibc='define' d_grpasswd='define' d_hasmntopt='define' d_htonl='define' d_ilogbl='define' d_inc_version_list='undef' d_index='undef' d_inetaton='define' d_inetntop='define' d_inetpton='define' d_int64_t='define' d_isascii='define' d_isfinite='undef' d_isinf='define' d_isnan='define' d_isnanl='define' d_killpg='define' d_lchown='define' d_ldbl_dig='define' d_libm_lib_version='define' d_link='define' d_localtime64='undef' d_localtime_r='define' d_localtime_r_needs_tzset='define' d_locconv='define' d_lockf='define' d_longdbl='define' d_longlong='define' d_lseekproto='define' d_lstat='define' d_madvise='define' d_malloc_good_size='undef' d_malloc_size='undef' d_mblen='define' d_mbstowcs='define' d_mbtowc='define' d_memchr='define' d_memcmp='define' d_memcpy='define' d_memmove='define' d_memset='define' d_mkdir='define' d_mkdtemp='define' d_mkfifo='define' d_mkstemp='define' d_mkstemps='define' d_mktime64='undef' d_mktime='define' d_mmap='define' d_modfl='define' d_modfl_pow32_bug='undef' d_modflproto='define' d_mprotect='define' d_msg='define' d_msg_ctrunc='define' d_msg_dontroute='define' d_msg_oob='define' d_msg_peek='define' d_msg_proxy='define' d_msgctl='define' d_msgget='define' d_msghdr_s='define' d_msgrcv='define' d_msgsnd='define' d_msync='define' d_munmap='define' d_mymalloc='undef' d_ndbm='define' d_ndbm_h_uses_prototypes='undef' d_nice='define' d_nl_langinfo='define' d_nv_preserves_uv='undef' d_nv_zero_is_allbits_zero='define' d_off64_t='define' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' d_oldsock='undef' d_open3='define' d_pathconf='define' d_pause='define' d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_poll='define' d_portable='define' d_printf_format_null='undef' d_procselfexe='define' d_pseudofork='undef' d_pthread_atfork='define' d_pthread_attr_setscope='define' d_pthread_yield='define' d_pwage='undef' d_pwchange='undef' d_pwclass='undef' d_pwcomment='undef' d_pwexpire='undef' d_pwgecos='define' d_pwpasswd='define' d_pwquota='undef' d_qgcvt='define' d_quad='define' d_random_r='define' d_readdir64_r='define' d_readdir='define' d_readdir_r='define' d_readlink='define' d_readv='define' d_recvmsg='define' d_rename='define' d_rewinddir='define' d_rmdir='define' d_safebcpy='undef' d_safemcpy='undef' d_sanemcmp='define' d_sbrkproto='define' d_scalbnl='define' d_sched_yield='define' d_scm_rights='define' d_seekdir='define' d_select='define' d_sem='define' d_semctl='define' d_semctl_semid_ds='define' d_semctl_semun='define' d_semget='define' d_semop='define' d_sendmsg='define' d_setegid='define' d_seteuid='define' d_setgrent='define' d_setgrent_r='undef' d_setgrps='define' d_sethent='define' d_sethostent_r='undef' d_setitimer='define' d_setlinebuf='define' d_setlocale='define' d_setlocale_r='undef' d_setnent='define' d_setnetent_r='undef' d_setpent='define' d_setpgid='define' d_setpgrp2='undef' d_setpgrp='define' d_setprior='define' d_setproctitle='undef' d_setprotoent_r='undef' d_setpwent='define' d_setpwent_r='undef' d_setregid='define' d_setresgid='define' d_setresuid='define' d_setreuid='define' d_setrgid='undef' d_setruid='undef' d_setsent='define' d_setservent_r='undef' d_setsid='define' d_setvbuf='define' d_sfio='undef' d_shm='define' d_shmat='define' d_shmatprototype='define' d_shmctl='define' d_shmdt='define' d_shmget='define' d_sigaction='define' d_signbit='define' d_sigprocmask='define' d_sigsetjmp='define' d_sitearch='define' d_snprintf='define' d_sockatmark='define' d_sockatmarkproto='define' d_socket='define' d_socklen_t='define' d_sockpair='define' d_socks5_init='undef' d_sprintf_returns_strlen='define' d_sqrtl='define' d_srand48_r='define' d_srandom_r='define' d_sresgproto='define' d_sresuproto='define' d_statblks='define' d_statfs_f_flags='undef' d_statfs_s='define' d_statvfs='define' d_stdio_cnt_lval='undef' d_stdio_ptr_lval='define' d_stdio_ptr_lval_nochange_cnt='undef' d_stdio_ptr_lval_sets_cnt='define' d_stdio_stream_array='undef' d_stdiobase='define' d_stdstdio='define' d_strchr='define' d_strcoll='define' d_strctcpy='define' d_strerrm='strerror(e)' d_strerror='define' d_strerror_r='define' d_strftime='define' d_strlcat='undef' d_strlcpy='undef' d_strtod='define' d_strtol='define' d_strtold='define' d_strtoll='define' d_strtoq='define' d_strtoul='define' d_strtoull='define' d_strtouq='define' d_strxfrm='define' d_suidsafe='undef' d_symlink='define' d_syscall='define' d_syscallproto='define' d_sysconf='define' d_sysernlst='' d_syserrlst='define' d_system='define' d_tcgetpgrp='define' d_tcsetpgrp='define' d_telldir='define' d_telldirproto='define' d_time='define' d_timegm='define' d_times='define' d_tm_tm_gmtoff='define' d_tm_tm_zone='define' d_tmpnam_r='define' d_truncate='define' d_ttyname_r='define' d_tzname='define' d_u32align='define' d_ualarm='undef' d_umask='define' d_uname='define' d_union_semun='undef' d_unordered='undef' d_unsetenv='define' d_usleep='define' d_usleepproto='define' d_ustat='define' d_vendorarch='define' d_vendorbin='define' d_vendorlib='define' d_vendorscript='define' d_vfork='undef' d_void_closedir='undef' d_voidsig='define' d_voidtty='' d_volatile='define' d_vprintf='define' d_vsnprintf='define' d_wait4='define' d_waitpid='define' d_wcstombs='define' d_wctomb='define' d_writev='define' d_xenix='undef' date='date' db_hashtype='u_int32_t' db_prefixtype='size_t' db_version_major='4' db_version_minor='8' db_version_patch='24' defvoidused='15' direntrytype='struct dirent' dlext='so' dlsrc='dl_dlopen.xs' doublesize='8' drand01='drand48()' drand48_r_proto='REENTRANT_PROTO_I_ST' dtrace='' dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IO/Compress IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap attrs mro re threads threads/shared' eagain='EAGAIN' ebcdic='undef' echo='echo' egrep='egrep' emacs='' endgrent_r_proto='0' endhostent_r_proto='0' endnetent_r_proto='0' endprotoent_r_proto='0' endpwent_r_proto='0' endservent_r_proto='0' eunicefix=':' exe_ext='' expr='expr' extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IO/Compress IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize XS/APItest XS/Typemap attrs mro re threads threads/shared Attribute/Handlers Errno Module/Pluggable Safe Test/Harness' extern_C='extern' extras='' fflushNULL='define' fflushall='undef' find='' firstmakefile='makefile' flex='' fpossize='16' fpostype='fpos_t' freetype='void' from=':' full_ar='/usr/bin/ar' full_csh='csh' full_sed='/bin/sed' gccansipedantic='' gccosandvers='' gccversion='4.4.3' getgrent_r_proto='REENTRANT_PROTO_I_SBWR' getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR' getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR' gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE' gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE' gethostent_r_proto='REENTRANT_PROTO_I_SBWRE' getlogin_r_proto='REENTRANT_PROTO_I_BW' getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE' getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE' getnetent_r_proto='REENTRANT_PROTO_I_SBWRE' getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR' getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR' getprotoent_r_proto='REENTRANT_PROTO_I_SBWR' getpwent_r_proto='REENTRANT_PROTO_I_SBWR' getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR' getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR' getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR' getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR' getservent_r_proto='REENTRANT_PROTO_I_SBWR' getspnam_r_proto='REENTRANT_PROTO_I_CSBWR' gidformat='"u"' gidsign='1' gidsize='4' gidtype='gid_t' glibpth='/usr/shlib /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib /lib64 /usr/lib64 /usr/local/lib64 ' gmake='gmake' gmtime_r_proto='REENTRANT_PROTO_S_TS' gnulibc_version='2.11.1' grep='grep' groupcat='cat /etc/group' groupstype='gid_t' gzip='gzip' h_fcntl='false' h_sysfile='true' hint='recommended' hostcat='cat /etc/hosts' html1dir=' ' html1direxp='' html3dir=' ' html3direxp='' i16size='2' i16type='short' i32size='4' i32type='int' i64size='8' i64type='long' i8size='1' i8type='signed char' i_arpainet='define' i_assert='define' i_bsdioctl='' i_crypt='define' i_db='define' i_dbm='define' i_dirent='define' i_dld='undef' i_dlfcn='define' i_fcntl='undef' i_float='define' i_fp='undef' i_fp_class='undef' i_gdbm='define' i_gdbm_ndbm='define' i_gdbmndbm='undef' i_grp='define' i_ieeefp='undef' i_inttypes='define' i_langinfo='define' i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' i_malloc='define' i_mallocmalloc='undef' i_math='define' i_memory='undef' i_mntent='define' i_ndbm='undef' i_netdb='define' i_neterrno='undef' i_netinettcp='define' i_niin='define' i_poll='define' i_prot='undef' i_pthread='define' i_pwd='define' i_rpcsvcdbm='undef' i_sfio='undef' i_sgtty='undef' i_shadow='define' i_socks='undef' i_stdarg='define' i_stddef='define' i_stdlib='define' i_string='define' i_sunmath='undef' i_sysaccess='undef' i_sysdir='define' i_sysfile='define' i_sysfilio='undef' i_sysin='undef' i_sysioctl='define' i_syslog='define' i_sysmman='define' i_sysmode='undef' i_sysmount='define' i_sysndir='undef' i_sysparam='define' i_syspoll='define' i_sysresrc='define' i_syssecrt='undef' i_sysselct='define' i_syssockio='undef' i_sysstat='define' i_sysstatfs='define' i_sysstatvfs='define' i_systime='define' i_systimek='undef' i_systimes='define' i_systypes='define' i_sysuio='define' i_sysun='define' i_sysutsname='define' i_sysvfs='define' i_syswait='define' i_termio='undef' i_termios='define' i_time='define' i_unistd='define' i_ustat='define' i_utime='define' i_values='define' i_varargs='undef' i_varhdr='stdarg.h' i_vfork='undef' ignore_versioned_solibs='y' inc_version_list='5.10.0' inc_version_list_init='"5.10.0",0' incpath='' inews='' initialinstalllocation='/usr/bin' installarchlib='/usr/lib/perl/5.10' installbin='/usr/bin' installhtml1dir='' installhtml3dir='' installman1dir='/usr/share/man/man1' installman3dir='/usr/share/man/man3' installprefix='/usr' installprefixexp='/usr' installprivlib='/usr/share/perl/5.10' installscript='/usr/bin' installsitearch='/usr/local/lib/perl/5.10.1' installsitebin='/usr/local/bin' installsitehtml1dir='' installsitehtml3dir='' installsitelib='/usr/local/share/perl/5.10.1' installsiteman1dir='/usr/local/man/man1' installsiteman3dir='/usr/local/man/man3' installsitescript='/usr/local/bin' installstyle='lib/perl5' installusrbinperl='undef' installvendorarch='/usr/lib/perl5' installvendorbin='/usr/bin' installvendorhtml1dir='' installvendorhtml3dir='' installvendorlib='/usr/share/perl5' installvendorman1dir='/usr/share/man/man1' installvendorman3dir='/usr/share/man/man3' installvendorscript='/usr/bin' intsize='4' issymlink='test -h' ivdformat='"ld"' ivsize='8' ivtype='long' known_extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IO/Compress IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs mro re threads threads/shared' ksh='' ld='cc' lddlflags='-shared -O2 -g -L/usr/local/lib -fstack-protector' ldflags=' -fstack-protector -L/usr/local/lib' ldflags_uselargefiles='' ldlibpthname='LD_LIBRARY_PATH' less='less' lib_ext='.a' libc='/lib/libc-2.11.1.so' libdb_needs_pthread='N' libperl='libperl.so.5.10.1' libpth='/usr/local/lib /lib /usr/lib /lib64 /usr/lib64' libs='-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt' libsdirs=' /usr/lib' libsfiles=' libgdbm.so libgdbm_compat.so libdb.so libdl.so libm.so libpthread.so libc.so libcrypt.so' libsfound=' /usr/lib/libgdbm.so /usr/lib/libgdbm_compat.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libpthread.so /usr/lib/libc.so /usr/lib/libcrypt.so' libspath=' /usr/local/lib /lib /usr/lib /lib64 /usr/lib64' libswanted='gdbm gdbm_compat db dl m pthread c crypt gdbm_compat' libswanted_uselargefiles='' line='' lint='' lkflags='' ln='ln' lns='/bin/ln -s' localtime_r_proto='REENTRANT_PROTO_S_TS' locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include' loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib' longdblsize='16' longlongsize='8' longsize='8' lp='' lpr='' ls='ls' lseeksize='8' lseektype='off_t' mad='undef' madlyh='' madlyobj='' madlysrc='' mail='' mailx='' make='make' make_set_make='#' mallocobj='' mallocsrc='' malloctype='void *' man1dir='/usr/share/man/man1' man1direxp='/usr/share/man/man1' man1ext='1p' man3dir='/usr/share/man/man3' man3direxp='/usr/share/man/man3' man3ext='3pm' mips_type='' mistrustnm='' mkdir='mkdir' mmaptype='void *' modetype='mode_t' more='more' multiarch='undef' mv='' myarchname='x86_64-linux' mydomain='' myhostname='localhost' myuname='linux crested 2.6.24-27-server #1 smp fri mar 12 01:23:09 utc 2010 x86_64 gnulinux ' n='-n' need_va_copy='define' netdb_hlen_type='size_t' netdb_host_type='char *' netdb_name_type='const char *' netdb_net_type='in_addr_t' nm='nm' nm_opt='' nm_so_opt='--dynamic' nonxs_ext='Attribute/Handlers Errno Module/Pluggable Safe Test/Harness' nroff='nroff' nvEUformat='"E"' nvFUformat='"F"' nvGUformat='"G"' nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0' nv_preserves_uv_bits='53' nveformat='"e"' nvfformat='"f"' nvgformat='"g"' nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' obj_ext='.o' old_pthread_create_joinable='' optimize='-O2 -g' orderlib='false' osname='linux' osvers='2.6.24-27-server' otherlibdirs=' ' package='perl5' pager='/usr/bin/sensible-pager' passcat='cat /etc/passwd' patchlevel='10' path_sep=':' perl5='/usr/bin/perl' perl='' perl_patchlevel='' perladmin='root@localhost' perllibs='-ldl -lm -lpthread -lc -lcrypt' perlpath='/usr/bin/perl' pg='pg' phostname='hostname' pidtype='pid_t' plibpth='' pmake='' pr='' prefix='/usr' prefixexp='/usr' privlib='/usr/share/perl/5.10' privlibexp='/usr/share/perl/5.10' procselfexe='"/proc/self/exe"' prototype='define' ptrsize='8' quadkind='2' quadtype='long' randbits='48' randfunc='drand48' random_r_proto='REENTRANT_PROTO_I_St' randseedtype='long' ranlib=':' rd_nodata='-1' readdir64_r_proto='REENTRANT_PROTO_I_TSR' readdir_r_proto='REENTRANT_PROTO_I_TSR' revision='5' rm='rm' rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*' rmail='' run='' runnm='false' sGMTIME_max='67768036191676799' sGMTIME_min='-62167219200' sLOCALTIME_max='67768036191676799' sLOCALTIME_min='-62167219200' sPRIEUldbl='"LE"' sPRIFUldbl='"LF"' sPRIGUldbl='"LG"' sPRIXU64='"lX"' sPRId64='"ld"' sPRIeldbl='"Le"' sPRIfldbl='"Lf"' sPRIgldbl='"Lg"' sPRIi64='"li"' sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' sSCNfldbl='"Lf"' sched_yield='sched_yield()' scriptdir='/usr/bin' scriptdirexp='/usr/bin' sed='sed' seedfunc='srand48' selectminbits='64' selecttype='fd_set *' sendmail='' setgrent_r_proto='0' sethostent_r_proto='0' setlocale_r_proto='0' setnetent_r_proto='0' setprotoent_r_proto='0' setpwent_r_proto='0' setservent_r_proto='0' sh='/bin/sh' shar='' sharpbang='#!' shmattype='void *' shortsize='2' shrpenv='' shsharp='true' sig_count='65' sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 RTMAX IOT CLD POLL UNUSED ' sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0' sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 ' sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0' sig_size='69' signal_t='void' sitearch='/usr/local/lib/perl/5.10.1' sitearchexp='/usr/local/lib/perl/5.10.1' sitebin='/usr/local/bin' sitebinexp='/usr/local/bin' sitehtml1dir='' sitehtml1direxp='' sitehtml3dir='' sitehtml3direxp='' sitelib='/usr/local/share/perl/5.10.1' sitelib_stem='' sitelibexp='/usr/local/share/perl/5.10.1' siteman1dir='/usr/local/man/man1' siteman1direxp='/usr/local/man/man1' siteman3dir='/usr/local/man/man3' siteman3direxp='/usr/local/man/man3' siteprefix='/usr/local' siteprefixexp='/usr/local' sitescript='/usr/local/bin' sitescriptexp='/usr/local/bin' sizesize='8' sizetype='size_t' sleep='' smail='' so='so' sockethdr='' socketlib='' socksizetype='socklen_t' sort='sort' spackage='Perl5' spitshell='cat' srand48_r_proto='REENTRANT_PROTO_I_LS' srandom_r_proto='REENTRANT_PROTO_I_TS' src='.' ssizetype='ssize_t' startperl='#!/usr/bin/perl' startsh='#!/bin/sh' static_ext=' ' stdchar='char' stdio_base='((fp)->_IO_read_base)' stdio_bufsiz='((fp)->_IO_read_end - (fp)->_IO_read_base)' stdio_cnt='((fp)->_IO_read_end - (fp)->_IO_read_ptr)' stdio_filbuf='' stdio_ptr='((fp)->_IO_read_ptr)' stdio_stream_array='' strerror_r_proto='REENTRANT_PROTO_B_IBW' strings='/usr/include/string.h' submit='' subversion='1' sysman='/usr/share/man/man1' tail='' tar='' targetarch='' tbl='' tee='' test='test' timeincl='/usr/include/sys/time.h /usr/include/time.h ' timetype='time_t' tmpnam_r_proto='REENTRANT_PROTO_B_B' to=':' touch='touch' tr='tr' trnl='\n' troff='' ttyname_r_proto='REENTRANT_PROTO_I_IBW' u16size='2' u16type='unsigned short' u32size='4' u32type='unsigned int' u64size='8' u64type='unsigned long' u8size='1' u8type='unsigned char' uidformat='"u"' uidsign='1' uidsize='4' uidtype='uid_t' uname='uname' uniq='uniq' uquadtype='unsigned long' use5005threads='undef' use64bitall='define' use64bitint='define' usecrosscompile='undef' usedevel='undef' usedl='define' usedtrace='undef' usefaststdio='undef' useithreads='define' uselargefiles='define' uselongdouble='undef' usemallocwrap='define' usemorebits='undef' usemultiplicity='define' usemymalloc='n' usenm='false' useopcode='true' useperlio='define' useposix='true' usereentrant='undef' userelocatableinc='undef' usesfio='false' useshrplib='true' usesitecustomize='undef' usesocks='undef' usethreads='define' usevendorprefix='define' usevfork='false' usrinc='/usr/include' uuname='' uvXUformat='"lX"' uvoformat='"lo"' uvsize='8' uvtype='unsigned long' uvuformat='"lu"' uvxformat='"lx"' vendorarch='/usr/lib/perl5' vendorarchexp='/usr/lib/perl5' vendorbin='/usr/bin' vendorbinexp='/usr/bin' vendorhtml1dir=' ' vendorhtml1direxp='' vendorhtml3dir=' ' vendorhtml3direxp='' vendorlib='/usr/share/perl5' vendorlib_stem='' vendorlibexp='/usr/share/perl5' vendorman1dir='/usr/share/man/man1' vendorman1direxp='/usr/share/man/man1' vendorman3dir='/usr/share/man/man3' vendorman3direxp='/usr/share/man/man3' vendorprefix='/usr' vendorprefixexp='/usr' vendorscript='/usr/bin' vendorscriptexp='/usr/bin' version='5.10.1' version_patchlevel_string='version 10 subversion 1' versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' yacc='yacc' yaccflags='' zcat='' zip='zip' !END! my $i = 0; foreach my $c (8,7,6,5,4,3,2) { $i |= ord($c); $i <<= 8 } $i |= ord(1); our $byteorder = join('', unpack('aaaaaaaa', pack('L!', $i))); s/(byteorder=)(['"]).*?\2/$1$2$Config::byteorder$2/m; my $config_sh_len = length $_; our $Config_SH_expanded = "\n$_" . << 'EOVIRTUAL'; ccflags_nolargefiles='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include ' ldflags_nolargefiles=' -fstack-protector -L/usr/local/lib' libs_nolargefiles='-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt' libswanted_nolargefiles='gdbm gdbm_compat db dl m pthread c crypt gdbm_compat' EOVIRTUAL eval { # do not have hairy conniptions if this isnt available require 'Config_git.pl'; $Config_SH_expanded .= $Config::Git_Data; 1; } or warn "Warning: failed to load Config_git.pl, something strange about this perl...\n"; # Search for it in the big string sub fetch_string { my($self, $key) = @_; # We only have ' delimted. my $start = index($Config_SH_expanded, "\n$key=\'"); # Start can never be -1 now, as we've rigged the long string we're # searching with an initial dummy newline. return undef if $start == -1; $start += length($key) + 3; my $value = substr($Config_SH_expanded, $start, index($Config_SH_expanded, "'\n", $start) - $start); # So we can say "if $Config{'foo'}". $value = undef if $value eq 'undef'; $self->{$key} = $value; # cache it } my $prevpos = 0; sub FIRSTKEY { $prevpos = 0; substr($Config_SH_expanded, 1, index($Config_SH_expanded, '=') - 1 ); } sub NEXTKEY { my $pos = index($Config_SH_expanded, qq('\n), $prevpos) + 2; my $len = index($Config_SH_expanded, "=", $pos) - $pos; $prevpos = $pos; $len > 0 ? substr($Config_SH_expanded, $pos, $len) : undef; } sub EXISTS { return 1 if exists($_[0]->{$_[1]}); return(index($Config_SH_expanded, "\n$_[1]='") != -1 ); } sub STORE { die "\%Config::Config is read-only\n" } *DELETE = \&STORE; *CLEAR = \&STORE; sub config_sh { substr $Config_SH_expanded, 1, $config_sh_len; } sub config_re { my $re = shift; return map { chomp; $_ } grep eval{ /^(?:$re)=/ }, split /^/, $Config_SH_expanded; } sub config_vars { # implements -V:cfgvar option (see perlrun -V:) foreach (@_) { # find optional leading, trailing colons; and query-spec my ($notag,$qry,$lncont) = m/^(:)?(.*?)(:)?$/; # flags fore and aft, # map colon-flags to print decorations my $prfx = $notag ? '': "$qry="; # tag-prefix for print my $lnend = $lncont ? ' ' : ";\n"; # line ending for print # all config-vars are by definition \w only, any \W means regex if ($qry =~ /\W/) { my @matches = config_re($qry); print map "$_$lnend", @matches ? @matches : "$qry: not found" if !$notag; print map { s/\w+=//; "$_$lnend" } @matches ? @matches : "$qry: not found" if $notag; } else { my $v = (exists $Config::Config{$qry}) ? $Config::Config{$qry} : 'UNKNOWN'; $v = 'undef' unless defined $v; print "${prfx}'${v}'$lnend"; } } } # Called by the real AUTOLOAD sub launcher { undef &AUTOLOAD; goto \&$Config::AUTOLOAD; } 1; FILE6aa0777c/DynaLoader.pm#line 1 "/usr/lib/perl/5.10/DynaLoader.pm" # Generated from DynaLoader_pm.PL package DynaLoader; # And Gandalf said: 'Many folk like to know beforehand what is to # be set on the table; but those who have laboured to prepare the # feast like to keep their secret; for wonder makes the words of # praise louder.' # (Quote from Tolkien suggested by Anno Siegel.) # # See pod text at end of file for documentation. # See also ext/DynaLoader/README in source tree for other information. # # Tim.Bunce@ig.co.uk, August 1994 BEGIN { $VERSION = '1.10'; } require AutoLoader; *AUTOLOAD = \&AutoLoader::AUTOLOAD; use Config; # enable debug/trace messages from DynaLoader perl code $dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug; # # Flags to alter dl_load_file behaviour. Assigned bits: # 0x01 make symbols available for linking later dl_load_file's. # (only known to work on Solaris 2 using dlopen(RTLD_GLOBAL)) # (ignored under VMS; effect is built-in to image linking) # # This is called as a class method $module->dl_load_flags. The # definition here will be inherited and result on "default" loading # behaviour unless a sub-class of DynaLoader defines its own version. # sub dl_load_flags { 0x00 } ($dl_dlext, $dl_so, $dlsrc) = ('so','so','dl_dlopen.xs') ; $do_expand = 0; @dl_require_symbols = (); # names of symbols we need @dl_resolve_using = (); # names of files to link with @dl_library_path = (); # path to look for files #XSLoader.pm may have added elements before we were required #@dl_shared_objects = (); # shared objects for symbols we have #@dl_librefs = (); # things we have loaded #@dl_modules = (); # Modules we have loaded # This is a fix to support DLD's unfortunate desire to relink -lc @dl_resolve_using = dl_findfile('-lc') if $dlsrc eq "dl_dld.xs"; # Initialise @dl_library_path with the 'standard' library path # for this platform as determined by Configure. push(@dl_library_path, split(' ', $Config::Config{libpth})); my $ldlibpthname = $Config::Config{ldlibpthname}; my $ldlibpthname_defined = defined $Config::Config{ldlibpthname}; my $pthsep = $Config::Config{path_sep}; # Add to @dl_library_path any extra directories we can gather from environment # during runtime. if ($ldlibpthname_defined && exists $ENV{$ldlibpthname}) { push(@dl_library_path, split(/$pthsep/, $ENV{$ldlibpthname})); } # E.g. HP-UX supports both its native SHLIB_PATH *and* LD_LIBRARY_PATH. if ($ldlibpthname_defined && $ldlibpthname ne 'LD_LIBRARY_PATH' && exists $ENV{LD_LIBRARY_PATH}) { push(@dl_library_path, split(/$pthsep/, $ENV{LD_LIBRARY_PATH})); } # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. # NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && !defined(&dl_error); if ($dl_debug) { print STDERR "DynaLoader.pm loaded (@INC, @dl_library_path)\n"; print STDERR "DynaLoader not linked into this perl\n" unless defined(&boot_DynaLoader); } 1; # End of main code sub croak { require Carp; Carp::croak(@_) } sub bootstrap_inherit { my $module = $_[0]; local *isa = *{"$module\::ISA"}; local @isa = (@isa, 'DynaLoader'); # Cannot goto due to delocalization. Will report errors on a wrong line? bootstrap(@_); } # The bootstrap function cannot be autoloaded (without complications) # so we define it here: sub bootstrap { # use local vars to enable $module.bs script to edit values local(@args) = @_; local($module) = $args[0]; local(@dirs, $file); unless ($module) { require Carp; Carp::confess("Usage: DynaLoader::bootstrap(module)"); } # A common error on platforms which don't support dynamic loading. # Since it's fatal and potentially confusing we give a detailed message. croak("Can't load module $module, dynamic loading not available in this perl.\n". " (You may need to build a new perl executable which either supports\n". " dynamic loading or has the $module module statically linked into it.)\n") unless defined(&dl_load_file); my @modparts = split(/::/,$module); my $modfname = $modparts[-1]; # Some systems have restrictions on files names for DLL's etc. # mod2fname returns appropriate file base name (typically truncated) # It may also edit @modparts if required. $modfname = &mod2fname(\@modparts) if defined &mod2fname; my $modpname = join('/',@modparts); print STDERR "DynaLoader::bootstrap for $module ", "(auto/$modpname/$modfname.$dl_dlext)\n" if $dl_debug; foreach (@INC) { my $dir = "$_/auto/$modpname"; next unless -d $dir; # skip over uninteresting directories # check for common cases to avoid autoload of dl_findfile my $try = "$dir/$modfname.$dl_dlext"; last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try); # no luck here, save dir for possible later dl_findfile search push @dirs, $dir; } # last resort, let dl_findfile have a go in all known locations $file = dl_findfile(map("-L$_",@dirs,@INC), $modfname) unless $file; croak("Can't locate loadable object for module $module in \@INC (\@INC contains: @INC)") unless $file; # wording similar to error from 'require' my $bootname = "boot_$module"; $bootname =~ s/\W/_/g; @dl_require_symbols = ($bootname); # Execute optional '.bootstrap' perl script for this module. # The .bs file can be used to configure @dl_resolve_using etc to # match the needs of the individual module on this architecture. my $bs = $file; $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library if (-s $bs) { # only read file if it's not empty print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug; eval { do $bs; }; warn "$bs: $@\n" if $@; } my $boot_symbol_ref; # Many dynamic extension loading problems will appear to come from # this section of code: XYZ failed at line 123 of DynaLoader.pm. # Often these errors are actually occurring in the initialisation # C code of the extension XS file. Perl reports the error as being # in this perl code simply because this was the last perl code # it executed. my $libref = dl_load_file($file, $module->dl_load_flags) or croak("Can't load '$file' for module $module: ".dl_error()); push(@dl_librefs,$libref); # record loaded object my @unresolved = dl_undef_symbols(); if (@unresolved) { require Carp; Carp::carp("Undefined symbols present after loading $file: @unresolved\n"); } $boot_symbol_ref = dl_find_symbol($libref, $bootname) or croak("Can't find '$bootname' symbol in $file\n"); push(@dl_modules, $module); # record loaded module boot: my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file); # See comment block above push(@dl_shared_objects, $file); # record files loaded &$xs(@args); } #sub _check_file { # private utility to handle dl_expandspec vs -f tests # my($file) = @_; # return $file if (!$do_expand && -f $file); # the common case # return $file if ( $do_expand && ($file=dl_expandspec($file))); # return undef; #} # Let autosplit and the autoloader deal with these functions: FILEc120fc56/Errno.pm#line 1 "/usr/lib/perl/5.10/Errno.pm" # # This file is auto-generated. ***ANY*** changes here will be lost # package Errno; our (@EXPORT_OK,%EXPORT_TAGS,@ISA,$VERSION,%errno,$AUTOLOAD); use Exporter (); use strict; $VERSION = "1.11"; $VERSION = eval $VERSION; @ISA = qw(Exporter); @EXPORT_OK = qw(EBADR ENOMSG ENOTSUP ESTRPIPE EADDRINUSE EL3HLT EBADF ENOTBLK ENAVAIL ECHRNG ENOTNAM ELNRNG ENOKEY EXDEV EBADE EBADSLT ECONNREFUSED ENOSTR ENONET EOVERFLOW EISCONN EFBIG EKEYREVOKED ECONNRESET EWOULDBLOCK ELIBMAX EREMOTEIO ERFKILL ENOPKG ELIBSCN EDESTADDRREQ ENOTSOCK EIO EMEDIUMTYPE EINPROGRESS ERANGE EAFNOSUPPORT EADDRNOTAVAIL EINTR EREMOTE EILSEQ ENOMEM EPIPE ENETUNREACH ENODATA EUSERS EOPNOTSUPP EPROTO EISNAM ESPIPE EALREADY ENAMETOOLONG ENOEXEC EISDIR EBADRQC EEXIST EDOTDOT ELIBBAD EOWNERDEAD ESRCH EFAULT EXFULL EDEADLOCK EAGAIN ENOPROTOOPT ENETDOWN EPROTOTYPE EL2NSYNC ENETRESET EUCLEAN EADV EROFS ESHUTDOWN EMULTIHOP EPROTONOSUPPORT ENFILE ENOLCK ECONNABORTED ECANCELED EDEADLK ESRMNT ENOLINK ETIME ENOTDIR EINVAL ENOTTY ENOANO ELOOP ENOENT EPFNOSUPPORT EBADMSG ENOMEDIUM EL2HLT EDOM EBFONT EKEYEXPIRED EMSGSIZE ENOCSI EL3RST ENOSPC EIDRM ENOBUFS ENOSYS EHOSTDOWN EBADFD ENOSR ENOTCONN ESTALE EDQUOT EKEYREJECTED EMFILE ENOTRECOVERABLE EACCES EBUSY E2BIG EPERM ELIBEXEC ETOOMANYREFS ELIBACC ENOTUNIQ ECOMM ERESTART ESOCKTNOSUPPORT EUNATCH ETIMEDOUT ENXIO ENODEV ETXTBSY EMLINK ECHILD EHOSTUNREACH EREMCHG ENOTEMPTY); %EXPORT_TAGS = ( POSIX => [qw( E2BIG EACCES EADDRINUSE EADDRNOTAVAIL EAFNOSUPPORT EAGAIN EALREADY EBADF EBUSY ECHILD ECONNABORTED ECONNREFUSED ECONNRESET EDEADLK EDESTADDRREQ EDOM EDQUOT EEXIST EFAULT EFBIG EHOSTDOWN EHOSTUNREACH EINPROGRESS EINTR EINVAL EIO EISCONN EISDIR ELOOP EMFILE EMLINK EMSGSIZE ENAMETOOLONG ENETDOWN ENETRESET ENETUNREACH ENFILE ENOBUFS ENODEV ENOENT ENOEXEC ENOLCK ENOMEM ENOPROTOOPT ENOSPC ENOSYS ENOTBLK ENOTCONN ENOTDIR ENOTEMPTY ENOTSOCK ENOTTY ENXIO EOPNOTSUPP EPERM EPFNOSUPPORT EPIPE EPROTONOSUPPORT EPROTOTYPE ERANGE EREMOTE ERESTART EROFS ESHUTDOWN ESOCKTNOSUPPORT ESPIPE ESRCH ESTALE ETIMEDOUT ETOOMANYREFS ETXTBSY EUSERS EWOULDBLOCK EXDEV )] ); sub EPERM () { 1 } sub ENOENT () { 2 } sub ESRCH () { 3 } sub EINTR () { 4 } sub EIO () { 5 } sub ENXIO () { 6 } sub E2BIG () { 7 } sub ENOEXEC () { 8 } sub EBADF () { 9 } sub ECHILD () { 10 } sub EWOULDBLOCK () { 11 } sub EAGAIN () { 11 } sub ENOMEM () { 12 } sub EACCES () { 13 } sub EFAULT () { 14 } sub ENOTBLK () { 15 } sub EBUSY () { 16 } sub EEXIST () { 17 } sub EXDEV () { 18 } sub ENODEV () { 19 } sub ENOTDIR () { 20 } sub EISDIR () { 21 } sub EINVAL () { 22 } sub ENFILE () { 23 } sub EMFILE () { 24 } sub ENOTTY () { 25 } sub ETXTBSY () { 26 } sub EFBIG () { 27 } sub ENOSPC () { 28 } sub ESPIPE () { 29 } sub EROFS () { 30 } sub EMLINK () { 31 } sub EPIPE () { 32 } sub EDOM () { 33 } sub ERANGE () { 34 } sub EDEADLOCK () { 35 } sub EDEADLK () { 35 } sub ENAMETOOLONG () { 36 } sub ENOLCK () { 37 } sub ENOSYS () { 38 } sub ENOTEMPTY () { 39 } sub ELOOP () { 40 } sub ENOMSG () { 42 } sub EIDRM () { 43 } sub ECHRNG () { 44 } sub EL2NSYNC () { 45 } sub EL3HLT () { 46 } sub EL3RST () { 47 } sub ELNRNG () { 48 } sub EUNATCH () { 49 } sub ENOCSI () { 50 } sub EL2HLT () { 51 } sub EBADE () { 52 } sub EBADR () { 53 } sub EXFULL () { 54 } sub ENOANO () { 55 } sub EBADRQC () { 56 } sub EBADSLT () { 57 } sub EBFONT () { 59 } sub ENOSTR () { 60 } sub ENODATA () { 61 } sub ETIME () { 62 } sub ENOSR () { 63 } sub ENONET () { 64 } sub ENOPKG () { 65 } sub EREMOTE () { 66 } sub ENOLINK () { 67 } sub EADV () { 68 } sub ESRMNT () { 69 } sub ECOMM () { 70 } sub EPROTO () { 71 } sub EMULTIHOP () { 72 } sub EDOTDOT () { 73 } sub EBADMSG () { 74 } sub EOVERFLOW () { 75 } sub ENOTUNIQ () { 76 } sub EBADFD () { 77 } sub EREMCHG () { 78 } sub ELIBACC () { 79 } sub ELIBBAD () { 80 } sub ELIBSCN () { 81 } sub ELIBMAX () { 82 } sub ELIBEXEC () { 83 } sub EILSEQ () { 84 } sub ERESTART () { 85 } sub ESTRPIPE () { 86 } sub EUSERS () { 87 } sub ENOTSOCK () { 88 } sub EDESTADDRREQ () { 89 } sub EMSGSIZE () { 90 } sub EPROTOTYPE () { 91 } sub ENOPROTOOPT () { 92 } sub EPROTONOSUPPORT () { 93 } sub ESOCKTNOSUPPORT () { 94 } sub ENOTSUP () { 95 } sub EOPNOTSUPP () { 95 } sub EPFNOSUPPORT () { 96 } sub EAFNOSUPPORT () { 97 } sub EADDRINUSE () { 98 } sub EADDRNOTAVAIL () { 99 } sub ENETDOWN () { 100 } sub ENETUNREACH () { 101 } sub ENETRESET () { 102 } sub ECONNABORTED () { 103 } sub ECONNRESET () { 104 } sub ENOBUFS () { 105 } sub EISCONN () { 106 } sub ENOTCONN () { 107 } sub ESHUTDOWN () { 108 } sub ETOOMANYREFS () { 109 } sub ETIMEDOUT () { 110 } sub ECONNREFUSED () { 111 } sub EHOSTDOWN () { 112 } sub EHOSTUNREACH () { 113 } sub EALREADY () { 114 } sub EINPROGRESS () { 115 } sub ESTALE () { 116 } sub EUCLEAN () { 117 } sub ENOTNAM () { 118 } sub ENAVAIL () { 119 } sub EISNAM () { 120 } sub EREMOTEIO () { 121 } sub EDQUOT () { 122 } sub ENOMEDIUM () { 123 } sub EMEDIUMTYPE () { 124 } sub ECANCELED () { 125 } sub ENOKEY () { 126 } sub EKEYEXPIRED () { 127 } sub EKEYREVOKED () { 128 } sub EKEYREJECTED () { 129 } sub EOWNERDEAD () { 130 } sub ENOTRECOVERABLE () { 131 } sub ERFKILL () { 132 } sub TIEHASH { bless [] } sub FETCH { my ($self, $errname) = @_; my $proto = prototype("Errno::$errname"); my $errno = ""; if (defined($proto) && $proto eq "") { no strict 'refs'; $errno = &$errname; $errno = 0 unless $! == $errno; } return $errno; } sub STORE { require Carp; Carp::confess("ERRNO hash is read only!"); } *CLEAR = \&STORE; *DELETE = \&STORE; sub NEXTKEY { my($k,$v); while(($k,$v) = each %Errno::) { my $proto = prototype("Errno::$k"); last if (defined($proto) && $proto eq ""); } $k } sub FIRSTKEY { my $s = scalar keys %Errno::; # initialize iterator goto &NEXTKEY; } sub EXISTS { my ($self, $errname) = @_; my $r = ref $errname; my $proto = !$r || $r eq 'CODE' ? prototype($errname) : undef; defined($proto) && $proto eq ""; } tie %!, __PACKAGE__; 1; __END__ FILE9db388f9/Fcntl.pm #line 1 "/usr/lib/perl/5.10/Fcntl.pm" package Fcntl; use strict; our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS, $AUTOLOAD); require Exporter; use XSLoader (); @ISA = qw(Exporter); BEGIN { $VERSION = "1.06"; } # Items to export into callers namespace by default # (move infrequently used names to @EXPORT_OK below) @EXPORT = qw( FD_CLOEXEC F_ALLOCSP F_ALLOCSP64 F_COMPAT F_DUP2FD F_DUPFD F_EXLCK F_FREESP F_FREESP64 F_FSYNC F_FSYNC64 F_GETFD F_GETFL F_GETLK F_GETLK64 F_GETOWN F_NODNY F_POSIX F_RDACC F_RDDNY F_RDLCK F_RWACC F_RWDNY F_SETFD F_SETFL F_SETLK F_SETLK64 F_SETLKW F_SETLKW64 F_SETOWN F_SHARE F_SHLCK F_UNLCK F_UNSHARE F_WRACC F_WRDNY F_WRLCK O_ACCMODE O_ALIAS O_APPEND O_ASYNC O_BINARY O_CREAT O_DEFER O_DIRECT O_DIRECTORY O_DSYNC O_EXCL O_EXLOCK O_LARGEFILE O_NDELAY O_NOCTTY O_NOFOLLOW O_NOINHERIT O_NONBLOCK O_RANDOM O_RAW O_RDONLY O_RDWR O_RSRC O_RSYNC O_SEQUENTIAL O_SHLOCK O_SYNC O_TEMPORARY O_TEXT O_TRUNC O_WRONLY ); # Other items we are prepared to export if requested @EXPORT_OK = qw( DN_ACCESS DN_ATTRIB DN_CREATE DN_DELETE DN_MODIFY DN_MULTISHOT DN_RENAME FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC F_GETLEASE F_GETSIG F_NOTIFY F_SETLEASE F_SETSIG LOCK_EX LOCK_MAND LOCK_NB LOCK_READ LOCK_RW LOCK_SH LOCK_UN LOCK_WRITE O_IGNORE_CTTY O_NOATIME O_NOLINK O_NOTRANS SEEK_CUR SEEK_END SEEK_SET S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT S_IREAD S_IWRITE S_IEXEC S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO S_IRUSR S_IWUSR S_IXUSR S_IRWXU S_ISUID S_ISGID S_ISVTX S_ISTXT _S_IFMT S_IFREG S_IFDIR S_IFLNK &S_ISREG &S_ISDIR &S_ISLNK &S_ISSOCK &S_ISBLK &S_ISCHR &S_ISFIFO &S_ISWHT &S_ISENFMT &S_IFMT &S_IMODE ); # Named groups of exports %EXPORT_TAGS = ( 'flock' => [qw(LOCK_SH LOCK_EX LOCK_NB LOCK_UN)], 'Fcompat' => [qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FEXCL FLARGEFILE FNDELAY FNONBLOCK FRSYNC FSYNC FTRUNC)], 'seek' => [qw(SEEK_SET SEEK_CUR SEEK_END)], 'mode' => [qw(S_ISUID S_ISGID S_ISVTX S_ISTXT _S_IFMT S_IFREG S_IFDIR S_IFLNK S_IFSOCK S_IFBLK S_IFCHR S_IFIFO S_IFWHT S_ENFMT S_IRUSR S_IWUSR S_IXUSR S_IRWXU S_IRGRP S_IWGRP S_IXGRP S_IRWXG S_IROTH S_IWOTH S_IXOTH S_IRWXO S_IREAD S_IWRITE S_IEXEC S_ISREG S_ISDIR S_ISLNK S_ISSOCK S_ISBLK S_ISCHR S_ISFIFO S_ISWHT S_ISENFMT S_IFMT S_IMODE )], ); # Force the constants to become inlined BEGIN { XSLoader::load 'Fcntl', $VERSION; } sub S_IFMT { @_ ? ( $_[0] & _S_IFMT() ) : _S_IFMT() } sub S_IMODE { $_[0] & 07777 } sub S_ISREG { ( $_[0] & _S_IFMT() ) == S_IFREG() } sub S_ISDIR { ( $_[0] & _S_IFMT() ) == S_IFDIR() } sub S_ISLNK { ( $_[0] & _S_IFMT() ) == S_IFLNK() } sub S_ISSOCK { ( $_[0] & _S_IFMT() ) == S_IFSOCK() } sub S_ISBLK { ( $_[0] & _S_IFMT() ) == S_IFBLK() } sub S_ISCHR { ( $_[0] & _S_IFMT() ) == S_IFCHR() } sub S_ISFIFO { ( $_[0] & _S_IFMT() ) == S_IFIFO() } sub S_ISWHT { ( $_[0] & _S_IFMT() ) == S_IFWHT() } sub S_ISENFMT { ( $_[0] & _S_IFMT() ) == S_IFENFMT() } sub AUTOLOAD { (my $constname = $AUTOLOAD) =~ s/.*:://; die "&Fcntl::constant not defined" if $constname eq 'constant'; my ($error, $val) = constant($constname); if ($error) { my (undef,$file,$line) = caller; die "$error at $file line $line.\n"; } no strict 'refs'; *$AUTOLOAD = sub { $val }; goto &$AUTOLOAD; } 1; FILEdc534d44/File/Glob.pm#line 1 "/usr/lib/perl/5.10/File/Glob.pm" package File::Glob; use strict; our($VERSION, @ISA, @EXPORT_OK, @EXPORT_FAIL, %EXPORT_TAGS, $AUTOLOAD, $DEFAULT_FLAGS); use XSLoader (); @ISA = qw(Exporter); # NOTE: The glob() export is only here for compatibility with 5.6.0. # csh_glob() should not be used directly, unless you know what you're doing. @EXPORT_OK = qw( csh_glob bsd_glob glob GLOB_ABEND GLOB_ALPHASORT GLOB_ALTDIRFUNC GLOB_BRACE GLOB_CSH GLOB_ERR GLOB_ERROR GLOB_LIMIT GLOB_MARK GLOB_NOCASE GLOB_NOCHECK GLOB_NOMAGIC GLOB_NOSORT GLOB_NOSPACE GLOB_QUOTE GLOB_TILDE ); %EXPORT_TAGS = ( 'glob' => [ qw( GLOB_ABEND GLOB_ALPHASORT GLOB_ALTDIRFUNC GLOB_BRACE GLOB_CSH GLOB_ERR GLOB_ERROR GLOB_LIMIT GLOB_MARK GLOB_NOCASE GLOB_NOCHECK GLOB_NOMAGIC GLOB_NOSORT GLOB_NOSPACE GLOB_QUOTE GLOB_TILDE glob bsd_glob ) ], ); $VERSION = '1.06'; sub import { require Exporter; my $i = 1; while ($i < @_) { if ($_[$i] =~ /^:(case|nocase|globally)$/) { splice(@_, $i, 1); $DEFAULT_FLAGS &= ~GLOB_NOCASE() if $1 eq 'case'; $DEFAULT_FLAGS |= GLOB_NOCASE() if $1 eq 'nocase'; if ($1 eq 'globally') { local $^W; *CORE::GLOBAL::glob = \&File::Glob::csh_glob; } next; } ++$i; } goto &Exporter::import; } sub AUTOLOAD { # This AUTOLOAD is used to 'autoload' constants from the constant() # XS function. If a constant is not found then control is passed # to the AUTOLOAD in AutoLoader. my $constname; ($constname = $AUTOLOAD) =~ s/.*:://; my ($error, $val) = constant($constname); if ($error) { require Carp; Carp::croak($error); } eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; } XSLoader::load 'File::Glob', $VERSION; # Preloaded methods go here. sub GLOB_ERROR { return (constant('GLOB_ERROR'))[1]; } sub GLOB_CSH () { GLOB_BRACE() | GLOB_NOMAGIC() | GLOB_QUOTE() | GLOB_TILDE() | GLOB_ALPHASORT() } $DEFAULT_FLAGS = GLOB_CSH(); if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos|MacOS)$/) { $DEFAULT_FLAGS |= GLOB_NOCASE(); } # Autoload methods go after =cut, and are processed by the autosplit program. sub bsd_glob { my ($pat,$flags) = @_; $flags = $DEFAULT_FLAGS if @_ < 2; return doglob($pat,$flags); } # File::Glob::glob() is deprecated because its prototype is different from # CORE::glob() (use bsd_glob() instead) sub glob { splice @_, 1; # don't pass PL_glob_index as flags! goto &bsd_glob; } ## borrowed heavily from gsar's File::DosGlob my %iter; my %entries; sub csh_glob { my $pat = shift; my $cxix = shift; my @pat; # glob without args defaults to $_ $pat = $_ unless defined $pat; # extract patterns $pat =~ s/^\s+//; # Protect against empty elements in $pat =~ s/\s+$//; # things like < *.c> and <*.c >. # These alone shouldn't trigger ParseWords. if ($pat =~ /\s/) { # XXX this is needed for compatibility with the csh # implementation in Perl. Need to support a flag # to disable this behavior. require Text::ParseWords; @pat = Text::ParseWords::parse_line('\s+',0,$pat); } # assume global context if not provided one $cxix = '_G_' unless defined $cxix; $iter{$cxix} = 0 unless exists $iter{$cxix}; # if we're just beginning, do it all first if ($iter{$cxix} == 0) { if (@pat) { $entries{$cxix} = [ map { doglob($_, $DEFAULT_FLAGS) } @pat ]; } else { $entries{$cxix} = [ doglob($pat, $DEFAULT_FLAGS) ]; } } # chuck it all out, quick or slow if (wantarray) { delete $iter{$cxix}; return @{delete $entries{$cxix}}; } else { if ($iter{$cxix} = scalar @{$entries{$cxix}}) { return shift @{$entries{$cxix}}; } else { # return undef for EOL delete $iter{$cxix}; delete $entries{$cxix}; return undef; } } } 1; __END__ FILE9479d5fa/IO.pm#line 1 "/usr/lib/perl/5.10/IO.pm" # package IO; use XSLoader (); use Carp; use strict; use warnings; our $VERSION = "1.25"; XSLoader::load 'IO', $VERSION; sub import { shift; warnings::warnif('deprecated', qq{Parameterless "use IO" deprecated}) if @_ == 0 ; my @l = @_ ? @_ : qw(Handle Seekable File Pipe Socket Dir); eval join("", map { "require IO::" . (/(\w+)/)[0] . ";\n" } @l) or croak $@; } 1; __END__ FILE16c9c1ce/IO/File.pm#line 1 "/usr/lib/perl/5.10/IO/File.pm" # package IO::File; use 5.006_001; use strict; our($VERSION, @EXPORT, @EXPORT_OK, @ISA); use Carp; use Symbol; use SelectSaver; use IO::Seekable; use File::Spec; require Exporter; @ISA = qw(IO::Handle IO::Seekable Exporter); $VERSION = "1.14"; @EXPORT = @IO::Seekable::EXPORT; eval { # Make all Fcntl O_XXX constants available for importing require Fcntl; my @O = grep /^O_/, @Fcntl::EXPORT; Fcntl->import(@O); # first we import what we want to export push(@EXPORT, @O); }; ################################################ ## Constructor ## sub new { my $type = shift; my $class = ref($type) || $type || "IO::File"; @_ >= 0 && @_ <= 3 or croak "usage: new $class [FILENAME [,MODE [,PERMS]]]"; my $fh = $class->SUPER::new(); if (@_) { $fh->open(@_) or return undef; } $fh; } ################################################ ## Open ## sub open { @_ >= 2 && @_ <= 4 or croak 'usage: $fh->open(FILENAME [,MODE [,PERMS]])'; my ($fh, $file) = @_; if (@_ > 2) { my ($mode, $perms) = @_[2, 3]; if ($mode =~ /^\d+$/) { defined $perms or $perms = 0666; return sysopen($fh, $file, $mode, $perms); } elsif ($mode =~ /:/) { return open($fh, $mode, $file) if @_ == 3; croak 'usage: $fh->open(FILENAME, IOLAYERS)'; } else { return open($fh, IO::Handle::_open_mode_string($mode), $file); } } open($fh, $file); } ################################################ ## Binmode ## sub binmode { ( @_ == 1 or @_ == 2 ) or croak 'usage $fh->binmode([LAYER])'; my($fh, $layer) = @_; return binmode $$fh unless $layer; return binmode $$fh, $layer; } 1; FILEd8a7c14b/IO/Handle.pm9#line 1 "/usr/lib/perl/5.10/IO/Handle.pm" package IO::Handle; use 5.006_001; use strict; our($VERSION, @EXPORT_OK, @ISA); use Carp; use Symbol; use SelectSaver; use IO (); # Load the XS module require Exporter; @ISA = qw(Exporter); $VERSION = "1.28"; $VERSION = eval $VERSION; @EXPORT_OK = qw( autoflush output_field_separator output_record_separator input_record_separator input_line_number format_page_number format_lines_per_page format_lines_left format_name format_top_name format_line_break_characters format_formfeed format_write print printf say getline getlines printflush flush SEEK_SET SEEK_CUR SEEK_END _IOFBF _IOLBF _IONBF ); ################################################ ## Constructors, destructors. ## sub new { my $class = ref($_[0]) || $_[0] || "IO::Handle"; @_ == 1 or croak "usage: new $class"; my $io = gensym; bless $io, $class; } sub new_from_fd { my $class = ref($_[0]) || $_[0] || "IO::Handle"; @_ == 3 or croak "usage: new_from_fd $class FD, MODE"; my $io = gensym; shift; IO::Handle::fdopen($io, @_) or return undef; bless $io, $class; } # # There is no need for DESTROY to do anything, because when the # last reference to an IO object is gone, Perl automatically # closes its associated files (if any). However, to avoid any # attempts to autoload DESTROY, we here define it to do nothing. # sub DESTROY {} ################################################ ## Open and close. ## sub _open_mode_string { my ($mode) = @_; $mode =~ /^\+?(<|>>?)$/ or $mode =~ s/^r(\+?)$/$1/ or $mode =~ s/^a(\+?)$/$1>>/ or croak "IO::Handle: bad open mode: $mode"; $mode; } sub fdopen { @_ == 3 or croak 'usage: $io->fdopen(FD, MODE)'; my ($io, $fd, $mode) = @_; local(*GLOB); if (ref($fd) && "".$fd =~ /GLOB\(/o) { # It's a glob reference; Alias it as we cannot get name of anon GLOBs my $n = qualify(*GLOB); *GLOB = *{*$fd}; $fd = $n; } elsif ($fd =~ m#^\d+$#) { # It's an FD number; prefix with "=". $fd = "=$fd"; } open($io, _open_mode_string($mode) . '&' . $fd) ? $io : undef; } sub close { @_ == 1 or croak 'usage: $io->close()'; my($io) = @_; close($io); } ################################################ ## Normal I/O functions. ## # flock # select sub opened { @_ == 1 or croak 'usage: $io->opened()'; defined fileno($_[0]); } sub fileno { @_ == 1 or croak 'usage: $io->fileno()'; fileno($_[0]); } sub getc { @_ == 1 or croak 'usage: $io->getc()'; getc($_[0]); } sub eof { @_ == 1 or croak 'usage: $io->eof()'; eof($_[0]); } sub print { @_ or croak 'usage: $io->print(ARGS)'; my $this = shift; print $this @_; } sub printf { @_ >= 2 or croak 'usage: $io->printf(FMT,[ARGS])'; my $this = shift; printf $this @_; } sub say { @_ or croak 'usage: $io->say(ARGS)'; my $this = shift; local $\ = "\n"; print $this @_; } sub getline { @_ == 1 or croak 'usage: $io->getline()'; my $this = shift; return scalar <$this>; } *gets = \&getline; # deprecated sub getlines { @_ == 1 or croak 'usage: $io->getlines()'; wantarray or croak 'Can\'t call $io->getlines in a scalar context, use $io->getline'; my $this = shift; return <$this>; } sub truncate { @_ == 2 or croak 'usage: $io->truncate(LEN)'; truncate($_[0], $_[1]); } sub read { @_ == 3 || @_ == 4 or croak 'usage: $io->read(BUF, LEN [, OFFSET])'; read($_[0], $_[1], $_[2], $_[3] || 0); } sub sysread { @_ == 3 || @_ == 4 or croak 'usage: $io->sysread(BUF, LEN [, OFFSET])'; sysread($_[0], $_[1], $_[2], $_[3] || 0); } sub write { @_ >= 2 && @_ <= 4 or croak 'usage: $io->write(BUF [, LEN [, OFFSET]])'; local($\) = ""; $_[2] = length($_[1]) unless defined $_[2]; print { $_[0] } substr($_[1], $_[3] || 0, $_[2]); } sub syswrite { @_ >= 2 && @_ <= 4 or croak 'usage: $io->syswrite(BUF [, LEN [, OFFSET]])'; if (defined($_[2])) { syswrite($_[0], $_[1], $_[2], $_[3] || 0); } else { syswrite($_[0], $_[1]); } } sub stat { @_ == 1 or croak 'usage: $io->stat()'; stat($_[0]); } ################################################ ## State modification functions. ## sub autoflush { my $old = new SelectSaver qualify($_[0], caller); my $prev = $|; $| = @_ > 1 ? $_[1] : 1; $prev; } sub output_field_separator { carp "output_field_separator is not supported on a per-handle basis" if ref($_[0]); my $prev = $,; $, = $_[1] if @_ > 1; $prev; } sub output_record_separator { carp "output_record_separator is not supported on a per-handle basis" if ref($_[0]); my $prev = $\; $\ = $_[1] if @_ > 1; $prev; } sub input_record_separator { carp "input_record_separator is not supported on a per-handle basis" if ref($_[0]); my $prev = $/; $/ = $_[1] if @_ > 1; $prev; } sub input_line_number { local $.; () = tell qualify($_[0], caller) if ref($_[0]); my $prev = $.; $. = $_[1] if @_ > 1; $prev; } sub format_page_number { my $old; $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $%; $% = $_[1] if @_ > 1; $prev; } sub format_lines_per_page { my $old; $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $=; $= = $_[1] if @_ > 1; $prev; } sub format_lines_left { my $old; $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $-; $- = $_[1] if @_ > 1; $prev; } sub format_name { my $old; $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $~; $~ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_top_name { my $old; $old = new SelectSaver qualify($_[0], caller) if ref($_[0]); my $prev = $^; $^ = qualify($_[1], caller) if @_ > 1; $prev; } sub format_line_break_characters { carp "format_line_break_characters is not supported on a per-handle basis" if ref($_[0]); my $prev = $:; $: = $_[1] if @_ > 1; $prev; } sub format_formfeed { carp "format_formfeed is not supported on a per-handle basis" if ref($_[0]); my $prev = $^L; $^L = $_[1] if @_ > 1; $prev; } sub formline { my $io = shift; my $picture = shift; local($^A) = $^A; local($\) = ""; formline($picture, @_); print $io $^A; } sub format_write { @_ < 3 || croak 'usage: $io->write( [FORMAT_NAME] )'; if (@_ == 2) { my ($io, $fmt) = @_; my $oldfmt = $io->format_name(qualify($fmt,caller)); CORE::write($io); $io->format_name($oldfmt); } else { CORE::write($_[0]); } } sub fcntl { @_ == 3 || croak 'usage: $io->fcntl( OP, VALUE );'; my ($io, $op) = @_; return fcntl($io, $op, $_[2]); } sub ioctl { @_ == 3 || croak 'usage: $io->ioctl( OP, VALUE );'; my ($io, $op) = @_; return ioctl($io, $op, $_[2]); } # this sub is for compatability with older releases of IO that used # a sub called constant to detemine if a constant existed -- GMB # # The SEEK_* and _IO?BF constants were the only constants at that time # any new code should just chech defined(&CONSTANT_NAME) sub constant { no strict 'refs'; my $name = shift; (($name =~ /^(SEEK_(SET|CUR|END)|_IO[FLN]BF)$/) && defined &{$name}) ? &{$name}() : undef; } # so that flush.pl can be deprecated sub printflush { my $io = shift; my $old; $old = new SelectSaver qualify($io, caller) if ref($io); local $| = 1; if(ref($io)) { print $io @_; } else { print @_; } } 1; FILE6d091c9e/IO/Seekable.pm#line 1 "/usr/lib/perl/5.10/IO/Seekable.pm" # package IO::Seekable; use 5.006_001; use Carp; use strict; our($VERSION, @EXPORT, @ISA); use IO::Handle (); # XXX we can't get these from IO::Handle or we'll get prototype # mismatch warnings on C :-( use Fcntl qw(SEEK_SET SEEK_CUR SEEK_END); require Exporter; @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END); @ISA = qw(Exporter); $VERSION = "1.10"; $VERSION = eval $VERSION; sub seek { @_ == 3 or croak 'usage: $io->seek(POS, WHENCE)'; seek($_[0], $_[1], $_[2]); } sub sysseek { @_ == 3 or croak 'usage: $io->sysseek(POS, WHENCE)'; sysseek($_[0], $_[1], $_[2]); } sub tell { @_ == 1 or croak 'usage: $io->tell()'; tell($_[0]); } 1; FILEd2fce79b/PerlIO/scalar.pm#line 1 "/usr/lib/perl/5.10/PerlIO/scalar.pm" package PerlIO::scalar; our $VERSION = '0.07'; use XSLoader (); XSLoader::load 'PerlIO::scalar'; 1; __END__ #line 42 FILE08fb2975/XSLoader.pm #line 1 "/usr/lib/perl/5.10/XSLoader.pm" # Generated from XSLoader.pm.PL (resolved %Config::Config value) package XSLoader; $VERSION = "0.10"; #use strict; # enable debug/trace messages from DynaLoader perl code # $dl_debug = $ENV{PERL_DL_DEBUG} || 0 unless defined $dl_debug; my $dl_dlext = 'so'; package DynaLoader; # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here. # NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) && !defined(&dl_error); package XSLoader; sub load { package DynaLoader; die q{XSLoader::load('Your::Module', $Your::Module::VERSION)} unless @_; my($module) = $_[0]; # work with static linking too my $boots = "$module\::bootstrap"; goto &$boots if defined &$boots; goto retry; my @modparts = split(/::/,$module); my $modfname = $modparts[-1]; my $modpname = join('/',@modparts); my $modlibname = (caller())[1]; my $c = @modparts; $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename my $file = "$modlibname/auto/$modpname/$modfname.$dl_dlext"; # print STDERR "XSLoader::load for $module ($file)\n" if $dl_debug; my $bs = $file; $bs =~ s/(\.\w+)?(;\d*)?$/\.bs/; # look for .bs 'beside' the library if (-s $bs) { # only read file if it's not empty # print STDERR "BS: $bs ($^O, $dlsrc)\n" if $dl_debug; eval { do $bs; }; warn "$bs: $@\n" if $@; } goto retry if not -f $file or -s $bs; my $bootname = "boot_$module"; $bootname =~ s/\W/_/g; @DynaLoader::dl_require_symbols = ($bootname); my $boot_symbol_ref; # Many dynamic extension loading problems will appear to come from # this section of code: XYZ failed at line 123 of DynaLoader.pm. # Often these errors are actually occurring in the initialisation # C code of the extension XS file. Perl reports the error as being # in this perl code simply because this was the last perl code # it executed. my $libref = dl_load_file($file, 0) or do { require Carp; Carp::croak("Can't load '$file' for module $module: " . dl_error()); }; push(@DynaLoader::dl_librefs,$libref); # record loaded object my @unresolved = dl_undef_symbols(); if (@unresolved) { require Carp; Carp::carp("Undefined symbols present after loading $file: @unresolved\n"); } $boot_symbol_ref = dl_find_symbol($libref, $bootname) or do { require Carp; Carp::croak("Can't find '$bootname' symbol in $file\n"); }; push(@DynaLoader::dl_modules, $module); # record loaded module boot: my $xs = dl_install_xsub($boots, $boot_symbol_ref, $file); # See comment block above push(@DynaLoader::dl_shared_objects, $file); # record files loaded return &$xs(@_); retry: my $bootstrap_inherit = DynaLoader->can('bootstrap_inherit') || XSLoader->can('bootstrap_inherit'); goto &$bootstrap_inherit; } # Versions of DynaLoader prior to 5.6.0 don't have this function. sub bootstrap_inherit { package DynaLoader; my $module = $_[0]; local *DynaLoader::isa = *{"$module\::ISA"}; local @DynaLoader::isa = (@DynaLoader::isa, 'DynaLoader'); # Cannot goto due to delocalization. Will report errors on a wrong line? require DynaLoader; DynaLoader::bootstrap(@_); } 1; __END__ FILE'd3064b0e/auto/DynaLoader/dl_findfile.al #line 1 "/usr/lib/perl/5.10/auto/DynaLoader/dl_findfile.al" # NOTE: Derived from ../../lib/DynaLoader.pm. # Changes made here will be lost when autosplit is run again. # See AutoSplit.pm. package DynaLoader; #line 239 "../../lib/DynaLoader.pm (autosplit into ../../lib/auto/DynaLoader/dl_findfile.al)" sub dl_findfile { # Read ext/DynaLoader/DynaLoader.doc for detailed information. # This function does not automatically consider the architecture # or the perl library auto directories. my (@args) = @_; my (@dirs, $dir); # which directories to search my (@found); # full paths to real files we have found #my $dl_ext= 'so'; # $Config::Config{'dlext'} suffix for perl extensions #my $dl_so = 'so'; # $Config::Config{'so'} suffix for shared libraries print STDERR "dl_findfile(@args)\n" if $dl_debug; # accumulate directories but process files as they appear arg: foreach(@args) { # Special fast case: full filepath requires no search if (m:/: && -f $_) { push(@found,$_); last arg unless wantarray; next; } # Deal with directories first: # Using a -L prefix is the preferred option (faster and more robust) if (m:^-L:) { s/^-L//; push(@dirs, $_); next; } # Otherwise we try to try to spot directories by a heuristic # (this is a more complicated issue than it first appears) if (m:/: && -d $_) { push(@dirs, $_); next; } # Only files should get this far... my(@names, $name); # what filenames to look for if (m:-l: ) { # convert -lname to appropriate library name s/-l//; push(@names,"lib$_.$dl_so"); push(@names,"lib$_.a"); } else { # Umm, a bare name. Try various alternatives: # these should be ordered with the most likely first push(@names,"$_.$dl_dlext") unless m/\.$dl_dlext$/o; push(@names,"$_.$dl_so") unless m/\.$dl_so$/o; push(@names,"lib$_.$dl_so") unless m:/:; push(@names,"$_.a") if !m/\.a$/ and $dlsrc eq "dl_dld.xs"; push(@names, $_); } my $dirsep = '/'; foreach $dir (@dirs, @dl_library_path) { next unless -d $dir; foreach $name (@names) { my($file) = "$dir$dirsep$name"; print STDERR " checking in $dir for $name\n" if $dl_debug; $file = ($do_expand) ? dl_expandspec($file) : (-f $file && $file); #$file = _check_file($file); if ($file) { push(@found, $file); next arg; # no need to look any further } } } } if ($dl_debug) { foreach(@dirs) { print STDERR " dl_findfile ignored non-existent directory: $_\n" unless -d $_; } print STDERR "dl_findfile found: @found\n"; } return $found[0] unless wantarray; @found; } # end of DynaLoader::dl_findfile 1; FILE96079d57/lib.pm _#line 1 "/usr/lib/perl/5.10/lib.pm" package lib; # THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL. # ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD. use Config; use strict; my $archname = $Config{archname}; my $version = $Config{version}; my @inc_version_list = reverse split / /, $Config{inc_version_list}; our @ORIG_INC = @INC; # take a handy copy of 'original' value our $VERSION = '0.62'; my $Is_MacOS = $^O eq 'MacOS'; my $Mac_FS; if ($Is_MacOS) { require File::Spec; $Mac_FS = eval { require Mac::FileSpec::Unixish }; } sub import { shift; my %names; foreach (reverse @_) { my $path = $_; # we'll be modifying it, so break the alias if ($path eq '') { require Carp; Carp::carp("Empty compile time value given to use lib"); } $path = _nativize($path); if ($path !~ /\.par$/i && -e $path && ! -d _) { require Carp; Carp::carp("Parameter to use lib must be directory, not file"); } unshift(@INC, $path); # Add any previous version directories we found at configure time foreach my $incver (@inc_version_list) { my $dir = $Is_MacOS ? File::Spec->catdir( $path, $incver ) : "$path/$incver"; unshift(@INC, $dir) if -d $dir; } # Put a corresponding archlib directory in front of $path if it # looks like $path has an archlib directory below it. my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir) = _get_dirs($path); unshift(@INC, $arch_dir) if -d $arch_auto_dir; unshift(@INC, $version_dir) if -d $version_dir; unshift(@INC, $version_arch_dir) if -d $version_arch_dir; } # remove trailing duplicates @INC = grep { ++$names{$_} == 1 } @INC; return; } sub unimport { shift; my %names; foreach (@_) { my $path = _nativize($_); my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir) = _get_dirs($path); ++$names{$path}; ++$names{$arch_dir} if -d $arch_auto_dir; ++$names{$version_dir} if -d $version_dir; ++$names{$version_arch_dir} if -d $version_arch_dir; } # Remove ALL instances of each named directory. @INC = grep { !exists $names{$_} } @INC; return; } sub _get_dirs { my($dir) = @_; my($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir); # we could use this for all platforms in the future, but leave it # Mac-only for now, until there is more time for testing it. if ($Is_MacOS) { $arch_auto_dir = File::Spec->catdir( $dir, $archname, 'auto' ); $arch_dir = File::Spec->catdir( $dir, $archname, ); $version_dir = File::Spec->catdir( $dir, $version ); $version_arch_dir = File::Spec->catdir( $dir, $version, $archname ); } else { $arch_auto_dir = "$dir/$archname/auto"; $arch_dir = "$dir/$archname"; $version_dir = "$dir/$version"; $version_arch_dir = "$dir/$version/$archname"; } return($arch_auto_dir, $arch_dir, $version_dir, $version_arch_dir); } sub _nativize { my($dir) = @_; if ($Is_MacOS && $Mac_FS && ! -d $dir) { $dir = Mac::FileSpec::Unixish::nativize($dir); $dir .= ":" unless $dir =~ /:$/; } return $dir; } 1; __END__ FILE1e51eeda/re.pmt#line 1 "/usr/lib/perl/5.10/re.pm" package re; # pragma for controlling the regex engine use strict; use warnings; our $VERSION = "0.09"; our @ISA = qw(Exporter); my @XS_FUNCTIONS = qw(regmust); my %XS_FUNCTIONS = map { $_ => 1 } @XS_FUNCTIONS; our @EXPORT_OK = (@XS_FUNCTIONS, qw(is_regexp regexp_pattern regname regnames regnames_count)); our %EXPORT_OK = map { $_ => 1 } @EXPORT_OK; # *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** # # If you modify these values see comment below! my %bitmask = ( taint => 0x00100000, # HINT_RE_TAINT eval => 0x00200000, # HINT_RE_EVAL ); # - File::Basename contains a literal for 'taint' as a fallback. If # taint is changed here, File::Basename must be updated as well. # # - ExtUtils::ParseXS uses a hardcoded # BEGIN { $^H |= 0x00200000 } # in it to allow re.xs to be built. So if 'eval' is changed here then # ExtUtils::ParseXS must be changed as well. # # *** WARNING *** WARNING *** WARNING *** WARNING *** WARNING *** sub setcolor { eval { # Ignore errors require Term::Cap; my $terminal = Tgetent Term::Cap ({OSPEED => 9600}); # Avoid warning. my $props = $ENV{PERL_RE_TC} || 'md,me,so,se,us,ue'; my @props = split /,/, $props; my $colors = join "\t", map {$terminal->Tputs($_,1)} @props; $colors =~ s/\0//g; $ENV{PERL_RE_COLORS} = $colors; }; if ($@) { $ENV{PERL_RE_COLORS} ||= qq'\t\t> <\t> <\t\t'; } } my %flags = ( COMPILE => 0x0000FF, PARSE => 0x000001, OPTIMISE => 0x000002, TRIEC => 0x000004, DUMP => 0x000008, FLAGS => 0x000010, EXECUTE => 0x00FF00, INTUIT => 0x000100, MATCH => 0x000200, TRIEE => 0x000400, EXTRA => 0xFF0000, TRIEM => 0x010000, OFFSETS => 0x020000, OFFSETSDBG => 0x040000, STATE => 0x080000, OPTIMISEM => 0x100000, STACK => 0x280000, BUFFERS => 0x400000, ); $flags{ALL} = -1 & ~($flags{OFFSETS}|$flags{OFFSETSDBG}|$flags{BUFFERS}); $flags{All} = $flags{all} = $flags{DUMP} | $flags{EXECUTE}; $flags{Extra} = $flags{EXECUTE} | $flags{COMPILE}; $flags{More} = $flags{MORE} = $flags{All} | $flags{TRIEC} | $flags{TRIEM} | $flags{STATE}; $flags{State} = $flags{DUMP} | $flags{EXECUTE} | $flags{STATE}; $flags{TRIE} = $flags{DUMP} | $flags{EXECUTE} | $flags{TRIEC}; my $installed; my $installed_error; sub _do_install { if ( ! defined($installed) ) { require XSLoader; $installed = eval { XSLoader::load('re', $VERSION) } || 0; $installed_error = $@; } } sub _load_unload { my ($on)= @_; if ($on) { _do_install(); if ( ! $installed ) { die "'re' not installed!? ($installed_error)"; } else { # We call install() every time, as if we didn't, we wouldn't # "see" any changes to the color environment var since # the last time it was called. # install() returns an integer, which if casted properly # in C resolves to a structure containing the regex # hooks. Setting it to a random integer will guarantee # segfaults. $^H{regcomp} = install(); } } else { delete $^H{regcomp}; } } sub bits { my $on = shift; my $bits = 0; unless (@_) { require Carp; Carp::carp("Useless use of \"re\" pragma"); } foreach my $idx (0..$#_){ my $s=$_[$idx]; if ($s eq 'Debug' or $s eq 'Debugcolor') { setcolor() if $s =~/color/i; ${^RE_DEBUG_FLAGS} = 0 unless defined ${^RE_DEBUG_FLAGS}; for my $idx ($idx+1..$#_) { if ($flags{$_[$idx]}) { if ($on) { ${^RE_DEBUG_FLAGS} |= $flags{$_[$idx]}; } else { ${^RE_DEBUG_FLAGS} &= ~ $flags{$_[$idx]}; } } else { require Carp; Carp::carp("Unknown \"re\" Debug flag '$_[$idx]', possible flags: ", join(", ",sort keys %flags ) ); } } _load_unload($on ? 1 : ${^RE_DEBUG_FLAGS}); last; } elsif ($s eq 'debug' or $s eq 'debugcolor') { setcolor() if $s =~/color/i; _load_unload($on); last; } elsif (exists $bitmask{$s}) { $bits |= $bitmask{$s}; } elsif ($XS_FUNCTIONS{$s}) { _do_install(); if (! $installed) { require Carp; Carp::croak("\"re\" function '$s' not available"); } require Exporter; re->export_to_level(2, 're', $s); } elsif ($EXPORT_OK{$s}) { require Exporter; re->export_to_level(2, 're', $s); } else { require Carp; Carp::carp("Unknown \"re\" subpragma '$s' (known ones are: ", join(', ', map {qq('$_')} 'debug', 'debugcolor', sort keys %bitmask), ")"); } } $bits; } sub import { shift; $^H |= bits(1, @_); } sub unimport { shift; $^H &= ~ bits(0, @_); } 1; __END__ FILEe0cf13c1/Compress/Raw/Zlib.pm:#line 1 "/usr/local/lib/perl/5.10.1/Compress/Raw/Zlib.pm" package Compress::Raw::Zlib; require 5.004 ; require Exporter; use AutoLoader; use Carp ; #use Parse::Parameters; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD); $VERSION = '2.033'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @EXPORT = qw( adler32 crc32 ZLIB_VERSION ZLIB_VERNUM DEF_WBITS OS_CODE MAX_MEM_LEVEL MAX_WBITS Z_ASCII Z_BEST_COMPRESSION Z_BEST_SPEED Z_BINARY Z_BLOCK Z_BUF_ERROR Z_DATA_ERROR Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY Z_DEFLATED Z_ERRNO Z_FILTERED Z_FIXED Z_FINISH Z_FULL_FLUSH Z_HUFFMAN_ONLY Z_MEM_ERROR Z_NEED_DICT Z_NO_COMPRESSION Z_NO_FLUSH Z_NULL Z_OK Z_PARTIAL_FLUSH Z_RLE Z_STREAM_END Z_STREAM_ERROR Z_SYNC_FLUSH Z_TREES Z_UNKNOWN Z_VERSION_ERROR WANT_GZIP WANT_GZIP_OR_ZLIB ); use constant WANT_GZIP => 16; use constant WANT_GZIP_OR_ZLIB => 32; sub AUTOLOAD { my($constname); ($constname = $AUTOLOAD) =~ s/.*:://; my ($error, $val) = constant($constname); Carp::croak $error if $error; no strict 'refs'; *{$AUTOLOAD} = sub { $val }; goto &{$AUTOLOAD}; } use constant FLAG_APPEND => 1 ; use constant FLAG_CRC => 2 ; use constant FLAG_ADLER => 4 ; use constant FLAG_CONSUME_INPUT => 8 ; use constant FLAG_LIMIT_OUTPUT => 16 ; eval { require XSLoader; XSLoader::load('Compress::Raw::Zlib', $XS_VERSION); 1; } or do { require DynaLoader; local @ISA = qw(DynaLoader); bootstrap Compress::Raw::Zlib $XS_VERSION ; }; use constant Parse_any => 0x01; use constant Parse_unsigned => 0x02; use constant Parse_signed => 0x04; use constant Parse_boolean => 0x08; use constant Parse_string => 0x10; use constant Parse_custom => 0x12; use constant Parse_store_ref => 0x100 ; use constant OFF_PARSED => 0 ; use constant OFF_TYPE => 1 ; use constant OFF_DEFAULT => 2 ; use constant OFF_FIXED => 3 ; use constant OFF_FIRST_ONLY => 4 ; use constant OFF_STICKY => 5 ; sub ParseParameters { my $level = shift || 0 ; my $sub = (caller($level + 1))[3] ; #local $Carp::CarpLevel = 1 ; my $p = new Compress::Raw::Zlib::Parameters() ; $p->parse(@_) or croak "$sub: $p->{Error}" ; return $p; } sub Compress::Raw::Zlib::Parameters::new { my $class = shift ; my $obj = { Error => '', Got => {}, } ; #return bless $obj, ref($class) || $class || __PACKAGE__ ; return bless $obj, 'Compress::Raw::Zlib::Parameters' ; } sub Compress::Raw::Zlib::Parameters::setError { my $self = shift ; my $error = shift ; my $retval = @_ ? shift : undef ; $self->{Error} = $error ; return $retval; } #sub getError #{ # my $self = shift ; # return $self->{Error} ; #} sub Compress::Raw::Zlib::Parameters::parse { my $self = shift ; my $default = shift ; my $got = $self->{Got} ; my $firstTime = keys %{ $got } == 0 ; my (@Bad) ; my @entered = () ; # Allow the options to be passed as a hash reference or # as the complete hash. if (@_ == 0) { @entered = () ; } elsif (@_ == 1) { my $href = $_[0] ; return $self->setError("Expected even number of parameters, got 1") if ! defined $href or ! ref $href or ref $href ne "HASH" ; foreach my $key (keys %$href) { push @entered, $key ; push @entered, \$href->{$key} ; } } else { my $count = @_; return $self->setError("Expected even number of parameters, got $count") if $count % 2 != 0 ; for my $i (0.. $count / 2 - 1) { push @entered, $_[2* $i] ; push @entered, \$_[2* $i+1] ; } } while (my ($key, $v) = each %$default) { croak "need 4 params [@$v]" if @$v != 4 ; my ($first_only, $sticky, $type, $value) = @$v ; my $x ; $self->_checkType($key, \$value, $type, 0, \$x) or return undef ; $key = lc $key; if ($firstTime || ! $sticky) { $got->{$key} = [0, $type, $value, $x, $first_only, $sticky] ; } $got->{$key}[OFF_PARSED] = 0 ; } for my $i (0.. @entered / 2 - 1) { my $key = $entered[2* $i] ; my $value = $entered[2* $i+1] ; #print "Key [$key] Value [$value]" ; #print defined $$value ? "[$$value]\n" : "[undef]\n"; $key =~ s/^-// ; my $canonkey = lc $key; if ($got->{$canonkey} && ($firstTime || ! $got->{$canonkey}[OFF_FIRST_ONLY] )) { my $type = $got->{$canonkey}[OFF_TYPE] ; my $s ; $self->_checkType($key, $value, $type, 1, \$s) or return undef ; #$value = $$value unless $type & Parse_store_ref ; $value = $$value ; $got->{$canonkey} = [1, $type, $value, $s] ; } else { push (@Bad, $key) } } if (@Bad) { my ($bad) = join(", ", @Bad) ; return $self->setError("unknown key value(s) @Bad") ; } return 1; } sub Compress::Raw::Zlib::Parameters::_checkType { my $self = shift ; my $key = shift ; my $value = shift ; my $type = shift ; my $validate = shift ; my $output = shift; #local $Carp::CarpLevel = $level ; #print "PARSE $type $key $value $validate $sub\n" ; if ( $type & Parse_store_ref) { #$value = $$value # if ref ${ $value } ; $$output = $value ; return 1; } $value = $$value ; if ($type & Parse_any) { $$output = $value ; return 1; } elsif ($type & Parse_unsigned) { return $self->setError("Parameter '$key' must be an unsigned int, got 'undef'") if $validate && ! defined $value ; return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") if $validate && $value !~ /^\d+$/; $$output = defined $value ? $value : 0 ; return 1; } elsif ($type & Parse_signed) { return $self->setError("Parameter '$key' must be a signed int, got 'undef'") if $validate && ! defined $value ; return $self->setError("Parameter '$key' must be a signed int, got '$value'") if $validate && $value !~ /^-?\d+$/; $$output = defined $value ? $value : 0 ; return 1 ; } elsif ($type & Parse_boolean) { return $self->setError("Parameter '$key' must be an int, got '$value'") if $validate && defined $value && $value !~ /^\d*$/; $$output = defined $value ? $value != 0 : 0 ; return 1; } elsif ($type & Parse_string) { $$output = defined $value ? $value : "" ; return 1; } $$output = $value ; return 1; } sub Compress::Raw::Zlib::Parameters::parsed { my $self = shift ; my $name = shift ; return $self->{Got}{lc $name}[OFF_PARSED] ; } sub Compress::Raw::Zlib::Parameters::value { my $self = shift ; my $name = shift ; if (@_) { $self->{Got}{lc $name}[OFF_PARSED] = 1; $self->{Got}{lc $name}[OFF_DEFAULT] = $_[0] ; $self->{Got}{lc $name}[OFF_FIXED] = $_[0] ; } return $self->{Got}{lc $name}[OFF_FIXED] ; } sub Compress::Raw::Zlib::Deflate::new { my $pkg = shift ; my ($got) = ParseParameters(0, { 'AppendOutput' => [1, 1, Parse_boolean, 0], 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], 'Dictionary' => [1, 1, Parse_any, ""], }, @_) ; croak "Compress::Raw::Zlib::Deflate::new: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; $flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; my $windowBits = $got->value('WindowBits'); $windowBits += MAX_WBITS() if ($windowBits & MAX_WBITS()) == 0 ; _deflateInit($flags, $got->value('Level'), $got->value('Method'), $windowBits, $got->value('MemLevel'), $got->value('Strategy'), $got->value('Bufsize'), $got->value('Dictionary')) ; } sub Compress::Raw::Zlib::Inflate::new { my $pkg = shift ; my ($got) = ParseParameters(0, { 'AppendOutput' => [1, 1, Parse_boolean, 0], 'LimitOutput' => [1, 1, Parse_boolean, 0], 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'ConsumeInput' => [1, 1, Parse_boolean, 1], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], 'Dictionary' => [1, 1, Parse_any, ""], }, @_) ; croak "Compress::Raw::Zlib::Inflate::new: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; $flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; $flags |= FLAG_CONSUME_INPUT if $got->value('ConsumeInput') ; $flags |= FLAG_LIMIT_OUTPUT if $got->value('LimitOutput') ; my $windowBits = $got->value('WindowBits'); $windowBits += MAX_WBITS() if ($windowBits & MAX_WBITS()) == 0 ; _inflateInit($flags, $windowBits, $got->value('Bufsize'), $got->value('Dictionary')) ; } sub Compress::Raw::Zlib::InflateScan::new { my $pkg = shift ; my ($got) = ParseParameters(0, { 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'WindowBits' => [1, 1, Parse_signed, -MAX_WBITS()], 'Dictionary' => [1, 1, Parse_any, ""], }, @_) ; croak "Compress::Raw::Zlib::InflateScan::new: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; #$flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; #$flags |= FLAG_CONSUME_INPUT if $got->value('ConsumeInput') ; _inflateScanInit($flags, $got->value('WindowBits'), $got->value('Bufsize'), '') ; } sub Compress::Raw::Zlib::inflateScanStream::createDeflateStream { my $pkg = shift ; my ($got) = ParseParameters(0, { 'AppendOutput' => [1, 1, Parse_boolean, 0], 'CRC32' => [1, 1, Parse_boolean, 0], 'ADLER32' => [1, 1, Parse_boolean, 0], 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], 'WindowBits' => [1, 1, Parse_signed, - MAX_WBITS()], 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], }, @_) ; croak "Compress::Raw::Zlib::InflateScan::createDeflateStream: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $flags = 0 ; $flags |= FLAG_APPEND if $got->value('AppendOutput') ; $flags |= FLAG_CRC if $got->value('CRC32') ; $flags |= FLAG_ADLER if $got->value('ADLER32') ; $pkg->_createDeflateStream($flags, $got->value('Level'), $got->value('Method'), $got->value('WindowBits'), $got->value('MemLevel'), $got->value('Strategy'), $got->value('Bufsize'), ) ; } sub Compress::Raw::Zlib::inflateScanStream::inflate { my $self = shift ; my $buffer = $_[1]; my $eof = $_[2]; my $status = $self->scan(@_); if ($status == Z_OK() && $_[2]) { my $byte = ' '; $status = $self->scan(\$byte, $_[1]) ; } return $status ; } sub Compress::Raw::Zlib::deflateStream::deflateParams { my $self = shift ; my ($got) = ParseParameters(0, { 'Level' => [1, 1, Parse_signed, undef], 'Strategy' => [1, 1, Parse_unsigned, undef], 'Bufsize' => [1, 1, Parse_unsigned, undef], }, @_) ; croak "Compress::Raw::Zlib::deflateParams needs Level and/or Strategy" unless $got->parsed('Level') + $got->parsed('Strategy') + $got->parsed('Bufsize'); croak "Compress::Raw::Zlib::Inflate::deflateParams: Bufsize must be >= 1, you specified " . $got->value('Bufsize') if $got->parsed('Bufsize') && $got->value('Bufsize') <= 1; my $flags = 0; $flags |= 1 if $got->parsed('Level') ; $flags |= 2 if $got->parsed('Strategy') ; $flags |= 4 if $got->parsed('Bufsize') ; $self->_deflateParams($flags, $got->value('Level'), $got->value('Strategy'), $got->value('Bufsize')); } # Autoload methods go after __END__, and are processed by the autosplit program. 1; __END__ #line 1430 FILE7a631ce0/Cwd.pmB#line 1 "/usr/local/lib/perl/5.10.1/Cwd.pm" package Cwd; #line 169 use strict; use Exporter; use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION); $VERSION = '3.31'; my $xs_version = $VERSION; $VERSION = eval $VERSION; @ISA = qw/ Exporter /; @EXPORT = qw(cwd getcwd fastcwd fastgetcwd); push @EXPORT, qw(getdcwd) if $^O eq 'MSWin32'; @EXPORT_OK = qw(chdir abs_path fast_abs_path realpath fast_realpath); # sys_cwd may keep the builtin command # All the functionality of this module may provided by builtins, # there is no sense to process the rest of the file. # The best choice may be to have this in BEGIN, but how to return from BEGIN? if ($^O eq 'os2') { local $^W = 0; *cwd = defined &sys_cwd ? \&sys_cwd : \&_os2_cwd; *getcwd = \&cwd; *fastgetcwd = \&cwd; *fastcwd = \&cwd; *fast_abs_path = \&sys_abspath if defined &sys_abspath; *abs_path = \&fast_abs_path; *realpath = \&fast_abs_path; *fast_realpath = \&fast_abs_path; return 1; } # Need to look up the feature settings on VMS. The preferred way is to use the # VMS::Feature module, but that may not be available to dual life modules. my $use_vms_feature; BEGIN { if ($^O eq 'VMS') { if (eval { local $SIG{__DIE__}; require VMS::Feature; }) { $use_vms_feature = 1; } } } # Need to look up the UNIX report mode. This may become a dynamic mode # in the future. sub _vms_unix_rpt { my $unix_rpt; if ($use_vms_feature) { $unix_rpt = VMS::Feature::current("filename_unix_report"); } else { my $env_unix_rpt = $ENV{'DECC$FILENAME_UNIX_REPORT'} || ''; $unix_rpt = $env_unix_rpt =~ /^[ET1]/i; } return $unix_rpt; } # Need to look up the EFS character set mode. This may become a dynamic # mode in the future. sub _vms_efs { my $efs; if ($use_vms_feature) { $efs = VMS::Feature::current("efs_charset"); } else { my $env_efs = $ENV{'DECC$EFS_CHARSET'} || ''; $efs = $env_efs =~ /^[ET1]/i; } return $efs; } # If loading the XS stuff doesn't work, we can fall back to pure perl eval { if ( $] >= 5.006 ) { require XSLoader; XSLoader::load( __PACKAGE__, $xs_version); } else { require DynaLoader; push @ISA, 'DynaLoader'; __PACKAGE__->bootstrap( $xs_version ); } }; # Must be after the DynaLoader stuff: $VERSION = eval $VERSION; # Big nasty table of function aliases my %METHOD_MAP = ( VMS => { cwd => '_vms_cwd', getcwd => '_vms_cwd', fastcwd => '_vms_cwd', fastgetcwd => '_vms_cwd', abs_path => '_vms_abs_path', fast_abs_path => '_vms_abs_path', }, MSWin32 => { # We assume that &_NT_cwd is defined as an XSUB or in the core. cwd => '_NT_cwd', getcwd => '_NT_cwd', fastcwd => '_NT_cwd', fastgetcwd => '_NT_cwd', abs_path => 'fast_abs_path', realpath => 'fast_abs_path', }, dos => { cwd => '_dos_cwd', getcwd => '_dos_cwd', fastgetcwd => '_dos_cwd', fastcwd => '_dos_cwd', abs_path => 'fast_abs_path', }, # QNX4. QNX6 has a $os of 'nto'. qnx => { cwd => '_qnx_cwd', getcwd => '_qnx_cwd', fastgetcwd => '_qnx_cwd', fastcwd => '_qnx_cwd', abs_path => '_qnx_abs_path', fast_abs_path => '_qnx_abs_path', }, cygwin => { getcwd => 'cwd', fastgetcwd => 'cwd', fastcwd => 'cwd', abs_path => 'fast_abs_path', realpath => 'fast_abs_path', }, epoc => { cwd => '_epoc_cwd', getcwd => '_epoc_cwd', fastgetcwd => '_epoc_cwd', fastcwd => '_epoc_cwd', abs_path => 'fast_abs_path', }, MacOS => { getcwd => 'cwd', fastgetcwd => 'cwd', fastcwd => 'cwd', abs_path => 'fast_abs_path', }, ); $METHOD_MAP{NT} = $METHOD_MAP{MSWin32}; # Find the pwd command in the expected locations. We assume these # are safe. This prevents _backtick_pwd() consulting $ENV{PATH} # so everything works under taint mode. my $pwd_cmd; foreach my $try ('/bin/pwd', '/usr/bin/pwd', '/QOpenSys/bin/pwd', # OS/400 PASE. ) { if( -x $try ) { $pwd_cmd = $try; last; } } my $found_pwd_cmd = defined($pwd_cmd); unless ($pwd_cmd) { # Isn't this wrong? _backtick_pwd() will fail if somenone has # pwd in their path but it is not /bin/pwd or /usr/bin/pwd? # See [perl #16774]. --jhi $pwd_cmd = 'pwd'; } # Lazy-load Carp sub _carp { require Carp; Carp::carp(@_) } sub _croak { require Carp; Carp::croak(@_) } # The 'natural and safe form' for UNIX (pwd may be setuid root) sub _backtick_pwd { # Localize %ENV entries in a way that won't create new hash keys my @localize = grep exists $ENV{$_}, qw(PATH IFS CDPATH ENV BASH_ENV); local @ENV{@localize}; my $cwd = `$pwd_cmd`; # Belt-and-suspenders in case someone said "undef $/". local $/ = "\n"; # `pwd` may fail e.g. if the disk is full chomp($cwd) if defined $cwd; $cwd; } # Since some ports may predefine cwd internally (e.g., NT) # we take care not to override an existing definition for cwd(). unless ($METHOD_MAP{$^O}{cwd} or defined &cwd) { # The pwd command is not available in some chroot(2)'ed environments my $sep = $Config::Config{path_sep} || ':'; my $os = $^O; # Protect $^O from tainting # Try again to find a pwd, this time searching the whole PATH. if (defined $ENV{PATH} and $os ne 'MSWin32') { # no pwd on Windows my @candidates = split($sep, $ENV{PATH}); while (!$found_pwd_cmd and @candidates) { my $candidate = shift @candidates; $found_pwd_cmd = 1 if -x "$candidate/pwd"; } } # MacOS has some special magic to make `pwd` work. if( $os eq 'MacOS' || $found_pwd_cmd ) { *cwd = \&_backtick_pwd; } else { *cwd = \&getcwd; } } if ($^O eq 'cygwin') { # We need to make sure cwd() is called with no args, because it's # got an arg-less prototype and will die if args are present. local $^W = 0; my $orig_cwd = \&cwd; *cwd = sub { &$orig_cwd() } } # set a reasonable (and very safe) default for fastgetcwd, in case it # isn't redefined later (20001212 rspier) *fastgetcwd = \&cwd; # A non-XS version of getcwd() - also used to bootstrap the perl build # process, when miniperl is running and no XS loading happens. sub _perl_getcwd { abs_path('.'); } # By John Bazik # # Usage: $cwd = &fastcwd; # # This is a faster version of getcwd. It's also more dangerous because # you might chdir out of a directory that you can't chdir back into. sub fastcwd_ { my($odev, $oino, $cdev, $cino, $tdev, $tino); my(@path, $path); local(*DIR); my($orig_cdev, $orig_cino) = stat('.'); ($cdev, $cino) = ($orig_cdev, $orig_cino); for (;;) { my $direntry; ($odev, $oino) = ($cdev, $cino); CORE::chdir('..') || return undef; ($cdev, $cino) = stat('.'); last if $odev == $cdev && $oino == $cino; opendir(DIR, '.') || return undef; for (;;) { $direntry = readdir(DIR); last unless defined $direntry; next if $direntry eq '.'; next if $direntry eq '..'; ($tdev, $tino) = lstat($direntry); last unless $tdev != $odev || $tino != $oino; } closedir(DIR); return undef unless defined $direntry; # should never happen unshift(@path, $direntry); } $path = '/' . join('/', @path); if ($^O eq 'apollo') { $path = "/".$path; } # At this point $path may be tainted (if tainting) and chdir would fail. # Untaint it then check that we landed where we started. $path =~ /^(.*)\z/s # untaint && CORE::chdir($1) or return undef; ($cdev, $cino) = stat('.'); die "Unstable directory path, current directory changed unexpectedly" if $cdev != $orig_cdev || $cino != $orig_cino; $path; } if (not defined &fastcwd) { *fastcwd = \&fastcwd_ } # Keeps track of current working directory in PWD environment var # Usage: # use Cwd 'chdir'; # chdir $newdir; my $chdir_init = 0; sub chdir_init { if ($ENV{'PWD'} and $^O ne 'os2' and $^O ne 'dos' and $^O ne 'MSWin32') { my($dd,$di) = stat('.'); my($pd,$pi) = stat($ENV{'PWD'}); if (!defined $dd or !defined $pd or $di != $pi or $dd != $pd) { $ENV{'PWD'} = cwd(); } } else { my $wd = cwd(); $wd = Win32::GetFullPathName($wd) if $^O eq 'MSWin32'; $ENV{'PWD'} = $wd; } # Strip an automounter prefix (where /tmp_mnt/foo/bar == /foo/bar) if ($^O ne 'MSWin32' and $ENV{'PWD'} =~ m|(/[^/]+(/[^/]+/[^/]+))(.*)|s) { my($pd,$pi) = stat($2); my($dd,$di) = stat($1); if (defined $pd and defined $dd and $di == $pi and $dd == $pd) { $ENV{'PWD'}="$2$3"; } } $chdir_init = 1; } sub chdir { my $newdir = @_ ? shift : ''; # allow for no arg (chdir to HOME dir) $newdir =~ s|///*|/|g unless $^O eq 'MSWin32'; chdir_init() unless $chdir_init; my $newpwd; if ($^O eq 'MSWin32') { # get the full path name *before* the chdir() $newpwd = Win32::GetFullPathName($newdir); } return 0 unless CORE::chdir $newdir; if ($^O eq 'VMS') { return $ENV{'PWD'} = $ENV{'DEFAULT'} } elsif ($^O eq 'MacOS') { return $ENV{'PWD'} = cwd(); } elsif ($^O eq 'MSWin32') { $ENV{'PWD'} = $newpwd; return 1; } if (ref $newdir eq 'GLOB') { # in case a file/dir handle is passed in $ENV{'PWD'} = cwd(); } elsif ($newdir =~ m#^/#s) { $ENV{'PWD'} = $newdir; } else { my @curdir = split(m#/#,$ENV{'PWD'}); @curdir = ('') unless @curdir; my $component; foreach $component (split(m#/#, $newdir)) { next if $component eq '.'; pop(@curdir),next if $component eq '..'; push(@curdir,$component); } $ENV{'PWD'} = join('/',@curdir) || '/'; } 1; } sub _perl_abs_path { my $start = @_ ? shift : '.'; my($dotdots, $cwd, @pst, @cst, $dir, @tst); unless (@cst = stat( $start )) { _carp("stat($start): $!"); return ''; } unless (-d _) { # Make sure we can be invoked on plain files, not just directories. # NOTE that this routine assumes that '/' is the only directory separator. my ($dir, $file) = $start =~ m{^(.*)/(.+)$} or return cwd() . '/' . $start; # Can't use "-l _" here, because the previous stat was a stat(), not an lstat(). if (-l $start) { my $link_target = readlink($start); die "Can't resolve link $start: $!" unless defined $link_target; require File::Spec; $link_target = $dir . '/' . $link_target unless File::Spec->file_name_is_absolute($link_target); return abs_path($link_target); } return $dir ? abs_path($dir) . "/$file" : "/$file"; } $cwd = ''; $dotdots = $start; do { $dotdots .= '/..'; @pst = @cst; local *PARENT; unless (opendir(PARENT, $dotdots)) { # probably a permissions issue. Try the native command. return File::Spec->rel2abs( $start, _backtick_pwd() ); } unless (@cst = stat($dotdots)) { _carp("stat($dotdots): $!"); closedir(PARENT); return ''; } if ($pst[0] == $cst[0] && $pst[1] == $cst[1]) { $dir = undef; } else { do { unless (defined ($dir = readdir(PARENT))) { _carp("readdir($dotdots): $!"); closedir(PARENT); return ''; } $tst[0] = $pst[0]+1 unless (@tst = lstat("$dotdots/$dir")) } while ($dir eq '.' || $dir eq '..' || $tst[0] != $pst[0] || $tst[1] != $pst[1]); } $cwd = (defined $dir ? "$dir" : "" ) . "/$cwd" ; closedir(PARENT); } while (defined $dir); chop($cwd) unless $cwd eq '/'; # drop the trailing / $cwd; } my $Curdir; sub fast_abs_path { local $ENV{PWD} = $ENV{PWD} || ''; # Guard against clobberage my $cwd = getcwd(); require File::Spec; my $path = @_ ? shift : ($Curdir ||= File::Spec->curdir); # Detaint else we'll explode in taint mode. This is safe because # we're not doing anything dangerous with it. ($path) = $path =~ /(.*)/; ($cwd) = $cwd =~ /(.*)/; unless (-e $path) { _croak("$path: No such file or directory"); } unless (-d _) { # Make sure we can be invoked on plain files, not just directories. my ($vol, $dir, $file) = File::Spec->splitpath($path); return File::Spec->catfile($cwd, $path) unless length $dir; if (-l $path) { my $link_target = readlink($path); die "Can't resolve link $path: $!" unless defined $link_target; $link_target = File::Spec->catpath($vol, $dir, $link_target) unless File::Spec->file_name_is_absolute($link_target); return fast_abs_path($link_target); } return $dir eq File::Spec->rootdir ? File::Spec->catpath($vol, $dir, $file) : fast_abs_path(File::Spec->catpath($vol, $dir, '')) . '/' . $file; } if (!CORE::chdir($path)) { _croak("Cannot chdir to $path: $!"); } my $realpath = getcwd(); if (! ((-d $cwd) && (CORE::chdir($cwd)))) { _croak("Cannot chdir back to $cwd: $!"); } $realpath; } # added function alias to follow principle of least surprise # based on previous aliasing. --tchrist 27-Jan-00 *fast_realpath = \&fast_abs_path; # --- PORTING SECTION --- # VMS: $ENV{'DEFAULT'} points to default directory at all times # 06-Mar-1996 Charles Bailey bailey@newman.upenn.edu # Note: Use of Cwd::chdir() causes the logical name PWD to be defined # in the process logical name table as the default device and directory # seen by Perl. This may not be the same as the default device # and directory seen by DCL after Perl exits, since the effects # the CRTL chdir() function persist only until Perl exits. sub _vms_cwd { return $ENV{'DEFAULT'}; } sub _vms_abs_path { return $ENV{'DEFAULT'} unless @_; my $path = shift; my $efs = _vms_efs; my $unix_rpt = _vms_unix_rpt; if (defined &VMS::Filespec::vmsrealpath) { my $path_unix = 0; my $path_vms = 0; $path_unix = 1 if ($path =~ m#(?<=\^)/#); $path_unix = 1 if ($path =~ /^\.\.?$/); $path_vms = 1 if ($path =~ m#[\[<\]]#); $path_vms = 1 if ($path =~ /^--?$/); my $unix_mode = $path_unix; if ($efs) { # In case of a tie, the Unix report mode decides. if ($path_vms == $path_unix) { $unix_mode = $unix_rpt; } else { $unix_mode = 0 if $path_vms; } } if ($unix_mode) { # Unix format return VMS::Filespec::unixrealpath($path); } # VMS format my $new_path = VMS::Filespec::vmsrealpath($path); # Perl expects directories to be in directory format $new_path = VMS::Filespec::pathify($new_path) if -d $path; return $new_path; } # Fallback to older algorithm if correct ones are not # available. if (-l $path) { my $link_target = readlink($path); die "Can't resolve link $path: $!" unless defined $link_target; return _vms_abs_path($link_target); } # may need to turn foo.dir into [.foo] my $pathified = VMS::Filespec::pathify($path); $path = $pathified if defined $pathified; return VMS::Filespec::rmsexpand($path); } sub _os2_cwd { $ENV{'PWD'} = `cmd /c cd`; chomp $ENV{'PWD'}; $ENV{'PWD'} =~ s:\\:/:g ; return $ENV{'PWD'}; } sub _win32_cwd { if (eval 'defined &DynaLoader::boot_DynaLoader') { $ENV{'PWD'} = Win32::GetCwd(); } else { # miniperl chomp($ENV{'PWD'} = `cd`); } $ENV{'PWD'} =~ s:\\:/:g ; return $ENV{'PWD'}; } *_NT_cwd = defined &Win32::GetCwd ? \&_win32_cwd : \&_os2_cwd; sub _dos_cwd { if (!defined &Dos::GetCwd) { $ENV{'PWD'} = `command /c cd`; chomp $ENV{'PWD'}; $ENV{'PWD'} =~ s:\\:/:g ; } else { $ENV{'PWD'} = Dos::GetCwd(); } return $ENV{'PWD'}; } sub _qnx_cwd { local $ENV{PATH} = ''; local $ENV{CDPATH} = ''; local $ENV{ENV} = ''; $ENV{'PWD'} = `/usr/bin/fullpath -t`; chomp $ENV{'PWD'}; return $ENV{'PWD'}; } sub _qnx_abs_path { local $ENV{PATH} = ''; local $ENV{CDPATH} = ''; local $ENV{ENV} = ''; my $path = @_ ? shift : '.'; local *REALPATH; defined( open(REALPATH, '-|') || exec '/usr/bin/fullpath', '-t', $path ) or die "Can't open /usr/bin/fullpath: $!"; my $realpath = ; close REALPATH; chomp $realpath; return $realpath; } sub _epoc_cwd { $ENV{'PWD'} = EPOC::getcwd(); return $ENV{'PWD'}; } # Now that all the base-level functions are set up, alias the # user-level functions to the right places if (exists $METHOD_MAP{$^O}) { my $map = $METHOD_MAP{$^O}; foreach my $name (keys %$map) { local $^W = 0; # assignments trigger 'subroutine redefined' warning no strict 'refs'; *{$name} = \&{$map->{$name}}; } } # In case the XS version doesn't load. *abs_path = \&_perl_abs_path unless defined &abs_path; *getcwd = \&_perl_getcwd unless defined &getcwd; # added function alias for those of us more # used to the libc function. --tchrist 27-Jan-00 *realpath = \&abs_path; 1; FILE919f942b/File/Spec.pm#line 1 "/usr/local/lib/perl/5.10.1/File/Spec.pm" package File::Spec; use strict; use vars qw(@ISA $VERSION); $VERSION = '3.31'; $VERSION = eval $VERSION; my %module = (MacOS => 'Mac', MSWin32 => 'Win32', os2 => 'OS2', VMS => 'VMS', epoc => 'Epoc', NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare. symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian. dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP. cygwin => 'Cygwin'); my $module = $module{$^O} || 'Unix'; require "File/Spec/$module.pm"; @ISA = ("File::Spec::$module"); 1; __END__ #line 337 FILEb04a4255/File/Spec/Unix.pm`#line 1 "/usr/local/lib/perl/5.10.1/File/Spec/Unix.pm" package File::Spec::Unix; use strict; use vars qw($VERSION); $VERSION = '3.30'; $VERSION = eval $VERSION; #line 42 sub canonpath { my ($self,$path) = @_; return unless defined $path; # Handle POSIX-style node names beginning with double slash (qnx, nto) # (POSIX says: "a pathname that begins with two successive slashes # may be interpreted in an implementation-defined manner, although # more than two leading slashes shall be treated as a single slash.") my $node = ''; my $double_slashes_special = $^O eq 'qnx' || $^O eq 'nto'; if ( $double_slashes_special && ( $path =~ s{^(//[^/]+)/?\z}{}s || $path =~ s{^(//[^/]+)/}{/}s ) ) { $node = $1; } # This used to be # $path =~ s|/+|/|g unless ($^O eq 'cygwin'); # but that made tests 29, 30, 35, 46, and 213 (as of #13272) to fail # (Mainly because trailing "" directories didn't get stripped). # Why would cygwin avoid collapsing multiple slashes into one? --jhi $path =~ s|/{2,}|/|g; # xx////xx -> xx/xx $path =~ s{(?:/\.)+(?:/|\z)}{/}g; # xx/././xx -> xx/xx $path =~ s|^(?:\./)+||s unless $path eq "./"; # ./xx -> xx $path =~ s|^/(?:\.\./)+|/|; # /../../xx -> xx $path =~ s|^/\.\.$|/|; # /.. -> / $path =~ s|/\z|| unless $path eq "/"; # xx/ -> xx return "$node$path"; } #line 82 sub catdir { my $self = shift; $self->canonpath(join('/', @_, '')); # '' because need a trailing '/' } #line 95 sub catfile { my $self = shift; my $file = $self->canonpath(pop @_); return $file unless @_; my $dir = $self->catdir(@_); $dir .= "/" unless substr($dir,-1) eq "/"; return $dir.$file; } #line 110 sub curdir { '.' } #line 118 sub devnull { '/dev/null' } #line 126 sub rootdir { '/' } #line 142 my $tmpdir; sub _tmpdir { return $tmpdir if defined $tmpdir; my $self = shift; my @dirlist = @_; { no strict 'refs'; if (${"\cTAINT"}) { # Check for taint mode on perl >= 5.8.0 require Scalar::Util; @dirlist = grep { ! Scalar::Util::tainted($_) } @dirlist; } } foreach (@dirlist) { next unless defined && -d && -w _; $tmpdir = $_; last; } $tmpdir = $self->curdir unless defined $tmpdir; $tmpdir = defined $tmpdir && $self->canonpath($tmpdir); return $tmpdir; } sub tmpdir { return $tmpdir if defined $tmpdir; $tmpdir = $_[0]->_tmpdir( $ENV{TMPDIR}, "/tmp" ); } #line 175 sub updir { '..' } #line 184 sub no_upwards { my $self = shift; return grep(!/^\.{1,2}\z/s, @_); } #line 196 sub case_tolerant { 0 } #line 208 sub file_name_is_absolute { my ($self,$file) = @_; return scalar($file =~ m:^/:s); } #line 219 sub path { return () unless exists $ENV{PATH}; my @path = split(':', $ENV{PATH}); foreach (@path) { $_ = '.' if $_ eq '' } return @path; } #line 232 sub join { my $self = shift; return $self->catfile(@_); } #line 257 sub splitpath { my ($self,$path, $nofile) = @_; my ($volume,$directory,$file) = ('','',''); if ( $nofile ) { $directory = $path; } else { $path =~ m|^ ( (?: .* / (?: \.\.?\z )? )? ) ([^/]*) |xs; $directory = $1; $file = $2; } return ($volume,$directory,$file); } #line 299 sub splitdir { return split m|/|, $_[1], -1; # Preserve trailing fields } #line 313 sub catpath { my ($self,$volume,$directory,$file) = @_; if ( $directory ne '' && $file ne '' && substr( $directory, -1 ) ne '/' && substr( $file, 0, 1 ) ne '/' ) { $directory .= "/$file" ; } else { $directory .= $file ; } return $directory ; } #line 358 sub abs2rel { my($self,$path,$base) = @_; $base = $self->_cwd() unless defined $base and length $base; ($path, $base) = map $self->canonpath($_), $path, $base; if (grep $self->file_name_is_absolute($_), $path, $base) { ($path, $base) = map $self->rel2abs($_), $path, $base; } else { # save a couple of cwd()s if both paths are relative ($path, $base) = map $self->catdir('/', $_), $path, $base; } my ($path_volume) = $self->splitpath($path, 1); my ($base_volume) = $self->splitpath($base, 1); # Can't relativize across volumes return $path unless $path_volume eq $base_volume; my $path_directories = ($self->splitpath($path, 1))[1]; my $base_directories = ($self->splitpath($base, 1))[1]; # For UNC paths, the user might give a volume like //foo/bar that # strictly speaking has no directory portion. Treat it as if it # had the root directory for that volume. if (!length($base_directories) and $self->file_name_is_absolute($base)) { $base_directories = $self->rootdir; } # Now, remove all leading components that are the same my @pathchunks = $self->splitdir( $path_directories ); my @basechunks = $self->splitdir( $base_directories ); if ($base_directories eq $self->rootdir) { shift @pathchunks; return $self->canonpath( $self->catpath('', $self->catdir( @pathchunks ), '') ); } while (@pathchunks && @basechunks && $self->_same($pathchunks[0], $basechunks[0])) { shift @pathchunks ; shift @basechunks ; } return $self->curdir unless @pathchunks || @basechunks; # $base now contains the directories the resulting relative path # must ascend out of before it can descend to $path_directory. my $result_dirs = $self->catdir( ($self->updir) x @basechunks, @pathchunks ); return $self->canonpath( $self->catpath('', $result_dirs, '') ); } sub _same { $_[1] eq $_[2]; } #line 439 sub rel2abs { my ($self,$path,$base ) = @_; # Clean up $path if ( ! $self->file_name_is_absolute( $path ) ) { # Figure out the effective $base and clean it up. if ( !defined( $base ) || $base eq '' ) { $base = $self->_cwd(); } elsif ( ! $self->file_name_is_absolute( $base ) ) { $base = $self->rel2abs( $base ) ; } else { $base = $self->canonpath( $base ) ; } # Glom them together $path = $self->catdir( $base, $path ) ; } return $self->canonpath( $path ) ; } #line 477 # Internal routine to File::Spec, no point in making this public since # it is the standard Cwd interface. Most of the platform-specific # File::Spec subclasses use this. sub _cwd { require Cwd; Cwd::getcwd(); } # Internal method to reduce xx\..\yy -> yy sub _collapse { my($fs, $path) = @_; my $updir = $fs->updir; my $curdir = $fs->curdir; my($vol, $dirs, $file) = $fs->splitpath($path); my @dirs = $fs->splitdir($dirs); pop @dirs if @dirs && $dirs[-1] eq ''; my @collapsed; foreach my $dir (@dirs) { if( $dir eq $updir and # if we have an updir @collapsed and # and something to collapse length $collapsed[-1] and # and its not the rootdir $collapsed[-1] ne $updir and # nor another updir $collapsed[-1] ne $curdir # nor the curdir ) { # then pop @collapsed; # collapse } else { # else push @collapsed, $dir; # just hang onto it } } return $fs->catpath($vol, $fs->catdir(@collapsed), $file ); } 1; FILE47bb21d8/List/Util.pmg#line 1 "/usr/local/lib/perl/5.10.1/List/Util.pm" # List::Util.pm # # Copyright (c) 1997-2009 Graham Barr . All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # # This module is normally only loaded if the XS module is not available package List::Util; use strict; use vars qw(@ISA @EXPORT_OK $VERSION $XS_VERSION $TESTING_PERL_ONLY); require Exporter; @ISA = qw(Exporter); @EXPORT_OK = qw(first min max minstr maxstr reduce sum shuffle); $VERSION = "1.23"; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; eval { # PERL_DL_NONLAZY must be false, or any errors in loading will just # cause the perl code to be tested local $ENV{PERL_DL_NONLAZY} = 0 if $ENV{PERL_DL_NONLAZY}; eval { require XSLoader; XSLoader::load('List::Util', $XS_VERSION); 1; } or do { require DynaLoader; local @ISA = qw(DynaLoader); bootstrap List::Util $XS_VERSION; }; } unless $TESTING_PERL_ONLY; if (!defined &sum) { require List::Util::PP; List::Util::PP->import; } 1; __END__ #line 234 FILEe42389e4/Scalar/Util.pm#line 1 "/usr/local/lib/perl/5.10.1/Scalar/Util.pm" # Scalar::Util.pm # # Copyright (c) 1997-2007 Graham Barr . All rights reserved. # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. package Scalar::Util; use strict; use vars qw(@ISA @EXPORT_OK $VERSION @EXPORT_FAIL); require Exporter; require List::Util; # List::Util loads the XS @ISA = qw(Exporter); @EXPORT_OK = qw(blessed dualvar reftype weaken isweak tainted readonly openhandle refaddr isvstring looks_like_number set_prototype); $VERSION = "1.23"; $VERSION = eval $VERSION; unless (defined &dualvar) { # Load Pure Perl version if XS not loaded require Scalar::Util::PP; Scalar::Util::PP->import; push @EXPORT_FAIL, qw(weaken isweak dualvar isvstring set_prototype); } sub export_fail { if (grep { /dualvar/ } @EXPORT_FAIL) { # no XS loaded my $pat = join("|", @EXPORT_FAIL); if (my ($err) = grep { /^($pat)$/ } @_ ) { require Carp; Carp::croak("$err is only available with the XS version of Scalar::Util"); } } if (grep { /^(weaken|isweak)$/ } @_ ) { require Carp; Carp::croak("Weak references are not implemented in the version of perl"); } if (grep { /^(isvstring)$/ } @_ ) { require Carp; Carp::croak("Vstrings are not implemented in the version of perl"); } @_; } sub openhandle ($) { my $fh = shift; my $rt = reftype($fh) || ''; return defined(fileno($fh)) ? $fh : undef if $rt eq 'IO'; if (reftype(\$fh) eq 'GLOB') { # handle openhandle(*DATA) $fh = \(my $tmp=$fh); } elsif ($rt ne 'GLOB') { return undef; } (tied(*$fh) or defined(fileno($fh))) ? $fh : undef; } 1; __END__ #line 284 FILE,de3174d9/auto/Compress/Raw/Zlib/autosplit.ix#line 1 "/usr/local/lib/perl/5.10.1/auto/Compress/Raw/Zlib/autosplit.ix" # Index created by AutoSplit for blib/lib/Compress/Raw/Zlib.pm # (file acts as timestamp) 1; FILE120d58cb/Archive/Zip.pmC*#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip.pm" package Archive::Zip; use strict; BEGIN { require 5.003_96; } use UNIVERSAL (); use Carp (); use Cwd (); use IO::File (); use IO::Seekable (); use Compress::Raw::Zlib (); use File::Spec (); use File::Temp (); use FileHandle (); use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; require Exporter; @ISA = qw( Exporter ); } use vars qw( $ChunkSize $ErrorHandler ); BEGIN { # This is the size we'll try to read, write, and (de)compress. # You could set it to something different if you had lots of memory # and needed more speed. $ChunkSize ||= 32768; $ErrorHandler = \&Carp::carp; } # BEGIN block is necessary here so that other modules can use the constants. use vars qw( @EXPORT_OK %EXPORT_TAGS ); BEGIN { @EXPORT_OK = ('computeCRC32'); %EXPORT_TAGS = ( CONSTANTS => [ qw( FA_MSDOS FA_UNIX GPBF_ENCRYPTED_MASK GPBF_DEFLATING_COMPRESSION_MASK GPBF_HAS_DATA_DESCRIPTOR_MASK COMPRESSION_STORED COMPRESSION_DEFLATED COMPRESSION_LEVEL_NONE COMPRESSION_LEVEL_DEFAULT COMPRESSION_LEVEL_FASTEST COMPRESSION_LEVEL_BEST_COMPRESSION IFA_TEXT_FILE_MASK IFA_TEXT_FILE IFA_BINARY_FILE ) ], MISC_CONSTANTS => [ qw( FA_AMIGA FA_VAX_VMS FA_VM_CMS FA_ATARI_ST FA_OS2_HPFS FA_MACINTOSH FA_Z_SYSTEM FA_CPM FA_TOPS20 FA_WINDOWS_NTFS FA_QDOS FA_ACORN FA_VFAT FA_MVS FA_BEOS FA_TANDEM FA_THEOS GPBF_IMPLODING_8K_SLIDING_DICTIONARY_MASK GPBF_IMPLODING_3_SHANNON_FANO_TREES_MASK GPBF_IS_COMPRESSED_PATCHED_DATA_MASK COMPRESSION_SHRUNK DEFLATING_COMPRESSION_NORMAL DEFLATING_COMPRESSION_MAXIMUM DEFLATING_COMPRESSION_FAST DEFLATING_COMPRESSION_SUPER_FAST COMPRESSION_REDUCED_1 COMPRESSION_REDUCED_2 COMPRESSION_REDUCED_3 COMPRESSION_REDUCED_4 COMPRESSION_IMPLODED COMPRESSION_TOKENIZED COMPRESSION_DEFLATED_ENHANCED COMPRESSION_PKWARE_DATA_COMPRESSION_LIBRARY_IMPLODED ) ], ERROR_CODES => [ qw( AZ_OK AZ_STREAM_END AZ_ERROR AZ_FORMAT_ERROR AZ_IO_ERROR ) ], # For Internal Use Only PKZIP_CONSTANTS => [ qw( SIGNATURE_FORMAT SIGNATURE_LENGTH LOCAL_FILE_HEADER_SIGNATURE LOCAL_FILE_HEADER_FORMAT LOCAL_FILE_HEADER_LENGTH CENTRAL_DIRECTORY_FILE_HEADER_SIGNATURE DATA_DESCRIPTOR_FORMAT DATA_DESCRIPTOR_LENGTH DATA_DESCRIPTOR_SIGNATURE DATA_DESCRIPTOR_FORMAT_NO_SIG DATA_DESCRIPTOR_LENGTH_NO_SIG CENTRAL_DIRECTORY_FILE_HEADER_FORMAT CENTRAL_DIRECTORY_FILE_HEADER_LENGTH END_OF_CENTRAL_DIRECTORY_SIGNATURE END_OF_CENTRAL_DIRECTORY_SIGNATURE_STRING END_OF_CENTRAL_DIRECTORY_FORMAT END_OF_CENTRAL_DIRECTORY_LENGTH ) ], # For Internal Use Only UTILITY_METHODS => [ qw( _error _printError _ioError _formatError _subclassResponsibility _binmode _isSeekable _newFileHandle _readSignature _asZipDirName ) ], ); # Add all the constant names and error code names to @EXPORT_OK Exporter::export_ok_tags( qw( CONSTANTS ERROR_CODES PKZIP_CONSTANTS UTILITY_METHODS MISC_CONSTANTS ) ); } # Error codes use constant AZ_OK => 0; use constant AZ_STREAM_END => 1; use constant AZ_ERROR => 2; use constant AZ_FORMAT_ERROR => 3; use constant AZ_IO_ERROR => 4; # File types # Values of Archive::Zip::Member->fileAttributeFormat() use constant FA_MSDOS => 0; use constant FA_AMIGA => 1; use constant FA_VAX_VMS => 2; use constant FA_UNIX => 3; use constant FA_VM_CMS => 4; use constant FA_ATARI_ST => 5; use constant FA_OS2_HPFS => 6; use constant FA_MACINTOSH => 7; use constant FA_Z_SYSTEM => 8; use constant FA_CPM => 9; use constant FA_TOPS20 => 10; use constant FA_WINDOWS_NTFS => 11; use constant FA_QDOS => 12; use constant FA_ACORN => 13; use constant FA_VFAT => 14; use constant FA_MVS => 15; use constant FA_BEOS => 16; use constant FA_TANDEM => 17; use constant FA_THEOS => 18; # general-purpose bit flag masks # Found in Archive::Zip::Member->bitFlag() use constant GPBF_ENCRYPTED_MASK => 1 << 0; use constant GPBF_DEFLATING_COMPRESSION_MASK => 3 << 1; use constant GPBF_HAS_DATA_DESCRIPTOR_MASK => 1 << 3; # deflating compression types, if compressionMethod == COMPRESSION_DEFLATED # ( Archive::Zip::Member->bitFlag() & GPBF_DEFLATING_COMPRESSION_MASK ) use constant DEFLATING_COMPRESSION_NORMAL => 0 << 1; use constant DEFLATING_COMPRESSION_MAXIMUM => 1 << 1; use constant DEFLATING_COMPRESSION_FAST => 2 << 1; use constant DEFLATING_COMPRESSION_SUPER_FAST => 3 << 1; # compression method # these two are the only ones supported in this module use constant COMPRESSION_STORED => 0; # file is stored (no compression) use constant COMPRESSION_DEFLATED => 8; # file is Deflated use constant COMPRESSION_LEVEL_NONE => 0; use constant COMPRESSION_LEVEL_DEFAULT => -1; use constant COMPRESSION_LEVEL_FASTEST => 1; use constant COMPRESSION_LEVEL_BEST_COMPRESSION => 9; # internal file attribute bits # Found in Archive::Zip::Member::internalFileAttributes() use constant IFA_TEXT_FILE_MASK => 1; use constant IFA_TEXT_FILE => 1; use constant IFA_BINARY_FILE => 0; # PKZIP file format miscellaneous constants (for internal use only) use constant SIGNATURE_FORMAT => "V"; use constant SIGNATURE_LENGTH => 4; # these lengths are without the signature. use constant LOCAL_FILE_HEADER_SIGNATURE => 0x04034b50; use constant LOCAL_FILE_HEADER_FORMAT => "v3 V4 v2"; use constant LOCAL_FILE_HEADER_LENGTH => 26; # PKZIP docs don't mention the signature, but Info-Zip writes it. use constant DATA_DESCRIPTOR_SIGNATURE => 0x08074b50; use constant DATA_DESCRIPTOR_FORMAT => "V3"; use constant DATA_DESCRIPTOR_LENGTH => 12; # but the signature is apparently optional. use constant DATA_DESCRIPTOR_FORMAT_NO_SIG => "V2"; use constant DATA_DESCRIPTOR_LENGTH_NO_SIG => 8; use constant CENTRAL_DIRECTORY_FILE_HEADER_SIGNATURE => 0x02014b50; use constant CENTRAL_DIRECTORY_FILE_HEADER_FORMAT => "C2 v3 V4 v5 V2"; use constant CENTRAL_DIRECTORY_FILE_HEADER_LENGTH => 42; use constant END_OF_CENTRAL_DIRECTORY_SIGNATURE => 0x06054b50; use constant END_OF_CENTRAL_DIRECTORY_SIGNATURE_STRING => pack( "V", END_OF_CENTRAL_DIRECTORY_SIGNATURE ); use constant END_OF_CENTRAL_DIRECTORY_FORMAT => "v4 V2 v"; use constant END_OF_CENTRAL_DIRECTORY_LENGTH => 18; use constant GPBF_IMPLODING_8K_SLIDING_DICTIONARY_MASK => 1 << 1; use constant GPBF_IMPLODING_3_SHANNON_FANO_TREES_MASK => 1 << 2; use constant GPBF_IS_COMPRESSED_PATCHED_DATA_MASK => 1 << 5; # the rest of these are not supported in this module use constant COMPRESSION_SHRUNK => 1; # file is Shrunk use constant COMPRESSION_REDUCED_1 => 2; # file is Reduced CF=1 use constant COMPRESSION_REDUCED_2 => 3; # file is Reduced CF=2 use constant COMPRESSION_REDUCED_3 => 4; # file is Reduced CF=3 use constant COMPRESSION_REDUCED_4 => 5; # file is Reduced CF=4 use constant COMPRESSION_IMPLODED => 6; # file is Imploded use constant COMPRESSION_TOKENIZED => 7; # reserved for Tokenizing compr. use constant COMPRESSION_DEFLATED_ENHANCED => 9; # reserved for enh. Deflating use constant COMPRESSION_PKWARE_DATA_COMPRESSION_LIBRARY_IMPLODED => 10; # Load the various required classes require Archive::Zip::Archive; require Archive::Zip::Member; require Archive::Zip::FileMember; require Archive::Zip::DirectoryMember; require Archive::Zip::ZipFileMember; require Archive::Zip::NewFileMember; require Archive::Zip::StringMember; use constant ZIPARCHIVECLASS => 'Archive::Zip::Archive'; use constant ZIPMEMBERCLASS => 'Archive::Zip::Member'; # Convenience functions sub _ISA ($$) { # Can't rely on Scalar::Util, so use the next best way local $@; !! eval { ref $_[0] and $_[0]->isa($_[1]) }; } sub _CAN ($$) { local $@; !! eval { ref $_[0] and $_[0]->can($_[1]) }; } ##################################################################### # Methods sub new { my $class = shift; return $class->ZIPARCHIVECLASS->new(@_); } sub computeCRC32 { my ( $data, $crc ); if ( ref( $_[0] ) eq 'HASH' ) { $data = $_[0]->{string}; $crc = $_[0]->{checksum}; } else { $data = shift; $data = shift if ref($data); $crc = shift; } return Compress::Raw::Zlib::crc32( $data, $crc ); } # Report or change chunk size used for reading and writing. # Also sets Zlib's default buffer size (eventually). sub setChunkSize { shift if ref( $_[0] ) eq 'Archive::Zip::Archive'; my $chunkSize = ( ref( $_[0] ) eq 'HASH' ) ? shift->{chunkSize} : shift; my $oldChunkSize = $Archive::Zip::ChunkSize; $Archive::Zip::ChunkSize = $chunkSize if ($chunkSize); return $oldChunkSize; } sub chunkSize { return $Archive::Zip::ChunkSize; } sub setErrorHandler { my $errorHandler = ( ref( $_[0] ) eq 'HASH' ) ? shift->{subroutine} : shift; $errorHandler = \&Carp::carp unless defined($errorHandler); my $oldErrorHandler = $Archive::Zip::ErrorHandler; $Archive::Zip::ErrorHandler = $errorHandler; return $oldErrorHandler; } ###################################################################### # Private utility functions (not methods). sub _printError { my $string = join ( ' ', @_, "\n" ); my $oldCarpLevel = $Carp::CarpLevel; $Carp::CarpLevel += 2; &{$ErrorHandler} ($string); $Carp::CarpLevel = $oldCarpLevel; } # This is called on format errors. sub _formatError { shift if ref( $_[0] ); _printError( 'format error:', @_ ); return AZ_FORMAT_ERROR; } # This is called on IO errors. sub _ioError { shift if ref( $_[0] ); _printError( 'IO error:', @_, ':', $! ); return AZ_IO_ERROR; } # This is called on generic errors. sub _error { shift if ref( $_[0] ); _printError( 'error:', @_ ); return AZ_ERROR; } # Called when a subclass should have implemented # something but didn't sub _subclassResponsibility { Carp::croak("subclass Responsibility\n"); } # Try to set the given file handle or object into binary mode. sub _binmode { my $fh = shift; return _CAN( $fh, 'binmode' ) ? $fh->binmode() : binmode($fh); } # Attempt to guess whether file handle is seekable. # Because of problems with Windows, this only returns true when # the file handle is a real file. sub _isSeekable { my $fh = shift; return 0 unless ref $fh; if ( _ISA($fh, 'IO::Scalar') ) { # IO::Scalar objects are brokenly-seekable return 0; } if ( _ISA($fh, 'IO::String') ) { return 1; } if ( _ISA($fh, 'IO::Seekable') ) { # Unfortunately, some things like FileHandle objects # return true for Seekable, but AREN'T!!!!! if ( _ISA($fh, 'FileHandle') ) { return 0; } else { return 1; } } if ( _CAN($fh, 'stat') ) { return -f $fh; } return ( _CAN($fh, 'seek') and _CAN($fh, 'tell') ) ? 1 : 0; } # Print to the filehandle, while making sure the pesky Perl special global # variables don't interfere. sub _print { my ($self, $fh, @data) = @_; local $\; return $fh->print(@data); } # Return an opened IO::Handle # my ( $status, fh ) = _newFileHandle( 'fileName', 'w' ); # Can take a filename, file handle, or ref to GLOB # Or, if given something that is a ref but not an IO::Handle, # passes back the same thing. sub _newFileHandle { my $fd = shift; my $status = 1; my $handle; if ( ref($fd) ) { if ( _ISA($fd, 'IO::Scalar') or _ISA($fd, 'IO::String') ) { $handle = $fd; } elsif ( _ISA($fd, 'IO::Handle') or ref($fd) eq 'GLOB' ) { $handle = IO::File->new; $status = $handle->fdopen( $fd, @_ ); } else { $handle = $fd; } } else { $handle = IO::File->new; $status = $handle->open( $fd, @_ ); } return ( $status, $handle ); } # Returns next signature from given file handle, leaves # file handle positioned afterwards. # In list context, returns ($status, $signature) # ( $status, $signature) = _readSignature( $fh, $fileName ); sub _readSignature { my $fh = shift; my $fileName = shift; my $expectedSignature = shift; # optional my $signatureData; my $bytesRead = $fh->read( $signatureData, SIGNATURE_LENGTH ); if ( $bytesRead != SIGNATURE_LENGTH ) { return _ioError("reading header signature"); } my $signature = unpack( SIGNATURE_FORMAT, $signatureData ); my $status = AZ_OK; # compare with expected signature, if any, or any known signature. if ( ( defined($expectedSignature) && $signature != $expectedSignature ) || ( !defined($expectedSignature) && $signature != CENTRAL_DIRECTORY_FILE_HEADER_SIGNATURE && $signature != LOCAL_FILE_HEADER_SIGNATURE && $signature != END_OF_CENTRAL_DIRECTORY_SIGNATURE && $signature != DATA_DESCRIPTOR_SIGNATURE ) ) { my $errmsg = sprintf( "bad signature: 0x%08x", $signature ); if ( _isSeekable($fh) ) { $errmsg .= sprintf( " at offset %d", $fh->tell() - SIGNATURE_LENGTH ); } $status = _formatError("$errmsg in file $fileName"); } return ( $status, $signature ); } # Utility method to make and open a temp file. # Will create $temp_dir if it doesn't exist. # Returns file handle and name: # # my ($fh, $name) = Archive::Zip::tempFile(); # my ($fh, $name) = Archive::Zip::tempFile('mytempdir'); # sub tempFile { my $dir = ( ref( $_[0] ) eq 'HASH' ) ? shift->{tempDir} : shift; my ( $fh, $filename ) = File::Temp::tempfile( SUFFIX => '.zip', UNLINK => 0, # we will delete it! $dir ? ( DIR => $dir ) : () ); return ( undef, undef ) unless $fh; my ( $status, $newfh ) = _newFileHandle( $fh, 'w+' ); return ( $newfh, $filename ); } # Return the normalized directory name as used in a zip file (path # separators become slashes, etc.). # Will translate internal slashes in path components (i.e. on Macs) to # underscores. Discards volume names. # When $forceDir is set, returns paths with trailing slashes (or arrays # with trailing blank members). # # If third argument is a reference, returns volume information there. # # input output # . ('.') '.' # ./a ('a') a # ./a/b ('a','b') a/b # ./a/b/ ('a','b') a/b # a/b/ ('a','b') a/b # /a/b/ ('','a','b') /a/b # c:\a\b\c.doc ('','a','b','c.doc') /a/b/c.doc # on Windoze # "i/o maps:whatever" ('i_o maps', 'whatever') "i_o maps/whatever" # on Macs sub _asZipDirName { my $name = shift; my $forceDir = shift; my $volReturn = shift; my ( $volume, $directories, $file ) = File::Spec->splitpath( File::Spec->canonpath($name), $forceDir ); $$volReturn = $volume if ( ref($volReturn) ); my @dirs = map { $_ =~ s{/}{_}g; $_ } File::Spec->splitdir($directories); if ( @dirs > 0 ) { pop (@dirs) unless $dirs[-1] } # remove empty component push ( @dirs, defined($file) ? $file : '' ); #return wantarray ? @dirs : join ( '/', @dirs ); return join ( '/', @dirs ); } # Return an absolute local name for a zip name. # Assume a directory if zip name has trailing slash. # Takes an optional volume name in FS format (like 'a:'). # sub _asLocalName { my $name = shift; # zip format my $volume = shift; $volume = '' unless defined($volume); # local FS format my @paths = split ( /\//, $name ); my $filename = pop (@paths); $filename = '' unless defined($filename); my $localDirs = @paths ? File::Spec->catdir(@paths) : ''; my $localName = File::Spec->catpath( $volume, $localDirs, $filename ); unless ( $volume ) { $localName = File::Spec->rel2abs( $localName, Cwd::getcwd() ); } return $localName; } 1; __END__ #line 2060 FILE3b4cc6d8/Archive/Zip/Archive.pms#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/Archive.pm" package Archive::Zip::Archive; # Represents a generic ZIP archive use strict; use File::Path; use File::Find (); use File::Spec (); use File::Copy (); use File::Basename; use Cwd; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw( Archive::Zip ); } use Archive::Zip qw( :CONSTANTS :ERROR_CODES :PKZIP_CONSTANTS :UTILITY_METHODS ); # Note that this returns undef on read errors, else new zip object. sub new { my $class = shift; my $self = bless( { 'diskNumber' => 0, 'diskNumberWithStartOfCentralDirectory' => 0, 'numberOfCentralDirectoriesOnThisDisk' => 0, # shld be # of members 'numberOfCentralDirectories' => 0, # shld be # of members 'centralDirectorySize' => 0, # must re-compute on write 'centralDirectoryOffsetWRTStartingDiskNumber' => 0, # must re-compute 'writeEOCDOffset' => 0, 'writeCentralDirectoryOffset' => 0, 'zipfileComment' => '', 'eocdOffset' => 0, 'fileName' => '' }, $class ); $self->{'members'} = []; my $fileName = ( ref( $_[0] ) eq 'HASH' ) ? shift->{filename} : shift; if ($fileName) { my $status = $self->read($fileName); return $status == AZ_OK ? $self : undef; } return $self; } sub storeSymbolicLink { my $self = shift; $self->{'storeSymbolicLink'} = shift; } sub members { @{ shift->{'members'} }; } sub numberOfMembers { scalar( shift->members() ); } sub memberNames { my $self = shift; return map { $_->fileName() } $self->members(); } # return ref to member with given name or undef sub memberNamed { my $self = shift; my $fileName = ( ref( $_[0] ) eq 'HASH' ) ? shift->{zipName} : shift; foreach my $member ( $self->members() ) { return $member if $member->fileName() eq $fileName; } return undef; } sub membersMatching { my $self = shift; my $pattern = ( ref( $_[0] ) eq 'HASH' ) ? shift->{regex} : shift; return grep { $_->fileName() =~ /$pattern/ } $self->members(); } sub diskNumber { shift->{'diskNumber'}; } sub diskNumberWithStartOfCentralDirectory { shift->{'diskNumberWithStartOfCentralDirectory'}; } sub numberOfCentralDirectoriesOnThisDisk { shift->{'numberOfCentralDirectoriesOnThisDisk'}; } sub numberOfCentralDirectories { shift->{'numberOfCentralDirectories'}; } sub centralDirectorySize { shift->{'centralDirectorySize'}; } sub centralDirectoryOffsetWRTStartingDiskNumber { shift->{'centralDirectoryOffsetWRTStartingDiskNumber'}; } sub zipfileComment { my $self = shift; my $comment = $self->{'zipfileComment'}; if (@_) { my $new_comment = ( ref( $_[0] ) eq 'HASH' ) ? shift->{comment} : shift; $self->{'zipfileComment'} = pack( 'C0a*', $new_comment ); # avoid unicode } return $comment; } sub eocdOffset { shift->{'eocdOffset'}; } # Return the name of the file last read. sub fileName { shift->{'fileName'}; } sub removeMember { my $self = shift; my $member = ( ref( $_[0] ) eq 'HASH' ) ? shift->{memberOrZipName} : shift; $member = $self->memberNamed($member) unless ref($member); return undef unless $member; my @newMembers = grep { $_ != $member } $self->members(); $self->{'members'} = \@newMembers; return $member; } sub replaceMember { my $self = shift; my ( $oldMember, $newMember ); if ( ref( $_[0] ) eq 'HASH' ) { $oldMember = $_[0]->{memberOrZipName}; $newMember = $_[0]->{newMember}; } else { ( $oldMember, $newMember ) = @_; } $oldMember = $self->memberNamed($oldMember) unless ref($oldMember); return undef unless $oldMember; return undef unless $newMember; my @newMembers = map { ( $_ == $oldMember ) ? $newMember : $_ } $self->members(); $self->{'members'} = \@newMembers; return $oldMember; } sub extractMember { my $self = shift; my ( $member, $name ); if ( ref( $_[0] ) eq 'HASH' ) { $member = $_[0]->{memberOrZipName}; $name = $_[0]->{name}; } else { ( $member, $name ) = @_; } $member = $self->memberNamed($member) unless ref($member); return _error('member not found') unless $member; my $originalSize = $member->compressedSize(); my ( $volumeName, $dirName, $fileName ); if ( defined($name) ) { ( $volumeName, $dirName, $fileName ) = File::Spec->splitpath($name); $dirName = File::Spec->catpath( $volumeName, $dirName, '' ); } else { $name = $member->fileName(); ( $dirName = $name ) =~ s{[^/]*$}{}; $dirName = Archive::Zip::_asLocalName($dirName); $name = Archive::Zip::_asLocalName($name); } if ( $dirName && !-d $dirName ) { mkpath($dirName); return _ioError("can't create dir $dirName") if ( !-d $dirName ); } my $rc = $member->extractToFileNamed( $name, @_ ); # TODO refactor this fix into extractToFileNamed() $member->{'compressedSize'} = $originalSize; return $rc; } sub extractMemberWithoutPaths { my $self = shift; my ( $member, $name ); if ( ref( $_[0] ) eq 'HASH' ) { $member = $_[0]->{memberOrZipName}; $name = $_[0]->{name}; } else { ( $member, $name ) = @_; } $member = $self->memberNamed($member) unless ref($member); return _error('member not found') unless $member; my $originalSize = $member->compressedSize(); return AZ_OK if $member->isDirectory(); unless ($name) { $name = $member->fileName(); $name =~ s{.*/}{}; # strip off directories, if any $name = Archive::Zip::_asLocalName($name); } my $rc = $member->extractToFileNamed( $name, @_ ); $member->{'compressedSize'} = $originalSize; return $rc; } sub addMember { my $self = shift; my $newMember = ( ref( $_[0] ) eq 'HASH' ) ? shift->{member} : shift; push( @{ $self->{'members'} }, $newMember ) if $newMember; return $newMember; } sub addFile { my $self = shift; my ( $fileName, $newName, $compressionLevel ); if ( ref( $_[0] ) eq 'HASH' ) { $fileName = $_[0]->{filename}; $newName = $_[0]->{zipName}; $compressionLevel = $_[0]->{compressionLevel}; } else { ( $fileName, $newName, $compressionLevel ) = @_; } my $newMember = $self->ZIPMEMBERCLASS->newFromFile( $fileName, $newName ); $newMember->desiredCompressionLevel($compressionLevel); if ( $self->{'storeSymbolicLink'} && -l $fileName ) { my $newMember = $self->ZIPMEMBERCLASS->newFromString(readlink $fileName, $newName); # For symbolic links, External File Attribute is set to 0xA1FF0000 by Info-ZIP $newMember->{'externalFileAttributes'} = 0xA1FF0000; $self->addMember($newMember); } else { $self->addMember($newMember); } return $newMember; } sub addString { my $self = shift; my ( $stringOrStringRef, $name, $compressionLevel ); if ( ref( $_[0] ) eq 'HASH' ) { $stringOrStringRef = $_[0]->{string}; $name = $_[0]->{zipName}; $compressionLevel = $_[0]->{compressionLevel}; } else { ( $stringOrStringRef, $name, $compressionLevel ) = @_;; } my $newMember = $self->ZIPMEMBERCLASS->newFromString( $stringOrStringRef, $name ); $newMember->desiredCompressionLevel($compressionLevel); return $self->addMember($newMember); } sub addDirectory { my $self = shift; my ( $name, $newName ); if ( ref( $_[0] ) eq 'HASH' ) { $name = $_[0]->{directoryName}; $newName = $_[0]->{zipName}; } else { ( $name, $newName ) = @_; } my $newMember = $self->ZIPMEMBERCLASS->newDirectoryNamed( $name, $newName ); if ( $self->{'storeSymbolicLink'} && -l $name ) { my $link = readlink $name; ( $newName =~ s{/$}{} ) if $newName; # Strip trailing / my $newMember = $self->ZIPMEMBERCLASS->newFromString($link, $newName); # For symbolic links, External File Attribute is set to 0xA1FF0000 by Info-ZIP $newMember->{'externalFileAttributes'} = 0xA1FF0000; $self->addMember($newMember); } else { $self->addMember($newMember); } return $newMember; } # add either a file or a directory. sub addFileOrDirectory { my $self = shift; my ( $name, $newName, $compressionLevel ); if ( ref( $_[0] ) eq 'HASH' ) { $name = $_[0]->{name}; $newName = $_[0]->{zipName}; $compressionLevel = $_[0]->{compressionLevel}; } else { ( $name, $newName, $compressionLevel ) = @_; } $name =~ s{/$}{}; if ( $newName ) { $newName =~ s{/$}{}; } else { $newName = $name; } if ( -f $name ) { return $self->addFile( $name, $newName, $compressionLevel ); } elsif ( -d $name ) { return $self->addDirectory( $name, $newName ); } else { return _error("$name is neither a file nor a directory"); } } sub contents { my $self = shift; my ( $member, $newContents ); if ( ref( $_[0] ) eq 'HASH' ) { $member = $_[0]->{memberOrZipName}; $newContents = $_[0]->{contents}; } else { ( $member, $newContents ) = @_; } return _error('No member name given') unless $member; $member = $self->memberNamed($member) unless ref($member); return undef unless $member; return $member->contents($newContents); } sub writeToFileNamed { my $self = shift; my $fileName = ( ref( $_[0] ) eq 'HASH' ) ? shift->{filename} : shift; # local FS format foreach my $member ( $self->members() ) { if ( $member->_usesFileNamed($fileName) ) { return _error( "$fileName is needed by member " . $member->fileName() . "; consider using overwrite() or overwriteAs() instead." ); } } my ( $status, $fh ) = _newFileHandle( $fileName, 'w' ); return _ioError("Can't open $fileName for write") unless $status; my $retval = $self->writeToFileHandle( $fh, 1 ); $fh->close(); $fh = undef; return $retval; } # It is possible to write data to the FH before calling this, # perhaps to make a self-extracting archive. sub writeToFileHandle { my $self = shift; my ( $fh, $fhIsSeekable ); if ( ref( $_[0] ) eq 'HASH' ) { $fh = $_[0]->{fileHandle}; $fhIsSeekable = exists( $_[0]->{seek} ) ? $_[0]->{seek} : _isSeekable($fh); } else { $fh = shift; $fhIsSeekable = @_ ? shift : _isSeekable($fh); } return _error('No filehandle given') unless $fh; return _ioError('filehandle not open') unless $fh->opened(); _binmode($fh); # Find out where the current position is. my $offset = $fhIsSeekable ? $fh->tell() : 0; $offset = 0 if $offset < 0; foreach my $member ( $self->members() ) { my $retval = $member->_writeToFileHandle( $fh, $fhIsSeekable, $offset ); $member->endRead(); return $retval if $retval != AZ_OK; $offset += $member->_localHeaderSize() + $member->_writeOffset(); $offset += $member->hasDataDescriptor() ? DATA_DESCRIPTOR_LENGTH + SIGNATURE_LENGTH : 0; # changed this so it reflects the last successful position $self->{'writeCentralDirectoryOffset'} = $offset; } return $self->writeCentralDirectory($fh); } # Write zip back to the original file, # as safely as possible. # Returns AZ_OK if successful. sub overwrite { my $self = shift; return $self->overwriteAs( $self->{'fileName'} ); } # Write zip to the specified file, # as safely as possible. # Returns AZ_OK if successful. sub overwriteAs { my $self = shift; my $zipName = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{filename} : shift; return _error("no filename in overwriteAs()") unless defined($zipName); my ( $fh, $tempName ) = Archive::Zip::tempFile(); return _error( "Can't open temp file", $! ) unless $fh; ( my $backupName = $zipName ) =~ s{(\.[^.]*)?$}{.zbk}; my $status = $self->writeToFileHandle($fh); $fh->close(); $fh = undef; if ( $status != AZ_OK ) { unlink($tempName); _printError("Can't write to $tempName"); return $status; } my $err; # rename the zip if ( -f $zipName && !rename( $zipName, $backupName ) ) { $err = $!; unlink($tempName); return _error( "Can't rename $zipName as $backupName", $err ); } # move the temp to the original name (possibly copying) unless ( File::Copy::move( $tempName, $zipName ) ) { $err = $!; rename( $backupName, $zipName ); unlink($tempName); return _error( "Can't move $tempName to $zipName", $err ); } # unlink the backup if ( -f $backupName && !unlink($backupName) ) { $err = $!; return _error( "Can't unlink $backupName", $err ); } return AZ_OK; } # Used only during writing sub _writeCentralDirectoryOffset { shift->{'writeCentralDirectoryOffset'}; } sub _writeEOCDOffset { shift->{'writeEOCDOffset'}; } # Expects to have _writeEOCDOffset() set sub _writeEndOfCentralDirectory { my ( $self, $fh ) = @_; $self->_print($fh, END_OF_CENTRAL_DIRECTORY_SIGNATURE_STRING) or return _ioError('writing EOCD Signature'); my $zipfileCommentLength = length( $self->zipfileComment() ); my $header = pack( END_OF_CENTRAL_DIRECTORY_FORMAT, 0, # {'diskNumber'}, 0, # {'diskNumberWithStartOfCentralDirectory'}, $self->numberOfMembers(), # {'numberOfCentralDirectoriesOnThisDisk'}, $self->numberOfMembers(), # {'numberOfCentralDirectories'}, $self->_writeEOCDOffset() - $self->_writeCentralDirectoryOffset(), $self->_writeCentralDirectoryOffset(), $zipfileCommentLength ); $self->_print($fh, $header) or return _ioError('writing EOCD header'); if ($zipfileCommentLength) { $self->_print($fh, $self->zipfileComment() ) or return _ioError('writing zipfile comment'); } return AZ_OK; } # $offset can be specified to truncate a zip file. sub writeCentralDirectory { my $self = shift; my ( $fh, $offset ); if ( ref( $_[0] ) eq 'HASH' ) { $fh = $_[0]->{fileHandle}; $offset = $_[0]->{offset}; } else { ( $fh, $offset ) = @_; } if ( defined($offset) ) { $self->{'writeCentralDirectoryOffset'} = $offset; $fh->seek( $offset, IO::Seekable::SEEK_SET ) or return _ioError('seeking to write central directory'); } else { $offset = $self->_writeCentralDirectoryOffset(); } foreach my $member ( $self->members() ) { my $status = $member->_writeCentralDirectoryFileHeader($fh); return $status if $status != AZ_OK; $offset += $member->_centralDirectoryHeaderSize(); $self->{'writeEOCDOffset'} = $offset; } return $self->_writeEndOfCentralDirectory($fh); } sub read { my $self = shift; my $fileName = ( ref( $_[0] ) eq 'HASH' ) ? shift->{filename} : shift; return _error('No filename given') unless $fileName; my ( $status, $fh ) = _newFileHandle( $fileName, 'r' ); return _ioError("opening $fileName for read") unless $status; $status = $self->readFromFileHandle( $fh, $fileName ); return $status if $status != AZ_OK; $fh->close(); $self->{'fileName'} = $fileName; return AZ_OK; } sub readFromFileHandle { my $self = shift; my ( $fh, $fileName ); if ( ref( $_[0] ) eq 'HASH' ) { $fh = $_[0]->{fileHandle}; $fileName = $_[0]->{filename}; } else { ( $fh, $fileName ) = @_; } $fileName = $fh unless defined($fileName); return _error('No filehandle given') unless $fh; return _ioError('filehandle not open') unless $fh->opened(); _binmode($fh); $self->{'fileName'} = "$fh"; # TODO: how to support non-seekable zips? return _error('file not seekable') unless _isSeekable($fh); $fh->seek( 0, 0 ); # rewind the file my $status = $self->_findEndOfCentralDirectory($fh); return $status if $status != AZ_OK; my $eocdPosition = $fh->tell(); $status = $self->_readEndOfCentralDirectory($fh); return $status if $status != AZ_OK; $fh->seek( $eocdPosition - $self->centralDirectorySize(), IO::Seekable::SEEK_SET ) or return _ioError("Can't seek $fileName"); # Try to detect garbage at beginning of archives # This should be 0 $self->{'eocdOffset'} = $eocdPosition - $self->centralDirectorySize() # here - $self->centralDirectoryOffsetWRTStartingDiskNumber(); for ( ; ; ) { my $newMember = $self->ZIPMEMBERCLASS->_newFromZipFile( $fh, $fileName, $self->eocdOffset() ); my $signature; ( $status, $signature ) = _readSignature( $fh, $fileName ); return $status if $status != AZ_OK; last if $signature == END_OF_CENTRAL_DIRECTORY_SIGNATURE; $status = $newMember->_readCentralDirectoryFileHeader(); return $status if $status != AZ_OK; $status = $newMember->endRead(); return $status if $status != AZ_OK; $newMember->_becomeDirectoryIfNecessary(); push( @{ $self->{'members'} }, $newMember ); } return AZ_OK; } # Read EOCD, starting from position before signature. # Return AZ_OK on success. sub _readEndOfCentralDirectory { my $self = shift; my $fh = shift; # Skip past signature $fh->seek( SIGNATURE_LENGTH, IO::Seekable::SEEK_CUR ) or return _ioError("Can't seek past EOCD signature"); my $header = ''; my $bytesRead = $fh->read( $header, END_OF_CENTRAL_DIRECTORY_LENGTH ); if ( $bytesRead != END_OF_CENTRAL_DIRECTORY_LENGTH ) { return _ioError("reading end of central directory"); } my $zipfileCommentLength; ( $self->{'diskNumber'}, $self->{'diskNumberWithStartOfCentralDirectory'}, $self->{'numberOfCentralDirectoriesOnThisDisk'}, $self->{'numberOfCentralDirectories'}, $self->{'centralDirectorySize'}, $self->{'centralDirectoryOffsetWRTStartingDiskNumber'}, $zipfileCommentLength ) = unpack( END_OF_CENTRAL_DIRECTORY_FORMAT, $header ); if ($zipfileCommentLength) { my $zipfileComment = ''; $bytesRead = $fh->read( $zipfileComment, $zipfileCommentLength ); if ( $bytesRead != $zipfileCommentLength ) { return _ioError("reading zipfile comment"); } $self->{'zipfileComment'} = $zipfileComment; } return AZ_OK; } # Seek in my file to the end, then read backwards until we find the # signature of the central directory record. Leave the file positioned right # before the signature. Returns AZ_OK if success. sub _findEndOfCentralDirectory { my $self = shift; my $fh = shift; my $data = ''; $fh->seek( 0, IO::Seekable::SEEK_END ) or return _ioError("seeking to end"); my $fileLength = $fh->tell(); if ( $fileLength < END_OF_CENTRAL_DIRECTORY_LENGTH + 4 ) { return _formatError("file is too short"); } my $seekOffset = 0; my $pos = -1; for ( ; ; ) { $seekOffset += 512; $seekOffset = $fileLength if ( $seekOffset > $fileLength ); $fh->seek( -$seekOffset, IO::Seekable::SEEK_END ) or return _ioError("seek failed"); my $bytesRead = $fh->read( $data, $seekOffset ); if ( $bytesRead != $seekOffset ) { return _ioError("read failed"); } $pos = rindex( $data, END_OF_CENTRAL_DIRECTORY_SIGNATURE_STRING ); last if ( $pos >= 0 or $seekOffset == $fileLength or $seekOffset >= $Archive::Zip::ChunkSize ); } if ( $pos >= 0 ) { $fh->seek( $pos - $seekOffset, IO::Seekable::SEEK_CUR ) or return _ioError("seeking to EOCD"); return AZ_OK; } else { return _formatError("can't find EOCD signature"); } } # Used to avoid taint problems when chdir'ing. # Not intended to increase security in any way; just intended to shut up the -T # complaints. If your Cwd module is giving you unreliable returns from cwd() # you have bigger problems than this. sub _untaintDir { my $dir = shift; $dir =~ m/\A(.+)\z/s; return $1; } sub addTree { my $self = shift; my ( $root, $dest, $pred, $compressionLevel ); if ( ref( $_[0] ) eq 'HASH' ) { $root = $_[0]->{root}; $dest = $_[0]->{zipName}; $pred = $_[0]->{select}; $compressionLevel = $_[0]->{compressionLevel}; } else { ( $root, $dest, $pred, $compressionLevel ) = @_; } return _error("root arg missing in call to addTree()") unless defined($root); $dest = '' unless defined($dest); $pred = sub { -r } unless defined($pred); my @files; my $startDir = _untaintDir( cwd() ); return _error( 'undef returned by _untaintDir on cwd ', cwd() ) unless $startDir; # This avoids chdir'ing in Find, in a way compatible with older # versions of File::Find. my $wanted = sub { local $main::_ = $File::Find::name; my $dir = _untaintDir($File::Find::dir); chdir($startDir); push( @files, $File::Find::name ) if (&$pred); chdir($dir); }; File::Find::find( $wanted, $root ); my $rootZipName = _asZipDirName( $root, 1 ); # with trailing slash my $pattern = $rootZipName eq './' ? '^' : "^\Q$rootZipName\E"; $dest = _asZipDirName( $dest, 1 ); # with trailing slash foreach my $fileName (@files) { my $isDir = -d $fileName; # normalize, remove leading ./ my $archiveName = _asZipDirName( $fileName, $isDir ); if ( $archiveName eq $rootZipName ) { $archiveName = $dest } else { $archiveName =~ s{$pattern}{$dest} } next if $archiveName =~ m{^\.?/?$}; # skip current dir my $member = $isDir ? $self->addDirectory( $fileName, $archiveName ) : $self->addFile( $fileName, $archiveName ); $member->desiredCompressionLevel($compressionLevel); return _error("add $fileName failed in addTree()") if !$member; } return AZ_OK; } sub addTreeMatching { my $self = shift; my ( $root, $dest, $pattern, $pred, $compressionLevel ); if ( ref( $_[0] ) eq 'HASH' ) { $root = $_[0]->{root}; $dest = $_[0]->{zipName}; $pattern = $_[0]->{pattern}; $pred = $_[0]->{select}; $compressionLevel = $_[0]->{compressionLevel}; } else { ( $root, $dest, $pattern, $pred, $compressionLevel ) = @_; } return _error("root arg missing in call to addTreeMatching()") unless defined($root); $dest = '' unless defined($dest); return _error("pattern missing in call to addTreeMatching()") unless defined($pattern); my $matcher = $pred ? sub { m{$pattern} && &$pred } : sub { m{$pattern} && -r }; return $self->addTree( $root, $dest, $matcher, $compressionLevel ); } # $zip->extractTree( $root, $dest [, $volume] ); # # $root and $dest are Unix-style. # $volume is in local FS format. # sub extractTree { my $self = shift; my ( $root, $dest, $volume ); if ( ref( $_[0] ) eq 'HASH' ) { $root = $_[0]->{root}; $dest = $_[0]->{zipName}; $volume = $_[0]->{volume}; } else { ( $root, $dest, $volume ) = @_; } $root = '' unless defined($root); $dest = './' unless defined($dest); my $pattern = "^\Q$root"; my @members = $self->membersMatching($pattern); foreach my $member (@members) { my $fileName = $member->fileName(); # in Unix format $fileName =~ s{$pattern}{$dest}; # in Unix format # convert to platform format: $fileName = Archive::Zip::_asLocalName( $fileName, $volume ); my $status = $member->extractToFileNamed($fileName); return $status if $status != AZ_OK; } return AZ_OK; } # $zip->updateMember( $memberOrName, $fileName ); # Returns (possibly updated) member, if any; undef on errors. sub updateMember { my $self = shift; my ( $oldMember, $fileName ); if ( ref( $_[0] ) eq 'HASH' ) { $oldMember = $_[0]->{memberOrZipName}; $fileName = $_[0]->{name}; } else { ( $oldMember, $fileName ) = @_; } if ( !defined($fileName) ) { _error("updateMember(): missing fileName argument"); return undef; } my @newStat = stat($fileName); if ( !@newStat ) { _ioError("Can't stat $fileName"); return undef; } my $isDir = -d _; my $memberName; if ( ref($oldMember) ) { $memberName = $oldMember->fileName(); } else { $oldMember = $self->memberNamed( $memberName = $oldMember ) || $self->memberNamed( $memberName = _asZipDirName( $oldMember, $isDir ) ); } unless ( defined($oldMember) && $oldMember->lastModTime() == $newStat[9] && $oldMember->isDirectory() == $isDir && ( $isDir || ( $oldMember->uncompressedSize() == $newStat[7] ) ) ) { # create the new member my $newMember = $isDir ? $self->ZIPMEMBERCLASS->newDirectoryNamed( $fileName, $memberName ) : $self->ZIPMEMBERCLASS->newFromFile( $fileName, $memberName ); unless ( defined($newMember) ) { _error("creation of member $fileName failed in updateMember()"); return undef; } # replace old member or append new one if ( defined($oldMember) ) { $self->replaceMember( $oldMember, $newMember ); } else { $self->addMember($newMember); } return $newMember; } return $oldMember; } # $zip->updateTree( $root, [ $dest, [ $pred [, $mirror]]] ); # # This takes the same arguments as addTree, but first checks to see # whether the file or directory already exists in the zip file. # # If the fourth argument $mirror is true, then delete all my members # if corresponding files weren't found. sub updateTree { my $self = shift; my ( $root, $dest, $pred, $mirror, $compressionLevel ); if ( ref( $_[0] ) eq 'HASH' ) { $root = $_[0]->{root}; $dest = $_[0]->{zipName}; $pred = $_[0]->{select}; $mirror = $_[0]->{mirror}; $compressionLevel = $_[0]->{compressionLevel}; } else { ( $root, $dest, $pred, $mirror, $compressionLevel ) = @_; } return _error("root arg missing in call to updateTree()") unless defined($root); $dest = '' unless defined($dest); $pred = sub { -r } unless defined($pred); $dest = _asZipDirName( $dest, 1 ); my $rootZipName = _asZipDirName( $root, 1 ); # with trailing slash my $pattern = $rootZipName eq './' ? '^' : "^\Q$rootZipName\E"; my @files; my $startDir = _untaintDir( cwd() ); return _error( 'undef returned by _untaintDir on cwd ', cwd() ) unless $startDir; # This avoids chdir'ing in Find, in a way compatible with older # versions of File::Find. my $wanted = sub { local $main::_ = $File::Find::name; my $dir = _untaintDir($File::Find::dir); chdir($startDir); push( @files, $File::Find::name ) if (&$pred); chdir($dir); }; File::Find::find( $wanted, $root ); # Now @files has all the files that I could potentially be adding to # the zip. Only add the ones that are necessary. # For each file (updated or not), add its member name to @done. my %done; foreach my $fileName (@files) { my @newStat = stat($fileName); my $isDir = -d _; # normalize, remove leading ./ my $memberName = _asZipDirName( $fileName, $isDir ); if ( $memberName eq $rootZipName ) { $memberName = $dest } else { $memberName =~ s{$pattern}{$dest} } next if $memberName =~ m{^\.?/?$}; # skip current dir $done{$memberName} = 1; my $changedMember = $self->updateMember( $memberName, $fileName ); $changedMember->desiredCompressionLevel($compressionLevel); return _error("updateTree failed to update $fileName") unless ref($changedMember); } # @done now has the archive names corresponding to all the found files. # If we're mirroring, delete all those members that aren't in @done. if ($mirror) { foreach my $member ( $self->members() ) { $self->removeMember($member) unless $done{ $member->fileName() }; } } return AZ_OK; } 1; FILE'cd35b746/Archive/Zip/DirectoryMember.pm#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/DirectoryMember.pm" package Archive::Zip::DirectoryMember; use strict; use File::Path; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw( Archive::Zip::Member ); } use Archive::Zip qw( :ERROR_CODES :UTILITY_METHODS ); sub _newNamed { my $class = shift; my $fileName = shift; # FS name my $newName = shift; # Zip name $newName = _asZipDirName($fileName) unless $newName; my $self = $class->new(@_); $self->{'externalFileName'} = $fileName; $self->fileName($newName); if ( -e $fileName ) { # -e does NOT do a full stat, so we need to do one now if ( -d _ ) { my @stat = stat(_); $self->unixFileAttributes( $stat[2] ); my $mod_t = $stat[9]; if ( $^O eq 'MSWin32' and !$mod_t ) { $mod_t = time(); } $self->setLastModFileDateTimeFromUnix($mod_t); } else { # hmm.. trying to add a non-directory? _error( $fileName, ' exists but is not a directory' ); return undef; } } else { $self->unixFileAttributes( $self->DEFAULT_DIRECTORY_PERMISSIONS ); $self->setLastModFileDateTimeFromUnix( time() ); } return $self; } sub externalFileName { shift->{'externalFileName'}; } sub isDirectory { return 1; } sub extractToFileNamed { my $self = shift; my $name = shift; # local FS name my $attribs = $self->unixFileAttributes() & 07777; mkpath( $name, 0, $attribs ); # croaks on error utime( $self->lastModTime(), $self->lastModTime(), $name ); return AZ_OK; } sub fileName { my $self = shift; my $newName = shift; $newName =~ s{/?$}{/} if defined($newName); return $self->SUPER::fileName($newName); } # So people don't get too confused. This way it looks like the problem # is in their code... sub contents { return wantarray ? ( undef, AZ_OK ) : undef; } 1; FILE"a334f53d/Archive/Zip/FileMember.pm#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/FileMember.pm" package Archive::Zip::FileMember; use strict; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw ( Archive::Zip::Member ); } use Archive::Zip qw( :UTILITY_METHODS ); sub externalFileName { shift->{'externalFileName'}; } # Return true if I depend on the named file sub _usesFileNamed { my $self = shift; my $fileName = shift; my $xfn = $self->externalFileName(); return undef if ref($xfn); return $xfn eq $fileName; } sub fh { my $self = shift; $self->_openFile() if !defined( $self->{'fh'} ) || !$self->{'fh'}->opened(); return $self->{'fh'}; } # opens my file handle from my file name sub _openFile { my $self = shift; my ( $status, $fh ) = _newFileHandle( $self->externalFileName(), 'r' ); if ( !$status ) { _ioError( "Can't open", $self->externalFileName() ); return undef; } $self->{'fh'} = $fh; _binmode($fh); return $fh; } # Make sure I close my file handle sub endRead { my $self = shift; undef $self->{'fh'}; # _closeFile(); return $self->SUPER::endRead(@_); } sub _become { my $self = shift; my $newClass = shift; return $self if ref($self) eq $newClass; delete( $self->{'externalFileName'} ); delete( $self->{'fh'} ); return $self->SUPER::_become($newClass); } 1; FILE0450e742/Archive/Zip/Member.pmO#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/Member.pm" package Archive::Zip::Member; # A generic membet of an archive use strict; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw( Archive::Zip ); } use Archive::Zip qw( :CONSTANTS :MISC_CONSTANTS :ERROR_CODES :PKZIP_CONSTANTS :UTILITY_METHODS ); use Time::Local (); use Compress::Raw::Zlib qw( Z_OK Z_STREAM_END MAX_WBITS ); use File::Path; use File::Basename; use constant ZIPFILEMEMBERCLASS => 'Archive::Zip::ZipFileMember'; use constant NEWFILEMEMBERCLASS => 'Archive::Zip::NewFileMember'; use constant STRINGMEMBERCLASS => 'Archive::Zip::StringMember'; use constant DIRECTORYMEMBERCLASS => 'Archive::Zip::DirectoryMember'; # Unix perms for default creation of files/dirs. use constant DEFAULT_DIRECTORY_PERMISSIONS => 040755; use constant DEFAULT_FILE_PERMISSIONS => 0100666; use constant DIRECTORY_ATTRIB => 040000; use constant FILE_ATTRIB => 0100000; # Returns self if successful, else undef # Assumes that fh is positioned at beginning of central directory file header. # Leaves fh positioned immediately after file header or EOCD signature. sub _newFromZipFile { my $class = shift; my $self = $class->ZIPFILEMEMBERCLASS->_newFromZipFile(@_); return $self; } sub newFromString { my $class = shift; my ( $stringOrStringRef, $fileName ); if ( ref( $_[0] ) eq 'HASH' ) { $stringOrStringRef = $_[0]->{string}; $fileName = $_[0]->{zipName}; } else { ( $stringOrStringRef, $fileName ) = @_; } my $self = $class->STRINGMEMBERCLASS->_newFromString( $stringOrStringRef, $fileName ); return $self; } sub newFromFile { my $class = shift; my ( $fileName, $zipName ); if ( ref( $_[0] ) eq 'HASH' ) { $fileName = $_[0]->{fileName}; $zipName = $_[0]->{zipName}; } else { ( $fileName, $zipName ) = @_; } my $self = $class->NEWFILEMEMBERCLASS->_newFromFileNamed( $fileName, $zipName ); return $self; } sub newDirectoryNamed { my $class = shift; my ( $directoryName, $newName ); if ( ref( $_[0] ) eq 'HASH' ) { $directoryName = $_[0]->{directoryName}; $newName = $_[0]->{zipName}; } else { ( $directoryName, $newName ) = @_; } my $self = $class->DIRECTORYMEMBERCLASS->_newNamed( $directoryName, $newName ); return $self; } sub new { my $class = shift; my $self = { 'lastModFileDateTime' => 0, 'fileAttributeFormat' => FA_UNIX, 'versionMadeBy' => 20, 'versionNeededToExtract' => 20, 'bitFlag' => 0, 'compressionMethod' => COMPRESSION_STORED, 'desiredCompressionMethod' => COMPRESSION_STORED, 'desiredCompressionLevel' => COMPRESSION_LEVEL_NONE, 'internalFileAttributes' => 0, 'externalFileAttributes' => 0, # set later 'fileName' => '', 'cdExtraField' => '', 'localExtraField' => '', 'fileComment' => '', 'crc32' => 0, 'compressedSize' => 0, 'uncompressedSize' => 0, 'isSymbolicLink' => 0, @_ }; bless( $self, $class ); $self->unixFileAttributes( $self->DEFAULT_FILE_PERMISSIONS ); return $self; } sub _becomeDirectoryIfNecessary { my $self = shift; $self->_become(DIRECTORYMEMBERCLASS) if $self->isDirectory(); return $self; } # Morph into given class (do whatever cleanup I need to do) sub _become { return bless( $_[0], $_[1] ); } sub versionMadeBy { shift->{'versionMadeBy'}; } sub fileAttributeFormat { my $self = shift; if (@_) { $self->{fileAttributeFormat} = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{format} : $_[0]; } else { return $self->{fileAttributeFormat}; } } sub versionNeededToExtract { shift->{'versionNeededToExtract'}; } sub bitFlag { my $self = shift; # Set General Purpose Bit Flags according to the desiredCompressionLevel setting if ( $self->desiredCompressionLevel == 1 || $self->desiredCompressionLevel == 2 ) { $self->{'bitFlag'} = DEFLATING_COMPRESSION_FAST; } elsif ( $self->desiredCompressionLevel == 3 || $self->desiredCompressionLevel == 4 || $self->desiredCompressionLevel == 5 || $self->desiredCompressionLevel == 6 || $self->desiredCompressionLevel == 7 ) { $self->{'bitFlag'} = DEFLATING_COMPRESSION_NORMAL; } elsif ( $self->desiredCompressionLevel == 8 || $self->desiredCompressionLevel == 9 ) { $self->{'bitFlag'} = DEFLATING_COMPRESSION_MAXIMUM; } $self->{'bitFlag'}; } sub compressionMethod { shift->{'compressionMethod'}; } sub desiredCompressionMethod { my $self = shift; my $newDesiredCompressionMethod = ( ref( $_[0] ) eq 'HASH' ) ? shift->{compressionMethod} : shift; my $oldDesiredCompressionMethod = $self->{'desiredCompressionMethod'}; if ( defined($newDesiredCompressionMethod) ) { $self->{'desiredCompressionMethod'} = $newDesiredCompressionMethod; if ( $newDesiredCompressionMethod == COMPRESSION_STORED ) { $self->{'desiredCompressionLevel'} = 0; $self->{'bitFlag'} &= ~GPBF_HAS_DATA_DESCRIPTOR_MASK; } elsif ( $oldDesiredCompressionMethod == COMPRESSION_STORED ) { $self->{'desiredCompressionLevel'} = COMPRESSION_LEVEL_DEFAULT; } } return $oldDesiredCompressionMethod; } sub desiredCompressionLevel { my $self = shift; my $newDesiredCompressionLevel = ( ref( $_[0] ) eq 'HASH' ) ? shift->{compressionLevel} : shift; my $oldDesiredCompressionLevel = $self->{'desiredCompressionLevel'}; if ( defined($newDesiredCompressionLevel) ) { $self->{'desiredCompressionLevel'} = $newDesiredCompressionLevel; $self->{'desiredCompressionMethod'} = ( $newDesiredCompressionLevel ? COMPRESSION_DEFLATED : COMPRESSION_STORED ); } return $oldDesiredCompressionLevel; } sub fileName { my $self = shift; my $newName = shift; if ($newName) { $newName =~ s{[\\/]+}{/}g; # deal with dos/windoze problems $self->{'fileName'} = $newName; } return $self->{'fileName'}; } sub lastModFileDateTime { my $modTime = shift->{'lastModFileDateTime'}; $modTime =~ m/^(\d+)$/; # untaint return $1; } sub lastModTime { my $self = shift; return _dosToUnixTime( $self->lastModFileDateTime() ); } sub setLastModFileDateTimeFromUnix { my $self = shift; my $time_t = shift; $self->{'lastModFileDateTime'} = _unixToDosTime($time_t); } sub internalFileAttributes { shift->{'internalFileAttributes'}; } sub externalFileAttributes { shift->{'externalFileAttributes'}; } # Convert UNIX permissions into proper value for zip file # Usable as a function or a method sub _mapPermissionsFromUnix { my $self = shift; my $mode = shift; my $attribs = $mode << 16; # Microsoft Windows Explorer needs this bit set for directories if ( $mode & DIRECTORY_ATTRIB ) { $attribs |= 16; } return $attribs; # TODO: map more MS-DOS perms } # Convert ZIP permissions into Unix ones # # This was taken from Info-ZIP group's portable UnZip # zipfile-extraction program, version 5.50. # http://www.info-zip.org/pub/infozip/ # # See the mapattr() function in unix/unix.c # See the attribute format constants in unzpriv.h # # XXX Note that there's one situation that isn't implemented # yet that depends on the "extra field." sub _mapPermissionsToUnix { my $self = shift; my $format = $self->{'fileAttributeFormat'}; my $attribs = $self->{'externalFileAttributes'}; my $mode = 0; if ( $format == FA_AMIGA ) { $attribs = $attribs >> 17 & 7; # Amiga RWE bits $mode = $attribs << 6 | $attribs << 3 | $attribs; return $mode; } if ( $format == FA_THEOS ) { $attribs &= 0xF1FFFFFF; if ( ( $attribs & 0xF0000000 ) != 0x40000000 ) { $attribs &= 0x01FFFFFF; # not a dir, mask all ftype bits } else { $attribs &= 0x41FFFFFF; # leave directory bit as set } } if ( $format == FA_UNIX || $format == FA_VAX_VMS || $format == FA_ACORN || $format == FA_ATARI_ST || $format == FA_BEOS || $format == FA_QDOS || $format == FA_TANDEM ) { $mode = $attribs >> 16; return $mode if $mode != 0 or not $self->localExtraField; # warn("local extra field is: ", $self->localExtraField, "\n"); # XXX This condition is not implemented # I'm just including the comments from the info-zip section for now. # Some (non-Info-ZIP) implementations of Zip for Unix and # VMS (and probably others ??) leave 0 in the upper 16-bit # part of the external_file_attributes field. Instead, they # store file permission attributes in some extra field. # As a work-around, we search for the presence of one of # these extra fields and fall back to the MSDOS compatible # part of external_file_attributes if one of the known # e.f. types has been detected. # Later, we might implement extraction of the permission # bits from the VMS extra field. But for now, the work-around # should be sufficient to provide "readable" extracted files. # (For ASI Unix e.f., an experimental remap from the e.f. # mode value IS already provided!) } # PKWARE's PKZip for Unix marks entries as FA_MSDOS, but stores the # Unix attributes in the upper 16 bits of the external attributes # field, just like Info-ZIP's Zip for Unix. We try to use that # value, after a check for consistency with the MSDOS attribute # bits (see below). if ( $format == FA_MSDOS ) { $mode = $attribs >> 16; } # FA_MSDOS, FA_OS2_HPFS, FA_WINDOWS_NTFS, FA_MACINTOSH, FA_TOPS20 $attribs = !( $attribs & 1 ) << 1 | ( $attribs & 0x10 ) >> 4; # keep previous $mode setting when its "owner" # part appears to be consistent with DOS attribute flags! return $mode if ( $mode & 0700 ) == ( 0400 | $attribs << 6 ); $mode = 0444 | $attribs << 6 | $attribs << 3 | $attribs; return $mode; } sub unixFileAttributes { my $self = shift; my $oldPerms = $self->_mapPermissionsToUnix; my $perms; if ( @_ ) { $perms = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{attributes} : $_[0]; if ( $self->isDirectory ) { $perms &= ~FILE_ATTRIB; $perms |= DIRECTORY_ATTRIB; } else { $perms &= ~DIRECTORY_ATTRIB; $perms |= FILE_ATTRIB; } $self->{externalFileAttributes} = $self->_mapPermissionsFromUnix($perms); } return $oldPerms; } sub localExtraField { my $self = shift; if (@_) { $self->{localExtraField} = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{field} : $_[0]; } else { return $self->{localExtraField}; } } sub cdExtraField { my $self = shift; if (@_) { $self->{cdExtraField} = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{field} : $_[0]; } else { return $self->{cdExtraField}; } } sub extraFields { my $self = shift; return $self->localExtraField() . $self->cdExtraField(); } sub fileComment { my $self = shift; if (@_) { $self->{fileComment} = ( ref( $_[0] ) eq 'HASH' ) ? pack( 'C0a*', $_[0]->{comment} ) : pack( 'C0a*', $_[0] ); } else { return $self->{fileComment}; } } sub hasDataDescriptor { my $self = shift; if (@_) { my $shouldHave = shift; if ($shouldHave) { $self->{'bitFlag'} |= GPBF_HAS_DATA_DESCRIPTOR_MASK; } else { $self->{'bitFlag'} &= ~GPBF_HAS_DATA_DESCRIPTOR_MASK; } } return $self->{'bitFlag'} & GPBF_HAS_DATA_DESCRIPTOR_MASK; } sub crc32 { shift->{'crc32'}; } sub crc32String { sprintf( "%08x", shift->{'crc32'} ); } sub compressedSize { shift->{'compressedSize'}; } sub uncompressedSize { shift->{'uncompressedSize'}; } sub isEncrypted { shift->bitFlag() & GPBF_ENCRYPTED_MASK; } sub isTextFile { my $self = shift; my $bit = $self->internalFileAttributes() & IFA_TEXT_FILE_MASK; if (@_) { my $flag = ( ref( $_[0] ) eq 'HASH' ) ? shift->{flag} : shift; $self->{'internalFileAttributes'} &= ~IFA_TEXT_FILE_MASK; $self->{'internalFileAttributes'} |= ( $flag ? IFA_TEXT_FILE: IFA_BINARY_FILE ); } return $bit == IFA_TEXT_FILE; } sub isBinaryFile { my $self = shift; my $bit = $self->internalFileAttributes() & IFA_TEXT_FILE_MASK; if (@_) { my $flag = shift; $self->{'internalFileAttributes'} &= ~IFA_TEXT_FILE_MASK; $self->{'internalFileAttributes'} |= ( $flag ? IFA_BINARY_FILE: IFA_TEXT_FILE ); } return $bit == IFA_BINARY_FILE; } sub extractToFileNamed { my $self = shift; # local FS name my $name = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{name} : $_[0]; $self->{'isSymbolicLink'} = 0; # Check if the file / directory is a symbolic link or not if ( $self->{'externalFileAttributes'} == 0xA1FF0000 ) { $self->{'isSymbolicLink'} = 1; $self->{'newName'} = $name; my ( $status, $fh ) = _newFileHandle( $name, 'r' ); my $retval = $self->extractToFileHandle($fh); $fh->close(); } else { #return _writeSymbolicLink($self, $name) if $self->isSymbolicLink(); return _error("encryption unsupported") if $self->isEncrypted(); mkpath( dirname($name) ); # croaks on error my ( $status, $fh ) = _newFileHandle( $name, 'w' ); return _ioError("Can't open file $name for write") unless $status; my $retval = $self->extractToFileHandle($fh); $fh->close(); chmod ($self->unixFileAttributes(), $name) or return _error("Can't chmod() ${name}: $!"); utime( $self->lastModTime(), $self->lastModTime(), $name ); return $retval; } } sub _writeSymbolicLink { my $self = shift; my $name = shift; my $chunkSize = $Archive::Zip::ChunkSize; #my ( $outRef, undef ) = $self->readChunk($chunkSize); my $fh; my $retval = $self->extractToFileHandle($fh); my ( $outRef, undef ) = $self->readChunk(100); } sub isSymbolicLink { my $self = shift; if ( $self->{'externalFileAttributes'} == 0xA1FF0000 ) { $self->{'isSymbolicLink'} = 1; } else { return 0; } 1; } sub isDirectory { return 0; } sub externalFileName { return undef; } # The following are used when copying data sub _writeOffset { shift->{'writeOffset'}; } sub _readOffset { shift->{'readOffset'}; } sub writeLocalHeaderRelativeOffset { shift->{'writeLocalHeaderRelativeOffset'}; } sub wasWritten { shift->{'wasWritten'} } sub _dataEnded { shift->{'dataEnded'}; } sub _readDataRemaining { shift->{'readDataRemaining'}; } sub _inflater { shift->{'inflater'}; } sub _deflater { shift->{'deflater'}; } # Return the total size of my local header sub _localHeaderSize { my $self = shift; return SIGNATURE_LENGTH + LOCAL_FILE_HEADER_LENGTH + length( $self->fileName() ) + length( $self->localExtraField() ); } # Return the total size of my CD header sub _centralDirectoryHeaderSize { my $self = shift; return SIGNATURE_LENGTH + CENTRAL_DIRECTORY_FILE_HEADER_LENGTH + length( $self->fileName() ) + length( $self->cdExtraField() ) + length( $self->fileComment() ); } # DOS date/time format # 0-4 (5) Second divided by 2 # 5-10 (6) Minute (0-59) # 11-15 (5) Hour (0-23 on a 24-hour clock) # 16-20 (5) Day of the month (1-31) # 21-24 (4) Month (1 = January, 2 = February, etc.) # 25-31 (7) Year offset from 1980 (add 1980 to get actual year) # Convert DOS date/time format to unix time_t format # NOT AN OBJECT METHOD! sub _dosToUnixTime { my $dt = shift; return time() unless defined($dt); my $year = ( ( $dt >> 25 ) & 0x7f ) + 80; my $mon = ( ( $dt >> 21 ) & 0x0f ) - 1; my $mday = ( ( $dt >> 16 ) & 0x1f ); my $hour = ( ( $dt >> 11 ) & 0x1f ); my $min = ( ( $dt >> 5 ) & 0x3f ); my $sec = ( ( $dt << 1 ) & 0x3e ); # catch errors my $time_t = eval { Time::Local::timelocal( $sec, $min, $hour, $mday, $mon, $year ); }; return time() if ($@); return $time_t; } # Note, this isn't exactly UTC 1980, it's 1980 + 12 hours and 1 # minute so that nothing timezoney can muck us up. my $safe_epoch = 315576060; # convert a unix time to DOS date/time # NOT AN OBJECT METHOD! sub _unixToDosTime { my $time_t = shift; unless ($time_t) { _error("Tried to add member with zero or undef value for time"); $time_t = $safe_epoch; } if ( $time_t < $safe_epoch ) { _ioError("Unsupported date before 1980 encountered, moving to 1980"); $time_t = $safe_epoch; } my ( $sec, $min, $hour, $mday, $mon, $year ) = localtime($time_t); my $dt = 0; $dt += ( $sec >> 1 ); $dt += ( $min << 5 ); $dt += ( $hour << 11 ); $dt += ( $mday << 16 ); $dt += ( ( $mon + 1 ) << 21 ); $dt += ( ( $year - 80 ) << 25 ); return $dt; } # Write my local header to a file handle. # Stores the offset to the start of the header in my # writeLocalHeaderRelativeOffset member. # Returns AZ_OK on success. sub _writeLocalFileHeader { my $self = shift; my $fh = shift; my $signatureData = pack( SIGNATURE_FORMAT, LOCAL_FILE_HEADER_SIGNATURE ); $self->_print($fh, $signatureData) or return _ioError("writing local header signature"); my $header = pack( LOCAL_FILE_HEADER_FORMAT, $self->versionNeededToExtract(), $self->bitFlag(), $self->desiredCompressionMethod(), $self->lastModFileDateTime(), $self->crc32(), $self->compressedSize(), # may need to be re-written later $self->uncompressedSize(), length( $self->fileName() ), length( $self->localExtraField() ) ); $self->_print($fh, $header) or return _ioError("writing local header"); # Check for a valid filename or a filename equal to a literal `0' if ( $self->fileName() || $self->fileName eq '0' ) { $self->_print($fh, $self->fileName() ) or return _ioError("writing local header filename"); } if ( $self->localExtraField() ) { $self->_print($fh, $self->localExtraField() ) or return _ioError("writing local extra field"); } return AZ_OK; } sub _writeCentralDirectoryFileHeader { my $self = shift; my $fh = shift; my $sigData = pack( SIGNATURE_FORMAT, CENTRAL_DIRECTORY_FILE_HEADER_SIGNATURE ); $self->_print($fh, $sigData) or return _ioError("writing central directory header signature"); my $fileNameLength = length( $self->fileName() ); my $extraFieldLength = length( $self->cdExtraField() ); my $fileCommentLength = length( $self->fileComment() ); my $header = pack( CENTRAL_DIRECTORY_FILE_HEADER_FORMAT, $self->versionMadeBy(), $self->fileAttributeFormat(), $self->versionNeededToExtract(), $self->bitFlag(), $self->desiredCompressionMethod(), $self->lastModFileDateTime(), $self->crc32(), # these three fields should have been updated $self->_writeOffset(), # by writing the data stream out $self->uncompressedSize(), # $fileNameLength, $extraFieldLength, $fileCommentLength, 0, # {'diskNumberStart'}, $self->internalFileAttributes(), $self->externalFileAttributes(), $self->writeLocalHeaderRelativeOffset() ); $self->_print($fh, $header) or return _ioError("writing central directory header"); if ($fileNameLength) { $self->_print($fh, $self->fileName() ) or return _ioError("writing central directory header signature"); } if ($extraFieldLength) { $self->_print($fh, $self->cdExtraField() ) or return _ioError("writing central directory extra field"); } if ($fileCommentLength) { $self->_print($fh, $self->fileComment() ) or return _ioError("writing central directory file comment"); } return AZ_OK; } # This writes a data descriptor to the given file handle. # Assumes that crc32, writeOffset, and uncompressedSize are # set correctly (they should be after a write). # Further, the local file header should have the # GPBF_HAS_DATA_DESCRIPTOR_MASK bit set. sub _writeDataDescriptor { my $self = shift; my $fh = shift; my $header = pack( SIGNATURE_FORMAT . DATA_DESCRIPTOR_FORMAT, DATA_DESCRIPTOR_SIGNATURE, $self->crc32(), $self->_writeOffset(), # compressed size $self->uncompressedSize() ); $self->_print($fh, $header) or return _ioError("writing data descriptor"); return AZ_OK; } # Re-writes the local file header with new crc32 and compressedSize fields. # To be called after writing the data stream. # Assumes that filename and extraField sizes didn't change since last written. sub _refreshLocalFileHeader { my $self = shift; my $fh = shift; my $here = $fh->tell(); $fh->seek( $self->writeLocalHeaderRelativeOffset() + SIGNATURE_LENGTH, IO::Seekable::SEEK_SET ) or return _ioError("seeking to rewrite local header"); my $header = pack( LOCAL_FILE_HEADER_FORMAT, $self->versionNeededToExtract(), $self->bitFlag(), $self->desiredCompressionMethod(), $self->lastModFileDateTime(), $self->crc32(), $self->_writeOffset(), # compressed size $self->uncompressedSize(), length( $self->fileName() ), length( $self->localExtraField() ) ); $self->_print($fh, $header) or return _ioError("re-writing local header"); $fh->seek( $here, IO::Seekable::SEEK_SET ) or return _ioError("seeking after rewrite of local header"); return AZ_OK; } sub readChunk { my $self = shift; my $chunkSize = ( ref( $_[0] ) eq 'HASH' ) ? $_[0]->{chunkSize} : $_[0]; if ( $self->readIsDone() ) { $self->endRead(); my $dummy = ''; return ( \$dummy, AZ_STREAM_END ); } $chunkSize = $Archive::Zip::ChunkSize if not defined($chunkSize); $chunkSize = $self->_readDataRemaining() if $chunkSize > $self->_readDataRemaining(); my $buffer = ''; my $outputRef; my ( $bytesRead, $status ) = $self->_readRawChunk( \$buffer, $chunkSize ); return ( \$buffer, $status ) unless $status == AZ_OK; $self->{'readDataRemaining'} -= $bytesRead; $self->{'readOffset'} += $bytesRead; if ( $self->compressionMethod() == COMPRESSION_STORED ) { $self->{'crc32'} = $self->computeCRC32( $buffer, $self->{'crc32'} ); } ( $outputRef, $status ) = &{ $self->{'chunkHandler'} }( $self, \$buffer ); $self->{'writeOffset'} += length($$outputRef); $self->endRead() if $self->readIsDone(); return ( $outputRef, $status ); } # Read the next raw chunk of my data. Subclasses MUST implement. # my ( $bytesRead, $status) = $self->_readRawChunk( \$buffer, $chunkSize ); sub _readRawChunk { my $self = shift; return $self->_subclassResponsibility(); } # A place holder to catch rewindData errors if someone ignores # the error code. sub _noChunk { my $self = shift; return ( \undef, _error("trying to copy chunk when init failed") ); } # Basically a no-op so that I can have a consistent interface. # ( $outputRef, $status) = $self->_copyChunk( \$buffer ); sub _copyChunk { my ( $self, $dataRef ) = @_; return ( $dataRef, AZ_OK ); } # ( $outputRef, $status) = $self->_deflateChunk( \$buffer ); sub _deflateChunk { my ( $self, $buffer ) = @_; my ( $status ) = $self->_deflater()->deflate( $buffer, my $out ); if ( $self->_readDataRemaining() == 0 ) { my $extraOutput; ( $status ) = $self->_deflater()->flush($extraOutput); $out .= $extraOutput; $self->endRead(); return ( \$out, AZ_STREAM_END ); } elsif ( $status == Z_OK ) { return ( \$out, AZ_OK ); } else { $self->endRead(); my $retval = _error( 'deflate error', $status ); my $dummy = ''; return ( \$dummy, $retval ); } } # ( $outputRef, $status) = $self->_inflateChunk( \$buffer ); sub _inflateChunk { my ( $self, $buffer ) = @_; my ( $status ) = $self->_inflater()->inflate( $buffer, my $out ); my $retval; $self->endRead() unless $status == Z_OK; if ( $status == Z_OK || $status == Z_STREAM_END ) { $retval = ( $status == Z_STREAM_END ) ? AZ_STREAM_END: AZ_OK; return ( \$out, $retval ); } else { $retval = _error( 'inflate error', $status ); my $dummy = ''; return ( \$dummy, $retval ); } } sub rewindData { my $self = shift; my $status; # set to trap init errors $self->{'chunkHandler'} = $self->can('_noChunk'); # Work around WinZip bug with 0-length DEFLATED files $self->desiredCompressionMethod(COMPRESSION_STORED) if $self->uncompressedSize() == 0; # assume that we're going to read the whole file, and compute the CRC anew. $self->{'crc32'} = 0 if ( $self->compressionMethod() == COMPRESSION_STORED ); # These are the only combinations of methods we deal with right now. if ( $self->compressionMethod() == COMPRESSION_STORED and $self->desiredCompressionMethod() == COMPRESSION_DEFLATED ) { ( $self->{'deflater'}, $status ) = Compress::Raw::Zlib::Deflate->new( '-Level' => $self->desiredCompressionLevel(), '-WindowBits' => -MAX_WBITS(), # necessary magic '-Bufsize' => $Archive::Zip::ChunkSize, @_ ); # pass additional options return _error( 'deflateInit error:', $status ) unless $status == Z_OK; $self->{'chunkHandler'} = $self->can('_deflateChunk'); } elsif ( $self->compressionMethod() == COMPRESSION_DEFLATED and $self->desiredCompressionMethod() == COMPRESSION_STORED ) { ( $self->{'inflater'}, $status ) = Compress::Raw::Zlib::Inflate->new( '-WindowBits' => -MAX_WBITS(), # necessary magic '-Bufsize' => $Archive::Zip::ChunkSize, @_ ); # pass additional options return _error( 'inflateInit error:', $status ) unless $status == Z_OK; $self->{'chunkHandler'} = $self->can('_inflateChunk'); } elsif ( $self->compressionMethod() == $self->desiredCompressionMethod() ) { $self->{'chunkHandler'} = $self->can('_copyChunk'); } else { return _error( sprintf( "Unsupported compression combination: read %d, write %d", $self->compressionMethod(), $self->desiredCompressionMethod() ) ); } $self->{'readDataRemaining'} = ( $self->compressionMethod() == COMPRESSION_STORED ) ? $self->uncompressedSize() : $self->compressedSize(); $self->{'dataEnded'} = 0; $self->{'readOffset'} = 0; return AZ_OK; } sub endRead { my $self = shift; delete $self->{'inflater'}; delete $self->{'deflater'}; $self->{'dataEnded'} = 1; $self->{'readDataRemaining'} = 0; return AZ_OK; } sub readIsDone { my $self = shift; return ( $self->_dataEnded() or !$self->_readDataRemaining() ); } sub contents { my $self = shift; my $newContents = shift; if ( defined($newContents) ) { # change our type and call the subclass contents method. $self->_become(STRINGMEMBERCLASS); return $self->contents( pack( 'C0a*', $newContents ) ) ; # in case of Unicode } else { my $oldCompression = $self->desiredCompressionMethod(COMPRESSION_STORED); my $status = $self->rewindData(@_); if ( $status != AZ_OK ) { $self->endRead(); return $status; } my $retval = ''; while ( $status == AZ_OK ) { my $ref; ( $ref, $status ) = $self->readChunk( $self->_readDataRemaining() ); # did we get it in one chunk? if ( length($$ref) == $self->uncompressedSize() ) { $retval = $$ref; } else { $retval .= $$ref } } $self->desiredCompressionMethod($oldCompression); $self->endRead(); $status = AZ_OK if $status == AZ_STREAM_END; $retval = undef unless $status == AZ_OK; return wantarray ? ( $retval, $status ) : $retval; } } sub extractToFileHandle { my $self = shift; return _error("encryption unsupported") if $self->isEncrypted(); my $fh = ( ref( $_[0] ) eq 'HASH' ) ? shift->{fileHandle} : shift; _binmode($fh); my $oldCompression = $self->desiredCompressionMethod(COMPRESSION_STORED); my $status = $self->rewindData(@_); $status = $self->_writeData($fh) if $status == AZ_OK; $self->desiredCompressionMethod($oldCompression); $self->endRead(); return $status; } # write local header and data stream to file handle sub _writeToFileHandle { my $self = shift; my $fh = shift; my $fhIsSeekable = shift; my $offset = shift; return _error("no member name given for $self") if $self->fileName() eq ''; $self->{'writeLocalHeaderRelativeOffset'} = $offset; $self->{'wasWritten'} = 0; # Determine if I need to write a data descriptor # I need to do this if I can't refresh the header # and I don't know compressed size or crc32 fields. my $headerFieldsUnknown = ( ( $self->uncompressedSize() > 0 ) and ($self->compressionMethod() == COMPRESSION_STORED or $self->desiredCompressionMethod() == COMPRESSION_DEFLATED ) ); my $shouldWriteDataDescriptor = ( $headerFieldsUnknown and not $fhIsSeekable ); $self->hasDataDescriptor(1) if ($shouldWriteDataDescriptor); $self->{'writeOffset'} = 0; my $status = $self->rewindData(); ( $status = $self->_writeLocalFileHeader($fh) ) if $status == AZ_OK; ( $status = $self->_writeData($fh) ) if $status == AZ_OK; if ( $status == AZ_OK ) { $self->{'wasWritten'} = 1; if ( $self->hasDataDescriptor() ) { $status = $self->_writeDataDescriptor($fh); } elsif ($headerFieldsUnknown) { $status = $self->_refreshLocalFileHeader($fh); } } return $status; } # Copy my (possibly compressed) data to given file handle. # Returns C on success sub _writeData { my $self = shift; my $writeFh = shift; # If symbolic link, just create one if the operating system is Linux, Unix, BSD or VMS # TODO: Add checks for other operating systems if ( $self->{'isSymbolicLink'} == 1 && $^O eq 'linux' ) { my $chunkSize = $Archive::Zip::ChunkSize; my ( $outRef, $status ) = $self->readChunk($chunkSize); symlink $$outRef, $self->{'newName'}; } else { return AZ_OK if ( $self->uncompressedSize() == 0 ); my $status; my $chunkSize = $Archive::Zip::ChunkSize; while ( $self->_readDataRemaining() > 0 ) { my $outRef; ( $outRef, $status ) = $self->readChunk($chunkSize); return $status if ( $status != AZ_OK and $status != AZ_STREAM_END ); if ( length($$outRef) > 0 ) { $self->_print($writeFh, $$outRef) or return _ioError("write error during copy"); } last if $status == AZ_STREAM_END; } $self->{'compressedSize'} = $self->_writeOffset(); } return AZ_OK; } # Return true if I depend on the named file sub _usesFileNamed { return 0; } 1; FILE%d3a259c9/Archive/Zip/NewFileMember.pm#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/NewFileMember.pm" package Archive::Zip::NewFileMember; use strict; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw ( Archive::Zip::FileMember ); } use Archive::Zip qw( :CONSTANTS :ERROR_CODES :UTILITY_METHODS ); # Given a file name, set up for eventual writing. sub _newFromFileNamed { my $class = shift; my $fileName = shift; # local FS format my $newName = shift; $newName = _asZipDirName($fileName) unless defined($newName); return undef unless ( stat($fileName) && -r _ && !-d _ ); my $self = $class->new(@_); $self->{'fileName'} = $newName; $self->{'externalFileName'} = $fileName; $self->{'compressionMethod'} = COMPRESSION_STORED; my @stat = stat(_); $self->{'compressedSize'} = $self->{'uncompressedSize'} = $stat[7]; $self->desiredCompressionMethod( ( $self->compressedSize() > 0 ) ? COMPRESSION_DEFLATED : COMPRESSION_STORED ); $self->unixFileAttributes( $stat[2] ); $self->setLastModFileDateTimeFromUnix( $stat[9] ); $self->isTextFile( -T _ ); return $self; } sub rewindData { my $self = shift; my $status = $self->SUPER::rewindData(@_); return $status unless $status == AZ_OK; return AZ_IO_ERROR unless $self->fh(); $self->fh()->clearerr(); $self->fh()->seek( 0, IO::Seekable::SEEK_SET ) or return _ioError( "rewinding", $self->externalFileName() ); return AZ_OK; } # Return bytes read. Note that first parameter is a ref to a buffer. # my $data; # my ( $bytesRead, $status) = $self->readRawChunk( \$data, $chunkSize ); sub _readRawChunk { my ( $self, $dataRef, $chunkSize ) = @_; return ( 0, AZ_OK ) unless $chunkSize; my $bytesRead = $self->fh()->read( $$dataRef, $chunkSize ) or return ( 0, _ioError("reading data") ); return ( $bytesRead, AZ_OK ); } # If I already exist, extraction is a no-op. sub extractToFileNamed { my $self = shift; my $name = shift; # local FS name if ( File::Spec->rel2abs($name) eq File::Spec->rel2abs( $self->externalFileName() ) and -r $name ) { return AZ_OK; } else { return $self->SUPER::extractToFileNamed( $name, @_ ); } } 1; FILE$74cc34c2/Archive/Zip/StringMember.pm #line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/StringMember.pm" package Archive::Zip::StringMember; use strict; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw( Archive::Zip::Member ); } use Archive::Zip qw( :CONSTANTS :ERROR_CODES ); # Create a new string member. Default is COMPRESSION_STORED. # Can take a ref to a string as well. sub _newFromString { my $class = shift; my $string = shift; my $name = shift; my $self = $class->new(@_); $self->contents($string); $self->fileName($name) if defined($name); # Set the file date to now $self->setLastModFileDateTimeFromUnix( time() ); $self->unixFileAttributes( $self->DEFAULT_FILE_PERMISSIONS ); return $self; } sub _become { my $self = shift; my $newClass = shift; return $self if ref($self) eq $newClass; delete( $self->{'contents'} ); return $self->SUPER::_become($newClass); } # Get or set my contents. Note that we do not call the superclass # version of this, because it calls us. sub contents { my $self = shift; my $string = shift; if ( defined($string) ) { $self->{'contents'} = pack( 'C0a*', ( ref($string) eq 'SCALAR' ) ? $$string : $string ); $self->{'uncompressedSize'} = $self->{'compressedSize'} = length( $self->{'contents'} ); $self->{'compressionMethod'} = COMPRESSION_STORED; } return $self->{'contents'}; } # Return bytes read. Note that first parameter is a ref to a buffer. # my $data; # my ( $bytesRead, $status) = $self->readRawChunk( \$data, $chunkSize ); sub _readRawChunk { my ( $self, $dataRef, $chunkSize ) = @_; $$dataRef = substr( $self->contents(), $self->_readOffset(), $chunkSize ); return ( length($$dataRef), AZ_OK ); } 1; FILE%f1a3c82b/Archive/Zip/ZipFileMember.pm5#line 1 "/usr/local/share/perl/5.10.1/Archive/Zip/ZipFileMember.pm" package Archive::Zip::ZipFileMember; use strict; use vars qw( $VERSION @ISA ); BEGIN { $VERSION = '1.30'; @ISA = qw ( Archive::Zip::FileMember ); } use Archive::Zip qw( :CONSTANTS :ERROR_CODES :PKZIP_CONSTANTS :UTILITY_METHODS ); # Create a new Archive::Zip::ZipFileMember # given a filename and optional open file handle # sub _newFromZipFile { my $class = shift; my $fh = shift; my $externalFileName = shift; my $possibleEocdOffset = shift; # normally 0 my $self = $class->new( 'crc32' => 0, 'diskNumberStart' => 0, 'localHeaderRelativeOffset' => 0, 'dataOffset' => 0, # localHeaderRelativeOffset + header length @_ ); $self->{'externalFileName'} = $externalFileName; $self->{'fh'} = $fh; $self->{'possibleEocdOffset'} = $possibleEocdOffset; return $self; } sub isDirectory { my $self = shift; return ( substr( $self->fileName, -1, 1 ) eq '/' and $self->uncompressedSize == 0 ); } # Seek to the beginning of the local header, just past the signature. # Verify that the local header signature is in fact correct. # Update the localHeaderRelativeOffset if necessary by adding the possibleEocdOffset. # Returns status. sub _seekToLocalHeader { my $self = shift; my $where = shift; # optional my $previousWhere = shift; # optional $where = $self->localHeaderRelativeOffset() unless defined($where); # avoid loop on certain corrupt files (from Julian Field) return _formatError("corrupt zip file") if defined($previousWhere) && $where == $previousWhere; my $status; my $signature; $status = $self->fh()->seek( $where, IO::Seekable::SEEK_SET ); return _ioError("seeking to local header") unless $status; ( $status, $signature ) = _readSignature( $self->fh(), $self->externalFileName(), LOCAL_FILE_HEADER_SIGNATURE ); return $status if $status == AZ_IO_ERROR; # retry with EOCD offset if any was given. if ( $status == AZ_FORMAT_ERROR && $self->{'possibleEocdOffset'} ) { $status = $self->_seekToLocalHeader( $self->localHeaderRelativeOffset() + $self->{'possibleEocdOffset'}, $where ); if ( $status == AZ_OK ) { $self->{'localHeaderRelativeOffset'} += $self->{'possibleEocdOffset'}; $self->{'possibleEocdOffset'} = 0; } } return $status; } # Because I'm going to delete the file handle, read the local file # header if the file handle is seekable. If it isn't, I assume that # I've already read the local header. # Return ( $status, $self ) sub _become { my $self = shift; my $newClass = shift; return $self if ref($self) eq $newClass; my $status = AZ_OK; if ( _isSeekable( $self->fh() ) ) { my $here = $self->fh()->tell(); $status = $self->_seekToLocalHeader(); $status = $self->_readLocalFileHeader() if $status == AZ_OK; $self->fh()->seek( $here, IO::Seekable::SEEK_SET ); return $status unless $status == AZ_OK; } delete( $self->{'eocdCrc32'} ); delete( $self->{'diskNumberStart'} ); delete( $self->{'localHeaderRelativeOffset'} ); delete( $self->{'dataOffset'} ); return $self->SUPER::_become($newClass); } sub diskNumberStart { shift->{'diskNumberStart'}; } sub localHeaderRelativeOffset { shift->{'localHeaderRelativeOffset'}; } sub dataOffset { shift->{'dataOffset'}; } # Skip local file header, updating only extra field stuff. # Assumes that fh is positioned before signature. sub _skipLocalFileHeader { my $self = shift; my $header; my $bytesRead = $self->fh()->read( $header, LOCAL_FILE_HEADER_LENGTH ); if ( $bytesRead != LOCAL_FILE_HEADER_LENGTH ) { return _ioError("reading local file header"); } my $fileNameLength; my $extraFieldLength; my $bitFlag; ( undef, # $self->{'versionNeededToExtract'}, $bitFlag, undef, # $self->{'compressionMethod'}, undef, # $self->{'lastModFileDateTime'}, undef, # $crc32, undef, # $compressedSize, undef, # $uncompressedSize, $fileNameLength, $extraFieldLength ) = unpack( LOCAL_FILE_HEADER_FORMAT, $header ); if ($fileNameLength) { $self->fh()->seek( $fileNameLength, IO::Seekable::SEEK_CUR ) or return _ioError("skipping local file name"); } if ($extraFieldLength) { $bytesRead = $self->fh()->read( $self->{'localExtraField'}, $extraFieldLength ); if ( $bytesRead != $extraFieldLength ) { return _ioError("reading local extra field"); } } $self->{'dataOffset'} = $self->fh()->tell(); if ( $bitFlag & GPBF_HAS_DATA_DESCRIPTOR_MASK ) { # Read the crc32, compressedSize, and uncompressedSize from the # extended data descriptor, which directly follows the compressed data. # # Skip over the compressed file data (assumes that EOCD compressedSize # was correct) $self->fh()->seek( $self->{'compressedSize'}, IO::Seekable::SEEK_CUR ) or return _ioError("seeking to extended local header"); # these values should be set correctly from before. my $oldCrc32 = $self->{'eocdCrc32'}; my $oldCompressedSize = $self->{'compressedSize'}; my $oldUncompressedSize = $self->{'uncompressedSize'}; my $status = $self->_readDataDescriptor(); return $status unless $status == AZ_OK; return _formatError( "CRC or size mismatch while skipping data descriptor") if ( $oldCrc32 != $self->{'crc32'} || $oldUncompressedSize != $self->{'uncompressedSize'} ); } return AZ_OK; } # Read from a local file header into myself. Returns AZ_OK if successful. # Assumes that fh is positioned after signature. # Note that crc32, compressedSize, and uncompressedSize will be 0 if # GPBF_HAS_DATA_DESCRIPTOR_MASK is set in the bitFlag. sub _readLocalFileHeader { my $self = shift; my $header; my $bytesRead = $self->fh()->read( $header, LOCAL_FILE_HEADER_LENGTH ); if ( $bytesRead != LOCAL_FILE_HEADER_LENGTH ) { return _ioError("reading local file header"); } my $fileNameLength; my $crc32; my $compressedSize; my $uncompressedSize; my $extraFieldLength; ( $self->{'versionNeededToExtract'}, $self->{'bitFlag'}, $self->{'compressionMethod'}, $self->{'lastModFileDateTime'}, $crc32, $compressedSize, $uncompressedSize, $fileNameLength, $extraFieldLength ) = unpack( LOCAL_FILE_HEADER_FORMAT, $header ); if ($fileNameLength) { my $fileName; $bytesRead = $self->fh()->read( $fileName, $fileNameLength ); if ( $bytesRead != $fileNameLength ) { return _ioError("reading local file name"); } $self->fileName($fileName); } if ($extraFieldLength) { $bytesRead = $self->fh()->read( $self->{'localExtraField'}, $extraFieldLength ); if ( $bytesRead != $extraFieldLength ) { return _ioError("reading local extra field"); } } $self->{'dataOffset'} = $self->fh()->tell(); if ( $self->hasDataDescriptor() ) { # Read the crc32, compressedSize, and uncompressedSize from the # extended data descriptor. # Skip over the compressed file data (assumes that EOCD compressedSize # was correct) $self->fh()->seek( $self->{'compressedSize'}, IO::Seekable::SEEK_CUR ) or return _ioError("seeking to extended local header"); my $status = $self->_readDataDescriptor(); return $status unless $status == AZ_OK; } else { return _formatError( "CRC or size mismatch after reading data descriptor") if ( $self->{'crc32'} != $crc32 || $self->{'uncompressedSize'} != $uncompressedSize ); } return AZ_OK; } # This will read the data descriptor, which is after the end of compressed file # data in members that that have GPBF_HAS_DATA_DESCRIPTOR_MASK set in their # bitFlag. # The only reliable way to find these is to rely on the EOCD compressedSize. # Assumes that file is positioned immediately after the compressed data. # Returns status; sets crc32, compressedSize, and uncompressedSize. sub _readDataDescriptor { my $self = shift; my $signatureData; my $header; my $crc32; my $compressedSize; my $uncompressedSize; my $bytesRead = $self->fh()->read( $signatureData, SIGNATURE_LENGTH ); return _ioError("reading header signature") if $bytesRead != SIGNATURE_LENGTH; my $signature = unpack( SIGNATURE_FORMAT, $signatureData ); # unfortunately, the signature appears to be optional. if ( $signature == DATA_DESCRIPTOR_SIGNATURE && ( $signature != $self->{'crc32'} ) ) { $bytesRead = $self->fh()->read( $header, DATA_DESCRIPTOR_LENGTH ); return _ioError("reading data descriptor") if $bytesRead != DATA_DESCRIPTOR_LENGTH; ( $crc32, $compressedSize, $uncompressedSize ) = unpack( DATA_DESCRIPTOR_FORMAT, $header ); } else { $bytesRead = $self->fh()->read( $header, DATA_DESCRIPTOR_LENGTH_NO_SIG ); return _ioError("reading data descriptor") if $bytesRead != DATA_DESCRIPTOR_LENGTH_NO_SIG; $crc32 = $signature; ( $compressedSize, $uncompressedSize ) = unpack( DATA_DESCRIPTOR_FORMAT_NO_SIG, $header ); } $self->{'eocdCrc32'} = $self->{'crc32'} unless defined( $self->{'eocdCrc32'} ); $self->{'crc32'} = $crc32; $self->{'compressedSize'} = $compressedSize; $self->{'uncompressedSize'} = $uncompressedSize; return AZ_OK; } # Read a Central Directory header. Return AZ_OK on success. # Assumes that fh is positioned right after the signature. sub _readCentralDirectoryFileHeader { my $self = shift; my $fh = $self->fh(); my $header = ''; my $bytesRead = $fh->read( $header, CENTRAL_DIRECTORY_FILE_HEADER_LENGTH ); if ( $bytesRead != CENTRAL_DIRECTORY_FILE_HEADER_LENGTH ) { return _ioError("reading central dir header"); } my ( $fileNameLength, $extraFieldLength, $fileCommentLength ); ( $self->{'versionMadeBy'}, $self->{'fileAttributeFormat'}, $self->{'versionNeededToExtract'}, $self->{'bitFlag'}, $self->{'compressionMethod'}, $self->{'lastModFileDateTime'}, $self->{'crc32'}, $self->{'compressedSize'}, $self->{'uncompressedSize'}, $fileNameLength, $extraFieldLength, $fileCommentLength, $self->{'diskNumberStart'}, $self->{'internalFileAttributes'}, $self->{'externalFileAttributes'}, $self->{'localHeaderRelativeOffset'} ) = unpack( CENTRAL_DIRECTORY_FILE_HEADER_FORMAT, $header ); $self->{'eocdCrc32'} = $self->{'crc32'}; if ($fileNameLength) { $bytesRead = $fh->read( $self->{'fileName'}, $fileNameLength ); if ( $bytesRead != $fileNameLength ) { _ioError("reading central dir filename"); } } if ($extraFieldLength) { $bytesRead = $fh->read( $self->{'cdExtraField'}, $extraFieldLength ); if ( $bytesRead != $extraFieldLength ) { return _ioError("reading central dir extra field"); } } if ($fileCommentLength) { $bytesRead = $fh->read( $self->{'fileComment'}, $fileCommentLength ); if ( $bytesRead != $fileCommentLength ) { return _ioError("reading central dir file comment"); } } # NK 10/21/04: added to avoid problems with manipulated headers if ( $self->{'uncompressedSize'} != $self->{'compressedSize'} and $self->{'compressionMethod'} == COMPRESSION_STORED ) { $self->{'uncompressedSize'} = $self->{'compressedSize'}; } $self->desiredCompressionMethod( $self->compressionMethod() ); return AZ_OK; } sub rewindData { my $self = shift; my $status = $self->SUPER::rewindData(@_); return $status unless $status == AZ_OK; return AZ_IO_ERROR unless $self->fh(); $self->fh()->clearerr(); # Seek to local file header. # The only reason that I'm doing this this way is that the extraField # length seems to be different between the CD header and the LF header. $status = $self->_seekToLocalHeader(); return $status unless $status == AZ_OK; # skip local file header $status = $self->_skipLocalFileHeader(); return $status unless $status == AZ_OK; # Seek to beginning of file data $self->fh()->seek( $self->dataOffset(), IO::Seekable::SEEK_SET ) or return _ioError("seeking to beginning of file data"); return AZ_OK; } # Return bytes read. Note that first parameter is a ref to a buffer. # my $data; # my ( $bytesRead, $status) = $self->readRawChunk( \$data, $chunkSize ); sub _readRawChunk { my ( $self, $dataRef, $chunkSize ) = @_; return ( 0, AZ_OK ) unless $chunkSize; my $bytesRead = $self->fh()->read( $$dataRef, $chunkSize ) or return ( 0, _ioError("reading data") ); return ( $bytesRead, AZ_OK ); } 1; FILE73555b0a/Compress/Zlib.pm8#line 1 "/usr/local/share/perl/5.10.1/Compress/Zlib.pm" package Compress::Zlib; require 5.004 ; require Exporter; use Carp ; use IO::Handle ; use Scalar::Util qw(dualvar); use IO::Compress::Base::Common 2.033 ; use Compress::Raw::Zlib 2.033 ; use IO::Compress::Gzip 2.033 ; use IO::Uncompress::Gunzip 2.033 ; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); $VERSION = '2.033'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @ISA = qw(Exporter); # Items to export into callers namespace by default. Note: do not export # names by default without a very good reason. Use EXPORT_OK instead. # Do not simply export all your public functions/methods/constants. @EXPORT = qw( deflateInit inflateInit compress uncompress gzopen $gzerrno ); push @EXPORT, @Compress::Raw::Zlib::EXPORT ; @EXPORT_OK = qw(memGunzip memGzip zlib_version); %EXPORT_TAGS = ( ALL => \@EXPORT ); BEGIN { *zlib_version = \&Compress::Raw::Zlib::zlib_version; } use constant FLAG_APPEND => 1 ; use constant FLAG_CRC => 2 ; use constant FLAG_ADLER => 4 ; use constant FLAG_CONSUME_INPUT => 8 ; our (@my_z_errmsg); @my_z_errmsg = ( "need dictionary", # Z_NEED_DICT 2 "stream end", # Z_STREAM_END 1 "", # Z_OK 0 "file error", # Z_ERRNO (-1) "stream error", # Z_STREAM_ERROR (-2) "data error", # Z_DATA_ERROR (-3) "insufficient memory", # Z_MEM_ERROR (-4) "buffer error", # Z_BUF_ERROR (-5) "incompatible version",# Z_VERSION_ERROR(-6) ); sub _set_gzerr { my $value = shift ; if ($value == 0) { $Compress::Zlib::gzerrno = 0 ; } elsif ($value == Z_ERRNO() || $value > 2) { $Compress::Zlib::gzerrno = $! ; } else { $Compress::Zlib::gzerrno = dualvar($value+0, $my_z_errmsg[2 - $value]); } return $value ; } sub _set_gzerr_undef { _set_gzerr(@_); return undef; } sub _save_gzerr { my $gz = shift ; my $test_eof = shift ; my $value = $gz->errorNo() || 0 ; if ($test_eof) { #my $gz = $self->[0] ; # gzread uses Z_STREAM_END to denote a successful end $value = Z_STREAM_END() if $gz->eof() && $value == 0 ; } _set_gzerr($value) ; } sub gzopen($$) { my ($file, $mode) = @_ ; my $gz ; my %defOpts = (Level => Z_DEFAULT_COMPRESSION(), Strategy => Z_DEFAULT_STRATEGY(), ); my $writing ; $writing = ! ($mode =~ /r/i) ; $writing = ($mode =~ /[wa]/i) ; $defOpts{Level} = $1 if $mode =~ /(\d)/; $defOpts{Strategy} = Z_FILTERED() if $mode =~ /f/i; $defOpts{Strategy} = Z_HUFFMAN_ONLY() if $mode =~ /h/i; $defOpts{Append} = 1 if $mode =~ /a/i; my $infDef = $writing ? 'deflate' : 'inflate'; my @params = () ; croak "gzopen: file parameter is not a filehandle or filename" unless isaFilehandle $file || isaFilename $file || (ref $file && ref $file eq 'SCALAR'); return undef unless $mode =~ /[rwa]/i ; _set_gzerr(0) ; if ($writing) { $gz = new IO::Compress::Gzip($file, Minimal => 1, AutoClose => 1, %defOpts) or $Compress::Zlib::gzerrno = $IO::Compress::Gzip::GzipError; } else { $gz = new IO::Uncompress::Gunzip($file, Transparent => 1, Append => 0, AutoClose => 1, MultiStream => 1, Strict => 0) or $Compress::Zlib::gzerrno = $IO::Uncompress::Gunzip::GunzipError; } return undef if ! defined $gz ; bless [$gz, $infDef], 'Compress::Zlib::gzFile'; } sub Compress::Zlib::gzFile::gzread { my $self = shift ; return _set_gzerr(Z_STREAM_ERROR()) if $self->[1] ne 'inflate'; my $len = defined $_[1] ? $_[1] : 4096 ; if ($self->gzeof() || $len == 0) { # Zap the output buffer to match ver 1 behaviour. $_[0] = "" ; return 0 ; } my $gz = $self->[0] ; my $status = $gz->read($_[0], $len) ; _save_gzerr($gz, 1); return $status ; } sub Compress::Zlib::gzFile::gzreadline { my $self = shift ; my $gz = $self->[0] ; { # Maintain backward compatibility with 1.x behaviour # It didn't support $/, so this can't either. local $/ = "\n" ; $_[0] = $gz->getline() ; } _save_gzerr($gz, 1); return defined $_[0] ? length $_[0] : 0 ; } sub Compress::Zlib::gzFile::gzwrite { my $self = shift ; my $gz = $self->[0] ; return _set_gzerr(Z_STREAM_ERROR()) if $self->[1] ne 'deflate'; $] >= 5.008 and (utf8::downgrade($_[0], 1) or croak "Wide character in gzwrite"); my $status = $gz->write($_[0]) ; _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gztell { my $self = shift ; my $gz = $self->[0] ; my $status = $gz->tell() ; _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzseek { my $self = shift ; my $offset = shift ; my $whence = shift ; my $gz = $self->[0] ; my $status ; eval { $status = $gz->seek($offset, $whence) ; }; if ($@) { my $error = $@; $error =~ s/^.*: /gzseek: /; $error =~ s/ at .* line \d+\s*$//; croak $error; } _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzflush { my $self = shift ; my $f = shift ; my $gz = $self->[0] ; my $status = $gz->flush($f) ; my $err = _save_gzerr($gz); return $status ? 0 : $err; } sub Compress::Zlib::gzFile::gzclose { my $self = shift ; my $gz = $self->[0] ; my $status = $gz->close() ; my $err = _save_gzerr($gz); return $status ? 0 : $err; } sub Compress::Zlib::gzFile::gzeof { my $self = shift ; my $gz = $self->[0] ; return 0 if $self->[1] ne 'inflate'; my $status = $gz->eof() ; _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzsetparams { my $self = shift ; croak "Usage: Compress::Zlib::gzFile::gzsetparams(file, level, strategy)" unless @_ eq 2 ; my $gz = $self->[0] ; my $level = shift ; my $strategy = shift; return _set_gzerr(Z_STREAM_ERROR()) if $self->[1] ne 'deflate'; my $status = *$gz->{Compress}->deflateParams(-Level => $level, -Strategy => $strategy); _save_gzerr($gz); return $status ; } sub Compress::Zlib::gzFile::gzerror { my $self = shift ; my $gz = $self->[0] ; return $Compress::Zlib::gzerrno ; } sub compress($;$) { my ($x, $output, $err, $in) =('', '', '', '') ; if (ref $_[0] ) { $in = $_[0] ; croak "not a scalar reference" unless ref $in eq 'SCALAR' ; } else { $in = \$_[0] ; } $] >= 5.008 and (utf8::downgrade($$in, 1) or croak "Wide character in compress"); my $level = (@_ == 2 ? $_[1] : Z_DEFAULT_COMPRESSION() ); $x = new Compress::Raw::Zlib::Deflate -AppendOutput => 1, -Level => $level or return undef ; $err = $x->deflate($in, $output) ; return undef unless $err == Z_OK() ; $err = $x->flush($output) ; return undef unless $err == Z_OK() ; return $output ; } sub uncompress($) { my ($x, $output, $err, $in) =('', '', '', '') ; if (ref $_[0] ) { $in = $_[0] ; croak "not a scalar reference" unless ref $in eq 'SCALAR' ; } else { $in = \$_[0] ; } $] >= 5.008 and (utf8::downgrade($$in, 1) or croak "Wide character in uncompress"); $x = new Compress::Raw::Zlib::Inflate -ConsumeInput => 0 or return undef ; $err = $x->inflate($in, $output) ; return undef unless $err == Z_STREAM_END() ; return $output ; } sub deflateInit(@) { my ($got) = ParseParameters(0, { 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'Level' => [1, 1, Parse_signed, Z_DEFAULT_COMPRESSION()], 'Method' => [1, 1, Parse_unsigned, Z_DEFLATED()], 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], 'MemLevel' => [1, 1, Parse_unsigned, MAX_MEM_LEVEL()], 'Strategy' => [1, 1, Parse_unsigned, Z_DEFAULT_STRATEGY()], 'Dictionary' => [1, 1, Parse_any, ""], }, @_ ) ; croak "Compress::Zlib::deflateInit: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $obj ; my $status = 0 ; ($obj, $status) = Compress::Raw::Zlib::_deflateInit(0, $got->value('Level'), $got->value('Method'), $got->value('WindowBits'), $got->value('MemLevel'), $got->value('Strategy'), $got->value('Bufsize'), $got->value('Dictionary')) ; my $x = ($status == Z_OK() ? bless $obj, "Zlib::OldDeflate" : undef) ; return wantarray ? ($x, $status) : $x ; } sub inflateInit(@) { my ($got) = ParseParameters(0, { 'Bufsize' => [1, 1, Parse_unsigned, 4096], 'WindowBits' => [1, 1, Parse_signed, MAX_WBITS()], 'Dictionary' => [1, 1, Parse_any, ""], }, @_) ; croak "Compress::Zlib::inflateInit: Bufsize must be >= 1, you specified " . $got->value('Bufsize') unless $got->value('Bufsize') >= 1; my $status = 0 ; my $obj ; ($obj, $status) = Compress::Raw::Zlib::_inflateInit(FLAG_CONSUME_INPUT, $got->value('WindowBits'), $got->value('Bufsize'), $got->value('Dictionary')) ; my $x = ($status == Z_OK() ? bless $obj, "Zlib::OldInflate" : undef) ; wantarray ? ($x, $status) : $x ; } package Zlib::OldDeflate ; our (@ISA); @ISA = qw(Compress::Raw::Zlib::deflateStream); sub deflate { my $self = shift ; my $output ; my $status = $self->SUPER::deflate($_[0], $output) ; wantarray ? ($output, $status) : $output ; } sub flush { my $self = shift ; my $output ; my $flag = shift || Compress::Zlib::Z_FINISH(); my $status = $self->SUPER::flush($output, $flag) ; wantarray ? ($output, $status) : $output ; } package Zlib::OldInflate ; our (@ISA); @ISA = qw(Compress::Raw::Zlib::inflateStream); sub inflate { my $self = shift ; my $output ; my $status = $self->SUPER::inflate($_[0], $output) ; wantarray ? ($output, $status) : $output ; } package Compress::Zlib ; use IO::Compress::Gzip::Constants 2.033 ; sub memGzip($) { my $out; # if the deflation buffer isn't a reference, make it one my $string = (ref $_[0] ? $_[0] : \$_[0]) ; $] >= 5.008 and (utf8::downgrade($$string, 1) or croak "Wide character in memGzip"); _set_gzerr(0); if ( ! IO::Compress::Gzip::gzip($string, \$out, Minimal => 1) ) { $Compress::Zlib::gzerrno = $IO::Compress::Gzip::GzipError; return undef ; } return $out; } sub _removeGzipHeader($) { my $string = shift ; return Z_DATA_ERROR() if length($$string) < GZIP_MIN_HEADER_SIZE ; my ($magic1, $magic2, $method, $flags, $time, $xflags, $oscode) = unpack ('CCCCVCC', $$string); return Z_DATA_ERROR() unless $magic1 == GZIP_ID1 and $magic2 == GZIP_ID2 and $method == Z_DEFLATED() and !($flags & GZIP_FLG_RESERVED) ; substr($$string, 0, GZIP_MIN_HEADER_SIZE) = '' ; # skip extra field if ($flags & GZIP_FLG_FEXTRA) { return Z_DATA_ERROR() if length($$string) < GZIP_FEXTRA_HEADER_SIZE ; my ($extra_len) = unpack ('v', $$string); $extra_len += GZIP_FEXTRA_HEADER_SIZE; return Z_DATA_ERROR() if length($$string) < $extra_len ; substr($$string, 0, $extra_len) = ''; } # skip orig name if ($flags & GZIP_FLG_FNAME) { my $name_end = index ($$string, GZIP_NULL_BYTE); return Z_DATA_ERROR() if $name_end == -1 ; substr($$string, 0, $name_end + 1) = ''; } # skip comment if ($flags & GZIP_FLG_FCOMMENT) { my $comment_end = index ($$string, GZIP_NULL_BYTE); return Z_DATA_ERROR() if $comment_end == -1 ; substr($$string, 0, $comment_end + 1) = ''; } # skip header crc if ($flags & GZIP_FLG_FHCRC) { return Z_DATA_ERROR() if length ($$string) < GZIP_FHCRC_SIZE ; substr($$string, 0, GZIP_FHCRC_SIZE) = ''; } return Z_OK(); } sub _ret_gun_error { $Compress::Zlib::gzerrno = $IO::Uncompress::Gunzip::GunzipError; return undef; } sub memGunzip($) { # if the buffer isn't a reference, make it one my $string = (ref $_[0] ? $_[0] : \$_[0]); $] >= 5.008 and (utf8::downgrade($$string, 1) or croak "Wide character in memGunzip"); _set_gzerr(0); my $status = _removeGzipHeader($string) ; $status == Z_OK() or return _set_gzerr_undef($status); my $bufsize = length $$string > 4096 ? length $$string : 4096 ; my $x = new Compress::Raw::Zlib::Inflate({-WindowBits => - MAX_WBITS(), -Bufsize => $bufsize}) or return _ret_gun_error(); my $output = "" ; $status = $x->inflate($string, $output); if ( $status == Z_OK() ) { _set_gzerr(Z_DATA_ERROR()); return undef; } return _ret_gun_error() if ($status != Z_STREAM_END()); if (length $$string >= 8) { my ($crc, $len) = unpack ("VV", substr($$string, 0, 8)); substr($$string, 0, 8) = ''; return _set_gzerr_undef(Z_DATA_ERROR()) unless $len == length($output) and $crc == crc32($output); } else { $$string = ''; } return $output; } # Autoload methods go after __END__, and are processed by the autosplit program. 1; __END__ #line 1484 FILEd8ac115a/File/GlobMapper.pm#line 1 "/usr/local/share/perl/5.10.1/File/GlobMapper.pm" package File::GlobMapper; use strict; use warnings; use Carp; our ($CSH_GLOB); BEGIN { if ($] < 5.006) { require File::BSDGlob; import File::BSDGlob qw(:glob) ; $CSH_GLOB = File::BSDGlob::GLOB_CSH() ; *globber = \&File::BSDGlob::csh_glob; } else { require File::Glob; import File::Glob qw(:glob) ; $CSH_GLOB = File::Glob::GLOB_CSH() ; #*globber = \&File::Glob::bsd_glob; *globber = \&File::Glob::csh_glob; } } our ($Error); our ($VERSION, @EXPORT_OK); $VERSION = '1.000'; @EXPORT_OK = qw( globmap ); our ($noPreBS, $metachars, $matchMetaRE, %mapping, %wildCount); $noPreBS = '(? '([^/]*)', '?' => '([^/])', '.' => '\.', '[' => '([', '(' => '(', ')' => ')', ); %wildCount = map { $_ => 1 } qw/ * ? . { ( [ /; sub globmap ($$;) { my $inputGlob = shift ; my $outputGlob = shift ; my $obj = new File::GlobMapper($inputGlob, $outputGlob, @_) or croak "globmap: $Error" ; return $obj->getFileMap(); } sub new { my $class = shift ; my $inputGlob = shift ; my $outputGlob = shift ; # TODO -- flags needs to default to whatever File::Glob does my $flags = shift || $CSH_GLOB ; #my $flags = shift ; $inputGlob =~ s/^\s*\<\s*//; $inputGlob =~ s/\s*\>\s*$//; $outputGlob =~ s/^\s*\<\s*//; $outputGlob =~ s/\s*\>\s*$//; my %object = ( InputGlob => $inputGlob, OutputGlob => $outputGlob, GlobFlags => $flags, Braces => 0, WildCount => 0, Pairs => [], Sigil => '#', ); my $self = bless \%object, ref($class) || $class ; $self->_parseInputGlob() or return undef ; $self->_parseOutputGlob() or return undef ; my @inputFiles = globber($self->{InputGlob}, $flags) ; if (GLOB_ERROR) { $Error = $!; return undef ; } #if (whatever) { my $missing = grep { ! -e $_ } @inputFiles ; if ($missing) { $Error = "$missing input files do not exist"; return undef ; } } $self->{InputFiles} = \@inputFiles ; $self->_getFiles() or return undef ; return $self; } sub _retError { my $string = shift ; $Error = "$string in input fileglob" ; return undef ; } sub _unmatched { my $delimeter = shift ; _retError("Unmatched $delimeter"); return undef ; } sub _parseBit { my $self = shift ; my $string = shift ; my $out = ''; my $depth = 0 ; while ($string =~ s/(.*?)$noPreBS(,|$matchMetaRE)//) { $out .= quotemeta($1) ; $out .= $mapping{$2} if defined $mapping{$2}; ++ $self->{WildCount} if $wildCount{$2} ; if ($2 eq ',') { return _unmatched "(" if $depth ; $out .= '|'; } elsif ($2 eq '(') { ++ $depth ; } elsif ($2 eq ')') { return _unmatched ")" if ! $depth ; -- $depth ; } elsif ($2 eq '[') { # TODO -- quotemeta & check no '/' # TODO -- check for \] & other \ within the [] $string =~ s#(.*?\])## or return _unmatched "[" ; $out .= "$1)" ; } elsif ($2 eq ']') { return _unmatched "]" ; } elsif ($2 eq '{' || $2 eq '}') { return _retError "Nested {} not allowed" ; } } $out .= quotemeta $string; return _unmatched "(" if $depth ; return $out ; } sub _parseInputGlob { my $self = shift ; my $string = $self->{InputGlob} ; my $inGlob = ''; # Multiple concatenated *'s don't make sense #$string =~ s#\*\*+#*# ; # TODO -- Allow space to delimit patterns? #my @strings = split /\s+/, $string ; #for my $str (@strings) my $out = ''; my $depth = 0 ; while ($string =~ s/(.*?)$noPreBS($matchMetaRE)//) { $out .= quotemeta($1) ; $out .= $mapping{$2} if defined $mapping{$2}; ++ $self->{WildCount} if $wildCount{$2} ; if ($2 eq '(') { ++ $depth ; } elsif ($2 eq ')') { return _unmatched ")" if ! $depth ; -- $depth ; } elsif ($2 eq '[') { # TODO -- quotemeta & check no '/' or '(' or ')' # TODO -- check for \] & other \ within the [] $string =~ s#(.*?\])## or return _unmatched "["; $out .= "$1)" ; } elsif ($2 eq ']') { return _unmatched "]" ; } elsif ($2 eq '}') { return _unmatched "}" ; } elsif ($2 eq '{') { # TODO -- check no '/' within the {} # TODO -- check for \} & other \ within the {} my $tmp ; unless ( $string =~ s/(.*?)$noPreBS\}//) { return _unmatched "{"; } #$string =~ s#(.*?)\}##; #my $alt = join '|', # map { quotemeta $_ } # split "$noPreBS,", $1 ; my $alt = $self->_parseBit($1); defined $alt or return 0 ; $out .= "($alt)" ; ++ $self->{Braces} ; } } return _unmatched "(" if $depth ; $out .= quotemeta $string ; $self->{InputGlob} =~ s/$noPreBS[\(\)]//g; $self->{InputPattern} = $out ; #print "# INPUT '$self->{InputGlob}' => '$out'\n"; return 1 ; } sub _parseOutputGlob { my $self = shift ; my $string = $self->{OutputGlob} ; my $maxwild = $self->{WildCount}; if ($self->{GlobFlags} & GLOB_TILDE) #if (1) { $string =~ s{ ^ ~ # find a leading tilde ( # save this in $1 [^/] # a non-slash character * # repeated 0 or more times (0 means me) ) }{ $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} ) }ex; } # max #1 must be == to max no of '*' in input while ( $string =~ m/#(\d)/g ) { croak "Max wild is #$maxwild, you tried #$1" if $1 > $maxwild ; } my $noPreBS = '(?{OutputGlob}' => '$string'\n"; $self->{OutputPattern} = $string ; return 1 ; } sub _getFiles { my $self = shift ; my %outInMapping = (); my %inFiles = () ; foreach my $inFile (@{ $self->{InputFiles} }) { next if $inFiles{$inFile} ++ ; my $outFile = $inFile ; if ( $inFile =~ m/$self->{InputPattern}/ ) { no warnings 'uninitialized'; eval "\$outFile = $self->{OutputPattern};" ; if (defined $outInMapping{$outFile}) { $Error = "multiple input files map to one output file"; return undef ; } $outInMapping{$outFile} = $inFile; push @{ $self->{Pairs} }, [$inFile, $outFile]; } } return 1 ; } sub getFileMap { my $self = shift ; return $self->{Pairs} ; } sub getHash { my $self = shift ; return { map { $_->[0] => $_->[1] } @{ $self->{Pairs} } } ; } 1; __END__ #line 680FILE'd8c8fc34/IO/Compress/Adapter/Deflate.pm C#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/Adapter/Deflate.pm" package IO::Compress::Adapter::Deflate ; use strict; use warnings; use bytes; use IO::Compress::Base::Common 2.033 qw(:Status); use Compress::Raw::Zlib 2.033 qw(Z_OK Z_FINISH MAX_WBITS) ; our ($VERSION); $VERSION = '2.033'; sub mkCompObject { my $crc32 = shift ; my $adler32 = shift ; my $level = shift ; my $strategy = shift ; my ($def, $status) = new Compress::Raw::Zlib::Deflate -AppendOutput => 1, -CRC32 => $crc32, -ADLER32 => $adler32, -Level => $level, -Strategy => $strategy, -WindowBits => - MAX_WBITS; return (undef, "Cannot create Deflate object: $status", $status) if $status != Z_OK; return bless {'Def' => $def, 'Error' => '', } ; } sub compr { my $self = shift ; my $def = $self->{Def}; my $status = $def->deflate($_[0], $_[1]) ; $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "Deflate Error: $status"; return STATUS_ERROR; } return STATUS_OK; } sub flush { my $self = shift ; my $def = $self->{Def}; my $opt = $_[1] || Z_FINISH; my $status = $def->flush($_[0], $opt); $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "Deflate Error: $status"; return STATUS_ERROR; } return STATUS_OK; } sub close { my $self = shift ; my $def = $self->{Def}; $def->flush($_[0], Z_FINISH) if defined $def ; } sub reset { my $self = shift ; my $def = $self->{Def}; my $status = $def->deflateReset() ; $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "Deflate Error: $status"; return STATUS_ERROR; } return STATUS_OK; } sub deflateParams { my $self = shift ; my $def = $self->{Def}; my $status = $def->deflateParams(@_); $self->{ErrorNo} = $status; if ($status != Z_OK) { $self->{Error} = "deflateParams Error: $status"; return STATUS_ERROR; } return STATUS_OK; } #sub total_out #{ # my $self = shift ; # $self->{Def}->total_out(); #} # #sub total_in #{ # my $self = shift ; # $self->{Def}->total_in(); #} sub compressedBytes { my $self = shift ; $self->{Def}->compressedBytes(); } sub uncompressedBytes { my $self = shift ; $self->{Def}->uncompressedBytes(); } sub crc32 { my $self = shift ; $self->{Def}->crc32(); } sub adler32 { my $self = shift ; $self->{Def}->adler32(); } 1; __END__ FILE2eb13109/IO/Compress/Base.pmQK#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/Base.pm" package IO::Compress::Base ; require 5.004 ; use strict ; use warnings; use IO::Compress::Base::Common 2.033 ; use IO::File ; use Scalar::Util qw(blessed readonly); #use File::Glob; #require Exporter ; use Carp ; use Symbol; use bytes; our (@ISA, $VERSION); @ISA = qw(Exporter IO::File); $VERSION = '2.033'; #Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16. sub saveStatus { my $self = shift ; ${ *$self->{ErrorNo} } = shift() + 0 ; ${ *$self->{Error} } = '' ; return ${ *$self->{ErrorNo} } ; } sub saveErrorString { my $self = shift ; my $retval = shift ; ${ *$self->{Error} } = shift ; ${ *$self->{ErrorNo} } = shift() + 0 if @_ ; return $retval; } sub croakError { my $self = shift ; $self->saveErrorString(0, $_[0]); croak $_[0]; } sub closeError { my $self = shift ; my $retval = shift ; my $errno = *$self->{ErrorNo}; my $error = ${ *$self->{Error} }; $self->close(); *$self->{ErrorNo} = $errno ; ${ *$self->{Error} } = $error ; return $retval; } sub error { my $self = shift ; return ${ *$self->{Error} } ; } sub errorNo { my $self = shift ; return ${ *$self->{ErrorNo} } ; } sub writeAt { my $self = shift ; my $offset = shift; my $data = shift; if (defined *$self->{FH}) { my $here = tell(*$self->{FH}); return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) if $here < 0 ; seek(*$self->{FH}, $offset, SEEK_SET) or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; defined *$self->{FH}->write($data, length $data) or return $self->saveErrorString(undef, $!, $!) ; seek(*$self->{FH}, $here, SEEK_SET) or return $self->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; } else { substr(${ *$self->{Buffer} }, $offset, length($data)) = $data ; } return 1; } sub output { my $self = shift ; my $data = shift ; my $last = shift ; return 1 if length $data == 0 && ! $last ; if ( *$self->{FilterEnvelope} ) { *_ = \$data; &{ *$self->{FilterEnvelope} }(); } if (length $data) { if ( defined *$self->{FH} ) { defined *$self->{FH}->write( $data, length $data ) or return $self->saveErrorString(0, $!, $!); } else { ${ *$self->{Buffer} } .= $data ; } } return 1; } sub getOneShotParams { return ( 'MultiStream' => [1, 1, Parse_boolean, 1], ); } sub checkParams { my $self = shift ; my $class = shift ; my $got = shift || IO::Compress::Base::Parameters::new(); $got->parse( { # Generic Parameters 'AutoClose' => [1, 1, Parse_boolean, 0], #'Encode' => [1, 1, Parse_any, undef], 'Strict' => [0, 1, Parse_boolean, 1], 'Append' => [1, 1, Parse_boolean, 0], 'BinModeIn' => [1, 1, Parse_boolean, 0], 'FilterEnvelope' => [1, 1, Parse_any, undef], $self->getExtraParams(), *$self->{OneShot} ? $self->getOneShotParams() : (), }, @_) or $self->croakError("${class}: $got->{Error}") ; return $got ; } sub _create { my $obj = shift; my $got = shift; *$obj->{Closed} = 1 ; my $class = ref $obj; $obj->croakError("$class: Missing Output parameter") if ! @_ && ! $got ; my $outValue = shift ; my $oneShot = 1 ; if (! $got) { $oneShot = 0 ; $got = $obj->checkParams($class, undef, @_) or return undef ; } my $lax = ! $got->value('Strict') ; my $outType = whatIsOutput($outValue); $obj->ckOutputParam($class, $outValue) or return undef ; if ($outType eq 'buffer') { *$obj->{Buffer} = $outValue; } else { my $buff = "" ; *$obj->{Buffer} = \$buff ; } # Merge implies Append my $merge = $got->value('Merge') ; my $appendOutput = $got->value('Append') || $merge ; *$obj->{Append} = $appendOutput; *$obj->{FilterEnvelope} = $got->value('FilterEnvelope') ; if ($merge) { # Switch off Merge mode if output file/buffer is empty/doesn't exist if (($outType eq 'buffer' && length $$outValue == 0 ) || ($outType ne 'buffer' && (! -e $outValue || (-w _ && -z _))) ) { $merge = 0 } } # If output is a file, check that it is writable #no warnings; #if ($outType eq 'filename' && -e $outValue && ! -w _) # { return $obj->saveErrorString(undef, "Output file '$outValue' is not writable" ) } if ($got->parsed('Encode')) { my $want_encoding = $got->value('Encode'); *$obj->{Encoding} = getEncoding($obj, $class, $want_encoding); } $obj->ckParams($got) or $obj->croakError("${class}: " . $obj->error()); $obj->saveStatus(STATUS_OK) ; my $status ; if (! $merge) { *$obj->{Compress} = $obj->mkComp($got) or return undef; *$obj->{UnCompSize} = new U64 ; *$obj->{CompSize} = new U64 ; if ( $outType eq 'buffer') { ${ *$obj->{Buffer} } = '' unless $appendOutput ; } else { if ($outType eq 'handle') { *$obj->{FH} = $outValue ; setBinModeOutput(*$obj->{FH}) ; $outValue->flush() ; *$obj->{Handle} = 1 ; if ($appendOutput) { seek(*$obj->{FH}, 0, SEEK_END) or return $obj->saveErrorString(undef, "Cannot seek to end of output filehandle: $!", $!) ; } } elsif ($outType eq 'filename') { no warnings; my $mode = '>' ; $mode = '>>' if $appendOutput; *$obj->{FH} = new IO::File "$mode $outValue" or return $obj->saveErrorString(undef, "cannot open file '$outValue': $!", $!) ; *$obj->{StdIO} = ($outValue eq '-'); setBinModeOutput(*$obj->{FH}) ; } } *$obj->{Header} = $obj->mkHeader($got) ; $obj->output( *$obj->{Header} ) or return undef; } else { *$obj->{Compress} = $obj->createMerge($outValue, $outType) or return undef; } *$obj->{Closed} = 0 ; *$obj->{AutoClose} = $got->value('AutoClose') ; *$obj->{Output} = $outValue; *$obj->{ClassName} = $class; *$obj->{Got} = $got; *$obj->{OneShot} = 0 ; return $obj ; } sub ckOutputParam { my $self = shift ; my $from = shift ; my $outType = whatIsOutput($_[0]); $self->croakError("$from: output parameter not a filename, filehandle or scalar ref") if ! $outType ; #$self->croakError("$from: output filename is undef or null string") #if $outType eq 'filename' && (! defined $_[0] || $_[0] eq '') ; $self->croakError("$from: output buffer is read-only") if $outType eq 'buffer' && readonly(${ $_[0] }); return 1; } sub _def { my $obj = shift ; my $class= (caller)[0] ; my $name = (caller(1))[3] ; $obj->croakError("$name: expected at least 1 parameters\n") unless @_ >= 1 ; my $input = shift ; my $haveOut = @_ ; my $output = shift ; my $x = new IO::Compress::Base::Validator($class, *$obj->{Error}, $name, $input, $output) or return undef ; push @_, $output if $haveOut && $x->{Hash}; *$obj->{OneShot} = 1 ; my $got = $obj->checkParams($name, undef, @_) or return undef ; $x->{Got} = $got ; # if ($x->{Hash}) # { # while (my($k, $v) = each %$input) # { # $v = \$input->{$k} # unless defined $v ; # # $obj->_singleTarget($x, 1, $k, $v, @_) # or return undef ; # } # # return keys %$input ; # } if ($x->{GlobMap}) { $x->{oneInput} = 1 ; foreach my $pair (@{ $x->{Pairs} }) { my ($from, $to) = @$pair ; $obj->_singleTarget($x, 1, $from, $to, @_) or return undef ; } return scalar @{ $x->{Pairs} } ; } if (! $x->{oneOutput} ) { my $inFile = ($x->{inType} eq 'filenames' || $x->{inType} eq 'filename'); $x->{inType} = $inFile ? 'filename' : 'buffer'; foreach my $in ($x->{oneInput} ? $input : @$input) { my $out ; $x->{oneInput} = 1 ; $obj->_singleTarget($x, $inFile, $in, \$out, @_) or return undef ; push @$output, \$out ; #if ($x->{outType} eq 'array') # { push @$output, \$out } #else # { $output->{$in} = \$out } } return 1 ; } # finally the 1 to 1 and n to 1 return $obj->_singleTarget($x, 1, $input, $output, @_); croak "should not be here" ; } sub _singleTarget { my $obj = shift ; my $x = shift ; my $inputIsFilename = shift; my $input = shift; if ($x->{oneInput}) { $obj->getFileInfo($x->{Got}, $input) if isaFilename($input) and $inputIsFilename ; my $z = $obj->_create($x->{Got}, @_) or return undef ; defined $z->_wr2($input, $inputIsFilename) or return $z->closeError(undef) ; return $z->close() ; } else { my $afterFirst = 0 ; my $inputIsFilename = ($x->{inType} ne 'array'); my $keep = $x->{Got}->clone(); #for my $element ( ($x->{inType} eq 'hash') ? keys %$input : @$input) for my $element ( @$input) { my $isFilename = isaFilename($element); if ( $afterFirst ++ ) { defined addInterStream($obj, $element, $isFilename) or return $obj->closeError(undef) ; } else { $obj->getFileInfo($x->{Got}, $element) if $isFilename; $obj->_create($x->{Got}, @_) or return undef ; } defined $obj->_wr2($element, $isFilename) or return $obj->closeError(undef) ; *$obj->{Got} = $keep->clone(); } return $obj->close() ; } } sub _wr2 { my $self = shift ; my $source = shift ; my $inputIsFilename = shift; my $input = $source ; if (! $inputIsFilename) { $input = \$source if ! ref $source; } if ( ref $input && ref $input eq 'SCALAR' ) { return $self->syswrite($input, @_) ; } if ( ! ref $input || isaFilehandle($input)) { my $isFilehandle = isaFilehandle($input) ; my $fh = $input ; if ( ! $isFilehandle ) { $fh = new IO::File "<$input" or return $self->saveErrorString(undef, "cannot open file '$input': $!", $!) ; } binmode $fh if *$self->{Got}->valueOrDefault('BinModeIn') ; my $status ; my $buff ; my $count = 0 ; while ($status = read($fh, $buff, 16 * 1024)) { $count += length $buff; defined $self->syswrite($buff, @_) or return undef ; } return $self->saveErrorString(undef, $!, $!) if ! defined $status ; if ( (!$isFilehandle || *$self->{AutoClose}) && $input ne '-') { $fh->close() or return undef ; } return $count ; } croak "Should not be here"; return undef; } sub addInterStream { my $self = shift ; my $input = shift ; my $inputIsFilename = shift ; if (*$self->{Got}->value('MultiStream')) { $self->getFileInfo(*$self->{Got}, $input) #if isaFilename($input) and $inputIsFilename ; if isaFilename($input) ; # TODO -- newStream needs to allow gzip/zip header to be modified return $self->newStream(); } elsif (*$self->{Got}->value('AutoFlush')) { #return $self->flush(Z_FULL_FLUSH); } return 1 ; } sub getFileInfo { } sub TIEHANDLE { return $_[0] if ref($_[0]); die "OOPS\n" ; } sub UNTIE { my $self = shift ; } sub DESTROY { my $self = shift ; local ($., $@, $!, $^E, $?); $self->close() ; # TODO - memory leak with 5.8.0 - this isn't called until # global destruction # %{ *$self } = () ; undef $self ; } sub filterUncompressed { } sub syswrite { my $self = shift ; my $buffer ; if (ref $_[0] ) { $self->croakError( *$self->{ClassName} . "::write: not a scalar reference" ) unless ref $_[0] eq 'SCALAR' ; $buffer = $_[0] ; } else { $buffer = \$_[0] ; } $] >= 5.008 and ( utf8::downgrade($$buffer, 1) or croak "Wide character in " . *$self->{ClassName} . "::write:"); if (@_ > 1) { my $slen = defined $$buffer ? length($$buffer) : 0; my $len = $slen; my $offset = 0; $len = $_[1] if $_[1] < $len; if (@_ > 2) { $offset = $_[2] || 0; $self->croakError(*$self->{ClassName} . "::write: offset outside string") if $offset > $slen; if ($offset < 0) { $offset += $slen; $self->croakError( *$self->{ClassName} . "::write: offset outside string") if $offset < 0; } my $rem = $slen - $offset; $len = $rem if $rem < $len; } $buffer = \substr($$buffer, $offset, $len) ; } return 0 if ! defined $$buffer || length $$buffer == 0 ; if (*$self->{Encoding}) { $$buffer = *$self->{Encoding}->encode($$buffer); } $self->filterUncompressed($buffer); my $buffer_length = defined $$buffer ? length($$buffer) : 0 ; *$self->{UnCompSize}->add($buffer_length) ; my $outBuffer=''; my $status = *$self->{Compress}->compr($buffer, $outBuffer) ; return $self->saveErrorString(undef, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; *$self->{CompSize}->add(length $outBuffer) ; $self->output($outBuffer) or return undef; return $buffer_length; } sub print { my $self = shift; #if (ref $self) { # $self = *$self{GLOB} ; #} if (defined $\) { if (defined $,) { defined $self->syswrite(join($,, @_) . $\); } else { defined $self->syswrite(join("", @_) . $\); } } else { if (defined $,) { defined $self->syswrite(join($,, @_)); } else { defined $self->syswrite(join("", @_)); } } } sub printf { my $self = shift; my $fmt = shift; defined $self->syswrite(sprintf($fmt, @_)); } sub flush { my $self = shift ; my $outBuffer=''; my $status = *$self->{Compress}->flush($outBuffer, @_) ; return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; if ( defined *$self->{FH} ) { *$self->{FH}->clearerr(); } *$self->{CompSize}->add(length $outBuffer) ; $self->output($outBuffer) or return 0; if ( defined *$self->{FH} ) { defined *$self->{FH}->flush() or return $self->saveErrorString(0, $!, $!); } return 1; } sub newStream { my $self = shift ; $self->_writeTrailer() or return 0 ; my $got = $self->checkParams('newStream', *$self->{Got}, @_) or return 0 ; $self->ckParams($got) or $self->croakError("newStream: $self->{Error}"); *$self->{Compress} = $self->mkComp($got) or return 0; *$self->{Header} = $self->mkHeader($got) ; $self->output(*$self->{Header} ) or return 0; *$self->{UnCompSize}->reset(); *$self->{CompSize}->reset(); return 1 ; } sub reset { my $self = shift ; return *$self->{Compress}->reset() ; } sub _writeTrailer { my $self = shift ; my $trailer = ''; my $status = *$self->{Compress}->close($trailer) ; return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; *$self->{CompSize}->add(length $trailer) ; $trailer .= $self->mkTrailer(); defined $trailer or return 0; return $self->output($trailer); } sub _writeFinalTrailer { my $self = shift ; return $self->output($self->mkFinalTrailer()); } sub close { my $self = shift ; return 1 if *$self->{Closed} || ! *$self->{Compress} ; *$self->{Closed} = 1 ; untie *$self if $] >= 5.008 ; $self->_writeTrailer() or return 0 ; $self->_writeFinalTrailer() or return 0 ; $self->output( "", 1 ) or return 0; if (defined *$self->{FH}) { #if (! *$self->{Handle} || *$self->{AutoClose}) { if ((! *$self->{Handle} || *$self->{AutoClose}) && ! *$self->{StdIO}) { $! = 0 ; *$self->{FH}->close() or return $self->saveErrorString(0, $!, $!); } delete *$self->{FH} ; # This delete can set $! in older Perls, so reset the errno $! = 0 ; } return 1; } #sub total_in #sub total_out #sub msg # #sub crc #{ # my $self = shift ; # return *$self->{Compress}->crc32() ; #} # #sub msg #{ # my $self = shift ; # return *$self->{Compress}->msg() ; #} # #sub dict_adler #{ # my $self = shift ; # return *$self->{Compress}->dict_adler() ; #} # #sub get_Level #{ # my $self = shift ; # return *$self->{Compress}->get_Level() ; #} # #sub get_Strategy #{ # my $self = shift ; # return *$self->{Compress}->get_Strategy() ; #} sub tell { my $self = shift ; return *$self->{UnCompSize}->get32bit() ; } sub eof { my $self = shift ; return *$self->{Closed} ; } sub seek { my $self = shift ; my $position = shift; my $whence = shift ; my $here = $self->tell() ; my $target = 0 ; #use IO::Handle qw(SEEK_SET SEEK_CUR SEEK_END); use IO::Handle ; if ($whence == IO::Handle::SEEK_SET) { $target = $position ; } elsif ($whence == IO::Handle::SEEK_CUR || $whence == IO::Handle::SEEK_END) { $target = $here + $position ; } else { $self->croakError(*$self->{ClassName} . "::seek: unknown value, $whence, for whence parameter"); } # short circuit if seeking to current offset return 1 if $target == $here ; # Outlaw any attempt to seek backwards $self->croakError(*$self->{ClassName} . "::seek: cannot seek backwards") if $target < $here ; # Walk the file to the new offset my $offset = $target - $here ; my $buffer ; defined $self->syswrite("\x00" x $offset) or return 0; return 1 ; } sub binmode { 1; # my $self = shift ; # return defined *$self->{FH} # ? binmode *$self->{FH} # : 1 ; } sub fileno { my $self = shift ; return defined *$self->{FH} ? *$self->{FH}->fileno() : undef ; } sub opened { my $self = shift ; return ! *$self->{Closed} ; } sub autoflush { my $self = shift ; return defined *$self->{FH} ? *$self->{FH}->autoflush(@_) : undef ; } sub input_line_number { return undef ; } sub _notAvailable { my $name = shift ; return sub { croak "$name Not Available: File opened only for output" ; } ; } *read = _notAvailable('read'); *READ = _notAvailable('read'); *readline = _notAvailable('readline'); *READLINE = _notAvailable('readline'); *getc = _notAvailable('getc'); *GETC = _notAvailable('getc'); *FILENO = \&fileno; *PRINT = \&print; *PRINTF = \&printf; *WRITE = \&syswrite; *write = \&syswrite; *SEEK = \&seek; *TELL = \&tell; *EOF = \&eof; *CLOSE = \&close; *BINMODE = \&binmode; #*sysread = \&_notAvailable; #*syswrite = \&_write; 1; __END__ #line 982 FILE#cf0535dc/IO/Compress/Base/Common.pmT#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/Base/Common.pm" package IO::Compress::Base::Common; use strict ; use warnings; use bytes; use Carp; use Scalar::Util qw(blessed readonly); use File::GlobMapper; require Exporter; our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE); @ISA = qw(Exporter); $VERSION = '2.033'; @EXPORT = qw( isaFilehandle isaFilename whatIsInput whatIsOutput isaFileGlobString cleanFileGlobString oneTarget setBinModeInput setBinModeOutput ckInOutParams createSelfTiedObject getEncoding WANT_CODE WANT_EXT WANT_UNDEF WANT_HASH STATUS_OK STATUS_ENDSTREAM STATUS_EOF STATUS_ERROR ); %EXPORT_TAGS = ( Status => [qw( STATUS_OK STATUS_ENDSTREAM STATUS_EOF STATUS_ERROR )]); use constant STATUS_OK => 0; use constant STATUS_ENDSTREAM => 1; use constant STATUS_EOF => 2; use constant STATUS_ERROR => -1; sub hasEncode() { if (! defined $HAS_ENCODE) { eval { require Encode; Encode->import(); }; $HAS_ENCODE = $@ ? 0 : 1 ; } return $HAS_ENCODE; } sub getEncoding($$$) { my $obj = shift; my $class = shift ; my $want_encoding = shift ; $obj->croakError("$class: Encode module needed to use -Encode") if ! hasEncode(); my $encoding = Encode::find_encoding($want_encoding); $obj->croakError("$class: Encoding '$want_encoding' is not available") if ! $encoding; return $encoding; } our ($needBinmode); $needBinmode = ($^O eq 'MSWin32' || ($] >= 5.006 && eval ' ${^UNICODE} || ${^UTF8LOCALE} ')) ? 1 : 1 ; sub setBinModeInput($) { my $handle = shift ; binmode $handle if $needBinmode; } sub setBinModeOutput($) { my $handle = shift ; binmode $handle if $needBinmode; } sub isaFilehandle($) { use utf8; # Pragma needed to keep Perl 5.6.0 happy return (defined $_[0] and (UNIVERSAL::isa($_[0],'GLOB') or UNIVERSAL::isa($_[0],'IO::Handle') or UNIVERSAL::isa(\$_[0],'GLOB')) ) } sub isaFilename($) { return (defined $_[0] and ! ref $_[0] and UNIVERSAL::isa(\$_[0], 'SCALAR')); } sub isaFileGlobString { return defined $_[0] && $_[0] =~ /^<.*>$/; } sub cleanFileGlobString { my $string = shift ; $string =~ s/^\s*<\s*(.*)\s*>\s*$/$1/; return $string; } use constant WANT_CODE => 1 ; use constant WANT_EXT => 2 ; use constant WANT_UNDEF => 4 ; #use constant WANT_HASH => 8 ; use constant WANT_HASH => 0 ; sub whatIsInput($;$) { my $got = whatIs(@_); if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') { #use IO::File; $got = 'handle'; $_[0] = *STDIN; #$_[0] = new IO::File("<-"); } return $got; } sub whatIsOutput($;$) { my $got = whatIs(@_); if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') { $got = 'handle'; $_[0] = *STDOUT; #$_[0] = new IO::File(">-"); } return $got; } sub whatIs ($;$) { return 'handle' if isaFilehandle($_[0]); my $wantCode = defined $_[1] && $_[1] & WANT_CODE ; my $extended = defined $_[1] && $_[1] & WANT_EXT ; my $undef = defined $_[1] && $_[1] & WANT_UNDEF ; my $hash = defined $_[1] && $_[1] & WANT_HASH ; return 'undef' if ! defined $_[0] && $undef ; if (ref $_[0]) { return '' if blessed($_[0]); # is an object #return '' if UNIVERSAL::isa($_[0], 'UNIVERSAL'); # is an object return 'buffer' if UNIVERSAL::isa($_[0], 'SCALAR'); return 'array' if UNIVERSAL::isa($_[0], 'ARRAY') && $extended ; return 'hash' if UNIVERSAL::isa($_[0], 'HASH') && $hash ; return 'code' if UNIVERSAL::isa($_[0], 'CODE') && $wantCode ; return ''; } return 'fileglob' if $extended && isaFileGlobString($_[0]); return 'filename'; } sub oneTarget { return $_[0] =~ /^(code|handle|buffer|filename)$/; } sub IO::Compress::Base::Validator::new { my $class = shift ; my $Class = shift ; my $error_ref = shift ; my $reportClass = shift ; my %data = (Class => $Class, Error => $error_ref, reportClass => $reportClass, ) ; my $obj = bless \%data, $class ; local $Carp::CarpLevel = 1; my $inType = $data{inType} = whatIsInput($_[0], WANT_EXT|WANT_HASH); my $outType = $data{outType} = whatIsOutput($_[1], WANT_EXT|WANT_HASH); my $oneInput = $data{oneInput} = oneTarget($inType); my $oneOutput = $data{oneOutput} = oneTarget($outType); if (! $inType) { $obj->croakError("$reportClass: illegal input parameter") ; #return undef ; } # if ($inType eq 'hash') # { # $obj->{Hash} = 1 ; # $obj->{oneInput} = 1 ; # return $obj->validateHash($_[0]); # } if (! $outType) { $obj->croakError("$reportClass: illegal output parameter") ; #return undef ; } if ($inType ne 'fileglob' && $outType eq 'fileglob') { $obj->croakError("Need input fileglob for outout fileglob"); } # if ($inType ne 'fileglob' && $outType eq 'hash' && $inType ne 'filename' ) # { # $obj->croakError("input must ne filename or fileglob when output is a hash"); # } if ($inType eq 'fileglob' && $outType eq 'fileglob') { $data{GlobMap} = 1 ; $data{inType} = $data{outType} = 'filename'; my $mapper = new File::GlobMapper($_[0], $_[1]); if ( ! $mapper ) { return $obj->saveErrorString($File::GlobMapper::Error) ; } $data{Pairs} = $mapper->getFileMap(); return $obj; } $obj->croakError("$reportClass: input and output $inType are identical") if $inType eq $outType && $_[0] eq $_[1] && $_[0] ne '-' ; if ($inType eq 'fileglob') # && $outType ne 'fileglob' { my $glob = cleanFileGlobString($_[0]); my @inputs = glob($glob); if (@inputs == 0) { # TODO -- legal or die? die "globmap matched zero file -- legal or die???" ; } elsif (@inputs == 1) { $obj->validateInputFilenames($inputs[0]) or return undef; $_[0] = $inputs[0] ; $data{inType} = 'filename' ; $data{oneInput} = 1; } else { $obj->validateInputFilenames(@inputs) or return undef; $_[0] = [ @inputs ] ; $data{inType} = 'filenames' ; } } elsif ($inType eq 'filename') { $obj->validateInputFilenames($_[0]) or return undef; } elsif ($inType eq 'array') { $data{inType} = 'filenames' ; $obj->validateInputArray($_[0]) or return undef ; } return $obj->saveErrorString("$reportClass: output buffer is read-only") if $outType eq 'buffer' && readonly(${ $_[1] }); if ($outType eq 'filename' ) { $obj->croakError("$reportClass: output filename is undef or null string") if ! defined $_[1] || $_[1] eq '' ; if (-e $_[1]) { if (-d _ ) { return $obj->saveErrorString("output file '$_[1]' is a directory"); } } } return $obj ; } sub IO::Compress::Base::Validator::saveErrorString { my $self = shift ; ${ $self->{Error} } = shift ; return undef; } sub IO::Compress::Base::Validator::croakError { my $self = shift ; $self->saveErrorString($_[0]); croak $_[0]; } sub IO::Compress::Base::Validator::validateInputFilenames { my $self = shift ; foreach my $filename (@_) { $self->croakError("$self->{reportClass}: input filename is undef or null string") if ! defined $filename || $filename eq '' ; next if $filename eq '-'; if (! -e $filename ) { return $self->saveErrorString("input file '$filename' does not exist"); } if (-d _ ) { return $self->saveErrorString("input file '$filename' is a directory"); } if (! -r _ ) { return $self->saveErrorString("cannot open file '$filename': $!"); } } return 1 ; } sub IO::Compress::Base::Validator::validateInputArray { my $self = shift ; if ( @{ $_[0] } == 0 ) { return $self->saveErrorString("empty array reference") ; } foreach my $element ( @{ $_[0] } ) { my $inType = whatIsInput($element); if (! $inType) { $self->croakError("unknown input parameter") ; } elsif($inType eq 'filename') { $self->validateInputFilenames($element) or return undef ; } else { $self->croakError("not a filename") ; } } return 1 ; } #sub IO::Compress::Base::Validator::validateHash #{ # my $self = shift ; # my $href = shift ; # # while (my($k, $v) = each %$href) # { # my $ktype = whatIsInput($k); # my $vtype = whatIsOutput($v, WANT_EXT|WANT_UNDEF) ; # # if ($ktype ne 'filename') # { # return $self->saveErrorString("hash key not filename") ; # } # # my %valid = map { $_ => 1 } qw(filename buffer array undef handle) ; # if (! $valid{$vtype}) # { # return $self->saveErrorString("hash value not ok") ; # } # } # # return $self ; #} sub createSelfTiedObject { my $class = shift || (caller)[0] ; my $error_ref = shift ; my $obj = bless Symbol::gensym(), ref($class) || $class; tie *$obj, $obj if $] >= 5.005; *$obj->{Closed} = 1 ; $$error_ref = ''; *$obj->{Error} = $error_ref ; my $errno = 0 ; *$obj->{ErrorNo} = \$errno ; return $obj; } #package Parse::Parameters ; # # #require Exporter; #our ($VERSION, @ISA, @EXPORT); #$VERSION = '2.000_08'; #@ISA = qw(Exporter); $EXPORT_TAGS{Parse} = [qw( ParseParameters Parse_any Parse_unsigned Parse_signed Parse_boolean Parse_custom Parse_string Parse_multiple Parse_writable_scalar ) ]; push @EXPORT, @{ $EXPORT_TAGS{Parse} } ; use constant Parse_any => 0x01; use constant Parse_unsigned => 0x02; use constant Parse_signed => 0x04; use constant Parse_boolean => 0x08; use constant Parse_string => 0x10; use constant Parse_custom => 0x12; #use constant Parse_store_ref => 0x100 ; use constant Parse_multiple => 0x100 ; use constant Parse_writable => 0x200 ; use constant Parse_writable_scalar => 0x400 | Parse_writable ; use constant OFF_PARSED => 0 ; use constant OFF_TYPE => 1 ; use constant OFF_DEFAULT => 2 ; use constant OFF_FIXED => 3 ; use constant OFF_FIRST_ONLY => 4 ; use constant OFF_STICKY => 5 ; sub ParseParameters { my $level = shift || 0 ; my $sub = (caller($level + 1))[3] ; local $Carp::CarpLevel = 1 ; return $_[1] if @_ == 2 && defined $_[1] && UNIVERSAL::isa($_[1], "IO::Compress::Base::Parameters"); my $p = new IO::Compress::Base::Parameters() ; $p->parse(@_) or croak "$sub: $p->{Error}" ; return $p; } #package IO::Compress::Base::Parameters; use strict; use warnings; use Carp; sub IO::Compress::Base::Parameters::new { my $class = shift ; my $obj = { Error => '', Got => {}, } ; #return bless $obj, ref($class) || $class || __PACKAGE__ ; return bless $obj, 'IO::Compress::Base::Parameters' ; } sub IO::Compress::Base::Parameters::setError { my $self = shift ; my $error = shift ; my $retval = @_ ? shift : undef ; $self->{Error} = $error ; return $retval; } #sub getError #{ # my $self = shift ; # return $self->{Error} ; #} sub IO::Compress::Base::Parameters::parse { my $self = shift ; my $default = shift ; my $got = $self->{Got} ; my $firstTime = keys %{ $got } == 0 ; my $other; my (@Bad) ; my @entered = () ; # Allow the options to be passed as a hash reference or # as the complete hash. if (@_ == 0) { @entered = () ; } elsif (@_ == 1) { my $href = $_[0] ; return $self->setError("Expected even number of parameters, got 1") if ! defined $href or ! ref $href or ref $href ne "HASH" ; foreach my $key (keys %$href) { push @entered, $key ; push @entered, \$href->{$key} ; } } else { my $count = @_; return $self->setError("Expected even number of parameters, got $count") if $count % 2 != 0 ; for my $i (0.. $count / 2 - 1) { if ($_[2 * $i] eq '__xxx__') { $other = $_[2 * $i + 1] ; } else { push @entered, $_[2 * $i] ; push @entered, \$_[2 * $i + 1] ; } } } while (my ($key, $v) = each %$default) { croak "need 4 params [@$v]" if @$v != 4 ; my ($first_only, $sticky, $type, $value) = @$v ; my $x ; $self->_checkType($key, \$value, $type, 0, \$x) or return undef ; $key = lc $key; if ($firstTime || ! $sticky) { $x = [] if $type & Parse_multiple; $got->{$key} = [0, $type, $value, $x, $first_only, $sticky] ; } $got->{$key}[OFF_PARSED] = 0 ; } my %parsed = (); if ($other) { for my $key (keys %$default) { my $canonkey = lc $key; if ($other->parsed($canonkey)) { my $value = $other->value($canonkey); #print "SET '$canonkey' to $value [$$value]\n"; ++ $parsed{$canonkey}; $got->{$canonkey}[OFF_PARSED] = 1; $got->{$canonkey}[OFF_DEFAULT] = $value; $got->{$canonkey}[OFF_FIXED] = $value; } } } for my $i (0.. @entered / 2 - 1) { my $key = $entered[2* $i] ; my $value = $entered[2* $i+1] ; #print "Key [$key] Value [$value]" ; #print defined $$value ? "[$$value]\n" : "[undef]\n"; $key =~ s/^-// ; my $canonkey = lc $key; if ($got->{$canonkey} && ($firstTime || ! $got->{$canonkey}[OFF_FIRST_ONLY] )) { my $type = $got->{$canonkey}[OFF_TYPE] ; my $parsed = $parsed{$canonkey}; ++ $parsed{$canonkey}; return $self->setError("Muliple instances of '$key' found") if $parsed && ($type & Parse_multiple) == 0 ; my $s ; $self->_checkType($key, $value, $type, 1, \$s) or return undef ; $value = $$value ; if ($type & Parse_multiple) { $got->{$canonkey}[OFF_PARSED] = 1; push @{ $got->{$canonkey}[OFF_FIXED] }, $s ; } else { $got->{$canonkey} = [1, $type, $value, $s] ; } } else { push (@Bad, $key) } } if (@Bad) { my ($bad) = join(", ", @Bad) ; return $self->setError("unknown key value(s) $bad") ; } return 1; } sub IO::Compress::Base::Parameters::_checkType { my $self = shift ; my $key = shift ; my $value = shift ; my $type = shift ; my $validate = shift ; my $output = shift; #local $Carp::CarpLevel = $level ; #print "PARSE $type $key $value $validate $sub\n" ; if ($type & Parse_writable_scalar) { return $self->setError("Parameter '$key' not writable") if $validate && readonly $$value ; if (ref $$value) { return $self->setError("Parameter '$key' not a scalar reference") if $validate && ref $$value ne 'SCALAR' ; $$output = $$value ; } else { return $self->setError("Parameter '$key' not a scalar") if $validate && ref $value ne 'SCALAR' ; $$output = $value ; } return 1; } # if ($type & Parse_store_ref) # { # #$value = $$value # # if ref ${ $value } ; # # $$output = $value ; # return 1; # } $value = $$value ; if ($type & Parse_any) { $$output = $value ; return 1; } elsif ($type & Parse_unsigned) { return $self->setError("Parameter '$key' must be an unsigned int, got 'undef'") if $validate && ! defined $value ; return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") if $validate && $value !~ /^\d+$/; $$output = defined $value ? $value : 0 ; return 1; } elsif ($type & Parse_signed) { return $self->setError("Parameter '$key' must be a signed int, got 'undef'") if $validate && ! defined $value ; return $self->setError("Parameter '$key' must be a signed int, got '$value'") if $validate && $value !~ /^-?\d+$/; $$output = defined $value ? $value : 0 ; return 1 ; } elsif ($type & Parse_boolean) { return $self->setError("Parameter '$key' must be an int, got '$value'") if $validate && defined $value && $value !~ /^\d*$/; $$output = defined $value ? $value != 0 : 0 ; return 1; } elsif ($type & Parse_string) { $$output = defined $value ? $value : "" ; return 1; } $$output = $value ; return 1; } sub IO::Compress::Base::Parameters::parsed { my $self = shift ; my $name = shift ; return $self->{Got}{lc $name}[OFF_PARSED] ; } sub IO::Compress::Base::Parameters::value { my $self = shift ; my $name = shift ; if (@_) { $self->{Got}{lc $name}[OFF_PARSED] = 1; $self->{Got}{lc $name}[OFF_DEFAULT] = $_[0] ; $self->{Got}{lc $name}[OFF_FIXED] = $_[0] ; } return $self->{Got}{lc $name}[OFF_FIXED] ; } sub IO::Compress::Base::Parameters::valueOrDefault { my $self = shift ; my $name = shift ; my $default = shift ; my $value = $self->{Got}{lc $name}[OFF_DEFAULT] ; return $value if defined $value ; return $default ; } sub IO::Compress::Base::Parameters::wantValue { my $self = shift ; my $name = shift ; return defined $self->{Got}{lc $name}[OFF_DEFAULT] ; } sub IO::Compress::Base::Parameters::clone { my $self = shift ; my $obj = { }; my %got ; while (my ($k, $v) = each %{ $self->{Got} }) { $got{$k} = [ @$v ]; } $obj->{Error} = $self->{Error}; $obj->{Got} = \%got ; return bless $obj, 'IO::Compress::Base::Parameters' ; } package U64; use constant MAX32 => 0xFFFFFFFF ; use constant HI_1 => MAX32 + 1 ; use constant LOW => 0 ; use constant HIGH => 1; sub new { my $class = shift ; my $high = 0 ; my $low = 0 ; if (@_ == 2) { $high = shift ; $low = shift ; } elsif (@_ == 1) { $low = shift ; } bless [$low, $high], $class; } sub newUnpack_V64 { my $string = shift; my ($low, $hi) = unpack "V V", $string ; bless [ $low, $hi ], "U64"; } sub newUnpack_V32 { my $string = shift; my $low = unpack "V", $string ; bless [ $low, 0 ], "U64"; } sub reset { my $self = shift; $self->[HIGH] = $self->[LOW] = 0; } sub clone { my $self = shift; bless [ @$self ], ref $self ; } sub getHigh { my $self = shift; return $self->[HIGH]; } sub getLow { my $self = shift; return $self->[LOW]; } sub get32bit { my $self = shift; return $self->[LOW]; } sub get64bit { my $self = shift; # Not using << here because the result will still be # a 32-bit value on systems where int size is 32-bits return $self->[HIGH] * HI_1 + $self->[LOW]; } sub add { my $self = shift; my $value = shift; if (ref $value eq 'U64') { $self->[HIGH] += $value->[HIGH] ; $value = $value->[LOW]; } my $available = MAX32 - $self->[LOW] ; if ($value > $available) { ++ $self->[HIGH] ; $self->[LOW] = $value - $available - 1; } else { $self->[LOW] += $value ; } } sub equal { my $self = shift; my $other = shift; return $self->[LOW] == $other->[LOW] && $self->[HIGH] == $other->[HIGH] ; } sub is64bit { my $self = shift; return $self->[HIGH] > 0 ; } sub getPacked_V64 { my $self = shift; return pack "V V", @$self ; } sub getPacked_V32 { my $self = shift; return pack "V", $self->[LOW] ; } sub pack_V64 { my $low = shift; return pack "V V", $low, 0; } package IO::Compress::Base::Common; 1; FILE39e70350/IO/Compress/Gzip.pm#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/Gzip.pm" package IO::Compress::Gzip ; require 5.004 ; use strict ; use warnings; use bytes; use IO::Compress::RawDeflate 2.033 ; use Compress::Raw::Zlib 2.033 ; use IO::Compress::Base::Common 2.033 qw(:Status :Parse createSelfTiedObject); use IO::Compress::Gzip::Constants 2.033 ; use IO::Compress::Zlib::Extra 2.033 ; BEGIN { if (defined &utf8::downgrade ) { *noUTF8 = \&utf8::downgrade } else { *noUTF8 = sub {} } } require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GzipError); $VERSION = '2.033'; $GzipError = '' ; @ISA = qw(Exporter IO::Compress::RawDeflate); @EXPORT_OK = qw( $GzipError gzip ) ; %EXPORT_TAGS = %IO::Compress::RawDeflate::DEFLATE_CONSTANTS ; push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; Exporter::export_ok_tags('all'); sub new { my $class = shift ; my $obj = createSelfTiedObject($class, \$GzipError); $obj->_create(undef, @_); } sub gzip { my $obj = createSelfTiedObject(undef, \$GzipError); return $obj->_def(@_); } #sub newHeader #{ # my $self = shift ; # #return GZIP_MINIMUM_HEADER ; # return $self->mkHeader(*$self->{Got}); #} sub getExtraParams { my $self = shift ; return ( # zlib behaviour $self->getZlibParams(), # Gzip header fields 'Minimal' => [0, 1, Parse_boolean, 0], 'Comment' => [0, 1, Parse_any, undef], 'Name' => [0, 1, Parse_any, undef], 'Time' => [0, 1, Parse_any, undef], 'TextFlag' => [0, 1, Parse_boolean, 0], 'HeaderCRC' => [0, 1, Parse_boolean, 0], 'OS_Code' => [0, 1, Parse_unsigned, $Compress::Raw::Zlib::gzip_os_code], 'ExtraField'=> [0, 1, Parse_any, undef], 'ExtraFlags'=> [0, 1, Parse_any, undef], ); } sub ckParams { my $self = shift ; my $got = shift ; # gzip always needs crc32 $got->value('CRC32' => 1); return 1 if $got->value('Merge') ; my $strict = $got->value('Strict') ; { if (! $got->parsed('Time') ) { # Modification time defaults to now. $got->value('Time' => time) ; } # Check that the Name & Comment don't have embedded NULLs # Also check that they only contain ISO 8859-1 chars. if ($got->parsed('Name') && defined $got->value('Name')) { my $name = $got->value('Name'); return $self->saveErrorString(undef, "Null Character found in Name", Z_DATA_ERROR) if $strict && $name =~ /\x00/ ; return $self->saveErrorString(undef, "Non ISO 8859-1 Character found in Name", Z_DATA_ERROR) if $strict && $name =~ /$GZIP_FNAME_INVALID_CHAR_RE/o ; } if ($got->parsed('Comment') && defined $got->value('Comment')) { my $comment = $got->value('Comment'); return $self->saveErrorString(undef, "Null Character found in Comment", Z_DATA_ERROR) if $strict && $comment =~ /\x00/ ; return $self->saveErrorString(undef, "Non ISO 8859-1 Character found in Comment", Z_DATA_ERROR) if $strict && $comment =~ /$GZIP_FCOMMENT_INVALID_CHAR_RE/o; } if ($got->parsed('OS_Code') ) { my $value = $got->value('OS_Code'); return $self->saveErrorString(undef, "OS_Code must be between 0 and 255, got '$value'") if $value < 0 || $value > 255 ; } # gzip only supports Deflate at present $got->value('Method' => Z_DEFLATED) ; if ( ! $got->parsed('ExtraFlags')) { $got->value('ExtraFlags' => 2) if $got->value('Level') == Z_BEST_COMPRESSION ; $got->value('ExtraFlags' => 4) if $got->value('Level') == Z_BEST_SPEED ; } my $data = $got->value('ExtraField') ; if (defined $data) { my $bad = IO::Compress::Zlib::Extra::parseExtraField($data, $strict, 1) ; return $self->saveErrorString(undef, "Error with ExtraField Parameter: $bad", Z_DATA_ERROR) if $bad ; $got->value('ExtraField', $data) ; } } return 1; } sub mkTrailer { my $self = shift ; return pack("V V", *$self->{Compress}->crc32(), *$self->{UnCompSize}->get32bit()); } sub getInverseClass { return ('IO::Uncompress::Gunzip', \$IO::Uncompress::Gunzip::GunzipError); } sub getFileInfo { my $self = shift ; my $params = shift; my $filename = shift ; my $defaultTime = (stat($filename))[9] ; $params->value('Name' => $filename) if ! $params->parsed('Name') ; $params->value('Time' => $defaultTime) if ! $params->parsed('Time') ; } sub mkHeader { my $self = shift ; my $param = shift ; # stort-circuit if a minimal header is requested. return GZIP_MINIMUM_HEADER if $param->value('Minimal') ; # METHOD my $method = $param->valueOrDefault('Method', GZIP_CM_DEFLATED) ; # FLAGS my $flags = GZIP_FLG_DEFAULT ; $flags |= GZIP_FLG_FTEXT if $param->value('TextFlag') ; $flags |= GZIP_FLG_FHCRC if $param->value('HeaderCRC') ; $flags |= GZIP_FLG_FEXTRA if $param->wantValue('ExtraField') ; $flags |= GZIP_FLG_FNAME if $param->wantValue('Name') ; $flags |= GZIP_FLG_FCOMMENT if $param->wantValue('Comment') ; # MTIME my $time = $param->valueOrDefault('Time', GZIP_MTIME_DEFAULT) ; # EXTRA FLAGS my $extra_flags = $param->valueOrDefault('ExtraFlags', GZIP_XFL_DEFAULT); # OS CODE my $os_code = $param->valueOrDefault('OS_Code', GZIP_OS_DEFAULT) ; my $out = pack("C4 V C C", GZIP_ID1, # ID1 GZIP_ID2, # ID2 $method, # Compression Method $flags, # Flags $time, # Modification Time $extra_flags, # Extra Flags $os_code, # Operating System Code ) ; # EXTRA if ($flags & GZIP_FLG_FEXTRA) { my $extra = $param->value('ExtraField') ; $out .= pack("v", length $extra) . $extra ; } # NAME if ($flags & GZIP_FLG_FNAME) { my $name .= $param->value('Name') ; $name =~ s/\x00.*$//; $out .= $name ; # Terminate the filename with NULL unless it already is $out .= GZIP_NULL_BYTE if !length $name or substr($name, 1, -1) ne GZIP_NULL_BYTE ; } # COMMENT if ($flags & GZIP_FLG_FCOMMENT) { my $comment .= $param->value('Comment') ; $comment =~ s/\x00.*$//; $out .= $comment ; # Terminate the comment with NULL unless it already is $out .= GZIP_NULL_BYTE if ! length $comment or substr($comment, 1, -1) ne GZIP_NULL_BYTE; } # HEADER CRC $out .= pack("v", crc32($out) & 0x00FF ) if $param->value('HeaderCRC') ; noUTF8($out); return $out ; } sub mkFinalTrailer { return ''; } 1; __END__ #line 1243 FILE&1e56c394/IO/Compress/Gzip/Constants.pm#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/Gzip/Constants.pm" package IO::Compress::Gzip::Constants; use strict ; use warnings; use bytes; require Exporter; our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names); our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE); $VERSION = '2.033'; @ISA = qw(Exporter); @EXPORT= qw( GZIP_ID_SIZE GZIP_ID1 GZIP_ID2 GZIP_FLG_DEFAULT GZIP_FLG_FTEXT GZIP_FLG_FHCRC GZIP_FLG_FEXTRA GZIP_FLG_FNAME GZIP_FLG_FCOMMENT GZIP_FLG_RESERVED GZIP_CM_DEFLATED GZIP_MIN_HEADER_SIZE GZIP_TRAILER_SIZE GZIP_MTIME_DEFAULT GZIP_XFL_DEFAULT GZIP_FEXTRA_HEADER_SIZE GZIP_FEXTRA_MAX_SIZE GZIP_FEXTRA_SUBFIELD_HEADER_SIZE GZIP_FEXTRA_SUBFIELD_ID_SIZE GZIP_FEXTRA_SUBFIELD_LEN_SIZE GZIP_FEXTRA_SUBFIELD_MAX_SIZE $GZIP_FNAME_INVALID_CHAR_RE $GZIP_FCOMMENT_INVALID_CHAR_RE GZIP_FHCRC_SIZE GZIP_ISIZE_MAX GZIP_ISIZE_MOD_VALUE GZIP_NULL_BYTE GZIP_OS_DEFAULT %GZIP_OS_Names GZIP_MINIMUM_HEADER ); # Constant names derived from RFC 1952 use constant GZIP_ID_SIZE => 2 ; use constant GZIP_ID1 => 0x1F; use constant GZIP_ID2 => 0x8B; use constant GZIP_MIN_HEADER_SIZE => 10 ;# minimum gzip header size use constant GZIP_TRAILER_SIZE => 8 ; use constant GZIP_FLG_DEFAULT => 0x00 ; use constant GZIP_FLG_FTEXT => 0x01 ; use constant GZIP_FLG_FHCRC => 0x02 ; # called CONTINUATION in gzip use constant GZIP_FLG_FEXTRA => 0x04 ; use constant GZIP_FLG_FNAME => 0x08 ; use constant GZIP_FLG_FCOMMENT => 0x10 ; #use constant GZIP_FLG_ENCRYPTED => 0x20 ; # documented in gzip sources use constant GZIP_FLG_RESERVED => (0x20 | 0x40 | 0x80) ; use constant GZIP_XFL_DEFAULT => 0x00 ; use constant GZIP_MTIME_DEFAULT => 0x00 ; use constant GZIP_FEXTRA_HEADER_SIZE => 2 ; use constant GZIP_FEXTRA_MAX_SIZE => 0xFFFF ; use constant GZIP_FEXTRA_SUBFIELD_ID_SIZE => 2 ; use constant GZIP_FEXTRA_SUBFIELD_LEN_SIZE => 2 ; use constant GZIP_FEXTRA_SUBFIELD_HEADER_SIZE => GZIP_FEXTRA_SUBFIELD_ID_SIZE + GZIP_FEXTRA_SUBFIELD_LEN_SIZE; use constant GZIP_FEXTRA_SUBFIELD_MAX_SIZE => GZIP_FEXTRA_MAX_SIZE - GZIP_FEXTRA_SUBFIELD_HEADER_SIZE ; if (ord('A') == 193) { # EBCDIC $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x3f\xff]'; $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x0a\x11-\x14\x16-\x3f\xff]'; } else { $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x1F\x7F-\x9F]'; $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x09\x11-\x1F\x7F-\x9F]'; } use constant GZIP_FHCRC_SIZE => 2 ; # aka CONTINUATION in gzip use constant GZIP_CM_DEFLATED => 8 ; use constant GZIP_NULL_BYTE => "\x00"; use constant GZIP_ISIZE_MAX => 0xFFFFFFFF ; use constant GZIP_ISIZE_MOD_VALUE => GZIP_ISIZE_MAX + 1 ; # OS Names sourced from http://www.gzip.org/format.txt use constant GZIP_OS_DEFAULT=> 0xFF ; %GZIP_OS_Names = ( 0 => 'MS-DOS', 1 => 'Amiga', 2 => 'VMS', 3 => 'Unix', 4 => 'VM/CMS', 5 => 'Atari TOS', 6 => 'HPFS (OS/2, NT)', 7 => 'Macintosh', 8 => 'Z-System', 9 => 'CP/M', 10 => 'TOPS-20', 11 => 'NTFS (NT)', 12 => 'SMS QDOS', 13 => 'Acorn RISCOS', 14 => 'VFAT file system (Win95, NT)', 15 => 'MVS', 16 => 'BeOS', 17 => 'Tandem/NSK', 18 => 'THEOS', GZIP_OS_DEFAULT() => 'Unknown', ) ; use constant GZIP_MINIMUM_HEADER => pack("C4 V C C", GZIP_ID1, GZIP_ID2, GZIP_CM_DEFLATED, GZIP_FLG_DEFAULT, GZIP_MTIME_DEFAULT, GZIP_XFL_DEFAULT, GZIP_OS_DEFAULT) ; 1; FILE"6c82dbdd/IO/Compress/RawDeflate.pmz#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/RawDeflate.pm" package IO::Compress::RawDeflate ; # create RFC1951 # use strict ; use warnings; use bytes; use IO::Compress::Base 2.033 ; use IO::Compress::Base::Common 2.033 qw(:Status createSelfTiedObject); use IO::Compress::Adapter::Deflate 2.033 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError); $VERSION = '2.033'; $RawDeflateError = ''; @ISA = qw(Exporter IO::Compress::Base); @EXPORT_OK = qw( $RawDeflateError rawdeflate ) ; %EXPORT_TAGS = ( flush => [qw{ Z_NO_FLUSH Z_PARTIAL_FLUSH Z_SYNC_FLUSH Z_FULL_FLUSH Z_FINISH Z_BLOCK }], level => [qw{ Z_NO_COMPRESSION Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION }], strategy => [qw{ Z_FILTERED Z_HUFFMAN_ONLY Z_RLE Z_FIXED Z_DEFAULT_STRATEGY }], ); { my %seen; foreach (keys %EXPORT_TAGS ) { push @{$EXPORT_TAGS{constants}}, grep { !$seen{$_}++ } @{ $EXPORT_TAGS{$_} } } $EXPORT_TAGS{all} = $EXPORT_TAGS{constants} ; } %DEFLATE_CONSTANTS = %EXPORT_TAGS; push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; Exporter::export_ok_tags('all'); sub new { my $class = shift ; my $obj = createSelfTiedObject($class, \$RawDeflateError); return $obj->_create(undef, @_); } sub rawdeflate { my $obj = createSelfTiedObject(undef, \$RawDeflateError); return $obj->_def(@_); } sub ckParams { my $self = shift ; my $got = shift; return 1 ; } sub mkComp { my $self = shift ; my $got = shift ; my ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject( $got->value('CRC32'), $got->value('Adler32'), $got->value('Level'), $got->value('Strategy') ); return $self->saveErrorString(undef, $errstr, $errno) if ! defined $obj; return $obj; } sub mkHeader { my $self = shift ; return ''; } sub mkTrailer { my $self = shift ; return ''; } sub mkFinalTrailer { return ''; } #sub newHeader #{ # my $self = shift ; # return ''; #} sub getExtraParams { my $self = shift ; return $self->getZlibParams(); } sub getZlibParams { my $self = shift ; use IO::Compress::Base::Common 2.033 qw(:Parse); use Compress::Raw::Zlib 2.033 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY); return ( # zlib behaviour #'Method' => [0, 1, Parse_unsigned, Z_DEFLATED], 'Level' => [0, 1, Parse_signed, Z_DEFAULT_COMPRESSION], 'Strategy' => [0, 1, Parse_signed, Z_DEFAULT_STRATEGY], 'CRC32' => [0, 1, Parse_boolean, 0], 'ADLER32' => [0, 1, Parse_boolean, 0], 'Merge' => [1, 1, Parse_boolean, 0], ); } sub getInverseClass { return ('IO::Uncompress::RawInflate', \$IO::Uncompress::RawInflate::RawInflateError); } sub getFileInfo { my $self = shift ; my $params = shift; my $file = shift ; } use IO::Seekable qw(SEEK_SET); sub createMerge { my $self = shift ; my $outValue = shift ; my $outType = shift ; my ($invClass, $error_ref) = $self->getInverseClass(); eval "require $invClass" or die "aaaahhhh" ; my $inf = $invClass->new( $outValue, Transparent => 0, #Strict => 1, AutoClose => 0, Scan => 1) or return $self->saveErrorString(undef, "Cannot create InflateScan object: $$error_ref" ) ; my $end_offset = 0; $inf->scan() or return $self->saveErrorString(undef, "Error Scanning: $$error_ref", $inf->errorNo) ; $inf->zap($end_offset) or return $self->saveErrorString(undef, "Error Zapping: $$error_ref", $inf->errorNo) ; my $def = *$self->{Compress} = $inf->createDeflate(); *$self->{Header} = *$inf->{Info}{Header}; *$self->{UnCompSize} = *$inf->{UnCompSize}->clone(); *$self->{CompSize} = *$inf->{CompSize}->clone(); # TODO -- fix this #*$self->{CompSize} = new U64(0, *$self->{UnCompSize_32bit}); if ( $outType eq 'buffer') { substr( ${ *$self->{Buffer} }, $end_offset) = '' } elsif ($outType eq 'handle' || $outType eq 'filename') { *$self->{FH} = *$inf->{FH} ; delete *$inf->{FH}; *$self->{FH}->flush() ; *$self->{Handle} = 1 if $outType eq 'handle'; #seek(*$self->{FH}, $end_offset, SEEK_SET) *$self->{FH}->seek($end_offset, SEEK_SET) or return $self->saveErrorString(undef, $!, $!) ; } return $def ; } #### zlib specific methods sub deflateParams { my $self = shift ; my $level = shift ; my $strategy = shift ; my $status = *$self->{Compress}->deflateParams(Level => $level, Strategy => $strategy) ; return $self->saveErrorString(0, *$self->{Compress}{Error}, *$self->{Compress}{ErrorNo}) if $status == STATUS_ERROR; return 1; } 1; __END__ #line 1018 FILE"3c260326/IO/Compress/Zlib/Extra.pm#line 1 "/usr/local/share/perl/5.10.1/IO/Compress/Zlib/Extra.pm" package IO::Compress::Zlib::Extra; require 5.004 ; use strict ; use warnings; use bytes; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS); $VERSION = '2.033'; use IO::Compress::Gzip::Constants 2.033 ; sub ExtraFieldError { return $_[0]; return "Error with ExtraField Parameter: $_[0]" ; } sub validateExtraFieldPair { my $pair = shift ; my $strict = shift; my $gzipMode = shift ; return ExtraFieldError("Not an array ref") unless ref $pair && ref $pair eq 'ARRAY'; return ExtraFieldError("SubField must have two parts") unless @$pair == 2 ; return ExtraFieldError("SubField ID is a reference") if ref $pair->[0] ; return ExtraFieldError("SubField Data is a reference") if ref $pair->[1] ; # ID is exactly two chars return ExtraFieldError("SubField ID not two chars long") unless length $pair->[0] == GZIP_FEXTRA_SUBFIELD_ID_SIZE ; # Check that the 2nd byte of the ID isn't 0 return ExtraFieldError("SubField ID 2nd byte is 0x00") if $strict && $gzipMode && substr($pair->[0], 1, 1) eq "\x00" ; return ExtraFieldError("SubField Data too long") if length $pair->[1] > GZIP_FEXTRA_SUBFIELD_MAX_SIZE ; return undef ; } sub parseRawExtra { my $data = shift ; my $extraRef = shift; my $strict = shift; my $gzipMode = shift ; #my $lax = shift ; #return undef # if $lax ; my $XLEN = length $data ; return ExtraFieldError("Too Large") if $XLEN > GZIP_FEXTRA_MAX_SIZE; my $offset = 0 ; while ($offset < $XLEN) { return ExtraFieldError("Truncated in FEXTRA Body Section") if $offset + GZIP_FEXTRA_SUBFIELD_HEADER_SIZE > $XLEN ; my $id = substr($data, $offset, GZIP_FEXTRA_SUBFIELD_ID_SIZE); $offset += GZIP_FEXTRA_SUBFIELD_ID_SIZE; my $subLen = unpack("v", substr($data, $offset, GZIP_FEXTRA_SUBFIELD_LEN_SIZE)); $offset += GZIP_FEXTRA_SUBFIELD_LEN_SIZE ; return ExtraFieldError("Truncated in FEXTRA Body Section") if $offset + $subLen > $XLEN ; my $bad = validateExtraFieldPair( [$id, substr($data, $offset, $subLen)], $strict, $gzipMode ); return $bad if $bad ; push @$extraRef, [$id => substr($data, $offset, $subLen)] if defined $extraRef;; $offset += $subLen ; } return undef ; } sub mkSubField { my $id = shift ; my $data = shift ; return $id . pack("v", length $data) . $data ; } sub parseExtraField { my $dataRef = $_[0]; my $strict = $_[1]; my $gzipMode = $_[2]; #my $lax = @_ == 2 ? $_[1] : 1; # ExtraField can be any of # # -ExtraField => $data # # -ExtraField => [$id1, $data1, # $id2, $data2] # ... # ] # # -ExtraField => [ [$id1 => $data1], # [$id2 => $data2], # ... # ] # # -ExtraField => { $id1 => $data1, # $id2 => $data2, # ... # } if ( ! ref $dataRef ) { return undef if ! $strict; return parseRawExtra($dataRef, undef, 1, $gzipMode); } #my $data = $$dataRef; my $data = $dataRef; my $out = '' ; if (ref $data eq 'ARRAY') { if (ref $data->[0]) { foreach my $pair (@$data) { return ExtraFieldError("Not list of lists") unless ref $pair eq 'ARRAY' ; my $bad = validateExtraFieldPair($pair, $strict, $gzipMode) ; return $bad if $bad ; $out .= mkSubField(@$pair); } } else { return ExtraFieldError("Not even number of elements") unless @$data % 2 == 0; for (my $ix = 0; $ix <= length(@$data) -1 ; $ix += 2) { my $bad = validateExtraFieldPair([$data->[$ix], $data->[$ix+1]], $strict, $gzipMode) ; return $bad if $bad ; $out .= mkSubField($data->[$ix], $data->[$ix+1]); } } } elsif (ref $data eq 'HASH') { while (my ($id, $info) = each %$data) { my $bad = validateExtraFieldPair([$id, $info], $strict, $gzipMode); return $bad if $bad ; $out .= mkSubField($id, $info); } } else { return ExtraFieldError("Not a scalar, array ref or hash ref") ; } return ExtraFieldError("Too Large") if length $out > GZIP_FEXTRA_MAX_SIZE; $_[0] = $out ; return undef; } 1; __END__ FILE)15ae082a/IO/Uncompress/Adapter/Inflate.pm #line 1 "/usr/local/share/perl/5.10.1/IO/Uncompress/Adapter/Inflate.pm" package IO::Uncompress::Adapter::Inflate; use strict; use warnings; use bytes; use IO::Compress::Base::Common 2.033 qw(:Status); use Compress::Raw::Zlib 2.033 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS); our ($VERSION); $VERSION = '2.033'; sub mkUncompObject { my $crc32 = shift || 1; my $adler32 = shift || 1; my $scan = shift || 0; my $inflate ; my $status ; if ($scan) { ($inflate, $status) = new Compress::Raw::Zlib::InflateScan #LimitOutput => 1, CRC32 => $crc32, ADLER32 => $adler32, WindowBits => - MAX_WBITS ; } else { ($inflate, $status) = new Compress::Raw::Zlib::Inflate AppendOutput => 1, LimitOutput => 1, CRC32 => $crc32, ADLER32 => $adler32, WindowBits => - MAX_WBITS ; } return (undef, "Could not create Inflation object: $status", $status) if $status != Z_OK ; return bless {'Inf' => $inflate, 'CompSize' => 0, 'UnCompSize' => 0, 'Error' => '', 'ConsumesInput' => 1, } ; } sub uncompr { my $self = shift ; my $from = shift ; my $to = shift ; my $eof = shift ; my $inf = $self->{Inf}; my $status = $inf->inflate($from, $to, $eof); $self->{ErrorNo} = $status; if ($status != Z_OK && $status != Z_STREAM_END && $status != Z_BUF_ERROR) { $self->{Error} = "Inflation Error: $status"; return STATUS_ERROR; } return STATUS_OK if $status == Z_BUF_ERROR ; # ??? return STATUS_OK if $status == Z_OK ; return STATUS_ENDSTREAM if $status == Z_STREAM_END ; return STATUS_ERROR ; } sub reset { my $self = shift ; $self->{Inf}->inflateReset(); return STATUS_OK ; } #sub count #{ # my $self = shift ; # $self->{Inf}->inflateCount(); #} sub crc32 { my $self = shift ; $self->{Inf}->crc32(); } sub compressedBytes { my $self = shift ; $self->{Inf}->compressedBytes(); } sub uncompressedBytes { my $self = shift ; $self->{Inf}->uncompressedBytes(); } sub adler32 { my $self = shift ; $self->{Inf}->adler32(); } sub sync { my $self = shift ; ( $self->{Inf}->inflateSync(@_) == Z_OK) ? STATUS_OK : STATUS_ERROR ; } sub getLastBlockOffset { my $self = shift ; $self->{Inf}->getLastBlockOffset(); } sub getEndOffset { my $self = shift ; $self->{Inf}->getEndOffset(); } sub resetLastBlockByte { my $self = shift ; $self->{Inf}->resetLastBlockByte(@_); } sub createDeflateStream { my $self = shift ; my $deflate = $self->{Inf}->createDeflateStream(@_); return bless {'Def' => $deflate, 'CompSize' => 0, 'UnCompSize' => 0, 'Error' => '', }, 'IO::Compress::Adapter::Deflate'; } 1; __END__ FILE9ab79b3b/IO/Uncompress/Base.pm0#line 1 "/usr/local/share/perl/5.10.1/IO/Uncompress/Base.pm" package IO::Uncompress::Base ; use strict ; use warnings; use bytes; our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS); @ISA = qw(Exporter IO::File); $VERSION = '2.033'; use constant G_EOF => 0 ; use constant G_ERR => -1 ; use IO::Compress::Base::Common 2.033 ; #use Parse::Parameters ; use IO::File ; use Symbol; use Scalar::Util qw(readonly); use List::Util qw(min); use Carp ; %EXPORT_TAGS = ( ); push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; #Exporter::export_ok_tags('all') ; sub smartRead { my $self = $_[0]; my $out = $_[1]; my $size = $_[2]; #$$out = "" ; $$out = "" ; my $offset = 0 ; my $status = 1; if (defined *$self->{InputLength}) { return 0 if *$self->{InputLengthRemaining} <= 0 ; $size = min($size, *$self->{InputLengthRemaining}); } if ( length *$self->{Prime} ) { #$$out = substr(*$self->{Prime}, 0, $size, '') ; $$out = substr(*$self->{Prime}, 0, $size) ; substr(*$self->{Prime}, 0, $size) = '' ; if (length $$out == $size) { *$self->{InputLengthRemaining} -= length $$out if defined *$self->{InputLength}; return length $$out ; } $offset = length $$out ; } my $get_size = $size - $offset ; if (defined *$self->{FH}) { if ($offset) { # Not using this # # *$self->{FH}->read($$out, $get_size, $offset); # # because the filehandle may not support the offset parameter # An example is Net::FTP my $tmp = ''; $status = *$self->{FH}->read($tmp, $get_size) ; substr($$out, $offset) = $tmp if defined $status && $status > 0 ; } else { $status = *$self->{FH}->read($$out, $get_size) } } elsif (defined *$self->{InputEvent}) { my $got = 1 ; while (length $$out < $size) { last if ($got = *$self->{InputEvent}->($$out, $get_size)) <= 0; } if (length $$out > $size ) { #*$self->{Prime} = substr($$out, $size, length($$out), ''); *$self->{Prime} = substr($$out, $size, length($$out)); substr($$out, $size, length($$out)) = ''; } *$self->{EventEof} = 1 if $got <= 0 ; } else { no warnings 'uninitialized'; my $buf = *$self->{Buffer} ; $$buf = '' unless defined $$buf ; #$$out = '' unless defined $$out ; substr($$out, $offset) = substr($$buf, *$self->{BufferOffset}, $get_size); if (*$self->{ConsumeInput}) { substr($$buf, 0, $get_size) = '' } else { *$self->{BufferOffset} += length($$out) - $offset } } *$self->{InputLengthRemaining} -= length($$out) #- $offset if defined *$self->{InputLength}; if (! defined $status) { $self->saveStatus($!) ; return STATUS_ERROR; } $self->saveStatus(length $$out < 0 ? STATUS_ERROR : STATUS_OK) ; return length $$out; } sub pushBack { my $self = shift ; return if ! defined $_[0] || length $_[0] == 0 ; if (defined *$self->{FH} || defined *$self->{InputEvent} ) { *$self->{Prime} = $_[0] . *$self->{Prime} ; *$self->{InputLengthRemaining} += length($_[0]); } else { my $len = length $_[0]; if($len > *$self->{BufferOffset}) { *$self->{Prime} = substr($_[0], 0, $len - *$self->{BufferOffset}) . *$self->{Prime} ; *$self->{InputLengthRemaining} = *$self->{InputLength}; *$self->{BufferOffset} = 0 } else { *$self->{InputLengthRemaining} += length($_[0]); *$self->{BufferOffset} -= length($_[0]) ; } } } sub smartSeek { my $self = shift ; my $offset = shift ; my $truncate = shift; #print "smartSeek to $offset\n"; # TODO -- need to take prime into account if (defined *$self->{FH}) { *$self->{FH}->seek($offset, SEEK_SET) } else { *$self->{BufferOffset} = $offset ; substr(${ *$self->{Buffer} }, *$self->{BufferOffset}) = '' if $truncate; return 1; } } sub smartWrite { my $self = shift ; my $out_data = shift ; if (defined *$self->{FH}) { # flush needed for 5.8.0 defined *$self->{FH}->write($out_data, length $out_data) && defined *$self->{FH}->flush() ; } else { my $buf = *$self->{Buffer} ; substr($$buf, *$self->{BufferOffset}, length $out_data) = $out_data ; *$self->{BufferOffset} += length($out_data) ; return 1; } } sub smartReadExact { return $_[0]->smartRead($_[1], $_[2]) == $_[2]; } sub smartEof { my ($self) = $_[0]; local $.; return 0 if length *$self->{Prime} || *$self->{PushMode}; if (defined *$self->{FH}) { # Could use # # *$self->{FH}->eof() # # here, but this can cause trouble if # the filehandle is itself a tied handle, but it uses sysread. # Then we get into mixing buffered & non-buffered IO, which will cause trouble my $info = $self->getErrInfo(); my $buffer = ''; my $status = $self->smartRead(\$buffer, 1); $self->pushBack($buffer) if length $buffer; $self->setErrInfo($info); return $status == 0 ; } elsif (defined *$self->{InputEvent}) { *$self->{EventEof} } else { *$self->{BufferOffset} >= length(${ *$self->{Buffer} }) } } sub clearError { my $self = shift ; *$self->{ErrorNo} = 0 ; ${ *$self->{Error} } = '' ; } sub getErrInfo { my $self = shift ; return [ *$self->{ErrorNo}, ${ *$self->{Error} } ] ; } sub setErrInfo { my $self = shift ; my $ref = shift; *$self->{ErrorNo} = $ref->[0] ; ${ *$self->{Error} } = $ref->[1] ; } sub saveStatus { my $self = shift ; my $errno = shift() + 0 ; #return $errno unless $errno || ! defined *$self->{ErrorNo}; #return $errno unless $errno ; *$self->{ErrorNo} = $errno; ${ *$self->{Error} } = '' ; return *$self->{ErrorNo} ; } sub saveErrorString { my $self = shift ; my $retval = shift ; #return $retval if ${ *$self->{Error} }; ${ *$self->{Error} } = shift ; *$self->{ErrorNo} = shift() + 0 if @_ ; #warn "saveErrorString: " . ${ *$self->{Error} } . " " . *$self->{Error} . "\n" ; return $retval; } sub croakError { my $self = shift ; $self->saveErrorString(0, $_[0]); croak $_[0]; } sub closeError { my $self = shift ; my $retval = shift ; my $errno = *$self->{ErrorNo}; my $error = ${ *$self->{Error} }; $self->close(); *$self->{ErrorNo} = $errno ; ${ *$self->{Error} } = $error ; return $retval; } sub error { my $self = shift ; return ${ *$self->{Error} } ; } sub errorNo { my $self = shift ; return *$self->{ErrorNo}; } sub HeaderError { my ($self) = shift; return $self->saveErrorString(undef, "Header Error: $_[0]", STATUS_ERROR); } sub TrailerError { my ($self) = shift; return $self->saveErrorString(G_ERR, "Trailer Error: $_[0]", STATUS_ERROR); } sub TruncatedHeader { my ($self) = shift; return $self->HeaderError("Truncated in $_[0] Section"); } sub TruncatedTrailer { my ($self) = shift; return $self->TrailerError("Truncated in $_[0] Section"); } sub postCheckParams { return 1; } sub checkParams { my $self = shift ; my $class = shift ; my $got = shift || IO::Compress::Base::Parameters::new(); my $Valid = { 'BlockSize' => [1, 1, Parse_unsigned, 16 * 1024], 'AutoClose' => [1, 1, Parse_boolean, 0], 'Strict' => [1, 1, Parse_boolean, 0], 'Append' => [1, 1, Parse_boolean, 0], 'Prime' => [1, 1, Parse_any, undef], 'MultiStream' => [1, 1, Parse_boolean, 0], 'Transparent' => [1, 1, Parse_any, 1], 'Scan' => [1, 1, Parse_boolean, 0], 'InputLength' => [1, 1, Parse_unsigned, undef], 'BinModeOut' => [1, 1, Parse_boolean, 0], #'Encode' => [1, 1, Parse_any, undef], #'ConsumeInput' => [1, 1, Parse_boolean, 0], $self->getExtraParams(), #'Todo - Revert to ordinary file on end Z_STREAM_END'=> 0, # ContinueAfterEof } ; $Valid->{TrailingData} = [1, 1, Parse_writable_scalar, undef] if *$self->{OneShot} ; $got->parse($Valid, @_ ) or $self->croakError("${class}: $got->{Error}") ; $self->postCheckParams($got) or $self->croakError("${class}: " . $self->error()) ; return $got; } sub _create { my $obj = shift; my $got = shift; my $append_mode = shift ; my $class = ref $obj; $obj->croakError("$class: Missing Input parameter") if ! @_ && ! $got ; my $inValue = shift ; *$obj->{OneShot} = 0 ; if (! $got) { $got = $obj->checkParams($class, undef, @_) or return undef ; } my $inType = whatIsInput($inValue, 1); $obj->ckInputParam($class, $inValue, 1) or return undef ; *$obj->{InNew} = 1; $obj->ckParams($got) or $obj->croakError("${class}: " . *$obj->{Error}); if ($inType eq 'buffer' || $inType eq 'code') { *$obj->{Buffer} = $inValue ; *$obj->{InputEvent} = $inValue if $inType eq 'code' ; } else { if ($inType eq 'handle') { *$obj->{FH} = $inValue ; *$obj->{Handle} = 1 ; # Need to rewind for Scan *$obj->{FH}->seek(0, SEEK_SET) if $got->value('Scan'); } else { no warnings ; my $mode = '<'; $mode = '+<' if $got->value('Scan'); *$obj->{StdIO} = ($inValue eq '-'); *$obj->{FH} = new IO::File "$mode $inValue" or return $obj->saveErrorString(undef, "cannot open file '$inValue': $!", $!) ; } *$obj->{LineNo} = $. = 0; setBinModeInput(*$obj->{FH}) ; my $buff = "" ; *$obj->{Buffer} = \$buff ; } if ($got->parsed('Encode')) { my $want_encoding = $got->value('Encode'); *$obj->{Encoding} = getEncoding($obj, $class, $want_encoding); } *$obj->{InputLength} = $got->parsed('InputLength') ? $got->value('InputLength') : undef ; *$obj->{InputLengthRemaining} = $got->value('InputLength'); *$obj->{BufferOffset} = 0 ; *$obj->{AutoClose} = $got->value('AutoClose'); *$obj->{Strict} = $got->value('Strict'); *$obj->{BlockSize} = $got->value('BlockSize'); *$obj->{Append} = $got->value('Append'); *$obj->{AppendOutput} = $append_mode || $got->value('Append'); *$obj->{ConsumeInput} = $got->value('ConsumeInput'); *$obj->{Transparent} = $got->value('Transparent'); *$obj->{MultiStream} = $got->value('MultiStream'); # TODO - move these two into RawDeflate *$obj->{Scan} = $got->value('Scan'); *$obj->{ParseExtra} = $got->value('ParseExtra') || $got->value('Strict') ; *$obj->{Type} = ''; *$obj->{Prime} = $got->value('Prime') || '' ; *$obj->{Pending} = ''; *$obj->{Plain} = 0; *$obj->{PlainBytesRead} = 0; *$obj->{InflatedBytesRead} = 0; *$obj->{UnCompSize} = new U64; *$obj->{CompSize} = new U64; *$obj->{TotalInflatedBytesRead} = 0; *$obj->{NewStream} = 0 ; *$obj->{EventEof} = 0 ; *$obj->{ClassName} = $class ; *$obj->{Params} = $got ; if (*$obj->{ConsumeInput}) { *$obj->{InNew} = 0; *$obj->{Closed} = 0; return $obj } my $status = $obj->mkUncomp($got); return undef unless defined $status; if ( ! $status) { return undef unless *$obj->{Transparent}; $obj->clearError(); *$obj->{Type} = 'plain'; *$obj->{Plain} = 1; #$status = $obj->mkIdentityUncomp($class, $got); $obj->pushBack(*$obj->{HeaderPending}) ; } push @{ *$obj->{InfoList} }, *$obj->{Info} ; $obj->saveStatus(STATUS_OK) ; *$obj->{InNew} = 0; *$obj->{Closed} = 0; return $obj; } sub ckInputParam { my $self = shift ; my $from = shift ; my $inType = whatIsInput($_[0], $_[1]); $self->croakError("$from: input parameter not a filename, filehandle, array ref or scalar ref") if ! $inType ; # if ($inType eq 'filename' ) # { # return $self->saveErrorString(1, "$from: input filename is undef or null string", STATUS_ERROR) # if ! defined $_[0] || $_[0] eq '' ; # # if ($_[0] ne '-' && ! -e $_[0] ) # { # return $self->saveErrorString(1, # "input file '$_[0]' does not exist", STATUS_ERROR); # } # } return 1; } sub _inf { my $obj = shift ; my $class = (caller)[0] ; my $name = (caller(1))[3] ; $obj->croakError("$name: expected at least 1 parameters\n") unless @_ >= 1 ; my $input = shift ; my $haveOut = @_ ; my $output = shift ; my $x = new IO::Compress::Base::Validator($class, *$obj->{Error}, $name, $input, $output) or return undef ; push @_, $output if $haveOut && $x->{Hash}; *$obj->{OneShot} = 1 ; my $got = $obj->checkParams($name, undef, @_) or return undef ; if ($got->parsed('TrailingData')) { *$obj->{TrailingData} = $got->value('TrailingData'); } *$obj->{MultiStream} = $got->value('MultiStream'); $got->value('MultiStream', 0); $x->{Got} = $got ; # if ($x->{Hash}) # { # while (my($k, $v) = each %$input) # { # $v = \$input->{$k} # unless defined $v ; # # $obj->_singleTarget($x, $k, $v, @_) # or return undef ; # } # # return keys %$input ; # } if ($x->{GlobMap}) { $x->{oneInput} = 1 ; foreach my $pair (@{ $x->{Pairs} }) { my ($from, $to) = @$pair ; $obj->_singleTarget($x, $from, $to, @_) or return undef ; } return scalar @{ $x->{Pairs} } ; } if (! $x->{oneOutput} ) { my $inFile = ($x->{inType} eq 'filenames' || $x->{inType} eq 'filename'); $x->{inType} = $inFile ? 'filename' : 'buffer'; foreach my $in ($x->{oneInput} ? $input : @$input) { my $out ; $x->{oneInput} = 1 ; $obj->_singleTarget($x, $in, $output, @_) or return undef ; } return 1 ; } # finally the 1 to 1 and n to 1 return $obj->_singleTarget($x, $input, $output, @_); croak "should not be here" ; } sub retErr { my $x = shift ; my $string = shift ; ${ $x->{Error} } = $string ; return undef ; } sub _singleTarget { my $self = shift ; my $x = shift ; my $input = shift; my $output = shift; my $buff = ''; $x->{buff} = \$buff ; my $fh ; if ($x->{outType} eq 'filename') { my $mode = '>' ; $mode = '>>' if $x->{Got}->value('Append') ; $x->{fh} = new IO::File "$mode $output" or return retErr($x, "cannot open file '$output': $!") ; binmode $x->{fh} if $x->{Got}->valueOrDefault('BinModeOut'); } elsif ($x->{outType} eq 'handle') { $x->{fh} = $output; binmode $x->{fh} if $x->{Got}->valueOrDefault('BinModeOut'); if ($x->{Got}->value('Append')) { seek($x->{fh}, 0, SEEK_END) or return retErr($x, "Cannot seek to end of output filehandle: $!") ; } } elsif ($x->{outType} eq 'buffer' ) { $$output = '' unless $x->{Got}->value('Append'); $x->{buff} = $output ; } if ($x->{oneInput}) { defined $self->_rd2($x, $input, $output) or return undef; } else { for my $element ( ($x->{inType} eq 'hash') ? keys %$input : @$input) { defined $self->_rd2($x, $element, $output) or return undef ; } } if ( ($x->{outType} eq 'filename' && $output ne '-') || ($x->{outType} eq 'handle' && $x->{Got}->value('AutoClose'))) { $x->{fh}->close() or return retErr($x, $!); delete $x->{fh}; } return 1 ; } sub _rd2 { my $self = shift ; my $x = shift ; my $input = shift; my $output = shift; my $z = createSelfTiedObject($x->{Class}, *$self->{Error}); $z->_create($x->{Got}, 1, $input, @_) or return undef ; my $status ; my $fh = $x->{fh}; while (1) { while (($status = $z->read($x->{buff})) > 0) { if ($fh) { print $fh ${ $x->{buff} } or return $z->saveErrorString(undef, "Error writing to output file: $!", $!); ${ $x->{buff} } = '' ; } } if (! $x->{oneOutput} ) { my $ot = $x->{outType} ; if ($ot eq 'array') { push @$output, $x->{buff} } elsif ($ot eq 'hash') { $output->{$input} = $x->{buff} } my $buff = ''; $x->{buff} = \$buff; } last if $status < 0 || $z->smartEof(); #last if $status < 0 ; last unless *$self->{MultiStream}; $status = $z->nextStream(); last unless $status == 1 ; } return $z->closeError(undef) if $status < 0 ; ${ *$self->{TrailingData} } = $z->trailingData() if defined *$self->{TrailingData} ; $z->close() or return undef ; return 1 ; } sub TIEHANDLE { return $_[0] if ref($_[0]); die "OOPS\n" ; } sub UNTIE { my $self = shift ; } sub getHeaderInfo { my $self = shift ; wantarray ? @{ *$self->{InfoList} } : *$self->{Info}; } sub readBlock { my $self = shift ; my $buff = shift ; my $size = shift ; if (defined *$self->{CompressedInputLength}) { if (*$self->{CompressedInputLengthRemaining} == 0) { delete *$self->{CompressedInputLength}; *$self->{CompressedInputLengthDone} = 1; return STATUS_OK ; } $size = min($size, *$self->{CompressedInputLengthRemaining} ); *$self->{CompressedInputLengthRemaining} -= $size ; } my $status = $self->smartRead($buff, $size) ; return $self->saveErrorString(STATUS_ERROR, "Error Reading Data: $!") if $status == STATUS_ERROR ; if ($status == 0 ) { *$self->{Closed} = 1 ; *$self->{EndStream} = 1 ; return $self->saveErrorString(STATUS_ERROR, "unexpected end of file", STATUS_ERROR); } return STATUS_OK; } sub postBlockChk { return STATUS_OK; } sub _raw_read { # return codes # >0 - ok, number of bytes read # =0 - ok, eof # <0 - not ok my $self = shift ; return G_EOF if *$self->{Closed} ; #return G_EOF if !length *$self->{Pending} && *$self->{EndStream} ; return G_EOF if *$self->{EndStream} ; my $buffer = shift ; my $scan_mode = shift ; if (*$self->{Plain}) { my $tmp_buff ; my $len = $self->smartRead(\$tmp_buff, *$self->{BlockSize}) ; return $self->saveErrorString(G_ERR, "Error reading data: $!", $!) if $len == STATUS_ERROR ; if ($len == 0 ) { *$self->{EndStream} = 1 ; } else { *$self->{PlainBytesRead} += $len ; $$buffer .= $tmp_buff; } return $len ; } if (*$self->{NewStream}) { $self->gotoNextStream() > 0 or return G_ERR; # For the headers that actually uncompressed data, put the # uncompressed data into the output buffer. $$buffer .= *$self->{Pending} ; my $len = length *$self->{Pending} ; *$self->{Pending} = ''; return $len; } my $temp_buf = ''; my $outSize = 0; my $status = $self->readBlock(\$temp_buf, *$self->{BlockSize}, $outSize) ; return G_ERR if $status == STATUS_ERROR ; my $buf_len = 0; if ($status == STATUS_OK) { my $beforeC_len = length $temp_buf; my $before_len = defined $$buffer ? length $$buffer : 0 ; $status = *$self->{Uncomp}->uncompr(\$temp_buf, $buffer, defined *$self->{CompressedInputLengthDone} || $self->smartEof(), $outSize); # Remember the input buffer if it wasn't consumed completely $self->pushBack($temp_buf) if *$self->{Uncomp}{ConsumesInput}; return $self->saveErrorString(G_ERR, *$self->{Uncomp}{Error}, *$self->{Uncomp}{ErrorNo}) if $self->saveStatus($status) == STATUS_ERROR; $self->postBlockChk($buffer, $before_len) == STATUS_OK or return G_ERR; $buf_len = defined $$buffer ? length($$buffer) - $before_len : 0; *$self->{CompSize}->add($beforeC_len - length $temp_buf) ; *$self->{InflatedBytesRead} += $buf_len ; *$self->{TotalInflatedBytesRead} += $buf_len ; *$self->{UnCompSize}->add($buf_len) ; $self->filterUncompressed($buffer); if (*$self->{Encoding}) { $$buffer = *$self->{Encoding}->decode($$buffer); } } if ($status == STATUS_ENDSTREAM) { *$self->{EndStream} = 1 ; #$self->pushBack($temp_buf) ; #$temp_buf = ''; my $trailer; my $trailer_size = *$self->{Info}{TrailerLength} ; my $got = 0; if (*$self->{Info}{TrailerLength}) { $got = $self->smartRead(\$trailer, $trailer_size) ; } if ($got == $trailer_size) { $self->chkTrailer($trailer) == STATUS_OK or return G_ERR; } else { return $self->TrailerError("trailer truncated. Expected " . "$trailer_size bytes, got $got") if *$self->{Strict}; $self->pushBack($trailer) ; } # TODO - if want to file file pointer, do it here if (! $self->smartEof()) { *$self->{NewStream} = 1 ; if (*$self->{MultiStream}) { *$self->{EndStream} = 0 ; return $buf_len ; } } } # return the number of uncompressed bytes read return $buf_len ; } sub reset { my $self = shift ; return *$self->{Uncomp}->reset(); } sub filterUncompressed { } #sub isEndStream #{ # my $self = shift ; # return *$self->{NewStream} || # *$self->{EndStream} ; #} sub nextStream { my $self = shift ; my $status = $self->gotoNextStream(); $status == 1 or return $status ; *$self->{TotalInflatedBytesRead} = 0 ; *$self->{LineNo} = $. = 0; return 1; } sub gotoNextStream { my $self = shift ; if (! *$self->{NewStream}) { my $status = 1; my $buffer ; # TODO - make this more efficient if know the offset for the end of # the stream and seekable $status = $self->read($buffer) while $status > 0 ; return $status if $status < 0; } *$self->{NewStream} = 0 ; *$self->{EndStream} = 0 ; $self->reset(); *$self->{UnCompSize}->reset(); *$self->{CompSize}->reset(); my $magic = $self->ckMagic(); #*$self->{EndStream} = 0 ; if ( ! defined $magic) { if (! *$self->{Transparent} || $self->eof()) { *$self->{EndStream} = 1 ; return 0; } $self->clearError(); *$self->{Type} = 'plain'; *$self->{Plain} = 1; $self->pushBack(*$self->{HeaderPending}) ; } else { *$self->{Info} = $self->readHeader($magic); if ( ! defined *$self->{Info} ) { *$self->{EndStream} = 1 ; return -1; } } push @{ *$self->{InfoList} }, *$self->{Info} ; return 1; } sub streamCount { my $self = shift ; return 1 if ! defined *$self->{InfoList}; return scalar @{ *$self->{InfoList} } ; } sub read { # return codes # >0 - ok, number of bytes read # =0 - ok, eof # <0 - not ok my $self = shift ; return G_EOF if *$self->{Closed} ; my $buffer ; if (ref $_[0] ) { $self->croakError(*$self->{ClassName} . "::read: buffer parameter is read-only") if readonly(${ $_[0] }); $self->croakError(*$self->{ClassName} . "::read: not a scalar reference $_[0]" ) unless ref $_[0] eq 'SCALAR' ; $buffer = $_[0] ; } else { $self->croakError(*$self->{ClassName} . "::read: buffer parameter is read-only") if readonly($_[0]); $buffer = \$_[0] ; } my $length = $_[1] ; my $offset = $_[2] || 0; if (! *$self->{AppendOutput}) { if (! $offset) { $$buffer = '' ; } else { if ($offset > length($$buffer)) { $$buffer .= "\x00" x ($offset - length($$buffer)); } else { substr($$buffer, $offset) = ''; } } } return G_EOF if !length *$self->{Pending} && *$self->{EndStream} ; # the core read will return 0 if asked for 0 bytes return 0 if defined $length && $length == 0 ; $length = $length || 0; $self->croakError(*$self->{ClassName} . "::read: length parameter is negative") if $length < 0 ; # Short-circuit if this is a simple read, with no length # or offset specified. unless ( $length || $offset) { if (length *$self->{Pending}) { $$buffer .= *$self->{Pending} ; my $len = length *$self->{Pending}; *$self->{Pending} = '' ; return $len ; } else { my $len = 0; $len = $self->_raw_read($buffer) while ! *$self->{EndStream} && $len == 0 ; return $len ; } } # Need to jump through more hoops - either length or offset # or both are specified. my $out_buffer = *$self->{Pending} ; *$self->{Pending} = ''; while (! *$self->{EndStream} && length($out_buffer) < $length) { my $buf_len = $self->_raw_read(\$out_buffer); return $buf_len if $buf_len < 0 ; } $length = length $out_buffer if length($out_buffer) < $length ; return 0 if $length == 0 ; $$buffer = '' if ! defined $$buffer; $offset = length $$buffer if *$self->{AppendOutput} ; *$self->{Pending} = $out_buffer; $out_buffer = \*$self->{Pending} ; #substr($$buffer, $offset) = substr($$out_buffer, 0, $length, '') ; substr($$buffer, $offset) = substr($$out_buffer, 0, $length) ; substr($$out_buffer, 0, $length) = '' ; return $length ; } sub _getline { my $self = shift ; my $status = 0 ; # Slurp Mode if ( ! defined $/ ) { my $data ; 1 while ($status = $self->read($data)) > 0 ; return $status < 0 ? \undef : \$data ; } # Record Mode if ( ref $/ eq 'SCALAR' && ${$/} =~ /^\d+$/ && ${$/} > 0) { my $reclen = ${$/} ; my $data ; $status = $self->read($data, $reclen) ; return $status < 0 ? \undef : \$data ; } # Paragraph Mode if ( ! length $/ ) { my $paragraph ; while (($status = $self->read($paragraph)) > 0 ) { if ($paragraph =~ s/^(.*?\n\n+)//s) { *$self->{Pending} = $paragraph ; my $par = $1 ; return \$par ; } } return $status < 0 ? \undef : \$paragraph; } # $/ isn't empty, or a reference, so it's Line Mode. { my $line ; my $offset; my $p = \*$self->{Pending} ; if (length(*$self->{Pending}) && ($offset = index(*$self->{Pending}, $/)) >=0) { my $l = substr(*$self->{Pending}, 0, $offset + length $/ ); substr(*$self->{Pending}, 0, $offset + length $/) = ''; return \$l; } while (($status = $self->read($line)) > 0 ) { my $offset = index($line, $/); if ($offset >= 0) { my $l = substr($line, 0, $offset + length $/ ); substr($line, 0, $offset + length $/) = ''; $$p = $line; return \$l; } } return $status < 0 ? \undef : \$line; } } sub getline { my $self = shift; my $current_append = *$self->{AppendOutput} ; *$self->{AppendOutput} = 1; my $lineref = $self->_getline(); $. = ++ *$self->{LineNo} if defined $$lineref ; *$self->{AppendOutput} = $current_append; return $$lineref ; } sub getlines { my $self = shift; $self->croakError(*$self->{ClassName} . "::getlines: called in scalar context\n") unless wantarray; my($line, @lines); push(@lines, $line) while defined($line = $self->getline); return @lines; } sub READLINE { goto &getlines if wantarray; goto &getline; } sub getc { my $self = shift; my $buf; return $buf if $self->read($buf, 1); return undef; } sub ungetc { my $self = shift; *$self->{Pending} = "" unless defined *$self->{Pending} ; *$self->{Pending} = $_[0] . *$self->{Pending} ; } sub trailingData { my $self = shift ; if (defined *$self->{FH} || defined *$self->{InputEvent} ) { return *$self->{Prime} ; } else { my $buf = *$self->{Buffer} ; my $offset = *$self->{BufferOffset} ; return substr($$buf, $offset) ; } } sub eof { my $self = shift ; return (*$self->{Closed} || (!length *$self->{Pending} && ( $self->smartEof() || *$self->{EndStream}))) ; } sub tell { my $self = shift ; my $in ; if (*$self->{Plain}) { $in = *$self->{PlainBytesRead} ; } else { $in = *$self->{TotalInflatedBytesRead} ; } my $pending = length *$self->{Pending} ; return 0 if $pending > $in ; return $in - $pending ; } sub close { # todo - what to do if close is called before the end of the gzip file # do we remember any trailing data? my $self = shift ; return 1 if *$self->{Closed} ; untie *$self if $] >= 5.008 ; my $status = 1 ; if (defined *$self->{FH}) { if ((! *$self->{Handle} || *$self->{AutoClose}) && ! *$self->{StdIO}) { #if ( *$self->{AutoClose}) { local $.; $! = 0 ; $status = *$self->{FH}->close(); return $self->saveErrorString(0, $!, $!) if !*$self->{InNew} && $self->saveStatus($!) != 0 ; } delete *$self->{FH} ; $! = 0 ; } *$self->{Closed} = 1 ; return 1; } sub DESTROY { my $self = shift ; local ($., $@, $!, $^E, $?); $self->close() ; } sub seek { my $self = shift ; my $position = shift; my $whence = shift ; my $here = $self->tell() ; my $target = 0 ; if ($whence == SEEK_SET) { $target = $position ; } elsif ($whence == SEEK_CUR) { $target = $here + $position ; } elsif ($whence == SEEK_END) { $target = $position ; $self->croakError(*$self->{ClassName} . "::seek: SEEK_END not allowed") ; } else { $self->croakError(*$self->{ClassName} ."::seek: unknown value, $whence, for whence parameter"); } # short circuit if seeking to current offset if ($target == $here) { # On ordinary filehandles, seeking to the current # position also clears the EOF condition, so we # emulate this behavior locally while simultaneously # cascading it to the underlying filehandle if (*$self->{Plain}) { *$self->{EndStream} = 0; seek(*$self->{FH},0,1) if *$self->{FH}; } return 1; } # Outlaw any attempt to seek backwards $self->croakError( *$self->{ClassName} ."::seek: cannot seek backwards") if $target < $here ; # Walk the file to the new offset my $offset = $target - $here ; my $got; while (($got = $self->read(my $buffer, min($offset, *$self->{BlockSize})) ) > 0) { $offset -= $got; last if $offset == 0 ; } $here = $self->tell() ; return $offset == 0 ? 1 : 0 ; } sub fileno { my $self = shift ; return defined *$self->{FH} ? fileno *$self->{FH} : undef ; } sub binmode { 1; # my $self = shift ; # return defined *$self->{FH} # ? binmode *$self->{FH} # : 1 ; } sub opened { my $self = shift ; return ! *$self->{Closed} ; } sub autoflush { my $self = shift ; return defined *$self->{FH} ? *$self->{FH}->autoflush(@_) : undef ; } sub input_line_number { my $self = shift ; my $last = *$self->{LineNo}; $. = *$self->{LineNo} = $_[1] if @_ ; return $last; } *BINMODE = \&binmode; *SEEK = \&seek; *READ = \&read; *sysread = \&read; *TELL = \&tell; *EOF = \&eof; *FILENO = \&fileno; *CLOSE = \&close; sub _notAvailable { my $name = shift ; #return sub { croak "$name Not Available" ; } ; return sub { croak "$name Not Available: File opened only for intput" ; } ; } *print = _notAvailable('print'); *PRINT = _notAvailable('print'); *printf = _notAvailable('printf'); *PRINTF = _notAvailable('printf'); *write = _notAvailable('write'); *WRITE = _notAvailable('write'); #*sysread = \&read; #*syswrite = \&_notAvailable; package IO::Uncompress::Base ; 1 ; __END__ #line 1484 FILE c883ba08/IO/Uncompress/Gunzip.pm+#line 1 "/usr/local/share/perl/5.10.1/IO/Uncompress/Gunzip.pm" package IO::Uncompress::Gunzip ; require 5.004 ; # for RFC1952 use strict ; use warnings; use bytes; use IO::Uncompress::RawInflate 2.033 ; use Compress::Raw::Zlib 2.033 qw( crc32 ) ; use IO::Compress::Base::Common 2.033 qw(:Status createSelfTiedObject); use IO::Compress::Gzip::Constants 2.033 ; use IO::Compress::Zlib::Extra 2.033 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GunzipError); @ISA = qw( Exporter IO::Uncompress::RawInflate ); @EXPORT_OK = qw( $GunzipError gunzip ); %EXPORT_TAGS = %IO::Uncompress::RawInflate::DEFLATE_CONSTANTS ; push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; Exporter::export_ok_tags('all'); $GunzipError = ''; $VERSION = '2.033'; sub new { my $class = shift ; $GunzipError = ''; my $obj = createSelfTiedObject($class, \$GunzipError); $obj->_create(undef, 0, @_); } sub gunzip { my $obj = createSelfTiedObject(undef, \$GunzipError); return $obj->_inf(@_) ; } sub getExtraParams { use IO::Compress::Base::Common 2.033 qw(:Parse); return ( 'ParseExtra' => [1, 1, Parse_boolean, 0] ) ; } sub ckParams { my $self = shift ; my $got = shift ; # gunzip always needs crc32 $got->value('CRC32' => 1); return 1; } sub ckMagic { my $self = shift; my $magic ; $self->smartReadExact(\$magic, GZIP_ID_SIZE); *$self->{HeaderPending} = $magic ; return $self->HeaderError("Minimum header size is " . GZIP_MIN_HEADER_SIZE . " bytes") if length $magic != GZIP_ID_SIZE ; return $self->HeaderError("Bad Magic") if ! isGzipMagic($magic) ; *$self->{Type} = 'rfc1952'; return $magic ; } sub readHeader { my $self = shift; my $magic = shift; return $self->_readGzipHeader($magic); } sub chkTrailer { my $self = shift; my $trailer = shift; # Check CRC & ISIZE my ($CRC32, $ISIZE) = unpack("V V", $trailer) ; *$self->{Info}{CRC32} = $CRC32; *$self->{Info}{ISIZE} = $ISIZE; if (*$self->{Strict}) { return $self->TrailerError("CRC mismatch") if $CRC32 != *$self->{Uncomp}->crc32() ; my $exp_isize = *$self->{UnCompSize}->get32bit(); return $self->TrailerError("ISIZE mismatch. Got $ISIZE" . ", expected $exp_isize") if $ISIZE != $exp_isize ; } return STATUS_OK; } sub isGzipMagic { my $buffer = shift ; return 0 if length $buffer < GZIP_ID_SIZE ; my ($id1, $id2) = unpack("C C", $buffer) ; return $id1 == GZIP_ID1 && $id2 == GZIP_ID2 ; } sub _readFullGzipHeader($) { my ($self) = @_ ; my $magic = '' ; $self->smartReadExact(\$magic, GZIP_ID_SIZE); *$self->{HeaderPending} = $magic ; return $self->HeaderError("Minimum header size is " . GZIP_MIN_HEADER_SIZE . " bytes") if length $magic != GZIP_ID_SIZE ; return $self->HeaderError("Bad Magic") if ! isGzipMagic($magic) ; my $status = $self->_readGzipHeader($magic); delete *$self->{Transparent} if ! defined $status ; return $status ; } sub _readGzipHeader($) { my ($self, $magic) = @_ ; my ($HeaderCRC) ; my ($buffer) = '' ; $self->smartReadExact(\$buffer, GZIP_MIN_HEADER_SIZE - GZIP_ID_SIZE) or return $self->HeaderError("Minimum header size is " . GZIP_MIN_HEADER_SIZE . " bytes") ; my $keep = $magic . $buffer ; *$self->{HeaderPending} = $keep ; # now split out the various parts my ($cm, $flag, $mtime, $xfl, $os) = unpack("C C V C C", $buffer) ; $cm == GZIP_CM_DEFLATED or return $self->HeaderError("Not Deflate (CM is $cm)") ; # check for use of reserved bits return $self->HeaderError("Use of Reserved Bits in FLG field.") if $flag & GZIP_FLG_RESERVED ; my $EXTRA ; my @EXTRA = () ; if ($flag & GZIP_FLG_FEXTRA) { $EXTRA = "" ; $self->smartReadExact(\$buffer, GZIP_FEXTRA_HEADER_SIZE) or return $self->TruncatedHeader("FEXTRA Length") ; my ($XLEN) = unpack("v", $buffer) ; $self->smartReadExact(\$EXTRA, $XLEN) or return $self->TruncatedHeader("FEXTRA Body"); $keep .= $buffer . $EXTRA ; if ($XLEN && *$self->{'ParseExtra'}) { my $bad = IO::Compress::Zlib::Extra::parseRawExtra($EXTRA, \@EXTRA, 1, 1); return $self->HeaderError($bad) if defined $bad; } } my $origname ; if ($flag & GZIP_FLG_FNAME) { $origname = "" ; while (1) { $self->smartReadExact(\$buffer, 1) or return $self->TruncatedHeader("FNAME"); last if $buffer eq GZIP_NULL_BYTE ; $origname .= $buffer } $keep .= $origname . GZIP_NULL_BYTE ; return $self->HeaderError("Non ISO 8859-1 Character found in Name") if *$self->{Strict} && $origname =~ /$GZIP_FNAME_INVALID_CHAR_RE/o ; } my $comment ; if ($flag & GZIP_FLG_FCOMMENT) { $comment = ""; while (1) { $self->smartReadExact(\$buffer, 1) or return $self->TruncatedHeader("FCOMMENT"); last if $buffer eq GZIP_NULL_BYTE ; $comment .= $buffer } $keep .= $comment . GZIP_NULL_BYTE ; return $self->HeaderError("Non ISO 8859-1 Character found in Comment") if *$self->{Strict} && $comment =~ /$GZIP_FCOMMENT_INVALID_CHAR_RE/o ; } if ($flag & GZIP_FLG_FHCRC) { $self->smartReadExact(\$buffer, GZIP_FHCRC_SIZE) or return $self->TruncatedHeader("FHCRC"); $HeaderCRC = unpack("v", $buffer) ; my $crc16 = crc32($keep) & 0xFF ; return $self->HeaderError("CRC16 mismatch.") if *$self->{Strict} && $crc16 != $HeaderCRC; $keep .= $buffer ; } # Assume compression method is deflated for xfl tests #if ($xfl) { #} *$self->{Type} = 'rfc1952'; return { 'Type' => 'rfc1952', 'FingerprintLength' => 2, 'HeaderLength' => length $keep, 'TrailerLength' => GZIP_TRAILER_SIZE, 'Header' => $keep, 'isMinimalHeader' => $keep eq GZIP_MINIMUM_HEADER ? 1 : 0, 'MethodID' => $cm, 'MethodName' => $cm == GZIP_CM_DEFLATED ? "Deflated" : "Unknown" , 'TextFlag' => $flag & GZIP_FLG_FTEXT ? 1 : 0, 'HeaderCRCFlag' => $flag & GZIP_FLG_FHCRC ? 1 : 0, 'NameFlag' => $flag & GZIP_FLG_FNAME ? 1 : 0, 'CommentFlag' => $flag & GZIP_FLG_FCOMMENT ? 1 : 0, 'ExtraFlag' => $flag & GZIP_FLG_FEXTRA ? 1 : 0, 'Name' => $origname, 'Comment' => $comment, 'Time' => $mtime, 'OsID' => $os, 'OsName' => defined $GZIP_OS_Names{$os} ? $GZIP_OS_Names{$os} : "Unknown", 'HeaderCRC' => $HeaderCRC, 'Flags' => $flag, 'ExtraFlags' => $xfl, 'ExtraFieldRaw' => $EXTRA, 'ExtraField' => [ @EXTRA ], #'CompSize'=> $compsize, #'CRC32'=> $CRC32, #'OrigSize'=> $ISIZE, } } 1; __END__ #line 1112 FILE$9f157b3f/IO/Uncompress/RawInflate.pm"#line 1 "/usr/local/share/perl/5.10.1/IO/Uncompress/RawInflate.pm" package IO::Uncompress::RawInflate ; # for RFC1951 use strict ; use warnings; use bytes; use Compress::Raw::Zlib 2.033 ; use IO::Compress::Base::Common 2.033 qw(:Status createSelfTiedObject); use IO::Uncompress::Base 2.033 ; use IO::Uncompress::Adapter::Inflate 2.033 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError); $VERSION = '2.033'; $RawInflateError = ''; @ISA = qw( Exporter IO::Uncompress::Base ); @EXPORT_OK = qw( $RawInflateError rawinflate ) ; %DEFLATE_CONSTANTS = (); %EXPORT_TAGS = %IO::Uncompress::Base::EXPORT_TAGS ; push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; Exporter::export_ok_tags('all'); #{ # # Execute at runtime # my %bad; # for my $module (qw(Compress::Raw::Zlib IO::Compress::Base::Common IO::Uncompress::Base IO::Uncompress::Adapter::Inflate)) # { # my $ver = ${ $module . "::VERSION"} ; # # $bad{$module} = $ver # if $ver ne $VERSION; # } # # if (keys %bad) # { # my $string = join "\n", map { "$_ $bad{$_}" } keys %bad; # die caller(0)[0] . "needs version $VERSION mismatch\n$string\n"; # } #} sub new { my $class = shift ; my $obj = createSelfTiedObject($class, \$RawInflateError); $obj->_create(undef, 0, @_); } sub rawinflate { my $obj = createSelfTiedObject(undef, \$RawInflateError); return $obj->_inf(@_); } sub getExtraParams { return (); } sub ckParams { my $self = shift ; my $got = shift ; return 1; } sub mkUncomp { my $self = shift ; my $got = shift ; my ($obj, $errstr, $errno) = IO::Uncompress::Adapter::Inflate::mkUncompObject( $got->value('CRC32'), $got->value('ADLER32'), $got->value('Scan'), ); return $self->saveErrorString(undef, $errstr, $errno) if ! defined $obj; *$self->{Uncomp} = $obj; my $magic = $self->ckMagic() or return 0; *$self->{Info} = $self->readHeader($magic) or return undef ; return 1; } sub ckMagic { my $self = shift; return $self->_isRaw() ; } sub readHeader { my $self = shift; my $magic = shift ; return { 'Type' => 'rfc1951', 'FingerprintLength' => 0, 'HeaderLength' => 0, 'TrailerLength' => 0, 'Header' => '' }; } sub chkTrailer { return STATUS_OK ; } sub _isRaw { my $self = shift ; my $got = $self->_isRawx(@_); if ($got) { *$self->{Pending} = *$self->{HeaderPending} ; } else { $self->pushBack(*$self->{HeaderPending}); *$self->{Uncomp}->reset(); } *$self->{HeaderPending} = ''; return $got ; } sub _isRawx { my $self = shift ; my $magic = shift ; $magic = '' unless defined $magic ; my $buffer = ''; $self->smartRead(\$buffer, *$self->{BlockSize}) >= 0 or return $self->saveErrorString(undef, "No data to read"); my $temp_buf = $magic . $buffer ; *$self->{HeaderPending} = $temp_buf ; $buffer = ''; my $status = *$self->{Uncomp}->uncompr(\$temp_buf, \$buffer, $self->smartEof()) ; return $self->saveErrorString(undef, *$self->{Uncomp}{Error}, STATUS_ERROR) if $status == STATUS_ERROR; $self->pushBack($temp_buf) ; return $self->saveErrorString(undef, "unexpected end of file", STATUS_ERROR) if $self->smartEof() && $status != STATUS_ENDSTREAM; #my $buf_len = *$self->{Uncomp}->uncompressedBytes(); my $buf_len = length $buffer; if ($status == STATUS_ENDSTREAM) { if (*$self->{MultiStream} && (length $temp_buf || ! $self->smartEof())){ *$self->{NewStream} = 1 ; *$self->{EndStream} = 0 ; } else { *$self->{EndStream} = 1 ; } } *$self->{HeaderPending} = $buffer ; *$self->{InflatedBytesRead} = $buf_len ; *$self->{TotalInflatedBytesRead} += $buf_len ; *$self->{Type} = 'rfc1951'; $self->saveStatus(STATUS_OK); return { 'Type' => 'rfc1951', 'HeaderLength' => 0, 'TrailerLength' => 0, 'Header' => '' }; } sub inflateSync { my $self = shift ; # inflateSync is a no-op in Plain mode return 1 if *$self->{Plain} ; return 0 if *$self->{Closed} ; #return G_EOF if !length *$self->{Pending} && *$self->{EndStream} ; return 0 if ! length *$self->{Pending} && *$self->{EndStream} ; # Disable CRC check *$self->{Strict} = 0 ; my $status ; while (1) { my $temp_buf ; if (length *$self->{Pending} ) { $temp_buf = *$self->{Pending} ; *$self->{Pending} = ''; } else { $status = $self->smartRead(\$temp_buf, *$self->{BlockSize}) ; return $self->saveErrorString(0, "Error Reading Data") if $status < 0 ; if ($status == 0 ) { *$self->{EndStream} = 1 ; return $self->saveErrorString(0, "unexpected end of file", STATUS_ERROR); } } $status = *$self->{Uncomp}->sync($temp_buf) ; if ($status == STATUS_OK) { *$self->{Pending} .= $temp_buf ; return 1 ; } last unless $status == STATUS_ERROR ; } return 0; } #sub performScan #{ # my $self = shift ; # # my $status ; # my $end_offset = 0; # # $status = $self->scan() # #or return $self->saveErrorString(undef, "Error Scanning: $$error_ref", $self->errorNo) ; # or return $self->saveErrorString(G_ERR, "Error Scanning: $status") # # $status = $self->zap($end_offset) # or return $self->saveErrorString(G_ERR, "Error Zapping: $status"); # #or return $self->saveErrorString(undef, "Error Zapping: $$error_ref", $self->errorNo) ; # # #(*$obj->{Deflate}, $status) = $inf->createDeflate(); # ## *$obj->{Header} = *$inf->{Info}{Header}; ## *$obj->{UnCompSize_32bit} = ## *$obj->{BytesWritten} = *$inf->{UnCompSize_32bit} ; ## *$obj->{CompSize_32bit} = *$inf->{CompSize_32bit} ; # # ## if ( $outType eq 'buffer') ## { substr( ${ *$self->{Buffer} }, $end_offset) = '' } ## elsif ($outType eq 'handle' || $outType eq 'filename') { ## *$self->{FH} = *$inf->{FH} ; ## delete *$inf->{FH}; ## *$obj->{FH}->flush() ; ## *$obj->{Handle} = 1 if $outType eq 'handle'; ## ## #seek(*$obj->{FH}, $end_offset, SEEK_SET) ## *$obj->{FH}->seek($end_offset, SEEK_SET) ## or return $obj->saveErrorString(undef, $!, $!) ; ## } # #} sub scan { my $self = shift ; return 1 if *$self->{Closed} ; return 1 if !length *$self->{Pending} && *$self->{EndStream} ; my $buffer = '' ; my $len = 0; $len = $self->_raw_read(\$buffer, 1) while ! *$self->{EndStream} && $len >= 0 ; #return $len if $len < 0 ? $len : 0 ; return $len < 0 ? 0 : 1 ; } sub zap { my $self = shift ; my $headerLength = *$self->{Info}{HeaderLength}; my $block_offset = $headerLength + *$self->{Uncomp}->getLastBlockOffset(); $_[0] = $headerLength + *$self->{Uncomp}->getEndOffset(); #printf "# End $_[0], headerlen $headerLength \n";; #printf "# block_offset $block_offset %x\n", $block_offset; my $byte ; ( $self->smartSeek($block_offset) && $self->smartRead(\$byte, 1) ) or return $self->saveErrorString(0, $!, $!); #printf "#byte is %x\n", unpack('C*',$byte); *$self->{Uncomp}->resetLastBlockByte($byte); #printf "#to byte is %x\n", unpack('C*',$byte); ( $self->smartSeek($block_offset) && $self->smartWrite($byte) ) or return $self->saveErrorString(0, $!, $!); #$self->smartSeek($end_offset, 1); return 1 ; } sub createDeflate { my $self = shift ; my ($def, $status) = *$self->{Uncomp}->createDeflateStream( -AppendOutput => 1, -WindowBits => - MAX_WBITS, -CRC32 => *$self->{Params}->value('CRC32'), -ADLER32 => *$self->{Params}->value('ADLER32'), ); return wantarray ? ($status, $def) : $def ; } 1; __END__ #line 1111 FILE92ab67dd/PAR.pmo#line 1 "/usr/local/share/perl/5.10.1/PAR.pm" package PAR; $PAR::VERSION = '1.002'; use 5.006; use strict; use warnings; use Config '%Config'; use Carp qw/croak/; # If the 'prefork' module is available, we # register various run-time loaded modules with it. # That way, there is more shared memory in a forking # environment. BEGIN { if (eval 'require prefork') { prefork->import($_) for qw/ Archive::Zip File::Glob File::Spec File::Temp LWP::Simple PAR::Heavy /; # not including Archive::Unzip::Burst which only makes sense # in the context of a PAR::Packer'ed executable anyway. } } use PAR::SetupProgname; use PAR::SetupTemp; #line 311 use vars qw(@PAR_INC); # explicitly stated PAR library files (preferred) use vars qw(@PAR_INC_LAST); # explicitly stated PAR library files (fallback) use vars qw(%PAR_INC); # sets {$par}{$file} for require'd modules use vars qw(@LibCache %LibCache); # I really miss pseudohash. use vars qw($LastAccessedPAR $LastTempFile); use vars qw(@RepositoryObjects); # If we have PAR::Repository::Client support, we # put the ::Client objects in here. use vars qw(@PriorityRepositoryObjects); # repositories which are preferred over local stuff use vars qw(@UpgradeRepositoryObjects); # If we have PAR::Repository::Client's in upgrade mode # put the ::Client objects in here *as well*. use vars qw(%FileCache); # The Zip-file file-name-cache # Layout: # $FileCache{$ZipObj}{$FileName} = $Member use vars qw(%ArchivesExtracted); # Associates archive-zip-object => full extraction path my $ver = $Config{version}; my $arch = $Config{archname}; my $progname = $ENV{PAR_PROGNAME} || $0; my $is_insensitive_fs = ( -s $progname and (-s lc($progname) || -1) == (-s uc($progname) || -1) and (-s lc($progname) || -1) == -s $progname ); # lexical for import(), and _import_foo() functions to control unpar() my %unpar_options; # called on "use PAR" sub import { my $class = shift; PAR::SetupProgname::set_progname(); PAR::SetupTemp::set_par_temp_env(); $progname = $ENV{PAR_PROGNAME} ||= $0; $is_insensitive_fs = (-s $progname and (-s lc($progname) || -1) == (-s uc($progname) || -1)); my @args = @_; # Insert PAR hook in @INC. unshift @INC, \&find_par unless grep { $_ eq \&find_par } @INC; push @INC, \&find_par_last unless grep { $_ eq \&find_par_last } @INC; # process args to use PAR 'foo.par', { opts }, ...; foreach my $par (@args) { if (ref($par) eq 'HASH') { # we have been passed a hash reference _import_hash_ref($par); } elsif ($par =~ /[?*{}\[\]]/) { # implement globbing for PAR archives require File::Glob; foreach my $matched (File::Glob::glob($par)) { push @PAR_INC, unpar($matched, undef, undef, 1); } } else { # ordinary string argument => file push @PAR_INC, unpar($par, undef, undef, 1); } } return if $PAR::__import; local $PAR::__import = 1; require PAR::Heavy; PAR::Heavy::_init_dynaloader(); # The following code is executed for the case where the # running program is itself a PAR archive. # ==> run script/main.pl if (unpar($progname)) { # XXX - handle META.yml here! push @PAR_INC, unpar($progname, undef, undef, 1); _extract_inc($progname) unless $ENV{PAR_CLEAN}; if ($LibCache{$progname}) { # XXX bad: this us just a good guess require File::Spec; $ArchivesExtracted{$progname} = File::Spec->catdir($ENV{PAR_TEMP}, 'inc'); } my $zip = $LibCache{$progname}; my $member = _first_member( $zip, "script/main.pl", "main.pl", ); if ($progname and !$member) { require File::Spec; my @path = File::Spec->splitdir($progname); my $filename = pop @path; $member = _first_member( $zip, "script/".$filename, "script/".$filename.".pl", $filename, $filename.".pl", ) } # finally take $ARGV[0] as the hint for file to run if (defined $ARGV[0] and !$member) { $member = _first_member( $zip, "script/$ARGV[0]", "script/$ARGV[0].pl", $ARGV[0], "$ARGV[0].pl", ) or die qq(PAR.pm: Can't open perl script "$ARGV[0]": No such file or directory); shift @ARGV; } if (!$member) { die "Usage: $0 script_file_name.\n"; } _run_member($member); } } # import() helper for the "use PAR {...};" syntax. sub _import_hash_ref { my $opt = shift; # hash slice assignment -- pass all of the options into unpar local @unpar_options{keys(%$opt)} = values(%$opt); # check for incompatible options: if ( exists $opt->{repository} and exists $opt->{file} ) { croak("Invalid PAR loading options. Cannot have a 'repository' and 'file' option at the same time."); } elsif ( exists $opt->{file} and (exists $opt->{install} or exists $opt->{upgrade}) ) { my $e = exists($opt->{install}) ? 'install' : 'upgrade'; croak("Invalid PAR loading options. Cannot combine 'file' and '$e' options."); } elsif ( not exists $opt->{repository} and not exists $opt->{file} ) { croak("Invalid PAR loading options. Need at least one of 'file' or 'repository' options."); } # load from file if (exists $opt->{file}) { croak("Cannot load undefined PAR archive") if not defined $opt->{file}; # for files, we default to loading from PAR archive first my $fallback = $opt->{fallback}; $fallback = 0 if not defined $fallback; if (not $fallback) { # load from this PAR arch preferably push @PAR_INC, unpar($opt->{file}, undef, undef, 1); } else { # load from this PAR arch as fallback push @PAR_INC_LAST, unpar($opt->{file}, undef, undef, 1); } } else { # Deal with repositories elsewhere my $client = _import_repository($opt); return() if not $client; if (defined $opt->{run}) { # run was specified # run the specified script from the repository $client->run_script( $opt->{run} ); return 1; } return 1; } # run was specified # run the specified script from inside the PAR file. if (defined $opt->{run}) { my $script = $opt->{run}; require PAR::Heavy; PAR::Heavy::_init_dynaloader(); # XXX - handle META.yml here! _extract_inc($opt->{file}) unless $ENV{PAR_CLEAN}; my $zip = $LibCache{$opt->{file}}; my $member = _first_member( $zip, (($script !~ /^script\//) ? ("script/$script", "script/$script.pl") : ()), $script, "$script.pl", ); if (not defined $member) { croak("Cannot run script '$script' from PAR file '$opt->{file}'. Script couldn't be found in PAR file."); } _run_member_from_par($member); } return(); } # This sub is invoked by _import_hash_ref if a {repository} # option is found # Returns the repository client object on success. sub _import_repository { my $opt = shift; my $url = $opt->{repository}; eval "require PAR::Repository::Client; 1;"; if ($@ or not eval PAR::Repository::Client->VERSION >= 0.04) { croak "In order to use the 'use PAR { repository => 'url' };' syntax, you need to install the PAR::Repository::Client module (version 0.04 or later) from CPAN. This module does not seem to be installed as indicated by the following error message: $@"; } if ($opt->{upgrade} and not eval PAR::Repository::Client->VERSION >= 0.22) { croak "In order to use the 'upgrade' option, you need to install the PAR::Repository::Client module (version 0.22 or later) from CPAN"; } if ($opt->{dependencies} and not eval PAR::Repository::Client->VERSION >= 0.23) { croak "In order to use the 'dependencies' option, you need to install the PAR::Repository::Client module (version 0.23 or later) from CPAN"; } my $obj; # Support existing clients passed in as objects. if (ref($url) and UNIVERSAL::isa($obj, 'PAR::Repository::Client')) { $obj = $url; } else { $obj = PAR::Repository::Client->new( uri => $url, auto_install => $opt->{install}, auto_upgrade => $opt->{upgrade}, static_dependencies => $opt->{dependencies}, ); } if (exists($opt->{fallback}) and not $opt->{fallback}) { push @PriorityRepositoryObjects, $obj; # repository beats local stuff } else { push @RepositoryObjects, $obj; # local stuff beats repository } # these are tracked separately so we can check for upgrades early push @UpgradeRepositoryObjects, $obj if $opt->{upgrade}; return $obj; } # Given an Archive::Zip obj and a list of files/paths, # this function returns the Archive::Zip::Member for the # first of the files found in the ZIP. If none is found, # returns the empty list. sub _first_member { my $zip = shift; foreach my $name (@_) { my $member = _cached_member_named($zip, $name); return $member if $member; } return; } # Given an Archive::Zip object, this finds the first # Archive::Zip member whose file name matches the # regular expression sub _first_member_matching { my $zip = shift; my $regex = shift; my $cache = $FileCache{$zip}; $cache = $FileCache{$zip} = _make_file_cache($zip) if not $cache; foreach my $name (keys %$cache) { if ($name =~ $regex) { return $cache->{$name}; } } return(); } sub _run_member_from_par { my $member = shift; my $clear_stack = shift; my ($fh, $is_new, $filename) = _tempfile($member->crc32String . ".pl"); if ($is_new) { my $file = $member->fileName; print $fh "package main;\n"; print $fh "#line 1 \"$file\"\n"; $member->extractToFileHandle($fh); seek ($fh, 0, 0); } $ENV{PAR_0} = $filename; # for Pod::Usage { do $filename; CORE::exit($1) if ($@ =~/^_TK_EXIT_\((\d+)\)/); die $@ if $@; exit; } } sub _run_member { my $member = shift; my $clear_stack = shift; my ($fh, $is_new, $filename) = _tempfile($member->crc32String . ".pl"); if ($is_new) { my $file = $member->fileName; print $fh "package main; shift \@INC;\n"; if (defined &Internals::PAR::CLEARSTACK and $clear_stack) { print $fh "Internals::PAR::CLEARSTACK();\n"; } print $fh "#line 1 \"$file\"\n"; $member->extractToFileHandle($fh); seek ($fh, 0, 0); } unshift @INC, sub { $fh }; $ENV{PAR_0} = $filename; # for Pod::Usage { do 'main'; CORE::exit($1) if ($@ =~/^_TK_EXIT_\((\d+)\)/); die $@ if $@; exit; } } sub _run_external_file { my $filename = shift; my $clear_stack = shift; require 5.008; open my $ffh, '<', $filename or die "Can't open perl script \"$filename\": $!"; my $clearstack = ''; if (defined &Internals::PAR::CLEARSTACK and $clear_stack) { $clear_stack = "Internals::PAR::CLEARSTACK();\n"; } my $string = "package main; shift \@INC;\n$clearstack#line 1 \"$filename\"\n" . do { local $/ = undef; <$ffh> }; close $ffh; open my $fh, '<', \$string or die "Can't open file handle to string: $!"; unshift @INC, sub { $fh }; $ENV{PAR_0} = $filename; # for Pod::Usage { do 'main'; CORE::exit($1) if ($@ =~/^_TK_EXIT_\((\d+)\)/); die $@ if $@; exit; } } # extract the contents of a .par (or .exe) or any # Archive::Zip handle to the PAR_TEMP/inc directory. # returns that directory. sub _extract_inc { my $file_or_azip_handle = shift; my $force_extract = shift; my $inc = "$PAR::SetupTemp::PARTemp/inc"; my $dlext = defined($Config{dlext}) ? $Config::Config{dlext} : ''; my $inc_exists = -d $inc; my $is_handle = ref($file_or_azip_handle) && $file_or_azip_handle->isa('Archive::Zip::Archive'); require File::Spec; if (!$inc_exists or $force_extract) { for (1 .. 10) { mkdir("$inc.lock", 0755) and last; sleep 1 } undef $@; if (!$is_handle) { # First try to unzip the *fast* way. eval { require Archive::Unzip::Burst; Archive::Unzip::Burst::unzip($file_or_azip_handle, $inc) and die "Could not unzip '$file_or_azip_handle' into '$inc'. Error: $!"; die; }; # This means the fast module is there, but didn't work. if ($@ =~ /^Could not unzip/) { die $@; } } # either failed to load Archive::Unzip::Burst or got an A::Zip handle # fallback to slow way. if ($is_handle || $@) { my $zip; if (!$is_handle) { open my $fh, '<', $file_or_azip_handle or die "Cannot find '$file_or_azip_handle': $!"; binmode($fh); bless($fh, 'IO::File'); $zip = Archive::Zip->new; ( $zip->readFromFileHandle($fh, $file_or_azip_handle) == Archive::Zip::AZ_OK() ) or die "Read '$file_or_azip_handle' error: $!"; } else { $zip = $file_or_azip_handle; } mkdir($inc) if not -d $inc; for ( $zip->memberNames() ) { s{^/}{}; # Skip DLLs (these will be handled by the dynaloader hook) # except for those placed in File::ShareDir directories. next if (m{\.\Q$dlext\E[^/]*$} && !m{^lib/auto/share/(dist|module)/}); my $outfile = File::Spec->catfile($inc, $_); next if -e $outfile and not -w _; $zip->extractMember($_, "$inc/" . $_); } } rmdir("$inc.lock"); $ArchivesExtracted{$is_handle ? $file_or_azip_handle->fileName() : $file_or_azip_handle} = $inc; } # add the freshly extracted directories to @INC, # but make sure there's no duplicates my %inc_exists = map { ($_, 1) } @INC; unshift @INC, grep !exists($inc_exists{$_}), grep -d, map File::Spec->catdir($inc, @$_), [ 'lib' ], [ 'arch' ], [ $arch ], [ $ver ], [ $ver, $arch ], []; return $inc; } # This is the hook placed in @INC for loading PAR's # before any other stuff in @INC sub find_par { my @args = @_; # if there are repositories in upgrade mode, check them # first. If so, this is expensive, of course! if (@UpgradeRepositoryObjects) { my $module = $args[1]; $module =~ s/\.pm$//; $module =~ s/\//::/g; foreach my $client (@UpgradeRepositoryObjects) { my $local_file = $client->upgrade_module($module); # break the require if upgrade_module has been required already # to avoid infinite recursion if (exists $INC{$args[1]}) { # Oh dear. Check for the possible return values of the INC sub hooks in # perldoc -f require before trying to understand this. # Then, realize that if you pass undef for the file handle, perl (5.8.9) # does NOT use the subroutine. Thus the hacky GLOB ref. my $line = 1; no warnings; return (\*I_AM_NOT_HERE, sub {$line ? ($_="1;",$line=0,return(1)) : ($_="",return(0))}); } # Note: This is likely not necessary as the module has been installed # into the system by upgrade_module if it was available at all. # If it was already loaded, this will not be reached (see return right above). # If it could not be loaded from the system and neither found in the repository, # we simply want to have the normal error message, too! # #if ($local_file) { # # XXX load with fallback - is that right? # return _find_par_internals([$PAR_INC_LAST[-1]], @args); #} } } my $rv = _find_par_internals(\@PAR_INC, @args); return $rv if defined $rv or not @PriorityRepositoryObjects; # the repositories that are prefered over locally installed modules my $module = $args[1]; $module =~ s/\.pm$//; $module =~ s/\//::/g; foreach my $client (@PriorityRepositoryObjects) { my $local_file = $client->get_module($module, 0); # 1 == fallback if ($local_file) { # Not loaded as fallback (cf. PRIORITY) thus look at PAR_INC # instead of PAR_INC_LAST return _find_par_internals([$PAR_INC[-1]], @args); } } return(); } # This is the hook placed in @INC for loading PAR's # AFTER any other stuff in @INC # It also deals with loading from repositories as a # fallback-fallback ;) sub find_par_last { my @args = @_; # Try the local PAR files first my $rv = _find_par_internals(\@PAR_INC_LAST, @args); return $rv if defined $rv; # No repositories => return return $rv if not @RepositoryObjects; my $module = $args[1]; $module =~ s/\.pm$//; $module =~ s/\//::/g; foreach my $client (@RepositoryObjects) { my $local_file = $client->get_module($module, 1); # 1 == fallback if ($local_file) { # Loaded as fallback thus look at PAR_INC_LAST return _find_par_internals([$PAR_INC_LAST[-1]], @args); } } return $rv; } # This routine implements loading modules from PARs # both for loading PARs preferably or as fallback. # To distinguish the cases, the first parameter should # be a reference to the corresponding @PAR_INC* array. sub _find_par_internals { my ($INC_ARY, $self, $file, $member_only) = @_; my $scheme; foreach (@$INC_ARY ? @$INC_ARY : @INC) { my $path = $_; if ($] < 5.008001) { # reassemble from "perl -Ischeme://path" autosplitting $path = "$scheme:$path" if !@$INC_ARY and $path and $path =~ m!//! and $scheme and $scheme =~ /^\w+$/; $scheme = $path; } my $rv = unpar($path, $file, $member_only, 1) or next; $PAR_INC{$path}{$file} = 1; $INC{$file} = $LastTempFile if (lc($file) =~ /^(?!tk).*\.pm$/); return $rv; } return; } sub reload_libs { my @par_files = @_; @par_files = sort keys %LibCache unless @par_files; foreach my $par (@par_files) { my $inc_ref = $PAR_INC{$par} or next; delete $LibCache{$par}; delete $FileCache{$par}; foreach my $file (sort keys %$inc_ref) { delete $INC{$file}; require $file; } } } #sub find_zip_member { # my $file = pop; # # foreach my $zip (@LibCache) { # my $member = _first_member($zip, $file) or next; # return $member; # } # # return; #} sub read_file { my $file = pop; foreach my $zip (@LibCache) { my $member = _first_member($zip, $file) or next; return scalar $member->contents; } return; } sub par_handle { my $par = pop; return $LibCache{$par}; } my %escapes; sub unpar { my ($par, $file, $member_only, $allow_other_ext) = @_; return if not defined $par; my $zip = $LibCache{$par}; my @rv = $par; # a guard against (currently unimplemented) recursion return if $PAR::__unpar; local $PAR::__unpar = 1; unless ($zip) { # URL use case ==> download if ($par =~ m!^\w+://!) { require File::Spec; require LWP::Simple; # reflector support $par .= "pm=$file" if $par =~ /[?&;]/; # prepare cache directory $ENV{PAR_CACHE} ||= '_par'; mkdir $ENV{PAR_CACHE}, 0777; if (!-d $ENV{PAR_CACHE}) { $ENV{PAR_CACHE} = File::Spec->catdir(File::Spec->tmpdir, 'par'); mkdir $ENV{PAR_CACHE}, 0777; return unless -d $ENV{PAR_CACHE}; } # Munge URL into local file name # FIXME: This might result in unbelievably long file names! # I have run into the file/path length limitations of linux # with similar code in PAR::Repository::Client. # I suspect this is even worse on Win32. # -- Steffen my $file = $par; if (!%escapes) { $escapes{chr($_)} = sprintf("%%%02X", $_) for 0..255; } { use bytes; $file =~ s/([^\w\.])/$escapes{$1}/g; } $file = File::Spec->catfile( $ENV{PAR_CACHE}, $file); LWP::Simple::mirror( $par, $file ); return unless -e $file and -f _; $par = $file; } # Got the .par as a string. (reference to scalar, of course) elsif (ref($par) eq 'SCALAR') { my ($fh) = _tempfile(); print $fh $$par; $par = $fh; } # If the par is not a valid .par file name and we're being strict # about this, then also check whether "$par.par" exists elsif (!(($allow_other_ext or $par =~ /\.par\z/i) and -f $par)) { $par .= ".par"; return unless -f $par; } require Archive::Zip; $zip = Archive::Zip->new; my @file; if (!ref $par) { @file = $par; open my $fh, '<', $par; binmode($fh); $par = $fh; bless($par, 'IO::File'); } Archive::Zip::setErrorHandler(sub {}); my $rv = $zip->readFromFileHandle($par, @file); Archive::Zip::setErrorHandler(undef); return unless $rv == Archive::Zip::AZ_OK(); push @LibCache, $zip; $LibCache{$_[0]} = $zip; $FileCache{$_[0]} = _make_file_cache($zip); # only recursive case -- appears to be unused and unimplemented foreach my $member ( _cached_members_matching($zip, "^par/(?:$Config{version}/)?(?:$Config{archname}/)?" ) ) { next if $member->isDirectory; my $content = $member->contents(); next unless $content =~ /^PK\003\004/; push @rv, unpar(\$content, undef, undef, 1); } # extract all shlib dlls from the .par to $ENV{PAR_TEMP} # Intended to fix problem with Alien::wxWidgets/Wx... # NOTE auto/foo/foo.so|dll will get handled by the dynaloader # hook, so no need to pull it out here. # Allow this to be disabled so caller can do their own caching # via import({no_shlib_unpack => 1, file => foo.par}) if(not $unpar_options{no_shlib_unpack} and defined $ENV{PAR_TEMP}) { my @members = _cached_members_matching( $zip, qr#^shlib/$Config{archname}/.*\.\Q$Config{dlext}\E(?:\.|$)# ); foreach my $member (@members) { next if $member->isDirectory; my $member_name = $member->fileName; next unless $member_name =~ m{ \/([^/]+)$ }x or $member_name =~ m{ ^([^/]+)$ }; my $extract_name = $1; my $dest_name = File::Spec->catfile($ENV{PAR_TEMP}, $extract_name); # but don't extract it if we've already got one $member->extractToFileNamed($dest_name) unless(-e $dest_name); } } # Now push this path into usual library search paths my $separator = $Config{path_sep}; my $tempdir = $ENV{PAR_TEMP}; foreach my $key (qw( LD_LIBRARY_PATH LIB_PATH LIBRARY_PATH PATH DYLD_LIBRARY_PATH )) { if (defined $ENV{$key} and $ENV{$key} ne '') { # Check whether it's already in the path. If so, don't # append the PAR temp dir in order not to overflow the # maximum length for ENV vars. $ENV{$key} .= $separator . $tempdir unless grep { $_ eq $tempdir } split $separator, $ENV{$key}; } else { $ENV{$key} = $tempdir; } } } $LastAccessedPAR = $zip; return @rv unless defined $file; my $member = _first_member($zip, "lib/$file", "arch/$file", "$arch/$file", "$ver/$file", "$ver/$arch/$file", $file, ) or return; return $member if $member_only; my ($fh, $is_new); ($fh, $is_new, $LastTempFile) = _tempfile($member->crc32String . ".pm"); die "Bad Things Happened..." unless $fh; if ($is_new) { $member->extractToFileHandle($fh); seek ($fh, 0, 0); } return $fh; } sub _tempfile { my ($fh, $filename); if ($ENV{PAR_CLEAN} or !@_) { require File::Temp; if (defined &File::Temp::tempfile) { # under Win32, the file is created with O_TEMPORARY, # and will be deleted by the C runtime; having File::Temp # delete it has the only effect of giving ugly warnings ($fh, $filename) = File::Temp::tempfile( DIR => $PAR::SetupTemp::PARTemp, UNLINK => ($^O ne 'MSWin32' and $^O !~ /hpux/), ) or die "Cannot create temporary file: $!"; binmode($fh); return ($fh, 1, $filename); } } require File::Spec; # untainting tempfile path local $_ = File::Spec->catfile( $PAR::SetupTemp::PARTemp, $_[0] ); /^(.+)$/ and $filename = $1; if (-r $filename) { open $fh, '<', $filename or die $!; binmode($fh); return ($fh, 0, $filename); } open $fh, '+>', $filename or die $!; binmode($fh); return ($fh, 1, $filename); } # Given an Archive::Zip object, this generates a hash of # file_name_in_zip => file object # and returns a reference to that. # If we broke the encapsulation of A::Zip::Member and # accessed $member->{fileName} directly, that would be # *significantly* faster. sub _make_file_cache { my $zip = shift; if (not ref($zip)) { croak("_make_file_cache needs an Archive::Zip object as argument."); } my $cache = {}; foreach my $member ($zip->members) { $cache->{$member->fileName()} = $member; } return $cache; } # given an Archive::Zip object, this finds the cached hash # of Archive::Zip member names => members, # and returns all member objects whose file names match # a regexp # Without file caching, it just uses $zip->membersMatching sub _cached_members_matching { my $zip = shift; my $regex = shift; my $cache = $FileCache{$zip}; $cache = $FileCache{$zip} = _make_file_cache($zip) if not $cache; return map {$cache->{$_}} grep { $_ =~ $regex } keys %$cache; } # access named zip file member through cache. Fall # back to using Archive::Zip (slow) sub _cached_member_named { my $zip = shift; my $name = shift; my $cache = $FileCache{$zip}; $cache = $FileCache{$zip} = _make_file_cache($zip) if not $cache; return $cache->{$name}; } # Attempt to clean up the temporary directory if # --> We're running in clean mode # --> It's defined # --> It's an existing directory # --> It's empty END { if (exists $ENV{PAR_CLEAN} and $ENV{PAR_CLEAN} and exists $ENV{PAR_TEMP} and defined $ENV{PAR_TEMP} and -d $ENV{PAR_TEMP} ) { local($!); # paranoid: ignore potential errors without clobbering a global variable! rmdir($ENV{PAR_TEMP}); } } 1; __END__ #line 1249 FILE0e14cc82/PAR/Dist.pmw#line 1 "/usr/local/share/perl/5.10.1/PAR/Dist.pm" package PAR::Dist; use 5.006; use strict; require Exporter; use vars qw/$VERSION @ISA @EXPORT @EXPORT_OK $DEBUG/; $VERSION = '0.47'; # Change version in POD, too! @ISA = 'Exporter'; @EXPORT = qw/ blib_to_par install_par uninstall_par sign_par verify_par merge_par remove_man get_meta generate_blib_stub /; @EXPORT_OK = qw/ parse_dist_name contains_binaries /; $DEBUG = 0; use Carp qw/carp croak/; use File::Spec; #line 142 sub blib_to_par { @_ = (path => @_) if @_ == 1; my %args = @_; require Config; # don't use 'my $foo ... if ...' it creates a static variable! my $quiet = $args{quiet} || 0; my $dist; my $path = $args{path}; $dist = File::Spec->rel2abs($args{dist}) if $args{dist}; my $name = $args{name}; my $version = $args{version}; my $suffix = $args{suffix} || "$Config::Config{archname}-$Config::Config{version}.par"; my $cwd; if (defined $path) { require Cwd; $cwd = Cwd::cwd(); chdir $path; } _build_blib() unless -d "blib"; my @files; open MANIFEST, ">", File::Spec->catfile("blib", "MANIFEST") or die $!; open META, ">", File::Spec->catfile("blib", "META.yml") or die $!; require File::Find; File::Find::find( sub { next unless $File::Find::name; (-r && !-d) and push ( @files, substr($File::Find::name, 5) ); } , 'blib' ); print MANIFEST join( "\n", ' ', (sort @files), q( # ) ); close MANIFEST; if (open(OLD_META, "META.yml")) { while () { if (/^distribution_type:/) { print META "distribution_type: par\n"; } else { print META $_; } if (/^name:\s+(.*)/) { $name ||= $1; $name =~ s/::/-/g; } elsif (/^version:\s+.*Module::Build::Version/) { while () { /^\s+original:\s+(.*)/ or next; $version ||= $1; last; } } elsif (/^version:\s+(.*)/) { $version ||= $1; } } close OLD_META; close META; } if ((!$name or !$version) and open(MAKEFILE, "Makefile")) { while () { if (/^DISTNAME\s+=\s+(.*)$/) { $name ||= $1; } elsif (/^VERSION\s+=\s+(.*)$/) { $version ||= $1; } } } if (not defined($name) or not defined($version)) { # could not determine name or version. Error. my $what; if (not defined $name) { $what = 'name'; $what .= ' and version' if not defined $version; } elsif (not defined $version) { $what = 'version'; } carp("I was unable to determine the $what of the PAR distribution. Please create a Makefile or META.yml file from which we can infer the information or just specify the missing information as an option to blib_to_par."); return(); } $name =~ s/\s+$//; $version =~ s/\s+$//; my $file = "$name-$version-$suffix"; unlink $file if -f $file; print META << "YAML" if fileno(META); name: $name version: $version build_requires: {} conflicts: {} dist_name: $file distribution_type: par dynamic_config: 0 generated_by: 'PAR::Dist version $PAR::Dist::VERSION' license: unknown YAML close META; mkdir('blib', 0777); chdir('blib'); require Cwd; my $zipoutfile = File::Spec->catfile(File::Spec->updir, $file); _zip(dist => $zipoutfile); chdir(File::Spec->updir); unlink File::Spec->catfile("blib", "MANIFEST"); unlink File::Spec->catfile("blib", "META.yml"); $dist ||= File::Spec->catfile($cwd, $file) if $cwd; if ($dist and $file ne $dist) { if ( File::Copy::copy($file, $dist) ) { unlink $file; } else { die "Cannot copy $file: $!"; } $file = $dist; } my $pathname = File::Spec->rel2abs($file); if ($^O eq 'MSWin32') { $pathname =~ s!\\!/!g; $pathname =~ s!:!|!g; }; print << "." if !$quiet; Successfully created binary distribution '$file'. Its contents are accessible in compliant browsers as: jar:file://$pathname!/MANIFEST . chdir $cwd if $cwd; return $file; } sub _build_blib { if (-e 'Build') { _system_wrapper($^X, "Build"); } elsif (-e 'Makefile') { _system_wrapper($Config::Config{make}); } elsif (-e 'Build.PL') { _system_wrapper($^X, "Build.PL"); _system_wrapper($^X, "Build"); } elsif (-e 'Makefile.PL') { _system_wrapper($^X, "Makefile.PL"); _system_wrapper($Config::Config{make}); } } #line 397 sub install_par { my %args = &_args; _install_or_uninstall(%args, action => 'install'); } #line 418 sub uninstall_par { my %args = &_args; _install_or_uninstall(%args, action => 'uninstall'); } sub _install_or_uninstall { my %args = &_args; my $name = $args{name}; my $action = $args{action}; my %ENV_copy = %ENV; $ENV{PERL_INSTALL_ROOT} = $args{prefix} if defined $args{prefix}; require Cwd; my $old_dir = Cwd::cwd(); my ($dist, $tmpdir) = _unzip_to_tmpdir( dist => $args{dist}, subdir => 'blib' ); if ( open (META, File::Spec->catfile('blib', 'META.yml')) ) { while () { next unless /^name:\s+(.*)/; $name = $1; $name =~ s/\s+$//; last; } close META; } return if not defined $name or $name eq ''; if (-d 'script') { require ExtUtils::MY; foreach my $file (glob("script/*")) { next unless -T $file; ExtUtils::MY->fixin($file); chmod(0555, $file); } } $name =~ s{::|-}{/}g; require ExtUtils::Install; if ($action eq 'install') { my $target = _installation_target( File::Spec->curdir, $name, \%args ); my $custom_targets = $args{custom_targets} || {}; $target->{$_} = $custom_targets->{$_} foreach keys %{$custom_targets}; my $uninstall_shadows = $args{uninstall_shadows}; my $verbose = $args{verbose}; ExtUtils::Install::install($target, $verbose, 0, $uninstall_shadows); } elsif ($action eq 'uninstall') { require Config; my $verbose = $args{verbose}; ExtUtils::Install::uninstall( $args{packlist_read}||"$Config::Config{installsitearch}/auto/$name/.packlist", $verbose ); } %ENV = %ENV_copy; chdir($old_dir); File::Path::rmtree([$tmpdir]); return 1; } # Returns the default installation target as used by # ExtUtils::Install::install(). First parameter should be the base # directory containing the blib/ we're installing from. # Second parameter should be the name of the distribution for the packlist # paths. Third parameter may be a hash reference with user defined keys for # the target hash. In fact, any contents that do not start with 'inst_' are # skipped. sub _installation_target { require Config; my $dir = shift; my $name = shift; my $user = shift || {}; # accepted sources (and user overrides) my %sources = ( inst_lib => File::Spec->catdir($dir,"blib","lib"), inst_archlib => File::Spec->catdir($dir,"blib","arch"), inst_bin => File::Spec->catdir($dir,'blib','bin'), inst_script => File::Spec->catdir($dir,'blib','script'), inst_man1dir => File::Spec->catdir($dir,'blib','man1'), inst_man3dir => File::Spec->catdir($dir,'blib','man3'), packlist_read => 'read', packlist_write => 'write', ); my $par_has_archlib = _directory_not_empty( $sources{inst_archlib} ); # default targets my $target = { read => $Config::Config{sitearchexp}."/auto/$name/.packlist", write => $Config::Config{installsitearch}."/auto/$name/.packlist", $sources{inst_lib} => ($par_has_archlib ? $Config::Config{installsitearch} : $Config::Config{installsitelib}), $sources{inst_archlib} => $Config::Config{installsitearch}, $sources{inst_bin} => $Config::Config{installbin} , $sources{inst_script} => $Config::Config{installscript}, $sources{inst_man1dir} => $Config::Config{installman1dir}, $sources{inst_man3dir} => $Config::Config{installman3dir}, }; # Included for future support for ${flavour}perl external lib installation # if ($Config::Config{flavour_perl}) { # my $ext = File::Spec->catdir($dir, 'blib', 'ext'); # # from => to # $sources{inst_external_lib} = File::Spec->catdir($ext, 'lib'); # $sources{inst_external_bin} = File::Spec->catdir($ext, 'bin'); # $sources{inst_external_include} = File::Spec->catdir($ext, 'include'); # $sources{inst_external_src} = File::Spec->catdir($ext, 'src'); # $target->{ $sources{inst_external_lib} } = $Config::Config{flavour_install_lib}; # $target->{ $sources{inst_external_bin} } = $Config::Config{flavour_install_bin}; # $target->{ $sources{inst_external_include} } = $Config::Config{flavour_install_include}; # $target->{ $sources{inst_external_src} } = $Config::Config{flavour_install_src}; # } # insert user overrides foreach my $key (keys %$user) { my $value = $user->{$key}; if (not defined $value and $key ne 'packlist_read' and $key ne 'packlist_write') { # undef means "remove" delete $target->{ $sources{$key} }; } elsif (exists $sources{$key}) { # overwrite stuff, don't let the user create new entries $target->{ $sources{$key} } = $value; } } # apply the automatic inst_lib => inst_archlib conversion again # if the user asks for it and there is an archlib in the .par if ($user->{auto_inst_lib_conversion} and $par_has_archlib) { $target->{inst_lib} = $target->{inst_archlib}; } return $target; } sub _directory_not_empty { require File::Find; my($dir) = @_; my $files = 0; File::Find::find(sub { return if $_ eq ".exists"; if (-f) { $File::Find::prune++; $files = 1; } }, $dir); return $files; } #line 585 sub sign_par { my %args = &_args; _verify_or_sign(%args, action => 'sign'); } #line 600 sub verify_par { my %args = &_args; $! = _verify_or_sign(%args, action => 'verify'); return ( $! == Module::Signature::SIGNATURE_OK() ); } #line 629 sub merge_par { my $base_par = shift; my @additional_pars = @_; require Cwd; require File::Copy; require File::Path; require File::Find; # parameter checking if (not defined $base_par) { croak "First argument to merge_par() must be the .par archive to modify."; } if (not -f $base_par or not -r _ or not -w _) { croak "'$base_par' is not a file or you do not have enough permissions to read and modify it."; } foreach (@additional_pars) { if (not -f $_ or not -r _) { croak "'$_' is not a file or you do not have enough permissions to read it."; } } # The unzipping will change directories. Remember old dir. my $old_cwd = Cwd::cwd(); # Unzip the base par to a temp. dir. (undef, my $base_dir) = _unzip_to_tmpdir( dist => $base_par, subdir => 'blib' ); my $blibdir = File::Spec->catdir($base_dir, 'blib'); # move the META.yml to the (main) temp. dir. my $main_meta_file = File::Spec->catfile($base_dir, 'META.yml'); File::Copy::move( File::Spec->catfile($blibdir, 'META.yml'), $main_meta_file ); # delete (incorrect) MANIFEST unlink File::Spec->catfile($blibdir, 'MANIFEST'); # extract additional pars and merge foreach my $par (@additional_pars) { # restore original directory because the par path # might have been relative! chdir($old_cwd); (undef, my $add_dir) = _unzip_to_tmpdir( dist => $par ); # merge the meta (at least the provides info) into the main meta.yml my $meta_file = File::Spec->catfile($add_dir, 'META.yml'); if (-f $meta_file) { _merge_meta($main_meta_file, $meta_file); } my @files; my @dirs; # I hate File::Find # And I hate writing portable code, too. File::Find::find( {wanted =>sub { my $file = $File::Find::name; push @files, $file if -f $file; push @dirs, $file if -d _; }}, $add_dir ); my ($vol, $subdir, undef) = File::Spec->splitpath( $add_dir, 1); my @dir = File::Spec->splitdir( $subdir ); # merge directory structure foreach my $dir (@dirs) { my ($v, $d, undef) = File::Spec->splitpath( $dir, 1 ); my @d = File::Spec->splitdir( $d ); shift @d foreach @dir; # remove tmp dir from path my $target = File::Spec->catdir( $blibdir, @d ); mkdir($target); } # merge files foreach my $file (@files) { my ($v, $d, $f) = File::Spec->splitpath( $file ); my @d = File::Spec->splitdir( $d ); shift @d foreach @dir; # remove tmp dir from path my $target = File::Spec->catfile( File::Spec->catdir( $blibdir, @d ), $f ); File::Copy::copy($file, $target) or die "Could not copy '$file' to '$target': $!"; } chdir($old_cwd); File::Path::rmtree([$add_dir]); } # delete (copied) MANIFEST and META.yml unlink File::Spec->catfile($blibdir, 'MANIFEST'); unlink File::Spec->catfile($blibdir, 'META.yml'); chdir($base_dir); my $resulting_par_file = Cwd::abs_path(blib_to_par(quiet => 1)); chdir($old_cwd); File::Copy::move($resulting_par_file, $base_par); File::Path::rmtree([$base_dir]); } sub _merge_meta { my $meta_orig_file = shift; my $meta_extra_file = shift; return() if not defined $meta_orig_file or not -f $meta_orig_file; return 1 if not defined $meta_extra_file or not -f $meta_extra_file; my $yaml_functions = _get_yaml_functions(); die "Cannot merge META.yml files without a YAML reader/writer" if !exists $yaml_functions->{LoadFile} or !exists $yaml_functions->{DumpFile}; my $orig_meta = $yaml_functions->{LoadFile}->($meta_orig_file); my $extra_meta = $yaml_functions->{LoadFile}->($meta_extra_file); # I seem to remember there was this incompatibility between the different # YAML implementations with regards to "document" handling: my $orig_tree = (ref($orig_meta) eq 'ARRAY' ? $orig_meta->[0] : $orig_meta); my $extra_tree = (ref($extra_meta) eq 'ARRAY' ? $extra_meta->[0] : $extra_meta); _merge_provides($orig_tree, $extra_tree); _merge_requires($orig_tree, $extra_tree); $yaml_functions->{DumpFile}->($meta_orig_file, $orig_meta); return 1; } # merge the two-level provides sections of META.yml sub _merge_provides { my $orig_hash = shift; my $extra_hash = shift; return() if not exists $extra_hash->{provides}; $orig_hash->{provides} ||= {}; my $orig_provides = $orig_hash->{provides}; my $extra_provides = $extra_hash->{provides}; # two level clone is enough wrt META spec 1.4 # overwrite the original provides since we're also overwriting the files. foreach my $module (keys %$extra_provides) { my $extra_mod_hash = $extra_provides->{$module}; my %mod_hash; $mod_hash{$_} = $extra_mod_hash->{$_} for keys %$extra_mod_hash; $orig_provides->{$module} = \%mod_hash; } } # merge the single-level requires-like sections of META.yml sub _merge_requires { my $orig_hash = shift; my $extra_hash = shift; foreach my $type (qw(requires build_requires configure_requires recommends)) { next if not exists $extra_hash->{$type}; $orig_hash->{$type} ||= {}; # one level clone is enough wrt META spec 1.4 foreach my $module (keys %{ $extra_hash->{$type} }) { # FIXME there should be a version comparison here, BUT how are we going to do that without a guaranteed version.pm? $orig_hash->{$type}{$module} = $extra_hash->{$type}{$module}; # assign version and module name } } } #line 818 sub remove_man { my %args = &_args; my $par = $args{dist}; require Cwd; require File::Copy; require File::Path; require File::Find; # parameter checking if (not defined $par) { croak "First argument to remove_man() must be the .par archive to modify."; } if (not -f $par or not -r _ or not -w _) { croak "'$par' is not a file or you do not have enough permissions to read and modify it."; } # The unzipping will change directories. Remember old dir. my $old_cwd = Cwd::cwd(); # Unzip the base par to a temp. dir. (undef, my $base_dir) = _unzip_to_tmpdir( dist => $par, subdir => 'blib' ); my $blibdir = File::Spec->catdir($base_dir, 'blib'); # move the META.yml to the (main) temp. dir. File::Copy::move( File::Spec->catfile($blibdir, 'META.yml'), File::Spec->catfile($base_dir, 'META.yml') ); # delete (incorrect) MANIFEST unlink File::Spec->catfile($blibdir, 'MANIFEST'); opendir DIRECTORY, 'blib' or die $!; my @dirs = grep { /^blib\/(?:man\d*|html)$/ } grep { -d $_ } map { File::Spec->catfile('blib', $_) } readdir DIRECTORY; close DIRECTORY; File::Path::rmtree(\@dirs); chdir($base_dir); my $resulting_par_file = Cwd::abs_path(blib_to_par()); chdir($old_cwd); File::Copy::move($resulting_par_file, $par); File::Path::rmtree([$base_dir]); } #line 884 sub get_meta { my %args = &_args; my $dist = $args{dist}; return undef if not defined $dist or not -r $dist; require Cwd; require File::Path; # The unzipping will change directories. Remember old dir. my $old_cwd = Cwd::cwd(); # Unzip the base par to a temp. dir. (undef, my $base_dir) = _unzip_to_tmpdir( dist => $dist, subdir => 'blib' ); my $blibdir = File::Spec->catdir($base_dir, 'blib'); my $meta = File::Spec->catfile($blibdir, 'META.yml'); if (not -r $meta) { return undef; } open FH, '<', $meta or die "Could not open file '$meta' for reading: $!"; local $/ = undef; my $meta_text = ; close FH; chdir($old_cwd); File::Path::rmtree([$base_dir]); return $meta_text; } sub _unzip { my %args = &_args; my $dist = $args{dist}; my $path = $args{path} || File::Spec->curdir; return unless -f $dist; # Try fast unzipping first if (eval { require Archive::Unzip::Burst; 1 }) { my $return = !Archive::Unzip::Burst::unzip($dist, $path); return if $return; # true return value == error (a la system call) } # Then slow unzipping if (eval { require Archive::Zip; 1 }) { my $zip = Archive::Zip->new; local %SIG; $SIG{__WARN__} = sub { print STDERR $_[0] unless $_[0] =~ /\bstat\b/ }; return unless $zip->read($dist) == Archive::Zip::AZ_OK() and $zip->extractTree('', "$path/") == Archive::Zip::AZ_OK(); } # Then fall back to the system else { undef $!; if (_system_wrapper(unzip => $dist, '-d', $path)) { die "Failed to unzip '$dist' to path '$path': Could neither load " . "Archive::Zip nor (successfully) run the system 'unzip' (unzip said: $!)"; } } return 1; } sub _zip { my %args = &_args; my $dist = $args{dist}; if (eval { require Archive::Zip; 1 }) { my $zip = Archive::Zip->new; $zip->addTree( File::Spec->curdir, '' ); $zip->writeToFileNamed( $dist ) == Archive::Zip::AZ_OK() or die $!; } else { undef $!; if (_system_wrapper(qw(zip -r), $dist, File::Spec->curdir)) { die "Failed to zip '" .File::Spec->curdir(). "' to '$dist': Could neither load " . "Archive::Zip nor (successfully) run the system 'zip' (zip said: $!)"; } } return 1; } # This sub munges the arguments to most of the PAR::Dist functions # into a hash. On the way, it downloads PAR archives as necessary, etc. sub _args { # default to the first .par in the CWD if (not @_) { @_ = (glob('*.par'))[0]; } # single argument => it's a distribution file name or URL @_ = (dist => @_) if @_ == 1; my %args = @_; $args{name} ||= $args{dist}; # If we are installing from an URL, we want to munge the # distribution name so that it is in form "Module-Name" if (defined $args{name}) { $args{name} =~ s/^\w+:\/\///; my @elems = parse_dist_name($args{name}); # @elems is name, version, arch, perlversion if (defined $elems[0]) { $args{name} = $elems[0]; } else { $args{name} =~ s/^.*\/([^\/]+)$/$1/; $args{name} =~ s/^([0-9A-Za-z_-]+)-\d+\..+$/$1/; } } # append suffix if there is none if ($args{dist} and not $args{dist} =~ /\.[a-zA-Z_][^.]*$/) { require Config; my $suffix = $args{suffix}; $suffix ||= "$Config::Config{archname}-$Config::Config{version}.par"; $args{dist} .= "-$suffix"; } # download if it's an URL if ($args{dist} and $args{dist} =~ m!^\w+://!) { $args{dist} = _fetch(dist => $args{dist}) } return %args; } # Download PAR archive, but only if necessary (mirror!) my %escapes; sub _fetch { my %args = @_; if ($args{dist} =~ s/^file:\/\///) { return $args{dist} if -e $args{dist}; return; } require LWP::Simple; $ENV{PAR_TEMP} ||= File::Spec->catdir(File::Spec->tmpdir, 'par'); mkdir $ENV{PAR_TEMP}, 0777; %escapes = map { chr($_) => sprintf("%%%02X", $_) } 0..255 unless %escapes; $args{dist} =~ s{^cpan://((([a-zA-Z])[a-zA-Z])[-_a-zA-Z]+)/} {http://www.cpan.org/modules/by-authors/id/\U$3/$2/$1\E/}; my $file = $args{dist}; $file =~ s/([^\w\.])/$escapes{$1}/g; $file = File::Spec->catfile( $ENV{PAR_TEMP}, $file); my $rc = LWP::Simple::mirror( $args{dist}, $file ); if (!LWP::Simple::is_success($rc) and $rc != 304) { die "Error $rc: ", LWP::Simple::status_message($rc), " ($args{dist})\n"; } return $file if -e $file; return; } sub _verify_or_sign { my %args = &_args; require File::Path; require Module::Signature; die "Module::Signature version 0.25 required" unless Module::Signature->VERSION >= 0.25; require Cwd; my $cwd = Cwd::cwd(); my $action = $args{action}; my ($dist, $tmpdir) = _unzip_to_tmpdir($args{dist}); $action ||= (-e 'SIGNATURE' ? 'verify' : 'sign'); if ($action eq 'sign') { open FH, '>SIGNATURE' unless -e 'SIGNATURE'; open FH, 'MANIFEST' or die $!; local $/; my $out = ; if ($out !~ /^SIGNATURE(?:\s|$)/m) { $out =~ s/^(?!\s)/SIGNATURE\n/m; open FH, '>MANIFEST' or die $!; print FH $out; } close FH; $args{overwrite} = 1 unless exists $args{overwrite}; $args{skip} = 0 unless exists $args{skip}; } my $rv = Module::Signature->can($action)->(%args); _zip(dist => $dist) if $action eq 'sign'; File::Path::rmtree([$tmpdir]); chdir($cwd); return $rv; } sub _unzip_to_tmpdir { my %args = &_args; require File::Temp; my $dist = File::Spec->rel2abs($args{dist}); my $tmpdirname = File::Spec->catdir(File::Spec->tmpdir, "parXXXXX"); my $tmpdir = File::Temp::mkdtemp($tmpdirname) or die "Could not create temporary directory from template '$tmpdirname': $!"; my $path = $tmpdir; $path = File::Spec->catdir($tmpdir, $args{subdir}) if defined $args{subdir}; _unzip(dist => $dist, path => $path); chdir $tmpdir; return ($dist, $tmpdir); } #line 1132 sub parse_dist_name { my $file = shift; return(undef, undef, undef, undef) if not defined $file; (undef, undef, $file) = File::Spec->splitpath($file); my $version = qr/v?(?:\d+(?:_\d+)?|\d*(?:\.\d+(?:_\d+)?)+)/; $file =~ s/\.(?:par|tar\.gz|tar)$//i; my @elem = split /-/, $file; my (@dn, $dv, @arch, $pv); while (@elem) { my $e = shift @elem; if ( $e =~ /^$version$/o and not(# if not next token also a version # (assumes an arch string doesnt start with a version...) @elem and $elem[0] =~ /^$version$/o ) ) { $dv = $e; last; } push @dn, $e; } my $dn; $dn = join('-', @dn) if @dn; if (not @elem) { return( $dn, $dv, undef, undef); } while (@elem) { my $e = shift @elem; if ($e =~ /^$version|any_version$/) { $pv = $e; last; } push @arch, $e; } my $arch; $arch = join('-', @arch) if @arch; return($dn, $dv, $arch, $pv); } #line 1209 sub generate_blib_stub { my %args = &_args; my $dist = $args{dist}; require Config; my $name = $args{name}; my $version = $args{version}; my $suffix = $args{suffix}; my ($parse_name, $parse_version, $archname, $perlversion) = parse_dist_name($dist); $name ||= $parse_name; $version ||= $parse_version; $suffix = "$archname-$perlversion" if (not defined $suffix or $suffix eq '') and $archname and $perlversion; $suffix ||= "$Config::Config{archname}-$Config::Config{version}"; if ( grep { not defined $_ } ($name, $version, $suffix) ) { warn "Could not determine distribution meta information from distribution name '$dist'"; return(); } $suffix =~ s/\.par$//; if (not -f 'META.yml') { open META, '>', 'META.yml' or die "Could not open META.yml file for writing: $!"; print META << "YAML" if fileno(META); name: $name version: $version build_requires: {} conflicts: {} dist_name: $name-$version-$suffix.par distribution_type: par dynamic_config: 0 generated_by: 'PAR::Dist version $PAR::Dist::VERSION' license: unknown YAML close META; } mkdir('blib'); mkdir(File::Spec->catdir('blib', 'lib')); mkdir(File::Spec->catdir('blib', 'script')); return 1; } #line 1277 sub contains_binaries { require File::Find; my %args = &_args; my $dist = $args{dist}; return undef if not defined $dist or not -r $dist; require Cwd; require File::Path; # The unzipping will change directories. Remember old dir. my $old_cwd = Cwd::cwd(); # Unzip the base par to a temp. dir. (undef, my $base_dir) = _unzip_to_tmpdir( dist => $dist, subdir => 'blib' ); my $blibdir = File::Spec->catdir($base_dir, 'blib'); my $archdir = File::Spec->catdir($blibdir, 'arch'); my $found = 0; File::Find::find( sub { $found++ if -f $_ and not /^\.exists$/; }, $archdir ); chdir($old_cwd); File::Path::rmtree([$base_dir]); return $found ? 1 : 0; } sub _system_wrapper { if ($DEBUG) { Carp::cluck("Running system call '@_' from:"); } return system(@_); } # stolen from Module::Install::Can # very much internal and subject to change or removal sub _MI_can_run { require ExtUtils::MakeMaker; my ($cmd) = @_; my $_cmd = $cmd; return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd)); for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { my $abs = File::Spec->catfile($dir, $cmd); return $abs if (-x $abs or $abs = MM->maybe_command($abs)); } return; } # Tries to load any YAML reader writer I know of # returns nothing on failure or hash reference containing # a subset of Load, Dump, LoadFile, DumpFile # entries with sub references on success. sub _get_yaml_functions { # reasoning for the ranking here: # - syck is fast and reasonably complete # - YAML.pm is slow and aging # - Tiny is only a very small subset # - XS is very new and I'm not sure it's ready for prime-time yet # - Parse... is only a reader and only deals with the same subset as ::Tiny my @modules = qw(YAML::Syck YAML YAML::Tiny YAML::XS Parse::CPAN::Meta); my %yaml_functions; foreach my $module (@modules) { eval "require $module;"; if (!$@) { warn "PAR::Dist testers/debug info: Using '$module' as YAML implementation" if $DEBUG; foreach my $sub (qw(Load Dump LoadFile DumpFile)) { no strict 'refs'; my $subref = *{"${module}::$sub"}{CODE}; if (defined $subref and ref($subref) eq 'CODE') { $yaml_functions{$sub} = $subref; } } $yaml_functions{yaml_provider} = $module; last; } } # end foreach module candidates if (not keys %yaml_functions) { warn "Cannot find a working YAML reader/writer implementation. Tried to load all of '@modules'"; } return(\%yaml_functions); } sub _check_tools { my $tools = _get_yaml_functions(); if ($DEBUG) { foreach (qw/Load Dump LoadFile DumpFile/) { warn "No YAML support for $_ found.\n" if not defined $tools->{$_}; } } $tools->{zip} = undef; # A::Zip 1.28 was a broken release... if (eval {require Archive::Zip; 1;} and $Archive::Zip::VERSION ne '1.28') { warn "Using Archive::Zip as ZIP tool.\n" if $DEBUG; $tools->{zip} = 'Archive::Zip'; } elsif (_MI_can_run("zip") and _MI_can_run("unzip")) { warn "Using zip/unzip as ZIP tool.\n" if $DEBUG; $tools->{zip} = 'zip'; } else { warn "Found neither Archive::Zip (version != 1.28) nor ZIP/UNZIP as valid ZIP tools.\n" if $DEBUG; $tools->{zip} = undef; } return $tools; } 1; #line 1426 FILEbf5df353/PAR/Filter.pmx#line 1 "/usr/local/share/perl/5.10.1/PAR/Filter.pm" package PAR::Filter; use 5.006; use strict; use warnings; our $VERSION = '0.03'; #line 64 sub new { my $class = shift; require "PAR/Filter/$_.pm" foreach @_; bless(\@_, $class); } sub apply { my ($self, $ref, $name) = @_; my $filename = $name || '-e'; if (!ref $ref) { $name ||= $filename = $ref; local $/; open my $fh, $ref or die $!; binmode($fh); my $content = <$fh>; $ref = \$content; return $ref unless length($content); } "PAR::Filter::$_"->new->apply( $ref, $filename, $name ) foreach @$self; return $ref; } 1; #line 106 FILE798363e2/PAR/Filter/PodStrip.pm#line 1 "/usr/local/share/perl/5.10.1/PAR/Filter/PodStrip.pm" package PAR::Filter::PodStrip; use 5.006; use strict; use warnings; use base 'PAR::Filter'; #line 22 sub apply { my ($class, $ref, $filename, $name) = @_; no warnings 'uninitialized'; my $data = ''; $data = $1 if $$ref =~ s/((?:^__DATA__\r?\n).*)//ms; my $line = 1; if ($$ref =~ /^=(?:head\d|pod|begin|item|over|for|back|end|cut)\b/) { $$ref = "\n$$ref"; $line--; } $$ref =~ s{( (.*?\n) (?:=(?:head\d|pod|begin|item|over|for|back|end)\b .*?\n) (?:=cut[\t ]*[\r\n]*?|\Z) (\r?\n)? )}{ my ($pre, $post) = ($2, $3); "$pre#line " . ( $line += ( () = ( $1 =~ /\n/g ) ) ) . $post; }gsex; $$ref =~ s{^=encoding\s+\S+\s*$}{\n}mg; $$ref = '#line 1 "' . ($filename) . "\"\n" . $$ref if length $filename; $$ref =~ s/^#line 1 (.*\n)(#!.*\n)/$2#line 2 $1/g; $$ref .= $data; } 1; #line 85 FILE8f7f1a63/PAR/Heavy.pm#line 1 "/usr/local/share/perl/5.10.1/PAR/Heavy.pm" package PAR::Heavy; $PAR::Heavy::VERSION = '0.12'; #line 17 ######################################################################## # Dynamic inclusion of XS modules my ($bootstrap, $dl_findfile); # Caches for code references my ($dlext); # Cache for $Config{dlext} my ($cache_key); # The current file to find my $is_insensitive_fs = ( -s $0 and (-s lc($0) || -1) == (-s uc($0) || -1) and (-s lc($0) || -1) == -s $0 ); # Adds pre-hooks to Dynaloader's key methods sub _init_dynaloader { return if $bootstrap; return unless eval { require DynaLoader; DynaLoader::dl_findfile(); 1 }; $bootstrap = \&DynaLoader::bootstrap; $dl_findfile = \&DynaLoader::dl_findfile; local $^W; *{'DynaLoader::dl_expandspec'} = sub { return }; *{'DynaLoader::bootstrap'} = \&_bootstrap; *{'DynaLoader::dl_findfile'} = \&_dl_findfile; } # Return the cached location of .dll inside PAR first, if possible. sub _dl_findfile { return $FullCache{$cache_key} if exists $FullCache{$cache_key}; if ($is_insensitive_fs) { # We have a case-insensitive filesystem... my ($key) = grep { lc($_) eq lc($cache_key) } keys %FullCache; return $FullCache{$key} if defined $key; } return $dl_findfile->(@_); } # Find and extract .dll from PAR files for a given dynamic module. sub _bootstrap { my (@args) = @_; my ($module) = $args[0] or return; my @modparts = split(/::/, $module); my $modfname = $modparts[-1]; $modfname = &DynaLoader::mod2fname(\@modparts) if defined &DynaLoader::mod2fname; if (($^O eq 'NetWare') && (length($modfname) > 8)) { $modfname = substr($modfname, 0, 8); } # XXX: Multi-platform .dll support in PARs needs better than $Config. # FIXME: Config is always loaded by PAR.pm! $dlext ||= do { require Config; (%Config::Config) ? $Config::Config{dlext} : ''; }; my $modpname = join((($^O eq 'MacOS') ? ':' : '/'), @modparts); my $file = $cache_key = "auto/$modpname/$modfname.$dlext"; if ($FullCache{$file}) { # TODO: understand local $DynaLoader::do_expand = 1; return $bootstrap->(@args); } my $member; # First, try to find things in the peferentially loaded PARs: $member = PAR::_find_par_internals([@PAR::PAR_INC], undef, $file, 1) if defined &PAR::_find_par_internals; # If that failed to find the dll, let DynaLoader (try or) throw an error unless ($member) { my $filename = eval { $bootstrap->(@args) }; return $filename if not $@ and defined $filename; # Now try the fallback pars $member = PAR::_find_par_internals([@PAR::PAR_INC_LAST], undef, $file, 1) if defined &PAR::_find_par_internals; # If that fails, let dynaloader have another go JUST to throw an error # While this may seem wasteful, nothing really matters once we fail to # load shared libraries! unless ($member) { return $bootstrap->(@args); } } $FullCache{$file} = _dl_extract($member, $file); # Now extract all associated shared objs in the same auto/ dir # XXX: shouldn't this also set $FullCache{...} for those files? my $first = $member->fileName; my $path_pattern = $first; $path_pattern =~ s{[^/]*$}{}; if ($PAR::LastAccessedPAR) { foreach my $member ( $PAR::LastAccessedPAR->members ) { next if $member->isDirectory; my $name = $member->fileName; next if $name eq $first; next unless $name =~ m{^/?\Q$path_pattern\E\/[^/]*\.\Q$dlext\E[^/]*$}; $name =~ s{.*/}{}; _dl_extract($member, $file, $name); } } local $DynaLoader::do_expand = 1; return $bootstrap->(@args); } sub _dl_extract { my ($member, $file, $name) = @_; require File::Spec; require File::Temp; my ($fh, $filename); # fix borked tempdir from earlier versions if ($ENV{PAR_TEMP} and -e $ENV{PAR_TEMP} and !-d $ENV{PAR_TEMP}) { unlink($ENV{PAR_TEMP}); mkdir($ENV{PAR_TEMP}, 0755); } if ($ENV{PAR_CLEAN} and !$name) { ($fh, $filename) = File::Temp::tempfile( DIR => ($ENV{PAR_TEMP} || File::Spec->tmpdir), SUFFIX => ".$dlext", UNLINK => ($^O ne 'MSWin32' and $^O !~ /hpux/), ); ($filename) = $filename =~ /^([\x20-\xff]+)$/; } else { $filename = File::Spec->catfile( ($ENV{PAR_TEMP} || File::Spec->tmpdir), ($name || ($member->crc32String . ".$dlext")) ); ($filename) = $filename =~ /^([\x20-\xff]+)$/; open $fh, '>', $filename or die $! unless -r $filename and -e _ and -s _ == $member->uncompressedSize; } if ($fh) { binmode($fh); $member->extractToFileHandle($fh); close $fh; chmod 0755, $filename; } return $filename; } 1; #line 205 FILEbd780b93/PAR/SetupProgname.pm#line 1 "/usr/local/share/perl/5.10.1/PAR/SetupProgname.pm" package PAR::SetupProgname; $PAR::SetupProgname::VERSION = '1.002'; use 5.006; use strict; use warnings; use Config (); #line 26 # for PAR internal use only! our $Progname = $ENV{PAR_PROGNAME} || $0; # same code lives in PAR::Packer's par.pl! sub set_progname { require File::Spec; if (defined $ENV{PAR_PROGNAME} and $ENV{PAR_PROGNAME} =~ /(.+)/) { $Progname = $1; } $Progname = $0 if not defined $Progname; if (( () = File::Spec->splitdir($Progname) ) > 1 or !$ENV{PAR_PROGNAME}) { if (open my $fh, $Progname) { return if -s $fh; } if (-s "$Progname$Config::Config{_exe}") { $Progname .= $Config::Config{_exe}; return; } } foreach my $dir (split /\Q$Config::Config{path_sep}\E/, $ENV{PATH}) { next if exists $ENV{PAR_TEMP} and $dir eq $ENV{PAR_TEMP}; my $name = File::Spec->catfile($dir, "$Progname$Config::Config{_exe}"); if (-s $name) { $Progname = $name; last } $name = File::Spec->catfile($dir, "$Progname"); if (-s $name) { $Progname = $name; last } } } 1; __END__ #line 94 FILE7326da25/PAR/SetupTemp.pm #line 1 "/usr/local/share/perl/5.10.1/PAR/SetupTemp.pm" package PAR::SetupTemp; $PAR::SetupTemp::VERSION = '1.002'; use 5.006; use strict; use warnings; use PAR::SetupProgname; #line 29 # for PAR internal use only! our $PARTemp; # The C version of this code appears in myldr/mktmpdir.c # This code also lives in PAR::Packer's par.pl as _set_par_temp! sub set_par_temp_env { PAR::SetupProgname::set_progname() unless defined $PAR::SetupProgname::Progname; if (defined $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/) { $PARTemp = $1; return; } my $stmpdir = _get_par_user_tempdir(); require File::Spec; if (defined $stmpdir) { # it'd be quite bad if this was not the case if (!$ENV{PAR_CLEAN} and my $mtime = (stat($PAR::SetupProgname::Progname))[9]) { my $ctx = _get_digester(); # Workaround for bug in Digest::SHA 5.38 and 5.39 my $sha_version = eval { $Digest::SHA::VERSION } || 0; if ($sha_version eq '5.38' or $sha_version eq '5.39') { $ctx->addfile($PAR::SetupProgname::Progname, "b") if ($ctx); } else { if ($ctx and open(my $fh, "<$PAR::SetupProgname::Progname")) { binmode($fh); $ctx->addfile($fh); close($fh); } } $stmpdir = File::Spec->catdir( $stmpdir, "cache-" . ( $ctx ? $ctx->hexdigest : $mtime ) ); } else { $ENV{PAR_CLEAN} = 1; $stmpdir = File::Spec->catdir($stmpdir, "temp-$$"); } $ENV{PAR_TEMP} = $stmpdir; mkdir $stmpdir, 0755; } # end if found a temp dir $PARTemp = $1 if defined $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/; } # Find any digester # Used in PAR::Repository::Client! sub _get_digester { my $ctx = eval { require Digest::SHA; Digest::SHA->new(1) } || eval { require Digest::SHA1; Digest::SHA1->new } || eval { require Digest::MD5; Digest::MD5->new }; return $ctx; } # find the per-user temporary directory (eg /tmp/par-$USER) # Used in PAR::Repository::Client! sub _get_par_user_tempdir { my $username = _find_username(); my $temp_path; foreach my $path ( (map $ENV{$_}, qw( PAR_TMPDIR TMPDIR TEMPDIR TEMP TMP )), qw( C:\\TEMP /tmp . ) ) { next unless defined $path and -d $path and -w $path; $temp_path = File::Spec->catdir($path, "par-$username"); ($temp_path) = $temp_path =~ /^(.*)$/s; mkdir $temp_path, 0755; last; } return $temp_path; } # tries hard to find out the name of the current user sub _find_username { my $username; my $pwuid; # does not work everywhere: eval {($pwuid) = getpwuid($>) if defined $>;}; if ( defined(&Win32::LoginName) ) { $username = &Win32::LoginName; } elsif (defined $pwuid) { $username = $pwuid; } else { $username = $ENV{USERNAME} || $ENV{USER} || 'SYSTEM'; } $username =~ s/\W/_/g; return $username; } 1; __END__ #line 164 FILEe5038970/prefork.pm #line 1 "/usr/local/share/perl/5.10.1/prefork.pm" package prefork; #line 176 use 5.005; use strict; use Carp (); use List::Util 0.18 (); use Scalar::Util 0.18 (); use vars qw{$VERSION $FORKING %MODULES @NOTIFY}; BEGIN { $VERSION = '1.04'; # The main state variable for this package. # Are we in preforking mode. $FORKING = ''; # The queue of modules to load %MODULES = (); # The queue of notification callbacks @NOTIFY = ( sub { # Do a hash copy of Config to get everything # inside of it preloaded. require Config; eval { # Sometimes there is no Config_heavy.pl require 'Config_heavy.pl'; }; my $copy = { %Config::Config }; return 1; }, ); # Look for situations that need us to start in forking mode $FORKING = 1 if $ENV{MOD_PERL}; } sub import { return 1 unless $_[1]; ($_[1] eq ':enable') ? enable() : prefork($_[1]); } #line 232 sub prefork ($) { # Just hand straight to require if enabled my $module = defined $_[0] ? "$_[0]" : '' or Carp::croak('You did not pass a module name to prefork'); $module =~ /^[^\W\d]\w*(?:(?:\'|::)[^\W\d]\w*)*$/ or Carp::croak("'$module' is not a module name"); my $file = join( '/', split /(?:\'|::)/, $module ) . '.pm'; # Is it already loaded or queued return 1 if $INC{$file}; return 1 if $MODULES{$module}; # Load now if enabled, or add to the module list return require $file if $FORKING; $MODULES{$module} = $file; 1; } #line 266 sub enable () { # Turn on the PREFORK flag, so any additional # 'use prefork ...' calls made during loading # will load immediately. return 1 if $FORKING; $FORKING = 1; # Load all of the modules not yet loaded foreach my $module ( sort keys %MODULES ) { my $file = $MODULES{$module}; # Has it been loaded since we were told about it next if $INC{$file}; # Load the module. require $file; } # Clear the modules list %MODULES = (); # Execute the third-party callbacks while ( my $callback = shift @NOTIFY ) { $callback->(); } 1; } #line 323 sub notify ($) { # Get the CODE ref callback param my $function = shift; my $reftype = Scalar::Util::reftype($function); unless ( $reftype and $reftype eq 'CODE' ) { Carp::croak("prefork::notify was not passed a CODE reference"); } # Call it immediately is already in forking mode if ( $FORKING ) { $function->(); return 1; } # Is it already defined? if ( List::Util::first { Scalar::Util::refaddr($function) == Scalar::Util::refaddr($_) } @NOTIFY ) { Carp::croak("Callback function already registered"); } # Add to the queue push @NOTIFY, $function; 1; } ##################################################################### # Built-in Notifications # Compile CGI functions automatically prefork::notify( sub { CGI->compile() if $INC{'CGI.pm'}; } ); 1; #line 395 FILE52a3c86b/AutoLoader.pmI#line 1 "/usr/share/perl/5.10/AutoLoader.pm" package AutoLoader; use strict; use 5.006_001; our($VERSION, $AUTOLOAD); my $is_dosish; my $is_epoc; my $is_vms; my $is_macos; BEGIN { $is_dosish = $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32' || $^O eq 'NetWare'; $is_epoc = $^O eq 'epoc'; $is_vms = $^O eq 'VMS'; $is_macos = $^O eq 'MacOS'; $VERSION = '5.68'; } AUTOLOAD { my $sub = $AUTOLOAD; my $filename = AutoLoader::find_filename( $sub ); my $save = $@; local $!; # Do not munge the value. eval { local $SIG{__DIE__}; require $filename }; if ($@) { if (substr($sub,-9) eq '::DESTROY') { no strict 'refs'; *$sub = sub {}; $@ = undef; } elsif ($@ =~ /^Can't locate/) { # The load might just have failed because the filename was too # long for some old SVR3 systems which treat long names as errors. # If we can successfully truncate a long name then it's worth a go. # There is a slight risk that we could pick up the wrong file here # but autosplit should have warned about that when splitting. if ($filename =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){ eval { local $SIG{__DIE__}; require $filename }; } } if ($@){ $@ =~ s/ at .*\n//; my $error = $@; require Carp; Carp::croak($error); } } $@ = $save; goto &$sub; } sub find_filename { my $sub = shift; my $filename; # Braces used to preserve $1 et al. { # Try to find the autoloaded file from the package-qualified # name of the sub. e.g., if the sub needed is # Getopt::Long::GetOptions(), then $INC{Getopt/Long.pm} is # something like '/usr/lib/perl5/Getopt/Long.pm', and the # autoload file is '/usr/lib/perl5/auto/Getopt/Long/GetOptions.al'. # # However, if @INC is a relative path, this might not work. If, # for example, @INC = ('lib'), then $INC{Getopt/Long.pm} is # 'lib/Getopt/Long.pm', and we want to require # 'auto/Getopt/Long/GetOptions.al' (without the leading 'lib'). # In this case, we simple prepend the 'auto/' and let the # C take care of the searching for us. my ($pkg,$func) = ($sub =~ /(.*)::([^:]+)$/); $pkg =~ s#::#/#g; if (defined($filename = $INC{"$pkg.pm"})) { if ($is_macos) { $pkg =~ tr#/#:#; $filename = undef unless $filename =~ s#^(.*)$pkg\.pm\z#$1auto:$pkg:$func.al#s; } else { $filename = undef unless $filename =~ s#^(.*)$pkg\.pm\z#$1auto/$pkg/$func.al#s; } # if the file exists, then make sure that it is a # a fully anchored path (i.e either '/usr/lib/auto/foo/bar.al', # or './lib/auto/foo/bar.al'. This avoids C searching # (and failing) to find the 'lib/auto/foo/bar.al' because it # looked for 'lib/lib/auto/foo/bar.al', given @INC = ('lib'). if (defined $filename and -r $filename) { unless ($filename =~ m|^/|s) { if ($is_dosish) { unless ($filename =~ m{^([a-z]:)?[\\/]}is) { if ($^O ne 'NetWare') { $filename = "./$filename"; } else { $filename = "$filename"; } } } elsif ($is_epoc) { unless ($filename =~ m{^([a-z?]:)?[\\/]}is) { $filename = "./$filename"; } } elsif ($is_vms) { # XXX todo by VMSmiths $filename = "./$filename"; } elsif (!$is_macos) { $filename = "./$filename"; } } } else { $filename = undef; } } unless (defined $filename) { # let C do the searching $filename = "auto/$sub.al"; $filename =~ s#::#/#g; } } return $filename; } sub import { my $pkg = shift; my $callpkg = caller; # # Export symbols, but not by accident of inheritance. # if ($pkg eq 'AutoLoader') { if ( @_ and $_[0] =~ /^&?AUTOLOAD$/ ) { no strict 'refs'; *{ $callpkg . '::AUTOLOAD' } = \&AUTOLOAD; } } # # Try to find the autosplit index file. Eg., if the call package # is POSIX, then $INC{POSIX.pm} is something like # '/usr/local/lib/perl5/POSIX.pm', and the autosplit index file is in # '/usr/local/lib/perl5/auto/POSIX/autosplit.ix', so we require that. # # However, if @INC is a relative path, this might not work. If, # for example, @INC = ('lib'), then # $INC{POSIX.pm} is 'lib/POSIX.pm', and we want to require # 'auto/POSIX/autosplit.ix' (without the leading 'lib'). # (my $calldir = $callpkg) =~ s#::#/#g; my $path = $INC{$calldir . '.pm'}; if (defined($path)) { # Try absolute path name, but only eval it if the # transformation from module path to autosplit.ix path # succeeded! my $replaced_okay; if ($is_macos) { (my $malldir = $calldir) =~ tr#/#:#; $replaced_okay = ($path =~ s#^(.*)$malldir\.pm\z#$1auto:$malldir:autosplit.ix#s); } else { $replaced_okay = ($path =~ s#^(.*)$calldir\.pm\z#$1auto/$calldir/autosplit.ix#); } eval { require $path; } if $replaced_okay; # If that failed, try relative path with normal @INC searching. if (!$replaced_okay or $@) { $path ="auto/$calldir/autosplit.ix"; eval { require $path; }; } if ($@) { my $error = $@; require Carp; Carp::carp($error); } } } sub unimport { my $callpkg = caller; no strict 'refs'; for my $exported (qw( AUTOLOAD )) { my $symname = $callpkg . '::' . $exported; undef *{ $symname } if \&{ $symname } == \&{ $exported }; *{ $symname } = \&{ $symname }; } } 1; __END__ FILE81582293/Carp.pm#line 1 "/usr/share/perl/5.10/Carp.pm" package Carp; our $VERSION = '1.11'; # this file is an utra-lightweight stub. The first time a function is # called, Carp::Heavy is loaded, and the real short/longmessmess_jmp # subs are installed our $MaxEvalLen = 0; our $Verbose = 0; our $CarpLevel = 0; our $MaxArgLen = 64; # How much of each argument to print. 0 = all. our $MaxArgNums = 8; # How many arguments to print. 0 = all. require Exporter; our @ISA = ('Exporter'); our @EXPORT = qw(confess croak carp); our @EXPORT_OK = qw(cluck verbose longmess shortmess); our @EXPORT_FAIL = qw(verbose); # hook to enable verbose mode # if the caller specifies verbose usage ("perl -MCarp=verbose script.pl") # then the following method will be called by the Exporter which knows # to do this thanks to @EXPORT_FAIL, above. $_[1] will contain the word # 'verbose'. sub export_fail { shift; $Verbose = shift if $_[0] eq 'verbose'; @_ } # fixed hooks for stashes to point to sub longmess { goto &longmess_jmp } sub shortmess { goto &shortmess_jmp } # these two are replaced when Carp::Heavy is loaded sub longmess_jmp { local($@, $!); eval { require Carp::Heavy }; return $@ if $@; goto &longmess_real; } sub shortmess_jmp { local($@, $!); eval { require Carp::Heavy }; return $@ if $@; goto &shortmess_real; } sub croak { die shortmess @_ } sub confess { die longmess @_ } sub carp { warn shortmess @_ } sub cluck { warn longmess @_ } 1; __END__ FILEd41e7cfb/Carp/Heavy.pm +#line 1 "/usr/share/perl/5.10/Carp/Heavy.pm" # Carp::Heavy uses some variables in common with Carp. package Carp; # On one line so MakeMaker will see it. use Carp; our $VERSION = $Carp::VERSION; # use strict; # not yet # 'use Carp' just installs some very lightweight stubs; the first time # these are called, they require Carp::Heavy which installs the real # routines. # The members of %Internal are packages that are internal to perl. # Carp will not report errors from within these packages if it # can. The members of %CarpInternal are internal to Perl's warning # system. Carp will not report errors from within these packages # either, and will not report calls *to* these packages for carp and # croak. They replace $CarpLevel, which is deprecated. The # $Max(EvalLen|(Arg(Len|Nums)) variables are used to specify how the eval # text and function arguments should be formatted when printed. # disable these by default, so they can live w/o require Carp $CarpInternal{Carp}++; $CarpInternal{warnings}++; $Internal{Exporter}++; $Internal{'Exporter::Heavy'}++; our ($CarpLevel, $MaxArgNums, $MaxEvalLen, $MaxArgLen, $Verbose); # XXX longmess_real and shortmess_real should really be merged into # XXX {long|sort}mess_heavy at some point sub longmess_real { # Icky backwards compatibility wrapper. :-( # # The story is that the original implementation hard-coded the # number of call levels to go back, so calls to longmess were off # by one. Other code began calling longmess and expecting this # behaviour, so the replacement has to emulate that behaviour. my $call_pack = caller(); if ($Internal{$call_pack} or $CarpInternal{$call_pack}) { return longmess_heavy(@_); } else { local $CarpLevel = $CarpLevel + 1; return longmess_heavy(@_); } }; sub shortmess_real { # Icky backwards compatibility wrapper. :-( local @CARP_NOT = caller(); shortmess_heavy(@_); }; # replace the two hooks added by Carp # aliasing the whole glob rather than just the CV slot avoids 'redefined' # warnings, even in the presence of perl -W (as used by lib/warnings.t !) # However it has the potential to create infinite loops, if somehow Carp # is forcibly reloaded, but $INC{"Carp/Heavy.pm"} remains true. # Hence the extra hack of deleting the previous typeglob first. delete $Carp::{shortmess_jmp}; delete $Carp::{longmess_jmp}; *longmess_jmp = *longmess_real; *shortmess_jmp = *shortmess_real; sub caller_info { my $i = shift(@_) + 1; package DB; my %call_info; @call_info{ qw(pack file line sub has_args wantarray evaltext is_require) } = caller($i); unless (defined $call_info{pack}) { return (); } my $sub_name = Carp::get_subname(\%call_info); if ($call_info{has_args}) { my @args = map {Carp::format_arg($_)} @DB::args; if ($MaxArgNums and @args > $MaxArgNums) { # More than we want to show? $#args = $MaxArgNums; push @args, '...'; } # Push the args onto the subroutine $sub_name .= '(' . join (', ', @args) . ')'; } $call_info{sub_name} = $sub_name; return wantarray() ? %call_info : \%call_info; } # Transform an argument to a function into a string. sub format_arg { my $arg = shift; if (ref($arg)) { $arg = defined($overload::VERSION) ? overload::StrVal($arg) : "$arg"; } if (defined($arg)) { $arg =~ s/'/\\'/g; $arg = str_len_trim($arg, $MaxArgLen); # Quote it? $arg = "'$arg'" unless $arg =~ /^-?[\d.]+\z/; } else { $arg = 'undef'; } # The following handling of "control chars" is direct from # the original code - it is broken on Unicode though. # Suggestions? utf8::is_utf8($arg) or $arg =~ s/([[:cntrl:]]|[[:^ascii:]])/sprintf("\\x{%x}",ord($1))/eg; return $arg; } # Takes an inheritance cache and a package and returns # an anon hash of known inheritances and anon array of # inheritances which consequences have not been figured # for. sub get_status { my $cache = shift; my $pkg = shift; $cache->{$pkg} ||= [{$pkg => $pkg}, [trusts_directly($pkg)]]; return @{$cache->{$pkg}}; } # Takes the info from caller() and figures out the name of # the sub/require/eval sub get_subname { my $info = shift; if (defined($info->{evaltext})) { my $eval = $info->{evaltext}; if ($info->{is_require}) { return "require $eval"; } else { $eval =~ s/([\\\'])/\\$1/g; return "eval '" . str_len_trim($eval, $MaxEvalLen) . "'"; } } return ($info->{sub} eq '(eval)') ? 'eval {...}' : $info->{sub}; } # Figures out what call (from the point of view of the caller) # the long error backtrace should start at. sub long_error_loc { my $i; my $lvl = $CarpLevel; { my $pkg = caller(++$i); unless(defined($pkg)) { # This *shouldn't* happen. if (%Internal) { local %Internal; $i = long_error_loc(); last; } else { # OK, now I am irritated. return 2; } } redo if $CarpInternal{$pkg}; redo unless 0 > --$lvl; redo if $Internal{$pkg}; } return $i - 1; } sub longmess_heavy { return @_ if ref($_[0]); # don't break references as exceptions my $i = long_error_loc(); return ret_backtrace($i, @_); } # Returns a full stack backtrace starting from where it is # told. sub ret_backtrace { my ($i, @error) = @_; my $mess; my $err = join '', @error; $i++; my $tid_msg = ''; if (defined &threads::tid) { my $tid = threads->tid; $tid_msg = " thread $tid" if $tid; } my %i = caller_info($i); $mess = "$err at $i{file} line $i{line}$tid_msg\n"; while (my %i = caller_info(++$i)) { $mess .= "\t$i{sub_name} called at $i{file} line $i{line}$tid_msg\n"; } return $mess; } sub ret_summary { my ($i, @error) = @_; my $err = join '', @error; $i++; my $tid_msg = ''; if (defined &threads::tid) { my $tid = threads->tid; $tid_msg = " thread $tid" if $tid; } my %i = caller_info($i); return "$err at $i{file} line $i{line}$tid_msg\n"; } sub short_error_loc { # You have to create your (hash)ref out here, rather than defaulting it # inside trusts *on a lexical*, as you want it to persist across calls. # (You can default it on $_[2], but that gets messy) my $cache = {}; my $i = 1; my $lvl = $CarpLevel; { my $called = caller($i++); my $caller = caller($i); return 0 unless defined($caller); # What happened? redo if $Internal{$caller}; redo if $CarpInternal{$caller}; redo if $CarpInternal{$called}; redo if trusts($called, $caller, $cache); redo if trusts($caller, $called, $cache); redo unless 0 > --$lvl; } return $i - 1; } sub shortmess_heavy { return longmess_heavy(@_) if $Verbose; return @_ if ref($_[0]); # don't break references as exceptions my $i = short_error_loc(); if ($i) { ret_summary($i, @_); } else { longmess_heavy(@_); } } # If a string is too long, trims it with ... sub str_len_trim { my $str = shift; my $max = shift || 0; if (2 < $max and $max < length($str)) { substr($str, $max - 3) = '...'; } return $str; } # Takes two packages and an optional cache. Says whether the # first inherits from the second. # # Recursive versions of this have to work to avoid certain # possible endless loops, and when following long chains of # inheritance are less efficient. sub trusts { my $child = shift; my $parent = shift; my $cache = shift; my ($known, $partial) = get_status($cache, $child); # Figure out consequences until we have an answer while (@$partial and not exists $known->{$parent}) { my $anc = shift @$partial; next if exists $known->{$anc}; $known->{$anc}++; my ($anc_knows, $anc_partial) = get_status($cache, $anc); my @found = keys %$anc_knows; @$known{@found} = (); push @$partial, @$anc_partial; } return exists $known->{$parent}; } # Takes a package and gives a list of those trusted directly sub trusts_directly { my $class = shift; no strict 'refs'; no warnings 'once'; return @{"$class\::CARP_NOT"} ? @{"$class\::CARP_NOT"} : @{"$class\::ISA"}; } 1; FILE924dfc92/Exporter.pm #line 1 "/usr/share/perl/5.10/Exporter.pm" package Exporter; require 5.006; # Be lean. #use strict; #no strict 'refs'; our $Debug = 0; our $ExportLevel = 0; our $Verbose ||= 0; our $VERSION = '5.63'; our (%Cache); # Carp 1.05+ does this now for us, but we may be running with an old Carp $Carp::Internal{Exporter}++; sub as_heavy { require Exporter::Heavy; # Unfortunately, this does not work if the caller is aliased as *name = \&foo # Thus the need to create a lot of identical subroutines my $c = (caller(1))[3]; $c =~ s/.*:://; \&{"Exporter::Heavy::heavy_$c"}; } sub export { goto &{as_heavy()}; } sub import { my $pkg = shift; my $callpkg = caller($ExportLevel); if ($pkg eq "Exporter" and @_ and $_[0] eq "import") { *{$callpkg."::import"} = \&import; return; } # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-( my($exports, $fail) = (\@{"$pkg\::EXPORT"}, \@{"$pkg\::EXPORT_FAIL"}); return export $pkg, $callpkg, @_ if $Verbose or $Debug or @$fail > 1; my $export_cache = ($Cache{$pkg} ||= {}); my $args = @_ or @_ = @$exports; local $_; if ($args and not %$export_cache) { s/^&//, $export_cache->{$_} = 1 foreach (@$exports, @{"$pkg\::EXPORT_OK"}); } my $heavy; # Try very hard not to use {} and hence have to enter scope on the foreach # We bomb out of the loop with last as soon as heavy is set. if ($args or $fail) { ($heavy = (/\W/ or $args and not exists $export_cache->{$_} or @$fail and $_ eq $fail->[0])) and last foreach (@_); } else { ($heavy = /\W/) and last foreach (@_); } return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; local $SIG{__WARN__} = sub {require Carp; &Carp::carp}; # shortcut for the common case of no type character *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_; } # Default methods sub export_fail { my $self = shift; @_; } # Unfortunately, caller(1)[3] "does not work" if the caller is aliased as # *name = \&foo. Thus the need to create a lot of identical subroutines # Otherwise we could have aliased them to export(). sub export_to_level { goto &{as_heavy()}; } sub export_tags { goto &{as_heavy()}; } sub export_ok_tags { goto &{as_heavy()}; } sub require_version { goto &{as_heavy()}; } 1; __END__ FILE7cee3a46/Exporter/Heavy.pm#line 1 "/usr/share/perl/5.10/Exporter/Heavy.pm" package Exporter::Heavy; use strict; no strict 'refs'; # On one line so MakeMaker will see it. require Exporter; our $VERSION = $Exporter::VERSION; # Carp 1.05+ does this now for us, but we may be running with an old Carp $Carp::Internal{'Exporter::Heavy'}++; # # We go to a lot of trouble not to 'require Carp' at file scope, # because Carp requires Exporter, and something has to give. # sub _rebuild_cache { my ($pkg, $exports, $cache) = @_; s/^&// foreach @$exports; @{$cache}{@$exports} = (1) x @$exports; my $ok = \@{"${pkg}::EXPORT_OK"}; if (@$ok) { s/^&// foreach @$ok; @{$cache}{@$ok} = (1) x @$ok; } } sub heavy_export { # First make import warnings look like they're coming from the "use". local $SIG{__WARN__} = sub { my $text = shift; if ($text =~ s/ at \S*Exporter\S*.pm line \d+.*\n//) { require Carp; local $Carp::CarpLevel = 1; # ignore package calling us too. Carp::carp($text); } else { warn $text; } }; local $SIG{__DIE__} = sub { require Carp; local $Carp::CarpLevel = 1; # ignore package calling us too. Carp::croak("$_[0]Illegal null symbol in \@${1}::EXPORT") if $_[0] =~ /^Unable to create sub named "(.*?)::"/; }; my($pkg, $callpkg, @imports) = @_; my($type, $sym, $cache_is_current, $oops); my($exports, $export_cache) = (\@{"${pkg}::EXPORT"}, $Exporter::Cache{$pkg} ||= {}); if (@imports) { if (!%$export_cache) { _rebuild_cache ($pkg, $exports, $export_cache); $cache_is_current = 1; } if (grep m{^[/!:]}, @imports) { my $tagsref = \%{"${pkg}::EXPORT_TAGS"}; my $tagdata; my %imports; my($remove, $spec, @names, @allexports); # negated first item implies starting with default set: unshift @imports, ':DEFAULT' if $imports[0] =~ m/^!/; foreach $spec (@imports){ $remove = $spec =~ s/^!//; if ($spec =~ s/^://){ if ($spec eq 'DEFAULT'){ @names = @$exports; } elsif ($tagdata = $tagsref->{$spec}) { @names = @$tagdata; } else { warn qq["$spec" is not defined in %${pkg}::EXPORT_TAGS]; ++$oops; next; } } elsif ($spec =~ m:^/(.*)/$:){ my $patn = $1; @allexports = keys %$export_cache unless @allexports; # only do keys once @names = grep(/$patn/, @allexports); # not anchored by default } else { @names = ($spec); # is a normal symbol name } warn "Import ".($remove ? "del":"add").": @names " if $Exporter::Verbose; if ($remove) { foreach $sym (@names) { delete $imports{$sym} } } else { @imports{@names} = (1) x @names; } } @imports = keys %imports; } my @carp; foreach $sym (@imports) { if (!$export_cache->{$sym}) { if ($sym =~ m/^\d/) { $pkg->VERSION($sym); # inherit from UNIVERSAL # If the version number was the only thing specified # then we should act as if nothing was specified: if (@imports == 1) { @imports = @$exports; last; } # We need a way to emulate 'use Foo ()' but still # allow an easy version check: "use Foo 1.23, ''"; if (@imports == 2 and !$imports[1]) { @imports = (); last; } } elsif ($sym !~ s/^&// || !$export_cache->{$sym}) { # Last chance - see if they've updated EXPORT_OK since we # cached it. unless ($cache_is_current) { %$export_cache = (); _rebuild_cache ($pkg, $exports, $export_cache); $cache_is_current = 1; } if (!$export_cache->{$sym}) { # accumulate the non-exports push @carp, qq["$sym" is not exported by the $pkg module\n]; $oops++; } } } } if ($oops) { require Carp; Carp::croak("@{carp}Can't continue after import errors"); } } else { @imports = @$exports; } my($fail, $fail_cache) = (\@{"${pkg}::EXPORT_FAIL"}, $Exporter::FailCache{$pkg} ||= {}); if (@$fail) { if (!%$fail_cache) { # Build cache of symbols. Optimise the lookup by adding # barewords twice... both with and without a leading &. # (Technique could be applied to $export_cache at cost of memory) my @expanded = map { /^\w/ ? ($_, '&'.$_) : $_ } @$fail; warn "${pkg}::EXPORT_FAIL cached: @expanded" if $Exporter::Verbose; @{$fail_cache}{@expanded} = (1) x @expanded; } my @failed; foreach $sym (@imports) { push(@failed, $sym) if $fail_cache->{$sym} } if (@failed) { @failed = $pkg->export_fail(@failed); foreach $sym (@failed) { require Carp; Carp::carp(qq["$sym" is not implemented by the $pkg module ], "on this architecture"); } if (@failed) { require Carp; Carp::croak("Can't continue after import errors"); } } } warn "Importing into $callpkg from $pkg: ", join(", ",sort @imports) if $Exporter::Verbose; foreach $sym (@imports) { # shortcut for the common case of no type character (*{"${callpkg}::$sym"} = \&{"${pkg}::$sym"}, next) unless $sym =~ s/^(\W)//; $type = $1; no warnings 'once'; *{"${callpkg}::$sym"} = $type eq '&' ? \&{"${pkg}::$sym"} : $type eq '$' ? \${"${pkg}::$sym"} : $type eq '@' ? \@{"${pkg}::$sym"} : $type eq '%' ? \%{"${pkg}::$sym"} : $type eq '*' ? *{"${pkg}::$sym"} : do { require Carp; Carp::croak("Can't export symbol: $type$sym") }; } } sub heavy_export_to_level { my $pkg = shift; my $level = shift; (undef) = shift; # XXX redundant arg my $callpkg = caller($level); $pkg->export($callpkg, @_); } # Utility functions sub _push_tags { my($pkg, $var, $syms) = @_; my @nontag = (); my $export_tags = \%{"${pkg}::EXPORT_TAGS"}; push(@{"${pkg}::$var"}, map { $export_tags->{$_} ? @{$export_tags->{$_}} : scalar(push(@nontag,$_),$_) } (@$syms) ? @$syms : keys %$export_tags); if (@nontag and $^W) { # This may change to a die one day require Carp; Carp::carp(join(", ", @nontag)." are not tags of $pkg"); } } sub heavy_require_version { my($self, $wanted) = @_; my $pkg = ref $self || $self; return ${pkg}->VERSION($wanted); } sub heavy_export_tags { _push_tags((caller)[0], "EXPORT", \@_); } sub heavy_export_ok_tags { _push_tags((caller)[0], "EXPORT_OK", \@_); } 1; FILEab353888/File/Basename.pm#line 1 "/usr/share/perl/5.10/File/Basename.pm" #line 36 package File::Basename; # A bit of juggling to insure that C always works, since # File::Basename is used during the Perl build, when the re extension may # not be available. BEGIN { unless (eval { require re; }) { eval ' sub re::import { $^H |= 0x00100000; } ' } # HINT_RE_TAINT import re 'taint'; } use strict; use 5.006; use warnings; our(@ISA, @EXPORT, $VERSION, $Fileparse_fstype, $Fileparse_igncase); require Exporter; @ISA = qw(Exporter); @EXPORT = qw(fileparse fileparse_set_fstype basename dirname); $VERSION = "2.77"; fileparse_set_fstype($^O); #line 102 sub fileparse { my($fullname,@suffices) = @_; unless (defined $fullname) { require Carp; Carp::croak("fileparse(): need a valid pathname"); } my $orig_type = ''; my($type,$igncase) = ($Fileparse_fstype, $Fileparse_igncase); my($taint) = substr($fullname,0,0); # Is $fullname tainted? if ($type eq "VMS" and $fullname =~ m{/} ) { # We're doing Unix emulation $orig_type = $type; $type = 'Unix'; } my($dirpath, $basename); if (grep { $type eq $_ } qw(MSDOS DOS MSWin32 Epoc)) { ($dirpath,$basename) = ($fullname =~ /^((?:.*[:\\\/])?)(.*)/s); $dirpath .= '.\\' unless $dirpath =~ /[\\\/]\z/; } elsif ($type eq "OS2") { ($dirpath,$basename) = ($fullname =~ m#^((?:.*[:\\/])?)(.*)#s); $dirpath = './' unless $dirpath; # Can't be 0 $dirpath .= '/' unless $dirpath =~ m#[\\/]\z#; } elsif ($type eq "MacOS") { ($dirpath,$basename) = ($fullname =~ /^(.*:)?(.*)/s); $dirpath = ':' unless $dirpath; } elsif ($type eq "AmigaOS") { ($dirpath,$basename) = ($fullname =~ /(.*[:\/])?(.*)/s); $dirpath = './' unless $dirpath; } elsif ($type eq 'VMS' ) { ($dirpath,$basename) = ($fullname =~ /^(.*[:>\]])?(.*)/s); $dirpath ||= ''; # should always be defined } else { # Default to Unix semantics. ($dirpath,$basename) = ($fullname =~ m{^(.*/)?(.*)}s); if ($orig_type eq 'VMS' and $fullname =~ m{^(/[^/]+/000000(/|$))(.*)}) { # dev:[000000] is top of VMS tree, similar to Unix '/' # so strip it off and treat the rest as "normal" my $devspec = $1; my $remainder = $3; ($dirpath,$basename) = ($remainder =~ m{^(.*/)?(.*)}s); $dirpath ||= ''; # should always be defined $dirpath = $devspec.$dirpath; } $dirpath = './' unless $dirpath; } my $tail = ''; my $suffix = ''; if (@suffices) { foreach $suffix (@suffices) { my $pat = ($igncase ? '(?i)' : '') . "($suffix)\$"; if ($basename =~ s/$pat//s) { $taint .= substr($suffix,0,0); $tail = $1 . $tail; } } } # Ensure taint is propgated from the path to its pieces. $tail .= $taint; wantarray ? ($basename .= $taint, $dirpath .= $taint, $tail) : ($basename .= $taint); } #line 212 sub basename { my($path) = shift; # From BSD basename(1) # The basename utility deletes any prefix ending with the last slash `/' # character present in string (after first stripping trailing slashes) _strip_trailing_sep($path); my($basename, $dirname, $suffix) = fileparse( $path, map("\Q$_\E",@_) ); # From BSD basename(1) # The suffix is not stripped if it is identical to the remaining # characters in string. if( length $suffix and !length $basename ) { $basename = $suffix; } # Ensure that basename '/' == '/' if( !length $basename ) { $basename = $dirname; } return $basename; } #line 281 sub dirname { my $path = shift; my($type) = $Fileparse_fstype; if( $type eq 'VMS' and $path =~ m{/} ) { # Parse as Unix local($File::Basename::Fileparse_fstype) = ''; return dirname($path); } my($basename, $dirname) = fileparse($path); if ($type eq 'VMS') { $dirname ||= $ENV{DEFAULT}; } elsif ($type eq 'MacOS') { if( !length($basename) && $dirname !~ /^[^:]+:\z/) { _strip_trailing_sep($dirname); ($basename,$dirname) = fileparse $dirname; } $dirname .= ":" unless $dirname =~ /:\z/; } elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { _strip_trailing_sep($dirname); unless( length($basename) ) { ($basename,$dirname) = fileparse $dirname; _strip_trailing_sep($dirname); } } elsif ($type eq 'AmigaOS') { if ( $dirname =~ /:\z/) { return $dirname } chop $dirname; $dirname =~ s{[^:/]+\z}{} unless length($basename); } else { _strip_trailing_sep($dirname); unless( length($basename) ) { ($basename,$dirname) = fileparse $dirname; _strip_trailing_sep($dirname); } } $dirname; } # Strip the trailing path separator. sub _strip_trailing_sep { my $type = $Fileparse_fstype; if ($type eq 'MacOS') { $_[0] =~ s/([^:]):\z/$1/s; } elsif (grep { $type eq $_ } qw(MSDOS DOS MSWin32 OS2)) { $_[0] =~ s/([^:])[\\\/]*\z/$1/; } else { $_[0] =~ s{(.)/*\z}{$1}s; } } #line 369 BEGIN { my @Ignore_Case = qw(MacOS VMS AmigaOS OS2 RISCOS MSWin32 MSDOS DOS Epoc); my @Types = (@Ignore_Case, qw(Unix)); sub fileparse_set_fstype { my $old = $Fileparse_fstype; if (@_) { my $new_type = shift; $Fileparse_fstype = 'Unix'; # default foreach my $type (@Types) { $Fileparse_fstype = $type if $new_type =~ /^$type/i; } $Fileparse_igncase = (grep $Fileparse_fstype eq $_, @Ignore_Case) ? 1 : 0; } return $old; } } 1; #line 403FILE7ecd3ae7/File/Copy.pm%w#line 1 "/usr/share/perl/5.10/File/Copy.pm" # File/Copy.pm. Written in 1994 by Aaron Sherman . This # source code has been placed in the public domain by the author. # Please be kind and preserve the documentation. # # Additions copyright 1996 by Charles Bailey. Permission is granted # to distribute the revised code under the same terms as Perl itself. package File::Copy; use 5.006; use strict; use warnings; use File::Spec; use Config; # During perl build, we need File::Copy but Fcntl might not be built yet # *** not needed for 2.14, only 2.15 # *** my $Fcntl_loaded = eval q{ use Fcntl qw [O_CREAT O_WRONLY O_TRUNC]; 1 }; # Similarly Scalar::Util # And then we need these games to avoid loading overload, as that will # confuse miniperl during the bootstrap of perl. my $Scalar_Util_loaded = eval q{ require Scalar::Util; require overload; 1 }; our(@ISA, @EXPORT, @EXPORT_OK, $VERSION, $Too_Big, $Syscopy_is_copy); sub copy; sub syscopy; sub cp; sub mv; $VERSION = '2.14'; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(copy move); @EXPORT_OK = qw(cp mv); $Too_Big = 1024 * 1024 * 2; sub croak { require Carp; goto &Carp::croak; } sub carp { require Carp; goto &Carp::carp; } my $macfiles; if ($^O eq 'MacOS') { $macfiles = eval { require Mac::MoreFiles }; warn 'Mac::MoreFiles could not be loaded; using non-native syscopy' if $@ && $^W; } sub _catname { my($from, $to) = @_; if (not defined &basename) { require File::Basename; import File::Basename 'basename'; } if ($^O eq 'MacOS') { # a partial dir name that's valid only in the cwd (e.g. 'tmp') $to = ':' . $to if $to !~ /:/; } return File::Spec->catfile($to, basename($from)); } # _eq($from, $to) tells whether $from and $to are identical sub _eq { my ($from, $to) = map { $Scalar_Util_loaded && Scalar::Util::blessed($_) && overload::Method($_, q{""}) ? "$_" : $_ } (@_); return '' if ( (ref $from) xor (ref $to) ); return $from == $to if ref $from; return $from eq $to; } sub copy { croak("Usage: copy(FROM, TO [, BUFFERSIZE]) ") unless(@_ == 2 || @_ == 3); my $from = shift; my $to = shift; my $size; if (@_) { $size = shift(@_) + 0; croak("Bad buffer size for copy: $size\n") unless ($size > 0); } my $from_a_handle = (ref($from) ? (ref($from) eq 'GLOB' || UNIVERSAL::isa($from, 'GLOB') || UNIVERSAL::isa($from, 'IO::Handle')) : (ref(\$from) eq 'GLOB')); my $to_a_handle = (ref($to) ? (ref($to) eq 'GLOB' || UNIVERSAL::isa($to, 'GLOB') || UNIVERSAL::isa($to, 'IO::Handle')) : (ref(\$to) eq 'GLOB')); if (_eq($from, $to)) { # works for references, too carp("'$from' and '$to' are identical (not copied)"); # The "copy" was a success as the source and destination contain # the same data. return 1; } if ((($Config{d_symlink} && $Config{d_readlink}) || $Config{d_link}) && !($^O eq 'MSWin32' || $^O eq 'os2')) { my @fs = stat($from); if (@fs) { my @ts = stat($to); if (@ts && $fs[0] == $ts[0] && $fs[1] == $ts[1] && !-p $from) { carp("'$from' and '$to' are identical (not copied)"); return 0; } } } if (!$from_a_handle && !$to_a_handle && -d $to && ! -d $from) { $to = _catname($from, $to); } if (defined &syscopy && !$Syscopy_is_copy && !$to_a_handle && !($from_a_handle && $^O eq 'os2' ) # OS/2 cannot handle handles && !($from_a_handle && $^O eq 'mpeix') # and neither can MPE/iX. && !($from_a_handle && $^O eq 'MSWin32') && !($from_a_handle && $^O eq 'MacOS') && !($from_a_handle && $^O eq 'NetWare') ) { my $copy_to = $to; if ($^O eq 'VMS' && -e $from) { if (! -d $to && ! -d $from) { # VMS has sticky defaults on extensions, which means that # if there is a null extension on the destination file, it # will inherit the extension of the source file # So add a '.' for a null extension. $copy_to = VMS::Filespec::vmsify($to); my ($vol, $dirs, $file) = File::Spec->splitpath($copy_to); $file = $file . '.' unless ($file =~ /(?catpath($vol, $dirs, $file); # Get rid of the old versions to be like UNIX 1 while unlink $copy_to; } } return syscopy($from, $copy_to); } my $closefrom = 0; my $closeto = 0; my ($status, $r, $buf); local($\) = ''; my $from_h; if ($from_a_handle) { $from_h = $from; } else { $from = _protect($from) if $from =~ /^\s/s; $from_h = \do { local *FH }; open $from_h, "<", $from or goto fail_open1; binmode $from_h or die "($!,$^E)"; $closefrom = 1; } # Seems most logical to do this here, in case future changes would want to # make this croak for some reason. unless (defined $size) { $size = tied(*$from_h) ? 0 : -s $from_h || 0; $size = 1024 if ($size < 512); $size = $Too_Big if ($size > $Too_Big); } my $to_h; if ($to_a_handle) { $to_h = $to; } else { $to = _protect($to) if $to =~ /^\s/s; $to_h = \do { local *FH }; open $to_h, ">", $to or goto fail_open2; binmode $to_h or die "($!,$^E)"; $closeto = 1; } $! = 0; for (;;) { my ($r, $w, $t); defined($r = sysread($from_h, $buf, $size)) or goto fail_inner; last unless $r; for ($w = 0; $w < $r; $w += $t) { $t = syswrite($to_h, $buf, $r - $w, $w) or goto fail_inner; } } close($to_h) || goto fail_open2 if $closeto; close($from_h) || goto fail_open1 if $closefrom; # Use this idiom to avoid uninitialized value warning. return 1; # All of these contortions try to preserve error messages... fail_inner: if ($closeto) { $status = $!; $! = 0; close $to_h; $! = $status unless $!; } fail_open2: if ($closefrom) { $status = $!; $! = 0; close $from_h; $! = $status unless $!; } fail_open1: return 0; } sub move { croak("Usage: move(FROM, TO) ") unless @_ == 2; my($from,$to) = @_; my($fromsz,$tosz1,$tomt1,$tosz2,$tomt2,$sts,$ossts); if (-d $to && ! -d $from) { $to = _catname($from, $to); } ($tosz1,$tomt1) = (stat($to))[7,9]; $fromsz = -s $from; if ($^O eq 'os2' and defined $tosz1 and defined $fromsz) { # will not rename with overwrite unlink $to; } my $rename_to = $to; if (-$^O eq 'VMS' && -e $from) { if (! -d $to && ! -d $from) { # VMS has sticky defaults on extensions, which means that # if there is a null extension on the destination file, it # will inherit the extension of the source file # So add a '.' for a null extension. $rename_to = VMS::Filespec::vmsify($to); my ($vol, $dirs, $file) = File::Spec->splitpath($rename_to); $file = $file . '.' unless ($file =~ /(?catpath($vol, $dirs, $file); # Get rid of the old versions to be like UNIX 1 while unlink $rename_to; } } return 1 if rename $from, $rename_to; # Did rename return an error even though it succeeded, because $to # is on a remote NFS file system, and NFS lost the server's ack? return 1 if defined($fromsz) && !-e $from && # $from disappeared (($tosz2,$tomt2) = (stat($to))[7,9]) && # $to's there ((!defined $tosz1) || # not before or ($tosz1 != $tosz2 or $tomt1 != $tomt2)) && # was changed $tosz2 == $fromsz; # it's all there ($tosz1,$tomt1) = (stat($to))[7,9]; # just in case rename did something { local $@; eval { local $SIG{__DIE__}; copy($from,$to) or die; my($atime, $mtime) = (stat($from))[8,9]; utime($atime, $mtime, $to); unlink($from) or die; }; return 1 unless $@; } ($sts,$ossts) = ($! + 0, $^E + 0); ($tosz2,$tomt2) = ((stat($to))[7,9],0,0) if defined $tomt1; unlink($to) if !defined($tomt1) or $tomt1 != $tomt2 or $tosz1 != $tosz2; ($!,$^E) = ($sts,$ossts); return 0; } *cp = \© *mv = \&move; if ($^O eq 'MacOS') { *_protect = sub { MacPerl::MakeFSSpec($_[0]) }; } else { *_protect = sub { "./$_[0]" }; } # &syscopy is an XSUB under OS/2 unless (defined &syscopy) { if ($^O eq 'VMS') { *syscopy = \&rmscopy; } elsif ($^O eq 'mpeix') { *syscopy = sub { return 0 unless @_ == 2; # Use the MPE cp program in order to # preserve MPE file attributes. return system('/bin/cp', '-f', $_[0], $_[1]) == 0; }; } elsif ($^O eq 'MSWin32' && defined &DynaLoader::boot_DynaLoader) { # Win32::CopyFile() fill only work if we can load Win32.xs *syscopy = sub { return 0 unless @_ == 2; return Win32::CopyFile(@_, 1); }; } elsif ($macfiles) { *syscopy = sub { my($from, $to) = @_; my($dir, $toname); return 0 unless -e $from; if ($to =~ /(.*:)([^:]+):?$/) { ($dir, $toname) = ($1, $2); } else { ($dir, $toname) = (":", $to); } unlink($to); Mac::MoreFiles::FSpFileCopy($from, $dir, $toname, 1); }; } else { $Syscopy_is_copy = 1; *syscopy = \© } } 1; __END__ #line 533 FILEbfa8f82d/File/Find.pmc#line 1 "/usr/share/perl/5.10/File/Find.pm" package File::Find; use 5.006; use strict; use warnings; use warnings::register; our $VERSION = '1.14'; require Exporter; require Cwd; # # Modified to ensure sub-directory traversal order is not inverded by stack # push and pops. That is remains in the same order as in the directory file, # or user pre-processing (EG:sorted). # #line 419 our @ISA = qw(Exporter); our @EXPORT = qw(find finddepth); use strict; my $Is_VMS; my $Is_MacOS; require File::Basename; require File::Spec; # Should ideally be my() not our() but local() currently # refuses to operate on lexicals our %SLnkSeen; our ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow, $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat, $pre_process, $post_process, $dangling_symlinks); sub contract_name { my ($cdir,$fn) = @_; return substr($cdir,0,rindex($cdir,'/')) if $fn eq $File::Find::current_dir; $cdir = substr($cdir,0,rindex($cdir,'/')+1); $fn =~ s|^\./||; my $abs_name= $cdir . $fn; if (substr($fn,0,3) eq '../') { 1 while $abs_name =~ s!/[^/]*/\.\./!/!; } return $abs_name; } # return the absolute name of a directory or file sub contract_name_Mac { my ($cdir,$fn) = @_; my $abs_name; if ($fn =~ /^(:+)(.*)$/) { # valid pathname starting with a ':' my $colon_count = length ($1); if ($colon_count == 1) { $abs_name = $cdir . $2; return $abs_name; } else { # need to move up the tree, but # only if it's not a volume name for (my $i=1; $i<$colon_count; $i++) { unless ($cdir =~ /^[^:]+:$/) { # volume name $cdir =~ s/[^:]+:$//; } else { return undef; } } $abs_name = $cdir . $2; return $abs_name; } } else { # $fn may be a valid path to a directory or file or (dangling) # symlink, without a leading ':' if ( (-e $fn) || (-l $fn) ) { if ($fn =~ /^[^:]+:/) { # a volume name like DataHD:* return $fn; # $fn is already an absolute path } else { $abs_name = $cdir . $fn; return $abs_name; } } else { # argh!, $fn is not a valid directory/file return undef; } } } sub PathCombine($$) { my ($Base,$Name) = @_; my $AbsName; if ($Is_MacOS) { # $Name is the resolved symlink (always a full path on MacOS), # i.e. there's no need to call contract_name_Mac() $AbsName = $Name; # (simple) check for recursion if ( ( $Base =~ /^$AbsName/) && (-d $AbsName) ) { # recursion return undef; } } else { if (substr($Name,0,1) eq '/') { $AbsName= $Name; } else { $AbsName= contract_name($Base,$Name); } # (simple) check for recursion my $newlen= length($AbsName); if ($newlen <= length($Base)) { if (($newlen == length($Base) || substr($Base,$newlen,1) eq '/') && $AbsName eq substr($Base,0,$newlen)) { return undef; } } } return $AbsName; } sub Follow_SymLink($) { my ($AbsName) = @_; my ($NewName,$DEV, $INO); ($DEV, $INO)= lstat $AbsName; while (-l _) { if ($SLnkSeen{$DEV, $INO}++) { if ($follow_skip < 2) { die "$AbsName is encountered a second time"; } else { return undef; } } $NewName= PathCombine($AbsName, readlink($AbsName)); unless(defined $NewName) { if ($follow_skip < 2) { die "$AbsName is a recursive symbolic link"; } else { return undef; } } else { $AbsName= $NewName; } ($DEV, $INO) = lstat($AbsName); return undef unless defined $DEV; # dangling symbolic link } if ($full_check && defined $DEV && $SLnkSeen{$DEV, $INO}++) { if ( ($follow_skip < 1) || ((-d _) && ($follow_skip < 2)) ) { die "$AbsName encountered a second time"; } else { return undef; } } return $AbsName; } our($dir, $name, $fullname, $prune); sub _find_dir_symlnk($$$); sub _find_dir($$$); # check whether or not a scalar variable is tainted # (code straight from the Camel, 3rd ed., page 561) sub is_tainted_pp { my $arg = shift; my $nada = substr($arg, 0, 0); # zero-length local $@; eval { eval "# $nada" }; return length($@) != 0; } sub _find_opt { my $wanted = shift; die "invalid top directory" unless defined $_[0]; # This function must local()ize everything because callbacks may # call find() or finddepth() local %SLnkSeen; local ($wanted_callback, $avoid_nlink, $bydepth, $no_chdir, $follow, $follow_skip, $full_check, $untaint, $untaint_skip, $untaint_pat, $pre_process, $post_process, $dangling_symlinks); local($dir, $name, $fullname, $prune); local *_ = \my $a; my $cwd = $wanted->{bydepth} ? Cwd::fastcwd() : Cwd::getcwd(); if ($Is_VMS) { # VMS returns this by default in VMS format which just doesn't # work for the rest of this module. $cwd = VMS::Filespec::unixpath($cwd); # Apparently this is not expected to have a trailing space. # To attempt to make VMS/UNIX conversions mostly reversable, # a trailing slash is needed. The run-time functions ignore the # resulting double slash, but it causes the perl tests to fail. $cwd =~ s#/\z##; # This comes up in upper case now, but should be lower. # In the future this could be exact case, no need to change. } my $cwd_untainted = $cwd; my $check_t_cwd = 1; $wanted_callback = $wanted->{wanted}; $bydepth = $wanted->{bydepth}; $pre_process = $wanted->{preprocess}; $post_process = $wanted->{postprocess}; $no_chdir = $wanted->{no_chdir}; $full_check = $^O eq 'MSWin32' ? 0 : $wanted->{follow}; $follow = $^O eq 'MSWin32' ? 0 : $full_check || $wanted->{follow_fast}; $follow_skip = $wanted->{follow_skip}; $untaint = $wanted->{untaint}; $untaint_pat = $wanted->{untaint_pattern}; $untaint_skip = $wanted->{untaint_skip}; $dangling_symlinks = $wanted->{dangling_symlinks}; # for compatibility reasons (find.pl, find2perl) local our ($topdir, $topdev, $topino, $topmode, $topnlink); # a symbolic link to a directory doesn't increase the link count $avoid_nlink = $follow || $File::Find::dont_use_nlink; my ($abs_dir, $Is_Dir); Proc_Top_Item: foreach my $TOP (@_) { my $top_item = $TOP; ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item; if ($Is_MacOS) { $top_item = ":$top_item" if ( (-d _) && ( $top_item !~ /:/ ) ); } elsif ($^O eq 'MSWin32') { $top_item =~ s|/\z|| unless $top_item =~ m|\w:/$|; } else { $top_item =~ s|/\z|| unless $top_item eq '/'; } $Is_Dir= 0; if ($follow) { if ($Is_MacOS) { $cwd = "$cwd:" unless ($cwd =~ /:$/); # for safety if ($top_item eq $File::Find::current_dir) { $abs_dir = $cwd; } else { $abs_dir = contract_name_Mac($cwd, $top_item); unless (defined $abs_dir) { warnings::warnif "Can't determine absolute path for $top_item (No such file or directory)\n"; next Proc_Top_Item; } } } else { if (substr($top_item,0,1) eq '/') { $abs_dir = $top_item; } elsif ($top_item eq $File::Find::current_dir) { $abs_dir = $cwd; } else { # care about any ../ $top_item =~ s/\.dir\z//i if $Is_VMS; $abs_dir = contract_name("$cwd/",$top_item); } } $abs_dir= Follow_SymLink($abs_dir); unless (defined $abs_dir) { if ($dangling_symlinks) { if (ref $dangling_symlinks eq 'CODE') { $dangling_symlinks->($top_item, $cwd); } else { warnings::warnif "$top_item is a dangling symbolic link\n"; } } next Proc_Top_Item; } if (-d _) { $top_item =~ s/\.dir\z//i if $Is_VMS; _find_dir_symlnk($wanted, $abs_dir, $top_item); $Is_Dir= 1; } } else { # no follow $topdir = $top_item; unless (defined $topnlink) { warnings::warnif "Can't stat $top_item: $!\n"; next Proc_Top_Item; } if (-d _) { $top_item =~ s/\.dir\z//i if $Is_VMS; _find_dir($wanted, $top_item, $topnlink); $Is_Dir= 1; } else { $abs_dir= $top_item; } } unless ($Is_Dir) { unless (($_,$dir) = File::Basename::fileparse($abs_dir)) { if ($Is_MacOS) { ($dir,$_) = (':', $top_item); # $File::Find::dir, $_ } else { ($dir,$_) = ('./', $top_item); } } $abs_dir = $dir; if (( $untaint ) && (is_tainted($dir) )) { ( $abs_dir ) = $dir =~ m|$untaint_pat|; unless (defined $abs_dir) { if ($untaint_skip == 0) { die "directory $dir is still tainted"; } else { next Proc_Top_Item; } } } unless ($no_chdir || chdir $abs_dir) { warnings::warnif "Couldn't chdir $abs_dir: $!\n"; next Proc_Top_Item; } $name = $abs_dir . $_; # $File::Find::name $_ = $name if $no_chdir; { $wanted_callback->() }; # protect against wild "next" } unless ( $no_chdir ) { if ( ($check_t_cwd) && (($untaint) && (is_tainted($cwd) )) ) { ( $cwd_untainted ) = $cwd =~ m|$untaint_pat|; unless (defined $cwd_untainted) { die "insecure cwd in find(depth)"; } $check_t_cwd = 0; } unless (chdir $cwd_untainted) { die "Can't cd to $cwd: $!\n"; } } } } # API: # $wanted # $p_dir : "parent directory" # $nlink : what came back from the stat # preconditions: # chdir (if not no_chdir) to dir sub _find_dir($$$) { my ($wanted, $p_dir, $nlink) = @_; my ($CdLvl,$Level) = (0,0); my @Stack; my @filenames; my ($subcount,$sub_nlink); my $SE= []; my $dir_name= $p_dir; my $dir_pref; my $dir_rel = $File::Find::current_dir; my $tainted = 0; my $no_nlink; if ($Is_MacOS) { $dir_pref= ($p_dir =~ /:$/) ? $p_dir : "$p_dir:"; # preface } elsif ($^O eq 'MSWin32') { $dir_pref = ($p_dir =~ m|\w:/?$| ? $p_dir : "$p_dir/" ); } elsif ($^O eq 'VMS') { # VMS is returning trailing .dir on directories # and trailing . on files and symbolic links # in UNIX syntax. # $p_dir =~ s/\.(dir)?$//i unless $p_dir eq '.'; $dir_pref = ($p_dir =~ m/[\]>]+$/ ? $p_dir : "$p_dir/" ); } else { $dir_pref= ( $p_dir eq '/' ? '/' : "$p_dir/" ); } local ($dir, $name, $prune, *DIR); unless ( $no_chdir || ($p_dir eq $File::Find::current_dir)) { my $udir = $p_dir; if (( $untaint ) && (is_tainted($p_dir) )) { ( $udir ) = $p_dir =~ m|$untaint_pat|; unless (defined $udir) { if ($untaint_skip == 0) { die "directory $p_dir is still tainted"; } else { return; } } } unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) { warnings::warnif "Can't cd to $udir: $!\n"; return; } } # push the starting directory push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth; if ($Is_MacOS) { $p_dir = $dir_pref; # ensure trailing ':' } while (defined $SE) { unless ($bydepth) { $dir= $p_dir; # $File::Find::dir $name= $dir_name; # $File::Find::name $_= ($no_chdir ? $dir_name : $dir_rel ); # $_ # prune may happen here $prune= 0; { $wanted_callback->() }; # protect against wild "next" next if $prune; } # change to that directory unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) { my $udir= $dir_rel; if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_rel) )) ) { ( $udir ) = $dir_rel =~ m|$untaint_pat|; unless (defined $udir) { if ($untaint_skip == 0) { if ($Is_MacOS) { die "directory ($p_dir) $dir_rel is still tainted"; } else { die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted"; } } else { # $untaint_skip == 1 next; } } } unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) { if ($Is_MacOS) { warnings::warnif "Can't cd to ($p_dir) $udir: $!\n"; } else { warnings::warnif "Can't cd to (" . ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n"; } next; } $CdLvl++; } if ($Is_MacOS) { $dir_name = "$dir_name:" unless ($dir_name =~ /:$/); } $dir= $dir_name; # $File::Find::dir # Get the list of files in the current directory. unless (opendir DIR, ($no_chdir ? $dir_name : $File::Find::current_dir)) { warnings::warnif "Can't opendir($dir_name): $!\n"; next; } @filenames = readdir DIR; closedir(DIR); @filenames = $pre_process->(@filenames) if $pre_process; push @Stack,[$CdLvl,$dir_name,"",-2] if $post_process; # default: use whatever was specifid # (if $nlink >= 2, and $avoid_nlink == 0, this will switch back) $no_nlink = $avoid_nlink; # if dir has wrong nlink count, force switch to slower stat method $no_nlink = 1 if ($nlink < 2); if ($nlink == 2 && !$no_nlink) { # This dir has no subdirectories. for my $FN (@filenames) { if ($Is_VMS) { # Big hammer here - Compensate for VMS trailing . and .dir # No win situation until this is changed, but this # will handle the majority of the cases with breaking the fewest $FN =~ s/\.dir\z//i; $FN =~ s#\.$## if ($FN ne '.'); } next if $FN =~ $File::Find::skip_pattern; $name = $dir_pref . $FN; # $File::Find::name $_ = ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } else { # This dir has subdirectories. $subcount = $nlink - 2; # HACK: insert directories at this position. so as to preserve # the user pre-processed ordering of files. # EG: directory traversal is in user sorted order, not at random. my $stack_top = @Stack; for my $FN (@filenames) { next if $FN =~ $File::Find::skip_pattern; if ($subcount > 0 || $no_nlink) { # Seen all the subdirs? # check for directoriness. # stat is faster for a file in the current directory $sub_nlink = (lstat ($no_chdir ? $dir_pref . $FN : $FN))[3]; if (-d _) { --$subcount; $FN =~ s/\.dir\z//i if $Is_VMS; # HACK: replace push to preserve dir traversal order #push @Stack,[$CdLvl,$dir_name,$FN,$sub_nlink]; splice @Stack, $stack_top, 0, [$CdLvl,$dir_name,$FN,$sub_nlink]; } else { $name = $dir_pref . $FN; # $File::Find::name $_= ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } else { $name = $dir_pref . $FN; # $File::Find::name $_= ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } } } continue { while ( defined ($SE = pop @Stack) ) { ($Level, $p_dir, $dir_rel, $nlink) = @$SE; if ($CdLvl > $Level && !$no_chdir) { my $tmp; if ($Is_MacOS) { $tmp = (':' x ($CdLvl-$Level)) . ':'; } elsif ($Is_VMS) { $tmp = '[' . ('-' x ($CdLvl-$Level)) . ']'; } else { $tmp = join('/',('..') x ($CdLvl-$Level)); } die "Can't cd to $tmp from $dir_name" unless chdir ($tmp); $CdLvl = $Level; } if ($Is_MacOS) { # $pdir always has a trailing ':', except for the starting dir, # where $dir_rel eq ':' $dir_name = "$p_dir$dir_rel"; $dir_pref = "$dir_name:"; } elsif ($^O eq 'MSWin32') { $dir_name = ($p_dir =~ m|\w:/?$| ? "$p_dir$dir_rel" : "$p_dir/$dir_rel"); $dir_pref = "$dir_name/"; } elsif ($^O eq 'VMS') { if ($p_dir =~ m/[\]>]+$/) { $dir_name = $p_dir; $dir_name =~ s/([\]>]+)$/.$dir_rel$1/; $dir_pref = $dir_name; } else { $dir_name = "$p_dir/$dir_rel"; $dir_pref = "$dir_name/"; } } else { $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel"); $dir_pref = "$dir_name/"; } if ( $nlink == -2 ) { $name = $dir = $p_dir; # $File::Find::name / dir $_ = $File::Find::current_dir; $post_process->(); # End-of-directory processing } elsif ( $nlink < 0 ) { # must be finddepth, report dirname now $name = $dir_name; if ($Is_MacOS) { if ($dir_rel eq ':') { # must be the top dir, where we started $name =~ s|:$||; # $File::Find::name $p_dir = "$p_dir:" unless ($p_dir =~ /:$/); } $dir = $p_dir; # $File::Find::dir $_ = ($no_chdir ? $name : $dir_rel); # $_ } else { if ( substr($name,-2) eq '/.' ) { substr($name, length($name) == 2 ? -1 : -2) = ''; } $dir = $p_dir; $_ = ($no_chdir ? $dir_name : $dir_rel ); if ( substr($_,-2) eq '/.' ) { substr($_, length($_) == 2 ? -1 : -2) = ''; } } { $wanted_callback->() }; # protect against wild "next" } else { push @Stack,[$CdLvl,$p_dir,$dir_rel,-1] if $bydepth; last; } } } } # API: # $wanted # $dir_loc : absolute location of a dir # $p_dir : "parent directory" # preconditions: # chdir (if not no_chdir) to dir sub _find_dir_symlnk($$$) { my ($wanted, $dir_loc, $p_dir) = @_; # $dir_loc is the absolute directory my @Stack; my @filenames; my $new_loc; my $updir_loc = $dir_loc; # untainted parent directory my $SE = []; my $dir_name = $p_dir; my $dir_pref; my $loc_pref; my $dir_rel = $File::Find::current_dir; my $byd_flag; # flag for pending stack entry if $bydepth my $tainted = 0; my $ok = 1; if ($Is_MacOS) { $dir_pref = ($p_dir =~ /:$/) ? "$p_dir" : "$p_dir:"; $loc_pref = ($dir_loc =~ /:$/) ? "$dir_loc" : "$dir_loc:"; } else { $dir_pref = ( $p_dir eq '/' ? '/' : "$p_dir/" ); $loc_pref = ( $dir_loc eq '/' ? '/' : "$dir_loc/" ); } local ($dir, $name, $fullname, $prune, *DIR); unless ($no_chdir) { # untaint the topdir if (( $untaint ) && (is_tainted($dir_loc) )) { ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; # parent dir, now untainted # once untainted, $updir_loc is pushed on the stack (as parent directory); # hence, we don't need to untaint the parent directory every time we chdir # to it later unless (defined $updir_loc) { if ($untaint_skip == 0) { die "directory $dir_loc is still tainted"; } else { return; } } } $ok = chdir($updir_loc) unless ($p_dir eq $File::Find::current_dir); unless ($ok) { warnings::warnif "Can't cd to $updir_loc: $!\n"; return; } } push @Stack,[$dir_loc,$updir_loc,$p_dir,$dir_rel,-1] if $bydepth; if ($Is_MacOS) { $p_dir = $dir_pref; # ensure trailing ':' } while (defined $SE) { unless ($bydepth) { # change (back) to parent directory (always untainted) unless ($no_chdir) { unless (chdir $updir_loc) { warnings::warnif "Can't cd to $updir_loc: $!\n"; next; } } $dir= $p_dir; # $File::Find::dir $name= $dir_name; # $File::Find::name $_= ($no_chdir ? $dir_name : $dir_rel ); # $_ $fullname= $dir_loc; # $File::Find::fullname # prune may happen here $prune= 0; lstat($_); # make sure file tests with '_' work { $wanted_callback->() }; # protect against wild "next" next if $prune; } # change to that directory unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) { $updir_loc = $dir_loc; if ( ($untaint) && (($tainted) || ($tainted = is_tainted($dir_loc) )) ) { # untaint $dir_loc, what will be pushed on the stack as (untainted) parent dir ( $updir_loc ) = $dir_loc =~ m|$untaint_pat|; unless (defined $updir_loc) { if ($untaint_skip == 0) { die "directory $dir_loc is still tainted"; } else { next; } } } unless (chdir $updir_loc) { warnings::warnif "Can't cd to $updir_loc: $!\n"; next; } } if ($Is_MacOS) { $dir_name = "$dir_name:" unless ($dir_name =~ /:$/); } $dir = $dir_name; # $File::Find::dir # Get the list of files in the current directory. unless (opendir DIR, ($no_chdir ? $dir_loc : $File::Find::current_dir)) { warnings::warnif "Can't opendir($dir_loc): $!\n"; next; } @filenames = readdir DIR; closedir(DIR); for my $FN (@filenames) { if ($Is_VMS) { # Big hammer here - Compensate for VMS trailing . and .dir # No win situation until this is changed, but this # will handle the majority of the cases with breaking the fewest. $FN =~ s/\.dir\z//i; $FN =~ s#\.$## if ($FN ne '.'); } next if $FN =~ $File::Find::skip_pattern; # follow symbolic links / do an lstat $new_loc = Follow_SymLink($loc_pref.$FN); # ignore if invalid symlink unless (defined $new_loc) { if (!defined -l _ && $dangling_symlinks) { if (ref $dangling_symlinks eq 'CODE') { $dangling_symlinks->($FN, $dir_pref); } else { warnings::warnif "$dir_pref$FN is a dangling symbolic link\n"; } } $fullname = undef; $name = $dir_pref . $FN; $_ = ($no_chdir ? $name : $FN); { $wanted_callback->() }; next; } if (-d _) { if ($Is_VMS) { $FN =~ s/\.dir\z//i; $FN =~ s#\.$## if ($FN ne '.'); $new_loc =~ s/\.dir\z//i; $new_loc =~ s#\.$## if ($new_loc ne '.'); } push @Stack,[$new_loc,$updir_loc,$dir_name,$FN,1]; } else { $fullname = $new_loc; # $File::Find::fullname $name = $dir_pref . $FN; # $File::Find::name $_ = ($no_chdir ? $name : $FN); # $_ { $wanted_callback->() }; # protect against wild "next" } } } continue { while (defined($SE = pop @Stack)) { ($dir_loc, $updir_loc, $p_dir, $dir_rel, $byd_flag) = @$SE; if ($Is_MacOS) { # $p_dir always has a trailing ':', except for the starting dir, # where $dir_rel eq ':' $dir_name = "$p_dir$dir_rel"; $dir_pref = "$dir_name:"; $loc_pref = ($dir_loc =~ /:$/) ? $dir_loc : "$dir_loc:"; } else { $dir_name = ($p_dir eq '/' ? "/$dir_rel" : "$p_dir/$dir_rel"); $dir_pref = "$dir_name/"; $loc_pref = "$dir_loc/"; } if ( $byd_flag < 0 ) { # must be finddepth, report dirname now unless ($no_chdir || ($dir_rel eq $File::Find::current_dir)) { unless (chdir $updir_loc) { # $updir_loc (parent dir) is always untainted warnings::warnif "Can't cd to $updir_loc: $!\n"; next; } } $fullname = $dir_loc; # $File::Find::fullname $name = $dir_name; # $File::Find::name if ($Is_MacOS) { if ($dir_rel eq ':') { # must be the top dir, where we started $name =~ s|:$||; # $File::Find::name $p_dir = "$p_dir:" unless ($p_dir =~ /:$/); } $dir = $p_dir; # $File::Find::dir $_ = ($no_chdir ? $name : $dir_rel); # $_ } else { if ( substr($name,-2) eq '/.' ) { substr($name, length($name) == 2 ? -1 : -2) = ''; # $File::Find::name } $dir = $p_dir; # $File::Find::dir $_ = ($no_chdir ? $dir_name : $dir_rel); # $_ if ( substr($_,-2) eq '/.' ) { substr($_, length($_) == 2 ? -1 : -2) = ''; } } lstat($_); # make sure file tests with '_' work { $wanted_callback->() }; # protect against wild "next" } else { push @Stack,[$dir_loc, $updir_loc, $p_dir, $dir_rel,-1] if $bydepth; last; } } } } sub wrap_wanted { my $wanted = shift; if ( ref($wanted) eq 'HASH' ) { unless( exists $wanted->{wanted} and ref( $wanted->{wanted} ) eq 'CODE' ) { die 'no &wanted subroutine given'; } if ( $wanted->{follow} || $wanted->{follow_fast}) { $wanted->{follow_skip} = 1 unless defined $wanted->{follow_skip}; } if ( $wanted->{untaint} ) { $wanted->{untaint_pattern} = $File::Find::untaint_pattern unless defined $wanted->{untaint_pattern}; $wanted->{untaint_skip} = 0 unless defined $wanted->{untaint_skip}; } return $wanted; } elsif( ref( $wanted ) eq 'CODE' ) { return { wanted => $wanted }; } else { die 'no &wanted subroutine given'; } } sub find { my $wanted = shift; _find_opt(wrap_wanted($wanted), @_); } sub finddepth { my $wanted = wrap_wanted(shift); $wanted->{bydepth} = 1; _find_opt($wanted, @_); } # default $File::Find::skip_pattern = qr/^\.{1,2}\z/; $File::Find::untaint_pattern = qr|^([-+@\w./]+)$|; # These are hard-coded for now, but may move to hint files. if ($^O eq 'VMS') { $Is_VMS = 1; $File::Find::dont_use_nlink = 1; } elsif ($^O eq 'MacOS') { $Is_MacOS = 1; $File::Find::dont_use_nlink = 1; $File::Find::skip_pattern = qr/^Icon\015\z/; $File::Find::untaint_pattern = qr|^(.+)$|; } # this _should_ work properly on all platforms # where File::Find can be expected to work $File::Find::current_dir = File::Spec->curdir || '.'; $File::Find::dont_use_nlink = 1 if $^O eq 'os2' || $^O eq 'dos' || $^O eq 'amigaos' || $^O eq 'MSWin32' || $^O eq 'interix' || $^O eq 'cygwin' || $^O eq 'epoc' || $^O eq 'qnx' || $^O eq 'nto'; # Set dont_use_nlink in your hint file if your system's stat doesn't # report the number of links in a directory as an indication # of the number of files. # See, e.g. hints/machten.sh for MachTen 2.2. unless ($File::Find::dont_use_nlink) { require Config; $File::Find::dont_use_nlink = 1 if ($Config::Config{'dont_use_nlink'}); } # We need a function that checks if a scalar is tainted. Either use the # Scalar::Util module's tainted() function or our (slower) pure Perl # fallback is_tainted_pp() { local $@; eval { require Scalar::Util }; *is_tainted = $@ ? \&is_tainted_pp : \&Scalar::Util::tainted; } 1; FILEc6405ec0/File/Path.pm5#line 1 "/usr/share/perl/5.10/File/Path.pm" package File::Path; use 5.005_04; use strict; use Cwd 'getcwd'; use File::Basename (); use File::Spec (); BEGIN { if ($] < 5.006) { # can't say 'opendir my $dh, $dirname' # need to initialise $dh eval "use Symbol"; } } use Exporter (); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); $VERSION = '2.07_03'; @ISA = qw(Exporter); @EXPORT = qw(mkpath rmtree); @EXPORT_OK = qw(make_path remove_tree); my $Is_VMS = $^O eq 'VMS'; my $Is_MacOS = $^O eq 'MacOS'; # These OSes complain if you want to remove a file that you have no # write permission to: my $Force_Writeable = grep {$^O eq $_} qw(amigaos dos epoc MSWin32 MacOS os2); # Unix-like systems need to stat each directory in order to detect # race condition. MS-Windows is immune to this particular attack. my $Need_Stat_Check = !($^O eq 'MSWin32'); sub _carp { require Carp; goto &Carp::carp; } sub _croak { require Carp; goto &Carp::croak; } sub _error { my $arg = shift; my $message = shift; my $object = shift; if ($arg->{error}) { $object = '' unless defined $object; $message .= ": $!" if $!; push @{${$arg->{error}}}, {$object => $message}; } else { _carp(defined($object) ? "$message for $object: $!" : "$message: $!"); } } sub make_path { push @_, {} unless @_ and UNIVERSAL::isa($_[-1],'HASH'); goto &mkpath; } sub mkpath { my $old_style = !(@_ and UNIVERSAL::isa($_[-1],'HASH')); my $arg; my $paths; if ($old_style) { my ($verbose, $mode); ($paths, $verbose, $mode) = @_; $paths = [$paths] unless UNIVERSAL::isa($paths,'ARRAY'); $arg->{verbose} = $verbose; $arg->{mode} = defined $mode ? $mode : 0777; } else { $arg = pop @_; $arg->{mode} = delete $arg->{mask} if exists $arg->{mask}; $arg->{mode} = 0777 unless exists $arg->{mode}; ${$arg->{error}} = [] if exists $arg->{error}; $paths = [@_]; } return _mkpath($arg, $paths); } sub _mkpath { my $arg = shift; my $paths = shift; my(@created,$path); foreach $path (@$paths) { next unless defined($path) and length($path); $path .= '/' if $^O eq 'os2' and $path =~ /^\w:\z/s; # feature of CRT # Logic wants Unix paths, so go with the flow. if ($Is_VMS) { next if $path eq '/'; $path = VMS::Filespec::unixify($path); } next if -d $path; my $parent = File::Basename::dirname($path); unless (-d $parent or $path eq $parent) { push(@created,_mkpath($arg, [$parent])); } print "mkdir $path\n" if $arg->{verbose}; if (mkdir($path,$arg->{mode})) { push(@created, $path); } else { my $save_bang = $!; my ($e, $e1) = ($save_bang, $^E); $e .= "; $e1" if $e ne $e1; # allow for another process to have created it meanwhile if (!-d $path) { $! = $save_bang; if ($arg->{error}) { push @{${$arg->{error}}}, {$path => $e}; } else { _croak("mkdir $path: $e"); } } } } return @created; } sub remove_tree { push @_, {} unless @_ and UNIVERSAL::isa($_[-1],'HASH'); goto &rmtree; } sub _is_subdir { my($dir, $test) = @_; my($dv, $dd) = File::Spec->splitpath($dir, 1); my($tv, $td) = File::Spec->splitpath($test, 1); # not on same volume return 0 if $dv ne $tv; my @d = File::Spec->splitdir($dd); my @t = File::Spec->splitdir($td); # @t can't be a subdir if it's shorter than @d return 0 if @t < @d; return join('/', @d) eq join('/', splice @t, 0, +@d); } sub rmtree { my $old_style = !(@_ and UNIVERSAL::isa($_[-1],'HASH')); my $arg; my $paths; if ($old_style) { my ($verbose, $safe); ($paths, $verbose, $safe) = @_; $arg->{verbose} = $verbose; $arg->{safe} = defined