ELF>6@h>@8 @@@@ 000y<y<pppP P x|xx>>|88800hhhDDStd88800Ptd8s8s8sQtdRtdx|xx/lib64/ld-linux-x86-64.so.2 GNUGNURbY ښ2GNU, @("I A" ,/129:<?@BDFHnG-k|.ś!qXGBׇK|l`oOÛk CffŹ@BEĉ93b)% : ݣk~em kPI?(t _>#) Gf_ m0X{89Q pQpJL 5`y? ~?"r0 ?@A&h!pFp ?IGipGpA!e@ ?0 ?f!@ ?` ? 6&K !hX g!@ ?`I!"0 >hj[B\__cxa_finalizereadstrchrmallocwritegetpidmemmoverename__libc_start_main__fprintf_chkstrcmpstat64open64unlinkstrtokstrncmpgetuidclosedirfreermdirclosestrlenstrdup__memcpy_chkreallocexecvpreaddir64__sprintf_chkstderrmemcpychmodstrrchropendirlseek64__vfprintf_chk__errno_locationexitreadlink__stack_chk_failaccessmkdir__environlibc.so.6par_current_exec_ITM_deregisterTMCloneTableget_username_from_getpwuidpar_cleanup_edatapar_basenamepar_dirnamepar_mktmpdirsha_update__data_start__gmon_start___IO_stdin_usedpar_current_exec_proc_endpp_version_infopar_init_envsha_final__bss_startpar_findprogpar_setup_libpathpar_env_cleanpar_die_ITM_registerTMCloneTablesha_initGLIBC_2.14GLIBC_2.33GLIBC_2.4GLIBC_2.34GLIBC_2.3.4GLIBC_2.2.5/opt/hostedtoolcache/perl/5.38.2/x64/lib/5.38.2/x86_64-linux/COREoii ti ui  x`7 7?Qq? ??q? ?(?=8?;=H?<X?`;<h?@;x? ;;?:?::?9?:9?8?`:8?@7? :7?6?96(?58?95H?4X?`94h?@3x? 93?2?82?1?81?0?`80?@/? 8/?.?7.(?-8?7-H?,X?`7,h?@+x? 7+?*?6*?)?6)?(?`6(?@'? 6'?&?5&(?%8?5%H?$X?`5$h?@#x? 5#?"?4"?!?4!? ?`4 ?@? 4 ? ?3( ?8 ?3H ?X ?`3h ?@x ? 3 ? ?2 ? ?2 ? ?`2 ?@ ? 2 ? ?1( ?8 ?1H ?X ?`1h ?@x ? 1 ? ?0 ? ?0 ? ?`0 ?@ ? 0 ? ?/( ? 8 ?/ H ? X ?`/ h ?@ x ? / ? ?. ? ?. ? ?`. ?@ ? . ? ?-( ?8 ?-H ?X ?`-h ?@x ? - ? ?, ? ?, ? ?` ?> ?;>؏)E@ ?;` ?>ȎЎ ؎     (08@HPX`hpx !"#$%&'(ȏ*Џ+HH_HtH5j^%k^hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&%M]D%[D%[D%[D%[D%[D%[D%[D%[D%[D%[D%[D%[D%[D%}[D%u[D%m[D%e[D%][D%U[D%M[D%E[D%=[D%5[D%-[D%%[D%[D%[D% [D%[D%ZD%ZD%ZD%ZD%ZD%ZD%ZD%ZD%ZD%ZDAVAUATUHSH dH%(HD$1X H HHI`Iƃu Ll$H=~;1LH}Hk H LLH=>HttH5 >H>Ll$HutHsHHtgLLHuAHT$H=<HuYH=,;1KHuLH=<16AHuH=x<1HT$Ld$HLeLXAHuLH=<11I^HHPTE11H=3Yf.H=y>Hr>H9tHYHt H=I>H5B>H)HH?HHHtHXHtfD==>u+UH=XHt H=XYd>]wAWAVAUATUSHHL->MIHt<=uXE1MeMt2McLfDLLL"uC<4=tGLcHMuHL[]A\A]A^A_IAFIt<=uE)L)Od4H]E1AVAUATUSHdH%(H$1Ht?Hu1H$dH+%(!HĠ[]A\A]A^f.L-X7IHtLHx.HXu {tx.HHI{A|Hc.IILIHǾ1HLHqLtD$%=@tYL\L$H`LpH{.X{ I@AVAUIATIUHSHHHdH%(H$1LII|5MMHEH1H 5HH}HruHCH9D$0H}&HxILELLcH 5H1L1AAŃt3H[HHuWHSHHtCHsDWH;tE1H$dH+%(udHĠD[]A\A]A^fDtLA0HuLuLDA3UHHdH%(H$1H*u6T$@tuHD1H$dH+%(u HĠ]ff.fAWAVAUATUHSHHdH%(HD$11>=HHYHt$HI1GHHI3I9Lct$I<=HPHt=uH)HL->J| MIEHtVH>HKJ0t"<=u tHH<=u=1fDLLHuHD$dH+%(H[]A\A]A^A_@1fDTATHu@L=>I?LE1HDAH8urHcH>u[>HHaMcLHILH>HAEDl$HHfLhHa>HHMcI@1E1_off.@ATUSL$HH $L9uHdH%(H$1HL$L 1HAH 11LHsE1x.xHHc~IHtHcLHHUIH$dH+%(uHL[]A\AWAVAUATUSL$HH $L9uHdH%(H$1HIH=0Ht$ /HH8HtC1HH=0RHH$dH+%(Hĸ[]A\A]A^A_fDLL-o0L$)LHIHtA?@HtLHLXITII9r%fHI9t:/tL'IHIDH=HH 0M1UL /LHt$ LZYuD$(%=tNL1IHA?&Ht;.tAL=8/^f{tLuLH=/LdNff.U/HnHPHHEH]f.ATUSL$HH $L9uHdH%(H$1H?IHPHHHLH'HDH9wHH9t8/t/HHt5H9w`HH$dH+%(uQH[]A\fH$dH+%(u)HH=-[]A\fD1ff.@AWAVAUATUSH-HdH%(HD$1Hl$f1HHHt6HcT$HR>HHPHHtfHPHHHufDH'-1HHCHt6HcT$H>HHPHHtfHPHHHufDH,1HHHt6HcT$H>HHPHHtfHPHHHufDH,1HHHt6HcT$Hb>HHPHHtfHPHHHufDL%O,1HLSHt6HcT$H>HHPHHtfHPHHHufDH,1HHHt6HcT$H>HHPHHtfHPHHHufDL-t+1HLHt6HcT$Hr>HHPHHtfHPHHHufDL={+1HLcHt6HcT$H">HHPHHtfHPHHHufDL55+1HLHt6HcT$H>HHPHHtfHPHHHufDH*1HHHt6HcT$H>HHPHHtfHPHHHufDH=*1HHsHt6HcT$H2>HHPHHtfHPHHHufDHH=V*)HHt L1HH=F*1HHtH=B*1`HH=<*1HHt9L1=HD$dH+%(uDHLH5&*1[]A\A]A^A_HH=)1HHtL1@HH=k)dH%(HD$1Ht$GHt20 ЃHT$dH+%(uH1PXHIHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H=u>HLH$$HD$HD$ D$0HD$DATUSL$HH $L9uH1dH%(H$1HkL`LH?H0IH)I)f1L4HHމ+tsHHvNHDH9rDHŻ> HH9r/H H9uH)LH$dH+%(uGH[]A\fIIlHH='1%H='1"fH#HtHHff.@AUATL%c'UHLSHdH%(HD$1Ht$Ht8Hu.HD$dH+%(}HHL1[]A\A]HhHI]I|HISHHIL %H &1XZHD$dH+%(uLAWL=%AVAUATUSHxH<$Hl$LHdH%(H$hHn%HD$0HDŽ$HD$PHD$(H%HD$hH:&HD$pH%HD$xH*&H$H&HD$H1THt 8I^HL MLH|E$HEtBIL-%fELLH1IIkE$EuLl$`H=%I}IH/H1IHt݀8tH`tLIHLXHIMEMcLSML #IH$HPH $L1L_AXuMDAH$LÅH$ME1H=>H%H1H$hdH+%(oHxL[]A\A]A^A_E1L%$@IcLd Mt;A<$t4LA tLIHIcLd MuE1$%=@3D$ A9$%=LHH=W#I1HHDH$H88IH,LHƒ~H!H1%HH$hdH+%(hHxL[]A\A]A^A_H$L0@L114Aƅ)H1HpDH$H$*DH $H$*CACf$.HE1HqD5H$0(DH-H(Hv MLƄ$XH r L FHP1S Y^H$HPHHH$GHH$H5 H|H$LD$H=1fDATUHH=HdH%(HD$1Ht$Ht0u Ht}uHD$dH+%(uqH]A\H/HIHPHLELH5/HuHD$dH+%(uHH]A\9fAWHLO8AVAUATUSHdH%(H$1HL$IAI9IIȉHI@HH H(H8%H HHHH H I@M9uHHBhH3B@HH3BH3BH HH ȃHBxH9uLL^H~ H^LLHnHL$HHH $H yZ8yZLH1H!H1؍<HHHHIH LIAL1L!L1HHHL LT$D$LLHHOyZMH IH1‰H!L1LMIM Ll$AHHHEO(yZH MH1ЉL!IH1LMIM Ll$ ALIHEJ)yZL MH1IAL!H1HLHL Ll$(LIHJ/yZL IH1IAL!L1HHHL Ll$0LIHO,yZL IH1IAH!L1LIIM Ll$8AHHHEO*yZH MH1IH!L1LMIM Ll$@AHHHEO(yZH MH1IL!H1LMIM Ll$HALIHEJ)yZL MH1IAL!H1HLHL Ll$PLIHJ/yZL IH1IAL!L1HHHL Ll$XLIHO,yZL IH1IAH!L1LIIM Ll$`AHHHEO*yZH MH1IH!L1LMIM Ll$hAHHHEO(yZH MH1IL!H1LMIM Ll$pALIHEJ)yZL MH1IAL!H1HLHL Ll$xLHIJ/yZL IH1IAL!L1HHHL L$LIHO,yZL IH1IAH!L1LIIM F,"HHL$HH O"yZMH1IH!L1LMIM L$AHHHEO yZH MH1IL!H1LMIM ELMIIAM L$L1L!J)yZMH1IHLHL HLIHAL MEI1D1L$JnMHLIHL ҉HLHIAL$L ỈH$I1D1MnLMIHL ILIHEL IՉH$I1D1L9nLLHHH ILIHDL I‰I1E1NnHIIHL ҉ILIHEL IH$I1H$E1NnLMIHL IHHHEH H׉H$H1D1L9nLLHHH ILIHDL I‰H$I1E1NnHIIHL ҉ILIHEL IȉI1H$E1NnLMIHL IHHHEH H׉H$H1D1L9nLLHHH ILIHDL I‰H$I1E1NnHIIHL ҉ILIHEL IȉI1E1NnLMHIH$L IHHHEH H׉H$H1D1L9nLLHHH ILIHDL I‰H$I1E1NnHIIHL ҉ILIHEL IȉI1E1NnLMIHL H$IHHHEH H׉H$H1D1L9nLLHHH ILIHDL I‰H$ I1E1NnHIIHL ҉ILIHEL IȉI1E1NnLMIHL IHHHEH$(H H׉H$0H1D1MH9nLIHL MIIM IHM1H$8E1INnHIHL ALIHEL MEI1IAD1MHnLIHL DHHܼHH I ΉH!M!I H$@HLMLMIIM ALIHEL H IAI!L!L L$HIMMLMIIM IALIHEL AI M!L!L L$PILMHLIHL LIHL H IAM!L!L L$XIMILIIIM IALIHEL AI I!L!L L$`IMMLMIIM AHHHEH H I։M!L!L L$hIMMLMIIM IALIHEL AI M!L!L L$pIMMLMIIM ALHIEL H IAM!L!L L$xILMHLIHL ILIHL AI M!L!L L$IMILIIIM ALIHEL H IAH!M!L L$IMMLMIIM IAHHHEH I M!H!L L$IMMLMIIM ALIHEL H IAI!L!L L$IMMLMIIM IALIHEL AI M!L!L L$ILMHLIHL LIHL H IAM!L!L L$IMILIIIM IALIHEL AI I!L!L L$IMMLMIIM AHHHEH H I։M!L!L L$IMMLMIIM IALIHEL I AM!L!L L$IMMLMIIM ALIHEL H IAM!L!L L$ILMHLIHL D9LIHHL AH L!L!H H$HLMH$HLIHL щHLIHAL H IAL!M!I J<8LL$LMHIL HLIHAI bL11H$HLMHLIHL MԉIHIIM MĉEM1D1L$IMILIIIM MIIEM L$LAIMMM1D1MILIHL IHHHEH DMI1LL$D1MHLHIIL щHLIHAI DIՉM1LL$E1MILIIHL ILIHEL L$ILMI1D1MHLIHL HLIHAI DỈLM1L$ E1MILIIHL ILIHEL L$ILMI1D1MHLIHL HLIHAI DI҉M1LL$0E1MILIHL щILHIEIL L$(ILMI1D1MHLIHL HLIHAI DIΉM1LL$@E1MILIHL ILIHEL L$8ILMI1D1MHLHIIL щHLIHAI DIՉM1LL$`E1MILIHL ILIHEL L$HILMEI1D1MHLIHL HLIHAI H$PHIHʉL1ID1MILIHL ‰ILIHEL L$XILMI1D1MHLIHL HLIHAI DI҉M1LL$pE1MLMIIM MEILIIM L$hAIH$xLMLM1D1MHLIHL MIIM EMHM1MED1ILMLIIIM DMIIM M1D1IHHHIAL Dn HNLVHHHHLn H DHFH$dH+%(uHĘ[]A\A]A^A_HܺH#EgHPHHH@vT2Hp H@(H@0@xHAWHcAVIAUATIUHo8SHHHw(HW0 H9HO(HHHHG0HcGxA?'A@EAEoIIݐoLH@EoKMoSU o[]0L9uAE)IcHr\IUHMHIT$8ITHTH)HI)HHrH1ItH4HH9rEt$xH[]A\A]A^A_futHtAUAT$8tATfT@A@H|HA)E9EOMcLAD$xDAD$x@uLE)LI#AUAT$8ATT[AVLv8AUATUHSHF(HDf(Dn0H?AA͍HHD8HcL8@)t1҉у9rHhfE8IF0AFAF DmpHDet>HEHHHEHCHEcHECHEHCHEHCHEcHECHEHCHEHC HEc HEC HEHC HEHC HEcHECHE HCHE HCHE cHE C[]A\A]A^81)ʃrJHHDHHHH)ƒ1ƃH<19ru#1fLDHH%s/%s%s.%luexe/proc/%i/%s.PAR_TEMPPAR_PROGNAME:/PERL5LIBPERLLIBPERL5OPTPERLIOPAR_INITIALIZEDPAR_SPAWNEDPAR_CLEANPAR_DEBUGPAR_CACHEPAR_GLOBAL_DEBUGPAR_GLOBAL_TMPDIRPAR_TMPDIRPAR_GLOBAL_TEMPPAR_GLOBAL_CLEAN1lseek failedread failedLD_LIBRARY_PATHUSERSYSTEM/tmpTEMPDIRTMPUSERNAME%02x%s%s%s%spar-parl.parshort read%s%scache-%s%s%s%stemp-%u%s%s%stemp-%u-%u%slibperl.so%s: creation of private subdirectory %s failed (errno=%i) %s: private subdirectory %s is unsafe (please remove it and retry your operation) %s: creation of private cache subdirectory %s failed (errno= %i) %s: exec of %s (custom Perl interpreter) failed (errno=%i) %s: extraction of %s (custom Perl interpreter) failed (errno=%i) %s: extraction of %s failed (errno=%i) CACHE;h@xXH8pxHl x8h08Lh(X88 HpHzRx @&D$4ȻFJ w?:*3$"\ tpHBBB B(A0A8D@l 8D0A(B BBBI @DlBBB A(A0G~ 0A(A BBBK DpBBE D(D0M 0D(A BBBJ dAJq AA H41BBB B(A0D8GP 8A0A(B BBBE <(FAA H Q D  DABA  h("FBB B(A0A8H Q Gq 8A0A(B BBBG MgA&E\L!FAA H Q D  AABJ Z  HABK H|\FBB B(A0A8KP 8M0A(B BBBE LiH P H hEAG<.BAA H Q D  AABC x!HXDFBH G(D@B (F ABBH aHIPcHA@$(FIB B(A0A8Ga_Bv 8D0A(B BBBD K^A_DPKK 8D0A(B BBBM CFA4xFAN0P ABH W DBE , `FBB A(D0DPL<0BIB B(A0A8G 8A0A(B BBBA XHOHFEE B(D0E8G@ 8A0A(B BBBC <lFFB A(D06 (A BBBH `7 7o 0 llxop  [  oo`ooo00@0P0`0p00000000011 101@1P1`1p11111111122 202@2P2`2p222@(#) Packed by PAR::Packer 1.063liesPerl_tmps_grow_pPerl_PerlIO_get_basesurrogate_cp_formatXS_re_is_regexpPL_strxfrm_is_behavedPerl_to_uni_upperPerlIO_opennPerl_repeatcpyPL_do_undumpPL_utf8cachePerl_av_unshiftPerl_validate_protoPL_tmps_ixPL_stack_maxPerl_my_atofPerlIOBuf_dupPL_WARN_NONEPerl_gv_stashpvnPerl_newASSIGNOPclearerr@@GLIBC_2.2.5XS_DynaLoader_dl_undef_symbolsaccess@@GLIBC_2.2.5fork@@GLIBC_2.2.5sigemptyset@@GLIBC_2.2.5XS_PerlIO__Layer__NoWarningsPL_no_myglobmodf@@GLIBC_2.2.5PL_XPosix_ptrsgetppid@@GLIBC_2.2.5PerlIO_vprintfPL_statusvalue_posixPerl_croak_svPerl_gv_stashpvPerl_av_arylen_pPerl_grok_numberPerl_sv_unmagicextunlinkat@@GLIBC_2.4PL_InMultiCharFoldPerl_PerlIO_clearerrfopen64@@GLIBC_2.2.5PerlIOUnix_tellPerl_block_endPerl_mg_find_mglobPL_memory_wrapPerl_sv_catsv_mgsendto@@GLIBC_2.2.5Perl_re_intuit_startPerl_croak_xs_usagebind@@GLIBC_2.2.5PL_regmatch_slabPL_pad_reset_pendingPL_uuemapPL_mmap_page_sizePL_op_private_validPerl_new_versionPerl_sv_setref_uvPerl_grok_hexPerl_newHVREFPerl_croakPerl_cast_ulongfwrite@@GLIBC_2.2.5Perl_reg_named_buff_scalarPerl_strxfrmdeprecated_property_msgsPerl_sv_2cvrealloc@@GLIBC_2.2.5PL_keyword_pluginPerlIOPending_flushPerl_sv_utf8_encodePerlIO_list_pushPerl_PerlIO_stderrPerl_sv_pvutf8n_forcePerl_padnamelist_freePerl_sv_does_pvnsetlocale@@GLIBC_2.2.5Perl_safesysfreePL_DBsubPerl_call_pvPerl_newGIVENOPPerlIOCrlf_flushshmctl@@GLIBC_2.2.5Perl_push_scopePerl_cast_uvPerlIOStdio_tellPerl_taint_envPerl_my_lstatPerl_newXS__sigsetjmp@@GLIBC_2.2.5Perl_op_append_listPerl_reg_numbered_buff_lengthPerlIOUnix_readPerl_hv_commonPL_cop_seqmaxPerl_save_pushi32ptrPerl_vwarnerPerlIOBase_setlinebufPL_ctype_namePL_InBitmapPerl_mg_freePerl_newSUBPerl_sortsvPerl_multideref_stringifyPerl_newSVuvPL_delaymagic_euidPerl_sv_2boolPerl_grok_bslash_cPerl_save_clearsvPerl_newPADNAMELISTPerl_hv_iterkeyPerl_uvoffuni_to_utf8_flags_msgsPerl_re_compilePerl_sys_init3localtime@@GLIBC_2.2.5Perl_newSV_truePL_magic_dataPerl_unshare_hekPerl_sv_taintedPerlIO_ungetcPerl_scan_versionPL_random_statePerl_multiconcat_stringifyPerlIO_crlfPerl_pad_findmy_svPL_charclassPerl_newHVPerlIO_rawPL_minus_aPerl_sv_decPerl_cxincPerl_hv_name_setPL_savestack_maxPerlIO_getposPL_known_layersPerl_sv_catpvnPerl_reentrant_sizePL_internal_random_statePL_ors_svPerl__to_fold_latin1Perl_hv_delayfree_entPerl_sv_rvunweakenPerl_dup_warningsPL_utf8_foldclosuresPL_padname_undefPerl_gv_fullname4Perl_savetmpsPerl_utf8_to_uvuniPL_xsubfilenamePerl_refcounted_he_chain_2hvPerl_cv_const_svPerlIO_sv_dupftello64@@GLIBC_2.2.5PerlIO_allocatestrftime@@GLIBC_2.2.5Perl_sv_2nvPerl_resume_compcvsetservent@@GLIBC_2.2.5PL_sv_arenarootPerl_sv_derived_fromPerl_utf16_to_utf8PL_block_typePL_minus_nPL_curcopdbPerl_sv_pvn_forceaccept@@GLIBC_2.2.5Perl_save_I16pow@@GLIBC_2.29Perl_die_svPerl_lex_next_chunksqrt@@GLIBC_2.2.5Perl_str_to_versionPerl_gv_fetchmethod_autoloadPerl_save_generic_svrefPL_sv_placeholderPerlIOUnix_dupPerl_sv_catpvf_mgPL_ppaddrPerlIO_intmode2strPerl_cv_clonePL_strategy_socketpairPerl_newSVpvfPerl_ckwarnPL_op_namePerl_unsharepvnPerl_mro_package_movedPerl_init_tmumask@@GLIBC_2.2.5memcpy@@GLIBC_2.14PerlIOBase_openPerl_do_op_dumpPL_warn_localesetgroups@@GLIBC_2.2.5PL_strategy_socketPerl_start_subparsefchown@@GLIBC_2.2.5PL_warnhookPL_main_cvPerl_av_existsPerl_grok_bslash_oPL_sharehookPL_incgvsetprotoent@@GLIBC_2.2.5PL_naPerl_sv_uni_displayPL_varies_bitmaskPerl_newSVpvndup3@@GLIBC_2.9Perl_newATTRSUB_xPL_delaymagic_uidPerl_dump_allPerl_class_add_fieldPerl_new_stackinfoPerl_newSVpvn_flagsPerl_do_sprintfXS_PerlIO__Layer__findPerl_sv_pos_u2bPerl_op_classPL_versionPL_WB_invlistPerl_refcounted_he_fetch_pvgetpwnam@@GLIBC_2.2.5PL_unitcheckav_savePL_debug_padsin@@GLIBC_2.2.5Perl_fbm_instrPL_utf8_tosimplefoldrename@@GLIBC_2.2.5Perl_hv_eiter_setPerl_hv_placeholders_pPerl_markstack_growPL_runopsPL_stack_basePerl_gv_checkPerlIOUnix_closePerl_sv_setiv_mgPL_revisionPerl_locale_panicPerl_skipspace_flagsPL_hash_rand_bitsstrtod@@GLIBC_2.2.5PL_ZeroPL_op_private_bitdef_ixPerl_pad_add_anonstdout@@GLIBC_2.2.5PerlIOBuf_readXS_Internals_SvREFCNTXS_utf8_downgradereaddir64@@GLIBC_2.2.5PerlIOBase_filenoPerl_save_freercpvPerl_newRVinjected_constructormkdir@@GLIBC_2.2.5Perl_mg_free_typePerl_cx_dumpshmat@@GLIBC_2.2.5Perl_ptr_table_newPL_utf8_tolowerfflush@@GLIBC_2.2.5Perl_mg_magicalPerl_debstackptrsPerl_PerlIO_set_cntPerl_sv_sethekPerl_rsignalPerl_sv_backoffPerl_Gv_AMupdatePerl_dowantarrayPL_origalenPL_parserPerl_save_destructor_xPL_formtargetXS_Internals_SvREADONLYPL_deBruijn_bitpos_tab32Perl_sv_2pv_flagsPerl_sv_magicPerl_my_atof2Perl_sv_utf8_decodePL_utf8skipPerl_lex_stuff_pvPerl_lex_read_togetservbyname@@GLIBC_2.2.5PerlIO_stdoutfPerl_init_named_cv.symtab.strtab.shstrtab.note.gnu.property.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.plt.data.bss.comment .$Ao0K 33S00r[o2P2P6hoh^h^@w__ BZZpY  ;`00;77/  66EE7E7`9P9`9P9 `9 P9 O:?:Q:A:`:P:~:n:H `:H:xp 0H:+x:X@  A<YQ)=ic_freedestructPerl_ck_lfunPerl_oopsHVPerl_magic_freeovrldPerl_pp_anonlistPerl_pp_unstackPerl_my_unexecPerl_pp_i_negatePerl_op_prune_chain_headPerl_magic_sizepackPerl_isinfnansvPerl_ck_spairPerl_pp_reversePerl_dump_packsubs_perlPerl_mro_isa_changed_inPerl_pp_posPerl_pp_introcvPerl_pp_concat__TMC_END__Perl_scan_commitPerl_do_open6Perl_pp_exitPerl_ck_isaPerl_pp_lengthPerl_pp_prtfPerl_pp_snePerl_my_attrsPerl_pp_linkPerl_pp_getcPerl_ck_eofPerl_pp_callerPerl_do_msgrcvPerl_pp_i_dividePerl_ck_execPerl_pp_prototypePerl_magic_wipepackPerl_pp_i_moduloPerl_pp_predecPerl_PerlLIO_dup2_cloexecPerl_dofilePerl_pp_smartmatchPerl_pp_shift__dso_handlePerl_pp_ordPerl_pp_leavetryPerl_pp_aassignPerl_pp_ftisPerl_pp_getloginPerl_pp_srefgenPerl_do_aexec5Perl_pp_anoncodePerl_parse_unicode_optsPerl_pp_unshiftPerl_do_ncmpPerl_pad_swipePerl_ck_selectPerl_pp_i_addPerl_pp_leavePerl_pp_sockpairPerl_pp_gotoPerl_dump_sub_perlPerl_pp_intPerl_join_exactPerl_pp_rv2gvPerl_do_ipcgetPerl_croak_callerPerl_pp_initfieldPerl_pad_leavemyPerl_ck_splitPerl_pp_postincPerl_pp_chdirPerl_setfd_inhexec_for_sysfdPerl_pp_splicePerl_pp_hslicePerl_do_vecgetPerl_pp_gserventPerl_pp_nbit_orPerl_sv_resetpvnPerl_pp_studyPerl_do_ipcctlPerl_pp_preincPerl_pp_clonecvPerl_reg_add_dataPerl_pp_setpriorityPerl_pp_wantarrayPerl_pp_getppidPerl_ck_tellPerl_pp_reftypePerl_alloc_LOGOPPerl_opslab_freePerl_is_graphemePerl_pp_fttextPerl_pp_tmsPerl_magic_existspackPerl_pp_nullPerl_pp_sleepPerl_do_vopPerl_magic_settaintPerl_get_extended_os_errnoPerl_varnamePerl_pp_pushmarkPerl_pp_anonconstPerl_pp_formlinePerl_PerlSock_socket_cloexecPerl_pp_regcresetPerl_pp_leavewhenPerl_ck_bitopPerl_magic_setsigallPerl_PerlLIO_open_cloexecPerl_cv_forget_slabPerl_pp_rmdirPerl_ck_ftstPerl_ssc_initPerl_pp_semgetPerl_pp_subtractPerl_pp_lslicePerl_PerlLIO_open3_cloexecPerl_magic_getvecPerl_get_ANYOFHbbm_contentsPerl_ck_prototypePerl_pad_freePerl_pp_gePerl_ck_svconstPerl_sv_clean_objsPerl_keywordPerl_pp_lockPerl_pp_ftlinkPerl_pp_quotemetaPerl_ck_shiftPerl_pp_absPerl_setfd_cloexecPerl_magic_setmglobPerl_parser_freePerl_do_vecsetPerl__to_upper_title_latin1Perl_magic_getposPerl_pp_leavegivenPerl_pp_alarmPerl_pp_kvaslicePerl_sv_kill_backrefsPerl_pp_getpriorityPerl_pp_umaskPerl_cmpchain_extendPerl_pp_schopPerl_magic_setposPerl_do_sysseekPerl_magic_freeutf8Perl_setfd_cloexec_for_nonsysfdPerl_magic_regdata_cntPerl_magic_setdefelemPerl_mode_from_disciplinePerl_abort_executionPerl_pp_i_multiplyPerl_pp_socketPerl_ck_sortPerl_ck_nullPerl_magic_getnkeysPerl_magic_setnkeysPerl_ck_stringifyPerl_sv_2numPerl_closest_copPerl_ck_joinPerl_hv_auxallocPerl_pp_splitPerl_PerlSock_accept_cloexecPerl_pp_ucPerl_ck_indexPerl_ck_readlinePerl_hv_ename_addPerl_pp_padrangePerl_pp_rv2svPerl_pp_gmtimePerl_ck_rvconstPerl_pp_entertrycatchPerl_packagePerl_no_bareword_allowedPerl_ck_globPerl_watchPerl_pp_atan2Perl_deb_stack_allPerl_cmpchain_finishPerl_pp_systemPerl_pp_telldirPerl_wait4pidPerl_ck_openPerl_pp_multiplyPerl_pp_rangePerl_pp_seekdirPerl_pp_enterPerl_pp_transPerl_pp_flopPerl_ck_sassignPerl_pp_runcvPerl_pp_nePerl_pp_mkdirPerl_bind_matchPerl_core_prototypePerl_newXS_len_flagsPerl_pad_block_startPerl_pp_aelemfastlex_storePerl_magic_gettaintPerl_rsignal_savePerl_magic_freemglobPerl_do_tellPerl_pp_cond_exprPerl_pp_octPerl_pp_untiePerl_pp_chopPerl_report_redefined_cvPerl_pp_aelemPerl_pp_ltPerl_magic_clearhintsPerl_pp_joinPerl_pp_gvsvPerl_ck_subrPerl_get_ANYOFM_contentsPerl_pp_ftttyPerl_yyunlexPerl_pp_notPerl_init_argv_symbolsPerl_report_evil_fhPerl_pp_leavesublvPerl_pp_grepstartPerl_pp_weakenPerl_pp_ssockoptPerl_ck_cmpPerl_hv_backreferences_pPerl_pp_tiePerl_pp_kvhslicePerl_pp_padcvPerl_pp_i_nePerl_delete_eval_scopePerl_pp_moduloPerl_pp_fcPerl_pp_lvrefslicePerl_magic_regdatum_setPerl_pp_leaveloopPerl_sawparensPerl_pp_waitpidPerl_pp_aeachPerl_translate_substr_offsetsPerl_pp_gtPerl_pp_waitPerl_pp_rv2cvPerl_sub_crush_depthPerl_magic_setlvrefPerl_pp_orPerl_pp_refPerl_pp_globPerl_pp_helemPerl_pp_packPerl_PerlProc_pipe_cloexecPerl_init_constantsPerl_pp_sysseekPerl_pp_hintsevalPerl_pp_ggrentPerl_pp_leaveevalPerl_pp_padsvPerl_pp_cmpchain_dupPerl_pp_substrPerl_pp_is_taintedPerl_pp_leavesubPerl_pp_tiedPerl_pp_padsv_storePerl_pp_i_ncmpPerl_pp_blessPerl_pad_fixup_inner_anonsPerl_pp_addPerl_pp_randPerl_magic_getdefelemPerl_pp_ioctlPerl_pp_nbit_andPerl_io_closePerl_pp_qrPerl_ck_deletePerl_pp_method_superPerl_magic_setdblinePerl_pp_slePerl_pp_semctlPerl_magic_setenvPerl_pp_eachPerl_ssc_finalizePerl_pp_enterwhenPerl_invoke_exception_hookPerl_pp_statPerl_magic_getpackPerl_pp_flipPerl_pp_getpgrpPerl_pp_lcPerl_pp_unweakenPerl_pp_argcheckPerl_pp_ghostentPerl_getenv_lenPerl_pp_argelemPerl_amagic_is_enabledPerl_pp_dbmopenPerl_pp_eofPerl_scalarPerl_yyparsePerl_pp_refaddrPerl_pp_lvrefPerl_get_no_modifyPerl_pp_gprotoentPerl_pp_redoPerl_pp_postdecPerl_magic_cleararylen_pPerl_pp_negatePerl_pp_getpeernamePerl_pp_readlinePerl_pp_acceptPerl_magic_setcollxfrmPerl_pp_coreargsPerl_magic_killbackrefsPerl_report_wrongway_fhPerl_pp_sysreadPerl_pp_bindPerl_magic_setpackPerl_ck_backtickPerl_utilizePerl_get_hash_seedPerl_boot_core_mroPerl_pp_once_DYNAMICPerl_localizePerl_pp_gpwentPerl_pp_floorPerl_pp_breakPerl_pp_listPerl_pp_continuePerl_set_ANYOF_arggetprotoent@@GLIBC_2.2.5Perl_sv_chopPerl_sv_setnv_mgPerl_instrPL_modcountPerl_bytes_from_utf8Perl_class_set_field_defopPL_start_envPerl_rninstrPL_padlist_generationPL_sv_immortalsPerl_sv_taintPerlIO_cleantablePL_threadhookPerl_PerlIO_fillXS_builtin_export_lexicallyPerl_newWHILEOPPL_origargvPerl_rv2cv_op_cvPerlIOStdio_clearerrPerl_save_aryPerl_pad_add_name_svPerl_pregcompPerl_get_prop_valuesPL_phase_namesPL_ofsgvPL_warn_reservedPerl_savesharedpvPL_deBruijn_bitpos_tab64Perl_sv_numeq_flagsPerl_sv_force_normal_flagsPL_in_some_foldPerlIOBuf_pushedPerl_hv_clearPL_utf8_charname_beginPL_statusvaluePerl_sv_insertsymlink@@GLIBC_2.2.5PerlIOBuf_fillPerlIO_debugPerl_cv_undefpipe2@@GLIBC_2.9Perl__to_utf8_lower_flagsseteuid@@GLIBC_2.2.5fileno@@GLIBC_2.2.5Perl_hv_iterinitPL_argvgvPerl_scan_hexPerlIO_destructPerlIOBase_readdup2@@GLIBC_2.2.5Perl_hv_iternextPerlIO_apply_layersPerl_cv_namePerl_sv_pvbytePerl_mg_getPL_colorsPerl__to_uni_fold_flagsPL_setlocale_bufsizePerl__is_uni_perl_idstartPL_strategy_open3Perl_call_argvregexp_extflags_namesPerl_reginitcolorssethostent@@GLIBC_2.2.5Perl_caller_cxPL_splitstrPerl_sv_setivPerl_do_closePL_colorsetPerl_ck_warnerPL_dump_re_max_lenPerl_gv_try_downgradePerlIOBuf_bufsizatan2@@GLIBC_2.2.5PerlIOBuf_seekPL_sighandlerpXS_builtin_truePL_Xpvgetspnam@@GLIBC_2.2.5frexp@@GLIBC_2.2.5execv@@GLIBC_2.2.5Perl_op_linklistPerl_sv_blessPL_lockhookPerl_dump_indentperl_freePL_replgvPerl_sv_len_utf8Perl_sv_freeendnetent@@GLIBC_2.2.5mbtowc@@GLIBC_2.2.5pause@@GLIBC_2.2.5PL_isarevPerl_drand48_init_rPerlIOPending_readPerl_newSVboolPerl_newHVhvPerl_newPMOPPL_Latin1Perl_parse_barestmtPerl_save_sptrfseeko64@@GLIBC_2.2.5mktime@@GLIBC_2.2.5Perl_save_ivPerl_newGVREFmemset@@GLIBC_2.2.5Perl_utf8n_to_uvchr_errorPerl_invlist_clonePerlIOBase_clearerrPerl_pad_newPerl_PerlIO_stdoutgetgid@@GLIBC_2.2.5Perl_av_lenPerl_gv_autoload_pvnPL_phasePerl_get_hvPerl_hv_ksplitPL_hash_seed_setPerl_sv_truePerl_newUNOP_AUXPerlIO_fdopenPerl_get_op_namesPerl__invlist_union_maybe_complement_2ndgetgrnam@@GLIBC_2.2.5PL_perlioPerl_hv_free_entPerl_lex_peek_unicharPL_opargsPL_exitlistPL_unicodePerl_form_alien_digit_msgPL_taintingPerl_mfreePL_secondgvPerl_require_pvPerl_croak_kw_unless_classPerl_sv_usepvnshutdown@@GLIBC_2.2.5PL_Posix_ptrsPerl_newANONATTRSUBPerl_scan_wordXS_utf8_decodePL_stdize_locale_bufsizePerl_lex_stuff_svPerl_newCONDOPPerl_warnPerl_sv_derived_from_hvPL_srand_calledPL_langinfo_bufsizePerl_new_warnings_bitfieldPerl_get_svPL_TR_SPECIAL_HANDLING_UTF8PerlIOStdio_openPerl_save_scalarPL_argvoutgvPerlIO_printfPL_dumpindentPerl_av_dumpPerl_sv_setsv_mgPerl_reg_named_buff_nextkeyPerl_do_opennPL_regmatch_statePerl_sv_pvutf8Perl_filter_delPerl_hv_existsPerl_gv_fetchmethodPL_subnamePerl_mess_sv__longjmp_chk@@GLIBC_2.11PL_osnameperl_parsePL_psig_namePL_localpatchesPerl_gv_autoload_svPerl_bytes_cmp_utf8Perl_save_allocPerl_diePerl_my_statPerl__to_utf8_fold_flagsPerlIO_list_allocPerl_vdebPerl_gv_fetchmethod_pvn_flagsPerl_Slab_AllocPerl_eval_pvPerl_langinfo8Perl_grok_bin_oct_hexPerl_sv_2bool_flagsPerl_hv_copy_hints_hvioctl@@GLIBC_2.2.5shmdt@@GLIBC_2.2.5abort@@GLIBC_2.2.5PL_Assigned_invlistPerl_gv_init_pvPerl_sv_setsvPerlIO_perlio__h_errno_location@@GLIBC_2.2.5exp@@GLIBC_2.29PL_gensymmemchr@@GLIBC_2.2.5PL_strxfrm_max_cpPL_utf8_totitlePerlIOStdio_dupgetlogin@@GLIBC_2.2.5Perl_mg_clearPL_sig_numPerl_op_dumpPL_sh_pathPL_unitcheckavPL_perl_destruct_levelPerl_pad_tidyPL_padix_floorPerl_load_charnamesPL_hook__require__afterPerl_my_stat_flagsnl_langinfo@@GLIBC_2.2.5Perl_vverifyPerl_sv_setsv_cowPerl_parse_labelPerl_clear_defarrayldexp@@GLIBC_2.2.5Perl_sv_unmagicPL_bitcountPL_c9_utf8_dfa_tabPerl_vivify_defelemPerl_sv_inc_nomgPerl_sv_setpv_mgPerl_newLISTOPisatty@@GLIBC_2.2.5utimes@@GLIBC_2.2.5PerlIOCrlf_writePerl_call_atexitPerl_atfork_unlockPerl_hv_eiter_pPerl_get_prop_definitionPL_tmps_stackPerl_av_deletePL_eval_startPerl_fbm_compilePL_my_environPerl_dorefPL_utf8_idstartgethostbyname@@GLIBC_2.2.5Perl_croak_no_modifyPerl_reg_named_buff_existsPerl_reg_named_buff_fetchPerl_save_destructorPerl_ck_entersub_args_protoPL_curstashPerl_sv_magicext_mglobPL_minus_FPerl_do_joinPerl_keyword_plugin_standard__gmon_start__PL_generationPerl_sv_set_truePerl_my_vsnprintfPerl_hv_iternext_flagsPerl_sv_nosharingPerl_save_generic_pvrefPL_origenvironXS_builtin_func1_scalarPL_curpadPerlIO_putcPerl_save_deletePerl_utf16_to_utf8_reversedPerl_lex_unstuffPerl_gv_fetchmeth_pv_autoloadPL_utf8_tofoldPerlIO_default_layersPL_utf8_xidstartPerl_reg_named_buff_iterPerl_gv_fetchmeth_svPerlIO_removePerl_my_dirfdPL_mess_svPerlIO_stdioPerl_save_intPL_checkavmsgrcv@@GLIBC_2.2.5PL_argvout_stackPerl_sv_does_pvPerl_save_hashXS_utf8_encodePerl_cop_fetch_labelXS_builtin_indexedstrxfrm@@GLIBC_2.2.5Perl_sv_dump_depthPerl_PerlIO_tellPerlIO_find_layerPL_signalhookselect@@GLIBC_2.2.5Perl_av_makePerlIO_importFILEexecvp@@GLIBC_2.2.5Perl_newLOOPOPgetpeername@@GLIBC_2.2.5PL_YesPL_collation_namePL_sv_rootPerlIOBase_poppedPerl_do_openPL_fdpidPerl_do_gvgv_dumpPerl_utf8_to_uvchrPerl_scan_binPerlIOUnix_pushedPL_ptr_tablePerl_sv_streq_flagsPerl_cvgv_from_hekPerl_filter_addgp_flags_namesPerl_mg_freeextPerl_vnewSVpvfPL_simple_bitmaskPerl_get_ppaddrPerl_sv_utf8_downgrade_flagsPerl_parse_listexprPL_underlying_radix_svsuper_cp_formatPerlIOBase_unreadPerl_thread_locale_initPerl_scan_vstringPL_basetimePL_comppad_namePerl_padname_freePL_reentrant_retintPL_checkPerl_dump_packsubsprctl@@GLIBC_2.2.5PL_constpadixgettimeofday@@GLIBC_2.2.5Perl__new_invlistPerl_sv_2uvPL_DBsinglePerlIOStdio_fillPL_isa_DOESPerl_forbid_outofblock_opsPerl_save_hintsPL_prevailing_versionPerl_newRANGEXS_NamedCapture_tie_itPerlIOBuf_flushPerl_sv_insert_flagsPerl_lex_read_unicharPerlIO_putsPerl_vcroakPerlIOBuf_writenonchar_cp_formatPerl_uvoffuni_to_utf8_flagsPerl_sv_untaintPerlIO_has_cntptrPL_defstashPerl_av_create_and_pushPerl_sv_vcatpvfn_flagsPL_WARN_ALLPerl_sv_does_svPerl_reg_temp_copyPerl_sv_setref_pvnPerl__setup_canned_invliststrpbrk@@GLIBC_2.2.5Perl_save_svrefPerl_drand48_rseekdir@@GLIBC_2.2.5PL_laststatvalPerlIO_initexecl@@GLIBC_2.2.5Perl_current_re_enginePerlIO_exportFILEPerl_sv_pvbyten_forcePL_nomemokPerl_av_clearPerl_lex_bufutf8Perl_sv_catpv_flagsPL_stdingvPerl_gv_fullname3Perl_PerlIO_seekPerl_sv_unref_flagsPerlIO_reopenPerl_class_apply_field_attributesPerl_vformPerlIO_fast_getsPerl_delimcpyPL_collxfrm_multPerl_class_seal_stashPL_strategy_dupPerlIOBuf_set_ptrcntPerl_sv_catpvfPerl_call_liststrncmp@@GLIBC_2.2.5malloc@@GLIBC_2.2.5PL_mbrtowc_psPerl_sv_cmp_flagsPerl_leave_scopePerl_hv_riter_setPerlIOBuf_closePerlIO_arg_fetchPL_utf8localeperl_runPerlIOPop_pushedPL_in_clean_objsPL_csighandler3pgetgrent@@GLIBC_2.2.5sigfillset@@GLIBC_2.2.5Perl_op_nullPerl_my_popendup@@GLIBC_2.2.5Perl_sv_catpvn_flagsPerl_sv_recode_to_utf8getpriority@@GLIBC_2.2.5Perl_newSVsv_flagsPerl_sv_2pv_nolenPL_sortstashPL_in_evalPerl_op_convert_listPerl_newSVobjectPerl_wrap_infix_pluginPerl_av_shiftPL_efloatsizePerl_gv_fetchpvPerl_sv_set_boolPerl_gp_freefchdir@@GLIBC_2.2.5clearenv@@GLIBC_2.2.5getnetbyname@@GLIBC_2.2.5Perl_sv_2mortalPerlIOStdio_writeunlink@@GLIBC_2.2.5Perl_sv_collxfrmPerl_vnormalPL_in_load_modulePerl_to_uni_titlePerl_sv_vsetpvfnPL_compilingPL_SB_invlistPerl_do_gv_dumpPerl_op_refcnt_locksetresuid@@GLIBC_2.2.5PL_savestack_ixPerl_sv_setrv_noincrmdir@@GLIBC_2.2.5PL_hash_rand_bits_enabledPerl_pv_prettyPL_DBsignalPerlIOStdio_flushPerl_pv_uni_displayPL_sortcopPerl_is_utf8_char_helper_PL_exit_flagsXS_re_regnamesPerl_sv_usepvn_mgPerl_newPROGPerl_hv_clear_placeholdersPerl_sv_setpvPerlIOStdio_unreadPL_last_in_gvPerlIO_parse_layersPerl_bytes_to_utf8Perl_sv_eq_flagsXS_NamedCapture_FETCHPL_lastfdPL_mainstackPerl_vload_modulePerl_newGPPerl_gv_fetchsv_exit@@GLIBC_2.2.5getgroups@@GLIBC_2.2.5sigismember@@GLIBC_2.2.5Perl_sv_pos_u2b_flagsPerl_class_add_ADJUSTPL_srand_override_nextPerl_my_atof3PL_efloatbufPerl_ck_entersub_args_proto_or_listPerl_despatch_signalsPerl_av_undefPerl_hv_scalarPerl_ck_entersub_args_listPerl_scan_numPerlIOBase_noop_failPerlIO_pendingPerl_my_setenvPerl_emulate_cop_ioPerl_PerlIO_restore_errnoPerl_optimize_optreePerl_sv_grow_fresh__memcpy_chk@@GLIBC_2.3.4Perl_vstringifyPL_patchlevelPerl_mro_method_changed_inPerl_rcpv_copyPerl_pregfreePerl_newANONSUBPL_checkav_savePerlIOUnix_refcnt_deccos@@GLIBC_2.2.5Perl_newLOGOPPerl_newGVOPPL_setlocale_bufsemget@@GLIBC_2.2.5Perl_formPerl_hv_deletePerl_newGVgen_flagsPerlIOUnix_oflagsPerl_regpropPL_numeric_radix_svPerlIOBuf_get_basesetregid@@GLIBC_2.2.5Perl__invlist_invertPerl_newSVheksetsockopt@@GLIBC_2.2.5PL_main_startPerl_cv_ckproto_len_flagsPerl_PerlIO_flushPerl_utf16_to_utf8_basePerl_gv_fetchpvn_flagssysconf@@GLIBC_2.2.5setpgid@@GLIBC_2.2.5PerlIOStdio_seekPerl_my_snprintfPerl_sv_refPerlIOUnix_openPerl_newARGDEFELEMOPPerl_hv_iternextsvPerl_refcounted_he_new_svPL_padname_constgetpid@@GLIBC_2.2.5mkostemp64@@GLIBC_2.7Perl_op_scopePerl_leave_adjust_stacksPerl_newPADNAMEpvnPL_body_rootsXS_DynaLoader_dl_load_filePL_modglobalPerl_sv_dumpPerl_gmtime64_rPerl_grok_binPerl_free_tmpsPerl_hv_storePL_filemodePerl_refcounted_he_incPL_compcvPerl_newSVpvn_sharePerl_newDEFSVOPPerl_scan_octPL_utf8_perl_idstartPerl_save_adeletePL_watch_pvxPL_delaymagic_egidPL_evalseqPerl_hv_exists_entPerl_packlistPerl_whichsig_pvnPerl__invlistEQPL_stack_sp__vsnprintf_chk@@GLIBC_2.3.4PerlIOPending_closePerlIOBuf_openPerl_prescan_versionPerl_hv_store_flagsPerlIO_cleanupPerl_hugePerl_reg_named_buffPerl_sv_force_normalPerl_PerlIO_get_bufsizXS_UNIVERSAL_isaop_class_namesPL_CCC_non0_non230PerlIO_canset_cntrenameat@@GLIBC_2.4__fxstat64@@GLIBC_2.2.5Perl_taint_properPerl_more_svfreopen64@@GLIBC_2.2.5PL_no_helem_svPL_user_def_propsgp_flags_imported_namesPL_varies__environ@@GLIBC_2.2.5Perl_is_utf8_FF_helper_Perl_debstackPerl_sv_peekPL_oldnamegetpwuid@@GLIBC_2.2.5Perl_newAVavPerl_gv_init_pvnPL_valid_types_IV_setPerl_ninstr_ITM_deregisterTMCloneTablePL_errorsgetnetent@@GLIBC_2.2.5Perl_gv_fetchmeth_pvn_autoloadPerl_PerlIO_readPerl__invlist_dumpPL_savestackPerl_reentrant_freePerl_looks_like_numberPerlIOStdio_eofPerl_sv_collxfrm_flagsPerl_noperl_diePerl_get_and_check_backslash_N_namePL_infix_pluginPerl__invlist_searchPL_toptargetgeteuid@@GLIBC_2.2.5PL_numeric_standardPerl_newSVsvfmod@@GLIBC_2.2.5PL_scopestackperl_allocXS_DynaLoader_dl_unload_filePerl_newXS_deffilePerl_reallocPerlIOBase_binmodePerl_sv_setuvstrnlen@@GLIBC_2.2.5PerlIOPending_set_ptrcntPL_UpperLatin1PL_curpmPerl_try_amagic_binungetc@@GLIBC_2.2.5__ctype_toupper_loc@@GLIBC_2.3Perl_op_lvalue_flagsPerlIO_pushPerl_get_op_descsPerl_save_hptrPerl_sv_clearXS_builtin_created_as_numberPerl_newSVOPPL_bincompat_optionsPerl_save_opPerl_save_rcpvPerl_runops_standardPL_signalsPerl_reg_named_buff_firstkeyPerl_hv_riter_pPerl_vmessPL_taint_warnPL_numeric_underlying_is_standardPerl_thread_locale_termPerl_parse_blockPerlIOBase_flush_linebufPerl_dounwindPerl_PerlIO_context_layersPerl_softref2xvlog@@GLIBC_2.29Perl_grok_infnanXS_builtin_trimPerl_rsignal_statePL_min_intro_pendingPerl_nothreadhookPerl_cv_set_call_checkerPerl_sv_setpvn_mgcrypt@@XCRYPT_2.0Perl_sv_cmpPerl_hv_dumpPerl_uvchr_to_utf8Perl_utf8n_to_uvchrPerl_mbtowc_PL_localizingfree@@GLIBC_2.2.5PL_opPerl_sv_reftypePL_stashcachePerl_sv_catsvPL_DBtracePerl_intro_myPL_hash_seed_wPerl_vcmpPerl_to_uni_lowerPL_tmps_maxstrlen@@GLIBC_2.2.5PL_op_sequencePerl_parse_fullstmtPerl_PerlIO_save_errnoPerl_mg_copyPerl_sv_derived_from_svPL_reg_extflags_name_ITM_registerTMCloneTablePL_warn_uninit_svPerl_warn_svPerl_pv_escapePerl_gv_name_setPerl_my_strftime8_tempPerl_gv_dumpPerl_xs_handshakePL_scopestack_namePerl_refcounted_he_fetch_pvnPerl_cntrl_to_mnemonicPerlIOStdio_filenoPerl_do_sv_dumpPerl_utf8_to_bytesPerl_reg_numbered_buff_fetch_flagsPerl_sv_2pvutf8_nolenPerl_wrap_keyword_pluginferror@@GLIBC_2.2.5Perl_callocPerl_save_I32Perl_av_create_and_unshift_onePerlIO__closePerl_newIOPerl_sv_nounlockingopendir@@GLIBC_2.2.5Perl_sv_doesPL_strtabPerl_uvchr_to_utf8_flagsPL_beginav_savePL_minus_Egethostbyaddr@@GLIBC_2.2.5PL_utf8_xidcontPerl_parse_arithexprPL_savebeginPL_curpm_underPerl_scan_word6PL_strategy_mkstempPL_debstashPerl_mro_set_private_dataPerl_newSVREFPerl_PerlIO_get_cntPerlIO_define_layerPL_delaymagicPerl_save_hdeletePerl_mro_set_mro__ctype_get_mb_cur_max@@GLIBC_2.2.5Perl_sortsv_flagscv_flags_names__vfprintf_chk@@GLIBC_2.3.4PL_NoPL_in_clean_allPerl_mini_mktimePL_minus_pPL_psig_ptrPL_watchaddrgetprotobyname@@GLIBC_2.2.5PL_strategy_pipePL_markstack_maxPerl__is_uni_perl_idcontPL_hintgvmkstemp64@@GLIBC_2.2.5second_sv_flags_namesPerl_sys_termPerl_PerlIO_eofPerl_ptr_table_fetchlisten@@GLIBC_2.2.5PL_veto_cleanupPerl_refcounted_he_new_pvnPL_eval_rootPerl_padnamelist_fetchpmflags_flags_names__ctype_b_loc@@GLIBC_2.3__cxa_finalize@@GLIBC_2.2.5Perl_newCONSTSUB_flagsPerlIO_default_bufferPerl_sv_catpvPerl_av_reifyXS_NamedCapture_TIEHASHmsgsnd@@GLIBC_2.2.5PL_anPL_preambleavPerl__to_utf8_upper_flagsPerl__is_utf8_perl_idcontPerl_qerrorPerl_op_wrap_finallyPerl_mallocPerl_pad_add_name_pvPL_DBlinePerl_sv_replacePL_warn_uninitPerl_gv_fetchmeth_pvnPerl_is_utf8_char_bufPerl_my_forkPerl_finalize_optreePerl_save_pushptrptrboot_DynaLoaderPL_simplePerl_sv_2pvutf8_flagsPL_minus_lmsgctl@@GLIBC_2.2.5Perl_av_iter_pPerl_gv_HVaddPerl_my_exitPerl_sv_setref_pvPerl_PerlIO_setlinebufPerlIORaw_pushedPerl_atfork_lockPL_op_private_labelsPerl_csighandler3Perl_sv_2ivPerl_isinfnanPerl_infix_plugin_standardPL_collation_ixPerl_sv_rvweakendlerror@@GLIBC_2.2.5Perl_newANONHASHPerlIO_stdstreamsPerl_gv_efullname4Perl_magic_dumpPerl_sys_initPerl_pregfree2PL_custom_op_namesPerl_setdefoutstdin@@GLIBC_2.2.5PL_markstack_ptrPL_no_wrongrefXS_constant__make_constPL_minus_cPL_taintedPerl_newMYSUBPerl_scan_strPL_nanfgetc@@GLIBC_2.2.5Perl_do_hv_dumpPerl_gv_stashsvPerl_newXS_flagsPerl_refcounted_he_new_pvfdopen@@GLIBC_2.2.5perl_constructPerlIO_findFILEPerl_vnumifyPerl_sv_vsetpvfPL_sighandler1pPL_no_securitytowupper@@GLIBC_2.2.5Perl_yylexPL_mbrlen_psstrrchr@@GLIBC_2.2.5PL_markstackPerl_av_extendPL_curinterpsyscall@@GLIBC_2.2.5Perl_PerlIO_closePL_peeppPerl_sv_pos_b2uPerl__inverse_foldsPL_foldPL_comppad_name_fillPerlIO_clonePerl_sv_cmp_locale_flagsPerl_sv_setrv_incPerl_utf8_to_uvchr_bufPerlIOStdio_readPL_no_dir_funcPL_eval_begin_nest_depthPL_stderrgvPL_op_seqPerl_sv_2pvbytePerl_save_mortalizesvPerl_newWHENOPPerl_is_lvalue_subendprotoent@@GLIBC_2.2.5pipe@@GLIBC_2.2.5Perl_pop_scopesleep@@GLIBC_2.2.5PL_debugPerlIO_poptelldir@@GLIBC_2.2.5PL_no_funcPL_comppad_name_floorPerl_newUNOPsetpriority@@GLIBC_2.2.5PerlIOBuf_unreadPL_opfreehookdlclose@@GLIBC_2.2.5Perl_newSVrvPerl_rcpv_freePerl_cvstash_setregexp_core_intflags_namesPL_regnode_namePerlIOUnix_writePerl_mro_registerPerl_sv_mortalcopy_flagsPL_scopestack_maxPerl_save_freesvPL_custom_opsPerl_sv_upgradePL_beginavPL_errgvPL_sv_countPL_utf8_charname_continuePL_curstackinfofutimes@@GLIBC_2.3Perl_more_bodiesPerl__byte_dump_stringXS_re_regnameXS_DynaLoader_dl_find_symbolPerl__add_range_to_invlistPL_sighandler3pPerl_sv_isa_svPL_curstackPerlIOBuf_get_ptrPerl_find_rundefsvPerl_set_numeric_underlyingPerlIOStdio_errorPerl_save_vptrPerl_get_re_argPerlIO_binmodePerlIO_unixPL_strategy_dup2Perl_hv_store_entPerl_cast_i32Perl_wrap_op_checkergetegid@@GLIBC_2.2.5PerlIOBase_pushedflock@@GLIBC_2.2.5PL_extended_cp_formatPerl_save_padsv_and_mortalizePerl_warnerPerl_gv_const_svPL_SCX_invlistXS_DynaLoader_dl_errorPerl_doing_taintkill@@GLIBC_2.2.5Perl_gv_SVaddPerl_call_svstrerror@@GLIBC_2.2.5Perl_lex_discard_toPerl_hv_undef_flagsstrstr@@GLIBC_2.2.5PL_endavPerl_sv_setsv_flagsPerl_refcounted_he_fetch_svPerl_sv_setref_nvPerl_filter_readPerl_av_storesigprocmask@@GLIBC_2.2.5Perl_sv_dec_nomgPL_main_rootXS_PerlIO_get_layersPerl_sv_pvn_force_flagsPerl_sv_get_backrefsXS_builtin_func1_voidsigaction@@GLIBC_2.2.5Perl_cvgv_setPL_globalstashPerlIOStdio_modePerlIOCrlf_binmodePerl_set_caret_Xsocketpair@@GLIBC_2.2.5PerlIO_getcPerl_sv_isaPerl_gv_autoload_pvPerlIO_openPerl_sv_setpvnPL_collation_standardPerl_rcpv_newXS_NamedCapture_FIRSTKEYPerl_mro_get_linear_isaPerl_dump_formPerl_save_freepvPerl_sv_setpv_bufsizesetegid@@GLIBC_2.2.5Perl_sv_utf8_upgradePerl_reentrant_retrygetsockopt@@GLIBC_2.2.5Perl_grok_numeric_radixPerl_newLOOPEXPerlIOCrlf_get_cntPerl_is_utf8_string_locmemrchr@@GLIBC_2.2.5Perl__is_utf8_FOOPerl_was_lvalue_subPerl_gv_fetchfilePerlIOStdio_setlinebufPL_chopsetPL_valid_types_PVXPL_stdize_locale_bufsemctl@@GLIBC_2.2.5Perl_pregexecPL_watchokPerl_sv_free2Perl_hv_fetchPL_HasMultiCharFoldPL_EXACTFish_bitmaskPerl_op_prepend_elemftruncate64@@GLIBC_2.2.5readlink@@GLIBC_2.2.5PerlIO_setposPerl_stack_growgetsockname@@GLIBC_2.2.5PerlIOStdio_pushedPerl_block_gimmePL_valid_types_RVdirfd@@GLIBC_2.2.5Perl_sv_mortalcopyPerl_my_failure_exitPL_csighandlerpPL_origfilenamePL_perlio_debug_fdPerl_ptr_table_freePerl_my_strftimePL_maxsysfdPL_strategy_acceptPerlIO_has_basePerl_newPADNAMEouterPerl_gv_IOaddconnect@@GLIBC_2.2.5Perl_gv_fetchfile_flagsPerl_regcurlyPL_profiledataPerl_op_freePerlIOBuf_tellPL_GCB_invlistPL_fold_localePerl_pad_add_name_pvnPL_numeric_underlyingPerlIO_fdupopenPerlIOStdio_closePL_DBgvPL_dbargsPL_valid_types_IVXPL_delaymagic_gidtowlower@@GLIBC_2.2.5PerlIOUnix_filenoPL_no_aelemPerl_custom_op_registerPerl_cast_ivPL_strategy_openPerl_sv_setpvf_mgPerl_newSVpv_sharePerl_vwarnPerl_bytes_from_utf8_locPL_no_symref_svPerl_sv_2uv_flagsXS_builtin_importsetgrent@@GLIBC_2.2.5Perl_apply_builtin_cv_attributessetpwent@@GLIBC_2.2.5endpwent@@GLIBC_2.2.5Perl_newANONLISTfchmod@@GLIBC_2.2.5PL_sig_pendingPerl_op_contextualizePerl_save_I8Perl_switch_to_global_localegetpgid@@GLIBC_2.2.5Perl_sv_newmortalPerlIO_resolve_layersPerl_op_force_listPerl_runops_debugPerl_sv_2pvPerl_regdumpPerl_sv_incPerl_av_fetchPerl_unpackstringPerl_av_fillPerl_sv_2pvbyte_flagsPerl_lex_stuff_pvnPerl_class_wrap_method_bodyPL_sigfpe_savedsetresgid@@GLIBC_2.2.5fcntl64@@GLIBC_2.28PerlIOUnix_refcntPerl_sv_setnvPerl_blockhook_registerPL_exitlistlenPerl_ckwarn_dPerlIOBase_eofPerl_newOPPerl__is_utf8_perl_idstartPerl_mro_get_from_namePL_curcopPerlIOBase_errorPL_warn_nosemiPerl_get_deprecated_property_msgPerl_my_socketpairPerl_localeconvPerl_parse_fullexprPerl_hv_magicPL_infPerl__is_uni_FOOPL_firstgvPerl_sv_set_falsePL_in_utf8_CTYPE_localePerl_xs_boot_epilogPL_AboveLatin1PerlIO_layer_fetchPerl_pad_findmy_pvPerl_sv_eqPL_csighandler1pPL_rsPL_utf8_idcontPerl_newBINOPPerl_my_fflush_allPerl_sv_catsv_flagsPerl_perly_sighandlerPerl_debPerl_form_cp_too_large_msgPerl_op_sibling_splicePerl_cv_set_call_checker_flagsPerl_newDEFEROPPL_destroyhookPerl_savesharedpvnPerl_init_stacksPerl_gv_overridePL_statgvPL_op_private_bitdefsPerl_save_helem_flagssignal@@GLIBC_2.2.5PL_sv_constsstrspn@@GLIBC_2.2.5Perl_newTRYCATCHOPPerl_dump_vindentPerl_newMETHOP_namedPerl_gv_AVaddmemmove@@GLIBC_2.2.5Perl_sv_2nv_flagsPerl_sv_lenstrchr@@GLIBC_2.2.5__lxstat64@@GLIBC_2.2.5waitpid@@GLIBC_2.2.5Perl_hv_placeholders_getPerl_sv_setref_ivPerlIO_apply_layeraPL_regnode_infoPerl_sv_2pvutf8Perl_mg_findextPerl_load_modulePL_subversionPL_statnamePerl_sync_localePerl_newFOROPPL_clockticksocket@@GLIBC_2.2.5fread@@GLIBC_2.2.5rewinddir@@GLIBC_2.2.5Perl_custom_op_get_fieldPerl_sv_setrv_noinc_mgPerl_find_runcvXS_utf8_native_to_unicodePerl_sv_destroyablePL_defgvPerl_my_pclosePerl_pv_displayPerl_save_aelem_flagsPerl_get_db_subperl_destructPL_breakable_sub_gengetenv@@GLIBC_2.2.5Perl_sv_vcatpvf_mgeaccess@@GLIBC_2.4alarm@@GLIBC_2.2.5PL_def_layerlistPerl_call_methodPL_bodytargetPL_mod_latin1_ucPerl_PerlIO_filenomatch_unipropPerl_regexec_flagsPerl_newSTATEOPPL_diehookPerl_op_refcnt_unlockPL_tmps_floor__open64_2@@GLIBC_2.7PL_strict_utf8_dfa_tabPL_unsafeXS_builtin_falsePerlIOBuf_get_cntgetservent@@GLIBC_2.2.5Perl__new_invlist_C_arrayPerl_hv_iterkeysvPerl_utf8n_to_uvuniPerl_safesyscallocPL_EXACT_REQ8_bitmask__errno_location@@GLIBC_2.2.5Perl__warn_problematic_localePerl_parse_subsignaturePerl_reg_numbered_buff_fetchPerl_sv_catpv_mgPerl_newCONSTSUBPerl_gv_fetchmeth_sv_autoloadPerl_sv_set_undefPL_inplacePerl_re_op_compilePL_core_reg_enginePerl_sv_setpvfPerl_op_parentPerl_op_clearaccept4@@GLIBC_2.10Perl_class_prepare_initfield_parsePerl_sv_string_from_errnumPL_warn_nlfirst_sv_flags_namesPerl_PerlIO_errorPL_in_utf8_COLLATE_localePL_utf8_toupperPerl_hv_bucket_ratioPerl_save_pushptrPerl__is_in_locale_categoryPL_fold_latin1PerlIO_bytePerl_ck_warner_dPerl__to_utf8_title_flagsPerl_ptr_table_storePerl_save_set_svflagsPerl_newSVPerl_save_strlenPerlIO_utf8sigaddset@@GLIBC_2.2.5Perl_sv_pvPerl_debprofdumpPL_doswitchesPerl_sv_nolockingPerl_gv_init_svXS_mro_method_changed_inPerl_mg_setPerl_regfree_internalPerlIO_tab_svPL_forkprocessPerl_pad_pushPerl_sv_resetPerl_isSCRIPT_RUNPerlIO_isutf8Perl_hv_rand_setPerl_sv_vcatpvfnPL_custom_op_descsPerl_eval_svPerl_save_itemPerl_debopPerl_sv_2ioPL_body_arenas__stack_chk_fail@@GLIBC_2.4PL_reg_intflags_namePL_initavkillpg@@GLIBC_2.2.5PerlIO_default_layerPerl__force_out_malformed_utf8_messagePerl_messPerl_safesysreallocPerl_do_uniprop_matchPerl_sv_vcatpvfXS_DynaLoader_dl_install_xsubPL_perlio_fd_refcnt_sizePerlIOCrlf_pushedPerl_getcwd_svPerl_try_amagic_unPerlIO_modestrPL_langinfo_bufPerl_utf8_lengthPerlIO_clone_listPerl_hv_fetch_entPerl_sv_setuv_mgPerl_sv_setrv_inc_mgstrcmp@@GLIBC_2.2.5Perl_moreswitchesPerl_ptr_table_splitPerl_newAVREFPerl_get_cvn_flagsPerl_newSVivPerl_save_shared_pvrefPerl_csighandler1Perl_do_magic_dumpPL_padixPerl_lex_read_spacePL_no_usymPerl_mro_get_private_dataPerl_cop_store_labelPerl_save_boolPerl_newSVnvXS_re_regnames_countsetnetent@@GLIBC_2.2.5Perl_set_contextPL_in_utf8_turkic_localePerl_sv_vsetpvf_mgPL_valid_types_NV_setPL_restartjmpenvPerl_hv_common_key_lenPerl_sv_unrefPerl_do_pmop_dumpPL_no_localize_refPL_DBcontrolPL_LB_invlistPerlIO_rewindPerl_re_intuit_stringPL_registered_mrosgetcwd@@GLIBC_2.2.5send@@GLIBC_2.2.5PL_numeric_namePerl_grok_bslash_xgetpwent@@GLIBC_2.2.5getgrgid@@GLIBC_2.2.5PerlIO_teardownPerl_newSV_falsePerl_get_avPerl_hv_itervalPL_statcachePerl_reg_named_buff_allhv_flags_namessetreuid@@GLIBC_2.2.5Perl_langinfoPerl_croak_popstackXS_utf8_unicode_to_nativePerl_hv_fillPerl_lex_startPL_psig_pendlocaleconv@@GLIBC_2.2.5Perl_sv_utf8_downgradePL_srand_overridePerl_my_popen_listPL_dowarnPerl_newMETHOPPerl_PerlIO_get_ptrXS_Internals_hv_clear_placeholdPerl_share_hekPerl_save_freeopPerl_sv_setpvn_freshPerlIOPending_seekXS_utf8_upgradechroot@@GLIBC_2.2.5Perl_grok_number_flagsPerl_pmop_dumpPerl_set_numeric_standardPerl_sv_report_usedPL_collxfrm_basePL_magic_vtablesPL_perldbPL_rpeeppPerl_gv_add_by_typePL_runops_stdgetnetbyaddr@@GLIBC_2.2.5Perl_csighandlerPL_utf8_perl_idcontPL_max_intro_pendingPerlIOCrlf_set_ptrcntPL_op_maskPerl_newFORMPerl_block_startPerl_sv_cmp_localePerl_get_cvPerl_class_prepare_method_parsePL_op_private_bitfieldsPerl_delimcpy_no_escapePL_sublinePerlIO_tmpfile_flagsPerl_gv_fetchmethod_pv_flagsPerl_mg_findPL_op_descPerl_foldEQ_utf8_flagsPL_hexdigitgetprotobynumber@@GLIBC_2.2.5Perl_pad_allocPL_latin1_lcgetuid@@GLIBC_2.2.5PerlIO_list_freePerl_my_clearenvPerl_gv_fetchmeth_pvPL_sig_namePerl_sv_del_backrefXS_UNIVERSAL_canPerl_newAVhvPerl_mortal_svfunc_xPL_magic_vtable_namesPerl_apply_attrs_stringPerl_padnamelist_storePL_blockhooksXS_builtin_created_as_stringPL_multideref_pcPerl_sv_isobjectPerl_gv_efullname3Perl_newAVPL_sub_generationPerl_utf8_to_utf16_basePerl_uvuni_to_utf8Perl_newSVhek_mortalPL_laststypePL_comppadendgrent@@GLIBC_2.2.5memmem@@GLIBC_2.2.5endhostent@@GLIBC_2.2.5Perl_save_re_contextPL_top_envPerl_refPerl_Slab_FreePerl_my_lstat_flagsPerl_my_strtodPerl_gv_fetchmethod_sv_flags__ctype_tolower_loc@@GLIBC_2.3PerlIOBase_noop_okgetservbyport@@GLIBC_2.2.5PL_wcrtomb_psPerl_sv_newrefPerl_init_i18nl10nmemcmp@@GLIBC_2.2.5Perl_PerlIO_unreadPerl_newNULLLISTcalloc@@GLIBC_2.2.5PL_curstnamePL_no_modifyPL_utf8_markPL_uudmapPL_defoutgvPerl_sv_growPerl_mro_meta_initPerlIO_tmpfilePerl_sv_2pvbyte_nolenPerl_upg_versionPerl_save_aptrshmget@@GLIBC_2.2.5feof@@GLIBC_2.2.5PerlIOUtf8_pushedPerl_cv_get_call_checkerop_flags_namesPerl_PerlIO_writePerl_grok_atoUVPL_envgvPerl_newPVOPPerlIOPending_pushedPerl_whichsig_pvPL_Private_UsePerl_PerlIO_stdinPL_e_scriptPerl_report_uninitPerl_dump_evalfclose@@GLIBC_2.2.5Perl_save_gpdlopen@@GLIBC_2.2.5PL_SvPerl_sv_derived_from_pvPerlIOPending_fillPerl_sv_len_utf8_nomgrecvfrom@@GLIBC_2.2.5PL_reg_curpmPerl_suspend_compcvPL_extended_utf8_dfa_tabPL_restartopPerl_reentrant_initPerl_sv_getsPerlIO_releaseFILEPerl_do_aexecPL_hv_fetch_ent_mhPerl_av_popPerlIOBase_closePerl_parse_termexprPerl_class_apply_attributesPerl_grok_octsemop@@GLIBC_2.2.5PL_origargcPL_valid_types_NVXPerl_sv_derived_from_pvn__xstat64@@GLIBC_2.2.5PL_no_sock_funcXS_UNIVERSAL_DOESPL_globhookPerl_sv_magicextXS_re_regexp_patternPerlIOCrlf_unreadPerl_refcounted_he_freePL_DBcvPerl_safesysmallocPerl_newSLICEOPPerl_newCVREFPerl_amagic_deref_callPerl_gv_handlerPerl_sv_copypvPerl_hv_delete_entPL_cv_has_evallseek64@@GLIBC_2.2.5perlsio_binmodePerl_hv_placeholders_setPerl_sv_copypv_flagsPerl_dump_subendservent@@GLIBC_2.2.5PerlIO_getnamePL_hook__require__beforePL_no_memdlsym@@GLIBC_2.2.5Perl__invlist_intersection_maybe_complement_2ndPerlIOUnix_refcnt_incPerl_reg_qr_packageXS_utf8_is_utf8PL_strxfrm_NUL_replacementPerl_seedPerl_savestack_grow_cntPerl_newSVpvPL_scopestack_ixPerl_amagic_callPerl_whichsig_svPerl_lex_grow_linestrPerl_pad_findmy_pvnPL_lastgotoprobePerl_class_setup_stashPerl_cv_get_call_checker_flagsPerl_op_append_elemsetlinebuf@@GLIBC_2.2.5gethostent@@GLIBC_2.2.5PL_unlockhookPerl_sv_catpvn_mgunsetenv@@GLIBC_2.2.5PL_runops_dbgPerl_parse_stmtseqPL_hash_state_wmsgget@@GLIBC_2.2.5XS_utf8_validPL_no_symrefPerl__utf8n_to_uvchr_msgs_helperPerl_save_pptrPerlIOBase_dupPerl_localtime64_rPerl_reg_numbered_buff_storeclosedir@@GLIBC_2.2.5Perl_savestack_growPerl_mg_sizePerl_sv_utf8_upgrade_flags_growXS_NamedCapture_flagsPerl_gp_refPerl_PerlIO_set_ptrcnt__sprintf_chk@@GLIBC_2.3.4PerlIOBuf_poppedPerl_setlocalePerl_sv_pos_b2u_flagsPerlIOUnix_seekstderr@@GLIBC_2.2.5Perl_av_pushPerl_sv_cat_decodePerl_sv_usepvn_flagsPerl_sv_2iv_flagsPerl_mortal_destructor_svstrcspn@@GLIBC_2.2.5PL_perlio_fd_refcntPerl_amagic_appINSAMARITAN_invlistUNI_INSAURASHTRA_invlistUNI_INSC__AVAGRAHA_invlistUNI_INSC__BINDU_invlistUNI_INSC__BRAHMIJOININGNUMBER_invlistUNI_INSC__CANTILLATIONMARK_invlistUNI_INSC__CONSONANT_invlistUNI_INSC__CONSONANTDEAD_invlistUNI_INSC__CONSONANTFINAL_invlistUNI_INSC__CONSONANTHEADLETTER_invlistUNI_INSC__CONSONANTINITIALPOSTFIXED_invlistUNI_INSC__CONSONANTKILLER_invlistUNI_INSC__CONSONANTMEDIAL_invlistUNI_INSC__CONSONANTPLACEHOLDER_invlistUNI_INSC__CONSONANTPRECEDINGREPHA_invlistUNI_INSC__CONSONANTPREFIXED_invlistUNI_INSC__CONSONANTSUBJOINED_invlistUNI_INSC__CONSONANTSUCCEEDINGREPHA_invlistUNI_INSC__CONSONANTWITHSTACKER_invlistUNI_INSC__GEMINATIONMARK_invlistUNI_INSC__INVISIBLESTACKER_invlistUNI_INSC__MODIFYINGLETTER_invlistUNI_INSC__NONJOINER_invlistUNI_INSC__NUKTA_invlistUNI_INSC__NUMBER_invlistUNI_INSC__NUMBERJOINER_invlistUNI_INSC__OTHER_invlistUNI_INSC__PUREKILLER_invlistUNI_INSC__REGISTERSHIFTER_invlistUNI_INSC__SYLLABLEMODIFIER_invlistUNI_INSC__TONELETTER_invlistUNI_INSC__TONEMARK_invlistUNI_INSC__VIRAMA_invlistUNI_INSC__VISARGA_invlistUNI_INSC__VOWEL_invlistUNI_INSC__VOWELDEPENDENT_invlistUNI_INSC__VOWELINDEPENDENT_invlistUNI_INSIDDHAM_invlistUNI_INSINHALA_invlistUNI_INSOGDIAN_invlistUNI_INSORASOMPENG_invlistUNI_INSOYOMBO_invlistUNI_INSUNDANESE_invlistUNI_INSYLOTINAGRI_invlistUNI_INSYRIAC_invlistUNI_INTAGALOG_invlistUNI_INTAGBANWA_invlistUNI_INTAILE_invlistUNI_INTAITHAM_invlistUNI_INTAIVIET_invlistUNI_INTAKRI_invlistUNI_INTAMIL_invlistUNI_INTANGSA_invlistUNI_INTANGUT_invlistUNI_INTELUGU_invlistUNI_INTHAANA_invlistUNI_INTHAI_invlistUNI_INTIBETAN_invlistUNI_INTIFINAGH_invlistUNI_INTIRHUTA_invlistUNI_INTOTO_invlistUNI_INUGARITIC_invlistUNI_INVAI_invlistUNI_INVITHKUQI_invlistUNI_INVS_invlistUNI_INWANCHO_invlistUNI_INWARANGCITI_invlistUNI_INYEZIDI_invlistUNI_INZANABAZARSQUARE_invlistUNI_IN__10_invlistUNI_IN__11_invlistUNI_IN__12_invlistUNI_IN__12_DOT_1_invlistUNI_IN__13_invlistUNI_IN__14_invlistUNI_IN__15_invlistUNI_IN__1_DOT_1_invlistUNI_IN__2_invlistUNI_IN__2_DOT_1_invlistUNI_IN__3_invlistUNI_IN__3_DOT_1_invlistUNI_IN__3_DOT_2_invlistUNI_IN__4_invlistUNI_IN__4_DOT_1_invlistUNI_IN__5_invlistUNI_IN__5_DOT_1_invlistUNI_IN__5_DOT_2_invlistUNI_IN__6_invlistUNI_IN__6_DOT_1_invlistUNI_IN__6_DOT_2_invlistUNI_IN__6_DOT_3_invlistUNI_IN__7_invlistUNI_IN__8_invlistUNI_IN__9_invlistUNI_IN__NA_invlistUNI_IPAEXT_invlistUNI_ITAL_invlistUNI_JAMO_invlistUNI_JAMOEXTA_invlistUNI_JAMOEXTB_invlistUNI_JAVA_invlistUNI_JG__AFRICANFEH_invlistUNI_JG__AFRICANNOON_invlistUNI_JG__AFRICANQAF_invlistUNI_JG__AIN_invlistUNI_JG__ALAPH_invlistUNI_JG__ALEF_invlistUNI_JG__BEH_invlistUNI_JG__BETH_invlistUNI_JG__BURUSHASKIYEHBARREE_invlistUNI_JG__DAL_invlistUNI_JG__DALATHRISH_invlistUNI_JG__E_invlistUNI_JG__FARSIYEH_invlistUNI_JG__FE_invlistUNI_JG__FEH_invlistUNI_JG__FINALSEMKATH_invlistUNI_JG__GAF_invlistUNI_JG__GAMAL_invlistUNI_JG__HAH_invlistUNI_JG__HAMZAONHEHGOAL_invlistUNI_JG__HANIFIROHINGYAKINNAYA_invlistUNI_JG__HANIFIROHINGYAPA_invlistUNI_JG__HE_invlistUNI_JG__HEH_invlistUNI_JG__HEHGOAL_invlistUNI_JG__HETH_invlistUNI_JG__KAF_invlistUNI_JG__KAPH_invlistUNI_JG__KHAPH_invlistUNI_JG__KNOTTEDHEH_invlistUNI_JG__LAM_invlistUNI_JG__LAMADH_invlistUNI_JG__MALAYALAMBHA_invlistUNI_JG__MALAYALAMJA_invlistUNI_JG__MALAYALAMLLA_invlistUNI_JG__MALAYALAMLLLA_invlistUNI_JG__MALAYALAMNGA_invlistUNI_JG__MALAYALAMNNA_invlistUNI_JG__MALAYALAMNNNA_invlistUNI_JG__MALAYALAMNYA_invlistUNI_JG__MALAYALAMRA_invlistUNI_JG__MALAYALAMSSA_invlistUNI_JG__MALAYALAMTTA_invlistUNI_JG__MANICHAEANALEPH_invlistUNI_JG__MANICHAEANAYIN_invlistUNI_JG__MANICHAEANBETH_invlistUNI_JG__MANICHAEANDALETH_invlistUNI_JG__MANICHAEANDHAMEDH_invlistUNI_JG__MANICHAEANFIVE_invlistUNI_JG__MANICHAEANGIMEL_invlistUNI_JG__MANICHAEANHETH_invlistUNI_JG__MANICHAEANHUNDRED_invlistUNI_JG__MANICHAEANKAPH_invlistUNI_JG__MANICHAEANLAMEDH_invlistUNI_JG__MANICHAEANMEM_invlistUNI_JG__MANICHAEANNUN_invlistUNI_JG__MANICHAEANONE_invlistUNI_JG__MANICHAEANPE_invlistUNI_JG__MANICHAEANQOPH_invlistUNI_JG__MANICHAEANRESH_invlistUNI_JG__MANICHAEANSADHE_invlistUNI_JG__MANICHAEANSAMEKH_invlistUNI_JG__MANICHAEANTAW_invlistUNI_JG__MANICHAEANTEN_invlistUNI_JG__MANICHAEANTETH_invlistUNI_JG__MANICHAEANTHAMEDH_invlistUNI_JG__MANICHAEANTWENTY_invlistUNI_JG__MANICHAEANWAW_invlistUNI_JG__MANICHAEANYODH_invlistUNI_JG__MANICHAEANZAYIN_invlistUNI_JG__MEEM_invlistUNI_JG__MIM_invlistUNI_JG__NOJOININGGROUP_invlistUNI_JG__NOON_invlistUNI_JG__NUN_invlistUNI_JG__NYA_invlistUNI_JG__PE_invlistUNI_JG__QAF_invlistUNI_JG__QAPH_invlistUNI_JG__REH_invlistUNI_JG__REVERSEDPE_invlistUNI_JG__ROHINGYAYEH_invlistUNI_JG__SAD_invlistUNI_JG__SADHE_invlistUNI_JG__SEEN_invlistUNI_JG__SEMKATH_invlistUNI_JG__SHIN_invlistUNI_JG__STRAIGHTWAW_invlistUNI_JG__SWASHKAF_invlistUNI_JG__SYRIACWAW_invlistUNI_JG__TAH_invlistUNI_JG__TAW_invlistUNI_JG__TEHMARBUTA_invlistUNI_JG__TETH_invlistUNI_JG__THINYEH_invlistUNI_JG__VERTICALTAIL_invlistUNI_JG__WAW_invlistUNI_JG__YEH_invlistUNI_JG__YEHBARREE_invlistUNI_JG__YEHWITHTAIL_invlistUNI_JG__YUDH_invlistUNI_JG__YUDHHE_invlistUNI_JG__ZAIN_invlistUNI_JG__ZHAIN_invlistUNI_JOINC_invlistUNI_JT__C_invlistUNI_JT__D_invlistUNI_JT__L_invlistUNI_JT__R_invlistUNI_JT__T_invlistUNI_JT__U_invlistUNI_KAKTOVIKNUMERALS_invlistUNI_KALI_invlistUNI_KANA_invlistUNI_KANAEXTA_invlistUNI_KANAEXTB_invlistUNI_KANASUP_invlistUNI_KANBUN_invlistUNI_KANGXI_invlistUNI_KATAKANAEXT_invlistUNI_KAWI_invlistUNI_KHAR_invlistUNI_KHMERSYMBOLS_invlistUNI_KHMR_invlistUNI_KHOJ_invlistUNI_KITS_invlistUNI_KNDA_invlistUNI_KTHI_invlistUNI_L_invlistUNI_LANA_invlistUNI_LAO_invlistUNI_LATIN1_invlistUNI_LATINEXTA_invlistUNI_LATINEXTADDITIONAL_invlistUNI_LATINEXTB_invlistUNI_LATINEXTC_invlistUNI_LATINEXTD_invlistUNI_LATINEXTE_invlistUNI_LATINEXTF_invlistUNI_LATINEXTG_invlistUNI_LATN_invlistUNI_LB__AI_invlistUNI_LB__AL_invlistUNI_LB__B2_invlistUNI_LB__BA_invlistUNI_LB__BB_invlistUNI_LB__BK_invlistUNI_LB__CB_invlistUNI_LB__CJ_invlistUNI_LB__CL_invlistUNI_LB__CM_invlistUNI_LB__CP_invlistUNI_LB__CR_invlistUNI_LB__EX_invlistUNI_LB__GL_invlistUNI_LB__H2_invlistUNI_LB__H3_invlistUNI_LB__HL_invlistUNI_LB__HY_invlistUNI_LB__ID_invlistUNI_LB__IN_invlistUNI_LB__IS_invlistUNI_LB__LF_invlistUNI_LB__NL_invlistUNI_LB__NS_invlistUNI_LB__NU_invlistUNI_LB__OP_invlistUNI_LB__PO_invlistUNI_LB__PR_invlistUNI_LB__QU_invlistUNI_LB__SA_invlistUNI_LB__SG_invlistUNI_LB__SP_invlistUNI_LB__SY_invlistUNI_LB__WJ_invlistUNI_LB__XX_invlistUNI_LB__ZW_invlistUNI_LB__ZWJ_invlistUNI_LEPC_invlistUNI_LETTERLIKESYMBOLS_invlistUNI_LIMB_invlistUNI_LINA_invlistUNI_LINB_invlistUNI_LINEARBIDEOGRAMS_invlistUNI_LINEARBSYLLABARY_invlistUNI_LISU_invlistUNI_LISUSUP_invlistUNI_LM_invlistUNI_LO_invlistUNI_LOE_invlistUNI_LOWERCASELETTER_invlistUNI_LOWSURROGATES_invlistUNI_LYCI_invlistUNI_LYDI_invlistUNI_MAHJ_invlistUNI_MAHJONG_invlistUNI_MAKA_invlistUNI_MAND_invlistUNI_MANI_invlistUNI_MARC_invlistUNI_MATH_invlistUNI_MATHALPHANUM_invlistUNI_MATHOPERATORS_invlistUNI_MAYANNUMERALS_invlistUNI_MC_invlistUNI_ME_invlistUNI_MEDF_invlistUNI_MEETEIMAYEKEXT_invlistUNI_MEND_invlistUNI_MERC_invlistUNI_MERO_invlistUNI_MIAO_invlistUNI_MISCARROWS_invlistUNI_MISCMATHSYMBOLSA_invlistUNI_MISCMATHSYMBOLSB_invlistUNI_MISCPICTOGRAPHS_invlistUNI_MISCSYMBOLS_invlistUNI_MISCTECHNICAL_invlistUNI_MLYM_invlistUNI_MN_invlistUNI_MODI_invlistUNI_MODIFIERLETTERS_invlistUNI_MODIFIERTONELETTERS_invlistUNI_MONG_invlistUNI_MONGOLIANSUP_invlistUNI_MRO_invlistUNI_MTEI_invlistUNI_MULT_invlistUNI_MUSIC_invlistUNI_MYANMAREXTA_invlistUNI_MYANMAREXTB_invlistUNI_MYMR_invlistUNI_N_invlistUNI_NAGM_invlistUNI_NAND_invlistUNI_NARB_invlistUNI_NB_invlistUNI_NBAT_invlistUNI_NEWA_invlistUNI_NFCQC__M_invlistUNI_NFCQC__Y_invlistUNI_NFDQC__Y_invlistUNI_NFKCQC__N_invlistUNI_NFKCQC__Y_invlistUNI_NFKDQC__N_invlistUNI_NKO_invlistUNI_NL_invlistUNI_NO_invlistUNI_NSHU_invlistUNI_NT__DI_invlistUNI_NT__NU_invlistUNI_NUMBERFORMS_invlistUNI_NV__0_invlistUNI_NV__1_invlistUNI_NV__10_invlistUNI_NV__100_invlistUNI_NV__1000_invlistUNI_NV__10000_invlistUNI_NV__100000_invlistUNI_NV__1000000_invlistUNI_NV__10000000_invlistUNI_NV__100000000_invlistUNI_NV__10000000000_invlistUNI_NV__1000000000000_invlistUNI_NV__11_invlistUNI_NV__11_SLASH_12_invlistUNI_NV__11_SLASH_2_invlistUNI_NV__12_invlistUNI_NV__13_invlistUNI_NV__13_SLASH_2_invlistUNI_NV__14_invlistUNI_NV__15_invlistUNI_NV__15_SLASH_2_invlistUNI_NV__16_invlistUNI_NV__17_invlistUNI_NV__17_SLASH_2_invlistUNI_NV__18_invlistUNI_NV__19_invlistUNI_NV__1_SLASH_10_invlistUNI_NV__1_SLASH_12_invlistUNI_NV__1_SLASH_16_invlistUNI_NV__1_SLASH_160_invlistUNI_NV__1_SLASH_2_invlistUNI_NV__1_SLASH_20_invlistUNI_NV__1_SLASH_3_invlistUNI_NV__1_SLASH_32_invlistUNI_NV__1_SLASH_320_invlistUNI_NV__1_SLASH_4_invlistUNI_NV__1_SLASH_40_invlistUNI_NV__1_SLASH_5_invlistUNI_NV__1_SLASH_6_invlistUNI_NV__1_SLASH_64_invlistUNI_NV__1_SLASH_7_invlistUNI_NV__1_SLASH_8_invlistUNI_NV__1_SLASH_80_invlistUNI_NV__1_SLASH_9_invlistUNI_NV__2_invlistUNI_NV__20_invlistUNI_NV__200_invlistUNI_NV__2000_invlistUNI_NV__20000_invlistUNI_NV__200000_invlistUNI_NV__20000000_invlistUNI_NV__21_invlistUNI_NV__216000_invlistUNI_NV__22_invlistUNI_NV__23_invlistUNI_NV__24_invlistUNI_NV__25_invlistUNI_NV__26_invlistUNI_NV__27_invlistUNI_NV__28_invlistUNI_NV__29_invlistUNI_NV__2_SLASH_3_invlistUNI_NV__2_SLASH_5_invlistUNI_NV__3_invlistUNI_NV__30_invlistUNI_NV__300_invlistUNI_NV__3000_invlistUNI_NV__30000_invlistUNI_NV__300000_invlistUNI_NV__31_invlistUNI_NV__32_invlistUNI_NV__33_invlistUNI_NV__34_invlistUNI_NV__35_invlistUNI_NV__36_invlistUNI_NV__37_invlistUNI_NV__38_invlistUNI_NV__39_invlistUNI_NV__3_SLASH_16_invlistUNI_NV__3_SLASH_2_invlistUNI_NV__3_SLASH_20_invlistUNI_NV__3_SLASH_4_invlistUNI_NV__3_SLASH_5_invlistUNI_NV__3_SLASH_64_invlistUNI_NV__3_SLASH_8_invlistUNI_NV__3_SLASH_80_invlistUNI_NV__4_invlistUNI_NV__40_invlistUNI_NV__400_invlistUNI_NV__4000_invlistUNI_NV__40000_invlistUNI_NV__400000_invlistUNI_NV__41_invlistUNI_NV__42_invlistUNI_NV__43_invlistUNI_NV__432000_invlistUNI_NV__44_invlistUNI_NV__45_invlistUNI_NV__46_invlistUNI_NV__47_invlistUNI_NV__48_invlistUNI_NV__49_invlistUNI_NV__4_SLASH_5_invlistUNI_NV__5_invlistUNI_NV__50_invlistUNI_NV__500_invlistUNI_NV__5000_invlistUNI_NV__50000_invlistUNI_NV__500000_invlistUNI_NV__5_SLASH_12_invlistUNI_NV__5_SLASH_2_invlistUNI_NV__5_SLASH_6_invlistUNI_NV__5_SLASH_8_invlistUNI_NV__6_invlistUNI_NV__60_invlistUNI_NV__600_invlistUNI_NV__6000_invlistUNI_NV__60000_invlistUNI_NV__600000_invlistUNI_NV__7_invlistUNI_NV__70_invlistUNI_NV__700_invlistUNI_NV__7000_invlistUNI_NV__70000_invlistUNI_NV__700000_invlistUNI_NV__7_SLASH_12_invlistUNI_NV__7_SLASH_2_invlistUNI_NV__7_SLASH_8_invlistUNI_NV__8_invlistUNI_NV__80_invlistUNI_NV__800_invlistUNI_NV__8000_invlistUNI_NV__80000_invlistUNI_NV__800000_invlistUNI_NV__9_invlistUNI_NV__90_invlistUNI_NV__900_invlistUNI_NV__9000_invlistUNI_NV__90000_invlistUNI_NV__900000_invlistUNI_NV__9_SLASH_2_invlistUNI_NV__NAN_invlistUNI_NV___MINUS_1_SLASH_2_invlistUNI_OCR_invlistUNI_OGAM_invlistUNI_OLCK_invlistUNI_ORKH_invlistUNI_ORNAMENTALDINGBATS_invlistUNI_ORYA_invlistUNI_OSGE_invlistUNI_OSMA_invlistUNI_OTTOMANSIYAQNUMBERS_invlistUNI_OUGR_invlistUNI_P_invlistUNI_PALM_invlistUNI_PATSYN_invlistUNI_PAUC_invlistUNI_PC_invlistUNI_PCM_invlistUNI_PD_invlistUNI_PE_invlistUNI_PERM_invlistUNI_PF_invlistUNI_PHAG_invlistUNI_PHAISTOS_invlistUNI_PHLI_invlistUNI_PHLP_invlistUNI_PHNX_invlistUNI_PHONETICEXT_invlistUNI_PHONETICEXTSUP_invlistUNI_PI_invlistUNI_PLAYINGCARDS_invlistUNI_PO_invlistUNI_PRTI_invlistUNI_PS_invlistUNI_PUA_invlistUNI_QAAI_invlistUNI_QMARK_invlistUNI_RADICAL_invlistUNI_RI_invlistUNI_RJNG_invlistUNI_ROHG_invlistUNI_RUMI_invlistUNI_RUNR_invlistUNI_S_invlistUNI_SAMR_invlistUNI_SARB_invlistUNI_SAUR_invlistUNI_SB__AT_invlistUNI_SB__CL_invlistUNI_SB__EX_invlistUNI_SB__FO_invlistUNI_SB__LE_invlistUNI_SB__LO_invlistUNI_SB__NU_invlistUNI_SB__SC_invlistUNI_SB__SE_invlistUNI_SB__SP_invlistUNI_SB__ST_invlistUNI_SB__UP_invlistUNI_SB__XX_invlistUNI_SC_invlistUNI_SC__ADLM_invlistUNI_SC__ARAB_invlistUNI_SC__BENG_invlistUNI_SC__BOPO_invlistUNI_SC__BUGI_invlistUNI_SC__BUHD_invlistUNI_SC__CAKM_invlistUNI_SC__COPT_invlistUNI_SC__CPMN_invlistUNI_SC__CPRT_invlistUNI_SC__CYRL_invlistUNI_SC__DEVA_invlistUNI_SC__DOGR_invlistUNI_SC__DUPL_invlistUNI_SC__GEOR_invlistUNI_SC__GLAG_invlistUNI_SC__GONG_invlistUNI_SC__GONM_invlistUNI_SC__GRAN_invlistUNI_SC__GREK_invlistUNI_SC__GUJR_invlistUNI_SC__GURU_invlistUNI_SC__HAN_invlistUNI_SC__HANG_invlistUNI_SC__HANO_invlistUNI_SC__HIRA_invlistUNI_SC__JAVA_invlistUNI_SC__KALI_invlistUNI_SC__KANA_invlistUNI_SC__KHOJ_invlistUNI_SC__KNDA_invlistUNI_SC__KTHI_invlistUNI_SC__LATN_invlistUNI_SC__LIMB_invlistUNI_SC__LINA_invlistUNI_SC__LINB_invlistUNI_SC__MAHJ_invlistUNI_SC__MAND_invlistUNI_SC__MANI_invlistUNI_SC__MLYM_invlistUNI_SC__MODI_invlistUNI_SC__MONG_invlistUNI_SC__MULT_invlistUNI_SC__MYMR_invlistUNI_SC__NAND_invlistUNI_SC__NKO_invlistUNI_SC__ORYA_invlistUNI_SC__OUGR_invlistUNI_SC__PERM_invlistUNI_SC__PHAG_invlistUNI_SC__PHLP_invlistUNI_SC__QAAI_invlistUNI_SC__ROHG_invlistUNI_SC__SHRD_invlistUNI_SC__SIND_invlistUNI_SC__SINH_invlistUNI_SC__SOGD_invlistUNI_SC__SYLO_invlistUNI_SC__SYRC_invlistUNI_SC__TAGB_invlistUNI_SC__TAKR_invlistUNI_SC__TALE_invlistUNI_SC__TAML_invlistUNI_SC__TELU_invlistUNI_SC__TGLG_invlistUNI_SC__THAA_invlistUNI_SC__TIRH_invlistUNI_SC__YEZI_invlistUNI_SC__YI_invlistUNI_SC__ZYYY_invlistUNI_SD_invlistUNI_SGNW_invlistUNI_SHAW_invlistUNI_SHORTHANDFORMATCONTROLS_invlistUNI_SHRD_invlistUNI_SIDD_invlistUNI_SIND_invlistUNI_SINH_invlistUNI_SINHALAARCHAICNUMBERS_invlistUNI_SK_invlistUNI_SM_invlistUNI_SMALLFORMS_invlistUNI_SMALLKANAEXT_invlistUNI_SO_invlistUNI_SOGD_invlistUNI_SOGO_invlistUNI_SORA_invlistUNI_SOYO_invlistUNI_SPECIALS_invlistUNI_STERM_invlistUNI_SUND_invlistUNI_SUNDANESESUP_invlistUNI_SUPARROWSA_invlistUNI_SUPARROWSB_invlistUNI_SUPARROWSC_invlistUNI_SUPERANDSUB_invlistUNI_SUPMATHOPERATORS_invlistUNI_SUPPUAA_invlistUNI_SUPPUAB_invlistUNI_SUPPUNCTUATION_invlistUNI_SUPSYMBOLSANDPICTOGRAPHS_invlistUNI_SUTTONSIGNWRITING_invlistUNI_SYLO_invlistUNI_SYMBOLSANDPICTOGRAPHSEXTA_invlistUNI_SYMBOLSFORLEGACYCOMPUTING_invlistUNI_SYRC_invlistUNI_SYRIACSUP_invlistUNI_TAGB_invlistUNI_TAGS_invlistUNI_TAIXUANJING_invlistUNI_TAKR_invlistUNI_TALE_invlistUNI_TALU_invlistUNI_TAMILSUP_invlistUNI_TAML_invlistUNI_TANG_invlistUNI_TANGUTCOMPONENTS_invlistUNI_TANGUTSUP_invlistUNI_TAVT_invlistUNI_TELU_invlistUNI_TERM_invlistUNI_TFNG_invlistUNI_TGLG_invlistUNI_THAA_invlistUNI_THAI_invlistUNI_TIBT_invlistUNI_TIRH_invlistUNI_TITLE_invlistUNI_TNSA_invlistUNI_TOTO_invlistUNI_TRANSPORTANDMAP_invlistUNI_UCAS_invlistUNI_UCASEXT_invlistUNI_UCASEXTA_invlistUNI_UGAR_invlistUNI_UIDEO_invlistUNI_UPPERCASELETTER_invlistUNI_VAI_invlistUNI_VEDICEXT_invlistUNI_VERTICALFORMS_invlistUNI_VITH_invlistUNI_VO__R_invlistUNI_VO__TR_invlistUNI_VO__TU_invlistUNI_VO__U_invlistUNI_VS_invlistUNI_VSSUP_invlistUNI_WARA_invlistUNI_WB__DQ_invlistUNI_WB__EB_invlistUNI_WB__EX_invlistUNI_WB__EXTEND_invlistUNI_WB__FO_invlistUNI_WB__KA_invlistUNI_WB__LE_invlistUNI_WB__MB_invlistUNI_WB__ML_invlistUNI_WB__MN_invlistUNI_WB__NL_invlistUNI_WB__NU_invlistUNI_WB__SQ_invlistUNI_WB__WSEGSPACE_invlistUNI_WB__XX_invlistUNI_WCHO_invlistUNI_XIDC_invlistUNI_XIDS_invlistUNI_XPEO_invlistUNI_XSUX_invlistUNI_YEZI_invlistUNI_YI_invlistUNI_YIJING_invlistUNI_YIRADICALS_invlistUNI_YISYLLABLES_invlistUNI_Z_invlistUNI_ZANB_invlistUNI_ZL_invlistUNI_ZNAMENNYMUSIC_invlistUNI_ZP_invlistUNI_ZS_invlistUNI_ZYYY_invlistUNI_ZZZZ_invlistUNI__PERL_NCHAR_invlistUNI__PERL_PATWS_invlistUNI__PERL_PROBLEMATIC_LOCALE_FOLDEDS_START_invlistUNI__PERL_PROBLEMATIC_LOCALE_FOLDS_invlistUNI__PERL_QUOTEMETA_invlistUNI__PERL_SURROGATE_invlistregcomp_study.cS_unwind_scan_framesS_ssc_anything.isra.0S_get_ANYOF_cp_list_for_ssc.isra.0S_ssc_orS_ssc_is_cp_posixl_initS_ssc_andS_rck_elide_nothingPerl_study_chunk.coldregcomp_trie.cPerl_make_trie.coldregexec.cPerl_foldEQPerl_foldEQ_latin1Perl_foldEQ_localeS_foldEQ_latin1_s2_foldedS_reg_check_named_buff_matchedS_find_span_end_maskS_find_next_maskedS_regcppopS_regcppushS_push_slabS_cleanup_regmatch_info_auxS_reg_set_capture_stringS_test_EXACTISH_ST.isra.0.part.0S_to_utf8_substr.isra.0S_reghopmaybe3.part.0S_reghopmaybe3S_reghop4S_reghop3.part.0S_reghop3S_to_byte_substr.isra.0S_isFOO_lc.part.0S_setup_EXACTISH_ST.isra.0S_advance_one_WB_Perl_WB_invmapS_backup_one_SB_Perl_SB_invmapS_backup_one_WBS_isWBWB_tableS_reginclassS_backup_one_GCB_Perl_GCB_invmapS_isGCBGCB_tableS_backup_one_LB_Perl_LB_invmapS_isSBS_isFOO_utf8_lcS_isLBLB_tableS_regrepeatsets_utf8_locale_requiredscript_zerosSCX_AUX_TABLE_ptrsSCX_AUX_TABLE_lengths_Perl_SCX_invmapS_regtryb_utf8_locale_requiredS_regtry.coldS_find_byclassSCX_AUX_TABLE_1SCX_AUX_TABLE_2SCX_AUX_TABLE_3SCX_AUX_TABLE_4SCX_AUX_TABLE_5SCX_AUX_TABLE_6SCX_AUX_TABLE_7SCX_AUX_TABLE_8SCX_AUX_TABLE_9SCX_AUX_TABLE_10SCX_AUX_TABLE_11SCX_AUX_TABLE_12SCX_AUX_TABLE_13SCX_AUX_TABLE_14SCX_AUX_TABLE_15SCX_AUX_TABLE_16SCX_AUX_TABLE_17SCX_AUX_TABLE_18SCX_AUX_TABLE_19SCX_AUX_TABLE_20SCX_AUX_TABLE_21SCX_AUX_TABLE_22SCX_AUX_TABLE_23SCX_AUX_TABLE_24SCX_AUX_TABLE_25SCX_AUX_TABLE_26SCX_AUX_TABLE_27SCX_AUX_TABLE_28SCX_AUX_TABLE_29SCX_AUX_TABLE_30SCX_AUX_TABLE_31SCX_AUX_TABLE_32SCX_AUX_TABLE_33SCX_AUX_TABLE_34SCX_AUX_TABLE_35SCX_AUX_TABLE_36SCX_AUX_TABLE_37SCX_AUX_TABLE_38SCX_AUX_TABLE_39SCX_AUX_TABLE_40SCX_AUX_TABLE_41SCX_AUX_TABLE_42SCX_AUX_TABLE_43SCX_AUX_TABLE_44SCX_AUX_TABLE_45SCX_AUX_TABLE_46SCX_AUX_TABLE_47SCX_AUX_TABLE_48SCX_AUX_TABLE_49SCX_AUX_TABLE_50SCX_AUX_TABLE_51SCX_AUX_TABLE_52SCX_AUX_TABLE_53SCX_AUX_TABLE_54SCX_AUX_TABLE_55SCX_AUX_TABLE_56SCX_AUX_TABLE_57SCX_AUX_TABLE_58SCX_AUX_TABLE_59mro_core.cS_mro_clean_isarevPerl_mro_set_private_data.localaliasdfs_algS_mro_get_linear_isa_dfsS_mro_get_linear_isa_dfs.coldS_mro_gather_and_renameS_mro_gather_and_rename.coldfile.21139class.cS_split_attr_namevalS_class_apply_attributeapply_class_attribute_isaS_class_apply_field_attributeapply_field_attribute_paraminvoke_class_sealPerl_class_seal_stash.coldhv.cS_new_heS_save_hek_flagsS_hv_auxinitS_unshare_hek_or_pvnhek_eq_pvn_flagsS_hsplit.isra.0S_share_hek_flagsS_hv_free_ent_retS_hv_free_entriesS_clear_placeholdersS_hv_notallowedPerl_hv_common.localaliasS_strtab_errorS_refcounted_he_valuePerl_hv_undef_flags.coldsv.cS_F0convertS_find_array_subscriptS_visitS_croak_overflowS_expect_numberS_hextractS_sv_pos_u2b_midwayS_sv_pos_b2u_midwayS_assert_uft8_cache_coherent.part.0do_clean_allS_sv_setnvS_curseS_destroydo_cursefake_hv_with_auxdo_clean_named_objsdo_clean_objsdo_clean_named_io_objsS_sv_unmagicext_flagsS_find_uninit_varint2str_tablePerl_sv_2pv_flags.localaliasS_sprintf_arg_num_valnullstr.23577S_glob_assign_globfake_rvS_sv_uncowS_sv_display.constprop.0S_not_a_numberS_glob_2number.part.0S_utf8_mg_len_cache_updateS_utf8_mg_pos_cache_updateS_sv_pos_u2b_cached.part.0S_sv_2iuv_commonS_find_hash_subscriptS_find_uninit_var.coldpp_ctl.cS_dopoptosub_atS_dopoptogivenforS_check_op_typeS_rxres_freeS_dofindlabelS_docatchS_make_matcherS_destroy_matcher.isra.0S_try_run_unitcheck.isra.0S_try_yyparse.isra.0.constprop.0S_outside_integerS_matcher_matches_svS_check_type_and_openS_pop_eval_context_maybe_croakS_doopen_pm_invoke_defer_blockinvoke_finally_blockS_run_user_filterS_run_user_filter.coldS_doeval_compileS_do_smartmatchPerl_pp_formline.coldS_unwind_loopcontext_namepp_sys.cS_ft_return_falseS_space_join_names_mortalS_try_amagic_ftestS_doformzero_but_trueCSWTCH.1370CSWTCH.1371CSWTCH.1372CSWTCH.1373CSWTCH.1375CSWTCH.1377Perl_pp_fttext.coldmonname.22313dayname.22312peep.cS_scalar_slice_warningS_scalar_slice_warning.coldS_finalize_opS_finalize_op.coldS_warn_implicit_snail_cvsigS_check_for_bool_cxt.constprop.0S_aassign_scan.constprop.0S_maybe_multiderefS_maybe_multiconcatS_maybe_multiconcat.coldS_optimize_opS_optimize_op.coldPerl_rpeep.colddoio.cS_openn_setupS_argvout_dupS_exec_failedS_dir_unchanged.isra.0S_openn_cleanupS_argvout_finalS_argvout_freeargvout_vtblPerl_do_aexec5.coldpp_sort.csortsv_cmp.isra.0sortsv_cmp_locale.isra.0S_sortcv_stackedS_sortcv_xsubS_sortcvsortsv_cmp_locale_desc.isra.0sortsv_cmp_desc.isra.0sortsv_ncmp.isra.0sortsv_ncmp_desc.isra.0sortsv_i_ncmp_desc.isra.0sortsv_i_ncmp.isra.0sortsv_amagic_cmp_locale_desc.isra.0sortsv_amagic_cmp.isra.0sortsv_amagic_ncmp_desc.isra.0sortsv_amagic_i_ncmp_desc.isra.0sortsv_amagic_cmp_locale.isra.0sortsv_amagic_cmp_desc.isra.0sortsv_amagic_ncmp.isra.0sortsv_amagic_i_ncmp.isra.0Perl_pp_sort.coldcrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.8061__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entryperly.cS_clear_yystackyy_type_tabyystosyytranslateyypactyycheckyydefactyyr2yypgotoyyr1yydefgotoyytableregcomp_debug.cregcomp_invlist.cS_initialize_invlist_gutsS_invlist_replace_list_destroys_src.isra.0S__append_range_to_invlistdump.cS_deb_curcvS_deb_padvar.constprop.0S_append_padvar.constprop.0S_append_gv_nameS_sequence_num.part.0S_opdump_linkS_opdump_indentS_gv_display_pv_display_flagssvshorttypenamesS_do_op_dump_barS_do_pmop_dump_barPerl_dump_packsubs_perl.part.0svtypenamesPerl_do_sv_dump.localaliasmagic_namesutil.cS_ckwarn_commonS_with_queued_errorsPerl_wait4pid.part.0S_mess_allocunderscore.21962mg.cS_unwind_handler_stackS_save_magic_flagsS_restore_magicS_mg_free_structunblock_sigmaskrestore_sigmaskS_magic_methcall1S_magic_methpackPerl_csighandler1.localaliasreentr.ckeywords.cCSWTCH.89CSWTCH.91CSWTCH.90builtin.cS_prepare_export_lexicalS_export_lexicalck_builtin_func1builtin_not_recognisedck_builtin_funcNck_builtin_constbuiltinsav.cS_get_aux_mg.part.0S_adjust_indexrun.cpp_hot.cS_pushavS_softref2xv_liteS_opmethod_stash.part.0S_are_we_in_Debug_EXECUTE_rS_do_concata_hash.21527an_array.21526pp.cS_postincdec_commonS_localise_helem_lvalS_find_runcv_nameS_maybe_unwind_defavS_localise_gv_slotS_localise_aelem_lvalS_shift_amountS_scomplementS_reftoS_rv2gvS_do_chompCSWTCH.2131CSWTCH.2132CSWTCH.2133scope.cS_save_scalar_atS_save_pushptri32ptr.constprop.0leave_scope_arg_countsdoop.cutf8.cS_new_msg_hvPerl_uvoffuni_to_utf8_flags.localaliasS__to_utf8_casemalformed_textS_check_locale_boundary_crossinguneesUC_AUX_TABLE_lengthsUppercase_Mapping_invmapUC_AUX_TABLE_ptrsTC_AUX_TABLE_lengthsTitlecase_Mapping_invmapTC_AUX_TABLE_ptrsLC_AUX_TABLE_lengthsLowercase_Mapping_invmapLC_AUX_TABLE_ptrs_Perl_IVCF_invmapIVCF_AUX_TABLE_ptrsIVCF_AUX_TABLE_lengthsSimple_Case_Folding_invmapUC_AUX_TABLE_1UC_AUX_TABLE_2UC_AUX_TABLE_3UC_AUX_TABLE_4UC_AUX_TABLE_5UC_AUX_TABLE_6UC_AUX_TABLE_7UC_AUX_TABLE_8UC_AUX_TABLE_9UC_AUX_TABLE_10UC_AUX_TABLE_11UC_AUX_TABLE_12UC_AUX_TABLE_13UC_AUX_TABLE_14UC_AUX_TABLE_15UC_AUX_TABLE_16UC_AUX_TABLE_17UC_AUX_TABLE_18UC_AUX_TABLE_19UC_AUX_TABLE_20UC_AUX_TABLE_21UC_AUX_TABLE_22UC_AUX_TABLE_23UC_AUX_TABLE_24UC_AUX_TABLE_25UC_AUX_TABLE_26UC_AUX_TABLE_27UC_AUX_TABLE_28UC_AUX_TABLE_29UC_AUX_TABLE_30UC_AUX_TABLE_31UC_AUX_TABLE_32UC_AUX_TABLE_33UC_AUX_TABLE_34UC_AUX_TABLE_35UC_AUX_TABLE_36UC_AUX_TABLE_37UC_AUX_TABLE_38UC_AUX_TABLE_39UC_AUX_TABLE_40UC_AUX_TABLE_41UC_AUX_TABLE_42UC_AUX_TABLE_43UC_AUX_TABLE_44UC_AUX_TABLE_45UC_AUX_TABLE_46UC_AUX_TABLE_47UC_AUX_TABLE_48UC_AUX_TABLE_49UC_AUX_TABLE_50UC_AUX_TABLE_51UC_AUX_TABLE_52UC_AUX_TABLE_53UC_AUX_TABLE_54UC_AUX_TABLE_55UC_AUX_TABLE_56UC_AUX_TABLE_57UC_AUX_TABLE_58UC_AUX_TABLE_59UC_AUX_TABLE_60UC_AUX_TABLE_61UC_AUX_TABLE_62UC_AUX_TABLE_63UC_AUX_TABLE_64UC_AUX_TABLE_65UC_AUX_TABLE_66UC_AUX_TABLE_67UC_AUX_TABLE_68UC_AUX_TABLE_69UC_AUX_TABLE_70UC_AUX_TABLE_71UC_AUX_TABLE_72TC_AUX_TABLE_1TC_AUX_TABLE_2TC_AUX_TABLE_3TC_AUX_TABLE_4TC_AUX_TABLE_5TC_AUX_TABLE_6TC_AUX_TABLE_7TC_AUX_TABLE_8TC_AUX_TABLE_9TC_AUX_TABLE_10TC_AUX_TABLE_11TC_AUX_TABLE_12TC_AUX_TABLE_13TC_AUX_TABLE_14TC_AUX_TABLE_15TC_AUX_TABLE_16TC_AUX_TABLE_17TC_AUX_TABLE_18TC_AUX_TABLE_19TC_AUX_TABLE_20TC_AUX_TABLE_21TC_AUX_TABLE_22TC_AUX_TABLE_23TC_AUX_TABLE_24TC_AUX_TABLE_25TC_AUX_TABLE_26TC_AUX_TABLE_27TC_AUX_TABLE_28TC_AUX_TABLE_29TC_AUX_TABLE_30TC_AUX_TABLE_31TC_AUX_TABLE_32TC_AUX_TABLE_33TC_AUX_TABLE_34TC_AUX_TABLE_35TC_AUX_TABLE_36TC_AUX_TABLE_37TC_AUX_TABLE_38TC_AUX_TABLE_39TC_AUX_TABLE_40TC_AUX_TABLE_41TC_AUX_TABLE_42TC_AUX_TABLE_43TC_AUX_TABLE_44TC_AUX_TABLE_45IVCF_AUX_TABLE_1IVCF_AUX_TABLE_2IVCF_AUX_TABLE_3IVCF_AUX_TABLE_4IVCF_AUX_TABLE_5IVCF_AUX_TABLE_6IVCF_AUX_TABLE_7IVCF_AUX_TABLE_8IVCF_AUX_TABLE_9IVCF_AUX_TABLE_10IVCF_AUX_TABLE_11IVCF_AUX_TABLE_12IVCF_AUX_TABLE_13IVCF_AUX_TABLE_14IVCF_AUX_TABLE_15IVCF_AUX_TABLE_16IVCF_AUX_TABLE_17IVCF_AUX_TABLE_18IVCF_AUX_TABLE_19IVCF_AUX_TABLE_20IVCF_AUX_TABLE_21IVCF_AUX_TABLE_22IVCF_AUX_TABLE_23IVCF_AUX_TABLE_24IVCF_AUX_TABLE_25IVCF_AUX_TABLE_26IVCF_AUX_TABLE_27IVCF_AUX_TABLE_28LC_AUX_TABLE_1CF_AUX_TABLE_29CF_AUX_TABLE_30CF_AUX_TABLE_31CF_AUX_TABLE_32CF_AUX_TABLE_33CF_AUX_TABLE_34CF_AUX_TABLE_35CF_AUX_TABLE_36CF_AUX_TABLE_37CF_AUX_TABLE_38CF_AUX_TABLE_39CF_AUX_TABLE_40CF_AUX_TABLE_41CF_AUX_TABLE_42CF_AUX_TABLE_43CF_AUX_TABLE_44CF_AUX_TABLE_45CF_AUX_TABLE_46CF_AUX_TABLE_47CF_AUX_TABLE_48CF_AUX_TABLE_49CF_AUX_TABLE_50CF_AUX_TABLE_51CF_AUX_TABLE_52CF_AUX_TABLE_53CF_AUX_TABLE_54CF_AUX_TABLE_55CF_AUX_TABLE_56CF_AUX_TABLE_57CF_AUX_TABLE_58CF_AUX_TABLE_59CF_AUX_TABLE_60CF_AUX_TABLE_61CF_AUX_TABLE_62CF_AUX_TABLE_63CF_AUX_TABLE_64CF_AUX_TABLE_65CF_AUX_TABLE_66CF_AUX_TABLE_67CF_AUX_TABLE_68CF_AUX_TABLE_69CF_AUX_TABLE_70CF_AUX_TABLE_71CF_AUX_TABLE_72CF_AUX_TABLE_73taint.cmisc_env.20783deb.cglobals.cperlio.cS_lockcnt_decS_perlio_async_runPerl_PerlIO_flush.localaliasPerlIO_cleantable.localaliasPerlIOBase_dup.localaliasnumeric.cmathoms.clocale.cS_save_to_bufferS_new_collateS_stdize_localecategoriesS_new_LC_ALLS_new_ctypeupdate_functionsS_setlocale_failure_panic_i.constprop.0category_namesS_toggle_locale_i.isra.0S_restore_toggled_locale_i.isra.0S_my_langinfo_iS_get_locale_string_utf8ness_iS_is_locale_utf8S_populate_hash_from_localeconvS_my_localeconv.isra.0C_decimal_pointS_new_numericS_new_ctype.part.0pp_pack.cdoencodesS_group_endS_get_numS_next_symbolS_measure_structpackpropsmarked_upgradeS_sv_exp_growS_my_bytes_to_utf8S_sv_check_infnanutf8_to_byteS_utf8_to_bytesS_unpack_recS_pack_reccaretx.cdquote.ctime64.cdays_in_monthjulian_days_by_monthlength_of_yearsafe_yearsDynaLoader.cmy_cxtSaveError.constprop.0__FRAME_END__Perl_pp_shmwritePerl_is_ssc_worth_itPerl_package_versionPerl_sighandlerPerl_setfd_inhexecPerl_pp_padhvPerl_pp_entertryPerl_ck_existsPerl_pp_nextPerl_pp_emptyavhvPerl_hv_ename_deletePerl_find_scriptPerl_pp_scomplementPerl_pp_entergivenPerl_ck_anoncodePerl_pp_ftrreadPerl_do_seekPerl_my_mkstemp_cloexecPerl_pp_iterPerl_pp_ehostentPerl_pp_leavewritePerl_magic_setarylenPerl_notify_parser_that_changed_to_utf8Perl_magic_set_all_envPerl_do_msgsndPerl_pp_right_shiftPerl_ck_evalPerl_pp_sselectPerl_pp_refgenPerl_dump_all_perlPerl_pp_stringifyPerl_pp_sbit_orPerl_PerlSock_socketpair_cloexecPerl_pp_methodPerl_ck_helemexistsorPerl_ck_concatPerl_check_hash_fields_and_hekifyPerl_croak_no_memPerl_ck_substrPerl_pp_enterloopPerl_hv_pushkvPerl_pp_sassignPerl_cv_clone_intoPerl_pp_undefPerl_yyerror_pvnPerl_pp_dbstatePerl_pp_definedPerl_do_exec3Perl_populate_anyof_bitmap_from_invlistPerl_pp_enterwritePerl_warn_elem_scalar_contextPerl_opslab_force_freePerl_pp_chrPerl_write_to_stderrPerl_pp_padavPerl_hv_kill_backrefsPerl_pp_helemexistsorPerl_pp_indexPerl_invertPerl_allocmyPerl_study_chunkPerl_pp_syscallPerl_mg_localizePerl_boot_core_PerlIOPerl_do_shmioPerl_pp_existsPerl_pp_lastPerl_boot_core_UNIVERSALPerl_pp_selectPerl_force_locale_unlockPerl_magic_sethookallPerl_pp_gnetentPerl_pp_aelemfastPerl_defelem_targetPerl_vivify_refPerl_ck_rfunPerl_pp_andPerl_sv_add_backrefPerl_pp_aslicePerl_magic_clearenvPerl_pp_unpackPerl_pp_xorPerl_free_tied_hv_poolPerl_pp_complementPerl_ck_definedPerl_sv_clean_allPerl_magic_sethintPerl_tied_methodPerl_magic_freecollxfrmPerl_pp_closePerl_no_bareword_filehandlePerl_pp_returnPerl_do_eofPerl_pp_warnPerl_ck_grepPerl_ck_smartmatchPerl_jmaybePerl_sv_free_arenasPerl_pp_sysopenPerl_ck_repeatPerl_magic_clearsigPerl_add_above_Latin1_foldsPerl_make_triePerl_ck_refassignPerl_op_unscopePerl_ck_requirePerl_find_lexical_cvPerl_pp_pushPerl_do_readlinePerl_pmruntimePerl_init_debuggerPerl_magic_setregexpPerl_pp_sprintfPerl_magic_regdatum_get__GNU_EH_FRAME_HDRPerl_gv_stashsvpvn_cached_finiPerl_pp_shostentPerl_pp_i_lePerl_pp_blessedPerl_pp_anonhashPerl_pp_sbit_andPerl_ck_returnPerl_pp_filenoPerl_magic_clearhookPerl_pp_chrootPerl_pp_i_gePerl_newSVavdefelemPerl_pp_lvavrefPerl_mem_collxfrm_Perl_my_strerrorPerl_pp_rewinddirPerl_pp_eqPerl_do_open_rawPerl_pp_i_gtPerl_magic_setsigPerl_init_dbargsPerl_scalarvoidPerl_pp_open_dirPerl_populate_bitmap_from_invlistPerl_ck_trycatchPerl_pp_method_redirPerl_magic_setsubstrPerl_pp_sinPerl_pp_tellPerl_pp_gelemPerl_pp_execPerl_ck_truncPerl_ck_lengthPerl_my_mkostemp_cloexec_GLOBAL_OFFSET_TABLE_Perl_magic_clearpackPerl_pp_listenPerl_pp_binmodePerl_coresub_opPerl_pp_chownPerl_cmpchain_startPerl_pp_multiderefPerl_magic_clear_all_envPerl_pp_poptryPerl_nextargvPerl_magic_setutf8Perl_pp_repeatPerl_rxres_savePerl_find_runcv_wherePerl_pp_isaPerl_pp_seqPerl_do_dump_padPerl_do_transPerl_pp_nextstatePerl_pp_resetPerl_pp_openPerl_ck_matchPerl_start_globPerl_rpeepPerl_sighandler1Perl_pp_grepwhilePerl_pp_sortPerl_pp_deletePerl_pp_catchPerl_pad_add_weakrefPerl_magic_copycallcheckerPerl_pp_substcontPerl_pp_ucfirstPerl_yyerror_pvPerl_pp_ftrownedPerl_applyPerl_magic_getarylenPerl_padlist_storePerl_get_opargsPerl_yyquitPerl_ck_funPerl_oopsAVPerl_setfd_cloexec_or_inhexec_by_sysfdnessPerl_pp_ncomplementPerl_pp_vecPerl_listPerl_pp_readdirPerl_parser_free_nexttoke_opsPerl_get_regclass_aux_dataPerl_unimplemented_opPerl_do_printPerl_ck_eachPerl_pp_scmpPerl_pp_backtickPerl_die_unwindPerl_pp_i_ltPerl_magic_getuvarPerl_ck_entersub_args_corePerl_pp_i_subtractPerl_pp_mapwhilePerl_populate_isaPerl_magic_clearisaPerl_rsignal_restorePerl_magic_setPerl_magic_methcallPerl_pp_regcompPerl_pp_gvPerl_ck_methodPerl_pp_stubPerl_op_varnamePerl_populate_invlist_from_bitmapPerl_pp_multiconcatPerl_pp_timePerl_pp_cryptPerl_magic_setvecPerl_pp_diePerl_pp_av2arylenPerl_pp_substPerl_hfree_next_entryPerl_pp_requirePerl_sighandler3Perl_pp_is_weakPerl_av_extend_gutsPerl_pp_rv2avPerl_pp_printPerl_pp_pushdeferPerl_pp_srandPerl_check_utf8_printPerl_build_infix_pluginPerl_cv_const_sv_or_avPerl_pp_cmpchain_andPerl_gv_setrefPerl_magic_freearylen_pPerl_pp_is_boolPerl_pp_bit_andPerl_pp_renamePerl_construct_ahocorasick_from_triePerl_pp_matchPerl_magic_getsubstrPerl_pp_i_eqPerl_pp_powPerl_pp_enteriterPerl_magic_setnonelemPerl_magic_scalarpackPerl_init_unipropsPerl_pp_lePerl_newSTUBPerl_opslab_free_nopadPerl_pp_dividePerl_pp_enterevalPerl_pp_argdefelemPerl_pp_method_namedPerl_PerlLIO_dup_cloexecPerl_pp_setpgrpPerl_do_kvPerl_pp_avhvswitchPerl_magic_getdebugvarPerl_magic_nextpackPerl_magic_clearhookallPerl_magic_setisaPerl_magic_clearhintPerl_pp_forkPerl_debug_hash_seedPerl_pp_pipe_opPerl_pp_rcatlinePerl_magic_getPerl_pp_syswritePerl_pp_methstartPerl_pp_akeysPerl_pp_refassignPerl_cv_undef_flagsPerl_pp_entersubPerl_magic_setuvarPerl_pp_closedirPerl_magic_getsigPerl_do_semopPerl_create_eval_scopePerl_av_nonelemPerl_candoPerl_pp_bit_orPerl_peepPerl_pp_constPerl_pp_truncatePerl_magic_sethookPerl_pp_left_shiftPerl_pp_method_redir_superPerl_pp_leavetrycatchPerl_pp_ceilPerl_pp_readlinkPerl_boot_core_builtinPerl_pp_ncmpPerl_yyerrorPerl_ck_listiobPerl_pp_flockPerl_magic_setdebugvarPerl_invmap_dumpPerl_pp_shutdownPerl_mag> S ge fq    9& , U 6h!!D!!2!6@!8:L!(]!(k!:x!!!!x;!V!!!" $":-"<" L"p*b"r"`G":""pU"""0:"h#:#6##pWR6# D#ХW#{eg#:r#[#8~:##6#:#@#e=#$ W"$* 4$0H$o][$@6q$$G$ -$ $`!$7%pS"%OK4%:?%0 +R%G:`e%pt%[%%%D%%@6/% 9&0^Z&:/&ȥ:?&;T&pGf&&6&@M:&`z&p.&&W&&P' N:'2'='`VN'Х:\'n'~''0'н A'L'ԥ:'P '`S8'L(]9(p&*#(P4(إ:G(T(#c(0n(`6z(:((:x(:((T&(J)t)h2) H)@X) v)ܙ:)@o)`)P )0mo):)\)E^*(*!(*PV)=*Q*f c*x*pm**`o**= *O*:*0A*@6- +PRm$+Ѐn9+OH+nU+0'j++@+:+0U+6+:+c;+ ,,6#/,:<,(:J,X, *n,0:,,,8:,0,,,@|A-@-@T#-*q3-@:@-X-9Pg-}-P -iZ-` -p%B-@-Ц:--.\:#.p|V6.ئ:@.p1O.kZc.P./4..\.p\-.0.. //o//C/:T/: e/:o/~:y/0o/G://=/:/:/`i0:070z.0A0+M08m06d0PX0:0000P30:0 [K0/ 1 6!131` 7B16O1c1Ct1 1RA1@::(1v111д1: 202 22:@2]2:n2l22@20~:2 2  2Z2$~:2:3313I3 ^3 :i3r3Uq3Ц33`_33`<34(:4+4`  >4R4 bKe4v440:4@6,48:464@:4Fd4U94 4` 5@5P,5@5R5<Hd5tG}5@:`5X]5@&5H:505o,5@25P:5. 6X:6*696M6`Z6n6`:t6Ъ/6P\6u66H:6 r667h:7P&70 37ZF7 T7p:g7/s7p7@ 77#77x:7`67 8$86(480F8:R8Xc8Ex8`f8I8:8pdF8H8@N8899"$9ܚ:39H90B X9C\q9@9@ 999:90699p !:0w7: K: [::v::p:m:::`g:1n:y:+ ,;:;*;pt|I;n];u;;~:;;;G:;P i;:(`;<<6@#<D<PS< uLb<u< <<<0<p<<`o =lP"===AWN=`]= qs=P>D===Л==>=г= >:!>@e5>F>@`Z[>P5o>>~:>Z>>`>:>.~:>>@n?@~: ?;?@&?w 4?`:A?8R?c?y?Z????;6? 6!@@;"@7@ F@`;[@Pu)i@8+y@Ь.@0 @@@h;@^M@@p=A ~rA 1A6@@AQAeAzAAA@:Ap;A6AAЙ:A6AкB@,B` 'Bm5Bn@BXPBdBBRB 9BNBBP~:B@F@B@9CPDC.$C >:C 2 WPC9aCxCWCx;C`Cp1#C0 CC`CnC=D6mDpD C*DCDWD@:uDDGD:D@ODvD<DP:D:DWE EP E@3Ep@E;SEaEtEЕEP uE0*EPE: WE&EF F6F+0FG@FlNF`F;pF`FH:F- vF`6F@F`L:F;F <FF2/QBG;Gp\G8:/G>GPRG;kG;uGG`,YG|Gz$G;G;8GMG_ H`_H:.HrZKHpkC\HujHHB}HH0H7 IHH;H3I I9:p#I ;.I::ILI`IpWnI~IuICIIPIЄIpI ; JwJ,J :( 6J@BIJ0 (WJx:nJ|J y.J@,:0 J`+JJrJJJqJ K( ;K3K:FK1 ZKnK0 ;zK8 ;K`iK`K~:K@ ;KKH ;K/K6LmL L#2LP ;DLRLgLzL ]LGLLBLvL@vL6LX ;Lx?MM :2M` ;H?MPM[_M ;tMM&,Mp9HMnM~:M ;M0EMyM! N6Np+N@NX:RNfNA6nN6JN- NNXNPNNNW0 OO0g*O$?OROPHdOqOO TO ;OOxOP;Ol`O<P PfP`0.Pp?P ;KP ;UP0OlP ;zPp P6 P0z PZP P`YP`6P+ Q@Q7QFQ`4 !S_mark_padname_lvalueS_is_handle_constructorS_search_constPerl_croak_memory_wrapS_assignment_typeS_assignment_type.coldS_forget_pmopS_op_clear_gvS_op_varname_subscriptS_looks_like_boolS_fold_constants_evalconst_sv_xsubS_process_optreewalk_ops_find_labelsconst_av_xsubS_set_hasevalS_scalar_mod_typeS_link_freed_op.isra.0S_perl_hash_siphash_1_3_with_state_64.constprop.0zaphod32_hash_with_state.constprop.0custom_op_register_freewalk_ops_forbidS_op_const_svPerl_cv_ckproto_len_flags.coldcustom_op_register_vtblxop_null.25049S_cant_declareS_no_fh_allowedS_bad_type_pvS_bad_type_gvS_already_defined.isra.0S_scalarkids.part.0Perl_scalarvoid.coldPerl_scalar.coldS_scalarbooleanS_modkids.part.0Perl_op_lvalue_flags.coldS_voidnonfinalS_force_listS_dup_attrlistS_gen_constant_listS_listkids.part.0Perl_ck_entersub_args_list.coldPerl_ck_subr.coldS_fold_constantsS_ref_array_or_hashS_op_sibling_newUNOPPerl_ck_entersub_args_proto.coldS_new_logopPerl_cmpchain_finish.coldS_newONCEOPno_list_state.23241Perl_newFOROP.coldS_newGIVWHENOP.isra.0S_move_proto_attrPerl_ck_trycatch.coldarray_passed_to_statPerl_ck_exec.coldPerl_ck_helemexistsor.coldPerl_ck_grep.coldPerl_ck_tell.coldPerl_ck_refassign.coldPerl_ck_sort.coldPerl_ck_stringify.coldPerl_ck_entersub_args_core.coldS_process_special_blocks.isra.0S_apply_attrs.isra.0S_my_kidperl.cS_init_idsread_e_scriptS_Internals_Vnon_bincompat_options.21197S_my_exit_jumpS_incpush_if_existsS_incpushS_incpush_use_seplocal_patchesS_init_postdump_symbolsPerl_my_exit.coldS_minus_vS_usageusage_msg.21472Perl_my_failure_exit.colduniversal.cS_isa_lookupS_isa_lookup.coldoptimize_out_native_convert_functionXS_version_qvS_sv_derived_from_svpvnXS_version_newXS_universal_versionXS_utf8_native_to_unicode.localaliasS_version_check_keyXS_version_is_qvXS_version_is_alphaXS_version_booleanXS_version_vcmpXS_version_normalXS_version_numifyXS_version_stringifyXS_version_noopfile.21976these_detailsgv.cS_gv_init_svtypeS_maybe_add_coresubS_require_tie_modbodies_by_typefile.21040core_xsubPerl_gv_check.localaliasPerl_cvgv_from_hek.coldS_gv_fetchmeth_internalS_autoloadPL_AMG_namelensPL_AMG_namesPerl_amagic_call.localaliastoke.cS_word_takes_any_delimiterS_inclineS_check_scalar_sliceS_checkcommaS_check_uniyyl_safe_barewordS_parse_identident_too_longyyl_constant_opyyl_strictwarn_barewordS_missingtermS_parse_recdescent_for_opS_postderef.part.0tokentype_for_plugop.isra.0S_force_ident.part.0S_parse_exprS_update_debugger_infoS_newSV_maybe_utf8yyl_fatcommaS_scan_identident_var_zero_multi_digitS_intuit_moreyyl_ampersandS_lopS_scan_heredocS_add_utf16_textfilterS_utf16_textfilteryyl_fake_eof.constprop.0S_utf16_textfilter.coldS_force_wordyyl_hyphenS_intuit_methodS_vcs_conflict_markerS_force_strict_versionS_scan_inputsymbolyyl_subyyl_colonS_apply_builtin_cv_attribute.isra.0yyl_leftcurlyS_pmflagS_scan_patS_no_opyyl_just_a_word.isra.0yyl_dollaryyl_myS_new_constantS_tokeqS_sublex_startS_scan_constbases.23271Bases.23272nvshift.23270maxima.23273S_force_versionS_tokenize_useyyl_word_or_keyword.isra.0yyl_keylookup.constprop.0yyl_tryyyl_rightcurlyS_sublex_donePerl_yylex.localaliaspad.cPerl_cv_name.coldS_cv_cloneS_cv_clone.coldS_pad_alloc_nameS_pad_findlexregcomp.cPerl_regnode_afterS_delete_recursion_entryS_skip_to_be_ignored_textS_nextcharS_alloc_code_blocksS_free_codeblocksS_regex_set_precedenceS_reg_scan_nameS_get_fq_nameS_output_posix_warningsS_set_regex_pvS_change_engine_sizeS_reg2nodeS_reg1nodeS_reg_nodeS_free_codeblocks.part.0S_execute_wildcard.constprop.0S_reginsert.constprop.0S_re_croakS_reg_la_NOTHINGS_reg_la_OPFAILS_get_quantifier_valueS_regtailS_regtail.coldS_pat_upgrade_to_utf8S_concat_patS_concat_pat.coldPerl_populate_anyof_bitmap_from_invlist.part.0S_add_multi_matchS_add_multi_match.coldS_handle_possible_posixS_handle_possible_posix.coldS_handle_named_backrefmph_tablemph_blobUNI_ASCII_invlistUNI_XPOSIXALNUM_invlistUNI_XPOSIXALPHA_invlistUNI_XPOSIXBLANK_invlistUNI_CASED_invlistUNI_XPOSIXCNTRL_invlistUNI_XPOSIXDIGIT_invlistUNI_XPOSIXGRAPH_invlistUNI_XPOSIXLOWER_invlistUNI_XPOSIXPRINT_invlistUNI_XPOSIXPUNCT_invlistUNI_XPOSIXSPACE_invlistUNI_XPOSIXUPPER_invlistUNI_VERTSPACE_invlistUNI_XPOSIXWORD_invlistUNI_XPOSIXXDIGIT_invlistUNI_POSIXALNUM_invlistUNI_POSIXALPHA_invlistUNI_POSIXBLANK_invlistUNI_POSIXCNTRL_invlistUNI_POSIXDIGIT_invlistUNI_POSIXGRAPH_invlistUNI_POSIXLOWER_invlistUNI_POSIXPRINT_invlistUNI_POSIXPUNCT_invlistUNI_POSIXSPACE_invlistUNI_POSIXUPPER_invlistUNI_POSIXWORD_invlistUNI_POSIXXDIGIT_invlist_Perl_GCB_invlist_Perl_SB_invlist_Perl_WB_invlist_Perl_LB_invlist_Perl_SCX_invlistAboveLatin1_invlistUpperLatin1_invlistUNI_ASSIGNED_invlistUNI__PERL_IDSTART_invlistUNI__PERL_IDCONT_invlistUNI__PERL_CHARNAME_BEGIN_invlistUNI__PERL_CHARNAME_CONTINUE_invlistUNI__PERL_ANY_FOLDS_invlistUNI__PERL_FOLDS_TO_MULTI_CHAR_invlistUNI__PERL_IS_IN_MULTI_CHAR_FOLD_invlistUppercase_Mapping_invlistLowercase_Mapping_invlistTitlecase_Mapping_invlistSimple_Case_Folding_invlist_Perl_IVCF_invlistUNI_M_invlist_Perl_CCC_non0_non230_invlistUNI_CO_invlistuni_prop_ptrsUNI_prop_value_ptrsS_parse_uniprop_stringS_handle_user_defined_propertyS_regclassS_regS_grok_bslash_NS_regbranchparens.24949S_reg.coldPerl_re_op_compile.coldS_regpiecePerl_get_regclass_aux_data.coldUNI_age_valuesUNI_ahex_valuesUNI_bc_valuesUNI_blk_valuesUNI_bpt_valuesUNI_ccc_valuesUNI_dt_valuesUNI_ea_valuesUNI_gc_valuesUNI_gcb_valuesUNI_hst_valuesUNI_identifierstatus_valuesUNI_identifiertype_valuesUNI_inpc_valuesUNI_insc_valuesUNI_jg_valuesUNI_jt_valuesUNI_lb_valuesUNI_nfcqc_valuesUNI_nfdqc_valuesUNI_nt_valuesUNI_nv_valuesUNI_sb_valuesUNI_sc_valuesUNI_vo_valuesUNI_wb_valuesUNI_ADLM_invlistUNI_AEGEANNUMBERS_invlistUNI_AGE__10_invlistUNI_AGE__11_invlistUNI_AGE__12_invlistUNI_AGE__12_DOT_1_invlistUNI_AGE__13_invlistUNI_AGE__14_invlistUNI_AGE__15_invlistUNI_AGE__2_invlistUNI_AGE__2_DOT_1_invlistUNI_AGE__3_invlistUNI_AGE__3_DOT_1_invlistUNI_AGE__3_DOT_2_invlistUNI_AGE__4_invlistUNI_AGE__4_DOT_1_invlistUNI_AGE__5_invlistUNI_AGE__5_DOT_1_invlistUNI_AGE__5_DOT_2_invlistUNI_AGE__6_invlistUNI_AGE__6_DOT_1_invlistUNI_AGE__6_DOT_2_invlistUNI_AGE__6_DOT_3_invlistUNI_AGE__7_invlistUNI_AGE__8_invlistUNI_AGE__9_invlistUNI_AGHB_invlistUNI_AHOM_invlistUNI_ALCHEMICAL_invlistUNI_ALL_invlistUNI_ALPHABETICPF_invlistUNI_ANCIENTGREEKMUSIC_invlistUNI_ANCIENTGREEKNUMBERS_invlistUNI_ANCIENTSYMBOLS_invlistUNI_ANY_invlistUNI_ARAB_invlistUNI_ARABICEXTA_invlistUNI_ARABICEXTB_invlistUNI_ARABICEXTC_invlistUNI_ARABICMATH_invlistUNI_ARABICPFA_invlistUNI_ARABICPFB_invlistUNI_ARABICSUP_invlistUNI_ARMI_invlistUNI_ARMN_invlistUNI_ARROWS_invlistUNI_AVST_invlistUNI_BALI_invlistUNI_BAMU_invlistUNI_BAMUMSUP_invlistUNI_BASS_invlistUNI_BATK_invlistUNI_BC__AL_invlistUNI_BC__AN_invlistUNI_BC__B_invlistUNI_BC__BN_invlistUNI_BC__CS_invlistUNI_BC__EN_invlistUNI_BC__ES_invlistUNI_BC__ET_invlistUNI_BC__FSI_invlistUNI_BC__L_invlistUNI_BC__LRE_invlistUNI_BC__LRI_invlistUNI_BC__LRO_invlistUNI_BC__NSM_invlistUNI_BC__ON_invlistUNI_BC__PDF_invlistUNI_BC__PDI_invlistUNI_BC__R_invlistUNI_BC__RLE_invlistUNI_BC__RLI_invlistUNI_BC__RLO_invlistUNI_BC__S_invlistUNI_BC__WS_invlistUNI_BENG_invlistUNI_BHKS_invlistUNI_BIDIC_invlistUNI_BIDIM_invlistUNI_BLOCKELEMENTS_invlistUNI_BOPO_invlistUNI_BOPOMOFOEXT_invlistUNI_BOXDRAWING_invlistUNI_BPT__C_invlistUNI_BPT__N_invlistUNI_BPT__O_invlistUNI_BRAH_invlistUNI_BRAI_invlistUNI_BUGI_invlistUNI_BUHD_invlistUNI_BYZANTINEMUSIC_invlistUNI_C_invlistUNI_CAKM_invlistUNI_CANS_invlistUNI_CARI_invlistUNI_CASEDLETTER_invlistUNI_CCC__0_invlistUNI_CCC__1_invlistUNI_CCC__10_invlistUNI_CCC__103_invlistUNI_CCC__107_invlistUNI_CCC__11_invlistUNI_CCC__118_invlistUNI_CCC__12_invlistUNI_CCC__122_invlistUNI_CCC__129_invlistUNI_CCC__13_invlistUNI_CCC__130_invlistUNI_CCC__132_invlistUNI_CCC__14_invlistUNI_CCC__15_invlistUNI_CCC__16_invlistUNI_CCC__17_invlistUNI_CCC__18_invlistUNI_CCC__19_invlistUNI_CCC__20_invlistUNI_CCC__202_invlistUNI_CCC__21_invlistUNI_CCC__214_invlistUNI_CCC__216_invlistUNI_CCC__22_invlistUNI_CCC__23_invlistUNI_CCC__24_invlistUNI_CCC__25_invlistUNI_CCC__26_invlistUNI_CCC__27_invlistUNI_CCC__28_invlistUNI_CCC__29_invlistUNI_CCC__30_invlistUNI_CCC__31_invlistUNI_CCC__32_invlistUNI_CCC__33_invlistUNI_CCC__34_invlistUNI_CCC__35_invlistUNI_CCC__36_invlistUNI_CCC__6_invlistUNI_CCC__7_invlistUNI_CCC__8_invlistUNI_CCC__84_invlistUNI_CCC__9_invlistUNI_CCC__91_invlistUNI_CCC__A_invlistUNI_CCC__AL_invlistUNI_CCC__AR_invlistUNI_CCC__B_invlistUNI_CCC__BL_invlistUNI_CCC__BR_invlistUNI_CCC__DA_invlistUNI_CCC__DB_invlistUNI_CCC__IS_invlistUNI_CCC__L_invlistUNI_CCC__R_invlistUNI_CE_invlistUNI_CF_invlistUNI_CHAM_invlistUNI_CHER_invlistUNI_CHEROKEESUP_invlistUNI_CHESSSYMBOLS_invlistUNI_CHRS_invlistUNI_CI_invlistUNI_CJK_invlistUNI_CJKCOMPAT_invlistUNI_CJKCOMPATFORMS_invlistUNI_CJKCOMPATIDEOGRAPHS_invlistUNI_CJKCOMPATIDEOGRAPHSSUP_invlistUNI_CJKEXTA_invlistUNI_CJKEXTB_invlistUNI_CJKEXTC_invlistUNI_CJKEXTD_invlistUNI_CJKEXTE_invlistUNI_CJKEXTF_invlistUNI_CJKEXTG_invlistUNI_CJKEXTH_invlistUNI_CJKRADICALSSUP_invlistUNI_CJKSTROKES_invlistUNI_CJKSYMBOLS_invlistUNI_CN_invlistUNI_COMPATJAMO_invlistUNI_COMPEX_invlistUNI_CONTROLPICTURES_invlistUNI_COPT_invlistUNI_COPTICEPACTNUMBERS_invlistUNI_COUNTINGROD_invlistUNI_CPMN_invlistUNI_CPRT_invlistUNI_CUNEIFORMNUMBERS_invlistUNI_CURRENCYSYMBOLS_invlistUNI_CWCF_invlistUNI_CWCM_invlistUNI_CWKCF_invlistUNI_CWL_invlistUNI_CWT_invlistUNI_CWU_invlistUNI_CYPRIOTSYLLABARY_invlistUNI_CYRILLICEXTA_invlistUNI_CYRILLICEXTB_invlistUNI_CYRILLICEXTC_invlistUNI_CYRILLICEXTD_invlistUNI_CYRILLICSUP_invlistUNI_CYRL_invlistUNI_DASH_invlistUNI_DEP_invlistUNI_DEVA_invlistUNI_DEVANAGARIEXT_invlistUNI_DEVANAGARIEXTA_invlistUNI_DI_invlistUNI_DIA_invlistUNI_DIACRITICALS_invlistUNI_DIACRITICALSEXT_invlistUNI_DIACRITICALSFORSYMBOLS_invlistUNI_DIACRITICALSSUP_invlistUNI_DIAK_invlistUNI_DINGBATS_invlistUNI_DOGR_invlistUNI_DOMINO_invlistUNI_DSRT_invlistUNI_DT__CAN_invlistUNI_DT__COM_invlistUNI_DT__ENC_invlistUNI_DT__FIN_invlistUNI_DT__FONT_invlistUNI_DT__FRA_invlistUNI_DT__INIT_invlistUNI_DT__ISO_invlistUNI_DT__MED_invlistUNI_DT__NAR_invlistUNI_DT__NB_invlistUNI_DT__NONCANON_invlistUNI_DT__NONE_invlistUNI_DT__SML_invlistUNI_DT__SQR_invlistUNI_DT__SUB_invlistUNI_DT__SUP_invlistUNI_DT__VERT_invlistUNI_DUPL_invlistUNI_EARLYDYNASTICCUNEIFORM_invlistUNI_EA__A_invlistUNI_EA__F_invlistUNI_EA__H_invlistUNI_EA__N_invlistUNI_EA__NA_invlistUNI_EA__W_invlistUNI_EBASE_invlistUNI_ECOMP_invlistUNI_EGYP_invlistUNI_EGYPTIANHIEROGLYPHFORMATCONTROLS_invlistUNI_ELBA_invlistUNI_ELYM_invlistUNI_EMOD_invlistUNI_EMOJI_invlistUNI_EMOTICONS_invlistUNI_ENCLOSEDALPHANUM_invlistUNI_ENCLOSEDALPHANUMSUP_invlistUNI_ENCLOSEDCJK_invlistUNI_ENCLOSEDIDEOGRAPHICSUP_invlistUNI_EPRES_invlistUNI_ETHI_invlistUNI_ETHIOPICEXT_invlistUNI_ETHIOPICEXTA_invlistUNI_ETHIOPICEXTB_invlistUNI_ETHIOPICSUP_invlistUNI_EXT_invlistUNI_EXTPICT_invlistUNI_GCB__CN_invlistUNI_GCB__EX_invlistUNI_GCB__L_invlistUNI_GCB__PP_invlistUNI_GCB__SM_invlistUNI_GCB__T_invlistUNI_GCB__V_invlistUNI_GCB__XX_invlistUNI_GEOMETRICSHAPES_invlistUNI_GEOMETRICSHAPESEXT_invlistUNI_GEOR_invlistUNI_GEORGIANEXT_invlistUNI_GEORGIANSUP_invlistUNI_GLAG_invlistUNI_GLAGOLITICSUP_invlistUNI_GONG_invlistUNI_GONM_invlistUNI_GOTH_invlistUNI_GRAN_invlistUNI_GRBASE_invlistUNI_GREEKEXT_invlistUNI_GREK_invlistUNI_GREXT_invlistUNI_GUJR_invlistUNI_GURU_invlistUNI_HALFANDFULLFORMS_invlistUNI_HALFMARKS_invlistUNI_HAN_invlistUNI_HANG_invlistUNI_HANO_invlistUNI_HATR_invlistUNI_HEBR_invlistUNI_HIGHPUSURROGATES_invlistUNI_HIGHSURROGATES_invlistUNI_HIRA_invlistUNI_HLUW_invlistUNI_HMNG_invlistUNI_HMNP_invlistUNI_HST__NA_invlistUNI_HUNG_invlistUNI_HYPHEN_invlistUNI_IDC_invlistUNI_IDENTIFIERSTATUS__ALLOWED_invlistUNI_IDENTIFIERSTATUS__RESTRICTED_invlistUNI_IDENTIFIERTYPE__DEFAULTIGNORABLE_invlistUNI_IDENTIFIERTYPE__EXCLUSION_invlistUNI_IDENTIFIERTYPE__INCLUSION_invlistUNI_IDENTIFIERTYPE__LIMITEDUSE_invlistUNI_IDENTIFIERTYPE__NOTCHARACTER_invlistUNI_IDENTIFIERTYPE__NOTNFKC_invlistUNI_IDENTIFIERTYPE__NOTXID_invlistUNI_IDENTIFIERTYPE__OBSOLETE_invlistUNI_IDENTIFIERTYPE__RECOMMENDED_invlistUNI_IDENTIFIERTYPE__TECHNICAL_invlistUNI_IDENTIFIERTYPE__UNCOMMONUSE_invlistUNI_IDEO_invlistUNI_IDEOGRAPHICSYMBOLS_invlistUNI_IDS_invlistUNI_IDSB_invlistUNI_IDST_invlistUNI_INADLAM_invlistUNI_INAHOM_invlistUNI_INANATOLIANHIEROGLYPHS_invlistUNI_INARABIC_invlistUNI_INARMENIAN_invlistUNI_INAVESTAN_invlistUNI_INBALINESE_invlistUNI_INBAMUM_invlistUNI_INBASSAVAH_invlistUNI_INBATAK_invlistUNI_INBENGALI_invlistUNI_INBHAIKSUKI_invlistUNI_INBOPOMOFO_invlistUNI_INBRAHMI_invlistUNI_INBUGINESE_invlistUNI_INBUHID_invlistUNI_INCARIAN_invlistUNI_INCAUCASIANALBANIAN_invlistUNI_INCHAKMA_invlistUNI_INCHAM_invlistUNI_INCHEROKEE_invlistUNI_INCHORASMIAN_invlistUNI_INCOPTIC_invlistUNI_INCUNEIFORM_invlistUNI_INCYPROMINOAN_invlistUNI_INCYRILLIC_invlistUNI_INDEVANAGARI_invlistUNI_INDICNUMBERFORMS_invlistUNI_INDICSIYAQNUMBERS_invlistUNI_INDIVESAKURU_invlistUNI_INDOGRA_invlistUNI_INDUPLOYAN_invlistUNI_INEGYPTIANHIEROGLYPHS_invlistUNI_INELBASAN_invlistUNI_INELYMAIC_invlistUNI_INETHIOPIC_invlistUNI_INGEORGIAN_invlistUNI_INGLAGOLITIC_invlistUNI_INGOTHIC_invlistUNI_INGRANTHA_invlistUNI_INGREEK_invlistUNI_INGUJARATI_invlistUNI_INGUNJALAGONDI_invlistUNI_INGURMUKHI_invlistUNI_INHANGUL_invlistUNI_INHANIFIROHINGYA_invlistUNI_INHANUNOO_invlistUNI_INHATRAN_invlistUNI_INHEBREW_invlistUNI_INHIRAGANA_invlistUNI_INIDC_invlistUNI_INIMPERIALARAMAIC_invlistUNI_ININSCRIPTIONALPAHLAVI_invlistUNI_ININSCRIPTIONALPARTHIAN_invlistUNI_INJAVANESE_invlistUNI_INKAITHI_invlistUNI_INKANNADA_invlistUNI_INKATAKANA_invlistUNI_INKAWI_invlistUNI_INKHAROSHTHI_invlistUNI_INKHITANSMALLSCRIPT_invlistUNI_INKHMER_invlistUNI_INKHOJKI_invlistUNI_INKHUDAWADI_invlistUNI_INLAO_invlistUNI_INLEPCHA_invlistUNI_INLIMBU_invlistUNI_INLINEARA_invlistUNI_INLISU_invlistUNI_INLYCIAN_invlistUNI_INLYDIAN_invlistUNI_INMAHAJANI_invlistUNI_INMAKASAR_invlistUNI_INMALAYALAM_invlistUNI_INMANDAIC_invlistUNI_INMANICHAEAN_invlistUNI_INMARCHEN_invlistUNI_INMASARAMGONDI_invlistUNI_INMEDEFAIDRIN_invlistUNI_INMEETEIMAYEK_invlistUNI_INMENDEKIKAKUI_invlistUNI_INMEROITICCURSIVE_invlistUNI_INMIAO_invlistUNI_INMODI_invlistUNI_INMONGOLIAN_invlistUNI_INMRO_invlistUNI_INMULTANI_invlistUNI_INMYANMAR_invlistUNI_INNABATAEAN_invlistUNI_INNAGMUNDARI_invlistUNI_INNANDINAGARI_invlistUNI_INNEWA_invlistUNI_INNEWTAILUE_invlistUNI_INNKO_invlistUNI_INNUSHU_invlistUNI_INNYIAKENGPUACHUEHMONG_invlistUNI_INOGHAM_invlistUNI_INOLDHUNGARIAN_invlistUNI_INOLDITALIC_invlistUNI_INOLDPERMIC_invlistUNI_INOLDPERSIAN_invlistUNI_INOLDSOGDIAN_invlistUNI_INOLDTURKIC_invlistUNI_INOLDUYGHUR_invlistUNI_INORIYA_invlistUNI_INOSAGE_invlistUNI_INOSMANYA_invlistUNI_INPAHAWHHMONG_invlistUNI_INPAUCINHAU_invlistUNI_INPC__BOTTOM_invlistUNI_INPC__BOTTOMANDLEFT_invlistUNI_INPC__BOTTOMANDRIGHT_invlistUNI_INPC__LEFT_invlistUNI_INPC__LEFTANDRIGHT_invlistUNI_INPC__NA_invlistUNI_INPC__OVERSTRUCK_invlistUNI_INPC__RIGHT_invlistUNI_INPC__TOP_invlistUNI_INPC__TOPANDBOTTOM_invlistUNI_INPC__TOPANDBOTTOMANDLEFT_invlistUNI_INPC__TOPANDBOTTOMANDRIGHT_invlistUNI_INPC__TOPANDLEFT_invlistUNI_INPC__TOPANDLEFTANDRIGHT_invlistUNI_INPC__TOPANDRIGHT_invlistUNI_INPHAGSPA_invlistUNI_INPHOENICIAN_invlistUNI_INPSALTERPAHLAVI_invlistUNI_INPUNCTUATION_invlistUNI_INREJANG_invlistUNI_INRUNIC_invlistUNI_}8H@ 6ZnNPpXa@[yU*@ @0T,`OG8(Lgt_Pqs=Cm5,  n!N g&p m:HA@U ac@rR@ai7@ [a1 `va) @6Z]C}3R@d@kr~^ JK p J%;Oph]r0@_!W[5 _2}*EW;TlaqnPNqupb rv;o!  S)(`_9056K\jyoD 0V(PVJP2; T"]20#@PUM >a^ cLlp,|Q.h;``daJu@ *@EPFYk`<ЙW`r 1=<ps ^`O(з(p5 N@\ipxu7T@@Z}90e:)2  ` '@m5BJYPF>hs@mv5`"@_!!PLG6JoU&ma@2n0^r|@7plGPL"u00Ap] p|jР -u@@JQ&^`r*(0 gPGP !@R@juO 5_JcmV@-ew 8 pPjjWpd0 0~9y-p>jNq^u0G @0 jp <7 #`t2iF# W`f3}Z p 3 ]p\ `<2Y=?O:HVp{ e spA Sp`! :@ 0:=ZJ~:`:`p~`qU~: ]b # :rz0> ! 0 (> S9:8b:k69|`iH6@ PI3:nxD::+`:OP^Bk7 yR,y:0Y2( 9VM 'Z>iu :0%j: 3:9p (7:C0ZQ4_P:kPyz~:8e2p[uX:`:%80\IPW~:ct ~h:pw<-:@1$c1m>p:H *\kГw ^)` .%9 (E UvZl:cTop$~:` MЗ"P   @:,D'Y= 6GК:Sx:^x|:@X :000 :ps 1 @+p:D V evoK`::@{# : 0:+,~:9UF<)Ws0c8:P>p?:6@:qH:\t%P:)X:9MWa`q@nz` pC#@;ZSa0 q0ph5FYl`:?I:: :h:/x?Unc6n{6p:a:. tx: :С!d.V@а OQpHex 6@6` `!jS%@h6P|I&2Y r:h:d p:c:o"<OQm:ypZY:B  ~: <пP<.Fh:Um:wFp x T?:PR:4.`TCO:Q_:jJ:wȞ:О:0Ap[0  U83X]DJVp~:dxPk'DD6؞::pA :O1DR}qd:q`Gm@{90PH6 P ):@55PaWbz :: +:~:(  : %@ 7 C :O@`6l au(:p(P@ Љ/m\%c855FGp c9s_40:Н Ba:` . T2CB 9Qf ~:u w x ?8:F \0@:.`XZ?~S0a0pF_6Y:p =!:f7@l,@H:N`gq@&,tWQP: aZ9š:X~:B)7HJ]t0PX:`:``5 !?h:#=-3`<1DQe{`@h:Z Y:X+؟:9@Ip[]t:U/~::=$,:+:9 H Zg`D3 4pb:`OfP^@^bB: :(O3=CVmp*X:p:5=,9;V dp< yH: |!0 'B :%@pzO@ -]m(:}ylP # :p:@=U|# 0(:D=aWm@ >0:e Y  '&;=L@]>i0~yeW`@]@:8;B K0:>Y:fU*s3@  n0=:P:*p  :"W4ș:A(:T:_p(rP) 00:tr-{& 0D Y`k]p`1:p8:`*56D&:8`9@P6Zq`;S@:96Z !0:+BRa0KrP UH:P >Р H~:(p =P:J_~:sX:8:0X EHD @f7`:Fh:Opcw T%` 0@   6%2!AЭWVp:a@y~%2@tPt:~: p *\v q@4P}DT-euWx:@v!V ,H9:GY:_P?o:}: : F@`:: *!)6N:c }6"u1 VV: u"`a9ADL2\po@~pЯ ! X ВpT 4';P=]ȡ:g H:С:ء:0 ::`! ::'RAiO l]cOQw:P @9P C6:0:;:G :Tp|::@ 3:9]ZQ):9zT:a x:"Q0/p `T"6:<:J@.d~P|iX  = : 6!`Rd `| " ` '7 OL O\ `6f | (:  .  `e pO _M Z @| `6% <7 C %Q l :| t   [; G PU. `& p  0: `@' : 8:K  6Z r @:} P:  > Y (6  z = pO ~B  @&,  h< PI 0?Y H:i 6x  ` $& P:  X:  :  qL ~: !$ 8 6@ `:U pEb Q{ @V  0? 6+ d: h: : 1r(pM;Tf5up:Em`6!x:04` (:,9p4H`XY 9t:ЏU~`:p:@: ::!:;:K^ o`y@ :Ю:Pe#  7m8=JpYSi WFxK::@!X&m`6Sw8`xDFUȢ:dP{0!u 9pmJ Т:*?(yD`0VP:gEu`آ: WW@0*):85IF:\m\p0}}~:Ѝ tX!P0AWlP>.ge0'0qI;EM@>d~:o@6x:`":B:D6  7M[`kPpj 6h~::ؙ:(Q<`eM(~:Y:l`_*|@ J@CЧ Ț:J[W: :#P k9~:Opv_zq :y(:60:< 6BPwyPn:$+7u)B#[6Bk}Pc :&p=<WIf{У`F @  <Њq` P0CPK_8:oP{dpa ؚ:0z&<   $TA;@:E< V6e Э  ` 06 5H:@<P: O,X:;R9N, +al`~:}`:h:Y `2 ;<|@u:7`Gx~:Vi>i$Kz p:`6  :@ J w0 #0g#0g#0g@#Pg#0g`#pg`#h#"h`#`7h#`Mh#0dh#@vh#h@#h#`h#`h@#0h@#0h#0i#0.i #@i@#Si#gi`#`|i#`i#0i#0i`#i#i`#`i#` j#0$j@#0>j#0 Rj`=$0sj@#0j#0j#0j#0j@#0j#@j#@j#@k@#0(k#P9k# Gk#0Xk#kk`#0|k#k@#k#Pk#k#@k#k#Pk`#0k #@l#`!l#@2l@#0Jl#0el #tl#0lz# ly#@lt#l`t#0ls#`lr#lq#Pm`q#0m q#@#mp#4m@p#0Emp#@Vm`a#dm a#@um`#0m`#@m@`#`m@]#mI#mH#pm%#"m") n"0n@"P/n"@Bn@"Un@"hn`"({n"4n@"pn"Pn "n "n"Pn"@o@"0o"@0o"PEo`"0Zo"oo "o"po`"0o"po "o"o "p"p`",p"`Ap"Vp" kp`~"pp`}"p }"0p|"p@|"Pp|"@p{"pz"@qy"'qy"@!|@5!H | !(,|!@ }@!p$} p/W} o/}l/}!0}} #} 2}P ~ C!~` 9~0 C~ W~:m~|~&: ~~C~PC~C~F~@d$-8 cDKPlk @O0I 2@VZM8^4n:~42<@?@4AI H̀A5݀ J3`4!`K5'`M`RT&Wb-`460\#B4F\40i@9|@4<4X4LÁ0: с)l4444 404 @p4P@4$`04p 4 44440@4Pł4Tւ44 4 44+4<4 Mx4^p4o`4P4@48404ă(4Ճ444 4 4*4;4 L4]`4$n@4  44 44Ä4Ԅ448@444,4)4 :4K4\4m4 ~44 44…ͅQKRp: UO &::0D `\j: y5 >d0pz ӆ:  s:#:?<HzYfp{ pR@ !"+~0/҇`CF$G 5+ k6: OT `aw0>W`nВ`YӈApE5!r5*5;0'O`n]нt00S50z ljP݉550Hpc*f9f8OPu~jw.{0Q0NJ:ފpUиJ>  @MW& 4>fM 2f`@_ɋߋ-G    0P3p E: \0F m*}:pv:pɌPZo05 $55%515=5I5 U: i`:`w :8: `͍: P8& Ks_:Ax0 #; -;Z_]7̎P]ڎ^a   :@-A;A>KW ]W v` ]] p ӏe pU    -R,k>Rpiː@{E`7W; 1<p;>;Q;g`:v`9 <`9ȑБ  ` :`:R$`R)3 ;K> ] Mwp @ ĒВ $P&,:YJWpxi@:z@ :ɓ29V^@WRWE1p>5OTPk`~0Pєp-= `545 '5H1;0|TfeP)v@5.@E:@>@`*ѕ>0P pK"y>J5W5 f>kpzNϖ_ ^`   p5)`55P55A>IZ0W{5;p ԗ=5)556I/5H:HZ ,6.o60` :pl6X6Ș :ژB6 :W6l66J :P@.6l26A6P6_6 n6 }66666əx6ٙp6`6 P6 @6 86)069(6I 6Y6i6y66666ɚ6ٚ666 66)696I6Y6i6y66x6p6h6ɛ`6ٛP6 H6@6 8606) 6 96 I6Y6 i6 y666 66ɜ6ٜ66 6 66)p6 9`6 IX6YP6iH6y@68606 .6.6ǝ.6֝.6 -6 -6-6-6!-60-6@-6P-6`-6 p-6 -6 -6x-6p-6`-6 ОX-6P-6H-68-6 (-6  -60-6 @-6 P,6`,6p,6 ,6,6,6,6 ,6П,6,6,6 ,6 x,6 p,60h,6@`,6PX,6`P,6pX6X6X6X6X6ŠX6֠X6xX6pX6 hX6XX6 -HX6 ?@X6Q8X6c0X6u(X6 X6X6X6X6ϡX6W6W6W6 W6)W6;W6MW6_l6r6666؅6 Ǡȅ6 ؠ666 66/6A6S6 ep6 w`6 X6P6H6@6ѡ8606(6 66+6=6O6n6~666؄6Є6΢Ȅ6ޢ66666.6>6N6^6np6 ~h6`6X6P6@6 Σ06 ޣ(66 6 66.6 >6N؃6^Ѓ6nȃ6~6 6666 Τ6 ޤx6p6h6`6X6.P6>F@:(U[en< |> Y`qUɥ uL/@68:G 2S<:pd=:pp A֦p=p6PMx6]`;k ~0@0|@&ǧ@6ѧ(+5+p,P-d .m002<=oJFHQZc06q60668p:1ʨxA9ب2@ n?#^6@pDLUPdqu&p`|PЩm0s Z@j&#`4'dG`g\ PY-P>˪ 7۪ %b@Jups0pu@`xOPcePo7t^cuXQaɫ@3ث`X7 /`2q 5 *A:Hp %p%H\.0 Ĭb/٬0)YP-t!p3-Wu:$hK[l@T@f ŭ/ԭ` %0 9YIT^V@Obrv`V@0e $LˮymޮTk?A$@)<JWfpuv,@Q@ЖOίP2ޯS1) J@@,aS>iN e^rs- f Щ(P" Ȱذp$65#4@Ap~-QPb`ls@q)Д±q ֱp0W   'qH8pE+W!hxe0 P@r@ѲIJ+*v  %`W(`[7`kP`:fo{_ о̳c߳@ Џ$ p%(K70G]{Lieu @0Ў-Jqϴ`@ߴ V#p?0? ``- )70. nLOg1 y  q +`zTLʵ ݵ ; D  P_1<{RP\fpvp pZjŶ@ӶX f*0~P3.sIp*\ ]m6i  P8˷0,۷Rpx\` 4nHpU@c u `0.@-U,Ǹ? ظ}a@yq D*B8 'N! Hfk-}P{ >|ɹPgٹJ `   0=`8I[Pq@ M_kpVcɺBغ w{_0+ ;VFd@Y`P#p`g #Eo û/л@!P @(&38@Fe}X2 lLW }3*)pؼ0N0m/ R O+>W=Q l  / bĽ; ѽP`VM P9cc(y@@T=MYin!pSEȾPܾ ]4 !"@z:0SF+VeH:q s$pf w00p.ſeѿp9߿}@!p^ I#0~v4OOA"SZgx}``0~:00vP&$)6/E0$Vn1B~\ Uc@*И&Y0> `X r/YAS ud`ur60_"d Hp}Pz -pV)=00@   0@@ps@@ VV` 0^`c@@;p@P"-001`4@Z0?@Z ] cpdh@0@L@J@yqwЎИ&p00p`x{@ Pp p`` @!3%'p.P2L3@0GJL O@R@R`V@3WY]]_`c0e0eiijjssssssvvvvv`z`z`z`z`z`z`z`z`z`z`z`z}@@Дpp P p@@@@@@@0ppp````ppp``000``PZYpZZdd@e j@mpPq{P{p| @|}}0~p~@PGCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0302Ph^_ Z    076E7`9`9 `9O:Q:`:~:`:0<[<c/=>=U=g7~?P@@AABCDE pF`H)0I;IRJpL"NIN* RI7  `9@(%)4@ODyR`y)77 У:8  -)?8_&8 qS08 @ :8 >D8N%p0; 2M8c 1x9 &959S9 ]9 g9 q9 {9 )I^gnPFy@@Q  R99(f|2f[:``90J9dppi}9 `PI W#7H\o` XZ =:R`"5@> 8i,i7`I7A0EZ9 rIa i @iK`9X`g yp{  ( @:  H W  g  0  w @n x 0u  " / < `BW e Ps `y    `   j 9 @" - p%  ,  ; p! @< 8 `M K T S \ b] b d q I 0w  y    p x     p a   p % c9( c9(  (- @c9(:  |J 0 (Y ` Gt `G  S 1 Э   7 ` $& >P  9 @  9  !   % 9 M8 `9 m>9 Q 9 hk `< uv < l K  P= D = J B C  E j `H I I |0J q#J \.K {GK f0L ~M `O zP z`R U 9 U W 9 ` >b 7P9 ge x;9 j$ "2( P1`0@"1-!1 @1 2`!18J@1 b0,z0*0p,@0 0d0(1P@40P03081PO@1@f1@}1810@101010`1` 1@1051`K 1Pc 39u 3f2=q3pO264(4(20@1H,s/)/0*0)K@/0o*0@/ q/ 2, 14( @C2x*.@Y4H,'m2(C@3)V$d %4 -P9&c9 ?  ـ e`:    #9 .9 FpJ zQ: q9`9`9`9#9P 99(999 99(/9I9Y9Hi9w99`9h9H9x}9 |9g9(@g9d9 l/pk/04 i/H@e/\`a/p a/0@]/@X/ V/  T/S/@ L/I/`E/7@/J`;/c9/Pv@3/-/&/!/ /0 /@//,@/`?/@P/Pa`/0x@/ /0/0/0@/0/(  /`` /02 /0I /0` /0w` /0 /0/0/@@/`/0/@/@@/@!/06/@G/@X/k/~`/p@/@/@....0.`.0) .0=.0Q`.pe`. x .0.0@..0.0.0 .P..$`.`5.`G.@Y.0s.`.0 .0. .. .P@.0.P.@0`.0Ks.,Y`s.`js.P{r.0 1 f. e.e.0@e.0e.0d.0d.01@d.0Ed.0Zc.0oc.0 c.Pb.0b.0`b.0 b.0a.0a.@ `a.0%  a.09 `.PN `.0b @`.0w _.` _.0 `_.0  _.0 ^.0 ^.0 `^.@! ^.@!].@,!].@@!`].@T! ].@h!\.0|!\.0!`\.0! \.0![.0! Z.!Y.0!Y.0"V."U.0,"M.0?" M.`S"L.g" G.pz"F.@"F.`" F.P"E.`"E.0"@E.0"E.0#B.0#@A.p"#@.`3#@.PD#@@.0\#@.0u#?.0#@$.p#$.0##.0##.0#@#.0##.0$".0-$".0A$@".0U$".0i$!.0}$!.0$@!.0$!.0$ .0$ .0$@ .0%-H,%@-0(%-;%@-0W%-`h%-0%`-0% -@%`-% -0%-0%-' &-P&-4.&a-0&>&`:-@'N&-P'^&-0{&-0&@-0&-0&-0&-0&-'-'`-)' -:' -0T'@ -0o' -0~',P '`,0' ,0',0',0(,(,0((`,P9( ,0L(,0](@,q(,(,(,0(@,`(,P(,(,@(@,),')@,p:) , S) ,h),P|),),p)`,),p)`,p)|,0*,P *,P%*,7*@,I*,\*},n* z,*`y,* y,0*x,0*x,0*`x,0* x,0+n, +@n,0++n,0H+m,0h+m,0+@m,0+h,0+e,`+`e,0+ e,0+d,0,d,0(,`b,08,`],L,\,H`, E,t,D,@,C,,@9,p ,9,@,8,@,$,,#,0-#,0$-",5-",0M-@",0e-!,v-@!,0- ,- ,-,0-,- +6-+0-`+ .+.@+00.+PA.+0^.`+0t.+.`+p. +0.+P.+.+0.+0/@+0/+0"/+p3/ +`D/+pX/@+Pi/+|/`+ 0/w+/ _+/]+@0O+ .0N+T0 I+{0+`,0 + 0`*@0*1*081 *P^1*P1`*`1 *01*P)1*@1@*01 :'019'029'022`9'0G2 9'0^28'0t28'02`8'02 8'027'027'02`7'02 7'036'0$36'0;3`6'0O3 6'0d35'035'03`5'03 5'034'034'03`4'0 4 4'0#43'0:43'0S4`3'0p4 3'042'042'04`2'04 2'041'0 51'0 5`1'075 1'0N50'0g50'0|5`0'05 0'05/'05/'05`/'05 /'06.'0!6.'076`.'0L6 .'0a6-'0x6-'06`-'06 -'06,'06,'07`,'07 ,'017+'0H7+'0[7`+'0t7 +'07*'07*'07`*'07 *'07)'07)'08`)'0&8 )'098('0N8('0c8`('0z8 ('08''08''08`''08 ''08&'09&'0"9`&'0<9 &'0W9%'0u9%'09`%'09 %'09$'09$'09`$'09 $'0 :#'0":#'0<:`#'0O: #'0g:"'0y:"'0:`"'0: "'0:!'0:!'0:`!'0; !'0(; '0A; '0Y;` '0q; '0;'0;'0;`'0; '0;'P ;'0< '`;<' R<'q< ' <'`<& <`& <&<&@=`&0==&Z=&`=&=&0=@&0=&0=&0>&0>@&0,>&0D>&0]>&0x>&>&0>&>& >&?&6?&0\?&0?@&@?@&? &?&`@`&`A@&f@@&0@&`@&`@&@@&0A&0:A &RA &kA&0A@&A&A`&0A&`B&P!B&X"%POX"%0mX "%~X!%`X!%X %0X %0X@ %@X %0X`%Y`$ Y$-Y1@)IY$0cY@$0tY$@Y $PY$0Y$0Y@$PY$PY$PY$Y$0Z@$02Z$0LZ$ [Z$pjZ$0{Z$0Z@$@Z$PZ$0Z@$PZ$0Z$0[$0+[@$0G[$0_[$0y[$[ $[$P[$0[@$0[$p[$0\ $P \$P1\@$B\$0T\$0l\$0\ $`\`$\ $0\`$\ $0\$X\$@\@$@]$]`$ 1]$F]z$\] h$pr] O$]N$]M$] I$]H$@]G$`]=$ ]=$0^7$p^.$)^#$<^ !$PP^$pe^${^ $p^$0^$0^@$P^$0^$@_$*_$0F_$0a_$t_ $_$0_@$_$_`$0_$_ $ `$0$`@$7`$J`.$Pe`@.$0`-$p`-$@`@,$0`,$@`+$a@+$0!a+$@=a*$Wa)$@ra`)$Pa)$`a($0a($0a'$a'$0b`'$0*b $g#Sg #ig<6.6Ⱥ6666;6@6Һ6E6L6T6\6D6K6S6[6c6k6p6v6}666666666ɼ6ȼ6Ѽ6666м6ؼ66666666 666"6+6<6E6P6O6[6h6w6766666666666Ľ6˽6Խ6۽6ҽ6ٽ6Ot56666666 666 6(60686@6G6t5N6U6]6c6i6q6x666 6 6`6 6666ƾ6;6׾666666,676G6T6f6s66666ÿ6п6666666-676F6R6c6o6666666666666`pO@`P P ``O?E    PPPp p*+1 PPpP 76,656=6G6rIP66Y6Ć5b66j65t6S}66666666666 666166L6%566;#6666&616;6L6d6r6666666666,6D6J66d6m6666666666R6+6B6;6N6G6T6e6zt6666666666 66$669616E6X6P6m6e6}6}656666666 66,6<6L6\6l6|666666666 6"6:66626I6a6y66666666lllC5B5lll9l66^U56%56655uR6666766+6X6x646N6B6Z6h6x66 66A5565666{6665u66666666!66)61666jD6Q6Z6j6z66666666#646D6]6x666666666666"6 66 6V6ǫܾ6*6/65646B6Y666o6w666;!b56565666666666666556&5666 666566!6'6,62}551666>6E6L6U6`6k6w65566l666666dWA6666 5666k5666666W 5555 55&5666-5356666666 6695666%6@5-6H5#696T5^5?6E6K6R6Y6a6j6q675x6666u$66666666666)636B6S6_6m6{66666666666666 666&6/6865a5A6Y6k6}6666666666666606<6M6U6d6x6666P5a5r55556666WK6;#66YV6+666 666!6(6.646>6D66N6M66D6!61uU6^6h66lr6x66666B66N665 z6666666666666666666666 6oT6"66.66366866=66B66G6N6L6S6W6[6O6_6c6i6r6{6h6q6z66666666666lllC5B5lll9l66^U56%56655uR66667666666666666 66A5566$6"6+6{66666u;6B6K6T66666!66)6^6h6r6{666U6~6666666666666666666666 6g666&6V6ǫܾ6*6/656R06=6J6W6j6u666;!b56665666666666666656&5666 666566!6'6,62}561666>6E6L666k6w655666666 666 6(60696B6I6P6V6\6c6i6p6w6~66666 5555 55&5666-5356666666 6695666%6@5-6H5#66T5^5?6E6K6R6Y6a6j6q675x6666u$66!66666666 666%6/686A6J6S6[6e6n6w6666666666666865a566666666666"6-656S?6L6Y6g6u6o6|6 5?566P5a5r5555666666$6`5<6t5b566666666e65t566`5 6k6'6666"6&6+60656:6o66?6F6K6 t5P6U6Z6_6c6h6m6t6y6]6666666666666666666666666 6666#6)6/656;6A6G6M65Q6 `T6]6h6s6{666666666SSS T T 1T =TJTYT`fT`yTTTTTTTTT T U U  U -U :U GU TU bU uU UU`U`UUUUUUVSSV)V2V)VXFVIV_VeVxV|VVVVV/VVbKVVXY(YHY hYY YY YZ8Zۙ5̙55P5P$5P65PG5PX5Pi5Pz5P5P5P5P5PԚ5P55|6X6P6P6(6(6#5L69qIqTq^qlq  `9`9o03 r `:pYZ_  oh^oo2PoOO:0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p 0@P`p~:<d /IqqDqqvqqqq``qqqooqoma]qDDp\P`_qDDqqqqqqq``q]q]qTDDD@T@T@T@T@T@T@T@TqqqqqqqqqqqPoqq n n::::::::::::qqqqqqqqq n n n n n n n n nqqq n nq@DDDDDDDDDDDD`[XDSS@TDDDDDDDDDoqqqqqqXXXXXXOPoqqqqDD` rqqDDDDD@k@kDlD@Qq@QqqqqqqqqqqqqpqqqqqDDDDqqqqqqqqqqq@qqqqqDpxqqqqqqqqqqPUDDDDDDDDDDUU^DDqPPPDDDD^pXpX`WDDDDDDDDDDDDDDDDAAAAAAAAAAAAAAAAAAAAAAAAAAAAA`WDDDDDDDDDDDDDDDDDqqDOODqDDDDqqDDDDDDDDDDDDDDD eDvP>qP>qDDqDDqDDqDDqDDDDqqqqDDqqqDDqqqqDTqqqqqDqqqqaqqqq wqqP@qqqqqqqqqqqqqqPqqз*p]@pZ!0$" %$&(@#,0,` 0.1..`0 10 10`2-06677`8 >}B0~PFKP@RpWY ^_p_@`abccccee fPg0m0m@jpp`lpsps`tpxy{`|`PP`ЙЙ0Р..((x//////////////// 00,060@0O0]0m0|00000001141I1c1{11111112'272F2X2O'Z'i2z22222mw2239222223!3-383B3K3R3Y3a3i3o3u33333334(4?444n443F*3334H433333 4 494N4[4f4}44444444gz4555"5.595G5T5]5e5m5t5}555^_555555}t5655t5656 666"63F*.6=666K6Y6hL6f6q6{6~666(a,a! 5$+1<EIϽ6V,M3X6[b8A}t56Н5t56 6639K6666?R4o5DoHo6866hL65Ahw666 66$$6~66666%%66667D7%747E7U7d7#{r7777oo77}t5677  777 886886 818A86D8d568=3F3G8S8^8a8d8yg8j8z8886688*ic5B88mw&&39888889"9/96e;9O9b9e9h9..k9?n9q9t9 w999999H7H6A59b999`59Ho9:9998='L5L85999:: ::60:3:6:9:<:?:[)$$Z5B:L:6)V:`:66j:F*m:t:Qo^o66{:::S=;J;::::fEpE::::g0v0::::::::::::::;9611 ;;m:t:;v!;;&;0;9;G;#\!T;5Z;^;b;f;mm! >>>>!>'>->3>9>?>E>K>Q>W>]>`6OKWc>p>|>>>>>>>>J&$>>>>}t5644>6>?>>22?*5??6634H4K3R3#?&?hw!66#\!_5)?b5.?=?L?Z?e?p????????@51@E@0W@s@@@@@@T[@@@AAA*AEJYbDDDE&E9EGEUEkvtOObEmEwEEEEEEEEF/FLFțgF}FFFFFFFFFFG GGG&G.G8G@GJGRGcGrGGGGGGGGGH*HCHZHqH@h؜ Hp(Pp0PxHHH8`ؠHHII1IJIdI~IIIIII'SGSIIJJ(J4JJJ`JwNNtJJ(PxJJJJJJJ KK'K6KCKRK_KnK{KKKKKKKLL)L=LQLcLpL|LLLLL!LLMM!M5MIM\MrMMMMMMMMNNb8b(N6BW]4N;NBNON\NwhNNNNNNNNNO+O8`AOWOkOxOOOOOOOPP#P2P?PQPcPtPPPPPPPPQQ)QXKXWXtXXXXXXX/6=Gy}XXY YY,Y?YKYUYaYkYwYYYYYYYYYZ%Z6ZEZVZgZvZZZZZZZZZ [[+[:[F[P[\[f[r[|[[[[[[[[\\+\>\Q\b\k\s\\\\\\ %,3<\\\\\Yais]]#]@0]G]^]fft]]]]]]]]]^1?!^`q2^G^S^`ؤ(^^t^^Px^ȥ^^^__)_=_N___o_|___Weoe_____``*`LD[DkDDD>`L`X`f`r``````1;`O[p|`v!```aWIqIIa'a+a /a&/8aAOFa\gQaqcanazaaaa aaa"(bb.bBHbjAbWbmbb|bbbbbbb!bb`X}XX8bc%c4cBcPcw99]cnccc@PccH7Hszccccc cd!d;C_g9dQdidddddddddee~a)e6eOeheeeeeeeeeefff'f2f@fLfhfffffffgg.gBgXgngXgggЦ Hpgghhh"h*h:hIheh~hhhhhh8hi5i OiZidivii!3<iiiELiR[icliiiij~jj(j9jJjZjlj~jjjjjj ! ( - 2 : L U h p   jjjk/kFkKkPkYkaklk  XШ0`Щ  ukkk kkkkkll!l0l  >lAlDlKl  Ql !5!!@5! !*00@/@//s/ q/!@! p/ o/l/!bK@444444p4@404 4444@444444444x4p4`4P4@48404(444444444`4@4 4444444@444444444444o5 o5o5o5*o5 9o5@Fo5No5Yo5eo5po5{o5o5o5o5o5o5@o5 o5o5o5 p5p5!p5 -p5@>p5Mp5Zp5ap5lp5zp5p5 p5@p5p5p5 p5@p5p5p5p5p5 p5@p5p5p5p5p5q5 q5@q5q5q5"q5*q5FEA D(G0g (A ABBD (>^FDA OAB>0>mEAD H AAD NAA8?HtK$PT?@EDD nCAxl?:_ VH?FBB B(A0A8G`3 8D0A(B BBBK HCFBB B(A0A8GPy 8D0A(B BBBE ,(LDFNH f ABK HXDBFBB B(A0A8DP 8A0A(B BBBG $FQEG S CN XD`FfOEB B(A0D8DP\ 8A0A(B BBBA SCP0IDIXI9m8lHIFAA [ ABJ  ABI J@He$K&E\L8K%FEB A(D0N (A BBBI d (C BBBA d,LOEE E(D0A8G@I 8C0A(B BBBA D8F0A(B BBBA8PLFBE D(G0j (D BBBD LFHX H ZLRHe C I G $M0UI(Ei J E>Ei J E(ܢ <آPԢdТx̢ ȢĢHB B(D0IĢ\FBA D(G0c (F ABBF  (A ABBK t (F ABBA 40H,\(p$  !HJC K0(HLD O@(HIK KP"HGI I`-HKN K$p=KYL LD?HZM OdBH]J R:KZK I(FAD  DBD (ԥFAD  ABE ȦĦ$8LȦ`ĦtЦ ̦ȦĦ(4FAD  ABG ԧЧ̧,ȧ@ħTḩ|ȧħd _l hdplh 00diLJJoPA|dFBB B(D0D8DP 8C0A(B BBBA c 8A0A(B BBBC  8J0D(G BBBF TKBB A(D0| (A BBBI Y (D BBBE hD<FDD W ABH  ABE g ABF HBEB B(A0A8GY 8D0A(B BBBF DFII F(E0A8KP8A0A(B BBB,EAI0HBBB B(D0C8GPL|X BLF B(D0 (E BBBE D (E BBBA 0AGMG QABAA D4BBB E(D0F8GPo8D0A(B BBB(HBBG0N EBH |t`=_BE E(D0D8G@ 8A0A(B BBBC i 8A0A(B BBBE H@H BBE B(F0D8GpD 8C0A(B BBBL L@tBIB B(A0A8G0 8D0A(B BBBK ĻoHP A 0;FAD D@_  AABF $mEU A tGEz A dFBB B(A0C8DPl 8D0A(B BBBC  8A0A(B BBBH 4`HFED ] BBH ADFx LtaFBB A(C0 (M BBBJ [ (I BBBF   L4eFEB E(D0A8J 8D0A(B BBBF 4VFAD J(E0E8E@I bDBLW FBB B(A0A8G 8A0A(B BBBH 8 RFDA A(LP (D ABBG H E^ M cLh BBB B(A0A8G 8A0A(B BBBI 2LV N AL FBB B(A0A8Pm 8A0A(B BBBK <(\MEB A(A0$ (D BBBD hH|(FEB B(A0C8D 8F0A(B BBBA D^ F $p|nd<BBE B(A0A8Db 8A0A(B BBBC   8A0A(B BBBI HBBB E(D0H8KK 8D0A(B BBBF dTBBB B(A0A8D` 8A0A(B BBBA e 8A0A(B BBBA X5l(TBDF _ DBG @dBBB A(C0D@ 0C(A BBBI H4mBEE E(D0A8Dp 8A0A(B BBBC L<X<BBE B(A0A8G( 8A0A(B BBBA L9JFBEE F(D0A8GH 8A0A(B BBBA HFBE E(D0D8G 8A0A(B BBBE H(|FBB B(A0A8D` 8A0A(B BBBG 0t@FED Gp  ABBA H7FBB B(A0A8Dp 8A0A(B BBBJ AAMLW BBB B(A0A8G 8A0A(B BBBA L`W BBB B(A0A8G 8A0A(B BBBA HFHB B(A0A8DP 8D0A(B BBBD H]FEB E(A0A8DP 8D0A(B BBBF HH]FBB B(A0D8D@ 8D0A(B BBBK L BBB B(A0A8G, 8A0A(B BBBA L BBB B(A0A8G, 8A0A(B BBBA L40e BBB B(A0A8Gl 8A0A(B BBBA LPU BBB B(A0A8Gd 8A0A(B BBBA L` BBB B(A0A8G 8A0A(B BBBA L$ BEB B(A0A8G 8A0A(B BBBA LtBBB B(A0A8G 8A0A(B BBBA LBBB B(A0A8G 8A0A(B BBBA LBBB B(A0A8G/ 8A0A(B BBBA LdBBB B(A0A8G7 8A0A(B BBBA L .BBB B(A0A8G 8A0A(B BBBA L?BBB B(A0A8G 8A0A(B BBBA LT REBBB B(A0A8G 8A0A(B BBBA L e7BEB B(A0A8G 8A0A(B BBBA L{ FBB B(A0A8G0 8A0A(B BBBA Dp HXlFBB B(A0A8G 8A0A(B BBBE  } 4FBA G I   ABBD @pFFB D(D0F 0D(A BBBG H8FEE E(A0D8DP 8A0A(B BBBJ H`FEE E(H0D8D@ 8A0A(B BBBF \FHE E(A0A8G+NNA 8D0A(B BBBF 0dFEE E(D0A8G 8D0A(B BBBC zBdAVBdA]NB8p3FID A(DPs (A ABBG 0tFAA Gp  AABA $0ZN,<xMAH e ABA lرG E HܲFBB B(A0A8D@ 8A0A(B BBBA H FBB B(A0A8DP 8A0A(B BBBF H dFBB B(A0A8DP 8A0A(B BBBF HlFBB B(A0A8D`9 8A0A(B BBBK (\OFPD0" ABA <;NX<BDFGKk llll!l%lTTbT)l,l]U/l4l8l=l@lDlGlKlOlSlWl[l_lclglkUT)UU6UUCUUPUklnlrlvl{llllllllllllllllTTlllllllllllllllbK{bK{{bK06bK6{bK6bK{{9`9`9`99 99999 99999999`999}9 |9g9@g9d9  (a,a! 5$+1<EIϽ6V,M3X6[bivoo8AQ&k6Н5 6[;'*-0'539?R4o5dq}566\Y6|5 5JOT[bkty~ !+5:?DIR[`elsx} %7>EJOTYbkv'SGSwNN !,16BMRW]chmrw (-2=HMRW\afmty~ !1@EJRZ_dkrw|.E[`ejox %*/6=GQV[`ejoty}LCcC  %,3<EJOTYais} ',1?LQV[`q"a',1;EJO[fkp| &/7<AO\gq "(.38=BHNSX]bjrw| !,16;@P_dinsz "',16;ChhKPUZ_got~ay~ !).3<ELR[clty~      ! ( - 2 : B G L U ^ c h p x }        I             ! !!!!!!&!+!0!5!&J&$M&P&S&V&Y&\&Н5_&i&r&&&&'*&&Kt5-0'5-t56&&& &&&5''' '#'-'?R4o5L*7':'!!i'Z='L5G'}5 IJ'V'5a'd'g'o'Ahw;L,_5w''''}t56''''66''66'(Y6|5 ((#(0(<(H(S(/W(](c(h(m(q((+7+u((((((Z (((L(((((((()) )),)E)[)n)/h5)))$)++..,",)))))o))))))))** *.*;*I*V*e*s***********++-+<+N+_+r+++++++++,,',9,J,Y,g,v,,,,,,,,,, ---->-M-[-j-x--------- ..,.<.A.F.J.N._.+(7(r,,}*f..D(O(n.s.x.|.......--..((......./ //I-W-/!/,/=/--L/U/]/k/. /BBBG 8x:jFDJERAW ABA X:@kFEE E(A0D8Gp 8D0A(B BBBD xVbxAp;mSKBE E(D0C8G` 8A0A(B BBBA  8A0A(B BBBJ  8A0A(B BBBJ F 8A0A(B BBBE hIpOhA`WH`hKpOhA`hBpLhB`24<~@FEG M(H0R(A ABB8L<~FDJERA] ABG L<YFEE G(F0D8G@GHJPU8A0A(B BBB4<?FEG L(H0R(A ABB=K A @,=hUFED O(H0R(A G BBD DBBp=K A =(HED ID=(UFED O(H0R(A G BBD DBB=@AAM<>DBII A(D0V (A EBBG LP>BDG F(L0I(A G(N0M(A T IBE D GBE 4>4zBCD } DBD K AIK >|H] K r F $>NAq F G I A8$?@BAG P LBH Q GBE $`?_Dc I W Q F(?܃^AFD0 AAG (?BAG  DBJ D?BAG0 DBC . DBD  DBH L(@ BDB B(D0D8F 8D0A(B BBBH 4x@lEAD W AAE w AAG (@mFHH x DBD @8+8@TFDA A(D0o (A ABBK 8,AؒFBA A(D0l (A ABBH LhAL}FBD D(D0 (A ABBF O (I ABBK 0A|FAA D0  AABD HAH`FBB B(A0A8D@W 8A0A(B BBBE L8B\SFIB H(A0 (A EBBD k (A BEBK (BlEAD@t AAH @B0FBB A(A0DP 0A(A BBBE 8BFBA A(D0o (A ABBE 4C )LV`PC4bFBB B(A0A8D@ 8A0A(B BBBB h 8A0A(B BBBF \C@mFBA A(D0} (A ABBG S (A ABBG _ (A ABBC @DPFBB A(A0D@ 0A(A BBBH 8XD vFBA A(DP (A ABBB (DPEAD0 AAB HDDFBB B(A0A8DP 8A0A(B BBBF 8 EإFBA A(D0` (A ABBD HHE<=FBB B(A0A8DP 8A0A(B BBBB LE0qFBI H(A0 (A BBBH n (D BBBH @E`FHA p AEK A DBI RAE@(FܫFHA p AEK A DBI RAEHlFXFBB B(A0A8DP) 8A0A(B BBBK HF̱aFBB B(A0A8DP 8A0A(B BBBA HGFBB B(A0A8DP 8A0A(B BBBC HPGd>FBB B(A0A8D`7 8A0A(B BBBE HGXFBB B(A0A8Dp) 8A0A(B BBBK HGFBB B(A0A8DP 8A0A(B BBBE H4H=FBB B(A0A8D@ 8A0A(B BBBK HH-FBB B(A0A8D@ 8A0A(B BBBG @HFDG0 ABB \ FBD \ FBD ,ItFAH \ ABJ ,@I$FAH \ ABJ ,pIFAH \ ABJ ,IFAH ` ABN ,I4FAH ` ABN <JFBB A(H0 (A BBBF H@JmFBB B(A0A8DP 8A0A(B BBBH (JFAH ~ ABP (J<FAH ~ ABP HJ*FBB B(A0A8DP 8A0A(B BBBH H0KFBB B(A0A8DP  8A0A(B BBBD H|K(FBB B(A0A8DP 8A0A(B BBBH <KFBB H(A0S (A BBBC HLFBB B(A0A8D`I 8A0A(B BBBK HTL}FBB B(A0A8DP 8A0A(B BBBC HL4FBB B(A0A8D@s 8A0A(B BBBA HLFBB B(A0A8D` 8A0A(B BBBE (8MEAD  AAB ,dMmFHH  ABJ ,MRMAA  ABD ,MMAA G ABG HMp*FBB B(A0A8D@ 8A0A(B BBBD H@NTvFBB B(A0A8DP 8A0A(B BBBH HNFBB B(A0A8D@ 8A0A(B BBBD HN*FBB B(A0A8D@ 8A0A(B BBBH H$O*FBB B(A0A8D@ 8A0A(B BBBF 8pOFBA A(D0p (A ABBD 8O(FBA A(D0p (A ABBD 8OFBA A(D0p (A ABBD 8$PPFBA A(D0p (A ABBD 8`PFBA A(D0p (A ABBD 8PxFBA A(D0p (A ABBD HP *FBB B(A0A8D@ 8A0A(B BBBD H$QFBB B(A0A8D`% 8A0A(B BBBG @pQD2FBB A(A0D@ 0A(A BBBE @Q@FBB A(A0D@ 0A(A BBBF HQFBB B(A0A8DP 8A0A(B BBBI 8DR0BFBA A(DPn (A ABBF 8RDFBA A(D@ (A ABBA 8RFBA A(D0 (A ABBF hR<WFBB A(A0DPXE`SXBPn 0A(A BBBE XN`FXAPfXH`LXAP@dS0FBB A(A0D@ 0A(A BBBA SlSx FBB B(A0A8DL^AU 8A0A(B BBBD ILYAH,T(FBB B(A0A8D` 8A0A(B BBBF LxT|tFBB B(A0A8D 8A0A(B BBBF HTFBB B(A0A8DP 8A0A(B BBBA 8UFBA A(D@ (A ABBA HPUD FBB B(A0A8D@Q 8A0A(B BBBC HU$FBB B(A0A8D`X 8A0A(B BBBD LU% FBB B(A0A8D 8A0A(B BBBH L8VL1 FBB B(A0A8D 8A0A(B BBBK LV > FBB B(A0A8G 8A0A(B BBBG HVGFBB B(A0A8D` 8A0A(B BBBA L$WOFBB B(G0A8D 8A0A(B BBBE HtWWFBB B(A0F8Dp 8A0A(B BBBD HWT[FBB B(A0A8D` 8A0A(B BBBE ` X]FBB B(A0A8D@ 8A0A(B BBBH K 8A0A(B BBBK HpX4_FBB B(A0A8D@ 8A0A(B BBBC HXa8FBB B(A0A8D@ 8A0A(B BBBC Yb- FBB B(A0A8D  8A0A(B BBBD HNBYKRB"LOADMOBPLTANRA_NMADY$mFBA A(DPKXL`LXAPw (A ABBA Zn-FBB B(A0A8DP{XI`IXAPt 8A0A(B BBBB BXM`SXBPe 8A0A(B BBBE BXM`HXAPtZDoFBB H(A0A8DpxJOxBpFxLOxApxISxAp 8A0A(B BBBB `[r FBB B(A0A8D`hKpMhB`phLpOhA` 8A0A(B BBBA ,|[XuMAA  DBF |[uaFBB B(A0A8DPS 8A0A(B BBBA ~ 8A0A(B BBBH O 8A0A(B BBBG <,\wMBB H(A0r (A EBBJ dl\xuFBB B(A0A8FP 8A0A(B BBBG  8A0A(B BBBJ d\{FBB B(A0A8DPXG`TXAPXA`FXAPO 8A0A(B BBBG d<]8d FBB B(A0A8D 8A0A(B BBBH A 8I0A(B BBBE H]@FBB B(A0A8DP 8A0A(B BBBE <]FBI H(A0Y (D BBBC H0^čBFBB B(A0A8D`i 8A0A(B BBBK H|^ȐFBB B(A0A8D` 8A0A(B BBBE \^|FBB B(A0A8G 8A0A(B BBBA @E[B(_ =(<_8]FHH g DBM h_ljEAK|_ FBB B(A0A8Dp 8A0A(B BBBA * 8A0A(B BBBG P 8A0A(B BBBF `@8`FBA A(D0o (A ABBE TT`}FEB B(A0A8DP 8A0A(B BBBF kXC`JXAPH`FBB B(A0A8DPc 8A0A(B BBBA H`vFBB B(A0A8D` 8A0A(B BBBG ,DaFAA L DBF (ta@sFHH VDBXaFBB B(A0A8D`'hVpQhA` 8A0A(B BBBB La(FBA A(D0A (A ABBK _ (A ABBK 8LbFBA A(D0b (A ABBJ (bLFAH sDB4bEAD  AAH U AAA (bjEAD F AAF (c,EAD G AAE (DcaEAD C AAA $pc9EAD lAA$c9EAD lAA@c-FAA D0c  AABE c  AABA <dFBB H(H0E (D BBBG <Dd`FBB H(H0O (D BBBE 8d FBA A(D0 (A ABBE 8d FBA A(D0 (A ABBE ,dxuEAD @ AAD ,eAAM4HeBBD0M EBD g EBB eDLJ J <eFBE A(H0P (D BBBH He$FLB B(A0A8D@ 8A0A(E BBBF 8,fFBA A(D0u (A ABBG 4hfnFBA A(D0Y(A ABB,f4FFH Y ABH ffW8fFED A(G0b (D ABBF ,4gPnFHH B ABE dgO(xgFAD k DGO g0gFBB B(A0A8G 8D0A(B BBBA |fEAF8|dFAA  DBH r DBH }L0} FBB B(A0A8G3 8A0A(B BBBF ,}uFHA A DBJ H}AFBB B(A0A8DP& 8D0A(B BBBK } ,~ FAA  ABK (@~ JEAD  AAK Hl~ FBB E(A0A8FP 8A0A(B BBBD ~<LX\L,~pMAA  ABD TBB H(A0 (A BBBO I (A BBBH A (A BBBH { (C BBBD A (A BBBE A (A BBBK  HFBB B(A0A8DPR 8A0A(B BBBB (xJEAD  AAH (`<FBB B(A0A8D@ 8A0A(B BBBA y 8A0A(B BBBE 8FAH  ABK s ABJ (܀8AEAD  AAL \Ed G (DEd G PLLBBA A(G0G (D ABBC i (D ABBF 4BAA b ABG HFB@ԁZBBB A(A0F@z 0D(A BBBE LFBB B(A0A8G# 8A0A(B BBBF xh<"2FBB E(A0A8DP 8A0A(B BBBE w 8A0A(B BBBG n 8A0A(B BBBH %!H%,FBB B(A0A8DP 8A0A(B BBBI 0D( FBB B(A0A8D`Lx*FHB B(A0A8J8 8A0A(B BBBH Hȃ 8A0A(B BBBF  8J0G(D BBBM HHlcFBB H(A0A8DP 8A0A(B BBBF Pd FBB B(A0A8G I! 8A0A(B BBBH H|p(FBB B(A0A8D 8A0A(B BBBG p4`wFBB B(A0A8DPp 8A0A(B BBBD ; 8A0A(B BBBK XM`NXAP`|z+FBB B(A0A8DP 8A0A(B BBBF  8J0G(D BBBO T H|"FBB B(A0A8DPHXN`NXAPf 8A0A(B BBBI dd ~FBB B(A0A8DPB 8A0A(B BBBB  8A0A(B BBBK H̋؀FBB B(A0A8Dp 8A0A(B BBBB HMFBB B(A0A8DP 8A0A(B BBBF Hd;FBB B(A0A8DP 8A0A(B BBBD HFBB B(A0A8Dp 8A0A(B BBBK H8FBB B(A0A8D`Q 8A0A(B BBBC <HFBI A(A0 (D BBEG PFBB B(A0A8G I  8A0A(B BBBH `܍FBB B(A0A8D@ 8A0A(B BBBG ^ 8A0A(B BBBH L@TFBB B(A0A8D 8A0A(B BBBK HԔFBB B(A0A8DP 8A0A(B BBBF H܎hFBB B(A0A8D`c 8A0A(B BBBA H( FGB B(A0A8D` 8A0A(B BBBD PtFMA  ABF ] DBM p DBJ X ABM DȏTEFD  AAL N AAH  AAS L3EAD V AAN S AAK F AAH K AAS 0`@FAA D@  AABI H FBB B(A0A8G 8A0A(B BBBH $zRx ,!d HXFBB B(A0A8DP, 8A0A(B BBBH 8hܼFBA A(D0 (A ABBD <FBB A(H0 (D BBBD H@JFBB B(A0A8D@ 8A0A(B BBBF H0D}FBB B(A0A8DP 8A0A(B BBBE D|x/FBB A(A0G I  0A(A BBBC HĒ`JFBB B(A0F8DP? 8A0A(B BBBH HdFBB B(A0A8DP 8A0A(B BBBG H\eFBB B(A0A8D@ 8A0A(B BBBF x,FBB B(A0A8D@ 8A0A(B BBBG r 8A0A(B BBBD U 8A0A(B BBBI L$P]FII A(A0 (D BBBC  (D BBBE <t`,FBB H(A0 (D BBEH ,PFHA V DBE 8FBA A(D0w (A ABBE L /FBB B(A0A8G 8A0A(B BBBK @pFBB A(A0D@] 0A(A BBBK H@"FBB B(A0A8D` 8A0A(B BBBE L$TFBB B(A0A8G 8A0A(B BBBC HP4%FBB B(A0A8D@ 8A0A(B BBBK 8FBA A(D0~ (A ABBF 8ؖFDA A(D0 (A ABBI HpFEB B(A0A8D@ 8A0A(B BBBG H`FBB B(A0A8D@ 8A0A(B BBBB HFBB B(A0A8DP 8A0A(B BBBC 8FDA A(D0 (A ABBH @4pFBB A(A0Dp 0A(A BBBF XxFBB H(A0D~EEUb 0A(A BBBF LԘpFBA A(D0 (A ABBB { (A ABBG @$@FBB A(A0DP* 0A(A BBBF 8h2FBA A(D0 (A ABBH LFBA A(D0 (A ABBF a (A ABBI L-FBA A(D0 (A ABBF I (A ABBA HDFBB B(A0A8DP: 8A0A(B BBBJ dFBB B(A0A8D@_ 8A0A(B BBBE t 8A0A(B BBBB dFBB B(A0A8D@ 8A0A(B BBBA D 8A0A(B BBBB ``FBB B(A0A8D@  8A0A(B BBBH x 8A0A(B BBBF ,ě@FAH f DBE ,FHA n DBE `$FBB B(A0A8DP 8A0A(B BBBF x 8A0A(B BBBF d FBB B(A0A8D@. 8A0A(B BBBF D 8A0A(B BBBB LFBB H(A0W (D BBBD W (A EBBG h@4FBB B(A0A8GODfA{ 8A0A(B BBBD D L 4BGD  LBH J ABC zRx   2W HBBB B(D0D8G@ 8A0A(B BBBI ,V t@~pKOD<BOV H(D0A8 0D(B BBBF d& BOB B(A0A8D4 8A0A(B BBBG  8A0A(B BBBK LXsBFE B(A0A8G 8A0A(B BBBH $zRx ,vUA(#ADG  AAE tcwU $p&'E]@&'E]H\&V#FFB B(A0A8D@ 8A0A(B BBBH $zRx ,TpI LhIFBB B(A0A8DV 8D0A(B BBBK LL[FEI H(A0D8D 8A0A(B BBBD D_FBD D(GPXW`KXAPy (A ABBE @PaFBE A(D0F@ 0A(A BBBD H(cFBB B(A0A8D` 8A0A(B BBBG LtPgGFEB E(D0D8D2 8A0A(B BBBF |ĢPnFBB B(A0A8DP 8A0A(B BBBF | 8A0A(B BBBB  8A0A(B BBBK HDq_BEE E(D0D8GP 8D0A(B BBBA s7Ee F 8tBBD C(F@C (A ABBF (|tAILz FAA u(u<(u!PDudPu1\x|u0FBA C(D0N (D ABBI D (J ABBM e (D ABBB `ؤLvFBB D(C0C (D BBBB A (F BBBK b (D BBBD \<v BBB B(D0A8J  8A0A(B BBBB BOA`|FBB D(C0D (D BBBA A (G BBBJ b (D BBBD `d}7FEB B(D0C8D@M 8D0A(B BBBD D 8I0A(B BBBJ \d@~FBA D(D0J (D ABBD D (F ABBI e (D ABBB `ĦFBB D(C0D (D BBBA A (G BBBJ b (D BBBD `(GFBB A(D0H (D BBBG A (F BBBK v (D BBBH `5FEB B(D0C8D@K 8D0A(B BBBF D 8G0A(B BBBL `t!FBB E(D0C8D@J 8D0A(B BBBG D 8F0A(B BBBE `T@uFBB E(D0C8DPU 8D0A(B BBBD D 8G0A(B BBBL t\HFEB B(D0D8GBWDEBEFEDNT 8A0A(B BBBD 04$FBB B(D0A8G>I]AIcByHAABIHG`^ 8A0A(B BBBH GKC_GQDDWDxS[AcHl L M E 0ԕuFBB A(A0G@ 0D(A BBBD V 0D(A BBBG Z 0D(A BBBK  0D(A BBBK HЗBBB B(F0E8Gp 8D0A(B BBBH LdFBB D(A0 (C BBBF E (C BBBJ 8P4FAA  ABF i ABD `$ FEB B(A0A8J% 8A0A(B BBBF JNANHtvOBD A(D0(A ABBAP0<`D[TZHg A 4p4FAD N GBN T HBB 4[NDG Y CAJ H 8ĬFBA A(DPw (A ABBE 8FBA A(D@ (A ABBJ HXܳFBB B(A0A8DP~ 8A0A(B BBBF Lp/FEB B(A0A8P0 8C0A(B BBBC t9GL<FBE B(D0A8G5 8C0A(B BBBD HXFEH B(A0A8Iq 8D0A(B BBBB `NFBB A(C0\ (A BBBG T (A HBED R (D BBBD ~ (D BBBH a (D BBBE p(,rFBB A(D0 (F BBBK a (F BBBK a (D EBBJ a (D EBBJ L8VFBB B(D0A8J 8D0A(B BBBD 8HPFBA A(G@ (A ABBG H(\IFBB B(A0D8DP 8D0A(B BBBD @t`FBB A(A0G@% 0D(A BBBE LfFBB B(A0A8J{ 8A0A(B BBBC @@FBE A(F0D@l 0D(A BBBA <LBBB D(A0A (D BBBJ `(FBE B(D0D8DP~ 8A0A(B BBBE  8A0A(B BBBI  H=BHE H(D0D8GP 8D0A(B BBBE P d xLFIE I(A0y (A BBBA _ (A EBEE 4ܲxFBE L(F0(D ABBp FFE E(A0D8G! 8D0A(B BBBH [EcA< FPA0iLJJoPA4hFHA w ABG XDEHJFBB E(D0D8GP 8A0A(B BBBA H@)BBB E(A0D8GP8 8D0A(B BBBD DFDI M ABE O JMJ x CJC DԴ@\EDJ  DAK  DAG e AAA XWFHB B(A0D8D@w 8A0A(B BBBD U 8D0A(E BBBA D 8F0A(B BBBA S 8F0A(B BBBA ]HJP|HA@I 8A0A(B BBBA 8صFAD  ABB  ABA L` #IEB D(A0O (D BBBB  (A BBBN d@ 4x< ^FDA - DFF NEBHd FEB B(A0A8D@ 8D0A(B BBBA 8DH$PFBB B(A0E8D`` 8D0A(B BBBE p5Hl3HjD3Hjls]з4ZQN Q(H0StZQN Q(H0S DM O(H0S40,HQEA  BHO ,xMEA  BHO ,LMEA  BHO Lظ FHA D(G0L (A ABBD V (A ABBD X(|.FEE E(D0D8DP 8A0A(B BBBF tX[`HhHpSPXP.FEE E(D0D8DP 8A0A(B BBBF tX[`HhHpSP\$FBE E(D0D8GP 8A0A(B BBBC DX[`HhHpSPl@ FHE E(D0A FBA D(D@ (A ABBG  4FAA Q ABL FHIDX PEE E(A0 (A BBBB X4 !H<\HJE{ H A|xtp2FBB B(D0A8GYGNBJ[ASMOAl 8A0A(B BBBE UTAwXRB\XRB_RUBJ\AOXAMZAMYBbJ[D8 J[AJ[AjNYBjNYBnNYBpLFBB B(A0A8DP 8A0A(B BBBJ GXK`UXAPXm`}XBP[XH`XXAP$(R.FLH PAB,0R8FDF I(H0SAB@R*\R XR$ TRJFBG `KK8H|RFBI A(A0e(A BBBR^ SRAc A lLSED N F W A ؾ|SS S S (|S H<xSFEE H(D0D8PP{ 8D0A(B BBBH HSFEE B(A0D8G`2 8D0A(B BBBA Կ`U`\UFBE B(D0G8J@i 8D0A(B BBBF H 8A0A(B BBBN LLUFBB E(D0D8G- 8D0A(B BBBH ([H[FBA D(D0t (A ABBE d(D ABBL(\/FBB D(D0 (D BBBE t (J HGDE L]uEAD(hl]FFAA i ABA H] FBB B(A0C8G`. 8A0A(B BBBA \TaFBD A(D0o (A ABBJ D (D ABBK I (C ABBA ,@aHKAG ]GBJ (pa>FDK S JBE aZEADHaFBB E(A0C8DpS 8A0A(B BBBD @e\EeEAG8 fEAGTfEAMpf]H` H 8fNAD SDBDX BAB4,gFFDD T(H0R(E AABDgK A 8gFBA D(D@ (D ABBE 4XLjPFED T(H0R(D FBBdjK A k)E kEADk1E\ G D4k)EZ A D DkK A <k< dc XlmK A tn.(,nFDI ABI n&(nFDI ABI (oFHF n DBH  dp4ppHlp\hp HpdpVFBB B(F0C8Dp 8A0A(B BBBB HxsFBB B(D0D8Dp@ 8A0A(B BBBF (\aX\(FBB B(A0D8DpxPPxApO 8C0A(B BBBC \IFBB B(A0A8GGKA! 8C0A(B BBBE F,(@@EY B _`HKhxFBA D(G@kHFPLHA@ (A ABBH H (A ABBJ D (C ABBD p!E[HRGB A(A0j8G@Q8A0 (A BBBG LE A0hlFAG X CBE LCB8FBA D(D@/ (C ABBH |WEs H HP HO$8L3ZRd x3N[G)QW$%E_8EW8<FAA  CBG d(C0F(A H$ FBB B(A0D8G 8C0A(B BBBD `pFIE D(D0R (A BBBK [ (A BBBF S (D BBBK 0@)FAD D0y  CABB h<FBB B(A0D8Jn 8C0A(B BBBK NGjA Hd $t )EFG MDA nH L D  ELL FEB B(A0A8G 8A0A(B BBBD $0|< PHdFBB B(A0F8L 8A0A(B BBBJ $  0AFDA D0  CABB ( 4o EAG0m CAB Lx((Eb,h(FNI \ ABD (9Eb I )#HZ()$) ))>H0p A t$@)KBEE B(A0D8GPIXM`JXBPXXQ`LXBP_XB`UXAPhXI`MXCPU8A0A(B BBB@*mEJG L(B0P(A R DAD K AAK DD*FBE D(A0t8B@F8A0J (D BBBE (+AHNM IAS4L(,~EAG a(H0I(A I AAA p,9Es,O FBB B(A0A8D 8D0A(B BBBG FKAX 8G0H(B BBBK RULMPB,b0ITX,6BBB B(A0D8JpGaEMMLBlG_BkISBIWEJYABJA 8A0A(B BBBC BKBDPB$zRx ,b dIXFBB B(A0A8DP 8D0A(B BBBF mXJ`RXAPcXJ`qXAPNFBB B(A0A8DBNAAJAJGUAW 8A0A(B BBBC BJBJKRB\VFEB B(A0A8D^BJA\ 8A0A(B BBBJ X_FBA A(D0P8L@P8A0s (A ABBD U (A ABBE 8D`FBA A(D0u (A ABBA 84aFDA E ABM A ABD a<Hoa@F J <MII P(A0X (A BBBA <4pMII P(A0\ (A BBBA HtFEB B(A0A8DP 8A0A(B BBBA 8FBA A(D0 (A ABBH 8FBA A(D0 (A ABBH $8\|AAD sAA,`fBEA F ABG HFNB B(A0A8D` 8A0A(B BBBE HȧFBE B(A0A8DP 8A0A(B BBBI |(lFBB B(A0A8DP< 8A0A(B BBBH U 8A0A(B BBBA t 8A0A(B BBBB X )FEA G(D0 (D ABBH N (D ABBA q(J EBBHFIB B(A0I8D` 8A0A(B BBBE HPdFBB B(A0A8DPg 8A0A(B BBBE ,زFEA g BBI 88FEA G(D0 (F FBBN H FPI I(D0A8K@ 8F0O(B BBBF TAAMxpdBJB B(A0D8DP 8A0A(B BBBJ f 8A0A(B BBBH S 8A0A(B BBBA AJ0r AA 4AJ0d AA H4z FBB B(A0D8D`u 8A0A(B BBBD TԿ:FBB A(D0}8M@K8A0G8F@F8A0A (A BBBG 0_85FBA A(G0 (D ABBH X($FBB B(A0A8DpdxLRxAp 8A0A(B BBBK XFBB B(A0A8D` 8A0A(B BBBE hIpQhA`H$3FBB B(A0A8D@U 8A0A(B BBBG L,FBA D(D0 (A ABBG \ (C ABBL 8|KAD K DBO FDBh=FBB B(A0A8DpuxKPxApxFRxApN 8A0A(B BBBF #8 LDH{d8Erd4KOBB B(D0A8D@R 8D0A(B BBBC PH@8FBA D(L0V (A ABBK 8$pKAD K DBO FDB\`FBD J(J0x (A ABBB L (A ABBF L (A ABBF 8TFBD A(D0P (G ABBK 8<AV I [HXzBEB E(A0D8J@~ 8D0A(B BBBH hA| C HLBBE B(A0A8D 8A0A(B BBBF DB J Z F H,REE E(A0D8D@z8A0A(B BBBHDBBB B(A0C8Dp 8A0A(B BBBC  "KU @ a  (LFHA yAB,`AD  ABG $B82dIP2dIh<,ES H P*ES H I`,EU F HtFBB E(A0A8DP 8A0A(B BBBA  2dI($YKcBHO I D PDEG z AI t (qFAA Q ABD (~BAG q DBG lDM_LG (YJe I X4LyEAG } AAD P AAF 0 FDA G0  AABC (AAG0k AAJ (@4FFDPz ABC HT/FBB B(A0A8FP 8A0A(B BBBI |\86FBE E(A0C8D`1 8A0A(B BBBK  8A0A(B BBBH  8A0A(B BBBG HEW D ,&H]8DFAD  ABA A GBF @LFBA q IBK w BBE ZBBH$FBB E(A0D8DP3 8A0A(B BBBK H]FED A(I0e (A ABBL D(C ABBH(3FBB B(D0A8GP 8A0A(B BBBJ (t\EDL R AAG H$BEB B(A0C8G@ 8F0A(B BBBI 3OMDHFOEB B(A0A8DP* 8A0A(B BBBA XAPy 8D0A(B BBBE 0$BBE E(D0A8F@l|FBB B(A0A8DI 8D0A(B BBBH IGB{MWA8";KZI LhX"FBB B(A0D8DpxLNxApa 8D0A(B BBBH UxAIxApd'5FBB B(A0D8DPXB`JXAPT 8D0A(B BBBH rXM`KXAP\,)BAA f AEH W ABN E ABH z ABC  ABF H+JOBB B(D0D8D@ 8A0A(B BBBG HBPJHA@HBPKHB@YH@zHBPKHB@ 8D0A(B BBBO zRx @( Hp/ZFBB B(A0A8DP 8D0A(B BBBA |1FBB E(A0A8DP 8A0A(B BBBA G 8C0A(B BBBA j 8A0D(B BBBE 4<4?FEG D(F0I(G GEB8t5FBA A(F@ (A ABBH L5FEB B(G0D8G 8D0A(B BBBE 8:BFEE G(D0R(G EBB@<(:FBB A(A0G@ 0A(A BBBD (:IJDD sAAA;;[,`;nEAF O AAA ;AAM ;*De,8;BAD N ABH hl=H|(>yFBB B(A0D8DP 8A0A(B BBBG H\@FBD D(D0` (H DFFL j (J GGDJ X@EFBB D(D0D@ 0A(A FBBG  0C(A BBBA \pCqFBA D(D@F (C ABBA R (A ABBH D (A ABBF HEkFBB E(A0D8DP 8D0A(B BBBG HHFBE B(A0A8D` 8D0A(B BBBI HhLFBB B(A0A8DP 8D0A(B BBBE pRFFBB B(A0A8D@5 8A0A(B BBBG o 8A0A(B BBBG D 8A0A(B BBBJ d 8D0A(B BBBO LL(TFBA A(D0A (J GGDE R (A AFBL 8T FBD A(D0L (G ABBG DlU/FAA ] ABH H AIF } FEH ` TVFBB A(A0s (A BBBJ m (I DBBJ  (A BBBB 8WFBD A(G0\ (D CBBE DX?FAA m ABH H AIF } FEH |Y(\Ip YFBD H(D0 (A ABBH n (J GGDN D (I ABBN T (D ABBE pZFBB A(D0 (D BBBK | (A BBBE I (D BBBE Y (D BBBM PL\hFAA D0  DABB g  DABB   DABA P\h^iFAD D0N  AABG f  AABF   FABC `.EW D I`.EW D I(`FD W EJ D EG aWEp K V<XaAAMHX\aBBB E(A0A8D@ 8A0A(B BBBA bDi K cKAADHcyD a K 4cOEAD  AAB Q AAE H0dBBB B(D0D8Gp 8A0A(B BBBB |hREx C hE L _8|iFBA A(D0O (A ABBE i i_HH H 0$ @juEAD I AAK RAAX jREx C Ht j`FBB B(A0A8D@ 8A0A(B BBBA H kFBB B(A0A8D@ 8A0A(B BBBK H lXFBB B(A0A8DP 8A0A(B BBBC 8X o<MHA  ABI H ABM 4 pEAD  AAC ` AAF 8 xqFBA A(D0m (A ABBG L qnFBB B(A0A8G " 8A0A(B BBBG HX  FBB B(A0A8DP 8A0A(B BBBC , `FAH ` ABN   }LB J ^ }LB J ^8 oMHA  AEJ g ABF xP AFBB B(A0A8D@l 8A0A(B BBBH A 8A0A(B BBBE u 8A0A(B BBBA H GFBB B(A0A8DP 8A0A(B BBBE ` FBB B(A0A8D@ 8A0A(B BBBA m 8A0A(B BBBI 8| hMBB H(H0U(D BBBd FBB B(A0A8DP 8A0A(B BBBA  8G0D(D BBBO ` T0FIB H(A0 (D BBBE j (D BBBD A (D BBBE | pFBB B(A0A8D` 8A0A(B BBBH K 8A0A(B BBBK P 8A0A(B BBBF HqFBB B(A0A8D`$ 8A0A(B BBBH PDFBB B(A0F8D 8A0A(B BBBE QJALOB~HTB KNAHPFBB B(A0A8DPZ 8A0A(B BBBJ h0 FBB B(A0A8GB^B GT  8A0A(B BBBA Lf FBB B(A0A8G 8A0A(B BBBA d FBB B(A0A8D@ 8A0A(B BBBJ O 8A0A(B BBBA HTFBB B(A0A8D`m 8A0A(B BBBG FBB B(A0A8GEQATHMD 8A0A(B BBBK uH]BP$pFBB A(A0 (D BBFC  (D BBBI HxFEB B(A0A8Dp 8A0A(B BBBA \FBB A(D0b (N BBBK  (D BBBK y(D BBB8$FAH  ABH  AEF `TGdYHxW FBB B(A0A8Dp 8A0A(B BBBA EJ@DFAD F0t  DABD G  AABE 8$FOA V ABA m ABH `4rFHB B(A0A8D`c 8A0A(B BBBK {hHpFhA` hNpFhB`f 8A0A(B BBBD P 8A0A(B BBBF  FDB B(A0A8K`hMpOhB`hIpMhB`~ 8A0A(B BBBB hNpMhA`whIpOhA`hhMpVhB`lhNpMhB`lhIpRhA`H0FBB B(A0A8D`D 8A0A(B BBBH HFBB B(A0A8D`? 8A0A(B BBBE T< FBB B(A0A8D`hIpOhA`{ 8A0A(B BBBI Xp$FBB B(A0A8D`hIpLhA`{ 8A0A(B BBBB T(FDB B(A0A8D`hIpOhA`u 8A0A(B BBBE XH<-FDB B(A0A8D`hIpLhA`u 8A0A(B BBBG 1l3aH3BBB B(A0A8DP 8D0A(B BBBA ,4AAM404WAAKPt4ng0h4BLH L0  AABC 67Y(`7ABIE D(G07H77808OFBA A(D0 (A ABBE Hl9FBB B(D0C8G@ 8A0A(B BBBF (9vEAG G AAJ :f(l:AAG P AAE $$;BEDG oAA L(;qE F X H 8p=MAA x ABF u ABH X>WVWcF4>vFDG s ABI  ABA ?|FI A X A (<@4<H@FAG0 FBO A ABD tBMa B 0CFJ H HCFBE B(D0D8F`T 8D0A(B BBBB $dI+FDG IJB(lIgLP D HHIBBB B(A0A8GP 8A0A(B BBBE NrXN FBB B(A0A8D` 8A0A(B BBBB hEpJhA`$pXF F K E f$,hY'RBHD L $TpZnE} F X H A$|ZYu B tM0[E(l[aERD  AAG \\LEB B(A0A8D@8C0A(B BBBKH@D] X]l]-`]NFBD D(D@t (A ABBB  (A ABBD J (C ABBF _|Nh`l| h D `M R I FJ (<8a~E{ H F J X H Aha9XXaG^W K FaTFM(bQHtbFLB B(D0A8D@ 8A0A(B BBBA 4 8cEGY0q AAH I DAE (T dQJDD kDA( 4dOAD A AAI ( eFDD0[ ABD H gz FBB G(D0D8Dpv 8D0A(B BBBH $!pfH I G @!DqH s E H\!qFBE B(A0C8G`[ 8A0A(B BBBA !\s|!XsBFEE E(A0A8J 8A0A(B BBBA _jGeIMA ME 8<"xFEA T(H0R(D A BBE x"K A H" FBB E(A0D8Dp[ 8A0A(B BBBC H"d?FBB B(A0A8D` 8A0A(B BBBF ,#X@#dT#p1h#)ET G D0#FAA D0  AABI D#HFDD I ABF Y ABD X ABE $H } K K E |($,FIB B(A0A8D`C 8A0A(B BBBJ  8A0A(B BBBB T 8A0A(B BBBB ,$|dFAD  DBA L$BBA A(G0O (A ABBF s (E ABBK (%3FBB B(A0A8DPy 8A0A(B BBBK D 8G0A(B BBBL i 8A0A(B BBBE B 8I0A(B BBBL d 8D0A(B BBBE `%KEDD g AAJ q AAE N AAH k OAE \ DAO DAAH<&zFBB B(A0A8G 8A0A(B BBBA $&<8FDG \DB\&TpOBA A(G0 (A ABBE pH0d (A ABBF ('dEDG  AAG <'8!EO D D\'H p'D)IO H D<'TFBB A(A0 (A BBBG H'$FEE E(A0D8FP 8D0A(B BBBE (YH ^ R x8(FBB B(A0C8D@ 8A0A(B BBBI  8A0A(B BBBC M 8A0A(B BBBI D(0KBA GBBGH M HKE <(MBE A(D0 (D BBBK 8<)hbFBD D(GP (A ABBG 4x)FAG0 FBO C ABJ `)$BBB B(D0A8DPm 8I0D(G BBBH  8D0A(B BBBK *`Dpq K $0*8BDD cDB0X*FAD F0!  AABJ 8*FEA D(D0 (D ABBH 8*FEA D(D0z (D ABBI + H J F +EG I AJ D+ M IR 4`+FAG V AEF S DBG <+L MBE A(C0 (A BBBG 8+FBD D(D0R (A ABBD (,FDD N DBF (@,t~BDD0d ABG 8l,FBA D(DP (D ABBG ,,<d Sd,T.BBB B(A0D8D@U 8A0A(B BBBH  8A0A(B BBBA H(- BBE E(D0D8GP 8A0A(B BBBE `t-` *FBB E(A0D8G`^hHpOhA`^hHpOhA`] 8D0A(B BBBG (-, vEDD0L AAE H. qFBB B(D0D8D` 8D0A(B BBBE 8P.FBA A(G@H (A ABBA H.8YFBB B(A0A8DPP 8D0A(B BBBA .L!JSC8.`FED C(GP (D ABBE 00/QFBD GP  ABBG d/Lx/FBE D(D0 (A BBBG  (D BBBE 0/LFDD G0r  AABE 8/(}FED  BBD n BBN (80lEDG0d AAJ 8d0FED c BBJ Q BBK 0!EO D D00QBAD D@  AABD (0">FAG@j ABE H 1%FBB B(A0A8DP 8D0A(B BBBD (l1'FAG@j ABE 1*AG Q AF L1*4FBB D(D0 (A BBBH y (D BBBE  2+!EO D Dd,2+BBB B(D0D8G@ 8A0A(B BBBG   8A0A(B BBBN L2 3FBD A(G0 (D ABBF ^ (D ABBI ,2p4FAD  ABC 83`5FEA D(D0 (D ABBH (P37.FED ZBB8|37ZFAD l ABF  GKE 3<8!EO D D03L8DFDG _ ABE DAB 4h8!EO D D$,4x8,FDG TDB(T48OFDD \ DBH $48,FDG TDB448pFAG0n ABA  IIE 49!EO D D(59FAD ABE ,5X?<d SLD5?OAG0y ABE ABHH0P ABM 5B<d S5C0FG ]E85(CWFBD D(F@~ (A ABBF $6LE?EIG gAAH06dE/FBB B(A0A8DP 8A0A(B BBBG |6HF!EO D DH6XFFEE E(D0D8D`J 8A0A(B BBBK @6IFBB A(A0D@ 0D(A BBBE ,7xN9Ec H 8H7NFED c BBJ Q BBK @7pOJFBE D(D0F@ 0A(A BBBH 07|QFAA D@  AABJ (7hR0FEG REBT(8lR FBB B(A0A8G L@LB 8A0A(B BBBJ $8^>EKG dAA,8^FAD  ABC ,8^FAA d ABA 89L_FBA A(D@ (D ABBE HD9aFBB B(A0A8DPm 8A0A(B BBBG 9dZFA I 9d9e19e9e(:e6FDD  DBE H,:fFBB B(A0A8G`G 8D0A(B AAG 8x:<FBA A(D0 (A ABBK :KHBH:ԥFBB B(A0A8DP 8A0A(B BBBF 8;XiFBA A(Df (A ABBF `X;TMBF A(E0 (A BBBG  (H GDBI K (A BBBF H;BBB E(D0A8Dp 8A0A(B BBBF $<LlEG! AB L0<FIB B(A0A8GX 8A0A(B BBBA <DEAD zRx   -<|BMD <[AAK t=D FBB B(A0D8Dp[ 8A0A(B BBBA xXQxBpxHLxBpxM]xAp`=\%FDB B(D0D8G~ 8D0A(B BBBH qBAK,=aFCG ABJ >EzRx  d> OLB`>PiBBB E(D0D8GP_XK`ZXAPQ 8A0A(B BBBF eXB`FXAP. (>HEAD  AAJ 8(?FJK K BBF w BBE Hd?`FIB E(A0A8DP 8A0A(B BBBH x?!IBBB E(D0D8GP 8J0D(B BBBH T 8C0A(B BBBH D 8F0A(B BBBE H,@!FBB B(A0A8DP 8A0A(B BBBE x@l$$@h$3FDJ IJG(@$/FDG NGD@$H@$WFBB B(A0A8DP8 8A0A(B BBBD @A'KpTA'FBB A(A0[ (D BBBG L (A EBBB r (D BBBD A (I BBBH `A)FBE A(D0H (D BBBD q (A EBBE \ (A EBBB 8,Bh-FBA A(D0 (A ABBK $hB-=FGG YFE(B.AFHD ]HE$B(.9FDU IJBB@.FDG `C.1FBB B(A0A8D@ 8A0A(B BBBE v 8A0A(B BBBH `hC/FBB B(A0A8D@ 8A0A(B BBBF  8A0A(B BBBG 8C1FBA A(D0w (A ABBE HDL2FBB B(A0A8D` 8A0A(B BBBI 8TD4FBA A(D0o (A ABBE HD5FBB B(A0A8D@ 8A0A(B BBBD HD5FBB B(A0A8DP 8A0A(B BBBH H(E7FBB B(A0A8DP 8A0A(B BBBF <tE8MBB H(D0{ (A BBBA E9 `E 9 FBB B(A0A8D@ 8A0A(B BBBB d 8A0A(B BBBB ,F:8DFp;FBA A(D0 (A ABBJ ,F4<MAH \ ABA LF< FBB B(A0A8Dh 8A0A(B BBBD 8GEFBA A(D0t (A ABBH L DDAL  UCHE  UCHE  KE * RDAAHP xeBEB B(A0A8N6 CL I CT  8D0A(B BBBE 9 CL  CO t CQ   CL  QDDAHH  DDAR d CL  CL =KQA QCHE # CL  CL  CL  CL  CL X CL  MDDAHH  DDBE  QCHE  CL HHOLFVEPL[} QDDAHH  CL 3 CL  CL _ CL  CL SFBBQ UBBO  CL  QDDAHH  QCHE  CL  QCHE  CL CKQA QCHE TOBBN CL M CL   QCHE oHPB CL  NCHI  CL BRBR CL Q QCHE  DDAL  QCHE  SCHE < CL  CL  CL V QDDAHH " CL  CL  CL t CL % CL  CL 5 CL F CL $zRx ,^ 3+FBB E(D0D8J  H L B  8D0A(B BBBA   B E B B B m  B E B B B m  B D B B B V  E A B B B V $zRx  ,] $]WH h(A0K(A T A ^ BEE E(D0D8G 8A0A(B BBBA 2 CL a]A OCHE  CL  CQ  BE  CL t`mzBBB E(D0H8JN CL TLVADIDAFOUBHQH 8D0A(B BBBA PLBz CL A CL c CR A CT QKDBUPLALCIMp IHDT [JBH[E CL ujjBIDA`d CL  CL  CL  MCHE BWBKAD\WLWAnBVA= CL PMALHDM CL  MBDAHR  MCHE  QCHE [ CE 6BEGDGT2 CL  CL  CL  CT H`$BBB B(D0D8F` 8D0A(B BBBH `BBB B(A0A8GR 8A0A(B BBBC ^EDBUpDFBB B(A0A8D{ 8D0A(B BBBF BPAIKQA(yX ěAAMMAKDBBE B(D0A8GP8A0A(B BBB`D`BBE E(D0A8DP 8A0A(B BBBG w 8A0A(B BBBG (EJI  AAG ,ԜFIO | ABC HpWFBB B(A0A8G@ 8A0A(B BBBH Pd@><xlFBB D(D0l (D BBBH FEB E(A0D8DP 8A0A(B BBBJ  8A0A(B BBBB  8A0A(B BBBI O 8A0A(B BBBG h 8D0A(B BBBK Hh<FBB E(A0D8DP 8A0A(B BBBB DFBB E(A0A8D@8A0A(B BBB(xTFDD qAS(FBB B(A0D8DPi 8A0A(B BBBH 7 8A0A(B BBBG N 8A0A(B BBBH M 8A0A(B BBBA  8A0A(B BBBO h؟UFEE E(A0A8D@ 8A0A(B BBBJ _HIPSHA@h8I0K(B BBBD0|W\ #E]$x 2AMI XAAH BBE B(A0C8D` 8D0A(B BBBH HCBBB B(A0D8G@G 8J0A(B BBBJ 8LHBEB B(A0D8GP 8A0A(B BBBC  8A0A(B BBBJ p 8F0A(B BBBI  8F0A(B BBBE pH8FBB E(D0A8G@ 8A0A(B BBBD $HaEMN ~AA`p4FBB A(A0c (A BBBJ  (A BBBC  (F BBBA (ԢEDG0 AAG HXFBB B(A0D8Dps 8C0A(B BBBD \L(6$hFEE B(A0A8GYDAEHH^ 8A0A(B BBBK DBBHHhRGHFM<DQBKBEHHVPDABHHX B^DBUAeEZArHABHHVHBBHH]$zRx ,OL@FBB B(A0A8G* 8A0A(B BBBA NO PPFBB B(D0A8GN 8A0A(B BBBH CC̥8CtFd $(04ADG  AAH\(cBDE E(G0A8N` 8D0A(B BBBE LKAZ E j(Ȧ|EDD  AAA LpBED D(D0 (A ABBD  (A ABBD Dk8X,BGH D(A0r (A BBBA sUOا|T4IXpBGB G(D0D@l 0A(A BBBB  0A(A BBBG l`A~ Q M K O I M K M K M K M K G I M K M K M K N J M K M H F A LШVZBME B(D0A8J} 8A0A(B BBBD T INBB I(D0D8G@E 8A0A(B BBBG hHx|KBHB B(A0D8D@Y 8D0A(B BBBC Hĩ0MBBE E(A0D8G@ 8D0A(B BBBA HOBBI B(D0D8Dp 8A0A(B BBBD H\QIBHE E(A0A8G 8A0A(B BBBI \WBBG A(G0D (D ABBH  (A DBBH  (A AEBC 8|Y3BFA D(D@ (D ABBC \DZBBG A(G0D (D ABBH  (A DBBH  (A AEBC H \BEB B(A0A8Fp 8D0A(B BBBH x`TBBF B(A0A8D@ 8A0A(B BBBG W 8D0A(B BBBL I 8A0A(D BEBH HlebBKB I(A0C8G` 8D0A(B BBBE Li#BEE H(D0D8G; 8D0A(B BBBE \SIB B(A0D8DP( 8J0G(B BBBE z 8C0A(B BBBA f 8F0A(B BBBA FPL\LFBB B(A0A8G3 8D0A(B BBBK \BBB B(A0A8G 8D0A(B BBBG KIBL6QABQ<LvD Lf qDME$zRx ,E 4lBBB B(A0D8G 8D0A(B BBBA pWEAISHH\AIaALhFBB B(D0D8G 8D0A(B BBBJ p|FBB B(D0D8J 8A0A(B BBBF QHaBPH]A,"HNB I0Lco F F B BI OAJS0$yEDF @ CDJ TCA4pFAA  ABJ QCB4f<4iAD FDBV PP H@FBB B(A0A8FP 8A0A(B BBBA l~FBA D(D0D (D ABBJ  (A ABBJ  (D ABBE I(G CGDT(FBB B(A0A8F`jhIpIhA` 8D0A(B BBBD $TR`^] C D E | Rd:FBB A(D0r (D BBBE o (D BBBG h (A EBBF  D d$BBB E(A0D8DP8H0D(D BBB0hLBDG a ABG DII@BEA o BBE A EPJ TBB84&BBA A(D@ (A ABBG 8(BGD M NDL H DBJ LXYBBB B(A0D8I 8A0A(B BBBA L FEB B(A0D8J 8A0A(B BBBA 0lBHK D0   DABD L,FBE E(A0D8G 8A0A(B BBBF P|XxBLG D(G8B@I8A0T (A ABBJ a(A ABBе PFBB A(D0( (D GDBH 1 (E BBBA (8JMLD dBBdK A 8FIA K(D@ (A ABBD 8hzFFD  IBL Y NDM 0EIQ _ NCI DIAH,(OFGA D(Q0 (K DDBJ D(I ABBXx,FGB E(A0H8Dp 8D0A(B BBBA xPLxHpDԷFIB A(A0g8N@Y8A0m (D BBBG 4xFAG  CBK  CBC HT0FBB B(A0A8D@ 8C0A(B BBBG 0vo `q { A } A V` xԸP@BBB B(A0D8GDI^A` 8A0A(B BBBA 9[LB FL PKBE E(H0C8D`YhLpPxOK` 8A0A(B BBBL T 8I0D(D IBBN t 8A0A(B BBBB H` FO4HFO8d 8O8LV*8V48X>8]R8,^\8bf8dep8Hh8jH9kR9(la9l9Hn9lp9q9q9r9|999И9H9Ƚ9999H: :0*:D4:D>:R:\:f:):,+:5:C:: :l::; ;O;Y;m;;d=\<4FF?F|@ GlAhGA|GCGDHD`HEHFHH@I\ITIIhIJILINIOJLRJSJSJU j|@hjAjLlCXMT\@ccdq\ r\wа z̀h,XLܲt г<\GS0h|,\l|̹̰Lh|||̻ L$8<Lм,H\ܽ |\|l,Hl \|8 ,!!+ -<--8\.h.L227@7T7|<999:4<` =t|==C DXFHI,\JhJ|

@>@>,C4?C`?D?D?FT@ H@c@cAhAkAmLBr0CLu|CxC|i|?iAiFhj\Hj|IjOk QkSHlSplxBČ|FK\RWY@,\L^Ў,_ `0``abc,eLexLf|glj<l\mȑqs`txy$,{T|,}\~Ll̃0ll< ܇\܉|0t|<@|\$lh|8<\Ԛ\l\LL\Hl4̝l0L|Ȟ |؟`ؠ<ll,|<"-d01 5< <YlZL]LcPd<>\> l> |>4>T\?x<@ AA<AP B|\BlB CCCC|DH:R$;it;l{;<<d<̷<|==,|=,==D>>\>t?,??|? ,@,H@@L@,AxAzRx $hz;FJ w?:*3$"D`\8;t [lctAAM(xBAD s DBH zRx   4(AAG p AAE K AAC D`TBAA ] ABD I DBI A DBI lxAHG z FAG P CAD ] AAA l AAA b AAA H AAJ _CA ,(BI~ EB LPMEI H(A0M (A BBBH J (A BBBG 8dBDD  ABL A ABD <BAD G@`  AABF wHJPZHA@`FEA A(D0 (A ABBB I (A ABBA P (A ABBJ DH|BBB E(D0D8DPq 8A0A(B BBBF 0 "KU @ a  ,IEy B H *BEB E(D0D8FpzxHQxBp]xJPxApO 8A0A(B BBBF gxHQxBpxKYxBpuxMPxAp<IBBB A(A0 (D BBBD EL,FBA D(D0] (I ABBL  (D ABBH | *Ed$ qYBEHD0 cEDD @ AAI DAAP (Ebd U`(, uFBE B(A0A8DP 8A0A(B BBBI  8A0A(B BBBC HD@(LyFDH cABd.FBB E(A0C8D@PHLPMXD`I@D 8A0A(B BBBE QHdPVHA@XFBE B(D0A8G`hBpFhA`  8A0A(B BBBF dp HPH xuFBE B(A0D8D@ 8A0A(B BBBI HXFBB B(A0A8D`r 8A0A(B BBBB (PWEDF0f AAI `FBB E(D0A8G`S 8M0F(B BBBG h 8A0A(B BBBF zRx `( l hC -8 FBA C(G0U (D ABBG  0Fi !M F  7L DFBD A(D0G (D ABBG  (A ABBG p ! ! ! "zH N J  L H $|FEE D(D0a (A BBBH l(A BBB 8$GH y A L8 l$:MEE D(C0 (A BBBJ j (F EBBG  \% X% %0D %yFBB A(A0k8E@V8A0J (A BBBD | ('FBB B(D0C8D`yhJpLhB`}hJpKhB`hJpKhA`hDpqhA`t 8A0A(B BBBH 8 X*FBD A(D@ (A AEBD  ,)D  O  -OB| B , -yBDC C CEL 80 D.BEJ A(I@I (D EBBO Hl .FBB E(D0A8Gp= 8D0A(B BBBA d \2<FBB B(D0D8GP\ 8A0A(B BBBG S 8I0C(B BBBI ` 48BBB B(A0D8DP 8I0A(B BBBL w 8A0A(B BBBG 9&89FBE D(D0{ (D BBBF :4\WP(:JOBE A(A0 (A BBBD H0H@$=FED A(D0X (D ABBK _(A ABB`=FBB B(A0A8G@l 8A0A(B BBBE  8A0A(B BBBA BBQpX 8BFBE I(H0H8GP  8D0A(B BBBJ XE`aXDP zRx P(<JFBE D(K0% (D BBBE zRx 0(^ L)Ag44MBAD Y DBJ DBdlMcFEE E(A0A8D@ 8D0A(B BBBE n 8D0A(B BBBG $PFQ I ^ B |$HQF{ G I G f($QiFDD W DBE HP4RFBB B(A0A8Dp 8D0A(B BBBH zRx p( $d:AAD qAA0dqFDF j DBH bDB<0d FBB A(A0 (A BBBF ,peFDC x ABH <TfFEB D(C0p (A BBBE ,4gKDD  ABI hh<$hFEE D(C0 (A BBBI $dinN} E GQEHiFBG f JBO h EBA l EBE DEB|jL HLk;ODD n DBE CABJH D HGE 8DlBBA d BBC L BBH llSF{ G JLlMFEI D(F0 (D ABBI E (D ABBA Hm1FBB E(G0E8K@ 8A0A(B BBBE 8PnmFBD A(K0 (A ABBE 8pFEI A(F0~ (A ABBI 0qBAD u DBF VDG(r 4$rBAA G  AABF HHxFBE B(D0K8K@  8D0A(B BBBF @{=TTh{)Ag$|{FDD zDB@{FBB D(A0DPd 0A(A BBBA zRx P( Lt~BBB E(A0A8G 8D0A(B BBBH dFBB B(D0D8F@ 8D0A(B BBBI * 8D0A(B BBBI 8L(``44FEE B(A0A8D@ 8A0A(B BBBK  8D0A(B BBBH 3MSt8MBB A(D0Z (A BBBI # (A BBBF  (A BBBF ] (A BBBL HT(FBE E(D0A8DP 8D0A(B BBBB dM@ C W I ]LFBD A(D0 (D ABBG g (D ABBH 8FIK C(D0] (A ABBD PiFblhmX\k0XF R KE D EG PxmX\k̐NEAiH a O m$PFV D x H Q<*HZ4TSBGE I(G0j(D BBB4(FDD w DBE } DBE LFBB B(A0A8D 8A0A(B BBBJ $zRx ,X PԚ5dEX K P``YFEE B(D0A8KP 8D0A(B BBBJ  8D0A(B BBBK (\HFEA pEB8FEI A(F0 (A ABBG 4PDFBA D(D0u(A ABB4nFQA D(D0@(D ABB` BBB E(A0C8FP 8D0A(B BBBA  8F0D(G BBBJ $#H Zd<FBE B(A0A8DPL 8D0A(B BBBB  8D0A(B BBBK @ `L FBB B(D0D8D@ 8D0A(B BBBD  8A0A(B BBBH 4 BEI A(D0(D ABB`T FBE D(F0 (G EDBE  (L BBBJ  (D BBBD LFBB E(D0A8D@M 8F0D(D BBBG  8A0A(B BBBI  8G0A(B BBBI  8D0A(B BBBI 4P!TFBD D(G0(H DBB8!FED D(FP (A ABBF @! FEE A(D0FP 0A(A BBBJ T"lFEB E(A0C8GVN8A0A(B BBBD$zRx , N@"xFBE A(D0D@m 0D(A BBBB <"BEE D(A0 (E BBBG  ##EQ(<#rFDG R LGJ \h#BBB B(A0A8DpU 8A0A(B BBBC zxdDDXpH#FEB E(D0A8DPS 8A0A(B BBBH H$FBB B(D0A8DPI 8D0A(B BBBE D`$TFAD " ABH o DEH c ABB <$ rFBB D(A0 (A BBBA  \$8@FBA D(D@ (A ABBK Z (F DBBH X (A ABBJ L\% FBB B(A0D8D6 8A0A(B BBBK %Ff D %HOFY A zRx  | &LFD x EI (<&cFAD F ABA t%"`|&(FBB A(D0@ (D BBBG d (A EBBB A (A BBBH <&)FBB A(D0t (D BBBK 4'p=ED rA(T'^FAA RAB'kNd N XE'`'cFBB A(A0L (A BBBA E (A BBBD  (D BBBG (Em N 4(@QFY A P(aHp H `zRx / 8(FAG  DBJ   DBA 4(FAD  DBE J DBH X)FBB A(D0r (D BBBE  (D BBBG P(D BBB4l)FAD o ABC AB<)pNDD qAAGH H AAF 4)FAG0O DBE C ABB (*ED  DH |AH*1TUH`*SFBB B(A0A8DP 8D0A(B BBBA H H*FBB B(A0D8D` 8A0A(B BBBF @ +FAD i ABI O DBK FAEHP+FBB B(D0A8G 8D0A(B BBBB $zRx , (+,uTD l BJ _E, 4,lFAG A DBK ^ DBD P,FBE B(A0A8D` 8A0A(B BBBH  8D0A(B BBBK H 8I0A(B BBBN z 8G0A(B BBBF # ,,(FDC v ABB `,-FBB B(A0D8D@ 8A0A(B BBBN G 8D0A(B BBBD -D-P$8-lFBA C(D0 (D ABBD H- eFBB B(D0A8PPR 8I0A(B BBBK H@.D rFBB B(G0A8DP 8A0A(B BBBK .x BBE B(I0G8G@ 8A0A(B BBBA < 8A0A(E BBBG D 8C0A(B BBBH  8C0A(B BBBH H$/FBB E(D0D8D` 8D0A(B BBBF 4p/CFEF T(K0L(A ABBD/,OFEE F(D0T8K@L8A0A(A BBB,/4:FDG I(H0TABT 0DFEE B(A0D8DP XG`]XEP^ 8D0A(B BBBE lx0#FBE B(D0D8J 8D0A(B BBBE CJB]LLA0L3(FBB B(A0D8J 8A0A(B BBBD AUBDIJBINAdl1ZuFBB B(D0D8DP3 8A0A(B BBBK  8H0D(B BBBF D1]uFAD O ABC } ABH I ABL H2(`FBB B(A0A8DP 8A0A(B BBBH Hh2gFBE E(D0A8G@0 8A0A(B BBBH 20iK A H2iFBB E(D0A8G@; 8F0D(G DBBE (38kKBD JIlH3kFBE B(A0A8DM 8D0A(B BBBA DKBaLLAH3,}BBB E(D0D8DP 8D0A(B BBBC (4Ё9FDG0 DBK H04FBB B(D0D8DP\ 8A0A(B BBBA 8|48FBA  BBF  EBE 4sKH M N4|,4x7FDD \DD5(05FBAA ~ABH\5FJA A(D0Y (F ABBF P(C ABB85FBA A(D0 (A ABBG $5BBA A(D00 6BJD J`  ABBA @6&H]X6&H]p668H` H G646hFEA D(D0M(A ABB6$#HZ7<BGL I(A0D8F`  8A0A(B BBBE f 8A0A(B BBBH  8G0A(B BBBL i 8D0A(B BBBE H7tBEB A(D0X (J BBBJ A(A BBB7TEh C 8TEh C $$8@Ew D G I ^ J $L8+FDG IJB4t8FAA J  AABJ 8EOH8FEE E(A0A8D@ 8A0A(B BBBO 09ЙhEDF f FAL TFA,H9 EAJ AAG (x9EAH y DAD @9PFEB A(A0D@/ 0A(A BBBF 9HNH:uFBB D(C0D (A BBBD E(A BEB(L:ȡEPK  +-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|yef\aljSçȧʧѧק٧A( `n"tm~vtktetvstfflffiflfiffBB|BBBBBBtBBpgfedcba`'&%$#"! Bay w th1ej nissOperation "%s" returns its argument for UTF-16 surrogate U+%04lXOperation "%s" returns its argument for non-Unicode code point 0x%04lX%s: %s (unexpected continuation byte 0x%02x, with no preceding start byte)%s: %s (too short; %d byte%s available, need %d)%s: %s (unexpected non-continuation byte 0x%02x, %s after start byte 0x%02x; need %d bytes, got %d)UTF-16 surrogate (any UTF-8 sequence that starts with "%s" is for a surrogate)Any UTF-8 sequence that starts with "%s" is for a non-Unicode code point, may not be portableAny UTF-8 sequence that starts with "%s" is a Perl extension, and so is not portable%s: %s (any UTF-8 sequence that starts with "%s" is overlong which can and should be represented with a different, shorter sequence)%s: %s (overlong; instead use %s to represent %s%0*lX)panic: _force_out_malformed_utf8_message should be called only when there are errors foundCan't do %s("\x{%lX}") on non-UTF-8 locale; resolved to "\x{%lX}".panic: utf16_to_utf8%s: odd bytelen %lupanic: to_upper_title_latin1 did not expect '%c' to map to '%c'Can't do fc("\x{1E9E}") on non-UTF-8 locale; resolved to "\x{17F}\x{17F}".Can't do fc("\x{FB05}") on non-UTF-8 locale; resolved to "\x{FB06}".Unicode surrogate U+%04lX is illegal in UTF-8 while running setuid while running setgid while running with -t switch while running with -T switchIFSanother variable%%ENV is aliased to %s%s%%ENV is aliased to %%%s%s$ENV{PATH}Insecure directory in %s%sTERM-_.+Insecure $ENV{%s}%sCDPATHBASH_ENV => 3 !"#$%&o'(>?@ABCDIJKLMNOPQRTWX     ####'())))))))))))))788 88 <<>?@@@@DEFGHIIIIIIIIIISTTTTTYZ[\T^_`abbbeeeeeek<no88ZZZZCCDDDDDDDDDD((BBBBUU@@@@iigghhjjkkII  9.4& )2$ 8-# ,    _ $"  d^  1 )CS1   A !AAAA AA 1:KXplLH?:9Ag:K:K:K;I:Kp;I!6:8;?dL:8AdL;|>LhOdLpC8B--$ JH(DRg ;gP:K45P;PgXg=Pg:84PLMPPiQiQPpE;+;g=P:8A;IdL_:9;g:;I;:H6N:8Ap;IdL!6:9P;dL:8A7I+:y%:KP 3hF4@ 3X8::LhOdL!,C<*)U'\9C:8A FF\9g|SC8B-- L#" L#"PxtD,Pd&|<;::K4g:K4:|.h1/ &+-4787=>>EHNNPUXXXXXXXZXXXX\_egg iiigggiiiigN eNNeeNNNNNNNjmprr77NNev}}}~+++~777 777ee 77777777777777777777777777e77777777777eeNeeeeeeeN77eeeeeeee7e77777777777777777 4NNNNx'?x'?$MOD+1-AMPERANONHASHAPPENDASSIGNAVBAREBKWARDBOOLBOOL?BYTESCAN_FORCE_UTF8COMPLCOM_AGGCOM_RC1COM_SCALARCONSTCOPHHCVCV2GVDBGDEFDELDELETEDEREF1DEREF2DESCDOLISTDREFAVDREFHVDREFSVEARLYCVELEMENTEREDEVALSVEXISTSFAKEFINALLYFTACCESSFTAFTERtFTSTACKEDFTSTACKINGGROWSGUESSEDHAS_HHHUSHHVIDENTIF_FALSEIF_UNDEFIMPLIMINARGSINBININCRINITFIELDSINITFIELD_AVINITFIELD_HVINPLACEINTITERKEEP_PVKEYSKVSLICELEXLINENUMLVLVDEFERLVINTROLVSUBMARKNEGNESTEDNO()NOINITNOVERNUMOURINTROUTBINOUTCRREFCREPARSEREPL1STREVREVERSEDSHORTSLICESLICEWARNSQUASHSTATESTRICTSTRINGIFYSUBSVTARGTARGMYUNIUSEINTUSE_SVOPUTFkeyoffsetrangeDDDD@@@DD@! " ++dDdD, , >>> ">>&&&&&&..  HD6@0@1244@;H;;@KHKKHBDDD $B"$$$444 $TTA! $ $  @ @ $   D  @@@@@@@ d)d k d Et!{D{DK d d d d d  d d dd d dddddd d dddkklllllllllllllllllllllllllll$$$$ dk kdkk $            ě@@ {@@@@D@ @@ D HAS_TIMES PERLIO_LAYERS PERL_HASH_FUNC_SIPHASH13 PERL_HASH_USE_SBOX32 USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE_COLLATE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~  !"#$%&'()*+,-./0123456789:;<=>?@  !"#$%&'()*+,-./0123456789:;<=>?isa`!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_&/bin/sh0123456789abcdef0123456789ABCDEF01Code point 0x%lX is not Unicode, requires a Perl extension, and so is not portablepanic: memory wrapCan't localize through a reference"%s" %s %s can't be in a packageThe %s function is unimplementedUnsupported directory function "%s" calledUnsupported socket function "%s" calledInsecure dependency in %s%sOut of memory! Modification of a read-only value attemptedModification of non-creatable hash value attempted, subscript "%-p"Modification of non-creatable array value attempted, subscript %dCan't use an undefined value as %s referenceCan't use string ("%-32p"%s) as %s ref while "strict refs" in useCan't use string ("%.32s") as %s ref while "strict refs" in useCan't use %s ref as %s refUnsuccessful %s on filename containing newlineUnquoted string "%s" may clash with future reserved wordSemicolon seems to be missingUse of uninitialized value%-p%s%sUse of uninitialized value%s%s%s `````````l``````````````````@L`A`A`A`A`A`A`A`A`A`A`A`A`A`A`AQQQQQQQQQQ`A`A`A`A`A`A`ASgSCSCSCSCSgCCCgCgCgCOCGCCCGCCCCCCCCCoCgCCCCCgCCCgCC`A`A`A`AaA`ASgSCSCSCSCSgCCCgCgCgCOCGCCCGCCCCCCCCCoCgCCCCCgCCCgCC`A`A`A`A`                               @ `@@@@@`@@`@@@@@@@@@O``@@`@@@`CCCCCOCCCCCCCCCCCCCCCCC@CCCCCCCOCCCCCOCCCCCCCCCCCCCCCCC@CCCCCCCOSKIPIMPLICITNAUGHTYVERBARG_SEENCUTGROUP_SEENUSE_RE_EVALNOSCANGPOS_SEENGPOS_FLOATANCH_MBOLANCH_SBOLANCH_GPOSRECURSE_SEENPESSIMIZE_SEENMULTILINESINGLELINEFOLDEXTENDEDEXTENDED_MORENOCAPTUREKEEPCOPYCHARSET0CHARSET1CHARSET2STRICTSPLITUNUSED_BIT_12UNUSED_BIT_13UNUSED_BIT_14UNUSED_BIT_15NO_INPLACE_SUBSTEVAL_SEENUNBOUNDED_QUANTIFIER_SEENCHECK_ALLMATCH_UTF8USE_INTUIT_NOMLUSE_INTUIT_MLINTUIT_TAILIS_ANCHOREDCOPY_DONETAINTED_SEENSUCCEEDSEOLMEOLEOSNBOUNDNBOUNDLNBOUNDUNBOUNDAREG_ANYSANYANYOFANYOFDANYOFLANYOFPOSIXLANYOFHANYOFHbANYOFHrANYOFHsANYOFRANYOFRbANYOFHbbmNANYOFMNPOSIXDNPOSIXLNPOSIXUNPOSIXACLUMPBRANCHLEXACTEXACTLEXACTFEXACTFLEXACTFUEXACTFAAEXACTFAA_NO_TRIEEXACTFUPEXACTFLU8LEXACT_REQ8EXACTFU_REQ8EXACTFU_S_EDGELNBREAKTRIECAHOCORASICKAHOCORASICKCNOTHINGSTARPLUSCURLYCURLYNCURLYMCURLYXWHILEMSROPENSRCLOSEREFFREFFLREFFUREFFAREFNREFFNREFFLNREFFUNREFFANLONGJMPBRANCHJIFMATCHUNLESSMSUSPENDIFTHENGROUPPMINMODLOGICALRENUMGOSUBGROUPPNINSUBPDEFINEPENDLIKEOPFAILVERBMARKPOINTCUTGROUPKEEPSLOOKBEHIND_ENDOPTIMIZEDPSEUDOREGEX_SETTRIE_nextTRIE_next_failEVAL_BEVAL_B_failEVAL_postponed_ABEVAL_postponed_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_minCURLY_B_min_failCURLY_B_maxCURLY_B_max_failCOMMIT_nextCOMMIT_next_failMARKPOINT_nextMARKPOINT_next_failSKIP_nextSKIP_next_failCUTGROUP_nextCUTGROUP_next_failKEEPS_nextKEEPS_next_failREF_nextREF_next_failarylen_pbackrefcheckcallcollxfrmdebugvardestructenvelemhintselemhookelemisaelemlvrefmglobnkeysnonelemovrldpackelemposregdataregdatumsigsigelemsubstrtaintuvarnull operationstubpushmarkwantarrayconstant itemscalar variableglob valueglob elemprivate variablepadsv scalar assignmentprivate arrayprivate hashprivate valueref-to-glob castscalar dereferencearray lengthsubroutine dereferenceanonymous subroutinesubroutine prototypereference constructorsingle ref constructorreference-type operatorblessquoted execution (``, qx)append I/O operatorregexp internal guardregexp internal resetregexp compilationpattern match (m//)pattern quote (qr//)substitution (s///)substitution iteratortransliteration (tr///)list 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)numeric bitwise and (&)numeric bitwise xor (^)numeric bitwise or (|)string bitwise and (&.)string bitwise xor (^.)string bitwise or (|.)integer negation (-)notnumeric 1's complement (~)string 1's complement (~)smart matchhexoctrindexcryptucfirstlcfirstquotemetaarray dereferenceconstant array elementindex/value array sliceeach on arrayvalues on arraykeys on arrayhash dereferencekey/value hash slicearray or hash lookupsplitlist sliceanonymous array ([])anonymous hash ({})empty anon hash/arraysplicepushpopunshiftreversegrepgrep iteratormap iteratorflipfloprange (or flip)range (or flop)logical and (&&)logical or (||)logical xordefined or (//)conditional expressionlogical and assignment (&&=)logical or assignment (||=)defined or assignment (//=)subroutine entrysubroutine exitlvalue subroutine returncheck subroutine argumentssubroutine argumentcallerwarndiesymbol resetline sequencedebug next statementiteration finalizerblock entryblock exitforeach loop entryforeach loop iteratorloop exitredodumpmethod lookupmethod with known namesuper with known namegiven()leave given blockwhen()leave when blockfilenobinmodeuntietieddbmopendbmcloseselect system callgetcwrite exitsaysysseeksysreadsyswriteeoftellfcntlioctlflocksendrecvbindconnectlistenacceptshutdowngetsockoptsetsockoptgetsocknamegetpeername-R-W-r-w-x-e-s-M-O-o-z-S-b-f-d-u-g-k-l-t-Tsymlinkreadlinkopendirreaddirtelldirseekdirrewinddirclosedirforkwaitwaitpidkillgetppidgetpgrpgetprioritytimesalarmsleepshmgetshmctlshmreadshmwritemsggetmsgctlmsgrcvsemopsemgetsemctldo "file"eval hintseval "string"eval "string" exiteval {block}eval {block} exitgethostbynamegethostbyaddrgethostentgetnetbynamegetnetbyaddrgetnetentgetprotobynamegetprotobynumbergetprotoentgetservbynamegetservbyportgetserventsethostentsetnetentsetprotoentsetserventendhostentendnetentendprotoentendserventgetpwnamgetpwuidgetpwentsetpwentendpwentgetgrnamgetgrgidgetgrentsetgrentendgrentgetloginunknown custom operatorCORE:: subroutineArray/hash switch__SUB__fcprivate subroutinelist of private variableslvalue ref assignmentlvalue array referenceanonymous constantderived class testcomparison chainingcomparand shufflingtry {block}try {block} exitpop trycatch {} blockpush defer {} blockboolean type testweakref type testreference weakenreference unweakenhash element exists ormethod startinitialise fieldfreed opgvsvpadsvpadsv_storepadavpadhvpadanyrv2gvrv2svav2arylenrv2cvanoncodesrefgenrcatlineregcmayberegcresetsubstsubstconttranstransrsassignaassignschopschompi_preinci_predeci_postinci_postdecpowi_multiplyi_dividei_modulorepeati_addi_subtractmulticoncatleft_shiftright_shifti_lti_gti_lei_gei_eqi_nei_ncmpsltsgtslesnescmpnbit_andnbit_xornbit_orsbit_andsbit_xorsbit_ori_negatencomplementscomplementsmartmatchrv2avaelemfastaelemfast_lexaelemfastlex_storekvasliceaeachavaluesakeysrv2hvhelemkvhslicemultiderefjoinlsliceanonlistanonhashemptyavhvgrepstartgrepwhilemapstartmapwhileflipdorcond_exprandassigndorassignentersubleavesubleavesublvargcheckargelemargdefelemlineseqnextstatedbstateunstackenterleaveenteriterenterloopleaveloopmethod_namedmethod_supermethod_redirmethod_redir_superentergivenleavegivenenterwhenleavewhenpipe_opsselectenterwriteleavewriteprtfsockpairgsockoptssockoptftrreadftrwriteftrexecftereadftewritefteexecftisftsizeftmtimeftatimeftctimeftrownedfteownedftzeroftsockftchrftblkftfileftdirftpipeftsuidftsgidftsvtxftlinkftttyfttextftbinaryopen_dirtmsdofilehintsevalleaveevalentertryleavetryghbynameghbyaddrghostentgnbynamegnbyaddrgnetentgpbynamegpbynumbergprotoentgsbynamegsbyportgserventshostentsnetentsprotoentsserventehostentenetenteprotoenteserventgpwnamgpwuidgpwentspwentepwentggrnamggrgidggrentsgrentegrentcustomcoreargsavhvswitchruncvpadcvintrocvclonecvpadrangerefassignlvrefslicelvavrefanonconstcmpchain_andcmpchain_dupentertrycatchleavetrycatchpoptrypushdeferhelemexistsormethstartinitfieldfreedCONSTRUCTSTARTWHENBLOCKGIVENLOOP_ARYLOOP_LAZYSVLOOP_LAZYIVLOOP_LISTLOOP_PLAINDEFERHUPQUITTRAPABRTBUSFPEKILLUSR1SEGVUSR2PIPESTKFLTCHLDCONTTSTPTTINTTOUURGXCPUXFSZVTALRMPROFWINCHPWRSYSNUM32NUM33RTMINNUM35NUM36NUM37NUM38NUM39NUM40NUM41NUM42NUM43NUM44NUM45NUM46NUM47NUM48NUM49NUM50NUM51NUM52NUM53NUM54NUM55NUM56NUM57NUM58NUM59NUM60NUM61NUM62NUM63RTMAXIOTPOLLconstant lexical array elementconst lexical array element storesubroutine argument default valueredirect method with known nameredirect super method with known namePerlIOPerlIO::Layer::NoWarningsPerlIO::LayerUnknown PerlIO layer "%.*s"PERLIOperlio.cPerlIO::Layer::findsize expected by this perlPerlIO layer instance sizerefcnt_inc: fd %d: %d <= 0 refcnt_inc: fd %d < 0 refcnt_dec: fd %d: %d <= 0 refcnt_dec: fd %d < 0 refcnt: fd %d: %d <= 0 refcnt: fd %d < 0 r+IrIwUnknown PerlIO layer "scalar"HashCodeTMPDIRcrlfpendingperliostdiounixrawRecursive call to Perl_load_module in PerlIO_find_layerUsage class->find(name[,load])Invalid separator character %c%c%c in PerlIO layer specification %sArgument list not closed for PerlIO layer "%.*s"panic: PerlIO layer array corruptPerlIO layer function table size%s (%lu) does not match %s (%lu)%s (%lu) smaller than %s (%lu)refcnt_dec: fd %d >= refcnt_size %d refcnt: fd %d >= refcnt_size %d Don't know how to get file nameMore than one argument to open(,':%s')/tmp/PerlIO_XXXXOctal number > 037777777777Illegal %s digit '%c' ignoredinqs#silence compiler warningBinary number > 0b11111111111111111111111111111111Hexadecimal number > 0xffffffffIllegal octal digit '%c' ignored4TtqN+AA%s: %u: panic: %s; errno=%d locale.cUTFutfint_curr_symbolmon_decimal_pointmon_thousands_sepmon_groupingpositive_signnegative_signcurrency_symbolint_frac_digitsint_p_cs_precedesint_p_sep_by_spaceint_n_cs_precedesint_n_sep_by_spaceint_p_sign_posnint_n_sign_posn; codeset=%sunsetthe standard localea fallback localeFailed to fall back toFalling back toLANGUAGEPERL_SKIP_LOCALE_INITLC_ALLPERL_BADLANG LANGUAGE = %c%s%c, LC_ALL = %c%s%c, LC_ALL=ABCDEFGHIJKLMNOPQRSTUVWXYZ %.*s = "%s", LANG = %c%s%c perl: warning: %s %s ("%s"). perl: warning: %s %s. PERL_UNICODELC_CTYPELC_NUMERICLC_COLLATELC_TIMELC_MESSAGESLC_MONETARYLC_ADDRESSLC_IDENTIFICATIONLC_MEASUREMENTLC_PAPERLC_TELEPHONELC_NAME(%u): Can't change locale for %s(%d) from '%s' to '%s'Could not find current %s locale, errno=%dUnknown locale category %d%s%sLocale '%s' is unsupported, and may crash the interpreter. Locale '%s' contains (at least) the following characters which have unexpected meanings: %s The Perl program will use the expected meanings The following characters (and maybe others) may not have the same meaning as the Perl program expects: %s perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: are supported and installed on your system.   .ABCDEFGHIJKLMnopMismatched brackets in templateNo group ending character '%c' found in templatepack/unpack repeat count overflow()-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 %s'/' does not take a repeat count in %sWithin []-length '*' not allowed in %sWithin []-length '%c' not allowed in %spanic: marks beyond string end, m=%p, marks=%p, level=%dMalformed UTF-8 string in '%c' format in unpackCharacter in '%c' format wrapped in unpackCharacter(s) in '%c' format wrapped in %s'@' 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 packpanic: predicted utf8 length not available, for '%c', aptr=%p end=%p cur=%p, fromlen=%zuCharacter 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 packCan only compress unsigned integers in packAttempt to pack pointer to temporary valueField too wide in 'u' format in packpanic: string is shorter than advertised, aptr=%p, aend=%p, buffer=%p, todo=%zdsSiIlLqQjJfFdDpP(sSiIlLxXnNvV@.Invalid type ',' in %sMalformed integer in [] in %sInvalid type '%c' in %s'X' outside of string in %sCannot compress %g in packCannot pack %g with '%c'Invalid type '%c' in unpackU0 mode on a byte string%.*lufFdDcCsSiIlLnNUWvVqQjJNegative '/' count in unpack@XxuOut of memory during pack()aAZInvalid type '%c' in pack'%%' may not be used in pack"9$;$;:$;$;$;$;$;::$;$;$;$;$;$;$;$;$;$;$;$;$;$;$;$;::9$;$;$;$;$;9$;$;$;$;$;$;$;9$;$;$;$;:$;$;9$;:$;$;$;$;$;$;:9$;$;$;$;$;9$;$;$;$;$;$;$;$;$;$;$;$;:$;::\^~~]~~~~~K~~~~~~~~~~~~~~~~~FJFI\5\~%W~LL_~*F~*F~^_~JE~tY*FXX~F~~~~~~FIOZ~Y~LNzV~U~JE~/UuT~M~RJEPdO~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~K~~~~~~~~~~~~~~~~~FJ~~~~~~~~L~~W~H~~~~JE~~H~\[~~~~~~~~~~~~~~~~N~~[~H~~~~M~~H~2ObPPuPPPPPPPPPPPPPPPPPPPPPP}H*P}P`PʕPڃPE֋PP[P}PPPPPP}ޛ(PP`HPpPψPFP'Ps/PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP×PڃPPPPPPP2PPPPPPPPPPPPPPPPHPPPψPPPP'PPPAA@G?`@Undefined subroutine in sortUndefined sort subroutine "%-p" called/proc/self/exeCharacter following "\c" must be printable ASCII terminates \%c early. Resolved as "\%c is not allowed; the permissible max is %sUse \x{...} for more than two hex charactersUse "%c" instead of "\c{"\x{%02x}Non- character %lo%lXUse of code point %sMissing braces on \o{}Empty \o{}Non-octal characterMissing right brace on \o{}Empty \xNon-hex characterEmpty \x{}Missing right brace on \x{}"\c%c" is more clearly written sUTCmn;Zx0N<[y1Ov@v@vvN@8@@@@A0oUnC,libreffilename, flags=0DynaLoaderDynaLoader.cDynaLoader::dl_load_fileDynaLoader::dl_unload_fileDynaLoader::dl_find_symbolDynaLoader::dl_undef_symbolsDynaLoader::dl_install_xsubDynaLoader::dl_errorPERL_DL_NONLAZYperl_name, symref, filename="$Package"libhandle, symbolname, ign_err=0;ELEF\F7FC=   "$&(*,.02;~,AFHJLNo,m,p,b,n,d,ŧDEprv`bdfhjlnprtvxz|~   "$&(*,.1!"*bJ}c,Ƨ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~`(8HY[]_h2!`!!$,`,:>g,i,k,r,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@BDFHJLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{~ħ§ǧɧЧ֧ا!p| @nD=NFD;D5DFSTFFLFFIFLFIFFBBBBBBBBBBonmlkjih/.-,+*)(     BAY W TH15RJ NSSAx   "$&(*,.I2469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvy{}SC=   "$&(*,.02;~,AFHJLNo,m,p,b,n,d,ŧDEprv`bdfhjlnprtvxz|~   "$&(*,.1!"*bJ}c,Ƨ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~`(8HY[]_h2!`!!$,`,:>g,i,k,r,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@BDFHJLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{~ħ§ǧɧЧ֧ا!p| @nDmNvDkDeDvStFflFfiFlFiFfBEBEEBBBBBEBEEBEBEEBAY W TH15J NSsa   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~sSTVY[`cihoru   #%')+-/13e,<f,BGIKMOqsw{P0acegikmoqsuwy{}   !#%')+-/a-'---24>ABJcK   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}a 0@QSUW`prvzx|kN!p!!$0,a,k}}h,j,l,QqPRs,v,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|yef\aljSçȧʧѧק٧A( `n"ALTx   "$&(*,.2469;=?ACEGJLNPRTVXZ\^`bdfhjlnprtvy{}C=   "$&(*,.02;~,AFHJLNo,m,p,b,n,d,ŧDEprv#+`dfhjlnprtvxz|~   "$&(*,.1p}c,Ƨ   "$&(*,.02468:<>@BDFHJLNPRTVXZ\^bdfhjlnprtvxz|~(8HY[]_h2!`!!$,`,:>g,i,k,r,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@BDFHLNPRTVXZ\^`bdfhjl"$&(*,.2468:<>@BDFHJLNPRTVXZ\^`bdfhjlny{~ħ§ǧɧЧ֧ا!p| @nJ`b*"!&!E+!SK*!a   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~STVY[`cihoru   #%')+-/13e,<f,BGIKMOqsw{P0acegikmoqsuwy{}   !#%')+-/a-'---p   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{} 0@QSUW`prvzx|kN!p!!$0,a,k}}h,j,l,QqPRs,v,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ACEGIKMOQSUWY[]_acegikm#%')+-/3579;=?ACEGIKMOQSUWY[]_acegikmoz|yef\aljSçȧʧѧק٧A( `n"ia   !#%')+-/357:<>@BDFHKMOQSUWY[]_acegikmoqsuwz|~sSTVY[`cihoru   #%')+-/13e,<f,BGIKMOqsw{P0acegikmoqsuwy{}   !#%')+-/a-'---24>ABJcK   !#%')+-/13579;=?ACEGIKMOQSUWY[]_acegikmoqsuwy{}a 0@QSUW`prvzx|kN!p!!$0,a,k}}h,j,l,QqPRs,v,?,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ACEGIKMOQSUWY[]_acegikm#%')Filehandle %2p opened only for %sputFilehandle opened only for %sput (Are you trying to call %s%s on dirhandle%s%-p?) Invalid version format (dotted-decimal versions require at least three parts)Invalid version format (no leading zeros)Invalid version format (maximum 3 digits between decimals)Invalid version format (no underscores)Invalid version format (multiple underscores)Invalid version format (underscores before decimal)Invalid version format (0 before decimal required)Invalid version format (negative version number)Invalid version format (non-numeric data)Invalid version format (alpha without decimal)Invalid version format (misplaced underscore)Invalid version format (fractional part required)Invalid version format (dotted-decimal versions must begin with 'v')Invalid version format (trailing decimal)Integer overflow in version %dUnknown Unicode option letter '%c'Invalid number '%s' for -C option. Unknown Unicode option value %luHASH_FUNCTION = %s HASH_SEED = 0xpanic: my_snprintf buffer overflowVersion string '%s' contains invalid data; ignoring: '%s'panic: my_vsnprintf buffer overflow%s: loadable library and perl binaries are mismatched (got %s handshake key %p, needed %p) Perl API version %s of %-p does not match %s%-p object version %-p does not match perl: warning: Non hex character in '$ENV{PERL_HASH_SEED}', seed only partially set perl: warning: strange setting in '$ENV{PERL_PERTURB_KEYS}': '%s' vaJp@Size magic not implementedopen<open>(unknown)NCODINGUUUUUUUUUUUUUUUUUUUUsetenv key (encoding to utf8)Wide character in %ssetenvrequire__beforerequire__afterFETCHSTOREDELETEFETCHSIZECLEARNEXTKEYFIRSTKEYEXISTSsubstr outside of stringa negative integerassigning to $^O$0Can't set $0 with prctl(): %sCLDIGNORE__DIE__No such hook: %sNo such signal: SIG%sDEFAULTsignoerrnostatusbandareword_filehandlesitwisendirectodule_trueore_delimsultidimensionalostderef_qqefaliasingignaturesnievalW-WW?\^^\^^^WW|\WWY^L_WW\D]]W]WWWWWWWWW4XWWZZWWZZW@ZWa[[WWWWWWWWWWWWWYYYYWWWWWWWWWWWWWWWWWWWWWWWWWWWXXWXWWWWWWWWWWWWWWWWWWWWWWWWWWWWW/YW[@@j%[@ @@@@@@@@/@@@@@@@@@@`@@~x@@@@@[Z@@@@@@@@@@ތ`@@@@@@@@@@@@@@@@@@@@@@@@@@@0@Ɠ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@҉@̶d4|LԵL,$Y8zڻx@غ>>]@#>>>>>>>T>̽ԾAttempt to set unknown hook '%s' in %%{^HOOK}${^HOOK}{%.*s} may only be a CODE reference or undefFETCHSIZE returned a negative valuepanic: magic_setdbline len=%ld, ptr='%s'Attempt to set length of freed arrayAttempt to use reference as lvalue in substrAssigned value is not a referenceAssigned value is not a%s reference${^ENCODING} is no longer supportedSetting $/ to a reference to %s is forbiddenSetting $/ to a%s %s reference is forbiddenAssigning non-zero to $[ is no longer possibleSignal SIG%s received, but no signal handler set. SIG%s handler "%2p" not defined. SIG%s handler "__ANON__" not defined. Maximal count of pending signals (%lu) exceededpanic: hv_store() failed in set_mro_private_data() for '%.*s' %dpanic: hv_store() failed in mro_register() for '%.*s' %dCan't linearize anonymous symbol tableRecursive inheritance detected in package '%2p'Can't call mro_isa_changed_in() on anonymous symbol tableCan't call mro_method_changed_in() on anonymous symbol tablepanic: invalid MRO!classnameNo such class: '%-p'!Invalid mro name: '%-p'mro::method_changed_indfsmro_core.celseif should be elsifX@hp@XaI$ ""R"3"""!4!]#>#"!|##  % 444444444444444444444444 r I 44 : 4 4m l44 {H80P0Pp888888888888888888888888888888888888888@8( x 8 H h  xxxxxxxxxxxxxxxxpxxxxxxxPxxx{ 1   [ (GR p|builtin::arga CODE&%-pbuiltin::indexedbuiltin::%-pbuiltin::falsebuiltin::truebuiltin.cbuiltin::importbuiltin::is_boolbuiltin::weakenbuiltin::unweakenbuiltin::is_weakbuiltin::blessedbuiltin::refaddrbuiltin::reftypebuiltin::ceilbuiltin::floorbuiltin::is_taintedbuiltin::trimbuiltin::created_as_stringbuiltin::created_as_numberbuiltin::export_lexicallyBuilt-in function '%s%s' is experimentalpanic: unhandled opcode %ld for xs_builtin_func1_scalar()export_lexically can only be called at compile timeOdd number of elements in export_lexicallyExpected a reference in export_lexicallyExpected %s reference in export_lexicallypanic: unhandled opcode %ld for xs_builtin_func1_void()builtin::import can only be called at compile timepanic: unrecognised builtin_const value %ld4444444444'%-p' is not recognised as a builtin functionMalformed attribute stringparam0123456789._%2p::ISA, %-p%s::newclass.c$(self)%(params)$selffield initialiser expressionClass attribute %-p requires a valueUnrecognized class attribute %-pUnrecognized field attribute %-pUnexpected characters while parsing class :isa attribute: %sClass already has a superclass, cannot add anotherClass :isa attribute requires a class but %10p is not oneOnly scalar fields can take a :param attributeField already has a parameter name, cannot add anotherCannot assign :param(%-p) to field %-p because that name is already in useCannot '%s' outside of a 'class'Odd number of arguments passed to %10p constructorUnrecognised parameters for %10p constructor: %-pOdd number of elements in hash field initializationCannot invoke method %7p on a non-instanceCannot invoke method on a non-instanceCannot invoke a method of %10p on an instance of %10pCannot reopen existing class %10pCannot create class %2p as it already has a non-empty @ISARequired parameter '%-p' is missing for %10p constructor (utf8)panic: hv name too long (%lu)panic: hv_placeholders_p%ld/%ldpanic: hv_placeholders_setfetchdeleteAttempt to free nonexistent shared string '%s'%sSorry, hash keys must be smaller than 2**31 bytesUse of each() on hash after insertion without resetting hash iterator results in undefined behaviorAttempt 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 hashpanic: refcounted_he_value bad flags %lxpanic: refcounted_he_chain_2hv bad flags %lxpanic: refcounted_he_fetch_pvn bad flags %lxpanic: refcounted_he_fetch_sv bad flags %lxpanic: refcounted_he_new_sv bad flags %lxpanic: cop_store_label illegal flag bits 0x%lx|| ||{{{{}~}}}}}}v}p}"}}}>h\PD8, ؋̋xl`TE:/$׍̍ti^SHzm`SF9,ޏяďvudWJ=0# ժȪzm`SF9=դȤzm`SF9,ޣѣģquh[NA4' ui]QE9-! ymaCannot modify shared string table in hv_%sNEGATIVE_INDICESEXTENDPUSHPOPUNSHIFTSTORESIZEpanic: av_extend_guts() negative count (%ld)Out of memory during array extendE_DEBUG_FLAGSNot %s referencepanic: pp_match?? already matched once, core dumpedREADLINE$&*(){}[]'";\|?<>~`panic: pp_iter, type=%uSubstitution loopa subroutineNot a CODE referenceUndefined subroutine calledClosure prototype calledDB::lsubNo DB::sub routine definedNot an ARRAY referenceNot a HASH referenceCan't call method "%-p" on unblessed referenceUseless assignment to a temporaryCan't return array to lvalue scalar contextCan't return hash to lvalue scalar contextCan't return %s to lvalue scalar contextOdd number of elements in hash assignmentReference found where even-sized list expectedpanic: attempt to copy freed scalar %pAssigned value is not a SCALAR referenceInfinite recursion via empty patternString shorter than min possible regex match (%zd < %zd) panic: pp_match start/end pointers, paren=%d, start=%zd, end=%zd, s=%p, strend=%p, len=%zdglob failed (child exited with status %d%s)utf8 "\x%02X" does not map to UnicodeUse of freed value in iterationpanic: pp_subst, pm=%p, orig=%pDeep recursion on anonymous subroutineDeep recursion on subroutine "%-p"Can't use string ("%-32p"%s) as a subroutine ref while "strict refs" in useUndefined subroutine &%-p calledCan't modify non-lvalue subroutine call of &%-pUse of reference "%-p" as array indexCan't call method "%-p" without a package or object referenceCan't call method "%-p" on an undefined value8ȺX(y`{Ha HASHan ARRAYCsv_vcatpvfnpanic: del_backref, svp=0Can't unweaken a nonreferenceReference is not weakNot a subroutine referencesprintfjoin or string in %.*gsv_vcatpvfn()BbDdiOouUXxCannot printf %g with '%c'panic: frexp: %Lg%c%+d"%end of stringMissing argument in %sRedundant argument in %s%2p::%2pBizarre copy of %s in %sBizarre copy of %sCannot copy to %s in %sCannot copy to %sLVALUEVSTRINGFORMATOBJECTGLOBCan't upgrade %s (%lu) to %luArgument "%s" isn't numericCan't weaken a nonreferenceReference is already weaksv_len_utf8utf8_mg_pos_cache_updatesv_pos_u2b_cachesv_pos_b2uWide charactercat_decodeAttempt to bless into a classWide character in $/Bad filehandle: %2pBad filehandle: %-p{%s}[%ld]within existshash element$_$.${$/}Integer overflow in format string for %sHexadecimal float: internal error (entry)Hexadecimal float: internal error (overflow)panic: %s cache %lu real %lu for %-ppanic: del_backref, *svp=%p phase=%s refcnt=%lupanic: del_backref, *svp=%p, sv=%pDESTROY created new reference to dead object '%2p'Attempt to free unreferenced scalar: SV 0x%lxCannot yet reorder sv_vcatpvfn() arguments from va_listinternal %%p might conflict with future printf extensionsvector argument not supported with alpha versionsNumeric format result too largeMissing argument for %%n in %sInvalid conversion in %sprintf: panic: attempt to copy value %-p to a freed scalar %ppanic: attempt to copy freed scalar %p to %pUndefined value assigned to typeglobsv_upgrade from type %d down to type %dpanic: attempt to undefine a freed scalar %ppanic: sv_chop ptr=%p, start=%p, end=%pDon't know how to handle magic of type \%opanic: sv_setpvn_fresh called with negative strlen %ldArgument "%s" isn't numeric in %spanic: sv_pos_b2u: bad byte offset, blen=%lu, byte=%lupanic: sv_setpvn called with negative strlen %ldInvalid argument to sv_cat_decodeCan't bless non-reference valueCan't bless an object referencepanic: reference miscount on nsv in sv_replace() (%lu != 1)Can't coerce %s to integer in %sCan't coerce %s to number in %sLost precision when incrementing %f by 1Argument "%s" treated as 0 in increment (++)Lost precision when decrementing %f by 1Can't coerce %s to string in %spanic: sv_insert, midend=%p, bigend=%psemi-panic: attempt to dup freed stringpanic: magic_killbackrefs (freed backref AV/SV)panic: magic_killbackrefs (flags=%lx)hth\PD8, xl`kdXL@4( ZtV)#########T(#################R)#T(#,)####)##T(#####T(%%c'3%%%c'c'c'c'c'c'c'%c'c'c'c'c'j%c'c'R%c'c'c'c'c'c'c'c'%%:%%%%%c'3c'c'c'c'$$"$c'c'#c'#c'c'R%x?>>>>>>>>>>>>B>>>>B>x?>x?>>>>x?>>x?>>>>>x?@s@s@s@s@s@s@s@s@s@s@s@s@cUs@s@s@s@6Us@@s@@s@s@s@s@@s@s@@s@s@s@s@s@@k$>>>>k$>k$>>>>>>>>>k$>>>>>k$$####$#$#########$#####$(0'0')0'0'0'0'0'0'0'(0'(0'0'(2"p#42"2p#p#p#p#p#p#p#"p#p#p#p#p#`"p#p#H"p#p#p#p#p#p#p#p#2"0""222p#"p#p#p#p#!!!p#p#?p#p#p#H";;O1,/,/,/,/,/,/,/,/,/7/>1,/,/*4,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/..,/,/,/,/,/,/,/,/.,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/.,/,/,/,/,/,/,/,/,/,/,/,/Q3,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/,/000/**4H+$,$,**%0***l+****l+******,*,*,,*0**++*\/*{+*************************************l+***********************l+*************l+*************$,..3~-**l+**l+***T3$,~-**j0l+*************l+******U*U*********D******l+*******************D*************/*l+l+*l+**l+****l+***!-!-!-l+l+l+******l+*l+*l+l+l+l+l+l+l+*l+*l+**l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+l+*********l+**l+l+l+l+l+l+**************l+l+**********l+**l+*l+*********************************l+***l+,L,H,H,L, -,X-****H-8-(null)00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899DESTROY A@ A( (!0 `  0000PP(( hhhhn  ((C?@C@Not a GLOB referencea symbolNot a SCALAR referenceFILEHANDLEPACKAGE(anonymous)Illegal division by zeroIllegal modulus zeroCan't take %s of %gInteger overflow in srand0 but trueCannot chr %gSPLICESplit loop[out of range]Not enoughToo manyreference to one of [$@%*]scalar referencereference to one of [$@%&*]%s arguments for %spanic: unknown OA_*: %xfewat least at most Use of strings with code points over 0xFF as arguments to %s operator is not allowedCan't find an opnumber for "%d%lu%4p"Attempt to bless into a freed packageAttempt to bless into a referenceExplicit blessing to '' (assuming package main)Constant subroutine %-p undefinedNegative repeat count does nothingNon-finite repeat count does nothingOut of memory during list extendOut of memory during string extendInvalid negative number (%-p) in chrCan't modify index/value array slice in list assignmentCan't modify keys on array in list assignmentpanic: avhv_delete no longer supportedCan't modify key/value hash slice in %s assignmentOdd number of elements in anonymous hashsplice() offset past end of arraypanic: unimplemented op %s (#%d) calledType of arg %d to &CORE::%s must be array referenceType of arg %d to &CORE::%s must be hash%s referenceType of arg %d to &CORE::%s must be %sToo %s arguments for subroutine '%-p' (got %lu; expected %s%lu)Odd name/value argument for subroutine '%-p'XXXXXX0YPYxYXXXXYXYXXhXabbbbbbbbL`bcbbb@00܏̌,|܏@ A( (!0 `  0000PP(( hhhhn  ((panic: stack_grow() negative count (%ld)Out of memory during stack extendpanic: savestack overflows I32_MAXpanic: pad offset %lu out of range (%p-%p)panic: save_alloc elems %lu out of range (%ld-%ld)panic: corrupt saved stack index %ldpanic: leave_scope inconsistency %uCan't call destructor for 0x%p in global destruction PPpHpP0H(`(H88@PxxX@@@@@@@@`X xhUnknown error pathnameCompilation errorUnit check errorin object hookin object in ARRAY hookINCDIRv%d.%d.0Can't locate %s: %s/loader/0x%lx/%s@INC entryCan't locate %s: %s: %s module).ph (did you run h2ph?)Can't locate %s%0*.*f%#0*.*f%#*.*f%*.*fNull picture in formlineNot enough format argumentsE0panic: bad gimme: %d finallyExiting %s via %sLabel not found for "%s %-p" (in cleanup) %-p%-p%s has too many errors. (eval)No DB::DB routine defineda readonly valuea temporaryGoto undefined subroutineDB::gotogoto must have labelpanic: goto, type=%u, ix=%ldCan't find label %d%lu%4p_<(eval %lu)[%s:%u]_<(eval %lu)panic: return, type=%udefaultpseudo-blocksubstitutiondefer blockCan't "goto" into a binary or list expressionCan't "goto" into the middle of a foreach loopCan't "goto" into a "given" blockTarget of goto is too deeply nestedCan't "goto" into a "defer" block%-p did not return a true value%-pCompilation failed in requireInvalid \0 character in %s for %s: %s\0%sPerls 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, stoppedMissing or undefined argument to %sMissing or undefined argument to %s via %%{^HOOK}{require__before}Attempt to reload %s aborted. Compilation failed in requireBareword in require maps to disallowed filename "%-p"Bareword in require contains "\0"Bareword in require contains "/."Can't locate object method "INC", nor "INCDIR" nor string overload via package %10p %s in @INC%s %s hook died--halting @INC search (you may need to install the (change .h to .ph maybe?) (did you run h2ph?)Can't locate %s in @INC%-p (@INC entries checked:%-p)do "%s" failed, '.' is no longer in @INC; did you mean do "./%s"?Smart matching a non-overloaded object breaks encapsulationRepeated format line will never terminate (~~ and @#)Range iterator outside integer rangeCan't "%s" outside a loop blockCan't "%s" out of a "%s" blockCan't return %s from lvalue subroutineGoto undefined subroutine &%-pCan't goto subroutine outside a subroutineCan'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 blockUse of "goto" to jump into a construct is deprecatedCan't return outside a subroutineCan't "%s" outside a topicalizerCan't "continue" outside a when blockCan't "break" outside a given blockCan't "break" in a loop topicalizerchhhtgk$jled 32 non-portableNegative offset to vec in lvalue contextCan't modify keys in list assignment`VHWPWXW`WhWpWVxWWarning: unable to close filehandle %2p properly. Cannot complete in-place edit of %s: %sFilehandle STD%s reopened as %2p only for inputFilehandle STDIN reopened as %2p only for outputMore than one argument to '%c&' openMore than one argument to '>%c' openMore than one argument to '<%c' openpanic: sysopen with multiple args, num_svs=%ldWarning: unable to close filehandle %2p properly: %-pWarning: unable to close filehandle properly: %-pCan't rename %s to %s: %s, skipping fileCannot complete in-place edit of %s: failed to rename work file '%s' to '%s': %sFailed to close in-place work file %s: %sCan't do inplace edit: %s is not a regular fileCan't do inplace edit on %s: Cannot make temp name: %sThe stat preceding -l _ wasn't an lstatUnrecognized signal name "%-p"Can't kill a non-numeric process IDBad arg length for %s, is %lu, should be %ldglob failed (can't start child: %s)Can't exec "%s": %sCurrent directory has changedsysopenUnknown open() mode '%.*s'Missing command in piped openCan't open bidirectional pipeinplace openXXXXXXXXw++>&Can't open %s: %sprintUse of -l on filehandle %2pUse of -l on filehandlelstat$&*(){}[]'";\|?<>~` -cchmodchownunlinkutimeArg too short for msgsndecho |tr -s ' ' '\n\n\n\n'|LS_COLORSعwarn_categoriesflag_bitimmediatelyU+0x%s: %s (overflows)%s (empty string)%d bytes%s %s%s_reversedMalformed UTF-16 surrogateuppercasetitlecaselowercasefoldcaseẞſt\\\x{%lx}$%-p ===> [SELF] %lu [%s 0x%lx] [0x0] | %-4lu ???? +--%cx{%02lx}%cx%02lX%cx%02lx%c%03o%c%o%s...%scv ref: %s(NULL)\0WILDSV_UNDEFSV_NOSV_YESSV_ZEROSV_PLACEHOLDERCV(%s)FREED[%s] [UTF8 "%s"](%g)(%ld) [tainted]%*s{} { GV_NAME = %s-> %s%s = 0x%lx "%s" "%s" :: "->UNKNOWN(%d)UTF8 ,%ldNULL OP IN RUN (ex-%s) %s(0x%lx)PARENT*** WILD PARENT 0x%p TARG = %ld ,VOID,SCALAR,LIST,UNKNOWN,SLABBED,SAVEFREE,STATIC,FOLDED,MORESIBPRIVATE = (%s) PRIVATE = (0x%lx) GV = %-p (0x%lx) ARGS = %lu => 0x%lx NARGS = %ld CONSTS = (%-p) SV = %s PACKAGE = "%s" LABEL = "%s" HINTS = %08x FEATS = %08x SEQ = %u REDONEXTLASTOTHERREFCNT = %lu PV = "%-p" (0x%lx) INVMAP = 0x%lx TABLE = 0x%lx SIZE: 0x%lx %4lx: %2ld %02lxPMf_PRE %c%.*s%c PMf_PRE (RUNTIME) ,ONCE:USED,TAINTED,SCANFIRST,ALL,START_ONLY,SKIPWHITE,WHITE,NULLPMFLAGS = (%s) TARGOFF/GV = 0x%lx PMf_REPL = CODE_LIST = CODE_LIST = 0x%lx SUB %s = SUB = (xsub 0x%lx %d) FORMAT %s = PL_YesPL_NoMAINANONUNDEFINEDUNIQUESTANDARDPLUG-IN ] SV = 0 PADSTALE,PADTMP,ROK,WEAKREF,IsCOW,PCS_IMPORTED,SCREAM,IMPORT ),IsUV,SV = %s%s UNKNOWN(0x%lx) %s UV = %lu IV = %ld NV = %.*g RV = 0x%lx OFFSET = %lu PV = 0x%lx ( %s . ) CUR = %ld [BOOL %s] REGEXP = 0x%lx LEN = %ld COW_REFCNT = %d PV = 0 STASH USEFUL = %ld ARRAY = 0x%lx (offset=%ld) ALLOC = 0x%lx FILL = %ld MAX = %ld ,REAL,REIFY FLAGS = (%s) Elt No. %ld AUX_FLAGS = %lu (%d%s:%d hash quality = %.1f%% KEYS = %ld FILL = %lu RITER = %ld EITER = 0x%lx RAND = 0x%lx (LAST = 0x%lx) PMROOT = 0x%lx NAME = "%s" NAMECOUNT = %ld , "%s", (null) ENAME = %s ENAME = "%s" BACKREFS = 0x%lx MRO_WHICH = "%s" (0x%lx) CACHE_GEN = 0x%lx PKG_GEN = 0x%lx MRO_LINEAR_ALL = 0x%lx MRO_LINEAR_CURRENT = 0x%lx MRO_NEXTMETHOD = 0x%lx ISA = 0x%lx Elt %s [UTF8 "%s"] [CURRENT] HASH = 0x%lx REFCNT = 0x%lx AUTOLOAD = "%s" PROTOTYPE = "%s" COMP_STASH SLAB = 0x%lx START = 0x%lx ===> %ld ROOT = 0x%lx XSUB = 0x%lx XSUBANY = 0x%lx (CONST SV) XSUBANY = %ld GVGV::GV DEPTH = %ld FLAGS = 0x%lx OUTSIDE_SEQ = %lu PADLIST = 0x%lx HSCXT = 0x%p OUTSIDE = 0x%lx (%s) TYPE = %c TARGOFF = %ld TARGLEN = %ld TARG = 0x%lx FLAGS = %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 GPFLAGS = 0x%lx (%s) LINE = %u FILE = "%s" EGV IFP = 0x%lx OFP = 0x%lx DIRP = 0x%lx LINES = %ld 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' COMPFLAGS = 0x%lx (%s) EXTFLAGS = 0x%lx (%s) ENGINE = 0x%lx (%s) INTFLAGS = 0x%lx (%s) INTFLAGS = 0x%lx(Plug in) NPARENS = %lu LOGICAL_NPARENS = %lu LOGICAL_TO_PARNO = 0x%lx { } %-p PARNO_TO_LOGICAL = 0x%lx LASTPAREN = %lu LASTCLOSEPAREN = %lu MINLEN = %ld MINLENRET = %ld GOFS = %lu PRE_PREFIX = %lu SUBLEN = %ld SUBOFFSET = %ld SUBCOFFSET = %ld SUBBEG = 0x%lx %s SUBBEG = 0x0 PAREN_NAMES = 0x%lx SUBSTRS = 0x%lx PPRIVATE = 0x%lx OFFS = 0x%lx [ %ld:%ld%s QR_ANONCV = 0x%lx SAVED_COPY = 0x%lx MOTHER_RE = 0x%lx MAXFIELD = %ld FIELDS = 0x%lx Field No. %ld (%s) sv(\0) MAGIC = 0x%lx MG_VIRTUAL = &PL_vtbl_%s MG_VIRTUAL = 0x%lx MG_VIRTUAL = 0 MG_PRIVATE = %d MG_FLAGS = 0x%02X TAINTEDDIR MINMATCH REFCOUNTED GSKIP COPY DUP LOCAL BYTES MG_OBJ = 0x%lx PAT = %s MG_LEN = %ld MG_PTR = 0x%lx => HEf_SVKEY %2ld: %lu -> %lu MG_TYPE = PERL_MAGIC_%s MG_TYPE = UNKNOWN(\%o) %5lu %s SKIP,IMPLICIT,NAUGHTY,VERBARG_SEEN,CUTGROUP_SEEN,USE_RE_EVAL,NOSCAN,GPOS_SEEN,GPOS_FLOAT,ANCH_MBOL,ANCH_SBOL,ANCH_GPOS,PMf_MULTILINE,PMf_SINGLELINE,PMf_FOLD,PMf_EXTENDED,PMf_EXTENDED_MORE,PMf_KEEPCOPY,PMf_NOCAPURE,IS_ANCHORED,NO_INPLACE_SUBST,EVAL_SEEN,CHECK_ALL,MATCH_UTF8,USE_INTUIT_NOML,USE_INTUIT_ML,INTUIT_TAIL,SPLIT,COPY_DONE,TAINTED_SEEN,TAINTED,START_ONLY,SKIPWHITE,NULL, SV AV HV CVINTRO,MULTI,ASSUMECV,SHAREKEYS,LAZYDEL,HASKFLAGS,OVERLOAD,CLONEABLE,ANON,UNIQUE,CLONE,CLONED,NODEBUG,LVALUE,NOWARN_AMBIGUOUS,WEAKOUTSIDE,CVGV_RC,DYNFILE,AUTOLOAD,HASEVAL,SLABBED,NAMED,LEXICAL,ISXSUB,ANONCONST,SIGNATURE,REFCOUNTED_ANYSV,IsMETHOD,OOK,FAKE,READONLY,PROTECT,BREAK,pIOK,pNOK,pPOK,TEMP,OBJECT,GMG,SMG,RMG,arylen(#)rhash(%)debugvar(*)pos(.)symtab(:)backref(<)arylen_p(@)bm(B)overload_table(c)regdata(D)regdatum(d)env(E)envelem(e)fm(f)regex_global(g)hints(H)hintselem(h)isa(I)isaelem(i)nkeys(k)dbfile(L)dbline(l)shared(N)shared_scalar(n)collxfrm(o)tied(P)tiedelem(p)tiedscalar(q)qr(r)sig(S)sigelem(s)taint(t)uvar(U)uvar_elem(u)vstring(V)vec(v)utf8(w)destruct(X)substr(x)nonelem(Y)defelem(y)hook(Z)hookelem(z)lvref(\)checkcall(])extvalue(^)ext(~)UNOPBINOPLOGOPLISTOPPMOPSVOPPADOPPVOPLOOPCOPMETHOPUNOP_AUX,KIDS,PARENS,REF,MOD,STACKED,SPECIAL,CONST,KEEP,GLOBAL,CONTINUE,RETAINT,EVAL,NONDESTRUCT,HAS_CV,CODELIST_PRIVATE,IS_QRPVINVLSTPVIVPVNVPVMGREGEXPPVLVINVLISTPVGVPVAVPVHVPVCVPVFMPVIOPVOBJjk kkkIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIikIiIi4dcjjjjjhhhhhhhhhhhhhhhhhhhhjhhkP(`ЂȂ` ==ʖ============== = == = =33== =====11==33}=}====KKKK = ===================3========================================================================================================K=3 ================================== 44o...oՒ1 bcoWARNING: %lx changed from %lx to %lx Can't determine class of operator %s, assuming BASEOP (0x%lx) at 0x%lx %*s REFCNT = %ld %*s FLAGS = ( PARNO_TO_LOGICAL_NEXT = 0x%lx ???? - dump.c does not know how to handle this MG_LENWATCHING, %lx is currently %lx %123456789ABCDFY@\a\e\f\n\r\t\bPRINTpanic: POPSTACK at %s line %u, <%-p> %s %ld during global destructionEXECInsecure %s%sCan't fork: %sexecute on PATH, '.' not in PATHCan't %s %s%s%sunopenedclosedsocket%s%s on %s %s%s%-pInteger overflow in versionv.InfvinfInvalid version objectalpha->numify() is lossy%d.%03dv%ld.%ld/dev/urandomRANDOMDETERMINISTICPERL_HASH_SEED_DEBUGSBOX32_WITH_SIPHASH_1_3%02x PERTURB_KEYS = %d (%s)POSIX%.9fsecondXS_VERSIONv5.38.0%-p::%s$%-p::%s %-pbootstrap parameter %-pPERL_HASH_SEEDPERL_PERTURB_KEYSHX(80|/|/00|/|/|/0|/|/d0|/|/D0|/|/|/$0|/|/|/|/|/|/|/|/|/|/|/|/|/0|/|/|/|/|/|/|//|/|/|/|/|//_Can't fork, trying again in 5 secondspanic: kid popen errno read, n=%u89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}~§çħŧƧǧȧɧʧЧѧ֧קا٧p!;(p{|  @n`n"0CHANGUL SYLLABLE Insecure user-deReference to nonInvalid referencCode point too l%s[%lu] 0x%04lX .. INFTY %s[%lu] 0x%04lX .. 0x%04lX %s[%lu] 0x%04lX panic: attempting to append to an inversion list, but wasn't at the end of the list, final=%lu, start=%lu, match=%cpanic: Incorrect version for previously generated inversion list%sCan't dump inversion list because is in middle of iterating Quantifier unexpected on zero-length expression in regex m/%d%lu%4p/panic: unexpected varying REx opcode %dLookbehind longer than %lu not implemented in regex m/%d%lu%4p%s/Variable length %s lookbehind with capturing is experimental in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: %s regnode should be resolved before optimizationpositivenegativeE_TRIE_MAXBUFregcomp_study.cH77777777mmjwjeeBKBpanic! In trie construction, unknown node type %u %serror creating/fetching widecharmap entry for 0x%lXpanic! In trie construction, no char mapping for %ldjW/jxW/W/jpanic: paren_elems_to_push, %i < 0, maxopenparen: %i parenfloor: %ipanic: paren_elems_to_push offset %lu out of range (%lu-%ld)Malformed UTF-8 character (fatal)panic: isFOO_lc() has an unexpected character class '%d'Matched non-Unicode code point 0x%04lX against Unicode property; may not be portablepanic: regrepeat() called with unrecognized node type %d='%s'Pattern subroutine nesting without pos change exceeded limit in regexEVAL without pos change exceeded limit in regexpanic: Unknown flags %d in named_buff_iterpanic: Unknown flags %d in named_buff_scalarpanic: Unknown flags %d in named_buffOOOPP0PHPO0OHO`OxOOOOij\,,\\̲̲ \<\<IK>A7>017>AI7>A 01>I 0127>AI 0127>AI01>I +KKa +@ +@gx g @Ux + +@a~42I(Kd@g+-G/c  "?S "+-./@HMSUYgx "+-./@HSUYgx +-/@KUx +-/@KUx33VWw3j3jK)r 1                                                                                                                             ܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm 0v{      8 ; ? @   $ ( FQ8Gpqsu',-5EGst,/24568>?AB;=>?@AEGIKNWXbdfmpu58@BEFG^_03;=>?A "&',,/89;01679;=>?@ABCD 39:;?GHQWY\/078>?@17:;<>?FGH46;>@ABC04@4A4G4V4jj0k7kOoPoQoooooooo.0Gefgjmns{BE7;muv"#%&+07DK /0lr~/02;<@I>FPt HPZ` ;<FG {=EFGJMOSWX[\cKSUW\]_`pq12457:;=>?BCDEFGHIY\< = M N R S < = M N < = M N < = M N U W ; = M N 8;HL56789:qstuz~789;459:;<`a45DElm78 --*00000,-ĨŨ+.ST'.  9 ; ? @   FHKLMQFGpq35st57;=MNBCFG?@+,9;=?CD45GH?@BCDFACjjooejms{JKA[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123:;<=>?ABCDEFGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!+!,!2!3!`!p!!!$$,0,`,a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}~§çħŧƧǧȧɧʧЧѧ֧קا٧!;(p{|  @n`n"A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123:;<=>?ABCDEFGHIJKLMNOEFpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNPQRSTUVWYZ[\]^_`hp&!'!*!+!,!2!3!`!p!!!$$,0,`,a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./234567 ,0<DFPU_`}4EPZ\]akt}$8;@JPZ~              $ ' ( * / 0 8 9 ; < > D E F G J V W X \ ] ` a f p } ~  !! ! !!!""""# # # # ###)#*#+###&&&&&&&&& &9&<&h&i&&&&&&&&&&&&&&&&&&&&&&&&&&'' ''['a'b'd'e'h'i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''''))))))))))))))))))))))))))))))),,,,,,,-p-q----......... .".#.$.%.&.'.(.).*.../.0.2.3.5.:.<.?.@.B.C.K.L.M.N.P.S.U.V.W.X.Y.Z.[.\.].^.....////000000 0 0 0 0 00000000000000000 0*0005060;0=0@0A0B0C0D0E0F0G0H0I0J0c0d00000000000000000000000000000000000000110111111122 2H2P2MNǤ  *ost~ #(,-89tvxƨΨШڨ &.0GT`}ǩʩЩک)7CDLNPZ]`{~ª89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm)*78=>?@BCEFP>?@ 056789:;<=>?@ABCDEGHIPQRSTVXYZ[\]^_ghijkl  ;<=>[\]^_`bcefgqv{WX        8 ; ? @ P X      9 @ $ ( 0 : FQ8GIfpqsu'56@DEGstuv,8:;=>?AB;=>EGIKNWXbdfmpu5GKOPZ\^_0ACPZ`m,0:<?,;0679;?@ABDGPZ 3:;?@AEFGHQ\ /78@AFPZpqr17:;<>?FGHPZ4;>CEPZ p$u$X2[2^22222222y3z3|304748494<4=4>4?4@4A4G4V4EEE`jjjnjpjjjjjj0k7k:kDkEkPkZknnOoPoQooooooooop #23PSUVdhp.0GejmBE7;muv"#%&+07@JDKPZ^`,0 mp<@IPR`fBDFQfy|}%2Jtvz{EHKPvy|tw{ HPZ`   &'0:<?wxT`np} 6aklst{      !"#$%&'()*+,-./0345678:;<=>?@ABCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOPQRSTUVXYZ[\]`abcdefghijklmopqrsuv}~qrstwx{~02345>?ABCJKP`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FQRSTUVWX`hprvxz|~N!O!p!!!!$$0,`,a,b,e,f,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ѧҧקا٧ڧSTA[(P  `nn"D;  pK`pq0K$%().Y\  : ; < = > A I M N P Q X b d    < = > A C G I K N Q R p r u v    < = > @ A E G I K M N U X b d    < = > A E F I J N U W b d   ; = > ? A E F I J M N O W X b d 1234;GO56789:>@q-1289;=?VXZ^aqu`]`245RTrt  #'),0239<UVWX_`abcems}4;<=BCEkt$,468   ( / < = I J ` p "!#!9!:!!!!!##(#)#########$$%%%%%%%%&&&&&&&'''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'c'h'''''''''4)6)++++P+Q+U+V+,,---.*00010=0>0002222ost~ #%'(,-Ĩƨ&.GRT`})/1357CDLMN|}ª89TUpqĬŬ45PQlmjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOooooooooooop֌  #23PSUVdhpkp}.0GP')gj{FW`ryUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP#    !"#'*,./0:;?@A[\]^a{|}~      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrstuvwxz~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./01WYZ]^`  K`jkmnpq0KM$%().789:=?@Y\`kp : = > P Q X b d f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f p r u v       ) * 1 2 4 5 : < = > E G I K N U X \ ^ _ b d f p q r     ) * : < = > E F I J N U W X [ ] ^ ` b d f p     ; = > E F I J N O T W X _ b d f p z 124;@GOPZ *56789:>@HImq+?@JLPVZ^abegnquIJNPWXYZ^`[]`bcgimno257@RT`mnqrt    y ,0<DFPnpu U_`}4EMPZ\^`kt}$8;=@JMPZ~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FHNPXYZ[\]^_`hp~      $ % ( * / 0 9 ; < > E G J _ ` e f p q r }  !!!! ! !!!!!!!!!$!%!&!'!(!)!*!.!/!0!4!5!9!:!!@!E!F!J!N!O!`!p!!!!!!# #)#+#$$$['a'h'v''''')))))),0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-0-h-o-p---------------------.... .*.../.0.<.=.B.C.S.U.].0000000000 0!0*000106080=0A000000000110111111124MNФ  *,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnost~ "#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧Чѧҧӧԧէ֧קا٧ڧ #(,-@tvxƨΨШڨ &./0GT`}ȩʩϩЩک)7@CDLNPZ]`wz{~ªê۪ު  '(/0[\jpnp)*78=>?@BCEF>@P 0135EGIPRSUVXY_cdpuv  !;<=>A[\]^_abdef  '(;<>?NP^@u -KPv{(P(0dp{|7@V`h  679<=?V`w   :                6 8 ; ? @ V X ` }         6 @ V ` s    I      $ ( 0 : '(0FQUZp8GIfpqsuv'56@ADEGHPstvw,8:;=>?AB )*1245:;=>EGIKNPQWX]bdfmpu5GKMPZ^_b0ACDEPZ,0:<?@G,;   0679;?@ABDEFGPZ 3:;?BDGHPQ\  /78@ACPZr  17:;<>?FGHPZ`fgij4;>CEPZ #$o$$D%//004@4A4G4V4DGFh9j@j_j`jjjnjpjjjjjjjjjk0k7k9k@kDkEkPkZkckxk}kk@n`nnnnoKoOoPoQoooooooooooop֌ #23PSUVdhpkp}.0Gejms{BE4NUVh  8:;?@EFGJQRl"<Vp56OPVop7;muv  %+"#%&+0n-07>@JNO"DKLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjpvy:@ KP#    !"#$%&'()*+,-./0:<?@[\]^{|}~OP\cp~   K`jkmpq0K$%().Y\ : = > P Q X b d f p   < = > C G I K N Q R f p r u v   < = > E G I K N U X b d f p  < = > E F I J N U W b d f p w x  ; = > E F I J N W X b d f p y z 124;?@GOPZ\     *456789:;<=>@q+?@JLVZ^abegnqu`]`ab257RTrt  *+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!+!,!2!3!`!p!!!$$,0,`,a,b,c,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}~§çħŧƧǧȧɧʧЧѧ֧קا٧p!;(p{|  @n`n"  !"#'(,-./0:;<A[_`a{puvxz~01WY]^_`  K`jklmnpq0KM$%().@Y\`kp : = > P Q X b d f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f p r u v       ) * 1 2 4 5 : < = > E G I K N U X \ ^ _ b d f p q r     ) * : < = > E F I J N U W X [ ] ^ ` b d f p     ; = > E F I J N O T W X _ b d f p z 124;GOPZ *56789:>@HImq+?@JVZ^abegnquIJNPWXYZ^`[]`mo25@RT`mnqrt  y ,0<FPU_`}4EMPZkt$8@JMPZ~ FHNPXYZ[\]^_~     $ % ' ( * / 0 < = ? A D E I J T U _ ` e f p q r  !!!! !!!!!!"!#!$!%!&!'!(!)!*!.!/!9!:!0000000110111111122222223X3Ф  *,@ost~˧Чҧӧԧէڧ #(,-@tƨШڨ &.0GT`}ϩЩک)7@CDLNPZ{~ª  '(/0jp)*78=>?@BCEFP>P 035MPQRSTUVpuv !;?@A[f  '(;<>?NP^@u -KPv{(0dp{|7@V`h  679<=?V`w   :                6 8 ; ? @ ` }         6 @ V ` s    I      $ ( 0 : '(0FQp8Gfpqsuv'56@DEGHPstvw,8>?AB )*1245:;=>EGIKNPQWX]bdfmpu5GKPZ^_b0ADEPZ,0:,;   0679;?@ABDPZ 3:;?GHPQ\  /78@APZr  17:;<>?FGHPZ`fgij4;>CPZ #$o$$D%//004@4A4G4V4DGFh9j@j_j`jjjpjjjjjjjjk0k7k@kDkPkZkckxk}kk@nnoKoOoPoQoooooooooooo #UVdhkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-07>@JNODKLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0JPjlpr~/02;<@I>FPt HPZ` ;<FG A[a{BCEFcptuxz~01WY   @AKV`jpqKMP.0?@\^_`kp Q R S U d e f p       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f p w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?@\HImq@JIJNPWXYZ^`[]} 57@T`mnqrt y ,0<@ADPnpu _`}MP8;JMP&+,]bfkxy FHNPXYZ[\]^_~  / 0 e f q r t  !&!'!*!,!2!3!N!O!`!!!!'$@$K$`$()t+v+++,`,,,,-&-'-(---.-0-h-o-q---------------------.C.D.^.....////0000000000 0!0*0.00010607080<0>0@0A00000000011011111111122 2H2`222222223X3q3{33334MNǤФ,@op"˧Чҧӧԧէڧ-036:@xƨΨڨ./0T_`}ΩϩЩکީ7@NPZ\`ê۪  '(/0[\efjlpnp78=>?@BCEFP>@ .0EGSTghlpuv!;A[afpq  '(;<>?NP^47@$-0KP{P(0dop{|7@V`h  679<=?@VW`    : ? @                6 8 ; ? I P Y `          6 9 @ V X ` s x        I       ( 0 : `(0ZpNRv56HPwB )*1245:;=EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z #$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjpj47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP# a{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOPQRSTUVXYZ[\]`abcdefghijklmopqrsuv}~EFqrstwx{~0P`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPQRSTUVWX`hprvxz|~N!O!p!!!!$$0,`,a,b,e,f,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ѧҧקا٧ڧSTpA[(P  `nn"DLa{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOPQRSTUVXYZ[\]`abcdefghijklmopqrsuv}~EFqrstwx{~0P`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPQRSTUVWX`hprvxz|~N!O!p!!!!$$0,`,a,b,e,f,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ѧҧקا٧ڧSTpA[(P  `nn"DA[      !"#$%&'()*+,-./2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123:;<=>?ABCDEFGHIJKLMNOEFpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'():@ KP# ( * A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp!!!! !!!!!!!!$!%!&!'!(!)!*!.!0!4!>!@!E!F!!!,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧЧѧ֧קا٧!;(p{|  @n`n4Nh  8:;?@EFGJQl"<Vp5Vo"0:AGag 0:A[_`a{A[  ! !0:A[a{ a{!0:  !A[a{0:A[a{%a{      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOqrstwx{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0`,kxy      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~ ! !!!!!/!0!4!5!9!:!!F!J!N!O!!!0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyz{|}§çħȧɧʧ˧ѧҧӧԧէ֧קا٧ڧ0[`ipA[(P  `nn4NUVh8Rl"<Vp6OPVp  %+"DA[a{ptvx{~01W`,kxy FHNPXYZ[\]^_~!!!! !!!!!!$!%!&!'!(!)!*!.!/!5!9!:! C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^` e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP# 0:`jf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : fp6@PZPZ0:PZPZPZPZ`jjjjjPkZk@JPZ  ! / 0 _ ` 00A[a{EFpuvxz~01WYZ` XY`n@M-@Y`kp< = M N Q U d q       ) * 1 2 4 5 7 8 : > C G I K M Q R Y ] ^ _ p v       ) * 1 2 4 5 : = E G I K M V X \ ^ _ d q r    ) * : = E F I J M U W X [ ] ^ ` d    ; = E F I J M N O T X _ d z ;@GMN@HImq789;@PIJNPWXYZ^`[mo4@T`mnqrt y ,09Pnpu _au45DEM7MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 ` }        6 @ V ` s    I      ( '(0FpFqv3DHPsvw578>B )*1245:=EGIKMPQWX]dBCFGK_b?@ADE+@G9   679;=?C35?P  78?@Ar  7:;<>?BCDFH`fgij;>A #$o$$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+"#%&+0n-7>NODGHKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp:@ KP# 0:A[a{EFpuvxz~01WYZ` XYjn@M-@Y`kp< = M N Q U d f p q       ) * 1 2 4 5 7 8 : > C G I K M Q R Y ] ^ _ f v       ) * 1 2 4 5 : = E G I K M V X \ ^ _ d f p q r    ) * : = E F I J M U W X [ ] ^ ` d f p    ; = E F I J M N O T X _ d f p z ;@GMNPZ *@HImq789;JPIJNPWXYZ^`[mo4@T`mnqrt y ,09Fnpu _au45DEMPZ7@JM~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 ` }        6 @ V ` s    I      ( 0 : '(0FpFfpqv36@DHPsvw578>B )*1245:=EGIKMPQWX]dBCFGKPZ_b?@ADEPZ+0:@G9   679;=?CPZ35?P  78?@APZr  7:;<>?BCDFHPZ`fgij;>APZ #$o$$D%//004A4G4DGFh9j@j_j`jjjpjjjjjjk0k@kDkPkZkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+"#%&+0n-7>@JNODGHKLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjpg,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧЧѧ֧קا٧!;(p{|  @n`n4Nh  8:;?@EFGJQl"<Vp5Vo"0JPjp  ! ( * / 0 _ ` 00u!0:A[a{~Z`    jn0?^_d f p q v w w x OPZ\:>JP`ino57 DF Za};@~ ( 0 D E R S _ }  # #)#+#h'v''''')))))),,,-p-q-./.0.P.R.^.00000 00010=0>00000 st~txΨШ.0_`Ωީ\`ު>@0STbcdhijl !;>?@[\]^_fopWX  ? @ P Y     9 @   UZGN@Dtv8>KPZ\]^AD`m<?;<DG?G AFprCP p$u$//njpjjj7k C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ ( * e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP# ?a{      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOEFqrstwxz~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~q r  ! !!!!!/!0!4!5!9!:!!F!J!N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ѧҧӧԧէ֧קا٧ڧ0[\jpA[(P  `nn4NUVh8Rl"<Vp6OPVp  %+0n"D!xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ ( * / 0 _ ~:@ KP#3A[a{puvx{~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 123@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>Pqrstwxyz{|}~!;A[f  '(;<>?NP^ -ABJPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#A[a{1289!"4:UVXYZ[]`bcdeghmopqsuv}~     12BCEFptvx{~01Wayz}~ FHNPXYZ[\]^_~&!'!*!,!2!3!N!O!`!!!!$$,q,r,t,u,w,~,,,,,,-&-'-(---.-@n"02py˧Чҧ֧ڧSTp!;A[Pp{|    @nnD 0:AGag!'AG0:A[_`a{uvxz~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~  ? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>P 035MPpuv!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CPZ #$o$$D%//004@4V4DGFh9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp:@ KP#A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp!!!! !!!!!!!!$!%!&!'!(!)!*!.!0!4!>!@!E!F!`!p!!!$$,0,`,a,b,e,2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>Pqrstwxyz{|}~!;A[f  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#0:A[_`a{uvx{~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>P 035MPqrstwxyz{|}~!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CPZ #$o$$D%//004@4V4DGFh9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#;01IJPQRSTUVW !(*-.0:A[_`a{uvx{~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF^d>P 035MPqrstwxyz{|}~!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CPZ #$o$$D%//004@4V4DGFh9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy} ,-.0:;  / 0 D E PQRSUV @   ` f j p s{   ) * `jkm0 : `;    Kmpq0K`P>Pp $ ( 0 : @ 0FQppPjjjjh@jh9jMP 6 9 @ !" 1WY@VW`PpPp iPp Ppuv` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~@PP,0G0dopi O P T W X _ v y ##C.E.Ũƨ>?Z[\]^`m  78FPmpoop"#%&+KPZ^`;<z{ (013?@LP_w Z [ _ `  !!++֟͟`dp.0             PQ,0@##$D%DGF-0~KPCE (0 x y  4 5    ##''M+P+Z+t+v++++++++<.C.|0`df'. P{(0dop7@V`h`            Pw> )*1245:<EGIKNWX]dfmpuEPZo##c$o$t$u$@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkkp}  !-67}~?@AB>@DKhz{ACP HPZ`f j   '''',,'-(---.-f-h-2.<.̟͟t|.0    56DoEoPoooo !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~jl@D &(,-.045&( !_`@\^_: < O P V X s x r x ) * : ; N O ]_ ##&&&&&&'' ' '(')'L'M'N'O'S'V'_'a'''''''''p-q---11`b  '(/NRph9j012=>?@BCFGJOWX_`jpyz{}2;PR!067}?@AB>Ph &(,-.045AEPt@$&.0?  N O U V y { Z_w _`} P!S!!!##&&&&&&&&&&&'W'X'U+Z+p,q,~,,,,1.2.D2P2ğ̟Ф0:`}Ωϩکީ`|ê۪kn@VW`  `   6 9 V X s x   I `0/4 /12=>?@BCFGJOWX_`yz{}2@I5ptvx$ ;@nq s Q R u v D E b d = > X Z b d x = > D E b d p v y km"#()+,36:@Z8;JMd e O!P!!!&&&&&&''''+ +$+M+P+U+m,p,q,t,x,~,-....1.-1.111ğ,@`bt| "ŨΨڨT_`7@NPZ\`$' : ? @ )*,0GBP{~{ } ~ LP} M!O!!!##&&''++ +$+`,m,t,x, "@x     o#$c$p$t$`r7BX]  Y_Pn} ~ GH GH_a lU W X _ ?NP^47@&(N  679<=?@Ww !OPcpnp  7@T`mnqrtG H N S W X _ d q r =!L!!""#|#}###$$%%%&&&r&~&&&h'v''''()+;0>000000112Q2`222¤ŤƤ0kEGst_aI $0K&(N'*UV  :;?@EFGJQRצ  "4FObc PQ]^SV-0K jk"#()+,36:@ZGHIJNPWXYZ^` GH[a}w x/ 0 H N 9!;!!!!!##{#|#}##%$'$%%&&p&r&()....////80;0>0?0114M¤ŤƤǤ ;HIjq  A ?B ;>Z/40494V423UV%+0ntw{ux9:P#p< = ] ^  LM} /,0,_,`,S.^.§Чҧӧԧէڧ@Pp{|ppv@G//pjjjj#.0GPyz{}ަ59wU V   ++P.S.11MMǧ˧,-hlGHZ[`b   679;GPZoooo֌  mp  rswytuצަK23yw x +++,O.P.§ǧfh_` 0494EoKoOoPoooooPSdh-0>@JNPKL>lm ?@qr{|Tptx{w`a v w   xy++++++J.O./1014 6 H I  ( 0 : (0ZDG;<^_<`fgij@nnryq/0MPlqswz{|`nQ`k  ; =  #$++E.J..1/1֟-0HP  7:;<>?HPZoop`f  (013LM_l@  @ALPZ^`N0:A[_`a{OP_a  ? A T U p !`$%v'',..000!00010d1e1>@EGs{02IJxy*!,!02IJxy*!,!Oabfghklmnosuwxyz     12BCefklmntuvw~ (`hpqtu|}9A[_`a{puvx{~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 123@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mort y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~  * / ` p r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//004@4V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')s{FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP#57@T ϩЩ()NRv()[\{|:;<=E F } ~ # # # #)#*#h'i'j'k'l'm'n'o'p'q'r's't'u'''''''''''''))))))))))))))))))))))))))))".#.$.%.&.'.(.).U.V.W.X.Y.Z.[.\.0 0 0 0 0 0000000000000YZ[\]^ ;<[\_`bc=(*[\]^{|}~:>E G }  # #)#+#h'v'''''))))))".*.U.].0000Y_ ;<=>[\]^_abd)*]^}~;<=>F G ~  # # # #*#+#i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''))))))))))))))))))))))))))))#.$.%.&.'.(.).*.V.W.X.Y.Z.[.\.]. 0 0 0 0 00000000000000Z[\]^_ =>]^`acd%%1100000 0*0.0001070800010111EGaf%%(*<=>?[\]^{|}~:>9 ; E G }  @!A!"""""""""""#"$"%"&"'"+"4"9":";"M"R"V"_"a"b"c"d"l"n"""""""""""""""""""## # #"#)#+#h'v''''''''''''''')))))))))))))))))))))))))))) ***"*$*%*&*'*)***+*/*4*6*<*?*W*Y*d*f*j*n*o*q*s*u*y********************++.. . . .... .*.U.].0000Y_df ;<=>[\]^_abdOP   * / f j   78FPm5Q S d f  ! ( ) _ ` 00  . / g h + , Q$%().Y\`  )*P        8 ; ? @   9 @  @ `0pDKpPi j , - {!#&+;A[a{tv~ x  :> @ADF ( 5 D E _ |  !!!!! !!!!!!$!%!&!'!(!)!*!:!P0PQRTUV_`bdghikl !;A[f@  9 @ Rf`mooBEFWOP,0 /0jp`fw{ HPZ`T`np}pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}456;<=BCkt,468 ,,---.*0.000ost~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD  39;?GHQWY\078>17:;<>?FGH6;@ABC@4A4G4V4jj0k7kOoPooooo.0Ggj{BE7;muv"#%&+07DK- . f g * + A[a{ptv~ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d x   ; = A E M N b d 124;?@GO56789>q-1289;=?XZ^aqu]`24RTrt #')239<@ADFVWX_`abcems}456;<=BCkt,468   q t  !!!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?AB;=@Afmpu8@BEFG^_3;=>?A`m "&',/89;;=>?CD  39;?GHQWY\078>17:;<>?FGH6;@ABC@4A4G4V4jj0k7kOoPooooooo.0GgjsFWOP7;muv"#%&+07,0/0jp`fw{ HPZ`T`np} h i 1#&  jk ?@0 5 .!/!""8:_`ik+,-.z | "")*bd 0:p q t z $$ y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP# 0@011./P#P @ @4M 0P34Nk'(./:;^_`aptvz{YZ_`@AK`pq0K.Y\ : ; < = A I M N Q X b d q r   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;FO56789:q-1289;=?XZ^aqu]`24RTrt CD #')239<VWX_`abcems}456;<=BCkt,468x~,kxy    $ % ' ( * / ` e f p q r  |,~,,,o-p----./.0.00*0.01060;0<00000 ost~"pq %',-Ĩƨ&.GRϩЩ)/1357CDLMpq|}ªݪު[`il 0RSUV>?@Apqv{      8 ; ? @   $ ( FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABC04A4G4V4jj0k7k@kDkOoPooooooo.0GgjsBE7;muv"#%&+0n0>DL ppp 7@NPZ\`+  * / ` e f p 04@4s{ CX ` 3 4 6 7 Y \ ^ _ \ ^ CDMNRSWX\]ijvwxy** *78=>?@BCEFO^emn.000EF \]_`bc]_`b 9:-0.0*0+0!#')49=GJMOSWY[UW\]_`12457:;=>?BCDEFGHIY\R S 5678;<lm +.'.  : ;   FHKLMQ{ XY,0-0 +0,0=EFGJMPSWX[\cpSUW\]_012457:;=>?BCDEFGHIK$%(). Q R S U ]`:;u}klmt ,,-.opt~ª '.0v{  8 9   $ ( HKLMfmpu^_0k7kBE"#%&+07DJV W qM N M N M N M N ; = M N :;9;45`aDE--,-ĨŨST? @ FGpq3556MNBC?@+,9:=?45GH?@DFACU V 005< = < = < = < = 784578st67;=FG:;CDBCJKoopqRSQRPQOPNOMNLMKL 9:egns!#')tursz~qrHL8:49 9 : jjgjOPpK`pq0K$%().Y\ < = M N Q U < = M N < = M N < = M N U W ; = M N 8;HL56789:qstuz~789;]`459<`au}45DEkt78 ,,---.*00000opt~,-ĨŨ+.STª 0v{    8 ; ? @   $ ( FQFGpq35st57;=MNfmpuBCFG^_?@+,9;=?CD45GH?@BCDFACjj0k7kooejms{BE"#%&+07DK  @J56H xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnq,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧЧѧ֧קا٧!;(p{|  @n`n"A[      !"#$%&'()*+,-./0125679:;<=>?BCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNO@BCFOPpqrstuvwz{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1WuyX ` 3 4 6 7 Y \ ^ _ \ ^ 34  CDMNRSWX\]ijstuz_a ,/0;<NOkxy      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hpqrstuvwxyz{|}~      $ ' * 0 3 5 6 8 < = > ? G J W X _ r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!:!;!A!E!J!P!!!!!!,"."/"1")#+#`$$ * *t*w***,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,|,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,o-p-....//00607080;00000011111122 2H2P2224@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqyz{|}§çħȧɧʧЧѧ֧קا٧\`ijp !"#%'*np78=>?@BCEF>P0EGSTghlpstuv(p{|  @n`n^es{UV  :;?@EFGJQR0n" !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPRA[a{89!"4:UVXYZ[]`bcdeghmopqsuv}~EFptvx{~01Wayz}~ FHNPXYZ[\]^_~&!'!*!,!2!3!N!O!`!!!!$$,q,r,t,u,w,~,,,,,,-&-'-(---.-@n"02py˧Чҧ֧ڧSTp!;A[Pp{|    @nnDA[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHIKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOEFpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!,!2!3!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧЧѧ֧קا٧p!;(p{|  @n`n" $$47@  679<=?@//` ,,,-$@$@BCEtu~X ` 3 4 6 7 Y \ ^ _ \ ^ CDMNRSWX\]ijstuwxyqrstuvwxyz{|}~  &!'!*!,!)#+#** !"#%'*np *78=>?@BCEFO^e011xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrtOPX]ctvz{YZKSWY0K< = M N Q U q r < = M N < = M N U V < = M N ; = M N GMNO56789:>@789;cein]`9<u}45DEkt68x~,k,,/.0.*0000000op|~"ĨŨ+/ST{~ê[`il 0>?@Apq  " ( FQFGpq35st57<=MNfmpuBCFG?@+,9;=?CD45GH?@BCDFG4V4jj0k7koooo.0Ggjms{0n07DGHK#OP_a   * / ` p d1e1s{` S U  0: IJstwxyzj p )#+#/-.  S T { | ""....:.<.@.A.].^.0000100013XYcd 0+,xy-.C.D.@.00n00@-.@a{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOUVXYZ[]`bcdeghmopqsuv}~EFqrstwx{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ѧҧקا٧ڧSTpA[(P  `nn"Da{      !"#$%&'()*+,-./012345678:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      #$%&'()*+,-./01234<=?ABCGHIJKLMNOUVXYZ[]`bcdeghmopqsuv}~EFqrstwx{~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0ayz}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,s,t,v,w,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./03456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopz{|}§çħȧɧʧ˧ѧҧקا٧ڧSTpA[(P  `nn"DA[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp&!'!*!,!2!3!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 2H2P2MNǤ`}0STghloooop֌ #23PSUVdhp<@IPR`f!-67}~?@AB>KOPhz{P ;<FGp} ''))3 &(+,1489?CDEHLMNRTfhklQRabpPQR`        # $ ( 0 1 2 4 5 6 ; < > ? t u  !!!! ! !!!!!!!#!&!'!+!,!S!U![!_!`!l!p!z!!!!!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""####)#+#######`$$$L%P%t%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&& & &&&&&&&&&@&A&B&C&H&T&`&b&c&f&g&k&l&n&o&p&&&&&&&&&&&&&&&&&&''' ' '(')'='>'L'M'N'O'S'V'W'X'v''''''''''))++P+Q+U+Z+....////0?0A00011011111112 2MNǤ`}0STghloooop֌ #23PSUVdhp .0jp<@IPR`f!-67}~?@AB>KOPhz{P ;<FGp} a00ag&(+,1489?CDEHLMNRTfhklQRabpPQR        # $ ( 0 1 2 4 5 6 ; < > ? t u  !!!! ! !!!!!!!#!&!'!+!,!S!U![!_!`!l!p!z!!!!!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""##`$$$L%P%t%%%%%%%%%%%%%%%%%%%%%%%%%%%&& & &&&&&&&@&A&B&C&`&b&c&f&g&k&l&n&o&p&&&&&&&&&&&&&&&&&&&&&&&&'='>'v''V+Z+H2P2 .0jp kp} 00010EGI?,/0;<NObxyp r t !!!"!#!},~,o-p-11pq\`ij0Qknjm bk |,},QkP2Q2222X3q33340P<PSTghl&(1289ACJLRTfh &4@BCEtuz{~ 9:PRSTWX\_vx"'uy) * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M 34  CDMNRSWX\]ijstuz&'     ;<=>@BCD,/0;<NOkxy FHNPXYZ[\]^_~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!!!!!!!"" " " " "$"%"&"'","."/"1"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#`$$ * *t*w***|,~,o-p-....//00607080;0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv.0KM89^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR24?AIJz{uy34  wxyz,/0;<NOkxy     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!(!)!,!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1"`$$ * *t*w*|,~,o-p-....//00607080;00000011111122 2H2P2224pq\`ij *O>P0EGSTghlpstuvUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR       / 0 amUVYZ]^abefijmnqruvyz}~4<qrwxyz{|}~PQRSVWZ[^_bcfgjknorsvwz{~d=>pqrstuvwxyz{|}~TUXY\]`adehilmpqtuxy|}-4PQRXYZ\^`bcdefhiklmnpqrtwx}~P!`!!!!! !!!!!!$!%!(!)!,!.!/!2!3!5!9!:! ? G J W X _ ` !!!!!! ! !!!!!"!5!9!;!@BCD FHNPXYZ[\]^_~  &!'!*!,!!!!!!!"" " " " "$"%"&"'"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#**L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000 !"#%'*np *78=>?@BCEFO.0KM89^eP0d p 0:<''   679;GPZ !p^_`a35@CDLMNPZ\|}ªê۪  '(/0lpnp78=>?@BCEF0STghlpuv  '(;<>?NP^47$-KPv(0do{|7@V`h  679<=?VW  : ? @            6 @ I P Y `       6 9 V X s x       I      $ 0 : `(0FQZp8GNRpqsuv',-6HPstw/24568>?A )*1245:=>?@AEGIKNPQ]d8@BEFG\]^_b3;=>?AEPZ`m "&'0G/89;<   01679=>?CDGPZ 39;?GPQWY\   0>?@FPmp  1FGPZ`fgij6>@ABCZ#$o$p$u$$D%//004A4G4DGFh9j@j_j`jjjnjjjjjjjjk0k7kFkPkZk[kbkckxk}kk@nnoKoPoooooooop֌ #23PSUVdhpkp}P')efgjnBEFW`yUV  :;?@EFGJQR7;muv%+0n-7>@JNPDKLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP#3Q S d f   )*1245:;EGIKNPQWX]dfmpu0Kd f   7:;<>?HPZd f `fgij0,`,C.D.op"#%&+-0--&-'-(---.-%& pK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J O W X b d 123;GO56789:>@q-89?VZ^aqu]`25RTrt  ,0<U_`abce}4Ekt$8  ( / ` p ,,---.*00000ost~ #(,-ƨ&.GT`})7CDLN|}ª 0v{      8 ; ? @   $ ( FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A ",,;0679;D 3?GHQ\/78@17:;<>?H4;>C04A4G4V4jj0k7kOoPoQoooooooo.0GejmBE7;muv"#%&+07DK`K  ; < > A I M N P   > A   @ A G I K M   A E   ? A F I J M 34>@12;=VX45#'),0239UVWXms;<=BCE$,46#%'(ĨRT/135MN,-EG,/2456?@AEGIKNbd58@BEF03;=>?&',/891679=>@ABC9:WY/0>?46>@ABQoooofgmnN O ?@AB:;FG``}pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = > @ A E M N U X b d    < = > A F I J N U W b d  ; = > ? A E M N W X b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}4;<=BCkt,468 ,,---.*00000ost~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( FQ8Gpqsu',-5st/24568>?AB;=>?@AWXfmpu8@BEFG^_3;=>?A "&',/89;01;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABC@4A4G4V4jj0k7kOoPooooo.0Gefgjns{BE7;muv"#%&+07DK &     ( / ` p 04@4s{ < = I J "!#!9!:!!!!!##(#)#########$$%%%%%%%%&&&&&&&'''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'c'h'''''''''4)6)++++P+Q+U+V+0010=0>02222 /0lr~/02;<@I>FPt HPZ` ;<FGC@AU V FG  CD67{|0010600000 ϩЩpqݪުpq]^BkDkoooo<>DG0--IIJNPWXYZ^`[]}------------------  '(/########%%&&H&T&&&&&&&&&&&&&&&&&&&&&&&&&&&'' ' '(')'L'M'N'O'S'V'W'X'''''''++P+Q+U+V+/0278;PR!-67}~?@AB>KOPhz{P ;<FGp}23`$%P/#$*+0:< = I J "!#!9!:!!!!!##(#)#######$$%%%%%%%%&&&&&&&&&&&& &!&"&$&&&'&*&+&.&0&8&;&@&A&B&C&H&T&_&a&c&d&e&g&h&i&{&|&~&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''!'"'(')'3'5'D'E'G'H'L'M'N'O'S'V'W'X'c'e'''''''''4)6)++++P+Q+U+V+0010=0>02222pr~/02;PR"$>IOPhoqs{P ;<FGp}(04`40V4#$*+0:   Q&&&& ''BDFQfy|}tvz{EHKP   &'0:<?wx$P%`##)#+#######%%&&H&T&&&&&&&&&&&&&&&&&&&&&&&&&&&'' ' '(')'L'M'N'O'S'V'W'X'''''''++P+Q+U+V+....////0?0A00011011111112G I K N U X _ b f p q r     ) * 4 5 : < E F I J N U W ] ^ ` b f p        ; = D F I J O T X ` b f p z 34;@OPZ   *5678>CDHIMNRSWX\]ijmqstuzJPIJNPWXYZ^`[]` FHNPXYZ[\]^_qrstuvwxyz{|}    ' ( '-(---.-------------------00A000000001.1/101114MN ˧Чҧӧԧէڧ`wz  '(/fh !"#%'*;=oo#23PSUVdh%+:@ KP#0:A[_`a{uvxz~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`irmo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF>P 035MPpuv!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CPZ #$o$$D%//004@4V4DGFh9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#-.  ..00cd ef       `} -0>@JNP kFkPkZk[kbkckxk}kkDGF#00000 000607080<0>0A000000EGafpq 23PS78=>?@BCEFP  7+00000 0.01070800011122`22`}EGafM....//00000 0!0.0001070@0001111 2H2222223X3q3{33334MNnpEGafoooo`rPR:@ KP# 0'Q S d f       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w 0:#Q S d f 0:pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = > @ A E M N U X b d    < = > A F I J N U W b d  ; = > ? A E M N W X b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}4;<=BCkt,468 ,,---.*00000ost~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( FQ8Gpqsu',-5st/24568>?AB;=>?@AWXfmpu8@BEFG^_3;=>?A "&',/89;01;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABC@4A4G4V4jj0k7kOoPooooo.0Gefgjns{BE7;muv"#%&+07DK MBCEFptuxz~&+]bfk FHNPXYZ[\]^_~&!'!ef@F  pxz01WYK`pq0M$%()0?@Y^_`kp : ; < = A I M N Q X b d       ) * 1 2 4 5 7 8 : > A Y ] ^ _ f p r u v w       ) * 1 2 4 5 : = > @ A G I K M \ ^ _ b f x       ) * : = > A E X [ ] ^ ` b f p w     ; = > ? A F I J M N P T W X b f 124?GO\56789:HIm-1289;=?XZ^aquIJNPWXYZ^`[`}247@R`mnq  y#'),0239@ADnpuVWXabcems4;<=BCMPkt,46;JM FHNPXYZ[\]^_~  ( / ` p r t !!!'$@$K$`$t+v+++,,,,&-'-(---.-0-h-o-q-------------------.^.....////0*000@0A00011011111112 2ǤФ,@ost~˧Чҧӧԧէڧ %',0:@xĨΨڨ&.GRT_}Ωϩکީ)/1,-p-q-.^.......//000!000107080=0@01111H2P222MNǤ pt~ "(,0:txΨШ.0_`Ωީ\`wzު[\jl>PEG47@u $opW`w     ? @       @ I P Y }        9 @ X ` x        `'QZGNRf@Dtv8>KPZ\]^AD`m:@;<DG?G AFZmprCP p$u$//04@4njpjjj7k@kDkFk[kbknnooP')^jmBEFW`y7;muvOP^`q>,0 /0Pjm`fw{ HPZ`T`np}24?A@BCEtuz{~uyX ` 3 4 6 7 Y \ ^ _ \ ^ 34  CDMNRSWX\]ijstuwxy,/0;<NOkxyqrstuvwxyz{|}~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1"`$$ * *t*w***|,~,o-p-....//00607080;000000111d1e111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP# KMP@\^_`k ,0<@ADnpu _`}MP8;JM0-h-p-q---ǤФ,-ƨΨڨ./0Ωϩکީ7@NPZ\`ê۪p ( 0 : 56H\]b`fgijh9joKoOoooo-0>@JNPLPZ^`'(-/:;uv      ' ( 0000.0?7@T`mnqrt  y ,`,,,,-@x0T_`ϩЩ  '(;<>?NP^47@$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I       (0ZpNRvPwB )*1245:=EGIKNPQWX]dfmpuEPZ`m,0G<   679;GPZHP  78FPmp  7:;<>?HPZ;>Z #$o$p$u$$D%//0V4DGF@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoooop֌ pkp}"#%&+%OP_a   * / ` e f j d1e1s{ '(-/0;A[_`a{24?AIJ &4YZ #)-/02568:BCEFuv{~`*.01WYZa @AV`jpstuyPp N O Q V X ` d f p q x y       ) * 1 2 3 5 6 8 : < = > C G I K N \ ] f u       ) * 1 2 4 5 : < D G I K N U X _ b f p q r     ) * 4 5 : < E F I J N U W ] ^ ` b f p        ; = D F I J O T X ` b f p z 34;@OPZ   *5678>CDHIMNRSWX\]ijmqstuzJPIJNPWXYZ^`[]` FHNPXYZ[\]^_qrstuvwxyz{|}    ' ( '-(---.-------------------00A000000001.1/101114MN ˧Чҧӧԧէڧ`wz  '(/fh !"#%'*;=oo#23PSUVdh%+:@ KP#'(-/0;A[_`a{24?AIJ &4YZ #)-/02568:BCEFuv{~`*.01WYZa @AV`jpstuyPp N O Q V X ` d f p q x y       ) * 1 2 3 5 6 8 : < = > C G I K N \ ] f u       ) * 1 2 4 5 : < D 56DPw? )*1245:<EGIKNPQWX]dfmpuZ[\]^EPZ`m,0@HP  78FPmp  7:;<>?HPZ #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPooooooppkp}')FW`rUV  :;?@EFGJQR"#%&+KPZ^` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp<@IPR`ft HPZ` ?@MPlצ5@   @PF`btvz{~ PQ]^1WY`a   !;@S`np   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\Z_ FHNPXYZ[\]^_~ / 0 G j q t !9!S!!!!""###{#$%$@$K$`$$%%%%&&&p&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''080?0@0A0000001-11111122 2D2`2|22222223w3{3333N.78=>?@BCEF@P $0EISTghlpstuv_a//////'A[a{puvxz~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#op)00!0*080;04MNnpoop֌ p:@ KP# &7PSUVX[\cdhjrs !#234567XYV` U V Q R u v D E b d Z [ b d D E b d 9:T U !!++h,m,op|~`d.0@j_j`jjjOP47PYZ!)-/03478:@FOPXYc`a@KS U   kt,/0;<NOkxy? A !!.!/!!!$%()`,h,w,|,,,..!0001060;0=022MN"0hi>P 0EGst.0GP')^es{BEW0:A[_`a{24?AIJ &4YZ #)-/02568:BCEF{~`*.01WYZa @AV`jpstuyPp N O Q V X ` d f p q x y       ) * 1 2 3 5 6 8 : < = > C G I K N \ ] f u       ) * 1 2 4 5 : < D G I K N U X _ b f p q r     ) * 4 5 : < E F I J N U W ] ^ ` b f p        ; = D F I J O T X ` b f p z 34;@OPZ *5678>CDHIMNRSWX\]ijmqstuzJPIJNPWXYZ^`[]` FHNPXYZ[\]^_qrstuvwxyz{|}'-(---.-------------------00A00000000001.1/101114MN ˧Чҧӧԧէڧ`wz  '(/fh !"#%'*;=oo#23PSUVdh%+:@ KP#wx|}ctvx`*.@AnpN O Q S x y  4 5 X Z     ; = _ ` _airV W X _ '!(!2!3!N!P!!!m,w,~,,-&--.*.3.5.6.9.:.00.000.1/112*,@op|"pq`}0[df@uooF  '(-/0;A[_`a{Z` jn0?^_d f p q v w p q r x w O P X _ p z ?@OPZ\   *56789:>JP`ir}mo57 @ADF Zkt;@~     $ ( * 0 3 5 6 8 < = > A G J T U W X _ !!! !!!!!! !#!$!%!&!'!(!)!*!:!;!A!E!J!N!O!P!!!!,"."/"1")#+#'$@$K$$ * *t*w***t+v+++,,,: `(0ZNRp56GPw? )*1245:;EGIKNPQWX]dfmpuZ[\]`EPZ`m,0@<HP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%0/40494DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooopPSdhpkp}')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 mp<@IPR`ft HPZ`  rswzT`nptx{צ5@   Jxz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p w      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++/,0,_,`,,,&-'-(---.-0-h-o-q--------------------P.....////0@0A0001101111111112 223MMǤФ,@§ǧ,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0hpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56GPw? )*1245:;EGIKNPQWX]dfmpuZ[\]`EPZ`m,0@<HP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%0/40494DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooopPSdhpkp}')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 mp<@IPR`ft HPZ`  rswzT`nptx{צ5@   8xz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p x      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------O.....////0@0A0001101111111112 223MMǤФ,@,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56GPw? )*1245:;EGIKNPQWX]dfmpuZ[\]_EPZ`m,0@<HP  78FPmp  7:;<>?HPZ`fgij #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoEoPooooooppkp}')FW`yUV  :;?@EFGJQR"#%&+KPZ^`q !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 lp<@IPR`ft HPZ` ?@qswz{|`nצ5@   &xz01WY`aKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X [ ` d f p x      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v++++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------J.....////0@0A00011/1111111112 223MMǤФ,@,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              4 8 ; ? H P Y `       6 9 V X s x       I       `NRp679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP#  xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPw? )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%//0/40494DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #PSdhpkp}.0GP')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`ft HPZ`T`npux}9@ K  \xz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++/,0,_,`,,,&-'-(---.-0-h-o-q--------------------S.....////0@0A00011011111112 2ǤФ,@§˧-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZNRp56HPw? )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0@<   679;GPZHP  78FPmp  7:;<>?HPZ`fgij#$o$p$u$$D%0/40494DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ PSdhpkp}')FW`yUV  :;?@EFGJQR"#%&+-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`ft HPZ`yzT`npux{ަ5@ K  Hxz01WYKM.0?@\^_`k       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x    ) * : = E F I J N U W X [ ` d f p w      E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt y ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++/,0,_,`,,,&-'-(---.-0-h-o-q--------------------P.....////0@0A0001101111111112 2MMǤФ,@§ǧ,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0hpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$-KP{(0dop7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 7@T`mnqrt x FHNPXYZ[\]^_~ S W X _ d j r t !;!=!L!S!!!#$'$@$K$`$$%&&&&~&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''+....////0@0A00011-11111112 2D2Q2|222223w3{33334MNǤ.0k78=>?@BCEF@P $0GISTghlpuv $0K&(N'*UV  :;?@EFGJQRצ  $ "4PO`ctvz{~1WY`a   !;@V`np-0K   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w x FHNPXYZ[\]^_~ G H N j q t !;!S!!!!""#|#}##$'$@$K$`$$%%%%&&&r&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''()....////0;0>0@0A0000001-11111122 2D2`2|22222223w3{33334MN¤ŤƤǤ.78=>?@BCEF@P $0EISTghlpstuv_a $0K&(N'*UV  :;?@EFGJQRצ   "4PO`ctvz{~1WY`a   !;@V`np-0K   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w x FHNPXYZ[\]^_~ G H N j q t !;!S!!!!""#|#}##$'$@$K$`$$%%%%&&&r&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''()....////0;0>0@0A0000001-11111122 2D2`2|22222223w3{33334MN¤ŤƤǤ.78=>?@BCEF@P $0EISTghlpstuv_a pPF`btvz{~ PQ]^1WY`a   !;@S`np   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIjqZ_ FHNPXYZ[\]^_~ / 0 G j q t !9!S!!!!""###{#$%$@$K$`$$%%%%&&&p&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''080?0@0A0000001-11111122 2D2`2|22222223w3{3333N.78=>?@BCEF@P $0EISTghlpstuv_a pPF`btvz{~ PQ]^1WY`a   !;@S`np   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIjqZ_ FHNPXYZ[\]^_~ / 0 G j q t !9!S!!!!""###{#$%$@$K$`$$%%%%&&&p&''' ' '(')'L'M'N'O'S'V'W'X'_'a'h'v''''''080?0@0A0000001-11111122 2D2`2|22222223w3{3333N.78=>?@BCEF@P $0EISTghlpstuv_a xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   FW`rUV  :;?@EFGJQR,0 /12=>?@BCFGJOWX_`yz{}2@Iצ5  xz$1WY`a !_`KM : < N P U X s {       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f r       ) * 4 5 : = E F I J N U W X Z ` d f p x       ) * : = E F I J N W X ` d f v y ;?\HImqZ_IJNPWXYZ^`[_}w  7@T`mnqrt x ,0<@ADnpu LP}8;JM FHNPXYZ[\]^_~ e j r t !P!S!!!#$'$@$K$`$&&&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''''M+P+U+,/,0,_,`,p,q,~,,,,&-0-f-o-p--------------------1.....////0@0A00011.1111111112 2D2P223MMğǤ,@`bt|,@xŨΨڨT_`7@NPZ\`.0kp78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?@   : ? @          4 8 ; ? H P Y  o#$c$p$t$')FW`rUV  :;?@EFGJQR,0צ  pptvz1WY`a  !;@_`KMn : < N P U X q {       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 5 : < D G I K N V X \ ^ _ b f r       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_IJNPWXYZ^`[_}w  7@T`mnqrt x ,0<@ADnpu LP} FHNPXYZ[\]^_~ d j r t !O!S!!!#$'$@$K$`$&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''''+ +$+,/,0,_,`,m,t,x,,,,&-0-f-o-p-------------------........////0@0A00011-1111111112 2D2P223MMǤ ",@x.0kp78=>?@BCEF@P $0STghlpuv  '(;<>?NP^47 $0K  679<=?@             4 8 ; ? H P Y  o#$c$p$t$'*FW`rUV  :;?@EFGJQRצ  \BPptvz{~1WY`a  !;@_`KMn : < N P U X q } ~       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 5 : < D G I K N V X \ ^ _ b f r       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_IJNPWXYZ^`[_}w  7@T`mnqrt x ,0<@ADnpu  FHNPXYZ[\]^_~ d j r t !M!S!!!#$'$@$K$`$&&&''' ' '(')'L'M'N'O'S'V'W'X'_'a'''''''''''+,/,0,_,,,,&-0-f-o-p-------------------........////0@0A00011-1111111112 2D2P223MMǤ,.0kp78=>?@BCEF@P $0STghlpuv  '(;<>?NP^47 $0K  679<=?@         4 8 ; ? H P Y '*FWUV  :;?@EFGJQRצ  87PX]ptvz{~1WY`a  !;@Y`KMP : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 5 : < D G I K N V X \ ^ _ b f r       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w  7@T`mnqrt x ,0<@ADnpul FHNPXYZ[\]^_~ U W X _ d j r t !?@BCEF@P $0STghlpuv  '(;<>?NP^47@ $0K  679<=?@'*WUV  :;?@EFGJQRצ  !"4PP`ptvz{~1WY`a   !;@V`-0K   : < N P U X q       ) * 1 2 4 5 7 8 : < = > C G I K N Y ] ^ _ f u       ) * 1 2 4 6 : < D G I K N V X \ ^ _ b f q       ) * 4 5 : > E F I J N U W ` b f p       ) * : > D F I J N W X ` b f p ;?\HIkq"#()+,36:@ZZ_GHIJNPWXYZ^` GH[a}w  (1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$''M+P+Z+,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------<.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @              4 8 ; ? H P Y `   6 9 V X s x   I `NRp56D o#$c$p$t$0/4h9joEoPoooo')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR!067}?@AB>@DPhAEPtצ5@  Jxz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$''M+P+Z+,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------<.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @              4 8 ; ? H P Y `   6 9 V X s x   I `NRp56D o#$c$p$t$0/4h9joEoPoooo')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR!067}?@AB>@DPhAEPtצ5@  xz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$''''''M+P+Z+,/,0,_,`,,,&-0-f-o-q--------------------2.....////0@0A00011.1111111112 223MM̟ǤФ,@t|,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/.0np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @          4 8 ; ? H P Y `   6 9 V X s x   I `NRp o#$c$p$t$0/4h9j')FW`rUV  :;?@EFGJQR,0 /0jp;@IPR!067}?@AB>Ph &(,-.045AEPtצ5@  xz&1WY`a !_`KM.0? : < O P V X s y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f r       ) * 4 5 : = E F I J N U W X Z ` d f p x       ) * : = E F I J N W X ` d f v y ;?\HImqIJNPWXYZ^`[_}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e j r t !!!#$'$@$K$`$&&&&&&'''' ' '(')'L'M'N'O'S'V'_'a'''''''''''M+P+Z+,/,0,_,`,,,&-0-f-o-p--------------------2.....////0@0A00011.1111111112 223MM̟ǤФ,@`bt|,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪.0np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @          4 8 ; ? H P Y `   6 9 V X s x   I ` o#$c$p$t$0/4')V`h  679<=?VW  : ? @              4 8 ; ? H P Y `       6 9 V X s x       I       `NRp56DPw? )*1245:<EGIKNPQWX]dfmpuZ[\]^EPZ`m,0@  78FPmp #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPoooooopkp}')FW`rUV  :;?@EFGJQR"#%&+KPZ^` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp<@IPRt HPZ` (013?@LP_צ5@   xz01WY`aKM.0?@\^_       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X [ ` d f p x       ; = E F I J O W X _ d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$t+v++++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------C.....////0@0A00011.1111111112 223MM֟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$0KP{(0dop7@V`h  679<=?VW  : ? @              4 8 ; ? H P Y `       6 9 V X s x       I       `NRp56DPw> )*1245:<EGIKNPQWX]dfmpuEPZ,0@ #$o$p$u$$D%0/4DGFh9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPooookp}')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPRz{t HPZ`צ5@   xz01WY`aKM.0?@\^_       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$t+v++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------C.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0`dfnp78=>?@BCEF@P .0STghlpuv  '(;<>?NP^47$0KP{(0dop7@V`h  679<=?VW   : ? @              4 8 ; ? H P Y `       6 9 V X s x       I `NRp56DPw> )*1245:<EGIKNWX]dfmpuEPZ #$o$p$u$0/4h9j@j_j`jjjnjpjjjjjkFkPkZk[kbkckxk}kkoEoPooookp}')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR-0~KPz{CEt HPZ`צ5@  Jxz(1WY`aKM.0?@\^_ x y       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x       ) * 4 5 : = E F I J N U W X Z ` d f p x       ; = E F I J O W X ` d f v y ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$''M+P+Z+,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------<.....////0@0A00011.1111111112 223MM͟ǤФ,@,0:@xŨΨڨT_}Ωϩکީ7@NPZ\|ê۪  '(/np78=>?@BCEF@P '0STghlpuv  '(;<>?NP^47 $0K  679<=?VW`   : ? @              4 8 ; ? H P Y `   6 9 V X s x   I `NRp56D o#$c$p$t$0/4h9joEoPoooo')FW`rUV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0 /0lp;@IPR!067}?@AB>@DPhAEPtצ5@  JxzWXbd5678@BEF03;=>? ",-./8905=>@A9:WY/0>?FG46AB       : = > P Q S U X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J O W X b d 0;@FGO56789:>@q+9:?VZ^abegnqu25RTrt ,0<U_a}4Ekt$8  #(,-ƨ&.GT)7CDLN{~ª      8 ; 8Gpqsu'345EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;>?D 3?Q\/78@17:;<>?EFH4;>B K L J M @BKM89a? @ N O ? @ G H F I ?@12UVns>@')46/145,-GI67&'-.5678>@ ;<BC'< = A E M N R S V X b d < = A C M N Q R u v < = A E M N b d < = V W b d C E b d 8;5678qrtv/178=?XZ^a34STst"#239:;<VW[_iklm8;lm,-78%&,-ĨŨ+.GJKO-.2357    9 ; <B*,13st/0AB;=8>BCFG39?@$&()/39;CD  35;?RTY\27?@67BCDEGH8;kk p P 0P0  Pp@jpj`oo  @nn`p  @` P @ ФPPP ` `01 @ ` `  @`/0@00  @ @  ` p0P,`,0004P`p0@ /0 $,-`P0p@` 101p jk @ 0DFP`xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP#  xz01WY`aKM.0?@\^_       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N V X \ ^ _ d f x      ) * : = E F I J N U W X [ ` d f p x       ; = E F I J P T d f ;?\HImqIJNPWXYZ^`[]}  7@T`mnqrt x ,0<@ADnpu_`}LP}8;JM FHNPXYZ[\]^_~ e f r t !!!#$'$@$K$`$t+v++++++++++,/,0,_,`,,,&-'-(---.-0-h-o-q--------------------E.....////0@0A00011.1111111112 223MM֟ǤФ,@,0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0fpnp78=>?@BCEF@P STghlpuv  '(;<>?NP^47$0KP{(0dop7@                                    cdjkghbcefde`aijhiabfg ! DEjkNO  CDGH            ! # $ ,/WYnprs|}./;=be$% AB`bOP =@uw%&*+/0 /1Y[z|-.()*,noyPW"$%&'(qtuvsup 9;]`Ωϩکީ`$-0PPp@0-- ppjj  P` P0P0p   ` b r x           ` b      ` b      _ b !+RV #@C`cMSΫЫѫҫqs@A `b   PQ     `fgijl: < > M N P U X b d > C G I K M > E G I K M U X b d > E F I J M U W b d > E F I J M W X b d 0:@FGHq~+6VZbcgiqu24RTrt ):;at5D&-#(ĨGO)3      8Fsu'3EG,4AB>EGIKMWXbd5B0=@A +,70679 Q\/78<17:;<>?@CD4;>A cn^bfg"+PUI          89  EF>?899:>?AB7M N M N M N M N M N DEĨŨFG56MNBC?@9:?@HL78ceinuz+.{~ªpuªê) 5678;<{}67t u ^_34/; = :;NO:;45z{,-STpq45+,=>45DEAB-.0: P Q S U d f p r       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f t u v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z /0;@FGOPZ 456789:@HImqJKLNOP5@T`mnqrt ,0<Fnpu _`}MPZ8@JMP    t u %%(,-@tƨШڨ.0TЩک7@NPZ`pqwzê         6 8 ; ? I GRv56@DHPt8>B )*1245:;EGIKNWX^dfmpuHPZ^bAPZ,0<@G;   679;DPZ@EFGHP  78APmr  7:;<>?HPZ`fgij;>CPZ]0:f p f p f p f p f p PZ 4@JFPPZ@JШڨ ЩکPZ@ I fp6@PZPZ0<PZPmPZPZ7< = < = < = < = 9:45788 ; st67;=FG:;CDBC  9:`a? @ 34>?GHEFBC q r 78  `b),WX[_$&giqr ?@:; N O ABFG-. r t KLNO  %%tw?@EFu v ;?^aUW37 @ABC;?GHLMZ[023:XZ-4OS@N۫  ] ^ T W z ; : X ` x  ) * 1 2 4 5 7 8 : Y ] ^ _  ) * 1 2 4 5 : \ ^ _ ` q r  ) * : X [  ; /@HIm!?@PRZ^abegnqu #2CRcmnqPc MSU4EM$MP #@^bfiqrs "0G)`pqtz{~ΫЫѫҫ۫       6 8uv'DEGHUs,?@)*1245:50@G , 0 3\/r 1l4Q S Q R  >?fmpuRfu    p q         MN~6723tu46 stŨƨ  45^`CE_`=>78;=59<>@A#= > = > = > = > =>GH@A@0` p     @ W X %'CD24 L M  H I )*=><= H I stvz<=.0  : ; E I Q R U V   G I K M p r   ? @ U W    > A F H J N U V  ; = M O 1248GO9:rsz-/27:;qu23RSrs "'):;X[bceikls}4568BCklmt-467  &'Ũƨ&+JKOR)-./12CDLM|}ª    8 9 8<BGpqsu'*-.0145024568>?@Afmpu>@CE^_9;=>@A "$'(),38;=?@AB 59:;QRTW028>16:;<>?BCD68@AU  ; < > ? @ A I M O P   > ? @ A   > ? @ A   A E   > C W X 0124EF>?+-89;<VXbegn45#%),0239WXabcemn56DE$'*,#%'(ĨRT34MN{|}~EG,/56>@AEMNU+Z+H2P2 .0jp_A[a{cpQ S &,]bfkxy/ 0 q r  *!,!2!3!N!O!`!!`,,"˧Чҧӧԧէڧ./0[\efj!;A[%+0p `,,P  _`}'A[a{puvxz~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>Ppuv!;A[f  '(;<>?NP^ -ABJPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP# f p 0:+Q S d f 06oo֌  0:B          6 8 ; ? I P Y ;>Z12//110)00000 000607080<0>0000112223X3EGa #UVdh0p !"`ntuKM$%().@\`abfgkp : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  y #')239<VWX_`abcems}456;<=BCkt,468  * / ` e j p ,,---.*0.000ost~ %',-@sĨƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @                  ( 0EFUp8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABC04A4G4V4jj0k7kOoPooooo.0GgjsBE7;muv"#%&+07L pK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}456;<=BCkt,468   * / ` e j p ,,---.*0.000ost~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABC04A4G4V4jj0k7kOoPooooo.0GgjsBE7;muv"#%&+07DL "&'()*/3HIqtux()*+,-/0MNY\kmqrsuxz@AFHIJTUVYghikp                              " # 34TUtv rs       !&'()*/3@AHIKnpx()*+,-/NY\kmqrsuxzAFHIJTUV`abfhi y@r                         " # $ 034EQTptvD @A      MN !&'IKxywx$%HIvxxz)*,- 79+,#$35\]mnpq}() 57'(13[\kmqr)* BCop&'"# FGgjA !"@AKnpqtu0M`kp                       ! # $ !"EFeg                   ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm!OP\c       / 0 047494<4oo3!"?@   DFb'd',,,,../.S.U.vxVX qr )*]^X  OP\cpK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 56789:>@q]`25RTrt  ,0<4Ekt$8   * / f p ,,---.*000506000ost~ #(,-ƨ&.GT)7CDLN 0v{      8 ; ? @   $ ( FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>C@4A4G4V4jj0k7kOoPoQoooooo.0GejmBE7;muv"#%&+07DK }~;<=>F G ~  # # # #*#+#i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''))))))))))))))))))))))))))))#.$.%.&.'.(.).*.V.W.X.Y.Z.[.\.].00 0 0 0 0 000000000000000 0>?6789:;<=>?@ABCDEHIPQRSZ[\]^_ =>]^`bce[2^2222222z3|38494=4>4?4@4EE;A0B0C0D0E0F0G0H0I0J0c0d0000000000000000000000000000000000012gq23PSUVdh ( * 3w x   tvuv`m?@EF pq |}d f Z\  45JLab57Z\]a};@~       ' ( V W X \ ] ` ,,,-p-q-......*...0.2.3.5.<.?.@.B.C.K.L.M.N.P.].^.00 ΨШ.0ǩʩ]`WX  P X   9 @ GI@D8:;=KOZ\AC<?DGAEAFCE p$u$njpjjj7k:kDkEknn  :.<.M#$&'*+<?@[^{~pxz~01WY  Kmpq0M$%()0?@Y^_`kp : = > P Q X b p     ) * 1 2 4 5 7 8 : Y ] ^ _ r u v w     ) * 1 2 4 5 : = > \ ^ _ b p x     ) * : = > X [ ] ^ ` b x     ; = > N P T W X b p y z OP *46789@HImLPIJNPWXYZ^`[`ab}2@R`mnq   y@A 4EM\]akt}$MPZ~ FHNPXYZ[\]^_~  " $ 8 9 > D J V \ ] a e p r u } !!!!! ! !!!!!!!#!+!,!T!V![!\!^!_!`!l!p!z!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""""# #####)#+###'$@$K$$%L%P%u%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&& & &&&&&& &9&<&@&A&B&C&`&b&c&f&g&k&l&n&o&p&&&&&&&&&&&&'''W'X'['a'b'e'h''''''))))))U+Z+t+v+++,,,,,-&-'-(---.-0-h-o-p-------------------..... ./.0.2.3.5.:.?.@.K.L.M.N.P.S.MNФ  *,@ost~˧Чҧӧԧէڧ #(,089:@t &0G_`ǩʩΩϩЩީ)@CDL\]  '(/0lp)*P>@puv  '(;<>?NP^47$-KPv(0do{|7@V`h  679<=?VX  : ? @            6 @ I X Y `       6 @ V X s x       I      $ `(0FQZp8INRfqsuv'DEGHPstuvw,:;=>?A )*1245:=>PQ]b5GKOP]^_b0CE,;<   0?@AB 3:;@AFGPQ\  /@AZmr  1FG`fgij4 #$o$$D%//0X2^22222y3|304A4G4DEEGFh9j@j_jpjjjjk0k:kDkEkFk[kbkckxk}kk@nnnnoKoPoQooo֌kp}P')ejmBEFW`yUV  :;?@EFGJQR7;muv%+0n-7>NPDKLq> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~.0jm%2JPv|t HPZ` T  " ; < t u  !!!!!!#!+!,!T!V![!\!^!_!`!l!p!z!!!!!!!!!""""" " " """"""""""!"#"$"%"&"'"-"."/"4"8"<">"H"I"L"M"R"S"`"b"d"h"j"l"n"p"""""""""""""##`$$%L%P%u%%%%%%%%%%%%%%%%%%%%%%%%%%%&& & &&&&&@&A&B&C&`&b&c&f&g&h&i&k&l&n&o&p&&&&&&&&&&&&&&&&&&&&&&&W'X'v''q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@F@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq CDyPnpu U4EM$MPZx5!9!0-h-------------------00<0=0A0000000110111111124MNФ  *,no #@t &0G`})@CDL`pqwz{~ªê۪ݪ  '(/np)*78=>?@BCEF>Ppuvfpq  '(;<>?NP^ -ABJPvP(0d7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I  $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$D%//004A4G4DGFh9j@j_jpjjjjk0kckxk}kkoKoPoQop֌ #23PSUVdhpkp}  -NO !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#tuz{YZ@A$%()q r FGCDx~,kxyq r  |,~,o-p-/.0.001060;0<00000  pqϩЩpqݪު\`ijpq@kDkoooooo0n7>KLФ  '(;<>?NP^47@ 47@V`h e f  ,0<@ADP!P!8;JMP   0xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ ` a /0 !G;@O@PPnpu _`}`ê۪,:<?G"#'(     9 ; ['a'.... .".vy3$%+,\] ?@ !!""ij3%&  jk y z 0 8 W X !! ! !89jk()[\{|:;<=    E F } ~ # # # #)#*#h'i'j'k'l'm'n'o'p'q'r's't'u'''''''''''''))))))))))))))))))))))))))))..".#.$.%.&.'.(.).B.C.U.V.W.X.Y.Z.[.\.0 0 0 0 0 000000000000000?@56789:;<=>?@ABCDGHYZ[\]^ ;<[\_`bcX2[22222y3z37484<4=4>4?4EE^`0:`jkmf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : fp6@PZPZ0:PZPZPZPZ`jjjjjPkZk@JPZ#< > G J 0000;0=000000000TVefooy| ,-./:<~ D E  $ ' ""  Q####&&&&&&&&& &9&<&h&i&&&&&&&&&&&&&&&&&&&&&&&&&&'' 'd'e'....////000000 0*0005060;0=0@0B0C0D0E0F0G0H0I0J0c0d0000000000000000000000000000000000011011111122 2H2P2MNǤ05EGIPQRXY_ghikl  ;<=>[\]^_fgqEPp #p mpBDFQfy|}%2Jtvz{EHKt HPZ`  &'0:<?wxT-.)*78=>?@BCEFP89TUpqĬŬ45PQlmܭݭ01LMhiخٮ,-HIdeԯկ ()DE`a|}аѰ $%@A\]xy̱ͱ !<=XYtuȲɲ89TUpqijų45PQlmܴݴ01LMhiصٵ,-HIdeԶն ()DE`a|}зѷ $%@A\]xy̸͸ !<=XYtuȹɹ89TUpqĺź45PQlmܻݻ01LMhiؼټ,-HIdeԽս ()DE`a|}оѾ $%@A\]xy̿Ϳ !<=XYtu89TUpq45PQlm01LMhi,-HIde ()DE`a|} $%@A\]xy !<=XYtu89TUpq45PQlm01LMhi,-HIde     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1")#+#`$$ * *t*w***|,~,o-p-....//00607080;00000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR&(1489?CILRTfh &4@BCEtu~ 9:PRSTWX\_vx"') * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M CDMNRSWX\]ijstuwxy&'     ;<=>@BCD FHNPXYZ[\]^_~  &!'!*!,!!!!!!!"" " " " "$"%"&"'"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#**L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000 !"#%'*np *78=>?@BCEFO.0KM89^e #)-/0289@Ftu~SV< = X ` 3 4 6 7 Y \ ^ _ > ? V X \ ^ V W > ? W X CDMNRSWX\]ijstuwxy./av56qrstuvwxyz{|}~  &!'!*!,!)#+#**00 !"#%'*np *78=>?@BCEFO'(>?WX01^eU #)-/0289BCEFSV< = > ? V X V W > ? W X ./av5600'(>?WX01\]bh//@      P  @ `PPP```P%/`4DFhk@nnoooPP`pP #  d f 060:`jf p f p f p r x f p x  X _ f y PZ 4@Ji}FPPZ@JPZp q t z P!!!!`$$$%v'',,00!0*080;011 2*2H2P2Q2`22222 *06Шڨ ЩکPZ4@y $ABJKX`y         @ I }      X ` x      0 : `'QURp6@PZPZ0<PZPmPZPZ$o$`jjjjjPkZk[kbknn`y@JPZq./>  ./`` f p @j_j`jjjnjpj`  y/ 0 `m 0:EPZpK`pq0K$%().Y\ : ; < = A I M N Q X b d   < = A C G I K N Q R p r u v   < = ? @ A E M N U W b d    < = > A F I J N U W b d  ; = A E M N b d 124;GO56789:q-1289;=?XZ^aqu]`24RTrt  #')239<VWX_`abcems}456;<=BCkt,468 ,,---.*0.000opt~ %',-Ĩƨ&.GR)/1357CDLM|}ª 0v{      8 ; ? @   $ ( FQ8Gpqsu',-5st/24568>?AB;=@Afmpu8@BEFG^_3;=>?A "&',/89;;=>?CD 39;?GHQWY\078>?@17:;<>?FGH6;@ABC@4A4G4V4jj0k7kOoPooooo.0Ggj{BE7;muv"#%&+07DKQ S d f    E F I J P T d f 03#$&')*''+,oKoOoooo        @nn  psm  ; < > A I M N P   > A   > ? @ A G I K M W X   A E   > A F I J M W X >@+-1289;=VXbegn45#'),0239UVWXabcems56;<=BCE$,46.000#%'(ĨRT/135MN{|}~,-EG,/2456>@AEGIKNWXbd58@BEF03;=>? "&',/890679=>@ABC9:WY/0>?46>@ABQooooegms"#+,<?^_|}~   2 5 @ A D E R S a e z  !!!! !!!!!!$!%!(!*!,!.!/!2!3!9!?\]^_UV  :;?@EFGJQR !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~p@A    @A@\^_0d p 0:PwmpK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 124;GO56789:>@q+?VZ^abegnqu]`25RTrt  ,0<U_`}4Ekt$8 ,,---.*00000ost~ #(,-ƨ&.GT)7CDLN{~ª 0v{      8 ; ? @   $ ( FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>C@4A4G4V4jj0k7kOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK : ? @ @E @AKnpq0M@Y`kp : = > P Q X b r     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b өԩSTkl  Z[{|    B C Z [ z {   3 4 bc TUij9:STST34STST\]STST$$$ $$$ $!$$$&$.$0$6$8$:$<$K$L$Q$R$W$X$cjdjjjSkTknnnnbctuCDSTst01    ));;Y2Z2X2Y2W2X2V2W2U2V2T2U2S2T2R2S22$3$Q2R2   ,-  &' #$  :;   stIsts$t$$$$$$$90:0I2J2DSES^_\]    E F     ] ^ } ~   jk#$ST\];<dejk{|  V!W!T!U!wx  ~[$\$^$_$f$g$23bch i h i h i h i z { } ~ h i RS"#BCjkHIRSBCRS a!b!q!r!a$b$u$v$$$$$w'x'''''"0#011!2"22244NNiQjQ ____01"#ҨӨҩөRSxy [_YZz{    A B Y Z y z   2 3 abSThi89RSRS23RSRS[\RSRS$$$$$ $#$$$-$.$5$6$J$K$P$Q$V$W$Y$Z$bjcjjjRkSknnnnabstBCRSrs/0##r$s$$$$$$$nnq$r$$$$$$$nn23p$q$$$$$$$nn o$p$$$$$$$nn12n$o$$$$$$$nnm$n$$$$$$$nn01l$m$$$$$$$nnk!l!{!|!k$l$$$$$$$nn/0  j!k!z!{!j$k$~$$$$$$nnFQGQakbk`kakNNQQ_k`k^k_k !!  |}!!NN,-+,UV_`  ]k^k%&;<+ r s o!p!!!NNCSDS!""#MNTUqr^_  G H _ `     efG q r {|m!n!}!~!pOqO~vvLMKLRSjk]^     F G   ^ _ ~      rs%&TUdelm\k]kw p q rsi!j!y!z!i$j$}$~$$$$$''''''8090)2*2H2I222NNASBSbbstIJPQWX`e"#[\~    D E     \ ] | }     ij"#RS[\:;cd[k\knnijz{  78Q!R! v w w x [!\!45_$`$P!Q! Y!Z!  a$b$=>^ _ U!V!Y Z  r s s t 01@A  |}`$a$b$d$ S!T!  }~Z$[$]$^$e$f$[ \ #s t t u *+,,12ABuw    H I {|&'d$e$<=X Y   u v v w 34  \ ] R!S!12abg h g h g h g h y z | } g h QR!"ABijGHQRABQR _!a!p!q!`$a$t$u$$$$$v'w'''''!0"011 2!222NNXXXXz^{^ _ _!"ѨҨѩҩQRBCX[ !XYyz    @ A } ~     X Y x y     1 2 `aQRRSgh78QRQR12QRQRZ[QRQR$$$$,$-$4$5$O$P$X$Y$ajbjjjQkRknnnn`arswxABQRqr* + 01`af g f g f g f g x y f g PQ !@AFGPQ@APQp q !!$$$%00 !ШѨЩѩPQ0 1 fg67PQPQ01PQPQPQPQ`jajjjPkQknn@APQ  34P!!1 r x x  X _ p y *4r}P!!!!i$t$}$$$$$$$$'''''',,00!0*080;011 2*2H2P2Q2`222224444*8+8M;N;NNNNNN N N]N^NNNNNNNNNNNNN OOpOqOQQFQGQiQjQkQlQmQnQASBSCSFSLSMSSSVVXXXXz^{^^_ ____bbLcMcggooss~vv,-01!"FGLMxy06klstxy4@y $ABJKX`y         D I }      X ` x      i'QU[f:<Zm$o$[kbknn`yq./>  de!"* +             ##));;mbnb)irp q t z `$i$t$}$$$$$$$$%v''''''@ D `iR[ oop r x x  X _ p y *4i}p q t z P!`!!!`$$$%v'',,11 2*2H2P2Q2`22222064uy $X`y         @ I }      X ` x      `'QURf:<Zm[kbknn`yq./> `!!!!00!0*080;0@uABJK$o$    >@&(1289ACJLRTfh &4@BCEtuz{~ 9:PRSTWX\_vx"'uy) * 1 2 4 5 X ` 3 4 6 7 Y \ ^ _ H I K M \ ^ H I J M 34  CDMNRSWX\]ijstuz&'     ;<=>@BCD,/0;<NOkxy FHNPXYZ[\]^_~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!!!!!!!"" " " " "$"%"&"'","."/"1"A"B"D"E"G"H"I"J"`"a"b"c"m"r"t"v"x"z""""""""""""")#+#`$$ * *t*w***|,~,o-p-....//00607080;0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0^0_0`0a0b0c0e0f0g0h0i0j0p0r0s0u0v0x0y0{0|0~000000000000000000000000000000000000000000000000000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv.0KM89^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPRK24?AIJ #)-/0289@Ftuz{~SVuy< = X ` 3 4 6 7 Y \ ^ _ > ? V X \ ^ V W > ? W X 34  CDMNRSWX\]ijstuz./av56,/0;<NOkxyqrstuvwxyz{|}~     $ ' / 0 3 5 6 8 < = > ? G J W X _ ` p r t !!!! !!!!!! !#!$!%!&!'!(!)!*!.!/!2!3!:!;!A!E!J!P!!!!,"."/"1")#+#`$$ * *t*w***|,~,o-p-....//00607080;00000011111122 2H2P2224pq\`ij !"#%'*np78=>?@BCEF>P0EGSTghlpstuv'(>?WX01^eUV  :;?@EFGJQR0n !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~ /0Pjm<@IPR24?AIJ@BCEtuz{~uyX ` 3 4 6 7 Y \ ^ _ \ ^ 34  CDMNRSWX\]ijstuz,/0;<NOkxyqrstuvwxyz{|}~ st~txΨШ.0_`Ωީ\`ު01EGIMPSTX_bhijl !<=abdfopWX  ? @ P Y     9 @   UZGN@Dtv8>KPZ\]^AD`m<?;<DG?G AFprCP p$u$//njpjjj7kF G ~  # # # #*#+#i'j'k'l'm'n'o'p'q'r's't'u'v'''''''''''''))))))))))))))))))))))))))))#.$.%.&.'.(.).*.V.W.X.Y.Z.[.\.]. 0 0 0 0 000000000000000 0>?6789:;<=>?@ABCDEHIZ[\]^_ =>]^`acd'-.  ....:.<.@.A.].^.0000100013XYcd  _`? A T U 35MP?@9!0:A[_`a{ ( 0 ? A T U _ !`$%v'',..000!00010>@EG`!$%+,0:<?A[^_`{|}~~Z`    jn0?^_d f p q v w w x OPZ\:>JP`ino57 DF Za};@~ ( 0 D E R S _ }  # #)#+#h'v''''')))))),,,-p-q-./.0.P.R.^.00000 00010=0>00000 st~txΨШ.0_`Ωީ\`ު>@0STbcdhijl !;>?@[\]^_fopWX  ? @ P Y     9 @   UZGN@Dtv8>KPZ\]^AD`m<?;<DG?G AFprCP p$u$//njpjjj7k de!"* +             ##));;mbnb   34  -. *+  $%!"JK  z{z{ABqrcdklqr./9:ijo p o p o p o p o p YZ)*IJqrOPYZIJYZy z h!i!x!y!h$i$|$}$$$$$~'''''')0*0(2)222]N^N^^ss)*٨ڨ ٩کYZ  9 : hiZ[op?@YZYZ9:YZYZbcYZYZ$$$$$$$$+$,$F$J$n$o$ijjjjjYkZknnhiIJYZyz  67     23  ,- )*  #$  !  yzyzO2P2pqbcjkpq89hin o n o n o n o n o XY()HIpqNOXYHIXYx y g!h!w!x!g$h${$|$$$$$}'~'''''(0)0'2(222kQlQLcMc()ب٨ ة٩XY  8 9 ghYZno>?XYXY89XYXYabXYXY$$ $$$$$$*$+$D$F$m$n$hjijjjXkYknnghHIXYxy 56     12  +, ()  "#    xyxyN2O2  opabijop^!_!-.  78ghm n m n m n m n m n WX'(GHopMNWXGHWXw x f!g!v!w!f$g$z${$$$$$|'}''''''0(0&2'222M;N;NNggoo'(רبשةWX   7 8 fgXYmn=>WXWX78WXWX`aWXWX$$ $ $$$$$)$*$A$D$l$m$gjhjjjWkXknnfgGHWXwx45    01  *+ '(  !"  wx9:wxM2N2  no`ahino67fgl m l m l m l m l m VW&'FGnoLMVWFGVWv w e!f!u!v!!!e$f$y$z$$$$${'|'''''&0'0%2&222mQnQFGxy&'֨ר֩שVW    6 7 efWXlm<=VWVW67VWVW_`VWVW$$ $ $$$$$($)$@$A$N$O$k$l$fjgjjjVkWknnefFGVWvw34    !!/0GHVW  )*!!&'FGNOrs   !n!o!~!!EFLMSTlq  vw5vwl!m!|!}!!!L2M222DEJKQRfjtu#$  ~    mn_`ghh$i$mn~]!^!Z![!  \$]$,-   56efk l k l k l k l k l UV%&EFmnKLUVEFUVu v d!e!t!u!d$e$x$y$$$$$z'{'''''%0&0$2%22244*8+8NN OO%&ը֨թ֩UV  CDHIOP_`st!"}~      5 6 de!"VWkl;<UVUV56UVUV^_UVUV$$ $ $$$$$"$#$'$($1$2$9$:$M$N$T$V$j$k$ejfjjjUkVknndevwxyEFUVuv23!"2222222222223$4$222222   ./  () %&     uv89%uvK2L222LSMS  lm^_fgg$h$lm}~     X!Y!45dej k j k j k j k j k TU$%DElmJKTUDETUt u c!d!s!t!c$d$w$x$$$$$y'z'''''$0%011#2$222NNVV$%ԨըԩթTU  |}  C D [ \ { |   4 5 cd !UVjk:;TUTU45TUTU]^TUTU$$ $ $$$$$!$"$&$'$0$1$8$9$<$@$L$M$R$T$i$j$djejjjTkUknncduvDETUtu12dembnb22222222_2`2^2_2]2^2\2]2[2\2   -.  '( $%  kl  tu'tu:0;0J2K2Z2[2ESFSef  kl$%]^efkl|}    Z [ \!]!W!X! t u u v 23xy  ] ^ +,  w x x y 5634cdi j i j i j i j { | ~  i j ST#$CDklIJSTCDST b!c!r!s!b$c$v$w$$$$$x'y'''''#0$011"2#222 N NNNSS__#$ӨԨwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOqrstwxz~0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (08@FPX`hp~q r  ! !!!!!/!0!4!5!9!:!!F!J!N!O!p!!!!$$0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-&-'-(---.-ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧ˧ѧҧӧԧէ֧קا٧ڧ0[\jpA[(P  `nn4NUVh8Rl"<Vp6OPVp  %+0n"D?tuYZ Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 124@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~5!9!!!!!0-h-o-p-------------------/.0.00!0*0106080=0A0000000110111111124MNФ  *,no  #@t &0G`}ϩЩ)@CDL`wz{~ªê۪ު  '(/np)*78=>?@BCEF>Ppuvf  '(;<>?NP^@u -KPvP(0d7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I  $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kkoKoPoQooooooop֌ #23PSUVdhpkp}  -7>NOKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#+   * / ` e f p 04@4s{spK`pq0K$%().Y\ : = > P Q X b d   < = > C G I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 124;GO56789:>@q+?VZ^abegnqu]`25RTrt  ,0<U_`}4Ekt$8  ,,---.*00000ost~ #(,-ƨ&.GT)7CDLN{~ª 0v{      8 ; ? @   $ ( FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>C@4A4G4V4jj0k7kOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK ["#'*[\]^{|}~:> 9 ; E G }  # #)#+#['a'h'v''''')))))).... .*.B.C.U.].00000 0>@5EGIY_ ;<=>[\]^_abdvy ./$ % RSƨΨڨ`  .0?$%+,<?^_`a|}~uv    p q  O P y z ?@ 456789mn@Aakt}D E R S z } !!!!! !!!!!!$!%!&!'!(!)!*!.!/!:!0@00011111122*2H2P2Q2`222224MNǤ "(,6:wz[\jl)*@Pbcdgij >?@A\]^_7@ywy  ?@?@ABCDGHYZ[\]^ ;<[\_`bc@ V X ` w!$%(*+,-.0:<?A\]~Z`    jn0?^_d f p q v w w x OPZ\JP`ino57 DF Za};@~  ( 0 9 ; ? A D G R S T U _ ,,,-p-q-... . . ........ .*./.0.:.<.@.A.B.C.P.R.U.00=0>000      ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w  Iptuxz~&+]bfk FHNPXYZ[\]^_~&!'!ef@F )*1245:<EGIKNPQWX]dfmpu  7:;<>?HPZ `fgij ,`,"#%&+-&-'-(---.- kp}<  Q U d f  0+,xy-.@.00n   679<=?@//,,,-56H@T 10111 u   @AKVpqPp P>@puv` !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~LPZ^`+$%   ?@ 89ij  #'*,/0;?@A\]^a|}~uvxz~01WYZ]^` jkmnKM.789:=?@\`kpp q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789HImqLPIJNPWXYZ^`[]`bcgimn7@T`mnqrt   y ,0<Dnpu _`}MP\^`kt}8;=@JM FHNPXYZ[\]^_~     $ % ( 0 9 ; < > E J _ e f p q r } !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF@P 0135EGIPSU_cdpuv  !<=>A\]^_ef  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ V X ` }        6 @ V ` s    I      ( 0 : '(0QUZpIfv56@AHPtvw:;=>B )*1245:;EGIKNPQWX]dfmpuMPZ^bCDEPZ,0:<?@G;   679;EFGPZ?BDGHP  78CPZr  7:;<>?HPZ`fgij;>EPZ #$o$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjk9k@kEkPkZkckxk}kk@nnnnoKoOoooooooooop֌ #23PSUVdhpkp}.0GejmBEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjpvy:@ KP# A[      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~      !"#$%&'()*+,-./0123:<=?ABCGHIJKLMNOpqrsvw0`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1W      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(08@HNYZ[\]^_`hp!!!! !!!!!!!!$!%!&!'!(!)!*!.!0!4!>!@!E!F!`!p!!!$$,0,`,a,b,e,g,h,i,j,k,l,m,q,r,s,u,v,~,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}§çħȧɧʧЧѧ֧קا٧!;(p{|  @n`n4Nh  8:;?@EFGJQl"<Vp5Vo"0JPjp!"?@ 789:=?d f JLbcgino57  DFZ\^`};=~< > G J ../.<.=.S.U.00vxΨШ/0ȩʩ]`VX abV X UZGIAD8:;=KMAC<?DEFGBDACCEnjpjjj7k9kDkEknn ! / 0 _ ` 00( * ',.:;]^    0013PRUVXYcd de0:`jkmf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : fp6@PZPZ0:PZPZPZPZ`jjjjjPkZk@JPZ;a{      !"#$%&'()*+,-./012345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvG I K N Q R p r u v   < = > E G I K N U X b d  < = > E F I J N U W b d  ; = > E F I J N W X b d 124;GO56789:>@q+?VZ^abegnqu]`25RTrt  ,0<U_`}4Ekt$8 ,,---.*00000ost~ #(,-ƨ&.GT)7CDLN{~ª 0v{      8 ; ? @   $ ( FQ8Gpqsu'5EGst,8>?AB;=>EGIKNWXbdfmpu5G^_0A,,;0679;?@ABD 3:;?GHQ\/78@17:;<>?FGH4;>C@4A4G4V4jj0k7kOoPoQoooooooo.0Gejms{BE7;muv"#%&+07DK _`/ 0 ? A T U 35MP?@"#    " 0 2 ; = B C G J Q R e f !!! !!!!!!!!$!%!&!'!(!)!*!.!/!5!@!E!K!L!N!O!!!!""4"6"## # #$#)#+#,#}##########$$$%%& &h'v''+0+P+Z++++++++,P.R..00000 00010A0B0C0D0E0F0G0H0I0J0c0d0000000000000000000000000000000000000'1(1122X3{33Ф` 0ISX_cgp  ;<=>?@[  0`4DFoE00A0B0C0D0E0F0G0H0I0J0c0d00000000000000000000000000000000000'1(1122X3{33PS  )#+#000 000100000Y_ ;<=>?@[a  " 0 2 ; = B C G J Q R e f !!! !!!!!!!!$!%!&!'!(!)!*!.!/!5!@!E!K!L!N!O!!!!""4"6"## # #$#,#}##########$$$%%& &h'v''+0+P+Z++++++++,P.R..Ф` 0IPXYcgp a  0`4DFop{| ,!4MN !"#%'*:@ KP#pjjjj Q S d f 0:HImq;@\   `j 570-h-o-q---!",-./:<?@~      0?^_d f Z\  JLaino57 DFZ\]`};@~< > G J ../.<.=.A.B.L.M.N.P.S.U.00 vxΨШ/0ǩʩ]`ߪPSTX  abdeWX  V X   : @   UZGNAD8=KNZ\AC<?DEFGBDADqrCEp$u$njpjjj7k:kDkEknn#Q S d f    ) * : < E F I J N U W X [ ] ^ ` d f p w ê۪ oop 3Q S d f ;=   @JPnpu d f 0:` 57`mnqrt`p   @AKVpqKMP`kpd f -..*+p ))'(!"./?@ 789:=?d f JLbcgino57  DFZ\^`};=~< > G J ../.<.=.S.U.00vxΨШ/0ȩʩ]`RSVX abV X UZGIAD8:;=KMAC<?DEFGBDACCEnjpjjj7k9kDkEknnP(@A0Zq p q  O P y z  456789mn@Aakt}!!!!! !!!!!!$!%!&!'!(!)!*!.!/!:!0@011111122*2H2P2Q2`222224MNǤ(,689:wz@P7@ywy  ?@?@Ad f  d f 0: Q R PEik/0IJhiVWXYbc-.q r H!J!|,},"$VX&(Z\*,^`LNhiZA[a{tu~   @Ad f ?@57  e f q t  !&!'!*!,!2!3!N!O!`!!!!'$@$K$`$()t+v+++,.^.//00000!00080<0@00000001111 2`22223X34MN"0:./ϩЩ[\jl>@0STghl!;A[fpq47@P')gj{W`yUV  :;?@EFGJQRq>,0<@IPR`fw{ HPZ`T`np} Ǥ     ) * : < E F I J N U W X [ ] ^ ` d f p w %  Pnpu`mnqrt KMP`k-0Z  ( 0 : ;pKVpqQ U   *0.000 .;<.0Ggj{      @xP{p      ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x `   y`mEPZ    E F I J P T d f     @\^_Pw  '(;<>?NP^7@V`h  ,0<@ADPOA[a{&,]bfkxyq r  *!,!2!3!N!O!`!!`,,"˧Чҧӧԧէڧ0[\efj!;A[%+ B000112223X3fpq #UVdh./0ΩЩکީ A0000 23PS 5.00011122`22`}+....//0000!0*080<04MNnpoooo:@ KP#!? A T U q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF^d>P 035MPqrstwxyz{|}~!;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:@G;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CPZ #$o$$D%//004@4V4DGFh9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@nnoKoOoooooooooop֌ #23PSUVdhpkp}.0Gejms{BEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#  !"#'(,-./0<A[_`a{uvxz01WY]^  jkmnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z 124;GOPZ *56789:>HImq+?@JVZ^abegnquIJNPWXYZ^`[]`mo5@T`mnqrt  y ,0<FPU_`}MPZkt8@JM~ FHNPXYZ[\]^_~      $ % ' 0 ? A D E T U _ e f p q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!?@BCEF>P 035MQRSTVpuv !;?@A[f  '(;<>?NP^@u -KP{(0dp{|7@V`h  679<=?V`w   :              6 8 ; ? @ ` }        6 @ V ` s    I      ( 0 : '(0QpGfv56@DHPtvw8>B )*1245:;EGIKNPQWX]dfmpuKPZ^bADEPZ,0:;   679;DPZ?GHP  78APZr  7:;<>?HPZ`fgij;>CPZ #$o$$D%//0V4DGFh9j@j_j`jjjpjjjjjjjjk7k@kDkPkZkckxk}kk@nnoKoOoooooooooo #UVdhkp}.0GejmBEUV  :;?@EFGJQR56OPop7;muv%+"#%&+0n-0>@JNOLPZ !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp   !   _ ` 00'(0:`jklf p f p f p f p f p PZ *@JFPPZ@JPZ *Шڨ ЩکPZ0 : fp6@PZPZ0:PZPZPZPZ`jjjjjPkZk@JPZ ( * ,-;<~ lmD E PQTU :;_`' ( UV ./  $ % RSA[a{puvxz~01WY]^_` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z @HImIJNPWXYZ^`[mo2@R`mnq y4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!.!/!:!Ppuv!;A[  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoPoQoooooookp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~0JPjp106000000112223X3f #UVdh)  * / ` e f p 04@4s{upK`pq0K$%().Y\ : = > P Q X b d   < = > C icalsymbolsplaceholderwithstackermetricshapesextendederscriptsandsubscriptsymbolsforlegacycomputingcanonicalcombiningclass=2halfwidthandfullwidthformsrecommendeduncommonuseinarabicpresentationformsbcombiningmarksforsymbolsprependedconcatenationmarkis_in_multi_char_foldeuropeanseparatorblk=supplementalcanonicalcombiningclass=128nclosedcjklettersandmonthsgeneralcategory=othestatus=restrictedymbolsandpictographsextanojoininggrouptehmarbutagoalopticalcharacterrecognitionbidiclass=lefttorightbidiclass=righttoleftatarprecedingrephatakanaphoneticextensionssupplementaryprivateuseareaacanonicalcombiningclass=ccc1succeedingrephalphabeticpresentationformsancientgreekmusicalnotationlb=conditionaljapanesestarteriscellaneoussymbolsandarrowsdecompositiontype=nonhangulsyllabletype=lvtinitialpostfixedryprivateuseareabvariationselectorssupplementjoininggroup=manichaeantpopdirectionalisolatenclosedideographicsupplementathematicalalphanumericsymbolsideographicdescriptioncharactersincjkunifiedideographsextensnclosedalphanumericsupplementiscjkunifiedideographsextensuneiformnumbersandpunctuationymbolsandpictographsextendedaaboveleftiscellaneousmathematicalsymbolsablk=cjkunifiedideographsextensbelowrightgyptianhieroglyphformatcontrolsideographicsymbolsandpunctuationmathematicalalphabeticsymbolsdoublebelowombiningdiacriticalmarksextendedindicpositionalcategory=topandinmiscellaneousmathematicalsymbolsbblock=cjkunifiedideographsextensindicsyllabiccategory=consonantiscellaneoussymbolsandpictographsombiningdiacriticalmarksforsymbols_perl_problematic_locale_foldeds_compatibilityideographssupplement=bottomandrightvowelindependentverticalorientation=transformombiningdiacriticalmarkssupplementblock=supplementalmathematicaloperatorsattachedaboverightisunifiedcanadianaboriginalsyllabicsextendeda   !  ( * % xz01WYKM.0?@\^_`kp       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f w       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f x    ) * : < E F I J N U W X [ ] ^ ` d f p w    E F I J P T d f ;?\HImqIJNPWXYZ^`[]}7@T`mnqrt y ,0<@ADnpu_`}MP8;JM FHNPXYZ[\]^_~ e f r t !!!'$@$K$`$t+v+++,,&-'-(---.-0-h-o-q--------------------^.....////0@0A00011011111112 2ǤФ,@˧Чҧӧԧէڧ-0:@xƨΨڨT_}Ωϩکީ7@NPZ\ê۪  '(/0lpnp78=>?@BCEF STghlpuv  '(;<>?NP^47$-KP{(0do{|7@V`h  679<=?VW  : ? @              6 8 ; ? I P Y `       6 9 V X s x       I      ( 0 : `(0ZpNRv56HPwB )*1245:;EGIKNPQWX]dfmpu\]bEPZ`m,0G<   679;GPZHP   78FPmp  7:;<>?HPZ`fgij;>Z#$o$p$u$$D%//0V4DGFh9j@j_j`jjjnjjjjjjjjkFkPkZk[kbkckxk}kk@nnoKoOoooooooop֌ #23PSUVdhpkp}.0GP')FW`yUV  :;?@EFGJQR%+"#%&+0n-0>@JNPLPZ^`q> !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~,0<@IPR`fw{ HPZ`T`np}:@ KP# &A[a{tu~?@  / 0 e f q t  !&!'!*!,!2!3!N!O!`!!!!'$@$K$`$()t+v+++,.C.D.^.//000000 0!06070H2`2222222q3{33334MN"[\jl0EGSTghl!;A[aP')gj{WryUV  :;?@EFGJQRq>,0<@I`fw{ HPZ`T`np}  ! / 0 _ ` 00) * ( ) H ! ( * / 0 _ ` 00ФMN00000000Ǥaf   `j  #$o$p$u$$D%5A[a{puvx{~01WYZ` Knpq0M$%()@Y`kp : = > P Q X b q     ) * 1 2 4 5 7 8 : Y ] ^ _ r u     ) * 1 2 4 5 : = > \ ^ _ b q r     ) * : = > X [ ] ^ ` b     ; = > N O T W _ b z 123@G@HIm+?@PVZ^abegnquIJNPWXYZ^`[mo2@R`mnq yPnpu U4EM$MPZ~ FHNPXYZ[\]^_~q r  !!!! !!!!!!$!%!&!'!(!)!*!:!?@BCEF^d>Pqrstwxyz{|}~!;A[f  '(;<>?NP^@u -KPv(0dp{|7@V`h  679<=?V`w   :            6 ` }        6 @ V ` s    I      $ '(0Fp8qsuv'DEGHPsvw,?A )*1245:=>PQ]b5GK_b0DE@G,   0?@AB 3:;PQ\  /@Ar  1FG`fgij4 #$o$$D%//004A4G4DGFh9j@j_jpjjjjk0k@kDkckxk}kk@nnoKoPoQooooooop֌ #23PSUVdhpkp}UV  :;?@EFGJQR56OPop%+0n-7>NODKL !#$%'()3489:;<BCGHIJKLMPQSTUWXYZ[\]^_`acdegklstxy}~:@ KP#0:A[_`a{uvx{~01WYZ` jnKM.@\`kpd f p q       ) * 1 2 4 5 7 8 : < = > C G I K N Q R Y ] ^ _ f v       ) * 1 2 4 5 : < E G I K N U X \ ^ _ d f p q r    ) * : < E F I J N U W X [ ] ^ ` d f p    E F I J O T X _ d f p z ;@OPZ *56789:>HImqJPIJNPWXYZ^`[]`irmo5@T`mnqrt  y ,0<Fnpu _`}MPZkt8@JM~ FHNPXYZ[\]^_~c  cc;us G()Sc2N?  5 `   ,B  5 =5oS/9T{` NP( @ 8 + 0mQHL_ $`$  O X  HO|%1 ^$  f zt!`"}A.t(a  $HW> ! : NQN2M oT{!a!NN 2_   l*W H \ 7 a B  >c|U j` 1$ 0 5 U,'|m   VW,a2c N sR[=(S!da j58. o2pZ|a C^csR8 9s  5l N -5*  ~'$Grb/7 6S  + * HZN? < I(H5  5]9!ISE  2    U5MX  V HNu x5_`-   F^ Gw5 H  !`5+\  >"  uE  VIHO "Hia $     +dN [ 7 1  5 + T`  c_AS`$.q  +N4a\Ncz? Y DH*?  e }B$5 5H!Nx O13IF0H q  CcFjF '~ oA/ H} fW D` ,  ]q !T|| a & s $  $YD5Wd;Nz  5){F bHphr5, -> 5G) Ss$qw : c$c kwW'Zx  cwV3 &  ]HquJ(.NJAjI5W  Po ` I$!2 gH A $ [W   MXN}P  NYHA/*=H$  .   NUg ? ` J f QSx  6: 3 H 5lGuHc V #cjn a  ON+\;>] x Sc G$g dcK }'  r f3; IUDj_ [a PE RwV @15 &1;  @cw O a j5 5;M I 3 4N 5 N=iEd  V  W!V[W$ ev Hj I  cV"wv1y ?TI{& o W9Dc DqGXyGWi 3<  LH I $] J( H O5N  W]?   uaGW6!c-  }7IgG j H=i` fm  Sv"5gPN6aOO 8   "? "  +OX" N' c| '3IQ { HN{S5 W4Wj E*Y &B*  3 - C) !`AH [  $uI)1h 7v 'j uLe+]K? E a0    H< 8 ).ac0cN l NZz Y  ;  4;!?  tJ@ !U! s s   V5 el5%A |I uVHxc  E M 5]% a &H  !@19 b#a5vx!N3  7[ gFP$Gg?  `iH^$  "  v px!$k 5>c S ! !5c I 0  5dtVW#  5H)  pSP  2k\@?/1 0  1_j   . "PDnZi  uns  3 'H]n)"P V !5 ^5k !! 2  OKcwi3yHY & SYj H & WZW|%/ 0G/hxz$>iz],N& 5 3  c$ } B Bx S+c{c  ^ W TJSs m J|  WNc  -Su a4Wl 38H X  J8  (S6G,ZE @!! UC.aA -d5,R6 'e)CS1Hq 1_H )@ er %j uE S &9   c6Nc^$HNH6:2 ` 5n,INt  ! HN  Ie   Z!?H 3Iro 6  !z  z )j 7 I  KRH^NS.N , 6 H-*Nz   r) IN?  .aa @ -'y I Qc6  zv@85I fWW 1 *I @[ `)a FH NH}Nf0$#>N`f0;?  lF / H  &Z      J(  cjk S 5uw# 8H.YT5xr o  R I* .cIxN ]W? ` H?W@  L $!*` 6a"3 H C ? cO ;Mi*y q \Y 3 2| V[YN*Yw" "]ha ~j8 *$* H.  V W>& & 0$5 r "HOZ#H8  * ,Y 1 ' " ' o.5m1) A N'PX  - c F Hi  j0?!#;@7j +rHu -3 Zx5 p$' H V ux  |  = <Nx A-  &@  &='.WK`Z   Ia5b-( WW 8V(s ! I  aF=@  L  k K5WhH$   925D`?  JN$)VG'v1*- : !   HZ! ;Bo 1= H  +N 7W5 HLa, Y auIEMaED   FN `     HVy0  u q JR  ,jc w!" RW"X  'L "ad  %a  a 5  ^ 44/& 3-iR S 4u`  =H]!He|"ml Th!OxO7% 5A q  63.M  %Q INU3]#W$$- x :#(Ma<7  @N>  5V    Hf0]*8W"o $ @ihc 1 HN") I   *5wIo cz   t:cq AH6n p5 x $tP(& 5++weN[yg na WKNO. : !HN25`   * Bacn= UHJ F N"; |cuv,O Nb4 @I\j6 H>c i  lgQ   K"} c dU H   +&  A -@ Aa  Dx  I0I nIWAu`S E  !  95OSH9bH`  ! !o5ux , A  aH Hc  .N5.lSX +F!jjw N]5)jz  ? xFQ & #[ b Aj`  "LAW -  S  " +l  P  H2 r O m!  5,k1Q H2 R` e|j a y)N 0WM&  I8&t Y' X|  W ] J(  H2 W  -`  1   E  h k  a   Ovj 1!=NW    A! _ WT2 "K{ g M  L 6?  ?? -iZ  FK  GOE 'Z_E x`f2@ I r GaB  ,c  Ots  ! 2JkII 5\n ]Z  t & Kc ! `g43 HZAN>u&S,\M  5]>W 3 'G'K S'vDp x P lv"5!+MFc:{ =H= irp C k  L k . <HyH!`EIF C \z|B]  u )c  NvIi~(#a N2!H  3 Ba "  HHN+H7 c  )$Vj R FH"GI N 9! RHQsw 7? ! , " ` 5ta!383'OHc ]N&M  .  Eb/  p\N sR N 4cH(>    !*fW ` &j wV 33$VH 5| /*Bn   )#1ZHJ(I,   R tV5 %PFj^ ,WINHz)N]nkfm8oA prN.  W @)      C   H "W8W!6 fW 8 !  6! c Z dH% 3$Hr   73`! Uee5 MHa \ 5RW 2G.?  G# N=rJ Fi a #a &DBi fj i  9!,- $  ].I*l NNl ]1N(DHH*D5bHj u`1H+S}  #5] '^5L )?FP'K? $ 8cc}  5bWv3 3cK  ( fm`g 6.W2$,13gz D 4H2MNVO uEpH H HjnkH H ) S x  &b( HBIlaCr B'C K   ) L }  _U  xiWUI+ " w z o  1 >t$> O $K bGf  , ` :H IGA 9   %j Z Wsqj ` UT_`!" H  ;MN]ZN+T5,8 A })"O {ana .N-!k\8SR , N N1c g D r  XGcq5zZ He |  ccr ` !H W>_ 5Efa Q=  ,1     V  SiHU!j> /hWf  >? ~ Bc " SE UD5pr 5&DIG sYD :c5E  "f$ N '6.uW 2YNHHI,Wk  I'z\W? 2NW(8@\ !-ZU9ApC& HXW;HHc) Ul  c=_  BH.r  N5 NN{j6  H.6  y85  BO b W 8 (*i  9 W!_;$5 y F . s !eH1^ j-*? Z zSXyuIE]cq5$  d'"m V[faQ6cx7aH1WI*a5 K (6H  ? 5 haPN5H,NV.j $M #6!!: x h$7  #aN1CaS HPa ~;s 3 `a F _` 3lWN I "  V '     I   r[P_H5VIDP "5P dENY ab6  S$iz G  $f]w ) dGag   N  * SZ5&'(jc ' L1Z.a   $ H i'r Q  `yI NE N+S &W> | 'NMag I T5DN) & n)Ux"M_NNry c4 ;| yG o' H dH   N'OHaIT  /uaN3 Iczf4a\W '   *YN 62 lWF2#.H t!#Aa F $g!#c I  60. a#!Hi~ gEd    eH.Hw  28njN N + I NW5]56  a ,  oAI -I Bz;1 fmE1Y4NuV,Hc 8Gqt'W52p'c =p |(cF W-| %  2BIx1r   J5 WI k B # W 7W3 3  K( i? ! kacE  i W 9 Nv 2BFGI +  ! aas p  SO WW; f0 3a# HNk nI h  %8 9K5q _. 'E NNA$%ruH  l   .5lr3cO/P  l  ] 9? , d I ]  > v  / 9X7?'"}jq ''yDaH*Y6 I  (N5R ,!>uH )'E 3,NH#6J w0  _a6 Pn7 YH ?  *  N"z0%Sr W<j U+TH[ Z7I G j!Y 8 )%NA /|NK M $:i I N ;s  ) m 5V!!cM& N'LA $  L SzHi~ ak`g s $H Nb/] Da} Y % ) m.Fl ?p$|W(si \5#  N3  m  <  tK aN[ =  1mIINHF3 >Uae N` "_N;QV @/_ W9Uki cE|c2  cWFGH $ '8aV<5 c=   u NgW@D5Pt ld [IFH%@,a  [5uWw 2  GF|[ c  ! fJN N Q5-HZ G{fc  SiOH*    "l> pN2 H $ W 1,  ]Ni~S{  c3 2 /r  + B3 ^ I53&  QfI QH R 3  y fQI $&[ ;] *2C5 6QsH 48& 5Ht  I(G | /]o'O_ 0)@  $M v= jOua 1  +dE  K    ? X _k   C` %   0H l5+Tou S  6  a JG;$cc>@{  !*y)H|a  &nVN7 HX gF:  d Hq@N|  N   *m  7IH+\   /    IHNH/ pHr5>tcYu W3 5 <N 8 ( { A/7bjr  \ $`  J c`FQsRAWwa"9!)l&cwlocrpcmadlmaghbahexahomarmiavstbatkbhksbuhdcakmcanschamchrscpmncprtcwucyrldsrtgonggrekgujrguruhluwhmngzlkawikitskndalaoolatnmedfmteimymrnarbnewaoryaosgeougrphlpphnxqaacrjngrohgrunrsamrsgnwtagstamltavttfngtglgtibttotowchoxpeoxsuxyiiizanbzyyyzzzzcntrlcwcfcwcmcwkcfcwtzpgcb=b2h2jlxxnushu3040nv=90oriyapatwsprintqmarktailevssupfsipdfcarianccc=1218491vre=yeschakmasmlsqrgothicgrexthyphen3.26.3415161miaoarmndiakgonmhanokhmrlinamroonkooogamolckorkhphliplrdprtiqaaishawsogotnsavaiibehgafhahrehbunkhojkilydiannfdqcnv=3//5nv=7patsynrejangsb=stangsaebg3.04.0age=56.07.08.09.052avestanccc=22e=truedeseretdt=nonewideelbasanelymaicextpictgrbashanunoohst=lvtadlambuhiddogralimbuoghamosagerunictakribatakisotheeemnoonseenshinzainkannadakayahlilinearamandaicmarchennfkcqc-1/2/645/27/2olchikiosmanyahmnpkalilananbatsarbshrdsyrczinhsharadashavianstermuaatagalogtaithamtaiviettibetantirhutauideounknownage=10.0age=v1armenianbalinesebassavahbpt=opene=falsecompexsuperduployanextendergujaratigurmukhihiraganahatrankaithilepchalycianteluguwanchoyezidijamoextbgamalkhaphmahajaninfkdqcnv=1/31/12nv=2erlwordkthilinbmercnshuscx=talupecialstagbanwatifinaghvithkuqipfabhaiksuki2435nuktacirclemedialea=narrowmoticonsbengaliincjkexgranthainheritedinkanamakasarmultaninoblockphagspasiddhamsoyombouabiscjkexlamadhkhudawadinabataeannewtailue1600032000olditalicoldpermicoldturkicolduyghurpalmyrenepaucinhausamaritanthaanawb=mixidstartbasiclatinboxdrawingccc=ccc1viramachorasmianstrokesdeprecateddivesakuruorizspacebugineseingeorgiajamoextajavanesebinduugariticiskanathinyehkharoshthiiscarrowsnagmundarioldpersianphoeniciansaurashtraolettermallformssoftdotteduprightwarangcitialetternewlineerlspaceblk=cjkextdoverlaycyprominoandominotilesfractionisolatedpfbisarabicisspaceisvertfarsiyehswashkaflinefeednextlinemedefaidrinnfcqc=maybenv=10000000pahawhhmongscript=mlymsorasompengerandsubsylotinagriebasegazyisyllablesbidicontrolbidimirroredblk=kanaucasextahesssymbolsambiguousgraphemebasegunjalagondiompatjamooldsogdianvisargayiradicalsisposixsyriacwawjoiningtype=breakbothbkh3jvmasaramgondiathalphanummendekikakui1.0.111e-01.250e-01.429e-01.500e+00.562e-02.563e-02.667e-01.875e-01.500e-013.125e-02.333e-01.750e-01nv=4.167e-01.688e-02.000e-02nv=5.833e-01nv=6.250e-02nv=8.333e-02oldhungarianphaistosdiscplayingcardspresentin=14wsegspacexidcontinueegeannumbersblock=cjkexblockelementscaseignorablunassignedreekextendedvoweljamoincyrillicinethiopickatakanaextiscsymbolsinmyanmarnandinagariavagrahatonemarkipaextensionsiscasedletterisgeorgiajoincontrolismyanmarisxposixblankjg=africanfehdalathrishknottedhehreversedpenonjoiningbreakafternonstarterwordjoinerowsurrogatesayannumeralsisctechnical-5.000e-01patternsyntaxpresentin=56.1verticalformsncientsymbolsbc=righttoleftblk=arabichanreadingemojicomponentgc=othereekandcoptichighsurrogateslphabeticpfkhmersymbolsnonjoineriscyrillicisethiopicmahjongtilesrohingyayehstraightwawyehwithtaildualjoiningjoincausingleftjoiningjt=transparentbreakbeforeexclamationinseparableinseperablenfcquickchecknumerictype=epresentin=v1psalterpahlaviquotationmarkdoublequotesinglequoteany_foldsquotemetaasciihexdigitarabicletterotherneutralblk=georgiadoubleabovekanavoicingontrolpictureseastasianwidth=letternumbergraphemeextendeadingjamoimperialaramaicoverstruckpurekillerdecimalnumberenclosingmarkfinalsemkathverticaltailrightjoininghebrewletterinfixnumericmeroiticcursiveiscpictographsnfdquickchecknumericvalue=236numericvalue=4oldnortharabianoldsoutharabianextendnumletglueafterzwjzanabazarsquareblk=cyrillicblk=ethiopicblock=arabicnotreorderedcypriotsyllabarylineseparatorhalfandfullformshighpusurrogatestrailingjamocompatformsgxiradicalsinlatinextendeddphoneticextsupdevanagariextaislatinextendedlisusupplementnonspacingmarklllajg=malayalamnnnamemtawktoviknumeralsprefixnumericinearbideogramsiscmathsymbolsanfkcquickchecknumericvalue=1/numericvalue=5/8numericvalue=70numericvalue=80numericvalue=9sentenceterminaltangutcomponentseuropeannumberanadiansyllabicscaucasianalbanianiotasubscriptemojipresentationgmodifiersymbolspaceseparatornotapplicableidsbinaryoperatorbraillepatternscurrencysymbolsindicsiyaqnumbersleftandrightnumberjoinervedicextensionsdashpunctuationdiacriticalsexthangulsyllableslowercaseletteropenpunctuationhamzaonhehgoalbethfivehethkaphqophreshyodhqaphtethkhitansmallscriptcarriagereturncomplexcontextmandatorybreakpostfixnumericetterlikesymbolslinebreak=zwspacenfkdquickchecknumericvalue=3/2regionalindicatorscriptextensions=mallformvariantsttonsignwritingboundaryneutralcommonseparatorblk=latinextendedblock=cyrillicextcopticepactnumberstitlecaseletteruppercaseletteridstrinaryoperatorinitialpunctuationlinearbsyllabaryiscmathsymbolsbbopomofoextendedclosepunctuationfinalpunctuation1supplementyriacsupplementtangutsupplementalephgimelsadhezayinlaphzhainadditionalcontingentbreaknumericvalue=6ornamentaldingbatsparagraphseparatorpatternwhitespaceruminumeralsymbolssegmentseparatorbamumsupplementdiacriticalssuptamilsupplementblock=kanaegyptianhieroglyphsemojimodifierbaselchemicalsymbolsgeminationmarkvoweldependenthanifirohingyapadalethlamedhsamekhjg=manichaeantwentyyudhhe=closeparenthesisodifiertonelettersottomansiyaqnumbersatermarrowsawordbreak=mi_perl_charname_beanatolianhieroglyphsblk=myanmarblock=latinextendedconnectorpunctuationextendedpictographicombininghalfmarksneralpunctuationvisualorderleftmodifyingletterregistershifterinscriptionalpahlavitaixuanjingsymbolscherokeesupplementmallkanaextensiondhamedhhundrednyiakengpuachuehmongterminalpunctuationeuropeanterminatorfirststrongisolateattachedbelowleftchangeswhencasefoldedchangeswhencasemappedchangeswhenlowercasedchangeswhentitlecasedchangeswhenuppercasedgraphemeclusterbreak=identifiertype=notncientgreeknumbersountingrodnumeralsmeroitichieroglyphsantillationmarkinvisiblestackersyllablemodifierinscriptionalparthianinsupplementalarrowsbnclosedalphanumsuphanguljamoextendedamongoliansupplementsundanesesupplementissupplementalarrowsclogicalorderexceptionnoncharactercodepointsinhalaarchaicnumbersvo=transformedrotatedyijinghexagramsymbolsoverridearabicnumberbidipairedbrackettypeblock=ethiopicblock=georgianblock=myanmarmathoperatorsfontdiacriticalsforsymbolsarlydynasticcuneiforminsc=consonantprefixedglagoliticsupplementburushaskiyehbarreebreaksymbolsnumericvalue=100000.500e-02.125e-03.750e-02.250e-03bc=lefttorightembeddingpopdirectionalformatblhanguljamoextendedbhangulcompatibilityjamoobsoletecompatibilityformsradicalssupplementsubjoinedjoininggroup=africanqafsentencebreak=shorthandformatcontrolsznamennymusicalnotationhighprivateusesurrogatesstatus=allowedinclusioncompatideographssupommonindicnumberformsiscellaneoustechnicalinpc=topandbottomandleftbrahmijoiningnumberheadletterpacingmodifierletterstransportandmapsymbolshanifirohingyakinnayajoininggroup=malayalamfolds_to_multi_charmeeteimayekextensionsdevanagariextendedachangeswhennfkccasefoldeddefaultignorablecodepointfullcompositionexclusionlimitedusebyzantinemus H$  f jZ a- !V   kc %U[ P2B 9 o gNz5 c,H +NKc\$2 T >Se`6  ,cqJ**Y| C: 0 I Oj _4+5(>u|5 4\B"c SGL }FckS kS2 F > Wkc I eZ@1X.^*>"2"O1H&M3gaN +I SGjn5z$ H[ 5Y a q HG L }  H.  y )WHR`3 %uc G  Var z 5`i$? 4  uW ! U JaN 'ONZ#c F . EW 5P$ 9K  5C n,>Aw  l p H  : 363 +H ook DN!`? & Y*5 +i  6 v5!"Hf0 9 a lUc H2!? M vlc%Zc  1V4}  [ cR$V;j6  w!5= ` {N   " Bc&c4cH 2& *w U j!|j   GNc k  \0 $   @75b5k  +]\(5c? - s  $ 9! *nY  O  O @~x  \ z  Hm!fm  %pa   +QHi~  `Z %N]n "HPMaW2 W  2p .PjW o T #fIQ .'v Hr 5e5W6q  2N v K  c5 `* &KZ!\iDr| ' a ?   _|W cc ^H* Y$ j aV[=<|#6    D    2$b5   + 2 G KQ)-"cN.Hc  w!"US  5!!c,a 5eZ ;GW;N\WVG  C NqNPB$$RI I a x &M % G_WOc AjZ  V &MoL@N  cu5JkHO &8I  =rHm W 4  W$ H3 W   "ON$w  6 j=#>t N ] *= 3 'N`5  1a5 2Hm J3jH 3 5QK8aMX  H&8 Pt.ej      H Y Su5f.ih!  E 2 r VH9KGtWj V VI$A YT SK }'r: ! =I9  [aPI#A{$b   N    ( $ $6Xj_   a +aNNNO w"la]>Ka NJW=6'ya  I$[q,.N8 lN  HI [, ] 73 2U $<  u  ca5`  cVyU i a  # V NcH3ui~8  cs< LN! eI3QOT(31aZ< B :  pSV VS5Ma%M3  ws "  c*H  6_`  i 3  )X.W H 3   Awa"5q I" 4 >t( NcvIF6 * ]>HIINr1N  a z. $  # ,k X HMafm # 1HX 5p ]>H`Z SD6 fHvA   5OSK      : 0 J5` H]28  c 1 +[W5 K  ^3    ] B&y 3 5,   O P  #=@wcuB  %7cU _AI mpE 1 Mz I `G@ ;NN )C7W7WonHdv # (k   jI H.  3q  5\ Tq|N  lC% $!r +[   'H 6 zHa[Wjs R O0 I?  1Sb/5/# :7  % N  HO ! cIHz$  W c8  5%3 )&KaIjj qW T, &p'wN  9|a N  NYT25 + = W?   abH 5.5+Tc-o*NW)3 ]8   N,IB  \ 6c.cI e  a   ;H, S HW0 %4 8x  & H $UW?   %N N   c.U p!5 b U I4 $H 0 B X B  H|j'  T<  %0 #uVo @ ` ? : {Sw|W uG 'I  XhnV q  W  H  5) m 5z&Q |   , }?  0NE I N  {c c2&,  ;:N,x O;1 J g  =NZ^ 1  @2  Y + FP NNX x e u )a#2 W  S  7ajA  Hl^$H s@WN* *]U  !V[ A !  Q ? 2 T /Mac95 c  <* yc^ " 7]CI HJUe! $7aHg$  d 5< p x _V^H HXgc  o c& 2 O 9! )o7O   /  9v 2 a !U$ j S3$i IR  :'-E @L  <  Xy R, H tWW V#c^PNO5 H  z#6)1X  N ?  6 ^ cm6X.5  ccGu 6!! W)%M|W(Z!,!!Ux{O _I N^$w 7=   2w Hj FlNu$J|I GHl`l  XV ! i ^[Uper1+3 M$$   H I* -;N s? XE| I N A IcKA 4 2   * YU:|#OtY gjq +` L[a P5U C3a Q DN= N 5l 05A    ) 5 ,GG ' '  (I ajW'us EHFPoHN2VD  Np e_${ w!"N 5lA  ^A6) (0 [ S $"H&!U)  >% -5qnx!W.6NWj4 c  3z  uW  _O  WHg2 Hx OF "_ai W#62 a !D g  eZ? [   " `SVeO5b 8 x ;  a   W2 u2 HW  j  [s  Wu' +V  AAUx? jN]Uv  F:HE FfaQ'{ 1+ JFH5j !fm ^  8N   dH* *I7W5`  5 )?r  0N* YW$ W=) a'"nS! z!fmz 6#u'H- b  ;_OOP,Sjn5 ]w H  =6 f$X_Hs5  & N RN` _x( sY - ? _ cNm _gj#  I'%$ 6 HNN"5zv$ace  M H   )R6 ^ |% $&j W.)KS I, H c oM`)_(%N~ H T V I N= icsN#Vy O b x A  aWX  iO H + kS= < :U [I P j  vNy'5 N/_ rxn, v   +j &i  SIFI  NG5mOTQ5c     |I C29!* lc!{B{H}N 0Sq{   ?  !ih(]>t BH  DN B"a! :QsRW C`Z  $D A/  IS  d0=  $  ? M_ 5W$5 p jW N$ !P H`;N6O ;   2 :C I a3a a  cy"n M?   ^1V33 3J   /c c';I TE i TWN? !  N|I u tW' V$ l2! a" 4? & Hc E ?  fN !!oM3 acc| /c ` D_H $ '5zuV I c  4ctVWP( g a5 )taPd {i -* 5tqn5  o 1` 5 - J N.  5  St% I" !!c5w   Oj9 ,A  )$,dPtG  %,!  H] NF c>A($ j`5z!! U MUN $ q T ? & ZA uHlN 3  4 Ne_pr  qn  cK NW6  [ 6y)YjN)]5 r  {   .k  $H ! 5Z7  + l5I TNvb $ &!-  Jk\/c!w52'  NcV !+  H G%pyAa{5 OHN 3c{ 1+ S! 8 J!A5^"557[2 H S !* P " > o% 1- H2qW ` 5x 5  & &aI=   W AH'Hc & Gs  i!H/_Uc N"B%= cd f '  1 +(  `1Hb _WOyZ!N B&i Ni~W6v'vDw `i5f?  N)_G&w=r w7@  GV ( !3 '  r.I gO N HZH   F ! U|$t4I\% $Z za1`BH !c   mGIF:  1 ? bd  H ya 85 ^+ :  r ? & [x 6u  L'OZ { >t ob   6  +Sz  WN  RN H  $ 2 W   pt  za!' X ;=l 3"$5h &' |. 0HDv5 ,NNN#W  "O '{FU|   .N VW! g1H`HH s jW !wN|a C3`Nl   `WI+ THO0 |X k R  R*  N2j $ { HZ Hu  + 3 \Z!fmYg > nHmm2!P ]D"5y  & oHP(kSc~!Aj NDvW s(N X./h ,c 7 5t $ 5ANg  jx  1 + W,  S%p ' 1 H (&" 4;:HW 'G~* *i  5x|%1 ,I@ r H T kWvI  GWk  Nm a=* i;C" ,!  Hc 5n,I:$7I tN*i P } # :N$ 5  R u d zD IHIBZP5x 5 cI K'2 Dv  i  t!N]3 w%& Wi NMaWr \  j c#Hk% 6 v8 k 2 Zxc! b E g`  c# J v  7r @LLNJ(uaE$5j  Wk%G j n @N'ja SM   + VtWf0O (lICcuMai 5Ptz H) <jH[ , ` &Hx aW' MO  'w5#H6 ' L W$ Hb/x \   aJN*l' 'dcx  1 Jkja  uaG? a Q@Y   6  H"o   Y  H   UH}$aqW T  *Y a ka$   2:H  &3` )%S  1cM 5 \ 36  , $ &1NP(PlICN& N  c_AW -uaE$5= )  k H  +\` GNt+daG ct  ] - cZ.$g:    =  3M W ( U >t| /H2  N >  !I Tj2H  ,!N*IuaE | C( TH+S  $!,$M OR 5 -? u s^qI .     ;C* [[5 H>u ]n? + L1  v  N S+ T<  ( U* _9K_O % a  x ZpEd, ` HP &  #  P2  o` BZH / )"  6 n1 %(8  ("RI IFQ&"Uc zv: s;! {  &3I l 5o5 ] j TW` HW$L c  P H  e a j[?c{!O %6LU 5  ] B  ^ f|gH ,] W iWc!d]U(MNq ,j [aPc  AJ`c Za  5# S% cv  laC)B TI{ aS&w)Z59K  c5UG   KDv5 4IS N%4= @U7]j 5NN {5tz5b<  N8 u)+$H$Z!] S    a (N#S xx ;DN7w((cH  HdHHFP5>tPAtIHV!|? / GNVyc%"#6v$A  6%* xH!J 1   5N$n  WIj ^z 6 2M   `c3qS$gG 5~y6 ;!N /f_Nd +c' *~3 !Aj 1Md y)a c  3 %p! V >  &a $"j ^5WaZ ( I ]F P( F  W@`;     ) S5) Hr "`H +e 6 j c#1 %S VW_9KZ s |y  :@a\;   N328 : B  (  *.61cA Ra IUW-5 %`Q Z!Z  9 I  *W ]    j Z!i ` ih#H      &&aV  H#?  >Np!o? b | "    N.N. 5dH`   !WpDv)c|2 H  $t (" HH-  v   b/m J  0eV$ HN 5Dw8P sMa1! _3W3T Q &j +'LB"~kc_fm <85 c}S!{Wd" u)   o A  c N-PN  N  Hd   W= 8B a  8[$N ]_HO    +dW"N5}. r N r  $ H[P5 HB}  A    g  $ -*a x!! {r 5+d !!8 ? , s a  -5*  ^  /Nmc5r #lN(t]N  (I ~( C)'Wt>\2c  AI{+S=Yy c5  J c 3W   6 ]B  uH'5x SS/hv  _'OV!VWk  25WIc   a"1W W ]Q  ;HqHk  u x(Hz&S %cZ5y  N 26< HH} ]5H >  'tL H`(6 5W  NZt H HaG%W  aNe_] Nr&   6= p$ D  68 cW'j ? $   Rs , aZ G ?3   HvHc oj T%*N$  ' $ \.wcFH_Rr  V 5c61V3m J O # ,W  N< Nm J  iH iSd ?  Hc6 LB+S A x   gjqt N-NzH 2& 9  5$  : D -   ^N0x  aCCH'd  8y5 1AW5!`5O3aL  q^E$ 2tI I  ""tV~xk H  m RHNH*lSkw  VyuxH)? ]NZ$&Y2 Unex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Missing right brace on \%c{} in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Empty \%c{} in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Character following \%c must be '{' or a single-character Unicode property name in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/%d%lu%4p in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unicode string properties are not implemented in (?[...])Using just the single character results returned by \p{} in (?[...]) in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Inverting a character class which contains a multi-character sequence is illegalUnrecognized escape \%c in character class in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unrecognized escape \%c in character class passed through in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/False [] range "%d%lu%4p" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Invalid [] range "%d%lu%4p" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/False [] range "%*.*s" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Both or neither range ends should be Unicode in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Ranges of ASCII printables should be some subset of "0-9", "A-Z", or "a-z" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Ranges of digits should be from the same group of 10 in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/"%.*s" is more clearly written simply as "%s" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/In '(*VERB...)', the '(' and '*' must be adjacentIn '(*...)', the '(' and '*' must be adjacentUnterminated verb pattern argumentUnterminated '(*...' construct'(*%d%lu%4p' requires a terminating ':' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unknown verb pattern '%d%lu%4p' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unknown '(*...)' construct '%d%lu%4p' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Verb pattern '%.*s' has a mandatory argument in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/In '(?...)', the '(' and '?' must be adjacentSequence (?P<... not terminatedSequence (?P>... not terminatedSequence (%.*s...) not recognized in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Sequence (?%c... not terminated in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: reg_scan_name returned NULLpanic: paren_name hash element allocation failedSequence (?%c...) not implemented in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Sequence (?&... not terminatedSequence (%d%lu%4p...) not recognized in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: Sequence (?{...}): no code block found Eval-group not allowed at runtime, use re 'eval'Sequence (?(%c... not terminated in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: grok_atoUV returned FALSESwitch condition not recognizedpanic: regbranch returned failure, flags=%#lx in regex m/%d%lu%4p%s/(?(DEFINE)....) does not allow branchesSwitch (?(condition)... not terminatedSwitch (?(condition)... contains too many branchesUnknown switch condition (?(...))Expecting interpolated extended charclassUnexpected '(' with no preceding operatorUnexpected binary operator '%c' with no preceding operand in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Operand with no preceding operatorUnexpected ']' with no following ')' in (?[...Incomplete expression within '(?[ ])'panic: regclass returned failure to handle_sets, flags=%#lx in regex m/%d%lu%4p%s/Empty (?) without any modifiers in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Use of modifier '-m' is not allowed in Unicode property wildcard subpatternsRegexp modifier "%c" may appear a maximum of twice in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Regexp modifier "%c" may not appear twice in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Regexp modifiers "%c" and "%c" are mutually exclusive in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Regexp modifier "%c" may not appear after the "-" in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless (%s%c) - %suse /%c modifier in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless (%sc) - %suse /gc modifier in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless use of (?-p) in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Use of modifier '%c' is not allowed in Unicode property wildcard subpatterns in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Too many capture groups (limit is %lu) in regex m/%d%lu%4p%s/Reference to nonexistent groupEval-group in insecure regular expressionpanic: reg returned failure to re_op_compile, flags=%#lxpanic: hv_store() unexpectedly failedpanic: reg returned failure to grok_bslash_N, flags=%#lx in regex m/%d%lu%4p%s/panic: regclass returned failure to regatom, flags=%#lx in regex m/%d%lu%4p%s/panic: reg returned failure to regatom, flags=%#lx in regex m/%d%lu%4p%s/Use of '\G' is not allowed in Unicode property wildcard subpatterns\K not permitted in lookahead/lookbehind'%d%lu%4p' is an unknown bound type in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Using /u for '%.*s' instead of /%s in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unescaped left brace in regex is illegal hereSequence %.2s... not terminated in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Reference to nonexistent or unclosed groupUnrecognized escape \%.1s passed through in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unescaped literal '%c' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic: loc_correspondence[%d] is 0 in regex m/%d%lu%4p%s/panic: regatom returned failure, flags=%#lx in regex m/%d%lu%4p%s/Quantifier {n,m} with n > m can't match in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Useless use of greediness modifier '%c' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/%d%lu%4p matches null string many times in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Use of quantifier '*' is not allowed in Unicode property wildcard subpatternspanic: regpiece returned failure, flags=%#lx in regex m/%d%lu%4p%s/panic: %s: %d: Unexpected operation %dAncient Greek Musical NotationAncient_Greek_Musical_NotationArabic Mathematical Alphabetic SymbolsArabic_Mathematical_Alphabetic_SymbolsarabicmathematicalalphabeticsymbolsCJK Compatibility Ideographs SupplementCJK_Compatibility_Ideographs_SupplementcjkcompatibilityideographssupplementCJK Unified Ideographs Extension ACJK_Unified_Ideographs_Extension_AcjkunifiedideographsextensionaCJK Unified Ideographs Extension BCJK_Unified_Ideographs_Extension_BcjkunifiedideographsextensionbCJK Unified Ideographs Extension CCJK_Unified_Ideographs_Extension_CcjkunifiedideographsextensioncCJK Unified Ideographs Extension DCJK_Unified_Ideographs_Extension_DcjkunifiedideographsextensiondCJK Unified Ideographs Extension ECJK_Unified_Ideographs_Extension_EcjkunifiedideographsextensioneCJK Unified Ideographs Extension FCJK_Unified_Ideographs_Extension_FcjkunifiedideographsextensionfCJK Unified Ideographs Extension GCJK_Unified_Ideographs_Extension_GcjkunifiedideographsextensiongCJK Unified Ideographs Extension HCJK_Unified_Ideographs_Extension_HcjkunifiedideographsextensionhCombining Diacritical Marks ExtendedCombining_Diacritical_Marks_ExtendedcombiningdiacriticalmarksextendedCombining Diacritical Marks for SymbolsCombining_Diacritical_Marks_For_SymbolscombiningdiacriticalmarksforsymbolsCombining Diacritical Marks SupplementCombining_Diacritical_Marks_SupplementcombiningdiacriticalmarkssupplementCuneiform Numbers and PunctuationCuneiform_Numbers_And_PunctuationcuneiformnumbersandpunctuationEgyptian Hieroglyph Format ControlsEgyptian_Hieroglyph_Format_ControlsegyptianhieroglyphformatcontrolsEnclosed Alphanumeric SupplementEnclosed_Alphanumeric_SupplementenclosedalphanumericsupplementEnclosed CJK Letters and MonthsEnclosed_CJK_Letters_And_MonthsEnclosed Ideographic SupplementEnclosed_Ideographic_SupplementIdeographic Description CharactersIdeographic_Description_CharactersideographicdescriptioncharactersIdeographic Symbols and PunctuationIdeographic_Symbols_And_PunctuationideographicsymbolsandpunctuationMathematical Alphanumeric SymbolsMathematical_Alphanumeric_SymbolsmathematicalalphanumericsymbolsMiscellaneous Mathematical Symbols-AMiscellaneous_Mathematical_Symbols_AmiscellaneousmathematicalsymbolsaMiscellaneous Mathematical Symbols-BMiscellaneous_Mathematical_Symbols_BmiscellaneousmathematicalsymbolsbMiscellaneous Symbols and ArrowsMiscellaneous_Symbols_And_ArrowsMiscellaneous Symbols and PictographsMiscellaneous_Symbols_And_PictographsmiscellaneoussymbolsandpictographsPhonetic Extensions SupplementPhonetic_Extensions_SupplementSupplemental Mathematical OperatorsSupplemental_Mathematical_OperatorssupplementalmathematicaloperatorsSupplemental Symbols and PictographsSupplemental_Symbols_And_PictographssupplementalsymbolsandpictographsSupplementary Private Use Area-ASupplementary_Private_Use_Area_ASupplementary Private Use Area-BSupplementary_Private_Use_Area_BSymbols and Pictographs Extended-ASymbols_And_Pictographs_Extended_AsymbolsandpictographsextendedaUnified Canadian Aboriginal SyllabicsUnified_Canadian_Aboriginal_SyllabicsunifiedcanadianaboriginalsyllabicsUnified Canadian Aboriginal Syllabics ExtendedUnified_Canadian_Aboriginal_Syllabics_ExtendedunifiedcanadianaboriginalsyllabicsextendedUnified Canadian Aboriginal Syllabics Extended-AUnified_Canadian_Aboriginal_Syllabics_Extended_AunifiedcanadianaboriginalsyllabicsextendedaVariation Selectors SupplementVariation_Selectors_SupplementSurrogates should never appear in well-formed text, and therefore shouldn't be the basis for line breakingSupplanted by Line_Break property values; see www.unicode.org/reports/tr14zzzztzznzzzz̛̛ {hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhPhhhhhhhhhh0iiiiiiii^tY>!}ynfEEEEEEEE:f[P5UUpJBc!!!!!!!!wwwwwwwwwwwwwwwwwwwwBwӰwwȰww7,wwwwwwwwwwwwwwwr1Ӱw1gLw&?@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@t@i@@@@@N @ C(@k2k kk> #  #!f ( m@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@7@@@/@w@@@@@@@@@@@@@@@@/@@@@@@@@U@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@hLL%LW$$(vi\^@ * VOOOOOOOOOOOOOOOOOOOOOOOOOOOOOV\\`xӕ#l0HmHzzzzzzzzzzzzzzzzzzzzzzzzzzzzTHm000000000000000000000000000000000000000000000000PPPPPPPPP0000000pO000000ޏ00ֲ00`00000000000P000000000000tttttttttttttttttttttttttttttttttttttttttttttttmmtttttttmmmmttmmttmtttmtmmttmmmtmttttttmmkNmmttmttpmt1mtmm&tm=!aA<,>Bbt {   0iD9.$_  4 < wSFluIG1I}1 t  cRW=j !  ` S !YTj S oq G  5rYtWtUN%S'   FQG 13  4u    W.?$* UZ     pz} N* *I22r Pjs |/"3W3GZHWqHH3 5 Wi * _I 5W ow ux@a\N% ] 1 +a5!* l!.   H ] & HU  T]M q T| wI"  < I j *W OMD   * s  `c  Gq g  H$      5./ |; ljn Y` $$8 /| z  p  "S ? . q  oH  0 F `V* YI qj V  $B|a  WhH03  XF * y)Nu$Hc  4.Yj6   3!+ Gz> H[*z W? ;ce 2  & _'O a l 3;=W= )n 5 {I  L"vx z9 W ` 5 5P |($ EcH;1;WN]  &*Hm ,H)  g c;HJl  !"c N  55V W4\ K!=#  +6 )R'LN;  3N  5$ x O 1 N S  [ ` tHP(n E ,KS2jH? \7 ]UWW ,@ 2:  (-N) 3X  FRX cqf Q5 y     H| a kP   GYu+T pnN F!N'O) } ; ?  H  I N Ijw  &C a(H 5W U A$ $ W + 1ZYN N- OWx`om H  H XOV N2i W 9w   6 !U czj} j J?  4N 2E  &A'2b  F    5%  wA Ma!Kr& B1s   z  =7@1$&ZuG` #W$()9KHx OtaNx7  S^ q 2 W]Hl?N$ $? a%kS5!  " 5 a IbTI  ''  ? M    /NuV5!   )  H%Pt W A>cHhqAJot)#W$m GG$: {a$VH ]qa $2F: jj Nq, ' ] G? %aF6 HK HaI  n= 7 {F {  7c c aqa Ug*  Xk5O bnV Pt)SR\  :  '  9;?w" 1  Na)!E dad$%   ? k MN  45 DT# X  KGFlHCJ   +U o5   eU\ c  5  aju |W 3 'Ns5O ? ] y?H|fn,Ne|8   A W"    H 5. NSsFPu5 ^   RI] 8    1N 3ihM   ^Zt6Hl Edj`$ W 3  qr g  5 *c  d332 7  ]W> rU ] $'1 IcXq7a-5!  T  NCHNHW z  "cP ? V ; U6 c a  HHJ( [* Z3  6 ` N W i6H\$Pt  D  6 f k"  ! a S^ !!c LS{fV? cmN TW Dw p 1  NNU H5 3S\ RWqU N    &SYuI! gcP    * *v    " B x:N   5E NNN    OtI kv 2Lo{    *z) V.w S    $HY!Dy 4cWc  \. 1Z %6 (` 2  tWN&: C E#]n'k#i~ ];  Na { g".2)L` 9Sa -9!N x  + ):c H_ 5 )   9K ,!xNW-5k  Ux H)aGN $ [Z 8I H]  [W >)4=]>' pH3lIU   W2Pz  o  +!`  5b4 o  IbU35V.# ]W j; x5 lN L )    V ! c x$ He_W  q ~*dNx  PiD5M 5G  G D_O | ' +TW Nl I  X ! j  @ 5AJ  e|RW  V  aJ   `Wp  6jK lU A B  M ] Dv5 5FQcJ  Nz)$ N2MtWW  FJ 5? ! cG$Aj$G;Jk8fN.N5N{ _W$2  xiD _k$48Mp 2W?(v  PtoH J!$Ea ^%WrF|  U$ Y 1H]nH(     I$-H I NrD!$$ 7>tH, .  N#5  )w  N+SW2N  Z!   t ) ;1j2 =p.aZ Ny)T 5)&|!l fQ k1+$ HMaNFPW  xfI Q YH\2$! cocrH gHp "  _d ;@$  MPH3`I 5 z*aW  IS` H$ H]S5m      75 / HqNX 7H  zH= H=rd$ H :20 k.%p{ a6aFi |  |   aj2 & A E 2'WLH1  c Aa YHN u xWX5i!!!U\HC6  NkIHcjHqv)/9NII auN ~NO D ` Oo2  IRa I6 >6H.cx  &W Gt p1uHCGN-*" ` GM 5@L    3-.W2W%: 7   c fIQ> 3oP Se[\H ? Zgc !5 b   jJ  $ N   sTa{N@1TN @ zs H;5pN k c u pYu5 r:5Z5, e|$/G.NZa5  aDwSzf25S 5 4 aw  ]Z$H  W  9J7W3(V$ecKdE z=i$H  U NHtkWvU XzH   HH   O "]  H1r ,B5m* YWWH'O* YS{c$i $3{ fa Q> *I a ccN9K$9'NQcXyi P 5] w`      H +T  W"4I\ k e7 RZ PP(>LI B  VGYj.  -I? "c`;  N3`$'*ax!!M0 a S(   ]m JO !"16 f>U - ] Nl  c! z HZ#"U !c"w G\ _ 3[iWv6 < 8 Bu,= iA/>  4a 1 Hpc  Ni `5HB   '!|NFP  5 a `  O j ZIE a lR"NRN/_  c <H H3p R P  Hq`W $us$ o b 8! : B  !U  !+2  % V$WtL&8 N1  ` N $ "  7WN O@z+ Tc& >tN ,WkGW;!YT F ] O "NV! GN#6>3`ZN;1c} &H7- !I T { 1 * *[I Pj cj= Q  a )HSq  ` 5N ' ' jI   E #WI'  $ 1a# kN ? ^  oa 5m$5BZ J  W NH8H@1>Z#fW  $k M6  6  `5 a  |  @W" 9!! * ,  ]mn0o] %]  ] ,,] ] ,,,] P P ] ] ,,,,,] ,, ] ,)$,,o,  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%d%lu%4p never introducedpanic: pad_free po%2d. 0x%lx<%lu> SubroutineVariablepanic: no pad in cv_clonepanic: pad_alloc, %p!=%pscopeCan't undef active subroutinepanic: pad_swipe curpad, %p!=%ppanic: pad_swipe po=%ld, fill=%ldpanic: pad_free curpad, %p!=%pPADNAME = 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 "%d%lu%4p" is not availableConstants from lexical variables potentially modified elsewhere are no longer permittedpanic: pad_add_name_pvn illegal flag bits 0x%lx"%s" %s %d%lu%4p masks earlier declaration in same %s"our" variable %d%lu%4p redeclared (Did you mean "local" instead of "our"?) panic: pad_findlex illegal flag bits 0x%lxField %-p is not accessible outside a method%s "%d%lu%4p" will not stay sharedField %-p of %10p is not accessible in a method of %10ppanic: pad_findmy_pvn illegal flag bits 0x%lx0XXXXXXXXXX | q f [ P E : / $    _TI>3(@ A( (!0 `  0000PP(( hhhhn  ((%s in regex m/%d%lu%4p%s/regcomp.cRegexp out of spaceInvalid quantifier in {,}xdigitPERL_RE_COLORSregcompRegexppanic: regfree data code '%c' \p{utf8::([<)]>)]>_charnames::_get_names_info ABCDEGHIJKLMNOPRSTUWYGGDDBBJJYAYAEYEOYEWAWAEOEYOWEOWEWIYUEUYINJNHLGLMLBLPLHBShighlegal%s-0000%s-%Xnumericvaluecanonicalcombiningclasscccpresentin; Error " in expansion of %.*s%.0f%.*s%.*e%.*s%s%lu/%luprivate_use%d=Insecure private-use override#%d Unmatched [foo\p{Alnum}utf8.pmNeed exactly 3 octal digits-[]\^?:don't ?-E_COMPILE_RECURSION_LIMITToo many nested open parensUnmatched (Unterminated '(*...' argumentUnterminated verb patternACCEPTCOMMITPRUNEasratomic_script_runatomicplbpositive_lookbehindplapositive_lookaheadnlbnegative_lookbehindnlanegative_lookahead? %dOverloaded qr did not return a REGEXPAssuming NOT a POSIX class since it doesn't start with a '[' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since no blanks are allowed in one in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/POSIX syntax [%c %c] is reserved for future extensions in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since the '^' must come after the colon in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since a semi-colon was found instead of a colon in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since there must be a starting ':' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since the name must be all lowercase letters in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since there is no terminating ':' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Assuming NOT a POSIX class since there is no terminating ']' in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/POSIX class [:%s%d%lu%4p:] unknown in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Sequence %.3s... not terminated in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/panic! %s: %d: Tried to warn when none expected at '%s'Perl folding rules are not up-to-date for 0x%02X; please use the perlbug utility to report; in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Unicode property wildcard not terminatedThe Unicode property wildcards feature is experimentalpanic: Can't find '_charnames::_get_names_info -0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()No Unicode property value wildcard matches:_charnames::_loose_regcomp_lookuppanic: Can't find '_charnames::_loose_regcomp_lookupTimeout waiting for another thread to defineInfinite recursion in user-defined propertyUse of '%.*s' in \p{} or \P{} is deprecated because: %sThe private_use feature is experimentalUnknown user-defined property nameIllegal user-defined property nameCan't find Unicode property definition (but this one isn't fully valid) (but this one isn't implemented)POSIX syntax [%c %c] belongs inside character classes%s in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Literal vertical space in [] is illegal except under /xpanic: grok_bslash_N set NEED_UTF8\N in a character class must be a named character: \N{...}Ignoring zero length \N{} in character class in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/\N{} here is restricted to one characterUsing just the first character returned by \N{} in character class in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Use of '\%c%c' is not allowed in Unicode property wildcard subpatterns in regex; marked by <-- HERE in m/%d%lu%4p <-- HERE %d%lu%4p/Empty \%c in regr for here document is too longIndentation on line %d of here-doc doesn't match delimiterUnsupported script encoding UTF-32LEUnsupported script encoding UTF-32BEpanic: utf16_textfilter called in block mode (for %d characters)panic: utf16_textfilter called after error (status=%ld)%-p%s had compilation errors. %-pExecution of %s aborted due to compilation errors. Execution of %s aborted due to compilation errors. (Might be a runaway multi-line %c%c string starting on line %u) Version control conflict marker«»»܆܇༺༻༼༽᚛᚜‘’’“””‵′‶″‷‴‹››⁅⁆⁍⁌⁽⁾₍₎→←↛↚↝↜↠↞↣↢↦↤↪↩↬↫↱↰↳↲⇀↼⇁↽⇉⇇⇏⇍⇒⇐⇛⇚⇝⇜⇢⇠⇥⇤⇨⇦⇴⬰⇶⬱⇸⇷⇻⇺⇾⇽∈∋∉∌∊∍≤≥≦≧≨≩≪≫≮≯≰≱≲≳≴≵≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊣⊢⊦⫞⊨⫤⊩⫣⊰⊱⋐⋑⋖⋗⋘⋙⋜⋝⋞⋟⋠⋡⋦⋧⋨⋩⋲⋺⋳⋻⋴⋼⋶⋽⋷⋾⌈⌉⌊⌋⌦⌫〈〉⍈⍇⏩⏪⏭⏮☛☚☞☜⚞⚟❨❩❪❫❬❭❮❯❰❱❲❳❴❵⟃⟄⟅⟆⟈⟉⟞⟝⟦⟧⟨⟩⟪⟫⟬⟭⟮⟯⟴⬲⟶⟵⟹⟸⟼⟻⟾⟽⟿⬳⤀⬴⤁⬵⤃⤂⤅⬶⤇⤆⤍⤌⤏⤎⤐⬷⤑⬸⤔⬹⤕⬺⤖⬻⤗⬼⤘⬽⤚⤙⤜⤛⤞⤝⤠⤟⤳⬿⤷⤶⥅⥆⥇⬾⥓⥒⥗⥖⥛⥚⥟⥞⥤⥢⥬⥪⥭⥫⥱⭀⥲⭁⥴⭋⥵⭂⥹⥻⦃⦄⦅⦆⦇⦈⦉⦊⦋⦌⦍⦐⦏⦎⦑⦒⦓⦔⦕⦖⦗⦘⦨⦩⦪⦫⦳⦴⧀⧁⧘⧙⧚⧛⧼⧽⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪍⪎⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟⪠⪡⪢⪦⪧⪨⪩⪪⪫⪬⪭⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫏⫐⫑⫒⫕⫖⫥⊫⫷⫸⫹⫺⭆⭅⭇⭉⭈⭊⭌⥳⭢⭠⭬⭪⭲⭰⭼⭺⮆⮄⮊⮈⮕⬅⮚⮘⮞⮜⮡⮠⮣⮢⮩⮨⮫⮪⮱⮰⮳⮲⯮⯬⸂⸃⸃⸄⸅⸅⸉⸊⸊⸌⸍⸍⸑⸐⸜⸝⸝⸠⸡⸡⸢⸣⸤⸥⸦⸧⸨⸩⸶⸷⹂„⹕⹖⹗⹘⹙⹚⹛⹜〈〉《》「」『』【】〔〕〖〗〘〙〚〛〝〞꧁꧂﴾﴿﹙﹚﹛﹜﹝﹞﹤﹥()<>[]{}⦅⦆「」→←𝄃𝄂𝄆𝄇👉👈🔈🕨🔉🕩🔊🕪🕻🕽🖙🖘🖛🖚🖝🖜🗦🗧🠂🠀🠆🠄🠊🠈🠒🠐🠖🠔🠚🠘🠞🠜🠢🠠🠦🠤🠪🠨🠮🠬🠲🠰🠶🠴🠺🠸🠾🠼🡂🡀🡆🡄🡒🡐🡢🡠🡪🡨🡲🡰🡺🡸🢂🢀🢒🢐🢖🢔🢚🢘🢡🢠🢣🢢🢥🢦🢧🢤🢩🢨🢫🢪)>]}»«܇༻༽᚜’‘”“′″‴›‹⁆⁌⁾₎←↚↜↞↢↤↩↫↰↲↼↽⇇⇍⇐⇚⇜⇠⇤⇦⬰⬱⇷⇺⇽∋∌∍≥≧≩≫≯≱≳≵≻≽≿⊁⊃⊅⊇⊉⊋⊢⫞⫤⫣⊱⋑⋗⋙⋝⋟⋡⋧⋩⋺⋻⋼⋽⋾⌉⌋⌫〉⍇⏪⏮☚☜⚟❩❫❭❯❱❳❵⟄⟆⟉⟝⟧⟩⟫⟭⟯⬲⟵⟸⟻⟽⬳⬴⬵⤂⬶⤆⤌⤎⬷⬸⬹⬺⬻⬼⬽⤙⤛⤝⤟⬿⤶⥆⬾⥒⥖⥚⥞⥢⥪⥫⭀⭁⭋⭂⥻⦄⦆⦈⦊⦌⦐⦎⦒⦔⦖⦘⦩⦫⦴⧁⧙⧛⧽⩺⩼⩾⪀⪂⪄⪆⪈⪊⪎⪖⪘⪚⪜⪞⪠⪢⪧⪩⪫⪭⪰⪲⪴⪶⪸⪺⪼⪾⫀⫂⫄⫆⫈⫊⫌⫐⫒⫖⊫⫸⫺⭅⭉⭊⥳⭠⭪⭰⭺⮄⮈⬅⮘⮜⮠⮢⮨⮪⮰⮲⯬⸃⸂⸅⸄⸊⸉⸍⸌⸐⸝⸜⸡⸠⸣⸥⸧⸩⸷„⹖⹘⹚⹜〉》」』】〕〗〙〛〞꧂﴿﹚﹜﹞﹥)>]}⦆」←𝄂𝄇👈🕨🕩🕪🕽🖘🖚🖜🗧🠀🠄🠈🠐🠔🠘🠜🠠🠤🠨🠬🠰🠴🠸🠼🡀🡄🡐🡠🡨🡰🡸🢀🢐🢔🢘🢠🢢🢦🢤🢨🢪(<[{«»܆༺༼᚛‘’“”‵‶‷‹›⁅⁍⁽₍→↛↝↠↣↦↪↬↱↳⇀⇁⇉⇏⇒⇛⇝⇢⇥⇨⇴⇶⇸⇻⇾∈∉∊≤≦≨≪≮≰≲≴≺≼≾⊀⊂⊄⊆⊈⊊⊣⊦⊨⊩⊰⋐⋖⋘⋜⋞⋠⋦⋨⋲⋳⋴⋶⋷⌈⌊⌦〈⍈⏩⏭☛☞⚞❨❪❬❮❰❲❴⟃⟅⟈⟞⟦⟨⟪⟬⟮⟴⟶⟹⟼⟾⟿⤀⤁⤃⤅⤇⤍⤏⤐⤑⤔⤕⤖⤗⤘⤚⤜⤞⤠⤳⤷⥅⥇⥓⥗⥛⥟⥤⥬⥭⥱⥲⥴⥵⥹⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⦨⦪⦳⧀⧘⧚⧼⩹⩻⩽⩿⪁⪃⪅⪇⪉⪍⪕⪗⪙⪛⪝⪟⪡⪦⪨⪪⪬⪯⪱⪳⪵⪷⪹⪻⪽⪿⫁⫃⫅⫇⫉⫋⫏⫑⫕⫥⫷⫹⭆⭇⭈⭌⭢⭬⭲⭼⮆⮊⮕⮚⮞⮡⮣⮩⮫⮱⮳⯮⸂⸃⸄⸅⸉⸊⸌⸍⸑⸜⸝⸠⸡⸢⸤⸦⸨⸶⹂⹕⹗⹙⹛〈《「『【〔〖〘〚〝꧁﴾﹙﹛﹝﹤(<[{⦅「→𝄃𝄆👉🔈🔉🔊🕻🖙🖛🖝🗦🠂🠆🠊🠒🠖🠚🠞🠢🠦🠪🠮🠲🠶🠺🠾🡂🡆🡒🡢🡪🡲🡺🢂🢒🢖🢚🢡🢣🢥🢧🢩🢫Use of unassigned code point or non-standalone grapheme for a delimiter is not allowedUse of '%d%lu%4p' is experimental as a string delimiterUse of '%d%lu%4p' is deprecated as a string delimiterIllegal declaration of anonymous subroutineIllegal declaration of subroutine %-pUse of := for an empty attribute list is not allowedUnterminated attribute parameter in attribute listInvalid separator character %c%c%c in attribute listSubroutine attributes must come before the signature:const is not permitted on named subroutinesUnknown regexp modifier "/%.*s"Regexp modifiers "/%c" and "/%c" are mutually exclusiveRegexp modifier "/%c" may not appear twiceRegexp modifier "/a" may appear a maximum of twiceUse of /c modifier is meaningless without /g%s found where operator expected (Missing semicolon on previous line?) (Do you need to predeclare "%d%lu%4p"?) (Missing operator before "%d%lu%4p"?)Bareword "%d%lu%4p" refers to nonexistent packageMultidimensional syntax %d%lu%4p not supported}} did not return a defined valuecharnames alias definitions may not contain trailing white-space; marked by <-- HERE in %.*s<-- HERE %.*sMalformed UTF-8 returned by %.*s immediately after '%.*s'Invalid character in \N{...}; marked by <-- HERE in %.*s<-- HERE %.*scharnames alias definitions may not contain a sequence of multiple spaces; marked by <-- HERE in %.*s<-- HERE %.*sAmbiguous range in transliteration operatorInvalid range "%c-%c" in transliteration operatorInvalid range "\x{%04lX}-\x{%04lX}" in transliteration operatorPossible unintended interpolation of $\ in regexUnrecognized escape \%c passed throughMissing right brace on \N{} or unescaped left brace after \NInvalid hexadecimal number in \N{U+...}%.*s must not be a named sequence in transliteration operatorMissing control char name in \cpanic: constant overflowed allocated space, %lu >= %luInteger overflow in decimal numberHexadecimal float: exponent underflowHexadecimal float: exponent overflowNo digits found for %s literalHexadecimal float: mantissa overflow"%s" not allowed in expressiontry/catch/finally is experimentalPrecedence problem: open %d%lu%4p should be open(%d%lu%4p)Possible attempt to separate words with commasPossible attempt to put comments in qw() list<> at require-statement should be quotesSubstitution pattern not terminatedSubstitution replacement not terminatedUse of /c modifier is meaningless in s///Transliteration pattern not terminatedTransliteration replacement not terminatedCORE::%d%lu%4p is not a keywordBad plugin affecting keyword '%s'Bad infix plugin result (%zd) - did not consume entire identifier <%s> dump() must be written as CORE::dump() as of Perl 5.30Ambiguous call resolved as CORE::%s(), qualify as such or use &Missing right curly or square bracketUnrecognized character %s; marked by <-- HERE after %d%lu%4p<-- HERE near column %dBEGIN { require 'perl5db.pl' };Unmatched right square bracketCan't use \%c to mean $%c in expressionNo package name allowed for %s %s in "our"Possible unintended interpolation of %d%lu%4p in stringBad evalled substitution patternSequence (?{...}) not terminated with ')'Illegal character following sigil in a subroutine signature'#' not allowed immediately following a sigil in a subroutine signatureIllegal operator following parameter in a subroutine signatureA signature parameter must start with '$', '@' or '%' jjjۊ̊rcTE6' ܉͉TTNN:*ylA++++++++*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#-*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#|/n/4/*#&//*#*#*#*#*#*#*# /.*#*#.*#g.*#*#*#-KKKKKKKKKKtHtHtHtHtHtHtHIIIIIItHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHtHLtHIIIIIIx\\_x\x\x\x\x\x\x\t]F/ Ņ4ل>]܂łJ3e3~~a~2~ ~}Ci}@}|||]||{{v{4{-]-]ɑ_9jiI_#__Oz8zyyyyBitiNi7ihhhhNh hgggtg]ggfflfUffeeye5eeddddAdcc|c:c#c cbbeb!baaTa=aaa```#`\`:``4xwnwWwwv\vyvbvvuulu(uutxxOy`ssrrcrqq!rp?qpqoFoonnnPnMmmllllxlalJl3l lkknkWkkjjjPjpYB+yՌO \Nj_kT=&ˊr.a;^ӉNڏÏ9ߒ8zz(^our @F=split(qɭxxxxxxxhxhhhxxxxxxxxxxxxxxxxxh8xԾX̲'r v@99ULVͶT |xfHHHHHHHHHHHHHHHHHHHHHHHHHT?@@ @0@Numeric variables with more than one digit may not start with '0'Identifier too long@ A( (!0 `  0000PP(( hhhhn  ((@@@AADJUSTcatch block requires a (VAR)UnimplementedSlurpy parameter not lastMultiple slurpy parameters not allowedA slurpy parameter may not have a default valueOptional parameter lacks default expressionMandatory parameter follows optional parameterExperimental subroutine signatures not enabledP P 55)22.Z3A33W535*4P 443P 4P T45  4f.'.---_--,,/\/#/')D101tW001s3,a,H22j9P P  T2P (#(P (P P w(P %SS P &%&w&P P P P P P& =&A%g''P (' ++D, P P P P +*P *P (E95EP WP -Hxx m P P E m!(! ##"_""!!!HE'EE6EE  Z(EE}aE`E;`; < O:EzP P P P t ^t G     xv S,}'')j)R)/))& ('$$"P P P v#]#6##tG   #q%J% P %$`$P P P P P tW$WP AP P P P P P P ?$$.//P 0P 0P dd     /045789:;<>?@ABCFIJKLMQRS`uvxz{  #$%&()*+.1236DHYEƖ8=xٍٴ ٴقW88=ف\]^_ nonlmlGNOP[abcefghijklmnopqrsty|}~ 88킂x낂 ' #$%&)T;TWˁ ˁ 9Q˖888Tސx퐐,˧˧=˺;;΁X d˂  ;a˰낎琯˰8ȜaȂā  낐 8 X ّṖʁV!"낁 -; UV 15 0m  )W A"#83=1 3012fF     3no"#T\;\;ghi12h"#n d wxo812={nTT\l_xxU9t,\]^_ Q lm*\]^_\]^_\]^_ \]^_ 8#$%& )  8\]^_ \]^_^_3 \]^_3\]^_!"    , 22 \]^_ '\]^_  2"#\]^_< T@T;\]^_T\]^_W\]^_jT H\]^_\]^_T8hi8x88=p,a=NOPj;;XNu 1qrst0y;a|}~ay|}~8 #$%& ) \]^_$8*+ \]^_X\]^_0 V\]^_IJKONOP\]^_[2016bc="#-@ANUFrstzy t|}~ZX\]^_GGH"ghityB|}~wxQaNQu),06789:  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRS\]^_Y `|}~\]^_uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY` uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSVY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDEFHIJKLMQRSY`uvxz{  #$%&()*+./0123456789:;<>?@ABCDFHIJKLMQRSY ` uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<=>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS `uvxz{/045789:;<>?@ABCFIJKLMQRS`GNOPuvxz{[abcdefghijklmnopqrstyG|}~NOP[abcefghijklmnopqrstyG|}~NOP[NOabcefghijklmnopqrstyG|}~NOPsty|}~abcefghijklmnopqrstyG|}~NOPcefghijklmnopqrstyG|}~NOPefghijklmnopqrstNOPy|}~NOPhijklmnopqrsty|}~jklmnopqrstNOPy|}~NOPklmnopqrstNOPy|}~lmnopqrstNOPy|}~nopqrstNOPy|}~pqrsty|}~pqrsty|}~<@0|V<K1=_=p<?dUU={|}ghij}k~lm$=%+..n:;<<6'o4#9== BCDEGHJp <  |~9tuvwxyz{rU'[\.< = DEU(*-2>3537@f}.}~vAQP<    =%$@A".(+)F*+.-0LM268:;<!BCXSlghiI#7kHytR.VWawxbczYu]]u>spe15`mj" ]WUXYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234!m56789:;FKLMNOPQRSTUVWXYZ[\]^_`abcdeWfUXYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:U;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m56789:W;U,XYZ[\]^_`abcde4fghij !"#$%&'()*+kt,l-./01?234m5W6789:Un;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:Uo;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:Ur;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:U;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:U;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:U;XYZ[\]^_`abcdefghij !"#$%&'()*+kt,l-./01234m5W6789:U;XYZ[\]^_`abcdefghij !"#$%&'()*+k,l-./01234Wm56789:; !"#$%&'()*+,-./01W23456789:; !"#$%&'()*+,-./01234U56789:; "#$%~&'()*+,-./01234U56789:; !"#$%&'()*+,-./0123456789:; !"#$%&'()*+,-./0123456789:; !"#$%&'()*+,-./0123456789:&; !"#$%&'()*+,-./0123456789:8; !"#$%&'()*+,-./0123456789:I; !"#$%&'()*+,-./0123456789:s; !"#$%&'()*+,-./0123456789:; !"#$%&'()*+,-./0123456789:; !"#$%&'()*+,-./0123456789:; !"#$%&'()*+,-./0123456789:  nox/N~yqvwG&O=Zq^ J,/)z{Tr>?q@ABCDEFGHIJsK  LMNOPQRST284z$fn7Hab~$8  kklk 12QLmj$j R ! NQPOABDCG#%$  /0Eno &('4J.jK*j\CIH#"wzyw "vqptrKIMhi*+,?@=>:;<c&(]SPTWVeUXx!usF%,)-f5abgR=d+}|{3D-987``A~4F.6c23)Y017@^/'EZ8<65BG:?`_NM>;O[9"] )U.] .] .] ..] ] ..*] ] G.] ] ] ] ] ] ] e ?P Ro ),,$/9@CII= 4 ==] ] =)P ] G= e ] F] eIII^] ] ] ] ] ] ] ! ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] Tp ] ] ] ] ] ] ] >DE!U)] ] ] ] ] ] LLt I(TV] ] `;] e]  Bd  I  C C C Z Z  II] ] B &Ys6|W] ] <] ] ] ] ``JNg] ] ] ] []f_] ik<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<b8!8HHx8((8ZHHllHH͐͐lHlllllHHHHHHHHHHHHHHHHlHHHHHHHBhޒHHHHHHHYHHHH*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH&HHHlHHHHHHHHHllHlVllllHHHHHHHHH͐HlHHHHHHHH͐lHllel͏lllHHHHHHllHHHHlllnnHHHHHHHHHHlHHHEccHcEEHHHEHHHHHHHHHHHHEEHHHHHlHHHHHHHHHHHHHHHHHHHHllHHHHHHHHHHHHHHHHllHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHlHHHHlHHHHHHHHHllHlHllllHHHHHHHHHHHHHHHHȒHcEllllllllllllHHHHHHHHllHHHllHHHlHHHHHHlp^^^^^^^^^^^p^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^MMKْǒǒFvߡP¡4;ffV Ҙ!;ՠ=={>{ڢ77!!!@**@7@7bߘ 1sjdddvHdddddddddvHdddddddddddddddddddddddddddd.==================pp==p=================D'dDdfC +0,+(+**))2x22222222222222EAEFFAEAEEAEFJJJJJJJJJJJJJtJiJ^JSJHJ=J2J'JJJJI,M%MMMMLLLLLLLLLLLLuLjL_LTLIL>L3L(L~~~~~~~~~~~u~i~]~Q~E~9~-~!~~ ~}}}*! ق͂ymaUI=1% 7,! |qf[PE:KxmbWLA6+  Initialization of state variables in list currently forbiddenArray passed to stat will be coerced to a scalarCan't "%s" out of %sSTDERRSTDOUTSTDINARGVARGVOUTDATAsubroutine signature"state""my" Can't use global %.*s in %sundefFIELDS%s[%lu] 0x%04lX .. INFTY .. 0x%04lX TR_UNLISTED TR_SPECIAL_HANDLING Prototype mismatch: sub %-p (%d%lu%4p): none vs an ARRAYa HASHa SCALARourmydo blockCan't declare %s in "%s"backtickentereval_;\[%@];\[$*]?$@@%&*$Method %-p redefinedSubroutine %-p redefinedautousea variablenegative pattern binding (!~)a constant (undef)a constant (%s)a constant (%-p)oops: oopsAVoops: oopsHVlocalCan't modify %s in %sUseless localization of %sreflagsreflags_charsetDB::postponeda "finally" blocka "defer" blockblock or sub {}Too many arguments for %-p;@%one of %.*sscalarNot enough arguments for %-p construct() operatorBareword found in conditionalprototype(Format %-p redefinedFormat STDOUT redefinedfeature/bits%s (did you want stat %-p?)__ANONIO__Too many arguments for %s%s%c...%cNot enough arguments for %spanic: ck_grep, type=%uhash or arraykeys readpiperequire::SUPER::BEGIN AX_NESTED_EVAL_BEGIN_BLOCKSUNITCHECKToo late to run CHECK blockModule::Install::DSLToo late to run INIT block__ANON__::__ANON__%s[%s:%u]%s:%u-%u@array%hashModule name must be constantunimportattributes__ANON__::attributes.pm, @$%File::GlobAssignment to both a list and a scalarpanic: unexpected setjmp() result Magical list constants are not supportedBareword "%-p" not allowed while "strict subs" in useBareword filehandle "%s" not allowed under 'no feature "bareword_filehandles"'panic: allocmy illegal flag bits 0x%lxCan't use global %c^%c%.*s in %sScalar value @%-p%c%s%c better written as $%-p%c%s%c%%%-p%c%s%c in scalar context better written as $%-p%c%s%cScalar value @%-p%c%-p%c better written as $%-p%c%-p%c%%%-p%c%-p%c in scalar context better written as $%-p%c%-p%cNo such class field "%-p" in variable %d%lu%4p of type %2pPossible precedence problem on bitwise %s operatorCan't use bareword ("%-p") as %s ref while "strict refs" in usepanic: rv2cv_op_cv bad flags %xpanic: can't register custom OP %spanic: custom_op_get_field(): invalid field %d panic: op_sibling_splice(): NULL parentMissing comma after first argument to %s functionType of arg %d to %s must be %s (not %s)Type of arg %d to %-p must be %s (not %s)Constant subroutine %-p redefinedlvalue attribute ignored after the subroutine has been definednon-destructive substitution (s///r)non-destructive transliteration (tr///r)Useless use of %-p in void contextUseless use of %s in void contextUseless use of %s in scalar contextFound = in conditional, should be ==panic: unexpected lvalue entersub args: type/targ %ld:%lupanic: unexpected constant lvalue entersub entry via type/targ %ld:%luCan't modify non-lvalue subroutine call of &%-p in %sCan't localize lexical variable %d%lu%4pThe experimental declared_refs feature is not enabledDeclaring references is experimentalCan't modify reference to localized parenthesized array in list assignmentCan't modify reference to parenthesized hash in list assignmentCan't modify reference to %s in %sExperimental aliasing via reference not enabledAliasing via reference is experimental'%s' trapped by operation maskpanic: gen_constant_list JMPENV_PUSH returned %dpanic: op_contextualize bad context %ldpanic: fold_constants JMPENV_PUSH returned %dCan't use an array as a referenceCan't use a hash as a referenceMultidimensional hash lookup is disabledpanic: ck_entersub_args_proto CV with no proto, flags=%lxMalformed prototype for %-p: %-pPossible precedence issue with control flow operatorThis use of my() in false conditional is no longer allowedValue of %s%s can be "0"; test with defined()panic: newFORLOOP, found %s, expecting pushmarkpanic: newFORLOOP, found %s, expecting padsvpanic: newFORLOOP, found %s at %zd, expecting padsvpanic: newFORLOOP, padsv at %zd targ is %zd, not %zdCan't use %s for loop variableAttribute prototype(%d%lu%4p) discards earlier prototype attribute in same subPrototype '%d%lu%4p' overridden by attribute 'prototype(%d%lu%4p)' in %-p$[ used in %s (did you mean $] ?)Useless use of %s with no valuesExperimental %s on scalar is now forbiddendelete argument is not a HASH or ARRAY element or sliceexists argument is not a subroutine nameexists argument is not a HASH or ARRAY element or a subroutineOP_HELEMEXISTSOR argument is not a HASH elementCan't use 'defined(@array)' (Maybe you should just omit the defined()?)Can't use 'defined(%%hash)' (Maybe you should just omit the defined()?)each on anonymous hash will always start from the beginningeach on anonymous array will always start from the beginninglength() used on %-p (did you mean "scalar(%s%-p)"?)length() used on %%hash (did you mean "scalar(keys %%hash)"?)length() used on @array (did you mean "scalar(@array)"?)Can't modify reference to %s in scalar assignmentBareword in require must not start with a double-colon: "%s" Bareword in require maps to empty filename"%s %s" used in sort comparison/%-p/ should probably be written as "%-p"Too many nested BEGIN blocks, maximum of %ld allowedTreating %s::INIT block as BEGIN block as workaroundPrototype on BEGIN block ignoredAttribute on BEGIN block ignoredBEGIN not safe after errors--compilation abortedUseless use of /d modifier in transliteration operatorReplacement list is longer than search listApplying %s to %-p will act on scalar(%-p)Applying %s to %s will act on scalar(%s)Using !~ with s///r doesn't make senseUsing !~ with tr///r doesn't make senseUse of /g modifier is meaningless in splitVersion number must be a constant numberDowngrading a use VERSION declaration to below v5.11 is deprecated, and will become fatal in Perl 5.40Parentheses missing around "%s" list?*@p= #@S@d;O@(\@%C @~R8 @S%@Compiled at Feb 14 2024 11:49:18-i used with no filenames on the command line, reading from STDINBEGIN failed--compilation abortedpanic: restartop in call_list Unbalanced 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" This is perl 5, version 38, subversion 2 (%-p) built for x86_64-linux Copyright 1987-2023, 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 https://www.perl.org/, the Perl Home Page. -0[octal/hexadecimal] specify record separator (\0, if no argument) -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[t][:MOD] run program under debugger or module Devel::MOD -D[number/letters] set debugging flags (argument is a bit mask or alphabets) Usage: %s [switches] [--] [programfile] [arguments] Recompile perl with -DDEBUGGING to use -D switch (did you mean -d ?) 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%sCan't emulate -%.1s on #! lineUnrecognized switch: -%.1s (-h will show valid options)use Config; Config::config_vars(qw%c%s%c)Unrecognized switch: -%s (-h will show valid options)Illegal switch in PERL5OPT: -%c/opt/hostedtoolcache/perl/5.38.2/x64/lib/site_perl/5.38.2/x86_64-linux/opt/hostedtoolcache/perl/5.38.2/x64/lib/site_perl/5.38.2/opt/hostedtoolcache/perl/5.38.2/x64/lib/5.38.2/x86_64-linux/opt/hostedtoolcache/perl/5.38.2/x64/lib/5.38.2Wrong syntax (suid) fd script name "%s" Missing (suid) fd script name No %s allowed with (suid) fdscriptCan't open perl script "%s": %s YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET! FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP! Can't ignore signal CHLD, forcing to defaultNo Perl script found in input -e commandline one line of program (several -e's allowed, omit programfile) -E commandline 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) -g read all input in one go (slurp), rather than line-by-line (alias for -0777) -i[extension] edit <> files in place (makes backup if extension supplied) -Idirectory specify @INC/#include directory (several -I's allowed) -l[octnum] 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 -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, patchlevel and license -V[:configvar] print configuration summary (or a single Config.pm variable) -w enable many useful warnings -W enable all warnings -x[directory] ignore text before #!perl line (optionally cd to directory) -X disable all warnings Run 'perldoc perl' for more help with Perl. ../%s/%s/5.38.2/x86_64-linux/5.38.2eval_sv()require q%c%s%cCannot set tied @DB::argsDB::DBDB::dblineDB::subDB::singleDB::traceDB::signalpagesize unknown -PERL_RAND_SEEDPERL_INTERNAL_RAND_SEEDv5.38.2panic: sysconf: %spanic: bad pagesize %ldmain::F%s failed--call queue abortedpanic: top_env, v=%d PERL_DESTRUCT_LEVELUnable to flush stdout: %s main::Scalars leaked: %ld Unexpected exit %lu no use PERL5DB_THREADEDno Devel::use Devel:: split(/,/,q{%s}); Can't use '%c' after -mname ()Missing argument to -%cNo directory specified for -IPERL5DB/dev/nullmain%240sDB::CORE::GLOBAL::No code specified for -%cuse Config; Config::_V()helpPERL5OPTCDIMUdmtwWPERL5LIBPERLLIBPERL_USE_UNSAFE_INC/dev/fd/program input from stdinCan't open /dev/null: %s Illegal suidscriptPERLCan't chdir to %sperl.cInternals::VIO::Seekable::IO::Handle::IO::File::ISAExporter::stdoutstderr:utf8PENPERL_SIGNALSunsafePERL_SIGNALS illegal: "%s"panic: top_env %s syntax OK panic: restartop in perl_run Unexpected exit failure %ld split(/,/,q)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOa`OOOOOOOOOOO``e ' OOOOOOOOX"OE" ``!a!OO  O OO  u"`:utf8:utf8:utf8:utf8/............/................../.............../............../...//L//..4.../.....44/~4//.......././/@X4///..///./../?4///a4 HAS_LONG_DOUBLE HAS_STRTOLD PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_MALLOC_WRAP PERL_OP_PARENT PERL_PRESERVE_IVUV PERL_USE_SAFE_PUTENV USE_LOCALE USE_LOCALE_CTYPE USE_PERL_ATOFUNIVERSALv%sUsage: invocant->DOES(kind)Usage: %2p::%2p(%s)Usage: %2p(%s)Usage: CODE(0x%lx)(%s)reference, kindobject-ref, methodsv, failok=0SCALAR[, ON]SCALAR[, REFCOUNT]filehandle[,args]inputoutputdetails%-p(%-p)name[, all ][all]msixxnpAPTURE_ALLpackage, ...$key$key, $value$lastkeylobjlobj is not of type versionlobj, ...lobj, robj, ...verver is not of type versionUNIVERSAL::isautf8::unicode_to_nativeutf8::native_to_unicodeRegexp::DESTROYUNIVERSAL::canUNIVERSAL::DOESUNIVERSAL::VERSIONversion::_VERSIONversion::()version::newversion::parseversion::(""version::stringifyversion::(0+version::numifyversion::normalversion::(cmpversion::(<=>version::vcmpversion::(boolversion::booleanversion::(+version::(-version::(*version::(/version::(+=version::(-=version::(*=version::(/=version::(absversion::(nomethodversion::noopversion::is_alphaversion::qvversion::declareversion::is_qvutf8::is_utf8utf8::validutf8::encodeutf8::decodeutf8::upgradeutf8::downgradeInternals::SvREADONLY\[$%@];$Internals::SvREFCNT\%constant::_make_const\[$@]PerlIO::get_layers*;@re::is_regexpre::regname;$$re::regnamesre::regnames_countre::regexp_patternInvalid version format (version required)Usage: version::new(class, version)Usage: UNIVERSAL::VERSION(sv, ...)Cannot find version of an unblessed reference%2p does not define $%2p::VERSION--version check failed%2p version %-p required--this is only version %-p%-p defines neither package nor VERSION--version check failedget_layers: unknown argument '%s'NULL array element in re::regnames()operation not supported with version objectInternals::hv_clear_placeholdersTie::Hash::NamedCapture::_tie_itTie::Hash::NamedCapture::TIEHASHTie::Hash::NamedCapture::FETCHTie::Hash::NamedCapture::STORETie::Hash::NamedCapture::DELETETie::Hash::NamedCapture::CLEARTie::Hash::NamedCapture::EXISTSTie::Hash::NamedCapture::SCALARTie::Hash::NamedCapture::FIRSTKEYTie::Hash::NamedCapture::NEXTKEYTie::Hash::NamedCapture::flagsuniversal.cؕ̕vpƗ֗Зf` T ݚҚǚzodYNC8-"  ާӧȧ{peZOD9.#,,TʻԽ444<444444444444$4444444444мl6" =Q5P8 LrLrrrrLrLL`LrrrLLZrL۽rLLLLLLLLLLrrrrLrrr+rrrrLLLLLLLLLLLLLLLLLLLLLLLLLLLrr7rLӼӼLLLLLLLLLLLLLLLLLLLLLLLLLrLr000000000`0f\\\\\\\\f\lff}R2h  1 h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h ^^G G G G G G G G 8V,8V,KKKKKsKKKK1eeeeeeee1e11111111111111111J1J1J1J1J1J1J1J1J1J1J1J1J1J11111111111J1J!NNNNN5ZMSS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!SSgv.cAUTOLOAD @ A( (!0 `  0000PP(( hhhhn  ((overloadingpanic: gv name too long (%lu)CORE::ErrnoTie::Hash::NamedCaptureEXPORTEXPORT_OKEXPORT_FAILEXPORT_TAGSSIGHILD_ERROR_NATIVEAPTURELOBAL_PHASE AST_FH AST_SUCCESSFUL_PATTERN ATCHOSTMATCHAFE_LOCALESAINTNICODETF8LOCALETF8CACHEARNING_BITSdirhandleBad symbol for %sIO::File::_tie_it%d%lu%4p::_GEN_%ldevalbytes::SUPERIO/File.pm(${}Stub found while resolvingCan't resolve((nilhas no overloaded magicin overloaded package left (@{}(%{}(*{}(&{}(++(--(!(=(neg(<>(int(<(<=(>(>=(==(!=(lt(le(gt(ge(eq(ne(%(%=(**(**=(<<(<<=(>>(>>=(&(&=(&.(&.=(|(|=(|.(|.=(^(^=(^.(^.=(~(~.(atan2(cos(sin(exp(log(sqrt(x(x=(.(.=(~~(-X(qrAttempt to free unreferenced glob pointerspanic: gp_free failed to free glob pointer - something is repeatedly re-creating entriesCannot convert a reference to %s to typeglobVariable "%c%d%lu%4p" is not imported (Did you mean &%d%lu%4p instead?) Global symbol "%s%d%lu%4p" requires explicit package name (did you forget to declare "my %s%d%lu%4p"?)$%c is no longer supported as of Perl 5.30Had to create %d%lu%4p unexpectedlypanic: sv_upgrade to unknown type %lupanic: Can't use %c%c because %s is not availablepanic: Can't use %c%c because %s does not define _tie_itName "%2p::%2p" used only once: possible typo&CORE::%s cannot be called directlyCan't use anonymous symbol table for method lookupCan't locate package %-p for @%2p::ISAWhile trying to resolve method call %.*s->%.*s() can not locate package %5p yet it is mentioned in @%.*s::ISA (perhaps you forgot to load %5p?)Use of inherited AUTOLOAD for non-method %-p::%d%lu%4p() is no longer allowedCan't locate object method %d%lu%9p via package %7pCan't locate object method %d%lu%9p via package %5p (perhaps you forgot to load %5p?)%s method "%-256p" overloading "%s" in package "%3p", right argument in overloaded package , right argument has no overloaded magicOperation "%s": no method found,%sargument %s%-p%s%-pCopy method did not return a referenceOverloaded dereference did not return a referencemsyqqwxr $#+-'";&/|})]oaiuwef!=No comma allowed after %sParse errorparse_exprlex_start ;lex_stuff_pvnlex_stuff_svlex_unstufflex_read_tolex_discard_to$@%*;[]&\_+lex_next_chunk;}lex_peek_unicharlex_read_unicharlex_read_space[...]{...}[\]^_?*[{[#!%*<>()-=])} =wds]rnftbxcavaA01! zZ79~perl -indirCan't exec %sToo late for "-%.*s" optionCORE::%s had compilation errors. at EOFnext token ???at end of linewithin patternwithin stringnext char ^%c\%03o at %s line %u, near "%d%lu%4p" %-p )>]}(<[{([{<Excessively long <> operatorUnterminated <> operatorGlob not terminatedreadlineMissing name in "%s"Prototype not terminatedUnterminated attribute listlvalue:const is experimentalsyntax error([{< )]}> )]}>msixxnopnadlumsixxnopnadlugcSearch pattern not terminatedBarewordBad name after %d%lu%4p%s{$:+-@Array lengthScalarFinal $ should be \$ or $nameYou need to quote "%d%lu%4p"$@"'`q&*<%Can't redeclare "%s" in "%s"__PACKAGE__No such class %.1000s} is not definedCall to &{$^H{PropagatedConstant(%.*s)%s %s%s%s:short:full_charnamesUnknown charname ''Unknown charname '%s':'{$()| \%c better written as $%clLuUEQFMissing braces on \N{}Missing right brace on \N{}%02X.\N{U+%X.%X0o37777777777floatpanic: scan_num, *s=%dMisplaced _ in numberIllegal octal digit '%c'Illegal binary digit '%c'Integer overflow in %s number%s number > %s non-portableNumber too long+-0123456789_ADJUST is experimentaltry/catch is experimentalclass is experimentaldefer is experimentalDB_File::NDBM_File::AnyDBM_File::ISAODBM_File::SDBM_File::GDBM_File::field is experimentalMissing $ on loop variablefor my (...) is experimentalgiven is deprecated|&*+-=!?:.msixxnopnadlugcereval do {subroutine namemethod is experimentalwhen is deprecatedFormat not terminateduse feature ':5.38';LINE: while (<>) {chomp;our @F=split(%s);our @F=split(' ');Smartmatch is deprecated=====+-*/%.^&|<Reversed %c= operator!=~ should be !~<<<<<>>>>>ArraystudyStringBackticksBackslash\x%02XUseless use of \EL\uU\lLUFpanic: yylex, *s=%u$:@%&*;\[]=~>Unmatched right curly bracketparse_blockparse_barestmtparse_labelparse_fullstmtparse_stmtseqparse_subsignatureBinaryOctalHexadecimal0xffffffffoctalhexadecimal%s (...) interpreted as functionWarning: Use of "%d%lu%4p" without parentheses is ambiguousOperator or semicolon missing before %c%d%lu%4pAmbiguous use of %c resolved as operator %cOld package separator used in string (Did you mean "%d%lu%4p" instead?) Old package separator "'" deprecatedCan't find string terminator %c%d%lu%4p%c anywhere before EOFParsing code internal error (%s)Lexing code internal error (%s)Lexing code attempted to stuff non-Latin-1 character into Latin-1 inputPrototype after '%c' for %-p : %sMissing ']' in prototype for %-p : %sIllegal character in prototype for %-p : %sIllegal character after '_' in prototype for %-p : %sSource filters apply only to byte streamsfilter_del can only delete in reverse order (currently);}continue{print or die qq(-p destination: $!\n);}Ambiguous use of %c{%s%s} resolved to %c%s%sAmbiguous use of %c{%-p} resolved to %c%-pUnterminated delimiter for here documentUse of bare << to mean <<"" is forbiddenDelimiteHHHHH)HpH|$\t$\H HXD$\H\$@HHH@ L$\ȉʃHԐHHĐHL$PHD$HHD$@HL$PH|$HHH$HH4HHD$(HHt$`HHH)H)HHHHD$hH\$0HL$8H9D H9; Ht$H\$f.HD$L HD$H(E &HE@HH@H1ɺ;LHH@ HD@ EfDH\$HD$0AHl$H$L{L9<$E1AH}I7G HG@HH@1ɺ;Ht$ H|$KH|$Ht$ HP Hp HI9D$$cIE@HH@txL1ɺ;LܩHH@ HH ffDMI9vyLLmH)HHHH?HHL$M4$AE nAF tIF@tHH@gDLLp9$}I\$I9wHD$H|$(HH99fHL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$HL$H9L$0vHL$H9L$8EHL$H9L$0HL$H9L$8HD$(H\$HH|$PHL$`H)Hl$\Ht*Hl$@HL$@HH|$HHQHHD$P_HD$xH$H9tHmH$ dH3%( H []A\A]A^A_H$pHH$HD$x-?F tHF@tHH@H裄؅@F tHF@tHH@fA9 IK6LILOKH;$s~IvfDAD$ t ID$@tHH@DLH؅H\$HD$8E1Hl$H$L{L9<$IH$LHM9?L<$GfD H衚ff/%ff. 1% =hVff/Hf.1Ht$HL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$@/11H}HpG HG@HH@t|1ɺ;LL$pHt$ H|$H|$Ht$ HLL$ptuP Hx I_M@H@(ZH@(F t"HF@tHH@dLL$葁LL$A99M9M9MH|$I> @F tHF@tHH@؅'F tHF@tHH@`HӀ؅@ WHff/1f.ƺE% =#胗ff/]f.]MRIBI9I$HIHIL$HPI9rH|$(Ht$HD$0HH9wHL$0H\$HALsH)HL9HHBHD$(%LI^HL$H$MfHAH % =蛖ff/1f.EH@(H@(% =Cff/1f.EHhHpE HE@HH@1H;LT$Ht$膡Ht$LT$HHP   LT$蓕LT$ff/e1 tHLL$ULL$ff/*ff.e_1}F tHF@tHH@HLT$}LT$؅HL$ 9LDLDLDvH|$(HD$8HΐHH9wHD$8HL$(HH+D$HHDHD$(H@(T$\ HPHD$`HD$HD$0HD${H@(n1Ht$xHH$H<L HHHH)H)HLHHH9wIHH@(HL$hHD$@H1Ht$xHH$H<L HH)LHHHHH9wIHPHDH EHH@H1ɺ;LHH@ tbHD` E1HH@uq1f.ƺEH@(jHD$@H$% =tJ˒ff/wE1f.AAD-@@ 脖@{/H@(붐AWAVAUATUSH H$dH %(H$ 1HHHH9HHHD$xH$pH$H$H(HL`H\$(E tHE@AD$ tID$@LH(1@H$HD$(H9HD$xAHD$HD$HD$(LcLkL9HiIF@ttHH@th1L:Ht$Ht$HHti@  HE1@ ~AE9udMl$IL9vVMt$I4$Ml$AF uF tHF@tHH@xfL(E1AE9tHl$Ld$0IEIfDILHD$L9 M9oLILPM9uHT$0H9T$(X LHD$L)HH}E IHL9v~IBHf.HHHREtHpL@HpL@HH9rHCIRIL)HHhHH9HBHL$HH9ӺHBHDHD$I9M9 @HD$xH$H9tH莟H$ dH3%(H []A\A]A^A_H$pHH$HD$x)E1â1MHIf.HL$0H9L$(K LEHl$AH9\$(;H$HT$1HDŽ$D$dH$H$HD$xH$H$H$HH@H~(|$dHHHHH)HpH|$dt$dH HPD$dHT$HHHH@ L$dȉʃHԐHHĐHL$XHD$PHD$HHL$XH\$PHHD$HH<HHD$0HH|$hHHH)H)HHHT$@HD$pHL$8H9 H9 H|$HT$@HD$L HD$H(E HE@HH@H1ɺ:L趘HH@ HD@ EfDH\$HD$8E1Ld$HD$L{L9|$1ADHG@HH@t|1ɺ:Ht$(H|$ H|$ Ht$(H}P Hp HK6LHLOKH;D$.II<$I7G jF t$HF@tHH@df.KA9|HI9Dl$bfHE@|HH@tpH1ɺ:L4HHt|@ HH fI]L9syLI,$H)HHHH?HHL,MuE vAF tIF@tHH@oDLHe\9D$|ML9rHD$H|$0HI9HL9rH\$HHKHLHI9HHBHHH\$H\$0HI9ϹHBHL$HDHD$0HHHAHD$HL$H9L$@vHL$H9L$8HL$H9L$@AHL$H9L$8xHD$0H\$PHt$XHL$hH)Hl$dHeHl$HHL$HHHt$PHQH HD$X)fu 11聓1f.)6u 11Q1~f.AD$ t ID$@tHH@%DLH|DH\$HD$@ALd$HD$L{L9|$AIHD$HhL9>L|$@ H豈ff/cf.1@% =pnff/f.pj1]fHt$HL9rH\$HHKHLHI9HHBHHH\$H\$0HI9ϹHBHL$HDHD$0HHHAHD$s@11I<$HpG HG@HH@t|1ɺ:Ht$(H|$ H|$ Ht$(HtP Hx Wu 1A9JI_IS@H@(ZH@(F t"HF@tHH@d;u)lt1葐y@)Nz1onf.HoHG@toHH@tc1ɺ:Ht$ H|$H|$Ht$ Ht]P H1DZ E~A9uPHL9,H{H3G uF tHF@tHH@uKt6A9tL9M9%MHLt$)FA1Ej1D$]D$V@  HQf1f/% ="ff/G gAG t IWBtHHB`fD% =քHAG % =LHT$譄HT$H99D$CMHI9wq+IVBHHBtL1ɺ:L̂HH0@ HH fDH]L9LM4$H)HHHH?HHH,AF LmgAE t IUBtHHB`fD% =L蛃IAE % =lLwL99D$BfIL9AHD$ H|$0HI9^fDHL9rH\$ HHKHLHI9HHBHt$0HHHI9ϹHBHL$(H\$ HDHD$0HHHAHD$(Ht$ H9t$8vHt$(H9t$@=Ht$ H9t$8oHL$(H9L$@ HD$0H\$PH|$XHL$hH)Hl$dHHl$HHt$HHH|$PHVH HD$XSIH@ @HHP I@IEH@ ILp d@E t"HUBtHHB% =L賁HËE % =MH萁H9H\$ HD$8D$Ld$(HD$L{L9|$HD$IHhI9\I<$HXG ,HWBHHB1ɺ:HH|$zH|$HP sHx u1fD9D$fDI_I#@ vHYsff/+f.1@% =@sff/f.1G (AF OHD$MHhI9L|$Ht$(HL9rH\$(HHKHLHI9HHBHt$0HHHI9ϹHBHL$ H\$(HDHD$0HHHAHD$ @1HEH@ I$HX IfH@(H@(C tHSBtHHB% =~H‹C % =HHT$~HT$H9DIxHWBtHHBts1ɺ:HH|$(|H|$(HHP H1DX E~A9IM9I}ImG wE t!HUBtHHBm% =tl}HËE % =tfH}1H9ظOA9jM9M9MH|$Lt$ fDHHX E % =uHEH@ 띁 Hof1f/@G (% =off/! |$fI H=Hcp HHH5HP(H5AHPHHPH@ H5li IH>HHHAH H54HH5H H+HHQHHRHHH5H HIH HHH5H HIHHH5ۑHIH^Ht$ H@D$.t(HDH9sHHHHHKHPH9rMMt$L}AE -M HLHD$IHGI9t"H;GvHBHCI9uLW@LL,OHH9 HT$I}LH$lIELxAE % @AE OHHl$8H5HHHHIHH@(@!@rH@D$lE1D$/HII}|$ G tzD$.fDHG@HH@DD$0D$0@LT$qOLT$IEHNj@ Du" 1LT$nI}LT$G yLH\$`ML$E1L)H@uT$h31@Ɖt$hfDMI\f.I>I?IFL9uL1L>LL!MMt7HH9M|HLLOIAG@tLaYMuL$@fHHH?HL)H=D$.H\$`AAtHHߨuDL$hEDD$0EEЇwIM1HfHHIHH9uM4AI|$ID$E1HT$xH$HD$AdH\$ LD$/ILjHMt(AE IEHP0@\HH|$xLt\HHD$xH0HF H~(HcPL@LL  B4HzHP1JpH|$xHuHB\uĀHB8HD$xHuH=%/15fDH[H@(D$lMH\$ ILd$6fD% =tT"1LjH8$x$xD$/ADĈD$/9XfDIEfLLOIHHfDLLD$ `LD$HcHf.HHH@8T$02HHELD LT$RI}LT$G !L=LD$L1G\IHHbIHHbHxeILD$H@HHt@ILD$HxoeILD$L H@HHt@HِM9L0|$/H] LT$^I}LT$G  H HP@H5HHtHRHxHHHPHJ`H@HwwI P8Q(>HHA"u0A#gI1D\$lHNNNN(J8HH+NHHωN(LBHII`HB0JPH H1Hr@2 |$/E@2H5 A@H6"F#fBE&I0F`H~HF`~0IHT$@LD$0p`H|$SHT$@LD$0H wH|$I|$/Hcp`HGHHH@H HH HHH HqHv(HrXHt@HQHB(HHD$8L _HD$DLD$aL ?LD$AG M9AG HLLHLD$L+ JLD$IHnL t1&RD$0HH߅EީHM/H\$ MD$l cL LD$IIIGLx IE-L6L6mH҈HHXHHRHz(HJ(H@XHtwwH HH:G@oH7HWH+V HHVHHr HwHBE L$0ElHHE0LLI)8IHHI9HT$0LD$HHT$0LD$L 0qY\{RQEt97 >4#*HD$dHL HD$蔺jJHt$x1HHBHH='1.1HL$HD$0HD$HL$L P;HD$GL :HD$8P0RAUATUHH $HH=tdH%(H$1H9HH=^'H@L(GHtEH~<|L`uiMt,L/H.HtLHL9FHQ}LHH06H$dH3%(uH]A\A]IOf.@AV@AUATIUHSHPdH %(HL$H1HHtEHPH^{:HaDsAA@@HDGAD6H H^v*HD$HdH3%(FHPD[]A\A]A^fD^AńḦfo'Himply asD$8 "%sHD$0"fD$A%H=HtHL9r!HHL9tHHH0tHE1IIDD$ LHLAe"ML$IAf|$ uDHH^H+IH3HT$01ɿL$@L$E1IILI)M~EHJT-HtI9HMHH¿1L$H5#~:L$GPEAWEAVIAUMATIUSHHH$H$D$D$dH%(HD$81D$,HMtAH+H}H;L9rNEu9H$AHHD$8dH3%(HHD[]A\A]A^A_fHIE1Iɐ}{E}HD$0HT$,Ht$0Hjx1A Aa"HL$Hl$@HL;XZIL;Ht#D$,@tHS0A=DHD$0HT$,Ht$0Hjx1A A!HL$HT$@HHY^HHHtHD|$I)MH ~J HI9HL@L}DT$H)!H}DT$HHD$H;LR}EA%H=Hu fDHH;A%H=HtHD$HH9w(HH9#EA%H=HtHH)HD$0L\$HT$,Ht$0HDT$A1A D$4jx HL$H_AXD$,dDT$HHAA HL\$1H)A%H=Hu#DH 2HHA%H=HtHt$0H)HH9t*H,2H+EOH4$QH4$xHD$HHEtHH{E1H;IfHD$HHHHH3E1IHAE1IfDL9sRL\{fHH;L9t;A%H=HtHL9rHHL9t ADuHE1IDD$E1LLH$MD$IAE|$t"I)MEH{I9ILHHH!IDD$ALHMtVIAEWHH5195D$GHT$0H31ɿH7;E1IH+!HH5141R?fAUHATIUSH(HF0HF( xF f(T$+T$fHQ,f/fHn^~=ڠ5ʠ)<$f(t$f(fTf.f(T$S+HfT$D,|$fHnf/^ $f(fTf.mHf(T$fHn*T$f $,t$f/^}f(fTf.yAfDHfATUH-+nSHL%dHHH HUHcI4$XHH)HHu8H=ҩxHHUIHcLHUHI$[]A\H5Y=DHHt$8HT$@HL$HLD$PLL$Xt:)D$`)L$p)$)$)$)$)$)$dH%(HD$(1H$Ht$D$HD$H=HD$0D$0HD$ HNj@ % =tHHt$DHT$HH=HHT$(HD$(dH3%(uH@HHwHP1ff.AWAVAUATUSHH7eL%plH-cHHuHHH I $HcPHH)HH#HcH:IHlcH@#HPHl`LHH$AS I$AN|(H yd9t|HsS LI_HEH[]A\A]A^A_HLp HbH@#n)LH5$Ax!H=H1]fDHAI$}H5( ;;ff.AWAVAUATUSHHcL%jL5qaHIHHH HcI$I׍jHH)HS!HcHHHH:HxHt1H/tH$H=v1Dx$HD$dH3%(uH]A\&H)HHINjC % =tXH-L99uRMuIM9vEI}I]MuG % =uHLx C % =uHH@ L99tH\$Lt$ILl$0AHHL$HHD$ IH9L9RLMLHL;L$uHL$0H9L$( HD$MHD$I)ILE7M9IALfHHHREtHpHxHpHxHL9rIFIQLL)HL`II9ֺLBHBHL$K4"HDHt$HD$L;t$H;l$DHD$xH$H9tH.H$ dH3%( H []A\A]A^A_H$pHH$HD$x6MLT$MM9LT$LL;t$\HL$0H9L$(+HDH9\$(pH$HT$1HDŽ$D$dH$H$HD$xH$H$H$H H@H~&|$dHHHHH)HpH|$dt$dHtHPD$dHT$HHHH@t$dHԐHHĐHt$XHD$PHD$HHL$XH\$PHHD$HH<HHD$0HH|$hHHH)H)HHHHD$pHt$8HL$@H9H9H|$ Ht$(fHD$(H(HD$ H8G % =)HËE % =H)H9H\$ HD$8D$Ld$(HD$L{L9|$Ld$1AlDN)IAD$ % =tzL-)L99D$&HK6LHLOKH;D$IHD$M'H8G % ={HLh |I$H@ fDH\$(HD$@D$Ld$ HD$L{L9|$HD$IHhL9wI<$L@G % =LD$F(LD$HA@ % =L(H99D$ I_IfLd$HI9w D9D$|yIL9szLI<$H)HHHH?HHH,ËG Lu% =h~'IAF % =7LZ'L9yH]L9rHD$ H|$0HI9rfHL9rH\$ HHsHLHI9H HBHHH\$ H\$0HI9HBHT$(HDHD$0HHHBHD$(HL$ H9L$8vHL$(H9L$@HL$ H9L$8Ht$(H9t$@HD$0H\$PH|$XHt$hH)Hl$dHMHl$HHL$HHH|$PHQHkHD$XIH@ @HLh @HD$Ld$HhL9L|$HHX E % =!HEH@ !Ht$(HL9rHT$(HHrHLHI9H HBH\$0HHHI9Ht$ HT$(HBHDHD$0HHHFHD$ @II.%HAD$ % =tJL %H9D9uEIM9I~M&G % =uHHX I$H@ H9D9tM9vfL9ZMLT$L|$ IH@ qHHX DIAH9DHUHHHHMHPH9rLt$ H\$Hl$ =fD.$IċE % =tSH$L9D9uNMII9sBI~I.G % =uHL` E % =uHEH@ L9D9tHl$ H|$0Ht$ HD$8f.HH9wHL$8Ht$ HAL~H)HL9HHBHD$0LL|$ QHL$HD$HAHHD$HhHxHXG % =LL$ "LL$ I‹C % =HLT$8LL$ "LT$8LL$ L9HL$(D9LDLDLDH|$0HD$@HH9wHD$@Ht$0HH+D$(HHDHD$0HD$hHD$ HD$8HD$(T$d&HP!HH@ bHLP "H\$xHH$H< LHHHH)H)HHLHH9wIH6HL$pHD$HHH\$xHH$H< LHH)HHLHHH9wIHPtHEH@ UHHX )HD$HD$H DAWHAVAUATUSH H$dH4%(H$ 1HH=HH9) HHxHD$xH$pH$H$H8HHhH\$ G % =  HËE % = Hl E1H9ظH$AANAHD$ H9i HD$xEHD$HD$HD$ HkLcH9H\$I]f.INjC % =thH1L9OA9LeHI9H}H]LeG % =uHLx C % =uHH@ HD$xH$H9tHI"H$ dH3%( H []A\A]A^A_HH$pH$HD$xKfDH\$Hl$(IDIDILHD$L9M9LILHM9uHt$(H9t$  HD$MHD$M)ILL9IALҐHHHRtHpHxHpHxHH9rHCIQIL)HLxIH9LBHBK4:Ht$Ht$HDHD$L9t4M99MLT$IL9dLT$IL9uHL$(H9L$ LAAH9\$ H$HT$1HDŽ$D$dH$H$HD$xH$H$H$H H@H~-|$dHHHHH)HpH|$dt$dH;HPD$dHT$HHHH@gt$dHԐHHĐHL$XHD$PHD$HHL$XH\$PHHD$HH<HHD$0HH|$hHHH)H)HHHHD$pHt$8HL$@H9H9H|$ Ht$(fHD$(H(HD$ H8G % =UHËE % =%HH9HD$8D$Ld$(H\$ HD$L{L9|$1A@I<$MG % =FLD$LD$IA@ % = L^L9HI9w!9D$}tI^L9ssLI<$H)HHHH?HHL4ËG I.% =IŋE % =HL9~ML9rHD$ H|$0HI9fHL9rHT$ HHrHLHI9H HBH\$0HHHI9Ht$(HT$ HBHDHD$0HHHFHD$(HL$ H9L$8vHL$(H9L$@HL$ H9L$8Ht$(H9t$@HD$0Ht$PH\$XHL$hH)H؃l$dHZHl$HHL$HHH\$PHQHkHD$X9D$;HK6LHLOKH;D$sRIf.IH@ @HLh @HEH@ nHLh ?IߐHD$HhL9L|$L@HD$@D$Ld$ H\$(HD$HEH@ HHX @Ht$(HL9rHT$(HHrHLHI9H HBH\$0HHHI9Ht$ HT$(HBHDHD$0HHHFHD$ @I<$L@G % =LD$LD$HA@ % =LH99D$I_Is@Ld$0HRfDIAD$ % =tRL1L9O9u;HL9H{L#G % =uHLx DI$H@ Ld$0L9viM9QMLT$Ll$IH@ HHX IAI9[@IHIHINHPI9r7Ld$0H\$Lt$IIAF % =tbL1L9O9IHL9H{L3G % =uHLx AF % =uIH@ H|$0Ht$ HD$8fHH9wHL$8Ht$ HAL~H)HL9HHBHD$0LLl$HL$HD$Mt$HAHLt$HxLxG % =LL$uLL$IAG % =LLT$0LL$BLT$0LL$H1L9־HL$ O9HDLDLD]H|$0HD$@HH9wHD$@HL$0HH+D$(HHDHD$0T$dLHPSHD$hHD$ HD$8HD$(IHp \HLP H\$xHH$H< LHHHH)H)HHLHH9wIHVHL$pHD$HHH\$xHH$H< LHH)HHLHHH9wIHPHEH@ wHHX KHD$HD$Hzu DAWAVAUATUSH H$dH %(H$ 1HHHH9jHHHD$xH$pH$H$H(HL`H\$ E tHE@~AD$ tID$@HL1؅@H$HD$ H9uHD$xH$I܉HD$HD$ Ml$Mt$L9IǐImIuMuE *HE@HH@ 1H;Ht$Ht$HH@  Hh 19uMuIM9sI$Ll$(MML9M97LMHT$(LPH9T$ u M99 HD$LH$L)HH8 M9IBHf.HHHRtHpL@HpL@HL9rIEIRML)HHhHI9պHBHBH /HL$H $HDH$M9M9I$ML9 If.I}IuG  HG@ HH@ 1ɺ;Ht$H|$H|$Ht$H P ; HDX El 1f9g IM9kIMIM9PImIuE  HE@ HH@ 1H;Ht$lHt$HH{ @  HDP E1D9pM9MH|$MM9H|$MM9qHL$(H9L$ 9 L9d$ H$H$1HDŽ$D$\H$H$HD$xH$H$H$H H@H~%|$\HHHHH)HpH|$\t$\H HXD$\H\$@HHH@ L$\ȉʃHԐHHĐHL$PHD$HHD$@HL$PH|$HHH$HH4HHD$(HHt$`HHH)H)HHHHD$hH\$0HL$8H9D H9; Ht$H\$f.HD$L HD$H(E &HE@HH@H1ɺ;L& HH@ HD@ EfDH\$HD$0AHl$H$L{L9<$E1AH}I7G HG@HH@1ɺ;Ht$ H|${ H|$Ht$ HP Hp HI9D$$cIE@HH@txL1ɺ;L HH@ HH ffDMI9vyLLmH)HHHH?HHL$M4$AE nAF tIF@tHH@gDLL9$}I\$I9wHD$H|$(HH99fHL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$HL$H9L$0vHL$H9L$8EHL$H9L$0HL$H9L$8HD$(H\$HH|$PHL$`H)Hl$\Ht*Hl$@HL$@HH|$HHQHHD$P_HD$xH$H9tH H$ dH3%( H []A\A]A^A_H$pHH$HD$x-?F tHF@tHH@H؅@F tHF@tHH@A9 IK6LILOKH;$s~IvfDAD$ t ID$@tHH@DLHX؅H\$HD$8E1Hl$H$L{L9<$IH$LHM9?L<$GfD Hff/%ff. 1% =hff/Hf.1Ht$HL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$@/11H}HpG HG@HH@t|1ɺ;LL$pHt$ H|$)H|$Ht$ HLL$ptuP Hx I_M@H@(ZH@(F t"HF@tHH@dLL$LL$A99M9M9MH|$I> @F tHF@tHH@v؅'F tHF@tHH@`H3؅@ WHff/1f.ƺE% =#ff/]f.]MRIBI9I$HIHIL$HPI9rH|$(Ht$HD$0HH9wHL$0H\$HALsH)HL9HHBHD$(%LI^HL$H$MfHAH % =ff/1f.EH@(H@(% =sff/1f.EHhHpE HE@HH@1H;LT$Ht$Ht$LT$HHP   LT$LT$ff/e1 tHLL$LL$ff/*ff.e_1}F tHF@tHH@HLT$5LT$؅HL$ 9LDLDLDvH|$(HD$8HΐHH9wHD$8HL$(HH+D$HHDHD$(H@(T$\ HPHD$`HD$HD$0HD${H@(n1Ht$xHH$H<L HHHH)H)HLHHH9wIHH@(HL$hHD$@H1Ht$xHH$H<L HH)LHHHHH9wIHPHDH EHH@H1ɺ;L7HH@ tbHD` E1HH@uq1f.ƺEH@(jHD$@H$% =tJff/wE1f.AAD-@@ @諐H@(붐AWAVAUATUSH H$dH %(H$ 1HHHH9rHHHD$xH$pH$H$H(HL`H\$ E tHE@AD$ tID$@IHL1@H$HD$ H9HD$xH$I܉HD$HD$ Ml$Mt$L9InHE@tuHH@ti1H;Ht$Ht$HHti@  H1j ~9uaMuIM9vLImIuMuE uF tHF@tHH@wH9tI$Ll$(MML9M9/LMLPM9uHT$(H9T$ K HD$LH$L)HH83 M9IBHfHHHRtHpL@HpL@HL9rIEIRML)HHhHI9պHBHBH /HL$H $HDH$M9M9I$ML9IuHG@tqHH@te1ɺ;Ht$H|$DH|$Ht$HteP H1DZ E~9uXfIM9E I}IuG uF tHF@tHH@{D9tM9M9 MH|$IHD$xH$H9tHH$ dH3%( H []A\A]A^A_H$pHH$HD$xNMH|$MM9H|$MM9qHL$(H9L$ q L9d$ H$H$1HDŽ$D$\H$H$HD$xH$H$H$H H@H~%|$\HHHHH)HpH|$\t$\H HXD$\H\$@HHH@& L$\ȉʃHԐHHĐHL$PHD$HHD$@HL$PH|$HHH$HH4HHD$(HHt$`HHH)H)HHHHD$hH\$0HL$8H9G H9> Ht$H\$f.HD$L HD$H(E ^HE@PHH@@H1ɺ;L6HHJ@ HD@ EFfDH\$HD$8E1Hl$H$L{L9<$CE1AfDHG@HH@t{1ɺ;Ht$ H|$H|$Ht$ HtyP  Hp IK6LILOKH;$IH}I7G kF tHF@tHH@e>A9|HI9D$$`fDIE@~HH@trL1ɺ;LHHt|@ HH BfI\$L9ssLLmH)HHHH?HHL$M4$AE tAF tIF@tHH@mLL`9$|ML9rHD$H|$(HH9DHL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$HL$H9L$0vHL$H9L$8HL$H9L$0HL$H9L$8HD$(H\$HH|$PHL$`H)Hl$\HHl$@HL$@HH|$HHQHRHD$PAD$ t ID$@tHH@DLHH\$HD$0AHl$H$L{L9<$IfDH$LHM97L<$[fD Hff/f.821&@% =fff/hf.1Ht$HL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$@a1U/1#H}HpG HG@HH@1ɺ;LL$pHt$ H|$H|$Ht$ HLL$p}P Hx Lu1A98I_MH@(JH@(}F tHF@tHH@PLL$LL$f. Hf1f/% =Rff/'IBI9fI$HIHIL$HPI9rIqfHE@|HH@tp1H;Ht$Ht$HHtu@ EH1DR E~ fD9MIM9ImIuE vF t HF@tHH@pfDH#H|$(Ht$HD$0f.HH9wHL$0H\$HALsH)HL9HHBHD$(5LI.HL$H$MfHAH% =f1f/RRH@(H@("% =Zf1f/HhHpE HE@HH@1H;LT$Ht$Ht$LT$HHP  LT$LT$f1f/ %HLL$vLL$ff/f.J2I_MF tHF@tHH@HLT$LT$HL$ 9LDLDLD`H|$(HD$8HHH9wHD$8HL$(HH+D$HHDHD$(H@(HD$`HD$HD$0HD$T$\HPH@( H@(Ht$xHH$H<L HHHH)H)HLHHH9wIHHL$hHD$@HHt$xHH$H<L HH)LHHHHH9wIHPH1DJ E HH@H1ɺ;L8HH@ tQH1D` E}HH@u=H@(HD$@H$% =t  H@(1f/qwD~AWAVAUATUSH H$dH %(H$ 1HHHH9HHJHD$xH$pH$H$H(HL`H\$(E tHE@AD$ tID$@ALH1@H$HD$(H9HD$xAHD$HD$HD$(LcLkL9HofDIF@ttHH@th1L:Ht$>Ht$HHtq@  HDp EE1E9unMl$IL9v`Mt$I4$Ml$AF uF t$HF@tHH@xf.LxE1AE9tHl$Ld$0IEI@ILHD$L9 M9oLIHT$0LPH9T$(u M9 LHD$L)HH}E IHL9v~IBHf.HHHREtHpL@HpL@HH9rHCIRIL)HHhHH9HBHL$HH9ӺHBHDHD$I9M9 @HD$xH$H9tHH$ dH3%(H []A\A]A^A_H$pHH$HD$x)E114MHIf.HL$0H9L$({ LEHl$AH9\$(-H$HT$1HDŽ$D$dH$H$HD$xH$H$H$HPH@H~(|$dHHHHH)HpH|$dt$dH@ HPD$dHT$HHHH@{ L$dȉʃHԐHHĐHL$XHD$PHD$HHL$XH\$PHHD$HH<HHD$0HH|$hHHH)H)HHHT$8HD$pHL$@H9 H9 H|$HT$@HD$L HD$H(E HE@HH@H1ɺ:LHH@ HD@ EfDH\$HD$8ALd$HD$L{L9|$1AI<$I7G oHG@aHH@Q1ɺ:Ht$(H|$ [H|$ Ht$(HHP \Hp ^HI9Dl$bf.HE@tHH@tsH1ɺ:LHH|@ @HH fMI9v}LI,$H)HHHH?HHL,MuE wAF t IF@tHH@lfDLH9D$}I]I9wHD$H|$0HI9DHL9rH\$HHKHLHI9HHBHHH\$H\$0HI9ϹHBHL$HDHD$0HHHAHD$HL$8H9L$sHL$H9L$@EHL$H9L$8HL$H9L$@T HD$0H\$PHt$XHL$hH)Hl$dHHl$HHL$HHHt$PHQH HD$XcF tHF@tHH@t6A9HK6LHLOKH;D$I!)u 1fD11D)u 1911(fAD$ t ID$@tHH@5DLHd؅RH\$HD$@E1Ld$HD$L{L9|$UIߐHD$HhL9>L|$@ Hff/ff.1% =`ff/f.1Ht$HL9rH\$HHKHLHI9HHBHHH\$H\$0HI9ϹHBHL$HDHD$0HHHAHD$#@1v1iI<$HpG HG@HH@tt1ɺ:Ht$(H|$ nH|$ Ht$(HtoP Hx DI_I @H@(bH@(F tHF@tHH@lA9D)1fHDH{H3G WHG@IHH@91ɺ:Ht$ H|$cH|$Ht$ H0P HDX E1fA9HL9rH\$DIHL9H{H3G HG@HH@1ɺ:Ht$H|$H|$Ht$HP HDP E~G1fDA9o A9DL9HM9MHLt$(빐F tHF@tHH@tV؅F tHF@tHH@؅;)A1Ex1D$D$d@ Hff//1f.ƺE% =ff/Mf.=IBI9IHIHIOHPI9r)A1E@1D$D$,H|$0Ht$HD$8DHH9wHL$8HT$HALzH)кHL9HHBHD$0LLt$HEHD$M}HE)4u1I1R1;% =(Qff/E1f.ADEH@(\ Hff/1f.EH@(JHxHpG HG@HH@1ɺ:LT$ Ht$H|$2H|$Ht$HLT$ P a HLT$:LT$ff/1 8Hff/cff.1F tHF@tHH@LT$ LT$-1҅HD$(A9HDLDLDAEH|$0HD$@H@HH9wHD$@HL$0HH+D$HHDHD$0nH@(T$d:HPSHD$hHD$HD$8HD$ H@(1H@(Ht$xHH$H<L HHHH)H)HLHHH9wIHBHL$pHD$HH)LT$1LT$1T$*T$LT$Ht$xHH$H<L HH)LHHHHH9wIHPGHDH EKHH@H1ɺ:LpHH@ HDx E1HH@uF1f.ƸEH@((HD$HHD$?)1,1 % =tNff/iE1f.AAD@@@jH@(벐AWAVAUATUSH H$dH %(H$ 1HHHH9*HH*HD$xH$pH$H$L HHhH\$0AD$ tIT$B7E tHUB% =LHËE % =pH1H9@H$HD$0H9 HD$xAHD$HD$HD$0LcLkL9H\$ HfDI|$M4$Ml$G HWBHHB1ɺ:LH|$H|$HaP HX 1fA9uMl$IL9qH\$ Ll$ILd$8EIߐHL$IHD$ IH9 M9LMHt$8LXH9t$0u L;\$$HD$LHD$L)HH8EM9ICHfHHHREtHpL@HpL@HI9wIEISML)HHhHI9պHBHBH4/Ht$Ht$HDHD$L9l$%L;|$%DHD$xH$H9tHH$ dH3%(:H []A\A]A^A_H$pHH$HD$xPAF t!IVBtHHB% = .HAF % = L H9@MH|$MM9dH|$ML9l$Ht$8H9t$0s LEAH9\$0H$HT$1HDŽ$D$dH$H$HD$xH$H$H$HH@H~%|$dHHHHH)HpH|$dt$dHxHXD$dH\$HHHH@t$dHԐHHĐHt$XHD$PHD$HHt$XH\$PHHD$HH<HHD$0HH|$hHHH)H)HHHHD$pHL$8Ht$@H9H9H|$ HL$(fHD$(H(HD$ L AD$ rIT$BcHHBSL1ɺ:HqHH- @  HD@ EfH\$ HD$8D$Ld$(HD$L{L9|$yA1MMI<$M>G HWBHHB1ɺ:LH|$H|$H=P Hp MHI9wk/fIVBHHBt~L1ɺ:LTHH@ HH fDIL9LM4$H)HHHH?HHH,AF LmhAE t!IUBtHHBa% =PL#IAE % =GLL99D$@H]L97HD$ H|$0HI9 DHL9rH\$ HHKHLHI9HHBHt$0HHHI9ϹHBHL$(H\$ HDHD$0HHHAHD$(HL$ H9L$8vH\$(H9\$@Ht$ H9t$8oHt$(H9t$@+ HD$0H\$PH|$XHL$hH)Hl$dHHl$HHt$HHH|$PHVH HD$XAG t!IWBtHHBH% =vHAG % =tcLHT$QHT$H99D$"HKD-LHLOKH;D$BIf.IH@ HHP q@ILp AE % =IEH@ E tHUBtHHB% =pLsHËE % ==HPH9H\$(HD$@D$Ld$ HD$L{L9|$HD$IHhL9LI<$HXG HWBHHB1ɺ:HH|$:H|$HP Hx ? fI_Ix@ ~H1ff/@ff. 1% =@ff/`f.1G XAF HD$MHhL9L|$Ht$(HL9rH\$(HHKHLHI9HHBHHH\$(H\$0HI9ϹHBHL$ HDHD$0HHHAHD$ @1HEH@ I$HX H]H@(H@(C tHSBtHHB% =H‹C % =}HHT$nHT$H99D$fIH@ *@HHX @IDI}ImG THWBFHHB61ɺ:HH|$(RH|$(H|P HDX E1fDA9IM9rLl$ H\$L|$ MII9sqM}ImAG 7IWB)HHB1ɺ:HLHFP =HDP E~H1@A9tL|$ A9KM9OM9vMH|$Lt$ >fDE tHUBtHHB% =t<zHËE % =t6H[H9DHHX E % =uHEH@ E tHUBtHHB% =LINjE % =tiHL9fD Haff/1f.ƺEDHEH@ fDILx l@G % =ff/Xf.HHH@ HHP XICI9UfDIHIHIOHPI9r/AD$ H|$0Ht$ HD$8HH9wHL$8Ht$ HALvH)HL9HHBHD$0MLLt$ HL$HD$HAHHD$Lx8 xH޻ff/1f.EH@(LG  cH膻ff/1f.EH@(_HxHXG HWBHHB1ɺ:HL\$(H|$ H|$ L\$(H@P  *HL\$ ǺL\$ ff/1DAG  H耺ff/ff.1/C tHSBtHHB% =L\$ HL\$ H‹C % =HHT$(L\$ HT$(L\$ H9H\$0A9LDLDLDAG 2H|$0HD$@HH9wHD$@Ht$0HH+D$(HHDHD$0H@(T$dHPHD$hHD$ HD$8HD$(3H@(1HH@ .HHP H@(qH\$xHH$H< LHHHH)H)HHLHH9wIHHL$pHH{H\$xHH$H< LHH)HHLHHH9wIHP3HEH@ I$HX cHDH EVHHBL1ɺ:HHH@ tiHh 1&HHBu1f.ƺEG xH@(HD$HHD$% =tCtff/wE1f.AADAD$ D0+TH@(@@l@AWAVAUATUSH H$dH %(H$ 1HHHH9rHHHD$xH$pH$H$H(HL`H\$ E tHE@AD$ tID$@IHL1a@H$HD$ H9HD$xH$I܉HD$HD$ Ml$Mt$L9InHE@tuHH@ti1H;Ht$Ht$HHti@  H1j ~9uaMuIM9vLImIuMuE uF tHF@tHH@wHc9tI$Ll$(MML9M9/LMLPM9uHT$(H9T$ K HD$LH$L)HH83 M9IBHfHHHRtHpL@HpL@HL9rIEIRML)HHhHI9պHBHBH /HL$H $HDH$M9M9I$ML9IuHG@tqHH@te1ɺ;Ht$H|$贿H|$Ht$HteP H1DZ E~9uXfIM9E I}IuG uF tHF@tHH@{D薪9tM9M9 MH|$IHD$xH$H9tH^H$ dH3%( H []A\A]A^A_H$pHH$HD$xNMH|$MM9H|$MM9qHL$(H9L$ q L9d$ H$H$1HDŽ$D$\H$H$HD$xH$H$H$H H@H~%|$\HHHHH)HpH|$\t$\H HXD$\H\$@HHH@& L$\ȉʃHԐHHĐHL$PHD$HHD$@HL$PH|$HHH$HH4HHD$(HHt$`HHH)H)HHHHD$hH\$0HL$8H9G H9> Ht$H\$f.HD$L HD$H(E ^HE@PHH@@H1ɺ;L覼HHJ@ HD@ EFfDH\$HD$8E1Hl$H$L{L9<$CE1AfDHG@HH@t{1ɺ;Ht$ H|$H|$Ht$ HtyP  Hp IK6LILOKH;$IH}I7G kF tHF@tHH@eަA9|HI9D$$`fDIE@~HH@trL1ɺ;L4HHt|@ HH BfI\$L9ssLLmH)HHHH?HHL$M4$AE tAF tIF@tHH@mLL9$|ML9rHD$H|$(HH9DHL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$HL$H9L$0vHL$H9L$8HL$H9L$0HL$H9L$8HD$(H\$HH|$PHL$`H)Hl$\HHl$@HL$@HH|$HHQHRHD$PAD$ t ID$@tHH@DLH蠤H\$HD$0AHl$H$L{L9<$IfDH$LHM97L<$[fD Hff/f.821&@% =֬ff/hf.1Ht$HL9rH\$HHKHLHI9HHBHHH\$H\$(HI9ϹHBHL$HDHD$(HHHAHD$@a1U/1#H}HpG HG@HH@1ɺ;LL$pHt$ H|$uH|$Ht$ HLL$p}P Hx Lu1A98I_MH@(JH@(}F tHF@tHH@PLL$1LL$f. Hf1f/% =ªff/'IBI9fI$HIHIL$HPI9rIqfHE@|HH@tp1H;Ht$Ht$HHtu@ EH1DR E~ fD9MIM9ImIuE vF t HF@tHH@pfDHàH|$(Ht$HD$0f.HH9wHL$0H\$HALsH)HL9HHBHD$(5LI.HL$H$MfHAH% =f1f/RRH@(H@("% =ʨf1f/HhHpE HE@HH@1H;LT$Ht$Ht$LT$HHP  LT$)LT$f1f/ %HLL$LL$ff/f.J2I_MF tHF@tHH@HLT$蕞LT$HL$ 9LDLDLD`H|$(HD$8HHH9wHD$8HL$(HH+D$HHDHD$(H@(HD$`HD$HD$0HD$T$\HPH@( H@(Ht$xHH$H<L HHHH)H)HLHHH9wIHHL$hHD$@HHt$xHH$H<L HH)LHHHHH9wIHPH1DJ E HH@H1ɺ;L許HH@ tQH1D` E}HH@u=H@(HD$@H$% =t }H@(1f/XwMDCBAWAVAUATUSH H$dH %(H$ 1HHHH9jHH躯HD$xH$pH$H$H(HL`H\$ E tHE@~AD$ tID$@HL1a؅@H$HD$ H9uHD$xH$I܉HD$HD$ Ml$Mt$L9IǐImIuMuE *HE@HH@ 1H;Ht$蘯Ht$HH@  Hh 19uMuIM9sI$Ll$(MML9M97LMHT$(LPH9T$ u M99 HD$LH$L)HH8 M9IBHf.HHHRtHpL@HpL@HL9rIEIRML)HHhHI9պHBHBH /HL$H $HDH$M9M9I$ML9 If.I}IuG  HG@ HH@ 1ɺ;Ht$H|$H|$Ht$H P ; HDX El 1f9g IM9kIMIM9PImIuE  HE@ HH@ 1H;Ht$IIIQLMuHD$H[HHD$HD$ H8HHD$ lHD$AD$$H|$(LբID$8$H$t$LHH+D$H@HE@HHHH9!.HL$(HE1HH;BpD$8l$Ld$@MMI݋\$0D$8EHDŽ$@INH$IIID$MIMM(AC PtHI#SHH9o>% = 1LH$@CL$8LH$EI@HɸHDȀ|$"LH+D$HHH@HH)HLH+D$H)H9,HL$(HHH;BHL1IwH\$(ALH+D$HHBLLyH+D$HBH\$(AHHBHYHF Ld$@l$Dd$0:fHH@ $@uUIvA{AIHHLMDD责H@ u1$@tL$8LH$ޢIHiH HLd$@LDd$I@fDHH@ H$EuW|$0HKHHHHLMDH@ u1BH$EtL$8HھH$+HHYH Ld$@l$Dd$0@1y$@u^IvAAIHHLMDTHNj@ % =uHH@ $@tL$8LH$uIHiH6 HLd$@LDd$I?DHH@ H$EuW|$0HKBHHHHnLMD蚡H@ u1ڢH$EtL$8HھH$àHHɸHDȀ|$#LH+t$HHHHH9'I)H\$IL$8LH H)I9eL fDHJ8H9s HB8HR@HuH\$(H$AHHB]HiHLd$@Dd$=1艑H$Eu`|$0INIIHHLMDbHNj@ % =uHH@ H$EtL$8LH$肟IHiHCLl$0Ld$`D|$8L|$(@HD$0IH_ t$8L۟AD$ % =1Lܓff/S(AD$  ?f/@e \ ln%fTf.v;H,fQ-AnfUH*f(f(fT\fV=nf( nYfTf.v;H,f-H*f(fT-m\fUf(fVH$-m5H$@IcDf(mYfTf.v3H,fH*f(fT\WmfUf(fVf(I9Sf(f(fIY\,Ȁf/A$y$L)|$SH?H9&IH4HT$HPI6H9w'AILL+t$LpߜHD$IILpL1HLIDHHH\$(ALH+D$Ld$`HHBHiHLd$@D|$MIH݋\$0?V$EuWINfAIII*LM^ G % =uH@($EtL$8LH$IHYHLd$0l$:fHL` I$H=wQ@udE&IHH\LM+ DKH@ u1苝II$H=v1H5Yn@tLH$1ɾD$QI|HiHLd$@Dd$A1行H$Eu`|$0INrIIHHLM DzHNj@ % =uHH@ H$EtL$8LH$蚚I뙀|$!HL9t$!AFIH!Hx0HHx0HHx0HHx0 HHx0KHѲHx0 HHx0HHx0HHx0nHHx0HHx0FHqHx0vHaHx0BHQHx0HAHx0VH1Hx0H!Hx0HHx0HHx0LLd$HH+D$LHl$Ld$@H+D$L$8H|$@L萋IYLH$1ɾqIL$8H|$0LRIN-- 1$HH)LH+t$HHt$(Hl$HYHHh|$HEHDH$HD$0HLd$@MI1I||$II9rKA$ILHs H+D$HBHH)H9>IHHRH9HD$HlL11L茐HIHLMD׊HNj@ % =QH|$LH TH|$01L1.H+D$0IHIH9wFA$H4ILHH+T$H)HQH9qIHHhH9Hl$H|$0L1LH草IH5H\$(MLd$@ALH+D$HHBE|$ AUKHD$(HH@ID$8IUMEHRLD$xHT$p eLl$p|$L|$@L IH9HL$pAZQ HLH+D$L)H9xH\$(LHH;BHT$pHt$xLLHHD$pIH)1AALH@Ir\H85Hs8%H|$(E11ɺt1 IUMUHRHT$pIEI]H@HD$pAH|$LHL$02HL$01HHI蘇HHD$IHHInHA4$H=@ƉHH5@IHHAH  9HD$HHHD$HD$ H8HHD$ L1ɾL\$0H$@$1L\$0I]DH==ALHH8HӨGfL1ɾD\$0H$@$1誆D\$0IrLLL$8OLL$8IHD$IHPL`HHx0#!LH@HI9t1DHHLF?AH H HuƋL$8LE1E1H$L)LD\$0H$D\$0HIԉH=1 HD!HHI9t1DHHLF?A0H H HuƋL$8LE1E1H$H)HL\$0IH$L\$0H9AH=B1@LLL$8ÄLL$8IHD$IHhL`>HHI蘄HHD$IHHIHH$fDHHL9u`AF$AHH$f.HHL9uoHH$fDHHL9uHH$fD0HH@2H9u!HH$D0HH@2L9uHH$D0HH@2L9uHH$D0HH@2H9uHH$D0HH@2H9uiHH$D0HH@2H9uHD$@HH$0HH@2H9uHD$0HH$0HH@2H9uHH$DHHL9uHH$fD0HH@2L9uHH$DHHL9uxAF$AI1H=,A1uHD$0E1~Lr/Ld$hMMMIELIIHHLRAt$LHqHk LxLd$hAE1MMD\$#I9wEMAt,IEL9dIEuMH AuEu8A.I1DH=ALHHuMH L1ɾLT$HH$D\$0@$1D\$0LT$HI[HD!H@HI9t1DHHLF?A0H HHuƋL$8LE1E1H$H)HD\$HLT$0脁LT$0H$D\$HH0fHLd$hLyM1DT$!@M9wqIAt@HCL9tKHEuA$IЃHAHw2B I AuEudHCA.I1L9uLd$h A4$H=ޮ@ƉHHua@IHHAHwŃ  NL1ɾL\$HH$DT$0@$1FDT$0L\$HIL!HDHI9t1DHHLF?AH HHuLދL$8E1E1H$L)LDT$HL\$0L\$0H$DT$HHuIԉH=IULzIUL|$pnL|$(L~HHD$IL|$pHXI HIL\$hLT$HHL$0}L\$hLT$HHHD$IHL$0HXIwLt$(LL\$hDT$HLHL$0}L\$hDT$HHHD$IHHHD$pIHL$0HD$HHHD$HD$ L(HHD$ [HD$H>HHD$HD$ L(HHD$ H HD$HHHD$HD$ L(HHD$ $HD$HHHD$HD$ L(HHD$ HD$HHHD$HD$ L(HHD$ DHD$L9H5ưHHDFLHHDHDI9wI9lH\$(IHH+D$AHHBHY3Ld$0l$*HL` IwJ@u]E&IHHLM?D|H@ u1}IIv1H5Q:N@tLH$1ɾD${ILl$p|$@L;AZLhL9Ll$pMIEHD$pLHu!DHH@@HuHqHl$Hh8LHу|$H$1L@$ {HH|$(LxAL$$E|$ D$HD$H~.HHD$HD$ H8HHD$ HT$ D$HȠHx0yHLIIzHHD$IHXIL)HHH$H)HH$H$1L@$(zH~|$@kHL9ItLH+D$HH)H9HL$(HHH;BL)M8HD$xL011HHD$xHHl$pHD$xuIH581?L?؅HD$(E1H$L{L9<$E1A*fDIK6LILOKH;$II7H};>A9|HI9wRfI]L9s@LH}H)HHHH?HкHL,Iu=A9|ML9rHD$H|$HH9AHL9rHL$HHqHLHI9HHBH|$HHHI9HL$HBHL$HDHD$HHHAHD$HL$H9L$ vHL$H9L$(uH|$H9|$ H|$H9|$(HD$H|$@H\$HHt$XH)H؃l$TH5Hl$8Ht$8HH\$@HVH$HD$HIH$L@M9LD$0L<$HD$ Hl$AH\$H$fHt$HL9rHL$H|$HHqHLHI9HHBHHHI9HL$HBHL$HDHD$HHHAHD$@HpH};A99LD$0I_MfI IM9voI|$I4$;؅9tM9vIM9MILt$4IAI9IHIHIOHPI9rLd$.fI|$I4$-;؅9MIM9rrH|$Ht$HD$ HH9wH|$ HL$HGLqH)ȹHL9HHBHD$LLt$$HCH$M}HHpHxLL$:HL$LL$؅9LDLDLDH|$Ht$HD$(HH9wHD$(H|$HH+D$HHDHD$HD$XHD$HD$ HD$ufT$T:HPH\$hHHt$pH< LHHHH)H)HHLHH9wIHEHL$`HHH\$hHHt$pH< LHH)HHLHHH9wIHPH$-HD$8 Fff.AWAVAUATUSH H|$pdH<%(H$ 1HHHH9( HHLHD$hH$`HD$xL|$pI޺1IwI?MLt$h*؅@M9H$H\$hHD$MgMoL9vAD$A9tLd$IEIILHD$L9xM9?LILHM9uHt$H9t$ MH$M)ILUEILL9vuIALHHHREtHpHxHpHxHH9wHCIQIL)HHhHH9HBLH9HBH $HDH$L9M9fDHD$hHL$xH9tHQFH$ dH3%(Hĸ []A\A]A^A_H$`HHD$xHD$hfMIIfHL$H9L$LEAH9\$HD$pH$1HDŽ$D$TH$H$HD$hH$H$H$HH@H~)|$T@HHHHH)HpH|$Tt$THHxD$TH|$8HHH@L$TȉʃHԀHHĀHL$HHD$@HD$8HL$HH|$@HH$HHHHD$ HH\$XHHH)H)HHHHD$`Ht$0HL$(H9H9H\$Ht$f.HD$H0HD$H8orH\$HD$(E1Ld$H$L{L;<$A1Dl$MILI.9l$}ZIHMIHOIDH;$IIuI<$oŃu)1=Gt1b=9l$|@LMDl$HfI9vHLI<$H)HHHH?HHL4I6nŃ5A9$I^I9wHD$H|$ HI9DHL9rHT$HHrHLHI9H HBH|$ HHHI9Ht$HT$HBHDHD$ HHHFHD$HL$H9L$0vHL$H9L$(-HL$H9L$0HL$H9L$(HD$ Ht$@H|$HHL$XH)Hl$THHl$8HL$8HH|$@HQHHD$HCM)1E1;H$Dl$HhL9w^L<$D)VEt 1{;H\$HD$0ALd$H$L{L;<${H$IHhL9vHpI<$lA9|I_IfHt$HL9rHT$HHrHLHI9H HBH|$ HHHI9HT$HBHDH|$HD$ HHHGHD$+@HA9uFHL9H{H3kuտ)#DA1Et1D$ >:D$ A9tL9vPM91MIL|$]IAI9Ef.IHIHINHPI9rH\$fA9IHL9H{H33kuο)dCA1Et1D$9D$H|$ Ht$HD$0f.HH9wHL$0Ht$HAL~H)HL9HHBHD$ )BA1E1D$8D$LL|$HEH$MuHEHpHxLL$QjLL$1҅HD$A9HDLDLDH|$ HD$(HfDHH9wHD$(HL$ HH+D$HHDHD$ &T$THPHD$XHD$HD$0HD$H\$hHHt$pH< LHHHH)H)HHLHH9wIHHL$`HD$8H)LL$A1LL$1T$ 7T$ LL$H\$hHHt$pH< LHH)HHLHHH9wIHP)E1Ar1;7fHD$8`H$*1f.ff.AWAVAUATUSH H|$pdH %(H$ 1H$H@HH9 HH7HD$hH$`HD$xHD$pHpH8HH\$hr E1AH\$pHD$H9 HD$Hl$hHD$LcLkL9vhI#fD؅A9uNMl$IM9v@I|$I4$Ml$gu˿)?A1Et1D$5D$A9tLd$ IEIDILHD$L9hM9/LIH|$ LHH9|$u M9MHD$M)ILUEILL9vvIALfHHHREtHpHxHpHxHH9wHCIQIL)HHhHH9HBLH9HBHL$HDHD$L9t~M9HD$hHL$xH9tH:H$ dH3%(Hĸ []A\A]A^A_H$`HHD$xHD$hMIIfHL$ H9L$LEAH9\$HD$pHT$1HDŽ$D$TH$H$HD$hH$H$H$HH@H~(|$THHHHH)HpH|$Tt$THHxD$TH|$8HHH@L$TȉʃHԀHHĀHL$HHD$@HD$8HL$HH|$@HHD$HHHHD$ HH\$XHHH)H)HHHHD$`Ht$(HL$0H9H9H\$Ht$fHD$H0HD$H8;d؅HD$0Ld$E1H\$HD$L{L;|$1A4A9}aHK6LHLOKH;D$II7I<$cuÿ);A1Et1D$P2D$PA9|H@I9vkLI<$H)HHHH?HHH,HuOcfA9KH]I9w IDHD$HhL9&L|$HD$H|$ HI9f.HL9rHT$HHrHLHI9H HBH|$ HHHI9Ht$HT$HBHDHD$ HHHFHD$HL$H9L$(vHL$H9L$0HL$H9L$(HL$H9L$0HD$ Ht$@H|$HHL$XH)Hl$THHl$8HL$8HH|$@HQHHD$H+Ih):A1E1D$-0D$p@)9t 1 0HD$(Ld$AH\$HD$hfHt$HL9rH\$HHsHLHI9H HBH|$ HHHI9HBH\$HDH|$HD$ HHHGHD$s@HpI<$`A9I_ICH؅A9uFHL9H{H3`uӿ)8A1Et1D$(.D$(A9tL9vNM9/MIL|$lIAI9TIHIHINHPI9r,H\$f؅A9IHL9H{H3_u̿)8A1Et1D$.D$H|$ Ht$HD$(HH9wHL$(Ht$HAL~H)HL9HHBHD$ )7A1Eb1D$P-D$PNLL|$HEHD$MuHEHpHxLL$^LL$1҅HD$A9HDLDLDH|$ HD$0HHH9wHD$0HL$ HH+D$HHDHD$ >T$THPHD$XHD$HD$(HD$H\$hHHt$pH< LHHHH)H)HHLHH9wIHHL$`HD$8H)LL$+61LL$1T$(A,T$(LL$H\$hHHt$pH< LHH)HHLHHH9wIHP)E151+xHD$8`HD$%f軾ff.AWAVAUATUSH H$dH %(H$ 1HHHH9K HH*,HD$xH$pH$H$H8HHhH\$(G % = A.HËE % = H.1H9H$HD$(@H9 HD$HD$xHD$HD$(LkLsL9H\$IG@-Hx4 HH8#H1NS Iĉ% =Ht$"H47S Ht$Hǁ AHT$HHt"Ht$DHx4HH01LHD$dH3%(u)H(H[]A\A]fDHH{HpHt$z#ff.S@udHEYHHxHE11ɺH5HHtXH;]tO@ % =t0K[H@HSHH@ 1[ff.AWAVAUATUSHH|$(dH%(H$1H`]H8Ht w wH?]HH-y\H}.HcIHEHYHD$(8CHt$(H{H2H[VHWo oRoZ ob0oj@orPoz`oJpPooX `0ooh@opPox`oHpoH\$(HyL`L=(LHHO1HEH,WH$dH3%( H[]A\A]A^A_L|$(LH5VLL`L'LLH0;HEHVD$7jHViHHD$8HoWooPoX o`0oh@opPox`o@pVoo^ f0oon@ovPo~`oFpo)$=0`HvZHUD$7uHHD$(8CHt$(Ht'HT$(H5^;1Z D$7@1H|$`/E1HHD$PfD$0HD$HD$LAHD$ )D$PD$LDt$LH<$:H<$HB,pD%@AAfAA=@AƒfA DHAAMFHD1A8AEf I AD8AEfH]@@8ljI~AEf H|$HAD8MFAEfI^AD8EAEfA @A @AD8DAE%D=DAf A8MFAEfL$IAD8ADAEfA AA8AE"L$LAF IACC9AE@ H|$LAFHDBG9,I uIIH]WI~DEF$H]D%H=HtA uD$L oHD$ I 8' @'fD$OfI fDHD$H!ʁ t€DHHHD@֋T$0HH+D$H=LD$ AI!ʁ t€DIHLD@ֺIH)L+D$ N I9rAAI)HD$DAAtHt$ BD PID$0Iz|$0+|$7 HD$8@II@iiHRS@H=tHt$ DQHH!ʁ t€DHHHD@HH+D$fDHt$ HxHHHDHLHLH)A H)HfDHP8tH?fDD$4KdLd$HIHHD$L4MIΐI4$LIM9uHL$9CyHL|$HT$D$0Dd$0IIIGIWDKdLd$HIHHD$L4MIfI4$Ld$IM9uHL$ 9CbyH"QL|$HT$ D$0Dd$0IIIGIWDDH880xfDL%L$4D$ H@HLHHDHHtB}thE,$1DJH;DDHHAoIHt%HHXHLHHIM.IIM9uH\$L%D$fL%BI$Ht x HH51I$Ht x XH1H5L=`HD$@HLEHۃ"HI$EAA"Ht x HALD1H5$L=HD$ HLEHۃ"HI$EAA"Ht x HALD1H5HX<I$L8M7Mt^A>LuJA~CuCA~_u<LH=t"I~H5 Ht A|=&MwIMuHD$H HHEHEAA"HEAA"Ht { HL$HL$HEDH5F1I$Ht x HH5#1kLd$HfDLd$He HD$ HD$ 1 HD$@ T$HLD$T$HLD$HLH5C1I$H@H@HHHx(HH@H@HHHx(HH@H@HMHHx(HE8HCH@HZHHx(H\EH@H@HmHHx(HeXH@H@H[HHx(HSFH@H@HHHx(HHCH@HHHx(HH@H@HHHx(He DH;AVAAUATUS@8Hu& H?HHA@821.AH |8H ?HMIHt2HLhLLLH HIL1LHDIIHt%HLpLRLLHdILTH1JL1Ҿ&L [L]A\A]A^H>HH@uL%%%1f.ff.AWE1AVAUATU1SHxH7L-=dH%(HD$h1IfDHB,81lAHHL薺HHt%H6LpLHLH HK,|II0u1E1@HD4(MHcH@?A8P0D HcAPAPAP HÐNLHH=C1T@AWAVIAUATUSHHL?H_g$I9_L->E'IoIcDAD%D=D)A#|EV$A, A(_ADT$EH9/Lt$DuADA<A>A!Dd$Lt$E H9H0H -<*<[AF0IF(f.HH9sGEHAD%D=Dt߀#HH9wHH9t} uH9w@HEf IHH[]A\A]A^A_fL%lALT$Ή $_ $T$HrAE D%=%DT$E D%=qDt9HD$DD$LH5L*@$HLLE1D$HH9 DuEDA<dL%6f.L%II9M>1HH[]A\A]A^A_DH=N $N $HAEljD$fDAG*<1wHHInH)HDT$ $A~4c $IFDT$HhJAHH5'HDH=D1 DLt$EHAF0HIF(AD$I*LL /D$Lʿ*H5bDЃAAF$IE1 H9wHI1M>fDHH9t} uH9L}jHIv(cAF0H/*AN$ȃAF$HEH9vDU*1w8HHs(HYH5HDH=1 DHAF0HkAF0L}]HLUHpH0H4$H w=Iv(L8]AF$HH5]HDH="1; IvMM>LMVMFIFIN AV4Ht$ Iv@In8L\$8LT$0LD$(HL$T$Ht$(Ht$ L\$8AF0LT$0LD$(IF(HL$T$IvHt$MMVMFIN AV4In8Iv@H,$VD d$HAHH5HDH=x1a Lt$HH^H=ͿAF$HD15 IaELt$HLH $DH=jAF$HD1 ELt$HfHDH=AF$HD1 f.AWAVAUIATE1UH-SHHHLFt;A}0AM Mu(ȀHcT?t-LII uHHL[]A\A]A^A_Dx#$%SHcH>@=X Mt LHIIM9M)NIEIVII?LHI,IVIIIHIM IMM}LM]IEME8Iu@IMMU MM0M}L\$8LD$0Ht$(LT$ LL$HL$HD$Ht$LL\$8HHL$LT$ M}LL$LD$0IuHt$(M]IMIMU Mu(MM0ME8Iu@c~,=xu[MPLHIH?MI)4=.t=@u(AE$H3HH='HD1AE$H HH=}HD1tAE$HH5qHDH=1OAE$HH5LHDH=G1*f.AWAVAUATUSH(G H|$ HLwILJLMM9r@HI9 ;yI9LIL $M)H)IDDHHD$LLHI AE4MxHcHL $ILfHH8HcP4LI H@@HuAE4IQL݃HIIH9s@L)HLHEHEH9rI9lH;]uf.HLeH9]t311LL\$HL $L $L\$II9uA$L9Muf.HLeL9MtIcE4ITH9tIcE4IL)IE8Mm@MuLHD$P uHHH9t(yʃ?HHɀHPH9uHNH9sHHHH9t)yփ?H@ʀP@pfDATIUHG u"u5L荘uQHL]A\fDcAD$ tfID$@tHH@tLCI@AD$ @% =t#1Lwt$H=8I$@(DH=ff.@AVAUATUSHL7dH%(HD$1I9#I,IH5w-<AEAHHHL!HcfHI9t.HHH?8H HHuLDHE1L)E1LH $HHtoHv.@H5ָ1ۿ*H $fIMHD$dH3%(u6H[]A\A]A^L)HH $@H=@1Qff.AWEAVIAUIATIUSH8HH|$,DD$dH%(HD$(1?E<EAAAAMJL9sD\$H-+E1ENHD$ HH=vAAAIIL9DLH)ALTHHtHA!IcHI9v.DHHLFD?A8H HtgHuɋL$HT$ E1E1HD\$ H4$HT$ H4$D\$ HH~H /HH9ILAH)HHT$ fAFIIfDEA,<HD$L(M9L9L5/D<$MAfDADHLHI9v" HL HHuLHT$ E1E1L)DLAAIM9vL9wD<$L9IGAu:HD$HHt$(dH34%(H8[]A\A]A^A_f1@DD$HH EH5vAAHDA1|f.HD$ HL)HBMSAWAVIAUATUSH(HE-H$HT$PLD$xdH%(H$1H#H|$HD$HD$(HHD$0IH+HHD$8G$ÃD$c\$l1ۈD$ HHH)HG8H|$D$k'HD$T$lX \$t(H=,LH+H|$8HHWH9u /'HD$@0D$dy$HD$Lh(L$k\$ MADDd$H5H$AH|$ Ic t)LHH)?HHI9LOHDl$A%AAS9H=JcH>H$MYMH$M&Lt$pLEMDl$A%@f*XD$D$IItoE#H$A)f$HH$Anu ff$H H@IHD$(IuDLt$pI܉fMMYL$MNLt$pLEAM(ffH*XD$D$IItE!%H$A%$HH$|$Nu ȉ$H%H@HD$(L$H.5LL)L9IO|$ZH5|$A)Mdz3H|$G$@k3M9v.9H( u}IT$L988IA$tуtM96ʄyLHL)H 6H5) H96677LM98A$H5d)II901LLL)vHD$0(H$MYMH$M\Lt$pLEMDl$A%ff*XD$D$IIE#H$A%f$HH$$Anu ff$HH@xHHD$(MMYL$MLt$pLEAM"f*XD$D$IIE#"H$A#$HH$|$N$u ȉ$HXH@HHD$(H$LH)H|$dtL9IOHS'L$H(\$0Ll$(Hl$@\$H<LLHHHIHt3H$I9wLl$(\$0MHl$@SH|$HD$PHG8H$tD$4LH)L95LMH$DHDl$H=fDHTH@RDH=AMHZH|$(0HD$0HT$HL)HH|$0MgIGL|$LAG$WH5%LH+HH+D$8H s4A0Z4L9t$ A4I<$M|$G % =2IM4HD$E11@ D$H$,$|$d?.I1M-L)5IH[#HL)H2LMgIGwMMYL$M_LLt$pMEIM(ffH*XD$D$IItQhH$As $HH$HvH@IHL$(IuLt$pMML+$M|$dtM9MOE1Hu3MLD$@IE HLD$@H DL`HD$0|$h9'H$1E1H|$@ML|$XAHLMKH9T$H|$@HFHuH=h IAT$IM9GAuH$EuHPH$H$MYMHD$pMLt$XMEMAf*XD$D$IIt\EH$Af$HH$HH$H@IHD$(IuDLt$XMMMYL$MLLt$pMEIM*f*XD$D$IIH$A$HH$HHc$H@HD$(뢸MLDH$%H+D$PHIH I)ф$H$LH)L9H=1MiMM9 L$M9 ,L <AEHAAHHzEL!Hcf.HI9t0 MHHA ?FH MIuLE1E1DH$L)LH$H(H$~|$C„EH H@f*XD$D$IIMMHD$@E1AMLL$XHl$pLLd$0H$L9HPH$IHIL HՄHD$@HD$@HvH=1\$0L$If.H$L9|$0HPH$(AG AA% =H$LH$H~80000tk H=^LHHAwAwC % =H$HI|H$Ht>uf.H>tH9s4fEH0ALMI#C )ʍJ0NH9u@M\$0HD$@L$YH$H"I9fLl$0\$@H! HH DHHHD$0H|$0HH+OHHHHL)HHD$0MgIGL|$LAG$\$ M1HȃfHH H*XGHȃfHH H*XHȃfHH H*XSIHDL|$XHsH|$0A$LHH+OHH.ML+l$PL)HH$>H$Ht$pEH$$kDD$Ht$pLH$DD$Ht$pLH$z\DD$Ht$pLH$V5DD$Ht$pH$L2$DD$LLH$ hDD$Ht$pLH$ DD$Ht$pLH$3DD$Ht$pH$LH$DD$Ht$pLH$qCDD$Ht$pLH$MtDD$Ht$XHH$)DD$HT$pH$Ht$X!DD$Ht$pH$LH$2DD$Ht$pLH$H$Ht$pEH$DD$Ht$pLH$h$DD$Ht$pLH$='DD$Ht$XH$HH$%MH\$xHt H$HHUHL LH+HH+D$8H$dH3%(H([]A\A]A^A_HH$HHL9u$HH$HHL9u0tLIoL胫Hl$XH|$XIGILd$0Hl$pMH$HLHD$0tHD$0H HD$@$@ HJHL)H H|$0MgH$IGMLL$LH$HIHPH$D(HEHLIuLL$O$H~THHBH5IIJ|HT$(f.H$DHHN LH9uHT$(IJ MHH$L96 HPH$|$bHQHCHL$(H=y10MdLH=x1萵H=x141@AWHAVH)AUHATIUSHHL$PH|$(HHT$ dH%(H$1HD$S,AD$$D$AL$4D$_u2HD$(HH@ID$8f.E|$ H\$(AD$0H+HsD$@H]Ht$L4#IL$(HDHHH4@tj@@udH?1HH9_DH|$tH?H9ADHHH)H9(DHH;].DfAo4$fAo|$H$HL$0fAol$ fAod$0HID$@)$)$H$)$)$AD$$HL$0D$^"D$HL$0H={HL$0I$M$H$t61H|$~!HD$ HL$0H8趍$HL$0H1ZHHL$0H$DŽ$H'HL$0ID%=D$0DD$8%=SuAHHcH>M<AE  0Ht$p"LHL$0|HL$0IAE LD$x 0H!H@80|$=HD$(@ LALl$p|$@IEHDMIHAZuHyILL$pHBM9BH5LIQLI9v8IHT$p<>HHHHL93|$9@HL)H\$pAZu HCHD$p|$@LHHEH+D$H)H9nAHL$(HHH;BH@EHL$pH|$xLALtAHD$pIH)/Hl$Il$8|$tkAubH>t-L9s(H5KfI9vEHHuI92HG0I9v3LLH+t$H)\LHH)H)H,Dfo$|$^fo$H$fo$A)4$fo$ID$@A)|$A)l$ A)d$0]H$dH3%(W@HD$ H[]A\A]A^A_Ã|$@Hl$t LH;Mx9LD÷H@ +HHH M9AU % =."Ht$pLHL$0AU HL$0HHD$pE1ҁ LT$8t7H!HR8׃)?t$_@E׉T$8DA|$@HDHHQHHIHHT$`HILH+T$|$tH?H9>L?HL)H9>Ht$(LH6H;V8H9HOAB4LxA1Hy>Ld$HMME$I9.MAt+@IEL9t2fAHIHteLM#D)HNj@ % =uHH@ f$@tL$8LH$HEIHu@H\$(ALH+D$Ld$@HHBFHYHLd$0l$Ld$.1iȉ$@uLHAIHtbLM$DVHNj@ % =uHH@ ȉ$@tL1ɾHH$tIHuLd$H\$(ALH+D$Ld$0HHBqHYHLd$@l$Dd$0;1虤$@u^IvAd0AIHHLM DtHNj@ % =uHH@ $@tL$8LH$蕲IM5AE  ?*"Ht$pLHL$0HT$pHL$0IAE E1% MD$8t5HH@8:\$_AEDED$8|$@HDHAHH?HLH+D$H|$HT$`HHtH?H9o:H4HH)H9U:H\$(HHH;BI3Eu HD$pH9HOAH1Ly1H9LLd$HEMI*M9~)IAtB@HCL9tRHEuA$IЃHAH})I Au|$*HCA.I1L9uLd$HM.LH?LH|$b6A.I~|$@:.HT$`H)L41脄H\$(ALH+D$HHBHYH-Ld$0l$Ld$3fHH@ f$@uGfAIHHLMBD袰H@ u1f$@tLH$1ɾίIHYHLd$@l$Dd$0:HH@ f$@uTA*fAIHH9LM=DH@ u1=f$@tL$8LH$&IHYHLd$0l$Ld$5HH@ ff$@\#fAIHHfLMDZH@ u1蚰HYHnLd$@l$Dd$0Bf.HH@ $@uUIvA*AIHHLMDԮH@ u1$@tL$8LH$IHYHLd$0l$Ld$+1Q$@uNAIHHHLMDMH8G % =y"Ht$HT$M>IHvH1L蓀HHwI zWMo Ht$ H֗LLHMo HMtIG Mzʼn`HD$(dH3%(H8L[]A\A]A^A_f.$EE1Ex}ILmAA EDE1w~DH8G % =:"Ht$HT$IHvH1LoH}#,LHE1莫IHMHt$ H蜖H|$HI蜅H4$LLH:IHnHLL` oyʼnƧf.HHt$ 3DHI蕒HHMH|$HH4$LLH豌IHEHHHh rfDHHPHT$LgHHPHT$LgT$pLDHA D苝LKMH 9s1E1HQH5tU7*yDHYH(HAH(HH(諭ILS苭I:H$L $IS诞ff.@AVAUATUHHHIwDžMtA}u1rAƅx{H5UL-UƐIHtvL6H51LHIHt5HHHh &wŃt"xHL]A\A]A^fE1HL]A\A]A^fDH5ED9IHu,H5EDL-EIHQDzL-E;fAUATUSHdH%(HD$1HH?HHԚ|HdH}H詚HIHtJL+HH1H5H詉HHtaHLL` u;HEL(fE1HD$dH3%(u2HL[]A\A]HHHdDL+ffDATHHt2HfHHtH9PuL` LA\1IHtH)uDžx~LA\HHtMUHHHHHt%H9PuH9p uHtDžy H]Bf]fDHH=aT1f.SHdH%(HD$1tB@t$Ht$lHDHL$dH3 %(uH[f.@HdH%(HD$1@t$Ht$脠HL$dH3 %(uH躚f.ATIHUHH览HLH9H]A\ÐU1H1~H]6fDATIHUHHdH%(HD$81Ht$ oD$ HBHD$0C|Hŋ@ % =tQHt$"HHT$HL蟟uv?uHL$8dH3 %(u=HH]A\fHEHuHPHT$DHHD$ېHD$菙ff.@HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$XHL$dH3 %(uH˘ff.HtSHHt ɖC[fff.@AWAVE1AUATUSHHHHIBIIHfDL谇HH~\HH9HtYLH)LHIIHI4.HLӠHu&L1THHHtLotMM)HL[]A\A]A^A_ÀBŕL 跅DLH)ULHIIHqI41LCff.Ht'HHtH@HtH@XHtspH7 HHDHdH%(HD$1Ht$虂Hu#D$HL$dH3 %(uHf褖@HtHHtHx0to1DH(HT$Ht$H|$HT$Ht$H|$H(oAVAUIATIUHH蓅HMxI9ILHMZE1HL]A\A]A^HLIHxI9~LHtLH)腁HyMuIfDHLHL]A\A]A^WAVAUATUSHGHHHIE1B% =uUDj HkulHuGHHDyIHxuHtIH+[L]A\A]A^fLtI tILHff.@AVAUATUSHGHueHIHHDh 蛒uLHu'HHDyIHx[L]A\A]A^DLXtI tILH1[L]A\A]A^DAWAVAUATUSHHL7AFMtzIn IV0H9RI@IIV0I9L)LLRHu LStHHI)AH蔁In Mn8f.In E1In(In0H`Mt7I<$t0Lh|HAIcEHEH[]A\A]A^A_DHIc[]A\A]A^A_fDI)E1In if[IV8HIF0HH)HIv8I;F(TMt"I>t1LvADžt!IV8I+n0HIV81cE1E1L#LsIn IF8@HHPPHt  H@PuAVAUATUHSHY{HE@HC HHC(HC0H9H;/H3vu?HS@Hs0H}IMLc Lc(HEH1[]A\A]A^DHIH~hHMEL9k@LNc@H{ HILZLK4&HL)(fD[~HC H8H趚HC 'DH iHLcMt5tDMsHEHHH6@;IH?Mu@H谀tHEHHDHIff.HtSHHt yS[fff.@HHHP8HtY?rtTH5t}HHxHE11ɺ~HNj@ t;% =t?"1HϢt0H51HfHGf.1ff.fAWIAVAUATUHSLH(T$Lt$hL$DD$ dH%(HD$1M|$`HHI9T$`LHL艈IHM}Ix,1LLÉHt LX0M IIuILܒHD$dH3%(H(L[]A\A]A^A_fDMlHH`HD$AlHT$IHH`L|$hfDH@@Htb11LHT$IHtLHD$LLHpAt$At$HT$HHD$HHH@HuHVHrLHP讙@|$`~ @AVL$hLLHQHS\$$SDL$(DD$$AIH HMEIOL9LHH҉LE1Of.Lx,H vǃt+运IHtMt!A?tLHLnf=E15H)zIH!8͌HpH=E1;ff.HE1E1j11j3Hff.SHH;t[@ @iH5C1HHhH5 C7hH5B[%hDAWAVIAUIATUHSHlIH<H8"At I@ ugHt}u4LyHHt8uEtI$HL[]A\A]A^A_EHLrtLE1蕏H@@ u<  N Z1ҾH=g|lIAMChLE1IH}LHPٖ@1L膋HILq#K|fDu`JwXuQ H1ҾH=kILD 1ҾH=IAkI#@H=kIH H5@1Ac11ҾH=@=kIAf.SH HHt H [fD{{H[H fSHܷHHt H@[fDK{H[H@fUHHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$$HD$HD$ D$0HD$bdHHH4HL$dH3 %(u H]覈fDSHܶHHt H`[fDKzH[H`fAUXXATUSH01HhHL$dH3 %(u3H]fDHHPHFH$HtNff.UHHdH%(HD$1/eHHH$;z1H<$HL$dH3 %(uH]贃@PXHIHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$HLHD$HD$ HD$H;$H8D$0rdfATIUHSHH@8u8HHHtQ@8utF1肁t6fDH8u H8~xHLH[]A\MDHquYHLH$D$D$H[]A\DyD@cYHf.ff/w2B<f/w1f/H,f. <f/w, ;f/w. ;f/w1f/0H,f. ;f/w, f/w>(f/w1f/0Hf/r*\H,H? P Hf/wH,fff/wB(f/w1f/H  f/r*\H,H? Hf/wH,fAWHAVAUATUSHhH.HT$$\$H<$Ht$HL$ E1H1сHL$<0A2SM[HD$/HK9<t<H8Ho9HE1$H5UD$eYHD$$H|$ $D$YMfI*XHD$ IHhL[]A\A]A^A_f.L$H*H9HcH>L_HfDL=ELE1HADDHI HЃI HAD_DHI HЃI HAD#DHI HЃI HADDHI HЃI HADDI HHSI  HA DDHZI@ HȃI BADs5DI HЃI HHHDL)H)ADfAH*HEDL$/Ht$D$.fDDt$/t$0LALEI`DHHfIDA*AAA IAHPYHL HHEHHAADr@_HH=E4CIADL9HHDKL=ELE17f.L=ELE1f.L=ELE1f.L=ELE1#f.L=ELE1f.IAELE1L=CfDYHfH*ր|$.XD$LT$XL$TL\$HDL$PL$@T$8uT$8L$@DL$PL\$HD$.L$TLT$XD$/H<t<H+HHEH51L$TLT$XL\$HDL$PL$@T$8foL$@T$8LDL$PL\$HL$TLT$Xf(D$.f(L|$0IA_L$0D$u*D$@T$8膉T$8D$@nD$@t HD$@HD$H+$|$.HI9OD$ DD$/H3<t<H2H(3HE1H5)SHD$ @f(L@HfHH H*Xf.I@BDAL=EHAD ‰I[ L$AfIHDHL)H)Xf.H$L=mEѽID$/L$0<tD<D$8HfH6)H5p1T$0HE1#mT$0D$8@AH0H .ѿ1D$8H51T$0lD$8T$0ADDLAfE1H*DL$/HEIILAfHL H*XHD$H+$HDHAAjb5UHHA AjxUHH AAjTHff.fSHAAH0Ht$HL$ Ht$dH%(HD$(11H:HT$HD$$jbTHT$HZYD$uHx.fH* D$ HD$(dH3%(u%H0[@HƒfHH H*XvSHAAH0Ht$HL$ Ht$dH%(HD$(11H:HT$HD$$jSHT$HZYD$uHx3fH*D$ HD$(dH3%(u%H0[@HƒfHH H*XPuSHA AH0Ht$HL$ Ht$dH%(HD$(11H:HT$HD$$jx SHT$HZYD$uHx.fH* D$ HD$(dH3%(u%H0[@HƒfHH H*XtAWAVAUATUHSHHdH%(HD$1H!@8uBHHH@8u 1s@HE18HNH8G % =HۆL4$IM~LzHMB0LL謃IMtAH;H$HH9sILHE1H9s 8.HD$dH3%(HD[]A\A]A^A_L`xLAeEuH$AH묐H)8 kJL-HLgLpL4$@L1&NI%fDqZ@HAH!rAWIAVAUIATL$7HUHSH(H}dH%(HD$1H|$H%D=DE1<)Ht$HH0H HFM0I)HD$HcIwH=%,Jc4H>F0 jHH H HHFHD$00 HHH HcHD$H N00 %HH HcHD$H N00 HH HcHD$H N00 HH HcHD$H N00 HH HcHD$H N00 HH HcHD$H N00 wzHH HcHD$H NHII9wBHtHMA+H9vL9H HcHHD$H NL9t 00 vAHtHMH|$Lgt6HD$AL9r@HHD$L9H0H vHD$H;D$1L9(0߀EH@΋ DDWI mHI9v3@֍F @HAH=)HF*NHnE1HD$dH3%(H(D[]A\A]A^A_HHHL$L9sHqՁuHHHL$L9sHH0H wHD$HH0HH0H w HL$HL9rAAf.I9R0A@:HG1HD$HL9H DD@Ht$%@-HAHt$I9fH|$Ld Ht$L9H0H AHfHvH0H Ht$HI9uHHEHf. HH0H w HD$HL9rA!fHHD$I9fH0 but trI9MfA}uerAHHEH|$LvZ@t udA A nlHHD$`HHI9#7+xHHt$QA l@AWAVAUATUHSHH(dH%(HD$1H+1-~11у߀I݀QuHPH9HHЃE1NHPH9P߀AxHPH9kP߀N[AHPHUA$H9Hσ@QuHPHUH9H(dLzAL9LrL9wD<)tIL9AuL9A>)LL)z0 HT$LnM9rfDIM9AH0H vlM9s1H ݤ IM9tA%D=DtM96IVH9yH fDHH9`%D=DtHUH9EA@EHPH9PE1߀NHPH9P߀FD@$HPAH9wDHH9:0t1HHH9tOPH11mHPH9t/H.tnE1#u!HBH9tR<E1HD$dH3%(H(D[]A\A]A^A_HHH9tP1HHPH9tHHH]EfAHPHUAH9vH߀ITHPAH9dP߀NTHPH9GP߀I7HPH9*P߀THPH9 P߀YHPHUD@ufDHH9(:0t}HBI9B;05Cf1BDE11ɺt1qff.gf"WfRZf2qf1 q1W10O16DrSfRCfBCfXfXfG tHGÐ1p@RSfUH1?E % =tH1]=pDHE]fU1HeE % =tH1]oDHE]f1ҾeL"kfNflf1=DE11ofHjjt$(9H(fDE11fAUATUHSHHHu/BJHHu"HH]H[]A\A]DHHL,3HHHH H ʃHHH)H9 HH@HHSI9HH#tHHcHHBHfI9vGL%$@H1fI9v'LHA HtoHuـ;tDHtH]L9H[]A\A]f.H;;yyf1LH3FHtHL9bH)I9w1HI9;y)fH[]A\A]L^ff.ff.cf1ucDHAE1Q1R1fHff.@HE11AR1jfHHHAQDDE11j1fHH@E1QA11jcfHff.HIDHcAPHA$AAS1(fHDHILcE1y ALcPA$L1QLeHHIHcE1y AHcj1ALjeHHÐHILcE1y ALcڃjLLj1DH0ceHff.AHIHcE1y AHcjA@L1jeHfDATSHHL MI$HHHHqI$H ID$HCXH}HHSXI$HI$H@I$H@I$H@I$H@ AD$ ID$% @AD$ HL[A\BI[( Kjff.@ATSHHL MI$HHHHqI$H ID$HC`HHHS`I$HI$H@I$H@I$H@AT$ %_AD$ u. AD$ I$H@LID$H[A\@L0iAD$ f JR[AIA8 TfTfO! Tff. TfH-H8xT1XD Xf XfXfATSHH6L MI$HHĉHHI$HID$HSxHHzHH HH)HCx1HHǂHI$ H=>AL$ HHH8F-HCH@ Ht@I$HI$H@@<LID$H[A\fD?I HH'ff.3fXf;f?f1fIE11odff.@GfZfH 5H1 fDH9v)DHHFAHt%Hu׀?t 11>fH)ff.DH qALHLHtHHt/HD!HI9v@HH?H I9uÐ7HB8f@4ff.CfBLf11_DLɈAAE MtpLUGSHH7D!HHH9v-)MHIA,+A?FL Mt@Iu[E1E1D]"ZfLHHtH)HH f.Ht H)HH []fDAWAVAUATIUHSHD7DEHMcF<(L=I9IFHƿ,Ht$L|5sKHHt$AB*EHtGHurHMtVH)HI $MtFHuAI99I$H1[]A\A]A^A_HHMt H)HI $H[]A\A]A^A_fHD!HfHI9v2D HHMF A?A9L H?HuE1E11LHX1DHD!HHI9v2D HHMF A?A9L HHuHLHE1[E1]A\A]A^A_X}McLHAVAUATUHSL&HI9tYIi=LpMtpIEHt'L9rJLHL4_H[]A\A]A^LUHMuL#@[L]A\A]A^@LL=OHMuL#럐LUHI1ff.fATHUHSH~L#L`Ou []A\LZHIMts+1VH *yHHA HHt9H8HPHHT$RQHT$HHbZ HH"IDHAHM9tH[]A\A]A^A_ff.fff.PX1AHHH=wrUfAWAVAUATAUSHHG1D(H DMtQIFILlMt7L60LHILI 0E1M$HLLCM>MuHt$uO|$ tUH$`HCHH|BLsIL/E1M$HLL5CH;u|$ uHt$yHt$ H81[]A\A]A^A__D$,tH+HD$AW1AVAUATUSHdH%(H$1HHD$(HD$ HHD$0HHD$@HHD$`HHD$pHH$HH$HH$HH$HH$HHD$8HD$HHD$PHD$XHD$hHD$x(HDŽ$0HDŽ$8HDŽ$@HDŽ$HHDŽ$ HDŽ$HDŽ$H$HH$HH$H H$HH$ HH$0HH$@HH$PHH$`HH$pHH$HH$HH$HPHDŽ$PHDŽ$QHDŽ$SHDŽ$THDŽ$(UHDŽ$8VHDŽ$HWHDŽ$XXHDŽ$hYHDŽ$xZHDŽ$[HDŽ$\HDŽ$]H$HDŽ$RHDŽ$HDŽ$HD$HD$HuL8XJA H lH7sHwHHt2H,L`LDHLHM HHEAA HD$ HD$HD$`HD$HmL MI$HHrHL-nI$H ID$IE`HHIU`I$HI$H@I$H@I$H@AT$ %_AD$  LAD$ I$H@ID$#DHLH$H$IHD$HHD$HD$HE1AH;tAHuA3L,$ImHt`Hn*E1E10HHL=HHtH8G % =]EHImIHuH$dH3%(LHL[]A\A]A^A_f.LHL(M4L)LE1E1H¹0L0=IHtH11ҾHxcu IEH HHHL(MuAHHH@ H H;HLMAD$ fDHE1LL HD$) ,/_%I :ff.HH5WFHt;H{lH5\HkH8?!HlHoHúH5MW1ATUHSH HqdH%(HD$1L#@FHL:LFH'L`L@HLHIHH}CH=7HE1HHL$HnLL$HD$D$H-JiHt$H}$ |$u HEH H|$.)uGH-\kE)E1}HD$EMHj HD$dH3%(H []A\DLDHH}HjH5hHjHmHiH87HHhH51H8!b@TfDHE1E1HL$KH|$8E7DSHLoH3CHt=H+mHgH0HhH8*-HiHi[H3 SHrHHt*Hp;11:H;wvwH[k.fAWAVAUATUSHHsI1HE1fD4D9t?HH uL];1LA H5~+41DBL=eHkDHA) LIHt9Hz$HPHHT$9=HT$LHIF HI 5LL6u(t tHmLH06ZLDBHkLDHA= IHMHHt1LHL[]A\A]A^A_fHj81AA H cHajHHHt2HA#L`LHz^HHD$HHD$Lt$HHl$L;t$ HdT$D8tI1HT$DHt$HHZ&|$DHD$H;l$H9D$DHl$jHD$HHD$ H]HT$ HHdHD$HL|L4IHH`1AH\H0HD$+IAEMgI~HL H $HI9!H=w)He:t}tyLxLL1,IHuHt$1L8H;l$tH8H$H1H$dH3 %(SHĨ[]A\A]A^A_LHN|8w@Ht$HH#D$DHD$H;l$HHt$HHH{,HD$ HD$Ht$117JHl$IfDAUH$HufDHHA|tu_HHH\$ H[H0HH1HH9HH5[HHHH9HFHD$HfHt$1H$LH0HA+H;l$~HH$ 7H$iHZH8#fH?D$rLf|$pHD$0HcHEa1Ll$`Lt$n88A11ft$nH2`8|HB`f1LLDd$Dd$nIHHtHuHx* HbHLD 5II[Ht$1H5HbLt$HD$pIFHHD$8[0L|$ H\$HIL9|$0HLd$pE1]Lt$LD$(ILLd$8IDML;|$LJ|=LLD$ L)L9HPLFLI8CD=HLD$ IH؋H!ʁ t€DHxHDljHH)L9|$vRLNL=L)HzH9HFHt1 A HH9rHHLD$ B8gLD$ IOtLKIIH9D$0v MDLLt$HD$8Ht:M9s5HJ|=HL)L9HBLFLI7CD=HIL|$H1PHHIIHHHHHH,;H H ЃHHH)H9HHt1ɐHHH?HѨuIHpHVHHL!IH8HH9sHUHp H)LEHI9HHBHH9vf.8HHH9uH|&"HH9r\@HHH9t*yփ?HH@ʀQ@qH9uH[H)]I$A\D1r1[I$]A\fAWHAVAUATUSHHIIIH9EAH!Ilj11'HI9~C4'A/IGHcHHwH9vC;B (HcHHw I0$f.H=1r%fL)IHH[]A\A]A^A_HEHzH5@HEH=/10%AE1ff.E1Aff.AWAVAUATUH,SH(Ht$H $dH%(HD$1H9IEEIHOEEAALHHLD!HHH9v1DHHLF?A0H HHuHHT$E1E1L)L LT$K44K HHL ~ PH<jjDuI7LI9fH=<L@HH9FxE $ADMLK4IIT$D!HcH9f. HH?H H9uH=tjH=tbH=A4AEA$AUACTfCTDAAufDIAEſſUA|$H5f;1IIfAEAEfL)HHt$A|$H5e;1\@@ILL)H$HD@E1ۃ@YI$I}LHIUKTKTI)L)EADHQ@LL 8hıI1fAU fA<$İt7D@E1ۃ@A$AUCTCTIiAEi@AVAUIATIUH8dH%(HD$(1t.H=9H8Ht48t$H58u̓H@tSLt$H11L Ht$(LLDLHT$(dH3%(H8]A\A]A^u;HHL PH8jjLLL1ݳH HHL FPH6\PHPH>-@L$ H<$L$ H<$fDLL 3ffDAWL<7AVAUATUSH(L9L8HIA@HI9D+G$*LLM9$AvMI)IuM9|@@@H-H CH<8HHuE1E11LHYLO7E1A fHQ.H H8Ht"G f%f=H3%H HH5w,1~E1H(D[]A\A]A^A_A@vCH-H"CHH?4DD$L\$HL$oHL$L\$DD$Lf6,L\$AL\$AHe1EHbHti0HHI9v-DHHLF?A8H Ht!HuE1E11LHH1H5`4iL5E1A  fCDD$J<3HHHHH92@@:0sH.E1B(HHHI9v!>H<8HHuE1E1 H)&AWI1AVAUMATMIUHASH1LH(dH%(HD$1e I9@MtHEL9`5,{H5-IAAM)H<HE1H>M!HcАIL9v+AHHH?8H Ht!HuE1E11LLHHvXH5H1'AH1IL9H\$dH3%(HEbH([]A\A]A^A_DMH 80Hc‰DHu AxHHD$Ht$HHY]@HtD>L!HcHH9v/IHH?FH MIuE1E11H\tBAHBH^T$Ht$Hf.H5HfH5#Hgff.fHIHvILHPsAWAVAUATUHSH$Ht$ LD$H$LL$(L$;@|$:dH<%(H$1D$3HD$XHD$`$tH *D$39/|$3$Et$<1@|$3H|$ HtHHuSH|$(HH?H|$HH9H|$H9|$HL$HD$HHD$@ifHD$H|H|$H|$(HtH?H|$HHD$HD$HD$HD$@HD$HD$HH|$H9|$H9l$$11E1I߃|$4Hu#t$4EHe.IHD$XLt$`Mu/L|$A$HD$`AH\$XHul9AUH.A7D$HD8$0Au @8LLLL)M)MMH\$XLt$`HMu|$:tHD$H-HD$H;l$H|$H9|$HD$X@H 9)9$D$3fDHD$HHD$HD$@H`1H$dH3<%(HĘ[]A\A]A^A_DxD$u:L$H;L%G E4$% =Ht$"Ll$HIE4$I9L5$HA@@L=Q@HI9HA%@=@t@LHuI9HoH5}QH=QA$ [HIH51QH=%BHHH_LhLl$HSI9CHHA+H(dH%(HD$1HD$0HD$HD$dH3%(uH(D@ff.1fHHH HH9B(t"HH5PH11HÐH!u1ff.ff.HuHHHH H#HHHTH&Hf.Ht7HHt/PHtAt΀P1P1H1fH@HtHHt BHtHHt B HtHHtHHGhHHc@ @SHHC Ht[DH{@Ht:HC Ht HC0HC([HC@ HCHHC@HC ff.@H1x f.HHHx HHDHHHx HHDHHx @HBu1HHz HHff.HHHx HHDHHx PHHx PSHHx @u7Ht H`1[H[ff.SHGHH=-HC@HiuKH;Gt2f.HHH;HtGu[1[H1ff.fAWAVAUATUSHHGHujHIIHE1Lh fDHtlLHLIMt1y; 8Hu.HtLtI Lu4HL[]A\A]A^A_fLtAAIHGPATIUSHHh @t_HrÃu^Ht&:8HuHtLt[H]A\DH`uHÃtHc9[]A\HHff.AVAUATUSHGHu]HII fDHELLHH IHy-m8Hu HtHPtI[L]A\A]A^f1fATUSHH+IH} HtHEHH9tHE HE(HE0H`L[]A\fHHt#HHtHx Ht蝻HHfD Hff.fDtE>A+AEHtt@at F+DHtr<tr+ffwfDff.HSHHtAHHH9t#H H8u@H@H@[@HHt(HHþ @9HHtHH@ HH  HHff.fHUHSHHHXHHu[LGMt?H~0HHI|HtwvGwLEHH;]|LHH[]DH[]fLEff.fAUIATUHSHHHGHWHH9|3HLbHtMI9whLH4HCHLcHCHPHHHSL/HoHtEH[]A\A]I9wLHwHCHfDH5!H=:1ATE1USHtFH(H}I~411f.HMHLHHQH1HcH;U|L[]A\fff.USHH/HtAEM.E1L1H11A$-D$ E1 H=1DATI UH=S?LHTHH"H8HtRHHH HHGHGHHHHGc O H_[]A\FfD HfDAWAVAUATUSHH H-dH%(HD$1L%A HI$HHH HUHcIDhHH)HAFHH<‹G % =,H"?Iǃug1H4$LyHHH@HMIcHHEHI$HD$dH3%(DH[]A\A]A^A_fDAFHUHL4AF HLH+HHHAF Muwt#IF@)HH@1Ldf.HHHLH@H$@IHH@HHIF80@IHx ~LHL;5!_H=1ff.SHHHH;HtH1[9fHt$Ht$1HHH[ff.@HAWIAVAUATUHSHAtNH=ЋցDDt <:u>fDAWIHЋցDDt<:t݄u1H[]A\A]A^A_Á@@YLIPHH֋@@t@(tIE1E1M9wrMF1IL2Lj@)t,7@@(u)L2Lj@)uԃuL)I@\uՀzHrtrIL)LLD$HHIHLD$MtbLL/IHtOLHHiAt$At$!L1L)LH5BHLHHP1<'MH51T"A!JL)E11LڿH5贬f.HH5HPuDHHwHFff.@HHxH9wHtHHwHRH=4ATUSHyHHtHx[]A\fHa8H H=3HHHϿHHHhvL%gHLH= H=iH=-H=y H=EH=H=%HH;LHP HH;HHHxH`H[]A\軮H-HHYH= MH=AH=r5H= )H=H=>H=jHH;HHPOH;HFHff.HH5 H H= H5 HHH=S贰HDžyXHHc[f.AVIAUATUHHHHH~IIHu1;IHMIHH|$LEH4$HLHIHHh D`$vIEH ;aHD$dH3%( H(L[]A\A]A^A_@y1;IHMRIMHuSDDt<:g|$IoLuHD$IEƀ-H|$A1p}|AHH5w 1'D\$cD\$өD\$HD$IEƀ-1EtADDt<:sD\$(Hn脩|$D\$(HD$IELƀ--H=9t1f.IoE1IbD\$"D\$HD$(H8G % =2D\$ۛD\$H111ED\$E1E1Lt$(HQ1wLHHD$ ZYD\$!øD\$ȠD\$1LD$HD$觠LL$LD$H XvHT1H5XI7B|1E1HD$H|$HLD$@HT$軮H|$HHT$LD$@?YfDIEL$ƀ>Vp1Ht$xHD\$蓧D\$\HT$xHwAD$ۃɃHD1Ht$xHD\$@D\$ut$8fDLLD\$(谆DD$D\$(HD$IEELKƀ|*1|$@Ƅ$tH5t1LL$XLD$PHT$H ELL$XLLD$PHT$H}D\$D\$ 1Ax5DL$E'H=?'H5[t1LD$0D\$莋LD$0D\$׉L$D\$_t$(L$E1E1LHQ1AΩL?HHD$ A[ZD\$;EDD\$[}D\$L1'HHP H|$8LD$0D\$XH|$8LD$0D\$%IEƀ<11$1菟-H=#p11IEH=o1ܪff.HADEL\$HD$DL$ EtEu(HcE1HGHcILH~IcH=o1mff.fAVAUATUSHHHHHAI|M-L@(L9AMA =H{lAAA!HHCH@(Et;H= MY{H5EoE1HIEHP 1HD[]A\A]A^E1t HD[]A\A]A^fDHCAH@(HD[]A\A]A^f.諅H{蒐/DL@HHx(lAAA!@HCH@(T$ _T$ H‰E֍q@~ ʉрɀEхHAAĉA!~@yH5$nE1H1誛HD[]A\A]A^f.諄HE1Hx(茏H1E1 ff.AWAVAUATI1U1SHH8H H{ 1ҾHD$ ؕH{ 1ҾIŕH{ 1ҾI貕H{ 1ҾHD$蝕H{ 1ҾHD$舕HHHx |HL$AIH9H@HD$G % =eH L@11AHD$H8G % =(莤HD$HH;D$EHD$ HtlHHtdHHHt$E1DDyII&:_1HD$ Ht$DDLD$HHHąD@IHL$DDHp衅H8D[]A\A]A^A_HHp I|$Ht$(D$I|$舃DD$Ht$(DfHH@ HD$I1DHpǤt&_@H8%H=kHIHp1=DӗIƋ&_IHx@hE1LD$A&_IHx@u1HDLD$LD$HA8{H=jHHD$ HHPIHp1臤IHx4Hs H|$Z6IHt$Hx!Hs H|$LD$!LD$HD$ H|$HHp^LD$Hs H|$LD$LD$HD$ H|$HHp薩LD$l1HDעxoA>[HL$H=iIIHHP1kA&t _Hs H|$LD$GLD$IHx}LD$qA&t_uIHx}sfDAVAUATIUSH~ HH1ҾH8G % =/uIMt$MHU8H1LHH} 1Ҿ萐LHHhщI$H@(ID$Mt?Lw1Hcy躔&t_uH|fDL[1]A\A]A^DH} 1ҾH8G % =tF|HHH99Mu[1]A\A]A^fHLh @HHX ATUSHG  HGHHhHHwHU HHHx HHwUHA`wHEt$H@ HEH@8HEHP@HPHHEƀ D[]A\DHH8H E1t D[]A\E1tTf11HAlff.AWAAVAUATUSHHL-.dH%(H$1HGImHHH $Ht"H8yHHt HHH83 H$HtHHH8HGH@HtHxt Ht1mHHTHCHx(HuK@LC1AHߺH5[֍HCHx(G$HH@HH$HCHx(y HH L5A>*HCH8HH蝈HCH8G @% =Ht$H٥HL%I}I4$EHT$HE1E11H" HCH@H@H$dH3 %(H[]A\A]A^A_DHHwH@HD$HuHHHH$IUHKH 9HH HH8H HHx)HH΃u1uD軏I4$HT$P(6x2D$h%=t"I$H5c1{fD虆I$H5[eH1Of.H16H@H8f.HCH8HP tfDHD$PHT$HE11IHHD$)A>H|$HD$hH %=D$lD$8D$pD$uFf.HHx"HŶL9 1LBHH}HltH}:xH܆H}D(H~D+H}kpH}ws_H}wHLH}H7H[]A\A]øf.>8H}ՕD+11f.Ht7G w+HGHt"H@HtL@MtLiH7҅ HHHHt G v蝅 1HHGHtH@HtL@MtLmkfDATUHHt`G wTHGHtKH@HtBL@Mt9LHA蛄DžxEEuHx;HDH]A\fK HH]A\Ð˄HUHSHHtN:t[HH{%D=DH:dH+HHDHH)HH)uH1[]fC HHxI9IVIHH\iG % ="1IMt%LgLhLLLHIľ LIwMfI9t I?IHuHIIFI9uHD$HH5@ D$% =H|$"1mIM"LifLpL-LLH? IHHvA}/tH8jHƭLt$ LH0iA}H}HHYYLH|$uH]HHHD؋T$t$HrkH$dH3%(H1[]A\A]A^A_fLgYHEHt8/tH8tуHLt$ 1LH0H}H40u,DHLuXL1HD$LhhfH5iH=)1;Hv6AWAVIAUATAUSHt$ dH%(H$1ydLxЂL8} IHuLLL:AUHFuDAUIt/‹%D=Dt.uAE%D=DH=_&LAELINjD%@=@u#fBHH%@=@t=E,LL5If.A t-DHAHvALSH=D}HEuHHL)HIHiH?HHHH<H9v{ HIsH{LLB8H趄 IHvsAULLtKʋDD8HH4DDt HI>HL|$LH3I>LUL"r8t9t$ I>D辬y@AE%D=D HL|$H3L$LE11L-H'HH5*LOWLt$ DLCfH$dH3%(!Hĸ1[]A\A]A^A_HLGt4HcPHH DDut LkLA A> }&}1IEH9}2E%D=DEuaKERH5 H="%1}}E)E1P1rЋ%D=DKHuFHsЋ%D=Dtff.AWIAVIHcAUATUSHdH%(H$1H>HHD$H8E ,wHcFHcH>E1H$dH3%(IHD[]A\A]A^A_ÐH; M9tIMgG % =P Ht$("HD$<- ƒHAHx Ht$(G  h  HA}Lx " Du?eH٣; LL)HpIG % =I xHD$IIoG % = xH$; MI)IoIL9INLt$(L)HMl t.LGAP w!  %=@ G % = LIǀ;DHT$(HvH1L{MHR $t$LrtAHI9AH}G 8Ѓ )HGH<H@H/HxH"k;A E$t$Di~AbDH;( MIoM)IL9INLt$(L)HMlLf.HT$0LixD$H%=@u~kAHI9!H}G % =w"Lj;IwHT$(HvH1LKH|Hţ8\LdSAH; IoI9IG % =<vH$; MI)IoIL9IINL)HMlL|$(@t.LGAP w! G %=G % = LHIƀ;HT$(HvH1LJH4$L_DtAHI9H}G <Ѓ -HGHH@HHxH9i;A El4$DdAfDHA;LL)HHIIoMgHH9E1I9t@;gMI)IoIL9INL)HID L|$(H$f.t.LGAP w! f%=G % = L}Iƀ;lHT$(HvH1LHHLLJAHH9,$H}G <Ѓ -HGHt4H@Ht+HxHt"}g;AEAgA l@f)D$0)D$@G % =grHD$0HD$8AD$ % =LrHD$@Ll$0HD$HDKgA a@3gA @H;LH@HD$(HH8yHt$1ShfDH$AfL $MH ==HH51I7qB@HLwH@HD$(HLH@HD$(NHnI9IFH)HLdfHI9H}G tutH^H̛XDkAH}G SAH}G H8Ht$1RH8G HLwH@HD$(HD$AdLL$MH ;HH51I7G@f?I>G HH?H}G Hi8Ht$1 Qs҃ LPf҃ Lf҃ )LfHD$cLL$MH 9HH51I73?fDHD$NcLL$MH 9H\H5;1I7>fDGHAHxHl$(HD$HHH@HD$(HH@ H$HH@ H$HH@ HD$I$H@ H8Ht$1\OH80Ht$14OHi8Ht$1 OHA8Ht$1NH8PHt$1N?HH@ LIGHHHt$(L8HD[]A\A]A^A_It$VfDHHh @HLp @HHX @HLeLh AD$ J11LM9DE11ɺt1LDjbAJAVAUATUSHHHdH%(HD$1G % = `HH{G % =HPL$$HTIHLH*HHH9LHIIMcKf.HtHA,$ID$H[]A\A]A^A_@HAH?HÃʀAT$H?ȀAD$HH?ȀAD$HvAH0HZH%H=u H=H(H=H?H݃ȀAD$DH?փȀ AD$K,A,$H[]A\A]A^A_HA'fHA(fHA6fAHtHA HA t3M&H=H142H3IIAǀu}KT,ID$H9It$HHH?ɀJH9uLAt/MQH=|H1x4 3HIA 1fL@At9HL$MH=o{H1%4@2HcHL$IHuEH1~fH5H21IDAt/MH=H134HIA1f.AN1H1EH=;H1UHH5zH31BIH5VzH21'IHL$H5^H41IWf1WDAWIHAVMAUILATMUHSHH5AAIv I(H=]IMMAEAHHI9t s1tAU{HL[]A\A]A^A_@IH}LHHUITHTH) (H)HM42ECMH^{H8Ht'G f%f=H%HHD$`MHT$`L2AH5l1M=DMLcIMR0HIVL+$M9AA!4MBMAƄHzH8Ht'G f%f=(H%HHD$`HT$`L41H5pM=EATfTu1L1BH=sH1)SfH11LUHfDH)H;$AUATTHcHT$XDHT$PL4AMcE&M9uH11LLD$TLD$HMtIO,fDA611IxTHM9ucCHD$`CHD$` 113TH H)I IH9HLNɀwxAIt A<HAtjteG<A<#DŽ$MAMEH=}Ht$<H|$HHtH><AHD$AA!McI9L|E1E1H]I9w @I?HI I9QƒtIAI)MAH9HH HHH9tstl8rhvUB@w H sHcH>f.DŽ$ML$Iv1}! EIv'HI9 Iĺ̃HH"H;D$IvD$@H$dH3%(HL[]A\A]A^A_MI)EE1H9YWH€HWH€H?HD$HtHMtAHD$HtHDeEA?AA AMc*DL$xD$0I$(H= I I$0H' L%H= DD$0EHI)Ll$8MH)L|$ HD$HD$DAIHLT$0IFH5YDD$(LL$ DLL$ DD$(LT$0AȀAIHDD$(IFH5 LL$ LT$0CLL$ DD$(Iv LT$0DD$0HI1}kIi1}SIQ1};I91}#HD$8HAHD$D$DHD$ HD$HD$0HD$HtHt$@D$ Ld$PHdD$(D|$0ED$DH\$`AHHH|$8HD$pH;HDHD$hY@AA ʀA0EAAtA@D|$(%P=ED%@|$(=AH|$A,1LHDT$XT1H5 H=AH1%DT$XAIMHD$HoH8HtlDDLH3HHHHHpHHFHFHHHFHD$b N HVH8DHD$X#HT$XHafH HBHHH'mHLiHH HAICXHHISXHHHH@HH@HH@HH@ A HA% @A HD$H,DT$XA2DT$X2*2A2AȀADD$0DD$0HA D$0UwMH5r<8D$@*EHI)H)L|$ Ht$Ht$DTIv;mLl$8MAAAAH|$D$(AHt$ 1HU+DL$L$8H5LD$hHH=1AA,ID$@D$0DD$0AI1Ҁ}DD$0HDD$0AI1Ҁ}DD$0AI1Ҁ}DD$0AIw1Ҁ}DD$0AIW1Ҁ}gDD$0H/@A[ ,DL$X/D$(DL$XfLH53D1*HLD$xDT$X02DT$XLD$xHKL$0EAAAAAH|$D$0 n1LHU)H=֗H1IAAA4E1L$0VL$0I,.D$(NAAA EAAlH|$D$0 LH1(H=ZH1AA2IEH>o<AAD$(( H$L$DT$xDL$X'DT$xDL$XLdH$L$L$DT$xDL$X{DT$xDL$XL$H4w-2AAD$(,G-D$(B rH HcH>ADD$0HT$L9vLHIH9uH$11LDD$8LL$(H|$ ?H|$ LL$(DD$8HAAA+AAH|$Ht$PH=\b1AA3IA;AD$(*,,D$(@H-HLl$8ḾL$0EHl<AME1E1AAAAAA HED$PHD$P HD$p3e+AAD$(xLl$8ḾL$0A. EHl<6E1E1At$(A@A@E@t$(Ht$PH=i11IHD$`H|$D$(AD$0 1LH$Ht$ 1HH$HH5= H=H1AA,I*EAE1E1AH|$H|$P`LH1 $H=>H1LA@A2IHt$PH=l_XR/2DL$X)DL$XE1E1BDD$0ASHt$PH$11HH55K H.f%fuMVI9*L$IHmH Dt$ ExAl$(HL ADA)HLd@I<$LCDA9ui2HEH-Hw HJ H(e!HEM Ie!HmgE"<u1Ҿ HLT$LT$IHB0f@ ufDHHB0f@ t|$ D$ D$(D$ H0ȃ)HHT@U fU"LT$1Ҿ H]U LT$ff.ftfu)AffLD}"ff¢ff> IcTL>@LeAT$ ff~f#f ff AL$ ffM$$Mf|ffDIH$HmG#E#HGHEHGH<$ H$H(fE cL$H$e!I*R@E#LeAD$ Lf%f=ff=A A|$"}kDAT$"Ⳁ"AL$#ʃ0I4$V fffA LA~"N#H6LT$LƒHE LT$ft$ t$ T$(T$ f%Hu0ʃ)HN0HcHL@}#HB H:HR\ €t!H J 9H H QGGHj> HXU HkK ffU H@(fM"HEH](YHLT$ LT$HLT$LHU LT$ft$ t$ T$(T$ f%ʃ)HM0HcHL@ff UE"<A1Ҿ HLT$gLT$#LeAL$ Lff f  fE!@cL;e ffx A|$"l M$E1MtMf HLT$ EAD$ LD$LL$f%A\$# fAD$ HI H ID$LT$ LL$LD$MtM"A@ f%f 1AT$ LfU"$IHB8f@ uHHB8f@ tHB@f@ uDHHB@f@ tHBHf@ uDHHBHf@ t|$ nD$ D$(D$ HHȃ)HHT@U fU"E#H}IH W ffEfL$ILE"tH}(W ff LeAT$ ff uI$HtS ff%uH9k(uAD$#LLT$0E#ID$HEID$HU LT$fIHB0f@ uHHB0f@ tHEHt.u @P 1ft f HHEHuڋD$ UD$ D$(D$ I7Ѓ)HV0HHT@M!U fGE#7LeLMQ AT$ fuI $HwQ fE1ffVH1HJV ff6HQ(H)fB HzB!@HRHfB HzH9j0HR(Hz ffB!@H;jH}(HDO fAfALM0MsI9)jG!@t,HGHt#DP AAAu@"I"@HMHt$LDHL$HG"L $B"M^HVL $HL$H$Ht$I#MʀN#I)}"3 H](HtC f%fU f>H}01HT$8LT$H: D$8{H}(HT$<D$<^LT$t-t)t!t|$8~ÀM#PfD|$<e#E"<^1ҾHLT$ZLT$@E"<HUB f%f=aE#H]0Le(H C f%f h C %=H{(G f%f=E f% fE HC HXHEE" DE"G#E#HGHEH$HGH(I;<$f1 H> H(HME!@HA HUf%HfB f%f=uqH2HtiF f%f=u[HHtS@ f%f=uEH9J(u?A!@t9HAH8Ht-H9t'H8HtH9 @!@tH@HuD11HLT$OLT$HH? qLeLMB ff}f~f%f=}HLT$HT$HT$LT$HMIE"<. IHBPHuHHBPHtf@ t|$ !D$ D$(D$ HPȃ)HHT@U fU"LT$HEfIH$HDf HuHELT$1fDI$IH&r ffB#I|$(G % =LT$LT$HD$HD$HH=E A|$#|I<$fG /E!@lD$ D$/f+ 1fD$1E1LT$E1HDyfv f Mz#@?f @z"LZAAAAf DxtHI9HHHJ fhHH0H HMHA f%Pfv f A#HHP ffHHP fJfv f @#HHt@ f%f=b11HLT$LT$HCHE11H8LT$H%Le1ɺ1LT$ I$LLMLD$LL$Ho11H~LD$1L⿠L11HH@"Hك C"HHC(LD$LL$LT$ HEL M$IL AD$" A@"  H" @@8u?@LH9zu2z"AAAAE8uf Dn@~LT$HD$D$@"T$ LE HD$U HEfH= fʊfU HP L]HEE"@u#|A DȀ|$/DEfDE"DL MEQ fAfAM MEI fAfALT$HD$D$@fHHPE WAb!LL$H$LA Kf$ E1w, E1ffffP"H@0HEDHcD$(LT$Ld@HHW9 I<$Lq0CILT$D$(H@ f%f=t)f=H2 HH@\mIL`(MUAD$!@I\$C f%fz2C#(HLT$61ɺ1H%Hs(L1HK#E"LT$C"fIH@(@!@FHXHC(H@(HHD$ !D$ D$(D$ Ѓ)HH\@wE fDfC#0I9I9|E f% fE H: H@PHEE" DE"C#E#HCHEH$HCH(I9$ HE#H$E1҃DHcD$(LT$Ld@HH?7 I<$LY.CLT$D$(E HcD$(LT$Ld@HH6 I<$L.CILT$D$(fHcD$(LT$Ld@HH6 I<$L-CILT$D$(YfHcD$(LT$Ld@HH6 I<$L-CLT$D$(E (HcD$(LT$Ld@HH?6 I<$LY-CLT$D$(wDH1HDV ffIHLeff T@LAx ffMAy ff>AA#@Ay"@Ix(G xH?H jMaM Iy(LT$LL$LL$Iy0LL$LT$AA Aa"Lf%fAA H7 H@AA#IAH$L$fE L$H$I<$DG fAfAE!@L;e7H5/3 D$ D$/H6I9t$(I<$Hw D$ D$/ffw"@}G#s@fH7fF uH6~ ffD$ D$/6HcD$(LT$Ld@H4 I<$L+D$(LT$D$(H>G#t"E"@HGHEHGH}M#LT$)U LT$fbE# E!@LeAT$ ff6AT$"$IT$(HJ ffB!@H;jLLT$E#HT$HT$HHHtU LT$ff6AffI$B f%fCkB"@aE LT$f%fE H.5 HM"@HEI<$H}U LT$ff1Ҿ HLT$輼LT$q HLT$菼LT$?AL$"σw@At$# @I $M# HMfU"f u @{LLT$U"LT$LT$ HH=K LT$H6HV IHf H|$ f|$ffLH|$"@|$0HD$HHD$H$Ht@ fD$f%f=HD$HHuSx#8udu_HHtWy ffuG@~wA@LH;xu4HHL$Ht$H fyfvf u H"t ؄0Hl$H4$H|$H$H>IF#AD$#0LLT$HULT$B#E#HU HEH2 ffU H@0fHEG#H?A@#0MAA f%f%AQ"LLT$LAD$"LL$  ЃȄAD$"A@#A D$#AD$#I@ID$I@II$LL$LAT$ LT$fH5y- M\$(L9\`t] tM#@@M#ALT$D$HH@ HD$bLT$E1HD$D$_ tM#y €-M#@cI,$gHHvD$ J D$/JAD$#E f%fI<$LT$L|I$LT$@" E"I$HHEH0 HHHED$E#E fft f%€ʊfU f8I,$H}(HGHx(U fʉfU fLLT$'LT$+H}LT$LT$%u 1)M# CH$H"ȃ,+H$@#ǃ@8 H<$AăALOLL9@A)9HD$DDMHHHl$ E LT$LT$f.HM, AWAVAUATUSHxH& dH%(HD$h1Hh#G AA„% I=Ht$P"L|$PMAAEAE H@;H DAU EHi(1H]HIHHI3H8G % =M sD$IM$$Eu H@HD$H@#D$OA L$MD$NID$D$HD$ I$@0HD$(E HEHxHD$@& EuHL$N@#EȈL$NAE % =Ht$X1LHD$0HD$XHL$0H|$NH $ HD$01E1HD$8HH9$HLl$Hl$8E1Lt$0ISH|$ HD$(HH+ǀ|$ML9t|$bH]HLt$`IL94$vhHD$A@ tiHD$`HLHL$HHIHd|$OH\$@eLt$`DHH+T$8|$NLl$pEIEHPAE u|$RfD@tLfHD$hdH3%(pHxL[]A\A]A^A_f.HL`(EL1LH|H+HL`AE % =Ht$X1LH\$XILE1L9XL$$M9HD$`AHH<$Ht"HD$`A>tH4$1LL1H|$HH1HwAHD$`HA<$uHD$`\HDr#A@Dt$H,$I1E1I9L4$Ll$E1H! MMNfHT$`H=wItDfOHT$`HLHD$`IHI9}@HHHtH!HfDHI9v.:HHH<;?7H HwHuLHT$`E1E1H)1H;HP(T$DIEIMH@HL$0HD$XYDIEMuHXH\$X;fIUHRHT$PfDHVH8G % =VHD$@@H vDHfH*YD$ 0XX sf/&H,HL$0HD$8H9 $1E1H\$8LHPHHl$I1E1I9L\$ Ld$E1\$MIH0 Ll$(ML,$Yf.HL$`I9HD$DpffIfHD$`HL9EHHHtH!Hc@HI9v.9HHH<;?H HHuLHT$`E1E1H)1HL$L$HI9-|$M?HT$`LHHD$`II.D!MHcIL9v/AHHH?H HAHuLHT$`E1E1LmHDD!MHcIL9v/AHHH?H HHuLHT$`E1E11LHHD$`HH $D!MHc@IL9v1EHHLF ?AH H7HuHT$`E1E11LQHfHE1I9wIHHI9 HALLfyfvfIH޹1L1IUImLzL|$XhfHƒfHH H*XfH|LT$LT$H$I91E1f.H$LHQHAE  AU @HH@ HD$@HI|$tL9tL11H4$H4$IIHl$`6L11IHl$`IHD$BDhLH+T$|$ MLl$(AIEHP$@MLl$LH+$|$AIEHP DHH)IEHPAE fDH)H@H)H)@IEImH@HD$XSf.IEImH@HD$Xf.HT$`HL`HD$`Hƒ?HȀEUHD$`fD@0HV@@0HHE1Dh#A I9Hi 0H=fA|DIHI9u@HHHtH!HfHI9v*9HHH<;?H HtCHuL1HT$`E1H)E1HHL$`H=ZAIY@H)H1@\H,H?M)I@M)I@ZM)I@M)I@O1E11fAWH)AVHIAUIIATUHSHXdH%(HD$H1F % =`Ht$8"LFIAGI]E1ɉD$ E~ LcLL$8} <HUIcLH9BED$ IHt$@MTfDI8H|G urtHWBtHHBuWtK% ="LL$(LT$ LD$Ht$}HD$@LL$(LT$ LD$Ht$IIM9kIqE=HEH9p/11HE ߉U Hw :fE~IuHt HI]HT$8HT$ AGLl$@LdbD"LLD$@HHP @t!HQ H@8Ɂ@@LHHI9tkH;W % =uHL@LD$@HwDA@AF t$H H@8EA@A@D$ 7E@6HD$HdH3%(JHX[]A\A]A^A_AGL|$@Ltf"LLD$@HHP @t!HI H@8Ɂ@@LHHI9_HT$8HDLH;W % =tHL@LD$@HwzH`HLfH@HD$8HLL$LL$@HH@P@HHAUATIUHSHH(H:dH%(HD$1G  Ht$"0H;D$IŋG E %߉E HB tH HB8u E HML$LC1HD$LHPHT$ &XZE@|$tH 8HD$dH3%(H([]A\A]@HLoD$HRHT$I HHt+@ f%f=wH5.gf=tH %H41fDE11ɺt1H4H( ff.AVAUIATUHSHdH%(HD$1H H@" uH@#u2AE E1% =uEIEMeH@H$AtAE A% =tHL IMHLDCAE f1HcHHH9$HAHH˃HHHH!H|$dH3<%(H[]A\A]A^AA@IcH1HHH9r0HH$H)H9HNHwHHcH>1@1ҾL1AE % =tHDLIIEMeH@H$H51蕳@1AT,HHAD,HHAD,HHAT,KHHAT,KHHAD,KHHA,KHH1@1@1@1@1@1pAD,WH=y1gH=1T@AWAVAUATUSH(dH%(HD$1HPItH=ç1 @Hh@HzE HHt$H/IŋE %_DE C % =HIHLp8Lx0EAFDA%ADH1HcHHL9LIc1H|$HDHL9r HL)H9sTHH)L9ITLH$EHEH9P{LmH)1L蚲HEH4$HpADMHكD!HA"U AEE@HD$dH3%(H([]A\A]A^A_fDH=z1Jf.MIcLA1LÃHcLHI@A |4AtAiANLHCD=ANIGd=I@A@;1H5E#LGd=HCD=LHCD=LHCD=ANLHANCD=LHCD=sHHHT$0H|$HT$IgfDH$H1@HL` @HULmHRHT$ 61ҾH蕷E D1@H:H=1(AWLcAVAUIATIUHSHXdH%(HD$H1D$&D$'HD$8HD$@H9 11HaAD$ % =dHt$( LHËE %=t 11H\AE % =Ht$0 LVIAD$ H H@8kLD$(HHL$8HT$&Ht$(D$&L$L$H+\$8 ILJLH$AE1AE tRH H@8uBLHL$@HT$'Ld$0Ht$0D$'iL+t$@ IHMaMA|$&|$'{U LT$0LL$(%_DE t11HDD$LL$LT$DD$LL$LT$IM9HEMFIQH9PLHIHL L LL΃HA^xA_A]HLLL3DL L# H H LLKH L#JLHLKL#JLHLKL#JLHL9uIIIIqM5ZfDI$I\$H@HD$(H$E1H螿AH|!Ȁ-„t EQMfMt$LDT$M9DT$t L褴DT$D;$E`$DDT$ԚDT$HPIcH8L0A~ RIHc$Lp H@ HH8ǺHx HMc|$ HLp R荾Aƅy&H+Lct$L}(H@1fxHD$ 詳DD$ DDHDD$ D;0Dܝ@LL=LAH$(Hk߅t#Hu E:Hj(MtrfoD$0foL$@foT$Pfo\$`fod$pAEfo$fo$AMfo$fo$AU A]0Ae@AmPAu`A}pAH$dH3%(H[]A\A]A^A_ÐDLDT${DT$D$H%=tNuH<<`DHT$,H$DT$D$,蟶DT$UfHƀs D$H%= @H$IF(ZYHiH耱H+KH9\Ht$HFH@8HHDH5HHP 1T)C H+5DH.< L$ L$LHL$A| H5vH 1˲fD蛰fDH9tqH9tH_DHt$HFH@8HHDHHH HL$ӘHL$H"H9HH51HE16 HǾHD$NHD$@L3fDH$ fD1ҾD1׶DD$ )ȺDT$8X萼AVAUATIUSHtAtT1AŃtyǾ1kt^tZ[D]A\A]A^[]A\A]A^DAŃtD1[D]A\A]A^IƋuL蔹Ńt!Ǻ1A`AQFfAWIAVAUATAUSHH7tPtk1覰AŃǾ1LtgtcHD[]A\A]A^A_H1[]A\A]A^A_MD1AAŃtD1˸IƋ}DL1Ńt!Ǻ1A舴FA7,fAUATUHSHH tIt\AăǾ1tct_HD[]A\A]H[]A\A]餣@諩AătD1迳HD[]A\A]Ð蛷IŋuHVŃt!Ǻ1AcUAEE:AVAUATIUSHtAtTѢAŃtyǾ1t^tZ[D]A\A]A^[]A\A]A^鍢D胢AŃtD1觲[D]A\A]A^苶IƋuL4Ńt!Ǻ1AQ`AQFfAVAUATUHSH:tKt^ĐAă}1t|tx[D]A\A]A^fD[]A\A]A^vfDAătɋ}1菱}1{[D]A\A]A^[IŋpH蒪Aƃt6}1E}1 *AEfAWAAVAUATAUSHHGtPtk8AŃǾ1莰titeHD[]A\A]A^A_DH[]A\A]A^A_߲ӲAŃtD1'D IƋ{DD}Ńt!Ǻ1AʯFA7,ff.AWAVAUIATIUSHHtPtcٳAƃ}Ǿ1Otbt^HD[]A\A]A^A_fDH[]A\A]A^A_逳AƃtúD1D۲INjuLLŃt!Ǻ1A螮YAJ?ff.@AWAVAUAATIUSHHtXts|$ D|$ AA<$1tt{HD[]A\A]A^A_H[]A\A]A^A_۩AƃtA<$1训A|$1蘭fD|$ w|$ INj]LDeŃt9A<$1A0A|$1Aff.AWIAVAUATAUHSHHXDD$Ll$@HL$0LL$HT$(LL$LLD$ dH%(HD$H1D$$IACtH8HT$$Ht$ADD$@#IHLE11DHD$8HD$8LPjDD$蜻ILLHXt$HjjD$DPD$GPD$PPt$hLL$hH@H\$HdH3%(u%HX[]A\A]A^A_H5?1貜:舱AWAVAUATIUSHHt$L$HT$hHL$LHL$pLD$(LD$dDL$LL$cH|$ dH%(H$1HIHHHtP ff*D$8E1D$0D$@Il$H賷Ht$HHB LHž HJ\%pL HEA%D=DtH9w!HH9tCA%D=Dtt$tXHD$xHD$(H8G ILǾ LD$H׮LD$HLLfDHIH)IuE<+AEE1<|<>*<xƄ$wL}|$0TƄ$b&[A%D=Du$AGIHA%D=Dt-s D$,t$(E1E11PLLLAHD$ HAYAZL1aUt :HD$Bf.Eƃ@<L$LMtL9{|H=?G uAL@$<|oD|$uEt@-vuH fDu@HA%D=DtDd$EA0@H=2@-uv DT$E'|$0Ƅ$wƄ$bt$IHT$(L"HD$1}AHLLjUPAS$P$P$L$LD$XHT$PH|$`dH@H$dH3 %(e HĘ[]A\A]A^A_H1&HfDHIH)@ D\$gD\$D\$谩 1D\$HD$D% =xHt$xQIML\$xIv+IS1LL\$PLD$H‰LD$HL\$PHyI{LD$PL\$HܱL\$HLD$PHBLLߺIHUH9v {|IEHƀ<EHA%D=Du#BHHA%D=DtƄ$rEƄ$b@-u zOD\$HHH)1L1E1HD$xHD$xE11Pj讳HD$ ^1_D\$IEL}Ƅ$aƀaUtEE1<| %|$@YƄ$tL|$8 Ƅ$tID8| LD$ LD$H53} 1`LD$LL苎DL$HD$E1A|$8Ƅ$tAA=IoADD$EBH|$Ut 1YA%D=Du%EHA%D=Dt|$EH0H H1ҹHH)D\$谑D\$HP H@HsHXHfH{H@D\$(H|$fDHH9+;y{HfX`hg11A] D 32fCHH [ I9HB f%f=)8Hd H;B"H HH)HB#OHB(HGHfDA]fDECHpf.H{臏ƃH H HH;@"fD@#4H HHu HDH H5@HHXH#IH }=H轆H,| !H5J Hml 1蟍f.I$I\$H@HD$fH{fHP(UH H QH@P ff)B#uH[ HHQ HH;Hc҃  I1LHHHL9fH)H@HHSH9HH#t1HHHHHL9r fHI9}y,֓IkfDL(H։+WH) H f0”MNILHH1H5L7hpH H f8H HxSH @H@HHUI9HH#Ut1HHHHHH]HHK HVoI|$W H,HH H蕕H=vY9sɫīff.@AWAVAUATUSHH H L% HHI,$HJL,B#<H H8HGLx M-Hf HH)H'E1E1 H5sTLLutH[H8G % =5"1詧IH 8tH5 T1LmHcAE H։H?H> :IuAE LmLHI,$HH[]A\A]A^A_z"L}HMNAG t/MwAV w" B%= AG % =L 1HL$蓦HL$IIHLE1E1 H5RLH}H HHHETH 8IHM4$HЃ MO@IMH; H@Lx f1LzIHmH 8AF IFHH@HtvHHz0HtR-sVxHcAE H։H?H :IuAE LmHxHt袏Džy@Lp HV HHHEHH@H҃ @L@ALHL$kMwHL$AV @LHL$jAG HL$NDL u=E H HHHEHq 8H5P1|LH5T 1H5[P1{H5HP1{ff.@AUATUSHH[ L% L-% HMEHHH Hc(Hu H HH(I$HHHHx HʁLSS Hc%uIH 8t=HsS Hd HH)H~1I$H]HImHH[]A\A]H耡fDHH8HAVAUATUH-F SH LmHI}HPH HL$ЋG % =tr1^IH 8ugLGHcAD$ H։H?u[H :tOIt$AD$ MeHLm[H]A\A]A^HY Lw8tH5N1yLxfDAWAVAUATUSHHO L% HI$HPH LsH;HH,ЋG % ="1aIH{G % =1";IH 8LL}HcE H։H?H :tsHuE H HkL0I$HH[]A\A]A^A_DLoYH L8tH5;M1xafH(fDAWAVAUATUSHH L%ȿ Hټ HI$HH;HHLsDx G H,A% ="1IH{G % =1"ߟIH= 8LLA2texeHcE HH?Hs :HuE H! HkL0I$HH[]A\A]A^A_@3~HcfDH LG8hH% Ic1LD$H4:wLD$DLoH訝sAVAUATUSHH $HH-E L%n I$dH%(H$1HEHPH0 HL,H Hh H;G % ="1dHILHHxILL蚁AE@ucL+HEI$HH$dH3 %(uLH[]A\A]A^fHq HHHEI$HDHvL(AWAVAUATUSHH2 dH%(HD$1H3 HHH HH;HHL,@#t3LcHt#G % =IDH{LW  H"L$$IE1Iv C|'/HZ 89LHcAE H։H?8H :(IuAE L+EH: HH HHL$dH3 %(HH[]A\A]A^A_C|'/uhLIL$$IuHMuM1IAf!f.HLL`L$$@L RÏHB'LLAʘIH( 8H5VH1sDHL@ K@L0vfDAWAVAUATUSHH-Ϻ dH%(HD$1H HHEHPH H;HL,ЋG % =H"L$$IE1Iv C|'/HI 8(LpnHcAE H։H?H : IuAE L+EH+ HHEHHL$dH3 %(H[]A\A]A^A_fDC|'/u`LIL$$Iu HMuE1IAf*fHLL`L$$@L aÍHB'LLAʖIH( 8H5\F1qDL@膆fDAWAVAUATUSHH HH;LkG % ="1>ILsMtAF L4H@L`I|$I,$H}(H}0Ht 胎I,$LtHE0HtnH? HCHd L(H* HHH[]A\A]A^A_DIFHjL`MrXfL,{u H HxIFH=tIH@8HLEIHp 1蛐ff.AWAVAUATUSHH L-h L0IED`"Au/Hw HHcB(HJH4@HHD`AM>InMtAG L襇H@HXHHx0Hu-@LL}jHEAVHLHx0OHHx1ۋIHuH} 8<He HH)HHHj{HzfIGHAHXH4HHx0HrfDIGH5-HH@8HIDHHP 1w]袁u AHݰ HIH L0IEHH[]A\A]A^A_fDIUAH HHHEH H(HH[]A\A]A^A_IUH L8HH[]A\A]A^A_E11ɺt1L̕z,AAIH4 H(IEHsff.fAVL5 AUL-Ҵ ATUSIEI.HPHԱ H]HL$Ht C vxH߾;H@H@HHx0HuAT$ HƉ%H 8It$AT$ LeIEI.[H]A\A]A^fHCH{H@HnHHx0Huf.HCH5-FH@8HHDHHP 1G[ru H HHEIEI.[H]A\A]A^@LȒJAVAUATL% USI$H;LkG % =IHkHt E vUHЃH@H@HHx0Ht\L4dH HCH M,$[H]A\A]HA^HEHtH@HtHHx0Huf.HEH5EH@8HHDHHP 1Z2~u Hw HifDHLp @ATL%{ USI,$H]Ht C vHH߾˂H@H@HHx0HtGb|H HEH I,$[H]A\HÐHCHtH@HtHHx0HufHCH5]DH@8HHDHHP 1YB}u H H{fDAUATUSHL% I,$H]Ht C vbH߾H@LhIEHx0Ht`KIEH@0xtH HEH I,$HHH[]A\A]@HCHtLhMtIEHx0HuHCH5CH@8HHDHHP 1XB|u H HrfDAWAVAUATUSH(dH%(H$1Hy L H? HHPHI HH,H HL)HL$1Ll$fLbLL0sMt$fn{IDžH ݴ H HHtHHH=uA1LL$ rL$ AH  1‰1‰1Hp  1Hc1Љ1ЋU %H 8HuU Il$H+ L0H HH$dH3%(HH([]A\A]A^A_f.1LL$ qL$ AyH HID$H   *LLksIGH苍G{AVAUATUSHL51 L-Z dH%(HD$1Hl$IMeHPH HHHŭ uH1Hu;wy8H tH fD1HHcT$H Љѿ%EǍy@~ ȉɀEH C H :HsC H HL)H~jI\$IIMeHH\$dH3%(ulH[]A\A]A^f.HHҳ H `f.LLqIH谋_yfDAWAVAUATUSH(L=O dH%(HD$1Hh L(IHPH? I}HL4IEHD$G % =辂II}G % =d蚂H Hl$uGDHu;Iw8Hɮ tHܨ DHHcT$Hm Љѿ%EǍy@~ ȉɀEHV AF H` :IvAF H HL$MuHIHHL$dH3 %(upH([]A\A]A^A_@HH Hͥ nf.HH@ @HL` i@L舉gwff.AWAVAUATUSHHt dH%(H$x1H2 L0H HHHHH Lc H NlHHPH HH,M9H\$0>1HL+AW Ht$0Hǁ IIEM9r9M}AW % =uIHpHt$0IDHѱ HJL% HD$A<$1L|$@L$_H|$8qLA趀LuLL1l"f.kt8 Ji3gAǃtۅEH$@HHD$H\$,L$^LLf.s81HDet1LakHt$LH T$,HD$wЉѾ%Eƍq@~ ȉɀEH HL$H8 Lt$E1Ll$0L0Ef.DHڋ|$8H)L{YHAAvً|$80RANrT$0HHD$HD$E Hc :HuE Hɭ HL)HH InIL0H HHH$xdH3 %(HĈ[]A\A]A^A_fLMAW H Lt$L0E H :}HEE H HL)HAInI^E1LAiH" HH HH*D|$8PEHD$Hc0|$eHNj@ % =t71蝄HDDH~LNEDLLHff.AWAVAUATUSHH H H L5B L8HM&HHH Hc(HHHPH IHL,Hd 8S1,ZH@"@LL)HLE11L1AE I.H{ :IuAE H HH)HH LmHH(HHH[]A\A]A^A_f.I?sdHNj@ % =tA1H11iGI|$It$E11L'Hf.HH@gHGLX+|IM9r+I<$G % =t "1pHI 8tM&H I8[H51`ZHff.AUATUSHL% L- I$ImHPH HHUyS Hc%uKH 8t?HsS H& HH)H~3I$H]HImHH[]A\A]DH@fDHHeHAU1ATUSHL%Ѡ H L- I$HImHHH@#t-LEHMt A@ % =tuLǾHwH`gS Hc%u^Hǡ 8tRHsS H1 HH)H~FI$H]HImHH[]A\A]IHx H8fDHHdHff.AWE1AVAUATUSHH H͜ H-ޞ HHLeHH@#L,<Hf HL)HIE1HQ 8DDUVHcAE H։H?H :IuAE M,$HLeHH[]A\A]A^A_fDI<$IHtG % =u\HDx DI<$E1HPG % =tqguIH 84H5+1&W!6uIH@#@LLPcIHLp @LX}AWAVAUATUSHL% L-( I$I]HPH LsH;HH,ЋG % =|tIH{G % =tlbtHDPU Hc%uUHޞ 8tIHuU HkI$MuHH[]A\A]A^A_ÐHLx HHx HX|fDAWAVAUATUSHH/ L% HI$HPH H;HH,ЋG % =sIH{LsG % =_sIH{G % =;sH\ :DD]HcE H։H?H :HuE HG HkL0I$HH[]A\A]A^A_fHLx 0@Hї H:H@ nH5)1HD$fTHD$Q@HLh @Hzuff.AU1ATUSHHq L% HI,$HPHp HL,4{HAE H tFHxAIuAE H HH)H~4HLmHI,$HH[]A\A]LifDHH_HAVAUATUSH@Hљ dH%(HD$81Hr H+HH)HoH|$LmqUL%" ffH*D$I* $^D$6aD$HEHaL5% IB"u)H: HHcA(xH4@HHqH@<t,L+HHt$8dH34%(H@[]A\A]A^DffLm I* $H*D$^D$`D$HEHNaffI* $H*D$ ^D$Z`D$HEHaffI* $H*D$(^D$$`D$HE H`I&f.HH^HysfAVAUATL%3&USH`Hʘ L- dH%(HD$X1HImB f%f=JH%LEB#H}HHG % =am]f(fTf.v3H,f%yfUH*f(f(fT\fVf.f(D$ztULD$H5M%S?D$f.L$H|$ wfH*L$ L$*f/f/ *-HHt$ H|$@ f%f=J OIMH Q"u)Hj H0HcV(x HRHHVHPH HH)HLeMDH HQHH5$HH1aH@IGI~ IGIcn-SHIo IGHz3McfSIG HLb3MvMu%@LL}IKjHELI>HtlHH)HHHPI>Hf[aMIM7H %fIMIH L8HHL$dH3 %(AH[]A\A]A^A_fRI_IGIMt;`IFH8t%LLIFIcVLH0U[DH HIEHnf.I<$M|$G % =1QH 8II6H>H fDHL@ P@HHHpH4$l@LL OIHrWfAWAVAUATUSHL-߉ L5 IEM>D` AAcAd3I?G % =S`HIIoG % =OHljZHHH. HH)HIUB"u-HJ HHcA(H4@HHqH@<Ht^H;1^HHH[]A\A]A^A_ÐI?IoG % =1:OHr;Hlf.H YfDs.fDHHX @HHx @HHhLH"HAWAVAUATUSHL%/ L-X I$M}X fBgI?IoG % =d]HJXIH HH)HHI $Q"u-Ḧ HHcB(H4@HHrHPuqMtFI>1H][H:HEI~HEMcv1YH=8HEI~@HEA^f^KH] HEH+I~1YH7I $HE HImHH[]A\A]A^A_ KL}HEHMti/I6g8I$M}HH[]A\A]A^A_DH}G % =1KIH}L}G % =IHfMt A>LDLLUI`fDH}G % =1JIH}L}G % =1kJHMt A>LDLLcILw%Avf*f.HHGHHHx @LwEH_ATUH-z SH]H;G % =tkXHL% I$P ffntcw1fltJfmuPH| HI$H][H]A\@fou4^fHHx (f_fATL% USI$H P H+fff wH HcH>GH) HH)HH+| HHEI$H+[H]A\@S+Sf)fAfUfKGvfDGffDHHEH^AWAVAUATUSHL%o L- I$ImDp fAfAu9fAv1fAtWH HH)HHI$B"u-H, HHcA(H4@HHqH@<~HZH;1THs31HEHNHI]3HEDKH;IljT$ 3'T$ AHtHpHtL3AF  L=L{ A?*DsAFHELH29Ds)FHE HL9L5z I~0@I~0HE(@1HE0LsMt L|:HƺL<]A?HE8H{ 1SHk21HE@Ls(Mt L4:HƺLH]H\A?HEHI$HImHH[]A\A]A^A_DKEL}HEHHtfAtH32I$M}HH[]A\A]A^A_DH}L}G % =tqTH6LH@H}L}G % =tI1EHe\LHsf.MH\HHx Hf.sX7,HsL1HH 8BHE11ɺt1L]E11ɺt1H])E11ɺt1Hl]UAWAVAUATUSHL%| L-{ I$M}X ybzI?IoG % =BHKIH0 HH)HhI $Q"u-HL~ HHcB(H4@HHrHPMt]I>1H] QH/1HEI~QH{/HEE~BLHEH5I~fI $HE HImHH[]A\A]A^A_D+.LI[BL}HEHMtyt[I6/I$M}HH[]A\A]A^A_ÐI?IoG % =tZ1nBH$IfDAv4DHHx }@HH?HHf.AVAUATL%y USHz I,$HHPHw HL,HV HH)H~[&LuHHt"Lb'HLmM4$[H]A\A]A^H)u M4$HHEH[]HA\A]A^fDHH?Hff.AWAVAUATUSHH${ dH%(H$1Hx HH@ H0HIHHH Hc(Hy HHL4.HM)HPHv IHL,HOu 8~AfDPJDIItgIL9r^I>G uAu% =uHH@ Hs HH9t@%=tD18fJDafHGQHt$8LL$81LD$0HL$(HT$ Ht$H|$8ZYH5 HHAU сFH y 96IEAU HDw LkHHHx HH$dH3 %(HHĸ[]A\A]A^A_t$8CHT$Ht$1H<$#8MfDHL$HT$1Ht$H<$7(fLD$ HL$1HT$Ht$H<$7@LL$(LD$ 1HL$HT$Ht$H<$7H<$17Ht$H<$1p7HLVM~L4L9s}DIL9r*I?G tQtHr Hw  Hvr H5 L6H5S1 /H=01!IH=1m!CATAUHG f%f=t E1fG#H~ HHt HG(@!@YHhu ffffwJfwJfu H}t91E!@tH}B{HHt HDH]A\3{fuH]A\fE1HA3@fvAfff$yHHHufhYfDf wfKAWAVAUATE1UHSHHC f%f=tKfvYf!f=u H!C"tbHC(HtYHC f%f=uHs0F f%fuH{(DfGfuC#tHsC"uDC!H[@uH9t HtfC!H[@H.H[]A\A]A^A_f=f=f=f=(HC(@!@BWHpF f%H~HF(1@!@H{0{#G f%f=IEzDf=AC!@txLkAE f%f=C"H[(HALfHH9ff=LfR7C"H[DH0C# #OLk(A} IEH@HHx81LIHg1L#1H5> 4@H{HH{&qHCH=WH=TFHt H9f1]fHp-HC(HfDLvNMAE!@BIE@ f%>ff!f=L59t AU$H5 IDx$P$1p31H5 ]3IDx$aHo HHuw@uHBPHtQHJ\ut>HG f%f=t-Hu %HH5 E1H<Dþ:HLH VMt0A@ f%f=w!f=v\fSf%f w HcH>1@w#A@"<tu;@w#A@"<tA@#@Eft fhtfuMqAWIHLAVL<L AAUAATE1USX fL9@@"f,f@D$@Lx(Ao fft fD$AG!@ttIoHtkD} fAAfAuXD}"AuME#uGAAu=L}(Mt4Ao ffu$H-Er HmI9o(AEDD|$fDf,Ic,L>ff,wBIcL>DHub1H9HHL9LD@!@uH9tHDfv2ft f@"tHH(L9HtHmftfuqHH(I ffÀH9k[D]A\A]A^A_Df,w IcL>fzvXf$fHi  @t @#  A&ftfuHH(I ff@@"6A@ A@u YHX([ ff)À L9A 7H i HXH HIHٹk,tH #i @ K,1ɉ˃x#A A DHx@@#tm@"@HH0ftft ffHH(D d$ft fIÀ \A5A ,@"H#H "k H@C#9 H h HXH HIHٹk,wH g @u, K,\L9#fDX ;)AD/ff.@AWHAAVAUATUSHXHcH|$8Ht$(HT$ L$LD$HD$MHD$HD$0HHD$0>@E1ҋD$HAtHD$8H|$D$MH@HGHD$Ld$ E1E1HD$H\$(E1E1HD$11A9t&C f%ff #fC f%u HC f%f=f=ʈ$t"K H=g HEH9f=;f=K H=f H/aH9H<$Lf="C#E11҄MLD˄-C#H\$H0< A1fDB LD)AHI փ@~(L$HtHt$L6Ht$J4Ht$IE1E1C f%f=t f={"C#H\$HAMD$L1II A9uC f%fOC"$w~{#tHB f%f5B"%B#t$HtHC(H|$JHC(HII00E1ҋD$HAkH|$8Ht$HG(HG(HFL@ADAL|$ E1#AAfS H d H=_H9<E1HI@A ff=pS#t}HtX։у0C"&E1t$I@IA@E1kHX[]A\A]A^A_fDHE001#EoHC(@ UHB f%f=f1H1DD$ODT$NLL$@D$lD$LL$@DT$NDD$O@HIIC"3<u{#t1D$Ht HCH|$JHII Hf=kfE1C#HK(H?Q f Hy„C"\TMLDf.H\$I@DH{(G % =DD$ODT$NLL$@D$ ;DD$ODT$NLL$@D$HH… |$H|H|$JH{(w_wHC(PψK#f=E1f=S#f.K#ʃ0ET$HIu E4J<D$D$L8HHD$D$H fD1f=uz#xHz(G f%f=HET$HHDD$ODT$NLL$@D$iDD$HD$LL$@DT$NEDD$O?HC(H|$JDf1HH@ ^D$HHD$L0HL$11D\$@DT$L $ D\$@L $DT$IAf@# D$L|$MAD$#<HD$ HtHT$8HAA f%f-fwMI(L1ɺ1D$*11LH*L|$8LD$M'AuHI$H|$1LD$m*D$HHtDfDG!@ub,$*'D$H|$D$8|$HD$HX[]A\A]A^A_f.L9@AA"LMI(u+fH_&HHIL$HDFE1HD$8H@A]"C"AD$"S ffq faC#UDD$ODT$NLL$@D$<%D$LL$@DT$NDD$OuAf.AWfAVIAUATUSHDW dH%(H$1)$D)$f%)$f%'fC-H|$D$6HD$D$4fELt$(HD$HD$ f~PfCL$1E11D$7Hl$1E1E1MŹNuTHU(B!@HzH]#D}"MA@DI>HDU fAfACtIH>LL)HHHHfAIEII1tLO"@L$6G#@uHO(HL$A!@tBHqDV Ht$DffI D$6@fL$4ff.IEI]IEHL9H1*tHxtHIIHL9H8uӺLL$L$Ht$h|$71HL$@@HHEIDH|$HL!LiHAHQHq  H|$t71ɺL;t$ H|$1E&I11LL3&HIDH|$ AF f%f% HI 1ɺHL%HL$11L%|$4@t "L1ɺH%HHuAF" D$6AF#AF A^"f%DfAF Hd H IFHD$@IF0H$dH3%(H[]A\A]A^A_MHM)III#DW 1fAfAVLW(MIEZ A8A +G#"MUAz I@|$7@HIDHc H(H9O w#@t$6 H(H|$G!@HwHt$HN fL$4f~#HHt$DV Dff rHL$D$4I#p`Ѿf%E@t$4EHc HL$H(H9q[A#f%GHL$ DH|$(H|$D$4HD$HD$HD$ Hb Ht$HH9NF#H|$ f%Ht$ HYb HL$HH9AHQ(B f%fB!@}HZHpC f%f^Hk(E C% = H$H<:HH$HH9 HE1E1E1IHIH9 Hx%uH9a P% sK IHD$6K HHMaAV ff%tQH|$ u|$4uBMI„t'H|$ tHL$I fL$8ffC H.ID$LHD$XIHD$`HD$HL9 Ld$@E1Dd$7Lt$PI1LD$h,DIv18MVIMEtNIL91I>HtG Et % =uHLPMVHGMIEuHHN HHHH H HHH)I9Ht1DHHH?H֨uHxHWHHL!IH8HI9sIQHx H)MQHI9HHBHI9vf8HHI9uH1@11H|$8j-H|$8G DLd$@Lt$PL|$XLD$hHl$\A]A^f.HQ!HHHH]HH[]A\A]A^f.HRHtLrMtHPHS!HL,AFIHx0Hu]I~HX!AU Hc%u@HW!8t4IuAU L+I$H]HH[]A\A]A^fDs뮐LH5fDqLC'HHfH-Y!HHt#HHsLE1[A]1A\A]A^H=q1HD$HL$HHff.fAVHR!AUL-T!ATL%iU!USI$HImHHL4@#H}HHG % =+H2HP!8AF މHLV!:IvAF H[!HH)HI$LuHIm[H]A\A]A^fD2Ãq1HeP!8jH5+1 WHHx 3@Lx3kHH0HfAWAVAUATUSH8H-/S!dH%(HD$(1HS!H]HB#L+LSE1tHCMLkLIMt AE v|L褋? HN!HHH|S!H]HHHL$(dH3 %(H8[]A\A]A^A_HAN!HHHH]HDIEHwLxMjAGMwMRLU1HD$ Mt/AD$ % =Ht$ L"C3Ht$ IL蓙LLAIDtTIHx(HtI;tLDt,HEHYM!HPHHEHFR!HHH1M!HEHI$Md$HpHt$ VqLLT$>#LT$HHHU!E1MAHHt HLALAT1ZY6H=m1LT$DL$HD$LT$HL$HDL$HAWAVAUATUSH8HP!H=R!HY!L HR!H+HHPHHcHHHLmHD$LMAU ƒ HAqL5w,с8AqL5 ZfLH}L)HH$"H}1vHLHHD$h-HL$HIHD$M*H vR!L\$HH@HH@ HL ^R!L+#Hx(HILV!H=2O!HBIHLbHHRHH0H6HvH4I2H0H6HvL$L'H0HHQ!I1H=Q!HH5sP!HD$HHH;"LH)HHH$HcЅIL)HH9H$pt$H~1@HTITHHH9uM$HWN!LT$HL$L ICL $HxLT$HL$L $fAqL5 %B=B1LL $AP-LL5q0L ${(H P!HH@HH@ HL P!L+#Hx(HIL$U!H=eM!HBIHLbHHRHH0H6HvH4I2H0H6HvL$L'H0HHBO!I1H=8O!HH5N!HD$HHH;LH)HHH$HcЅIL)HH9H$pt'H~1HTITHHH9uM$HL!LLT$HL$L $L QL $HL$LT$HTL!HHH@L"HI1H+HH=-L!H6HVHHRHH0H6HvH4I2H0H6HvHHHLHIt)DLLM9l$E11DL$- HH\$HHK!L`HHHbL!HHH8[]A\A]A^A_D@JLL $APL5AE L $% @AE HHUB < 7HHx?HLH=|1DAPL5fDIEH@HDIAqL5PfDIExHyLL $>IEL $Lh@}DIEHp0H_1L $AU L $AfAE 1DLLLT$ HL$LL$LT$ HL$LL$IHE!HP0 HL$(HL$HHPHBLLLT$(HL$ LL$L\$ALT$(HL$ LL$L\$ID Hu11IH%LLH=1$@LT$ HL$LL$(HLT$ HL$LL$D HL$'HL$L\$HHPHBQH=='HLT$(HL$ LL$L\$k(HLT$(HL$ LL$L\$HF!L8MIHH/K!HL5G!IHIGIVxHHzHHL $H H)IFx1HHǂHI H=\{AO IHH!H8IFL $H@ Ht@IHIH@@<IGIELxIEH@L $L $I L $ L $HH=91 H=1 HP<~H@ LLLH=1|tLX H@ LXAWAVAUATUSH(HF!L3I.MnE ЍJS ubHUAqzHy~uTDH E < HB!L3IEHG!HHH([]A\A]A^A_AqtDHIHtH@ H#HHHtHHL$H8Ho1H5#HL$HHt x A>HPH5+1"fJHEHhHXE DAPDBBHUHr0H%1E 1H$DH1HH@ dfHH%H@H@L@MHF!HHHH'F!H;HM!L+*ID(IG HIHL!HL)HALD$IDh LIHLL3LD$LL+MuH?!IHD!L3HHH?!HLD$HL$D$H!HHHC![]HA\HDAqtAHHtH@ HuH!#HJodHEHhHsE HDAPQDH1>HH=@ .f.AW H=AVAUATUSH(HA!HHHL0HhH@HL$HD$!1HIxHH5OHIhIHWL=C!H !C!IHIH;H J!HH+HH I!HH)H HD$LmHEAF % =LHEHEHAF u H!Hl$hHH?!HHPH!8It$AT$ Hr=!LcHkHB"u)H?!HHcA(x$H4@HHqH@<u MHQ8!M>0H 9!L(AG A;G$AG HH @H IGH HAB!QH/;! qL+(HNNNH!HY0H>!HLaPHAXHHA@1fAHEE@`HAXHt@HEHcp`HxH~HEHxHHcp`HGLHHHPH5!H HEH@(H[]A\A]A^A_fHEL5:!@\ dHT$mHT$HCT$t$T$t$AG M>AG @f.z,PAWAVAUATE1USHH7!L-6!HImz#tLeHH=!L0AF Ho>!HH)HLLu$HHEMt'AD$ w5ID$Ht+Hxt$LHMuHH[]A\A]A^A_L͐ kIFHH8Ht)A ƁI΃ 5IHx(H%GHHy  y<H@ HRLc@HpDMBD H3!DEE1E1 HLu@LfDH=t1HL$DD$ HL$DD$HH5!H~,t,AAHtE1ALH1AAHtE1ALH1wH[8!HH)H6MIMATUH-j0!SH21!H}H@#H8!HH)HH6!HH0HtaF wUHFHtLHHHtCH LahMID$Hx0HHHU[H]A\GH+!HH0HHHU[H]A\H7HWHgHQ6!H0SfHCH(IbL11HHHH=w18AWAVAUATUSHHdH%(HD$81H1!HHcB H @H HBL4H/!M~PIWLbHZ fM@ff$@5I $Li(M$HE8!LIHHH2L;N H7!IcNA~HL,H-!;: I~XH|$H|$IFXwwIV@H 4!HHtHRI~HH +!IFHHHj`wOwH0!AN8HH5!J(H *0!Icv HH L)H4H /!H1Av(H 5!1IvH .!H1IvH 1!H1Iv H S2!Mv0j H1Hf<$IU@6I $Hi(HH;HAHH7H+F HAHHH$1vH$ H(!H0IEH1!HHH,!HHD$8dH3%(HHL[]A\A]A^A_fH-!H;'HyXMt}ESH;HL$ EqLL$(HGH<$H?HHD$H|$HH|$HHfAHxA>H H)HuHL$ LL$(Mx5Hy8~.H=~LH@H8tI $HA@HAHI$H@8H%,!HHI$I$HhXHEHx0HHd,!LHIfH!5!@H1'!HIEV@fDI|$t <LH$cH$fDLH$cH$HHHA HHAH0HHHFI$H&!IECwfD3fDLLXIH5ҷ1H$H;H$0DHyPHt?1sI$HHHHy0HBXI $LIHqfDIHy`Hp H=M1Hh1HIvH*H@Hx0I$HD$AF % =QHt$0L" H|$0HHHt$H|$0HT$0Ht$HH|$HGPI$HxP@HB@HBHH),!HHcB H @H HBL4DHH$H$4H|$ HH|$LH+D$HGH<$qH;Ht$LD$ HHpLHI$HHRHH)P I $LIHH=18HM4$to@f@pIFPI$HxPIIvHxLvHL$LHPHHT$NHT$LH^HL$HA`IHp DH11IHLH=S1ff.AWAVAUATUSHH)!H'!L5a(!L(HHHH H 0!HcHHHHIHB"@LPL`MtAB FE1HcM9H.!HL)HH"!IH0IEHcHMAG;IHh(HLIT$L)HHD$HH|$HoIH/!HHT"!HCHy&!HHIHH[]A\A]A^A_DH-!ILfDLHT$ _HT$ HH|/!HH!!H}fIBHLxM9I<L]3 qLLT$LT$HHH.!Il$HHI9H)!M)IHH HELH[A ]1A\A]A^A_LT$1LT$LL]?HRf.H,!HL)HI\$LHH)HHHH9w|I|$HHLHL$IIHL$LLLT$3LT$I5fDH=1HL$-HL$HHH5,!H=+1LLHL$I)HL$IHM-!L DAWAVAUAATUSHH-$!dH%(HD$1H#!HHEH;@# t3LcHt#G % =IEH{LW  IH{LsL{W  H"gH$HE1EDL>tSIFH@HH@ H!HCH"!L8HEHHL$dH3 %(u`H[]A\A]A^A_DHi!HHCHL` ?@HHwHPH$\@HL@ AWAVAUATUSHH $HxHK$!dH%(H$h1H "!L(Hg+!HHHpH2HcH!HL4HHHD$ H"!HHpH<P IvfH|$@Ht$fHF oInE I~M~G % =3H$H<$ 1HD$8M9v$I~ G % =HHt$F HFHH@HD$H{HxHnAHD$HxD$4L5$!I@8HY!!H8O f%f= f= E 9 Ht$XHIċE E ID$0@8u HHD$XH$HD$HH !H@ f%f=;H"E t,H#!H@8uHD$XH9HUHRH)HE1AE1E1Hl$LEfDHD$HxHL$H<$AHHt;HPAHH9p>HD$LHHҸHIH9L$0LLL$H!H@ f%f=EH$DHLL$(LL$(IMIHI+ALHBIIQH@AA T$4%_DAA 6H"!H@8"J;H9Eu&LH)HH9r4LIA1H9H (!1D4LHH9sHHt$LLH)E1H)H+FH $HHD$8 HD$H>HX'!HH!HHt$ HH !HHH H !HHH$hdH3<%(XHx[]A\A]A^A_H|$tInE 11H[fDH|$&VHD$8 H&!HH!HJfHH@ H$HD$H@HL`MrAD$fqLIHMHE!!IFLH)HHHAA LLL1^fE ,Ht$XHIċE D$0 .L5_ !D$0I@8DH|$HT$(HT$(I@HD$H$HLL$(HxLL$(HIHD$HxLL$(DH|$HL9L9<$~L)H<$H|$H+GHHD$HHXH!LMIHH4!HH!IHIAHCHHfHHS@IH"!IAHHyH8H!H;8Hq!LL$(HL H$LAI Hp=LL$(H|II<1LL$(I)L7LL$(EDHHX m@D$0LHl$ME @HD$HuH!8(H#!Ht$ H|$@HHG {H/!:kLOG HD$@HCH!HHH!HHEH$D$THpE HEH9pHuH$Lt$`LL$TMDHHeH9HUt$4HOHBHEHUH@E %_DE @KHD$HuH!87HX"!Ht$ L|$@T$THLHLLHHD$XHH9*H/IWHMLeHIHL$XKH9H1HHL<$E L $LL$(*LL$(HeHULeHRHT$X LL$(LL$(HA$HsLǃ@t+H=!!HHHuHL) BHtHtHsHD$8 D E `H|$@L~HL $L $HsLBHJHʃNH}E11ɺt1HH=1HHH=1f=t2H!H4H=1/H=У1QrHff.fAWAVAUATUSHXH7!dH%(HD$H1H!HHD$HHHH HcHD!HL8IHIoHYE $L%u!IHlNA H1HH!HH>!HHCH_!HHI$HHt$HdH34%(tHX[]A\A]A^A_fDHEHjL%!H !LhI$H HrR H4Ht$ ցt$,MAEIGHD$IGHD$&II}HIE</zD$(HD$P % =Hl$"Ht$8HU I1 tHN!H@8I}D$7 F1|$7u|$,GHt$H9t$HT$8|$(LFIHM7H!HH4HL$ A sH!:cLiA HD$ L%1!H<HCKfDqLKIHbHD$I_HH9AHD$H)Hz!HHIHA LLL1蝰HL$HLqH@HD$8ofDIIWG % =EHT$HT$AH9T$kI G % =Ht$@LL$@IHT$8|$(DLIVfIIOG % =HL$HL$IMH9L$BI G % =IHL$8HxH9!H)LL9HFIHD$81LHT$7Ht$@HD$@|$7IHD$@LHD$8MfHH@ @HLh F@HHH9L9IGHI-HT$8|$(L%IDHH@ #@H!Ht$HH.H)HH"HHD$L`aHHHD$Hx譸H~!Ld$L `fH=1HD$MLL$HHVfHLHLL$@LGH|$ LHHD$EIGHD$IGHD$XIM2$I<$G f%f=H!%H4H=G1hL9l$8LHFT$8HH=1oI<$G f%f=tFH!%H4H=?1HH=1)OHq=HAWAVAUATUSHL%!H!I$H;@#tcH/LoH !AH(HSE vwMuHkSHZ !tXIEI$L3HH[]A\A]A^A_H!HH)Hjx"H !IE1H(fDH0fHEH|LxMoAG;I$Mu@#Vx"LIAIt/HEHx(HGmHH@HHi1H?GHHW !L3IEI$H@H !H Q ցt;H !HH !HHH;HH[]A\A]A^A_f.҃ wHAIAHh8HE !H(9DHHI$}qLHDHD$-H-!HL$HHHHLALSA10ZYfI$L@KHHIE1E11H5HH@ I(HUL:MthH5{LAG@AL4H :H@Hx(H=)1HL$HH H=HT$eHT$HAWAVAUATUSHL- !H0 !L5A !IEHI.HHH@#LeHMtxHa !L AD$ LLQS с8H  !9(HCS H]IEHI.HH[]A\A]A^A_DHQ!HH)HH !L Miu C H !:HCC iID$HLxMAGqL HHHZ!HHtrHLHE1[A]1A\A]A^A_zf.HHHH`HHHqH= 1HD$IHL$HHgDAWAVAUATUSHL- !I]H;G % =IH{LsG % =UkIHkH!H(Ht E vaL=z !DLHI@ f%f=$OH0H=y OHHCfDHEHtLxMtAGtqLLD$=LD$HfLHD$rIcHgL-p !HL$IIHATLHsAUA1若ZY H!HHCIMuHH[]A\A]A^A_HL@ @HL` t@NH*!H0HCfHHH=1"HL$IH6ff.AWAVAUATUSHL%!I,$H}L}G % =^I6L-!HLEIEx"lA@ tQIxW H w6 u% A@ tw H% =LǺ 1\IH!8LLΰu H!HHEIEM<$HH[]A\A]A^A_ÐЃ  I@HtHHHtH@!8gHyHtH|$\H|$MyZuHLp q@LǺ1ɺIH7@ 'gD$臼DD$LDH!HEIEM<$HH[]A\A]A^A_f.LLD$胬LD$A@ DM@~IH51LD$ͽLD$ZLD$&LD$Ixw %=@H51HL$uHL$|ff.AWAVAUATUSH8L-!dH%(HD$(1H!H(IEHPH!H}L}HL4HEHD$G % = IH]HtC }HH@HHHyAG u k%=Ht$ LHL$4Ht$ HL$HD??HDH9IH@IEHv @ %:<Hy=5DHډ1LcAG tIHX;QAG@1IMAF Hb!:MfAF LuH !HL$HIEHHL$(dH3 %(H8[]A\A]A^A_ÐHCHvHHH~d% =LHL$.HL$HII_HpHt$ HL` @SDHډ1Lc@ H5<LAF@ L@IHX C@HrLHL$HT$HT$HL$HIHPfH Ht$HHEH!H0IEHfDHh9 HN HHE_fH5!Hc1D$HL$H4¹HL$D$@LL5LnI}G f%f=tH!%H4H=ő1Hff.@AWAVAUATUSHL%!L- I$I]HPH} LsH;HH,ЋG % =IH{Ht G vb%81 U %H^!8HuU HkI$MuHH[]A\A]A^A_DHGHtH@HtL@MtLLD$`LD$LD HcHH?bf.HLx %@HhAWAVAUATUSHH_ HH;G % =IH{G % =IH{L{G % =RHH{HtG H|$=H|$H@LpI~t1Hc 8JDD%ŅxH5sѧM&H5sIF輧ID$(IƀsI~IHtHx(H 8DHx(HtzI~uIHx(u ¨fH HHCH L8H HHH[]A\A]A^A_HGHLpMfHHh @HL` w@HLh C@˽IHx(HHCH Mu[H]A\A]HA^fDLh. HN HID$HwH@HeHHh B@AWAVAUATUSHH $H8L% dH%(H$(1H HI$HPH LkHL4D$H;HHG 8HGH+LxMMGMLKMtAA WLϾL $MGL $H@HhLL $RHT$HD$ HHD$ ADžH}tL $1LYH5|jDjHUDH5ijHEH$OH$HB(HEƀsH}HEHHx(T$Ht$LoAF@H LsL(I$H5Dc, HI HHCHj L(I$HH$(dH3 %(H8[]A\A]A^A_IAHHhHf[HEHx(HuH}k)Hx(Ht2H}OHEHx(@Dp3L`fDAWAVAUATUSHH L%H HI$HPHN LsH;HH,ЋG % =-ILkMtAE LH@H@L@MLDœHcE H։H?H :HuE H HkL0I$HH[]A\A]A^A_fDIEH]H@HPL@MeL1*̽ H HHCH8 L0I$HH[]A\A]A^A_HLx @HIAWAVAUATUSHHL- dH%(HD$81H L0IEh ff M&I^H;G % =HD$H{L{G % =nHD$LsMtAF LH@H@HxHAf hf MAD$ % =FHt$01LDL$ܷDL$HHD$0D$,AIFH>H@H1HxHFfL((û H HHCH/ L8IEHHL$8dH3 %(HH[]A\A]A^A_f.HH@ HD$HH@ HD$NL3H;IL{iAD$ t$LD$,D%_DAD$ I$H@I$IT$H@I$IL$T$H@D$,[I$T$,HPI$IT$H@LcDPP4IT$H;` tH; ftKI$H@ D$0AHL$0D$,T$t$DWHe V1LDL$DL$I$IL$H@LDL$3AD$ DL$W菻ff.@AWAVAUATUSHL5 dH%(HD$1H L(IImD` fAHtE H9H@LxID$HL$HË@ %_DC HHHHHKH@IXDžfA fA HT$HPHHSH@H I]L(IHHt$dH34%(H[]A\A]A^A_DHEH LxMIH$+ Hv HIEH L(IHyHsHT$r4HsHT$B裹AWAVAUATUSH(L% L-( dH%(HD$1I$M}@">Lp(@ H- 1f%HUf= L9]Hc AfDHJ H8MrH 11L0蛯AF ZLL_#H@  Ӄ I$B"u-HI HHcA(H4@HHqH@<<t-H HH)HH HEHImHHL$dH3 %((H([]A\A]A^A_M7IoAF -I~W Hʀ I$@ f%f=8H If8H H8H 11LE1H#fD&H HcHH)HH9H HH HH9H L3藰HELH舣LsHELHpDsgHELHXLsOHE LH@Ds7HE(LH(Ds HE0LHLs(HE8LHXLs0HE@LH@LsHׯHEHLH(LsX迯HEPLHLsh觯HEXLHLs8華HE`LH耢Ls@H]hsHEhHLHaI$ fH! H :% =LHt$ IH;LiH I<$H LHG f%fA@ % =LǺ"1/I<$IG f%f=H %HHT$HvH1L荓H<I$HY L@ f%f=jH   1XL蘢HA| H5$ HԈ 1y@Ѓ KI$IDL9MIFH@8HIDHHx oHHH5`s1ҍHUL9L56 L EEձ AH0EIFHHXLHH{HtbƅxgH ^H yfDsH tDL訌AF HHx0HLpHQ   y,|JIMvH@HD$'HD$辰LL$MHHd1H5hI7_H DMx'H0fDHa f8IH=u1落ے@苋I~O %=u AF O HH;ДAF HHI$H#@H IE1H- HGHH0g@HHHʨHf軺fDI$IIH LHHH0fAW?AVAUATUSH(HZ dH%(HD$1H;G o#f%fwH Nr G"uHA HHB  ^f-fHqD,HqD4HqD$@H- HELA@ % =LHt$H;IG f%f=nH %L4HT$HvH1LuH|DLEعyPH HxmN@E1AA@61yxH ADMufH Hx0lH\$dH3%(@H([]A\A]A^A_mHuH;G f%sFfDH- HH}@"tlH= HH)H@#uhH9 HWHH}H_DIMxH@HD$fIfD@#uH HHHP(f.HD$fLL$MLHx`H5Wd1I7dH腥HH,DATL%[ ?USI$Z ffwH o<B"uHP HH@  ]1莌fI$foHPH HH,ffYfu:HS ffHH*H H*HX\^rMDE@NHHH+b HHHE tHE@HH@1H譊fmH ffHH*H H*Hh\^r耦3kH[]A\DHEHtH@HwMH[H]A\xiHi HHp0譅HEHx tHa I$H;B"tH h葭9H H[]Hx0f+hHtH[]H @tH- H}A"H| HH)HA#HA(HGHfHi @fDHQ h9HH-b HH}@"H HH)H@#HP(HWHH}HH Hx0!fH @%=H @%= H @%=`}Hi @%=]HI @%=@=yH) @%=YH @Bf.H H[]Hxdf.A#u H HH H}HH %@#H HHH{H HHa _HWHH9ff.USHH' H@"uHG HH@  u@1YH @%=t;H H[]Hx0cDleHtH[]f.H- HH}@"t\Hu HH)H~h@#u\Hu HWHH}HH[]HQ H[]HxJcf.@#uH+ HHHP(HHHff.fATUSH H dH%(HD$1H@" H- HEL AT$  %=t0I|$G < w$ 7AT$ % =Ht$1LɷAT$ Ht$HŁ H HtP DHEH0H踘HcHhHxtʿI$H !H@HHH5!H>LH=0!H+HIPHHRHH8H?HLH=V!LH8H?HHHHI$HL%T!I$LhI}HG u7I<$HGH8H8H I}wwIEH!HHHdH5H1$躄5W T1H=xIE=1H@?گ[H;INjwvHwL;1H=x!H1袥H@HD$诙HD$蠙ff.AWAVAUATUSHH!H+LmLeL}AE %L5!LHL)HHM9HvIAE 1t>utIE@tHH@t 1LAD$ ]HLL)HHHsAL$ 1tGurAtIL$At$H H At1LT$RT$D8H!LuL;HHH[]A\A]A^A_DI $HtHIHw1HtID$80@IEHH@H1HIE80fDIF0HEH!L;HHH[]A\A]A^A_ÐIEHx AD$ LT$yT$f.I$Hx M9DLyff.Hu!SAILAA(Iyy Aq 3H!Lx?Mt#IRHJHtHcH4RH4APH;LHtDAt5p]3yAy,tMIIyAq A3E1L[HcH RHLMtMA wL Mt͍p2IQHRxHtHH @HHH;PHLD뜐AUATUSHHs!H$!H+HH)HL%#!LmM$Ax#H1!HB(HzxCHH@HH@<t~<H!uHEL+IH[]A\A]DHfr (2yH!L+HHEIH[]A\A]@1wHtO@M$<H`!L+H0HEIH[]A\A]HH8HH!!L+HHEI$H:fAWAVAUATUSH(H-!L%!dH%(HD$1HUM<$Z"u-H!HHcA(H4@HHqHXR#tAI?IHt5G % =0HHEP#AE11Ht$<~vIHH@E1HP(B < H!HL)tRHHEI_MxHPH!LHL,LMoHEI$HHPMHELHPH!HHH贮C@I_IFHx0Ht HHx H 1臣H1IGI~IV0G!@tHw-H X$ IGHHE$A HD$HxHHHx811tL-!IG A IE0IG(IO(AF<#IU0<HIDHAA< IEHYHAHAA/<)uH!HH!HH9B(IFDx8*HCHL{tIFHx@H;=!HH;=!HGHpH蛀HCIFHxHIEHtc1ϨIH-!H8H9HHH!HHGHGHHHGAe O Lo#HCHEHI$H1HL@ M!@<Mf.t?H!HL)H]H!IHIHEM<$HfDIHEM<$HHL$dH3 %(H([]A\A]A^A_fDy,ÃfH!HIG@Hi!HIW@HHx @ H=蚩L-+!IG A iLeDIFH=qLRL-!IO(IG IEHIG(&fDAFff=\I~@H0HL$}HI~HL$HAHYLiIEHAH!I}lH=[HSH=MU?H7LLLD$ LD$IfDLL LD$LD$I(fDI~PHL$HH@H6W HHp HL$HAIE0HYHA+HIFHHHPHAFPHRHHH@HHLyHL$L+x L1!HL$II8HHHpLH9rHtJHHH9IHL$HzHHp THL$L!HHpLIHHphLL蘍IHh {H|HL$HA軈HL$LO!HHpL2[*趕fDAVAUATUSHH!L%:!dH%(HD$1H$HI,$@#t@H}LuHt0G % =H"IL:H4$H&LH!HH)H~{H$Lm11H!HHP(XHi!M,$HEHHHL$dH3 %(uKH[]A\A]A^fDHIHLHpH4$fHHHm胔AWAVAUATUSH(H-!H(!H !L%b!HEL5!HHH!LRH!HcB H4@HI6IHcPI$HHH[!H90bH!DEnH}"xH6!HH PH PH6!HHB Ɓ HBLxMIHx0D@`L-!E~AU@H3Ht$@\覟LH!H!AEHc HHH HI+$HHAH!:9KH!HHHH !H;Ll$M+,$LID(IP0H!IH9 HEHH([]A\A]A^A_H9!H8B ;B$ B H L @N HBJHD$f2zI+$HH=)!BH!HHBH!HH+HB H!B(H!HHBIHB H,!HIHEL0@"]H H-!HNNNA(B8HH+AHHLA(LzHI@`Lr0BPHEHB@1AGfBUH.!AEHcHD!HH׃HHI+$HHBH!8HJ!9I@`IHcp`~HxHtIHcp`H@HH@HHEHPHb!HHD$HIH@(H([]A\A]A^A_ÐHH([]A\A]A^A_fDzH@D$.HB@!@*L`1MtoL$HT$HL$L$Ht$LLL$L$ H2AD$!@t'ID$HtP L$LL$ffpHA!L IhI&fDOKIAD$ f%f=|$/H$IE;h Hb!HZff|$,I H|!HD$81L%l!H-!H$I$E,qEH$I$H\$0H!!H|$0H8HD$80TH$dH3%(4 HĘH[]A\A]A^A_IE;h H$NaIMH=!H$HcA H4@H4HAH !HH Hcp H4H !H1p(H ݬ!1HpH !H1HcHHʮ!HHHH$t|L$MtoH !HItAD$ f%f=u |$/gIDHѥ!LL AT$HcLĀMuLH!Hf|$,H\$0WfHLD{ ,HLsH@HD$H[H+!HH@HX(IHx0u>@]LHh8HHEH@HL9IIHx0tL-!!MMAi(IyHcH@Hljƒ   AQ 9~JHcƒH @)H HHtHH RHHH)@у  HhH9uHo!H@!AFHH9IcA 9H@H5!HIALDLD$AH %9=LLALD$AH f.T$ Ht$E1E1H!DH8M_H\$ LcLodHt$HH>HrmHH!T$ H8 >VIHEHH0D@$Ht HHH H HŎ!L0VH51m[IGHD$IH@HD$   D DH-!HE1L8HWfDH5 1LD$ DL$GLD$ DL$LDL$ LD$jLD$DL$ HÊ!H+!@1L7HfD%9= LLLD$?LD$AH L$$H!H$H-![ATH#!USHb!HH+H)H~!HH9rHUHo!Lu0HHA!HEXH@`Et E1A1DHuFH!HHXH+HtE uu1H=jHHL[]A\A]A^A_f.H8G HHH+W!HHHG AtG6itHGE1@t#HH@t17AAEDA1LLgCfHы!HB J"f%HBH=TH=]AEt|HR(B f%f6HR(1B f%MHBH-HHFB!@Q8t&E1utDyPA Af.HA!HAE1I9ADH!H!HHf=trtf=]AkBfD11HNU %_DE HeH!f.A5DE1(HRHB f%f-fHF@HNVHHH@E1HAHHG80AHHx AH;=!AH|$0H|$ff.@GATUSHY!HHPHc!HH19[1]A\A]A^[]A\A]A^sr[]A\A]A^fDI,$@IE" HxHHDH5<H=1WH=I1)f.AWAVAUATUSHH}!L-~!H-!L IEX"u'HMHcA(IHQH4@HHXL=!I?HOL1M(I$M|$Ht@HHl|!LeAD$ A;D$$AD$ HLH@HID$HHq!XHH+2HH S!HPH!HHPH~!HH+HP H#!P(H?}!HHPH!H HH H K!H H IUHJ0Lp8HH0H~|!L8HH[]A\A]A^A_ÐL$ XL$ AD$ LeAD$ "y,Ã1MIH@HIL0fDUSHH-~!HUHcB H @H HBHHP!HcSHH<SH{!H8Hz!{;8HM!HS8HH@H8HHC8HtwwH}!HcS HHH}!HS(H!HSH{!HHSH\!HHS H!HHEh H{!HHH[]HS3Hz!{;85<.+k@QfD111q7AWAVAUATUSHL-o{!L%z!IEI,$@"AAu/Ht}!H HcQ(H4RHHqHDzALuH]MAF HLH+u!HHHAF Eu'tIF@t+HH@t1LB& IHx HHx!D0H|!HC ;C$C HH!HH @H HCHH {!DxDpH+:HI,$HPHf}!HHPH`{!HH+HP H!P(Hy!HHPH}!H HH H !H H IUHJ0HH0HH[]A\A]A^A_IHtH@H HAtZIEI$H@0HH[]A\A]A^A_@TC Hy{!HC fDy,AA H!t!HHHE@L L;5s!dfIF80LATUH-z!SHUHcB H @HH HBL EA|Hc؅L%*!IcQI$HIHL&H3LH1H;uL[]A\fDHn![]A\Hx0w5AVAUATUSHL-r!L5s!dH%(HD$1IEIH(E B#u NE1HE@ HH@H|$\$QIHHOHIH@ yHLH+m!HHHCAD$ tID$@tHH@t1L-II}@"HMy!HH)H@#tL`(LgHI}L DHD$dH3%(HL[]A\A]A^@H E LII$Hx R@#uL'I{I$HtH@H$HtID$80@L;%l!HzHf6HI>fDAWAVAUATUSHdH%(H$1HIp!L0Hq!HHn!InI>HHJL<ȋG % ="1\QIHp!HZ"u-Hr!H0HcN(HIHHNHXHzl!8B#L-4u H5RHHDILL8#IH1+Ht 8Ou@Hl!8HݿO<1LHICHHv!HH)HTLH]x#HEIHrHBH)HvHHrI~o=IFH|k!8{E11ɺt1LPbfHyv!Hj!Hnn!H(H4o!HHH$dH3 %(SH[]A\A]A^A_DMtAvAvL9Hu! ‰E֍q@~ ʉрɀEHi!Hj!Ho!=f.HHp3HLgHDHLx'H?fD~,Hj!Ã8fDH5q1&Hm!HbHLL|@Hh!fDHh!HIHl!L0Hm!HHPfDkGHp!HH]h!11LHHr1fILLHPAHu4.H t!HH)H~@HLLxHh!8E11ɺt1LML1HH1HhG:AWAVAUE1ATUSHL%l!H-k!I4$H]F"xL+HH]H;O ulÃu-Hn!LIcP(L RJMHIZx[Hr!HHtdI$HH[]A\A]A^A_@HHHEI4$H8F"O h@HH[]A\A]A^A_fDEHg!8Hj!HL+H o!H H=IHH@ *HD$[,HD$H[]A\A]A^A_Ax,Ã@HWBHHBHe!IHp0@IHu2I4$F"H1l!H=Bl!H5O[# LmtCI$@"@tcI]LH-I$@"@tIC@I]I$Lmx"H:Hf@ tHk!H*HHPHE1L6KDII9|H۸HHMlXH6GLLH.IH?HcH|ff.Hmi!HHP(Hg!H(ff.@AWAVAUATUSHHj!HXh!dH%(HD$1L5q!HL#M.HHH Hc(LHIL)HoM9tzI,$E L=h!L5c!Hp!H8Hx$M4$IL#HHt$dH34%(^H[]A\A]A^A_HIo!HL)HL5Kc!L=Dh!MeAFHIHj!HL)HI$Hd!HI$H;H al!L*IH+HIoMI_IFM}Hx`&IEHPIUH8G%HHEH@HD$x14H@*He E +LD$SBLD$aLLLD$$(LD$I#AWIIAVAUATUSDHL- e!H- b!H<$dH%(HD$H1IEHuH@HsH@ EHHx(L5d!HL%k!H=hi!HBIH2LI+$HHVHLZM$HHHRHI4H7H0H6HvHIH)L]H8HIEI@I>H9XHac!HHHHb!H;LI+$HHA H]ICIKEHM;H<$ށ]$IUL}HRHIH^h!H1LI+ $HHNH HyI<$H H HIHH4H3H2H6HvHL$7LeH:IUI>tAHcH)HH9L,I|$H)LMI4k>Le!H`!H\$HdH3%(HH\HĈ[]A\A]A^A_H$މ\$ HHD$8HD$PHD$@AAAD$00MDHD$HL$'DHL$@HD$0H9Et+H;I9t:D$0/vHL$8HHAH9HD$8EuLD$LD$HI9uHL$HD$\$ HLHM9.L=g!L<H=D.=III{IwHL$LLD$=LD$HL$LLLD$DL$L\$?HLD$DL$L\$pD DL$HL$HT$z=IUDL$HL$LT$HPHBOf.LD$(DL$ HL$LT$L\$=LD$(DL$ HL$LT$L\$@LLHLD$ DL$HL$LT$#LD$ DL$HL$LT$IjfLLHr#I[U.+AWAVAUATUSH8H_!L58^!dH%(HD$(1HQ]!LHHHH HcHf!HLIHPH [!IHMkIkHLH}Ht HHx(H3S!1f<$HHx(HHS!HID$HW!M>HHL$dH3 %(HuqH[]A\A]A^A_@IEHHXHHCHHhHp ^fD|$W_$ff.fAVAUATUSHL%AW!H-jV!I$H]@#tDHHt J v`HR!HHI$H]HH[]AHHPHGLAT$ fDIMHL$ HHQHcHcIE80CHEL`L$Hm1'H@L(MHD$(E1HD$ DŽ$ @HmE1E1 H5H=%E1E1 H5bRHL(%11HL`LH8G % =,Aƃ[E1E1H5GTH$Hu7AD$PI$H@HHwI}H5ponHeH;- H HI HLH=PH1^fDLLHE I$HpH$I|$fDK0AE L+AE #H$1I '@IEHx 2DŽ$HH|$ IE1E1H5H=H(HD$(fDHD$(E1E1HD$ HDŽ$DŽ$@11H$U %_DE Hp.sIcAL$HS"HHD$HB f%fD$FE @HH@ H$8/ Hd% Ll$I=H|$H$3H$H v |  H|$%+D(  HHD$XH|$M(f|$FYHD$X?H4$H$&{$%=@d=`YH$E1E11PH= H5jk)HXZH HD$XH $H5?H1dfL;-M"L0HL$ fD $1H=FE1 01H=EIH-/L|$`IZIH@I9LLHHt+H8t%HL=H3LIAGtLJ'HfD *H;HHIHLH=H1@H Y"T$PLI@Hx HH4$E1E1 HD$8HZHD$HH@"tHP(B f%fE1퀼$DH$1H$HD$PLǾ T$ T$H@Hx fD1 f|$FY1HT$8H4$H='H1fDHH@ @LǾ ; H@Hx fDHIHD$LIAHx H@H4$E1ɹ$DkfDLh%HHH8G 3'HD$8H@ AD$I$H@H1H<DH=1+HI!H;H[LIPHhH@HIUH-LLH=H1fDH$HH$Hlf}.pH$f|.hf}.p@H4$LL1H=0H4$H=1fDL1~H@H8"f{H VH@H@(HD$@KHD$L( l{H@ L fDAD$ % =@H$ L-H$H$HH$8AD$L$f.HD$8M8.H|$uHD$XDd$PYHh*LH8G % =3#Hc=W1HigfffH")tH.H$f|.hHH$HlHD$XcL9"HHfD  LǾ T$nT$H@Hx B#@PH$/.f$fHhHv!$tH$8.tHf8.pPH$H=1DLϾ LD$LD$H@Hx HiQH%)CLϾ LD$LD$H@Hx I$H@H$ID$H$x/HD$8HD$8H8/tHD$8)LLIH|$M+f|$FYHH@ }mH$Dp A H9iH$IxYHQ"DH%@=@9/+HH9EuHtQ"f.HHHH)HrKʃ`?H%Q" DfL=SR"AHH9w(HP"^AHH9tyHHwGHH)H2Kʃ ƃ?HP" HHHvH9w%@=@HH9uHK"H@8u EH$%@=@NH5LMH9,$H$L5HL&HH9;/uٺLLHHh1HHH$H9HK"H@8EH$H91HH5h.H5LgJ}h@H5L?"1HH@xmH<$1H+HH<$H$fHHD$8HeƄ$E1|H$H=L1H$xXH;N"D{H5Lz2H5L\?HHH$SуW? nL9HLD$ HHEH=1LL$1IH$H=$:X $H4$LE1HKL-AwLH=H1H<$Hw H$H=1ID$x \DŽ$|.DH0H H @MtH|$LH5,1-H9H g7IHD$(E1E1H<$1HnHJL"-%=uUHL$ AIEH@H$IE.H=1H=1DŽ$HL$ LsE1E1DŽ$ff.AWIAVAUATUSH8H-0C"H4$H]LkL#M8AD$ XMT$AB_LsLuAR Mt "Au ^ʀ  q LLLuH耲H]H+>"uH0HCDHC"HH]HHDDLsLuAE H="HCtH0HSHEHB"HHH8[]A\A]A^A_f.AE LXIAD$ DL3Iċ@ IHBHLL{HRHUHBHB"HHUHHG1Au I}H|$H|$ @M\$AS ʀ   A IHXHHHw<"E1HD$UDW tHG@ HH@| 1H$H$e II9I|$1LAHtMnHI11ILuHUH:LrHtG N HHH+D$HHH G u)HH`H@HHIHG802HL$A'u'.LAE HQC"LkL#HH]@8茼H]L#MAD$ h H:"HHHD$LH)HHHD AD$ xtID$@tHH@t1LwHD$HH:?"H]HHjH!:"Lh8I}H|$H|$ T$AR Mʀ Z A @@  3? ILhIE1Mu QfH@ t$IM9t3I|$1LHuHA9"LH)9"H0HCH>"HH]HHH8[]A\A]A^A_DLkL#H]H8[]A\A]A^A_KfH?"HHHH>"H; H>F"HLL+2ID0L+H]LH]H@t@HlA"H=D"HH9 THE="H]HHufDmBfDHL$HHBLkLLL#HH]3HAD$ AD$ LsLuMT$ fH7"HH0H&f@@ 2 HD$HLxIGH$H<$H?7"L-="D$1HD$4fD$H $@"HB"H H9y HH;$H|$1HIIEH <"HIEH;H5OD"LH+HLMt IHIVLHEOLuSIVM6MAF  HLH+D$HHH| AF _ tIF@t(HH@t1LHT$ HT$ IH5"HD$HD$H0@xM\$AK   [L\$ML;I}IGbHHXHHtAE1I}1LLuHtH0L~LuII9uDH5"H0IFH:"ILuHH2j1E11jLAL AZHSA[HH4"HCH9"HUHHfDC}ZIH@HHD$^HD$HH@HH;D$M8 H<$, H|$ H4"Lt$(1L|$ Lt$HD$6MtIE@ Mt I@ u~HH;\$i I|$1H1HLIIMtHtI}1HIjAE1jH|$0H11^_HHII9EtLt$(fHD$9fDfDHD$@  I$H)H@HHID$80@D$fDHD$HH7"HUHHf.\@@  H|$Md$HL (LuHH|LuL1&HHufHHx H0?H6"|$IVHL$HuH0INHUHfI$Hx LL HcHH;|$OHT$H<$HT$H<$LpI9H|$H/1"L|$I$HD$,f$H:"H<"HH91LHHH7"HHHH}6"H;H5>"LHIH+ HH LILu6LuZI^M6MJAF LH+D$HIHAF tIF@tHH@t1LIIL`IE1MMx1LLHt*I}jAE1jH011AXAYH$IM9u.H|$ LcIGH$IHhH@HDHQIF80$%[$s+I1HzLjtLL$L$HH|$I)1HHzLbtL$L$HI)M9bE1LL$E18L$L|$M:f.jLAjHE111A ^_HL16HHuEH|$HHxLht D$D+D$D$H-"HCD;d$cH2"$IVHL$H HD$HLhILt$E1MMFfD1LLHt'j11AjH0E1L ZYHIM9uH]HH-"HCCHcHIHx ALLcIFH,"HD$hL;t$LHT$ HT$ HHH/"HH$H,"H HHHHC`HHH $HS`HHHH@HH@HH@A _Q H $HI H@H"4"HAHHyH8HI-"H;8H)"H $HH I Hk*"L8MIHH."HH+"IH IGHC`HHHS`IHIH@IH@IH@AG _AW uhIAO H@H23"IGHHyH8HY,"H;8H("HL} HEuH@;P8vL{M_L[M-L;[{ HD$H0F 1LL\$(LT$ LT$ L\$(H#"8u L;l$kHC@Ls(L9v?L)AB tHu%"HB8u AF L1HLLT$LT$} HEuH@@[tfKAD$CZAF < IHzt!I~ALT$PILT$IBIFIH@HBIIHRHPAB IBH""ELHHD$H8AF %DAF L-"A}0AF@Hn""{HQ";8H{H考H{PHCPHtwwH{(wwH""Hh H#"H"H\$HI$H8[]A\A]A^A_fDHPHH)G t'LT$ TM HELT$ HHPB[HLT$ } HELT$ uH@`XHEM } HEuH@L;l$H@ LHALT$ HS@L\$(LK(EhjHL$PZYLT$ @L\$(Hl$L[@} HE@[tLHH;T$t>HC@LH+L$HSHHT$L)IHHC@} HEuHT$HpIHHL8HD$LHC8L9v}L)AB tcH4""HB8uSHS(B uILHLT$$1Ҿ` HILT$1LL)1HLL} HEuH@HH|$HK(HxH{0AD$CHEK A HHL$HL$HIA tm AM@M}L9tEH"8H{HHH"H\$L H"HID$PH8[]A\A]A^A_ t H "H@8uHyJ4?IAeM}rIWH "H@8AN HHRHzttBuHrH>fHHufLLT$AF LT$HpF[HLH9T$g%=]H11HL$HL$BDHD$ML>mfDH"LT$ LT$ HHL$ILT$ LT$ h@HEM Hƀ tySF[uOuX f tOH{~&Ct AD$CH{(tHE{ E111LH"DfSHEM uH@HXHpffKfDHLT$(L\$ nHD$LT$(L\$ H0LLT$ LT$ fLOfDHI"ZfC$ƒ f uH "L5HHtSAV  t2IH@Ht&@xtt@uHHH9HHuހM@HEH"8*A}E11ɺt1LfDLHLT$k1Ҿ` HI2LT$1LLpLT$fDfD} HEuH@HXC HtH"HB8u I~HweHEWHuHWH)%I~AF HD$E11ɺt1H8C\H=vk1BfAW AVAUATUSHH?"Hx!"dH%(H$1H"HH$HHHH HcHHHHH$HBHZHD$pH"H\$XH8/HC $D$% =MH|$XH$IH$HFHD$Xx H|$XHE"E1E11H|$XfH/HD$`HD$XH$L@ ‰D$ &HD$H@ D$% =H|$HH$L$HIMD$Hع f @ǀ@@@u^u HL9uHcH<I9HIIHE1E1E1E11Hs j  8HyL))t!IEt IAICASI9IH…t HPH HBEt"1EtHPL)HPHI9IIHE1E1E11HHs 5I9sHH\$`H)HKHHk(HHCHD$HHC Et E H"H8G %=H$HD$X@ HD$H@ Hd"H8H"O Ƅ$HP8 t $HD$HH$HH@H4@HDƁHXHtH\$xHH9pHGHHD$HD$H@ D$% =gH|$HH$"XHD$PƄ$1E1L5Ƅ$D$HD$hDŽ$D$8D$ HD$(HD$@DeLmA#DIcL>ffHHD$`H!HD$`H|$XHX w Hh(C H\$Ht$8tHH$H9PHHD$`H@(HD$HpjpHD$`H@ @udI9Y1^@f.NH#t.H@ H)ىx H^IHE1A @1I9 Ƅ$HD$P % =& H\$"H$HtH$S HD$(HD$( Ƅ$HtH "H@8$LH*$HD$(H$"$H9 f.Hx b H9uDHD$(D$LE1HD$XfDHD$H"HH H+B$HAtJ HHc$H$HB H|"H"}HHHqH "H"HHHHH$dH3%(H[]A\A]A^A_DHy "HL$H0H9?$AQ L퀼$H3@ H|$wHD$@@HHcD$ L$AH$HD$("$HD$H"HL$H8HH+OHH $u$$LH$I@E E1HT$xHt'HtGuI9psQHB"H8HH@HGH$Ht$HHE H$HHL$H "HHHBML@D$8LD)x)L$8q_H|$HH@ )ʅIHt$HHDHD$LDmL%7HH%A LDHD$@ A@t % =5 H|$f(f1L$8Df/E  )ȃAD)@t@Y PuHA@Et^%uff/Xf/|$8HD$OHTH@#H9uHD$D$HDHD$f.HcEH$LeHD$PD$8HD$pH9 HxHHD$pH|$HD$L@ H*zH "8jH"E111tH8WJfEHHD$P7EH|$PHuH$H HD$H$@ D$% @ H"1AH@8DEED$HD$PHHL$PA~HD$?DH"HL$D$L탄$HH+HHL$h{HL$(H$H؀$ LH9ND$8D)CHL$y HAuJx uDx u>H5o"HHJH9v+L%" fHH9tPADDtᐺ..@.Lf@|$HEYMHfDH"HL$hHD$PHHHHD$8 u HHPH9rHx@ LH|$afDmL%HH{A LD;f.HD$@  < H\$H$"HH$HD$(C Hl$(Hl$ H"H@8$D$t-| @NH|tAfDNH>tE1E1.HH)ىH1ɀ^HHH tx HH HAEt AHAI1ɀ^# HfA $HEEED9d$8AD$A@  f.A8H9$pf(fW ^\f/*H"Ll$f(HLLHH+HHrLH)΋L$8螽HcD$8ILl$D$HsE11$fHxfDH|$H$辺H$HD$IH"H8LI@Ƅ$EpH$^H\$HHHHCH$HD$(fDHGHt$E1H,HH$H<H|$H9dH3f.H5 "``„t HH9t/A~u΀~fDH$fDH$H<H|$fHD$HP(fDHAH$H "$HHL$hHJHL$$1eƄ$D$<kƄ$1 f@Hs^@ IH 1E1@HsAAHE1E1fH\$XHH@H$LcHH@H$HD$X@ *H|$XH "H8H!8E11ɺt1"DH\$HHH@H$HCHD$PfDH"HHB(DHT$(H|$H)H$fHD$HL$XH9tP @H|$HIċ@ % =1LNHHD$H@ D$% =H|$H1H|$PH)HH|$`HHD$PHGHD$HHH|$`HHWHw(HH H|$`LHLd$HH+G(Ƅ$HHD$$P L% "A%D=DfFHA%D=DtH\$HHL`L$H[I00H\$HHHD$`HHh(H@HX fH\$HH[HrH\$(H$fDH\$HH[HjH\$(H$fD1H5}H!H0HD$H|$H!FfD$8HIHD$HTH@ H9uHD$HDHD$11HP "H8HD$hLHHHLOI@tCMLDMI)M~2L- "At5HI9ILHHuL)HT$hHT$xE1@L%"A%D=DHH9r DH9PHADDt{#A1E1~.~.HAƄ$${#BA1E1LA HH@Hxtt@uHHH9HHuLH{L:HIE11H HXH\$(HD$LE1H)H\$HHH$HL$DEHSH?HD$HTH@ H9uHD$D|$8HDHD$<NH#tII)Lف HD$(D$E1HD$tH|$HD|$8D$ H\$(E1D|$8iH~#Hu H>#tHH) A ! H=}[H=41ff.fAWAVAUATUSHH!L%0"L-!HI4$MuHcHH<I9H ;!HTHIUHH;H)H !HHHHH;IUI+$HL=!1I?IHHbHxIH@HH=! HHcI$HH*E I%E HBH8Htw9wHBEH(H-y!MuHUB f%f=tHH@0H[]A\A]A^A_DHH !HHH;&M+4$ID0HUDHHT$μHT$HHH!HE 4H-!HHHUB"u)H!HHcA(x{H4@HHqH@<thMuHHH[]A\A]A^A_GfDIUI4$ fDIH@y,ufH"HL)H~,H!IHHIoMuLLHUIfAWAVAUATUSH8H!L-!L8H!HD`"IExWAu/H !H1HcN(HIE09pH=!NIEHcPIH,ЋE AH!%E HHBH8HtwwHBEH(H!L8H!HH@0H8[]A\A]A^A_HIE苸IEHPIUXspIEHP+pIUHchIH,A"AuHcHlHe!H(H+!HHH8[]A\A]A^A_H!HT$HHH9諮fD~,FPL5l!AtH5!HcHD$HH<H!H98H!HhH)HH9|L@!HcHL$I:H4HD$HI*GIH}A9tII<$HcIHGuѾ菷L!IHI*HuH}IA9uDD$H!EL|$L$ HDd$'Lt$(MfU 0)@H誤AG n% HYHH=r1"fU ILp HBH/HPH"E % =HVIHRHRHH9B lfHLH9H=b1L@LPH@O4QU ,E HHH+!HHHE <tHE@HH@1H5LܢAG @IW:0|U F%SHEHx HEH@ fDHEHh HH@ LLLIbIHzv% =Ht$ L.IƋE % =Ht$ HHAW Ht$L IE tiL5!I@8uXJHHD$@@LLgIH\L'H诛HIAG 0VIHL$H9HDH!LHL)HL責HzHE@(I@(HEHH@HkHHE80LTHEH@ 9HJ/1H;-$!IMwH@HD$dHEH]H@HD$v1EI@8@65DHH!HB(Hzx#HH@HDAt&DH@r GAyDH1H=Lg1FfDHS<DH@H5!HB(Hzyr oGHE1H@HHBtHRHHB\DEDH!Hp Hx#GE1HH@HHBtHRHHB\DEDAWAVAUATUSHH-!HUH~B 9qL-!DgL=oHH @H HBL4A~A;}AЃ< wxIcL>Ѓ<t>@IF8H8IV@HIF@HwwA`tI~8Hu?f.HUEf.HA!IV8HH@H8HIF8Htˋw/wHUB D9uSH !Icv H H4H t!H1Av(H !1IvH !H1IvH C!H1Iv H !H1B 9H[]A\A]A^A_DAFH!I~P?IVHH!HHt!AF@tIFPwwI~@HtIF@wvwHUAF8B( I~XH|$ҢH|$IFXw!wIF@H!HHtH@I~HH!IFHHHh`ww袧뀃 'H!IF@H !HHtH@I~HHAVPHP`IFHw.O*f.I~HEI~PIFPHtwzwI~(wLwHUB D9DZ JfD蛔fDI~HIFHw,wAЃ<I~PIFPwwAf.Hq!IVXHH@Hx(HP(IFXHtwvowH!HH8G@HHGH+A HHAHHH HOH@ifH@NۥHUͥåfD賥詥A8蛥葥M臥1HT$vHT$gAff.AWAVAUATUSHXdH%(HD$H1Hc!L0AF"@CM~(LכH-`!HD$HD$8AF#% D$$HED` EHD$(IcH|$4HjH RH|$H|$@L H|$DMN,MA@LpMAʃ HcH>f.I~HT$HD$@Ht$D$4 HH?T$$D$4Ht$@1Щ .NHL$LQHEEHPH D9~`HcD)H4@H4HH2Ht2QH RHHH)fу HhH9uD~HEHPH\$HdH3%(McK@IHHX[]A\A]A^A_@ᏀtWHy!H8G f%f=|H }!%H H!HH5__1諅AqAIhA_HEFfDH1!HHHHC H\$( H\$(Ht$8HIINjC H\$8H\$H-!% D$$HED` EH!H@"@yHD$(@ jH^!H8G f%f=oHb!%H4HT$(H=d^1.fDH9t$I9HT$L觯f.FAH{H-!HED` E#IcL=gHG!H RL,IHPN4*A> wiIc4L>@tSH`!H8G f%f=Hd!%Lƒ1HH5K]L薃A}AIhAtoHEjDHHt$HLHL{HzH|$H|$8 fDM(AI\H!L0AF f%f=H!%H4H=+c1d@ H[L-d\LDH9GHHsH9w/L%"HI<$]I$[]A\HH=lK1ff.fH"8H,"+8DIH>"H"IHc HHHLpL@H@9HC":9 f.)院fAUHATIUSHHH-j"HEH)HH=HMHHHH9w3L-"H4I}ӚH]IEHL[]A\A]DsATH"UH-"SH"L HUHL9~+HHH|Htwg vwL9[]A\@;HUHfH "H"IHcLc HJLLHpHPH"99|D)AATUHSHGH0Ht9IF uHFEH.苊[L]A\f.1iL`I4$F tH"I<$rI4$HtH7HtFfDUHH?PH3]Hff.@HH?̉ff.H7+鯉ff.@AHj"H;"IHc HHHLpD@H@6Ho":9|fD)ɟfAWAVAUATUSHH Hwt H@]CHHHHHCLj(MtFAEt?IMHy t4y"H_"HHc0HHH 8Hz"9|$HHL1H==>訙)鹕fIHMtA@LfAWAVAUATIUSHHdH%(HD$1F  H"H衠L,$HŋC EM}Aީ LEDAD$VHHtVB(LH^HLDHD$dH3%(u7H[]A\A]A^A_ÐHHnLjL,$L1^hH@H Ž"H"LcHLJHtGHzxH"H2HB199|fD)IfHe"H"IHc HHHLHpH@H":9|@)H"H6"IHc HHHLHpH@HE":9|@)顓ATUSH"H{H(vDC8HAL%"H "I$HcH@H׃Hh H"HHH"DHrHj9:HBH"9|UI$HHPHB L`iH{PID$ []A\7zH"[D]A\!@)蹒AVAUAATIUHSHH"H"I<$Hc HHL4G urHtEI.IvI$Ht@IFH"{IF8:9|WE @teDLAuEufH[]A\A]A^fHt$cH"Ht$sD)ّE @uyHzf.PHM$$迍HtHL[]A\A]A^pfDAWIAVAUAATIUHSHH:G L5~"H"IcHHL9|ADLvAuEu:H[]A\A]A^A_Ht$bLD$_@)詐PHM$$诌HtHL[]A\A]A^A_o@UH7HF uFH/yH]H(bHuHtff.fHE"Hf"HcHHHH ھ"HBH1H2H5"8Hi"H6H19|@)AUHcATUSHHH-θ"HcuHL$Ht9HHIH!IH9u7H "T;@H"؍HHHML,HL[]A\A]fH1H=7{ Eff.AWAVAUATUSH8H7"D$L%"AA$9L""H-#8IH="HcH4H=9HHډA؃??A?<H)HA$H)ր:jHcTH>fL6L~M7A$fD9\$H"H8[]A\A]A^A_fDL6L~E7A$L~LA$LT"f.L6HAA$HFHD$H"L6L~L r"B:pHzHLL$(HL$ HT$͌L$ HT$H4"LL$(:LzHLѷ"Dr8f IH@Hx A$H)A$L6L~I>M>yLyA$Ls"fDL~L6HF L>LLA$)eA$L6"fL6L~1MLL:MtApApAG@EAwAwH#sA$sfL6L~IVLLDHFL611L~E1AHD$LLjLjIMLg"HXZtAwAwHz H"LAHI9b MY HQAFL|$L6L~I>L9MqM>L"A$5DL~H^L6IGH\$HH;iL3L"A$DL6L~LLvtAF@L"H"L҂A$L\"H a"H"L~L6HH+I7HHFIFHIHIH4H y"H1IHIHHH"L0H"HL0A$8L~L6H^EAE#^ H\$A E^ f.L6L~IFHx HtwVwIFLx AG@Av AvA$f.L6H^L~IH\$Hx(Ht\GtVHHx tLxIHtCAL$!L I\$8cboqH"H8EbHL[A\f.Hٙ"H"HH9 VDHgMHVff.AT1HdH%(H$1HK"H|$HH$H"HHD$H!"HHD$|oAăLzH"H"DŽ$Ƅ$f$HD$HH85VnH5H1`?CfD H"H $H-"H HӚ"HL$H H"fHG"HT$HH$dH3%(HDA\H"HT$DŽ$Ƅ$HH"f$H"H0H"8DF$gHq"H"DŽ$Ƅ$f$HD$HH8tHxD>H=cb1laHȎ"8BfH1dH%(H$1H-"H|$HH$H"HHD$H"HHD$^m9wkH"H Ș"DŽ$Ƅ$f$HT$HH:";lH5H1E=AH h"H4$H"H1H "Ht$H1H "fH/"HL$H H$dH34%(HH"HT$DŽ$Ƅ$HH"f$$uDHi"H "DŽ$Ƅ$f$HT$HH:tHzLHuDHLgHXH$@@VMMMH XH 1H57e21|rH="Hcu HH IM(AMHMI $HMIHM B H H[]A\A]A^A_dAD$ H7"L AD$ tf.{;H"HB wf@fDH ff.@H-ff.@AWAVAUATUSHX|$(dH%(HD$H1H3"HH lHHcD$'HHIL,IEHXXLp HHxH\$HcAU EHL$H\$[E  HU"L8MaIHH"HH"IHIGHCHGHfHHS@IHb"IGHHyH8H"H;8H!"HL"LLL$(`L5ʊ"1I>ZIHHbHxcIH@HbH"LL$(HL)HIHBH8HtwwHBHه"AGL8HHHH8"H;wH"LH+ HHHB"HHH|$IAIAt HL$IAIIH J"H|$ E1HHAH+"HE~OL0HPAF u% =LHT$(z\HT$(IHE1H ̈́"Hv"HH"HH9 FAG MM!ÄPt 1LHMEM?HD$HdH3%(&HXD[]A\A]A^A_I1<LFE|$(1LGAH|$AG E1 "L+I9AG  1L|*AG ME!IEH@ HD$HtppIEH@XH|$t(HD$pyHD$pIEH@xH=K.ME|$'DE Ht$@L dHT$@HHD$H H/HtHpH)Ht$LHKAE _AU E D$'HLHE DE %=1H.FfH9Lt$HHAL5LLH'afD+;I% =01Ht$@LbHT$@HD$0HD$HH9HD$0LL$IHL)LLLL$HHD$(EAW LL$HD$( t AM AW LT$@I)€ILPAAW EdAYfLH JH\$@H)\$?HPHT$@I]fD9fDLa$HI"LIAH8HG HHH+|"HHHG @tHG@t/HH@t#1HT$0H|$(T,HT$0H|$(HT$(3HT$(IH{WH LZH|$0 HT$l,HT$HtLHHD$0HI9 AW fDL7MIFH\HCHG80HGNLcf.H1v"1AD$8fH$y"HH@Hx tI|$@AD$P|DHE}"Hu"ID$@L5}"I>HtNGnHLhMx8fIH@JHH@ tH@ HtHIIuf|$Y4L-`"IEGH`x"H86i8HJx" AD$$H8O!CHHy|"@I?HtCGNHH@HHt)L%s"f|$YM4$Q=M4$HH+x"H d"H5v"@`Hx"HHPHHcIUHu"H.HHHƂ H8[]A\A]A^A_0HQ}"ID$@QHD$HD$(P8H)v"H(f|$YL-(x"tMEI@H8HH1SHv"H8Ht;Hv"HH*w"H#w"I}HHPHHN~"HcHHH$Hw"HHcB H @H HBH,HGH0HHI}HGH(HE % =1"HU8|$tH p"H $HHAHAH$H5t"H$H1H8[]A\A]A^A_DHt"H+L-v"I}HGH(Ha1[EH@H(E % =SHE8]H5ZH_8Df.Hr"HD$D$fID$@$f11LD8AU %_DAE GLN:fE f%f=Y1Ҿ H=?KBIHHr"H u"H5rt"L0Ht"HHD$HHH;H |"LH+HHNz"HL)HID$0ILIHlr"L05Hx"BH8m@I1@tHHp HtHHe"H(HSHEH5e"HHj"HH HEHEHCXHWHHHSXHEHHEH@HEH@HEH@HEH@ E HE% @E 5IH$HD$0Hd"HHD$HHH5d"HHYi"HHHD$HHpHCH&HfHHSH\$@HHDo"HCH8HD$HGH@(HD$HH$1HDŽ$H$LMInf.LHAGIH@H?E HE$ oEH|$`HDHD$Htx uH@HxtptHC#H0HHEI$HIHp HH[]A\A]A^A_ÐjE1A1j1Ht$H|$@"AXAYHH<$Ht$lIEHIH@0H[]A\A]A^A_@jA@E11j1!^_IMffLUAWAVAUAATUSH8HF#HH#HHO#L0HH\$(HpH2HcHHD$ HCHHD$HG#HH#L$@" u E1D$AA^1HL$ A!MtL9t$sSjE1E11j1LH!AYAZHt HH8Hu HA#HxI>IL9t$5M>EEtj11AjE1LH ZYHxH9A#HxHH9`HW|$yHCt>HHJ Ht2DB#HHH}HpH2Hc0HLHtBt G,IM9rCI>G % =uHH@ A HyDHy9#IHIFM9sHa>#H0L}HH[]A\A]A^A_M9sKH$E#HH)HH&9#HIH>#LuHHH[]A\A]A^A_I?G % =tNH…x9}HIDIILuHH[]A\A]A^A_fDHH@ HL$AHL$HIHd*ff.@H>#AVAUATL%`<#USHI<$HHH Hc(HE#HH(H)H]HHHcIHC#HH)HL5<#Ix"x(LI$HEI[]HA\A]A^fH:#HHtiHH H>#HHPH@HHpHAe LhIŁH HHHHHXT@롐AWAVAUATUS1HL5 <#H v9#L=/;#M.H)M'AE# à HHEHH=#HL :#A؉] HEEKHHKHEHHEH@HE $H@HEH@HEH@ E % @E HEAE#HJ8#IUHLIf{ C HkAE#<#IB"u-H=#HHcA(,H4@HHqH@<HA#HL)HII\$IM'HH[]A\A]A^A_fDHH HHH<#HHCHCHHHCHA#H0H~H8HN:#H;8eH6#HHHkK JHHLD$xAE#LD$<LfD{H ,7#H@y,M'HH[]A\A]A^A_fLLIHH@HEH@U %_E uW E HEH@fDHLD$BTB4L 7#LD$H P6#4H(E H 66#@Hff.AWAVAUATUSHH7#H9#L%5#HHI,$HHH Lc(H@#IL8MILl$H*HEI$HS:#HL5 7#HEH HEIF`HHIV`HEHHEH@HEH@HEH@U %_E  HE HEH@H7#HEHx">H$HL)HHHL9DIGH9IIG aM,$MDIUI$H59#HIELIEI7j1LAUAE11H5Y^L9MwAF kL~IIGH9[1H5 I$HHI$H8#HH1E11H@ALHjPXZH>#HL$HHIIFHuH|$9HHH9HHHT$0H$HIEHH4HT$0HL$HtrL$IEM9 Ht$HpH;p0HpMtEIEHL$HPIEHHLHHHH)HHHJJIufL;|$t.HH9D$H4$IEHT$ HyH-#H$IUHHB"<tREHEHpHAF H%#:IvAF IULsHH'##HHH([]A\A]A^A_f.Ha$#L{LHL)HfD$H<$#fE M9vmf.IIIOH)E@t!HuHH>HtwwHMHHM9wH##tH H##L$ffM9vI E1I)IIfJ|LHIHM9uHHcHj@HL$HD$YHL$HMHD$H:LaH=s1HC`HfDHHbCsff.AWAVAUATUSH(H5W##H*#dH%(HD$1H!#HL0HAHHcHHHH!#HB"u)H##H8HcG(xL@JLGI@<sH#HRHLAG IGIHtIHIH H9sf.HH1HHHpHQH9rH#IHWH#LHLLkHp0sL{gf.IHPIGHT$~HCI9LHH2HHHpHJH9rH#MHM*BAIAD!HIM9v1EHHLF ?AH HHuE1E111HI6LMM>jDLPAG cKD$ IAGIH@H$H$IH{tfHL3LLH( LL HHLrLLgH$IL)L9H,$D$ L)tHLiLLkVt1LLHLILH8DH@H0PLrHt^H@ HH@HL(MH5LLHH5KLHD$ AG %yLHH$qLLIx1HLLLHHH8MHAG D$ %wLHAWAVAUATUSHdH%(H$1H#HD$(HH#HH;@#t @"@fG % =skHD$@HCHD$0HCP HD$% =_ L|$"H$LAW HH-# $HE@8t$u.u D$ -1ttHE@8fD$ H$H#<$L L+ HE AL$"LHD$HD$XH#HD$PD$<ȃ$fH#HHcB(H4@HHrH@$<Aǃ<$% D$8Ml$8Au IE@@ uH@D@XD[G#@u6I|$HHGH@(HD$(HHD$PD$"HOEH"H@#@HHHB HR z uA A,9VHD$IVNLA,.HI H9HLL$(L\$ DT$fLcT$L\$ LtLL$(MNEIFAE1EtIIE<$H="LH"HHH8[]A\A]A^A_fDEgDL$ EI1D9fIFMNAEtHAtEHHH@ H@x Ht$IFNLAfDH5HH)@ H@P bA IfAt$EtKHLL@HHHH9t(HtHHuH"HHHHH9uITH"HH"HHH8[]A\A]A^A_DEHt HHH`"HHH;HG tHWB :H"H@#!HS"@H@ɋP8DIcEMIcfLLL\$D$輺L\$Lc$I6HH@ @11E1E1fHq"H@#!H"@H@ɋP8HF"HxLL$(L\$ DT$QLcT$L\$ LDqIFLL$( N|$ 1D1ҾL\$ DT$ZLcT$L\$ LpH@]H"H8HGH@(HHL$IFNL> AE@I;HGHHu1L\$ DT$L\$ LcT$L[pH@HL\$ DT$L\$ LcT$L2pI;afDDH=j1@ IVdE11vIc L\$ DT$JL\$ LcT$LoH@H@(L\$ HT$DT$L $L\$ HT$LcT$L $H juAttH iA,tgHL"H=mJ1RAHmH lHCHw"H=mJ1H^"H=?mJ1H iH-FiH-:iHy(G % =t"1HeH-iHWSff.@H"1HHx HJ"HR@#H="H$AUATUSHH"L-<"HImx#xo1萼IH"HH)H~kI$@]tAD$t1LHyHEHHImHH[]A\A]@H"H1ҾgWIfHHpHff.AWE1AVAUATUSHL%<"L-e"I$I]x#H+@t IHH+P"E1@t IHH+0E @  @@uHMy =@MEF Aȃ w\ u/@HLKAF@@I$P" ucI]HH[]A\A]A^A_D u@HE11E1LAL@jumI$Y^P" tfDHH裣HI$|@0HMy H5d2@L5"HPIHHEH:@HHtwwI$P#P"@HMy H5fHMy jH5H=&1MD@HE@AG HU% =tsLHT$HT$HLI$P"T@HPIHHt*H|$H5+#1H11LH踠LH覠 H=r$1AWAVAUATUSHH/"L%"HI,$HpHHH"HL-"HHHCIE8HHfIU8@@ HH."HCHHyH8HU"H;8LH"L-"HHIEK @#t&L}@"@HE1MtA@E1@"@uDHE1H "LMHߺ\H@IUJ#fHr#@tHr#@x|Hm"HH)H~RIEH]HI,$HH[]A\A]A^A_LuHtLuHJHHH HMAF uWLL< t=WH0贬I賛fDPLT$׻T$HtYH@ HH@HH8HH5}H|$HH|$HtfH55-1HAF -@Mt0LȚ@sH"HRHHH;8IALI\L LAI ML$L9$$r5|$I $xZLMMEHL$ HL$I@fDHi"H4$H0H+"HHH([]A\A]A^A_fDA} HL$HLT$ti̖HL$fLL$HL$LL$HL$H0LL$HL$蚩LL$HL$蓘HL$fAE D$uaLc< L4$M9LH!H9HLHI9H;G % =uHH@ ѾPLBHtQH@ HH@HH(Ht\H5HHtCH5HHD$AE 3IEH;hKHL1D$AE IEHx HLHZf.ATUSH)"H@"@tHzH-D"H"H}L'HHH)H~,HLgHH}[H]A\DsfHêHff.ATH"UH-"SHH]HBHx( HE14HL%]"HI$@"t賘HH;I$H][H]A\ff.fAWAVAUATUSH(H"L8H"HIWH@Hh(IG0HD$H"HHH诿AW#L3VE,HEH@HH+D$HD$AF % u#I1HzHZt L`HH9H|$HL$HD$L%"HHH$@HH;$1HH]M,$HMuIEI$H"HIEIEHH2LLHHHuAuHAuH;$rLԉH|$uH"H\$L%"HD$HD$HH$L(1HsH自HNLAE VI$HsHI$H5"HLHǺHD$HHH@ jHD$1AE11LPL)HD$ XZH9$1HHHGH"Lh:HAW#HHDAG"@H"HH0HHH"8HD$L9tLBAF@tLIH([]A\A]A^A_ÐH"HpH"L@AE LLD$蘣LD$II$HLD$fLD$@HD$NHT$IIH@HH?HD$HL$IHIH6DH8cHHHIbHtEHL9tT1HHGHuH"HxDL(tfDAukAufLHH|$Ht$LE1 H"L%"HD$uI$H0HHI$H"HHHHCbIMHLLH $lHD$H $H9L$IHD$1HJ4(?HvH"I$HpHnH4$蕘H4$HkfHt$1HHtL%G"I$@# ukuO1SHI$H]HH[]A\@H "HHH"H]HHH[]A\Ht$Ht$<uDHH@tHHB H}RIEHH[]A\A]A^A_1L{H{IG u1p@tKHEM &uH;G f.HH`1HQH=K1AWAVAUATUSHL5#L-#IIEHSH@"@uHHH#HH,H;J G ʁ L{txHL` H{G u IU1B"@u tdHHp E LuzHs#:tnHuE HkM>IEHH[]A\A]A^A_1虫I@1艫H@uH;G AfHȳfDAWAVAUATUSHL-#L%h#I]I$HSH@"@uHHH`#HH,H;J G ʁ LstwHLx H{G u I$1B"@u tcHHp E L)uyHB#:tmHuE HkMuI$HH[]A\A]A^A_D1iI@1YH@ 葍uH;G BfH蘲fDAUATUSHH-s#H]H;HSG J  |tOHH{LkL` G tRHH@ L9H#|H0HCLmH#HHH[]A\A]1Lk荩H{IG u1y1贌uH;G iDAUATUSHH-#H]H;HSG J  |tOHH{LkL` G tRHH@ L9H)#H0HCLmH#HHH[]A\A]1Lk轨H{IG u1詨1uH;G iDAUATUSHH-#H]H;HSG J  |tOHH{LkL` G tRHH@ L9HY#~H0HCLmHD#HHH[]A\A]1LkH{IG u1٧1uH;G iDAUATUSHH-#H]H;HSG J  |tOHH{LkL` G tRHH@ L9H#}H0HCLmHt#HHH[]A\A]1LkH{IG u1 1DuH;G iDAUATUSHH-3#H]H;HSG J  |tOHH{LkL` G tRHH@ L9H#tH0HCLmH#HHH[]A\A]1LkMH{IG u191tuH;G iDAUATUSHH-c#H]H;HSG J  |tOHH{LkL` G tRHH@ L9H#uH0HCLmH#HHH[]A\A]1Lk}H{IG u1i1褈uH;G iDAWAVAUATUSHL%_#L-#I$I]HPH]#H;HH,HSG J  t~HH{L{Lp G HH@ L9 @@HcE uH8#:tsHuE HkM}I$HH[]A\A]A^A_1L{]H{IG 1Ez1:脇uH;G :DH般fDAWAVAUATUSH(L%/#H@#dH%(HD$1HA#H(I$LmHHIHHAE Iߩ C@u`u0uV% =LHt$ L2H1H=#%@=@r@+@-H}G tlHHp C HމfH#:VHsC H]I$HH|$dH3<%(bH([]A\A]A^A_fD1H@LHL$KHL$`LLHL$َHL$AG 9-%\+=Ht$1LAG@M>I$HJIEIMH@HD$f1DI$HQ#HHHL謃uH;G 0DHnff.AVAUATUSHH#L%J#H[#H(I$HX HHfL,ʍf%fTHEHcH>L5ACH}G  % =q1ZMtffsgf/frkfos~f(AE eH#:U"AE IEH(LmI$HH[]A\A]A^DH}E1A?G  <D1DuH}G fDE1AAf.L5ABfDE1E1DE1A@f.fstPftutff(f.QL$CL$H@(f/sK%f(@Csf(f.ۥf(ff(LTlH#8t%LH==/}H=GH1qD$kD$ff.AWAVAUATUSHH#;L5#Hx#L-#HImB#u|HE#HH)H IHHP#HRLL$HL$ImMg/wL$LY]kHHH[]A\A]A^A_H} TL}HtG % =NHf(f. Bb\ OfDH#0tsH # 1‰1Љ1ЉL5#Lmf.HH0H IHhfHH(<AUATUSH(L%#H#dH%(HD$1L-#I$HImHHH@#tTH}HHtGG % =dHt$Ht$HHT$蓜kt$?DHa#0H #H|$ 1‰1Љ1ЉH=#ZlH #Ht$HHK#C  HH҃H?HsC H#HH)HHEH]IEI$HH|$dH3<%(H([]A\A]DsƉHD$?D H59HC@tHtfHHHpHt$HHHQH591MHD$f.H.ff.AUATUSHH#L%|#L(I$HPH#ImHHЋU  tSHEH@ JS сH #9HCS 1H趘U u C1HYD$΀D$uBf/>N 7f/f(fTf.C >H#:."C H@(8fDC tH}#:dHCC I]I$HH[]A\A]Á 1H$HƋS %H#AH8HsS HE@(fagImU Df/HRBf(fTf.H,ff(%fUf(H*fTXfV~H,f%OfUH*f(f(fT\fVF1H֍蛙S сH #@ @t HXHH蓍XfDHEHp zCfDHH]"Hhd AUATUSHH##L-#L IEHPH#I,$HHЋU  HtCHEH@ IHHHIHH?@1H6U tvu 1H݇C fTRH#:"C H@(I$IEHH[]A\A]D1E1S сH 9#@ @tr@tmHCS fHEH@ HIHH?fHE@(5f aZI,$U DLH}5Hb AVAUATUSH H#dH%(HD$1H*#H(HHPH#HL$D$LuAF  Ll$L"L1HAF teH#H@8uULoH.p1H IHlAF % =AL"LHH@ f%fvHT$:H5#ȋ DDuHHHT$UHu<0u HHHT$D$߃XHl$HD$HL$HT$HLjxA AgAXAYH Լ#AT$  D$~D$%]UI$"AT$ @(LeHHH\$dH3%(3H []A\A]A^@BOuqHl$HefDց@@HID$AT$ ~DII~Ll$HRHT$fDD$D$HL$LHT$HAAjeZYfD$HL$HLHl$HT$HAjbAe^_II~H@HD$HL L3_YfAVAUATUSHH#L5#dH%(HD$1Hø#L HHPH#M,$HH,I@8%A3E I,$ IEHpHH4$@# u`U %H#8HuU HL$dH3 %(HH&H[]A\A]A^IEHpH4$Hѳ#Ht I$fDHHI$fD AE tTIB8 .t H@# uLH$H!H舗@EtH;#Hff.HE@ H% =H LqH4$L^&Nff.Ѐt!HyHHHWHH9HH/u+HH?HuHcw(LOLvJ4I4v@t$L:<v}Lb<HBLHIMAG % =LL$ HT$L$ HT$HD$H|$ D$M|$fDD$1HD$EO D% =LL$(HT$ 舋EO L$(HT$ IA1LrLzAD$ H@#tHjLzH ȈD$7HE % =)Ht$H"HǔHD$(AF Cj6Ht$@1LgwHD$8AF  E tH 1#H A8u H|$H\H #HR8D$7 tIF@tHH@L}[IL9\$@L\$@HLLHD$`PHL$ DD$(T$0LL$`L\$ }^_L\$HL$XLd$PHL$`MAF /tIF@tHH@LHT$` LL\$gHt$8L\$IHƀ|$7H|$(tH|$7AF u11LvLD$HHL$(E1LHT$`LbH@#CIHp#L;HBH|$(1H5HYH#H=;#HIGIGHHHH\$hdH3%(Hx[]A\A]A^A_L\$@HLLHD$`PDD$(HL$ T$0LL$`ZYaHD$XLd$PHD$`Ht$8E1L|$H]#8Ae HT$`LL\$2uoL%^L\$MAM zf.IL` ]@|$AE@JMoIDAF  Ht$@"L>HD$(HD$8AF H#HR8@H#H(HMHUHHw#HL-D#HEH HEIEPHHfIUP@@ @0@@HEH#HEH8HH8H#H;8H#E111xDL$HH,HM PHEMDL$@HxHEtAFLp@AtMy HEI܀HIHUDD$Lb0ErH|$HdHEHIHIH w#IGHUHHLj8IoH3HEH@HD$HHEHD$(DAG M|$%=D$fD,@ƍ~@|$DL1IHMZD$M|$HD$HT$foHT$Hp"@#@11L褄AF  Ht$@1L轎HD$8AF IINHD$(HRHL$8HT$@YDH|$8Ht$@H{IlfDII~HRH|$8HT$@fD1H5UAF z@IH@ HD$fH`1ҾHH詃E % =Ht$H"HčHAF LD$HHT$`E1LL{]uu@Ll$fDLSAF MHt$8IT$ǃ@L# f.AHHHuIL+d$8HbHyHAAAtSL<# f.AHHHuH)HD$`fDDL$dDL$HPH׃@tHtHy뎐FHƒtIIIT$f.Ht$8IT$-FH~HAU IMyxAE1E1҅I$HPHM#HHH#8LH cC@H2#H]L8I$HH([]A\A]A^A_D$LLLL$襚LL$E1I…vH##HHHHH#HH #HH HCHAPHHfHQP@@ @0@@HH%#HCHHyH8HL#H;8KH#E111vD\$HLL$LT$HH߁K 胈HMLT$LL$D\$@HvHtAFLp@HLHH $LH0HHH8HDXIafHH@ H$IELH IEHx AE1E1fDh1ۅHtHL$WL$D\$LL$LT$_D\$LL$LT$HF@D\$LL$LT$}D\$LL$LT$H@P D\$LL$LT$}hD\$LL$H c#LT$AWAVAUATUSHXL%O#H`#dH%(HD$H1Ha#HHI$HHx @#L4fHKHD$@f|$$H $<vMH;HkHuG % =:|H$D$HD$H,$fD$HD$LkL;AE % =4Ht$8"LHAG  'Ht$@"LŅIAG AU % H j#H A85Ht$@LD$7 1ҾIH){AG % =MHt$@"LCIAU L|$D$'  Ht$8HLT$(LT$(HhIAG tIWBf|$$|T$tHt$8HHlHt$8H9HNf|$$|L\(HL$@LLHLpIIHtH)IH~ |$'%HD$HtpopI$P#  I8H5#HsH#H$HI$HH\$HdH3%([HX[]A\A]A^A_DD$7D$' HD$@IUBHHB{ҁ GD$7D$' rHD$!@HHBL|$7Ht$@Lҁ L$LPIDžUf|$$|Ht$8HD$NfD`H#H@8LHt$@HT$71LD$7ILhHD$7D$'7HY#L8MIHH#HIHT$@1LIGfxAU L|$1MW {AF ;HԢ#:+M~AF LsIEImH@HD$8f.IMWHRHT$@H|$~*|$'t#Ht$ 1LLT$VLT$HD$f|$$|HD$HD$@HI HL(wIHH$D$H,$H@ HD$H,$HD$HD$HD$1(D$H|$~|$'H|$Ht$8IxHD$H9ILNIH1LL~fH|$|$'@H#Hp0L4JLsIMWH@HD$@HD$ DH|$dfLLe~HD$Ht$8DHt$WHt$I-|lff.AWAVAUATUSHH'#H-Ȟ#L-Y#L=#HL%#HHI4$H HUHcIEHJH#HHHHA?L4uOH)HPLH|AF uQIUHک@ubHELsHI$HH[]A\A]A^A_LHD$H4$NHD$H4$@L8yuIUAF Hک@tLjAH;#AUATUSHH-#dH%(HD$1H̜#L HEHPH#M,$HHAU % ="HL}AU tMH#HB8u=L$A1Mt9DH=1#AHHEL@DALыS H5Q#6%@tQEtLHKS I$HEHH|$dH3<%(H[]A\A]IEH@H$IE.LHjND!IHc@IM9v-EHHLF?A3H Ht8HuE11LE11HqIIHII?IIII?YifAWAVAUATUSHHߚ#L%#H(I$HPH#LuHHAF $3L AF L-#IUB8u[t!xIH@ H AF % =1Ldff/AF % =[L11aIƋC <U%IYHHxKH@HCD0@S %_D@C H]I$HH[]A\A]A^A_f\T% =(If@(f/*,_wt!AF LH5,1\C <?%AIUB8HHH@I9I֍rHH"HH9rz}fILp C <HA[C fH3lHHI9/IƍpHH"HHkH{11LtHHH+KHJS %_ D @C ZHeMf1LvotHsZC % =L bH=jqf.Lh?AF IF@HH@LұIf.H @^LIHZMI@(HAWAVAUATUSH(L-#dH%(HD$1H#H(IEHPH#L}HMLuHHЋA   HHt$"HL$wHL$IċA t^Hl#H@8uNHt$L iu1IHFAD$ % =LHt$"PwIAF % =1"L*wHLQHHKC ߉S @uH#H]L8IEHH|$dH3<%(ugH([]A\A]A^A_HLaHRHT$IvI$Md$H@HD$AHT$0Ht$:sFH|$0T$:HH+Ld$(H=wD$IE11AfDu1ɨt11\LD$(DLd$0HT$:LK4AL[D$HT$(%DA>@A HaWHB@|$:A1D$"fDD$:AG ILIDJIIH@HD$(HT$0Ht$:HLD$RHT$(LD$L9\K4|$IL)¹LHA2@Hh[z+ZJfDL$fDD$A1BfDHAW HBD11ZLD$(L%#HLD$E,L@LD$HT$(MIK4IH~ f>̇I9|E11ɺt1HL HHH)H9LHt1H8HH?HuIL@IxIHL!IH8HL9sH~L@ H)LNHM9AH<IBHH9v8HHH9uD$IAA^LLK<&LHHL H ЃHHH)L9LHt1fHHH?HѨuIHpHVHHL!IH8HH9sHWHp H)LGHI9HHBHH9vf.8HHH9uNd!D$AAm11VA>IHT$(t0D$1뗀I fD$:ıIO,x|$:iuIH~&fA~̇uD$HE11fmWE1DAWAVAUATUSHxdH%(HD$h1H߈#L I$HD$@ ] Hʌ#HH$R8 HU#% HH\$0HJHU#HL,=3H|$Lt$H LiHHD$HHHD$AE <IUH|$H9zI]%_DAE M,$H$HHt@8Hϐ#H8 HD$Ld$H@  H$HP8 IL9H|$PD$L|$ZH|$ Ll$(dHT$PL9v%HD$HL)HD$HHD$(HH9HaHLeH\$PM9X|$eH$LHUH5Ȑ#E1D,Ht@8Au E1#HL$ LLHNt-EH=O,eOL#LAEH)HAHEHA!HHDHI9v1DLHLG?AH H&HuE1E11HL\$8\L\$8f.Ht$LYHAE H|$(HH+_YHT$PHf11RDfDMH$IHP8t}L5Ή#AL9I)I,fk@UHHHL9tyAtE<^<`,L\$KA>L\$MAM)@HAHE`HtjA!LHcHI9v+LHHA ?H Ht!HuE1E1L1LYHH #H8HHL9EAHLt$HL9@}H޹SLH5H\$HL9uIfH\$HHkH@HD$HfDE11ɺt1L|^I1IEHD$H|$H9xr=SSHfSpuxkLl$(HD$@ /HLI+]UPHH$HH@8u11ILt$H fİHHL9{EHtu IH9psLDLFu#I^I@8AG HD$HHL=z#I}A?H@H 4y#Dt \HD$HH9HHFH)HD$HHt&1DTHH9uHHHD$HHuAN II+^HXAF %DAF @M4$IEHH|$dH3<%(H([]A\A]A^A_þL2AV HD$HtfH~@HH=v}fDIIoH@HD$*HT$HJ*HL$HH5w#/\EHHD$HHPHT$HMHSHDuHHH1HLs3AF @qL\pqy@ ql@HaHHHqMHH+PWMN/MHH19Lp#I@8aMt}}O0LHHMHHuNk@@ MHHM5CZ&MHH DMHH>}M}MHHfD11HT$8HT$L^o#IouMHH{MHH/dMHHP}&MHH MHH} MHH}MHH58fAWAVAUATAUSHhdH%(HD$X1Hj#HHPHh#HH,H j#HHD$(HHD$Hn#HHt@8AMHD$@ r)GHD$8L-^E <uHUH9ZHH'=INjE %_DE HD$(H(Lt$8KD5HD$H`m#HHt@8EHr#H84HD$@ H&m#H@8HD$I9AHl$ Lt$JLt$Ht$@IHt$"fDLLL GL|$@I9H Ur#LLHEDD$D$HL$HT$@L9vHD$ HL)HH9XsH|$ HL+:BfHl$ M HAHg#8Hib#8E11ɺt1HFud1L;l$2fDALHHAHp BAHI9uM@H|$811G2H i#H@8u-z12fHh#H@8@MLt$L;l$rC{HAj#:h<8Hj#AIIM9=AEH"H=ya#L1 ff.@AWAVAUATUSH(H _#HX]#L5f#HHI>HrHhH1L IH^#Hc HH I)X"MI M@#MHd#Ll$MHH)I9I~JLIHHTIuLLiL9sUDI}HHHH5XX#HH9 IEIIIEL9rRI}G % =3HƉL7$IƅuHuHW#IHIEL9sH\#HB"u)H^#HHcA(xH4@HHqH@<t#HD$HHH)HM~8HMHHHhH[#H(HH([]A\A]A^A_@HHp CH EW#HHL$LL$Ll$LL$HL$LD$?0I+HHLILD$LL$ ILL$HLD$LII)LHHD$G % =tl2HH=^#1HHp H=14@AWAVAUATUSHHZ#L(HU[#HM}MuX"u-Hb]#HHcA(HQH4@HHXLL HID$HEAGIH@I9~>HEHY#L0HZ#HHH[]A\A]A^A_Ha#HL)H!LIFHthHY#L(HgZ#HHH[]A\A]A^A_f.Lx0HNy,ÃH!U#HIE1LL;!Ht6HIFMnvfDLLILh;@HT#HAWAVAUATUSHL%Y#L-X#I$Mu@"M>InuhH[#HHcB(H @HHJH@L!Ht=I$ImHH[]A\A]A^A_f@H@I$HPH V#HHAGIHpHC H!Z#:HsC ILI$g@#~AGIHXHH7HH_#HH)HH9I$P fffE1Hy"DHIHHEL91LL+HuHR#Hfz,LHI$fDL-Hc,P#^HOE1@kLIHHEHL9}I$fDLx-HcH`@HH-HDHH6euIUHL$E1LA%HL@ AE1LL%LzI$HX AI1L@LRHD$E11ff.fAUIATIHUHhLHjHLE1E1XZ]A\A]ATIUHHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$L$HD$HD$ D$0HD$HhE1jHE1LHAXZE@u!HD$dH3%(uH]A\fDH ""fAWMAVIAUI1ATI1UHSLH#jMIt$HLLLHH[]A\A]A^A_AUIATIHUHFHLHjHLE1E1yXZ]A\A]ÐHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0HD$dH3%(uH[!ff.AUIATIUHHFHE1E1jHLLHyXZE@u ]A\A]H]A\A][ ff.HHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0!HD$dH3%(uH; ff.Hht$jHDAUIATIUHHHE1E1jHLLHXZE@u ]A\A]H]A\A]f.PXH=g1HH5:Y$+DAVH/Q$AUL-Q$ATUHSL0HIED` fAA3G uhHߺHHfAv. E@ucC @uIIIE[]HA\A]A^fDE@uEC u1H뾐[HfDH8fDH(C HfDATIUHHtj11AjE1Y+ZYHtBjHLAjE1116+^_Ht1HxHPt&HHL1]A\HHL]A\ H=O$H1)ff.fAT1UHHt=HH@]uQHh8Ht(SH1HI.,HL]A\H1K$H]L`0LA\f.HfDH)R$SHHcB H @H HBH u [f.HS$HSXHH@Hx(HP(HCXHtwvYwHL$HH8G@u0HHGH+B HHBHHP HWH@#[D1!릐UH@u/HGH0HtFH HEH]D@t ]@]fATUHHSF % =tU%IĄtLH,tELHHHt.U HH$ tHHUHBe ߉…uW@HtHuHDHHH9uٍʅ~HTHH9uHD$dH3%(u~H[]fDHEH]H@H$OHH5 HtH$HUHBe DHHL$H=R$H=H@ %H41%"fATUHHG < Ѓ  @I%E EHI$L M I$HHLN$HID$ID$I$HID$HR$HHyH8HL$H;8HH$HHL$LAL$ HL]A\f@LD E 7HzHyHz8Hj@HHlF$HhH{HHH$L MDI+"H-YHSHbEYH@HUZfATUHHG ǁ t tvLeAD$ tI$HB< %tHRJ$H@#@=HL]A\fǁ$L%E$IL$H9@H[G$L MGI$HHK$HHM$I$ID$HHp(~ HEHI$HH@H1H~LqLHLeAD$ HAI$IH@#< HIAd$ HL]A\ %I@E1 1HHHHEL`AD$E I%DfH#L`AD$ D H>IHCL%SC$3fHAH$H@")j%uvIHL]A\L1 IfDHL$ T$t$E L$ T$t$HD$1LHH2H}KIH=$1H=>L$H5$1H;@tHEHx!HxCHCH=iJ$H H1hAWAVAUATIUHSHHdH%(HD$81tHuJ$HB ^E <  ,% =SHt$(H!'IƄMHD$(HHI$HHD$(M$H;W ,HHyA<$ AIVHufHIHD$(Ht< tE1pH|$(] t5%=t'%=Ht$(1H6 ] I MtHD$(H11L ] @t HrfE1HD$8dH3%(HHL[]A\A]A^A_HELuH@HD$(f.HzG % =\$L$H(xHAH$H@8(M2Ht$(H$LHNI9r@HI9 Ht H0H=$HH9t LIAE9}NHL$E1y\$1HHH!HfLHiI@HH@ n@HL$L$A:HELuH@HD$(zf.HLoH@HD$0%HLIHD$(LAHEHT$(HP] _] Hf.AEAA8$+E1tHL)HD$LL$HHHIHHH H HHH)I9Hu^fDIAJA}yL9vPL=wG$L1fH98LHA$HH}P"u)HqA$H HcQ(x.H4RHHqHRtH}HH[]@y,ufHE$HH)H~&H9$HHHH}HH[]fDHHHATH;$UH-=$SH>$HH}HHJL$HjE$HH)H~LgHH}[H]A\H[HHH=>$HN;$HHHHHʁb HDAU1ATUSHH>$L%;$HHPI$L,~HHHzH@HH@HH@HHhHE@\t3NHEHPI$H,HHH[]A\A]f.HLHHPI$H$HHcA(xH4@HHqH@<thH6$HH1H[]A\A]DDy tMHH[]A\A]ffDH=I@$1fHXH1IU@ H#HH ;6$IUHH kATUSHHE:$dH%(HD$1HH$H(E UH}G un< 1L%:$I$@" tp#@0DHH$H8H$HI$HHL$dH3 %( H[]A\HHBtHHxG mu  vHHH5HHt~HEH8H*H1 H@H8@$H={14@AWAVAUATUSHL%?8$H-9$I$HEL+@" uP@#uAAEIEHxqHHHEI$HH[]A\A]A^A_@tLIHHuH5$L8MIHH:$HH Y7$IHIGHA8HtcHfE1LLHQ81ɺ#@@ IIGM>I9fL8HcI{0H 6$}AVH6$AUATL%7$USL(I$Im@" u@#fH4$HHHHH~9$HL5K6$HH HCIFPHHfIVP@@ @0@@HH=$HCHHyH8H7$H;8GH3$E111.HHH߁K ^H@H.HHtEHh@I]I$[]HA\A]A^HHt HpHu)Hz1$HIEI$[]A\HA]A^f.I$B# tHG1$HuHH@HJHE3$HH@@uPC Hs7$tHxzHsC I]tfDHqE tH9$H@8u"H5 H HP |FHff.fUSH(H-W5$dH%(HD$1Hp4$HHEx"H;@#< tff.AUATUSHH/$HH+E L%/0$I$P# uRHPH&-$HL,кL+HuLAE@I$HH[]A\A]fDHE@t4HH@t(HHB HtRfDH|$t@Ha'$LhLkHR,$LeHHt$dH34%(HH([]A\A]ÐHH@HD$HGmH|$u8SCALufxARuHGHHAH|H|$l8CODE`HGPQHxCHT$H qH/8FORM#fxATHGHx0H IMLH|$8GLOBtH|$8HASHHGHx fDH|$f8IO@H|$l8NAME`HHx TIU@H|$<8PACK0fxAG$xEHH@(Ht)@t#HHx Ht@<H?HH=STI@HFILEHANDH9fxLEfHGHx8ARRAxYzHGHx(HiG @\TH|$H|$@1HH@H8$'I( f.USHdH%(HD$1H($HH+E % =HH H$HH=wE  t3H$$H0HH($HHHL$dH3 %(uwH[]Ð%@@=@@t4H#$HH($HHHEH@H$uHEH@HtxBvBHH`ff.AWAVAUATUSHH?($L%h'$dH%(HD$1HI,$@"@tkLuLm@ f%f$LILIEH:I,$HHHL$dH3 %(:H[]A\A]A^A_DH.$HH)HHPL}HHR+$H:HWL2M@ ILf%f$VAV % =HLAV H4$Hǁ }IHMufH $$ILH L4HHHH#DII~HpH4$1AH@L0H ff.fAUATUSHH%$L%\&$Hm#$L(I$HHHX IuH,f1f*Hf*tE@u*ImI$HH[]A\A]HHME@tHff.fAWAVAUATUSHH'$H$$L HHHH Lc(H9.$H"$IL0H%$HHMIHp@ f%LH]HqC 3<H5 HcH>DHJH5!$HL4H*$IHH)HHIm=i>Xf(f(fTf.gEXf(f(fTf.v8H,f5fUH*f(f(fT\fVDf.`T$L$E8t'T$f.E„tL$\f(EtfWfHTE@H $HkHHHi$HHH([]A\A]A^A_@I%Lj =t M<fE1E1f(AV uu` 13IB(QfD1LAG AA1LT$L$jAV DIE1H@ tHy HAfM1IE8tHMI)ЄIEEHH9vHJfH*x@HHHZqDfEIE1f(f.H,ffUD :H*fD(Df(fETA\fVEaMfI*IH(]f(T$AL$UL$T$IHH%+fD&!L;LsAG fHYHЃfHH H*XfL$T$1DLMfHAL H*XH=~1袶fAWAVAUATUSH8L%O $L-x $dH%(HD$(1I$ImB"@ H]R#@Au0H2 $HHcA(CH4@HHqH@AAoH}HUG J ʁ HHLx MAHuH9t Ho{ %=ZHHt$ 1{  Hm $H@8AIM'1HLD$ IH=HGI9(LIHHH9pzHsIODJ<HLzLzHHSH@{ EdD{ @H]I $ImHHt$(dH34%(H8[]A\A]A^A_f.H )$HrH Hf _% =G1pD$MD$ff/wL,M0H5 1E1AI $A#@H $HHpH2LcH$JLIIHIHM)IMIL9I|MI"MH$HL)HL9 HL9w$f.%G HL9[H;HtG tܩtվL$LL$LD$ML$LL$HHLD$@ H}G H H|$XH|$G HLD$ tfDE1I _Df1IiHH@HD$ HH@6y,DpHUH@(% =01IHLIHEL)HHHIqIODJ<JlfI $DD)H}G LDHI$H5$HHHH HcHHHHPH9H $L}HH)HH$L}HxHHPHhG Hh'H5} 1E1ڬDIEHH@ @HUHPH}HxfDI$H@LHLL$LD$LD$L$HH} $HIHHHL$H5V $HL$HHH.H5o}H=1H52}H=˄1@AWAVAUATUSHH$H-X$L8HEMgM@"@uHPHQ$HL4MAL$ AA   Mour!tYI$Hr ILR HLH>H>HHH uHEHH 1H9)k@% =td1Hf(AD$ % =1LL$L$f/-f/wsf.1H]A\ÐHEH(D#1LAT$ E  HU=HR HyxH]A\I$@(_f.H]A\1H&E fDHxWHEHH 1H9*I$HH 1H9) I$HR HH 1H9f.ATUH-#SH]H{H3G V  u|!LctAx=HHH@ H9B H#uH0HCLeHn#[]A\HHtHHB(f/@(fDC9uH{H3G V [ff.@ATUH-#SH]H{H3G V  u|!LctAx=HHH@ H9B H#uH0HCLeH#[]A\HHtHHB(f/@(fDcYuH{H3G V [ff.@ATUH-:#SH]H{H3G V  u|!LctAx=HHH@ H9B H#uH0HCLeH#[]A\HHtHHB(f/@(fD@yuH{H3G V [ff.@ATUH-Z#SH]H{H3G V  !LctExAHHH@ H9B H#uH0HCLeH#[]A\HHtHHB(f/@(fD롐葯uH{H3G V WATUH-z#SH]H{H3G V  !LctExAHHH@ H9B H#uH0HCLeH#[]A\HHt#HH@(f.B(EfD@詮uH{H3G V Off.@AVAUATUH-#SH]H{H3G F  Lc8tcL5$#HcIHJH+#HL,AE usH\#:tgIuAE LkILeH[]A\A]A^DH#L5#HHC:豭uH3H{PLfDHq#HH듐AWAVAUATUSHHO#H-x#HLe@ f%VfHoHH[]A\A]A^A_fHpH%#HH,tCHHP A@ j1LHT$蠻HT$XfDH1҅t&% =1LD$LD$HA@ % =1LHT$ΪHT$HHH1H AbHEHƋE H#t HH_f.1LD$ԺLD$HwIHp HHP C@1Ab@Ǎ<2՝IEH{LO f.HTAWAVAUATUSHL5#L-h#IIMHSLDa B A @ A u`HA"@t?1AeLH@L{^E@umHkM>IEHH[]A\A]A^A_H #HIHH,@1Ae@Ǎ<4ݜuIMHSLqfH舯fDAWAVAUATUSH(L%#H#dH%(HD$1H#HI$L+HHIHH,AE I _C@u`u0uV% = Ht$ LH1H#%@=@K@+k@-GH;G ttHHr xIHH9fE HމH#:HuE HH9eHy0% =31謪E fW!9HY#:"E HE@(H+I$HHL$dH3 %( H([]A\A]A^A_@@tu 1]LHL$ۙHL$LLHL$iHL$AG 9-%\+=Ht$1L臣AG@jM>I$H4IEIMH@HD$fH@(I$H#HHHL@H$H8HtFG f%f=tFHk$%H4H= 1ܪDHE1 KIEH=1, 1贪 H AWAVAUATUSHG @uAHD[]A\A]A^A_úHAĄtLuLmM~LMuLˌLLLLHHILL H HHH)H9HufH;yHL)I)_HHJ ;HHHH H HHH)I9HuH;yH9vML=$fH1fH9v80LHA47H+HuՀ;H9E1H9w HH9t;yDE <eI~ZgHHt1HP~)HcLI9rHI9\:vL)HPwHҠHHHfHIHE E W@H1HHL$HL$HHH9H)H@HHSH9HH#t1HHHHHH9w]fHH9G;yfH@HHSH9rHH#t1HHHHHLHtSHHc6"覤[fff.@AUIATAU1SHH(O dH%(HD$1% =DHt$L 3AM Ht$HHT$kIHHHD$Le(HEHEHLe(IHD$dH3%(H(L[]A\A]@ovHHtHx(Ht HV$9tæAM % =7IEI}HpHt$@HtHE(HEHYH$E1E11oLHՠH AUATIUHH0dH%(HD$(1H$8HD$ HD$HHHt$T$ 苅IHtKT$ Ht$ LrHHt2HD$HtwHT$ HH9LHGsLH(~HL$(dH3 %(utH0]A\A]fDHu+MtHt$ LHtH|$ t1Ht$΄HtH|$tf.y|诘ff.@鲋fAVAUAATIUHSG Hө<MH}HtHEHxtE 7bHCAuuH<LsLILXHULrHUHZHEE %DE H$8At E@[]A\A]A^fDHUHBHEHXLef.HӋM!E _U tH-oE fDH$8^E11ɺt1H,E[H]A\A]A^`WHuHWH)%H}E :f.ATIUHSHHG <vyHuu HH9rsUHHLbHHKHRS H M$D9S u\ u Hb\H[]A\@HCf.HsC rnC YfDH a$9ttE111HHD$S HD$rff.AUIATIUG HMM&<It$u HEH9ps\H贚HLLHCH$B HEL`E %D:E < u HE`\]A\A]HMf.Ѓ Ut@^mE &fDHE 9_U tH]A\A]YfH$:XE11ɺt1HlE fDLeHU+HD$tFHHtTfHHHEHH9H1 f.H1ifHXHH@ D@E lHE'貈fAWAVAUATUSHDL$B HG F Ht${L5$IIMI.˔ƖH$L\$HHHH|$H;H4$HH+ HHHn$HH)H(L]H(H]LeIc}HI nHct$LHE褘H= HEI.fDt;HEH@ &fDLeHUkHD$xDH t1DHH@ @E HE2fSHHHtHcHx>H[DHt[B uYxmt8HH@ HyHH9tHH?H9~1A1H@1@HHT$+\HT$B 됐% =t1HJ{HyHH@ AVAUATIUHS_ ML>pIŀMuu^HEL9prTH}LL}HEHҵ$LhE %D:E < u HE`\[]A\A]A^LH .Z] M\%_E t[H]A\A]A^@Hu] 9H$:qE11ɺt1HDE Uff.UHhE@u]H]_ff.@AWAVAUATAUHSHH G HUHR DrLjA~?HHztH{赌HHCHBHH@C < _S ΀HS HUHR(HP(HHx(HtH-HELHH@ HcPL D bnK HEHt=HHxHtwwHEH@HE@HCE1Ht PE1A E H;~HSeHH`H}"HCrE HHBHHt!H $Hr(H H9q(t HBHHBHHBAAE=C H[]A\A]A^A_fDH HH@(H@HHx xCHEHMHPLrL9L;pLLpN4IIm HHx(y@HXdHy$8TH$8DE11ɺt1H|+H(S HoC HE11ɺIH3HHx(5ffxIS|E1|:|:HCALp ML`@rH1HLzDHHx(b~AzHA(Hm@cHHx Ux<KAoeHdkqHEjfCI} H0FN4I>H,wwN4I>Hww( nLHulHMHELH]lHMHEWHuHWH)%H{C pyp=ff.AUATIUSHHG PCt H@P/Il$E uc M E1H mCHEHMtAuAuE@uSHL[]A\A]D<tHEL(M wf.~H{Ht>HwHL[]A\A]QAD$ CHEHWUH{HuFfLo*H= 15H= 1'WH=# 1@ATUHSHDgG EC tAE HWHHEHRHPC % E Hc H@CHcoEHE{ HCuHCHHDcE HMuH$HHUH(HK$H([]A\f6O0HjGH=- 1ff.AUIATUHSHH=$L MI$HH˪$HI$ID$E <tpH}Htw;wE _U LeU MtLHHH PHL[]A\A]wvDHUHztH}葁HUHBHEH@E WHU \HME <]EHa]HE @HUHU_U HEU HX Hç$8[]A\DuH1$H8G f%f=H$%L$1HZaLH=h H1~fDHgE MKE fDHU 8H$8F[HE1]1ɺt1A\oIbfDUHLE@u]H]/rff.@ATIUHHHy"1sLHEM L` H]A\@H]A\LLff.UH^E@u]H]qff.@ATIUHH*fHH^HL]A\@ATIUHHt%HeHHKHL]A\#pAD$@tL#qאATIUHHeHHoKHL]A\@ATUHHG <w%H HcH>@%=HUB(U %_E uz"E H$8uxH]A\þHD$MeHUD$뭐0HUHUE fDD$XIE D$Ff.HxE vH$8xHHE11]t1A\酃H$H8G f%f=t.HN$%L$1H^LH=I H1{mIUHSjE@u]H]_off.@ATUHhdH%(HD$X1HthG HtgLgAD$I$H@H$ Hp4wHHD$XdH3%(Hh]A\@1GE 0 )0 l< @H}HHAHw fDHHʃHAHvH0H w@PHH0H vHULBJ H9HH9v&f@9.0HHHH;M:HʍqH0H vωHAHHHfDHUHJ HH9_M M HB GLe@1HQLH[GE 0 J 6HvE !Ѓ%Hxau %_E E HEH@  L@H߉M HxM HU@HUB(f/   f/w_U uEXEHE"U @(HE !HHXHD$~U D$HUu LBMHuL9JsLH0qHULBILBHEHUHpHHH9/DPHPH9ErH0H 1Fш D1ҹLqnuHtE DH}uXHcefD@0 H@ef(fT |f.  oH5.D$DE D$E@ fzbHt$H聩H5 H1_:VhjHtG uI@HH|$CH|$HI@H;ATUHHG toLgAD$t7I$H@t*HC$ HpxqHLe1HMLHcCE 0 *< &@u6 HEH@ U %_E XE |HEH}1Hps]UH rE <@HUHJ xHE <ΐ=E @HHcD$% = Ht$H!@HD$HD$H[HH@ H>>HcL$H11PHH@HEHCH[]fATUHSt G Hw$L MI$HHs|$HI$LHID$N=H$HHyH8H>z$H;8}AHv$HL$LAL$ []A\f !rfD2IPHfDATUSHG H=tr@uJH w$L MtKI$HH{$HI$HLID$xH+HtE uHE_U ѩ@M tHAfDHEH@(f.ID$I$H9hHB(Ht @1ҾH=BSIƹ H5BL' LY)AvAvHUJ\HUJ\Ht@HUHB8fHTU сA QHl$HE)HHx H&@HtH@wH>HHtH'C LCC HLGH@HD$$fD3IH9HHHD$/LL$ KIHPHBLLLL$1LL$IfDKLL$9_W f%f=|H HcH>EHN HHEIE1H([]A\A]A^A_ùH=Ht'H@H=L9 !fC"tHk(HtH1B f%f'f/B"tHu4HB!@Ht"ALLH([]A\A]A^A_mDLLHUHE!@ HmHuHS@Hd$HL9$C"A%C" H8j$H@ L9`H=H([]A\A]A^A_DDHRHB f%fHB(@ ff=fBff f ff 1҄7 H{(G f%f" He$@H9`C"@Hki$H8HGHH! H=I9HSHHrb$HL9$DAE11ɾ$1H([]A\A]A^A_Hk(C"@E f%ftAfaH}VE!@HHE@!@HhA*Hd$Ls0H96 Lk(AE f%Hff=t f=Iu(N ffqLV(MdIJf= Ly(MIMt AF E1f%ffg f> fLT$LLf ̝LT$H @AE IUf%f  %f= AE11L~@tCH`$HSHHfDHHȃ0H H0HAE1E1H H9\$HD$E11AMH ^$H N,HLT$LLHT$DL$E蜚DL$HT$HLT$I0AE 'H1H]$HL$MAD$ Eu H^[$L`0j11E1jE1LL:ZYHj @-%AE11LLf.HHȃ0H H0HE1E1E1f.HNH#E1L~E1HHȃ0H H0aHBEHFAH1E1HD$A@Mt I9H@E1LvE1HsDAXDAE1FHC(Hf@ HPHt HHx0@bHS@;H[$HHZ$HSE1HHEHcH HDHa$LSM'IOELi(LEi M HY$HSHH<Ѐ EE1L誕IHxHSA1ɾ@@HSA1ɾ@Lo(MIEHx k@zED@?1,H@H@AE =EjLE1E1jHt$11q5^_HL9`HL$E1L%ALIF(HD$@ E@AG C f%f=[I~(G % =8D\$LT$;1D\$LT$HEtH1LD\$LT$!H@L9 LT$D\$,C f%f=#I~(G % E=LT$0LT$IIIUA1L׾@Mv(MAF Af%xHV$HSHH<@jE11@LLL"IUAI1ɾ@LLT$HHBIUAE1L׾%@MGDL$HT$HLT$H;AE1LL%Hx(@HSAE1%Ly VE1Hf.A1L@L:MIBL ENLD$A1L@LHt$1L^HL9 D\$H=JLT$Z6Iv(HHD$t D\$LT$1ۅt % =Lq.H1HLH@=LT$0.LT$I{HL@ lHHp D\$E1E11LT$1LjjHt$v1AXAYHL9`LT$D\$H=!U%H;gHyU%HD$`|$~ Ƅ$~H$}D$}Aq |$0 H|$8 |$yLxtHP@0LI׀$t @-LI4$@t @pLI|$zt @#LI1|$@%HY%8uHU%8qH@T%H0HD$`H8Aq1l$@L$$ HHD$HD$H$HtH$HD$HD$`D$~L8IUH|$HBH,8HuAEuH;rvLc(IEH@Ld$IELHL2B IEHhD$PHAƄ$-H$D$@IVHBIFHZ%HP}$D$D$!HHD$p$D$D$>l$@DT$ H$DŽ$\$D$B$DT$ o~&iҒHcHi2 H )ЃHIǀ|$0 HD$8D$~HHD$PE1H$D$@yLL$`AHMMA/8ЃIFA01H$LLD$PLL$8D\$0L$Hl$D\$0LL$8E'LD$PHD$HLHH5 H9$HF$kLD$L $I9MsfH$LMMLL$1ɺLH4IL9t%A$HH H^vH5p H18MLL$MIH$LLD$H5a\ L $L $LD$DT$DT$HU%8uHR%8HOQ%HHH@Lx"B D|$|S1ҾLDT$(D$DT$D$|1DT$DT$D$|$A#`E % =1HDT$PD$,DT$PD$HAcAhH$E1D$PD$@IVHBIF`t$PL$f.NaƄ$NH$f$HI=D$~HHP%H-ES%I@H$E1D$PD$@>IFD$ HHHPIV(|$@\$PWH$LD$PLL$8D\$0HLzH-O%Lx DT$H}Hl$`*HN%LL8$DT$HEcHE@HH@HDT$@D\$PiDT$@D\$PHHDT$@D\$PE DT$@D\$PE 0t$HL1t$HHHD$ XZHgIFHPIVAG<*@<$@ [$ H|$Ht$HFHHFHˆT$@1 A/ЃIFAH|$@D$@Ht$HcPLxH$HcPD D$EHD$HED$8HD$8EHD$P@|$0D$yHE1ApH$D$ HD$LHE1 D$P1D$H$AsD$@H$D$ HEh(l$PD$PHAsE1H$L= HDŽ$D$@D$ xƄ$-H$L$HOIFHPIVRL$8HcщHHHigfffH")<)0хu@.HFL$HcщHHigfffH")4)0хuH:HH;t$XHD$hH1"HEHp )L$L'H1DT$@D\$P#DT$@D\$PHINHAIFaE % =H$"HD$DT$P,DT$PD$IDT$PD$QH$LHHLDT$PD$I}H4;HD$IVHBIFoIVHBIFD${11HD$HHHD$HƄ$|LH$|H+$HPD$z|$ ƒˆT$0 HDŽ$D$y2$<$|$zv|$ykAqaD$PH$DT$H$:DT$HI/H$HD$IfD$D$PH$L$L$1HL$LHH%D$HƄ$DŽ$H$HD$`HHD$IHLLD$PHHD$ -D$l$@w\$PfPèHD$-LXA0AaHO%XHzH|$PACH9l$ IIL9|$ A?tHD$ L`H$I9sII9A<$tl$@zt$$KA< 1uAD$M9 AIwE1A)D$LHL$@D#$A ЋT$@D@PAH9uA|$I|$0y $J LHT$ H)HH9T$8J LL$8LLAH)I)fDIVHBIFVH$D$PAsE1HD$@D$ IVHBIFIVHBIF6IVHBIFr|$0HKE1L$Ht$PLD$ M9Ik$ACH|$8|$0|$HJ%E18uHXG%8R HF%H8G % = H$LL$0DT$z(LL$0H$DT$zHHLL$0DT$z$MDT$zLL$0tALL$0DT$zH$Mt6HD$ I9r,IT$Ht$PH)1H|$   LHH9uHMtIHE0L9uHD$IL+d$L9IBH9$ AaH$HPpD$H EL)1HcHD$LH9v}H)Ѐ$I |$yHl$] <$ |$~ HHJ|=HL0HHD$H$WE.HHT$ڀ|$z $E1+HEL}H@H$/wCINAHfINHAIF%/w$INAHINHAIFINHAIFH5J%xHt$P=<$ D$~L\$Hl$ |$0AC0IkDŽ$LL$8E1H|$A HD$L`I A/ЃIFAHBHLx Mx<M?LMtIGMqIcOIH$HHB Htz<HHuH|$ D$0HApHD$D$yH$D$ D$PniH D$A#n<$|$0@tHD$8@|$~HHHEL}H@H$7H-H%~HDT$@D\$PE DT$@D\$PHt$H|$8D$PHHEH|$8|$@DLjD$0A/ЃIFAL AD$  H$"LD${#D$IAD$ 1H$F%H@8D$DňD$DT$HA%DT$HHB H@Lx"SDT$D$DT$D$yD$ D$yD$0 D$~IH*I$M|$HRH$>IFHPIVH B%H5Ú H8HtG f%f=tHhG%%H4H=H 1/ HEDH|$u)D$0H$E1D$HD$8U L$ u'HE@HH@K4'LD$`D$Ld$D$PAsHI)H$Ld$E1D$D$@D$ t$HH= 1t$H$IVHBIFIVHJINIVHJIN:D$HD$D$HHD$D$@H= 1}X{IFHPIVTE1E1|$zmi@l$PD$0|$|1ҾLDT$cD$|DT$~I1D$|D$xHDŽ$E1IGZHcPD D$EňD$qD$ AsMA/ЃIFAH0HZ LHHD11HA.A0AfHD$hH8G % =tj$$H$H$ wHHYH$1LIFHPIVxH@(H~rAHVLtCH oG%0H41HHuL)@L$PcH=, f(SPHtHtHVHVLtHH@LL$0L=zA%DT$zH= 19f$D$z<$ƒ ˆT$~tT$yAq ˆT$~uHD$8HH|$tzH>%8uHZ;%8l$@L$DD$8H Z L$$1HLHHHHD$H$H:%8ubH-=%l$@DD$8L$H L$$H-,@%H9$UHT$H+T$8H$H<HD$8H|$|$0@|$.HHPH$Hw=A/wUЃIFAL8H1L@l$PD$0HHHH$HD$4$D$~@0LX&IFHPIVH|$#H5 1D$D$HHD$hH0#J|=HsL HH|$ HHHHwAUIATUH7IHH@I$IT$H@AD$ %DAD$ H:%8u2HjLHjHLE1E1XLZ]A\A]@H 5%8tE11ɺt1LfDHHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$HT$dH3%(uHfDAWAVAUIATUHSH8HLfdH%(HD$(1HBA\$ AAt^HHBH7;%HOH@$%‹A@% ЉA@HGHx8HHHCH& HcH>@HHBCdH HcH>HEE1Lx0ELD$XMD$AD$M'E  M9HUHB x9EuMtArArAE mHD$(dH3%( H8[]A\A]A^A_fHEE1LxEHMT@HEA@Lx DHEHLxEAzt2HzHtwwHUHBHE@H ~4%H5%HcHHHH(LxIHtBHPH@7H=%995MHEHM9MHIHx0@\I $1A\HD$ I4$H|$ HEHR8F\HEHH(H4$HHtHHP 1AtHHp Ht@@\ ] DEl$ A tAGAD%W=dA~HH}Ht?HEHxtfL$ HEL$ H@HEH@] %_E @ID$Ht@ M HEAD$ t8Lt,H+%8t Hq&%8tE11ɺt1H HD$dH3%(H([]A\A]A^A_DE1t!%=Lu] AD$ tnHUHUID$Ht@HEAU %_E 0A Dm MJAveAv1tHEA"HEAD$EIT$%AHUAvAG %_E H} Hh E DHT$ ] T$ DCDH#%L`El$ A t  D%=A <] DE9D1H&] PfDAT$ DH] El$ T$ DAT$ El$ AAA Eu HEHE%_E  E I$HEHR HP AD$ 9M -DEl$ A.AN^A4H/I$HEB(@(U %_E "E fAT$ HLT$ D@=u'AAD%= A@&I$LpLx%_DE D%=bD%=u I"AD$ PPMAJM IX LL)HOH K6L9; I$IT$H@|H}Ht'HEHxtE  ]MI$IT$H@DID$HEHELxHELpM fA t/I$HEB(@(D%=ue AE A3 A Dm AD$ VL>HBHH(D@V1HnM ft=HLH= 1DL1HH$%H8HG f%f=H)%%HHH=} 1MDLAH@AGfDà A;H5 1A@à It$F < ALHTHL$ L$ A0Sځ_U >D%3 ЉE AtI$HEHR HP A fI$HEB(@(OfLH=AY%_E H H1HH"%H8HdG f%f=cH'%%HHH={ 1mAGyAAAT$ fT$ fD%=AŃ  H LHFAŃ A DLH8n3I$HEHR HP E Ey DD?AD%= ] D LL)HOK6L9D% A|$MH}HEHtHxtiHEIT$HUI$HRHPI$HEHRHPe AD$ _AT$ ID$I$H@I$H@Ad$ DIvu HEH;pvHIt$H}LHELpHEHUH@|@H}HEHtHxtOsHEIT$HUH@HELpM P*HE VD% =^"Ht$L] HT$IHu HEH9PsHHHD$HPH}LA HEHT$HPE %_A HEADDm `\7HH=Fx 1/HiLT$ El$ T$ E LgHH9HEH@ HcPH|:KH}tH H@H{HEEl$ H{E WH] ,HVU %=EH9DHjjeDIVLHցDyLL)HOiK 6L9\I9SIHMH9QHC6HLH=z 1fDH4 BH1lHNj@ % ="1HfDHv!H@H4 H4 %Hp tHK븐cH@H߉HWp TuDHEY HCp s@H:p c@HS@HCHX 7VH|$IHo MH|$G HGAWH AVAUATUSH(G DJA9+HAM1L}AH ~ JcH>fA&fDE1E9\EE J 0D E A!H5~ JcH>H A%JHHJHEHH@A H@AH@H@ E % @E A<HEIWHPHEIH;tCIH%JIN1fL]0H $H $MH8ff.fUHSHG uteHF%HH9tE=_U H[]ft7%=t$H] wwH[]@1a] H[]H1H=d Ѓ cHH5d 1[]ЭfE $fDHH[]f.H[]DAWAVAUATUSH(dH%(H$1Ht z It)H$dH3%((H([]A\A]A^A_IHHHztLl$1 LHI6HD$I9sAA~-H"IDADH9}J1DIL$HcHHHC@|L{A IWH:Ht7O u, tʁ_W IWHz(Ht EIWHz Ht(GtzHHP Htn@tuHHf.<v|I$HxtqtLdHuEILLLBt`H@H[]A\A]A^A_fAL$ H[]A\A]A^A_EILtLLH@8H=OY 1HtWAUATUHHxwIHrI HLH(I$HhH$AL$ D8u]A\A]fDH$8t]LE1A\1ɺt1A]HH=X 1fH=$AVAUIATUHSL MI$HH$HL5$I$HID$IFHHfHHLIVL@I$ID$A \$ t+H%HHyH8HA$H;8}$H$HL$[L]A\A]A^f.HfD蛱I< 輺KAUATAUHSHH(dH%(HD$1HW % H9=DHt$H߃ IHE % =DHt$H Ht$ILD$MHC U 1 H;$HB8 ;LLLݢHLkH@HD$HTLD$1L HD$MM9LLL lA=Ht$H"Ht$HNjU qHË@ % 1I9nHL$dH3 %(~H([]A\A]fDHD$L-"_HELMHpHt$}fHLLL蟡D1@HH}HpHt$>ff.ATUHH HxG HF   E  HE@HH@1ɺHH4$H4$HI@ hHLH+$HHHOAD$ tID$@HH@HL1]A\ڠf.HH H$Hp f.1H薩H]A\fF tHF@tHH@tHF u9H$HhfH$HhHiYHT$ H4$pHH4$T$ H|$Ha$:tHE11ɺt1HD$HD$@ATSHHG H@Gt5HH@t)H$ HHpAIHuH{H[HA\鑙@ u&uHL[A\fDI|$H;{tLLu AD$ IHy$H$H$AVAUIATUSL HMI$HH[$HL5($I$H ID$IFPHHfE111LIVPy@@@@ @0I$ID$@HyiCI$@HX@I$Lh0HI$HHB8L[]A\A]A^fDKILP l[AUATIUHSHG < FHw$E1E11<HHcHh H]Hb{ (HtHH`$HHlHHH$HL-$HH HCIEXHBH1HIUXHHHH@HH@HH@HH@ c ?CHCH}@H諣H}tHHKHBHHBHUHH]HHHHqHSHpL$H[]A\A]<6HHHPHrH;P|H'HHHHqf.A|$ LefD#H1jf+H( LATIUHG tBtot=ufHoHHAL$ uv.uHL]A\DH5; 1EH舦H=; 1踺SATISHW %!=uHHHtL`H[A\fDvwH|$褲H|$HHuH$E1E11wH@wHfAUATUHSH(dH%(HD$1G  Ht$ iIŋE H$ ;tgHD$Ht$LL賮Ht$HHIHD$dH3%(H(L[]A\A]fDLd$tKt%LbIDLd$뱐HLoHRHT$HwH[HD$HtjL`It7;nHt$LLI9UHHH= : LHt$H@(LHHxL L輭IHt$LDHtG u,@1DHH|$rH|$H@AWAVAUATUHSHW uFHIIILH<Lh(MH$8IEHuM}ImH[]A\A]A^A_IUHk]fH*H9H)jfH*H(YH)HKfH*HH)fH*HfH*YYYYXXXX/H $Ht$HNjA % H<$‰D$ H<$DD$ HHt$D¹TH<$DD$ HtP Ht$HFD谦I$Lp0HHzHH $HHH $A @HAHHx HH $sHIHcHC%HL|VH $If.HAHxDxEt%IHP@HH%BA9H,%HH)HHAHH@HEI$H+HfDHHyHrHt$TLH=n%!1HH $tH $A HHH`HPHMHJH@HH $:HIHcH %HL|H $IXLH $EH $HfHxHydHH@[HHH $H $HLr&LH=0$!1lff.AW1AVAUATUSH(L%%H%dH%(HD$1I$H+Hx0Lh(zL=%IH%HIHcHH H9 uHLHYA cPHIH'A uG  HAHH@H@MIH@@HHx0Ht+j11E1jE1LZYHtHHy LL۝IHQ%HH)HA} uIELhI$LmHH+HH\$dH3%(DH([]A\A]A^A_fDuЍr` HHt$ H $FH $Ht$HNjA % H<$‰D$ H<$DD$ HHt$D¹\H<$DD$ HtP Ht$HVD踡kHHzHH $H@H $A @HAHxnDxEt%IHP@HH%BA9@H%HH)HHAHH@HEI$H+HUfDHAHHx~ HH $HIHcH%HL||H $If.LdHHyHrHt$TLH=v !1HH $oH $A I$Lp08HH谍HFHPH5HJH(HH $*HIHcH%HL| |H $I(HxHyHH@LH $H $HBHHH $H $HMLj!LH=(!1d@ff(f(fW !fTfUfVf.z=!f/%!f/H,HfH*f.ztDX @E1LÐf(\H,H?H(HHfHH H*X@f(\H,H?fHfHH H*X DHtTG uKHWHtBHH@H=w3H %HH9u!HHtH94uHff.@AWAVAUATUSHH%H|$L(MAAE1AEI]H@IlH9wHHH9v7C =tD!D9uCtHHHD$AH9wMmMuHD[]A\A]A^A_E1PXH=WE!1HH5*%DPXH5!HH%H8HtG f%f=tHG%%H4H=!1踝HfHHBHJ0H0HH wBHeffffffH9w4H HH9w"H HB0HHH H0H vH12fATf(fIUf(HSHHD$fW! $fTfUfVkHA$ $HEH9YH9Pf(fTHEf.f.9!f/9!(ff.EA$zHt HT$HpLD$HHDHtAx@~VHIH9uH H9HH)HHtH9u|H[]A\fHHEff.EֈUjfDf(fTHEf.z*f."8!w f/ 8!HUH4fDHE%H=!1qH=!1cHUHHkHPHufH)H H9wELAHt5FHVHփH%H@L@H HLHHHBHRH9uHǀHPǀH%HH%HLHfDff.H%11H='bfAUATUSHH-%H}HG H%Hu>f.HHC uu聙C H%HHu؅ttL-A%MeM|@H %IEHf.HHHH9uHμ%HEHH[]A\A]@uL-%MeMtAT$ Bt!H@I@H{跘HHI9uI$L蟘HFI빐AWAVAUATIUSHHL=O%M7MEn E;nAELAF 1H=t%HKDmIHHpL`h LHH4HHHH9vHHHHH9wHHH[]A\A]A^A_D衉L0Dh I@ISUSHHH-ļ%HEHtCHHUHooJHHM`H HU`HH K H[]flf.HwGtBFHtIIIHHBHg LGLGHPLH骆f.E11fHFf.USHHo @tHH9%uxH@(S %_C uk€"fE‰C H[]@ tH%H@(fDtH/HГE(ffWh!{H蘜C UHSHHHtHHHBHqHUHEHZH[]ff.SHW #e1HÃt HC@tsHH@tgHx% HHp誐HtEP t HKH9Ht3 gzDHHt4HRH8fAD[DHbS VE1[D@ʀ%= %=HHH+%HHH E1Y AJ@tHAHy -E1!Hff.@(ADEHAH@HE1HHC80AHH@80AHHH@HHuDHhHHx AuH;%Aeff.@HͶ%ATUSL Hu9MI$HHR%HI$LID$[]A\DHMI$HH%HH-%I$HID$HEHt[HfHHsLHU@I$ID$_nL[]A\KqIU;qIfD \zf.G < t-tH<耉Ht+H@ Hf1DtHH@(f1HfATISHHG < tx= uH=!1Ȑ<HtHp H HtMV t|L9HH[A\tHtH0HuH%Cut‰HI%1H=!H1%DH>HVHOL9"t HLM9u "fL9 tCHH9rHHVHoH>HHOH[A\H%8;LH>Ha%:LH=!1芏f.ATG It9tSu*uJH%LAD$ GLA\1H5! ]LA\H=V!1 c@HHtGff.@ATUHH HpG HF   E HE@ HH@1ɺHH4$蟊H4$HI@ XHLH+)%HHH?AD$ yxtID$@HH@HL1]A\j`f.HH H%Hp f.H船H]A\F tHF@tHH@tHt{F u5H6%HhDH!%HhHyiHT$ H4$[HH4$T$ LHZL;%Ѯ%NH%HhHDT$ H4$ZH4$T$ fD1I$HtHPH1HID$80I$Hx ff.H%ATL Mt[I$HH%HHI$ID$Hù%HHyH8H%H;8}%H%HL$LA\ÐkkIfD諉HfDATIHt=G uAHZ%HHyH8H%H;8}TH%%HL$AL$ LA\HHH+,%HHHvH;=%uHff.AWAVIAUATAUHSH(dH%(HD$1D$LcEBHJ%D` wH5!HcH>KLP$HiɱzH3H(HDf+AA H1A)AABAD)D1H9wHLEAHHHHHI9H IGHGHt+HL5 Aރ4D)11AD1 1э4A2) A)1AA1@H٭%L(MIUHHg%HH 4%IEHIEHAHHfHLHQ@IE|$IEtHcDHPHIEIELxIEH@AE D|$AU t D0AE L9tHWHD$dH3%(uH(L[]A\A]A^A_ÐUD3$\UD3$XUD3$TUD3$PUD3$LUD3$HUD3$DUD3$@UD3$<UD3$8U D3$4U D3$0U D3$,U D3$(U D3$$UD3$ UD3$UD3$UD3$UD3$UD3$ UD3$UD3$UD3d$Hī%L(MfIHT$Ht$1HcD$H\$`t\$HN@H%MAڃLAHI)LHBH8HJHRILIH HL1I L1HHH1HHIHH1L1H M1I9uL!EKcf \oH M%7AyH0H AyH(H AyH H AyHH AyHH AyHH A9H H1J<H HHH1H1H HHHH1H1HH H1HH HH HH1H H1HHH HH1H HH9H H1H1H HHH1HHHHH1H1H H :HHH IH1I1IHHI1H L1H1II A1q AWy AGff.ATAUHHzgHDHH]A\cDH-%SHGHHtEHH H%HHPH@HHpHc HXH [dfAWAVAUATUSHHH %H8H%AHK%Dd$ L0HH(4H:uEf.S H HH9HEtHEHP Ht̋HH%HHtHPHt@ 1Ƀ vH9t1{HJH9uff.AWAVAUATUSH(dH%(HD$1HD$HXHt$G HHH4$E1L%P!CfDE t3HHH+B%HHHH;-1%D<6% E H9tVEuOI1AG AG uHI%HIL8H%H(HtEEIMtxEn A mAA uH4$LzHHuIHxuL8H@LEn LHD$>gAF 1MEMuHD$dH3%(+H([]A\A]A^A_ÐHLRAv<A 9HEHxt<HPHU~e AE wwHR!HcH>Hc@E rH}OHuHOH)H}HU<#HRH8E 1@IINHBHHpHrH,>IHPHx HHJHHH,H}8DIHHL% AG zx':L9AW@BH]%EIJ HJfH}A vI`HA gH!AXuH}HA -I`1+fDI?{5Hc Dm A HttHEHxHHsE 16fDHGHEHx HHsE %P=PHR=HLHEH@HEHPH%H9(HEE@t HPH8Hx IzE X1HUBH%F H=50 H=H=H%H(HHtvE tKH\%H8HHtG uvnuH[]fD wHH%H8HHt‹G u wDH[fD kaff.@ AWIAVAUATUSHHHkHAIHAHHHEHUD9uHEAuL9uHHtH@ HtHLH}(Ht+EyE1H$EA%W EtdA H= L$H$L$D\$@DT$P%DT$PD\$@HL$H$L$MfAB<7tH HcH>1EgD$ HtIE G)(HDT$@D\$PDD\$PDT$@>)D$  M&AVAA$H [ EJcH>1MA/IFHPIVL8M*|$0D$*Ht$8LHE1|2D$PD$AsH$H$D$@D$ 1ME ˆT$@|<$ D$y D$0D$@(A/o(ЃIFAD$PH0E1AxH$D$@D$ =1EFD$ E11IEH@HH+$MGHAHFAVA$H5{ EJc H>1Mt IAH9ES3HD$ 1EtD$ E1.1ElD$ E11EaD$ E1MtA/YIVHBIFT1ED$ AqR1AD$<H. HcH>1ED$ E1AD$<wHY HcH>1MAq]%AVTЃIFAV D$ d$PD$P|$@MMH-u%HE@ f%f=t f~"LD$L $RL $LD$H$D H|$ 1E1MD${DIH|$D$A*tAAvCHH$@%HDŽ$L D A*uHPH$H1HH1H@vHH$@MIA/ ƒIVAH*E  H$"HLD$0QLD$0IE ~Ht%H@8jD$H$HQ<$+H$Hu A ! $D"HE]fDHQD$yH$Hf.HQ@$H$HHQD$zH$Hf.I,LMuL;NvLLL$?CIEL$HPIMLHLHMB IEHh?@H$LD$(LL$0qH$LD$(HQH$9$M[/yLL$0D$(|$|H$M/IGD$(H$EgE$D$yD$zDH$AG<*IGH$AGH1HW Ƅ$MA/ƒIVA21H$LLL$@L$D\$P=D\$PL$H$LL$@E'L$IOƃHD@t$0HD$8lHDŽ$ED$PHE1D$@H$D$ |$0~HD$81H9$ |$@8|$|t|$ IEHxKH$HH9-Ht$LI}H9HBII)HGHPIII9Y-HAE'H9wIE$oMt1H$t@4HI9uLH7H@H@0H9uH$HLL$D$D$JL$D$D$HH$HMI@H@ L9uAt$M+E@t$|IEL@tAM EtH$ |${=HD$L$HD$ LL$D$H$D$Y?IEL$D$H$D$H@IE$|$yM1H$L HI9uJ LL Hf.HB0L9uH$LLD$D$@IL$D$D$IfDIVHBIFHULMHRH$HmHt$HHHt$H;D$X`Ht$hH,IEH@H$pHjHD$HHHD$H;l$X]HD$hH,AB<7H HcH>I<0ufL$AI<0tH1H~L$D$0HD$8E'IOG<GHZj%H H8Ht"G f%f=Ho%%HH5> <1,aH|$v(D$PE1HAsH$D$@D$D$ 1HLD$+1ҾHH?E LD$% =H"LD$0H$J|$|LD$0IH$@|$XI@H$|$(A} v(IEHxtwLl:HHtL#Huj%8Hd%8E11ɺt1LxI$+Eu7D$ AVAA$ H 6 EJcH>EO <$ AD$ E1/ƒIVAH*HDT$PD$::D$DT$PE  H$"HDT$@D\$PHL$DT$@H$D\$PE D$@ tH+k%H@8D$@D$PMH$|$@0I)H$L$D$ +`H$IωI0HAu<0t$|$ztBƄ$0ID$IDHL1L)|$0HH$Ht$8H9/H)D$yHHH;D$XHa%D${Hh08AD$<H HcH>HH;l$XHa%D${Hh0JMH@ H9uM[1H$t@4HI9uL7H$IVHBIF H$L$LL$@D\$PaD$0LL$@L$HD$8L$D\$PE'IO1ҾLD$H$D$;H$D$H$D$oHEt$|LMH@@t$H$H$LHD$ HH9D$X=xBH!e%Hؽ H8Ht"G f%f= Hyj%%HH5 =1'L AE ET<$D$ E1A@|$ AXzH j%H$IϐHIHAu H$IfLI0HAu<0|$zAG0LzH$Hc|$ IH1IH0AHHH9sLHHSH>@$L$HDŽ$|$P3|$0ҁ H|$pvHLE1E1D$D$RL$H$LtAG $% AX=AYD$D$sH|$pH$"D$D$lCD$D$IkH|$8H ˆT$yv1A?0HL$8D$yD$yD$0RL$LD$H$LD$L$@1ҾHHD$8H|$L$D$D$H$HLD$H|$H@HHL)H$HHHEHt$H$LD$0LL$(D\$8)LL$(LD$0H$HJH$:$MD\$8!Ƅ$HPD$(H H;T$XHD$h1HOHUHuLzH4$L$KH5] H=D$DT$PH}E1E1H5_ 0D$DT$PH=1H5 "H-D$H[%DT$PHh0vH=d%D7HHH,$NL=HD!HcHI9v1DHHLF?AH HHuH<$LE1E1H$1D$D$5H$L$D$HD$DLL$`AMIA0uID$yL$D`AH1HHl$HD$PH|$pHLH@H$AE Hb%H@8L$11D$LD$@:D$D$D$L)H$tH$1LE1Ht$`D$D$L$D$D$1$D$ A$E D$ % =U1HD\$@D$(D\$@D$D$PD$P|$@D$PD$D$KD$$D$AcT$Pf(fTf.n d ff/<$Ƅ$+H$L$HPIn@ff8HL)H$1E1HHDŽ$D$PH$D$@0HD$HHHD$D${11=D$ A/ ƒIVAH*HH$$AD$PH$D$@Q/tƒIVAD$P2E1H$D$@ D$ ]D$ E1MD$ @D$ Aq-D$  AqHD$ fD|${*|$|Hb*u/ƒIVAHc*/ƒIVAH2E1D$PH$D$@BAfIFHPIVЃIFAIL9WA%LAlAAu6AG%D$ $ApAG<9D$P|$P<4t @A/lIVHA<2D$/;HAHHHHH$/ƒIVAHID$@E1L$HAdH$IDMD$PHAxE1H$D$ /INAH/ INAHHU % =V"H$HD$:U D$I ^H>]%H@8J|$0L$L;d$8  u'HE@HH@K4'LD$'D$HHD$8H9HFE tHE@tHH@ 1HD$HD$H|$%t$0H$E1HD$8@t$D$PHAsD$@D$ f/ƒIVAD$P2E1H$D$@/ ƒIVAD$P2E1H$D$@/k ƒIVAH*5/ƒIVAH*؉D$ MgE @ HEHh AcB HAhHDH|$@AfH|$8!ЄD$0t @g |$~HV%@8HZ%HH@8D$A#PDЃ t H>U&2t HY&8#A[AHQ&tD9E9@@EшHt$8L#H|$(HD$@H\$HE1H,HP&HHD$8HHD$ f.M}LLII/HHtHD$ IE@uBIHL;d$(uH\$HHT$8IEHt$@HHTLpHXH!Ht$8HH HPLMFLL$H+ILL$HSHHHyL!H.H[&BH0HH0HT&H;0H@Q&HHHHHD$@HD$@M<$Mt1 1t#H9!L9~H5i! 1HO&M}HID$Ld$*HD$ HHD$(HE1|$0L9HD$@I)H\$HLINd HHlMILHH@HDL9I|G u1*HGx EtIDH@H|$@MH|$@G @t$H)*HD$ t$HHHD$@H I9uHD$HH\$hHHl$XHD$@Hl$`ILd$PWjAE11U1LL -AXAYHtrHM&IEHJ8E@rHIH9\$PL#HkjAjE111LL,AZA[HuHD$XL HHD$XjD$@HD$ H|$(H8H?R&H98II9fI?IIGM9srLIIH\$HLHl$AF@LLd$PHl$`HL$XH\$hLH)HHDH9HIH9rDH@HHEI9jLE1E1jHu11+^_HuH#L&HHCHH9<$_ցu w  T$ .T$ H5! 1OAV fDHt$8HBHH)H9iIMHHD$HH4H|HD$ HHBL)L9-IMHJ4J|!HD$ H',HAF |$w1LmAV IH@HD$HuAF  |$^D$MHD$oH y<&HpHH L4fDHBHL` fP HD$HD$IHD$Lt$ H>&T$LLH(H I$uH:&H@& I$H@ I$ AG@#H=&L0HbE&HL)H|$M~InAG t,6u)H|$u!IHJHBH)HPIfH1=&H(H$dH3 %(H=&HHP H[]A\A]A^A_I$uH|$tAIHzu7 u3HA&HB u L I$DHa=&Hp"H;&H8 vIHHH;&1Lt$ H8I$H8&Hf>&E11ɺt1LuqLHHL-`@&DIH,E11LHH;&HH3I9t LAF@}L3[I$|$u.t|$ttH:&H8tf.|$AF@LuH@z,ÃHq(H;PHFHrI IGfH :&H9HB HGL@(MA@IH@HH 9&H9HtI$E1E11ɺH5- (WH 7&8\H9&LI@H8HH5- H^9&HH@H8G@6Ml$ \%=11LAV IGH|$IHD$0IIH@HD$8H)gLMI4LHIL L ƒHHH)H9HufIAA>yI9sLL @&L1fH9v9LHA HHuA>KI9[HD$0HD$81I9sAH56!,1.DH3AF f.tfЃ fqIHrHBH)HPHIfDIIH@H|$(HtH,<&HH HyHL$(LLt$0IfAFI(H=!{HtHt$(HT$@Lt$0L1DAF IMH@HD$D$f.L.fDH7&Hp"pIHH'6&1H8I$SDLLILHH5&>H8ln]L7IIFH9HI#tHHHHIfDLxHf.HRHD 8IHhIGHD$(L HH.D%=f11LU1LHt$(!Lz<&Ht$(HII9@L)L9wfDIL9A>yPLMfDHHrIIGfDLAF DE11ɺt1LH=!1DD$HD$HL$DD$IHH}LL}蘰IHI$LfAF |$t"_AV H4&@HLsHkfD NH@L@(,|$Lt$ bL H2&1H8u5H/&H( H x!H5҉!HD1AF )@L*LL[AV !LAF LvL1uH@H8LH-2&LI@H8HtAw L1#H@H8f.AWAVAUATUSHH2&HH8H O L%*3&I$R"u/H<5&H2HcV( LRJLFIRՀHPH-X1&HHHUB uRH9&H;HH)HHWHH;1HHPHHHEH[]A\A]A^A_DHJA Ɓu wHMȃ rHa-&H-0&HHHHU1~,jHHUH6HWBHHBH,&IHpIHu#HHH8O 4L+@t@@tdI$@"@tFImLHPI$@"@tIE@ImI$L+HZ[]A\A]A^A_HPH.&HH,@u{HHhHIHxTH7&HL)HH9|>E1L KDII9|HHHMluHqdLLH~IHHcH|DAWAVAUATUSH(dH%(HD$1HW2&HHcB H @H HBH,]DL}8@H/&HL`ME1DH/&LmPLEHH@#H)ILLmPH?H<HVA@I@JL$H HD$HD$(MH$1HD$8LMIL${ K.HD$KD- HD$ HHPH)HH@ K.jMjE1LLHPA[ZHm&&H|$(H8M AG tH)&H@8u @AT$ % =u"Ht$xLAT$ 1 tH)&Hj8L$PL'&ʃA;EʈL$PHtEDT$@Eu;HT$xHL$0HcH;qp(DL$HErqXu@trAG ukDD$E<HD$@CAG %=t{Ht$81LID$MXHt$(1H=r{!1H|$GCA L$% uIH@H$MwHxHH)H H$&HHtHD$0Hx(HT$@LH[IDD$11EIHD$0LMO I@Xt$PHD$0E H@t$PH0M,7t!H'&H@8ҁ LLT$rLT$HD$(M@Ld$hMAILT$`H\$0%1D$@u@HT$xHtL$@Ht$`H|$(|$HEA} IEuH@L9d$H@ LLAhMLjEHT$(PYE1^HHH;D$ |$PCXE@|$Pt+HL9tHL$LL)IHL)HIHL$H@H0LHt$AF t!H&&H@8Ɂ@@HT$H|$(LDD$8L)HDD$8L`MEHt$hH|$(f.H "&HH`H|$0H(PHV(&HH9HZ8HT$(H{ HD$0"H@HD$0I$H@HD$xID$fHI9tLH1ҾHE % =tMHHt$x"KfAD$ Ht$0vXlHEH@HD$xHEDH!&HHH9H=u!1fDH@HH$&H8HGL0MH'&HH)HHHH< HD$H=y&@@H|$XƁ?t$H3D$D$PfDD$E LIMIDHA&HL4D=$@H)&H\$MHCCu H&Lr0LpHXH&&|$T980H&HH&HHH$dH3%(HĘ[]A\A]A^A_f.IM~HRH$H=q!1M@AF t!H"&H@8Ɂ@@HT$L|$(LL)LHD$@CH$&LU &MHLxHXHD$@CuAF %DAF HD$X8AF@H&t$TA90HT$(\VLHD$LoAF &HH_&L HM &H(E ;E$E HT$P|$HH @t$TH HEHHL$ fPHxHpHt$HHHL$( Hp@HH@@LxHH Lp(Lh0Lx8H@HHXPH&CAFL Hv&HH@H1AF  Ht$0vXt$P ʉ% D$HH$&HЃA# ELv&T$PAAF  IHztI~IH\$(HCIFHH@HBHIHRHPC D$% A F H&HCL H&HI\$@# Hi&L&ID$y;LHD$@@D$1LIMI΋I 1H@L0(E H&H(E LIHID$HL&LL\$L\$D$P% < D$PH;L\$uI L\$D$PAHD$X8E11ɺt1LL\$L\$f@I‰Ht$0Ll$HMIHHM$\$P߃HFEI)I,\$PI9HE~McLHL\$LM"L\$A$IM)L`H&Hx&HHPHXHD$0HXLLl$8LMIL\$@HHD$dHD$0} HH@HD$(I4HEuH@H@ hH9MjAHT$(LEHHt$XPAYAZHt$HCH\$HHH\$H;D$ S\$PH|$0؃G[EH\$PHLHH)9tHcL9tLHT$(HT$(IHT$xH$LLLl$xWHuHWH)%I~AF GE11ɺt1L\$H)HcII)Ѕ~"LLL\$LT$hL\$LT$ILLL\$LT$HT$xLT$L\$H LHL\$L\$LL\$@Ll$8H9t2L+l$(IHHI+FIcAL\$HHBIcL\$Hq&H(H7&HH]@# t9H#&HE;LLL\$L\$Ld$xC~L\$Ht$HEH.L\$@AVAUATUSH&HH(L`E HHH+&HHHE u2tHE@tFHH@t:1H*fHEHtWH@HwHtHHE80fDt4H-]&L5&HUIHcBHc2xzHHL5i&H-"&HEL-&H&IMH9HEHcIHI9H=8&HEHcIL4I.E uhL-)&%E IUHBH8Htw=wHBEH(H&L#[H]A\A]H@0A^fVfDHIHŋ@ IExHEHx HмH;-&fL-&IED`"Au/H&HHcB(H @HHJHD`AVHEHPHUHqpHEHP+pHUHchIH,IEAt]At/H+[H]A\A]A^IEH@fDHcHlfDz,AAl@# t"H &HQHHEHHUH&HHHcHL$AT$ сu&H &9tIt$AT$ LeH4LsIEff.fAWIAVAUATUSH8H<&L Hj&I9H&H-&HD$HHEHHT$H<H&H982Ls&LL$ MILt$IIIH^@HFL!L9IxI7F teI9IHH9wH93%F f.IIIt$t/IwF Iuut+HHH+ &HHHvH;5&t FIHF IHIH{Hf.IIt*I~IHtGtI%IIuL-M&I}HEI@"HR0Au0HL &HHcA(H4@HHqH@ALAHEH HEH &p"H u#HcA(H4@LAHIpA ;A$zA HH<@HMGIoI@H8HI IAF @TL< tB%=u vL H5 bKIIFHh HdfDL0H xHHMwIM<$A@jAE11j1LH]AYAZH*HxH%HH9H IfDMGIoI@H8HxIgIAF (<L< tB%=u vL H5Ż :JIIFHh(HVfDL0H `w^H}HMwIA@ILH)Ht H8H H=%L1H0fIIWHGL0MIAV  M<$xL;I`H0IIWHGL0MnIEAA@AĉD$E` D$ AjE111jLH>AZA[HL@wMH%HI9E L@H%Hz%H;HH)HHoHH;Hn%HHH([]A\A]A^A_ÐE1EE1IIHGHh H 轿H@Hh H%IWIHH,L0H f.H%IWIHL4DH%IWIHH<DH%HL0HHAF L腕AF InE < H=@A!1hIIHGHh(H 譾H@Hh(H %IWIHH,L0H f.H%IWIHL4 DH%IWIHH<DH%HL0HHAF LuAF InE < H=@!1XMoIILp @1HT$蔽HT$H@L051HT$tHT$H@L0uH賱H# IF@tHH@ T$T$LH5nC! 1AV fL1ּH@H8rf.L1趼H@H8* L蝼H@Hh L胼H@Hh(H=%L1DH%HDx#A0zA@"u-H%HHcB(RHZH @HH@<=H1L貘HHH7%HhH'%HDx#A0twAc@"u-H'%HHcB(HrH @HH@<jHLA@jE111 ^_HHd@" ZAEA@Ej11E1jE1LHZYH&L@ME LũE HB@" ED$E1A@AEDLH!D\$IEtzHWHHKE]HHUHBoL0HhE VHUHB5LHhE HHU HŁA\ED$E1A@EGH~%HHHHH %HL%%HH HCID$PHHfIT$P@@ @0@@HH~%HCHHyH8H%H;8H=%HHHLK @Hy{E11ɺyIHHAt$9At$EHHh@HHH@8gz,,jADE11j1LH9H%AXAYHHcLHu4H%Hh0 jE1HAj11L_AXHtH-%EE HEH@MI9HL|=HH-%L@z,LHrE1ЧH%HDx#謧E1ɉL$H %HDz#EA@AA!H%H:HLH0HLHxIH萼HHSEtlPHyHtZH@ HH@HHHH5#!HHH5!HHLHA1ۉD$EPHHtwH@ HH@AHH8HYH5!L$H|$ML$H1H|$H51!)L$H j11E1jALH_ZYHAŃL贩H^Et9HMHQ Ht,y<tH:t AP tIPz EtnH %HLHD$HJ"HP藭HD$HhtgHLLI,$P %aHLLD$0LD$LkHH賗HLHD$ޛHD$H9HH聗7H%LLD$Hp"EI$H,M>Ht4I\HH;HHtwwHCL9uHUHEHJ H9H)HHBHEHP HUH@M9>IM>uuH[]A\A]A^A_fDHH L9toI)ILHPHEHP HUH@H[]A\A]A^A_fDcBfDfHf.HBTH@H[]A\A]A^A_fHA&I$HJ)HH[]A\A]A^A_~f. IHxYgf.AUATUSHG HItGPIHt5HN&HSHHtMHMLH[A]A\1A]VHELHHpH[]HA\A]|1H= "jHCHHfff.AUATIUSHH/HtHLH[]A\A]颏fHa&HH(HHUHH&HL-&HEH HEIEXHtrHIUXHEHHEH@HEH@HEH@HEH@ E HE% @E H+9pHk( zuATUSG HuhHEH@H?u@HMHUHAHHL"HAHE@MtL[]A\H&[]L`LA\DPΈIHt>H&HSPHtfLE11H1TIHt[]HA\kjE>Hf:fDHMXbf1H=o""}HCPHdAVAUATUSG HHuiH~RE @u2HUHEHJ H9H)HH9HNHBHUHBHH)UH)uZ[]A\A]A^fP薇IHtL-&IU`HAL[H]1A\A]A^mSDHU@LjAHMMILItIKvHEHXLeHI9|JIH&HSXHtfLE11H1PIHt[]HA\[fE.HV*fDHMXbf1H=e"yHCXH`GuHH@fDHHHAUATIUHSHHHIGI$H9h HPIL$AD$@t`H9}9HL,H;HtwwHHI9uI$HhAD$@H[]A\A]H9~HDHTfHHH9ufDPIH;xHuHHXH-G&HU8HtpHILL[A]A\1A]NfHHL1[]A\A]tf vfDHL[]A\A]~1H="@wHE8Hv@AVAUATUHSG KHU@L5&HZIHHxH߰&H98^L-w&I>EIEH,M&Ht(HEHH[H]A\A]A^[[IHx[H]A\A]A^sH!&IEHJATUSHG Ht$DHթAHD$HHH9BS @uHSHL HH HQH;T$C@Mt@uC@t8LbHL[]A\ÐAt$At$f.E1HL[]A\ÐC.HHRHHHD$:HH'HSHHHTH HQHHQHD$HyC@;HzM/jf.P~IHHt$HxPHtHL LYpL~H LpZHL[]A\LHT$HHt$ufHkHD$KfDH HcHD$HDH ~H8LE1rqpHZATUHSHHt$GHD$HxpHUH9B|VHUH&uHa&1[f.H9&H@&1[fPXH=)"1HH5گ&赁DAWAVAUIATUSHL%&M4$GHHhHHHO&HL)HH9AEHL=9&1IEHHt+IDHH9uII$IHH[]A\A]A^A_I@" H&HfD ~HcHHULLHlIAE[@H~CL=&1f.1HLnHt*HIDHH9uKL=Q&7I@" uH<&HHLcHLS릐HL &G MA@#t@tTHW @tHHx!H HCHHH=&1QftH~[fDH=a&1Qf.PXHHG t H:&H9GtH=!1ffDH=V 誄HDHH}&HD$H8tHfDHH}HpHt$mHEL}H@HD$fHUL}HRHT$f.LXm߉S mff.fSH$&He&HH;H)H~H &HHHP(HH;H[fHeHff.SHܟ&H%&HHH0&H&HHcB H @HHJHHcPH4&HHH&HH&H]&HH9H&u"H[H WH&tH&H[Hff.fAUATUSHHC&H&H+HH)H~VL%&LmI$x#Hx(xUHWHHtHUL+HH[]A\A]@1aoH@HI$@HHcHIHEI$fHm&HHff.HH&HHHH&H;t3H\&H &HH+HH&HHH}ƐUSHH&H&HHHJH&H0HH,ʺH(H}rE@uHHH[]f.HxjHHH[]ff.SHT&H&HH;H)H~HP&HHHP(HH;H[fH3bHff.AWAVAUATUSHL%&H&L-!&I$HImHH@#LuH<ʃH^C@uHH]I$ImHH[]A\A]A^A_f.HGHHu닐AF uAHgfDLut|H=ȝ&A1Eff.fAWAVAUATUSHL-&L5&IMIA#L#L{Hk@u HLIH&:uQU xb&L9tLH9]E@_HkIEM>HH[]A\A]A^A_fAD$ Y@ML$%EA A =Av>A"u-Hқ&HHcB(H @HHJH@<H LL$D$9NLL$D$HAv0AA IAH@@AqAqID$U H@H#EH%= $vH5! 1i[@He҃ ?@LsIMH&A##@L $WrL $IQHtBIQHE1L $Hx(cL $ID$AqAqYU Dƒ z,b HD$LL$LD$LL$P /&Mat@ΈL`P MpAD$eLH$8\H$CL'\@HǾH$!YH$P He&ATL%T&USI$H+HI$E HHH+&HHHE tyu4tHE@tHHH@t<1HFB,@HEHt7H@HwHt(HE80fDtHe&[]A\HH@0ÐHQ&[]A\HHfDHEHx f.Hy&fH(= H;-&@USHH&H>&H&HHcB H @H HBHHF&HcSHHH̔&HH&Hk&HH9+H-|&HEx"xHÓ&{;:|HH[]f MfGHEHH[]DH&Ef.AUATUSHL%3&H-&I$HUH{IB"@uH&HJHL,H3G F  u5J#LHGL+I$HEHH[]A\A]fDFNuHUH3H{AWAVAUATUSHxdH%(H$h1Hi&LH/&HHx0P#HH|$׃@HL$@|$@"@{@ HHM$HAHD$0H+D$E1AHD$ I,HD$HxHD$`AHD$HHE1AE1I9LMMMEIHCfDHHpHCHEC % A HHڅHHDIIHHEM9rCI]C  H9uILEIIHEHM9sHLEMMMÌ|$AT$ s p)T$8LD$(oLD$(T$8E % HD$ _D DAT$ HD$L@(E HD$HpLhJ<6HH|$D$(I$H|$H9xIL$HD$ H|$Lt$HI8MIIH|$`MtDE1IAILI8II0HH?H1H)HHuIIII9uHHD$ IMBHHHH&HHH7]HH &H GtSfAWAVAUATUSHL5߅&L=&II/Db#B"LjEAA<H&AHH)HH9Hچ&HHHHA&H;H&HH+2HHEt1H^&HJ 1DHHTHA9AD$HlIz#I/HH[]A\A]A^A_fHI&H0HVHH&H;DHh&H+(H&H*LIAHx(HDD$II/DD$B"DH&H҂&HHc2JH&I HHDHI H&IL,:9IEAD$HLHH` H9uLϾ DD$TDD$H@Hx('HHDD$HDD$H)f.DD$bDD$+DD$bDD$H)DD$XDD$.ff.ATUH-z&SH]H{H3G V  !LctExAHHH@ H9B H}&uH0HCLeH&[]A\HHt#HH@(f.B(EfD資@H>HHH uLINH9I$@ f%f=H6}&H8Ht G IIH}&HHL uI9lCfDHo&LH $HH@H8H $tII<L蠫 L0+fH5B L|GHL{@fDH9HLHoH@8L$H^P NH@HALxM4AG)qLDL$HH fDH |&MhHHI9I$Hv&L)AH@ Hf%f= DEHHAL[L]1A\A]A^A_f.qLL$/DL$HH_H7HHy&HH)HIXHHH)HHHH9w`IxHPHHL$L$H;L$HL$MIH=З!1DD$H $c8DD$H $HHVLHHH $H) 7H $HHz&HIDAVHn&AUATL%q&USI$HHp&HH@#H+Hw(HcH4@HHwHX%UB# 0E11ҨI]AF.IHxHpt(LL$Ht$T$8Ht$L$HT$H)Ic_IHPHJI$L$AT$ сH o&9MD$AT$ MeH]HH([]A\A]A^A_.IZ"B#y,(fDMuILmHH([]A\A]A^A_f.AI]AFPLL$DD$T$>T$DD$HL$EE1uI1LLD$5LD$HufDHh&HuHHIEI@B#Z"LmLVIHL$1L$<ALL$DIL$,t LIHH([]A\A]A^A_DLL@1I@FfDHt$2Ht$IEHMIDu-Hn&HHcA(HyH4@HHXH=O!1DLL$<IL$LLJI4DHL@AWAVAUATUSH(H-/k&L-Xj&dH%(HD$1HUIEZ"HD$L0u-H m&HHcA(!H4@HHqHXB f%f=f=AF AAEA  I~G D9HEP" u{@#-EkHD$IEHEHHt$dH34%(:H([]A\A]A^A_D9dHELP"tHD$H8HD$IEHEHfy,ÃHHB'DL@+>HxG GHHpHHE@# H<HMd&HPHHD$H@Lt$IFHD$IEHED`#AE/td@# 1ҨdGZHHxHXt$2$HH)I߅Hc&HuHHIMuHEHlfDLAF HPHe&HHЋC Hi&:HsC HD$HH<$(H<$EHz"H5!HDH=!1@HD$HHD$IE@EH!H5!HDH=!1D%=t|ELHL$DH5Y!<"IHIFHx(HDHEx#P"A,Hb&@ xEuIFHx HHEx#yLUHHE@L-^&HL$ LAFHIUHHt$(L4HHD$@HHD$8HHQ HH5\&HHHfIUH4HH9uHD$ HHt$ HD$(HUHI9:HL$8H\$HI(LHl$8ILHI&fGg HEIJ<(IL9HI<$HGL!H9t¾I$HHD$H<$HHt A@FHH9sN#`t4 2H|$HHx}x  fDHa&HD$F"D$0H|b&HHcB(HZH @Hl$HH@D$0I9H\$Hl$IL|$H9$sQt!LH+Z&HIHvL;-g&tL+AE@LmLHH;$wdL+LsAMAE < q uu$IM1HyHYt LL)HH9LLH;$vHD$H_&H_&T$6|$0fiH|$0H+^&H(H^&HHHx[]A\A]A^A_@IvL!L9 tIVzu H9$ HuL!LuAF@H HI9ZH@HAe&Hl$HH)Ho H>^&H@#YHPH>[&Ht$H+t$HHHЋC  HL$9 HsC H]@EgM>H]&H0KM}LAG Ɓt$0Ht$%LL$8AG DD$(LL$ *L$8DD$(IELL$ D$0A G 6fEiMKHLuIEHxMLH]&5AE@*L)LkHAE fLHl$HfHt$T$0=LH=װ!1p5LM6DIIHl$8HL$@LH\$HH)HHHDHD$8HD$8H+D$(|$0HD$H H \&H@#HD$ H|$(H8H \&H98 MHI)II9rWH\$@H\$ Lt$PILIfDI?G HIUGHHH'HEH HEIEXHt}HIUXHEHHEH@HEH@HEH@HEH@ E HE% @E Hkh7f. H`( ,jSH>'HHtHH[1HHH[@AWAAVAUIATUHcSH} H.HLHHIH9AD,HAl$E<$D)uHL[]A\A]A^A_L(fDUHGu6HHcH<':uWHF'HP(fDHJHHB H,HH@H@HpH@ @0]fH5F'HHH H1HHH1HHH1HHH@H<7 HECff.AWAVIAUATUSHHdH%(HD$81D$/HHGHuH ='HHHRH@#L"1D$V D$DHHGHD$8dH3%(HH[]A\A]A^A_DAAͅ*E1E1E1H <'DHHH@#ZIcLL%7'H4A$A$HHIL%:8'A<$t+H lB'HHH H1HHH1HHH1HIIM}I)1JHf.AyH0H AyH(H AyH H AyHH AyHH AyHH A9H H1HH IHH1L1H H<HJHH1H1HH H1HH H1H HHH1HHHH1HH1H HH H1H HHH1HHHH1HH1HH H1H HHHH1HHHH1H H1H1L;'FSizAP AH$A3@(H L"Ic4L>w w w+O[)111 1 )lj)11Ðw+OO)[1ʉ 1щ)11  1Dw+Pww+:D4@IIII@A+ AQAIAAA )A1DCD)1M9wIL_IMMIIM9AN LGMGI@u,HtCHt6Ht 4vfA+ NL fDA1RDAqA1;ff.ATL%9'USI$Ht'H-1'H{g HHUHHHEHuI$[]A\@HcH9tHcH9|ATUHSL'AD$H@99|9~xH}Lcty] HcHuLHtOEtIHEHxt>H5Z0'H :'>Ht%HH H1HHH1HHH1HHEPH[]A\fDJ<>ICHID$LEff.HHAHv0HW1Ht%HAH HHH:HHH9sff.GtHH Hf.HHHff.GtHH Hf.HgHHff.SGtHH X[t&@SGtHH X([X([fDSHGtHH HX[DHt@AWAVAUAATUSHGL7In HAFEHE8HE0ELHH@H[]{HH@H[]D%G 1yATIUSHHH/dH%(HD$1G t,Hu0Ht#@DEHE8HE0ELH+H}H{I$H@HJHI $H3H9VvSHH(HtHUHHHhH$'8tCu7HH|$dH3<%(H[]A\fI$1@HHx txHljL$ H4$L$ H4$II A1āHBSD3$\SD3$XSD3$TSD3$PSD3$LSD3$HSD3$DSD3$@SD3$<SD3$8S D3$4S D3$0S D3$,S D3$(S D3$$SD3$ SD3$SD3$SD3$SD3$SD3$ SD3$SD3$D3d$H߉L$ H4$H4$L$ Aff.AWAVAUATUSHHAGu8HZIŃH=os"H N+'Hc4Q H>L7M~ MAF<ʃHcHy HHIGM,HD$I9v fDI}111IL9l$rI?Ht 111LMn AF<;fE3$\E3$XE3$TE3$PE3$LE3$HE3$DE3$@E3$<E3$8E 3$4E 3$0E 3$,E 3$(E 3$$E3$ E3$E3$E3$E3$E3$ E3$E3$E3T$HcHA HcHD>HImH[]A\A]A^A_HHH 1HtfDt\111LMn DAF<Mn LI?MH111~DAFAVD3$\AVD3$XAVD3$TAVD3$PAVD3$LAVD3$HAVD3$DAVD3$@AVD3$<AVD3$8AV D3$4AV D3$0AV D3$,AV D3$(AV D3$$AVD3$ AVD3$AVD3$AVD3$AVD3$AVD3$ AVD3$AVD3$AD3|$AL$I$L$MLcIHHHD$HD$J% D$HHCH9D$H;HcWLGHD uXT$uPA9uHT$LLKuH9\$?D$3AD$H([]A\A]A^A_f.DLuHHCH9D$oAT$\$B8\$I<$AD$sHcHDMcDI$ LcHcLJIDQHH([]A\A]A^A_HHcSH{D u DLHuCI$DAT$McDH I$HcLIDHCH([]A\A]A^A_fDLcI6f.I~A9wHT$LtaۍB\$fFI$KDLHHD$II EA1qDH=h"1f.U%HHt H]E1E111%HHuH=Lh"xH%nE1HtD@DHf.ATUHSGtP5HHM'L MI$HH'HID$ID$I$HID$Hw#'HHyH8H'H;8H>'HL$AL$ HEHxHXt H7HH)I$Hx9HX AT$ %_AD$ uEAD$ H}'8uhL[]A\H@ I$HX AT$ %߁AD$ tL/AD$ [HH]A\QkIH'8tE11ɺt1L sHff.AUATUHGu~HU1HzLbt H%HI9uH/']L`HLA\A]f. HIHELhLH5f"IH1LL]A\A]@PHoHH]A\A]Mff.fAWAVAUAATUHSHG HL'Mt$0t AT$LAD$HAMIE9t.A|$8t1H5e"AD$HAD$LEHEHxHEHpHAD$8A|$HAPfHuIAT$8D9 HM1H!HEuHtH !'HHtH9HtMtU @ID$0H[]A\A]A^A_f.HtH D!' fHHtH9Kt9HU1HzLzt HHI9AD$8AD$HAD$LHdfD苿E LeS19LxfDAD$81A|$LL1HD$U 0HD$fDPHIHBHMDIVBHrH5IFx@IFH@HLHVC ttIF@CIFHXLefDID$H<ALeHEE %HcHzT2  HGI~HtwwI~H6'HIL01ID$0e HHxHwvQwIFfID$0IƁM @H@`IF@{IFmJAUIATIUSH1HHt-LHH_HLHH[]A\A]H1[]A\A]AWAVAUATAUSHHGH?'HHD$H(跼HHxLht HHI)ML5'H'AO|-MEI>LH98MH'HH)HL9iEA DAuM1HxIHtPEtIHH'H H IHIHHEAtIGHHEHD$H(H[]A\A]A^A_fP6HH'HE1EHD$H(耻AAAI fDAuK1HIHtHy'HH)HL9|JEtHELH$HEH,$AtHELHH$HEH,$f.HHL2HHHLHTff.fUHSHc޾%H&HtHXH[]fDtE111Aٺ%HHuH=^"Ծ@AWIAVAUATUSAHHHWL-|'XHcL$I4$HuQIHHt;HL9nuI$AW t,IH9q0u#@AW At.I4$HuIW또BBtB1諼AuIH)hIHxuAg HL1[]A\A]A^A_t@IHR0H92uHff.@HHxtUHiu ]H]ff.fHAWIAVAUATUSHL%'I$HxHD'H98oH'I<$AGHLHt$HH_H Y"H#'HcDh H>DHHxHCE HHDhHDHELUD#pIAtM I|$H;='J At HtwwH$ID$AT$ID$LEHmHD|$LL$ MHl$(H\$0D\$H 'I9D$fM,$L#Et>H 'H- '9Ht!HH H1HHH1HHH1HHUBHH$H;Z 'lAtM IAHIAM{HIIL $HHH9aHTHELiHxtHt E  KL-HuLHf.PHD\$LL$LL$D\$HHH߾蠵HhHHHIH'L M& I$HID$I$ L@ID$HXMl$IEA@HTIEL`@E@L4HHxHCE HpDhHDHEDA#T$LIHHt?HcFLI| LMMqI@H9HcP@:| tILH\$`LL$ D\$(HcD|$IMHD$ELAHl$HHCD90kD9haHxLLH<$FHD$H<$t$D1*HLL$ Hl$MD\$(IAH'H;( M`H'I9E II@HE tHUL;B0S%B=BL1D\$L $D\$L $Iiue AMLAD$ < E=1E1E1AAt$ At$E1&LL1@HHHyMHl$D|$ALfDPHD\$LL$HuE LL$D\$IIH|$^HHt$HL QH虲LHH膺A|pLHHtLܤAD$ HLH+&HHHZAD$ tID$@tHH@t1LԩLIG@A9H<LL$T$LL$u HET$II@I$L##@MtAD$ I@HD$D$HqHt$HDDLD\$ LL$I|$HD$HD$LL$D\$ ID$F1HT$_Ht$`LD\$L $r|$_L $D\$AI91ALeAIH2&H9(LL$觽t$HDDLIҽID$LL$E @Dڃu UH&HH$HHHHq&HH$HHH@BH(lfH&H8H<$HHHH&HH$HH@u DHL $L $H{E1D\$ELLD$AHHAUAjAXAYHD$D\$t!L`MtAD$ lE;LM"AUHELt$DL$HHL$XAY^IULD\$LL$`LL$D\$II A1H9<$0HH(1Ҁ|$^Ht$HL2HMEILD\$LL$ZD\$LL$L$HH4$LHD\$ 1LL$,D\$ LL$ EHUHz z<HL$`HrE1A|:1Hu fA>ISt~1EMSAD$ <  %=ID$xHxEHEHx x<HD$臯D$A~AwID$HH(HgIHD\$H $D\$HXHx H $I9H7HVLJHHOIHMu5HMHMtML; uII)IL9~ HHH7HFHHHh@LxE1E11LD$_D$HHEH@0L;8IH-Eu1E1E1jH߾~HhA3LwL$HLHH޳SIwID$ @E LL$T$袰LL$T$H$LeLD\$L $L $D\$II A1H&H5&AI$HH@HOHID$80.LD\$LL$H$D\$LL$H$5bpLbH9pL*LD\$D$6D\$D$tH=L $IIIQHHHH9HKL-HuLH^1C H5&DHt$HLD\$LD$ D\$LD$HI$Hx LE1KL;%&LdAu"Hp#H5&A"HDH=G"1L$~$uA>:t]E1dH$NHD\$ LL$D\$ LL$A|:RHHE&H;(ID$Lh M6AEIEHx  x<LD$ͨD$@1T$`H A"LDAu=H5@"H=E"1Au)AT$`H A"LDXLPLD$BD$H@ HH@wvvwHYHt8HHRHDH$ H;HtiD\$ D\$HH9$wID$ID$Hx(D$D\$H $譸H $D\$t1H5H LH $D\$[H $D\$FID$Lh MAbff.LHILcE1y ALcAQLA1PLHDAWAVAUATUHSH8H&L MXI$HH&HH&I$H ID$HC`H+HHS`I$HI$H@I$H@I$H@AT$ %_AD$ h AD$ I$H@ID$HHUM HB΁H{HZH\$7HJ0Dz8HL$H\$HHt.HHSH9v HVH9rHl$Ht$HwI$HL$HHHHh1H覟IHZHLE1LHIExuLpG t!HH+`&HHHvH;=S&t gHMj1LAWE11LpY^ifHD$HHD$HD$HD$H9D$ I$HL$HHHUI$HRHPHD$(ID$H8L[]A\A]A^A_HZH\$dHLuHHD$(E HD$(Lt$HD$J3HD$ @HD$E1L8Mu43H@IGIFHL3IM?M߰LIIIGHcPDl G t+HHH+&HHHvH;=&t ٢HI~IGAdpAHx袰IFH[HD$L0QIEA$1HcHHPDD PWLXZDHšHt$HbLhAD$ fDHD$#f.HD$A@Ad$ Vf.kI 茰AWAVAUATUHSHH&L MI$HHj&HH7&I$H ID$HC`HHHS`I$HI$H@I$H@I$H@AT$ %_AD$ 8 AD$ I$H@ID$HsHEHXLxEHD$Av LɹHHtK? HHv HCH9sI$HHXfD1H.HHHHE1ԼH'H{IŸHcOu LMMt0fILLA1hKH{HcO1uHwL9DD HWLA$LPAUAwXZAw,@DHHt$H8AD$=LE11ɺH1HL[]A\A]A^A_Dp8H@0HD$sfDM7f.j1AE1AU1LY^Lx{XfDLAD$ fD dDIff.ATUSWHЃp< tL"tV<L%'&[]LA\у`@tn<0WH[]A\fH[]A\sHA&L MI$HH&HI$LID$[]A\fH&L MI$HH&HH-\&I$HID$HEHHfHUHPI$HSIT$HSHI$H@AD$ D(DAL$ SpPEAD$ L[]A\D蓢I 胢IP 褫_HH=6"1ff.fHAWAVAUATAUHSHH &H9&Dw8L+t5Gt/HHB Ht#DzMg@MI<$H4wwI|$HtwwI|$(HtwwI|$0HtwwLIG@E6HE@P(IXHtwwI`HtwwIhHtwawIpHt7IHtw+wI-AgPILJH蘒1HH(DLzHcHL9u/HXLLH uBD3D8HmHtHED9 tHmHuD$YH"&H[]A\A]A^A_AOD3$\AOD3$XAOD3$TAOD3$PAOD3$LAOD3$HAOD3$DAOD3$@AOD3$<AOD3$8AO D3$4AO D3$0AO D3$,AO D3$(AO D3$$AOD3$ AOD3$AOD3$AOD3$AOD3$AOD3$ AOD3$AOD3$AD3d$f.H1[]A\A]A^A_IADl$fDADl$eT$t1Ep<tHx&YLL谧II A1H H[H]A\A]A^A_DH=y+"12fAUAATIHUHSH蟙HAD[HL]HA\A]AUATUSHdH%(HD$1AԋV HI% =H"LAU L $HƉ؃ EEt3DALHzHL$dH3 %(uKH[]A\A]PuIEHxuIED`DHHvLHL $芪H=q*"ff.AWIAVAUATADUHSLHHH|$dH%(HD$81HD$0MtDL;&t;A@ mD$A E1HD$ D$A AHD$ EtvJTH9tlH1DHH9tIyHH)H@HH/HHHHH9uEHfEuKIwH j,"HW&JcD` H>LHLT$٤LT$II A1f.LLT$Ӎ|$@LT$IHD$IA tRA0tLADLH誢E~IFAFHD$8dH3%(HHL[]A\A]A^A_@HH@ IFUD3$\UD3$XUD3$TUD3$PUD3$LUD3$HUD3$DUD3$@UD3$<UD3$8U D3$4U D3$0U D3$,U D3$(U D3$$UD3$ UD3$UD3$UD3$UD3$UD3$ UD3$UD3$UD3d$QEA@ Ht$0"H߉L$LT$LL$0L$HD$ LT$C % D$@Mq!EAAP f.H\$0Ht$ I~LT$HS贶I^LT$fD%0A HD$ =A AE@t$AHHsLJHt$ LL$0TI)HT$(LLT$ IHHT$(LT$LHňHH9tMHEyEH? LEܥff.AVEAUAATIHUHSH轓EID[HL]HA\A]A^鮕ff.AVAUATUSDHdH%(HD$1AAԋV HII͉% =H"L"AV L$HƉ؃ EEt4DAMLHHL$dH3 %(uLH[]A\A]A^PuIHxuIFD`fDHHvLPL$}菤H=$"HD$HxHw}wHD$H@f.{,fDHUNIVERSAH\$HH9{L 6fIcFH\$8EHT$@DLHD$Ht$HH|$ HH(AM3HMHUNIVERSAH\$HH9{LHq'HHT$HHHH'HHD$L%'H HHPID$`H~HHL$IT$`HHHH@HH@HH@Q %_A HT$ B HH@H 'HBHHzH8HG'H;8H'HT$HHJ H|$0HD$|kIHOH^H\$H|yI^H\$8qH|$(DD$\DL$XH4$螧HcUDD$\DL$XH4$DRHlLpLIH迴AD$ I^H@H\$8HD$S iH菡ff.@AWIAVAUATUSHHHH|$Ht$ Hx(uuHGHHz z<H@ A 1HcHHPDD PjAҭZYHOL98FIHx(HJAxuAxmainaL!HIH@ x8H5҄ HIHp Ft.HHcHTɃHcЁDžH('L-'L%'HD$H'H$H['HD$HL$H)HHEHH'HH HEHEIE`HHIU`HEHHEH@HEH@HEH@U %_E  E HEH@I$HEHxH$I<$H;8HD$HL$HH,L M M@IHH'HH IIAIE`HHIU`IHIH@IH@IH@AQ %_AA  AA IH@I$IAHxH$I<$H;8HD$HL$ ILHT$E1HL HAI Hlw@1H~HHt~HCL`AD$tI$Hx tӃxfDE1?guaeu[tuUpuOruIouCtu=ou7bu1 yu+ nu% uu mu bueu rDDDA\fE1m< wH #D$d<H #HcH>fDE<3H #HcH>fDI<.H W#HcH>fDB<5H #HcH>fDA<5H #HcH>fDD<3H K#HcH>fDA<3H#HcH>fDU<"H #HcH>fDDGE1H4E*C K DDDE1antarrayDDDGr4tDD"GE1E1rintfDD@GE1i4rDD"E1ai tpidDDfGd4i*rWDDE1ackageDDfE1pendirlDDzfE1cdfZiPrFs<tDD*fE1et pGGE1DE1e,f"erA,H'E1HP8с<<D`PAAA,f.Ge4mDD"E1bs tr!DDE1lice*DDE1cket-DDE1m|GE1DD9cADD!kAEDD rpDDE1ectCDDteAH2'E1HQ8A rE1fZDaPAAABs8sDD& dE1 d rDDtlwDDtl4DDtlBDDoriE1 t~ yDDlcbvuDDPaFl<lDD*e adDDpADD a m eDDA d d rDDE1AVaxmDDfi\dDDJi@dDD.a$mDDH'AVH5\"AUL5ӏ'ATL-b'IFUSHI]HHH IH f"HchHH)H"1HiSu%IH'HcHIHIE[]A\A]A^H5+{ L_H'AVH5"AUL53'ATL-…'IFUSHI]HHH IH M"HchHH)H"1HRu)HF'IHcH0HIHIE[]A\A]A^H5z L^ff.fAWIAVAUATUSHHD'L-}'L%'HM4$HHH IUHcpHI)Ht$ HM"IH5"FHch(H'H 1RAH wgHt"HcH>uHcl$ IEHI$H[]A\A]A^A_ 蹫袬˭d HH=J"130H5"L]@AUATUSHH+'L%d'H-'HHuHHH HcI$ZHH)HHHcHHL(AU uutHсtHa':PPuIUH;߄'t H;'u@H)'H0HI$H]H[]A\A]L+I$AU HsH5"\ff.AUATUSHH'L%T'H-'HHuHHH HcI$ZHH)HHHcHHL(AU uutHuCсt HL~'5fPPuIUH;σ't H;'u@H~'H0HI$H]H[]A\A]L*I$AU HsH5"[ff.USH\H^'H6+H-'HEHH@HH@HHHS'H +HEH-'HHH@HH@H@H*HH@HEH[]@AT11USH(L%D'H,I$HH8HtwvwHtCH[]A\fDFI$Hf.AWH5"FAVAUATUSH(H 'H܀'L5='L HHHH HcH "IT$jHH"I)1ILd$MHo'H8HD$lQDl$EA*f<%u|A|$ 0ADA9ICHcHH4HB HFLb<&tZ<$uAD$ tH5DK V@<@uA|$ tH5K =H=R"1HL$]HE4IHL$HA|$ ]H5"H="1hYDd$D$AAB\ DIEHHHpHcŃH<9ux;H([]A\A]A^A_AH="1X"H5XJ nH="1XH=O"1XAWAVIAUATUSHH'L--'L%~'HI$HHH IUHcpHH)Ht$ H"HH5n"FHch(Hf'H 1KuVt6u5YHcl$ IEHDI$H[]A\A]A^A_HH=7"1*H5"LWfAWAVAUATUSHH'H}'L%9'H8HHHHH HcI$DjHH)Hx~'HHR"u-H'H HcQ(H4RHHqHR*HcHL$NH'HH)HH94McHcHx\J+Il]L<HJ<8Lt(I?HHIJLM4$H^1IHII$HuLl$H5|'JDHH[]A\A]A^A_y,uZH"J1H53Q Mc$HcIKI$H0LHHN|'M,$L(H[]A\A]A^A_H5P 1-McH"c$I$H5|'JDHH[]A\A]A^A_ÐHT$HAI$f.AUIATUHHSHB % =BHH Hp H5x"1FHH={ [Z IHHLLH)H[Ift$Hp(F!@t/LnMtAE!@t IE@!@t=HL[]A\A]Hv(F!@uHL[]A\A]HHX K@L1DAl$"LSAHL[@]A\A]<AWH5"AVAUATUHFSH(H|'L5'dH%(HD$1Hbz'L HHHMH IH Ծ"HcXHI)H"1IqGA0Hz'I,$HHPHw'HL<ЋU )$W$N L-n HD$tH}'1H@8u DH|$AG t I9<HT$Hru IH9ps LMHT$ILWIWHD$IHT$AO DHPE AG u\%AG E ul@M<$IHcHHx'HHD$dH3%(H([]A\A]A^A_@H|'HB8u AG E tHTtHz'8bAG oHLU f% = HHt$YU H|$ H(H'HIIHL)HD$I9eAEDuHD$HuJDHD$H7HALDu!@LS:AG !LLIHT$HPAG pHE HxHEH|$5H~{'HB8!H48HMH93IHH ' H'BHH)H|$H9D„yIHI)HLs'DA L9H|$IIAHSfJDQAvz tuDQA.Mzu$zuHHHH)Ht@HtH)H)_JDQAv uDHJDQAv t݀tuzuH@Jt7uz`yuz:YJHH#LLH]A\A]D @HH@ AUIATUHHSHB % =|8HH Hf H5("1F|>1H=ef P IH>>LHLHsHHt4HuJL%l'r7HL1[]A\A],fHl'L`0HHX [H=5"1fDAWH=>"L=AVL5AUL-"ATMUSH|_'HH5l'HM9H"11HSHHP(Mu@H MtXLLcHsLk E1M9uH :e H"0HSHHP(HH cK1LHH9MuH5s'HE11[Ho"H=r"]A\A]A^A_a0H p PXH="1HH5jw'EIDAWI(AVAUATUHSHHLwHT$HXLH,HHIL)A|)De LA DED/NHw#I}IHEHtH9sUHCw'fHH9tW%D=DtH9w!fDHH9t2%D=DtH9sH[]A\A]A^A_fHH)DHMH"HL$HH[]A\A]A^A_HD$I/HH[]A\A]A^A_H=Q"1Gff.UIHH Ix(dH%(HD$1Ht$HT$bLD$H=9k IpuBHt$Ht'F tHHD$dH3%(u(H ]LH=7"1@GLH=N"1/G;f.UIHH Ix(dH%(HD$1Ht$HT$LD$H=j"Ipu#Ht$H HD$dH3%(uH ]LH="1F;fAWAVAUATUHSH(HH|$^4H$U4LmHD$HEMLpIEM I8DxLHt'DL u'A$AII$t}M9wȹ1LL:@LHL)HL u'AH9<<.1HAI$jE11P=XZ[]A\A]A^fDs0H HcAH;H3DH`'L(MIUHHe'HL5a'IEH IEIF`HHIV`IEHIEH@IEH@IEH@AU %_AE u4 AE IEH@IEM$f.LBAE fI8 $FH=`"1 ;H=""1:s0H; J@HH=h"H1:fDH^'H@t H@PtPH1H=}":AUATUSHHH^'L MI$HH~c'HH-K`'I$HID$HHHHI$HI$H@I$H@I$H@ HID$H9w{L,I,$HL35L1HE I$HXI$Hx HL[]A\A]KI)(l"; ff.AWAVAUATUSH8L5a'L%h_'II4$HPHt$IHcBI׉D$,Hh'HHH)HHHHD$AHH@(HD$ HHD$0HA]'H(HCHEH *]'HHa'HH^'HEH HEHC`H"HHS`HEHHEH@HEH@HEH@U %_E { HAE HEH@HEY+|$<`AWHcHHt@j1AE1P1HA9XZA9~&HOg'IcHH4ЍSD9|HY'HHD$HxxHL$ H HÃAHHH['H8HHH5['HHb`'HHGHGHHHGc O H_HD$89L-d'IEH+D$HIH ^'HIH;H|$H5[f'HH+HHD$HoHGHGI$HD$Hx`W H=a'Had'M<$HH9tHD$HxhHH_GDHH@HHl$Hl$HDHD$HH9\$68M<$IEL)HIH ]'HIH;H \e'LIH+HI/M<$H;hH `'Hrc'M<$H1H90j5H|H9\$eHl$HVIEL)HH5d'HcD$,H\$HHHHI$H8[]A\A]A^A_f.;2HH ;#fDLL I{MfDHHJRHuDJHtHHu1 1fDAWAVAUATUSHHHdH%(HD$81G % =Ht$"92IHHP0Hh@D`IHT$(HP8E EAHT$0A ~:Ht$ 1HE 5H|$ HL$0Ht$(E1EADHHEHEHHEHEHL|$8AWLL$84ZY"HD$0H$C HT(H@811H&Ht$(LH LD$E1LHT$0HHHD$(C u'HC@HH@Ht$LLQIfHt$(E ueLD$H$E1LHnLT$EuHLP8EtHLP0L+$LP0HD$8dH3%(HH1[]A\A]A^A_@ LHLT$LHt$HD$(LT$$LD$E1HHT$0Ht$(IHL)LT$YfHXIM @fHLoHPHT$xHUHRHT$ H"HD$ H1H5G#UE gDHE IH=~#'7HN(8u1DFtHQ(H L(H9tH`J(HO(f.HFH O(HHH9HEHF1UH1HxIt H1]ÐHP8Hp0Hx@?HH1]HB1Hff.AUATUHSHHH3HEHx8Hs HHx@j11jE1E1'ZYHH@HHYH(HH9ttHUHz@Htww@HUHB@HUHB8H{ HtwwcHC H[]A\A]H@@H[]A\A]fL`0Mx7Lh@AEulIEH@I9HEHp0AEu8IEH"H1[]A\A]yHfD1LHtHLx"H@HD$HD$&@HD$HD$@UH3HH1]ff.@HHx8uÐAVyAUATUSHIHHh HHHx@j1HjAE11%Y^H1HhHdF(HH9HEHHx@HtwwHHh@HH@8I|$ HtwwAd$ID$ []A\A]A^fDLh0MP8Lp@yAFuYIHRI9=Lh0LLHt H(HBHH=M(Hp01#H@@!L HcHH" @It$ H=I(13#H=~H8v#HcH>HH(HHt_P wSH@HtJHXHtAG % =DHHHDHD$HdH3%(HX1[]A\A]A^A_HA(HHtYHx8HtP sHuH@H@ HP0HA(HHt!Hx8Ht HuŐHA(8`[HG(HHEP 5H@H(HXHHHx`E L+% =Ht$@"H!IHD$@HxH|$@HT$@LHHIE`HHChL%D(M,$G AE _AU IEH@ AE t;IEI}HXHIUHxHB Hھ H)HuH_<(;tHH"@;I<$E11ɺt1 HF(HHP H@HH@HHG % =MHC8bG % = HHG(8H@(fF f~ G % =H ~G % =VHA(H>( <H=g=(jH H=R fHyHE(KG % = NH%H=v#1wH1F(H;Htw wE  HG % =t HHg?(G % = Ht$0"eLl$0HJD-HD$HD$8L5PE(IHEA%D=DtHD$@HT$8HHHT$HD$ D$@D$, CE11HD$@L|$8HcMHD$HD$8IAHA%D=DteHkL$M@LL IHT$Ht$ LAKD%EHT$@H9\$g H]G % =PHA(H0:(H8@~ H=1 E % = Ht$@HLd$@IL1L!HH7:(H8 U H Kt%H{H)L)H&L%<(E1IH5k#$I$MH@Hx LlU Hށ LE1ɹ$HI$H5j#IH@Hx m H%G % =BsHHB(8H;(ffH@(HHP vH@HiH@H\HG % = \HC@3G H8(% Dc8=C8AkL%B(A$U @ HHt$@TLD$@HA$H4(HH:HI9PHAHA$H5?(H>~HHcȃH;|E1111H]8)H=i#H1HG HX H{  Ctw wCC;HcsHC zH>(HHgP WH@HJHXH=HHxPAE L+% =Ht$@"HIHD$@HxH|$@ HT$@LHHIEPHHCXG % =|H,3(%G % =H9( XG % =HH:(8H8(f-fG % =H4(HG  H:(H;HtwwH-HH;(H;U 1H~NL%;(A$bW  /c HA$ A$(Hq<(HHP H@HHXHG L#% = ID$HHHxHH@HG %=Ht$0FHo8(HwHD$8@L IRLHH4(L$,H6(f f HD$8D$,HH=d#E H=l#1 G Ha3(HH}J mHRH`HRHS% H=DV HC -DH H=H ÀۅL%~9(A$E H2(H{@H;=2(HtH;= ;(tHC@XH{ HcLHH@ [HHx HH@ EHH@ sHH@ PHH@ HH@ HHx HHx HH@ {H.( HHoLhLl$0{HGiLo1LsIDEFAfA~ULA~TfDHH+(HT$L4LLH=HT$IEHm"(HHЁH C HI#(fHLsLhLl$A>IGNOfA~REEDUH;--(HDHT$6HHT$LUH1SHH)sHH[]HdH%(HD$1G % =t1H"|H4$HHL$dH3 %(uHHHHpH4$BfUHCH]HAWLcAVAUATUSHH-1%(|$ L$$dH%(H$1H#(HD$@L(Hd*(HHD$H5$(HHD$H(HHD$Ho"(D$HEJL\$8LT$0E1ɹ$LIH5O#.Ic~E1ɹ$LIH5 Ic~mE1ɹ$LIH5O#Ic~EE1ɹ$LIH5iO#1/AvHHD$(nLD$(E1L$H5՜$}Ic~E1ɹ$LIH5[$UI~E1ɹ$LIH5va#-I~E1ɹ$LIH5N#L\$8LT$0H$(HHD$(L)HMSLMkL\$(L\$(ICMHEHx /@MtAv5Av|$$H@H"(HT$@NHtKHBH@8HHDHHH Ht0LH5U#1jHC(\$LH5U#1:H I"(HT$@NHuHH8@]uHtHAH@8HHDHHH lHEH.H@HHHE80D IHPHBfL1H@H8f.H!(1J<IRfD1yH@H( DH5L$(H@HH;-(LHgL8zL\$(H (L\$(I-fLL\$(AE L\$(H (fDL\$(L\$(I L\$(L(L\$(H L(LLߺLT$(LT$(IHF (N$Hc(HHtx t,HLH5S#1|$ aH@H@HtHHx(HuLd$PL t$ L1LnLff. w' HsHu(HnHH9tF@H(uH(HHtH(Hcwf.1115PxH=R#111sf.AWAVAUATUSH(L5J(dH%(H$1HP(HDI(tL|$L$IċLD$LLL1LAŅt{IH !(H(HH9ED$HA$DbH$dH3%(H([]A\A]A^A_fL3HD$ H|$ ZH|$G % =tN1jHH=pK+fDLfD11P(Hwff.f111!f.1DATIUSHLFHn(dH%(HD$1ItHLHHY(E1L1HH{HK8>H$HCHH9E % =FH"HFH $HHfeature_H9P_H5K#HcH>Hx nicoHP :nievfzalMAD$ qHLH+(HHH<AD$ tID$@tHH@t1L_ kP@HD$dH3%(xH1[]A\ÐHEHHHEH $H ufx ry!H 6HSH Hx witcsx hdHNHefaliasiH9P :fxng@)@HHostderefH9P fx_qxq RfH&HH x yref HlH fx sa~fDH nx cdf.H Fx lass/HHx itwifx seaHx _SUBfx __3HHvalbytes@H9P  H x efer o!kP^I$HtH@H@HtID$80#x ndir%fx ecxt uDHfilehandH3HHp Hareword_H3P H f~le~s'Hodule_trHP H9H Hore_deliH9fzmstfx ay\I$Hx 2HignatureH9P -xsL;% (L¸x tateVHultidimeH9P xnsiofxnaxlDfzde fzueff.@USHHH-<(dH%(HD$1M8HVH}HHv(HE1E11bHEHHCHt\HHD$dH3%(H1[]ÐHfeature_HK(H9uyWwH5"F#HcH>DH{(H$HtG % =tpH"H $HoHfeature_H9\xWLH5F#HcH>fDE111 HHHHGH $Hy nicoHA y nievfxalfD!EPH fy rytH HXH vH~y witcqy hbfDHPHefaliasiH9A CKA1HSDCHPAUCZYH[L]A\A]A^@H9H0(H(H,HUHH(HL5(HEH HEIF`HHIV`HEHHEH@HEH@HEH@U %_E  E HEH@HEHEH@IT$I,$Ht3It$ LID$ I,$H9@Ml$fDID$ fDIT$fDHE g;H \KHSH=;#sOff.@HH!(H1j1A E1jH8eZYHt HHH@ Hff.@USHHKHS1HŋCDCAPH(UH8ZYHtH[]Ëuv uKHSH=;#1s|H4fSHHHH5'HHB@HHHp [AWAVAUATUSHXdH%(HD$H1HHP HHIݙ|$pHH5d H薙IMHcQT D$pHHɁPHcWI4$IT$H~HOLH9HLH:HJw7w3H5ʗ HHQR jHLLD$8HL$02IT$I4$LD$8HL$0Lt$ \$(sg`H@H\$hHL<$1H5; Hl"HH@HD$0HGHD$8H'L8MIH 'HH1'HH IIGH$H@XHHH $HQXIHIH@IH@IH@IH@ AG IG% @AG Hm'HHxHD$@HZ'H8H'H;8H('HL'H $HL,IELAM I$HrHHp诠IEH $L8IEHPH9v%HEHHHt@HBH9wMHk(HtLHL[]A\A]A^A_D?HD1Aw3AwHk(HuH'L(MhIUHH'HLo'IEH IEI@`H<HIP`IEHIEH@IEH@IEH@AU %_AE C AE IEH@IEI$M|$H@HcI H $AFt,IHj Ht R<HUHHDH'L;<$HD$Lps1fI7j1AAVE11LI谸XZL9<$wHcMEHU1ALDD PHD$HhU|$E1IH5* L-AM Lk(Y^f.۰HL84LAE HmHLH{( LD$H $SLD$H $SDH $H $II L$L$H $H $HfHU)H=#ֵH=#1ȵAWAVAUATUSHxH|$0dH%(HT$h1GuH=#1腵DHHB HtJ<vL0IFHD$8HD$HLHc@HD$@HB@HD$H3HD$H8H)wwHD$HH@H\$HC(HD$ HtH蘏HC(HD$ HD$HT$8A 1L=j'@IcNADD PjI?AA[[HHSH|$@ H(HGE1E1 H5t H|HH'HD$HxHtaHD$0H H`PHD$@@H.H豁HD$Ld$`H1ވHHM1H裚HD$`HtHLj@MI}HwwIEIEuAEI}Ht蓀HD$`@u HHME(MtUH|$E1ɹ$LKIE(6fDI}HtwlwIEvH'L@Lt$PH|$0ѝHPHH@HZH-'Ll$8Ld.@IcNALA$1ED PUAͳXZL9tFH3j1E1jI?1AH観Y^Hx w H<$ H<$fDH|$ tHD$ HHxHD$hdH3%(Hx[]A\A]A^A_fHثI7H舌H|$@HqLt$P@H|$1謆HHPH@1LrHD$LLt$(胜HPHHZH@AFt-IHi Ht!I<6HMH8HfDL-&'LeLt/HcMEA$L1ED PAUAL_AXL9tTH3jAE1jI?11H$AYAZHx w H<$舙H<$fL-'fIEH9D$HD$HHxHD$(HcUHuDEHDLH@@AHHH(H|$EH|$@ HD$1ۃ@@Hmz赍H(]8AH|$GE1H|$ wAA'D$ EAAD|$HF#.@+8 I H1}vADžxupt$I1B|}r@9#}B|1B|}r9tL$ H|(1T$t |$$跀BtB|9螀JctH"(McH8ҜH{ HL` H(D8D$E1Ld$DHڋ|$ H)LcHUAAvً|$ B|A迠Ld$H1LDӞÅyD$E1HL$(dH3 %(H8[]A\A]A^A_DB|B|DD$E|$ uA?fH=o#H1腭DA|$z/EE1H|$HC H HEHH5#[1]DH[]Ð wHEH H@8HHDŀ>HL@ H HEMtA@tHHH5#1[L¿]鮊ff.AWAVAUATUSHHH(Hh fH_Dw E1EA Av* H[]A\A]A^A_fLgLd$MtMd$MtI$ u衤tALz#AA1ۍfL5 H(HL,fL 5#f HHH- HxSLH5 #LUD1bY^MI$Hx0@HIIL[L]DA\H5#A]1A^A_ 覣E1Lp#A fEL5E L-^ ffL-D%MtI$sL g$HH(H-< HX0AL#A AsAiHCHD$@HD$H@8HHD1HHx DOE8LD$XLD$H!Ht;HHxt1SH-N UL1L f#LH5c#D‡XZdH (H-l HX0SUSHHdH%(HD$1HH踤HHt!ooHKoP S H@0HC0HD$dH3%(uH[]ff.DGGW AxlAimHIHcHiQAHH'H%)A)DٍAișE1HcHigfffH!)ʋƒuu!IvH=t IVLDHD$8dH3%(THHL[]A\A]A^A_DMDI9AD A|$(LA1E1HI9wq<_tHAtADؙA9|AA)D9~"H5:#1AL\IvA GHHCEA$|$<.<_H<,@H0H BM@PЀ v<_MAD$IPЀ v<_t諂H|$E1ɹ$IH5 |$'t+yH|$E1ɹ$IH5\ |$@DAuDLA1`PЀ v<_M1f<_IA$HЀ @<_@uAT$HH0H vmM@HEAHPH)I)HWyfAD$Mt$@L<0y@AFI<0tcfDIHd1M|$1f.M9sYA<_tHc0HigfffH")AA1)D1D)9*LIx_uLpM9rAtf.1L$H5#MqYL$LDDl$Et'HEALt$HPH)I)HH=#轏H\$E1ɹ$IH5el H詀E1ɹ$HIH5#耀H(Lt$LM(iI3;v&H(LsH(H%iH1H=pg H|$E1ɹ$IH5k 1eHHj|$(f;v]AA11H f,%H`9Lt$( _rHc~H|$E1ɹ$IH5 a2LH=r0$1+}fDSG HtH_C < uEE1E1 H5J HHt!HH@Htx uH[f.1[ff.AVAUATUS?\HE1E1H5 HH~HtH5# 1VE1E1 H5 H]~HL`MLUXHHL11@ t #UHufDD%6H+HD$dH3%(H(D[]fUHAufDUHAdfUHAI|@UHA,_UHA ?UHA@UHAUHAUHAUHA lHbHT$Ht$HHHD$.zLD$I9Hl$HME< vEH N(ЋDD&H=<#1DA_D$HH (‹%D=DH=#19sH=##1$HH=#1U1H=#H0dH%(HD$(1ٶt4Ht$ ljWHtD$ PD$ Hl$1HUiD$CBHT$RЉD$ \HHAH)HHHH1HHHH H1HHHHp(HHi[ D$ H1ieAi H|$(dH3<%(uH0]rH}(ATUSH=#oHHt,HY`HHH@Ht 80uxu18u[]A\f.8t8tf}Ha#H5#H1NHl(Hk D#H}H5A#HD1NH9uH{(L%/$tL%#H#LEk}LHH5#1tNO}[H5Wr ]HA\1ZNn AUATIUHSHHHL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$$HD$HD$ HD$Hg(D$0@8uH(HQ(HH@8u&1Bof.H(8ttLIIHHZAEx7Hu*HD$dH3%(HD[]A\A]DIcH9rH=#1Z{f.H١(8GL-`(#fDH([*GL-S(LIIHH&ZAAG9nGoAWAVAUATIUSHxdH%(HD$h1G BHHz 9Hl$ H#1@HXXLcI}uLHB(H~ HIimH5#1qHLLC|8*HD$hdH3%(HxL[]A\A]A^A_@L[I$Lj% =Ht$LHMuLtHHB(LH}IefHHz % =OLHt$"荀H|$IHH|$WtHT$LHg}Iž L'lLL{8HL 1H5#GfI$LjIB(f/#@lIAD$ 1x8CHH5Z#HpmE1FDL-(AEMI$H5(#LLD$@(jIMwLD$Hh@HzMl$fB(f/#;1Ax8CHxL-(E1AEI$Lt$ @E1H#LLD$@(]ULD$HcAE~AEMt1LƿLD$wLD$LwMgIHmCD.<0tI}<.uLI;rLLB(HH{ HIjMAw6AwfDLl$Il$ L1FFDVLnHLhHh(MuLqHHB(LHzIž LZiH=#HWE1HgXLhL+qLHH=zH5X HD$GvLD$}DfDAD$ L1DEIUL$axE1-iH=#1:uf.AWAVAUATUH1SHhHImuUE I9tHL^LOL1n@IHL[]A\A]A^A_1ɺH5 HotL5(IHCHIH(HL-S(HH HCIEXHHH5 LIUXHHHH@HH@HH@HH@ C HC% @C e\ IH\AM E tHmE1E1H5J HiHt)%iE1ɹ$LIH5 iE1E1H5 HwiHt)hE1ɹ$LIH5 IiE1E1 H5l} H*iHtGH8G % =opHcmhE1ɹ$LIH5} hE1E1 H5{T HhHt,H8LE1ɹ$LIH5GT hHE1E1 H5 1mhHLx(@oHHcHgHHoLDBH9 L1H.`H8G % =uHHx VHjHLhHh(LLH\AD$ % =1LyHH߹H&#LjHHt1J+HpHH)HSaI$HhI$IT$H@EH0H HAA11H %LlH$MMIIH(HI@E1ɹ$LIHH5 I@I@c AH IXffI\$fDHH@ @PI( HHu@LLLL$LD$&T$/HED$/LL$LD$6fL5HQ(H8HGHHt3I9@Hق(HLb |$/1LD$SLD$H@Hff.fG % =t-H"1}c1ҿHH*Ff.Hw1ҿFAU1ATIUSH-H-(Iŀ}u#Hd(H8HGHHI9`LLI$HXHuaHtHBHtLHtHHHSHFtFH(HLa }uFH (<yHuL(H1[]A\A]1RH@HLDAUATIUSHHHhHtH]HtH{u(HmHuA|$ uXD`H[]DA\A]D1,LIHHLSLAuHD[]A\A]H=p#1)ZfAT1UHS),HHIVHEHXfDHt"HCHHHtH@HtHHuL[1]A\fHt'HH@HtP9tHHuf.1ff.fHt8HH@HufHHtH9uH;Puf1ff.AWAVAUATUSHHHXHIHIAE1.DHCH@(Ht"ELHHLAHHtECuCHHAHwUt܍Q Hs ҀPt4ELHA`HHuHD[]A\A]A^A_HuLT$ ^H2T$ HfDE1H(AVIAUAATUHSH8HGHHH9IHXHtlL%e((HA8Ht4HHAF % E HHt;CA<HxHKC uHs DKHLC(Rf.E <v3HUHzt(AV ЉE EtHC~(@u$[]A\A]A^D1NH@H$HJff.UHSHHHXHt&HHHHEHXHuHEH@1e H[]fAVAUE1ATAUHSHHXHuSDIHtFHHFD9uIMtI]HEH@HHEHpL6H7HELpHu[H]A\A]A^:]f.AWAVIAUIATE1USHHHXHu]DIHtPHHF9uMtL9vuIMtI$IEH@HIEHpL>LIELxHuHL[]A\A]A^A_\fH%|(HHH@8HHv H@ H+ ~x-HcHe C:u\H5G#H,C:u H[]fDH{HE11H5,#5HH[H]@BH{HE11ɺH5#5HHBuHEHff.ATIUSHdH%(HD$1HHt$J< HHtjL-|$t3ID$8tHH{(H3F LH;G t)mRt Hs(8tE11ɺt1HWH1[]A\A]A^f.Hv(HHtoHx8HtfvHW uH@H@ HP(H1[]A\A]A^Hev(HHt+Hx8Ht"HW H uHHHchHJBH1[]A\A]A^BfHD HA* >;j11HV:D#E tJLEH}I@-DLH}(HpDD HHuI@E "E 1HH}(H0H2jJH{(HHJHAHHHpPHH)THV{(HHAP 1H@H$H@HH@jFH.Hz(HHP H@HH@HHHp@^.H.Ho(Hc0r6Hl.11c)Aą0M CHt(HHHx8HHW H uHHHcHIHH/4'Hy(HHP H@HH@HHHp8 H-'Ht$*Ht$LcH~ G < t#% =,JI9JLHH9o(8/H#"H$y(HHP H@HH@HHHpHBH^q(HHP H@HH@HHHp Hx(HHJHAHtHHp`HHA8HHDHHp HH= LH@y(HHc0uH= LHsp(H0HmHl(HH9YH2H0Ht(Hc0Hkz(HH4 'G _W PQFH=U LHm(184HhH= L@ H= L H= LHw(H0댄 H=̄ LmHn(Hp@H;5\w(iHH;5>n(:HFHHP(4*H=e LH=Vn(H%Hq(0EH=M#LCHm(p8)Hs(H0$ H=X LfH0k(Hj(L$L*LHH537Ht(0$DHcHCDHI$~2LL%/|#MtLH1H!I9uLHsH;HEHxe DHA8HHHDHHp H#HH5#y![@;:fDH=0 L)Hm(HHHp8HGD H= LH'HHr(0HZk(H0 Hi(H0'Hn(0rHi(H0!H]i(8SHH@ H|k(0@rHHFk(H0'H5#H0H5G#H0Hl(H8Hp(8HHff.@HF(Ht#HHtHL@HL1H@1ff.fAWAVAUATUHSHHLf(dH%(H$1HFtmHD$C H5t` Lz!Hg(8:H$dH3%(;H1[]A\A]A^A_MtLaAD$ % =LHt$"LIċC OHxC C@%=t 11H.HC u@L{HLLHX Hf(8EEM@DH#H5#,1>7c DEL=_ 1ۃEH|$A<$PATHHHD$ LLt$HD$L$L$L9w@dfD$/uSL9tNHT$Lg>uD$8u1L9)LMA:HLL;|$Lx~MfI$Md$H@HD$fHW#H5n#,(6 E#7H~H~(t11HËG % =t!"1I1H1H@Hf.AUATUSHdH%(HD$1H i(8u&HD$dH3%(H1[]A\A]DHLd$:H.f"1DIILHCLH1HHHtHHN8HNj@ % =uLo5H:1Hff.H5h(8t1DSHDH7H41HHHu1[fUSHH(H~(dH%(HD$1HFHD$-HtWHuHrequire_H9H|$.E1E11IPjH|$HT$ HLH=#H1p@Hrequire_H9u_befuf orueuH-m(HS tHSz H}HtwwHCH]HD$dH3%(H(1[]_aft f erH-Xc(cG % =t!Ht$"GHHD$DHHH@HD$H}HHÁ G"@u x޸ -ft΁HÁ  f.G#tf.fD1DfG#@þH|$! =JH|$w=4vR=t=V=KG f%f= HH=y$1=vk=VfD= v#=tl=[= |= t9= Z= YfDB=u; fD qfDafDG"4w1%Hq\)H4f.AWAVAUATUHSHHXDa |$Ht$fAdH%(HD$H1fA<H \)LL Ћt$HT$1HL$HYfEu HEH H>2HR)HH߉H5R]$H1HuHH^DL$EhE!@uBLMM-AA""IA(@@!@H@HH9u@LMMt fE E E!DM#E|E H[)E%D4BfA71H=%G A0fDd$EH\$HHl$ DvDsXH=S)LAƁ<-u H<t3DH5H_$Hߺ)HAHH5bS)%AfE_H=U)IGAAffAA_H XW)MAAB1H=D *.IE"<<<sH5Y$LL-U)E"H\$LM}`MAIM9tAUAtIuHI M9uE!IH\$U %@IL C HxtMNIHT$t$HHL^]$1$ffADwHq$EJcH>@fAumLe(LHL;Y$ATIHT$t$H1HVE"ZYu9@HD$HdH3%( HX[]A\A]A^A_E#@:E"tDd$Lt$Lm(AMMtAu!LHD@L AE!@tMmMuf.HT$t$HHLW$1fDHT$1LW$1HH}HHHHfBfHIHEH-H DM$EHE(H@HHP Hp<H=A 1+HHE(@HHB HDB "(Lm(ILCE1LLHHAHLsHMu(LT$H}(dL T$IHT$t$1HHE"Lt$D|$H1L"T$HLDHu8HHH1LLS$DHHu@HH1HLLS$DHeHuHHHE"6HT$t$1HLS$H0Hu0HHqE"H5bR$LlH5PR$LLhH5(R$L,HH1P)H5Q$HH1IHT$t$HHLQ$1kfDIHH5H)HH5d D$(fAH5RV$H1G@MJLQ$I@H5}Q$LGfH5UQ$L'E!fDH5%Q$LE!fD H5P$LE!YfDH5P$LE!)fDL׹LT$H5qS$LT$A1H57U$LLT$fD1LMLHQ$H5 H1f.HT$t$MHL\Q$H1DT$DT$}HT$t$HHLP$1dHT$t$HHLP$1BHT$t$HHLX$1 H:$A11Et:HAg1A1HcHHpAHD u PALHcK7HwAWAVIAUIATIH46USH(Y"H HHD$HA8HQ@H0HHHEAA?x HLO$LAQHЃHLPHF)LP1H AF@u I~8S1H=8 :"M~8HAF@D$ `D$ "MIAW H @[HH~ht @ h@ZmHX  @X@L=]D) IHD$f.IL;|$t AT$ tIwHIL;|$uHL }7 HxLN$LLL1sssAF MNHf%f=FMt8LLLLN$1@INH}Lq!@H t$QMNXMAFCt]LLLLoN$1INX}Lq!@H t$H([]A\A]A^A_HCLHH(LL[L]1A\LN$A]A^A_鉿fHV[H5`M$HMEfH5*M$HD$ H([]A\A]A^A_ÐH5-M$HWfHPRXt0H5L$H(AW I jHPRXu)HPB[ uLHPB[@H@@XiD H5L$HA It@[ ) H5^L$HIAW fDLeL$LLL1f.HHA[uFHH~h,@v H5K$HIAW QfH5K$HIAW H HHfDH5K$HA I@HщLK$LL1?f.H0ff.HH1Off.@ATIL1A\HSHH1ff.@ATIbL1A\HsAUATUHSHH_dH%(HD$1G @u_ HJ$1H1wHHh0@\FHmHHD$dH3%(H[]A\A]fDH A\uHy0tˁu zȃ ]H[@u1H=L2 E1H=92 I/1HLIEM D% =H"LEM H$HHALE1HAHLA?ILHqI$1H11HHh0@\X(HHUI$1HA1f.kHfDA VS %=A H5@$HA afAFkC :DL$(EH5@$H|fDH5c@$HmH@] %C tvH=' 1HNjC &LAHsAIPAAHHHL < q*E1|$H_C$LH1HDt$HWC$LHH DHP\ HH(Ht 1H+C$LDHHH0|$H8C$1LHHP0Ht|$ tD$LxHHH8@]H|$HL1HBA$>HDt$HD$LHH@D1HLDH C$HcH`1HLDHC$H\1HLDHB$HX1H@\HHHND1HB$L|$H9|$0LxPMM$IP\€$H59)L;>(L=$H&HP8HG'H2Lv IHHR HcRAD&AHP8HHR RDt McHP8HHR HczH|$H@8H1LT$(H=E% LX M{6HT$E1EHLLLT$(IDt$1LLHA$DHHPPHt:|$0DD$D9},@\`t&HDL$DL$0^_uvRuH$xdH3%('HĈ[]A\A]A^A_@H5=$DLL1uwHH5<$HC %=H5f<$HffDH55<$Hf. H5<$HWfƒ A 6AF5As ^HH5n L1tD|$HLH DHLDH$<$HH1H|$H5<$LHH1CtHH@HAAFHkR$HcH>DH:$4H5%Hf.L=3)H\$ HIWPHII9tAAtIwHII9uHH\$HݹH\$H5:$H@DL$(S EHH|$LH:$@(H3C |$HKL1Hg:$|$9|$0D$0HHSLHD$$DL$0DD$,x^_SfA@AA A|$H9$L1wЃ 4pЃ C %@@=@@HHPHzBtBHHHHH |$H9$1L HBHxBBH3Hs HHHRHzB&BHH\ H5i8$HDt$HKL1H>$DdHLDH>$HH(1IHLDH>$HH01.HLDH=$HH 1HLDH=$HH81HLDH=$HH@1HLDH=$HHH1HHHPHt1H=$LDHHHXHy Dt$H=$L1DoD$0HLA~HHHPX$DL$0DD$,A]A^HHH`Ht|$1Hq=$LHHHhH^y TDt$H_=$L1DD$0HLA~HHHPh$DL$0DD$,AZA[HHHpHt|$1H=$LHHHxHy Dt$H =$L1D_HL$0HA~LHPx$DL$0DD$,AXAYHH H^|$H<$L1H|$H9$L1CHK|$1LH6$HH@HD$Aƅ L|$L1H7$LxHC1Ht.HHJHH HfDH8HHH9sD|$1H6$LD&HLDH:6$HH1 C:HDHtHH Ht|$H6$L1CHLp MrDP$H{PH5.$HE1C8L= L-)7 fDD9HCPDLIDH5%/$HAHc1nC8D9sιH5-$H|$HLH-$1Dt$L1H-$DL1H-$DHKhLDH-$1HKpLDH-$1HKxLDH-$1tLD1H~-$VLD1HHt-$;LD1HHi-$ LD1HHa-$HHHL$2HHLDIH--$1軿Dt$HK01LH6-$D螿1LDHH/-$胿1LDHH'-$h1LDHH -$MHH5-$HE1S8L=#$L-4 DAMHD9H@HH5,$MBHHHH1S8A9v|$HHb+$1L踾Dt$HL1H,$D蘾LD1HH,$}HK(1LH,$DeD$0DD$D9HS(HL$LL1L)HA蛥H5#$LH1A%P=PHSH;)HH)t H9I9H:"$H:"$LHEH5=#$1OTHHHH@H@HH5$LH1C |$H&$L1[HL LPPMMIL!$P\€H5l)L!$L9j|$H%$L\HH\$C =E1|$H"$L1豼?|$H($L|$H'$LA|$H($Li9ILLH@H@HVH5O$$LH1Ҿ4IHPHT$HIv|$H'$L1HUH5($$L1艾lH蜎|$H[$$LIHHH(1轻HH5  H&L5)AMIM9tAAtIvHcHULEHBHt$A|,HHuHJHEHUH@LE|$L1H3'$|$H($L17HPHD$1Lx譨}H5?!$L1E1dH|$P1HsdIAHHHx1H1Ht@HHuAOHcƒDPA9DLHcH9vMcE1Hl$(MH\$8LLHEDEtBHH5 LH  H5 $HD1譼A9tH5/ L1藼HEH9u)LHl$(H\$(H\$8fEt)LT$(McDfABDP*XAuދD$ uDt$fL L$(I*f(\ f(fYH*^f(XD$iD$|$H$L$(L^Y~6$ gH|$HQ$LHP1H|$H$LHcH81ȸ1CtHHH0|$Hk$L1褸1CtHHH|$1HW$L聸Ct$HBL9BHtz8tH5>$L1 LzDHHL(B$1L&HHB HJ<H81H=e L$ZIHHP HcD$IHHHD$L9H\$(LMp1H= H E1HHcQHqDL AL AHcAYH5$LH1蕽HH9\$UH;uH5W$L7кH5E$$H!S /LLT$|LT$HI@]ULLT$TLT$HLp II@]"LLT$A$LT$HH@ Hc@ADIuA@]]LLT$LT$HH@ @DtIMc@]BLLT$(趹LT$(HH@ Hc@HD$I@]'LLT$(臹LT$(L|$LH\$(MAB % =1LV|$HHH$L1譱DBMKM1Hމ1He$L\$被L\$HމHE$1MKMC}AERHM$1HމPAUAEg,D1H*$HމAE1H$HމAE1H $HމݪAE1H$Hމ轪AE1H$Hމ蝪AE H$Hމ1}M} gHE1E1AW HI<IwLPRLn}H$HH1|$|$AOHH$1_AXH5$Hc$HIU(t$XDL$}EHHXZ1L~ fATIHLE1jHE111'XZA\fATISHHALjHE111耽H[A\HtG u1گf.ƯfD鲯f颯fAUATIHH)H8Hp)L/L(5HLLHA\H5%$1A]6fDAVAUL-i)ATUSIEHt[1L%u$fHHt:IE,tHi)L4XHLHL1ªHu[]A\A]A^Ha)HHp@H;5(tAH;5)t0HFHH@ǍH9v r u1DfSH((HLMtIHztG t[úHLH;>HHHB[ff.H8t HDHq)u HHy(HD$HD$ff.HtBfff.@GAWIAVMAUIDATI)UHSHHH)HHHL$薪HL$Ht\HIH)L9~.LHLAHL[]A\A]A^A_HHLL9}AAIff.AWIAVI)AUATUHSHH(H|$H $LL$H9fED9WH)IHeD$IDH}IVDI譩HHx\HHH fD8\u HHL9sHIH)M)L)IL9|8LLLID$E1L4$I)MoI)f.LHLMoIM)IM)|$LOd5uM9~+LLL?HD$H(L[]A\A]A^A_LLH$H$M L9vAHD$L+L$DIIM)M)L|$II1E1IM)gL$$L|$HIb@H)H)1AWAVIAUATIUI)HSH)HHMI9TIthIDyJ,'&fILLM)L\t!H9sHDHH)HHuE1HL[]A\A]A^A_DA6H[]A\A]A^A_ٿfIff.AWAVAUAATIUHSHHHdH%(HD$81B  SHt$0"LyHL$0IAD$ I%@@I)=@@1L9HHHLLHIvD8etH}t$LH)藦HHt?D8muH}I9r,LDH)HjHHtD8`L9r|$t D8ctE1HD$8dH3%(HHL[]A\A]A^A_I$HPH zB-@(D$u)I$MT$HJHL$0L9AH1HHEyIE"I)L9w>{ u8E8'u3HQIrHL$ILT$LT$HL$ fDE8gIHQIIr@HAL9IHAL8ELL[fDBLLT$HL$HL$LT$HI$DE"EEjL{E8L9Ef.HI9D8et'H}LDH)+HHI9D8euIE"EjD$L{E8AED$|@A2LHIHxpBLLT$HL$HL$LT$D$HHqHt$(HD5LHt$ H9(Ht$ Lb(l$(D6E@At\HH9D8(tKHxHDLT$H)HL$HL$LT$Hu|$H)HT$(L{@IHt$ HI)L9HH>@8:tHH9d D$CD8ctL{D8TL@L{< u>EuA1{ H)I"L9 f.LxA2LH#IHLDBLLT$HL$HL$LT$HHqHt$(HD5LHt$ H9iD$@wH$$@HcH>fD1DH$H$H$H$H$H$H$AUATUHSHHIHufH9}1F"tFH^(DHt9fC u H{HDDLHHHuC!@t H[HuH[]A\A]@H9uV HffufDHH[]A\A]fAVAUATIUHH-(HEHtHP tJvK t&qHLH3< HH]A\A]A^頪H@H@HtHHh(HuDHHHtLiMtAEu uLDqLIHt9H-(HHtEHMLL]AA\A]1A^隐HEH7P *K1H=$=HH롐PXHH(HHtx t;\HDžyy 話H5:(XH@H@HtHHx(Huff.ATUSH HۿHED HɤHt De[]A\HD(:u:f.AWAVAUATUSHH(dH%(HD$1G B@@@@t. t 6H5= H赤C 4%=Ht$BHܴIHD$Ht\C <%BE1E1C H(1HHyHT$IHHH@ dH@(HD$dH3%(H([]A\A]A^A_HHRHzBtǾBH HuC Ѓ % =t$Ht$BH IHD$ DHLcH@HD$HHFH)IAMLD$AHHHIHLHHIHLILIHAHHLI(LI8LIHHA HHLIXLIhLIxHA0HHLLLHA@HHLLLHAPHHLLHA`HHHApHHHHHHHHHHHHHHHHHHHHHHHHIN(HD$LD$IFI|I9IpHHD8*u AA)DHH9ufDHsC 7wH˿HIH5 oMtIT$Hx HIT$C 4趻fDAUATIUSHHtRHHt2譹HLD(H(aHHt*HHp"HtHt(HH5B(H=[g$1H(:uH(8u$ATSHH(L#Mt&HL[A\1H=$ D0I,L#I$H@ID$LID$H[A\fATIUHS]HHHLHjHHE1E1ZHCY[]A\f.HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$SHT$dH3%(uHfDAUATUHSHdH%(HD$1G tI@u!HHIιI$H@HtIT$| H2(LMt3H(1HA@!@tIp1LHIDH$H- (HEHtP H@(8gH5n%LfHD$dH3%(HL[]A\A]@I@u3HHI0fDHP0Ht HHP H H5 $L1#?fDHPHLHRH?z 5H HY H%H %(H9O tIt H7H~t: "HHHEHPHRH9 HZ tlL- H(H9tLHHx *HILH5$L1PH5$L{H(HP0H<$uL-U HHIH $HOdD@AUIATIULH1HLHjHLE1E1dXHZ]A\A]`HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ D$0HD$cHT$dH3%(uH6fDU1蔌H1HHHPXHqU1THHt]fDH]ff.@U趛HHft]H]HHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0蓦HD$dH3%(uHƭfDHe(HHH&(H9H^(HHH@@H;(AHAH;(HPLBD I9vAQAF AD I9tlD I9vEQAIcD D҃Ar5tH|$ H$A-fD裥8 : H1[\ADžx EBt|9%莄HctH(McH8 H{ UHLh H(D8E)E1Ll$fDDHڋ|$ H)LSHAAvً|$ |A@谤Ld$H1LDâÅx}D$E1HL$(dH3 %(H8[]A\A]A^A_Ð|藃B|荃Ex‹|$ |$$v1fK|bJctt@ u}Xf|$ 'Eud|L趁MHfD|$$Df. H5#H=#舐^|赂DH=$1İEyw1B|A<$r@9tX~B||1|A<$r9teHL$HcD$E1AHTHqL$$A + 3|뾋|$ {f.AWAVAUATIUHSH8dH%(HD$(1?-11H|$X]H$ L$@HD$H@HL)H~AH5y)H9IL$L9ӶLYH)8Hf\HH)8H)@(Ѓ9qHD$L$xXH|$H9oKH$6L$QH鵼M9ML A߾ H')HcҋAھ HD$L$1H@C(Ѓ9HD$xXH|$L9WH${L$閧1ҹL询1C HD$L$H@HH8)89HX)@(ЃA9HD$L$xX H|$H9oH$lԴL$DH)@(ЃD9HD$L$xXH|$H;otH$_L$z1薡L1H|$XDH$L$'H$LPHD$L$L;P׳L$MH@fHHD$X0LD!HcHH9L$v49LL$XHHA<9L΃?7H HpHuE1E11CL$GHA!LHcHH9s2DLHLGD?AH HHuE1E11mHAH!HcHH9v/LHHA ?9H H3HuH)E1E11H1HçH 膝s صGPp Aǃ_<A Eo1LF[1ҹL21KH;l$&H@f7H-)ArL5a$L$H}̊L$L|$E$L;T$A2H}裊DIWMGE$H$E1DA8tAXPLL0H$LPL$L;T$rAH9l$yIH@fL$W1P1BHD$HLHPHX4S,HUL=)HAHHtlAH!HcHH9v+LHHA ?9H Ht$HuH)E1E1H1HhHH^)L%$H8L$A,L;T$HD$Dl$LALpHLM,HT$ DHT$ AAILAI)HEBHtjAHD!HcHH9s-DLHLG?A8H Ht!HuE1E1L1HvHHl)H8$HUH$DE Ik(L$HAHD$HHCh LT$HI)M|$7 LHAML)H9 LI9IBIH|$HLHD$@LH9HCIk(L|$$HP HDPHH(H)HpI9IFH9 M96$I@I|$7HD$@M+GMhfDI9Ht$HDŽ$SXW LXhƄ$Ht$xL$$Ƅ$DŽ$MDD$$ADD$(RAH;l$t AlD$HpXIH;p`I LL5LAEy(tDT$0EIMtPLL)L9I{A8I~+LLL\$@LL$LL$L\$@@HD$8L0MANH)H 8Hl$@IHD$<*IvI~A<4HE)HHx$HCh{HLLLDLL$PL\$HL{?L\$HLL$PHD$XILD$pLLLHLL$PL\$H腍L\$HLL$PHL9Ht$$HBpHDBhHH@ M9 AH)LI9IBHD$@|$7HT$LLI+wL\$H&=L\$HIfDHt$LLL\$HHH蔂uI I|$(N|$$IHLl$XL$(3HHxpH;xHHHxhM9AEHμ)LI9LCVML+D$MGyHt$HHT$LLL$XL\$PH)HL$`a7|$7L\$PLL$XIHL$`L)MHqH9,LLLL$`L\$XLT$P7LT$PL\$XLL$`IHt$HLLLD$hLT$`LL$XL\$P6L\$PLL$XLT$`LD$hHHT$LIwLH+t$L\$XLL$PHD$`5LL$PL\$XLT$`IwHHT$LL\$PLL$He6LLHHD$XR6LL$HL\$PIHxHLD$pLLLH_H wL$0LD$`LT$XLL$PL\$HL\$HLL$PHHD$@LT$XLD$`|$7IwHހ$uHD$@L,0HHD$@L|$@HT$LL$PL\$HLy5M9L\$HLL$PIH|$@Hw)HI9HBHD$@eI@LD$@FHLL$PL\$H_5L\$HLL$PAWAVAUATIUHSLHL/Ht$H $LL$dH%(H$1 uMmHD$@ mH)H@8D$I$AH$HD$ H$HD$xLt$$(NL$Iux HtiHހ$HT$x II9r$(yAL9t$v:D1H$dH3%(ZH[]A\A]A^A_DLt$M]hKH9rL;4$rH!)AUXLt$`D$H`t$(IHyXHNAXHL)LH9dЃD$LHD$ x Ћt$Ld$pDŽ$% EH\$H$AUXAD$ Ƅ$Ƅ$$HD$H$AEZ.H)H H L=)I?1Ll$(HMLd$0IHl$8t8ZH2HILL99iIuLH L$DD$1fHt[Hހ$HT$x HD$L40I98:H|$薆Ht LxM< AL4$@M]hL4$KH9DHD$@ L\$(HILjD$8LHT$Ht$-HD$pAYAZHKAUXL\$($(y H;D$>DD$HADžADžIupH+<$E*AUXHHNAAAH5)Hf.HHtHII)L9rHH+$f.IH:IHB$(DL$HL$HLD$(H4$\)4fL$H IH2H$ILHIL9:H$LLl$@Ll$(Ld$0HxH='Hl$8H$HHH$H@H$7AEZL\$@H$HHQ)HDŽ$HHD$(HD$(HtL9`8 HD$(IHtAE81L\$0PHTL\$0A tsL9t$` Ht$(HtAE8IH@H胈HL)|$H98k]fDH|$@f&H)H|$@I4fIHZHH\$0Ht <DL$Ef LrLt$8H|$8Hl$ D$xGE \$ HD$0HHBr(H$HH+t$8H)-D$HD$ LD$`HT$xIXL9 E+ L;D$ LLl$PLl$8HLd$XIK<(E8L$LHT$0H藈HD$`IH] MIـ$L|$xMLLH$LL$@HHL$8IH6-HL$8LL$@H9 MHD$8LILLL -LD$8HDT$LD$`EL|$`Lt$pL9s&3f.HD$`L@LD$`I9LLtLl$PLd$X$(tIHt$H+4$H90H)\$H9 I}0HtLO$(f@L|$`Lt$pL\$ LLVuA,L\$ IILHH뀼$tR HILjD$8HT$Ht$赀HD$pZYHLLHL$`H9HHL$`y uIHxhuHxpufDHD$px HuH[L$IH$IW8HNH 7)H9HGHHH9t}H91L\$(zH )HHHbHx-H )L\$(HH@HHHPH:Htw wHPH$Ht@HH$L\$(@H$<L\$(HIG@HPIWH@AGPH)HHD$(H*H$t7HD$pHt@H|$(H8HtwwH|$(HG8H)H )Ht$(HH0IWHC[tzHIGHIG HIG(HIG0HIGcXHD$xH$HǃHǃH)HHIGfDIHH)ƸHyXHNAXLH9`|$HD$0H@HD$`H9Lt$`HD$`HHD$`H98uH|$pL HD$`HHD$`H9rHHD$`H9t8t@DL$HL$LD$(H$H4$!DWH$gRL\$(H@1HT$0L\$(uHT$0L\$(H@H )HL\$0hHV)L\$0HHD$(HD$pPHуtHNHLf.L@LD$`L9D$ D$fD@@~HD$@ kH)HB8W u,OHD$H@@<HH@,H<$HhqLuL9AL9HL|$`Lt$p0HD$`H9"H )HHD$`H9LLtO&I9wLCKfL\$0t$( wHΩ)L=Ϟ)L\$0t$(HHHHǀpHǀxIL@$IH/H|$$IHKBDH)H8H!HHH)HHt$HHGH$H9tL\$(dH$L\$( L\$(nAEZL\$(H$LHL#HfDI L\$0HHD$(mAE8xlL\$0IH$N48Hz H|$0HDD$EHD$0HL$`H@H9L|$`D)0H=)47HH9HNHL$`H98t&H$HD$`HH)HHfH|$pLsHD$`HH)H~vH5A) H9}`Hl$`HH$HH)HYHD$`IG@Ht$`H|$p!@HHD$`H9w(fH)B2HHD$`H9s8tf.LCI9:MLD$8LI$6DEwH$H1LD$@(#LD$@HS`L\$0jH=])L\$0HD$(HHB HD$0HI*IHB HD$0gDIH>AUX5DD\$E6HD$0HHBR(HD$8H)HHHD$ rf.LH$HH>"HXDHA HD$0HVIrIH@ HD$05DH|$.FD$I!"IHBHD$0fL\$(VL\$(HLHLD$@ LD$@H=H|$G tHG@tHH@H|$ 1LRH<$L4H99H6)DIL9LBHHB@HD$0HL|$`HLq8L)I9HD$ L0MMtJAVH)<)t6<8t2L)ހ$HH$HHHT$xs HLD$pHLLLnHdH\$0HDHD$H\$0HaDH Ll$P't$tkHAHHD$0HHB0HD$8I+ IH@HD$0L\$(`H )L\$(HHPH|$0uIIHB@HD$0Lr8rH<$IML?IG@|$(t!H5Z)AHIHuAFILHL\$ >L\$ HH.IIIHBHHD$0Lr8HyHt{HYH=HLsH@HD$hZI|Hg1HyHt|$uIL\$ IL\$ H=$1qIL\$ IL\$ cH1DT$EPjs=Hff. HuH@HtzLP0MtqHu8H@ 1҃P@HtpvUpHD1HÐj11E1jALGrZYHHf.1DH\fUHSH} H?uHHtOH0HtFA>} HEt'H@ ?HމH@HH1[ʀ]H@f.H1[]ATUS L'uMd$MIl$0H1HDHtyHPLBHHz H~?E$1A A9| HcLvI$J4H~tH>uHH9u΅tHx[]A\%MDutfD[1]A\fփ@u@ƀt Af.PPH=c#1HH9u˅tHxJIIvHJLyL9L;zLzNHfDH]A\A]JAUATUSHdH%(HD$1_HH8E % =HH"eH)IH+H$HE1E10LSH8W tA ?JHL$dH3 %(jH[]A\A]fDH-A)HMHqHuH8]>HEHEHu)LeH@H+H$HPH)H(HHUHH,)HL-)HEH HEIE`HHIU`HEHHEH@HEH@HEH@U %_E u; E HEH+H@HEHH@ @HcE A\D$H9Gf,fELH)ބ(H=)AHHDAL\$XIIH)AHD$XHf.Mt{J L9vrLt$ MMkHL$0HT$8L1H5$LE1.Lt$(HD$ HD$(\H\$XL9IHMtHHLHD$Y/HD$IL1DL$LD$tDLD$DL$|$IL$Hu |$H$H|$` 1DL$H|$2H|$DL$HDIM#AH5 L1- fE1DH|$`L 1HK$DL$H|$2H|$DL$HaH=^)AIHH:AIAA!McIM9s/A HIH ?I HHuE1HT$XE11HPIM%;t HD$XbH#)RE1hf.H\$ Lt$(E1HD$ HD$(|$H$8f.|$JHЂ$H҂$HD@I)IfL\$XM+Ef.AIAA!McfDIM9s/A HIH ?I HnHuE1E1HT$XHPOIA Dfo$D$K"HD$X)D$`f)D$pH$HD$8HD$0HD$HHD$(L9l$sBMH)fL9t$sAFIA\D$HD$a1HL$HHHQI9r)HH#t1HHHHHHL$I9wHL99yADL$H|$`H}$BMdAT1UHH=Ni SHdH%(HD$12SIH1H=i SHËE u H}1LHNj@ % ="1THH5&}$H1z&DK D% =H"HTDK H$HAHE1LAHHLA/HD$dH3%(unHL[]A\H5|$H&DHHsHPH$HW41HHVO'@ff.AWAVIAUIATUHSHHHLL$D$dH%(HD$81D%@AuGAL=; u=11HD$L$ 7HL$D$L`DL=,p tHL`AH5 H1D$L$$D$L$MtLHD$i0D$Dȃ$DȃD$ tlMsHD$(HMLD$01LLD$LD$ HL$. $LD$ D$HL$t!L9l$0sHMH+L$(HLD$0A@LLH-HD$Ht HH/MtAWH5 H1#$t L9l$0D$ t=HH@L)H9v.L-; LH[$HH@L)H9rHt$8dH34%(HCHH[]A\A]A^A_DtTHE1L`|DH5m H#Yf.HD$(H11HD$L$E14HL$D$L`>AUAILATE1IUHSHHAQE1$XZL9sA<tHEH[]A\A]fHH5y$'#HEH[]A\A]E1t@AVAUATUHS611HI3HUHUUUU$E1L-}%HCH9HC0H9H95HCHH9H5yx$Lg"E u *H5!L9"U }H5%L"IIcHBH HmHHUUUUFU U:Hi)HCHK0H9H9 H9 HKHH9H;-v)MHLp)AHHu)HHH5k)H6HHH9,u1H5l LV EvH5-{$L1; Et!AFH%H5*$LIE1 H5 L1U H5v$L C$G7@H5v$L| CT%n =fHCHHxHSXH:0ff.P(A\$AEt%L%"LLuHh)8t EkAF % =J[L]A\1A]A^3MH5u$LC<%n =f2HC0Hx#ff.H(8 H5Bu$L?E %n =fHEHxHUH:1oM f.X(fLAH5(z$U ڀ vH)LH4v)VE @H}a1H=_ iILH5y$I=Et;HEPHuHPH)LA1H5H5/t$LH1,HEHuLAHPHH5H5$LH1E AuDAuH5vs$LZf[IF]A\A]A^E HEx H5s$L=ZAD$H5Cf LHHBIIVH@LE1H5s$A\$E1ۃtnH5r$L_ Hi);HEH5r$L@(#H[%H5}$L1c-1H=] {GIHE@]ZH@8Ha] HtAHE1LHH HcQHqDL AL AHcA$HH5q$L1{H5yq$LAH5]r$LfHUHR H5~q$L1g = HEH5Zq$L@(@ H5w$LHEHLH@H@HEH5p$LH1HH5[ L]H5z L1GL',:fH}c)AUIH [ ATIUH1H5p$HLLH]A\A]?fDHHL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0/HD$dH3%(uH3AU1ATUHH=Z SHdH%(HD$1DHI -H?H5bo$H11HHADK D% =IH"HIFDK H$HHAE1LHAHLAu!I>LHn$H1d HEHp8H91H$DK D% =H"HEDK H$HHALE1HAHLA Ia>LHHn$H1 C> H1>HGy$1H1 HD$dH3%(uRH[]A\A]HHsHPH$@=H5m$H1HHsHPH$*1ATI1UHSHHHm$ HCHHB HrIHD$ HD$H؃H 8HcDH>DE1EAH؃0E1ɺLHD$H58 HD$H QH0H5`H1ɺL@HD$(dH3%( H8L[]A\A]A^A_AEU1ɺLAH5i$uH؃0=f1ɺH5h$LJDI_IH؃H 8H5h$Hǃ1 :E1IMoLMAE1IHt$MoLMAzfE1IHt$IGLHD$L|$DfE1IIGLHD$XL|$fDAPDAhDAAH1ɺLHD$H5HD$H tBH0t|H5Y HIWH5j$L1MwMH5Y IHt$IGLHD$L|$EH5~Y HHEIIGLHD$CL|$@IMwHt[G % =ttHt$=HT$ HHE1E1h@LM&XH5fZ H5Az 1LMH58HHwHPHT$ !*AV1AUATUSH_0H=P :HkL+LsIHtjHLHE1h@E12LH(ImpXZMx'L-e$fHLL1HHHHu[L]A\A]A^fDHHkLs H5{e$pf.ATUHHH_)HH1\)HH9B(dE f%f=Hc)%H41H=$$$E f%fDjf=[v@f=uu#H}Z4H5) H1H1]A\f.f=H])Hx tHH5IQ4LH58& H1]fwbfxH}(I4LH5$H1Nf=H U*DAaL$L$$L$(L$L$L$H=U*AA M$AA fDH\$0$\LLT$PLD$sLL$$LT$PAG0HK*LsXLA|AG4LH1LT$P LT$PAMHO*8HT*@(D8A_fD@(8AHfHHH+G*HHH,G Ƅ$it&HGƄ$@qL\$pALL!HcHI9v1D HHLF ?A9H HpHuLT$PE1E11pLp$郿Lp$fAWt雲HHLLd$LT$kHHx $CH@H@HEmHHx(H=m0mAF1ҍH/HHƒHT$PHT$PHAFP < M1LLDD$PDD$PA* z Lƹ1HLT$PLT$PE1YDD$aޥH;=.*$=LT$PH|$HLT$PH|$H|AHHD$AA<HHD$$,ˆ$ѱLt$P!m\Lt$H$hL$zL|$pH$pL$Ll$xAHHw|$aDHt$PLHL!H$hHAL=6*M@AAHAI<6LfDHH9v LA Ht~HuE1E11HLVH$pH$hIH)H$htNAtL|$pLt$Ll$xL$IO`IwHHH$pL)HBH|$PL=5*ACHHuH$pAHw AAD!LcHHH9t1D LILG ?AI HgHuE1E11Hھ H|$PAH|$PH$pH|$PI3H|$PZIIPAAAt(L%9*AHHHuH|$PGHƒtH|$PIPDLT$P!LT$PHvlHAHL$P!HcHH9 $v/9LHHA<;?H H=HuH|$PE1E111"HDuHtH|$pHT$xD!LcLHH9L$xv6DHT$pILFHЃ?AI HHuLT$xE1E11L\$pݲ1LT$POƄ$LT$PMJCHL$P!HcHH9 $v/1LHHA43?>H HHuL$0E1E11ƺHH)HH HL$P!HPHHHpH$pHL$LT$xLL$pLL$pLT$xL$H 1L$8H$0H$0L$8HSoDH=K1FH=5%18oH=J1" )Dpff.@AWAVAUATUHSHE`YvExZH$HL$DALD$BDxAdH%(H$1D|$0=wMHi$IDHcH>E1H$dH3%(jHL[]A\A]A^A_H=V5%1>fDE<)t(<+obE1|$0AE1H$H;T$nH/*L|$1AH|$AH9uEuXHH9W5H$HpH$HI9MD @DA!A9D8uHH$H/*H8&]H**E:utH5f$;1EH$u }qO1L$H9T$|L|$Ld$Ld$?L$EtL9tAXvM9W5IZH$HI9,E1HJHLuH$HPH$˻DAjH\$}L$HS}LI9LLHLT$cL=T**LT$HAIHH]ALH -*Iҋ,L9T$MLd$Ll$H$LIt$NA|$X`It$H9:HH)H~H .*HH9HLH$I9MH9]6C8H-*ЃH$9uIt$H\$H$ H9CtPH,*Lt$1@@@L9HLl$L$2A}XLI9E5H$HH$L9FH@@9uH\$}L$HSHL9[LHLT$蘧L=(*LT$HAIHH[AH+*L9T$aJLd$Ll$H$LIt$Cf.It$HH)H~H ,*HH9HLH$I9IH9497Hd+*ЃH$9uA|$X[It$H9rHLV`H$]H\$H$ H9CtPH**Ll$1@@@L9BLt$L$%H$HH$L9B@@9uA~XDXI9F27A%E1H**H8YAH\$H$ H9CtPH**Lt$1@@@L9YBLl$L$MfIEH$HH)Hu72H=**47HH9HMH$I9A@@9uA}XVIUH96HDH$1H;T$Ld$Ll$>uH9tA}XUI9Uc5H$HpH$HI9E H)H9vHH$E1E11ɺHH$L|$IL9fDl$Lu1MLLH)H$IH5,A}H$*MAM)@HHE,Htk!LHcHI9v-DHHLF?AH Ht!HuE1E1L1LHLL$H++L$t L91HD$xXvHXL9|1HL)H8@AH (*I<H9HMH$HI9@E1 H$1H$H9T$vLt$Ld$BH$HH)H:8 H=/(* HH9HMH$HI9vH:@x'MH5&*@DA!D9[0H9uEu-A|$X{KID$H9mHLQTID$PH$1H$H9D$Hl$Ld$Yq@vuSH9uEuA|$XSI9D$n2H$HPH$HH9HH)HB1HH$A*vH$H9T$`H%*Lt$1AL|$$DH&*HH$I9!MD @CLl$Lt$H$HtfDHY*8q(Hy*BЃL$D9S&I~HL)H0AH *IH9IMH$I9BD?EyAIvH-H+HH)H|8Gƒj8A?D H*8/H*@Ѓ;H,*H8KKL%c*}A$nAHD$H$H9h,AU3A_SL,wHB(fAAH;l$?BLt$L|$Ld$A8H *ËЃD9:%H$HhH$L9A]Eu_;HXfH$E1H$H;|$eLt$Ld$/fAH*<LH$L9-IMULjH$IL9L9uEuA|$XM;T$wHLnHL$tDHD$}L$H@@ L9tARH*Ll$,M9?Lt$L$2A~XIMM9V)*H$LPL$M9?AЃ9uE1E11ɺH訌L$IHD$I9Dl$ E1/I(DH^*D<IL$M9MA7IHcI)LAA)DH$HH9w,Ht$@t$DD$MH= *M)Ht$BH#HtiD!MHcIM9v-EHHLF ?AH Ht!HuE1E1L1L_HLH$Ht$ t I9b*HD$xXOL`I9&*LH)H;H5*HH9LML$ME1E11ɺH]ΊH$L|$IL9%Dl$A1LH)ȾH$IH,ZA}H*MAM)@HHEHtjD!LHc@HI9v-DHHLF?AH Ht!HuE1E1L1LHLL$H|$t L9#HD$xX6HXL9j#HL)H2AH g*I<H9HMH$HI9DH$1H;T$Ld$Ll$>uH9tA}XFI9UT%H$HpH$HI9ZE H)H9vHH$L$E1H$L;d$HL|$LH\$I%AHu*DK,H$I9]L$A:$rɿ,/H=`*LDAH)HEHD!IHIM9v-EHHLF ?AH HtHuE1E11HAT$L$H)H9 HD$Et M9&xXLpM9&LL)H <AH E*IH9MML$LHD$}L$H@e0 L9tARH*Ll$,M95Lt$L$ H$LPL$M95AЃ9uA~XEM;V'E1E11ɺH脆L$Lt$IM9H$Dl$1HD$)DAH5*D<ML$M9E/L$D:mrʿ,H!*MAAAM)HE4H"!LHcHI9v-DHHLF?AH Ht!HuE1E1L1LjHLL$HDD$Et L9$HD$xXHXL9#HL)H6AH *IH9IMH$IEH$1AH9|$CLt$Ll$-AH*<LH$L9 HMULjH$IL9EuH9tA}XM;UwH$LK?L${fDH$1L$H9|$L|$Lt$IzH$L9[HMUL踃H$IL94H9uEuA~XGM;VwLL>L$t%DDH$1H;D$Hl$Ld$yJu H9CA|$X1I|$H92H$HH)H6$H5* HH9HMH$HH9XHH)HwH H *HH$H$HD$DeH9Dl$1AILDH)褶HD$IH$H,1EH=^*LAL)ALHEHtnDD!MH@IM9v-EHHLF ?AH Ht%HuH|$E1E11L$UH)H9@DD$HD$Et L9xXE?HXL9HL)H(AH @*I<H9HMH$HI9DH$E1ۃH9|$|Ld$Ll$IzH$L9[IMULH$IL94uL9tA}XHM;UwH$L;L$t!AH$H9T$Lt$L|$1AH*FEuH9tAX,I9WqH$HpH$HI9MD8uHH$1H*H8DH$E1L$H9t$.L|$Ld$Ld$oDL$Et M9AXMwM9LL)HA H5P* IH9MML$LI9}L8uH$H *HH$E11H**H8sCL$L9t$ML%N *E1ALDl$MIMIH\$Of[@8tiD$uM9t{Xv*L9{H$LpL$ML9|$A}A7A<$tH *@8uIL$H(|L5 *HD$DmH\$L$LL)LHހ|$0L9ZEE<ID8S&D1H5*DЀ<Hl$ LsHl$A!DLljD$E5H$H8W-H$HxH$H9DDL0}H$H9It|$WH|$ HwHxHD$Ѕt}XtL$D8t&H$L@L$I9UAD8uItHD$AVHuIxЅtHD$xXkBH|$H$7tL$%DA)h1L;T$Ld$Lt$Lf.H *L$9Et L9A~XInL9HL)H*AH *I<H9HMH$HI9-HqLHH)HqH5 *H9.1<F<G1H-H$1L;T$Lt$Ld$LDH * L$9Et L9A|$XIl$L9IHL)H*AH *IH9IMH$HI9Hp1HHjLH)H0Wу0? (1L;T$Lt$Ld$LH *DMHD$HH=*0H|$X@HHHLD$XLL$H!K<LAHHH9v1D LHLG ?AH HHuH|$HLE1E1H$1YL$H$L;$I)HT$HH$L$HDŽ$H=1H$AM HD$HH=*0H|$X@HHH LD$XLL$H!K<LAHfDHH9D LHLG ?AH HHuMLL$H$HDŽ$A>LLL$HLL$HLy:$HH$AML$Ht$LL\$XLH$LL$H!HT$LL$HL:$H$L\$XL)H~AH5*DI9LOL$Hv'HH9Hй̃HH"I<H)$H|$HJHX)EL\$HHD$XAD4M)HHwºH$H$H=H|$`H|$`E1E1 H$L9$HsH8G % =-cL8$HL$dAHDŽ$H$IUIB7Hx*H:L$XL$L$XLt8$H@*H8Av)Hn)T$X8u;3L48$=L$AH*H82H)EL\$HHD$XAD4M)|$0H^ATH)8D;H$@t$DD$xL\$pDD$hT$hL\$pL7$DD$xL$H$,T$hL\$pDD$xL$H$$HtHD$X0LD!HcHH9L$v09LL$XHHA<9L΃?7H Ht+HuE1E11LLL\$hWL\$hHH`)H8G f%f=h5H )%H HҸ;L\$hHDH5$1迹EH|$XLW6$L\$hAD4HH|$8D ۸DDH|$PtW|$0|L9t$@r=HL$L\$PHL$@DIL9rAƒAsHL$L$L;t$@HOfAMM@H@D1I+XHH\$8Ht$(HD$ HHS H9J HD$8H$HD$xX7H|$H$(L-5$H\$L$HSL9v.{ZIFtAH )LH9IBH$IL9t$@gH)HX)HH91oE1HD$8fDL$1L9t$@HL$XL\$PDD$HL$@H)IL9r AAЃAEGAsDD$HL$XerHt$L'L$?Mw$H|$XA!7LIcLD$@HI9v1DHHLF ?AH H HuH$E1E11LLLt3$AH)<LH$[H!LHcHI9v1DHHLF?AH H}HuE1E11ZHt$L|&L$MgHDD!LD$HIM9v1EHHLF ?AH HYHuH|$E1E111L$2AH)<LH$iHD!LHcHI9v1DHHLF?AH HHuE1E11jAH>)<LH$GfIU@H@H1ҋ@؉Ht$(HD$ HHD$8H|$8v@H$H|$$H|$L$\@H$L$wL$3H$H$L$ HHP A~XAI~L9HL;$L$tfDAXYI;oAI|$Ht$L#L$nfDDD$HHkA=Ht!LHcHI9v1DHHLF?AH HHuE1E11HtD!IHIM9v1EHHLF ?AH HfDHM>HfsDD$-H$LcgL$fDH HoAH)<LH$MAH)I<H$>AH)I<H$HH1V;L)HHAH),LH$(AHr)<LH$AHS)<LH$MHt$H:L$»HD$HXLL&H$I_H$H&H$HD$L`Ht$HL$EHD$Lp0H$LL$Il$H$LeL$InRH$L<[%HD$D H$HL$HD$Lx`H$LL$pMgH$LL$GIl$HH$LL$InH1 @_ @HhfdH1貫LHH|$LLD$ Dl$(jL$(LD$ HHLL%L$NfDxTHOȃ<Ѓ?H!)  bH Oȃ< Ѓ?H)  8HWу ? @_ 軣@HhfQLH:)D(EHD$L$HPL9E<_<Q<HD$HLHPHX}h,H0UL=])HAHHtlAH!HcHH9v+LHHA ?9H Ht$HuH)E1E1H1H豺HH-)L5$H}WL$E$L;T$H\$Dl$MIHS,LT$(HT$ HLT$(HT$ AA:HL)@HADHEHtjA!LHcHH9s.DLHLGD?AH Ht!HuE1E1H1L輹HI?qHSLCDA,H$Am:D$t"{Xo!H$H}J!HSL$HL)H~AH5C)IH9LLL$L9T$yA<iHD$HLHPHX&f,H٪UL=)HAHHtlAH!HcHH9v+LHHA ?9H Ht$HuH)E1E1H1HZHH)L5 -$H8HD$L$A,L;T$|H\$LAMDl$ IEHS,LT$0HT$(LT$0HT$(AA:IM)@HAHE:HtiA!LHcHH9s-DLHLG?AH Ht!HuE1E1L1LWHHD$H8HHKjE$DL$LKDZY:D$ t"{XvH$HQHSL$HL)H~AH5)IH9LLL$AL9T$v DIH|$XBL9WH$L$9L$L$S(@@9H\$L${XɲH|$H9GH$}L$防軫LL$S(@@9BH\$L${XSH|$H9GH$L$"LڿHl$LsDLHl$5H$H[H$HxH$H9LDH)XH$HItH|$AWHwHxHD$Ѕt}XtL$zLrL$e1聬1L9 E<` <N<H-{)ArL5g$L$H}L$L|$E$L;T$slA2H}DIWMGE$H$E1D8tAXLLH$LPL$L;T$rHD$@XiH|$L9W2H$L$8<uH )ArL59($AL$H8HD$L$A,L;T$uLd$EMAHD$A2D\$ H8HIL$jA,D\$0L$ML$DT^_D8tA|$XLLyH$ALPL$L;T$sH)H)HH9訝L$#S(@@9޼H\$L${XH|$H9GH$;L$龮L$鱮L$餮S(@@9_H\$L${XpH|$H9G9H$$L$?H[E1,m|$XHt$AH)L)HHHD$X@HEHtqHT$XL!HcHH9L$v2DL\$XHLGL؃?AH HtHu1E1E1L԰HH)H8G f%f=H F)%H HҸ;HDH59$1FL$AL$m11]1HtHT$XL!HcHH9L$v6DL\$XHLGL؃?AH H*Hu1E1E11LH LA4IHv)@(Ѓ9.HD$xX/H|$L;WH$ L$ ^L$DH)@(ЃD9HD$L$xXūH|$H;oH$ yL$锫C(Ѓ9\HD$xXCH|$L;W>H$ )L$D1L]1A; H$)HcҋA6H)8v!HD$fAA+Ls1鬼L_L$鯪L$颪IH)@(Ѓ9`HD$xX+H|$L;WBH$ -L$HLd$I9Lt$H1H$;H9uEuA~XXI9VsFH$HpH$HI9·L rHH$HL! tL$騩IL$铩1LHAWH0AVAUATUHSHH%H%H=H*IIHHH8>{Ho*HL-%%H8E|M9Lf.I9suHH\$(HtCHtPHKXIH I_8H|$C H\$@D$(H@D$8GYt2CH*HHx8HtwwHL$@HH8HD$@x L(uMmIHD$XH*HHPLMtA@H*A@;;pH@LƺLD$(HHC@LD$(MtAp߈ApH\$IG0I(CH\$dHD$(H|$0\$dHHt@HtPHKIH DMIH*t$1H2DI)HpH5P^CyILBt>LI9rHI9w‰t$tHM)HM*H5P^CyILD|$|$bL#ID$ tI\$It$Mt$H$Ht$ \$bMA$IHD$LXM9fD1IHT*DeIHHt x HDLH5:%1qH=4%1XIG(HD$0MHD$LMHx@t6H*L$HH@H0L9tLAF@AH=%AAGmHLH9$VAG`A"A8GaV V>t1AFI A#GdA9GhLV@IGXI=MAw@DAoi|PHcP0HP FuqPD9wiIH IHHLFLIMM+CLDA;vAAA9HtOHt9m@D@H Ĵ*AD1DD|NDO*O4OHHL$fDH\$(Ƅ$MHgEƄ$T9CH$D@HLLd$P<$P$@IH6Ao<IO`HD$XMAtQH@HD1Hp@AGvfu#{f9wH@fzf9sfuH$HGI9~9fIH\$LML$$HAG IH+SLHAfDHD$h}MtHD$XUH@HDHD$hHD$hALL$$IG0K@H*AD;8uVH$\L(AG(H$IGPEXA_0MQH<$)I@t_Hl$PLLt$Ld$pMAA4A~ZIV@=&HH)H9r H=&A\$0uIMHl$PLd$p|$HAG(rl MEHDHD$H9D$HEMHtH9HDEfAG8E fAG:H *L$$LDHDHD$AAG(AIw@AG,H*AAG0$EMHDHD$H9?H=n%1yfH*1ALHD$pH"HD$PHLLT$x#LT$xH|$WHWLA9H@IHHHRHHH9pHHAItAs@{%|$ap%Mx+L;4$s%DM9tAIRH\$pF:CH)IH9$/H~$AITHHD$PLЅMIB%f.HY*H8%kH*AKHD$pH!HD$PƄ$EMA;IH@HHx$|@H\$$MCHCL0HEHD$NfDH$AG(MMw8AG0IIG@L|$HH *IoHA,U||H|H|$t#*p%4g%UHHHT$LAID$H @|$HMuHD$(Ht L;pRDD$dH*$\1LLT$pHHD$PH*HHD$xH*HH$$LT$pH$AG@H˨*AGD?YHD$XuHHHQH\H *H8rNlGML;$NH$@L9DºYD$pDЈ$L$1vI$H$L$IL߫*LHHH=t*IHcP H RH HPLIS@HHtHRI{HH5*AKPHHJ`ICHwpwAS8P($AH:*H0F"u0F#miHNNNIQ(AS8LH+QHHH=*Q(McHI$R`IC0ASPHIS@AD$"F#|$pfACxI$@`I$Hcp`~:LL$L$LL$puI$LL$pL$L$Hcp`IAH (*HH5m*HH@HI$HcB H @HHJHpH*HH$HS(HzHB(t@!@4H@P fft H52*HLH\$LIH+SHPHC@HH@Ht8HC P 8K JH\$LH+CHAHC@H@@H@H\$hHt;H=7%LD$pL$QHH`jL$LD$pH̯*H\$PLT$pH+H *LH*H=*H=*LT$pHHH+H9GKHH*HH$hHHϦ*D\$HHEKH$hG  |$HdZUNLGAP tIH Au$oU@3drdHD*Ht$xLLT$PH$H0Hu*H5v*HHl*AGDH$\|$HLT$PHF*H_*H*HH H*HHVL$LL$$ArfEMD$HUDAG(H!*1AJHD$pHmHD$PLH?I L;4$H*1HD$pHsHD$PIU@D]EHEDIEPA9rIH RH H9tHyt΅ifHɬ*H8cH*HD$pH'HD$P_DH*1HD$pHcHD$P;fT$aH|$ LNqEIMH|$HH@HHHqH1ILH+wHtA;vAHD$(AHxH~9sLHD$(HHXIH HD$@1LLT$P$\IG8Ht$LT$PAG@HD$(Hx8G H|$@D$H~@D$8FYt3H-d*GHEHx8HtwdwHL$@HH8HD$@x L(uMmILt$(LLT$H5;*HD$XHD$0IG(IF(HD$0H*(AoDAFDH$\H*|$dMw0LT$(IF0H|$dt"PHtJHpIH4I0H|$(Ht$(L$$HD$(IƄ$H~PAtH|$CEILMH\$$HH@HH+SHP;$\$\HD$0H*H@0PHDH||LDt *?4?HHIHD$0XP\$P[XPH@XIG@IG89^HD$0L;pXnaE@HL$QHo<ALPH|$WLuSGHHO8PIHHyHcHhH;PPb1LD$pDL$PIHD$DL$PLD$pPLj@H|$LGLEH+WHHHHH?H=H H)H҉HBHIHW8HRHH4HcH^RHD$0hPH|$EMLT$PM)H*HHHD$p@HIHLL$pL$AL!LHcDHI9v-DHHLF ?AH Ht+HuLT$PE1E1L1LjLT$PHHLT$PMHLT$PD|$aMA8EE1E11ɺHLLT$P HHn,[L$ALT$PM)H*HHHD$pHKHBLL$pL$AL!LHcHI9D HHLF ?A9H HHuD|$aMLT$PA8EE1E11ɺHL HHn,ZL$A>LT$PM)H*HHHD$p@HGHALL$pL$AL!LHcfHI9DHHLF ?AH HHuDMA"E;EL;4$DHD$HPI9rP|$aER< H/$HcH>fHD$L;p1,@AO,AG(I_P9H$$tMIGHxWtI_IOMwH$HL$ PH4Ht$H9H=%1jfDD$cM1H*H8=ML;4$zH+*I |$a HD$HpIM)IAH-H~AFkDу?} LLT$PLT$P9f1ۀ|$auaML;4$H*MEB4@!99MIf1@1MmL;4$cED$PI |$a M)I~AH-H*D$P <9H$HcH>DHD$p1AIHD$PH5*H L$a L$8LEU Dʃ1}L9dM[B:<QD$8HD$p1HD$P1H*H8};}HD$|$aHPI9N(HLLT$PjLT$Pz@H*8C_T$PT_EH)H9L\$pHt$Pu;(iHt$PL\$pBBED$PPf)oHD$Iw`LL$PLT$pHZPYLL$P9TLT$pM4Al)L<H $HcH>L$L$Iw)H|$ /AGtHD$|$cIoXIG`L$p0McOLEH,*AtEOHAG,w*IcGPMw@=,-|$a96H<$L)LHWH9HFIG8D$cA_xIH9$v,A:_v"3H4$LIWHL)l\IHM9w8I@D)|$aj.t8IG@LD$ALH $H$pH$pIWXA_H.9MLAG rH@EgHIH,E8H|$IFZLgIL)Ht$LHEAG IH+VH@HDHPAG A;AAG DIHc@EOPEc AGHE9OLQL$p}IW`J<u >HɆ*AG,XfDHH= HIID$8MHl$PL$LT$pL$$fDMID@(%@=@DvƄ$I9tHv*AV$MxHX*B0$$9LGHEAG$AAG(AIG`L$$AHD$hfH4$L$aHH)MH$x1SQjL$XH L$pM}u$\LLLT$PL$$LT$PAG H*AAG$$ A@o f.H!*L$PB9fDQ? :H0W? :HrP(@@xD$a D$8LEUW1WH5A*DH-)!UHHH*8@"HD$LXDfH*I9}2AV!_T$POLT$pCT$PLT$pHDPfAAM6I_t0LT$pDD$PBLT$pHBPDD$PfD8AEA9靾D}!Dt \$aH|$XUHGL\AClfAG8ACnfAG:UHGHDH$ ACLD$PE<+S<2KIC H MxL;4$sLAHDz D$PHICf8IC(HǽHDŽ$hIGHIC0HDŽ$`IGPIC8Io`IGX1IGhAG@fAGtL;4$yD$PmLt$PL}$DŽ$HDŽ$D$pLt$xH$L$ML$ADHIEDpHDŽ$pftGD\$pEuA@H|$xAGpIhAWtftf9sfAGtfAGvD$pEt H$hHhHt$PH94$YMLt$xH$L$L$DL$pE[AGvMfTIK@1@H@fuAWHH$LV*0@HAHH(L$A!I<)LHHH9v1DLHLG?AH HhCHuH$HE11H$`E1VH$hH$`Lk$H)H$H$pH$hHDŽ$`H=H$hH$`AHoL$zH4$H|$PH$hHLL$\+H$HL$PLػ$H$pL$H)H~H5͈* ,H9HOH$`Hv'HH9KHо̃HH"I4H)$hH$H!HD$PL$zHDŽ$`H$hLL$8ZL$L$HH$pv'HH9JHо̃HH"I H)$hH$vAHH$L҂*0@HAHHg&L$A!I<)LH@HH9DLHLG?AH H@HuoDHL$P$IOhApH9*H8=|$a}+HS*8w;L\$xLT$p[LT$pL\$xQHD$,LT$xL$HPHT$pgEEHT$pAH*LT$xHL$DHHD$pAL)EH!MHMH|$pHT$xD!LcLHH9L$xv2DHT$pILFHЃ?AI Ht2HuLT$xE1E1L\$p1LRL\$pLT$xIH|*H8G f%f=MH*%H Mɸ;L\$xLDH5%1LT$pL?L\$xLT$pDLD$H $HLH$pdAGHA}LD$H $HLH$p4McOLD9L$pf.D$8醸fD;$W$7.FfMH@MHIHD$Aw8ހxZLH#LHIPHcLL$L$xLD$pLL$PLL$PLD$pL$xL$L)Ht$LIIH+VHTA9sAH|$(A$MIGPALƄ$L$$HD$оEHDxXHD$aHD$VfDH8AHH Hv|$a1 MI@IWXAG<;BH|$AGLz*H4$@A@H+t$PAHEEHtkAHL$P!HcHH9 $v+9LHHA<;?H Ht HuH|$PE1E11LHHv*H8G f%f= GHt{*%H H;HDH5g}%1Hq8H$hAL$fH}*H8l@HD$PH,$Ly*0H)ŀ|$a@ƉEL@Hx*8;L$H@$G$@D$8L$0lRL$0$8L$$@$GL$Hc,H Ht3HuL$0E1E1H|$P1H%JL$0HH+t*H8G f%f=EH y*%H HҸH5{%;HD1L$06HD$PL$0L$0@ƉEL*I9I?1Dш$Hq*A6L\$xHT$pH8$-H ]%AvDHq*H8DT$P-L\$xDT$PE1H ,%HT$pL\$xHHVm*L$H8!H57+%LHD$xHD$L@HPL$<,H$/L$L$L$AHD,H|$pHHLL$pALщ!LHcfHI9v-D HHLF ?A9H Ht.HuL\$pLE1E1L)ֹ1L:=L\$pHH3l*L\$pH8 L\$pHT$PH5 *%$9נA<$<& 1<c-9z饠DA<$<1<C-9JuD1A>uA~yAFH-H_H!k*M"B8Ai1;LT$PH5-$ HD$LT$PLXDH$H9$%D$pL$Ƅ$ Hj*BfD$c醟fDAƒTSfDAHH H' Z"|$aA~ MfDfDLMDHHrfH$hADƄ$鷗1AV AF ffAG Mt{H@E_HIHE$H|$IFZHot,H)LHAG MH\$H@IH+SHPAG A;v AAG AIG`ALL$$HD$-fDLf@HH*MLt$xH$hH$L$L$AG@PHt$(HvHH|$|$P9MEHD$0xHC A9ZL-fD$cMLPH@HLUb*H$He*HƀI@$FLHM!AA H&b*H IA(IH=fh*HH@HHHD$PH+HHAIH@HI H HIH4H vf*H1I H HIHH ^*HD$PHIMHH]*AA A;A$AA HH @H IAL $AAAHD$PAQH+HH`*AAHSb*HIAHM`*HH+HAA Hpe*AA(H^*HIAHb*HIQ He*HHH^*H0F"u0F# IL$HNNNL$Q(AQ8LH+QHHH=d*Q(MaHI$R`IA0AQPHIQ@AD$"F#fAAH^*H8e*|$pL$L$xI$@`I$Hcp`~/H$L$LT$p*I$LT$pL$Hcp`H$H@HH5cc*HPHHZ*H:DH$H|$aIG8H$CD$c<HCfDHIG8HtDIG0L$$LMw8A H$MMw8HDŽ$IG@IL|f.1y-H@HH$H[*$@HH@Hu@HHxtt@uHpH>tfDH\$ H{sH_*H@8_LL$LD$pJ*HS@LD$pL$HJ@HAHD$H@@H@@`郴HD$IwhHZPY2镘DHD$(MxHLL)fHV*HH$h麴{ HuH@LFH\L;$CH;$53AG(MIGP$H$fDHD$IWxZBLH)AG8AEBA@}FAG<+[ ٣fDHiV*LT$HH8<H$hHHE@LT$H$HZ*H\$xLT$PH$H5X*HH]*H8HX*LAGDH$\IHX*LT$PD$HHZ*HY*HH H8`*HH@DLT$P~ LT$Pg@Ld$f LT$隝@S fDC ћfD3 AG NAw$AA(9*#ƒ)H RH)HHRHfDIHDHHH9uAAAtL$pLD$H$pAIWXH $L@^AGHAWPL$pAGH9K 9fD; fD+ 適fD 銝fDLD$( HT*LD$(HLfHcL'DL*fDfDI8H9$s'H\${ZHSHH9HCHt$HF0H$D$bHH@0H$ܖ@MHPLHI韕DI&1AV AF 驕fIGHƄ$MHD$IGLl$PLDl$aHl$pMHL<$Ld$xIfLHLH))HHA}f}}ifHt$PDOE}AAA"E1}AI E}t1E1E1E1*E1A}LDAAE1A}LDAAEEH9rMHL%'%t-QHGHHz+wH8EHtpD!MHcfIM9v+AHHH?H Ht!HuE1E1L1LHHb!+H8L;EdAD$A HD[]A\A]A^A_HGHH!+wH8FEdAD$wH;HGH9vH+AHH豙HHtAEF@AEHH+EPj@H.D!MHcIM9v/AHHH?H HHuE1E11ff.AWAVL5N%AUATAUHSH8|$ \$pAdH%(HD$(1LD$LD$ LW%HvIH)F< AAIcL>HT$H|$ HAAA u1H\$(dH3%(H8[]A\A]A^A_AL|$Ll$ ALHL\tDAAA)AfDH|$ L3 j aA WDHT$H|$ H 2 )A DHT$H|$ HA fDH|$ LAfDH|$ Lc AfD1H|$ L6jL|$AHL $Ll$ LDT$ LDT$ L $LU%AWIIAVEAUIATUSHHXEedH%(HD$H1FDLHƉ@HD!HD@5LDHLDrPu EAAHo+B L fAD݃H\$HdH3%(9HX[]A\A]A^A_1E1@u~H?A@tu IvEtC?H+8tEI0I1^C1NfDH=+HD$@HHuALAA!McHI9v.HIH ?I HHuLHT$@E1E1L)LD\$LT$Ht$@LT$D\$IHDSICƒE11LD$@HLD\$HD$@pD\$HILHD\$HxpulEI{2LH5$G%21D݉H@H+83H|$@HH+8jDD{(EH+Icl$8Ld$A0H\$(DLl$0IT$D\$LT$ Dt$<0f.DA9D!E1DDEA@tH+B@A@u1H+8AH+8;LT$D\$D\$LT$Hx+H8G f%f=PH+%H L;1LT$H5&D\$D\$LT$rL)HHt$@1AdIUHQ+8LD\$sD\$HcD\$EAEID\$0H9r8HuFHGH9wnHGHH+wH8;IH1%F$HD[]A\A]HH詏IHtHHH菏IHuH]AH[D]A\A],E $L+MM)ALAHфHtoALD!HcHI9v+LHHA?8H Ht!HuE1E1L1LdHHZ+H8LmIH%F$H[]DA\A]fHtʾLAD!HcfHI9v/LHHA?H H}HuE1E11Zff.AUATUHSHdH%(HD$1HHHH=V%H7<w}E1ɄtV<H $AAIALH tDAAA)AAf.HD$dH3%(u~HD[]A\A]f<u,H $AI䐉LH#tADAH $AIDLHtAr-ff.fAUATA USHHH>H9r8HuFHGH9wnHGHHO+wH8IH1%F$HD[]A\A]HHiIHtHHHOIHuH]A H[D]A\A],E $L+MM)ALAHфHtoALD!HcHI9v+LHHA?8H Ht!HuE1E1L1L$HH"+H8LmIH%F$H[]DA\A]fHtʾLAD!HcfHI9v/LHHA?H H}HuE1E11Zff.AWAAVAUATUSH8DL$dH%(HD$(1HL$AăAuiIIMD$ D$ uuDЃA t;AHD$(dH3%(UH8D[]A\A]A^A_9AˍCvAB[A „u ˆT$A AˆT$A AHl$Au)Dd$ADDHLtDd$AAt A'|$A&|$C:AăA A@Hl$ALDL$HwDL$AHvju;@ wv@ @ 1H[]A\A]A^A_fDv? uUHD[]A\A]A^A_o@1uA|$uAD$H-Hf.H! +DH[]A\A]A^A_,.H=_+LAL)HEHtnAMDAD!LcIM9v,AIIH?FI Mt!IuE1E11LIH+H8G f%f=H+%H M;LDH5 &1LA$&1XAT$@AD$H-H(D,H='+MDAM)HEHMD!HcfDIM9v+AHHH?H Ht!HuE1E1L1LlHH+J<HHЃHҺHS6AT$1'=H?MD!HcIM9v/AHHH?H HEHuE1E11"HAMDAD!Lc@IM9v0AIIH?FI MIuE1E111L%IuDA|$t1fA|$A|$fDAD$LLT$T$L5%t(t܃'wH HHEAHD$dH3%(H(D[]A\A]A^A_@Ld$LL#tA'tA-tHHIDE<(AyLLCt'wH HEDHD$H9D$HPHPHT$H9T$,pHi+H8IHO%BfE1۽Ld$LL"tAAA@P$tu)Ld$f.LLC$ttASDLd$LL$tt@A AHt$LAAf.A AH &+Ld$,HHl$I9vп,]L #+MAI)HAHEHjAH!Hcf.HI9v/LHHA?8H HHuE1E1L1H`HLd$LLLHAH!HcHI9v/LHHA?H HnHuE1E11V^ff.AWEAVIAUIHATMUHSHAHZHHt$dH%(H$1Att0AuDpOH=02%HcH>f.HIcH)H,H9HNf.D3HT$AH~*8 ;C,L*HT$EAAAHH)HE7 HtjAAHE!McHH9v-DLILG?AI HtHuE1E11H7IHE*H8G f%f= H*%H M;LDH5&1L覻fDH+H8t fDAL$ZfLt$PAT$YLL D$]IHH9HD$AD+ E1DHD$HH$dH3%(1 HĘD[]A\A]A^A_@HMcH)J L9HOH9@AMH5*H@HH93fDH9AMH5*H@@HH9H+HD$Pp$I@L$AFhH$H@(H@Lt֠IF$ )$ 3AFh x蠠H=%IF@+xH$@ &H$CH;$)H0+H$L|H|H$t+H$<*(*<4 *HHH$H$H|$`H9/H\$(H+E1E1LMLt$PH\$H$H\$p+fHcSH\$(HH9T$`HT$(BH\$LT$(T|ITt#H\$(<*i<4a HHHJ<H9T$8v@DD;$ =$ )u 3<$ .uAAA1IGP1{2{(fDH$H|$p$H|$@HHHqHVH9H;QHQHH=HD$XIOH}DHHH@HHHG80fDH|$p@$YH|$@HHHqHVH9H;QHQHHIOH$fDHa+L(M`IEH=J+HH+HH IEIEH+H@`HHH=+HW`IEHIEH@IEH@IEH@AU %_AE l AE IEH@IEH$H|$p$"H|$@HHHqHVH9H;QHQHHBHH 1H@F@SS߃SfDAw@F @S`HH:H}w}wfHH8HwwHHx -H;=۸+H|$0HD$xdHT$xH|$0HH8H~wwgHH:HlwwUH\$LcBENL9D$8AHLHH8HwMwHH:HwwLL\$0)AE L\$0yBHZS߀FO IZLQ1A߀AF FHIJyST@W@s+@+@+@#@#1@S+Sуtуt 11{{$f1{{A8)DBEE1HHD$0{HD$@LD$xHpHHD$0H|$@HHD$xHT$0{HD$@HT$0HxHHD$xFH|$M9gXMgXI_PH|$MgXD$HH9\$H|$E1HD$X߀AFHIJST/W%@)@(@'@6'1@BS! #1{{ nS߀FfIt 1LAHDŽ$ L\$0{L\$0L\$03rL\$0IH|$@HHD$xHT$0yHD$@HT$0HxHHD$x"HHD$0yHD$@LD$xHpHHD$0H|$@HHD$xHT$0eyHD$@HT$0HxHHD$xHHD$0=yHD$@LD$xHpHHD$0AD$qE1L;d$`rEndI~DHґH|$(IFHLIFHAKE1ADl$E1AEEPAID9d$BI^J;EZ1HxHt_݃~6f9Bڃ9f9v9~DBD)H;D$(AFHBD)f9uB@AуH1{{SH€HStO1{v@{^{ν1{@ōl-S1H€H(fDS[ tr1{{?@SуtYtT1{{Str1w{mStT1L{B1{${{{t1{t1WMStI1{%f.1{{{tt11{tS߀Ndf.1{DKʃ߃Sv+*{ w@iS؀{{;1{Kʃ߃S{fSуtat\1i{_{U1{<S߀N,St?1{[1{{;{1HD$E1Ll$H$H$@HHRAF`oDH= 1Qh{WS߃SDAWff.fAWAVAUATIUSHHXHG(VH5(H@T$ L|AGdAoHEwD$,IGADh{8D$(i(ZaooKHHD$HHHC HG HD$H\$(@XaHID$(H|$@H@H|\$ _\$,IIL{@LHHD$@HxIwkH<VbH߾HD$ `H|$@D$ IHGHI$BD-ufDAD9tJE9vD9wIWD)HʃzuڋtԋL$ H|$ AAHˉ\$ D9uD$ D$8LfD|$81҉t$,HD$ |$81HHT$0IHHCDxD)D$<fA^H9A?A9wA9vڋD$H@@_K7HX[ff7HX[ffD7HfX[D7HX[f 7HX[k7HX[f S7HX[f@[D+7HX[f 7HX[f 6HX[f 6HDX[fD6HX[f6HX[fø[@1H=%Qf.AWIAϹ AVE1AUATAUSHHEpdH%(H$1H|$`DŽ$H|$fD$HA*A4A0Ih1Ht$PADŽ$Ƅ$DŽ$Ƅ$HDŽ$DŽ$f$fDC CEH{+AV׋1EA-{H {+9kH d|+An9uA.EH9ƒ߀AF HIJ[ST}Anu+Hv%FHH L$HHL$PHLALT$ "$LT$ C DHT$`LƄ$DK LE1D$HHH)Ht$IH4VW)t FD H$dH3%(3H[]A\A]A^A_UA,oA-2WEH/A0 D$`AE1Ƅ$C @ApIhkHe <rH<h<< <<<<N<EAn7E1C Ht$PAnCC DmD$`IƄ$LHw@9< E˃FLADI Mcȃ:C 'I McD8tH4H)IIturH>H9H|2H|HyHH)H)H@AHm+AAG9HD$ @A9@@C 1DHHyHHHT0HTH)H)H HH HW E1E1E1fDA-IX EH}ſſD$LD$IDD$E1DEI1DI/MMALL9s @t$LL9A,hIH8t IA-uIH8unE%Hw\HS HH ƄH)у@tL`C ЃHc8S vS :SvD$C@L9 DD$ME9t2t|1HCf"DK LHi+A-B(D$LssD$`sEAf$H$HD$PƄ$C ƒ߀A6FHSI J SM T1=W=Y*<}*<`E1E1E1D}E1E1E1}%}ƒ߀AGFH[ I[ J S T{!WT!Y<N<*}H*An ft2ftE1A}LDAAMw6TI@IL~}SE1E1E1T0TAAAlAAAU:0}}d}}0Fƒ߀FSE}}iE1A}0LDAA}1E1E1E1AAAAAAEƒ߀ST<E1E1E1}E1E1E1hE1A}LDAA;E1A}0LDAAAAAE1A}LDAA}rMHH`HE1A}LDAAE1A}LDAAjAAASEAAA, Oȃ߃S<~A$AECD4CD5O߀ItL}AD$ƒ߀4j`FOȃ߃S<"9/DOȃ߃S<DLl$@@ G< <Gtt<lbX>fD>4 dG<<r<DOȃ߃S<y_NAT$Bj< 9G<|<Oȃ߃S<DAD$HHH=CƒbG<v<J<<ND: G <<<G<T<L<GH$H$HT$H$H$$H$LL$D$+dH%(H$1L$AED$tuAGD$tD$,$tHD$$D$,H$1AƆrH|$PHL$uCAEufD'<"_0H >g&HcH>fD$D$fDAGH=7,<*<4!ʀ<) ˆT$D$+D$D$GoGH7,LcB|H$ IcBXD$8|$8AA8\@H$BDM|L$ofDH|$P1$HDŽ$HHDŽ$HDŽ$ HDŽ$(AB1,LT$AAAL\$EHHtyL!LcHH9v*9HIH<:?7I Ht5HuL\$E1E1L1LLT$LT$L\$IHLL\$L\$I EzMBI$EE$t AH$HI)L|$0H9H|$ HH)HH9HNHD$ tLH\$LHHHHHH9HKHH)HH9HMHCHL$$9AG<*<4A7I_L\$H4$]EH4$H$ L\$IEv!D MHA-L\$Z-LLLL $H2,L $H$ HIcL\$@#'IwAGH/HH$ DLL$'~L$ L$A:O'Kl D$H|$P1D$HDŽ$HAHDŽ$ AH|$y9H|$$LHH$PHH$XHHD$HD$ $H$ Et fA:U@RArEtA Ht$XH9HMAHL$XHt&t $Lt$hHڅ$8B H|$xDL$8D$L$L$A!$L$$%EL|$0tRHt$H|$`HHHNH)L>LH9L)H9HMHFI9uD$,t HD$@0HH\$ H9t"Ht$`H)H)L HHL)HD$ $ $tDL\$8LT$M HD$H$0HLLT$L\$8$Az(u |$ L$HXt$hHڅtH$pH$0LH$OB1HD$@Ht$`D$,H$pLD$HH$NH$D$H$`AH$ H$PH$(H$X,HHD$ ;H\$XHD$ H\$0A<ӞL$1D$8L|$ D$@NHDŽ$ABHHLMIEH$HL|$Lt$L\$8l$`H)ZHL$I4 LT$xLD$@LT$xLD$@HD$L$HEHALDƒtnHT$HHJHHRHQH ++HL$@HHt\DHHL$B II)L9rHHL)H)H$( DGHDIGH$(HIHA@u IH9ps.LL\$xLT$@LD$ ML\$xLT$@H$(LD$ IpIL$LT$xL$H<HL$@LD$ ]LD$ H|$ILHPIHPHGH$(HH)PH耴H|$LD$ HL$@LT$xHL$G t  H$(HD$IHD$HD$HHH$ .L$EL$?LL$0L$*{({EЃ<<C<E1<E1{AICE1DJA+M{)CHHt (HC@LCHHH+KHHKX@HCHH9HF1҅H9H H)L)W?VAH5MP1}HSHA^XHXHC@L$HH)HSHCXHH)H;tH9CHFCH9HGH)HU‹|$A UAU'f.LK0LC81H5H=E)ˮH+HHH1HIHxHHv}HvnHv_HvPHjHHv6H]v'HH^HHMDH,H8iLF9HphM ,D$DD$XH$HB|$-Ht$H$LD$`L{H$LD$`L8J4!L9HL$H=IH= D$\EˆD$\fDLK0LC81H5H=E)賬@7HChH$HHChH$L$|$\H4EȈL$}DLSHxL<HhHChfBT@LK0LC81H5LH=3E)H)E1H)L)]LK0LC8j1H5 H=E)輫@LK0LC81H5H=E)蓫MHǃHˆT$GD$-;DA 1A D$HE$AHShH$@,HC@|$)lYID$L9H$HHHHSM HH 5,H,281L$GEʈL$GHFHV ND$t$F<8HShH$E1H,TL$THj@)HC8H)L)Ll$8HHL)HLH9HGL)HHI4H LL%5HHL$8D$XID$(HD$wHChH$D*HChH$fDH$HChHP*4HHHL$ Hl$ H$LH苭D$*L4LHL$L$HD$HL$0GID$+IM)HHH)QHS@:?HCHHJH7H)HHKXHH+CH;SH,HHH@@H;;,@H@@H;(,HpHHvy@tsH{Ht cHHt MHHt 7HHt !HHt HS@HKXHBH+CHDHHCLKH9HHFE1EAH9H)L)4IHDѿVH5P1ARuHSHH HHC@HH)HSHCXHH)H;H9CHFCH9HGH)HfDHH$IM)oHH)6HL)H HIH)!|$)HHшL$GJD$GDD$X IM)g HH)L)H11AA ǃID$L9HWG Ht$HCHNL$|$GHChH$D$2HH$H)L)LK0LC8m1H5}H=E)若HHqH,Hc40^H$H$HL$舟H$H=LcH 9HS@DHED9HF$HH0H w"HfDHHC@HH0H vED;\DA9EH{Ht HHt 誗HHt 蔗HHt ~HHt hHsHC@H+CHHCXLCH9qHL)HH)bD)D$HB<*T<4LB|$G ƃpHEH$HC@M)1AHS@H8HR隿 Hk@ $_@wH|$yb DH{HC@Ht PHHt :HHt $HHt HHt HKHC@H+CHHCXLCH9I1M)‹1҅H=H9HGALP1VH5 R`H{LcL+cHt ~HHt hHHt RHHt HC@H$LHk@HH$FH{Ht kHHt UHHt ?HHt )HHt HSHC@H+CHHCXLKH9vdI1M)D1DT$(E@HH9HG‰DP1VH5W+LK0LC81H5tH=~E)FHL)HIH)덀|$.t|$,|$GHChH$D$1HLK0LC8LѺH5#tH= 1E)ЛL}LD$L)nANLD$IIFMHH/, HHuOH HHt?-(1H0H IL9,HC@H,AF%H=Hu#IFHHC@H HHt}H{M{L{@Ht -HHt HHt HHt HHt ՍHSHC@H+CHHCXLKH9v9I1M)1DT$(U@H9HG‰DP1VH5WHL)N HIH)L)I1AH)L)IIV'HS@<{D$_ʽT|$. D$^D$]D$G [HLL$L$mH{Ht ȌHHt 貌HHt 蜌HHt 膌HHt pHsHC@H+CHHCXLCH9xHL)1҃H=EH9HGAH5,vP1UИH{IEHC@Ht HHt HHt ًHHt ËHHt 譋HsHC@H+CHHCXLCH9HL)LK0LC8g1H5`pH=GE)HL$|$^IL$0߀SL$GDD@|$^L$G=L)I1)LK0LC8LѺH5oH=1E)褗MǃD$GDD$XD$-5L)I1A&A HCHIKH$H)HHKXHH+CH;Hi,HHH@@H;,@H@H;,HpHVH@H{Ht L\$(DD$ L\$(DD$ HHt L\$(DD$ ׉L\$(DD$ HHt L\$(DD$ 證L\$(DD$ HHt L\$(DD$ 胉L\$(DD$ HH$ L\$(DD$ UHKXL\$(DD$ HC@HsHH+CHIHHCH9LFE1ɃAH9H)1AHLLLEHT$ASARHWAQH)PH1VH5cHSHH0H)HC@A HH)HSHCXHH)H; H9CHFCH9HGH)HHC@AH0H .LK0LC8Q1H5'mH=E)֔HD$HtHqfycbeH|$OybEHL)EHH)wHL)yLK0LC861H5lH={E)CLK0LC8!1H5olH=VE)-u ANI~H0H GHH0H vH{@H{Ht &HHt HHt HHt HHt ΆHsHC@H+CHHCXLCH9]H1L)1҃H9HGAH5rpP1WH=,HHD$ LcHD)Aą5M#IAHC@,HF$Ht HHt HHt HHt ΅HHt 踅HsHC@H+CHHCXLCH9v5H1L)1҃H9HGAH5oP1WH=wHL)HH)Ht$ H$)LcLCpLLD$(nLD$(HS@H{Ht HHt HHt ΄HHt 踄HHt 袄HsHC@H+CHHCXLCH9vLH1L)1҃H9HGAH5DP1WH=aHL)-HH)HL)HH)LK0LC8.1H5iH=E)贐ID$L9'Ht$D$^ID$]fssHN鐴L|$GD$XDX(LL\$(L\$(IHD$0L˂L\$(LS@L|$`Ld$hILt$pMLMHD$HHl$(?<H ,ImAEHH;\$(wKD>H9)Ll$0IH;\$(pHt$HLHI+L$@L)H A$tIt$8HALH$aH W,H$LHwLK0LC81H5gH=sE);A 諃HD$hL)HL$`LK0LC81H5AgH=(E)LK0LC881H5gH=E)ˎLK0LC81H5fH=E)覎H$H{HC@Ht ׁHHt HHt 諁HHt 蕁HHt HsHC@H+CHHCXLCH9H1L)1҃H9HGAP1WH$H=9܍H)HH)H LK0LC8>1H5eH=E)蠍AAEG AL9vEQAMcAFEAAAEG AL9vEQAMcAFE DH9DAx4aH$H{HC@Ht HHt HHt HHt HHt HsHC@H+CHHCXLCH9?HL)%HH)0LK0LC831H5fdH=ME)HL)yLK0LC81H59dH= E)AA}EG AL9vEQAMcAFEAA;EG AL9vEQAMcAFEDH9DAx4[>@D6H9vDEHD2D΃A@D6H9vDEHD2D΃Aa4H9~*H$t%HK8H)HH5*,H9HLH{HHC@Ht u}HHt _}HHt I}HHt 3}HHt }HsHC@H+CHHCXLCH9HL)_LK0LC81H5aH=E)D$^LD$]D$hLL$ D$(Ll$HD$HHD$`H$1L$LLLL$xL\$p WAELL$xH ,H$ 1MTH9HL$0LL\$pH)H Ѓ߃A<!HH$H,% @= @cHs8LLLL$xLT$pDdZLL$xLT$p1L$HT$0AIHI9r I9sqH@tLH)H :@A@F@H@Iq@J@Sq@TNW@zI9s6LH)H 1@F @@ @ HT$0HL$0H5,Hʄ|$(eHD$HL)HHЉD$(6H|$`菇H|$H腇HD$HD$0ܣ$MM@  L$L[@gǃH{LcL+cHt yHHt yHHt yHHt |yHHt fyL qI~ AuL 1LCLHc$1H=Ӆz\I9HH{LcL+cHt xHHt xHHt xHHt xHHt xL I~ AuL J1LCL‰H=1:@F@Sz߃S@HI9rwLd$IML+d$ |$hL$n+D$ D$(HHH A}IEHH+T$01H HT$0IHH)H=7I9s!HzII)I~z@FHIMFH|$`L\$螄H|$H蔄L\$.@a@@N@@@1r@tG@r@t@t @zzr@zzZr@@@th@zz#r@h@;@@SzIz?z0r@A@@A@r@@@tz@r@t9@zUzr@N5zr@tU@szir@tI@PzFz7z-rHƀHzzz߃S@@zmzzTz߃S@>@z%zwzm z^zTr@tU@;z1r@tA@zzzzr@@hzzOLK0LC8I1H5DXH=+E)L9L$0HD$0L9vPHtHD$0Ѓr@t2@z|zmzczT1vH{LcL+cHt gHHt gHHt gHHt gHHt gL I~ AuL L1LCLHc$1H=sH{LcL+cHt 4gHHt gHHt gHHt fHHt fL I~ AuL 1LCLH50H=yK1JsHH$H5jK1H=sLK0LC81H5FKH=-E)rLK0LC8b1H5!KH=E)rjH5KH=-1rbH5JH=rLK0LC8s1H5JH=E)yrH5JH=ֻarfAEssImdML|$`Hl$(LLt$pLd$hLL$`D$hD$(LK0LC81H5LJH=3E)qHH53JI1H=SqLK0LC8H1qH5JH=E)qIMHD$(LL)H)M|L`fIHI9w0H|$HJ4L9fHD$HHKX_L{H5IH=1qLK0LC881H5]IH=DE) qmH5BIH=ip AU8H5IH=ApsH5IH=)pLK0LC81H5HH=DzE)pqH5HH=1upr߃F@IzzpLK0LC81H5eHH=LE)pLK0LC81H5@HH='E)or߃F@nI_zUzKz3fDA~ tH tTHHHD,$A+-A!uOHL$H|$XL 4LeA- HL$H|$XLO_DA&HL$H|$X1L*_I]IMgHXH\$PLH5<<T$DL1LD$8HL$H5 (;f.MHL$H|$X1L,3uHH4HHt<#< t H9,$HtXI9~VIEHxH5?L+<)fDH5;Lf.AWAVAUATUSHHH-HHJ<#Ht$7(I?Ht$IHMNHII@01E111HHu7I)MHI9KIHA0L @HHHH)IH9wK1At.IvI}HIH;:iIDH9(I9HL)HSH9EHKtI|H $>HII<Ht$I>Ht$Iu M0MOIIIA@0M1E111GD HMHH҃tFHHu OI@H9L9MLM9sHHH҃uHuOIH@1HEH[]A\A]A^A_fDH]FH91HtDwH}IHHPAt$FAt$H[]A\A]A^A_3HEH[]A\A]A^A_è2H9WL95Hv7H)HHH9AKHt$IMOHIIA@0t@HI$ H@I $HAHH HBHAI$I|$HpHH HBA8ID$L}AIWH>IHA0L @HIvHLH)H9wKKHHE1H9u|HHg:AHDfHt[AJ0HH)HtJHvAJ0E1t.H411H>uj,dH%(HD$1FHD$<u.AFƒeHHRHDLhIEH@HM}M'ML1T$E1HT$HD$HDŽHAAAFE1<A~A~atuEi:H|$HxIH|$Hxu11q'HD$HHa,HL$1H0H|$fDMtHL$ALH|$HD$dH3%(H(H[]A\A]A^A_Hd,HL$H09AFH|$<M~E11ށ^AsہA؃rfDىA sڃuߺE&sAHD$HǁvEGA~H|$DE11HHD$HE1HkHHHD$%HD$HD1&H|$Hx0 H|$H$iiU%HD$H6HH1HHD$%H HMgD@Hxb,HL$1DD$H0L H|$DD$@g00$HD$HII$HD$HIEHxjMgaHL$DD$Hi,H0 H|$DD$q/Hi,HL$H0 H|$ff.AWAVAUATUHSHHL%}e,BA<H(HE1E1I1Et8EA<t%H{0HHK0L1[]A\A]A^A_ Df}uԐAt͋S( U(S(H{0t1A tS(EEAMADD !9uH1AA$#D#c(E!HC0HDc(D2EAfzt.H(H2}It%DA@Lj0D1ff.fHF0HH@(LF0IHBHu!HB(HF0HH@(1DJ0HHJ(L)H9vM@LO LALB(ML9w*MuHF0HH@(u$fDHHJ(O Tt1~(?ff.AWIAVAUATUHSHHL5Zc,BA<H(H{I 1E1D mCA<HLT$T$CA<_Le0E(tC(E(H[]A\A]A^A_fD*DfzH(HֈL$KL$I1{tDD@AE ECA<uf{tcH}01HM0L3AE(H[]A\A]A^A_fEC1A<f{ADHLDDE(H}0HM0#C(E(HL1[]A\A]A^A_@DU(EDC(E111fDDt A ߃ڃuD!EADEDU(btiLb0DI$H@(Hs0HHAHy0HH)HHA(H9HvL H-AA9IHcҋA9=LGHt$DLHHQDHMؔLLQޔMOh1K<5DHLL)HHQ骔HL)HH)HL)HH)GIHIG@Ht IHt sIHt ]IHt GIHt 1IwIG@I+GHIGXMGH9H1L)1AL$H9HGALP1WH=+MO0MG8a1H5H=mE)e+MO0MG8K1H5H=xmE)@+HL)HH)mL麌H5\H=t+<dIHHK H@ H=<1*H{LcL+cHt IHt IHt IHt IHt L EI~ AuL dM1Hct$xMGLAH=1*oH=m1*H1IG@Ht*H5)L#IG(HH@HlE_L1CIMO0MG8 1H5H=kE))MO0MG81H5H=kE)l)IMgM+gHt IHt IHt uIHt _IHt IL TDI~ AuL L1IcMGLAH=01(MgM+gHt IHt IHt IHt IHt L CI~ AuL QK1MGLH5AH=61(MO0MG8! 1H50H=jE)'AGH)LH5Al(HDIG(IH@LdEHL$PHD$HUHL$PHD$H鞴1龱1DZLAIIGhBUX%H٣K%HMO0MG81H5oH=ViE)'MO0MG8.1H5JH=1iE)&MO0MG81H5%H= iE)&rH=HT$0oHT$0HtHD$LIMwpIW@HT$HDHHD$D$ `'IGhHxou[HQ-ITI9WpuBHx1H|$ H|$ HD$pHtwXwIMwpIHt AIHt +IHt IHt IHt IwIG@I+GHIGXMGH9H1L)1AH9HGAH5P1WH=F%H\$rMO0MG8 1H5fH=MgE)%MO0MG83 1H5AH=(gE)$LHHpvpI@HH@ tI@IHt IHt IHt IHt IHt IwIG@I+GHIGXMGH9vcH1L)1AH9HGAH53P1WH=N#HHh o1ҾaL>IG@IHL)HH)HH-L M]I$HHL-HHlI-I$H ID$HC`HHHS`I$HI$H@I$H@I$H@AD$ _AT$ AL$ I$LH@ID$MLL0 MeIE閰~HL)HH).He KAqIEH(HIEH;-LIAH8HG HHH+4-HHHG t\tHG@ HH@1H|$(H ;-H|$(LA-HmHtEIIuH@HH9I+0HH?-H?HwH0HvI0H8H?HH-H@H8G H|$(H 7-H|$(LJ>- ILL$(HHHAIEH$hHHx LLU$$hH$B8$lB3-Ic|HcA( HE1E1E11HDŽ$D@Ef>U@?@[@( McFA@@<@<BDB|HDHH$~@o@Dπ|t!HcFt!HD@EUAFu11BDB|HDt@*t@4uvHHHsf6HHA5DA%DDPA(DA@uDVEkA@(A)gH$D$ <DH6+-DЃVD؃<HAAEt E<4A>HDtHHH@<I^$ AÁ AD 8AAAD ЃFT|HT<*b<4Z6HHHH$VADA)A8HAVHDHxPl DH)-DЃH1AA!Eu1H= 11 1H=z H$ 1H=d H$H Ƅ$H$H$ H$H H$ HD$`H$H$H:HT$xH$H$H$H$LELd$HL$pL $Ll$hH$jjLPjjjLL$80H$H0$hJHt$L1LL$HAH$l$LHD$MID$I?HcEE HH@HL$HH$HHt*H$H6HvHtH$PH9$ A(AAHuEt$$ MA@  LINI@MMP MWIMtMIW M+GLH)IND(Ett$EI?H$HHHIOI+O HHNH$IOHHHHI9Gt#H$HIw HHH)tI@I0Hl$LH$HHt@<wHH$HHxq HxttH$~ H$H$H9@H$@HHHHH|(H~xHH|H~hHH| H~pHH|H~XHHDHF`H9vt @HHzhEX`MXHJhHHz(o EXbH$AD VD|HDtT*46HHHHDvHHHHL$pLl$hL$H$jLjPjjjLL$8&H$H0$y@ A<<A&UvHHBAEEtD$ Eu$! gH$SHcIHPqrfAA@')U с tIH5)-H6F8ul t9Ht$PHHHD$$HI utHUBtHHBtH*)-HB8tfH;= -PLyH '-L;.-H$LHcH$HD$`1H(-)H$HE`s {M\mAk@<Iz$pX@pX$tHXB$~IH$H$($HH‹rHH+$HHB$$h9$lHcHc$hH$H1H$XH$hHcH~7H$PH$HHc HL)xTHH)D1EH9HGAH5 :P1WH=XH1L)@HD$PHE@NfLM0LE81H5H=4E)[LQHU8}HL$LU@LL)LT$RLT$HL$HH$Eu9Dž%pEtxAM 1DH$AL)HH5T -HAHHu'IHE@HAHHtH$IL9w#fIM9AC%H=HtMM)IA:UAz+HD$`IH\$0E1HD$HD$LHD$HD$XHD$ HLL LU@MHD$HD$(Ll$8ILHHA LL)D$TAHD$`jxHT$(HL$Ht$0+HHD$hY^HIE@IE@HH9@H|$LMIH$HHE@7fH}Ht mHHt WHHt AHHt +HHt HUHE@H+EHHEXLMH9v9I1M)ȋ1@HH9HG‰NP1VH5?W3 HL)HIH)E1L`M&Hu@E1E1 DLLT$JLT$HLA@  HD$`LǺLD$HgLD$Ht$`HA@ 1% LNtH - HcI9MctPHs-DHH4Ht4HD!HH9vfHH?H H9uIM<_oH$HE@EH}HHE@Ht VHHt @HHt *HHt HHt HuHE@H+EHHEXLEH9qH1L)1҃H9HGAH5NP1WH=S\IHrHt$`IxqMHD$PHE@1,.9HHH9,H|$(9HtjM)H=GIǹH5LIU@LLL)LH5IE@L`HD$Me@I9ILH\$0Ll$8MH5LQ@LM0LE81H5tH=[.E)#H-LMIHH-HH -IH ICHA`HHHQ`IHIH@IH@IH@AS %_AC  AC IH@ICL`D1H}@LHD$`HD$`EHH|$`IH$H}HE@Ht [HHt EHHt /HHt HHt HuHE@H+EHHEXLEH9v6H1L)D1EH9HGAP1WHt$pH=PdHL)HH)뾃 A EH5HLD$:LD$]HL)1HH)HtHVM<HI$H*LLT$L\$L\$LT$AC LM0LE81H5H=+E)zHu@E1ɹ$DH`HD$zLD$H3H=M@L= L\$LT$L\$LT$H -)LT$LT$IcLM0LE81H5H=*E)I}MLHt L$$L$HHt L$L$HHt L$L$HHt L$L$HHt L$yL$LeH]@H+]HH]XLuL9RME1M)HT$X1Lֿ1҅ML9HLIGAH=N1SAWIE@LH}Ht HHt HHt HHt HHt HuHE@H+EHHEXLEH9v5H1L)1҃H9HGAH5OP1WH=VMHL)xQHH)AILt H - HI9LCL]@HL)x3MII)LM0LE8^1H5̾H=(E){LM0LE8d1H5H=(E)VD$1GH}LeL+eHt ~HHt hHHt RHHt <|,$H{Ht HHt HHt HHt HHt HsHC@H+CHHCXLCH9HL)V5HH)Nj1҅H9HGAH5P1WH=oJIFH$11HHC@HߋD$ PDqL$=ZY$ $@Ls@HDŽ$7 HHHHHHHGHD$8HHkpE1HChHChH$D)HChH$fDdH$HChHCpHP* 4HHHL$  D$(D$XHD$0Lt$PMHk@D$GH$t D$GHD$ D$_E1ID$^L1nHD$D$\D$]D$)Hs8L9v\D$(HD$HI9sNHDŽ$AE<.~[<"`IcL>D<#FHCH2MIl$HHHH+t$8xM HChH$DHHk@ HH$H$HW3 H$H$H$1HHs8H$L7hH9vPրP1WH=m>L$=HL)D&HH)Nj1҅H9HGAH5ԴP1WH=>1YL6cf.M.MML$S@HHD$ gfHD$8@AD|$)}|$***|$^:|$_:|$-*1HChH$|$,H,3L$.u|$\5EȈL$fD$BH$HChHP*$4$D DHkpEt5H$HChHP*)4)@HI-I9,#D$] $H$HC@GfH$ʼnƃ D$1 DHX$D$Ń  Cx DCxL@HHShJL$BHShlHShLL$@HShD9X#fL HShAfDdH{@HCHL$pHT$hHT$hHD趲HL$pH9s)HT$`>H)H>wHJHH5H H6HSHH\H$HH)HHKXHH+SH;H,HHHR@H@H;k,@@H;_,HrHHv}BtwH{Ht HHt HHt nHHt XHHt BHKXH$HSH+CHHȋLKH9HHFE1҅AH96H)L)H^IH1DѿVHRARH$HCHH HH$HSH)HCXHHH)H;oH9CHFCH9HGH)HPMu#L9k0AEHAHq#5HD$PHI9v AEHAHw A}\4HSHIMHZHCXLCH)HL)H;H ,H HHI@H; X,@H@@H; E,HqHHAtH{Ht |HHt fHHt PHHt :HHt $HCXHSHLCH)H$HLHCH9HHF1҅H9 L)H1VAѿH5<4P1ܚHCH]ZH$HHWHH)HCXHHKHH)H;~H9CHFCH9HGH)HL9k@qHsHIMHX[HSXLKH)H L)H;H ,HHH@@H@H;,@H;x,HHHHv}@twH{Ht 賾HHt 蝾HHt 臾HHt qHHt [HSXHsHLKHH$LCH)DHTLL9HFE1EAL9@'LH)L)IXHDP1VH52ARHCHH H$H#HWyI}H$AMȀzLEXIcL>H1L)H1L)f1ƒA U AUƒ|$K&L>HCx QCxFD$xfDH$H\HH9+Hƺ̃HH"L$X)L9Ll$11L7LTHHL)IH$D$\AU D$O AUHChH$HL$|$\3EȈL$@H!,Hcɋ@@ +ƒHAHw A}{*HKHIUHHVHH)HKXHH+sH;2Hf,HHH@@H@H;,@H;,HpHVHvu@toH{Ht HHt HHt HHt κHHt 踺HKXH$DLKHBH+CHHHCH9HHFE1EAH9-L)I1HDѿVH5i.P1ARoif.Ls@AT$E1E1H$HHjjqP蜞H$H‹$H HQHC@HHC@fHL)Hx{vHs81Hx_H{HC@Ht 臹HHt qHHt [HHt EHHt /HsHC@H+CHHCXLCH9vHL)V6fDHH)eDLc8g+ AFMFL<{)1E1<-u I~E1H{@H$H$L$LL$L$耿tH$H+HC@H{H0H ?2Ht OHHt 9HHt #HHt HHt HsHC@H+CHHCXLCH90H1L)D1EH9HGAH5(P1WH=*RAEH0H L$H$H$LHT$hLT$`ULT$`HT$htH$H9s 9RH$HLA1HDŽ$ADŽ$Jj>H$H$H$HH$AZA[$@HT$`H0H |jHT$`HCHHJHWRH)HHKXHH+CH;6H^,HHH@@H@H;,@H;,HpHVHvu@toH{Ht HHt HHt ܵHHt ƵHHt 谵HKXH$LSHBH+CHHHKH9HHF1탻@Ht$pH92H)L)HL$hHPHD$`HK8E1AH$LT$x貒H5,(AQH1t$xt$xUL$L$MLHSHH HH$HH)HSHCXHH$H)H;H9CHFCH9HGH)HcCOHH$HC@7H$H$HC@tH{Ht 1HHt HHt HHt HHt ٳHKHC@H+CHHCXLCH9I1M)D1H=&EH9HGALP1VH5U1DE!H{IFHC@Ht VHHt @HHt *HHt HHt HKHC@H+CHHCXLCH9I1M)‹1҅H=%H9HGALP1VH5$XDSEH{IFHC@Ht 耲HHt jHHt THHt >HHt (HKHC@H+CHHCXLCH9PI1M)D1H=$EH9HGALP1VH5#耾D[EHHShH$HC@HC8MFHH9sAF<< <'%$<{$H{LC@Ht QHHt ;HHt %HHt HHt HSHC@H+CHHCXLKH9I1M)D1E@HH9HG‰LP1VH5)$WH;k8H{LcL+cHt ~HHt hHHt RHHt MO0MG8(1H5#H= E)ҭL)H1AEIcՃH=H -HcH>:AHE!McHH9t1DHILF?A8I H HuH$H)E11E1HIL)H5_1H=IyH$融HPH9G?IGHMg@H*LH)IGXHI+WI;H -HHHR@H;w-@H@H;e-HJHHvyBtsIHt 蠟IHt 芟IHt tIHt ^IHt HMg@IGXLI+OHMGHIGH9HHF1AH9w[H)L)x.VAH5PL(H5܃1H=茫MO0MG8(1H5H=E)gL)H1L(H5H=B1H$HH)H : H2(1HH2(H1HH9f MO0MG8(1H5H=E)˪L)H1LẦ(H5H=裪%H5قH=苪HH)MO0MG8?'1H5H=E)[^'H5H=CHD$PH\$pHIAH)H9DFHt UIHt ?IHt )IHt IHt IWIG@I+GHIGXIwH9v[HE1H)1AAQ@H9HGADP1APWVH5QL$DL$HD$H隃HH)x]II)H)HH)x|HƲMO0MG8H(1H5BH=)E)H&(H5$1H=IԨMO0MG8"(1H5H=E)诨L)I1鈦MO0MG8&(1H5΀H=E)}IO@H(H5H=a龮J ôH$H H$hLAIAGx 1%DT$赓DT$IwbHr-Icŋ%@EAA.AIMO0MG8i&1H5H=E)H-LH8 A3H$HEAA3 AWIAVAUATUSHHT$L$dH%(H$1D$,D$XHG@H=SHD$0TxHŋ@ e% Dd$=@HsHI9IHt IHt ͙IHt 跙IHt 衙IHt 苙IwIG@I+GHIGXMGH9~H1L)fDE1EH9HGAH5pP1WH== HD$eIG@IO8HD$H;L$dr HD$<* 1LLD$ wLD$ HHD$8IGhHIIH8HIGh,HD$ LD$ L%LD$ HD$8IGhLD$ =پHLLD$ AƇsLD$ HD$8IGhHD$LD$ l 똋T$HFLLD$ /LD$ HD$8IHMHcT$HHt$8H4A92ALJIGhSfDD$1A>D$HHD$@>DH\${{Ls$)ALl$E19HAHDFIMo@L9+AE<)-<:tH5-IMo@fDD$xHt$ƒ |$+ Ht$Ll$@ ЉI@D$?|D$PF\$IUIW@I}MepH5-C*L IW(AIEHRHt@DHDIG(AVH@LdA(L诤u A @p\LײDZLIIGhBA貱L$HIGhLLfDAƇtHD$ E1SHH@(LӳIWht$ D$PHD$8ftAIOhVfTfAD$1HL))HH)f.LHT$8I+whDHL%EA}<*sE1@EEDd$EIGhHD$ p@΀|(t%@ol|1HcPHHt$8@HL$IW@t!H)H dH5h-H9HLHIIG@M.E.Ht 衆IHt 苆IHt uIHt _IHt IIWIG@I+GHIGXIwH9.HE1H)1AAW@H9HGAP1APMWVH5QL]MtIHD$xMARKI9o@tgHs?IHt 襅IHt 菅IHt yIHt cIHt MIWIG@I+GHIGXIwH9,IE1I)1AL@H9HGDP1APAWVH5KffDEE$D9GC$IMcAHN4IH4'A1IJ<0D)HcHaIcIHA1IJ<0D)HcH`IcIH賅A1IJ<(D)HcH`IcIHyA1IJ<(D)HcHV`ADH=_ "HtkA>"At"H: H)HƒHrUHl$@LH_IGh=L˪DHLH *I@IEl!Ht -IHt IHt IHt IHt ՂIOIG@I+GHIGXMGH9!I1M)E1H=EH9HGALP1VH5Z-foe'up1HexistentH$upf$He to groH$HD$)$fo('LpƄ$DŽ$ grof$Ƅ$Mw@)$D`AAtHD$Hc-@D,MMo@I9jA|HDHcH>1I0AHt;A(;B}/LcHH?ILjIW0H?HIG@H)I9E@MgIM+gAG@+Ht %IHt IHt IHt IHt ̀L بI~ AuL 1MGLH5AH=le1:Hh1L艬IH1D$D$HHD$@IIMo@Ht 5IHt IHt IHt IHt IOIG@I+GHIGXMGH9I1M)A1҅H=H9HGALP1VH5h6AqIGHH`LH)IGXHI+WI;eH>-HHHR@H@H;-@H;-HZHKHvuBtoIHt ~IHt ~IHt ~IHt ~IHt ~IGXIOIG@I+GHMGH9HHF1AH9>HH)L)HcWA1VH5'RYIGHZYHt;I_@IWH)IGXHHH)I;~I9GIFGH9HGH)IIO8Mw@IG@E'DŽ$DŽ$8^HD$@H9'AD$8AuA?)ADEHH9>D$E1H$L$D$ Aw1BAELI_@OHIG@H9tI;G8s D9;IHt |IHt |IHt |IHt |IHt v|IWIG@I+GHIGXMOH9*"I1M)A>uA<1AAU@H9HG‰DP1VH5W舦Mw@I@1?-u HI@H$H$H$ς!H$H!H$IG@@tڀ8)-IHt {IHt {{IHt e{IHt O{IHt 9{IwIG@I+GHIGXMGH9:H1L)1AH9HGAH5PcP1WH=薇L)H;H@IG@I;G8s 8)IHt zIHt zIHt xzIHt bzIHt LzIwIG@I+GHIGXMGH9#H1L)1AH9HGAH5P1WH=詆I9ACA})6CA A ALJHD$1҃A9$A#9#IIG@Ht yIHt lyIHt VyIHt @yIHt *yIwIG@I+GHIGXMGH9$H1L)1AL$H9HGALP1WH=胅HD$hA‰D$XT$,u %Au.ALJ%ApAtARL%-M,$M59IEI$H-HHܪ-IEH IEHCXH8HH--HSXIEHIEH@IEH@IEH@IEH@ AE IE% @AE HEHxHw-H}H;8]L5 -IL,I$AM HD$H7HI$H,-HH HD$HHpHCXHx7HHSXH\$HHHH@HH@HH@HH@ C HCD$ % @C HEHxH-H}H;8\H\$IH-8 HIG@K H HD$8IG@I9G8Ht$8LHD$pIG@I;G8D$0Ač@D$@DIEHHL$ A-A zAI@tH-HI@I;8^EEtHt-HI@I;8@IHt uIHt uIHt uIHt zuIHt duIwIG@I+GHIGXMGH9(H1L)1AH9HGAH5^P1WH=AEH1HIMo@ AEH1HIIMo@Ht tIHt tIHt tIHt tIHt ktIwIG@I+GHIGXMGH9H1L)1AH9HGAH5r\P1WH=%ȀHAA]I9s?h(*p'< ' IM)I~&H5\LHL$zHL$\RDH1H,=@1t*t!L)H:H-H9HLILIG@Ht 2qIHt qIHt qIHt pIHt pIW@IwM_HI+GHIGXH9FIE1M)HL$1A@H)H9HGH5P1APAWASAAA:ALJIHt ?pIHt )pIHt pIHt oIHt oIWIG@I+GHIGXMOH9I1M)1AS@H9HG‰DP1VH5WHW1LIH MI_@AtH-HI_@H9IHt +oIHt oIHt nIHt nIHt nIwIG@I+GHIGXMGH9"H1L)1AH9HGAH5WP1WH=0{w%L9#M@I_@HL$HCHL$HD$ D$IGHH5H)IGXHTI+WI;SH-HHHR@HH;r-H;m-HZHKHvuBtoIHt mIHt mIHt |mIHt fmIHt PmIGXIO@IwHQI+WHHIWH9ILF1A@H9AH)H)4>L9L AQLTRHWMELSAVLEH57PL1WcIWHI_@H0HHCH)IWIGXHH)I;I9GIFGIO8H9HGH)IM I_@MI_@EG7L9q6I_@AAlMI_@ #HL$H|HL$H<|$8sL9 6E6AAI_@,E1AdJHL$H"q|HL$HD$IGHL$LCH:LH)IGXHI+WI;H&-HHHR@H@H;-@H;-HZHKHvuBtoIHt jIHt jIHt jIHt jIHt xjIGXI_@IWHKI+OHHIGH9HHFE1AAH9g4H)H)64IL9H=4QL5VLDPH H QAPHE˿1RH5L:`IWHI_@H H,IO8`L98|$8 8D$ I_@LD$0A@ D$o'$ƒu$A ‹$t $A!%D A;:-*LE1;HD$1IHIG@Ht hIHt hIHt hIHt hIHt hM_@IWIwLI+GHIGXH9HE1H)LD$@1IAAR@M)H9HG‰P1AQAWVH5QL角Eƒ|$ uƒD$ I_@UE 3L962I_@AAu|L92EA2I_@AAaKAD$< yHcH>HD$HHxN/HT$hHcH9U)HT$hH)H(1LHc8bH#*H8G *% =V&aH|$0L$  L9InHD$x@ (LunI@ (D$ <-z% <& HL$x1Ht$xLLD$ DoLD$ Apo$ApLnHHtpB$pIUHD$xIMHrHD$ HFH9dH;B#HBHt$ H4HD$hHcH9(HD$hHL$HHH)HH(1LHt$ `H(H@ (HD$hHt$ HL$HH)HSLCmAHD$ tMeHD$0IEHpLvL9OL;pROLpHD$0KIEMeHHLqL9L;pl%LpHD$ KI@8Hct$ 1L`Ht/H8G t$% =L^H!L!JsHD$ IEHpMeLvL9uKM)1MO0MG8LٺH5CH=1E)fk\$MHD$8IG@I;G8sx)5HIG@IHt ]IHt ]IHt \IHt \IHt \IwIG@I+GHIGXMGH9:H1L)1AH9HGAH5P1WH=$iD$E1E1PPHD$xPjjHt$0L@H HIo@IEHT$hHHLcL$ I9*L1LVH8G % =UH|$pDdAAH)Hp?Hϖ-H9HLHL)U HIH)IG@IO8H9w fDHIG@H9t H0H vIHt YIHt YIHt YIHt YIHt {YIwIG@I+GHIGXMGH9v:H1L)1AL$H9HGALP1WH=5eHL)HH)HH)III)P<+JHt$xLHL$x1LD$ 6LD$ 'D$ <^Ht$x1LLD$ H$HDŽ$HDŽ$5LD$ 1Ht$xH$L aHL$xH$H$`H$LD$ wE5wH$w5wm<|`Ht WIHt WIHt WIHt WIHt WIWIG@I+GHIGXIwH9v~HE1H)1AAQ@H9HGAP1APMWVH5ѻQL谁HH)CII)MO0MG8Lٺ H5<H=1E)cHH)II)t1MO0MG8Lٺ H5;H=1E)kcH#OvHL)uHIH)HH)FII)HIG@D%@AAEAADD$8I@ AHL)\HH)HD$hA)t I9HD$hLH)HyIEHt$pHt$ HLEIEIG@}mHIG@I9tI;G8s85IHt SIHt RIHt RIHt RIHt RIWIG@I+GHIGXMOH9bI1M)Ȁ>'D1AQ@H9HG‰DP1VH5W|IEH59LHL$wXHL$AdI9o@ 1LOxIAN$H Iw@HH)cMwhLH5)HMAFIG(IWhH@BT"HlIGhBIGhB\ IMo@I9BIHt EQIHt /QIHt QIHt QIHt PIwIG@I+GHIGXMGH9 H1L)1AH9HGAH5P1WH=J]MO0MG8 1H5v5H=]E)%]MO0MG8 1H5Q5H=8E)]HD$IG@I I I H57LHL$RVHL$1AtIHD$xTHENAjI9o@k IHD$xSKIPhItI|HD$xFAILjcIYH56LHL$U3imHL)<2HIH)I H56LHL$Ht H@ aH|$pHtw3 wIHt 'CIHt CIHt BIHt BIHt BIwIG@I+GHIGXMGH9C H1L)1AH9HGAH5P1WH=,OHL) HH)_HD$fxsrTHLHD$HO6IMIUHD$H:L:IHI_@Ht AIHt AIHt AIHt AIHt AIWIG@I+GHIGXMOH9I1M)1AAS@H9HG‰DP1VH5WkHL$xH+I+*IjHE1jA11 O]A\H"HXH"C "% =)H9KHHC1A94tGHH9|Ht9HHrHCuH9rs HGHHBAHH@ LnY鈧HL)'HH).MO0MG8 1H5%H=E)LHL)%HH)'MO0MG8?1H5$H=ɎE)LLL3MeIE|( U5o ,HD$9L)1MMO0MG8d1H5s$H=ZE)"LAMO0MG8 1H5C$H=*E)K( 4+I1KH-fv-ѴL1A: XD$HHD$@DIIHt =IHt =IHt =IHt =IwIG@I+GHIGXMGH9v[H1L)1AH9HGAH5P1WH=rJMO0MG8w 1H5A"H=(E)IHL)HH)A]IIG@Ht =IHt MO0MG8& 1H5H=E)>MO0MG8" 1H5H=E)>MO0MG8 1H5H=E)_>-@IHHHD$@%MfIHD$@oH=1>IHT$0Ht$LMo@)IGLAsXAƇsL$LHT$xrIHŋD$x`WDd$HLLADbHL0XDHLHobAƇsRLO H5H=?=HD$@(HD$@W1AƇsHD$@D$D$H鶙LxI_@IO8LMO0MG8] 1H5H=E)ED$D`uMO0MG811H5H=zE)81HL)xHH)M1MO0MG8*1H5H=zE)f8L] H5H=K8MO0MG8"1H5wH=^zE)&8H1H)aMO0MG81H5EH=,zE)7ILMo@EHH@H$H$H$11҄uH$H=aPH$IG@MIMo@;L1ҾcQLIC@A<IHt z*IHt d*IHt N*IHt 8*IHt "*IWIG@I+GHIGXIwH9 HE1H)1AAR@H9HGAP1APMWVH5QL6T1ҾSLPHt$DLHT[tIG@LD$BD$xtHD$E1|$|w|$) IIG8I9G@Ht @)IHt *)IHt )IHt (IHt (IwIG@I+GHIGXMGH9H1L)1AH9HGAH5]P1WH=E5Ht (IHt p(IHt Z(IHt D(IHt .(IwIG@I+GHIGXMGH9@H1L)1AH9HGAH5ˑP1WH=4EA98IHcҋH$H5H$H5ړHD$HHxIHt ]'IHt G'IHt 1'IHt 'IHt 'IwIG@I+GHIGXMGH9fH1L)1AH9HGAH5P1WH=b3IEHxL+.HHp@ u<tuuMIEHxyIH]-IG@LMopHHL:KIWhJBIWhHlIWhDoIWhfDI_pH[LNI$H@H$ID$N0HH)HHF(H9~H}LHLLN(HHHD$xHH@a H$t=IG@Io8H9H T.fHIG@H9tHHtIo@ED$0<^ H|$G |$s<]ᆳD$[E1D$\D$lƄ$DŽ$HD$8HD$PHD$pHD$HH$H$HtHHxxH9$t:IW8H9v1H S.@HIo@H9tE%H=HtIo@H;l$Y}]OH$H|$HH$zEDmEHL$Io@I[HuH;$$u |$h I\$Iw8H9R/IHt IHt IHt IHt IHt IwIG@I+GHIGXMGH9.H1L)A1҅H9HGAH5P1WH=8#H$HtHHx MHt$8HVAL$Lt$HH$H$(HDŽ$(LHD1IH~E.H8>H$(HH@(HHAHH$0H\$fDq0HHQ(H)H9hHL H HVHHw H$ H$AUHL9KHt$ tH$8AM4AAƒ{HwI9o8HMHL$<]zH$D$[E1HD$PH$ᆳD$\D$lƄ$HD$8H$Hl$pHD$HDŽ$HBD$(HH B D$(H=%(&HIG8HD$IG@HD$ IG0HD$(IH@ LcL|$0AI]HH)HL$fIH;\$HLL#%tIL;h IFNHIDI>HIH\$+Io@ED$[D$t ALJ|$ D$\\$lu AH<%E1H$ttL$M HtEAH.H4H$H$DL$HD$H .}=tL5I.4LMI($|$h~H *.IcDiEAL ).I4IHD$@ rI8AHE!McHH9v1DHILF?A0I HHuH)H$E11HE1H@Io@IH$ID$lu |$0|$L /).H$ HDŽ$0A"HDŽ$8HD$Ll$PLL$`Ld$ EL|$(MA D$0Ll$`1D$HA"fLl$IELt$1HtWAt1D$\uI>HD$H0t+Au9\$H|$[yH$ Lt$HIHxAH$8MLd$ Ll$PL|$(HtwQwH$0Htw6wl$\|$[T$! fQH$@HwH$`HH)H=~8Iv!AMt6HD$@ ifDHI.HHH\$<|$01ҾcL7AcI&IIHt "IHt IHt IHt IHt IoI_@I+_HI_XMoH9IE1M)E11H$1EMH9HLHGAH=m^1SAV IG8Ht4H9H &. HH9UHHtH9}]yIo@A[N|$hoMHD$pII)H9DGIGHHxNHH)IGXHI+WI;lH !.HHHR@H@H;.@H;$.HJHHvuBtoIHt 6IHt IHt IHt IHt IGXIG@IWHIGI+OHH9HHFE1AAH9,MH)1APDVH5JWAQRDPL$1IGHH0Ht;IO@IWH)IGXHHH)I;~I9GIFGH9HGH)IH$--HD$PIo@H$L$ HL)zIII);JWHL)R HH)dH$8L$H$AfEEEtFDHL$Io@' Ѓ0MO0MG8(1H5H=7E)H$H9$H1HH>.HH8+HAH$1H$H$8H bH9$A$60H$Hl$PIo@H$hAAH)E1H.1H$0LH0H$0HHBHtR0HH9H$8Htw9Kw1LL$8PHt$ H$8HHL1H$8H$@uH$` JD$lu |$0 1HW IHBHyJ0HH)huHHIFH@HHF|$|$[ MO0MG8Y'1H5H=4E):'H$$HEH^UH=]HFƄ$\@Mg@ƄIGHHFLH)IGXHI+WI;TH $.HHHR@H@H;.@H;.HJHHvyBtsIHt IHt IHt IHt IHt vMg@IGXLI+OHAHIGH9HHFE1ɅIwAH9H)IH)HHL$pHLWAPH)AQVH5GP1L$FIGHH0HIO@IWH$H)IGXHHH)I;I9GIFGH9HGH)IfMO0MG8%1H5lH=S2E)L .D@L$\Hq. T$lDI4H$8L$[H8H$H3 H$8H$1HAH$8w3 w{MC HB(IHBH 11IHB(IH@(tLgMO0MG8A(1H5OH=61E)H$IGHMg@HP@LH)IGXHI+WI;bH .HHHR@H;.@H@H;r.HJHHvyBtsIHt IHt IHt IHt kIHt UMg@IGXLI+OHMGHIGH9HHF1AH9?H)L)?VAH5BP1GIGHA[]Ht;IO@IWH)IGXHHH)I;~I9GIFGH9HGH)IH$H9$D$Eu`H$H0H wHEH H$HaHwHEHH$HAHwHEHIGHMg@H BLH)IGXHI+WI;H .HHHR@H;k.@H@H;Y.HJHHvyBtsIHt IHt ~IHt hIHt RIHt Iw8Io@1I@AH$8H$PD$PPDL$xL$@HAYAZTIHt IHt IHt mIHt WIHt AIwIG@I+GHIGXMGH9H1L)1AH9HGAP1WH$HH=OIw8Io@1I@AH$8H$PD$PPDL$xL$@_AX IHt IHt vIHt `IHt JIHt 4IwIG@I+GHIGXMGH9HL) HH)L#HD$lL .HDŽ$8ljƒHclj|$I4H.L$(H$8H86H$8L1TH$8wwD$(0D$0LD$0D ADT$\$DT$IIGhBH$tL|$(EEALDT$EDT$IIGhB,H$8HtwwH$0HwI?wjHCHMHWOA?A3IA)At ILMgpDT$HuIGhDT$JBIGhDTIGhfDHEIOpHHDIGpIGhHH*4IWhaDjD$0aqHCHMHuH.LT$H8Hx3T$u*HIH$@H9$`PD$\fH$8H$l1IE1r0HH)HHB(H9I~LHLLJ(HLH9H .%@=@I_|$hIHt yIHt cIHt MIHt 7IHt !IWIG@I+GHIGXMOH9I1M)1AAT@H9HG‰P1VH5h*W$;IGHMg@HLH)IGXHI+WI;H .HHHR@H;-@H@H;.HJHHvyBtsIHt 7IHt !IHt IHt IHt Mg@IGXLI+OHMOHIGH9HHFE1AAH9H)L)IUDH5)RP1AS$蒤IGHH HIO@IWH)IGXHHH)I;I9GIFGL$H9HGAH)IWLC'H5H=MO0MG8C'1H5ҭH=E)L)I10MO0MG8'1H5H=E)OL)I1HL){MO0MG8&1H5bH=IE)HL)*HIH)KMO0MG8)1H5#H= E)f)AgIG@|$hHxdH$8I@A1HDŽ$H$DŽ$8JAPAjH$H$IG@HIG@AYAZH}At%IO8H)HH5.H9HLIHIG@Ht ?IHt )IHt IHt IHt IwIG@I+GHIGXMGH9H1L)1AH9HGAH5P1WH=9DH$8H$HDŽ$AI@ADŽ$8JQ1j蓥Io@H$H$HIo@^_H$8@I9o8EH0H IGHHMHH)IGXHHI+WI;H -HHHR@H;3-@H@H;!.HJHHvuBtoIHt \IHt FIHt 0IHt IHt IGXIW@M_IoHJI+OHHLL9HFE1AAH$IO8L9I)H)IH$E1EL$ IMDHPH57$L$1ASAT詺IWHH HtH$L`H$L`HL)HH)H$H$P:D$0L$IIMg@Ht GIHt 1IHt IHt IHt IwIG@I+GHIGXMGH9[HL)1AH=,H9HGAH5P1$H$H$H$8GHH@HH^I@YHLhIMtJ<HHH@HEHUH@E %DE H -8tzI$H@HHL՟HË@ % =taH趲HHvAH5H1ksvRsAD$tLMHH|HHP At$v(At$LLHiIH虰L菰H-8tE11ɺt1H={HLcIHD$@`銱H$$H$L`H$8HH0MO0MG8^&1H5xH=_E)'HL)wHH)H$LDT$軯DT$~H$8HH1H=1I'H$H5 HH1ۜLLHIoFMO0MG8^'1H5H=E)\lHII9HBIFHH$11E1HH)H$D$[H$11LH|$$H|$D$A8tsw`\$[))ډ@@8vƹ@@8v8Dl$[AAA Dl$[HD$@ ~uDl$[AH)HH9HHFHHH8u HHH9wH)IHAHuH-LMgppqHHXIGhJLBIGhDIGhfDIGh$B IWh$HiHCIGpADl$[鲴R0HH)CINHHH$1LdH1GAH$ID$[MH)ھL) 711HH$I11HH$$IWh:$tDl$[A/E1bAWHDŽ$ A A&HDŽ$ A A AHDŽ$ A AA HDŽ$ A A鿴HDŽ$AA餴A鯭IG@H$0H$8H$(8AIW@t%IO8H)HH5-H9HLIHIG@Ht ձIHt 迱IHt 話IHt 蓱IHt }IwIG@I+GHIGXMGH9IGHHLH)IGXHI+WI;H T-HHHR@H;-@H@H;-HJHHvyBtsIHt IHt IHt ҩIHt 輩IHt 覩Mg@IGXLI+OHMGHIGH9HHF1AH9H)L)VAH5P1hIGHZYHIO@IWH)IGXHHH)I;I9GIFGH9HGH)IsL%H5؍H=芵MO0MG8%1H5H=E)eL)H1HIHt 蕨IHt IHt iIHt SIHt =IwIG@I+GHIGXMGH9H1L)1AH9HGAH5P1WH=蚴IMgM+gHt ϧIHt 蹧IHt 裧IHt 荧IHt wL I~ AuL 11MGLH5AH=1HL)xWHH) A<$-H}LH)ǸHc$8LH$Mg@IHL)x0HH)MO0MG8%1H5H=E)`MO0MG8%1H5H=sE);$L$A鹨A!ġIIG@Ht PIHt :IHt $IHt IHt M_@IWIwLI+GHIGXH9v[IE1I)D$1AKA@H9HGDP1APAWVH5HL)x!HIH) HH)x0III)MO0MG8&1H5JH=1E)MO0MG8%1H5%H= E)ԱL)L}IHDڄMg@H$HtmH :-IMg@Mg@A$H֋DDt@^I9L)HHADDt1IHt yIHt cIHt MIHt 7IHt !IWIG@I+GHIGXMOH9I1M)1AAUD@H9HG‰DP1VH5W;IHt 踣IHt 袣IHt 茣IHt vIHt `IWIG@I+GHIGXLpN4IEH5.IƋ%H=H>DŽ$LAAE1HD$0H\HH;Hw wL)E1H]: ;$$Ƅ$IA$H$HEH$HD$(HX/Ht$(H$HFH+VHDHVXH9HLVHF1E@H9HH)HIL)HHLA1WH=躲HHD$8AYAZLXIIVHHLiL9L;hLhN,I]EH5.AIƋbE1A.H)HIL)HH)HIL)^HHH)IH)LK0LC8H1hH5H=E)语H)IH)MLK0LC8H1H5…H=E)qL)E1HHH$HFH>]D$E $PHP]L$$AƄ$Ƅ$HDŽ$HUz]HEA$3HD$(HxHP@Ht HD$(HHt ПHD$(HHt 赟HD$(HHt 蚟HD$(HHt Ht$(HVHF@H+FHHFXHvH9*IE1I)H\$(1ED@H9HGDP1APAWVH5HE1AH$EIƋHLIL$I$Ƅ$Ƅ$6Ƅ$AƄ$;H$1AN,I}HewwNH$1pH$8HD$(HXH#iAN4I>HwvwN4I>HwwN4I>HwwsH$}HD$(HXHt$(H$HPHFH+VHDHVXH9HLVHF1E@H9TL)E1HHAL1WH=HHD$8AXAYLXIEIUHHHiH9 H;h[HhH,H]A1H$AEH5.%H=Hu LIL9wH$HD$(HXHt$(LHFH+VHDHVXH9HLVHF1E@H9SL)E1HHAL1WH=yHHD$8^_LXIIWHHLqL9 L;p LpN4I.LDsADŽ$N,I}H/wwH.L M I$HHO.HL5.I$H ID$IFXHi HLIVXI$HI$H@I$H@I$H@I$H@ AD$ ID$% @AD$ YHt$(HXN,I}H:ww#L)E1H$H$HD$(HX$Ht$(LHFH+VHHVXH9HLVHF1@H9 H)HIL)HHLA1WH=`HHD$8A]A^LXI$IT$HHHiH9) H;h+HhH,ꀼ$H]HD$(HXHt$(LHFH+VHDHVXH9HLVHF1E@H9H)HIL)`HHLA1WH=.HHD$8AYAZLXI$IT$HHHYH9H;XE HXHH+$HD$(HXW Ht$(LHFH+VHDHVXH9HLVHF1E@H9H)HIL)<HHLA1WH=_bHHD$8A[A]LXI$IT$HHHYH9+H;XHXHH+HD$(HXH_GHH@HHAHD$(H$AHXHƄ$EH$H1H.L(MIUHHf.HL53.IEH IEIFXH"HLIVXIEHIEH@IEH@IEH@IEH@ AE IE% @AE t~Ht$(HXGH)HIL)eH$H$AH.H(HHUHH`.HL5-.HEH HEIFXHvHHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E p}Ht$(HX@H)HIL)HH.L8M IHH.HL5R.IH IGIFXHx HLIVXIHIH@IH@IH@IH@ AG IG% @AG |Ht$(HXKH9.L8M IHH.HL5.IH IGIFXHK HLIVXIHIH@IH@IH@IH@ AG IG% @AG {Ht$(HXL)E1HH$8digi 8prin 8puncM׸ H$8alphM׸H$8loweHD$(MH$H LEAH$tHD$(HXHtxD$xH$8asci6M׸H$8blanM׸H$8cntrM׸H$8alnuM׸H$8spacM׸H$8grapM׸p2uH.H(H HUHH\.HL5).HEH HEIFXH> HHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E lyHt$(HX,V~ILH$f.$$H$LL襅IVI^dHHcHH;HZw]wCH,H}HNww7HH;HwwL)E1HZ$H$L)E1H^H,H}Hw( wL)E1H[LL蔄IWI*LL}IWILLfIVILLOIWIHH) III)H*.L(M IUHH.HL5.IEH IEIFXHD HLIVXIEHIEH@IEH@IEH@IEH@ AE IE% @AE vHt$(HX H,H}Hw2wAoN4I>HwwLLIWIOEH.H(H HUHHo.HL5<.HEH HEIFXHC HHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E uHt$(HXwLLIVIR( 胃~9zIFH.H(HHUHHp.HL5=.HEH HEIFXHLHHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E tHt$(HX~zmH$HL8EA"H$8uppeHD$(MuH$HKLEAH.H(Ht HUHH3.HL5.HEH HEIFXH HHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E CsHt$(HXHLIT$I$HLIT$I$HLIUIEH$1MHH;HwCwL)E1HM׸ M׸H1.H(HHUHH.HL5.HEH HEIFXH[HHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E qHt$(HXHo.H(HHUHH.HL5ʼ.HEH HEIFXH:HHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E qHt$(HXGHL}IT$I$HHL~}IT$I$ˁ3( ~AEs-f( ~obuI9( ~>tH:H$Mt H$L$D$HL%ELDHD$(HxLx@Ht vHD$(HHt [HD$(HHt @HD$(HHt %HD$(HHt Ht$(H~@HVHH+FHHFXHvH9vUHE1H)H\$(E1DEL$AL)H9HGLP1APLGDARVH5QDARHH)xII)HD$(} H5ekH=LLH0L@81E) HD$(H5;kH="LH0L@81E)( {rrHrHD$(_ H5jH=LH0L@81E)萒A( a{rHvHD$(\ H5jH=wLH0L@81E)5D}( {qHU{HY.H(HHHUHH.HL5.HEH HEIFXHHHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E kHt$(HX( zpIlAHLZxIT$I$HD$(b H5iH=LH0L@81E)f{|( yHpHHD$(H5hH=LH0L@81E)fHD$(H5hH=~LH0L@81E)HcLDMt#ApVApIT$HzfDHurI|$rHL[]A\A]A^A_qLcN|A/~IT$HzHcH|qIT$HzLcINH$A}nameLH$L$UL$LT.DH$EJA}nameq1fA}isHHH)H InumericvI| L9ID8numeLD$0E1f}::l$IAHD$D$(fA}naLH$L$TL$Ll.DH$EbfA}na1fA}is 1HLH.'Lf9cc' f9agyeD$0E1D$0E1I9D$ A A A!DDZIDt$hHfD|$0mD$T$ EA)Dž Hc|$Dd$ L5zHLA)Ā?-h IcH$H$L$HHT$ H$XL$H$8/E)HT$ H$HEIL$uXL$L;$L$ML$LLH1HHHuHtvL1ҋt$H=7HL$1H$ILHLLH$I1:L$ILL$!@LfRL$DEDHD$H|$HH@Ht H|$"H5L$07Dd$@L$H$|$PH55L-|5pH\$L$HAL$1IDH5*HL5LHA1oM9pBT+KCHL9wMTIFHÀ0t_uTH0H w H9wҍ^IM9!BTAT AD=|$XgD$@H|$D$D$0L$0T$LHgnH|$HH~ }utf8HǹH$H5P95HD$`H$L=F.M7HAHDAD$AT SL9D)-HAD`pATL9TyH|$H5j*L$*L$d\ AAALH$L$ZEL$H$DE E1D{E1M\uD[BL=D$E LT$HH=(DL$8DD$(D\$ $'# $D\$HDD$(DL$8LT$HtHM9 IBB8Ly Et B|\h L)AH)H$T 1BLT$HH5 DL$8J\=DD$(D\$BEDL$8LT$H D\$DD$(LL$ CDH)H|$IH=xPFTH$LHH"L$HL=4u.1L$H='fo(Ƅ$M7)$FL$HHD$0DL%w.I$H@HH@ H Hx(H=w.HH5~.LT$8H|$(HBHH4$H LH+HL5?|.HQHHRHHH HIH IHH HIL,M/HI$HO QFGH _v.LT$8HHHH u.H;H<$LLT$8H+H|$0HM/7ILT$8H{.L(HAEHxIHx.GHH9wLT$8H|$05I$IH|$0LT$8H@HjHt$(L$HI+HH HQHHRIHH HIH IHH HIHIHI$HG "AE HL$'I}IH@I'Ht$HHD$p'R1E1E1H$H$H w.HD$XHhhHIBHXZHL$Y&H 'L$HNj@ % =,H$L$SL$HD$0IA HD$(u H@HD$(HD$(Hx`H|$0H5ЖL$'LT$(HHD$pL=4o.fo4(Hfined prAtyH$ IƄ$.DŽ$(operHD$ HD$`fD$,Hq.)$D$Ho |$8H&H=RL$A HDMH|$L$HIT$@L։T$AԉD$02[LHHD$@7L$L> tlEH~ AQ/IEIu E1E1HPHn.H8=HHH8W uHSHH@ f}::6HǹH$H5o!H$fxrixcDt$HEHD$HHxbH|$"H5sL$ !Dd$@L$k|LH;HDw w-q%LT$`N&MLAAIL HUT$LLl$0ML|$8taH|$|$HLt$ Hl$fL9|3KH;xX/J tHtP1uH8&@IuMuAD$bI $i\@9HA(HufDHHtP ff uHQHHrHVHt#HxHRHLHt zUi\f.HAM/o L MI$HHQ/HAH MI$AD$N,Al$ HCJcH>fLT$PLT$PLjL/IfI$H@0HB0HI$HR(HP(I$@^H@(H~@u LS"fDH|$ HML/H0Ht$H HHHP/HHD$L5M/H HHxIF`Hm HHL$IV`HHHH@HH@HH@Q %_A 8 Ht$ F HH@HT/HFH8HH8H%N/H;8X HJ/Ht$HH4N f.Lt$ LT$Ld$8H\$0L|$@M@LE1f.L9;IH;xU/L$@H@ tP1uH8&@HuEuD$MLd$8H\$0L|$@Lt$ Hl$DL9|3KJ Ht"H;T/tP1uH8&@IuDwIJ H@\@cHD$(J HHL$HHH@PH$H9D$0H|$E1E1 H$LT$PLI/LT$PHHHILl$LT$PJ4 HD$(LHB3$\B3$XB3$TB3$PB3$LB3$HB3$DB3$@B3$<B3$8B3$4B 3$0B 3$,B 3$(B 3$$B 3$ B3$B3$B3$B3$B3$ B3$B3$B3L$L$PHrB/LMfIHHG/HH C/IH IALAhMIIxHHAhL1H)IhI@`HMIAA@]t%Ix8HtLT$`LL$XLL$XLT$`MAF0I>LT$hT$PLD$`)HLL$XHcLL$XLD$`L/A/LT$hI@8IH\IH\V  H=EXAL$ HHC/H8HEH@ Ht@I$HI$H@@<I$ LT$P@LT$PL@/ILLT$XLL$P#LL$PLT$XLi@/AA BTB4LD$*LD$BTB4LD$ LD$H9IHR#AF L@/L:#AD$ f HL$`LT$XLL$PHL$`LT$XL?/LL$PLT$PHLT$PL?/I( HL$`LT$XLL$PQHL$`LT$XL`?/LL$PiLT$PLT$PL@?/I" L?/sL ?/HD$/LH$H$LT$PLT$PL>/IDL>/HLT$X>LT$XIfDh HL$`LT$XLL$PBHL$`LT$XLQ>/LL$PHHcLBLD$P|$`HH8H)IHLIHG/HHpHxH@I3HH IHHH1H1H HHHH1HI3HH1H M9uH|$XLH)HH|$PHT|$`wYLIczH0I zH(I zH I zHI zHI zHI I L1H|$XHHHH HHH1H1H HHHH1HIH HLH1H1HLLH H1HHH1H HHHHH1H1H HH HH1H HHHH1HHHHHHH1H1H HH7HH H1H1HHHH1H H1H1HH 1ЉD$P$ h HL$hLT$`LL$XHL$hLT$`LL$XI2LH=V1H$HfHHxHt 111PH=1AWAVAAUATUSH(L-DD/H;/ImHHuH9HE/8EH;/HLxLD%D$ HB/L IJM9|KHtH8uHEL;`HEHHCIm뱐EtH%;/HH HHH?/HHMeHCI$It$HPHjH9H,H}HtwwH]IEHLbH:/L H:/HHH3H0H ?/HHHCHuHEL;f~_L;fLfH,H]CD$ HtA/L IED s H 9/H@HH(L[]A\A]A^A_ÐH,H}HtwwHT$LD$ HT$LD$H;LHHT$LD$HEHuHT$LD$/@H9/H:/LH8 EH9/AAEH;h3HhH,iDLD$nLD$OHHLIt$I$<#H=1ifAVA1AUATIUHSH IMtK1AD$LcHt]K1HkEAu3H-8/HLH} {0vHELh[L]A\A]A^H7/HH8@AtK1ff.AWAAVAUATUSHHHL$7IIMHAtnHT$LDHH<:/HM H:uHH?/HMt AU@U%&HH[]A\A]A^A_@HFH7/HHHT$H@DHT$D$0H;/LZLL9Ll$ MLd$(IHLt$8MD|$4HL9sI\HtD{0AT$0A8uDK1Au΃{ t{$uH;I4$DL$H|$ H|$DL$uDT$0MHEHLl$ LD|$4Ld$(Lt$8Et HyAtA tH5/HQHH9By$Hx+t$0HHEЀ?&EH +HHELu>HLA/Hff=fEH5B+HD+HDIL\$A1HRH5TLW@ZYL\$D$0HDMI HvIHth0AT$0@8u@1u؃x tx$uL;puLI4$L$0L\$LLD$9 LD$L\$L$0uȺ@Ϳ@LH5MA1H)9/H;H5@1E(7fH94/ HD$HHG1 tHGL`H//L(M9NHLD$Hx0HNL-8/H5p0/IHf0/MuLHHD$ HEH-//HH@IEH@HHEHD$Hp1HHHP@ILD$IH$AG AG$HD$H $Ht$ L8AG$H//MuH0MtMvLuDLd$ ^fDE1HD$HdH3%(HXL[]A\A]A^A_t$9wp+D$@ @E1Ҁ{ 3Ht$@AHt$DLd$ HL$H4$KH@$f)ƁHHz0J\΁5HcB`HMHHҺHDJHHL$H@JH@H@`t D$8I@1LD@0H HH5+A9&HEѹ1HD$HH-/HMtA@v%& HHHHR2/HHHCH7/H0H~H8H/0/H;8_H,/HHK HD$H11Hy0H@\tEG HH\ f{ tHD$HHtBI}LLD$LD$EG 0H $ uoH|$ 6J\%=!@Lt$HDBXLHJPL1It$AVt$ DL$\IH t$<i.@tH|$ u@K@1eL$<YHT$ HT$=A?&MMHHHEH51D$<HIUHHjHHHG0/HH--/HH HCHUhH=HzHHHH)HEh1hHHB`HH4/HHCHHyH8H-/H;8HHHHH//HH-i,/HH HCHE`H_HHU`HHHH@HH@HH@S %_C  C HH@HCHHHH./HH-+/HH HCHEXHHHUXHHHH@HH@HH@HH@ C HC% @C H-3/HHyH8H\,/H98-H~ C ( \H& HRHh Hw0H? LLH=H1q0H9 H=YH1gH=1RfAVAUATUSH dH%(HD$1H)*/H HHA1IHD$HPHD$ PHP2/jDvH IHuyA>&HHH@HH@HL`LhMoItbK\HtC0H9uC1uH{tH;I9tHLuÃ{ uDHD$dH3%(u'H L[]A\A]A^I׉H=)@ATAUHHHDHH]A\UDATAHdH%(HD$1G % = t4HgH4$HDHL$dH3 %(uHA\ÐHHHpH4$f.AUATASHH=>1DILHIH&/H8H./HLH8FHHxPtH\HHxPwvwL[A\A]f.fAU1ATI1U;H==>H7LILLHIH,&/H8TLH5./LH]A\H8A]fH./AVAUATUS8u H-/tMH:'/H0Ht>HH@A\t A\H A\@A\HHPPHtH H9tHy0tH--/L%~%/HEI<$HHpH97HUxI$HxHH@H`L%$/HIkfI$HHtKJ t!HH+5F"/HIHv(H;9//tuH4F1u J @HH<uH./Hf.HQ$/HHHHH(/HL-%/HH HCIEXHH1IUXHHHHH}H@HH@HH@HH@ C HC% @C pC HU% C HUHBI$[]A\A]A^I$HULhHHXHL%"/HIuDI$HH:HtWG t!HH+ /HIHv6H;=-/t-IDHHt x0t9&twvWwHH@I|uH)-/IDw1 n@L%9"/@I$HH9( Iff.o tDUHLEHEfHHEI|HuHyLQH]HkfAWAVAUATIUSH(HH{@C\HtHC@1H{06{`L-)/I}aH!/IEHC]t)HC0PHH)HxHGHHHGH{0sHC0HC( @HC0Ad$ ]LjC\u(Ā)H{8HtC\HC8C\LkHMH/IE:-H0HPLCPDKXH.LvHJH DHIHtHHt8&uLøø1@]Døff.AUATUSHHLg@LO8M9H/H@8uA$H /M%@=@qDLK8I@Et*AtHn /H@@HC@HL9rL)HcM9A$ЄH  /MDL-F!/AtILC@M9r;H/ LC@AAtILC@M9AyHHLL)HAPу? DHH_LL)H1LL>LC@H{ILC@Ht HHt HHt HHt }HHt gHsHC@H+CHHCXLCH9v>H1L)fDD1EH9HGAH5P2P1WH=VHL)HH)@1ҁ Lt=HYHHt7jE1E11j1HAZA[HtH@HtH[]A\A]@:H{Ht gHHt QHHt ;HHt %HHt HsHC@H+CHHCXLCH9HL)HH)D1EH9HGAH5P1P1WH=T`1Lt$LK8f1LLHs@L)HcyLK0LC8Q 1H5DH=+0E)ǃ1L)Hc7LK0LC8f 1H5H=/E)H1L)fDAL$ʃЃ? LLMLC@A@M)IcLƺ L)HcH=/fDAVAֺAUI1EATUSHH=MFI@u~H/HH; /H@(1@t HHh Ht@fAH=5*EEt14@4 D9rLʋ|$tpHsmHf0HJt @:HzHHH@u:It$LHIt$ HI+EL Јt$ HAt HQ HHк)fIUI+EHBH[]A\A]A^A_DE1??@A@(AH=fDAH=}+fDAH=fDUHSHHHHHH(H4,BHC(Ht^HS HH HChH~1H?H92HKpHH1[]H<DH[]fH{HkH+kHt @HHt *HHt HHt HHt L H~ uL 1LCHH5H=1WH/AVA@AUAATLgpUtSHHHShJ1BHShDtHShDlHSh@lHShfLID$HCp[L]A\A]A^@Hq/AVAUA@ATDtULgpSIvHHShJ1BHShDlHSh@lHShfLKD4HCp[L]A\A]A^ff.@H/@ATULgpStHHHShJ1BHSh@lHShfLID$HCpL[]A\@UHSHGLG~A1f.HcHLHxHtH@wv-wLE;]|LCHH[]5D;LED l@AWAVIAUIATIUHSLHL= /LA} AHEuH@H@ jILjLLHE1PAHD[]A\A]A^A_ÐHq/AVAUAATUH@DtSHEAMcLHSpH{hDHLHSpH ExmHtcD11E~SHHD$8L3M$AF H|$D$>< E1Mt%fAD$ u A|$"AD$!@E1 t IF@tHH@fDHE KHUB=HHB-LFH8HH<H|$8tHD$D$8H0)xHH;\$|$>Lt$MAF D$>H< %ILjIMtAD$!@E1MHu1H=HHH;\$ufD|$?t E@HD$XdH3%(HhH[]A\A]A^A_fAF PIFP HH A!t{H@I9F uqP MtwHH@tkHl. LHpIHtFL9tAP AF u uIG뛁 L,AW fDAF t IFx toHurAF <Et1IHPHD$HH0D$8HHHAHPDLAF JIFP fIHtE %=Ht$H1HƾL|$HHD$PAF t E S1LHEt-HD$H0D$8HHHBHUHRHHPA~ AIHP HzX/LIEHHHD$(HD$H0IEHJHHT$ HcHzL$0H`HT$ L$0HBHD$H0HIE1P|$8LD$f.A~ IuHRM0HcHHHHcǃHIAL LILHQHPHQHPHQHIDփBHPIE9p|$8@Md$ [LȠAF JH.LpH.LpLLcAF I%MtAD$!@WMd$HI9J< HHD$ hME1H\$0LL|$ DHIHL9t*1HL HuH.HIHL9uH\$0H=)*~HHE1H@D0LL$8HT$0H|$(7^_HD1HtHEHPHt$HcD$8H0HHHIHH0HRLdH0HRHDAD$!@Md$AF A|$8ofDHELxHEL|$HqfIHJHRH9v Iv<uELD%P=uHtپL袪H*HEHIHP}HI. JLHp{HP ItLpAV H=1E1L$8H|$HT$HHt$PHT$HHt$PH论M w1H= HHH;\${xlHL$H0IFHD$ 8H@LMMQff.fLGGA@HHATUSHHH@(H6HHAH1AADY0HHQ(L)H9vtHvL$J,LZLY(HtL9HwMHcfH։E˃HHAE09~H3HHAHwHA(HHH@(@t]H.H;HH0"H;HHBHuCwwH[]A\HA(HHH@(H;HHBHtR0HH9t[]A\fDHHQ(JT%HHKHIG҉9HrAVAUIATIUHSHHL+tgI$H;hID$HHHHCHJHiL4H9H;jMHjIM.L[]A\A]A^HQ.HH=HHH.HL5.HH HCIFXHHIVXL4HHHH@HH@HH@HH@ C HC% @C I$ID$H;j~WH;jHjIIfDII>HweLwM.[]A\A]A^II>Htwqw뛐HHHCHfKHHLID$I$JH.L MI$HH_.HL5,.I$H ID$IFXHHIVXI$HI$H@I$H@I$H@I$H@ AD$ ID$% @AD$ V@( 蔳SfD( dOI(fAWAVAUATUHSHH|$(H$H$D$dH%(H$x1HG8H$HtHXHtZH;$}[ H$HD$(HX@!Ht$(HHFH+VHDHVXH9HLVHF1E@H9H)HIL)I6HHLA1WH=L gIHD$8AYAZLXI$IL$HPHZH9lH;XYHXHL+E1AEH5y.IƋ%H=HA=KA.ADŽ$A^A:A;hH$HD$(HX#H\$(HHCH+SHDHSXH9HLSHF1E@H9L)E1HHAL1WH=?HHD$8A_^LXIIVHHLiL9L;h)LhN,I]DuH5[.AAVQ @ @%H=H#H$1AH$HFH9D8uwHUH9"/H$HH.H%@=@t-uHBH9uJH$D8GfH$ fDEH5m.%H=HuIHH9uH$H$HD$(HX$H\$(HHCH+SHDHSXH9HHKHF1E@H9H)E1HHA1WH= fHHD$8^_LXIIWHHLqL9/L;p(LpN4IEuAHEH5u.H$EIƋ%H=HA^A]HDŽ$A$H$L$L9]D$?1E1AƄ$L$HEP@EnHzH" D$?HAJPEAI9W3H=.@ΉׁHHp @ @uHS@]I9v0KH=<.EEm H$@<; <:Q H$HPHD$(HH0H9r @HBH9 HH5.%@=@tHB1H$bH$H$fH5~.HHu HH9wH$H$qHD$(HXH.H(HHUHH.HL5^.HEH HEIFXHHHIVXHEHHEH@HEH@HEH@HEH@ E HE% @E 衍Ht$(HXHL$(H$HAH+QHHQXH9HLQHF1@H9L)E1HHLA1WH=赶HHD$8AZA[LXIIVHHLiL9 L;h?LhN,ImH$AD0A^u5D$E H$DŽ$DpHH$H5.AƋ%H=H-H$H$"H5N.HHu IHH9wH$H$HD$(HX Ht$(H$HFH+VHDHVXH9HLVHF1E@H9H)HIL) HHAL1WH=1HHD$8^_LXIIWHHLqL9!L;pLpN4I.EuAH$LmHD$(HX H\$(LHCH+SHDHSXH9HHKHF1E@H9lH)E1HHA1WH=cHHD$8AYAZLXIIWHHLqL9xL;pWuH*/@:LH)WuH/@:A4$H=1HLH5臉ILA|$>Z2V %LkƣIuID$BFBRHA|$=QI`L&A|$<A|$>L|LLD$H5;&辈LD$*LLD$蠈LD$AxMt=IIA}\HuŹLLD$eILD$HIH5H4ILAWHP/@:MHL9%WuH/@:UHa/%@=@茟HIBRkBPLtkxraPH/%@=@H>ARHYI`L:IBRmBNLLD$IHU豚IHx4EILD$H8LLjUQP4PUPEyAHHHH)HvUуd? H/zMD$iIBRmBLL2HV ;LDI13HwL:H/IIH 9Q$FQ$@RL:IHHD$HCHHxtIHH{LPILH/IH HX9Q$FQ$@RLHD$dH3%(HD$8H([]A\A]A^A_@'HH1LL$nLL$11$EuIBRlBTLfAWAVAUATUSH(L%W/I$Hz Tu,u H #HcH>THHSD@AtUAt HcC8H{@d=PS8DAt I$At I$EAp H(D[]A\A]A^A_fDHH iI$CQf{p!HHHz})j$HHLj M;HB HIUHH+AHBIEHHHqHpI}IEI,$L1TBHI$TDŽ@:HʃTHHB@RAf.Hz (DH9HHHx 'H{XYH4I$1H莉HCI$Hf.H9[CR}@HCXqCQƃ HtH8( CtPSt-DSHMt~Hd @ Z H(/A H@8@ `&HˌLDD$H5:,H=HE1wDD$HD>I$HL`H @  H/ H@8 HL5HMI$H@@C<p1H5 rhI$HH;t HHƃHTHHBHPHx{t HHTCRDŽ@/HЃTfCCAOHE1탫<ACQƃGm}1LLD$H|$xLD$H|$HHL9MH)1WzH/P8 E]@ Hc}HC@I$H{@HcC8#1fZp(HChH9x Hx H9HChfDIHxAUAIHx=Av AvI$YC4Z@{H1D(HhHI$EHA,2A%A)@RHAA@s H=lojHs H=I$A$AwH EJcH>HTHABHA0HAfDA#X1H=MfYC$<vEH<)„uI$Df.Ht D[iƀf.?ƀHR뇐1fH>tDHi/HHH8ff.@H>tDHi/HHH8ff.@ u 1B `LcHB )AG0HcH4vM,QH5CHc H>AxI^M.-IhIpM^-HIpIE(HD$f@ |+@"r+Ht H=<迂LcH+AG0I~=1f.HH@I|HtwwAG09σHH@HI)H/Mw(M.HHt@HΛ/IFHS<AvAF HB -HBPwHcH5f; VH ;BfAFfaLfDAGAGL-<L%+Htw7wIMw(IFCtPwHcfA|UM9wHĚ/A~ ;8|lIFI~A|uMM{HL/H98t-H8HH/H@HH@H@HHPH(/HMLaI~1{NfH PX(INIO(fAV IGIFH/HHt @AV H/IF(AF$IfDC`fDAm\HD$(dH3%(+H8D[]A\A]A^A_AG-'AG<T$W[D$ T$=AG HH SED$ fDH  Aȅ'AOIVIW(fAF IGIFH/HHt@Hט/IF(AF$AGt]AGAF IfDH=T$~~AGT$BfDHIPM.(AF IAGEIVI~I6cIAG0H5ؠ/H=+1rE1I>ZI~INA~L1HaIAG0MnxHAGRI!aH=T$}T$MI>PIAG04H/IH HI!IvA~IIAG0IvIhnIAG011fAI>(=IAG0AGRAFHMF1IN1PM >A~HpIAXAAG0A[[gIvA~IIAG0KI>1hHdYIAG0(IVI1%NIAG0 jH̡IAG0I>XLIAG0I~裡IAG0I>o@HXIAG0A~I1XIAG0A>1]_IAG0qI~eIAG0\I~I6Hl@HaXIAG0%AfEM.1fAM.M.ERAG0I>IAG0IVA~1IIAG0I~d1Ҿ5HP15HWIAG0I>21fHWIAG0gAFA9vAIVIvqpA~HnIAG0)AVIvп@ImIAG0Iv11[jIAG0IvA~IIAG0IVI1KIAG0IVI1KIAG0I>L1H3VIAG0wALJE1d H=Ss1HO1I]L1H3BIAG0I>oL1H]IAG0INIV1MnIHL$ V1ҾHNHL$LIH1^AXHmIA(AAG0IvA~hH'1HUIAG0\I~Iv迠Hi@H`UIAG0$I~@H9UIAG0I>1HUIAG0I~7AI~I+L1H@1Iz[L꿚HJXIH#IFH"@#AE#AG0]I~$H@I~IL1H4@1IZL꿙HWIH"IFHz"@#AE#AG0I~H-@I~I!L1H?1IpZL꿎H@WIH!IFH!@#AE#AG0SI~?I~IL1H2?1IYL꿍HVIHB IFH, @#AE#AG0Hǐ/HHt@IVA~1I;IAG0H/HHt@IVA~1I;IAG0tI>>1HRIAG0GI~1Ҿ3H_K13HPRIAG0I>A~1H.RIAG0I>16IAG0I1QIAG0IVIv1I:IAG0I>G1HQIAG0AvI>d7IAG0hI~GI>HQIAG0HINIE111EZIAFAAG0INI?IAG0I>MnLH>IAG0INI1EIAG0INI1EIAG0I~(IAG0|IIvHt dHABuH/H@$AH1NB11HRZIAG0I~UIAG0I>1Ҿ1HI11H PIAG0I>w1Ҿ/HH1/HOIAG0H=*Mnl1HHH!H9KL꿠Hc1HjAIAG0>H//HHt@IVIvA~I'8IAG0 I~2MIAG0I>I~IA~LH>IAG0A~I1@IAG0IV1]IVIvIHRL꿠Hb@H@IAG0ZIV1z]IvIIQL꿠Hb@H4@IAG0I1)]I~IL꿠H]b@H?IAG0IV1\I~I^IOHڿHOQL꿠Ha@H?IAG0aIvA~Mn5LHQA~@HO?IAG0#IvA~M.4LHPA~о@H?IAG0IvA~9dH1E1jI1ɾ1M1[ZIAFA9?AG0I61D4IAG0Hy/IvE1A~IH\HH@PHtHB]t@tHhbA{AG07IFMHX(LkMt6LLD$FHPHHT$U_HT$LHehLD$Iŋ{ LL VI~ImPAG0IFMHX(LkMt6LLD$#FHPHHT$^HT$LHgLD$Iŋ{ LL UI~IOAG0QIv12IAG0:H+/HHt@A~I11'4IAG0 I~IV1HORIAG0IvIMnNLH>_@HJIAG0I~%I~I[L1HQIAG0mI~I~IWH6L1HQIAG0(I~I~IsWHq6L1HOQIAG0I~I~IL1HQIAG0IVIv1]IAG0IVIv1\IAG0zI~!1H\@HIARIAG0>I~1H\Iv迠H]@H8IARI\AG0I~1HN\Iv迠HM]@HHARIAG0I~K1H\@HHARIAG0hIVIvйI~EFIAG0BI>,1HVHIAG0I~I6n+1H/HIAG0I>,IAG0I~I6.+IAG0I~"I~I_H 4L1HNIAG0}H/I>HHWH@L,KAG0VI~="I~I!_H3L1H}NIAG0A~I6uZIAG0MnAvI~I/+F11MIAG01fAIvHt I~Y7_QAG0IVA~1FIAG0{I>CBIAG0gIQ f#fv ACHI!61fAI6Ht I~611LIAG0H/I>HHWH@L,JAG0Hh/I>HHWH@L,aJAG0HI!I@I>JHIAG01b HI!I HT/H8PAG0K11a HI!I H/H8\PAG0E1E1fEI6HtH /HymI1ma HI!I H/H8OAG012a HI!I Hl/H8OAG0cA~18KIAG0LI~#\IAG07AxAVMnI AxHt H=gMtL11%NIAG0HI!I%I~?IAG0AF=t1=@AhI69IAG0I>9I~H!CA~HZIAG0YA~Ѓh"JIAG06Mn-AFAI~Iv9IV1I3MLH1H,IH/H8AG0Ht$ H=7Ll$ AG0H/H1HtH/H;HI!I 8IAG0`Ih110I1HƉd8IAG08HAGRI!!A6YEHIAG0A~I6BEIAG0A>HIH~/H8AG0Iv1d)IAG0Av踀IYEAIAG0AVMNIpIT$M(LL$ HI1T$ HRLL$ 1%AYAZHMt2GHڿHULHDHH#~/HށH8A=XIAAAG0AFA9vAIvA~XIAG0Hǂ/M.HQ8v t*utARuHO~/HH@^111HIhHIpHAAxAl(LHC111IJLHC111IJLH@T11H(HId1H}/E1HHH\fEAGRAƇyc?AG0jEXIh&Ip&IxEAAG0ILJhILJpAƇxfE IvI+XIAG0I~)I~H )AG0HMF11jM1Ҿ>#_AXIAG0H|/HHt@INIVE1AvApMF=A{AG0\HM|/HHJ\H AG08I~O(I~Ht(Hy/E1H;oRIvH H;PAG0I~(I~Ht(AG0E1H{/MHHt@A~ AG0E1H= u&H{/H8vMAG0}Hn{/MHHt@IvINA~F f%fh 1;7E1AG0A{)H{/IvH;\A~5 ILJ1fAAG0Hz/HHt@IvMINIVF A~f%f =;6E1AG0A{H/H[|/IHHI! AGAG0D$ RI>IIH AFAE#AG0-I>2I~1HTA~HkSIAFAAG0I~K2IvI1H$A~H.SIApAAG0I~M.2IvL1H$A~HRIApAAG0qI>HIAG0]I>5SIH+ AFAE#AG08IN1MnIpIHL$E;1ҾH64HL$LIH1DA~HERIA@AAG0I~"HIAG0INIV11MCA~HQIApAAG0|I~SRIAG0gIpF f%f u N"IpINIV1MECA@HQIAAAG0 INIV1IvMCApHGQIA@AAG0INMn1ҾIpIHL$2HL$LIH1BA~HPIAXAAG0oI>eH=T$\T$QI~c#I~Ht#Ht/H;MIvH9H;LAG0IvA~[PH1ɾjIE111oY^IAFA9AG0H~/Hx/IHHI!7AGAG0D$ ~H~/HEx/IHHI!AGAG0D$  Hs/H8AG0IvIOIH|/I~I>Hs/H8AG0hHYt/IvH8V1ILJfAAG07IHt11V@HAG0IIVA~1I+IAG0ApA9vAIvA~5MIAG0AFA9vAIvA~MIAG0HAGRI!A~I6LH(Hr/@<HI!AG0MA~>t I~I>IVA~1Ho/HDHt/DXfAWAVAUATUSHHt/L5j/L-)m/L%n/IIUI $HhHtrH9~mH5wr/HH9^L=fDHI9]>HDHtH0t@1uLL1H;9I9]~DII $L-t/HE1AuH9~5HDHtP0tH1u x$t?HI9$|΃FDAEHL[]A\A]A^A_f.p$uHxuH8&uv14LHXH0AuIff.ATUSHh/HHHq/HL@L9HHL@HL9L$L@tH:HtwvbwHi/HHHH9|HuHi/H9(~HH([]A\DHBH s/HHh/H9(~/HLLHH=1CLH=1Cff.Hg/HHteHHp/HHpH9uOHtXHHt$He/HH9tP t P H5o/H98~HH8H@H=81YCH=N1KCff.AWAVAUATUSHL$ HHBHIHLHH1MyLkHAWMH;ZYAQH0H$E1ɋP O@1MtEHH}1RHQDVLH IL93|HKDHtx0uD$ tOE1MtEHD}HdL1I7L93}H[]A\A]A^A_MtEHH}1VLQDRHnH mAUATAUHSHHG %=tw t2IHtHHI+HL[]A\A]fHu{/ID} tat=HELHp HHL[]A\A]DBwHtDIuHL1'HL[]A\A]LHMDA\AAD ĀHA H@HHp H@HIT$XHEHHEH@HEH@HEH@HEH@ E HE% @E HCH(E % E I/E ,IEH(IEHXHU/HSIHfHYS/1HAE 73H(`/1HH*,IEH(IEHXH/U/HSII/HHY/HHW/HH\/HHU/HH;^/HL[]A\A]A^A_fDL5q]/I>#L=;U/"L H=<\//$H=(U/#$H=Y/$H=@W/ $H=\/#H=]/#&H=c^/&fHH$H虀H DH\$HdH3%(AHX[]A\A]A^A_DH讣H_0HHtHT0b:=[HO>0IHC0H H9Q$FQ$L@R贡1E111HnHH*H{C0HHHx@EH Hy 'uHA H =0H19N$FN$H@R>iH"C0HH@@RHHfXr}(OHdeHB0H@~@RHHHB0H@b@RHHH}B0A`HH@`@RHHfDHr}(UHaiH"B0yHH@y@RHHfpr}(OH=HA0HH@@RHHfPr}(HA0Hu VH;0H@$BRHB%H=A0HH@@RHHfPr}(jH5VZ1MH=,H@0EHf@RHH6H@0HH@@RHHfHr}(tHX@0ArHH@r@RHHfD@r}(0H@0AHH@@RHHfD`r}(?H?0AHH@@RHHfDhr}(HAHu?0A\HH@R@HHfDPr}(M1HHǀ8{H!?0HHA\@R@\HHfDXr?(L1]8(7H>0Hu V BZkBRHH>0H@p@RHHHe>0H@}@RHHH80H8>0HHR$@RHP!WH>0H@RH 8H=0HH@@RHHfxr}(1ɺ7HH=0L#I$HT@@REH1H<{aHR=0<'t^HLD$@HAƀ`&HaHt$@IHt#L+IaH|1HlH1A0‰P@RH/ H520HH8H.0H=*Q+Hp$1L%F401HM,$H IEI$9Q$FQ$@RH>@L-q.0IEHx0Ht HHx H 1:H301HL#aIMID$H9Q$FQ$@RH>H30Hu VB[BRHHI30HzRf}=uu V_B>NBRH}=>H`H)H20AHH@@RHHfDHr}( H20AHH@@RHHfDPr}(vHHC20AHH@@RHHfDXr}(nH/H109HH@9@RHHfXr}(H10AHH@@RHHfD`r}(~HH@{HdHMH6HtH3]HzFH00A-HH@-@RHHfDhr}(Hf00AHH@@RHHfDpr}(>H"00AqHH@q@RHHfDxr}(MH/0HH@t@RHtHfPr}( H~!H HHW/0H5IHHH`^c1H7HH@RH?H}(HfH.0MHH@M@RHHfHr}(H.0nHH@n@RHHfpr}(bH vHQ_HPHHN1HOoH{XH-0HH@@RHHfHr}(H0HIHS-0HL0H8-0Hu V^H'0H@$BRHB$9H,0AHH@@RHHfD@r}(H3HH.Hi,0Hu VH&0H@$BRHB"jH#,0,HH@,@R HHfxr}(PH"0HH@\ 1HH+0HHPH%&0H 9Q$FQ$@RH>H%0Ht+0DH52DHHR$P1H@RH*}H6+0H@I@RHHWH+0H@H@RHH1H*0HH@@R HHfpr}(H*0H@=@RHHH1H5dDHX*0H@RH,H9*0Hu V_H$0H5DOH@$B1H@RH($HM0HH8TH)0H@@RHHH?H{)0H@>@RHHHU)0H@e@RHHvH/)0AcHH@c@RHHfD@r}(ZfZ)UH0%D=DtCHyHHxxwv>wHH=UH@x1H=hUH}1H,CHxxwv;wHH=TH@x1VH}1HE)޺H52I1Ϻ11BbH=STHI)MIEUEH5LHE1bE1'H fAWE11ɺAVAUATUSHHH-N0dH%(H$81LD$ HuHH`Lt$ L}II`LH|$OBA$H|$u :.II9L0Mf.IAUI9sA%D=Dt߀=IML|$(LLHD$H0HUAą8HD$LH`LL$ HH 0HH;0 BRu<B1DXFAŅDA`At A>#HU@MLHHH@H)I),HMHt$ 8=H;HZHLr1E1MHE1E1DjDLjjPARH0H$8dH3%( HH[]A\A]A^A_fD HD$(HBH~0H9A$FA$TBuBR@A}>7LLifDA|$:IMI9@Ht$ E11E1L9A}:A}:HIH@ H0HA @8DL1LeHHUH ID$9A$FA$LD~DLD$1LHLLL$Ll$0D$0&LL$L1Iq&IHHR 0HH@JL`M1AD$tI$Hx Ht D@:H|$HH3@ )H 0 H@8 LEIH8H@x|LXMt IH@%LIB\IDIHEE1E1 DL\$H`H| 0LT$H8HD$ L\$HvLMt*AR сPAA1MgAZICH5dNH@8HIDHHP 1Hʯ(M~LLHH0HEH;t$ LyHt$(H@HH0HFHH{HEHt$(LH$ 0HXH 9Q$FQ$@RLH$8dH3%(>HH[]A\A]A^A_\HZx>HHzLdWH0@8%ҁ€ LjE1E1j1jj/HULL$ H`A~:DAA1H=L1E1MT$1HE1LD$(LHD$(^Iƀ:H]Ll$(L$L`DL>…L$'CHHj@ `Hz 0H@8GLLH=3K1 @x:H]Ll$(L`LD=…t0u1ɃjuHE1E1LjLjjjjH01 pLLhHq E1IALT$AIRJ"HzHt$ E1~HE>HEE1E1 DH`H0H8HD$HE11EHt$ E1%1ʃ IRrHzIBuH0E1W'H0D@8 ADEHD$HD$LE1HULLT$H0H`?LT$HD$?MfHE1E111ҾL`jjjj-H R1WH01@:@H`H=H1H`H=H1DAWAVL5AUATIUHSHSH(D/dH%(HD$1H0H5e0H90tA~"AHcH>@&ЃHAH~ @LHL= 0ILE,$H 0At$MD$H8@|TH 0IT$LEJ8DA t! AABP@.#i$Iи1@=DV A9"*#L9/$L¸eGGRH:=iH\$dH3%(+H([]A\A]A^A_DEL=x 0IHHfypHIt$L9H/HǁHǁ8u yS61H@1)XKH0H M0H9@H50AA͋%D=DA9w HHH҃DHAHL= 0LIH`L9wYbftR‹%D=Dt@H0H v3ЃHAHv!IHHH9v H_H9rIL)HT$HH`H/Hk-E,$L=0IHHB L 0IB8HL9a%A$Q%H560DL%LL=90I7HL躴IHÀzRH0H9H$FH$BR:H8El$IL=0I A#HDL9w.fDII9sA$< uI9IA#u L9L82IP4t ;P8E,$81\~fDL=!0ICR<  HH9L g0LLL$=LL$III 9Q$FQ$L@RdL=0I7~R Ɔ`@1ɺLHa&HIxRu0HHH9sHrHHH=(!M Ia@I tp8tH1HIxRHH9T@RDŽ@HDŽ@pTH,0H 9Q$FQ$HI|$1a L=u0Iu Vk1I|$I8{H /H19N$FN$HBRXEl$A=MD$IT$A>z$A~J$EH50AD$%D=DWL=0IBR< AAHAH#HHI9t A|$ H/H8tH`  ME,$L9IA uILHL$H.IHL$LLL)H~A<$=cutuHʾ LL)HL$HtHHLHHL${.HL$D)If.L=0IBR A|$=  V LH90H V L_L=0I\$Ifxp!vxR@RHw&LnH0H V LE1111LgL=0HIxRH'MIzxABG % =Ht$Ht$MHI#fu5HHHt$HX8LOH9C@yHH/ABEH@$A9AFABRIA_A|$:I|$0L=t0AL$I~ H/MD$H8w8 t  GPj.BuBRLBH0HB8tHJ@H<@|1LNAD$H0H L=0I?wR@AT$IL$B< wfQHB< v_t.L:vy:@F<v @ uHH@ L / I@8L)LHι H&ILHpgHH/IIH 9Q$FQ$@RL:L=/AL$I>cIL$L9tA|$ uHH)H~A|$>>>> A|$=xVkLgL= /AD$Il$I<= <~ICRtL"L=/AL$I<kL9tA|$ u$HIL$H)H~A|$<<<< zRAD$<=^PVCLDH9/HVL_L=/IHcC8H{@d PIS8I BRLL=/AD$IJR<+I\$<=VLL=a/AD$I7V4t ;V8VRg IT$<." <=VLGE1111L迳HH'"L=/L =/IIH$9t ǂ`zR6 B@$9FBRHwZLڔL=N/I|$IHH9"H;BR1IILLHm/HQ8. tAPH/IT$A|$.IEH 1ɀz=V 9 Hr^tHJI9ɍLIaH@RHz=~HH`qH/HBR< \| AD$<* <=ID$B8BRHA|$=GNAD$H0H L=/IxRIT$@>@RHA|$=uIL`@E1111L/L=H/HIxR9HH/IHB9A$FA$BRHXCL=/IP8 Hx@JHc<7@ I\$ H8 H/H 9Q$FQ$@RH L -{tHIt$H9HǁA8Hǁt*HQ@H<@ty4H=*H\6HDIL1:f.WuH@/B:.H5/B%@=@CfI|$BRHfDI|$BRbHDH/I|$H9A$FA$BRHqi fDH@AT$/_ IL$=VL@H/H L< Ƃ`%Ha1LxHIa@) xR HH9 T@RDŽ%HDŽ@pTHw/H 9Q$FQ$H(L=/IBR<t\<uXAD$H5u/H%H=Ht u"LGHH%H=Ht t #VLC:CRHA|$=PI`LUDFCOFRHA|$=-I`LB?OBRHA|$=I`LID$B<BRHA|$=I`LHH=II{ID) 21A|$=VTR9LfDHH艂t/E<{uIƀ`%E<[uNIH/AzH @El$I_HH=Z s HH=F LL$Z LL$IIf.l_O HcHC@IH{@HcC8 HH=  HH=  I<.n IT$H0H {A|$<!I|$I>y>?H`LrHH`@R_H`&>H`>H/H 9Q$FQ$@RHTVL-@RHD@8EAT$-- ߀[ƀHr,It$L^+A$HH HL)H' AT$у ?H5/ DL9 HL9itL4GRdLA|$=IG`LL1jE1E11j11LjjRH LA|$* ) IFRLA|$=IL$VLXI\$H=,I5H`H*HIL$H)HA|$====A|$=L11A|$=VTR9sLBRyL< ]< A|$ IVRKB7MBRHA|$==I`L(CRkCRH IHHU}Ig;[^ƀ`@RH0H A9HBRLD$LD$E H=DvLD$HgDH51ҦLD$G@RH3HL/ASDEIH}/H=8DE1轮IH HYLHHpHIH ILH聖L /IP$IdHl/H8HILH/8H'/8uH/8H5+L H"/8ILH/8tqH/83 H4/L(AEMEƒ't<" LLD$NLD$H L1H5L謔ILLH5ްYIHLgLLLHHRHWHǀHHǀHG/vHt/H/HH9\119E,$H _/%D=DtH%D=Dt*%IBRHL1ChsCRHx@RHcA|$.I|$1FFFRH8{VLLA|$*IBRLI`LԽ|HID$H9s(H5 / fHH9tDDtу/t;J *AH pH / @@ H51蘢ITƀDŽ@UHʃLTLA|$*IBRLA|$.NIFRGLIBRuBkLiL1[#At$ID$CRHA|$=e"IC`LL¸_ ,fzp!!HBhH;x Hx A|$}I@Lx}sLH)HH5 HusL /I@8Y HH/ @ % HH}H9d & 1LL$蘫LL$fDbL /LL$M!LL$H11á31H5OII@l@RLlH/8 H{L ~/LIh$HIL9t A|$ FRL31HLgH@M,M9wQDII4$IH,ILH耏M9sH|/H8Htw'wH[/HAH0H O @LHI9v*H5/ HL9tD(F,ADADt߀8:[ЃHAHi{{LTA|$>ƀLH5~IL1I|$0~8FQ=-V  L</(/IH5 HԍB`BRLNH5J!IHmH1W:H/P8 "L1L1H=菸IHHHD@ :HP/H@8&H /A$LH L)H9HF-H H踷HIHHL9HqLI9wD< tHH9tCuA oH/H@8[LHZHMIH HG H]/HB8MHL9r @tIAL9ƒLL)聄HRLIBRH?X=V L(IBRmBJLBGBRHA|$=pH/H@@RHsHc/H4V'LIBRmBHLi'V LH1AWHQ/1@:tH.A?H ~0D TJUH X0T*MH裞H;H 1WsH0P8^ff.AWAVIAUIATIUSHHH0H$T$(L$HD$H$LL$ HD$dH%(HD$81HD$HH;t z@|$xRudH;t+A' :- LH=H@L=0H0&H5U,Ih$1(I@$A<'w<:dD$,IvH Il$B!^:MH|$H=1LHH螝Au AuL=;0L+IA9B$FB$1HA9H$IEHH@@#@HHH(H;H;~D$ H;i@R1L諳I<=<(H3I9B$FB$H<$tHAEH 0ImH‹%H=HuEHH‹%H=Ht)-H$TGHVH|$HaHTDŽ@7HʃT@A LD$ L=0H+I9B$FB$1Lꉅ衍H$HEHLH@@#@eE1Hm @#@Hl$HD$yHD$ @ < 9HL$ H $ HAx HDH $fA}>uDt$,EuD\$(EDT$ EIR8HHHA HI9u I99 1LǟAEDH$HLyAƅfDH<$H0l$@9WHH@H#H|$bLAHD$8dH3%( HHD[]A\A]A^A_<$uTH<$)DD$(Eu |$ H$HHL$HLL$H,A<{H<$u@A~:HLLD$0L)AJ `蒍IHD$0HD$,IMH<$gHHKL$HL$H}H$Afy!@H|$vH$I7V8t$(7L$ &xRt%HrH0D$  lL1E.IIHMHL+RA8&B uWH0B:HI9OU1LLT$ LT$ A>$D$ HHLRMA(tPrft9H<$Zf`_HrH0 }l$HH9@RH|$nLA@B!_:RH $˫H $wHHT@ L=0JI @88H`L HH &HLH`'H|$HH=cHHIkHrLf.WuH 0A:cH 70Ћ@@t<$$mH$1LAƅtH$uqe HLHH`L+IH@ I@8I`ML胈IHM H|$膒A8$HDEVƀVDA~:HL)HH|$HH~HTDŽ@<HʃT@L)LALD$0J `؈H= ILHD$0H7H}A>'LLEHHH`HB H0HB8LH=1蔤@HD$ H@H@H$f.ЄHHHL)HAUу ? H0D'L=I0Ƅ)`MIIH $9B$FB$L17H $HAHH@@#@t$LAH )0DTFQJH|$HHfXrHuVvƀV@RA8LqH|$輏LM7AF$A9AFH|$A'e I`H:~LM7IH@ AF8D} I`MLHL$L$HI0D E AA9F$AFF$A@RA7MAL)AyBHHHL)HAVуx? Hj0Dt$tvH$1LLT$ #LT$ A7D$ EfDAH 0%@=@ILGDH3kH$LHLT$ 謝LT$ At;L=\01WH>01@:H~0QL̏AAE/fH`HH!H+IH‹9A$FA$1HEHH@@#@HHL`HtpB tjIA8u\LH51載A2AWuH50@:t I@8e 1WuH0P8H$R$DD} DAWH0B: AF8LLT$ SLT$ LLO|%LHHL H ȃHHH)I9HufIAA}yM9vHL%0L1I9 LHA Ht>HuA}tM91LLS~HHIM9rL)M9wwfDIM9dA}yTHHJ #HHHH H HHH)I9HuH;yH9v=L%0H1H9v02LHA44HtMHuـ;tH94D41HHLD$H $U}LD$H $HHtHH9rH)H9wHH9;ySHIIEI9HI#EtHHHHIH HHCH9rHH#tHHHHHA1W H01@:@ff.AWAVAUIATUSH8H-E0L%0dH%(H$(1H]I$B$9F{R {#u]B85HH @ HI}H91蓐H]f.ƃ`$1ɺLHa3LHMIƀyRu1HLL9vHpHHH=YHMa E.tQ8tL1蚡HMIƀyRHH9 ARtA8tL=0EC%D=DTDŽ$HDŽ@pTL;#H*mHCRHfH$(dH3<%( H8[]A\A]A^A_HLY!AHM<[<{aSIGƁ`%H $D$ 4H $HL}HL)lH $HHHھ=H)lH $HHyL=/0DOHALAցDDtI4$F8R HH( F  H9, u H9u 1HύHMWuH80@:L=0AEA%@=@tAuH=kHƃ`@1ɺI}HaIHUHÀzRu1HHH9vHpHHH=;HUau6BRPHf@TBRDŽ#HDŽ@pTPHZf.L9cARL.fDHGH* HCRPHf.AEylHHcHH)HTAUуA?L=0 AD_;DAE L=0AD5HH9fyrE.H=#H $DiH $HqARfDP>P@Ɓ`@H $蛚H $*LI^I9L=0@HADD4<$ty<@tuH0H !HMSH<0uxufDSHH0H v.u L9IL9y@;$HL9rHMI$LP8 f.uvH5A0HÃHH@ L9A\I$HR8Ht@ uWuH5 0F:ktHL95; t+fCHH0H vfWuH0@:?A%@=@GD0HHLw:H)HSփ@? f.H1vHMLfDH0HI<$p83G8u5L 0AHL9s3A%D=Du HtB uŸWu̅uƐHMLH=HML1HHMLtfDHL9r]fHL9NADu>H] 'L9<,H1H $HH $HuHHH9rfDHH9t;]uLHHL)HcHx@ nI$@8[H51{HMDH=H $.eII$@8MtVH $HHz@ pHI~H9W51`I$@8HEHHt~B txHL91LAHMHH0H <.1}EDHi0B:xHH9EyAHH HH)HUу? HW0D+HHLD$AH`HmLt$HInL;fA`suM` C|0:ILnH@ IE @8Lǹ LLD$fLD$Ht H@HxHtLD$HH HH@ IE @8DLH IHHLd$ 1HH`LufHHHB IU B8LH 8DENH L`I H__PACKAGH9`IyD1WH01@:f1WqHʬ01@:YfHIIAxbDH身XD1HnH {fDfAxE_.Ax _#H٪0IHKfDHuOC|0:Hts@ tmIE @8u^ LLLD$}dHteH@H H@ 1WHsAED? H0DIApApH=1.XHD$HEHD$8dH3%(HD$HH[]A\A]A^A_fH10MoM9r8fDIM9%AMHDX uA} uMLMELM)L)H="1AKtWHEJIpH=:1VWHEHD$(HpHD$p@A} dt,Ht$hL0Ht$ALL)EHD$IcAHHtoALD!HcDHL9s+LHHA?8H Ht#HuE1E1Ht$1LuHH 0H8YHxt/MEL$M)L1AuH=$VHEAEH0ISHtALD!HcfHL9s/LHHA?8H HOHuE1E11*AE< dHD$(@ HD$(HD$KH|$(cfHD$1fM)MELt$DH>Hw>AGAHc0?D Mo"MGMMM,Ht$^fL0Ht$AIcAEHHtlALD!HcHL9s+9LHHA<8?H Ht#HuE1E1Ht$1LsHH#0H8WH.&AH0D,M0HH@ H@HHB HR<HHPHHDx H_charnamH9fzes % =H|$("Ht$0}HT$0IHuLXHHLLLMHHM<L H HHH)H9HufIAA}yM9sGH Ϣ0L1I9v5:HH<9HHuA}tOM9+H011LHHiLMLL)H=1mRHEC@1LLTH ,0HHtIM9PL)L`M9rf.IM9A}yHALD!HcHL9s/9LHHA<8?H HWHuE1E112H|$(HLwHPHT$0HIIUI9+HI#Ut1HHHHI/LLMELL)L)H=1QHEHP(hff.AUATIUSHL-0O HAU8vHx II|$HpH,7HH9rfHH9;\u{\uMH9tXHH9wJH9vHH HsHW\uH9w5\I$I+T$HPAU8u+HL[]A\A]fDK\tgB\롐MtHHM1j1jRxH HI[L]A\A] ʁwI-DHs/HMff.@ATSH(H0dH%(HD$1HP@TAJfHP`HHUƀ@RHtHPA;H@`HD$dH3%(H(D[A\HP`A:H@`HPHxxH@xP IĀt$HL1RA:HCfD% =tAHt$"LpxAT$ Ht$Hǁ 8vAt$v!At$II$I|$HpHt$LHD$`\HD$e@AWAVAUATUSHHH|$ dH%(H$1H-0HLLH)cH\$hL`IH0HHHzB pHY0D$D$HB8OHD$pp L,cHD$hI9D$E1E1D$DD$D$Hz0Hfzp# HrX[T]H|$OHHH?H '@8H\HHF H5c0H6F8HxL91LcLD$hH=ApLD$(AHu-H0LD$(HHxX+@AILI+nHPH9NA$IM+fL`AF €DD EEAF IHPHJH;H"Ht$hH|$ H9OHn0HH0HH @HH9t08 uy$WQ$`tHQ$ǃ`H9uAFHSXH 0H%A8HH H{pHDHMIIHRf#tEf!H+Ht/H1HHHx 'HHx 'HS+HDH|$ HME1jLQH)LPH IHĜ0HL1RNHCTHD$hH$dH3%(H[]A\A]A^A_Wu/Hؑ0@8%\$D$}@D$D$gfDW5 Hܚ0%@=@@H\$ H1HKH9vH9t Hx\tЃD$DLD$hM9:A<\urMPM9H0LT$hHCpf!f#A@H{XH0MЋ@@@"|$@@t@u~|$LLI6L)I+NHNHAN DA$MAF AN I~LaI4H9qrwIFLD$hIAH0!CZIHD$hHD$hfI9|$HqHL1dILbyDLsgILD$hL`AMf_MPLT$hAIAD$HD$huD(Hp@?@*@  L$ HHHx 'LD$hAAf|$-D\$LD$hD$ED$|$ÈD$G@|$cfDHO|$H|$ H1HOH9vD$&fDH9t Hx\t҃T$H{XA@ (LD$0H=LT$(;LT$(LD$0HH{X%AxNAx{1IxLLD$(ULT$hLD$(APЀHHHcH>D#H D$HJ!I^AT$M\$H\$@#ED$LDH+\$H\$(I\$M9 LM9@I@LH^wIBH^LHH=Z1gI@II1HD$hAAD$HD$hLD L;FIAD$HD$h?ȀAD$HD$hHHD$hf$'HfHPI9pH=)9HA\0H51@l$5D\$ fA$\LD$hIA1fII|$LHI$ITITLH)H)HF@HD$hI9w/HPIHT$hAD$HD$hL9m8 uD$IIUH9H9D$ D$LD$hL߃uWHуtwHH+\$H\$(H_usHt@L;0L$0@E LN It9HK#t$0HcI9v"f.D HHA?L I9uIL$0E LN IHO#T$0HcI9f.DHHA?L I9uL$HIM͈L$H9@l$HD$hID$IPL9% MLH+L$I6I)LDL$A DL$$ IzL)IIII@HNMfIEAFIHqHt0HH9qs,LLD$0L)LT$(HT$]LD$0LT$(HT$H@H 0D$IL9~A$IHI9yIAD$Ѓ?ȀAD$A@LLHL$(-]HL$(L$HD$hAA$ATfATHO0B:M9f |$DT$L@LD$h@|$ExD$GLjD$HT$xAL1D$xJH$HAHDŽ$j5H$H$HHHT$xHt$8HT$x_AXD$x@L9HT$0H0H  \ftsH0HT$0Ht$(HHHA H +0AH A8{E1L2H5, H1JKH\$pHH@ILI+~HH9 Hۺ̍CHH"LH+T$hHtHH9q| xe1Ht$pL1HcIHD$hIwIBHD$hAz{iH=`IlAD$HD$hUH0HHHT@ JH0HA81HT$pH|$hE1E1H$PLjV[ZH$1 lHD$pA$IHD$hA$ IHD$hHHD$hA$ IHۏ0HHH@ H/0HA8HT$pH|$hLE1H$PE1jdY^=H\$pA$ I`A$ IRA$IDIBHD$hL9Az1H$L a I A$IA$IHrHpI~SIF@?R<D$LD$hDDH=k1^Pπ/APH0H @l$H51Lʼnѿ,Hl$hD\$E$fHybHHDLH)HIp<8ȃ?H0 DH H0DD$HD$hD$@l$YHKL9}L)DHHI9uL)H|$DLaD$HD$h@|$E1I`MJMTHIHtHuH#=r<b{?Px{FHuAFu H9LD\$VD\$L$(|HD$h^\$ID$M܈\$SHZIMAN D$H=Lh111b\IZL}LD$8H)HLT$0H\$h/LT$0LD$8H=%0HHD$(HH|$(H9HNJ0HCHD$hH9HHƋ%H=HtLT$(H9\$(w"DII9tAB%H=Ht@U{+H{HyXH|$h>H<0CDH=>I5gHD$(HHD$hAD$HD$h1WH0@81W_Hm0@8JLD$hDL$LEL0AB(II9wadtAA $eIHD$hIHD$hLL)HDAAH9HNII9vpA8)ƒrII|$LHI$ILILLH)H)H냀8)EHT$hIAD$LD$hLIPL9rD$>LDL;FhIL$L9s,ICPHPH9rHGHL)L9HGIl$ACID$HD$h@l$3H51 (LD$hA7\$MD$\$LD$hAA$IHD$hIAA$ATAT\$HD$hD$\$x{/fLHE1fHDŽ$HH@ }H 0H@8dH$HLLT$0HHD$H9H$LT$0HHtLHC0HHHB H0 HB8LT$0LT$0HCC % =Ht$x"HLT$0{_LT$0IH0HHzXLT$xMKLH+|$(HD$0IFH|$@I)C nKtRA+DŽ$\N{UfD$LHAFu IH9rsLL\$@LT$8BQL\$@LT$8Iċ$IAD$$AD$L9\$0H$L|$8MLl$@M@l$HLH\$PLIMHL1HH4A$fCAD$CH9l$0uMMLl$@L|$8KRl$HH\$PIID$}s HD$(sHXH\$hHLT$(sLH+H(1WHu{0P8xD$=LI+FHAAN DA$HT$pHv'HH9 HҍBHH"LH+T$hLHTRIMfD$H\$pHAIHH$H$(a111][%L11WHz0p8 EHyXLD$0H=`LD$0111LD$0ZH\$hLD$0E1H03HHD$(A$IHXHHyAFIH9pMfL`[LLHL$rNHL$HH|$(L$M\$m LLT$0HT$x1H)D$xH$HH$A Ajx&H$H$AZA[HzHt$hLT$0I)I9dHyD$xn@H=4HH9H1҃LH+T$(LI+NHTIHHAN DA$MAN AF IHp|H 2H9HnMfD$L`H\$pHaWHL<H1H҃ UIHD$(HXuHH\$hI9v;ODu.t _4GD%H|$hHGHD$hI9wH\$(LLL)HHI WH\$(HAA $ALALALfALE1WuH~w0D@8AA]A}IDŽ$\N{_fD$AD$\N{_$AD$VHH@HD$xL[fzp#C HT$x @LH+D$hHH9sAIFLH+L$(I)ItHAFu IH9qsLL\$0SKHT$xL\$0ILLULd$xH=Ә\LD$0*AH=8|04HHSLL)HH$H$L\$PHHD$8H1.L\$PHcHD$@ItHAFIH9pIFIHt$8L\$XLHT$PUHT$PL\$XL$IML;\$0jH|$@@l$XLILl$PHHH|$@}@ϸH$H|$8Hߗ15.LcHD$@H4LEHEH9pHEHHt$8LHLdTL$L9d$0A<$H5z0H+]@HH_Hz0L!HcHH9D$0v68Lz0HHA<;Lރ?7H HHuHt$0HT$H1E1E1LL)LHHH HLl$PLIl$XL`]LHII@LHT$XL\$PHL\$PHT$XHy00L!HcHH9D$0v68L y0HHA<9L΃?7H HXHuHT$H1LE1E1LL\$8,KL\$8H7L)HBMP11HLT$0TKC LT$0% = Ht$x"HLT$0eULT$0IHT$x@C  LH+D$hLI+NHTIHHAN DA$MAN AF IHpH 2H9HMfHT$xL`H% =Ht$x"HLT$0TLT$0IHT$xC A H5|0H H9rt|$<øG@|$HLL\$0FL\$0IIQLL\$0IIHT$xL\$0L`MfHH\$(HT$ 1IH=7HHH))HWAD$HH@HD$xL[H=1LHH=H1 LH7HD$(HXpHH@HD$xL[HLEIILHID$L`Mfg He{0Hfzp#tgH1ɿ1);HWHD$p@t=HD$(A$IHX eArLT$(QH\$pʽHz01Hfzp#MAWIAVAUATIUSHHH|$HT$dH%(HD$81Ht$LH|$H)3<.>LL $L$\ lHH|$PH9TL $H4L $HHad0H`+@9fDM9' <_AII1<$H51T$HDD$8LT$(D$@ $T$HD$@DD$8LT$(}HgfH*IcȿLT$HHq/HH5z1D\$@DD$(HL$D$81HL$DD$(L D$8D\$@LT$H|@H=1DD$@LT$8D$(:HIADD$@L NLT$8D$(fAD$LKl0HAu߀PrA|$_1 ] ߀PO L=#m0IHLIxDIL $H`;L $i@HD$ fHƒHH H*X<D1DD$LH5IA A$DD$XL=l0%ELMd$M`IZ#f.H=q1DD$@LT$8D$(H HAD$(L ŮLT$8DD$@f.Hio/H HYo/H H|$fHHH H*XDHt HI9tAEp@ v <_t<$tIuLfD1H5LT$@LL$8DD$0L$HT$ D$HLT$@LL$8DD$0L$HT$$럐H5a1L $ L $pHLIE1jL)LjHc+jH Hf.H|$PHL $EtOE1 H=|{13OE1(H5+1ۈL$DD$DT$DT$DD$L$pEAvAUATUS1H9H€vuHHPH0H q@1w+HfDHJHq@1vH=va0Qы@ƁDD@uuhL%|b0HI$HsI$HZHk(M ΁uILmHHD$C6I$HD$AE(M "u9H b01HTHHDŽ@7TH[]A\A]À;GDHHD$HD$`@ATIUH-a0SHExRt.HH5 HDH=˛1H<=HE@RL17HHH0H v?vuGH0H v,1Ҿ7#1HHUZ[]A\D;t}u9HUTHDŽHDŽ@7TZ[]A\1H7;t}tvu1Ҿ7H`AWAVAUATALMUHSHXHt$(L$H$L$dH%(HD$H1Y7H=HcH>f.H_0HxRA$DHP$AUSHtHtzI9vUH HHHMH;s3 H u@ z HMHH;rHUHHH H+BHAHS1L MI$HHoX1HH IT$H9HT$v1f.H9t(HH9w ALHHtL9': gLcILt$hH\$A}Ld$`LIHcLD$(L$ LL$0rLL$0LHHD$Iqy%HL$HLD$(B(HHE`HcD$tH)HȋL$ HH9k!fDH18I'HE1@:H HH AL$ Bff=\;HD$@H9BP,HHT$0LD$(L$ DHT$0LD$(L$ fJ@HBP1LHHH7HL9H)|IiILL$(L\$0IҹL1LLL$8\$ L\$(LD$ >HMLD$ L\$(LL$8Ld$`[H1A1H1cI~ H\$@HHRHSHMI9wf.HI9;yDLd$A'HHHL)H5AQу"? Lt$@IMLd$ H\$H$Ht$HLD$(L$ H)t#I~LD$(IF L$ ` *H D1HfHHSI9HH#t1HHHHHH1LL\$(LL$ T L\$(LL$ ILL$(\$ IL\$0L1LL\$0LL$(LD$ <HMLD$ LL$(L\$0ILL$(\$ L\$0MIMLt$hH\$Ld$`E1Ld$ H@18E11ɺt1L$LL0L$HEL$kHEHwwH\$0HH\$@HH\$HHKH]&1L#H=4l1eH|$ t$H=pl1IDAHHcMcxHEpLcIMLt$hA}H\$Ld$`LHcH=k1H=k1aAUATIH=2 U@1SHAL-K1LHIEHL) HH1HBX1H1Hh HH@8IEHHHBH1vIUHH HHHIHHHH@H[]A\A]ff.AWAVAUATAUSHHJ1H-6E1dH%(H$1L3IHUIB$B$A`tȉB$Adž`UHEh$HLEtXHHAttwAfIHHHHRL9N{t8HL)H~%A?=cutuAWHAHHHt3HLdtL3A{t?IA1@{tD{kuIIMMMMHHRHPIdžHEIIdžx$'AF4oA;F8eATAƆAADŽ@UHЃMATkHQHH HqA8HHkfA^IUh$AH$dH3%( HD[]A\A]A^A_f.{KfDH11(HHLyLLLHHRHQHǀ{HHǀHAAWoAdH=h1t@AGAu AIL9(LYIHfDAIL9L1&IHA7L9v0L%E1fDIA7L9t@A%D=DtH;1@:A?#zA!oAWL%E1Mo AUIA4DDtLu#EHtHcA%D=DuH5!ZLHHLNHu,B\AHHv%D=DuIA4HHu$IrHHA4HHtI<-wH@1Hl$D0HA1D(HeD1D$H=1D$%fD1M.Hl$ HH0hLL{H>iLH=W1DLJHH>18u EH?1L3tEt2HIB18uH:18%|$|$I11A:HHHQHHHHHHRHQ@SHHǀHǀH>1KHj<1H8B7H?18H41H0H8-uxt HuLADDt HuL)LH=MV1/L=k?1AxHcHq HhIHHEA%D=Dt HH9rEH31I~AH0HcHH9H= b1fDAWAVAUATUSH8Ht$dH%(HD$(1HBA1HHHHcHIL,IMHA LqXHi8HD$H H|$_MIIM}HQ HL$L!HL$HtoLHLH|$1L)LLL$D$LL$LLD$fH\$(dH3%(H8[]A\A]A^A_DHHA8IEM}LXMMlIHRHIItAEuH9psLL\$ L\$IuL\$K?HL$ I~LH|$E1AL\$IUL\$ LZIHPIFTIH@IMIHPHttHvHINHL)(<wUL߁ HcHyIUHj8DAE1L\$JH@sIELXH=_1HH=_1ff.fATI UHHSH"H{Ht H H{L[H]A\HAULTLSHH(H|$dH%(HD$1H?>1Ht$HHHts@ tmH81AH@8uWH|$Ht$EHAQLA=|HD$ HD$ H)HEHD$ZYH|$dH3<%(u+H([]E1WuH31D@8AABfAWAVAUAATU1SHdH%(HD$1IH71H@8L5F=1I6HHt_@ tYLM9S1LLHD$dH3%(HL[]A\A]A^A_Wu H821@:uA$H~;1%@=@uL5<1I6H`AIٺLqIE}8I>MH4$H`3I1HDTIIcLITHJ#@THʉ@TfDA<$:A|$:ILL5;1AIH`IE,IH4$H`H?COREf::HfHA$yCHHLL)HAT$у? H91DeDIH4$H`O1+j ^fDA$tf.1L&I>8(It GR/fGR$LLdAULoATUSHWtrЃHAHH--:18E> HExR~=uODEuCVv:HHD[]A\A]?H-91HExR*@AAO@RL=uHA`HfH5A81GH-n91%@=@.HMH_HLDgH9r$fHH9t&%H=HtH)H~ f;=>JAD$<9HyHcH>HEHxRH?31A|H 9Q$FQ$HHD[]A\A]fDH Q71DDtHDDt sHE@RALQfD@RAzHHD[]A\A]fH1Iĉ؃<$AD$<*$-<# L-D21IE@8HEHHB HL9Pu1LWA<$$HEIMA9Q$FQ$@RLNHAAKfQrDHAR HH[]A\A]ú@tK%tF* AD$<*t <{HEA@R L%DAt$H=JHt뺹H=JwHMACAMAA LI}HAU$$((##''v&&g%%X!!I:""+   ))**DWuH0*1B:Hw31%@=@ 1Ҿ8LIHELA}f.@RAL]f.Äy]H-HHL)HAT$Ѓ<؃? H21DPHEv1H21D)A|$*11Ҿ7LIHELA@RL<-ff.AWAVAUATUHSHHH8D+dH%(H$(1H& L%x-1HI $Q8Ht  1A$@HHE tOHM< Ht>t7H5a11f‹%D=Dt ;QHuـ;$tDL|$ E1LD$L5LD$1LIDLD${a Aƅtt@1H$(dH3%(H8[]A\A]A^A_DL%a,1I $Q8utAQLD$IvB|:IpH11H HH+@ !I$ @8 LL^H5P ) H@Pu HxHtHHxL1vIHHL)H~ A}=Ht$L訁L#1HA$TMIHTHB#@T@RDŽ@7HʃLTA}(83 WH%1@8%ҁ fHHHHL@ BI$@84A t$DLgHf;$CH-/1HUBrf-fj`HAHUH3.1%D=DHBR?(9f.HGHMHx=HE@] VH@HLH@*yfA}>B|:/Ht$H.1D4 fDWH$1@: DEH1L`HUHL)HHXE14@AWAAVAUATUSHH#1L%Q$1D0M,$AEH=*1HZ!1H8jLHp"1MIIpHHyH HH&1HHxHCI{ AxA8A@Hc!HH )1I$HHC h\H'1H@$HYHCHMI<$AEH+1HLhPHPXIEH@HHt H@HRHBEHD[]A\A]A^A_H=yL"1IHHIAtt 1fL@A@H)H{lfDLD$<$LD$<$H{I<$H*1HH@PHPXDHzHHHDHH)1HgT4LD$H $L!1LD$H $HDff.@SF Hf%ftHHPPHB\H\ [H~(G % ="1H=H€toH=b-H€tTH=-H€t9H=H€tHƹ H=|QHH\K [HRHHNHRHHRHB1[DHG2ff.@PXHH"1HHt#HtH=vK1?H=K11tH=`>1H=K1AWAVI1AUATUHH=VSӺH(dH%(HD$13HD$HL%)1I$DxEAHLHHH9HH)HL9L9H='1DFADADHDIHHRAM DDtL)HA=fHBfH|$E1H5=A LHځH"1II$dHuH$HP0Ht HHP H 1H5=LMnI4$IcHH?@ 5H@8#MH5<L1?I$DA9}H I$)уPH 1H5`3,L1+I$1fHǀHD$dH3%( H(1[]A\A]A^A_fDMtHL9AA LhXMeH|$H5;E1AMf1WH*1P8@LHL)HRH=F%1AUDDIMIHHIAUDDtcH|$ H5:EAAHaH1A@AH5:H|$1AE15D19L%%12DHT$H5:L1DH|$E1H5 :AHHH5CG1LI$ǀ~fDH18utIIcIBfDH59H|$Ht$E1D|$AADAW@fHq#1IcNjH|$ H5A9AH|$E1H58A|Iqf.111AUHH1]H%DUSHHH-#1HEHHHHH=FHHEHH9rHH9t; uHH[]AUIATHHF"1dH%(HD$1H$%D=Du@AEI%D=DtHH1E1jE1LZYI9H1L M I$HH.1HI$L1LID$LL1IZH"1HTHHDŽ@7THD$dH3%(HLA\A]f.AEPt:<w 1D1LIPt܃:<vH"1H<$HLHvlfDIff.AWAVAUATUSHT$XH|$@t$HL$LLD$PdH%(HD$x1HS 1%D=D H1L5j!1HIB$9FLHD$@D MAE B8EHD$jDd$jAAHD$`HD$(B$HBD$j`DB8D$\D5<<N M-AE "HBAHD$ Hu6H=5HD$AHT$(LDD$H|$DD$H H|$H)HD$HD$HvOM9AE .ALD$(LH1H5(RILHM5 AE * HG1H@8 Ht$H 1>@HHH !HcHD$HT$0HH9v@HH?H H9uHT$0HD$0H9HED$HD$HH1H8H|$ Hh HHH[1HHD$ H#1HHHxHC(H HfHOHS(H\$ @H@ HHHCHHt$0DL$XHp { |$_DK ED$?M&H\$@H\$`HD$ HI$LJHH)ށIt1uH9rsL|$ L>IM&LHI$H|$ LOMH9fLH)H9H|$0\DD$HH{EHt$(HT$H|$H|$HT$t:I$I9$u t$LHt$H|$TH|$oD{HIHH@ H1H@8u{EE}M&HII9$ HT$` M$\H)LH9IAHHtfWuH 1@:tEkH1AtAUM&D$?HII9$9fDHt$ AELHH+VHPIH;rLH+VHWAUAM l  Cf.H=Q1Hy$WQ$`tQ$ǀ`H1HM&HD$ I$H H\$@WVH1@:EE<,HBHs1AAHAH+t$@< HEHDA:AD!HcHD$@HH9v1DHHLF?A8H H*HuH|$@HT$`E1E1HIHDWuYH1H/H=w/@8%MIaIǡH<HDHD$ H0HD$H./AHD$ H/H=/HD$1WHQ1P8Ht$H߈L$HT$HT$L$u AI$AI9$ Ht$(HKI$tM$eA${uH1HA$A$A$`tA$ADŽ$` DAE\ID{HfHI}HHIUHTITLH) H)HSDA} AE If. H|$ AE MMHL+OLHIfDI$HtY@ tSH1H@8uCHL$0H|$@LHX8H=I sA$WHT 1@:uAUTAT[D{A\#HFL$XHT$`|$?L$t H|$ O H=1H|$\J$J$`H|$ HHJHqH;rHxxH|$ HH|$Pt HLH9uH+T$`HD$PHHD$xdH3%(wHĈL[]A\A]A^A_HD$ ppH81IE1HP$WuH 1@:HD$HD$0#TfATABPMt;AE t4H8AHD$ H/@H=DHD$AWHu 1H +HO8H=*@8%MIaIǡHH#HHCHDH *HEHT$ H?HDHT$fDH\$ HT$`Ht$@H蜿K HT$(H|$ LLDD$HMt_AE tXDD$AuHL|$(LL1H5oGMIHl$0L|$H1gHD$@e1WuH; 1P8HD$ H|$ HϾHT$`IHHHJHHxHwHpH{oH|$ HCIHxx"Hxx HD$(HHl$0HD$D$H` 8*@HD$0HAHD$`HHuHD$@H9v8t HD$`H|$@HH3Ld$`HD$jHt$@HHD$(LH1IHLA:AD!HcHD$@HH9v1DHHLF?A8H HHuH|$@HT$`E1E11HIHH(AHD$ H'H='HD$UAHD$`HH|$ H=oDzH+D$@HH+D$@H'AW AVAUIATUSH(H-S1dH%(HD$1L}II`M`HH $H)kH $HILDA}IULL$LLA>H|$dI9MHA`$D$ H$L5 1L}IP8"fH 1HÉуIH@ L9#1LHL}<'t<:IIR8уHt @ mAWpH S1A:QZ@AWuH5/1F:c3Hs1%@=@kI@3@yF@HHLH)H{AAA? @H=1@3@tM`HcT$L)H9MH=E%A`$I>HUHH@ I @8L!IM}L1ּ1HL1I躼L꿠H @HHUIHB`BQ8v&APHD$dH3%(~H$H([]A\A]A^A_fLH1cL}zfWH1@8% fAGE1111L'H$HJH=#^fDAanIabfD1H¿Yt$ HƒRA}>IEAƇ`D$I9;IED$ H$A$ARGVAD$Hct$1LHHH=1HH@HH@H1@tHHx Ht @HD$ML+L$H=BHH1H=1fDAWAVAUATUSH(H;1dH%(HD$1LA@R<to<AuAVA@RIAcH\$dH3%(H([]A\A]A^A_A@R1E1L|$L5 0HfIL@8[IH0@ &IH9.XEFH1DYI`E1M1ɺHLL$LIEHaHw]I`1DL $LD$.1 L $LD$t41)fJHIH@ I @8HLA<$(HHHpxHfHH1ʲLHIHHxxwwH@x1Ll8:HI9GLM;} ApR@{(!Є'D"@MIa1AWH0P8 EAWuH0@:UH0%@=@Dx:Hx1kHSH1qLHIfp AyMt)ATHMADŽ@:ATISf.H!@EHHHH)HUу? fDLE11ɺ虵IHwHIJ$99ǀ`*DH蠽L3KHUfA2A t A@8I?=pH=11=DA@RSH1H @HI=wH HHЃ|! IUuNH=-pLhH@RHcIUH=u 5MtH=01軪HMtL H H==01>MtLܹH=01ff.ATSHHHF(HHRHt%E1HuH@8const@E1HD[A\fH@8lvaltd8methufxoduHAH\Dxtu1H58AHH\H@\uH=0fxueuHAH\ifDHAVAUIATIUSF f%f=u'Lv(AF!@u4L贸[1]A\A]A^fu[L]A\A]A^InHu%DHLH]u"IHHt:E!@uHLt%11ɺLLQHH&@ID$(@!@zP@1DAWAVAUAATUHSH(L%0dH%(HD$1I$s8d{R CRH;HcH>Hƃ`HL='0HcC8HS@HK8I$@RIAR$HǀPHL$dH3 %( H([]A\A]A^A_H{@ Hc1HC@I${R DHcC8HPHC@H9S8I$1H^0H@}>I $AR<VL>{@q)L=0I@8xHHN@ DL9+u @L1H-I $HLI9vIL50f.HL9t-HA%D=DtL9s,=ARL=W0<*A8HQ@HI$@R,f.HcC8HS@L=0HK8I$@RHcC8HS@HK8I$@RHQfDHcC8HS@L=0HK8I$@RHH9BL50HH9+EA%H=Htƃ`H9}-HL=+0I@8vHHt@ uWWH0@:FADE1LD$1ɺHa/I$HH9wcf.HPH9HHAHHt؀}@`17-@1H;-I$H TDŽ@HЃTI$xR HU@RH=8 H:111oI$L=0=H!@H{H]fDS@8H\HDHHHSI9w@RHQeHH9L=%01H#8{HI$HH)Hf}su}bHH}1II$A8:H|@RfDA%@=@H}ƃ`-H9wEHH95A%H=HtH9f.I$@R%HHHH)HWу? EPwPH7WuH0@:L50A%@=@EHHS@ II@8<EH0HL9r1jfI@8ukH0LHI9>I@8u{HHtY@ tSL5!0AtjI $HHt@ uWuH0B:vWu Hx0@:uL50A%@=@tI $LHHLH)HBSу0?L5U0 A+H]L9UL5(0HA@@ufDL9GHHIA%D=DtL9RA=EtDD8HL9HS<\uL9sHA\t1HmcHpH<$ϰI$H<$0WH0@:L1H8I $LAR`@yh@H-HgLH)HUЃ<?L50H AHSHL50AEtAH=LD$H $H $LD$HtxD8L9r#D@8t-D8HL9vHS<\uHL9r΃YH@q@xxL=0+I@8udH 0LHI9I@8usHHtQ@ tKxtAI $HHt@ uWuH0B:ufDWu H0@:uA%@=@tjfHHLw/H)HSу? J1H贪CHBDzHH1谳I$LH1bI $LH]L9EA%@=@F^z>AH=3LD$H $薑H $LD$HLff.@ATAUHHʠHDHH]A\DAWAVAUIATUSHH8H0L"HL$L8A,$LD$ IHttDY A tgL0I@8uWH 0@DI}II9@1I9H0D$ADEWAH0@:H5&0@DILt0I@8u H:AuHM0@:VH0@%@=@AEH0HHHd@ ZI @8HHDH=k 1LD$ߙH5LD$L|DD\$DHL$HL$D\$HtjE<w?H<-HcH>Ht$ AEƒuHD$ AUL#IL#AH8D[]A\A]A^A_DAD@@H-H#HL)H~7AD$ƒu'?H*0 @D$AL1E1b1WH0h8 E@DD\$,DLT$LD$ūLD$LT$HD\$,A CEWDY f.@>Ht$OAE%AEuL#AML#AM@L#vAM@L#fAML#VAM L#IAML#A0DDu)Ht@ uƺWuEuIM9wLL)H@ H@0H@8H5L1HHHtn@ thH0 H@8uSAF % =tvL1 HH0(HLH[]A\A]A^A_1WuH0h8 EAF % =uI~1W#HB0P8@M'&H5LnjfWuH0B:H 70U@@„IIR8 fDAH5=0 IȉփH@ LM98Lǹ1LLD$軦H;LD$HA:IR8փHt @ eWjH50F:JTDWuH 0A:VH 0EB @@tA:uL9H 0DDLH)H@ I@8~IH5L1,"EEylAHHwvLL)HEXDكAA?H ;0E EB@EEYH 0Bh@1LLLD$ΛH;LD$H;CfUyaHHwmHH)HBDEDL%HL@0H1Hj09L%#MA M\2AVL51AUATAUSM.ImE uwtHE@t HH@uu@1[]A\A]A^@HI1DH HpwHu2tE tH IE1[]A\A]A^H}E yH1H51H Q tA#uIEM.cH1HIHHHʺH趘C@uI]HrAWAVAAUATAUSHL=1M/I]ImC H9t E C HC@HH@}DA2H1H@"@HDH-HHteI]ImHC@I]I/H[]A\A]A^A_E t"HE@tHH@cH9t+AtI}G E uqH1[]A\A]A^A_E t5IEIE )gH1LHp0E tH {y@H IEfHDHHHFH1H 1ImHB %tRB#tLH1HRHHD+ IE fHxzHhzIuH訦1HH3HKHG HWBt}HHBtqHBPuhH1ATUSLb,D@ tKH9t9HPH;St/Bt)HHBt LHḨHuH[]A\H=1ifAUAATIHUH֍DHL]HA\A]}Lff.ATUSHHGHHP HtvHLH)HH9 qLI+$IM,$fDLtH14@H1H@8|@twII}HH91.M,$AMSLD1L D@LH}tHѼ1@AE%@=@ID$ HPI:IHPI:I$LhM,$)AEyEHHHH)H)AMAAA? Do:f1ҹL!H1N+|!I u@8tjH(H5N1[]A\A]A^A_v|M,$AMAE^aH5H=4-1֌Hl$I$Lc|$ H)J|8 HHH5<N18vMHڀ#uH|$HSGO HBHL$IH9w.@@0HH9t1H@'u\qH@pH)T$H(IH[H5]A\1A]A^A_uAWAVAUATIUHSHHL=1MIIHxzxMI7HnM#HfNrHAF  THFIHHʃFR<@Tu VLRH[]A\A]A^A_H1薆HMfDHHwL=ƺ1I/HEHx(HtwwHECHX({ .HE@#HEH! HEH"LH7[]A\A]A^A_II^Hj< =HHŏHHHt4L1H<+HADDt@1HHH9uH@H9ʀ;tNr@;w:HH"x@\+&u A<${kI71PH;uPH;t@ƆVQ@HUqHEI/H1IH 9Q$FQ$@RL?B] HBH\+HH)HfDI7;uHHFR@LDtI/HE\xI7@$fDPI7t@[ HDPHt]uxc]DH1H8H/1H8tCH5G}sIuVvƀV@RLAH5|rUSHH1H+Er fv f-@fwH1@9@-ty%tk`H`HHaHwHBHHHaHvu1HHtC@ t=H1 H@8u(KHt?H[]HEH#f1WuHF11@:@HH5 1H%[]H`vpfDAUATSH dH%(HD$1HIH H rHt H)IHV1HHHtR@ tLH1AH@8u6L"HkYILDHH=G1'A%E1WuHR1Dh8AAH͵1HHHvGHHt`B tZH1HB8uJH\$ 11AH贇II)K@D$ ^E1H\$ @t$ AD$ &Wu H1@:uHw@t$ E1H\$ AD$ DAVAUATAUSH1HOnL-1HIEHx8thMuIcv8dwIF@VAV80@IEHHhI}LJHVrIEDV< t IEt;L#l[]LA\A]A^I~@ HcAyIF@MuIcv8iH=Y1yHiH 1HT @Rэrt%HcDŽ@@THD@8EuƀuHcDŽ@}@֍qfZ vc\vY^(vOa2vEfFv;hPv1oZv'qnvrv~fAUATAUHSHteIL-1IMHH@ HI1 H@8LHD1HEdIUTHHDŽ@7T@#t t1ɁLI H1E18HAAHtm@ tgH1H@8uWA HLHD[]A\A]`1W"HJ1P8 E@WuH 1@:uSuWyHt[fuHu1Ht11[pH=1:vHfH5uH=1[ff.AWAVAUATUSHH1HH@0H@Lp(ML=1HHIId1L$oL AD$ <DHHLRpAD$ uAD$ I$H@ IdH[]A\A]A^A_DH1L MI$HHo1HH <1I$HID$HA8HHfHQ8@@ I$AD$ ID$$11LkHLHLYfH1LLHp$H[]A\A]A^A_if.LchAD$ f+_I0LhH =1 AWAVAUIATUHSHH}1H@8u`AH1HHHt1@ t+MuFHDLH[]A\A]A^A_Jf.WuH1@:uE1DHHHHHHJT-H H HHH)I9HufDHs;yHLH)H)HHHL4HHHH H HHH)H9HucHS;yL9sML="1fH1fI9LHA HHuр;t\L9 DDH9wfDHH9u;y H_HA N@1LH]H4HL9>}fH)I9w@HI9t;yDH@HHKH9?HH# t1HHHHHMH@HHSI9tHH#t1HHHHHmff.AUATUSHHH-1L%1H}I$9B$FB$H`GLm1H~]I $IEHEHPB#@9Q$FQ$@RHH7[]A\A]ff.AWAVIAUAATIUSH8dH%(HD$(1t nHH71HHCL8HC HL;HC(nH1ƃTHHXMA1ǃdǃƃ CRLƃzAtIHExHv HC@v(HCH!mHMED$ D% =9Ht$ "LׁED$ IA 1A8AD$LMBID$AHHHHI$HB{HHǃHǃDWHD$(dH3%(H8[]A\A]A^A_1MH=@H~HIV CR1ǃdǃfLƃzqI$M|$H@HD$ A I$H@HD$HLDD$~[DD$HLLLLHHI4L H HHH)H9AHu'H@}yH9sOH 1H1fH9v;8HH<9HHuր}txH9Ht$1HLlfHt$ DLP}ILH5QL1HDD$Ht$tWDD$Ht$H ä1HjHH9IfH)H9rfDHH9 }yHD$VfDH1H(H HUHH1HH 1HEH HEHAXHHHQXHEHHEH@HEH@HEH@HEH@ E HE% @E IH@HHUH9HH#Ut1HHHHHf( _H 1/UH~jH5H=huff.UHSHHXH 1HHHtwwHm1HHWHtHEHt H9t\HHtwwH}xHtwwHHtwv}wH}@uH}HuHuHEHHH[]u@+tlfD`"fD{`jfDk`ufD[`fDTtyATIUHSXHcHf@-7 w.HHt!G!tGLHH)H9tt&fDHuH[]A\fDHt$`Ht$HDŽH1HHHt&@ t H1HA8u f.1WuHΘ1@8@HE1HHHHHGH9qOAWAVAUATUSH(LLLLIIHMHLH9HAHI)I)I)ILD$I)E1H)H)ML\$MDI)HMD1AtIIII)HIEHT$lHt$HT$H=g1IHHHHHHt$LHHHHHt ILHt ILEtHHytHHQH([]A\A]A^A_@AWAVAUATUSHL%1HII$HHG H 1H A8HHxLHHHNt-HHHH H ЃHHH)I9HHt1fDHHH?HӨuHHHHQHHH!HH8HI9sIVHH H)IvHH9ιHHBHI9~fDHHmI$J +HL$HLHI<LL) aI$HL$J4+HHHrHI9u;HAII9t+Eyƒ?HIȀAGAWI9uH[]A\A]A^A_fDWtwHHxLH_I$HL$HHLjHH9rqfDHAGH9ZEIyUH? Ր1I9dD8HHI9wsH=̻1-nH5JH=1nATAUHHPHDHH]A\U\DSHdH%(HD$1udW H% =t?H"uS H4$H[HD$dH3%(u1H[HHHpH4$H5H=ɺLmaATHUH-1SHEHH9wAt:HH9w3HSIH)I)~]HEL)HHL)bH[]A\H5H=G1lH1HHH9whH9r_H9tRHٖ1H2 @H9t=H uV$V$D`EtD‰V$ǁ`HH9uHPH5H=1(lUHSHH-ܛ1HEHHzH9H9HH)H9sHH9HH9sHt HǀHHtH9s HǀHHH)[HEHHHHH)ZHH)H)H)H)Ht HHHHt HHH[]@H>H5LH=f1jH1HHtƀzDAWAVAUATAUSHXH|$0Ht$ T$,L$8dH%(HD$H1H]F D$% =vH|$ Ht$@qHD$HD$@HD$HD$L`Ld$@H1D$? E1Lt$D$*1L=uED$D$(D$+@l$)AH }1Hŋ%D=DD$)@EEt)H=\t$ Wt5HHH9s"IA4$I@  L9uH8L[]A\A]A^A_fDLKQfDE1H1H(H-HUHH1HL%\1HEH HEID$XHHIT$XHEHHEH@HEH@HEH@HEH@ E HE% @E IHMzf1yUIiHLHHHuLMH)H)I)H)I)H|$1MLLDHL$LD$LLt$ H)MHHHEHt$(H^H}LM7H)MfIHT$IH|$HLD$HFH6HLNHHH8IHHJLHHtLt$ ILHtL|$(ILHEHpHpHuLH+EHF{D( \I @HH=1E`DH1HHtMLMtAIH@Hx5HIPHHH9x0u4LZHtpvpHHHKH=11ff.AVAUIATUSHHd1H3>HHtBH8HcH;OPH@L$HY1HI9Aօy AHuH[]A\A]A^IEHhEED.AEuL9@sLLXH3HLcMEDL?IUHHBIUIE@H[]A\A]A^fDA|$ I$HHHXEts1H)H@DIt$LH9HGHιHS8I$HXHLYHuHH`QIT$H4 HHH9rf.H9tnH< uH9t^HڹLH)7I$I+\$HXT$ HX0^H1H8/T$ LӉD$ ED$ H1AfDAWAVAUATUSHX?H1AHA@u f{pHLHHHM@?H)L1I)LLHt$HH)I)LI)I)HHHDHt$HH)HHEHT$ZMH+H|$u HEH@11HDD$ FDD$ HEHH1AAHHEHMLXHJ,9HNLHt@ jH;1H@8VLL)tHIHtHHIH L HHH)H9Hu+H@}yH9DL$0L=1L\$@HL$8LDD$OIHH@L1fH9W0LHA47H'HuA8u;L1HHL$(LD$ :HL$(LD$ HII9rfIHDL$0HHL$8LL\$@DD$OH9DIIIHLLLtHD$HHHtHD$HHdtH1HB$ǃdEtFH_1t7H1H}1HH9t!HD$L1DD$H)H4DD$HXD[]A\A]A^A_fDI9H9t HǃH9t HǃHEE1E1HD$E1E1H@H@1HD$HD$HL@W+MtL@H1HHE~1{Hǃ8u(H1D EBHۇ1DEH5H2H1AE1HwD{E1E1ZWH}1@:LL)HDD$@L\$8HL$0LT$(DL$ :DL$ LT$(HHL$0L\$8DD$@B@E10LXWHч1HfL)ILŹ1LHxLH9wfDHH9}yEtcHT1E1E1H@fDH@HHUH9rHH#Ut1HHHHHfDE tbH1HL@HDD$(H5pDL$ 0H1DL$ DD$(H11HAf2HDL$ H50H{1DL$ HH1EE1H4f.T$LHDD$ QDD$ H5H=1-Vff.fAVAUATUSH dH%(HD$1H1HHHLH<B 2H1HB8L9}ELH)bA$|tLL$ADYJ8K1ҹE8HT$8BI,I9H=\HDL$GtvHt$@1HH)P t`DL$HچT$HLņH5<A[ALEH:m1HD`$Dh$1APU},Hm1HD`$_AXHHcB8HJ@pr8HLL$8A%@=@r8ƂBRnLLT$X1H|$@LT$Hl1H@8/A%@=@Hq17Aҁ L1LT$2HLT$HD$8IDzgHHHL)HFAQу3?H ADdHHHH)HAIAAA? AD1H6HHt$@H)LLT$/LT$yHD$8$LLT$/H|$@LT$o/HT$8BI25DAWAVAUATUSH8dH%(H$(1H%p1HDp8EH-߀[HxX@T?{_C<LgH]L)L HD$Htb$qH0H E<]H0H HT$ 1 }]HHAL;d$AH$(dH3%(H8D[]A\A]A^A_fD>uOȃ<[tHvi1H0V8 t? u7$@uuH=HklfDZNFQ D@HT$ 1HHL;d$!A@\A\$L\$$t*H=.t$gt$L\$HuAdABl L9|$A\$MM\$M߀-k؃<$Hwl1%@=@ȃ<$@؃HAHwvAD$tlƒHAHwZIT$AHHIHAHvH1LHL$L)e DHL$ADDIDDÃA9AEDDBD A)ŃBl L9|$EmnDL g1BD kAI@8tHl1HHH@B 6HL9P1LLD$1LD$A<$$4At$@% H= LD$\$QL$LD$HAt$H='AUAL$HLD$DEfA\$H=L$\L$tHtAH=L$L$l$MIAEMDEZ-A-=LHj[]A\A]A^A_"1Ҁ=VTR9HH[]A\A]A^A_ tA5FP+E<.Mƃ`&HaH5e1HaBTDŽ&HDŽ@pTH `1H19N$FN$H BRH[]A\A]A^A_CRgL}=HC`Hf.H*HCR HfD&L$ H4$N9H4$L$ HH@ LM9u EL1L^)H^1H0Hmd1N8HMfI`LM9o`fDH1fH BRWuHXY1@:3Hb1A׋%@=@uoHc1N8H`u @]CCRLA}=ME`LD N @n$H]11H5,&H]1H0F$`EEySAH-HwXLL)H_Mȃ<ND?Ha1 DH}a1BDLL!H5 ]1H6Eff.@SHfb1HH\1HLHA9P$AFP$HTfHrHHu@pR?(t;188(t/HALuVvƀVD[AJ[Dff.fAWAVAUATUSHH-a1dH%(HD$x1D$HuH.L=[1D$LaL_LLOMAB$Ɔ` DGD$A~uD$DGLOL-_1ADLAD%H=H?BHHÉAD%H=Ht">vj"A\UAB86 HH @  HL9>A2ADЃ DH!@HsHLLL$tDHLL\$ \ HML\$ H9bHHcT$tHD$8LH_H93 H|$8f2HE H)LH_T$tLH)LT$H=m1H\$H9_8t>GHD$H@Ht$1HLT$LuLT$HG8H8H5l[]A\A]A^A_"fDUSHHn(HtMEtGH]H` f.wHHH9tH;HtwwH1[]UE11ɺ SH5iHdH%(HD$1HY2HHxHHt3P H1t u$Ht$dH34%(u}H[]D1@ۍkI t?H5H $HcH9sÃ)rHHHHGH $"fAVAUATUSӅL7IHAuI~ Ht /MuNH=XH^[2Hc P H>M3$\M3$XM3$TM3$PM3$LM3$HM3$DM3$@M3$<M3$8M 3$4M 3$0M 3$,M 3$(M 3$$M3$ M3$M3$M3$M3$M3$ M3$M3$M3T$HcHA HcHD#IF []A\A]A^ÐH&HH 1H=f1[,ff.AWIAVAUIATUHSH8G HL$DD$\$tjÁ\$ u,tWMwMtNHD$HD$(<t 1AG IWHT$H@HD$HD$(D$ L%U2D$$E11I$H$D$wv IH@ L$IHxNAG %̀AG t2I@\u)HH(Ht A f%f-fwI $f.LIGH$I$IHh(Ht LHem Dd$T$LLD  At$_IHHWM.L$HT$MLH?HIGHx5T$$t IHHH#N2HH0HD$Ht$HT$(HƹH'D$ tK H8[]A\A]A^A_H|$IGH@AG IƁ Hzt$ H|$(Lt$L%S21AN I$@Ɖt$$H$  t 1L H=fH1J)f..IGLpI@]H;h Hx8IHp H9t>HcW;VD L HH81Ȩs"H8LL[]A\A]A^A_2fIHHhL$H8[]A\A]A^A_DIGAG 1@L;dH I(IKCIGHXAUIATIUSHHJ dH%(HD$1% =t^HHF/K L $HALLA LDDHD$dH3%(u#H[]A\A]HHRLHL $fAUIATIUHHSH HAL[LHH]A\A]1AWAVAUATUSHH|$ Ht$L$0dH%(H$1%߉D$% $E1HH8HK2L(MEME |$Ƀ0D$DHLEEADE1E1HFL HLH2HI9/ET$ A |$@H$dH3%( HĸL[]A\A]A^A_@L|$Hl$ M-L%&P2I$@8@$5MREHAT2DI\H)QJcH>HHHD$HHD$(HvHD$ 8*XHl$ H9l$D$I\$LHD$@E1 $MD$HI0Hl$ E1|$4<'t%IL9t$L9t$(vA<:uA~:uMAU*L9LML)HZ<:t fDE1HIHHl $LHLH)LL$8#ALL$8fEE<wHLHcH>I!AEIL$HY(DH|$@LM\$LI)M~!H9l$M"D4$1LD$ HL$DT$4H56_1DT$4f.D$fDEI Hy 8AD$ +HyHHt @ |$At$LAt$E1fUHMN2%@=@D$#D$sI$HHeDHC2L(M IUHH_H2HH ,E2IEH IEHA`HHHQ`IEHIEH@IEH@IEH@AU %_AE h AE IEH@IEIALh AEt$IEHP Ht@<H:fHQC2IHH9B(uEHu?LH=Xu%1ɺLLL$8H5X LL$8! $LHLH)LL$8 LL$8IH@(H@<I4f}IS(}AID$HX(H/C@I$E11ɺILHHH$I$H@(@H@PK IUHB H'J< xIL$HY(I(IL$HY(IBIL$HY(IL$HY(I{H58HD$HL$D$HL$MHbI$E11ɺILHD$HH#I$D$H@(@IL$HY(IIL$HY(I:IIL$HY(IL$HI HY(IL$HII I  H5VHD$HL$D$CHL$HY(L1Ht$XHD$gD$L|$XIyD|$(I\$H;HDD$(11LD$n"IL$D$HY(IL$HI~HY(IL$HI HY(IL$HIHY(IL$HIHY(rII6I  H5E=HD$D$IL$HY("IL$HII HY(IL$HIHY(IL$HY(IIL$HY(IL$HI 4HY(IL$HIITHY(|f.IL$HY(dfH\$HHtH H Uуv ? fDH=2L9(D$0   |$0E<*t<#H=-W1fDIL$HY(}SX}TN}DDE2L9(uIu}argsO LD$D$HHHIL$HY(DIL$HY(4I\$HH H I\$H;Hb HE1LD$uIL$D$HY(FI\$D$(|$0IL$HY(|$0 IL$HY(I$HHID$H8H1EHLD$}+D$ D$0   ID$Lx(MBHu1E1DLD$AO IL$D$HY( I$HHID$H8H@1EHLD$YD$0D$ ^ U IL$HY(HR:2I\$D$H8L;fD$HID$HH MAwAwIL$HY(WID$H57D$L8H92H8D$ H92I\$D$H8D$HID$HH MxAwAwIL$HY(ID$H8HLH5ND$xIL$D$HY(ID$Hx H6E11ɺH1D$I\$D$LH<2L8ID$H8H] LD$I\$D$ID$H8H H5D$IL$D$HY(D$(I\$D$(I\$D\$E:HK:28*D$D$01H5)9Eƒt!H5X t H5t-H-HEHILUIH=`P1AWRH Hz H={LHH@Lh dfHA<2H@8HD$ o $dHxH9|$HD$ @HM@2DMHD$ HhDHD$HT$8Hx HT$8HD$@ILLL$8AE LL$8}DH!52Dt$L*E0@9\t$0FL CIuuEa<#D$$D HLEADE1E1IHH22HHH9x |$0|$0 |$0 H@@E1<$%A1IMDH5N IH@xHxxILD H5M1~WfHHvIL$HY(fDMMH|$@zDJt=HHVIwUуe? PH>2%@=@LL$8LL$8If LL$8LL$8H 42fDMAEs VHyAMAU=0 }X#IL$HY(HD$D$xtWIL$HY(|Jt=1HHI}VERSIL$HY(3HpH=cHIL$HY(Ht$1HHHt$HVH~Ht$ Vуu? 1E1>H9l$ II I BIL$HY(dE1E10H22H5'H;LL A|$ IH3ALH'HHt@IT$HB }N}CD}N4I$HHIL$HY(^LHL1D$xIL$D$HY(81HZL1D$D$H@H8E1L D$3D$H@Hx $IL$HY(@AWAVAUATUSHHG I HG  t.IHHt'HL[]A\A]A^A_Lh(H@(HuHT#2H(HHUHH'2HAH d8] HEN@Lh H@ dHEHEHEImMLhH@4L1$2KHvHKA`t AGH)HUHEIm I$H@ xfxISx AE11ɺILH:DL#2KHHKHEHHEH@HE H@HEH@HEH@ E % @E 'AA?AGHcHE@HEHEHEkHHzHHHDHH)1HH@HEH@U %_E  E HEH@WH@ G  H=7M IH#2H8?IFH@ Ht@HUHHEH@@<BTB4LD$LD$:BTB4LD$LD$HgHE 'Dot;H5. t H5m-HHEH=61LfD/H1"2H5t6H@ ff%fH-HCLH=91wH*HcH>HGH8tnDHGHx(u [HGHx u׾ CHt G v%DHGHtHxt1AWAAHAVAIE1AUIHAATUSLHdH%(H$1H!2jjH8SY^IHt9H@HL` H$dH3%(_HĸL[]A\A]A^A_fuLM^AF Ł H$H|$ AE1HL-LLHL$HL$LHH$: D :*IMPAF 8 )IFLx u MAG#IHJ HR<MLU$LIH2ځ DE1H8fD Ht$"LLT$IAF % DE ÍuH|$ DuH4$J ?ALLLHL HB8:E:H<$H<$IH9fDىLL KIHR(HB<L1LIMnLRщH1ff.ATAUHHHDHH]A\DAWAVAUIATIUSHH(HGt$DD$@["Hx Ht GH2L52H(IH@HH@ HHp(L=2HH=%&2H52HBIH+/HHHjHHRHHH=A$2H HIH HHH HIH,H.HII$L1҉HHtP E1E1H5r1$HHt,HHt$P (tH@x DHL|$[H$D$D$1ҿ1L1҉HHV E1E1H50HHHHP AH@x Hs2HHHH2H;H$2HH+HH"2HHD$H)HsH2LmHH(H9|H2HIH@HIH#$2H H+HHQHHRHHHQ"2H HIH H HH2H HIHHHIIH([]A\A]A^A_|$[qPEYH1H([]A\A]A^A_ÐHpH~@LHt$[Ht$*H8HpH~@ IHPHBfHL$HL$c@HHHL$SHL$HkT$t$L1H=`2+T$t$L1H= 2ff.11AUAATAUHiDDHH]A\A]H%2ATIUS(U01LcH@1LH=-[ ]HǾA\ff.ATAUSHHW dH%(HD$11 tD HS H4$Hǁ D H\$dH3%(uH[]A\@HHHpH4$BfAWAVAUIATUHպSHHHHHL$dH%(HD$81P D$4t1AD1)Ѓ=wHH]!HcH>E1HD$8dH3%(`HHL[]A\A]A^A_HHHHHC2111HHD$H 2HHD$ L5211IIHD$(jM>HމD$L(IHL$4DH5)LHp@H7BMtT$E1Iع$HLIDl$4H\ESHt$HVHDD|$11IAHOIH#D$4ƒ,=„tzvI`\H2Ht$ H0H2Ht$H0HD$(IIHc|$4\mu }Hc'H5@31LHH`uTu$fHHL 2IHHM9MIIH<2HH 2IH IGHQhHHHzH5QHHAhH1H)HhHB`HILIGHCLxHC@IH\IHp0HIHL$4DH5'LHp@H!@MT$LE1Iع$HnHc|$4\H|$ HevalbyteH9E}sw\mfIcHH2Ht$ H0H2Ht$H0HD$(IIxDE1L 2IHHIH2HHHLHHL$ALL$HCtHLL$HHEGIfDI ApDHh H 2HDLL$LL$H@Lff.AWAVAUATUSHdH%(H$1Hi2L ML|$LnHIL|$I_<ILHfALDLE1E1 HIHt*L A|$ u]HN2tID$Hx(L;|$tLH$dH3%(HĨL[]A\A]A^A_H2E1LLLH0I\$LHHH2tpfDLIH62L fDL H@Hh(ID$Hx HtE11ɺLH L H@Hx zf.UHsH1]HeDGbAWAVAUATIUSHHHPHJJE1H-*IL$IcHHHCHcpHxHHv |7:%H_L52MA@8mZD7YoH2DL{A u}I@utIGM6HxH@@HHWHE%1AF$IGH@HHcp?1IF0IHH AD$tI$HP Ht @1ILIHu4tLD$HMt&A<$(IdA<$DESTAWHL$(MH5"QHD$PP1AWH I9tHl$8DD$4AAHtHExuD$0 u\$X1HX[]A\A]A^A_DD$HL$HLLL0A LD$HIAEIEHp HPwCHUHZ\$HUZ1Ҿ H=*E1HHHT$HLrHHHL$HfDHDL$DL$Hl$8LHjHUz\H1H~0NHzHtwVwAHU\$HJHUZH2H(HHUHHT2HL5!2HEH HEIF`HHIV`HEHHEH@HEH@HEH@U %_E u? E HEH@HEHH@@Hh0HH@@Lp0H>HDL$E DL$몺 DL$LDL$A]H HQ HI(At H9HO Htt1HuE %E 1[]A\f1DcH{HtHH(tHcH|uƀyv"Au)S1v)H둍swHHcH>HeHHyxEHyH3HyP(HyXzHHH?HyXHyHHyPHyP̍sHzHbHAWAVAUATUSHH|$Ht$ L$dH4%(H$1D$8D$LHKvLHIHDSALt$H$dH3%(HĨL[]A\A]A^A_fHD$ @ H@@HL0AF t1IHJ Ht%DRHt$0w ffDMw"@t$Vu(Hcq(HLu0MuPM H1L%i1D$PD$(H-"1HD$XHHD$@I$@|$WH="1H|$Hf.H=1H|$0ƀH1f)$)D$p)D$`HD$VHD$p$f% f$Ƅ$B@HD$ IAHD$IAH7fDD$CA;LHA}IcLtMD$(MHD$@1D$PFZ@E1|$(H-C1H 1L%e1HD$XHI$@|$WH=>1H|$Hy,"ƀH1f)$)D$p)D$`HHD$p$f% f$Ƅ$AD$V&fDD$@IH@ @IH@ @IH@ @( HL$L1HL$I0IHH@H_HIF80HL$蟵HL$HcHůHLh(AED$A9D$PH-1E1HD$@D$(tD$PH-11AHD$@cLHHp(u}HL1A}LHIH@IHx L5D$(ClLfd1I9HNHcAAL4MD|$(FwHHcH>HD$@E1D$PHD$@1E1D$P'D$PE1AHD$@HD$@1E1D$PHD$@1E1D$P|$8AEt&<HcAHDHtIfD<D$}J5H5 HcH>MA MHD$H-1D$PD$(HD$ HEHHD$HD$@IBMuxMMA MH|$H-|1HuHI@ VHLH)HHH'AE utIE@t&HH@t1L訆D.D$PD$(A HD$D$(HD$ HEHHD$MuHMD$(H-1D$PHD$HPB MLHM-MuXMMuHAM$MuPMMuXA MMt[D$PA!H-1D$8HD$@Dl$PHl$ MMt7D$PAMM!D$P1A MMD$P1AqIMuxMAH|$:H-<1HuHHNj@ % =諢f1f/ MuPMKMuXM>A eA?H׾HT$HT$H IHHHt@IHH@(vAA AAIEHH@H\HIE809IEHx %1I9H ~nHHC"LMD$(L$0H2H=&DE!IHt*HLH聳HxHt 11迋 FH=詋 9H=P蓋 <H=z} /H=gH2<MA>H20{H=VUIHt*HLH赲H@Ht 81 HL2H8;E1AH2-e@fHHJ2HHx0HtwwH@0H2H8mH2HHt@HB0Ho2H8-AHD$8b E&ݦD$(HRHN28u H*2H{Dt$%KHCHD$={: H=HHH= 2H轃HHHD$\H2HH2?Dt$&H1{Il$H AI} HAIHHWE`fE7M@H AE4$IAtLxE7M‰PH2HsH8HHk@1Lx+uAIHC JVxAH5G/DzHH Hzƅ[H$Ήx$%=@.D$(覢A辊'zD$,^A9i9D$,_H|$%8-xƄ$f$EeH 2L0MIHH2HHIIFHT2H@H1HfHL$(H02HS/HJ@IIFfD1HLIH(8#ux!uHHHuH5,LHt HHD$PLD$PAtsH5R2#t!AtULI%D=Du t u&Hf.IHH t tI- H|$tH|$u6H2HH HHH$2HH HHCH2HPhHH H2HzHHHhH1H)HhHB`HH2H1HCHH2HHH\H~wHCHH2HHC HHHj2HH HHCH"2H@`H HH 2HJ`HHHH@HH@HH@S %_C  C HH@Hi2HCHle7\  HH5yH=訧H|$tHD$оH=-wH5iH4H=(-Ht@HA2HAL H=HHHojj P1H H=I諃H2HHHJH@HXHƀ<HCH=cH=ߕHHJCH@HX4HHH|$8HHHGHXHƀ>=uHH|$8HCHB(訋H=݂H=RHHJCH@HX讂H2HHHJH@HXHƀ>HHCH=3HB(_1H=ؿHHJCH@HXmH2HH28'H2@t H?2:tqtH2HHtJ e tH2HHtJ  tH2HHtJ   H22 H=QtIHtIHLHԨL@Mt(H=$LH2T$(HLDMtAv AvH=kH;2|$'H萕p)AąY H2HB H2H2H@$H2H8HH9t*Htwn wHt@HM2HHs2H8Ht w wHR2HH28HD2 @H2H2HH9H2HH2HHl2H0Ht |$ {H2H0HtHe2|$ z$rLM)LH֦HhII 11H{U %_DE ^HǢQHSHH9H@H;uHP2HHD$0I9IGHtLfHsH9t#I9u5H9v9HsHH9v *fDH8uHHcIHuLMHuf.H2H8Hv1H=lH1Px1ҾH=N".xH|$H5HlHD$0H2H|$D$ Hl2HHD$ǖJ`0)H82HT$DŽ$Ƅ$HHּ2f$H\2H@ DH2HT$DŽ$Ƅ$HH~2f$H2H8H2HHt x  ,HH51;fH2Hu2HH9$H 2fH ;2HT$HH$dH34%(H[A\fH2HT$DŽ$Ƅ$H2HH2f${D$ 9H2H2HH9YH2H2H8HH9t*HtwTwHt@Hy2HH2uH2H0HtH̻28H2$DH2HT$DŽ$Ƅ$HH2f$HM2H8H2H/2HHH 2HH^2HH 2H1x@H@H@HHHx(Hf;qfD+qH'2|$ k~HH=1@軆H 2HHeHY2HHB`H2HH29H}2H&2HH9uqH52LML\2I+HIQHHRILMM@N L2MLMM@JHHHH 2HH;YsH 2H=2HHH@Hj5H28t?H2L H2HHtx tu腑HLH51b1vH32 tH2H8tH2HHd2H0HHq2|$ iH@H@HzHHx(Hreff.@SH2t'tc%H2řu+RdtEƉ뿃Hc2H="16a#fHm2SH0HtHK28hHE2H 2HcHH HHH2H[ÐAWAVAUIATIUDSHHHLx@MMw(MjALLjAAHAL胐^_IMtH[]A\A]A^A_DLL衔H@}HHP Hm@<HHHcHHP1ALDD PjZYHsH|$vH|$IMw(MkyMw( f15f|H{Hsf.HBWUSHH_2H02HH+HHH HcH2HHHH)H2HHcHHH)H)H~C{HHEHn{HEHnH+H[]fHHpyHff.AUIATIH=޳UPLLHHaIHtuvouIt$(F!@uHF(HH@!@uL]A\A]DLHnHtE!@tHE@!@u1ɺ|LImyL]A\A]@HhxfDAWL=AVAUE1ATUSHHʹ2dH%(HD$1H2HHHHIH H߻2H HcHI)IIcHH)ӍPHcL4H$AAF ulyHI9tLHuHAtgH2HkHHHD$dH3%(H[]A\A]A^A_VLӃHtLfH.fHAuH$HuH=L€pDLƃ謉HHZP@HH,E 1=LIFHHDh AtQH1Lz Mtr<LIHcJH $HHB HtR]H]HI ]1HAEtIEHp Ht x<tH6LH=1(H2H=HH41@1ɺH5NL }&L^HH`2Hx\LHH=ި1证H=1衁l^LHa^HfFt>HHB Ht2RAG  DHt$"LzLuHAG M u=HN2ILmM,$HD$dH3%(H([]A\A]A^A_HD$HuHUHtfHHH HHHH H HHH)H9HufH;yH9sEL=ҟ2fH1fH9v00LHA47HtwHuـ;toutpmDH=Y1"ffdetauf~iluԀ~suIHIG GHH+Շ2HIHCG 1t#HG@HH@1I8L9DAFHHH)LmAE I}G H< w5 2%=u' AE W HHe2HcT$ H 2HHDHHD$8dH3%(#HH[]A\A]A^A_HHwH@HD$0inpu5~t+IHG HH+22HIHG E1t=KtHGA@tHH@t 16AIL9SffDf~utIHtsG iHH+2HIH5G tEuPtHGE1@tHH@u15AcAUDHHtH@E1H7HtHG80A"fHHH@AHE1HHG80A@HHx AHHx AE1H;=y2AH|$v0H|$@H;=I2AhH|$F0H|$@L=H1P !H@HHHHEHyADI@ HL`MHD$H\$+]EH2HHEEHp2HHEEhHX2HHD$HHEIIt$1LeOIt$1LHSO1LLICOE1IHtHHt D@ A AE1MtIHt DP A AE1MtIEHt DH AAH2HHD$H)H;|$+L]EOEHo2HHEHD$HEtIUHB!3HD$LIH\$AwAwHcD$ H A2HH2HHDHAHH H@H1HHG80HHx 1H|$-H|$@H;=y2f1AЃ IEHTcIH3H=1L\$ DL$JcH9DL$L\$ HEIE@I}9IDL$P HHxHq "dDL$DHDL$ DT$@H;O9DT$DL$ HL\$ DL$@H;'9DL$L\$ HEHHDL$,DT$ DD$EJDL$,DT$ DD$HL6,AE H=zgcH]HD$HEHHHx(I+I}W %=HZLcL_Iu1ZH5PG]RfAUATUSHH2H-2L-2HIuHHH HUHcXHH)HHuHHcHHHAP H0Dʀ NXE1L|$fAsmH5w DDt BD$IfHEuH HpA uH@HH)HGHYLLIEYIEIHD(H$V.H.IEI.H+HD$(dH3%(PH8[]A\A]A^A_ÐAH ЋwH -H.AHDL|$EEt1ƒ4A4D9rH7W Dʀ NXIAt7Hxu2H0JI.H+IDz,AAHD(HAH MafDHFHXE1L|$A LLLD$>LD$IfDHFHXH5.LR;Gff.AWAVAUATIUSHHz2L-2Hx2HH;HHH IMHcPHH)HHHcHL4HBLx MHHv2H(HHMHH'{2HHEHEHEHHEHH@ x-Hp~|SHH,I$@]H@8HHHp( PLs%HE11ɺPLYuuIEJD0HH[]A\A]A^A_ÐH=Xt HHQfL'dHT$0HT$HfH׾ HT$~HHT$H@Lx @HG % =uHHPHGHT$Huf8aluĀxluM~MWAG HLH+`q2HHHAG p1L!IAL9@fHas2IUHLHH HHw2HHCHCHHHCH|2HHyH8Hu2H;8HPr2H4$HHK HIEH<6LHS/Ht2MeL HD$dH3%(H([]A\A]A^A_fAODHGH$ IG@HH@DHT$-HT$HIHtH@HHIG80~fIHx lHT$KHT$HL;=jo2FLrAH5lp Mff.AWAVAUATUSHHwu2H-Hs2L=|2HLuHHLH IHcHӍBHH)HH7HDf(H5s2H6HELn8AD9}MHcHB HzG % =/DD$ 9DD$ HIcHI)A} LuIEuH@H@ LH@A ALAAH]HtppH]H[]A\A]A^A_fEAD9AHm2HHHIHHEH[]A\A]A^A_I7CHHƃHcH4RDHt+H#&HCHafDHHH @HAm2HH5dnAtAH5XnHfHEJI7|H6ff.AWAVAUATUSHH's2H-p2H5yq2HL}L.HHLH HcH;z2IHBHH)HHR(MtMm8tTCHAAHHMuTHRl2H5y2HHHHEH[]A\A]A^A_fDHAA@HHMtHB tHzG % =DD$ .7DD$ HHcHI)A} L}IEuH@H@ D 1H@HAuH5/y2AMcHJ4LH]HHt +$HCHH]H[]A\A]A^A_HQk2HHHP nH5dHH5klff.@AVAUL-=o2ATAHYq2USHI]HHH HcHH|x2HHH)HHL3HLAtk1ɺH5lLCtQI~E1E1DH>HtHxj2HI][]A\A]A^Haj2H0HI][]A\A]A^H=k1GHH5kGff.H5mff.H5mff.H5p2ATUH-n2SHH]HHH HUw2HHcH PHH)HHHcHL$HH)Lk@tr1ɺH5jLBtXH=$Md$HcLH!H#GH!LH)HctI|$_HHH][]A\,H=f1nCH5f"CfHk2ATUH-si2SHH]HHH Hr2HHcH PHH)HH~eHcHL$HH)L;t;1ɺH5IfL>t!I|$H)HHH][]A\pH=f1BH5ffBfDHj2ATUH-h2SHH]HHH Hr2HHcH PHH)HH~eHcHL$HH)L;t;1ɺH5eLE=t!I|$HHHH][]A\H=Ae1AH5OeAfDUSHH j2H-Xq2Hg2HHHrH1HMHc2HH4H)H~@HcHf.AyH0H AyH(H AyH H AyHH AyHH AyHH A9H H1HH IHH1L1H H<HJHH1H1HH H1HH H1H HHH1HHHH1HH1H HH H1H HHH1HHHH1HH1HH H1H HHHH1HHHH1H H1H1L9l2FSizAP AH$A3@(H LiIc4L>w w w+O[)111 1 )lj)11Ðw+OO)[1ʉ 1щ)11  1Dw+Pww+:D4@IIII@A+ AQAIAAA )A1DCD)1M9wIL_IMMIIM9AN LGMGI@u,HtCHt6Ht 4vfA+ NL fDA1RDAqA1;ff.W t$1tHGP HDDHG1PuHx:?f.ATPUSHH.HX8IH@AL$@ AL$@Hh21H-VP H2AD$ID$HHL[]A\Ðx!3$\x 3$Xx3$Tx3$Px3$Lx3$Hx3$Dx3$@x3$<x3$8x3$4x3$0x3$,x3$(x3$$x3$ x3$x3$x3$x3$x 3$ x 3$x 3$@ 3T$fDHg21P HHt$Ht$HH 11ATIUHHHB\Āt)AuLT$HŃAuHH38ArIArHI3H(H]HUHHoN3HL=HH$H$$ff$*f.HH$$ff$@HaH3H$DŽ$Ƅ$HHB3f$HJ3HJ3HcD$ HHHnA3HH)HD$,D$ uFH1D3HHXH+HtE u6u1H=T6HHD3\$H9X HTB3$fHG3H$HSf.L$S@fDHJ3HcD$ H @3HH‹D$HsHBD$,HHE<3HHBV˸cfDH H;Q P^fDH5iH3H6HvHvH1H5DHF3H$DŽ$Ƅ$HHLA3f$H=3H8H>3H;8t4HtwwH]>3HHt@HR=3HHhD3H9G3HH9~H@3$fHF3H$HK11H<U %_DE H D$,HHH9 H=r1fU]HD@AWIAVAAUIATUSHH@3H>3H(HHHH @3H;HG3HH+ HHI?L%E3HI$H)H~QI?1IH]HHEI?uH=3DLHH[]A\A]A^A_zf.HHHHLfDUHSHHt,H1Ҁˀ'HHH[]HˀHH[]USHHHH-=34$dH%(H$81HED$t$HD$HtH} H=3HT$ f)D$@HHE3)D$0)D$ H HD$0D$@f%f \fD$@H<3H8HE3HH+HHD$HD3HH)HoHP<3H_H@$T$@H8D$BEȉff\ fT$@ƒʀ ED$BЃpD$CH838H|B3H|$X1HHD$PiHAB3HT$PDŽ$ Ƅ$$HH<3f$&H}73HHC3iDHA3HT$PDŽ$ Ƅ$$HH~<3f$&HB3HHH @3HHKD3HH ;3HH:3HU@HaA3HT$PDŽ$ Ƅ$$HH;3f$&HC3H:3HH8H C3HcT$H HH)HD$$ H(=3HHXH+HtE t8uu1H=O/H$&HT$PCfD11HU %_DE t H4@$&HT$PH;3fHJ@3HD$tEHC3HcD$D$HHH}93HHK>3HA3HH9~2H#:3Ht$H0D$H$8dH3 %(HH[]fDH?3HT$PDŽ$ Ƅ$$HHW:3f$&H63H8H73H;8t4HtwEwHh73HHt@H]63HHs=3HD@3HH9~H93$&fH?3HT$PHYfHHHT$P$ H A3HcD$H5,83H H $Ht_HAD$HH33HHA$&1@HH|H5*1:DD$$&H0uH=$1]H83$&fH=3HH3:3H8HGH8u 1H@H8 ff.US1H HŅt6H HH63HLHHHL[]HHt͋uvufDH@ff.AVHAUATUSHH-v93L%w63HEI$H@HH@ H Hx(L-S93H=Q)H L5?3HAIMI+H HHYHH=3HIIH0H6HvH4H3H0H6HvH 1I $HHE1IM1HNHHEI$H@HIMI+HH HQHHRIHH HIH H HH HIHI$HHEIUH[]A\A]A^DH|$ \HMHT$HHHAH3HAVAUATIUSJcAAtD9A9u1~ IT$:-t []A\A]A^B[]A\A]A^L5-3I>H=131#HHm*3H8 AdHHNI$LeM4 I$HEH5/3HH I$ID$HC`H HHS`I$HI$H@I$H@I$H@AT$ %_AD$  H=vAD$ I$H@H,3ID$L L%33H+3I<$Hu+I0I$H  H\(3Le@linu@xHM. I$HEH-3HH I$ID$HC`H HHS`I$HI$H@I$H@I$H@AT$ %_AD$  AD$ I$H@HG03ID$L I$H@*HD$dH3%( H[]A\A]A^A_DH13HH ~L5W*3HH.3IHHo03H )3H@33HH+3H`13H03HH13HH.3HH,3HHz&3H;f2H+3HH/3H H,3HH*3HH13HHs03HH&3HHO%3HH,3H,3H/3HH13HH&3H/3HD/3f:Hj'3H,3H@%3HH2,3HHD&3H )3dHX'3H)3H)3H*3H,3H`03H(3H#3Ha13H H&3HH)3H4/3Hj/3H%3H+3H<-3H$3HH$3H-3HH$'3H&3HH#3H$+3HH*3H'3HH$3H'3HH#3HQ/3H&3H)3HH(3H/3L%h+3HHj#3I$HHD/3HHV+3HH0&3HH/3HHT$3HH"3HH-3Hy'3HH/"3H'3HH*3H*3HH]$3H%3HH"3HH&'3HH8-3HHJ"3H<H4.3H8LAD$ fDL=&3L IL-3HuespemosIGEoH1I EHmodnarodH1IKHarenegylH1AOISHsetybdetH1ЉAWsboxICsboxAGEAAhashAhashADDAgoodgoodDDAfast=fastAEA E1) DA1AE)A1D1A)Au1A1D1D1DƃDփDADDD 1D)A A1)D1A1)uIs$M$`@LЉD fDЉDAHAD1EAA1 E1A1DnL9uL9uDAL5%31A1A1 D1I>AC LmMyIEHEH&3HH IEIEHC`H#HHS`IEHIEH@IEH@IEH@AU %_AE b LAE IEM.H@Ae IE-KLAE LAD$ "fDH3HH#fD9vH)3H$H=HHtgHHHHhHtFHHHH0u+H$H(3 1‰1Љ1Hb!3 H=7HHH6HHHhHHHHH4$yf I ,I( I {I LAE cHA}H5unH=J1^1H=M1NfDH=H@ I~H@AUATUSHXHT$0HL$8 LD$@LL$HdH%(HD$1HPHZ(HHHxt$HD$dH3%(HX[]A\A]DH$$AHD$HD$ HD$ff.HD$DAT$$H,Ht/AHD$$L(HIuHH LHA/vHT$H*HBHD$H0HPHT$f HCH@HX(HD$AH#3AVAUDoATUHnS8tEv H=Hn3HHH@HHHHGL@(MLzE~uAEL-3Lt HL9tWH}1IHLH@Hx(VAE@t H3:t t AL$ tLH%L9uH"3H8t,HHH@Hx(GHHx[]A\A]A^fD{H߾=H{IHtUHƹH)It$H@H8_HAH];-Cx<-ufH@H8fDH!3H8@[H5_]A\1A]A^@t[]A\A]A^D H@L@(7AHff.AWAVAUIATAUSH8H-m3HT$LudH%(HD$(1MIHEH3HH3IHIFHC(HHfH1LHS(1@H@ IH3IFL0L}MIHEHa3HHIIGHC(HHfH1L53LHS(1@H@ IIGM>ILDH$3H 83HH3DH=HtH@HY3H8H2 H=P/SHHi!3H8HHGHHHGLp MxE111ELHm3H|$HHD$H9D$t HD$HLeMI$HEH3HH I$ID$HC`HhHHS`I$HI$H@I$H@I$H@AT$ %_AD$  AD$ I$H@HD$ID$H(HdHH8uH+D$HHH?Ld$L|$H{WHHHeIHc 3LIHtHILH L`L1H|$E1E10LIH8HtL$E1MHLqHL$H9L$tLIoIHtX=HIHtH9tHE1E1H)HLHI|$1IrLd$I$HxAt$At$H3HE 38u@HD$(dH3%(eH8[]A\A]A^A_DHtHD$HD$^@H=\ DIIRLȾHD$ HD$fD1LHH.HkHcUHT$ HH{G % =t}{HËT$ E1E1 HLE1IH~1HII9uI}G % =t21HHFfDHHX HwfH}G % =Ht$H*fLXHD$H(HfL(AD$ gfD ^H@Lp qI` |` \wH? 3H8Htw'wH> 3H8HtwwH3H8HtwwHL3H8HtwwH3H8HtwwH3H8HtwwH 3H8HtwwH 3HHJ 3HH\ 3HH3HH3HHZ3HH$3HH> 3HHh 3HH 3HH3HHf3HH 3HH3HH3HH>3HH3HH 3HH@H@H\3HH 3HH`3HH 3H8HtwPwH3H8Htw9wH3H8Htw"wH3H8Htw wHF 3H8HtwwH=3H8HtwwHd3H8HtwwH 3HH%3HH3HHa3HH 3HH3HH 3HH3H8HtwMwH3HHR3H8Htw(wH13HH33H8HtwwH3HH43H8HtwwH3HHU3H8HtwwH43HH~ 3H8HtwwH-3HV 3H}HH<3HHEH-A 3H}H 3HEH8Htw1wH3HH3H8Htw wH-I 3Hb3H}HzHEH-3H}Ht ]HEH-N 3H}Ht @HEH-3H}Ht #HEH 3H8HtwxwHc 3HH3H8HtwSwH3HHf3H8Htw.wHE3HH3H8Htw wH3HHP3H8HtwwH/3HH 3H8HtwwHp 3HH2H8HtwwH2HH3H8HtwuwH3HH43H8HtwPwH3HH3H8Htw+wH3HH63H8HtwwH3HH2H8HtwwHf2HH 3H8HtwwH 3HH3H8HtwwH`3HH2H8HtwrwH2HH3H8HtwMwH3HH3H8Htw(wHc3HH3H8HtwwH3HH62H8HtwwH2HHO 3H8HtwwH. 3HH3H8HtwwH3HH 2H8Htw/ wH2HH 3H8Htw wH3HHC2H8Htw wH"2HH|3H8Htw wH[3HH2H8Htw wH2HH3H8Htw wH3HHO3H8Htwa wH.3HH3H8Htw< wH3HHQ2H8Htw wH02HH3H8Htw wH3L%31H`wH3HH t:H~2HH1d芹耹Gvl2bWX|ND:A0X&_H'?dݸӸ,ɸQ迸v赸諸衸藸a荸(胸eyoe[QG1=H3_) 6ٷϷŷ軷C豷h觷蝷蓷艷uka=WbMC9/%@e߶նC˶h跶#譶裶|OHuHOH)ρHxP H=u1)fUSHH-2EuZtt5thH2{H2HW2Hp2H;2ÃH=E1MeH82ATH=UHIH51LHH1IAt$v1At$H5PH1&HH5d11^L6@USH1HnH5_HHU2HHH1͚H5fDHH蔠H3Hu1DAWAVAUATUHSH8H|$D/dH%(HD$(1Ax{H %ADHcH>1fDH\$(dH3%( H8[]A\A]A^A_HGHD$G H=*<-uHH=Hl$kLt$H 2IALHƋ%@=@@:1d HEHD$}:D}HANj%@=@tA:tI9& @' HbLlA= LLLL)譡mtpH=2LLl$THD$f.A:t HʼnkHEHD$D}UHH=1LH1H=x;HD$ H5'LbHA <@Hl$UH t-HHEH28 HDH=15DHGHD$Wt:L=CH20HD$H2LoLl$H+2H)2Gt.H 2HHl$EHt%D=DuHa2H;Ld$M)I|$?LLB HLHHD$HH|$E_H ;2HH|$A%D=DtH%D=D-Hu%D=DIDFHH‹%D=Dtt-uHLH)H$ޜH$1HD$8-H-H2HGH2u HEuHEH *2HD$U@@HHHl$H@@tHH|$Hl$8B H2H2L%2D$I<$Htww}x}H}H|$}HH;uHH)HD$ HT$Ht$ HD$$A 1AjxHT$HL$0AYAZHH9H1HD$ HT$HI$HH@HHSH@C %DC Hs28 H{11HHvH̍EHH"I,$HUHBM H=}D.'HH跬HD$ HD$HY2HGH2H2L%X2H{@HH;=<2tL9u>Lc@H2L%2HR2H{@HL9tH;=2t蝪Hl$Ho2HG;H2HG(H2HGH2H2HHl$H;Htw|wHEH0H H2H8G tHHxxHHD$Hd2E1H;HD$HhHl$@t7H 2HfHHT$t%D=DuH)IHzBLHB HOH`L%82I<$Htw~wH2H=SB.HhI,$HH腪HD$HH2HGH2H32HGBfIH‹%D=DL$HT$H1HD$ Ht$ HAjAk_AXH2HhI,$HLLL)裙L H5芙HD$LLHpH)Ht$iLH5PH=p1=H&HPHT$x-C H=!HLd$L葡H 2IIA$HƋ%@=@t @:ID$DHD$HHH֋@@t@:t@=|LLH肘E H\$% = 1"HHH=輚u,uu H|$ H|$D$!I$H=WH2%@=@oHH5H=Hl$;HD$4?GH51;Hl$H=D$H|$HT$Ht$ H1AA?0L$H1HHD$(jǏIHH@DHD$0HD$ZYaL)LHHHD$H5HHP1HT$]H H=HD$HDH=;1謼H=HHD$ſ.Hź̃HH"HxHu1H=XI$HtHl$@~ާHl${ḨL`H28E11ɺt1HkfD1DDH=1賻HDL1L)H=N虻H=1舻AW1AVAUATAUHSHHt$L$dH%(H$1B= H2D H92H(H2D(ECH28Hv2H;Ht 衧HH2HH 2H8Htw&wH2H=E2HH"2H$1D$ H2HA2HH$虻#H2H$DŽ$Ƅ$HH2f$H?2H 2Hu2l$ 9+~Dۡ9+H2H2HH9H2H2H8HH9t*HtwwHt@H]2HH 2H0Ht |$ 袒H2H0HtH2|$ }Hn2$D EDDH2fH2H$HH$dH3%(]"HD[]A\A]A^A_="H2H$DŽ$Ƅ$HH#2f$HA2HHt x HH5O1A$/fDH 2H$DŽ$Ƅ$HH2f$HR2D(H2L H2HQ2HHDHHH2HH HHCH2H@`HHH2HJ`HHHH@HH@HH@S %_C  1ҾC HH=H@H2CHCHH2Hە H2H=oHƔHH@Hx HtwwH-21ɺH5 H}6HEHt@HS H=pHB K O H HH2HHt@HH=HHH2HHt@H H=8.HHɓH2HHt@H=蛓H2HHt@HH=HHeH2HHt@HH5H=HH1襒HV21H;LI@H8HH(2HHXH+HtE u<u1H=KHH2 H=4AIHH2HP(艒 H=H@HP H 2H\H=16.H@HP H2HɅH5ͩH%D$%HD$D$'D$&HD$E;L=hAI$;-!CHLMEMA9LtfH;uLMHAtYAD$HUH|fHHsH9tI9u1H9qHsHH9`HH;uHH9uH?2L8MtIHSH9H9v I9L)DkH2D(H28LmMt%LnLpL2LLHDIHz2L(Hx2H2H@ Hx2H2H$DHE1JbH&2H$DŽ$Ƅ$HH2f$5CeH2%D=DKHCH=OH€<HƹH=fHH=~1诱HHH@H@H@HHHx(HfH2EHZ2H8{)It$HH12AIH8H2H5yH8AIEH28HQ2H=yDE葢IHH-LHLxM\AH 2H‹%D=DuAGIH‹%D=Dt-aE71E Ld$HH2AƋ%D=Du(H2fD$H[]A\A]A^A_f.111HI蚉H4$LIH$/۬HcBˬHcHE1Dbff.AWAVAAUATI:ULHSHH艖HPHLEA$H|$`tH51#HD$hHD$`E D$1HAT$ €  L|$`MMT$Az MIEIfDHD$x1HD$  DD$HL$p1AMtIv(HLw}AD$ H3HB$D$(Hs3HHttB$L 3 I9LL$0Ē誣LL$0uQLL$0"LL$0tZHt$xHt/I|$H9t%~ t txLL$0t'fDIV(1LL$0H5ɘ蔈LL$0IL$(@H%3HH$I|$HtwAwMtJIHx0DD$HL$pHLL@|1LL$xA0LHLeHLD$xM.H_3L8MAD$ DA uQANA5L׆AD$ _AT$ \AT$ H3M|$H8GfMIx8 Ht"HT$pHL}DL$EtAO H HK3IHh0I`\IHx(HGHHHGHT$ HLڱH|$`fD$HtBH{(G   Ht$p"iHHD$hH@(@ % D$E`HjE1Mt+AT$ t M|$A tE1HL 3IH@^E E f%f IH@\Mt I@\HLL$ ,1HeLL$ HHEHD$ HHEHt ;HD$xAT$ ID$x AG fAD$ D<  HT$xH&BLHxJ R11L萆IHT$xL i3HP(IHX0IH\IH\IIH@\ B\HLL$هLL$I9HtwwH3I1L0Mt AdžH03L$9| u8MD$t,Ht'IH@PHtHB]@|@H$dH3%(HĘL[]A\A]A^A_@HML X3D$M9MAwAw|$IH:39 H 3H8HGH(HH5H0sHH=`.1řDHLoH@H$L M[uD$D$I8fH|$`oI1HP\]H|$ bAT$ HD$xLA@AH AD$ < 3L 3I H A\5u^yLLL$蘁AD$ LL$_AT$ LD$xAT$ MD$E1V@Hx0HxL ɼ3M9MvM( ID$DxELx@H|$`D MI@]nH@8HH@(HZp HL$`LH8/JH"\$Hh3oH3H3HH9U11Lc  H=HsHD3IH3HHp0H$Ht HHp H H=Ċ1ЙE1H1H3AHHRHz j1PƖIF^AXHx H HHxj11AjE1H苖ZYHIFL@MtsHl3H =3HL1HHHɼ3H;7H3LH+2HHH3HL)H I^ILL1t~@Hy3L0MUMtAj |$IT$LLH=3L0nDA}BH=ЈL€H73L:LH{A}3$\A}3$XA}3$TA}3$PA}3$LA}3$HA}3$DA}3$@A}3$<A}3$8A} 3$4A} 3$0A} 3$,A} 3$(A} 3$$A}3$ A}3$A}3$A}3$A}3$A}3$ A}3$A}3$A}3T$At!Hy8HtT$HH$IT$HD\$HLHL$HHEHE HL$HHA8IH\L 3IAg IQ\H0 T$( V\Q\HIHIPHJPHIIXJXHIHIHHJHHL$8HHJPHL$0HHJHHIHI(HJ(HHL$@HJ(HL$Xb\H H\EH93HH@0Ht HH@ H ILLL$(HB@I`\H3H0RzILL$(LHxHI1QHԽ3LL$(t H33I9HtwwM9fDjx@HH_HRHT$pYHLL$ LL$ HfDI$B^mDHѴ3HfMt ID$H@L ϶3L$L1LL$H$yuLL$HITfHY3HLL$(HL$ }111褂L$ LL$(HH!3HH3H9 H$:LDL$H3cDL$HHھ'LcDL$HDDH|$`P@A|$ TL$IH5~H43Jc P H>AM3$\AM3$XAM3$TAM3$PAM3$LAM3$HAM3$DAM3$@AM3$<AM3$8AM 3$4AM 3$0AM 3$,AM 3$(AM 3$$AM3$ AM3$AM3$AM3$AM3$AM3$ AM3$AM3$AM3T$DT$LLLD$(HEID諅LD$(I@8IH\Hy3HH@0Ht HH@ H ILHB@I`\H߱3H0v@fHLL$(\LL$(HD$ @H=1fH3 LHHL$`Ls H;AAGM@ME1oL q3I9H@\%A DA\DD$HL$pHLLj}fH 3DD$LLH$H0AmMJAT$ E1@HHP H @<+H:i@ID$LxID$@I$Hx(GHHP H@<<H:ID$xvH3D1JILL$(Hx@ߌLL$(-DL !3I9HA\HL$pMtMv(DD$HLLLL$iAD$ LL$u4HHT$pHLLL$vD$LL$t AL$ I9HtwwHF3I11L0l fDH=DiD$pD\$fDL:crH=HPHLEAEHL$HAHHHHL$HAPHH$HdH3%(%HD$HX[]A\A]A^A_H$H"H$L`(M;E1AE1AT$!AD$ @f%A|$"E1H$H8H4$F fD$f%f=Lf(Mu7f=t;fu A|$"AD$!@Md$MAD$ f%f uAL$"fEEeID$IH$OID$AI$H$1jH$HD$@@H$E1AH8L53E1AN8L|$AG@ÉD$YHHZAW@EmHAXցHAv8E1E11 @ 1RSHT$HHD$HX8AYAZ@CbHD$H$HXXfHT$Pfu5H\$H|$PK@ { HHƁllDf=@f=@HR(HtR fft PfcHD$H@8HHx HJH)HBZ|Ef.H!31HP0aH<$1LHoAD$!@I$A!fI$LI<$UI|$(G f%f=HW(1B!@tHBI$H^YL&\H3LI$Ht5P ff@f@ufu HI$HuELdfDHD$p@t$P@EHAXHRE1E11S1HT$]A\HL$H<$HA8ckfDHf HR(HfHS(B f%f=B"HB(f@ @!@HPHvB!@lB f%'ff NHWqH<$L0f.H<$AW}@HR_HwH$HEH@(H(MfDH^(Lj(C % =H$"H؄H$Am % =H$"L襄Am L$H$HD$[ HDŽ$H$HDŽ$H#H$ HDŽ$HDŽ$H$HD$8H$ HH$(Hʡ3HDŽ$ H8 HDŽ$BHDŽ$LD$w$$HIAHD$8HD$`D$w$H$H$SH1HdHD$0@u HHxGwH\$0HHuHH\$0P0E1Hfo$fo$fo$HCfo$ H`p0HD$@h HP0H@HPvD$vE1HD$(HHHD$xHT$DŽ$H$1@HHH9rMH$H9D$8)HD$E1E1M$H$HDŽ$HD$hH\$X$LMu'H|$|$wHAH|$Lt$hMM9LIFH|$0HLT$ ZLT$ HpIHH)H;t$sHD$@HHD$ H)H9NHFHHDHL,+LHHHHD$(LHD$HH8I}JT=HHAHL9D$ DD$ D!D DL$vDEDL$vHJHI9w,I)IAII)H|$H9|$8MMHL$`H9L$XH$$7H$HtppHD$H#$ud$tZH$H9$t=H|$Ht3Ht$(LD$@1f.HHt I;LHH9uHD$H#|$v=H|$ H\$0HP0HCHHD$H,HD+H=H=xHD$H#H3HHHHH3HL%3HH HCID$XHHHIT$XHHHH@HH@HH@HH@ C HC% @C HD$0H H uH|$(Hp|H߁H Ht$0mH߁H HtH$H9t$hv&$tH|$xxH߁H HtHD$HX(H|$(w$H$H9\$hBH<$lcH|$PbcTDH|$XH9|$`$D?HMAH|$XIDKD:L$HD$x@$2HT$xH$HHHH9H̃HǿH"Hv(HH9kHÃIH"9|$vH@t H6 H}fHnH}fHnHv/HH9H¿fHH"*^HD$H#@_$$HD$@N I;HH9H;t$HD$HpHHD$0Ht$ @u HH9PsIH|$0HL$L$HL$HHT$@nHD$0HL$HL$L$HHT$@p0HD$0HL$HIL$H@L$H HL$@L9D$  H|$(HriHT$IHD$(HL)L9 L$HL$@HH$McMCL$N !J<L$LLL$GdHD$(L$H$IJ<L#dHD$0H|$ 1LL$L$HHHL$HL$B0t HH4HD$@HHrIM<$JLHD$(JDHD$ HD$HAgLMIfDH=٢3L\$HI4Ht6LH!HcH9vHH?H H9uH;t$8Ht$A>FIH|HH|$Ht8AHAA!McH9v HIH?I H9uH)IfE1HHI9I)E1H=3L\$XAB?HIHALAHD!LcH9{IH?I H9uH9T$`HT$XAv :GILMfM_HH9dH|$vHt$@HAH9FUfHD$HXHHD$0H\$ @u HH9PsGH\$0HL$L$HHL$HHT$@jHHL$HL$L$HT$@p0HD$0HL$HHL$H@L$H HL$@H9\$ H|$(Hr!eHT$HD$(HL)H9L$HL$@HH$I[ILJ<L$LLD$y`HD$(L$H$HJ<HU`HL$HHD$(LD$Ht$0HNHH9wHl$Ht$LT$ HL)IHI9nHL$@I[ILLH4]HL$(H|$HLH4\H\$0Ht$1LT$ HHB0tHH @HJH@D$ I{1H9T$`5:AM9LHT$XIFfHD$@JDHHH9? HIIH"IHvH9] Hÿ̃HH"D9HH9K H;t$PHt$@I{HAJ;D8D$ 1Ht$@H >HmIL9& HÃIH"H$HjIL9C MH|$D$ 1H;t$h$I{MHD$(JDHD$ HH99fHl$HD$LT$ HHL)H9wH<$8f.H<>3Hl$HD$L)IHI9wHD$@I[ILLLT$ H4LZHD$(H|$HLH46ZHD$0HH\$1B0LT$ HEHH HJ|$ HD$@J\HD$(N|DHH9HfɃHH"*@BI4H|2HH|$XHt5AHAA!McH9vH@IH?I H9uL)ISf.H|$Pv7Hh7*IEL`IEL$H$^HH@H$HCH$Ht$@McLHL$LH$XHL$(H|$HH$J4!}XL$IH\$0L8H4fMHT$XAIDY@HHDŽ$H9HɍqHH"9$ufL86|$ |$vDHD$Hl$H#HHDHAH9iHH9HH;t$sHD$@I{J9LHD$HI H51 6IH$I@XH3HHt@|$E1111k{ HHuH@HHD$Hp lHREI nf+=Lt$8IH$I9l$LAIfA7HAH3D0HI,Ht+DIWD!HcH9v HH?H H9uI9v }+HINHM9wl$ILBI1H=H@(`jIH$IHAHl$H$;fq0HHQ(H)H9IL HI9t;H5L1=11LHfHLH)Hk>IHAH;l$H$HA(@ D$% =H$H$"kH$H$AwH$HD$8AwD$wH$HHQ(NtIHx2HMLH@LIHHMH11fDMALHL|Ht1DLED!HcM9vfDAHI?H M9uLH@HI3t$90dHD$P@f.oRE1E11SHT$1.A[[f.HHH9H;t$hHt$@I{HAJ9DP$ HD$(J|H<$0{f.H$9H$H9L$h&H5_h 1[0!L$Ld$`$HD$(H|(wLt$AN#_[Hl$E11Ll$xHIF(L\$(LUD$I9v ALMHHH$JLJHHDŽ$ H94H$HDŽ$HD$hHD$XZH|$0OJHA H9@H\$K#XHHC(f RD$ AWAVAUATIUHSH|$ kffA$e]H=>eiE"@xU#Wu H}^1-HE11H1jHEl$ Du fAfAfAfAtOuKAEfvAfA|$ hfA!CECtE"@O VatAf%fv fA!uDH c3%LL<nHH IL1 H5cPFfAODE#HILH5b1 5E/E"AV@fH PH8H=ybf E#%LA1gHL1YI,>11H HLH`RLHPR1ҾH=9JHz41H 7IE111HƉZL_UH'0H_C^L%z3IHA\$8D1LFOHH7AEHe3 AD$8H2N8t uf$AD$8LmMtAEtH5!xH-X1Hty3f; qAD$8ƒ D‰€@D‰€Df+fDB 0#ME1/Lc.1H51IDžH=kI2H1wDLLH?HڿHtP@H.If.FR f\LPB1LMHH5AEF[LB1LPMHH5AE[LA1LMHH5AE[LA1LLHHY5A E`[LxA1LLHH#5AEn2[LBA1LxLHH4<H=P.1H4f~H=Y1(RLE1E1 H5bu!HHLhAEIEH@H1H(AE}IEH@H1H f AD$8 uAD$8@uAD$8uAD$8f"v.I|$@HLv3H9Ht H;==3I\$@AD$8Hv3fH5 YK1DwL1Ҿ1?H8G % =N@H=K9gfDL11>H8G % =tjHNH»HH=LfDLMHHrDLxMHH|DHH@ K@HH@ H=KE1PAWAVIAUIATAUSHHPH=.z3911F11zTL1A(1H#@IMtL1 1IAAt /ƒHSH*@/ƒHSH1HuiƒHSHHtN10HHKHŋ/vHSHBHCfHHHtH"DILLDH[]A\A]A^A_6HSHBHC+HSHBHC3HHL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H$H$HD$HD$ HD$D$0)HD$dH3%(uHPBAWAVAUIATIUSHHHPHE110HHL=&|3E1A%D=Dt-HCHHA%D=DtHtaH HCHHA%D=DuHH) R1Hq.LHIIH]LS1H>.LH8L1IH1H.L꿠Hb8 H=AIQHL1[H]A\1A]A^A_l=H@HH)UQ1H-LHHI9ff.E1AUATIUHtLG Mt GLH|$XH|$HH 1f.D)Hc`5HD$()q3$\q3$Xq3$Tq3$Pq3$Lq3$Hq3$Dq3$@q3$<q3$8q3$4q 3$0q 3$,q 3$(q 3$$q 3$ q3$q3$q3$q3$q3$ q3$q3$I3T$@HD$ML(Dc0H At$HyLcƃ#HXj3P L+Ic4L>LH|$ OWH|$ HH 1¾D)Hc3H|$HHD$(HHHH8HHH\HHH\jq3$\q3$Xq3$Tq3$Pq3$Lq3$Hq3$Dq3$@q3$<q3$8q3$4q 3$0q 3$,q 3$(q 3$$q 3$ q3$q3$q3$q3$q3$ q3$q3$I3T$IMI\ ʉP\L'Ha3H8HtwwH`3E1HL&wI$Hx@q;I$H@@!k`L^&LQ&:7IH|$ 2H@Hx L-h -#H `3H%3H%LH|$zVH|$LH|$ aVH|$ dLLLD$%LD$ILD$?LD$rIEH;hPtD$ H.C1uD$ fDAWAVAUIATIUHSHH2i3HHfHt~1ۀusAD$ f%I|$tz,tKtF@Ɓ@ @qf LԇHL[]A\A]A^A_fHtaf=uI\$(HtLHHC!@tH[Hu뭐Ht1-@I|$(G f%ftLUAL$#@vf.HtH_(1HǂfHC@HP H1HHH@(p H8fHb3HP8с<< @PH53>1*I|$(LHHHt1H.H@H^fDHmHH[31HǂfIT$HH@HLpMH0f3LI@Hx HE1E1 H5,,,HwHX3HH9c H=+;1H1IAFtIHx Ht@AD$ f%f=*AD$#@1,I@E ffE!@LuMAN f fAF"AN#AF!@INHI fAf$IU(B f%ftnI01ɺHw(It$0L1LAL$"@I(1ɺHw(LMcAL$#Ad$"ZL[]A\A]A^A_HB(ID$HHB(AE#@A D$#AD$#AU# AD$#H=5 .H}(O H7H~ uHwvYw;Hc HE(WIEID$HIEAD$#AD$#tO Hc릐AUATIUHSHHF f%f=tH1IAD$ 11f%f fAD$ HrB4H ID$IHڿH>HIH@(H!@IE(HXLkc!HEIELL1,H1[H]A\A]#AUIATE1UHSH(HT$dH%(HD$1B f%Ht y"+f=8f= f=u Pf^L11H1+HHD$H16HHHL$1HT$HD$[HEu[HD$HtHHMH@0HHD$H9X_"PH"H\$dH3%(H([]A\A]DHHT$H|HR0HH9|$HG(H@0HHD$fA f AfhIU(B f%f,AAE"AE f%B!@f%fDB f%f=8t"ftf6HzL1+HD$lfu I}-AE"JIU(H=`H11H@11_HMe(M(AD$ QHLH++24HHHAD$ tID$@HH@ 1LsLl$AE f%NH<$wH<$IHD$H@0LHD$f.f f%] I$Ll$Ht'H@HwHtID$80eLl$LH?Lb(MAD$ HLH+04HHHAD$ "RtID$@uHH@e1L+Ll$SAE Af%HJHA f%ft f=8A"@B"<GI$Ll$Hx HELLe0[Me]A\A]A^fDM"H(H"LfDLaH"+4H=3H41UH#H]HǺff.fATIUHHHt t!HHL]A\DL踻HnILᾀlHcIff.AWAVAUATUSH8L6dH%(HD$(1Mt%AF IIHAf%ff=t%HD$(dH3%(PH8[]A\A]A^A_fMN(AA!@IYHtC E1f%fC!@I?HG(@!@MtE < uHt HM9&/6.M<$Mt#KL{M4$-fLhI@HCHeIHC f%fCH{(G % =Ht$L $HL$L $H HprototypH9fxe(HS(Hx HqL $R iH{(L $IHtwwLC(L$Mt0 LL$ LL$L$LL $^L $I?L1ɺL $IaL $LEDI~(G % =Ht$HT$H HprototypH9fxe(IN(HrHx DA A DmI~(HHtwwI^(IHHHHGHL$sIv(AͺHfDHHPHGHT$6I(G % =.Ht$II~(G % =Ht$ L$L$IH9u+Et&HH{:L$HP+L$HAIF(H#H5DH I$H@(AAP S1AWt$8HL$8ZM<$H M@1HHH% Hy HEHpHHXHH@HD$ LHLGH@HD$A@  LHt$ L $HL$ L $IHC(@ H5 L $1nLvL $H%4H8HQH5VHHHHL$nL $HD$LD$L $iIHJHL$ M@NBIff.AWIAVAUAATIUSHH'4HHt MI|$(IIHHIFHh0HH!4uuHv4LH(EIFHHh0HH@0Ht HH@ H HULHB@HE`\҇1HSHHEHp0HHHH HULH&4HHt ǀH 4D9(H4@<H[]A\A]A^A_HY&4HHDB$HttB$DD$MIT$(H51DD$HD@$DDoHa 4@H=gI4DHHt$Ht$HfDHpH5e1EDD$ZHPff.AWAVAUATIUSHLG(Do AX EAh!fAAF@ff'E1@tMx11fff|AP#AG f%fI(HG %=HHx HGHAD$ HAf%fH=fLufN}fJfPHtJAH" AH"AD$"AP# A@"fDL1ɺL$LL$MHL[]A\A]A^A_@T$ L$>L$T$ ffJ@aMxMt`AG f%fuQAG"tJIG(HtAP ffu2H@(H5L$HHx HL$LA_ MI3A@"I@(HH ffH@(HH@ x[x uz@MxMAG f%ffAHF4AJH51PMD$(AX Ah!ڃ@f[f@X1E11W@E1D81AH"AH"AD$" A@"Ѓ A@#E`AP#D8HAD8uLUH*D8HAH"AH"AD$" A@"ff.ATUHSH4K8G"-G Lg(f%f=^?L/b E#S8HUHHUC:H4HHRHz Ht^{PIE1ɹ$LI H5L1[RHu(1HHM#ȃE#u7H4H2N8v u H[]A\C:t3_#2\[H]A\{1ɺ1H11^LHHHP ff_fP H4H HPHC0[]A\ÐFR?E#4ff.AVAUATIUSLw(AV!AF @f%f11ɺ1LInM,L11LHHHHIHAD$ f%f fAD$ H 4H ID$HE(@!@LpIHHE0I$HtkI$LHk0MeM&[]A\A]A^Ä:MnAE!@u%1ɺ1L\1L2!D1ɺ1LIm3אL(Lkff.AUATUHSHG"Dg ALo(A] fffftf u~Lv^H4@:@tE ff%fwM#AAw.fw"M#AE#ƒAU#f(DHH[]A\A]f.HA(t HD1[H]A\A]SH4(HH[]A\A]DAE#@AE! H4HQ8v utAPu IE(HxI}(UDHHHD$HD$ fD<M#@LsHLHHtH51N@H5A/12AWAVAUATUHSHXdH%(HD$H1G ‰ffT$H|4L$ H<U"HL$A|$A @t#A9D-$ALm(AU ffmfVE1fEO1E1f.ADMDH5AHcH>D$Eu4HH\$HdH3%( HX[]A\A]A^A_f.AAuAtE f%f=H4%H4H={11H+@Hx:vD$Af,u A$LMZt$ 1H;E1AF!@tMnEDe#ME f%f=H34%H4H=OfDAM fffff~DHHD$@f rH 4IUHH@HL@0HD$@McLD$(D$ LD$(HHD$0H 4HHʀAT$"AD$#@#yAL$#YLA\ʀAT$"AD$# փʀAT$"H=71XATG"I@utLA\;IH@(@!@6HxG f%fuӹːATHP"It#Hx(G f%f=t#f=tmf=u蒹HLA\At$ H|$H|$G f%ftHK4HHttAL$#@fʀAT$"H=_1HH=1:f.ATSH0@"t?Hx(IHt3G f%f=u%HG(@!@HX蹸LL#H[A\H=T1ff.fAVAUATUHSG 1HW(O"f%f=B!Í@@t/HBH@(@ f%f=3ῈO"B!@1fNHDIH 4HHt ID$(@!@;HPB f%Lr(IHL II@#AD$#;IEID$(@!@H@@!@t,HXHu!H[Ht1ҾH踾C!@u[L]A\A]A^fDHzf̂ M[]LA\A]A^Ð[]A\A]A^c-LH,H=F1ff.@AVAUATUHSG"tmHG(@!@tcH@HtZ@!@tTHXHtKC f%fu=Lc(L-4AD$ Eu4t.ttD1LEu[H]A\A]A^nfD<tΉ ttDH4L MtQI$HH+4HI$LID$Hs(H{(wvwLc(AD$ 胻ISH_ fHt@"tHHD$hHD$H[ATUSo fzIHt8@"t2HX(Ht)fDH[HtH谯C!@uL[]A\fG"tNHHG(@ f%f=t=wf t5f tHiff=uH=1@CH=l1DHW0B f%ft DB#HHuHO(A!@tHIHtA!@tHIHtq ffuHq(F tHvHt>>u~&uA!@tH;QuB#ff.@AVAUATUSG"tHG(@!@tH@Ht @!@uEDHP(B!@tHRHtJ fft []A\A]A^Àb#[]A\A]A^G H4f% fG HhHGL%D3H@ A%E,AAAt H}|E HƉ‰fA t-H5U3F8t f%f ЁfE HHEfuHE(`#[H]A\A]A^bfHIsD6HEnff.fUW"HtHO(A f%u1A!@t HIHuH]yfA f%fuA#@tA! uH4ʀU"H0a#V8vutFPuHA(Hx ATI@"tx#tLA\Hx(fG t1ҾfDG!@tHHtff.@H@"t!HH(Q fAf@tfft$HA!@HIQ @I#@Hff.@ATUHHG"Lg(Mt{G AD$ f%f t_wqff (ȁfE Hcf% fE H4HHEHH]A\Df=f=uпtAD$"tIT$(B f%f=uB"tHB(Ht1f@ HE@!@t H@HuHtB f%f=bH51sJfDA|$#@t>ID$(@ t3H@@ w#H4H==H41JHºLHH5%HH]A\ÁAD$"It$(F f%f=qF"t_HF(HtV1f@ HE@!@t H@HuHt6B f%f=u(H5Q1efDATSHIAD$"t|I|$(HtrW f%f=twoff%fwRff f iHHtQHzIпH oH5HD1藽HL[A\@f=tHL[A\tH51YH51=ff.AVAUATSHI@"u3N1H蟻HHHL[A\A]A^@H@(@!@tLpMtھH=,IHIt$(1ɺLL11HL1H@HHVfLIUHL[A\A]A^fDAD$"HL[A\A]A^DATUHS_ fG"]HHt@"t H4_H}(Lg(AD$!@ttID$Htj@!@uU fft@"<tJH[]A\fP fft1@"u؍ffvftfuf.1ɺ1rLJ] fE sHff% fE Hs4HHE[]A\jf.HG"tCUHSHHG(@ f%ft@H0HH(Q fftH[]fDI#@H[]DH!31H} HHH`Hff.ATUHHG"t\H3Lg(H0AD$ N8f%vfteftLAHH]A\@AL$#@Hi31HJ1HKHHD$讼HD$H]A\ÐAD$#@tID$(HxAD$ f%vaFP]Rff.fSHH_(C!@t2HsV ff fH~@S H 3tiC"@ucC#u]tYHCHtPP ff uAP#y@t4HP11H|$HSH@蹾H|$菻K#HHH[feHv0V ff NfDV#8H[FfDHG"tfHB1HH鏶ff.@AWAVAUATUSHLw(AF!@|InIHE(Lh(G#AM f%fWfvNff%fw@HHcH>1AE# AD$#IE(@ f%fhAM ffH3H4H=1ĪHHL[]A\A]A^A_1AE#1ۃ AD$#IEID$H3IEIT$HH@H@,HY3HB8<<BQ@1H5A:?Ad$"1ɺLLHW6ff=vvf=t0ff=uG#@f=AE#LAD$#H}(1ɺ1f.AL$"@LLL׻SG#G# IE(H@(@!@1HXHS(G#0B f%ft*f=HB1HGHBfLz(IAG tBIWz u8H1@]tHx8HT$ILHT$1LIHLHp L1ɺ1I fG# EfLcHyH=,1ff.fAWAVAUATUHSH(dH%(HD$1G"tLo(AU ffxwH=薺IHt^E"4OIHL1腧1H膲L1HT@HbH(H\$dH3%(/H([]A\A]A^A_DMe(Et$ DAE#@SA&I$MD$H@HD$M,Hv A8:M9r pM9vcALI<:uA8:uLA@/IpLH)IHH̹I1ɺ1HLm(fDMD$I$M)LH52LhI$I|$LhIWH5Hr3Jc P H>O3$\O3$XO3$TO3$PO3$LO3$HO3$DO3$@O3$<O3$8O 3$4O 3$0O 3$,O 3$(O 3$$O3$ O3$O3$O3$O3$O3$ O3$O3$3T$LHAD$ ID LIHLA \$ E"D AtVL蕿HuEt$ D% =LHt$Et$ L|$HA|$DA AD1ƥIE(At$At$E"8AEt$ Ax:LH=S1̘@1L螓LH|$O3$\O3$XO3$TO3$PO3$LO3$HO3$DO3$@O3$<O3$8O 3$4O 3$0O 3$,O 3$(O 3$$O3$ O3$O3$O3$O3$O3$ O3$O3$3T$LHA IDiI$I|$LxL|$L軰E"WLH|$H|$HH 1PH=1fATUHSG"H3HHB]uȀG"H[]A\H3_ 1Hf葡H51H芬HIL41[H]A\ffD+[]HA\4ff.@AWAVAUATIUSH(Ho(W"dH%(H$1E!@@uqAD$ f%f=H3%H4H=1נ1H-H$dH3%(H(L[]A\A]A^A_ÐHEHH(A f%f=HY0C f%fUfSfDH]HBAl$"@tGLk(AE fff%fu AE#@C!@9H[H,H!h@t1ҾHͣf=vHY0C f%fU@fSVDH[(L-9f0H-C!@H[HC f%f uH3HSHH@HЀx0uH9$uqVw@1HIEH51]I}f%f=IEHO2HAL$"f\nHK(A f%fHs0F f%fHI(A f%f,HA(H 3HH H9H(H@ x@ae@bx Hv(F f%fHF(HH;H(H@ H+ax ?AL$#AT$"C ffTu AL$#C f%fUuAL$#E1E!@tLmL1ɺHL@Il$(E!@nf\fLcHfI}(G % =Ht$ULt$HLH|$D$&vL|$Iv1LIHH/3HH@JH@H1@tHHx Ht @fDIB(@!@MIMR(AB!@ 1 f- tDH(HD1[]A\A]A^A_fH31HPcfDHPL9AH<$1蛇H=D` H1֖A HD$E!@uH1ArfH]HHHfD1ɺLLDL$DL$MHI3H=/Hp$1xH3HH}1@tHHx Ht@IMtIIv HS H=êItt>Hs1LAL1H肦II\$0H貢`DDL1踔L1HFIA}SUPEufA}R:uA}:|HZL1ff.HHtHGff.HtH;=@3tH;=?3t@Hff.AUATUSHH 3Hb3Hk3D SL-g3C<I}HtFGuQHHXHx4DIEH@HHH@ t H@HtHHuHD[]A\A]英HcfDAWAVAUATIUSAAHH$膖XD$ H3H{wL-H3T$ HH23)L=3E f% fE H3H0HEDu"L53UD$ L54E1/HI4HJ4t$II0K4HDuŀ|$ H[4HcAL=FD EAA uL]DMcMcCBDE؅t!EtA@H|$uD_E1AEDAtuEAEXA~AtIcD\A@EAAl1T$ T$ SIcApMcD[A@HcHBD$D@A@D4%,HcD@HD4*D] H<$D$ H1H5LH$Ht HD$(dH3%(H8L[]A\A]A^A_úH5L趖H$Ht뵺H5wL葖H$Ht됺H5OLlH$HodH5&L@H$HC8H5LH$H. @IcAD;fAotWAtQIcHt$LD輕H$H(諘IHD&A@6IcAD;fH$E1(rfE1hD$ H|D$ H kўAWAVAUATIUHSHHL6E~\DD$tZF Mn(HHEHD$L9t 3u8赘uH[]A\A]A^A_fDE1tAIF8HHHx(IF8HH@(@IF8HH@(HHx LIN8H HI(H Q<IF8HH@(HHA H8qy H@L@(MtxffH譭H[(s ffDAUIATIUSHAT$$ID$(HAT$"H,H9rL@HH9v<C(f%f=tC)uH{OI}uHL[]A\A]FfDM$$MuIEHvHIEH[]A\A]f.AWAVAUATUSHHw f%f=w+f=wefDKH=uHcH>f=}f=v`H0藝H{HH[]A\A]A^A_@wffR2H @vHcH>ff\t?f=[H{(HtwwH{HC(HucXHCH[]A\A]A^A_G#t)G"@u#HHHtwwCCHCXHqH{8HCHHtwwHC8G"fH{(#f C#HC"ff%fvffkHs(H菫ZHk0LeLmMtLa}Mt M9tLO}HG}"Ho0L%uLuLH CIcL>H{H耇H0}H0HtwwHC0DE1H}L}LVL0H 5HHDEH}LmL@HwwHu}ILE1HHHN|fAXDAL0H w^HtHA@DHC0Hx{fD{!fDL0HvFH t(H0uJHHH蛩A@uII@H}OU{f.HwA@f@Hf.H{X藅fLuHG"a{YfDkaHvNT:zDfG uSHWC Hf%fC HI4HSHHC[ff.AWAVIAUL-lATL%6UH-sSHHC ff fuHsH:HfS"H |4H Ht ffY@f@@efZD{#EAS"fHctH>HK(HA(@!@HPB f%f=B!@HB(@!@H@HB"@t@!@H@A!@HILA(A@!@MxMAO fft f }AG!@uvA#xo@!@uip fff uOIwH9puEJ#AW"HLD$P" pLD$LoAG f%f=Lo@I9t C!HH[@tHHI9uHL[]A\A]A^A_fH4HL4LcCuS"f]H5a4w@nf>`fH4%HH@H5-1c(AfH4HH{(G f%fujG!@tSHGHtJP fJfvf u2@#u,@!@t&HPHtB f%Hfvf uB#tsnHknH{(H~H@mdH{(G f%fhu:G"t4C f%f fC HB4HHCmH{(G!@ H|AC!@HCH@ f%ff.CCHjHS(R frft #f"H:A kEbfHؿ4HH 7A-stHAuBL{(AG 1% =JL苃ff.HlD%HS0HB f%fHC(HH ffzH@(Hmf@ aHxSHp(H@0N fft H93H ff AπD{#J#H# HC f%1fC H4HHCC f%2fC H4HHC@9A@*C f%/fC H4HxHChC f%0fC Hj4HHCBLH蝂HH HjH#H{(C ff.czAG HjLu1I@( fC H4HHCeI(HkRjafbHH(HUq ffBI(w ff+Hq(H9w(LH=t1GHIiMLjH5-H1U^1H=9IwE1E1II LHPPhBLT$jH=H1œLT$ZIYArvHArCiMgUL{H%iMI7AVAUIATIUH SHUpMHݾ4HHt u|AU"urAE f%f=tcAU"f=f=v)frf%f=MHcH>f.f>,I}(MAE#@fL 41AI9 @HusM9tVIEAE!@uH ffw#fvf`LHHuI9tIff_uH=R4I9u@tI9[L]A\A]A^@@tI9If=_upMm(LMmMAE!@MuMfAF AuIFH-HfAE Lf%f=u,믃IE(Ht |IE(@!@$Lp1AF!@tI~KHHAE 1Lf%f=1賹^Mm(HVX1H5J1+[6IE(@!@(H@HfDIE(Hx(G!@HG@!@;fAe#SH_(Hu@H[HtHC!@u[ATUHSG f%f%fht[H]A\DHW(B f%f%uHR(B f%fuˀz"xſ tH 4H4HHDb$HttB$1H5*uHD`$mfDHW(B f%ft[H]A\f.AWAAVAAUIATUSHH4HHt 9LL%On H-3mK ȁf%fvZfxf%fCwHcDH>E1C"I9t\C!H[@tC!@uHC@ f%f=tfDIcL>EtK"A+H[(Ad@HL[]A\A]A^A_ C"A+<AtYAtPAuDC# C"D @s#DH[(AE/K"&C"AuDC#AtA0DD ƃ @s#C"C"A+H[(AA+A4A'As# K" C#rHC(1@!@#HXAttAtkA{# K" AψC#H[(HH[]A\A]A^A_fDK"AH[(H[0{#At0ADC"@C f%fC H`4HHCHC(Hx(bK" qfs#A0AD@ȀC"1ff.fATG If%ftiwGf tf uAAD$ Lf% fAD$ H4H@XID$A\\@f=t1H5yzLA\ÐAD$ Lf% fAD$ HB4H@ID$[LA\ATG Ifft5w,ff to1H5byTzLA\fDfuAD$ Lf% fAD$ H4HAd$#ID$[LA\fDf% fG Ht4H@`HGA\Zff.fATISHHtG f%f=tHL[A\@H_(HuDC!@tH[HtS ffuH_AWAVAUATUSH8T$HH4IAIHHt ED$#DtAD$ HL4%xEL$"EAAaAA~AD$ AfAf}H5hHcH>AG"AO# IG(@ f%f#AO"@AG#AW ffʌfAW Hó4H` IWƒADAG#AG!M@M9uHK4Ld$L|$ HHt|$@8uJH4HP8с<<@Q@H5:1wAD$ f%f&L]M9Il$AD$!@{E!@uLeAD$ f%I|$uIAt1D$AAAAuEAD$ L-uf A|$"H5txH4%H4LH=u1Z`H貎^APAED$#D$E1H8L[]A\A]A^A_-AM fffxffHHsuIfIcAH-4EEE E AFۃv&H4HID$HHRH<G1t$1DAtQAt:AL$"Avۉȃ AD$"AT$ ɐffEAD$"HAD$ ffvۉfffwxAH4H8AuAL$#H41EE tNwAL$# AD$"H<4H8QAL$" f%f==AL$"2AD$ f%f=tPH24%HH5Gs1OA@LAD$ H 4IcL,*LqH뮺H341aAȀED$#AIl$01BDLOwI|$(DTAH̡41?A5A AID$(@!@AEt Ag ADDHx1D1`11zEZAFۃv AID$(H@(HH4D$HHt D$HIcLd$H-hH|$L-hIL|$ IAO ffIcDL>AG"9H14H|$Lf A" H4LH={1[H'AG" AO# H4IWHH@H@,AG#bHԢ4IWHH@H@,AG"AG#AG#)IG(f@ uH@(@!@H@H@(AG#0p ff fHPIWH@I(TjAg"AG#IG(AG"qM(A,AADƒʀAT$#H4?AEAID$(P fffHxH@(@!@t H@@!@u1f@ HxH@(H fHxp HPH=w1z|f.IT$(B!@HjAlIl$(AM fft*fxffvHHseE!@THmM ff=fxff+HHsHEA%9Hz4Il$(1I|$(DOAAuAL$#H141ZA1D[[~AqD<EA&KID$(HA@H41fI|$(1Ҿ1[ExAI|$Il$(E!@H}HG f%#f1D[Il$(1P1AzH-4E?ADL'OAu A|@I|$(>NH4H8LHw41?-AQAGHJ4A EL$"?aY댺;fLjHxf%f/DHcDH>IG(E1@!@LxAG f%f fAG H˧4Hh Ag#IG'AG#fAO"@IG(p ffA"@Aw"Aw#@AG f%f fAG HM4Hp Ag#AO"0IGAD$ f%f=f=AL$# H@4HP8с<<RF@P<H5t>1E1"kIl$( AED$#A@yDƒʀAT$#H^4?AEtAt ABAȁ1ED$#Hݛ4IT$HH@HAD$8fDI|$HE11ɺH52WGHHt%@ t% =5 b E@I|$HE11ɺH5V=GHHtw@ to% =aH‹E@% ЉE@@fD11HHLLIHEH@Ht/HUHH9w"HHJ HPJ H9EvHD$H8H|$(H$dH3%(H[]A\DH84H$DŽ$Ƅ$HHӃ4Hd4f$H/4HHXL#Mt%AD$ At$;At$1H=Lw`HHD$H$$$H0HC4Ht$fHt4H$HH4@8H4H|$ H0Hy4Ht$(H8H4$H0H4H;x HD$f` DŽ$+H|$)HD$e@H|$)G11L FAT$ %_DAD$ LU\LxFH=bP1Zc Off.AWAVIAUATIUH SHDHL-4MAV" H4HHt AF f%f=AN#tHH5|4փAv"f=f=v%f`f%f+HcH>fDf>w@ti@udI~( IV0B f%fuIHB(@ t?HHx u5L-3IF(Hx( 3Iv(L1ɺ IHEDI}1A fHM9IFAF!@uH fffvf`LHHuoL9t{If=_Mv(L8Mv fMAF!@MM~M@AF Lf%f=uf_uH=}4L9u@tI}HL[]A\A]A^A_D@tI}II>I~(u\G f%f=uWLIF(@!@Hx(Mv(/I~(G f%ftI~(HIWr1Lj1Av"tt*tPHcH=ZU1kW#;SH_(Hu@H[HtHC!@u[ATISHHG(@!@uH@(@!@ _f.HXC!@tJfDC f%f=u C"<tH?1ҾH7C!@^H[C!@uHL[A\ÐAVAUATIUSH dH%(HD$1HG(@!@uH@(@!@{^DHXHC!@t HmE!@uHE1"IHtH"IAT$#HA{4AT$#@8 H*4AD$#tHY}4H y4H2H91t@AD$#E f%ff)f%fw"AL$"C f%fjf=0MHL$HT$1LLD$QIE@\Hx0}Mt0HT$LLT$H\$dH3%(H []A\A]A^D$IUB\u"Lr8ĀtMtLT+IMu@L 1fD9MAL$#ID$MeE#HAD$#\.M LAL$#LID$0+@MHC(@!@HXHC f%fc#H{(H(G % =tiHt$m[HHD$H\HB D12H;HG tH H;Htwv wH+HH@HD$Hf~8f> fYf\u"H x4@8`8Hy4HHt 4I}H'L9tFW ffftfffHHHL9uIEHD$HH5y4IE1HH/{4H@ D$H-4w4H55|4HEPoEoMoU o]0oe@HD$pHD$ HH4H54)D$ )L$0H0H|4)T$@HH}4)\$P)d$`u H5}4\dH5w4HHxH>I}LHtHPu4HL9=A@ t%A@A@ H3}4D8H94HH{4\$L H9{4H(Hz4H9X AE>LLD$t=LD$A@ t+HLH+r4HHHvL;4t A@ L11H! If.HD$xdH3%(HĈL[]A\A]A^A_fUvOf=vtf=ZHCu4@8uD1HC0{fHG(Hp(F f%fTHF(@Af}f%fvDf(G#HhHH/1ff.fHml4AVAUATUHS0@t"Ho4H;A[]A\A]A^G f%fٮHHtH"X%H)q4HRp4H-l4HH*HHHH31P[Hyv4Hl4HHr4HZ1Ҿ H==9;IH;Hn4Hvl4HL#HHHn4H;Hu4LH+ HHHs4HL)HGHE0ILI$L#[]A\A]A^/H] .HHHn4HHcA H@HHAHB<<JH;RL-j4H IHHEuM!8DFH3L1YB-Eu[]A\A]A^DHi4HH#k4H[]A\A]A^G>H;haHHHDSDfD裬4LL0IJkff.AWAVIAUAATIUSHHHL濰 p@"M$HMDL1LHLD$E#3HmDH꿱S,1HHA,11IH2,I}LD$IOLE1E1I$H=YjM.y0HEH-g4HUH 5Hd4H2N8v&utFPuHE(Hx[aAD$"@HAD$"It$(L@!@H@(Hh(IbAWAVAUATUSHXB H|$Ht$HT$dH4%(Ht$H1< % =KH|$Ht$@AHt$@HúH>HT$@L`HHHT$@HtAH=g4 H΋ DDt A4$HT$@IHHHHT$@HuA$HhLH)HD$@HD$Lx(AG!@uIG(@!@AL|$0I HD$HD$0MwAF!@L@H[C!@uI9I9HD$ E1D$8H$LMfDE DHAI1ҾLqAF!@I^H;$I9wH|$11H=+h HƁ 1;HyHD$HdH3%(qHD$HX[]A\A]A^A_fu@tH=* HHHAI:5DC HAf%f,ffAHt$HDH5*H %*IHE)@H\$(L]AE1L=E#AIk<@Y<#$< IcL>fC HAf%f=f=u fH|$0L1ɺmI5DHH;$J\$8M}_I9c[E%<:wH@HC f%f=tf tE*H 0c"H|$01LDT$@HHRPHt-H HIHHIH HIH<G1O1tG uDG f%f=w2E1f=v2ff%f&w!HDHcH>f=7tE1DAtADff.fW fft w'fulG"tfH(W ffuHDftf6ffw3G"t-HO(Q fftftft H9O0t.1A!@t HIHuH0W f`HQPXH=w01HH5J 5%DATSHHtdG W"f%f~ftaG E1%==u"x3aH-@AHD[A\tH(W"fHG(Hp(F V"%ffAAf@Au fEHG(@!@HXH1AC!@tH{AAA„t5E180H=k~f#DAD fDUSHHGBtHPHtG =tu'H5H9t H[]@HH[]f:VHHtHp(H@HуH H9t uH<HHH}uH}(nHE(jATUSG HH>fftMf%f=tCHt6wE11wHEtuvkFEtP[]A\Htwt$wHHtNHpHAD1H[H]A\t@[H]A\@Hx_ff.G Af%f=f t@%u7f=tt5HW(B f%fuCHz(Ht:E111fD@Ha5HWE11H8ة1ff.fUH-ľSHHC ffwnfGvHfffsw,HcDH>H[]fDfuC"u[H1[]f~vftf+H[]fff0wHHHH[]H[(HH{(H_+3H[]C#H[]H)5HK(HB0H9H9H []@AT1HdH%(H$1H5H|$HH$ Aăt Lt`uHHD5H:5fHp5H$HH$dH3%(unHDA\ÐtH=41mDH)5HDŽ$Ƅ$HH5f$H5$gff.HU5AVIAUL-5ATL%5USHI<$HHH IIULq(HcH,Mt.H5HH)H~4L4ImI,$[]A\A]A^HD*I$[]A\A]A^fDHkIUDATIUHSHHHX(HHM#@HEH5H;HHHt6P ff@f@ufu HHHuMt0E f%f=t I$x\[]A\[]A\H58tHU5BHQ5.@ATUHSHH dH%(HD$1G %-vGC"t#H[(HtHHC!@t H[HuHD$dH3%(uoH []A\DHT$ Ht$yHHtT$ Ht$3 HIj1AjE11LHHxXZXfAUIATUSHH5L-5H-5HI}HHHH HUHcIXHLa(H)HHHHH)MAD$iH 5H@"u-H"5HHcB(H @HHJH@<uxI$HPHH5HH)HH9HH9HEIt$HcHH<I$HXHEHIEH[]A\A]ÐH95HH)H~~I$HcHHxHLeHII$H]I]H[]A\A]HcHDIEH[]A\A]fHI$HPH+HpfDsH=1DH5L2 5IHxU~fDG t8H5DO$ Ate9D9AA !D9AG҄u-IHH9p~+H@H1@~(1wCHf.øHtG f%f@AWAVAUIATIUHSHDrH?A^Hf;s'HHEI$H,H[]A\A]A^A_DLxJ4HHtrHAEI)I9weH<1HL$AJiHL$I $fEuI<$sfAfD6A:I$HHKE D ff.IH5AH8IAIH HBLZHRL9tBLHH HH1H L1IHL1IHHHL1H1I L1I9uLEKcf.AyH0H AyH(H AyH H AyHH AyHH AyHH A9H H1HH IHH1L1H H<HJHH1H1HH H1HH H1H HHH1HHHH1HH1H HH H1H HHH1HHHH1HH1HH H1H HHHH1HHHH1H H1H1L)5FSizAP AH$A3@(H LZIc4L>w w w+O[)111 1 )lj)11Ðw+OO)[1ʉ 1щ)11  1Dw+Pww+:D4@IIII@A+ AQAIAAA )A1DCD)1M9wIL_IMMIIM9AN LGMGI@u,HtCHt6Ht 4vfA+ NL fDA1RDAqA1;ff.UG % =t,HH}H}H1]ÐHHh AWIAVAUMATIUHSH8O dH%(HD$(1:f%fwzHHcH>@G"@Lw(L2AW#LHƁ HIjLE1jE111LA[A^HYAG"HD$E1M(Mt#MLHLAG!@EtaH|$tYEtTj1HE1jHt$E119Y^HxHËG % =HH{ HD$(dH3%(H8[]A\A]A^A_DMEEMaH;Hm4HHHH[]<@H[]ff.fSHw(H1H=#H>c#[IH=CLtAH=0Lt'H=Lt A8_u AxuDH=LtH=LtƹH=LtHH=L1HHYfAWAVAAUATUSHH5H DA1 IIWHU5%@=@IfA'Gf=fEDDE1HDLLHfH[]A\A]A^A_H47HH9/AD$H5DIUE|$A_EfAH4LMtfA<$$_ALH4AL7DH4HH Q\€@ Q\H[]A\A]A^A_fHI4LMtAI@E|$H ftf=L H IDɅEMIAH^w,AH=HL$L $L $HL$HtwIaMD$EUIAW@A4$IH=eD1H;H f=AE1fAFLDH=1蒲HH HHw`IUH~&AT$AAAu? 1D$H D$1%fA@AD$H D$H=B1ff.ff.ff.f.HG!@uHGÐATIU8SH覦H ff H"5fH HHX(L`0HPHt%@" H[HtS!@uHCS![]A\HfH:tBH9tKB!HR@uHB"tHB(HtH0H1H@!@u!HH:uB"u"HH9uHfDH@HuDHR(f.rfAWAVAUIATUSHG EAA{f%}ftbHFL5 HpL@H5HSHDAMAVDLAT1AUGH H[]A\A]A^A_@Lw(AF u;HNHqtL讞@H5HL5 i@3HIvE1IIE1 LMHPhFIELHpFXZfAWAVAAUATIUSHH(dH%(HD$1HHW(B f%f 6f=1E1E1L|$HuEDwtuEu\C!@jH[H]C f%fuC#H)fOHůLH=1>HHff.HHH4HH@HH4LB1t3I0DLFPB I0HNHHIH LItCIB1uըuHBHtIH@HH@H@H@HLQE~IcHI ML AJHI)f.HI9tHHtDZ0D8Y0uLL9uHg@HXG f%fu.G#u(G"t"HW(B f%ff=tfft1HfHB(@ tHx1 u@HQ\utHuHA8fDHzt$ St$ H1HB(H tdtHx u1뇐HDQHQ\€t H3|HOHHHyu HyH1J# H=51薻fDAVIAUIATMUHSG u%H4IImA$[]A\A]A^]~HtHP(IHP IUp A$[]A\A]A^@HHHdH%(HD$1LD$cHD$dH3%(uHIfH;5U4AVIAUIATIUSH4E11ɺ]Hp]L赲H@tH{ HtwwcLs(Lc M9t0AD$CC C[]A\A]A^fCf.H9tKH4E11ɺ]Hpq]LH@[Ls(Lc zf.B t[]]HA\A]A^bfK5fDRfHO(HQ u-t2H1HyLFMuRQ HVDQ Q ցLDuH1H~HH;~sHyfB|tfDHO0HQ fftDQ#@tⷈQ#AVAUATUSH,HDL-4HI}t;H j11PI}AE1H诹ZYH []A\A]A^H4L MI$HH74HL54I$H ID$IF`HHIV`I$HI$H@I$H@I$H@AT$ %_AD$ u) AD$ I$MeH@ID$LȾAD$ ȐI@ HLHPHT$L1螃 fHLHPHT$TH=1蛳L1^h@AVATIUSHHF!@LvMLupHm[E!@u1Ҁe!HEHfHA!@ulHHSC! C!MuvO"HO(H~HLDH[]LA\A^H?A!@t11E11HH[C!@u댃HAH1A!E11@AL$!@IL$HuH=G %=tH4%HۉID܀t=t= uH_0H,c!H{@HLw(xfDE!@HUDGyMtUH1AD$! HAD$!fDL1WfDHF11F!E1HW(G"Hu&1ۈG"H|$}H|$O"EH=1ff.HH4HG f%uQG"ƒ℀H7ftfHT1H!HEG"H5y6HfHftfH^T1H HEf=tuG H 4%H4H=ɡ1胍HH׻H(HG f%ftfHl:l:il:l:tl:l:l:l:l:l:l:dl:?l:jl:l:l:Xm:m: m:{m:k m:(m:0m:l8m:@m:Hm:Pm:Xm:`m:nhm:pm:#xm:m:om:m:m:pm:m:qm:m:rm:(m:m:m:Gm:m:Vm:sm:tn:n:un:Vn:v n:(n:w0n:x8n:x@n:,Hn:Pn:Xn:>`n:hn:pn:yxn:'n:@n:pn:"n:n:Zn:n:zn:n:{n:n:Nn:|n:;n:}n:~n:o:o:o:do: o:(o:0o:8o:@o: Ho:Po:OXo:`o:[ho:\po:Mxo:eo:o:<o:o:o:o:o:o:o:0o:o:o:o:o:o:o:p:p:p:p: p:(p:#0p:)8p:@p:Hp:Pp:Xp:`p:]hp:pp:xp:9p:ip:p:p:p:<p:Sp:p:Op:p:p:hp:p:p:p:p:q:Sq:q:q:i q:(q:0q:Z8q:D@q:3Hq:Pq:Xq:?`q:hq:pq:xq: q:q:>q:q:q: q:Sq:yq:q:q:q:q:q:Nq:q:q:Er:r:r: r: r:(r:-0r:8r:f@r:Hr:LPr:Xr:`r:hr:pr:xr:r:r: r:r:r:r:r:r:r:r:0r:br:"r:"r:r:r:s:s:Gs:s: s:(s:0s:8s:@s:[Hs::Ps:Xs:`s:[hs:qps:Bxs:s:Rs:s:s:s:ts:s:s:ds:s:s:s:Gs:s:s:\s:~t:t:}t:1t: t:(t:n0t:8t:,@t:Ht:Pt:Xt:`t:ht:pt:]xt:Kt:t:t:t:t:t:wt:t:t:t:rt:t:@t:t:t:t:`u:u:u:u:% u:(u:0u:8u:@u:Hu:Pu:eXu:\`u:\hu:pu:xu:u:.u:u:u:]u:u:u:ou:Su:u:u:u:u:u:u:Pu:v:+v:v:v:5 v:(v:0v:Y8v:@v:Hv:Pv:Xv:`v:-hv:pv:xv:v:v:v:v:v:v:v:v:v:v:v:v:Zv:v:v:"v:w:w:w:w: w:(w:0w:8w:@w:Hw:<Pw:Xw:`w:hw:pw:_xw:Hw:w:w:dw:w: w:w:w:w:Qw:w:w:w:w:w:w:x:x:x:x: x:(x:0x:8x: @x:Hx:Px:Xx:`x:hx:px:xx:x:x:x:x:Ox:x:x:x:x:x:x:x:x:Tx:x:x:Oy:y:]y:y:] y:((y:0y:>8y:b@y:PHy:Py:Xy:`y:hy:py:xy:y:y:y:y:y:y:y:y:y:y:y:y:My:y:y:y:+z:z:z:z: z:(z:0z:8z:4@z: Hz:Pz:Xz:`z:hz:pz:xz:z:z:z:z:z:z:z:z:z:kz:qz:mz:z:z:z:8z:G{:.{:{:{: {:({:/0{:?8{:@{:H{:7P{:X{::`{:h{:8p{:Wx{:{:{:{:{:{:{:'{:{:{:{:k{:{:{:{:{:Z{:|:|:|:|:: |:(|:I0|:,8|:@|:H|:P|:X|:~`|:h|:%p|:x|:|:=|:L|:|:|:|:|:|:|:|:z|:|:|:|:|:|: }:|}:}:v}: }:(}:g0}:8}:@}:H}:P}:X}:`}:h}:bp}:x}:}:}:}:}:Q}:I}:}:}:}:2}:D}:}:}:HH5HtH55%5hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4h5h6h7qh8ah9Qh:Ah;1h<!h=h>h?h@hAhBhChDhEhFhGqhHahIQhJAhK1hL!hMhNhOhPhQhRhShThUhVhWqhXahYQhZAh[1h\!h]h^h_h`hahbhchdhehfhgqhhahiQhjAhk1hl!hmhnhohphqhrhshthuhvhwqhxahyQhzAh{1h|!h}h~hhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQhAh1h!hhhhhhhhhhhqhahQ%\5D%U]5D%^5D%_5D% `5D%`5D%c5D%c5D%c5D%c5D%c5D%c5D%c5D%c5D%c5D%c5D%c5D%c5D%}c5D%uc5D%mc5D%ec5D%]c5D%Uc5D%Mc5D%Ec5D%=c5D%5c5D%-c5D%%c5D%c5D%c5D% c5D%c5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%b5D%}b5D%ub5D%mb5D%eb5D%]b5D%Ub5D%Mb5D%Eb5D%=b5D%5b5D%-b5D%%b5D%b5D%b5D% b5D%b5D%a5Dc:e:e: f:Pg:0m:0m :@j(:p0:p8:`l@:psH:psP:`tX:`:pxh:yp:{x:`|:`:P:::P::::ȏ:`Џ:Й؏:Й::0:Р:::::= :0(:00:@8: @: H: P:0X:@`:h:p:x:@:ps::::@:@: :V:VȐ:`А: ؐ::0^::`:c:@:@:;: :p(:@0:8:P@:H:"P:-X:0`:0h:1p:`x:4:@Z:0?:@Z: ]: c:pd:h:@:ȑ:0Б:ؑ::@:::L:@J:@:y:q :w(:0:8:@:ЎH:P:X:`:h:p:Иx:::&:::p::::0Ȓ:0В:pؒ:`x:{::@: :P::p:  :(:0:8:@:H:P:pX:`:h:`p:x::`: ::@!:3:%:':p.:ȓ:Г:P2ؓ:L:3:@:0G:J:L: O:@R:@R :`V(:@0:38:W@:YH:]P:]X:_`:`h:cp:0ex:0e:i:i:j:j:s:s:s:s:sȔ:sД:vؔ:v:v:v:v:`z:`z:`z:`z:`z :`z(:`z0:`z8:`z@:`zH:`zP:`zX:}`:h:@p:@x:::Д:::::::ȕ:Е:ؕ::p::p::::: :(: 0:8:P@:H: P:X:`:ph:@p:x::::@:@:::@:@:Ȗ:Ж:ؖ:@:@:::::0:: :p(:p0:p8:@:H:P:X:`:h:p:x::::::`:`:`:`:pȗ:pЗ:pؗ:`:`:0:0:0:`:`:P: :Z(:Y0:pZ8:Z@:dH:dP:X:@`:h:p:x:e: j:@m:p:Pq:{:P{:p|: :Ș:@И:ؘ::|:}:}:0~:p~::@: :(:0:P8:@:=:0V:=:=:A:A:A:B:(B:HB:ehB:B:nB:B:B:C:S(C:HC:)hC:C:rC:|C:vC:JD:(D: HD: hD: D: D: D: D::E::(E:<HE:R:hE:E:E:F:(F:HF:hF:F:F:E:)E:)F:MF:G:0(G:{HG:kG:G:Z:G:MG:G:G:G:G:6G:kG:_G:G:a([:aG:ZG:;V:;~:; H:(H:4I:4I:40H:I:8H:0HH:(I:J:PH:n0I:nJ:nXH:J:`H:@hH:pH:0J:xH:YXI:Y8J:YH:~@J:~H:<H:PJ:H:xI:XJ:L:H:I:`J: L:H:cI:chJ:c(L:cH:kI:kpJ:k0L:kH:CI:CxJ:CH:hI:hJ:hH:I:J:H:H:fI: I:^I:^J:^K:^8I:@I:x J:xHI:(J:PI:`I:uhI:(pI:I:J:I:mI:5HJ:GJ:J:J: K: L: J:J:$J: J:K:K:jK:K:. K: (K:0K:8K:@K:HK:PK:rK:K:K:|K:K:K:K:K:K:-L:gL:L:L:L:pM:PN:0O:`M:@N: O:.Q:bQ: Q:Q:R:R:R:R: R:(R:0R:e8R:>@R:HR:PR:XR:`R:hR:kpR:NxR:R:1R:R:R:R:3R:wR:R:JR:R:R:R:4R:R:R:tS:qS:S:S:7 S:q(S:W0S:8S:@S:HS:PS:kXS:`S:HhS:1pS:xS:S:sS:6S:QS:S:S:S:SS:wS: S:%S:&S:S:S:S:'S:mT:~:~:T:T:T:O T:L(T:0T:8T:@T:DHT:PT:XT:F`T:hT:pT:axT:T:T:T:T:mT:T:hT:T:QT:@T:9T:8T:T:T:T:T:U:MU:U:U:> U:(U:0U:8U:@U:HU:PU:XU:'`U:hU:pU:,xU:\U:=U:TU:U:U:U:Wp~:WU:U:U:U:U:U:U:U:U:RU:V:V:QV:V:0 V:M(V:B8V:K@V:)HV:PV:XV:r`V:hV:RpV:NxV:V:cV:V:lV:V:V:V:V:V:3V:V:V:V:J~:JV:V:W:W:W:W: W:F(W:^0W:8W:@W:v~:vHW:PW:TXW:`W:hW:6pW:4xW:uW:W:AW:XW:W:9W:W:UW:mW:W:@W::W:W:W:|W:W:hX:HX:X:_X:  X:(X:p0X:H~:8X:@X:HX:mPX:XX:`X:yhX:pX:oxX:X:X:VX:,X:X:X:=X:X:X:X:X:X:X:X:X:X:/Y:Y:7Y:Y:  Y:(Y:0Y:8Y:r@Y:nHY:RPY:8XY:U`Y:hY:_pY:xY:Y:Y:NY:}Y:Y:Y:IY:Y:{Y:Y: Y:sY:}Y:Y:Y:aY:Z:Z:IZ:@Z:" Z:(Z:}0Z:8Z:@Z:HZ:APZ:XZ:A`Z:hZ:EpZ:xZ:Z:Z:Z:BZ:Z:Z:$Z:Z:~Z:x~:Z:Z:Z:aZ:Z:Z:q[:v[:5[:[:  [:0[:>8[:@[:H[:P[:bX[: `[:h[:Wp[:x[:[:[:4[:[:[:[:[:2[:[:[:[:s[:O[:f[:[:w[:X\:\:?\:6\: \:(\:C0\:!8\:@\:pH\:P\:AX\:`\:<h\:lp\:x\:A\:\:\:\:\:y\:V\:\:\:\:\:\:\:\:\:\:#]:]:]:]: ]:*(]:s0]:8]:@]:H]:P]:^X]:p`]:!h]:p]:_x]:]:(]:]:]:%]:`]:]:]:]:]:]: ]:]:v]:C]:]:^:^:^:P^: ^:(^:0^:|8^:@^:H^:P^:zX^:`^:h^:p^:x^:^:x^: ^:^:g^:T^:^:(^:c^:^:^:^:^:^:^:^:_:_:_:_:P _:y(_:0_:t8_:@_:H_:P_:X_:`_:h_:p_:x_:_:J_:_:X_:_:_:_:_:_:m_:_: _:_:P~:X~:`~:h~:V`: `:*(`:x0`:l8`:9@`:iH`:P`:X`:j``:ch`:p`:x`:+`:L`:`:5`:1`:`:`:`: `:`:`:`:i`:[`:`:`: a:Ka:za:a: a:^(a:0a:8a:3@a:Ha: Pa: Xa: `a: ha:'pa:xa:a:a:a:a:a:a:la:a:a:ea:a:a:a:a:a:a:cb:hb:Bb:b:+ b:9(b:0b:78b:@b:iHb:jPb:Xb:P`b:6hb:Epb:xb:b:b:b:pb: b:Wb:b:b:b:_b:1b:Fb:}b:!b: b:b:c:c:c:-c: c:(c:0c:8c:%@c: Hc:Pc:Xc:``c:hc:pc:xc:Uc:c:c: c:!c:Hc:c:c:c:c:"c:c:yc:{c:#c:c:xd:Yd:d:d:$ d:%(d:0d:8d:5@d:Hd:&Pd:fXd:g`d:hd:Upd:^xd:d:d:d:d:d:4d:d:Ed:(d:d:[d:)d:d:[d:*d:*d:e:+e:e:,e:- e: (e:0e:8e:@e:He:Pe:.Xe:`e:he:pe:xe:.e:/e:be:e:e:e:Ge:8e:e:e:e:xe:e:ye:e:e:f:0f:f:1f: f:2(f:0f:8f:/@f:&Hf:TPf:Xf:R`f: hf:pf:xf:f:wf:3f:f:;f:qf:4f:5f:zf:f:*f:f:6f:7f:pf:f:8g:g:9g: g: g:(g:0g:8g:@g::Hg:;Pg:<Xg:`g:=hg:opg:xg:&g:>g:g:?g:g:g:dg:g:g:=g:g:g:g:g::g:@g:Ah:Bh:h:h: h:(h:a0h:8h:@h:5Hh:Ph:7Xh:U`h:Chh:ph:xh:h:h:Dh:h:h:Eh:h:zh:Fh:h:Ph:Gh:h:h:h:h:Hi:Ii:i:i:( i:(i:J0i:K8i:@i:Hi:Pi:Xi:`i:thi:-pi:xi:i:Xi:Vi:i:Li:ci:ni:i:ei:Mi:Ni:i:i:Oi:i:i: j:Qj:j:Sj: j:(j:$0j:8j:X@j:Hj:Pj:fXj:T`j:Uhj:pj:^xj:;j:Vj:j:Wj:Xj:j:j:j:6j:j:j:j:j:8j:Ej:Yj:k:Zk:k:[k: k:\(k:0k:38k:@k:Hk:]Pk:Xk:7`k:Rhk:Dpk:Cxk:Gk:k:Yk:k:k:k:Jk:_k:k:k:k:`k:ak:k:k:xk:2l:l:!l:bl: l:c(l:!0l:d8l:e@l:Hl:fPl:Xl: `l:ghl:Rpl:vxl:d5&:5&:6&:&5&:6&:6&:6&: 6&:6&:6&:5&:6&:6':!6':'6':,6':2}5 ':5(':160':668':>6@':E6H':L6P':U6X':`6`':k6h':w6p':5x':5':6':6':l':6':6':6':6':6':6':dW':A':6':6':6':6': 5(:6(:6(:6(:k5 (:6((:60(:68(:6@(:6H(:6P(:WX(: 5`(:5h(:5p(:5x(: 5(:5(:&5(:6(:6(:6(:-5(:35(:6(:6(:6(:6(:6(:6(:6(: 6(:6):95):6):6):6 ):%6():@50):-68):H5@):#6H):96P):T5X):^5`):?6h):E6p):K6x):R6):Y6):a6):j6):q6):75):x6):6):6):6):u$):6):6):6):6):6):6*:6*:6*:6*:6 *:6(*:)60*:368*:B6@*:S6H*:_6P*:m6X*:{6`*:6h*:6p*:6x*:6*:6*:6*:6*:6*:6*:6*:6*:6*:6*: 6*:6*:6*:&6*:/6*:86*:5+:a+:5+:A6+:Y6 +:k6(+:}60+:68+:6@+:6H+:6P+:6X+:6`+:6h+:6p+:6x+:6+:6+:6+:6+:06+:<6+:M6+:U6+:d6+:x6+:6+:6+:6+:P5+:a5+:r5+:5,:5,:5,:6,:6 ,:6(,:6@,:WKH,:6P,:;#X,:6`,:6h,:YVp,:6x,:+6,:6,:6,: 6,:6,:6,:!6,:(6,:.6,:46,:>6,:D6,:6,:N6,:M6,:6,:D6-:!-:6-:1u-:U6 -:^6(-:h60-:8-:6@-:lH-:r6P-:x6X-:6`-:6h-:6p-:6x-:B6-:6-:N6-:6-:5-: -:z-:6-:6-:6-:6-:6-:6-:6-:6-:6-:6.:6.:6.:6.:6 .:6(.:60.:68.:6@.:6H.:6P.:6X.:6`.: 6h.:oTp.:6x.:"6.:6.:.6.:6.:36.:6.:86.:6.:=6.:6.:B6.:6.:G6.:N6.:L6.:S6.:W6/:[6/:O/:6/:_6 /:c6(/:i60/:r68/:{6@/:h6H/:q6P/:z6X/:6`/:6h/:6p/:6x/:6/:6/:6/:6/:6/:6/:l/:l/:l/:C5/:B5/:l/:l/:l/:9l/:6/:60:^U0:50:60:%5 0:6(0:600:580:5@0:uH0:R6P0:6X0:6`0:6h0:p0:7x0:60:60:60:60:60:60:60:60:60:60:60:60: 60:60:A50:50:61:61:$61:"61:+6 1:{6(1:601:681:66@1:uH1:;6P1:B6X1:K6`1:T6h1:6p1:6x1:61:61:!61:61:)61:^61:h61:r61:{61:61:61:U61:~1:61:61:61:62:62:62:62:6 2:6(2:602:682:6@2:6H2:6P2:6X2:6`2:6h2:6p2:6x2:62:62:62: 62:g2:62:62:62:&62:V62:ǫ2:ܾ62:*62:/62:52:62:R3:063:=63:J63:W6 3:j6(3:u603:683:6@3:;H3:!P3:b5X3:6`3:6h3:6p3:5x3:63:63:63:63:63:63:63:63:63:63:63:63:63:53:63:&53:64:64:64: 64:6 4:6(4:504:684:6@4:!6H4:'6P4:,6X4:2}5`4:6h4:16p4:66x4:>64:E64:L64:64:64:k64:w64:54:54:64:64:64:64:64:64: 64:65:65: 65:(65:06 5:96(5:B605:I685:P6@5:V6H5:\6P5:c6X5:i6`5:p6h5:w6p5:~6x5:65:65:65:65: 55:55:55:55: 55:55:&55:65:65:65:-55:355:66:66:66:66:6 6:6(6:606: 686:6@6:95H6:6P6:6X6:6`6:%6h6:@5p6:-6x6:H56:#66:66:T56:^56:?66:E66:K66:R66:Y66:a66:j66:q66:756:x66:66:67:67:u$7:67:6 7:!(7:607:687:6@7:6H7:6P7:6X7:6`7:6h7: 6p7:6x7:67:%67:/67:867:A67:J67:S67:[67:e67:n67:w67:67:67:67:67:67:68:68:68:68:6 8:6(8:608:8688:5@8:aH8:5P8:6X8:6`8:6h8:6p8:6x8:68:68:68:68:68:68:"68:-68:568:S8:?68:L68:Y68:g68:u68:o68:|69: 59:?59:69:6 9:P5(9:a509:r589:5@9:5H9:5P9:6X9:6`9:6h9:69:69:69:$9:69:`59:<69:t59:b59:69:69:69:69:69:69:6::6::e6::5::t5 ::6(::6@::`5H:: 6P::kX::6`::'6h::6p::6x::6::"6::&6::+6::06::56:::6::o6::6::?6::F6::K6:: t5::P6::U6::Z6::_6;:c6;:h6;:m6;:t6 ;:y6(;:]60;:68;:6@;:6H;:6P;:6X;:6`;:6h;:6p;:6x;:6;:6;:6;:6;:6;:6;:6;:6;:6;:6;:6;:6;:6;:6;:6;: 6;:6<:6<:6<:#6<:)6 <:/6(<:560<:;68<:A6@<:G6H<:M6P<:5X<:Q6<: <:`<:<:=:T6=:]6=:h6=:s6 =:{6(=:60=:68=:6@=:6H=:6P=:6X=:6`=:6=:S=:S=:S=: T=: >:T>:  >:1T(>: @>:=TH>:`>:JTh>:>:YT>:`>:fT>:`>:yT>:>:T>:?:T?: ?:T(?:@?:TH?:`?:Th?:?:T?:?:T?:?:T?: ?:T?: @:U@:  @:U(@: @@: UH@: `@:-Uh@: @::U@: @:GU@: @:TU@: @:bU@: A:uUA:  A:U(A:@A:UHA:``A:UhA:`A:UA:A:UA:UA:UB:U B:U@B:V`B:SB:SB:VB:)VB:2VB:)VB:XB:FVC:IVC:_V C:eV0C:xV@C:|VPC:V`C:VpC:VC:VC:/VC:VC:bKC:VC:VC:XD:Y D:(Y@D:HY`D:hYD:YD:YD:YD:YE:Z E:8Z@E:ۙ5PE:`E:̙5pE:E:5E:PE:5E:PE:$5E:PE:65E:PF:G5F:P F:X50F:P@F:i5PF:P`F:z5pF:PF:5F:PF:5F:PF:5F:PF:5F:PG:Ԛ5G:P G:50G:@G:5H:|6H:6I:6J:6K:6hL:6HM:#5(N:LO:6~:~:~: ~:/~:I~:q~:q~:D~:q:q:v:q:q :q(:q0:``8:q@:qH:qP:oX:o`:qh:op:mx:a:]:q:D:D:p\:P:`_:q:D:D:q:q:q:q:q:q:q:``:q:] :q(:]0:q8:T@:DH:DP:DX:@T`:@Th:@Tp:@Tx:@T:@T:@T:@T:q:q:q:q:q:qȀ:qЀ:؀:q:q:q:q:Po:q:q: n: n ::(::0::8::@::H::P::X::`::h::p::x:::q:q:q:q:q:q:q:q:qȁ: nЁ: n؁: n: n: n: n: n: n: n:q:q :q(: n0: n8:q@:@H:DP:DX:D`:Dh:Dp:Dx:D:D:D:D:D:D:`[:X:D:SȂ:SЂ:@T؂:D:D:D:D:D:D:D:D:D :o(:q0:q8:q@:qH:qP:qX:X`:Xh:Xp:Xx:X:X:O:P:o:q:q:q:q:Dȃ:DЃ:`؃: r:q:q:D:D:D:D:D:@k :@k(:D0:l8:D@:@QH:qP:@QX:q`:qh:qp:qx:q:q:q:q:q:q:q:q:p:qȄ:qЄ:q؄:q:q:D:D:D:D:q:q:q :q(:q0:q8:q@:qH:qP:qX:q`:@h:qp:qx:q:q:q:D:px:q:q:q:q:qȅ:qЅ:q؅:q:q:q:PU:D:D:D:D:D :D(:D0:D8:D@:DH:UP:UX:^`:Dh:Dp:qx:P:P:P:D:D:D:D:^:pX:pXȆ:`WІ:D؆:D:D:D:D:D:D:D:D:D :D(:D0:D8:D@:DH:DP:AX:A`:Ah:Ap:Ax:A:A:A:A:A:A:A:A:A:Aȇ:AЇ:A؇:A:A:A:A:A:A:A:A:A :A(:A0:A8:`W@:DH:DP:DX:D`:Dh:Dp:Dx:D:D:D:D:D:D:D:D:D:DȈ:qЈ:q؈:D:O:O:D:q:D:D:D:D :q(:q0:D8:D@:DH:DP:DX:D`:Dh:Dp:Dx:D:D:D:D:D:D: e:D:v:P>ȉ:qЉ:P>؉:q:D:D:q:D:D:q:D:D :q(:D0:D8:q@:DH:DP:DX:D`:qh:qp:qx:q:D:D:q:q:q:D:D:q:qȊ:qЊ:q؊:D:T:q:q:q:q:q:D:q :q(:q0:q8:a@:qH:qP:qX:q`: wh:qp:qx:P@:q:q:q:q:q:q:q:q:qȋ:qЋ:q؋:q:q:q:P:q:q :(:0:8:@:H:P:зX:`:*h:p]p:x::@:pZ::::!:0$:": %Ȍ:$Ќ:&،:(::@:#:::,:0,:`  :(:0.0:18:.@:.H:`P:0X: 1`:0h: 1p:0x::`2:-:0:::::6:6ȍ:7Ѝ:7؍:`8: >:}:B:0~:PF::K:P :@(:R0:p8:@:H:P:WX:Y`: ^h:p:_x:p:_:@:`::::a::bȎ:Ў:c؎:c:c:P9#X9@#`9#h9`#p9`#x9#9`#9#9#9#9#9@#9#9#9@#9@#9#9#9 #9@#9#9`#9#9#9#9`# 9#(9`#09#89#@9@#H9#P9`=$X9@#`9#h9#p9#x9@#9#9#9#9@#9#9#9#9#9`#9#9@#9#9#9#9#9#9`#9 #9#9# 9@#(9#09 #89#@9z#H91P9@1X91`91h91p9@1x91919`19 191919 19y#9t#9`t#9s#9r#9q#9`q#9 q#9p#9@p#9p#9`a#9 a#9`# 9`#(9@`#09@]#89I#@9H#H9%#P9"X9"`9@"h9"p9@"x9@"9`"9"9@"9"9 "9 "9"9"9@"9"9"9`"9"9 "9"9`"9"9 "9"9 " 9"(9`"09"89"@9"H9`~"P9`}"X9 }"`9|"h9@|"p9|"x9{"9z"9y"9y"9v"9`v"9v"9`u"9 u"9t"9t"9t"9s"9@s"9r"9`r"9r"9q"9p"9p"9@p" 9p"(9o"09m"89`m"@9 m"H9l"P9k"X9k"`9`k"h9k"p9j"x9`j"9 j"9h"9g"9g"9`g"9 g"9f"9f"9["9@Y"9X"9X"9`X"9W"9W"9@W"9@V"9V"9S"9O" 9O"(9@O"09C"89`C"@9 C"H9B"P9B"X9`B"`9@="h9="p9<"x9<"9@<"9<"9;"9;"9@;"9;"9:"9:"9@:"99"99"9`9"98"9@8"97"97"9`7"97"96"9@6" 96"(9@4"093"893"@9`3"H9 3"P91"X9+"`9*"h9@*"p9)"x9`)"9("9@("9`19("9'"9'"9@'"9'"9&"9&"9`%"919 %"9$"9$"919$"9@"9@"9" 9"(9"09@"89"@9"H9"P9"X9@!`9!h9!p9!x9!9@!9@!9!9!9`!9!9 !9!9@m!9C!9@C!9 P19@"19!19`!19@19090909@0 90(9d009@408930@9B!H9@B!P9A!X9`A!`9 A!h9@!p9@@!x9@!9?!9?!9@?!9>!9@5!9 !9*0909@/9@/9/9s/9 q/9!9@!9 p/9 o/9l/9! 9bK(9@09H94P94X94`94h94p94x9p49@49049 49494949@494949494949494949x49p49`49P49@4 984(90409(4894@94H94P94X94`94h94p94x9`49@49 49494949494949@49494949494949494949494(9o589 o5H9o5X9o5h9*o5x99o59Fo59No59Yo59eo59po59{o59o59o59o59o5(9o589o5H9o5X9o5h9o5x9 p59p59!p59-p59>p59Mp59Zp59ap59lp59zp59p5(9p589p5H9p5h9p5x9p59p59p59p59p59p59p59p59p59p5(9p5H9p5X9q5h9 q5x9q59q59q59"q59*q59l`9Alh9Dlp9Klx9 9 9Ql9 9!95!99 >9>9> 9>(9!>09'>89->@93>H99>P9?>X9E>`9K>h9Q>p9W>x9]>9`699OK9W9c>9p>9|>9>9>ȥ9>Х9>إ9>9>9>9J&9$9>9>9>9> 9}t5(96094894@9>H96P9>X9?`9>h9>p92x929?9*59?9?96969349H49K3Ȧ9R3Ц9#?ئ9&?9hw9!9696 9#(9\!09_589)?@9b5`9h9p9.?x9=?9L?999Z?9e?9p?9?9?9?ȧ9?Ч9?ا9?9?9@99591@9E@990 9W@(9s@09@89@@9@H9@P9@X9T`9[h9@p9@x9@9A9A9A9*A99E9J9Y9b9D9Dȫ9DЫ9Eث9&E99E9GE9UE9k9v9tO9O9bE 9mE(9wE09E89E@9EH9EP9EX9E`9Eh9Fp9/Fx9LF9ț999gF9}F9F9F9F9FȬ9FЬ9Fج9F9F9F9G9 G9G9G9&G9.G 98G(9@G09JG89RG@9cGH9rGP9GX9G`9Gh9Gp9Gx9G9G9G9H9*H9CH9ZH9qH9@9hȭ9Э9ح9؜99 9H9p9999 9((9P09p89@9H9P9X90`9Ph9xp9x9H9H9H999989`99Ȯ9ؠЮ9خ9H9H9I9I91I9JI9dI9~I9I 9I(9I09I89I@9'SH9GSP9IX9I`9Jh9Jp9(Jx94J9JJ9`J9wN9N9tJ9J9(9P9xȯ9JЯ9Jد9J9J9J9J9J9999 9 K(9K09'K896K@9CKH9RKP9_KX9nK`9{Kh9Kp9Kx9K9K9K9K9L9L9)L9=L9QL9cLȰ9pLа9|Lذ9L9L9L9L9999!9L 9L(9M09M89!M@95MH9IMP9\MX9rM`9Mh9Mp9Mx9M9M9M9M9N9N9b98b9(N96ȱ9Bб9Wر9]94N9;N9BN9ON9\N9w99hN 9N(9N0989@9H9NP9X9`9h9p9x99N9N9N9N9N9O9+O998Ȳ9`в9AOز9WO9kO9xO999O9O9O9 9(9O0989@9OH9OP9PX9P`9#Ph92Pp9?Px9QP9cP9tP9P9P9P9P9P9P9Pȳ9Qг9Qس9)Q9X9KX9WX9tX9X9 9(9X0989@9H9P9XX9`9h9p9x9X9X9X9/969=9G9y9}9Xȹ9Xй9Yع9 Y9Y9,Y9?Y9KY9UY9aY9kY9wY 9Y(9Y09Y89Y@9YH9YP9YX9Y`9Zh9%Zp96Zx9EZ9VZ9gZ9vZ9Z9Z9Z9Z9Z9ZȺ9Zк9Zغ9 [9[9+[9:[9F[9P[9\[9f[9r[ 9|[(9[09[89@9H9[P9[X9[`9h9p9[x999[9\9\9+\9>\9Q\99Ȼ9b\л9k\ػ9s\9\9\9\9\9\9 99% 9,(9309<89\@9\H9\P9\X9\`9Yh9ap9ix9s9999999]99ȼ9]м9#]ؼ999@90]9G]9^]9f9f9t] 9](9]0989@9]H9P9X9]`9]h9]p9]x9]9^919?9!^9`9q92^99Ƚ9н9ؽ9G^9S^9`999ؤ99(9^^ 9t^(9^09P89x@9^H9P9ȥX9`9^h9^p9^x9_9_9)_9=_9N_9__9o_9|_9_9_Ⱦ9о9ؾ9We9oe9_9_9_999_9_ 9`(9`09*`89@9H9P9X9LD`9[Dh9kDp9Dx9D999>`9L`9X`9f`9r`9`9`ȿ9`п9`ؿ9`919;9`9O9[9p9|9` 9v!(90989`@9H9P9`X9`9`h9ap9WIx9qI9I999a999'a9+a99 9/a9&9/98a9A9O9Fa9\9g9Qa 9q(909ca89@9H9naP9X9`9zah9p9x9a999a999a9 99a9a9a9"9(9b9b9.b9B9H9b9j 9Ab(9Wb09mb89b@9|H9P9X9`9bh9p9x9b999b9b9b9b9b99!9b9b9`X9}X9X9989b9c9%c94c 9Bc(9Pc09w989k9Rk9Wk9]k9ck9hk9mk9rk9wk9l9l9l9l9 l9(l90l98l9@l9Hl9Pl9Xl9`l9hl9pl9xl9l9 l9l9l9l9(l9-l92l9=l9Hl9Ml9Rl9Wl9\l9al9fl9mm9tm9ym9~m9 m9(m90m98m9@m9Hm9Pm9Xm9`m9hm9pm9xm9m9m9m9m9m9m9m9 m9m9m9m9!m91m9@m9Em9Jm9Rn9Zn9_n9dn9k n9r(n9w0n9|8n9@n9Hn9Pn9Xn9`n9hn9pn9xn9n9n9n9n9n9n9n9n9n9n9n9.n9En9[n9`n9en9jo9oo9xo9o9 o9(o90o98o9@o9Ho9Po9Xo9`o9ho9po9xo9o9o9o9o9o9o9o9o9o9o9 o9%o9*o9/o96o9=o9Gp9Qp9Vp9[p9` p9e(p9j0p9o8p9t@p9yHp9}Pp9Xp9`p9LChp9cCpp9xp9p9p9p9p9p9p9p9p9p9p9p9p9p9p9p9p9q9q9q9q9 q9 (q90q98q9 @q9%Hq9,Pq93Xq9<`q9Ehq9Jpq9Oxq9Tq9Yq9aq9iq9sq9}q9q9q9q9q9q9q9q9q9q9q9r9r9r9r9 r9(r9 0r98r9@r9'Hr9,Pr91Xr9?`r9Lhr9Qpr9Vxr9[r9`r9qr9r9r9r9r9r9r9r9r9r9"ar9r9r9r9s9s9s9s9 s9(s90s98s9@s9Hs9Ps9'Xs9,`s91hs9;ps9Exs9Js9Os9[s9fs9ks9ps9|s9s9s9s9s9s9s9s9s9s9t9t9t9t9 t9(t90t98t9@t9Ht9Pt9Xt9 `t9&ht9/pt97xt9<t9At9Ot9\t9gt9qt9t9t9t9t9t9t9t9t9t9t9u9 u9u9"u9( u9.(u930u988u9=@u9BHu9HPu9NXu9S`u9Xhu9]pu9bxu9ju9ru9wu9|u9u9u9u9u9u9u9u9u9u9u9u9u9v9v9v9v9 v9(v90v9 8v9@v9Hv9!Pv9,Xv91`v96hv9;pv9@xv9Pv9_v9dv9iv9nv9sv9zv9v9v9v9v9v9v9v9v9v9w9w9w9w9 w9(w90w98w9@w9Hw9Pw9Xw9`w9 hw9pw9xw9"w9'w9,w91w96w9;w9Cw9hw9hw9Kw9Pw9Uw9Zw9_w9gw9ow9tx9~ax9x9yx9~ x9(x90x98x9@x9Hx9Px9Xx9`x9hx9px9xx9x9x9x9x9x9x9x9 x9x9x9!x9)x9.x93x9<x9Ex9Ly9Ry9[y9cy9l y9t(y9y0y9~8y9@y9Hy9Py9Xy9`y9hy9py9xy9y9y9y9y9y9y9y9y9y9y9y9y9y9y9 y9 y9 z9 z9 z9 z9!  z9( (z9- 0z92 8z9: @z9B Hz9G Pz9L Xz9U `z9^ hz9c pz9h xz9p z9x z9} z9 z9 z9 z9 z9 z9 z9 z9Iz9 z9 z9 z9 z9 z9 {9 {9 {9 {9  {9 ({9 0{9 8{9!@{9 !H{9!P{9!X{9!`{9!!h{9&!p{9+!x{90!{95!{9&9J&9$9M&Ȇ9P&І9S&؆9V&9Y&9\&99Н59_&9i&9r&9& 9&(9&09'89*@9&H9&P9Kt5X9`9-h90p9'x959-t5969&9&9&9 9&9&9&ȇ95Ї9'؇9'9'9 '9#'9-'9?9R94o95 9L(9*097'89:'@9!H9!P9i'X9Z`9='h9L5p9G'x9}59 9I999J'9V'9599a'Ȉ9d'Ј9؈99g'9o'9A9hw9;L9,_5 9w'(9'09'89'@9}t5H96P9'X9'`9'h9'p96x969'9'96969'9(9Y69|59 (9(9#(90(9<(9H(9S(9/ 9W((9](09c(89h(@9m(H9q(P9(+X97+`9u(h9(p9(x9(9(9(9Z9 9(9(9(9L9(Ȋ9(Њ9(؊9(9(9(9(9(9)9)9 )9) 9,)(9E)09[)89n)@9/H9h5P9)X9)`9)h9$)p9+x9+9.9.9,9",9)9)9)9)9)ȋ9oЋ9)؋9)9)9)9)9)9)9)9*9* 9 *(9.*09;*89I*@9V*H9e*P9s*X9*`9*h9*p9*x9*9*9*9*9*9*9+9+9-+9<+Ȍ9N+Ќ9_+،9r+9+9+9+9+9+9+9+9+ 9,(9,09',899,@9J,H9Y,P9g,X9v,`9,h9,p9,x9,9,9,9,9,9,9 -9-9--9>-ȍ9M-Ѝ9[-؍9j-9x-9-9-9-9-9-9-9- 9-(9 .09.89,.@9<.H9A.P9F.X9J.`9N.h9_.p9+(x97(9r,9,9}*9f9.9.9D(9O(9n.Ȏ9s.Ў9x.؎9|.9.9.9.9.9.9.9-9- 9.(9.09(89(@9.H9.P9.X9.`9.h9.p9.x9/9 /9/9I-9W-9/9!/9,/9=/9-ȏ9-Џ9L/؏9U/9]/9k/9.9 /9.9.9(9( 9x/(9/09/89/@9/H9/P9/X9/`9/h9/9/9/9/9/9/9/9 0909,0Ȑ960А9@0ؐ9O09]09m09|09090909090 90(910918941@9I1H9c1P9{1X91`91h91p91x9191929'29729F29X29O'9Z'9i2ȑ9z2Б92ؑ9292929m9w92929399 92(92092892@92H93P9!3X9-3`983h9B3p9K3x9R39Y39a39i39o39u3939393939393949(49?49494 9n4(9409389F*@93H93P934X9H4`93h93p93x93939 49 49949N49[49f49}494ȓ94Г94ؓ949494949gz 94(95095895@9"5H9.5P995X9G5`9T5h9]5p9e5x9m59t59}595959^9_959595959595 9}t5(96095895@9t5H96P95X96`9 6h96p96x9"6939F*9.69=696969K69Y69hLȕ96Е9f6ؕ9q69{69~69696 9(a(9,a09!89 5@9$H9+P91X9<`9Eh9Ip9Ͻ6x9V,9M939X969[9b989A9Ȗ9Ж9}t5ؖ9699Н59t5969 6969399 9K6(96096896@9?H9RP94oX95`9Doh9Hop96x9896969hL96959999A9hw969_invlistPL_GCB_invlistPL_HasMultiCharFoldPL_InMultiCharFoldPL_Latin1PL_LB_invlistPL_SB_invlistPL_SCX_invlistPL_UpperLatin1PL_in_some_foldPL_utf8_foldclosuresPL_utf8_idcontPL_utf8_idstartPL_utf8_perl_idcontPL_utf8_perl_idstartPL_utf8_xidcontPL_utf8_xidstartPL_WB_invlistPL_utf8_toupperPL_utf8_totitlePL_utf8_tolowerPL_utf8_tofoldPL_utf8_tosimplefoldPL_utf8_charname_beginPL_utf8_charname_continuePL_utf8_markPL_CCC_non0_non230PL_Private_UsePL_XPosix_ptrsPL_Posix_ptrsPL_minus_cPerlIO_cleanupPerl_sv_clearPL_psig_namePL_psig_ptrPL_psig_pendPL_taint_warnPL_debugPL_mess_svPerl_PerlIO_restore_errnoPerl_my_exitabortPL_origargvPerlIO_putsPerl_moreswitchesPerl_grok_bin_oct_hexPerl_newSVPL_do_undumpperl_parsePL_origargcPL_origalenPL_basetimePerl_hv_name_setPL_globalstashPerl_set_caret_XPL_minus_EPerl_sv_catpvPerl_gv_fetchfilePerl_PerlIO_stdinPerlIO_fdopenPerl_PerlIO_fileno__fxstat64Perl_rsignal_statePerl_sv_getsstrstrPerlIO_ungetcPerl_pad_newPerl_setdefoutPL_defoutgvPL_signalsPerlIO_openPL_my_environPerl_filter_addPerl_gv_checkPerl_rsignalPerlIO_binmodeperl_runPerl_my_failure_exitPerl_xs_boot_epilogPerl_mro_meta_initPerl_mro_get_linear_isaXS_NamedCapture_flagsPerl_sv_setuvPerl_gv_stashpvnPerl_sv_blessPerl_sv_isobjectPerl_sv_reftypePerl_sv_derived_from_svPerl_sv_derived_from_pvPerl_sv_derived_from_pvnPerl_sv_mortalcopy_flagsPerl_vnormalPerl_vstringifyPerl_sv_derived_from_hvPerl_sv_isa_svPerl_gv_fetchmeth_pvnPerl_sv_does_svPerl_sv_eq_flagsPL_isa_DOESPerl_sv_refPerl_tmps_grow_pXS_UNIVERSAL_DOESPerl_sv_doesPerl_sv_does_pvPerl_sv_does_pvnPerl_croak_xs_usageXS_UNIVERSAL_isaXS_UNIVERSAL_canPerl_gv_fetchmethod_sv_flagsXS_utf8_is_utf8XS_utf8_validPL_extended_utf8_dfa_tabPerl_is_utf8_FF_helper_XS_utf8_encodePerl_sv_utf8_encodeXS_utf8_decodePerl_sv_pvn_force_flagsXS_utf8_upgradePerl_sv_utf8_upgrade_flags_growPerl_sv_setiv_mgXS_utf8_downgradePerl_sv_utf8_downgrade_flagsXS_utf8_native_to_unicodePerl_sv_2uv_flagsXS_utf8_unicode_to_nativeXS_Internals_SvREADONLYXS_constant__make_constXS_Internals_SvREFCNTXS_Internals_hv_clear_placeholdPerl_hv_clear_placeholdersXS_PerlIO_get_layersXS_re_is_regexpPerl_get_re_argXS_re_regnames_countXS_re_regnameXS_re_regnamesXS_re_regexp_patternXS_NamedCapture_tie_itPerl_sv_setrv_noincPerl_sv_unmagicXS_NamedCapture_TIEHASHPerl_newSVrvXS_NamedCapture_FETCHPerl_croak_no_modifyXS_NamedCapture_FIRSTKEYPerl_vnumifyPerl_gv_const_svPerl_newGPPerl_sv_del_backrefPerl_gv_fullname4Perl_gp_refPerl_gp_freePerl_gv_name_setPerl_sv_usepvn_flagsPerl_gv_init_pvPerl_mro_package_movedPL_sig_namePerl_hv_clearPerl_gv_stashpvPerl_save_scalarPerl_newGVgen_flagsPerl_gv_fetchfile_flagsPerl_gv_fetchmeth_pvPerl_gv_fetchmeth_pvn_autoloadPerl_gv_fetchmeth_sv_autoloadPerl_gv_fetchmeth_pv_autoloadPerl_gv_fetchmeth_svPerl_gv_autoload_pvnPerl_sv_untaintPerl_gv_fetchmethod_pvn_flagsPerl_Gv_AMupdatePerl_amagic_appliesPerl_amagic_callPerl_av_extendPerl_try_amagic_unPerl_try_amagic_binPerl_report_uninitPerl_amagic_deref_callPerl_gv_fetchmethod_pv_flagsPerl_gv_fetchmethod_autoloadPerl_gv_handlerPerl_gv_autoload_svPerl_gv_autoload_pvPerl_infix_plugin_standardPerl__is_utf8_FOOPerl__is_utf8_perl_idcontPL_warn_reservedPerl_save_I8Perl_PerlIO_clearerrPerl_lex_bufutf8Perl_lex_grow_linestrPerl_lex_stuff_pvnPerl_lex_stuff_pvPerl_lex_stuff_svPerl_lex_unstuffPerl_lex_read_toPerl_lex_discard_toPerl_sv_uni_displayPerl_str_to_versionPL_strict_utf8_dfa_tabPerl__utf8n_to_uvchr_msgs_helperPerl_av_popPerl_filter_readPerl_PerlIO_readPerl_PerlIO_errorPerl_lex_next_chunkPerl_lex_peek_unicharPerl_lex_read_unicharPerl_lex_read_spacePerl_skipspace_flagsPerl_regcurlyPL_warn_nosemiPerl_delimcpyPerl_sv_grow_freshmemmemPerl_sv_setpvn_freshPerl_PerlIO_tellexecvPerl_utf16_to_utf8_basePerl_scan_word6Perl_scan_wordPerl_croak_kw_unless_classPerl_class_prepare_method_parsePerl_init_named_cvPL_in_utf8_CTYPE_locale__ctype_b_locPerl_prescan_versionPerl_scan_versionPerl_scan_strPerl_save_boolPerl_apply_builtin_cv_attributesPerl_my_snprintfPerl_load_charnamesPerl_get_and_check_backslash_N_namePerl_form_alien_digit_msgPerl_grok_bslash_xPerl_grok_bslash_oPerl_grok_bslash_cPerl_form_cp_too_large_msgPerl_scan_vstringPerl_scan_numPerl_my_atofpowPerlIO_apply_layersPL_keyword_pluginPL_infix_pluginPerl_utf8_lengthPerl_yylexPerl_save_I16Perl_save_ivPerl_save_pptrPerl_save_generic_pvrefstrpbrkPL_no_myglobPerl_keyword_plugin_standardPerl_wrap_keyword_pluginPerl_wrap_infix_pluginPerl_parse_arithexprPerl_parse_termexprPerl_parse_listexprPerl_parse_fullexprPerl_parse_blockPerl_parse_barestmtPerl_parse_labelPerl_parse_fullstmtPerl_parse_stmtseqPerl_parse_subsignaturePerl_save_destructor_xPerl_class_set_field_defopPerl_class_apply_field_attributesPerl_class_prepare_initfield_parsePL_min_intro_pendingPL_max_intro_pendingPerl_class_setup_stashPerl_class_apply_attributesPL_pad_reset_pendingPerl_class_add_ADJUSTPerl_suspend_compcvPL_padixPL_constpadixPL_comppad_name_fillPerl_find_rundefsvPL_comppad_name_floorPerl_save_strlenPL_padix_floorPL_padname_undefPerl_dump_indentPerl_pad_pushPerl_newPADNAMELISTPerl_newPADNAMEpvnPerl_newPADNAMEouterPerl_padname_freePL_padname_constPerl_padnamelist_storePerl_mg_copyPerl_av_fillPerl_find_runcvPerl_class_add_fieldPerl_pad_add_name_pvPerl_pad_add_name_svPerl_sv_2pvutf8_flagsPerl_pad_findmy_pvPerl_pad_findmy_svPerl_sv_rvweakenPerl_padnamelist_freePerl_resume_compcvPL_regnode_infoPL_user_def_propsPerl_av_undefPL_bitcountPerl_vmessPerl__invlist_intersection_maybe_complement_2ndPerl_av_existsPerl_reginitcolorsPL_colorsPL_colorsetPL_core_reg_enginePerl_pregcompPerl_reg_qr_packagePerl__to_fold_latin1Perl__inverse_foldsPerl__invlistEQPerl_re_intuit_stringPerl_pregfreePerl_pregfree2Perl_reg_temp_copyPerl_regfree_internalPerl_save_re_contextmatch_unipropPerl__new_invlist_C_arrayPerl_do_uniprop_matchPerl_get_prop_definitionPerl_get_prop_valuesPerl_get_deprecated_property_msgdeprecated_property_msgsPerl_refcounted_he_fetch_pvPerl_invlist_clonePerl__invlist_union_maybe_complement_2ndPerl_my_atof3strspnsleepPerl__to_uni_fold_flagsPL_fold_latin1PL_extended_cp_formatPerl_cntrl_to_mnemonicPL_EXACTFish_bitmaskPL_simple_bitmaskPerl_sv_len_utf8Perl_re_compilePL_foldPL_latin1_lcPerl__to_utf8_fold_flagsstrcspnPerl_regdumpPerl_regpropPerl__setup_canned_invlistPerl__invlist_dumpPL_varies_bitmaskPerl_repeatcpyPL_regnode_namePL_fold_localePerl_savestack_grow_cntPL_regmatch_statePerl_sv_setsv_cowPL_EXACT_REQ8_bitmaskPL_in_utf8_turkic_localePerl__warn_problematic_localePerl_isSCRIPT_RUNPerl_foldEQ_utf8_flagsPL_curpm_underPerl_cxincPerl_was_lvalue_subPerl__is_uni_FOOPerl_re_intuit_startPerl_fbm_instrPerl_regexec_flagsPerl_mg_find_mglobPerl_save_gpPerl_sv_magicext_mglobPerl_sv_pos_u2b_flagsPerl_rninstrPerl_pregexecPerl_reg_named_buff_existsPerl_reg_named_buff_firstkeyPerl_reg_named_buff_nextkeyPerl_reg_named_buff_iterPerl_reg_named_buff_scalarPerl_reg_named_buff_allPerl_reg_numbered_buff_fetch_flagsPerl_sv_set_undefPerl_reg_named_buff_fetchPerl_reg_named_buffPerl_reg_numbered_buff_fetchPerl_reg_numbered_buff_storePL_localizingPerl_reg_numbered_buff_lengthPL_op_sequencePL_op_seqPerlIO_vprintfPerl_pv_escapePerl_pv_displayPerl_sv_peekPerl_sv_taintedPerl_set_numeric_standardPerl_set_numeric_underlyingPerl_dump_vindentPerl_gv_dumpPerlIO_putcPerl_do_hv_dumpPerl_do_gv_dumpPerl_do_gvgv_dumpPerl_multideref_stringifyPerl_multiconcat_stringifyPerl_debopPerl_debPerl_runops_debugPL_watchokPerl_debstackPerl_op_classop_class_namesPL_op_private_bitdef_ixPL_op_private_labelsPL_op_private_bitdefsPL_op_private_bitfieldsop_flags_namespmflags_flags_namesPerl_do_pmop_dumpPerl_pmop_dumpPerl_do_op_dumpPerl_op_dumpPerl_dump_subPerl_dump_formPerl_dump_packsubsPerl_PerlIO_setlinebufPerl_dump_allPerl_dump_evalPerl_do_sv_dumpfirst_sv_flags_namessecond_sv_flags_namescv_flags_namesPerl_do_magic_dumphv_flags_namesPerl_hv_iterkeysvregexp_extflags_namesgp_flags_imported_namesgp_flags_namesPL_NoPL_Yesregexp_core_intflags_namesPL_magic_vtable_namesPerl_magic_dumpPerl_sv_dump_depthPerl_sv_dumpPerl_av_dumpPerl_hv_dumpPerl_debprofdumpPerl_mallocPerl_callocPerl_reallocPerl_mfreePerl_delimcpy_no_escapePerl_ninstrPerl_newSVpv_sharePL_no_memPL_nomemokPerl_savesharedpvnPerl_sv_2cvPerl_vcroakPerl_mess_svPL_no_modifyPerl_vformPerl_sv_vsetpvfnPerl_die_svPerl_warn_svPerl_vwarnPerl_vwarnerPerl_new_warnings_bitfieldunsetenvPerl_atfork_lockPerl_atfork_unlockPerl_my_forkPerl_my_popen_listPL_forkprocesswaitpidPerl_taint_envPerl_my_popensigemptysetsigactionPerl_my_pclosePerlIOUnix_refcntPerl_set_contextPerl_get_op_namesPerl_get_op_descsPerl_get_ppaddrPerl_init_tmlocaltimePerl_mini_mktimePerl_getcwd_svgetcwdPerl_vverifyPerl_av_lenPerl_my_socketpairgettimeofday__vsnprintf_chkPerl_my_vsnprintfPerl_my_clearenvPerl_xs_handshakePerl_noperl_diePerl_get_db_subPerl_my_dirfdPerl_drand48_rldexpsigprocmaskPerl_mg_magicalPerl_save_allocPL_magic_dataPerl_mg_clearPerl_mg_findextPerl_mg_freeextPerl_emulate_cop_ioPerl_sv_string_from_errnumgetgroupsPerl_sv_setrv_incPL_phase_namesPerl_hv_iterkeyPerl_hv_itervalPerl_hv_placeholders_getPerl_hv_eiter_setPerl_bytes_to_utf8Perl_sv_len_utf8_nomgPerl_vivify_defelemPL_no_aelemPL_no_helem_svPerl_sv_pos_b2u_flagsPL_delaymagic_uidPL_delaymagic_euidprctlPL_delaymagic_gidPL_delaymagic_egidsetregidsetreuidsetegidsetgroupsseteuidPerl_whichsig_pvnPL_sig_numsigaddsetPL_csighandlerpPerl_whichsig_svPerl_whichsig_pvPerl_perly_sighandlerPL_SvPL_XpvPerl_csighandler3Perl_csighandler1Perl_csighandlersigismemberPerl_refcounted_he_new_svPerl_refcounted_he_new_pvnPerl_reentrant_sizePerl_reentrant_initPerl_reentrant_freePerl_reentrant_retryPerl_mro_get_private_dataPerl_mro_set_private_dataPerl_mro_get_from_namePerl_mro_registerPerl_newHVhvXS_mro_method_changed_inPerl_mro_set_mroXS_builtin_trueXS_builtin_falseXS_builtin_func1_scalarXS_builtin_created_as_stringXS_builtin_created_as_numberXS_builtin_export_lexicallyXS_builtin_func1_voidXS_builtin_indexedXS_builtin_trimXS_builtin_importPerl_save_set_svflagsPerl_newSVobjectinjected_constructorPerl_save_clearsvPerl_class_seal_stashPerl_bytes_from_utf8_locPL_hv_fetch_ent_mhPerl_hv_fillPerl_hv_riter_pPerl_hv_eiter_pPerl_hv_riter_setPerl_hv_rand_setPerl_unsharepvnPerl_hv_free_entPerl_hv_delayfree_entPerl_hv_placeholders_pPerl_hv_scalarPerl_hv_bucket_ratioPerl_hv_iternextsvPerl_hv_placeholders_setPerl_hv_undef_flagsPerl_refcounted_he_chain_2hvPerl_refcounted_he_fetch_svPerl_refcounted_he_new_pvPerl_av_reifyPerl_av_makePerl_newAVavPerl_newAVhvPerl_av_deletePerl_av_arylen_pPerl_av_iter_pPL_no_symref_svPL_no_usymPerl_sv_setuv_mgPerl_sv_setnv_mgPerl_do_joinPerl_PerlIO_writePerl_is_lvalue_subPerl_block_gimmePerl_softref2xvPerl_save_hashPL_no_localize_refPerl_save_arysetresuidsetresgidPerl_sv_unref_flagsPerl_do_close__lxstat64Perl_leave_adjust_stacksPerl_clear_defarrayPerl_caller_cxPerl_save_helem_flagsPerl_save_hdeletePL_multideref_pcPerl_save_aelem_flagsPerl_save_adeletePL_sv_arenarootfrexpPerl_sv_report_usedPL_body_arenasPL_infPL_nanPerl_sv_get_backrefsPerl_sv_rvunweakenPerl_sv_newrefPerl_sv_numeq_flagsPerl_sv_freeclosedirPerl_sv_unmagicextPerl_sv_truePerl_sv_isaPerl_ptr_table_newPerl_ptr_table_fetchPerl_ptr_table_splitPerl_ptr_table_storePerl_ptr_table_freePL_ZeroPL_warn_uninitPL_warn_uninit_svPL_hexdigit__sprintf_chkPerl_sv_lenPerl_looks_like_numberPerl_sv_cmpPerl_sv_vcatpvfn_flagsstrnlenPerl_isinfnanPerl_sv_catpv_flagsPerl_vnewSVpvfPerl_sv_set_truePerl_sv_set_falsePerl_sv_set_boolPerl_sv_setsv_mgPerl_sv_resetPerl_sv_setrv_noinc_mgPerl_sv_setrv_inc_mgPerl_sv_streq_flagsPerl_cast_uvPerl_cast_ivPerl_sv_pos_u2bPerl_utf8_to_bytesPerl_sv_pos_b2uPerl_sv_collxfrm_flagsPerl_sv_cmp_locale_flagsPerl_sv_cmp_localePerl_sv_2pvbyte_flagsPerl_sv_setpvn_mgPerl_sv_cat_decodePerl_sv_setpv_mgPerl_sv_replacePerl_sv_setref_pvnPerl_sv_setref_uvPerl_sv_setref_pvPerl_sv_setref_ivPerl_sv_inc_nomgPerl_grok_number_flagsPerl_sv_dec_nomgPerl_sv_setref_nvPerl_sv_pvbyten_forcePerl_sv_catpv_mgPerlIO_isutf8PerlIO_getcPerl_PerlIO_eofPerlIO_fast_getsPerl_PerlIO_set_ptrcntPerl_PerlIO_get_cntPerl_PerlIO_get_ptrPerl_sv_pvutf8n_forcePerl_newSVboolPerl_newSV_truePerl_newSV_falsePerl_sv_2ioPerl_sv_recode_to_utf8Perl_sv_vcatpvfPerl_sv_catpvf_mgPerl_sv_vsetpvfPerl_sv_vsetpvf_mgPerl_sv_setpvf_mgPerl_sv_vcatpvfnPerl_sv_vcatpvf_mgPerl_save_pushptrptrPerl_save_padsv_and_mortalizefmodatan2cossqrtsinPL_random_statePerl_do_sprintfcryptPerl__to_utf8_lower_flags__ctype_toupper_locPerl__to_utf8_title_flags__ctype_tolower_locPerl__to_utf8_upper_flagsPL_mod_latin1_ucPL_no_sock_funcPerl_savestack_growPerl_save_rcpvPerl_save_shared_pvrefPerl_save_pushi32ptrPerl_save_hptrPerl_save_aptrPerl_save_freercpvPerl_save_deletePerl_save_destructorPerl_save_svrefPerl_cx_dumpPerl_mortal_destructor_svPerl_mortal_svfunc_xPL_lastgotoprobePerlIO_opennstrncmpPerl_dowantarrayPerl_PerlIO_context_layersPL_no_securityumaskselectrecvfromsendtosendftruncate64fcntl64ioctlflockconnectbindlistenshutdowngetsockoptsetsockoptgetpeernamegetsocknamePL_statcachePL_warn_nlPerl_my_stat_flagseaccessPerl_my_lstat_flagsisattyPerlIO_has_basePerl_PerlIO_get_bufsizPerl_PerlIO_get_basefchdirchrootrenamesymlinkreadlinkmkdirrmdiropendirreaddir64telldirseekdirrewinddirsigfillsetgetppidgetpgidsetpgidgetprioritysetpriorityPerl_gmtime64_rPerl_localtime64_ralarmpausegethostbyaddrgethostent__h_errno_locationgethostbynamegetnetbyaddrgetnetentgetnetbynamegetprotobynumbergetprotoentgetprotobynamegetserventgetservbyportgetservbynamesetnetentsetserventsethostentsetprotoentendpwentendgrentendhostentendnetentendprotoentendserventsetpwentsetgrentgetspnamgetpwuidgetpwnamgetpwentgetgrgidgetgrentgetgrnamgetloginsyscallPL_strategy_dupPL_strategy_dup2dup3PL_strategy_open__open64_2PL_strategy_open3PL_strategy_mkstempmkostemp64mkstemp64PL_strategy_pipepipe2PL_strategy_socketPL_strategy_acceptaccept4PL_strategy_socketpairPerlIO_intmode2strPerlIO_fdupopenPerl_do_opennrenameatfchmodunlinkatunlinkPL_lastfdPL_filemodePL_oldnamefchownPerlIO_has_cntptrPerlIO_canset_cntPerl_PerlIO_set_cntPerl_PerlIO_seeklseek64execvpPL_sh_pathexeclkillpgfutimesmsggetshmgetsemgetsemctlshmctlmsgctlmsgsndmsgrcvsemopshmatshmdtnonchar_cp_formatsuper_cp_formatsurrogate_cp_formatPerl_uvoffuni_to_utf8_flagsPerl_uvchr_to_utf8Perl_uvchr_to_utf8_flagsPerl_is_utf8_char_helper_Perl__byte_dump_stringPerl_utf8n_to_uvchrPerl_utf8n_to_uvchr_errorPerl_utf8_to_uvchr_bufPerl_bytes_from_utf8Perl_utf16_to_utf8Perl_utf16_to_utf8_reversedPerl_utf8_to_utf16_basePerl__is_uni_perl_idcontPerl__is_uni_perl_idstartPerl_to_uni_upperPerl_to_uni_titlePerl_to_uni_lowerPerl_pv_uni_displayPerl_vdebPerl_debstackptrsPL_simplePL_variesPL_reg_intflags_namePL_reg_extflags_namePL_c9_utf8_dfa_tabPL_deBruijn_bitpos_tab64PL_deBruijn_bitpos_tab32PL_valid_types_NV_setPL_valid_types_IV_setPL_valid_types_RVPL_valid_types_PVXPL_valid_types_NVXPL_valid_types_IVXPL_runops_dbgPL_runops_stdPL_watch_pvxPL_perlio_debug_fdPL_perlio_fd_refcnt_sizePL_perlio_fd_refcntPL_csighandler3pPL_csighandler1pPL_wcrtomb_psPL_mbrtowc_psPL_mbrlen_psPL_ptr_tablePL_in_utf8_COLLATE_localePL_collxfrm_basePL_reentrant_retintPL_secondgvPL_firstgvPL_sortstashPL_sortcopPL_naPL_op_private_validPL_block_typePL_uudmapPL_uuemapPL_subversionPL_versionPL_revisionPL_no_funcPL_no_dir_funcPL_no_symrefPL_no_wrongrefXS_PerlIO__Layer__NoWarningsPerlIOUtf8_pushedPerlIOBase_noop_okPerlIOBase_noop_failPerlIOBase_eofPerlIOBase_errorPerlIOBase_setlinebufPerlIOUnix_filenoPerlIOBuf_get_basePerlIOUnix_tellPerlIOStdio_errorferrorPerlIOStdio_seekfseeko64PerlIOStdio_tellftello64PerlIOStdio_flushfflushPerlIOStdio_eoffeofPerlIOStdio_clearerrPerlIOStdio_setlinebufPerlIOUnix_seekPerlIOStdio_readfreadfgetcPerlIOStdio_fillPerlIOStdio_writefwritePerlIOBase_poppedPerlIOBuf_poppedPerlIOStdio_filenoperlsio_binmodePerlIO_debugPerlIO_allocatePerlIO_list_allocPerlIO_list_freePerlIO_list_pushPerlIO_clone_listPerlIO_clonePerlIO_popPerlIOBase_binmodePerlIOPending_flushPerlIOCrlf_binmodePerlIO_find_layerPerlIO_tab_svXS_PerlIO__Layer__findPerlIO_define_layerPerlIO_parse_layersPerlIO_default_bufferPerlIO_perlioPerlIO_arg_fetchPerlIO_layer_fetchPerlIO_default_layersPerlIO_unixPerlIO_rawPerlIO_stdioPerlIO_crlfPerlIO_utf8PerlIO_removePerlIO_bytePerlIO_default_layerPerlIO_pushPerlIO_apply_layeraPerlIOBase_filenoPerlIOPop_pushedPerlIORaw_pushedPerlIOBuf_seekPerlIOBuf_tellPerlIOPending_fillPerlIOPending_seekPerlIOBase_flush_linebufPerl_PerlIO_fillPerlIOBase_clearerrPerlIOBuf_unreadPerlIOBase_unreadPerlIO_pendingPerl_PerlIO_unreadPerlIOStdio_unreadPerlIOBuf_writePerlIOBuf_get_ptrPerlIOBuf_get_cntPerlIOBuf_bufsizPerlIOBuf_set_ptrcntPerlIOPending_set_ptrcntPerlIOCrlf_unreadPerlIOCrlf_get_cntPerlIOCrlf_set_ptrcntPerlIOCrlf_writePerlIO_modestrPerlIOBase_pushedPerlIOBuf_pushedPerlIOCrlf_pushedPerlIOPending_pushedPerlIOBase_closePerlIO__closePerlIO_cleantablePerlIOBase_openPerlIOBuf_openPerlIOPending_closePerlIOBuf_closePerlIO_sv_dupPerlIOBase_dupPerlIOBuf_dupPerlIOUnix_refcnt_incPerlIOUnix_dupPerlIOStdio_dupPerlIOUnix_refcnt_decPerlIOUnix_closePerlIOStdio_closefclosePerlIOUnix_oflagsPerlIOUnix_pushedPerlIOUnix_openPerlIOStdio_modePerlIOStdio_pushedPerlIOStdio_openfreopen64fopen64PerlIO_importFILEPerlIO_exportFILEPerlIO_findFILEPerlIO_releaseFILEPerlIO_getnamePerlIO_rewindPerl_PerlIO_save_errnoPerlIOBase_readPerlIOBuf_readPerlIOPending_readPerlIOUnix_readPerlIOUnix_writePerlIOBuf_flushPerlIOCrlf_flushPerlIOBuf_fillPerlIO_resolve_layersPerlIO_tmpfile_flagsPerlIO_stdstreamsPerlIO_stdoutfPerlIO_tmpfilePerlIO_reopenPerlIO_setposPerlIO_getpos__vfprintf_chkPerl_my_strtodPerl_cast_ulongPerl_cast_i32Perl_grok_binPerl_grok_hexPerl_grok_octPerl_scan_binPerl_scan_octPerl_scan_hexPerl_grok_numeric_radixPerl_grok_infnanPerl_my_atof2Perl_refPerl_sv_unrefPerl_sv_taintPerl_sv_2ivPerl_sv_2uvPerl_sv_2nvPerl_sv_2pvPerl_sv_2pv_nolenPerl_sv_2pvbyte_nolenPerl_sv_2pvutf8_nolenPerl_sv_force_normalPerl_sv_setsvPerl_sv_catpvnPerl_sv_catpvn_mgPerl_sv_catsvPerl_sv_catsv_mgPerl_sv_pvPerl_sv_pvn_forcePerl_sv_pvbytePerl_sv_pvutf8Perl_sv_utf8_upgradePerl_hugePerl_gv_fullname3Perl_gv_efullname3Perl_gv_fetchmethodPerl_hv_iternextPerl_hv_magicPerl_do_openPerl_do_aexecPerl_is_utf8_string_locPerl_sv_nolockingPerl_sv_usepvn_mgPerl_sv_usepvnPerl_hv_store_entPerl_hv_exists_entPerl_hv_fetch_entPerl_hv_delete_entPerl_hv_store_flagsPerl_hv_storePerl_hv_existsPerl_hv_fetchPerl_hv_deletePerl_newAVPerl_newHVPerl_sv_insertPerl_save_freesvPerl_save_mortalizesvPerl_save_freeopPerl_save_freepvPerl_save_opPerl_gv_SVaddPerl_gv_AVaddPerl_gv_HVaddPerl_gv_IOaddPerl_newIOPerl_my_statPerl_my_lstatPerl_sv_eqPerl_sv_collxfrmPerl_sv_2boolPerl_newSUBPerl_sv_mortalcopyPerl_sv_copypvPerl_is_utf8_char_bufPerl_utf8_to_uvuniPerl_instrPerl_newSVsvPerl_sv_utf8_downgradePerl_sv_2pvutf8Perl_sv_2pvbytePerl_uvuni_to_utf8Perl_utf8n_to_uvuniPerl_utf8_to_uvchrPerl_locale_panicnl_langinfoPerl_setlocalePerl_mbtowc_mbtowcPerl_localeconvPerl_langinfo8Perl_langinfoPerl_my_strftimePerl_my_strftime8_tempPerl_strxfrmtowupper__ctype_get_mb_cur_maxtowlowerPerl_switch_to_global_localePerl_sync_localePerl_thread_locale_initPerl_thread_locale_termmodfPerl_unpackstringPerl_packlistPerl_sortsv_flagsPerl_sortsvXS_DynaLoader_dl_undef_symbolsXS_DynaLoader_dl_errorXS_DynaLoader_dl_unload_filedlclosedlerrorXS_DynaLoader_dl_load_filedlopenXS_DynaLoader_dl_install_xsubXS_DynaLoader_dl_find_symboldlsymboot_DynaLoaderlibpthread.so.0libdl.so.2libm.so.6libcrypt.so.1libc.so.6__environGLIBC_2.2.5XCRYPT_2.0GLIBC_2.29GLIBC_2.14GLIBC_2.10GLIBC_2.28GLIBC_2.3GLIBC_2.4GLIBC_2.7GLIBC_2.3.4GLIBC_2.11GLIBC_2.9               Iq ui q^q `] q9q ui qTq0qui q lqqqqii qii qii qti qqii qui q`9 <`9;@`9N``9X<h`9Bp`9Dx`9F`9G`9K`9k`9 l`9l`9l`9l`9!l`9%l`9T`9T`9bT`9)la9,la9]Ua9/la94l a98l(a9=l0a9@l8a9Dl@a9GlHa9KlPa9OlXa9Sl`a9Wlha9[lpa9_lxa9cla9gla9kUa9Ta9)Ua9Ua96Ua9Ua9CUa9Ua9PUa9kla9nla9rla9vla9{la9lb9lb9lb9lb9l b9l(b9l0b9l8b9l@b9lHb9lPb9lXb9l`b9lhb9lpb9Txb9Tb9lb9lb9lb9lb9lb9lb9lb9lb9lb9lb9lb9lb9lb9lb9lc9bKc9{c9bKc9{ c9{@c9bKHc906Pc9bKXc96`c9{c9bKc96c9bKc9{c9{c99c9`9c9`9c9`9c99c9 9c99d99d99d99d9 9 d99(d990d998d99@d99Hd99Pd99Xd9`9`d99hd99pd9}9xd9 |9d9g9d9@g9d9d9d9 d9 d9(ad9,ad9d9d9d9d9!d9 5d9$d9+e91e9<e9Ee9I e9Ͻ6(e9V,0e9M8e93@e9XHe96Pe9[Xe9b`e9ihe9vpe9xe9e9oe9oe98e9Ae9e9e9e9e9e9e9e9Qe9e9e9&ke96f9f9Н5f9f9 f9(f90f98f9@f9Hf9 Pf96Xf9[;`f9hf9pf9xf9f9'f9*f9-f90f9'f95f93f99f9?f9Rf94of95f9df9qf9}f9g9g9g95g9 g9(g9@g96Hg96Pg9Xg9`g9hg9\pg9xg9g9g9g9g9g9Y6g9|5g9g9g9g9g9g9h9 h9h9h9 h9(h950h9J8h9O@h9THh9[Ph9bXh9k`h9thh9yph9~xh9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9h9i9i9i9i9 i9(i9 0i98i9@i9!Hi9+Pi95Xi9:`i9?hi9Dpi9Ixi9Ri9[i9`i9ei9li9si9xi9}i9i9i9i9i9i9i9i9i9j9j9j9j9 j9(j90j98j9@j9Hj9 Pj9Xj9%`j97hj9>pj9Exj9Jj9Oj9Tj9Yj9bj9kj9vj9j9j9j9j9j9j9'Sj9GSj9j9k9k9k9wNk9N k9(k90k98k9@k9Hk9Pk9Xk9`k9hk9pk9 xk9k9k9!k9,k91k96k9Bk9MPrR?.R]90z :l<:/6"  6d6P u/=Z/:ЭWi0 DndYIU~~DP{dZ\N06p?oCu1 `P<)F0*Zl !:*P-P ":}OQ1c oQ</ )c`L:]@6`X:d N:7pPd[W/Pn Y !:P kUд :~n:"ȥ:.^6 `zn)\p ~gy ,y_X~:`<j ?@ #|i0psH :e:)m`P+Op*E76 i;Vg|MpH5p;=ftW{],'"؟:f( |8@ -m 7O T6 آ:!X: ` 7*`yPFVoP ';H0@X?Gt#8: ":_?:bE^vj j`>_H:HPD'`p~%W( {CY]6 HEdPPV)1O=)p\.0s:d ]bGeH:B$K?OO@:*G6Dp fgeZ:'\ [A26j$::: W :dp\-29 \0Z&P\ ;@6J$x:m0:(0``<bpC# p4h@[O`6@Li@{$0 `:C 0$!d\v p1D :( UZ@:P  )p.QpOn:pG-`gh2'>mX:g*F 0: :]$:@`;SIPRmCu| ;O`i]`M?J%Dԥ:JCm\Qp8R WpP l-,R(IRNWW]Z5D(61rhЏ9н A87 +Z|:J$`e8"n p=0!О:YH= $/+ |:=p*GH<&tXm4 *@H`:q~:~:z'K:N T:40  S >L.fr|ec8KDhgyl`XiRTG n5 7$H`2 yh:PV!JfmP3aLp0z&@_:0(9U!76h@?@N0\~ qL-W`_*H: m3+j@dZ9mY cI:l%p:Wإ:\fnx20Ya : D:8J#B@X -P:GL~Be`f@: p:H.Ȟ:W7o hfp#k.# ; ' gq\\8P:y-@e`; :M~)p J\EпHP:pw<iPNdT%KC\B`V&3\cC@6,H n)`6 04c";BUf_:nJ`57@tP+Ci> :0 $[l`n6P8p OA6::`]cOQ:,FH$:%<G$.^MCP|#;tO8 aP:@%.(cN;73` $&Jp:>  Y6@ JyNj1`4 !::Exl?FL`Х:0:2 v@k #+pt|0Z]3Pfq!:9 8 0+t :ZdUi$Љ/:(~:7 =x:6jXF&,"l UCS:C06 6i#7-a= p 4~: pm ]^G:=~:gu <2V jY:i08`imj/~:eW8.9K@&,IPL:+v`a=:6R l]PycPR-0G6p$[5FC(: wBU*&qc`OfBITA8S G6B{:0 n a=aZEMP}lB6PFn (0Am/Q!mZJl`x#:!X[6p:H:#:bEmlp?% ;]@ 3Ve bKp[@TDp|VT6(:9ph50oD1/P:C#:f`i}`6ee2f`qU_P <B3pW@e@f%gw ]'4@  WeS3:#:Z:8~:"p: G ZP:@@vGh~:*0'C<Lk2 @:S":=-x:Y:J5BPXbC~:n0Z@B]P;a ?0"U])!`:4 - + iZd5ndW0@:'Ъ/x Qv85:0C#P:j> 3 !:H`:2@)*P):x?zm_j 8cQE:p~59 9.7! ,pS Й:o(WhZ# :& aVQQ@ >46;8xУXdP\L; T_O7i%`@V@:.691`! k5h:h@`6 K9:kIcq%С: :Т:+Tܚ:)@Lh TwV IL@:b:U:lp(h!oRВ%lQNWS0?Hl)~:#B 9mF CFp 0Y/@e=@y5:9,@::('`#oHEp :k@.Є:@> ePe#:H6^ؙ:2kO:hNU0!:+`onknp_:;]UP_64P #@:9G qD:U:xI: LrZqbBOGP ;a>M5Goa+bpAm:>\ _lpkCA9_:: y.5h  (::H:  ;Vp{l@!( :)W>CN#4` S:D> @@:`NbAD"~:%p:s ":y*j9 `GLAP}K`,YI `&{:K%2=bAWed $Ц:\0 'Y:#h'=&DAP~//:C7V :T+ .k>]`6H@2>:+R,&=@~SpU`iH:e~:%@,:0 k&!i`F>Q *N:+M'A_M'R? A* F*q;`bEHpPD`~:&88:SO1@|AV+o_9:p%` w Њqrz#P:d~:$:1?m/4 BKp:* 5 r< 0 ;ft0_m:-9cR9GJ0) :~::F9:8ee= c:fpT8 *:D6<[QЛmn -d@M:ȡ::l35eaW06x;a:^6P)qOJI<=`"IgwY7, +nn3@  + ,n4P i:<0qIU:S ئ:(j0U9 WL!jh5``6!]tq Rkw(`_/J-Z- ;x"h:Tp.~ YN:@~:pm:6@:8B0X 3Я !%6x:UMx ~:X:E : [55+`T+ auEР*UnE b@ Gn l:$t% w>d:@:CV6c@hbPDUq)p 7&h:PI3Q!30 Cu)DpdF'|JWmj ~r;8:, T? :A8c; ;x6 K[P5H1n[p `< Tz;6{8 (:! (:&@{-pRlP`<HPn9F9&\  0 (k_6S'`REG>:|S@4` :N|P<0  OR`P`<1L_P:s ;Xgxgz@+B0cfID"`:l&U98:iepbNj-aG;H:\K`+@ ;,@C__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalizePL_compcvPL_memory_wrapPerl_croakPL_curpmPerl_mg_findPerl_safesysfreePerl_sv_free2Perl_gv_try_downgradePL_sv_immortalsPL_top_env__sigsetjmpPL_delaymagicPL_runops__stack_chk_failPL_markstack_ptrPL_stack_basePL_stack_spPL_stack_maxPerl_stack_growPerl_optimize_optreePL_peeppPerl_finalize_optreePerl_pad_tidyPL_in_evalPL_eval_startPL_main_startPerl_cop_fetch_labelPerl_newSVpvn_flagsPerl_save_pushptrPerl_hv_commonPerl_sv_incPL_opPL_curstackinfomemcpyPerl_newSVivPerl_sv_2mortalPL_cv_has_evalPL_comppad_namePL_cop_seqmaxmemsetPL_hash_state_wPerl_sv_2iv_flagsPerl_sv_decPerl_newSVpvPL_op_namePL_curcopPerl_newSVpvnPL_sv_rootPL_sv_countPerl_more_svPerl_Slab_AllocPerl_Slab_FreePL_comppadPerl_push_scopePL_curpadPerl_pop_scopePerl_messPerl_qerrorPL_parserPL_charclassPerl_pad_add_name_pvnPL_curstashPL_defstashmemchrPerl_formPerl__force_out_malformed_utf8_messagePerl__is_utf8_perl_idstartPerl_op_refcnt_lockPerl_op_refcnt_unlockPerl_op_parentPL_ppaddrPerl_op_linklistPerl_sv_chopPerl_warnerPerl_sv_newmortalPerl_pv_prettyPerl_padnamelist_fetchPerl_hv_common_key_lenPerl_sv_2pv_flagsPerl_newSVpvn_sharePerl_blockhook_registerPL_blockhooksPerl_av_create_and_pushPerl_forbid_outofblock_opsPerl_save_vptrPL_body_rootsPerl_sv_backoffPerl_more_bodiesPerl_PerlIO_stderrPerlIO_printfPerl_newARGDEFELEMOPPerl_cv_ckproto_len_flagsPerl_ckwarn_dPerl_bytes_cmp_utf8Perl_sv_setpvnPerl_sv_catpvfPerl_sv_catpvn_flagsmemcmpPerl_newSVhek_mortalPerl_gv_efullname4Perl_sv_catsv_flagsPerl_cv_const_svPL_sub_generationPerl_cvgv_setPerl_cvstash_setPerl_gv_fetchsvPerl_mro_method_changed_inPerl_pad_add_anonPL_compilingPerl_ck_warnerPerl_rv2cv_op_cvPerl_cvgv_from_hekPerl_cv_get_call_checker_flagsPerl_ck_entersub_args_proto_or_listPerl_cv_get_call_checkerPerl_cv_set_call_checker_flagsPerl_sv_magicPerl_mg_free_typePerl_cv_set_call_checkerPerl_custom_op_registerPL_custom_opsPerl_custom_op_get_fieldPL_custom_op_namesPerl_safesyscallocPerl_safesysmallocPL_custom_op_descsPerl_sv_magicextPL_op_descPerl_op_sibling_splicePL_opargsPerl_cv_namestrcmpPerl_ckwarnPerl_sv_cmp_flagsPerl_wrap_op_checkerPL_checkPerl_rcpv_newPerl_rcpv_freePerl_op_freePL_opfreehookPerl_op_clearPL_WARN_ALLPL_WARN_NONEPerl_refcounted_he_freePL_phasePerl_av_fetchPerl_gv_add_by_typePerl_op_nullPerl_sv_2nv_flagsPerl_newSVpvfPerl_dorefPerl_ck_warner_dPerl_op_lvalue_flagsPL_modcountPerl_newOPPL_op_maskPerl_pad_allocPerl_newNULLLISTPerl_newLISTOPPerl_op_append_elemPerl_op_prepend_elemPerl_op_append_listPerl_op_scopePL_perldbPL_taintingPerl_op_force_listPerl_newUNOP_AUXPerl_newMETHOPPerl_newPMOPPerl_refcounted_he_fetch_pvnPerl__is_in_locale_categoryPerl_newSVOPPerl_newGVOPPL_warnhookPL_diehookPL_dowarnPL_sv_placeholderPL_errgvPerl_sv_setpv_bufsizePerl_mg_freePerl_op_contextualizePerl_ck_entersub_args_listPL_debstashPerl_op_convert_listPerl_newANONLISTPerl_newANONHASHPerl_newUNOPPerl_newPROGPL_eval_rootPL_main_rootPerl_get_cvn_flagsPL_markstack_maxPerl_call_svPL_savestack_ixPerl_markstack_growPerl_newRANGEPerl_sv_upgradePerl_newDEFEROPPerl_op_wrap_finallyPerl_newAVREFPerl_newGVREFPerl_newHVREFPerl_newCVREFPerl_newSVREFPerl_gv_fetchpvn_flagsPerl_newDEFSVOPPL_defgvPerl_ck_entersub_args_protoPerl_gv_overridePerl_newBINOPPerl_newSLICEOPPerl_newPVOPPerl_save_generic_svrefPL_curstnamePerl_save_itemPerl_gv_stashsvPerl_sv_setsv_flagsPerl_sv_2bool_flagsPerl_mg_getPerl_newLOGOPPerl_newCONDOPPerl_newSVuvPerl_newASSIGNOPPerl_sv_setivPerl_newTRYCATCHOPPerl_newLOOPOPPerl_newWHILEOPPerl_newFOROPPerl_newLOOPEXPerl_savesharedpvPerl_newGIVENOPPerl_newWHENOPPerl_validate_protoPerl_newSVsv_flagsPerl_newFORMPerl_leave_scopePL_hintgvPerl_hv_copy_hints_hvPL_stdingvPL_taintedPerl_fbm_compilePerl_sv_copypv_flagsPL_argvgvPerl_gv_init_svmemmovePerl_share_hekPerl_sv_sethekPerl_unshare_hekPerl_diePerl_sv_force_normal_flags__memcpy_chkPerl_pad_findmy_pvnPerl_newSVhekPerl_newMETHOP_namedPerl_sv_insert_flagsPerl_rcpv_copyPerl_dup_warningsPerl_block_startPerl_save_hintsPerl_save_I32Perl_mg_sizePerl_newSTATEOPPerl_intro_myPerl_refcounted_he_incPerl_cop_store_labelPerl_block_endstrrchrPerl_warnPL_scopestack_ixPerl_get_svPL_eval_begin_nest_depthPerl_save_intPL_curstackPerl_save_sptrPL_beginavPerl_call_listPL_savebeginPL_checkavPerl_av_create_and_unshift_onePL_endavPL_initavPL_unitcheckavPerl_new_stackinfoPerl_croak_popstackPerl_sv_setpvPL_xsubfilenamePerl_cv_undefPerl_newXSPerl_newXS_flagsPerl_newXS_deffilePerl_newCONSTSUB_flagsPerl_newATTRSUB_xmemrchrPL_breakable_sub_genPL_sublinePL_DBsubPerl_class_wrap_method_bodyPerl_gv_init_pvnPerl_sv_setpvfPerl_current_re_enginePerl__new_invlistPerl__add_range_to_invlistPerl_sv_growPerl__invlist_searchPerl_av_pushPerl_newSVnvPerl_safesysreallocPL_utf8skipPerl__invlist_invertPerl_uvoffuni_to_utf8_flags_msgsPerl_re_op_compilePerl_new_versionPerl_sv_setnvPerl_upg_versionPerl_vcmpPerl_sv_derived_fromPL_prevailing_versionPerl_vload_modulePerl_lex_startPerl_start_subparsePerl_load_modulePerl_apply_attrs_stringPerl_newRVPerl_newMYSUBPerl_cv_clonePL_incgvPL_globhookPerl_newANONATTRSUBPerl_newANONSUBPerl_newCONSTSUBPerl_nothreadhookgetuidgeteuidgetgidgetegidPL_e_scriptPerl_filter_delPL_bincompat_optionsPL_mainstackPerl_dounwind__longjmp_chkPL_markstackPL_tmps_floorPL_statusvalue__xstat64Perl_sys_initPL_sigfpe_savedPerl_sys_init3Perl_sys_termPL_veto_cleanupPerlIO_teardownperl_allocPL_curinterpperl_freePerl_call_atexitPL_exitlistlenPL_exitlistPerl_gv_fetchpvPerl_av_unshiftPerl_av_storePerl_get_avPerl_get_hvPerl_get_cvPL_DBcvPL_tmps_ixPerl_free_tmpsPerl_savetmpsPL_statusvalue_posixPL_restartopPL_restartjmpenvPerl_call_pvPerl_call_argvPerl_call_methodPerl_eval_svPerl_taint_properPerl_croak_svPerl_eval_pvPerl_require_pvgetpidkillPerl_doing_taintPL_dbargsPerl_av_clearPL_DBgvPL_DBlinePL_DBsinglePL_magic_vtablesPL_DBtracePL_DBsignalPerl_mg_setPerl_init_stacksPL_tmps_stackPL_tmps_maxPL_scopestackPL_scopestack_maxPL_savestackPL_savestack_maxperl_constructPL_perl_destruct_levelPL_errorsPL_clocktickPL_sighandlerpPL_sighandler1pPL_sighandler3pPL_rsPerl_seedPL_internal_random_statePerl_drand48_init_rPL_start_envPL_TR_SPECIAL_HANDLING_UTF8PL_localpatchesPerlIO_initPL_fdpidPL_modglobalPL_debug_padPL_hash_seed_setPL_strtabPL_sv_constsPL_origenvironsysconfPL_stashcachePL_mmap_page_sizePL_patchlevel__errno_locationPL_osnamePL_registered_mrosPerl_init_i18nl10nPL_hash_rand_bits_enabledPL_hash_rand_bitsPL_utf8cachePL_reg_curpmPL_regmatch_slabPL_statnamePL_chopsetPL_dumpindentPL_rpeeppPL_watchaddrPL_hook__require__beforePL_hook__require__afterPL_splitstrPL_maxsysfdPL_sig_pendingPL_curcopdbPL_gensymPL_laststypePL_laststatvalPL_profiledataPL_generationPerl_runops_standardPL_in_clean_objsPL_in_clean_allPL_anPL_evalseqPL_padlist_generationPL_collxfrm_multPL_collation_ixPL_strxfrm_NUL_replacementPL_strxfrm_is_behavedPL_strxfrm_max_cpPL_collation_standardPL_langinfo_bufPL_srand_calledPL_langinfo_bufsizePL_srand_overridePL_setlocale_bufPL_srand_override_nextPL_setlocale_bufsizePL_numeric_underlyingPL_stdize_locale_bufPL_numeric_underlying_is_standardPL_stdize_locale_bufsizePL_numeric_standardPL_ctype_namePL_in_load_modulePL_beginav_savePL_sharehookPL_perlioPL_known_layersPL_def_layerlistPL_checkav_savePL_unitcheckav_savePerl_sv_nosharingPL_lockhookPL_unlockhookPerl_sv_nounlockingPL_threadhookPL_destroyhookPerl_sv_destroyablePL_signalhookPerl_despatch_signalsPL_isarevPL_scopestack_namePL_dump_re_max_lenPL_InBitmapPL_hash_seed_wPerl_hv_ksplitgetenvPerl_grok_numberstrerrorPL_doswitchesPL_unicodePL_utf8localePerl_sv_utf8_decodePL_inplacestrchrPL_toptargetPL_bodytargetPL_formtargetPL_origfilenamePL_envgvPL_minus_aPerl_hv_iterinitPerl_hv_iternext_flagsPerl_my_setenvPerl_av_shiftPL_stderrgvperl_destructPerl_grok_atoUVPL_exit_flagsPerl_PerlIO_stdoutPerl_PerlIO_flushPerl_my_fflush_allPL_main_cvPerlIO_destructPerl_PerlIO_closePL_minus_FPL_minus_nPL_minus_pPL_minus_lPL_unsafePL_ofsgvPL_ors_svPL_efloatbufPL_statgvPL_efloatsizePL_argvoutgvPL_last_in_gvPL_DBcontrolPL_replgvPL_argvout_stackPL_preambleavPL_subnamePL_collation_namePL_numeric_namePL_numeric_radix_svPL_underlying_radix_svPL_warn_localePL_AboveLatin1PL_AssignedELF>7@H=@8 @88 ; ;|A|AP9`9`989ȩ?:O:O: $$Std Ptd666EEQtdRtdP9`9`9GNUGNUX> >)e.l sM#` BZ  4 )B @@ @!r0HA (@20 I@P(4 % "( * @@ A&!B$0@P`8""a0 P0'ؐPB a 0#!@<@D `a  PA$.  ( Q@0 @a &00BB +"@P h@H@ 82 P B@ @`Jh#A8HC0D@@P!@ ! #B|`BE4P!P+ 1@TDFhQ &4E0D @b@X@h @@ J@Pb"@""  D(6@ D0!a@PB D$A(P X "P  - ) 0HH A "$aHB0D@!s(8Rb89@@@(@#tbH  I($"$  8($d  0 B`Q($ @ !$ #@G^P 0H$  "$bh` 0! `DA Ӣ@0  (AM@ P@ ! H @ !0 $ "@@)HIdBR@@" @ T@$@4$ 1(hB G0 ` ("AP   E" ` b $!  4hAD"!8@!Ԡ$ $T 4\ PQ ( DFA@ @Q@p$ !0 "@ "@ HL#4(  A@ 0 `@ P3 " H 1@@H @ U8p DH@!W eH $b TAd A%#@`   L B'p 8 $@hTHP!D@`HdB87$(J @ @P8@$$2@  @Pp  9 @(AE!@ - ,!D a+P  @AL@@8 2 6   A@(Q h T    !$%')+-/149;=@BCDFHJKMNPQRTUVWY[\^_acfhikmopqtvwx|}~   !#%)*-.01235789;=?@CEHJNQRTWZ[\]^_abceghjlmpqsuw|}~  "#$%'()*,-/35689;=>@ADEFGHJLMPQRSUX[]_adfhilmnopqrsuwy{}  #$&'*+,./01345689;<=?ACEGHJKMNQRTWZ^abcdghklnoqsuwz     #&'*,./13679:;=@CEHJMNOQSTUVWXY[_`bcehijlortuwy{}~  !#$&*/035679:>@ABCFIJLOQUXY[]^adefghjmnpquxz   Q蛠bloM5Wd͙῀!e;3%ia<=e͜&[iuzT?_3N{.a<-ۦo7^]x!7T0Z<mh.F~R5;o8 ͤvTqvTk:\+(G#_e΀^lĒ8hI\n#j_w-o?k7gap;?j/n7)z76Y8:|]D)u vExy[,sga]#_V&ǹPoF 96a) Q޶+^M,m2-P-s1m3~Eיִ飉l^.4>15x-E%%y(d9őG3Qn Vn' u%TN4-]~E ے̼aY^[&eϿ@jXHĝ^FΡL86]]u,3D*(bh*E<b7QB5RtATYҙZ,ko^Oh FBV&q\9,WQ)Vc~OnqT$}1r]nY$E|Zg(9G-YVTh?C'T ĢVYŰҥ$j/`Io\HZ#_'Z瓭A16\W g]}:ݭ$3 fB}qЛ/N٩Ilt"z+(PnΎhnDNgo*-hLc2 "(QqtQ(d]_B%'+k(,еv"_ s5W\dt Qc.¢0SZ *;RE.dS A]jHWrA(G 0m&.4w>yw}jX\<=}L-2^L}Akj btzΎl'q)5#IaF,?jP? WY~pȳn;N + N L~,qeOJ;6P$rYnWH uTW=HNOr- *kQIWx D1I@ER~z] ԛC bFN, ;=~)d7Ivt]2iީE}vkX~Ӟզ֗МGLOG5QFKr;Jb'20Oߗga ޻J=z 2_b<ȇ'gꖷ`tz*J_ ȞH3 8ha7Qoq|l}tT~mk$DxTF_{:v@r3b);w,ix31((k oJJUk[?biM?BDӠӲ qYU Zt5Ň55\![5kOE״KRUM4̉N1=F]Sw *>2GPֶ(q*ԛ])DFI6x9-c%:\f+QftH“ȇղ1q֎~'V 4!| ,4;{0>1Շ.zF?& >2!nY❡V Sg@h1{o;?ݙuRr9\AdVC u+ΗL7z&GUIp>dӻT1ʵ);|udlBuu<=O5ѼkOy,as6F pݙmc +C:sK [jPCȊh 働HDAsf/tN(9AS2Fʕ7օ ORGWCɒG Ǒ&Gs ;y9>.ޅ Onѹ)ԣa Ohzߨ9f9l "Hx#WYn'R|P=ڜ@o !;9錜gFn >T6i`l2V-1M ;2LQL_0<\Ύ Z)RrmHTwb{j 'N;d,SƮu ddțMjOR߆MLh}òV[>i086Wqt] Z/@|`$ ?y4Y=fk=`2}а̥ L\(ĉk x}p!hO7nd65ek}~HvTI"hY_7K봶UNQ0U@xÙ)F~ uB "_=yC],>Ok`aL˙)YMᾁHlYYdž+I j={ kSIaдr`VZRۂ",l7*ӥ Q簍gT'QUB}ZEl[1s('ɍיf }$jJJ(98 l.5z'åJɬxHoY/ɰ9+JLrP(,'4w{uEHYn',3@Pk/Ӷwz="F6y ;Ԓk6)Jr<-_DT6XlVN2 F_e}zz )?P"]s߇{Oyv}L-6۳W#lZ&:dWQI ,CG)zt}_oq&WUI٘L'ҩ^7#*R/xZzc_Fۡh/KiN:FƿRHɢ}ڲ,(6IhUe Gq.S#DcD; "BDUy7E>I0;#ɮsKQ(c;o]'c>o4m Oܗ"ac)X,HIp̒$95]4L[{{6MtKnMKCqz^Rw׵}_?,YtVMu?|?߫ʟ}}N.BD-9A^ vHӌ_e24ϽTk;{!(+s+ dhP5S՛Y1^LB[ޱ,}_ϽG|+'BۼKJIR!S #x`>;vG'y<;{*u +('ZM/~Z` #S vp[M/S9)zIv+&'%Wx|$2]UJ:]lK_:M&TGv7`r^CuEH^$AILӶ2 jPF:g6buvJ_ZRGvyWGq& YW 97aop{q:cOnq"BvDe(XQ WwT3ٞhazJkVGEs]݌vo72 dud%(Tctyʖ#F 6³1鄾׮II 'PSZxQ,)?A.-6-  ڇ3,6 ԣ Z\y3}v(!4Fjv2CWM+GWYIƍ.ؤP0}1&)YOQ9Sn9 1\mX`Ei+*EXh{aTP(*,i+@9( UI)bPnӣKq[; #T]A1՜BDՌGHs(s'STz`.GލqMQ͹ Lڗ|ABNzw gNzFtQh % b2 n&DG\vb "Cg&0]q2EO` g_4___pTh- FpW/EZMGXZ~WTwWi7 WW$[aX= a:(:5x:+PP`N-S0U]:mp@\+; `6A>AH:_:VС< 50_(:.~:/ l7- vG9 p 1> Yg5Gh hF:`6š:` ;Hm` *?V6P :L@6-}0~:- p(.W@`6+Z0c'Юdo`entG:P`S8`R`0b@F@#8:BV E (YS`6 Kp%BvcF:E,D8mpPK"x:@:$2/hz$%- Uvk+j<`5`:2@?`^00A":30:I `:BX }1P:D^6uF@V !`:zG0:(@D :20lK,DU:uX& OK;,?!MpM=A@9P  u*SR\%}o9 n=4KKp&*0 +P3H~: %0/Ѝ!:r0\ R%З"b@J bpE :)` pP@<S@`6 0:a@>UZ:.m@?;u$f L`!Н jpHP>Kp9HȚ:8cL)WD@$ ;UгRpO@u:k$~:O 6!3g0wFu&I@C+S,8+m  FDV~bB}  xHS@-up~:BZS\DdH:D`@2; !h;к0Ч _H:`:%jh`6\4а O{<:+& WF(=q-=.y;f0mo40OC&H :x D`| ckR`!p1#5nt6=W`k]h-`0pZx:9x?Z^ 6L6Bn  k -)0Zpv_6E68[`XZnc 8 ;0l0E 9i@ a >:(@9 :HPXX:o`R_60YM4oLPkk`;65:/0KO yh2o h:#@ +FNW`  ?;<Of:Dk]  ;H/x\@ KpmJ%p`>B: ~2`a:fo,hTd0* %@:3 iXzzpCpFk20Y_:^ܙ:mf@ol0=0!u>0:SP `dO:( VCqO 6!NOFd =l" SF^`61J@_Spj0Drap=JOQ1G(:X: .H4 *:o :(V@Pwy1o]g  :Z:h8G:`A9P'6:^6 > /Q2BD6`h:",:,@:puoV<0:dM6#K @NcK:0\:0BG)vl!8:U</Q0X])S1,EЭ Mc,+Ly0:"@ wM+'q/wJ=~:( jp: 9>4~:#{Q@,: >OK7`ok 00^ZC@|&0EJp =$e`:3P~:lUj@Zn`_DP 9U@O+O p[YN(6<Х2 %$:B90`%pWRD~:" :(: < 0oh:o,RA-2 Up 11 N53 6!gP|  M`< Ѐn`:^G:@& <:PB8: @&~::6p?; .3m@nFcLBQp:#5x:.@@ EVqB X ;:< m@^iV@6/A9p. tFP^:Jl^@6!P #&P?hN  m"(:=g0~l(_X:  {exP:X3]6@"ء:2#a0>!:QM> TBPU.?8 ]:xJЕ: @na:dBU8kA 99 A(dp[u$@E]Zm 47 2 WCvj'z` '8p D` A (:ab0B +U(`1~:hXMB C8:7:(Pu)&!h:I*`D3)K&2O!@:c:mi $p:E&l; ::(*fjSg^:BZ:UOT@.K`@]AOZ#:;@6BT;_`~:9dT&LЬ.+] 3.%ERx~:t,@=UcJ:g}q[_4:X{:?@O6"kP>"X ;}X:E.P%:;Np*-`Tg;P U&i` 77 I;iX&cJJ18 :E`PPname; $PAR::Heavy::FullCache{$filename} = $fullname; } else { $ModuleCache{$fullname} = { buf => $buf, crc => $crc, name => $fullname, }; $require_list{$fullname}++; } read _FH, $buf, 4; } local @INC = (sub { my ($self, $module) = @_; return if ref $module or !$module; my $info = $ModuleCache{$module}; return unless $info; delete $require_list{$module}; $INC{$module} = "/loader/$info/$module"; if ($ENV{PAR_CLEAN} and defined(&IO::File::new)) { my $fh = IO::File->new_tmpfile or die "Can't create temp file: $!"; $fh->binmode(); $fh->print($info->{buf}); $fh->seek(0, 0); return $fh; } else { my $filename = _save_as("$info->{crc}.pm", $info->{buf}); $info->{file} = $filename; open my $fh, '<:raw', $filename or die qq[Can't read "$filename": $!]; return $fh; } die "Bootstrapping failed: can't find module $module!"; }, @INC); require XSLoader; require PAR::Heavy; require Carp::Heavy; require Exporter::Heavy; PAR::Heavy::_init_dynaloader(); require IO::File; while (my $filename = (sort keys %require_list)[0]) { unless ($INC{$filename} or $filename =~ /BSDPAN/) { if ($filename =~ /\.pmc?$/i) { require $filename; } else { do $filename unless $filename =~ /sitecustomize\.pl$/; } } delete $require_list{$filename}; } if ($buf ne $PKZIP_MAGIC) { outs(qq[No zip found after FILE section in file "$progname"]); last MAGIC ; } $start_pos = (tell _FH) - 4; # start of zip } my @par_args; my ($out, $bundle, $logfh, $cache_name); delete $ENV{PAR_APP_REUSE}; # sanitize (REUSE may be a security problem) 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 (@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 qq[Can't open log file "$2": $!]; } 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; } } if ($out) { { require IO::File; require Archive::Zip; require Digest::SHA; } my $par = shift(@ARGV); my $zip; if (defined $par) { open my $fh, '<:raw', $par or die qq[Can't find par file "$par": $!]; bless($fh, 'IO::File'); $zip = Archive::Zip->new; ( $zip->readFromFileHandle($fh, $par) == Archive::Zip::AZ_OK() ) or die qq[Error reading zip archive "$par"]; } my %meta_par = do { if ($zip and my $meta = $zip->contents('META.yml')) { $meta =~ s/.*^par:$//ms; $meta =~ s/^\S.*//ms; $meta =~ /^ ([^:]+): (.+)$/mg; } }; if (defined $par) { open my $ph, '<:raw', $par or die qq[Can't read par file "$par": $!]; my $buf; read $ph, $buf, 4; die qq["$par" is not a par file] unless $buf eq $PKZIP_MAGIC; close $ph; } CreatePath($out) ; my $fh = IO::File->new( $out, IO::File::O_CREAT() | IO::File::O_RDWR() | IO::File::O_TRUNC(), 0777, ) or die qq[Can't create file "$out": $!]; $fh->binmode(); seek _FH, 0, 0; my $loader; if (defined $start_of_FILE_section) { read _FH, $loader, $start_of_FILE_section; } else { local $/ = undef; $loader = <_FH>; } if (!$ENV{PAR_VERBATIM} and $loader =~ /^(?:#!|\@rem)/) { require PAR::Filter::PodStrip; PAR::Filter::PodStrip->apply(\$loader, $0); } $fh->print($loader) or die qq[Error writing loader to "$out": $!]; if ($bundle) { require PAR::Heavy; PAR::Heavy::_init_dynaloader(); init_inc(); require_modules(); my @inc = grep { !/BSDPAN/ } grep { ($bundle ne 'site') or ($_ ne $Config::Config{archlibexp} and $_ ne $Config::Config{privlibexp}); } @INC; s|/+|/|g, s|/$|| foreach @inc; my %files; $files{$_}++ for @DynaLoader::dl_shared_objects, values %INC; my $lib_ext = $Config::Config{lib_ext}; # XXX lib_ext vs dlext ? my %written; foreach my $key (sort keys %files) { my ($file, $name); if (defined(my $fc = $PAR::Heavy::FullCache{$key})) { ($file, $name) = ($key, $fc); } else { foreach my $dir (@inc) { if ($key =~ m|^\Q$dir\E/(.*)$|i) { ($file, $name) = ($key, $1); last; } if ($key =~ m|^/loader/[^/]+/(.*)$|) { if (my $ref = $ModuleCache{$1}) { ($file, $name) = ($ref, $1); last; } if (-f "$dir/$1") { ($file, $name) = ("$dir/$1", $1); last; } } } } next unless defined $name; next if $written{$name}++; next if !ref($file) and $file =~ /\.\Q$lib_ext\E$/i; outs(sprintf(qq[Packing FILE "%s"...], ref $file ? $file->{name} : $file)); my $content; if (ref($file)) { $content = $file->{buf}; } else { local $/ = undef; open my $th, '<:raw', $file or die qq[Can't read "$file": $!]; $content = <$th>; close $th; PAR::Filter::PodStrip->apply(\$content, "/$name") if !$ENV{PAR_VERBATIM} and $name =~ /\.(?:pm|ix|al)$/i; PAR::Filter::PatchContent->new->apply(\$content, $file, $name); } $fh->print("FILE", pack('N', length($name) + 9), sprintf("%08x/%s", Archive::Zip::computeCRC32($content), $name), pack('N', length($content)), $content) or die qq[Error writing embedded FILE to "$out": $!]; outs(qq[Written as "$name"]); } } if ($zip) { $zip->writeToFileHandle($fh) == Archive::Zip::AZ_OK or die qq[Error writing zip part of "$out"]; } if ($meta_par{clean}) { $fh->print("\0CLEAN"); } else { if (!defined $cache_name) { my $ctx = Digest::SHA->new(1); seek $fh, 0, 0; $ctx->addfile($fh); seek $fh, 0, 2; $cache_name = $ctx->hexdigest; } $cache_name = substr $cache_name, 0, $cache_name_size; $cache_name .= "\0" x ($cache_name_size - length $cache_name); $fh->print($cache_name, "\0CACHE"); } my $offset = $fh->tell - length($loader); $fh->print(pack('N', $offset), $PAR_MAGIC); $fh->close or die qq[Error writing trailer of "$out": $!]; chmod 0755, $out; exit; } { last unless defined $start_pos; _fix_progname(); require PAR; PAR::Heavy::_init_dynaloader(); { require File::Find; require Archive::Zip; } my $fh = IO::File->new; # Archive::Zip operates on an IO::Handle $fh->fdopen(fileno(_FH), 'r') or die qq[fdopen() failed: $!]; Archive::Zip::setChunkSize(-s _FH); my $zip = Archive::Zip->new; ($zip->readFromFileHandle($fh, $progname) == Archive::Zip::AZ_OK()) or die qq[Error reading zip archive "$progname"]; Archive::Zip::setChunkSize(64 * 1024); push @PAR::LibCache, $zip; $PAR::LibCache{$progname} = $zip; outs("Extracting zip..."); 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{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) == Archive::Zip::AZ_OK()) or die qq[Error extracting zip member to "$dest_name"]; chmod(0555, $dest_name) if $^O eq "hpux"; } } } } 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 { 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 Digest::SHA; require PAR; require PAR::Heavy; require PAR::Dist; require PAR::Filter::PodStrip; require PAR::Filter::PatchContent; 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 }; eval { require utf8 }; } 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; eval {($pwuid) = getpwuid($>) if defined $>;}; if ( defined(&Win32::LoginName) ) { $username = &Win32::LoginName; } elsif (defined $pwuid) { $username = $pwuid; } else { $username = $ENV{USERNAME} || $ENV{USER} || 'SYSTEM'; } my $stmpdir = "$path$sys{_delim}par-".unpack("H*", $username); mkdir $stmpdir, 0755; my $cache_dir; if ($ENV{PAR_CLEAN}) { $cache_dir = "temp-$$"; } else { open my $fh, "<:raw", $progname or die qq[Can't read "$progname": $!]; if ((my $magic_pos = find_par_magic($fh)) >= 0) { seek $fh, $magic_pos - $FILE_offset_size - length("\0CACHE"), 0; my $buf; read $fh, $buf, length("\0CACHE"); if ($buf eq "\0CACHE") { seek $fh, $magic_pos - $FILE_offset_size - length("\0CACHE") - $cache_name_size, 0; read $fh, $buf, $cache_name_size; $buf =~ s/\0//g; $cache_dir = "cache-$buf"; } } close $fh; } if (!$cache_dir) { $cache_dir = "temp-$$"; $ENV{PAR_CLEAN} = 1; } $stmpdir .= "$sys{_delim}$cache_dir"; mkdir $stmpdir, 0755; $ENV{PAR_TEMP} = $stmpdir; last; } $par_temp = $1 if $ENV{PAR_TEMP} and $ENV{PAR_TEMP} =~ /(.+)/; } sub _save_as { my ($name, $contents, $mode) = @_; my $fullname = "$par_temp/$name"; unless (-e $fullname) { my $tempname = "$fullname.$$"; my $fh; (open $fh, '>:raw', $tempname) && (print $fh $contents) && (close $fh) or die qq[Error writing "$tempname": $!]; chmod $mode, $tempname if defined $mode; rename($tempname, $fullname) or unlink($tempname); } return $fullname; } 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, $sys{_delim}) + 1); } if (!$ENV{PAR_PROGNAME} or index($progname, $sys{_delim}) >= 0) { if (open my $fh, '<', $progname) { return if -s $fh; } if (-s "$progname$sys{_exe}") { $progname .= $sys{_exe}; return; } } foreach my $dir (split /\Q$sys{path_sep}\E/, $ENV{PATH}) { next if exists $ENV{PAR_TEMP} and $dir eq $ENV{PAR_TEMP}; $dir =~ s/\Q$sys{_delim}\E$//; (($progname = "$dir$sys{_delim}$progname$sys{_exe}"), last) if -s "$dir$sys{_delim}$progname$sys{_exe}"; (($progname = "$dir$sys{_delim}$progname"), last) if -s "$dir$sys{_delim}$progname"; } } sub _fix_progname { $0 = $progname ||= $ENV{PAR_PROGNAME}; if (index($progname, $sys{_delim}) < 0) { $progname = ".$sys{_delim}$progname"; } my $pwd = (defined &Cwd::getcwd) ? Cwd::getcwd() : ((defined &Win32::GetCwd) ? Win32::GetCwd() : `pwd`); chomp($pwd); $progname =~ s/^(?=\.\.?\Q$sys{_delim}\E)/$pwd$sys{_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 ) ) { delete $ENV{"PAR_$_"}; } for (qw/ TMPDIR TEMP CLEAN DEBUG /) { $ENV{"PAR_$_"} = $ENV{"PAR_GLOBAL_$_"} if exists $ENV{"PAR_GLOBAL_$_"}; } if ($ENV{PAR_TEMP}) { delete $ENV{PAR_CLEAN}; } } 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 ); } 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; __END__ CACHEperlxsi.c;o,sTsldv@4x$yyd{4|T|l}TtT,d@ԃ4TpdĊ,tl zRx w&D$4pn`FJ w?:*3$"\qtqPHwBBB B(A0A8D@l 8D0A(B BBBI @xlBBB A(A0G~ 0A(A BBBK <HyBBB A(G I  (A BBBD \yFHy tzAJq AA H|z1BBB B(A0D8GP 8A0A(B BBBE p|8||FAA G L@I@  DABA 4 } `H}FBB B(A0A8G L!q 8A0A(B BBBD !M"g!A!~&E\D~FAA G I   AABB Z  HABK H\FBB B(A0A8KP 8M0A(B BBBE \؃iH P H x,EAG<Є.BAA H Q D  AABC !HXD؅FBH G(D@B (F ABBH aHIPcHA@4pFIB B(A0A8Ga_Bv 8D0A(B BBBD K^A_DPKK 8D0A(B BBBM CFA(FHD0I ABB 4FAN0P ABH W DBE (HpFADPb DBA Lt0BIB B(A0A8G 8A0A(B BBBA XHOH(FEE B(D0E8G@ 8A0A(B BBBC <(|FFB A(D06 (A BBBH )P)S `o   h oooo6o0 @ P ` p !! !0!@!P!`!p!!!!!!!!!"" "0"@"P"`"p"""""""""## #0#@#P#`#p# PAR.pm rGCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0.shstrtab.interp.note.gnu.property.note.gnu.build-id.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.data.bss.comment 880&hh$9 GoQ Y ao66nop}hhB  `####P&&+9 ` ` ppz@||xxh(@( 0(+S ELF>(@`@8 @@@@ @@pppGG888800hhhDDStd88800Ptd|||QtdRtd/lib64/ld-linux-x86-64.so.2 GNUGNUqb6T4m#GNU;@D( "I A ;>ABJKMQRSTWY\^nG-k|.śd|!qXGoKBׇ?,|l`OÛk CffŹ@8ĉBEpWw3b% : ݣkF ~emN; kP WII rX o` v , ^euF=cU]cm9M' TN/iE <&0  C0(3&8iup\/@; 9803`G!`( &h(& \X !`~pN;!"@"/D ^P4\__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTablePerl_sys_termPerl_sys_init3perl_constructPerl_get_svPL_exit_flagsPerl_sv_setpvnPL_do_undumpPerl_newXS_flagsPL_taintingperl_freePerl_mg_setPerl_sv_setpvPL_taintedPerl_gv_fetchpvperl_runPerl_newXSperl_destructPL_perl_destruct_levelboot_DynaLoaderPerl_croakperl_parsePerl_safesysmallocperl_alloc__cxa_finalizereadstrchrgetpidmemmove__libc_start_main__fprintf_chkstrcmpopen64unlinkstrtokstrncmpgetuidmemchrclosedirrmdirstrlenstrdup__memcpy_chkreallocreaddir64__sprintf_chkstderrmemcpystrrchrlstat64opendirlseek64__vfprintf_chk__errno_locationexitreadlink__stack_chk_failaccessmkdir__environlibperl.solibc.so.6par_current_execpar_basenameXS_Internals_PAR_BOOTpar_env_cleanpar_current_exec_procpar_dirnamesha_finalget_username_from_getpwuidpar_cleanup_IO_stdin_used__data_startsha_updatexs_init__bss_startsha_init_endpar_mktmpdir_edatapar_setup_libpathpar_findprogmy_par_plpar_diepar_init_envGLIBC_2.14GLIBC_2.34GLIBC_2.4GLIBC_2.33GLIBC_2.3.4GLIBC_2.2.5/opt/hostedtoolcache/perl/5.38.2/x64/lib/5.38.2/x86_64-linux/COREii &0ti ;ui G)P) rX7@Y`LhQpV^M\(08@HPX` h p x   !"# $(%0&8'@(H)P*X+`,h-p.x/012345689:HHHtH5%hhhhhhhhqhah Qh Ah 1h !h hhhhhhhhhhqhahQhAh1h!hhhh h!h"h#h$h%h&h'qh(ah)Qh*Ah+1h,!h-h.h/h0h1h2h3h4%]D%D%D%}D%uD%mD%eD%]D%UD%MD%ED%=D%5D%-D%%D%D%D% D%D%D%D%D%D%ݩD%թD%ͩD%ũD%D%D%D%D%D%D%D%D%}D%uD%mD%eD%]D%UD%MD%ED%=D%5D%-D%%D%D%D% D%D%D%D%DATUH8|$H|$Ht$Ht$HT$HT$dH%(HD$(1=u$uHHHaD$ xD`HcHH|$DD$HHDHHH^JHAHHAHKJHAAHAfDHHcHHD9uHcH=E1H5HDtVH=èHl$$HH=HA1}Ht:H=\HD$(dH+%(u`H8D]A\H=mH=OHtH=GHH-HHtٺ77"f1I^HHPTE11H=#f.H=AH:H9tHަHt H=H5 H)HH?HHHtHHtfD=Nu+UH=Ht H= d&]wAWAVAUATUSHHL-MIHt<=uXE1MeMt2McLfDLLLuC<4=tGLcHMuHL[]A\A]A^A_IAFIt<=uE)L)Od4H]E1AVAUATUSHdH%(H$1Ht?Hu1H$dH+%(!HĠ[]A\A]A^f. L-(EIHtLHx.HXu {tx.HHIA|HcIILIHǾ1HLHqLtD$%=@tYL,L4H`LH{.X{ I@AVAUATUHH $HdH%(H$1IHIH=CL9~=PLcB<4u`t,L/LtHtLLHLHH$dH+%(uH]A\A]A^Lc.ff.HH51HH=LCHDE1H5=HH=HCHf.UHHdH%(H$1Hu6T$@tuHD1H$dH+%(u HĠ]Mff.fAWAVAUATUHSHHdH%(HD$11>=HHHt$HI1HHII9Lct$I<=HPHt=uH)HL-+J| MIEHtVHHKJ0t"<=u tHH<=u=1fDLLHuHD$dH+%(H[]A\A]A^A_@1fDTATHu@L=qI?LE1HDAH8urHcHu[HHaMcLHILHHAEDl$HHfLHѠHHMcI@1E1_ff.@H5HH=0@fATUSHH $HH $H dH%(H$ 1HL$IL ?HAH ?1LHE1x.xHHcIHtHcLHHIH$ dH+%(uH L[]A\AWAVAUATUSHH $HdH%(H$1HIH=7?Ht$ u/HHEHt@1HH=??HH$dH+%(Hĸ[]A\A]A^A_LL->L$LHNIHtA?@HtLHLITII9r%fHI9t:/tLIHIDH=HH D?M1UL .>LHt$ LtZYuD$(%=tNL1tIHA?&Ht;.tAL==^f{tLuLH==Lgff.U/HHPHHEH]f.ATUSHH $HdH%(H$1H?IKHPHHHLHHDH9wHH9t8/t/HbHt-H9wXHH$dH+%(uIH[]A\ÐH$dH+%(u)HH=5<[]A\fD1ff.@AWAVAUATUSH <HdH%(HD$1Hl$f1HHHt6HcT$H›HHPHHtfHPHHHufDH;1HHHt6HcT$HrHHPHHtfHPHHHufDHd;1HHsHt6HcT$H"HHPHHtfHPHHHufDH;1HH#Ht6HcT$HҚHHPHHtfHPHHHufDL%:1HLHt6HcT$HHHPHHtfHPHHHufDH:1HHHt6HcT$H2HHPHHtfHPHHHufDL-91HL3Ht6HcT$HHHPHHtfHPHHHufDL=:1HLHt6HcT$HHHPHHtfHPHHHufDL591HLHt6HcT$HBHHPHHtfHPHHHufDHt91HHCHt6HcT$HHHPHHtfHPHHHufDH81HHHt6HcT$HHHPHHtfHPHHHufDHH=8HHt L1HH=81HHtH=81`HH=81_HHt9L1=HD$dH+%(uDHLH581[]A\A]A^A_HH=81 HHtL1$@HH=7dH%(HD$1Ht$Ht20 ЃHT$dH+%(uH1PXHIHt$(HT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$dH%(HD$1H=HLH$$HD$HD$ D$0HD$DATUSL$HH $L9uH1dH%(H$1H L`LH?H0IH)I)f1LHHމ{tsHHvNHDH9rDH} HH9r/H H9uH)LH$dH+%(uGH[]A\fIIlHH=761%H=61fHlHtHHff.@AUATL%5UHLSHdH%(HD$1Ht$+Ht8Hu.HD$dH+%(}HHL1[]A\A]HHII|CHISHHIL 4H 51TXZHD$dH+%(uLAWL=+4AVAUATUSHxH<$Hl$LHdH%(H$hH3HD$0HDŽ$HD$PHD$(H\4HD$hH4HD$pHa4HD$xH4H$H4HD$H1Ht 8I.HL MLH|E$HEtBIL-F4fELLH1IIE$EuLl$`H=3I}IH/H1IHt݀8tH`tLIHLHIEMcL*SML 2IH3HPH c3L17L_AXumDAH$LÅH$ME1H=0H3H1OH$hdH+%(oHxL[]A\A]A^A_E1L%2@IcLd Mt;A<$t4LA tLIHIcLd MuE1$%=@3D$A9$%=LHH=1I10HHDH$H8XIH,L$Hƒ~HEHHHEHCHEcHECHEHCHEHCHEcHECHEHCHEHC HEc HEC HEHC HEHC HEcHECHE HCHE HCHE cHE C[]A\A]A^;81)ʃrJHHDHHHH)ƒ1ƃH<19ru#1fLDHH%s/%s/proc/self/exeDynaLoader::boot_DynaLoaderInternals::PAR::BOOT/proc/%i/%s.PAR_TEMPPAR_PROGNAME:/PERL5LIBPERLLIBPERL5OPTPERLIOPAR_INITIALIZEDPAR_SPAWNEDPAR_CLEANPAR_DEBUGPAR_CACHEPAR_GLOBAL_DEBUGPAR_GLOBAL_TMPDIRPAR_TMPDIRPAR_GLOBAL_TEMPPAR_GLOBAL_CLEAN1lseek failedread failedLD_LIBRARY_PATHUSERSYSTEM/tmpTEMPDIRTMPUSERNAME%02x%s%s%s%spar-parl.parshort read%s%scache-%s%s%s%stemp-%u%s%s%stemp-%u-%u%sperl0PAR::Packer::VERSION1.063-e--%s: creation of private subdirectory %s failed (errno=%i) %s: private subdirectory %s is unsafe (please remove it and retry your operation) Unable to create cache directory%s: creation of private cache subdirectory %s failed (errno=%i) eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if 0; # not running under some shell package __par_pl; my ($PAR_MAGIC, $FILE_offset_size, $cache_name_size); BEGIN { $PAR_MAGIC = "\nPAR.pm\n"; $FILE_offset_size = 4; # pack("N") $cache_name_size = 40; $PKZIP_MAGIC = "PK\003\004"; } sub find_par_magic { my ($fh) = @_; my $chunk_size = 64 * 1024; my $buf; my $size = -s $fh; my $pos = ($size-1) - ($size-1) % $chunk_size; # NOTE: $pos is a multiple of $chunk_size while ($pos >= 0) { seek $fh, $pos, 0; read $fh, $buf, $chunk_size + length($PAR_MAGIC); if ((my $i = rindex($buf, $PAR_MAGIC)) >= 0) { return $pos + $i; } $pos -= $chunk_size; } return -1; } my ($par_temp, $progname, @tmpfile, %ModuleCache); 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; if (-d $par_temp && $^O ne 'MSWin32') { my $tmp = new File::Temp( TEMPLATE => 'tmpXXXXX', DIR => File::Basename::dirname($topdir), SUFFIX => '.cmd', UNLINK => 0, ); my $filename = $tmp->filename; print $tmp <<"..."; 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 '$filename' ... close $tmp; chmod 0700, $filename; my $cmd = "$filename >/dev/null 2>&1 &"; system($cmd); outs(qq[Spawned background process to perform cleanup: $filename]); } } } BEGIN { Internals::PAR::BOOT() if defined &Internals::PAR::BOOT; eval { _par_init_env(); my $quiet = !$ENV{PAR_DEBUG}; my %sys = ( path_sep => ($^O =~ /^MSWin/ ? ';' : ':'), _exe => ($^O =~ /^(?:MSWin|OS2|cygwin)/ ? '.exe' : ''), _delim => ($^O =~ /^MSWin|OS2/ ? '\\' : '/'), ); _set_progname(); outs(qq[\$progname = "$progname"]); _set_par_temp(); outs(qq[\$ENV{PAR_TEMP} = "$ENV{PAR_TEMP}"]); my ($start_pos, $start_of_FILE_section); MAGIC: { local $SIG{__WARN__} = sub {}; unless (open _FH, '<:raw', $progname) { outs(qq[Can't read from file "$progname"]); # don't use $! here as it requires Errno.pm last MAGIC; } my $magic_pos = find_par_magic(*_FH); if ($magic_pos < 0) { outs(qq[Can't find magic string "$PAR_MAGIC" in file "$progname"]); last MAGIC; } outs("Found PAR magic at position $magic_pos"); seek _FH, $magic_pos - $FILE_offset_size - length("\0CACHE"), 0; read _FH, $buf, length("\0CACHE"); if ($buf ne "\0CACHE" && $buf ne "\0CLEAN") { outs("No cache marker found"); last MAGIC; } outs(qq[Cache marker "$buf" found]); seek _FH, $magic_pos - $FILE_offset_size, 0; read _FH, $buf, $FILE_offset_size; my $offset = unpack("N", $buf); outs("Offset from start of FILEs is $offset"); seek _FH, $magic_pos - $FILE_offset_size - $offset, 0; $start_of_FILE_section = tell _FH; my %require_list; read _FH, $buf, 4; # read the first "FILE" 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 $filename = _save_as("$crc$ext", $buf, 0755); $PAR::Heavy::FullCache{$fullname} = $file PAR.pm Qq ?q= ?=;=<`;<@; ;;:::9:98`:8@7 :76965954`94@3 932821810`80@/ 8/.7.-7-,`7,@+ 7+*6*)6)(`6(@' 6'&5&%5%$`5$@# 5#"4"!4! `4 @ 433`3@ 322`2@ 211`1@ 100`0@ 0/ / `/ @ / . . `.@ .--`-@ -,,`>H;>GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0.shstrtab.interp.note.gnu.property.note.gnu.build-id.note.ABI-tag.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.dynamic.data.bss.comment 880&hh$9 GoQ Yp p [aono``p} B00 0 02222p 5 5K7llll pp78s8s t t0xx|||~x0}> @ ?0>0 00>+[> FILE'0feac68e/IO/Compress/Adapter/Deflate.pmpackage IO::Compress::Adapter::Deflate ; use strict; use warnings; use bytes; use IO::Compress::Base::Common 2.204 qw(:Status); use Compress::Raw::Zlib 2.204 qw( !crc32 !adler32 ) ; require Exporter; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS); $VERSION = '2.204'; @ISA = qw(Exporter); @EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS; %EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS; @EXPORT = @EXPORT_OK; %DEFLATE_CONSTANTS = %EXPORT_TAGS ; sub mkCompObject { my $crc32 = shift ; my $adler32 = shift ; my $level = shift ; my $strategy = shift ; my ($def, $status) = Compress::Raw::Zlib::Deflate->new( -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 mkCompObject1 { my $crc32 = shift ; my $adler32 = shift ; my $level = shift ; my $strategy = shift ; my ($def, $status) = Compress::Raw::Zlib::Deflate->new( -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__ FILE6c0dc0cf/FileHandle.pmpackage FileHandle; use 5.006; use strict; our($VERSION, @ISA, @EXPORT, @EXPORT_OK); $VERSION = "2.05"; require IO::File; @ISA = qw(IO::File); @EXPORT = qw(_IOFBF _IOLBF _IONBF); @EXPORT_OK = qw( pipe 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 print printf getline getlines ); # # Everything we're willing to export, we must first import. # IO::Handle->import( grep { !defined(&$_) } @EXPORT, @EXPORT_OK ); # # Some people call "FileHandle::function", so all the functions # that were in the old FileHandle class must be imported, too. # { no strict 'refs'; my %import = ( 'IO::Handle' => [qw(DESTROY new_from_fd fdopen close fileno getc ungetc gets eof flush error clearerr setbuf setvbuf _open_mode_string)], 'IO::Seekable' => [qw(seek tell getpos setpos)], 'IO::File' => [qw(new new_tmpfile open)] ); for my $pkg (keys %import) { for my $func (@{$import{$pkg}}) { my $c = *{"${pkg}::$func"}{CODE} or die "${pkg}::$func missing"; *$func = $c; } } } # # Specialized importer for Fcntl magic. # sub import { my $pkg = shift; my $callpkg = caller; require Exporter; Exporter::export($pkg, $callpkg, @_); # # If the Fcntl extension is available, # export its constants. # eval { require Fcntl; Exporter::export('Fcntl', $callpkg); }; } ################################################ # This is the only exported function we define; # the rest come from other classes. # sub pipe { my $r = IO::Handle->new; my $w = IO::Handle->new; CORE::pipe($r, $w) or return undef; ($r, $w); } # Rebless standard file handles bless *STDIN{IO}, "FileHandle" if ref *STDIN{IO} eq "IO::Handle"; bless *STDOUT{IO}, "FileHandle" if ref *STDOUT{IO} eq "IO::Handle"; bless *STDERR{IO}, "FileHandle" if ref *STDERR{IO} eq "IO::Handle"; 1; __END__ =head1 NAME FileHandle - supply object methods for filehandles =head1 SYNOPSIS use FileHandle; my $fh = FileHandle->new; if ($fh->open("< file")) { print <$fh>; $fh->close; } my $fh = FileHandle->new("> FOO"); if (defined $fh) { print $fh "bar\n"; $fh->close; } my $fh = FileHandle->new("file", "r"); if (defined $fh) { print <$fh>; undef $fh; # automatically closes the file } my $fh = FileHandle->new("file", O_WRONLY|O_APPEND); if (defined $fh) { print $fh "corge\n"; undef $fh; # automatically closes the file } my $pos = $fh->getpos; $fh->setpos($pos); $fh->setvbuf(my $buffer_var, _IOLBF, 1024); my ($readfh, $writefh) = FileHandle::pipe; autoflush STDOUT 1; =head1 DESCRIPTION NOTE: This class is now a front-end to the IO::* classes. C creates a C, which is a reference to a newly created symbol (see the L package). If it receives any parameters, they are passed to C; if the open fails, the C object is destroyed. Otherwise, it is returned to the caller. C creates a C like C does. It requires two parameters, which are passed to C; if the fdopen fails, the C object is destroyed. Otherwise, it is returned to the caller. C accepts one parameter or two. With one parameter, it is just a front end for the built-in C function. With two parameters, the first parameter is a filename that may include whitespace or other special characters, and the second parameter is the open mode, optionally followed by a file permission value. If C receives a Perl mode string (">", "+<", etc.) or a POSIX fopen() mode string ("w", "r+", etc.), it uses the basic Perl C operator. If C is given a numeric mode, it passes that mode and the optional permissions value to the Perl C operator. For convenience, C tries to import the O_XXX constants from the Fcntl module. If dynamic loading is not available, this may fail, but the rest of FileHandle will still work. C is like C except that its first parameter is not a filename but rather a file handle name, a FileHandle object, or a file descriptor number. If the C functions fgetpos() and fsetpos() are available, then C returns an opaque value that represents the current position of the FileHandle, and C uses that value to return to a previously visited position. If the C function setvbuf() is available, then C sets the buffering policy for the FileHandle. The calling sequence for the Perl function is the same as its C counterpart, including the macros C<_IOFBF>, C<_IOLBF>, and C<_IONBF>, except that the buffer parameter specifies a scalar variable to use as a buffer. WARNING: A variable used as a buffer by C must not be modified in any way until the FileHandle is closed or until C is called again, or memory corruption may result! See L for complete descriptions of each of the following supported C methods, which are just front ends for the corresponding built-in functions: close fileno getc gets eof clearerr seek tell See L for complete descriptions of each of the following supported C methods: 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 Furthermore, for doing normal I/O you might need these: =over 4 =item $fh->print See L. =item $fh->printf See L. =item $fh->getline This works like <$fh> described in L except that it's more readable and can be safely called in a list context but still returns just one line. =item $fh->getlines This works like <$fh> when called in a list context to read all the remaining lines in a file, except that it's more readable. It will also croak() if accidentally called in a scalar context. =back There are many other functions available since FileHandle is descended from IO::File, IO::Seekable, and IO::Handle. Please see those respective pages for documentation on more functions. =head1 SEE ALSO The B extension, L, L. =cut FILE66058cac/File/Temp.pm]package File::Temp; # git description: v0.2310-3-gc7148fe # ABSTRACT: return name and handle of a temporary file safely our $VERSION = '0.2311'; #pod =begin :__INTERNALS #pod #pod =head1 PORTABILITY #pod #pod This section is at the top in order to provide easier access to #pod porters. It is not expected to be rendered by a standard pod #pod formatting tool. Please skip straight to the SYNOPSIS section if you #pod are not trying to port this module to a new platform. #pod #pod This module is designed to be portable across operating systems and it #pod currently supports Unix, VMS, DOS, OS/2, Windows and Mac OS #pod (Classic). When porting to a new OS there are generally three main #pod issues that have to be solved: #pod #pod =over 4 #pod #pod =item * #pod #pod Can the OS unlink an open file? If it can not then the #pod C<_can_unlink_opened_file> method should be modified. #pod #pod =item * #pod #pod Are the return values from C reliable? By default all the #pod return values from C are compared when unlinking a temporary #pod file using the filename and the handle. Operating systems other than #pod unix do not always have valid entries in all fields. If utility function #pod C fails then the C comparison should be #pod modified accordingly. #pod #pod =item * #pod #pod Security. Systems that can not support a test for the sticky bit #pod on a directory can not use the MEDIUM and HIGH security tests. #pod The C<_can_do_level> method should be modified accordingly. #pod #pod =back #pod #pod =end :__INTERNALS #pod #pod =head1 SYNOPSIS #pod #pod use File::Temp qw/ tempfile tempdir /; #pod #pod $fh = tempfile(); #pod ($fh, $filename) = tempfile(); #pod #pod ($fh, $filename) = tempfile( $template, DIR => $dir); #pod ($fh, $filename) = tempfile( $template, SUFFIX => '.dat'); #pod ($fh, $filename) = tempfile( $template, TMPDIR => 1 ); #pod #pod binmode( $fh, ":utf8" ); #pod #pod $dir = tempdir( CLEANUP => 1 ); #pod ($fh, $filename) = tempfile( DIR => $dir ); #pod #pod Object interface: #pod #pod require File::Temp; #pod use File::Temp (); #pod use File::Temp qw/ :seekable /; #pod #pod $fh = File::Temp->new(); #pod $fname = $fh->filename; #pod #pod $fh = File::Temp->new(TEMPLATE => $template); #pod $fname = $fh->filename; #pod #pod $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.dat' ); #pod print $tmp "Some data\n"; #pod print "Filename is $tmp\n"; #pod $tmp->seek( 0, SEEK_END ); #pod #pod $dir = File::Temp->newdir(); # CLEANUP => 1 by default #pod #pod The following interfaces are provided for compatibility with #pod existing APIs. They should not be used in new code. #pod #pod MkTemp family: #pod #pod use File::Temp qw/ :mktemp /; #pod #pod ($fh, $file) = mkstemp( "tmpfileXXXXX" ); #pod ($fh, $file) = mkstemps( "tmpfileXXXXXX", $suffix); #pod #pod $tmpdir = mkdtemp( $template ); #pod #pod $unopened_file = mktemp( $template ); #pod #pod POSIX functions: #pod #pod use File::Temp qw/ :POSIX /; #pod #pod $file = tmpnam(); #pod $fh = tmpfile(); #pod #pod ($fh, $file) = tmpnam(); #pod #pod Compatibility functions: #pod #pod $unopened_file = File::Temp::tempnam( $dir, $pfx ); #pod #pod =head1 DESCRIPTION #pod #pod C can be used to create and open temporary files in a safe #pod way. There is both a function interface and an object-oriented #pod interface. The File::Temp constructor or the tempfile() function can #pod be used to return the name and the open filehandle of a temporary #pod file. The tempdir() function can be used to create a temporary #pod directory. #pod #pod The security aspect of temporary file creation is emphasized such that #pod a filehandle and filename are returned together. This helps guarantee #pod that a race condition can not occur where the temporary file is #pod created by another process between checking for the existence of the #pod file and its opening. Additional security levels are provided to #pod check, for example, that the sticky bit is set on world writable #pod directories. See L<"safe_level"> for more information. #pod #pod For compatibility with popular C library functions, Perl implementations of #pod the mkstemp() family of functions are provided. These are, mkstemp(), #pod mkstemps(), mkdtemp() and mktemp(). #pod #pod Additionally, implementations of the standard L #pod tmpnam() and tmpfile() functions are provided if required. #pod #pod Implementations of mktemp(), tmpnam(), and tempnam() are provided, #pod but should be used with caution since they return only a filename #pod that was valid when function was called, so cannot guarantee #pod that the file will not exist by the time the caller opens the filename. #pod #pod Filehandles returned by these functions support the seekable methods. #pod #pod =cut # Toolchain targets v5.8.1, but we'll try to support back to v5.6 anyway. # It might be possible to make this v5.5, but many v5.6isms are creeping # into the code and tests. use 5.006; use strict; use Carp; use File::Spec 0.8; use Cwd (); use File::Path 2.06 qw/ rmtree /; use Fcntl 1.03; use IO::Seekable; # For SEEK_* use Errno; use Scalar::Util 'refaddr'; require VMS::Stdio if $^O eq 'VMS'; # pre-emptively load Carp::Heavy. If we don't when we run out of file # handles and attempt to call croak() we get an error message telling # us that Carp::Heavy won't load rather than an error telling us we # have run out of file handles. We either preload croak() or we # switch the calls to croak from _gettemp() to use die. eval { require Carp::Heavy; }; # Need the Symbol package if we are running older perl require Symbol if $] < 5.006; ### For the OO interface use parent 0.221 qw/ IO::Handle IO::Seekable /; use overload '""' => "STRINGIFY", '0+' => "NUMIFY", fallback => 1; our $DEBUG = 0; our $KEEP_ALL = 0; # We are exporting functions use Exporter 5.57 'import'; # 5.57 lets us import 'import' # Export list - to allow fine tuning of export table our @EXPORT_OK = qw{ tempfile tempdir tmpnam tmpfile mktemp mkstemp mkstemps mkdtemp unlink0 cleanup SEEK_SET SEEK_CUR SEEK_END }; # Groups of functions for export our %EXPORT_TAGS = ( 'POSIX' => [qw/ tmpnam tmpfile /], 'mktemp' => [qw/ mktemp mkstemp mkstemps mkdtemp/], 'seekable' => [qw/ SEEK_SET SEEK_CUR SEEK_END /], ); # add contents of these tags to @EXPORT Exporter::export_tags('POSIX','mktemp','seekable'); # This is a list of characters that can be used in random filenames my @CHARS = (qw/ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 _ /); # Maximum number of tries to make a temp file before failing use constant MAX_TRIES => 1000; # Minimum number of X characters that should be in a template use constant MINX => 4; # Default template when no template supplied use constant TEMPXXX => 'X' x 10; # Constants for the security level use constant STANDARD => 0; use constant MEDIUM => 1; use constant HIGH => 2; # OPENFLAGS. If we defined the flag to use with Sysopen here this gives # us an optimisation when many temporary files are requested my $OPENFLAGS = O_CREAT | O_EXCL | O_RDWR; my $LOCKFLAG; unless ($^O eq 'MacOS') { for my $oflag (qw/ NOFOLLOW BINARY LARGEFILE NOINHERIT /) { my ($bit, $func) = (0, "Fcntl::O_" . $oflag); no strict 'refs'; $OPENFLAGS |= $bit if eval { # Make sure that redefined die handlers do not cause problems # e.g. CGI::Carp local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; $bit = &$func(); 1; }; } # Special case O_EXLOCK $LOCKFLAG = eval { local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; &Fcntl::O_EXLOCK(); }; } # On some systems the O_TEMPORARY flag can be used to tell the OS # to automatically remove the file when it is closed. This is fine # in most cases but not if tempfile is called with UNLINK=>0 and # the filename is requested -- in the case where the filename is to # be passed to another routine. This happens on windows. We overcome # this by using a second open flags variable my $OPENTEMPFLAGS = $OPENFLAGS; unless ($^O eq 'MacOS') { for my $oflag (qw/ TEMPORARY /) { my ($bit, $func) = (0, "Fcntl::O_" . $oflag); local($@); no strict 'refs'; $OPENTEMPFLAGS |= $bit if eval { # Make sure that redefined die handlers do not cause problems # e.g. CGI::Carp local $SIG{__DIE__} = sub {}; local $SIG{__WARN__} = sub {}; $bit = &$func(); 1; }; } } # Private hash tracking which files have been created by each process id via the OO interface my %FILES_CREATED_BY_OBJECT; # INTERNAL ROUTINES - not to be used outside of package # Generic routine for getting a temporary filename # modelled on OpenBSD _gettemp() in mktemp.c # The template must contain X's that are to be replaced # with the random values # Arguments: # TEMPLATE - string containing the XXXXX's that is converted # to a random filename and opened if required # Optionally, a hash can also be supplied containing specific options # "open" => if true open the temp file, else just return the name # default is 0 # "mkdir"=> if true, we are creating a temp directory rather than tempfile # default is 0 # "suffixlen" => number of characters at end of PATH to be ignored. # default is 0. # "unlink_on_close" => indicates that, if possible, the OS should remove # the file as soon as it is closed. Usually indicates # use of the O_TEMPORARY flag to sysopen. # Usually irrelevant on unix # "use_exlock" => Indicates that O_EXLOCK should be used. Default is false. # "file_permissions" => file permissions for sysopen(). Default is 0600. # Optionally a reference to a scalar can be passed into the function # On error this will be used to store the reason for the error # "ErrStr" => \$errstr # "open" and "mkdir" can not both be true # "unlink_on_close" is not used when "mkdir" is true. # The default options are equivalent to mktemp(). # Returns: # filehandle - open file handle (if called with doopen=1, else undef) # temp name - name of the temp file or directory # For example: # ($fh, $name) = _gettemp($template, "open" => 1); # for the current version, failures are associated with # stored in an error string and returned to give the reason whilst debugging # This routine is not called by any external function sub _gettemp { croak 'Usage: ($fh, $name) = _gettemp($template, OPTIONS);' unless scalar(@_) >= 1; # the internal error string - expect it to be overridden # Need this in case the caller decides not to supply us a value # need an anonymous scalar my $tempErrStr; # Default options my %options = ( "open" => 0, "mkdir" => 0, "suffixlen" => 0, "unlink_on_close" => 0, "use_exlock" => 0, "ErrStr" => \$tempErrStr, "file_permissions" => undef, ); # Read the template my $template = shift; if (ref($template)) { # Use a warning here since we have not yet merged ErrStr carp "File::Temp::_gettemp: template must not be a reference"; return (); } # Check that the number of entries on stack are even if (scalar(@_) % 2 != 0) { # Use a warning here since we have not yet merged ErrStr carp "File::Temp::_gettemp: Must have even number of options"; return (); } # Read the options and merge with defaults %options = (%options, @_) if @_; # Make sure the error string is set to undef ${$options{ErrStr}} = undef; # Can not open the file and make a directory in a single call if ($options{"open"} && $options{"mkdir"}) { ${$options{ErrStr}} = "doopen and domkdir can not both be true\n"; return (); } # Find the start of the end of the Xs (position of last X) # Substr starts from 0 my $start = length($template) - 1 - $options{"suffixlen"}; # Check that we have at least MINX x X (e.g. 'XXXX") at the end of the string # (taking suffixlen into account). Any fewer is insecure. # Do it using substr - no reason to use a pattern match since # we know where we are looking and what we are looking for if (substr($template, $start - MINX + 1, MINX) ne 'X' x MINX) { ${$options{ErrStr}} = "The template must end with at least ". MINX . " 'X' characters\n"; return (); } # Replace all the X at the end of the substring with a # random character or just all the XX at the end of a full string. # Do it as an if, since the suffix adjusts which section to replace # and suffixlen=0 returns nothing if used in the substr directly # and generate a full path from the template my $path = _replace_XX($template, $options{"suffixlen"}); # Split the path into constituent parts - eventually we need to check # whether the directory exists # We need to know whether we are making a temp directory # or a tempfile my ($volume, $directories, $file); my $parent; # parent directory if ($options{"mkdir"}) { # There is no filename at the end ($volume, $directories, $file) = File::Spec->splitpath( $path, 1); # The parent is then $directories without the last directory # Split the directory and put it back together again my @dirs = File::Spec->splitdir($directories); # If @dirs only has one entry (i.e. the directory template) that means # we are in the current directory if ($#dirs == 0) { $parent = File::Spec->curdir; } else { if ($^O eq 'VMS') { # need volume to avoid relative dir spec $parent = File::Spec->catdir($volume, @dirs[0..$#dirs-1]); $parent = 'sys$disk:[]' if $parent eq ''; } else { # Put it back together without the last one $parent = File::Spec->catdir(@dirs[0..$#dirs-1]); # ...and attach the volume (no filename) $parent = File::Spec->catpath($volume, $parent, ''); } } } else { # Get rid of the last filename (use File::Basename for this?) ($volume, $directories, $file) = File::Spec->splitpath( $path ); # Join up without the file part $parent = File::Spec->catpath($volume,$directories,''); # If $parent is empty replace with curdir $parent = File::Spec->curdir unless $directories ne ''; } # Check that the parent directories exist # Do this even for the case where we are simply returning a name # not a file -- no point returning a name that includes a directory # that does not exist or is not writable unless (-e $parent) { ${$options{ErrStr}} = "Parent directory ($parent) does not exist"; return (); } unless (-d $parent) { ${$options{ErrStr}} = "Parent directory ($parent) is not a directory"; return (); } # Check the stickiness of the directory and chown giveaway if required # If the directory is world writable the sticky bit # must be set if (File::Temp->safe_level == MEDIUM) { my $safeerr; unless (_is_safe($parent,\$safeerr)) { ${$options{ErrStr}} = "Parent directory ($parent) is not safe ($safeerr)"; return (); } } elsif (File::Temp->safe_level == HIGH) { my $safeerr; unless (_is_verysafe($parent, \$safeerr)) { ${$options{ErrStr}} = "Parent directory ($parent) is not safe ($safeerr)"; return (); } } my $perms = $options{file_permissions}; my $has_perms = defined $perms; $perms = 0600 unless $has_perms; # Now try MAX_TRIES time to open the file for (my $i = 0; $i < MAX_TRIES; $i++) { # Try to open the file if requested if ($options{"open"}) { my $fh; # If we are running before perl5.6.0 we can not auto-vivify if ($] < 5.006) { $fh = &Symbol::gensym; } # Try to make sure this will be marked close-on-exec # XXX: Win32 doesn't respect this, nor the proper fcntl, # but may have O_NOINHERIT. This may or may not be in Fcntl. local $^F = 2; # Attempt to open the file my $open_success = undef; if ( $^O eq 'VMS' and $options{"unlink_on_close"} && !$KEEP_ALL) { # make it auto delete on close by setting FAB$V_DLT bit $fh = VMS::Stdio::vmssysopen($path, $OPENFLAGS, $perms, 'fop=dlt'); $open_success = $fh; } else { my $flags = ( ($options{"unlink_on_close"} && !$KEEP_ALL) ? $OPENTEMPFLAGS : $OPENFLAGS ); $flags |= $LOCKFLAG if (defined $LOCKFLAG && $options{use_exlock}); $open_success = sysopen($fh, $path, $flags, $perms); } if ( $open_success ) { # in case of odd umask force rw chmod($perms, $path) unless $has_perms; # Opened successfully - return file handle and name return ($fh, $path); } else { # Error opening file - abort with error # if the reason was anything but EEXIST unless ($!{EEXIST}) { ${$options{ErrStr}} = "Could not create temp file $path: $!"; return (); } # Loop round for another try } } elsif ($options{"mkdir"}) { # Open the temp directory if (mkdir( $path, 0700)) { # in case of odd umask chmod(0700, $path); return undef, $path; } else { # Abort with error if the reason for failure was anything # except EEXIST unless ($!{EEXIST}) { ${$options{ErrStr}} = "Could not create directory $path: $!"; return (); } # Loop round for another try } } else { # Return true if the file can not be found # Directory has been checked previously return (undef, $path) unless -e $path; # Try again until MAX_TRIES } # Did not successfully open the tempfile/dir # so try again with a different set of random letters # No point in trying to increment unless we have only # 1 X say and the randomness could come up with the same # file MAX_TRIES in a row. # Store current attempt - in principle this implies that the # 3rd time around the open attempt that the first temp file # name could be generated again. Probably should store each # attempt and make sure that none are repeated my $original = $path; my $counter = 0; # Stop infinite loop my $MAX_GUESS = 50; do { # Generate new name from original template $path = _replace_XX($template, $options{"suffixlen"}); $counter++; } until ($path ne $original || $counter > $MAX_GUESS); # Check for out of control looping if ($counter > $MAX_GUESS) { ${$options{ErrStr}} = "Tried to get a new temp name different to the previous value $MAX_GUESS times.\nSomething wrong with template?? ($template)"; return (); } } # If we get here, we have run out of tries ${ $options{ErrStr} } = "Have exceeded the maximum number of attempts (" . MAX_TRIES . ") to open temp file/dir"; return (); } # Internal routine to replace the XXXX... with random characters # This has to be done by _gettemp() every time it fails to # open a temp file/dir # Arguments: $template (the template with XXX), # $ignore (number of characters at end to ignore) # Returns: modified template sub _replace_XX { croak 'Usage: _replace_XX($template, $ignore)' unless scalar(@_) == 2; my ($path, $ignore) = @_; # Do it as an if, since the suffix adjusts which section to replace # and suffixlen=0 returns nothing if used in the substr directly # Alternatively, could simply set $ignore to length($path)-1 # Don't want to always use substr when not required though. my $end = ( $] >= 5.006 ? "\\z" : "\\Z" ); if ($ignore) { substr($path, 0, - $ignore) =~ s/X(?=X*$end)/$CHARS[ int( rand( @CHARS ) ) ]/ge; } else { $path =~ s/X(?=X*$end)/$CHARS[ int( rand( @CHARS ) ) ]/ge; } return $path; } # Internal routine to force a temp file to be writable after # it is created so that we can unlink it. Windows seems to occasionally # force a file to be readonly when written to certain temp locations sub _force_writable { my $file = shift; chmod 0600, $file; } # internal routine to check to see if the directory is safe # First checks to see if the directory is not owned by the # current user or root. Then checks to see if anyone else # can write to the directory and if so, checks to see if # it has the sticky bit set # Will not work on systems that do not support sticky bit #Args: directory path to check # Optionally: reference to scalar to contain error message # Returns true if the path is safe and false otherwise. # Returns undef if can not even run stat() on the path # This routine based on version written by Tom Christiansen # Presumably, by the time we actually attempt to create the # file or directory in this directory, it may not be safe # anymore... Have to run _is_safe directly after the open. sub _is_safe { my $path = shift; my $err_ref = shift; # Stat path my @info = stat($path); unless (scalar(@info)) { $$err_ref = "stat(path) returned no values"; return 0; } ; return 1 if $^O eq 'VMS'; # owner delete control at file level # Check to see whether owner is neither superuser (or a system uid) nor me # Use the effective uid from the $> variable # UID is in [4] if ($info[4] > File::Temp->top_system_uid() && $info[4] != $>) { Carp::cluck(sprintf "uid=$info[4] topuid=%s euid=$> path='$path'", File::Temp->top_system_uid()); $$err_ref = "Directory owned neither by root nor the current user" if ref($err_ref); return 0; } # check whether group or other can write file # use 066 to detect either reading or writing # use 022 to check writability # Do it with S_IWOTH and S_IWGRP for portability (maybe) # mode is in info[2] if (($info[2] & &Fcntl::S_IWGRP) || # Is group writable? ($info[2] & &Fcntl::S_IWOTH) ) { # Is world writable? # Must be a directory unless (-d $path) { $$err_ref = "Path ($path) is not a directory" if ref($err_ref); return 0; } # Must have sticky bit set unless (-k $path) { $$err_ref = "Sticky bit not set on $path when dir is group|world writable" if ref($err_ref); return 0; } } return 1; } # Internal routine to check whether a directory is safe # for temp files. Safer than _is_safe since it checks for # the possibility of chown giveaway and if that is a possibility # checks each directory in the path to see if it is safe (with _is_safe) # If _PC_CHOWN_RESTRICTED is not set, does the full test of each # directory anyway. # Takes optional second arg as scalar ref to error reason sub _is_verysafe { # Need POSIX - but only want to bother if really necessary due to overhead require POSIX; my $path = shift; print "_is_verysafe testing $path\n" if $DEBUG; return 1 if $^O eq 'VMS'; # owner delete control at file level my $err_ref = shift; # Should Get the value of _PC_CHOWN_RESTRICTED if it is defined # and If it is not there do the extensive test local($@); my $chown_restricted; $chown_restricted = &POSIX::_PC_CHOWN_RESTRICTED() if eval { &POSIX::_PC_CHOWN_RESTRICTED(); 1}; # If chown_resticted is set to some value we should test it if (defined $chown_restricted) { # Return if the current directory is safe return _is_safe($path,$err_ref) if POSIX::sysconf( $chown_restricted ); } # To reach this point either, the _PC_CHOWN_RESTRICTED symbol # was not available or the symbol was there but chown giveaway # is allowed. Either way, we now have to test the entire tree for # safety. # Convert path to an absolute directory if required unless (File::Spec->file_name_is_absolute($path)) { $path = File::Spec->rel2abs($path); } # Split directory into components - assume no file my ($volume, $directories, undef) = File::Spec->splitpath( $path, 1); # Slightly less efficient than having a function in File::Spec # to chop off the end of a directory or even a function that # can handle ../ in a directory tree # Sometimes splitdir() returns a blank at the end # so we will probably check the bottom directory twice in some cases my @dirs = File::Spec->splitdir($directories); # Concatenate one less directory each time around foreach my $pos (0.. $#dirs) { # Get a directory name my $dir = File::Spec->catpath($volume, File::Spec->catdir(@dirs[0.. $#dirs - $pos]), '' ); print "TESTING DIR $dir\n" if $DEBUG; # Check the directory return 0 unless _is_safe($dir,$err_ref); } return 1; } # internal routine to determine whether unlink works on this # platform for files that are currently open. # Returns true if we can, false otherwise. # Currently WinNT, OS/2 and VMS can not unlink an opened file # On VMS this is because the O_EXCL flag is used to open the # temporary file. Currently I do not know enough about the issues # on VMS to decide whether O_EXCL is a requirement. sub _can_unlink_opened_file { if (grep $^O eq $_, qw/MSWin32 os2 VMS dos MacOS haiku/) { return 0; } else { return 1; } } # internal routine to decide which security levels are allowed # see safe_level() for more information on this # Controls whether the supplied security level is allowed # $cando = _can_do_level( $level ) sub _can_do_level { # Get security level my $level = shift; # Always have to be able to do STANDARD return 1 if $level == STANDARD; # Currently, the systems that can do HIGH or MEDIUM are identical if ( $^O eq 'MSWin32' || $^O eq 'os2' || $^O eq 'cygwin' || $^O eq 'dos' || $^O eq 'MacOS' || $^O eq 'mpeix') { return 0; } else { return 1; } } # This routine sets up a deferred unlinking of a specified # filename and filehandle. It is used in the following cases: # - Called by unlink0 if an opened file can not be unlinked # - Called by tempfile() if files are to be removed on shutdown # - Called by tempdir() if directories are to be removed on shutdown # Arguments: # _deferred_unlink( $fh, $fname, $isdir ); # # - filehandle (so that it can be explicitly closed if open # - filename (the thing we want to remove) # - isdir (flag to indicate that we are being given a directory) # [and hence no filehandle] # Status is not referred to since all the magic is done with an END block { # Will set up two lexical variables to contain all the files to be # removed. One array for files, another for directories They will # only exist in this block. # This means we only have to set up a single END block to remove # all files. # in order to prevent child processes inadvertently deleting the parent # temp files we use a hash to store the temp files and directories # created by a particular process id. # %files_to_unlink contains values that are references to an array of # array references containing the filehandle and filename associated with # the temp file. my (%files_to_unlink, %dirs_to_unlink); # Set up an end block to use these arrays END { local($., $@, $!, $^E, $?); cleanup(at_exit => 1); } # Cleanup function. Always triggered on END (with at_exit => 1) but # can be invoked manually. sub cleanup { my %h = @_; my $at_exit = delete $h{at_exit}; $at_exit = 0 if not defined $at_exit; { my @k = sort keys %h; die "unrecognized parameters: @k" if @k } if (!$KEEP_ALL) { # Files my @files = (exists $files_to_unlink{$$} ? @{ $files_to_unlink{$$} } : () ); foreach my $file (@files) { # close the filehandle without checking its state # in order to make real sure that this is closed # if its already closed then I don't care about the answer # probably a better way to do this close($file->[0]); # file handle is [0] if (-f $file->[1]) { # file name is [1] _force_writable( $file->[1] ); # for windows unlink $file->[1] or warn "Error removing ".$file->[1]; } } # Dirs my @dirs = (exists $dirs_to_unlink{$$} ? @{ $dirs_to_unlink{$$} } : () ); my ($cwd, $cwd_to_remove); foreach my $dir (@dirs) { if (-d $dir) { # Some versions of rmtree will abort if you attempt to remove # the directory you are sitting in. For automatic cleanup # at program exit, we avoid this by chdir()ing out of the way # first. If not at program exit, it's best not to mess with the # current directory, so just let it fail with a warning. if ($at_exit) { $cwd = Cwd::abs_path(File::Spec->curdir) if not defined $cwd; my $abs = Cwd::abs_path($dir); if ($abs eq $cwd) { $cwd_to_remove = $dir; next; } } eval { rmtree($dir, $DEBUG, 0); }; warn $@ if ($@ && $^W); } } if (defined $cwd_to_remove) { # We do need to clean up the current directory, and everything # else is done, so get out of there and remove it. chdir $cwd_to_remove or die "cannot chdir to $cwd_to_remove: $!"; my $updir = File::Spec->updir; chdir $updir or die "cannot chdir to $updir: $!"; eval { rmtree($cwd_to_remove, $DEBUG, 0); }; warn $@ if ($@ && $^W); } # clear the arrays @{ $files_to_unlink{$$} } = () if exists $files_to_unlink{$$}; @{ $dirs_to_unlink{$$} } = () if exists $dirs_to_unlink{$$}; } } # This is the sub called to register a file for deferred unlinking # This could simply store the input parameters and defer everything # until the END block. For now we do a bit of checking at this # point in order to make sure that (1) we have a file/dir to delete # and (2) we have been called with the correct arguments. sub _deferred_unlink { croak 'Usage: _deferred_unlink($fh, $fname, $isdir)' unless scalar(@_) == 3; my ($fh, $fname, $isdir) = @_; warn "Setting up deferred removal of $fname\n" if $DEBUG; # make sure we save the absolute path for later cleanup # OK to untaint because we only ever use this internally # as a file path, never interpolating into the shell $fname = Cwd::abs_path($fname); ($fname) = $fname =~ /^(.*)$/; # If we have a directory, check that it is a directory if ($isdir) { if (-d $fname) { # Directory exists so store it # first on VMS turn []foo into [.foo] for rmtree $fname = VMS::Filespec::vmspath($fname) if $^O eq 'VMS'; $dirs_to_unlink{$$} = [] unless exists $dirs_to_unlink{$$}; push (@{ $dirs_to_unlink{$$} }, $fname); } else { carp "Request to remove directory $fname could not be completed since it does not exist!\n" if $^W; } } else { if (-f $fname) { # file exists so store handle and name for later removal $files_to_unlink{$$} = [] unless exists $files_to_unlink{$$}; push(@{ $files_to_unlink{$$} }, [$fh, $fname]); } else { carp "Request to remove file $fname could not be completed since it is not there!\n" if $^W; } } } } # normalize argument keys to upper case and do consistent handling # of leading template vs TEMPLATE sub _parse_args { my $leading_template = (scalar(@_) % 2 == 1 ? shift(@_) : '' ); my %args = @_; %args = map +(uc($_) => $args{$_}), keys %args; # template (store it in an array so that it will # disappear from the arg list of tempfile) my @template = ( exists $args{TEMPLATE} ? $args{TEMPLATE} : $leading_template ? $leading_template : () ); delete $args{TEMPLATE}; return( \@template, \%args ); } #pod =head1 OBJECT-ORIENTED INTERFACE #pod #pod This is the primary interface for interacting with #pod C. Using the OO interface a temporary file can be created #pod when the object is constructed and the file can be removed when the #pod object is no longer required. #pod #pod Note that there is no method to obtain the filehandle from the #pod C object. The object itself acts as a filehandle. The object #pod isa C and isa C so all those methods are #pod available. #pod #pod Also, the object is configured such that it stringifies to the name of the #pod temporary file and so can be compared to a filename directly. It numifies #pod to the C the same as other handles and so can be compared to other #pod handles with C<==>. #pod #pod $fh eq $filename # as a string #pod $fh != \*STDOUT # as a number #pod #pod Available since 0.14. #pod #pod =over 4 #pod #pod =item B #pod #pod Create a temporary file object. #pod #pod my $tmp = File::Temp->new(); #pod #pod by default the object is constructed as if C #pod was called without options, but with the additional behaviour #pod that the temporary file is removed by the object destructor #pod if UNLINK is set to true (the default). #pod #pod Supported arguments are the same as for C: UNLINK #pod (defaulting to true), DIR, EXLOCK, PERMS and SUFFIX. #pod Additionally, the filename #pod template is specified using the TEMPLATE option. The OPEN option #pod is not supported (the file is always opened). #pod #pod $tmp = File::Temp->new( TEMPLATE => 'tempXXXXX', #pod DIR => 'mydir', #pod SUFFIX => '.dat'); #pod #pod Arguments are case insensitive. #pod #pod Can call croak() if an error occurs. #pod #pod Available since 0.14. #pod #pod TEMPLATE available since 0.23 #pod #pod =cut sub new { my $proto = shift; my $class = ref($proto) || $proto; my ($maybe_template, $args) = _parse_args(@_); # see if they are unlinking (defaulting to yes) my $unlink = (exists $args->{UNLINK} ? $args->{UNLINK} : 1 ); delete $args->{UNLINK}; # Protect OPEN delete $args->{OPEN}; # Open the file and retain file handle and file name my ($fh, $path) = tempfile( @$maybe_template, %$args ); print "Tmp: $fh - $path\n" if $DEBUG; # Store the filename in the scalar slot ${*$fh} = $path; # Cache the filename by pid so that the destructor can decide whether to remove it $FILES_CREATED_BY_OBJECT{$$}{$path} = 1; # Store unlink information in hash slot (plus other constructor info) %{*$fh} = %$args; # create the object bless $fh, $class; # final method-based configuration $fh->unlink_on_destroy( $unlink ); return $fh; } #pod =item B #pod #pod Create a temporary directory using an object oriented interface. #pod #pod $dir = File::Temp->newdir(); #pod #pod By default the directory is deleted when the object goes out of scope. #pod #pod Supports the same options as the C function. Note that directories #pod created with this method default to CLEANUP => 1. #pod #pod $dir = File::Temp->newdir( $template, %options ); #pod #pod A template may be specified either with a leading template or #pod with a TEMPLATE argument. #pod #pod Available since 0.19. #pod #pod TEMPLATE available since 0.23. #pod #pod =cut sub newdir { my $self = shift; my ($maybe_template, $args) = _parse_args(@_); # handle CLEANUP without passing CLEANUP to tempdir my $cleanup = (exists $args->{CLEANUP} ? $args->{CLEANUP} : 1 ); delete $args->{CLEANUP}; my $tempdir = tempdir( @$maybe_template, %$args); # get a safe absolute path for cleanup, just like # happens in _deferred_unlink my $real_dir = Cwd::abs_path( $tempdir ); ($real_dir) = $real_dir =~ /^(.*)$/; return bless { DIRNAME => $tempdir, REALNAME => $real_dir, CLEANUP => $cleanup, LAUNCHPID => $$, }, "File::Temp::Dir"; } #pod =item B #pod #pod Return the name of the temporary file associated with this object #pod (if the object was created using the "new" constructor). #pod #pod $filename = $tmp->filename; #pod #pod This method is called automatically when the object is used as #pod a string. #pod #pod Current API available since 0.14 #pod #pod =cut sub filename { my $self = shift; return ${*$self}; } sub STRINGIFY { my $self = shift; return $self->filename; } # For reference, can't use '0+'=>\&Scalar::Util::refaddr directly because # refaddr() demands one parameter only, whereas overload.pm calls with three # even for unary operations like '0+'. sub NUMIFY { return refaddr($_[0]); } #pod =item B #pod #pod Return the name of the temporary directory associated with this #pod object (if the object was created using the "newdir" constructor). #pod #pod $dirname = $tmpdir->dirname; #pod #pod This method is called automatically when the object is used in string context. #pod #pod =item B #pod #pod Control whether the file is unlinked when the object goes out of scope. #pod The file is removed if this value is true and $KEEP_ALL is not. #pod #pod $fh->unlink_on_destroy( 1 ); #pod #pod Default is for the file to be removed. #pod #pod Current API available since 0.15 #pod #pod =cut sub unlink_on_destroy { my $self = shift; if (@_) { ${*$self}{UNLINK} = shift; } return ${*$self}{UNLINK}; } #pod =item B #pod #pod When the object goes out of scope, the destructor is called. This #pod destructor will attempt to unlink the file (using L) #pod if the constructor was called with UNLINK set to 1 (the default state #pod if UNLINK is not specified). #pod #pod No error is given if the unlink fails. #pod #pod If the object has been passed to a child process during a fork, the #pod file will be deleted when the object goes out of scope in the parent. #pod #pod For a temporary directory object the directory will be removed unless #pod the CLEANUP argument was used in the constructor (and set to false) or #pod C was modified after creation. Note that if a temp #pod directory is your current directory, it cannot be removed - a warning #pod will be given in this case. C out of the directory before #pod letting the object go out of scope. #pod #pod If the global variable $KEEP_ALL is true, the file or directory #pod will not be removed. #pod #pod =cut sub DESTROY { local($., $@, $!, $^E, $?); my $self = shift; # Make sure we always remove the file from the global hash # on destruction. This prevents the hash from growing uncontrollably # and post-destruction there is no reason to know about the file. my $file = $self->filename; my $was_created_by_proc; if (exists $FILES_CREATED_BY_OBJECT{$$}{$file}) { $was_created_by_proc = 1; delete $FILES_CREATED_BY_OBJECT{$$}{$file}; } if (${*$self}{UNLINK} && !$KEEP_ALL) { print "# ---------> Unlinking $self\n" if $DEBUG; # only delete if this process created it return unless $was_created_by_proc; # The unlink1 may fail if the file has been closed # by the caller. This leaves us with the decision # of whether to refuse to remove the file or simply # do an unlink without test. Seems to be silly # to do this when we are trying to be careful # about security _force_writable( $file ); # for windows unlink1( $self, $file ) or unlink($file); } } #pod =back #pod #pod =head1 FUNCTIONS #pod #pod This section describes the recommended interface for generating #pod temporary files and directories. #pod #pod =over 4 #pod #pod =item B #pod #pod This is the basic function to generate temporary files. #pod The behaviour of the file can be changed using various options: #pod #pod $fh = tempfile(); #pod ($fh, $filename) = tempfile(); #pod #pod Create a temporary file in the directory specified for temporary #pod files, as specified by the tmpdir() function in L. #pod #pod ($fh, $filename) = tempfile($template); #pod #pod Create a temporary file in the current directory using the supplied #pod template. Trailing `X' characters are replaced with random letters to #pod generate the filename. At least four `X' characters must be present #pod at the end of the template. #pod #pod ($fh, $filename) = tempfile($template, SUFFIX => $suffix) #pod #pod Same as previously, except that a suffix is added to the template #pod after the `X' translation. Useful for ensuring that a temporary #pod filename has a particular extension when needed by other applications. #pod But see the WARNING at the end. #pod #pod ($fh, $filename) = tempfile($template, DIR => $dir); #pod #pod Translates the template as before except that a directory name #pod is specified. #pod #pod ($fh, $filename) = tempfile($template, TMPDIR => 1); #pod #pod Equivalent to specifying a DIR of "File::Spec->tmpdir", writing the file #pod into the same temporary directory as would be used if no template was #pod specified at all. #pod #pod ($fh, $filename) = tempfile($template, UNLINK => 1); #pod #pod Return the filename and filehandle as before except that the file is #pod automatically removed when the program exits (dependent on #pod $KEEP_ALL). Default is for the file to be removed if a file handle is #pod requested and to be kept if the filename is requested. In a scalar #pod context (where no filename is returned) the file is always deleted #pod either (depending on the operating system) on exit or when it is #pod closed (unless $KEEP_ALL is true when the temp file is created). #pod #pod Use the object-oriented interface if fine-grained control of when #pod a file is removed is required. #pod #pod If the template is not specified, a template is always #pod automatically generated. This temporary file is placed in tmpdir() #pod (L) unless a directory is specified explicitly with the #pod DIR option. #pod #pod $fh = tempfile( DIR => $dir ); #pod #pod If called in scalar context, only the filehandle is returned and the #pod file will automatically be deleted when closed on operating systems #pod that support this (see the description of tmpfile() elsewhere in this #pod document). This is the preferred mode of operation, as if you only #pod have a filehandle, you can never create a race condition by fumbling #pod with the filename. On systems that can not unlink an open file or can #pod not mark a file as temporary when it is opened (for example, Windows #pod NT uses the C flag) the file is marked for deletion when #pod the program ends (equivalent to setting UNLINK to 1). The C #pod flag is ignored if present. #pod #pod (undef, $filename) = tempfile($template, OPEN => 0); #pod #pod This will return the filename based on the template but #pod will not open this file. Cannot be used in conjunction with #pod UNLINK set to true. Default is to always open the file #pod to protect from possible race conditions. A warning is issued #pod if warnings are turned on. Consider using the tmpnam() #pod and mktemp() functions described elsewhere in this document #pod if opening the file is not required. #pod #pod To open the temporary filehandle with O_EXLOCK (open with exclusive #pod file lock) use C<< EXLOCK=>1 >>. This is supported only by some #pod operating systems (most notably BSD derived systems). By default #pod EXLOCK will be false. Former C versions set EXLOCK to #pod true, so to be sure to get an unlocked filehandle also with older #pod versions, explicitly set C<< EXLOCK=>0 >>. #pod #pod ($fh, $filename) = tempfile($template, EXLOCK => 1); #pod #pod By default, the temp file is created with 0600 file permissions. #pod Use C to change this: #pod #pod ($fh, $filename) = tempfile($template, PERMS => 0666); #pod #pod Options can be combined as required. #pod #pod Will croak() if there is an error. #pod #pod Available since 0.05. #pod #pod UNLINK flag available since 0.10. #pod #pod TMPDIR flag available since 0.19. #pod #pod EXLOCK flag available since 0.19. #pod #pod PERMS flag available since 0.2310. #pod #pod =cut sub tempfile { if ( @_ && $_[0] eq 'File::Temp' ) { croak "'tempfile' can't be called as a method"; } # Can not check for argument count since we can have any # number of args # Default options my %options = ( "DIR" => undef, # Directory prefix "SUFFIX" => '', # Template suffix "UNLINK" => 0, # Do not unlink file on exit "OPEN" => 1, # Open file "TMPDIR" => 0, # Place tempfile in tempdir if template specified "EXLOCK" => 0, # Open file with O_EXLOCK "PERMS" => undef, # File permissions ); # Check to see whether we have an odd or even number of arguments my ($maybe_template, $args) = _parse_args(@_); my $template = @$maybe_template ? $maybe_template->[0] : undef; # Read the options and merge with defaults %options = (%options, %$args); # First decision is whether or not to open the file if (! $options{"OPEN"}) { warn "tempfile(): temporary filename requested but not opened.\nPossibly unsafe, consider using tempfile() with OPEN set to true\n" if $^W; } if ($options{"DIR"} and $^O eq 'VMS') { # on VMS turn []foo into [.foo] for concatenation $options{"DIR"} = VMS::Filespec::vmspath($options{"DIR"}); } # Construct the template # Have a choice of trying to work around the mkstemp/mktemp/tmpnam etc # functions or simply constructing a template and using _gettemp() # explicitly. Go for the latter # First generate a template if not defined and prefix the directory # If no template must prefix the temp directory if (defined $template) { # End up with current directory if neither DIR not TMPDIR are set if ($options{"DIR"}) { $template = File::Spec->catfile($options{"DIR"}, $template); } elsif ($options{TMPDIR}) { $template = File::Spec->catfile(_wrap_file_spec_tmpdir(), $template ); } } else { if ($options{"DIR"}) { $template = File::Spec->catfile($options{"DIR"}, TEMPXXX); } else { $template = File::Spec->catfile(_wrap_file_spec_tmpdir(), TEMPXXX); } } # Now add a suffix $template .= $options{"SUFFIX"}; # Determine whether we should tell _gettemp to unlink the file # On unix this is irrelevant and can be worked out after the file is # opened (simply by unlinking the open filehandle). On Windows or VMS # we have to indicate temporary-ness when we open the file. In general # we only want a true temporary file if we are returning just the # filehandle - if the user wants the filename they probably do not # want the file to disappear as soon as they close it (which may be # important if they want a child process to use the file) # For this reason, tie unlink_on_close to the return context regardless # of OS. my $unlink_on_close = ( wantarray ? 0 : 1); # Create the file my ($fh, $path, $errstr); croak "Error in tempfile() using template $template: $errstr" unless (($fh, $path) = _gettemp($template, "open" => $options{OPEN}, "mkdir" => 0, "unlink_on_close" => $unlink_on_close, "suffixlen" => length($options{SUFFIX}), "ErrStr" => \$errstr, "use_exlock" => $options{EXLOCK}, "file_permissions" => $options{PERMS}, ) ); # Set up an exit handler that can do whatever is right for the # system. This removes files at exit when requested explicitly or when # system is asked to unlink_on_close but is unable to do so because # of OS limitations. # The latter should be achieved by using a tied filehandle. # Do not check return status since this is all done with END blocks. _deferred_unlink($fh, $path, 0) if $options{"UNLINK"}; # Return if (wantarray()) { if ($options{'OPEN'}) { return ($fh, $path); } else { return (undef, $path); } } else { # Unlink the file. It is up to unlink0 to decide what to do with # this (whether to unlink now or to defer until later) unlink0($fh, $path) or croak "Error unlinking file $path using unlink0"; # Return just the filehandle. return $fh; } } # On Windows under taint mode, File::Spec could suggest "C:\" as a tempdir # which might not be writable. If that is the case, we fallback to a # user directory. See https://rt.cpan.org/Ticket/Display.html?id=60340 { my ($alt_tmpdir, $checked); sub _wrap_file_spec_tmpdir { return File::Spec->tmpdir unless $^O eq "MSWin32" && ${^TAINT}; if ( $checked ) { return $alt_tmpdir ? $alt_tmpdir : File::Spec->tmpdir; } # probe what File::Spec gives and find a fallback my $xxpath = _replace_XX( "X" x 10, 0 ); # First, see if File::Spec->tmpdir is writable my $tmpdir = File::Spec->tmpdir; my $testpath = File::Spec->catdir( $tmpdir, $xxpath ); if (mkdir( $testpath, 0700) ) { $checked = 1; rmdir $testpath; return $tmpdir; } # Next, see if CSIDL_LOCAL_APPDATA is writable require Win32; my $local_app = File::Spec->catdir( Win32::GetFolderPath( Win32::CSIDL_LOCAL_APPDATA() ), 'Temp' ); $testpath = File::Spec->catdir( $local_app, $xxpath ); if ( -e $local_app or mkdir( $local_app, 0700 ) ) { if (mkdir( $testpath, 0700) ) { $checked = 1; rmdir $testpath; return $alt_tmpdir = $local_app; } } # Can't find something writable croak << "HERE"; Couldn't find a writable temp directory in taint mode. Tried: $tmpdir $local_app Try setting and untainting the TMPDIR environment variable. HERE } } #pod =item B #pod #pod This is the recommended interface for creation of temporary #pod directories. By default the directory will not be removed on exit #pod (that is, it won't be temporary; this behaviour can not be changed #pod because of issues with backwards compatibility). To enable removal #pod either use the CLEANUP option which will trigger removal on program #pod exit, or consider using the "newdir" method in the object interface which #pod will allow the directory to be cleaned up when the object goes out of #pod scope. #pod #pod The behaviour of the function depends on the arguments: #pod #pod $tempdir = tempdir(); #pod #pod Create a directory in tmpdir() (see L). #pod #pod $tempdir = tempdir( $template ); #pod #pod Create a directory from the supplied template. This template is #pod similar to that described for tempfile(). `X' characters at the end #pod of the template are replaced with random letters to construct the #pod directory name. At least four `X' characters must be in the template. #pod #pod $tempdir = tempdir ( DIR => $dir ); #pod #pod Specifies the directory to use for the temporary directory. #pod The temporary directory name is derived from an internal template. #pod #pod $tempdir = tempdir ( $template, DIR => $dir ); #pod #pod Prepend the supplied directory name to the template. The template #pod should not include parent directory specifications itself. Any parent #pod directory specifications are removed from the template before #pod prepending the supplied directory. #pod #pod $tempdir = tempdir ( $template, TMPDIR => 1 ); #pod #pod Using the supplied template, create the temporary directory in #pod a standard location for temporary files. Equivalent to doing #pod #pod $tempdir = tempdir ( $template, DIR => File::Spec->tmpdir); #pod #pod but shorter. Parent directory specifications are stripped from the #pod template itself. The C option is ignored if C

is set #pod explicitly. Additionally, C is implied if neither a template #pod nor a directory are supplied. #pod #pod $tempdir = tempdir( $template, CLEANUP => 1); #pod #pod Create a temporary directory using the supplied template, but #pod attempt to remove it (and all files inside it) when the program #pod exits. Note that an attempt will be made to remove all files from #pod the directory even if they were not created by this module (otherwise #pod why ask to clean it up?). The directory removal is made with #pod the rmtree() function from the L module. #pod Of course, if the template is not specified, the temporary directory #pod will be created in tmpdir() and will also be removed at program exit. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut # ' sub tempdir { if ( @_ && $_[0] eq 'File::Temp' ) { croak "'tempdir' can't be called as a method"; } # Can not check for argument count since we can have any # number of args # Default options my %options = ( "CLEANUP" => 0, # Remove directory on exit "DIR" => '', # Root directory "TMPDIR" => 0, # Use tempdir with template ); # Check to see whether we have an odd or even number of arguments my ($maybe_template, $args) = _parse_args(@_); my $template = @$maybe_template ? $maybe_template->[0] : undef; # Read the options and merge with defaults %options = (%options, %$args); # Modify or generate the template # Deal with the DIR and TMPDIR options if (defined $template) { # Need to strip directory path if using DIR or TMPDIR if ($options{'TMPDIR'} || $options{'DIR'}) { # Strip parent directory from the filename # # There is no filename at the end $template = VMS::Filespec::vmspath($template) if $^O eq 'VMS'; my ($volume, $directories, undef) = File::Spec->splitpath( $template, 1); # Last directory is then our template $template = (File::Spec->splitdir($directories))[-1]; # Prepend the supplied directory or temp dir if ($options{"DIR"}) { $template = File::Spec->catdir($options{"DIR"}, $template); } elsif ($options{TMPDIR}) { # Prepend tmpdir $template = File::Spec->catdir(_wrap_file_spec_tmpdir(), $template); } } } else { if ($options{"DIR"}) { $template = File::Spec->catdir($options{"DIR"}, TEMPXXX); } else { $template = File::Spec->catdir(_wrap_file_spec_tmpdir(), TEMPXXX); } } # Create the directory my $tempdir; my $suffixlen = 0; if ($^O eq 'VMS') { # dir names can end in delimiters $template =~ m/([\.\]:>]+)$/; $suffixlen = length($1); } if ( ($^O eq 'MacOS') && (substr($template, -1) eq ':') ) { # dir name has a trailing ':' ++$suffixlen; } my $errstr; croak "Error in tempdir() using $template: $errstr" unless ((undef, $tempdir) = _gettemp($template, "open" => 0, "mkdir"=> 1 , "suffixlen" => $suffixlen, "ErrStr" => \$errstr, ) ); # Install exit handler; must be dynamic to get lexical if ( $options{'CLEANUP'} && -d $tempdir) { _deferred_unlink(undef, $tempdir, 1); } # Return the dir name return $tempdir; } #pod =back #pod #pod =head1 MKTEMP FUNCTIONS #pod #pod The following functions are Perl implementations of the #pod mktemp() family of temp file generation system calls. #pod #pod =over 4 #pod #pod =item B #pod #pod Given a template, returns a filehandle to the temporary file and the name #pod of the file. #pod #pod ($fh, $name) = mkstemp( $template ); #pod #pod In scalar context, just the filehandle is returned. #pod #pod The template may be any filename with some number of X's appended #pod to it, for example F. The trailing X's are replaced #pod with unique alphanumeric combinations. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub mkstemp { croak "Usage: mkstemp(template)" if scalar(@_) != 1; my $template = shift; my ($fh, $path, $errstr); croak "Error in mkstemp using $template: $errstr" unless (($fh, $path) = _gettemp($template, "open" => 1, "mkdir"=> 0 , "suffixlen" => 0, "ErrStr" => \$errstr, ) ); if (wantarray()) { return ($fh, $path); } else { return $fh; } } #pod =item B #pod #pod Similar to mkstemp(), except that an extra argument can be supplied #pod with a suffix to be appended to the template. #pod #pod ($fh, $name) = mkstemps( $template, $suffix ); #pod #pod For example a template of C and suffix of C<.dat> #pod would generate a file similar to F. #pod #pod Returns just the filehandle alone when called in scalar context. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub mkstemps { croak "Usage: mkstemps(template, suffix)" if scalar(@_) != 2; my $template = shift; my $suffix = shift; $template .= $suffix; my ($fh, $path, $errstr); croak "Error in mkstemps using $template: $errstr" unless (($fh, $path) = _gettemp($template, "open" => 1, "mkdir"=> 0 , "suffixlen" => length($suffix), "ErrStr" => \$errstr, ) ); if (wantarray()) { return ($fh, $path); } else { return $fh; } } #pod =item B #pod #pod Create a directory from a template. The template must end in #pod X's that are replaced by the routine. #pod #pod $tmpdir_name = mkdtemp($template); #pod #pod Returns the name of the temporary directory created. #pod #pod Directory must be removed by the caller. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut #' # for emacs sub mkdtemp { croak "Usage: mkdtemp(template)" if scalar(@_) != 1; my $template = shift; my $suffixlen = 0; if ($^O eq 'VMS') { # dir names can end in delimiters $template =~ m/([\.\]:>]+)$/; $suffixlen = length($1); } if ( ($^O eq 'MacOS') && (substr($template, -1) eq ':') ) { # dir name has a trailing ':' ++$suffixlen; } my ($junk, $tmpdir, $errstr); croak "Error creating temp directory from template $template\: $errstr" unless (($junk, $tmpdir) = _gettemp($template, "open" => 0, "mkdir"=> 1 , "suffixlen" => $suffixlen, "ErrStr" => \$errstr, ) ); return $tmpdir; } #pod =item B #pod #pod Returns a valid temporary filename but does not guarantee #pod that the file will not be opened by someone else. #pod #pod $unopened_file = mktemp($template); #pod #pod Template is the same as that required by mkstemp(). #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub mktemp { croak "Usage: mktemp(template)" if scalar(@_) != 1; my $template = shift; my ($tmpname, $junk, $errstr); croak "Error getting name to temp file from template $template: $errstr" unless (($junk, $tmpname) = _gettemp($template, "open" => 0, "mkdir"=> 0 , "suffixlen" => 0, "ErrStr" => \$errstr, ) ); return $tmpname; } #pod =back #pod #pod =head1 POSIX FUNCTIONS #pod #pod This section describes the re-implementation of the tmpnam() #pod and tmpfile() functions described in L #pod using the mkstemp() from this module. #pod #pod Unlike the L implementations, the directory used #pod for the temporary file is not specified in a system include #pod file (C) but simply depends on the choice of tmpdir() #pod returned by L. On some implementations this #pod location can be set using the C environment variable, which #pod may not be secure. #pod If this is a problem, simply use mkstemp() and specify a template. #pod #pod =over 4 #pod #pod =item B #pod #pod When called in scalar context, returns the full name (including path) #pod of a temporary file (uses mktemp()). The only check is that the file does #pod not already exist, but there is no guarantee that that condition will #pod continue to apply. #pod #pod $file = tmpnam(); #pod #pod When called in list context, a filehandle to the open file and #pod a filename are returned. This is achieved by calling mkstemp() #pod after constructing a suitable template. #pod #pod ($fh, $file) = tmpnam(); #pod #pod If possible, this form should be used to prevent possible #pod race conditions. #pod #pod See L for information on the choice of temporary #pod directory for a particular operating system. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub tmpnam { # Retrieve the temporary directory name my $tmpdir = _wrap_file_spec_tmpdir(); # XXX I don't know under what circumstances this occurs, -- xdg 2016-04-02 croak "Error temporary directory is not writable" if $tmpdir eq ''; # Use a ten character template and append to tmpdir my $template = File::Spec->catfile($tmpdir, TEMPXXX); if (wantarray() ) { return mkstemp($template); } else { return mktemp($template); } } #pod =item B #pod #pod Returns the filehandle of a temporary file. #pod #pod $fh = tmpfile(); #pod #pod The file is removed when the filehandle is closed or when the program #pod exits. No access to the filename is provided. #pod #pod If the temporary file can not be created undef is returned. #pod Currently this command will probably not work when the temporary #pod directory is on an NFS file system. #pod #pod Will croak() if there is an error. #pod #pod Available since 0.05. #pod #pod Returning undef if unable to create file added in 0.12. #pod #pod =cut sub tmpfile { # Simply call tmpnam() in a list context my ($fh, $file) = tmpnam(); # Make sure file is removed when filehandle is closed # This will fail on NFS unlink0($fh, $file) or return undef; return $fh; } #pod =back #pod #pod =head1 ADDITIONAL FUNCTIONS #pod #pod These functions are provided for backwards compatibility #pod with common tempfile generation C library functions. #pod #pod They are not exported and must be addressed using the full package #pod name. #pod #pod =over 4 #pod #pod =item B #pod #pod Return the name of a temporary file in the specified directory #pod using a prefix. The file is guaranteed not to exist at the time #pod the function was called, but such guarantees are good for one #pod clock tick only. Always use the proper form of C #pod with C if you must open such a filename. #pod #pod $filename = File::Temp::tempnam( $dir, $prefix ); #pod #pod Equivalent to running mktemp() with $dir/$prefixXXXXXXXX #pod (using unix file convention as an example) #pod #pod Because this function uses mktemp(), it can suffer from race conditions. #pod #pod Will croak() if there is an error. #pod #pod Current API available since 0.05. #pod #pod =cut sub tempnam { croak 'Usage tempnam($dir, $prefix)' unless scalar(@_) == 2; my ($dir, $prefix) = @_; # Add a string to the prefix $prefix .= 'XXXXXXXX'; # Concatenate the directory to the file my $template = File::Spec->catfile($dir, $prefix); return mktemp($template); } #pod =back #pod #pod =head1 UTILITY FUNCTIONS #pod #pod Useful functions for dealing with the filehandle and filename. #pod #pod =over 4 #pod #pod =item B #pod #pod Given an open filehandle and the associated filename, make a safe #pod unlink. This is achieved by first checking that the filename and #pod filehandle initially point to the same file and that the number of #pod links to the file is 1 (all fields returned by stat() are compared). #pod Then the filename is unlinked and the filehandle checked once again to #pod verify that the number of links on that file is now 0. This is the #pod closest you can come to making sure that the filename unlinked was the #pod same as the file whose descriptor you hold. #pod #pod unlink0($fh, $path) #pod or die "Error unlinking file $path safely"; #pod #pod Returns false on error but croaks() if there is a security #pod anomaly. The filehandle is not closed since on some occasions this is #pod not required. #pod #pod On some platforms, for example Windows NT, it is not possible to #pod unlink an open file (the file must be closed first). On those #pod platforms, the actual unlinking is deferred until the program ends and #pod good status is returned. A check is still performed to make sure that #pod the filehandle and filename are pointing to the same thing (but not at #pod the time the end block is executed since the deferred removal may not #pod have access to the filehandle). #pod #pod Additionally, on Windows NT not all the fields returned by stat() can #pod be compared. For example, the C and C fields seem to be #pod different. Also, it seems that the size of the file returned by stat() #pod does not always agree, with C being more accurate than #pod C, presumably because of caching issues even when #pod using autoflush (this is usually overcome by waiting a while after #pod writing to the tempfile before attempting to C it). #pod #pod Finally, on NFS file systems the link count of the file handle does #pod not always go to zero immediately after unlinking. Currently, this #pod command is expected to fail on NFS disks. #pod #pod This function is disabled if the global variable $KEEP_ALL is true #pod and an unlink on open file is supported. If the unlink is to be deferred #pod to the END block, the file is still registered for removal. #pod #pod This function should not be called if you are using the object oriented #pod interface since the it will interfere with the object destructor deleting #pod the file. #pod #pod Available Since 0.05. #pod #pod If can not unlink open file, defer removal until later available since 0.06. #pod #pod =cut sub unlink0 { croak 'Usage: unlink0(filehandle, filename)' unless scalar(@_) == 2; # Read args my ($fh, $path) = @_; cmpstat($fh, $path) or return 0; # attempt remove the file (does not work on some platforms) if (_can_unlink_opened_file()) { # return early (Without unlink) if we have been instructed to retain files. return 1 if $KEEP_ALL; # XXX: do *not* call this on a directory; possible race # resulting in recursive removal croak "unlink0: $path has become a directory!" if -d $path; unlink($path) or return 0; # Stat the filehandle my @fh = stat $fh; print "Link count = $fh[3] \n" if $DEBUG; # Make sure that the link count is zero # - Cygwin provides deferred unlinking, however, # on Win9x the link count remains 1 # On NFS the link count may still be 1 but we can't know that # we are on NFS. Since we can't be sure, we'll defer it return 1 if $fh[3] == 0 || $^O eq 'cygwin'; } # fall-through if we can't unlink now _deferred_unlink($fh, $path, 0); return 1; } #pod =item B #pod #pod Compare C of filehandle with C of provided filename. This #pod can be used to check that the filename and filehandle initially point #pod to the same file and that the number of links to the file is 1 (all #pod fields returned by stat() are compared). #pod #pod cmpstat($fh, $path) #pod or die "Error comparing handle with file"; #pod #pod Returns false if the stat information differs or if the link count is #pod greater than 1. Calls croak if there is a security anomaly. #pod #pod On certain platforms, for example Windows, not all the fields returned by stat() #pod can be compared. For example, the C and C fields seem to be #pod different in Windows. Also, it seems that the size of the file #pod returned by stat() does not always agree, with C being more #pod accurate than C, presumably because of caching issues #pod even when using autoflush (this is usually overcome by waiting a while #pod after writing to the tempfile before attempting to C it). #pod #pod Not exported by default. #pod #pod Current API available since 0.14. #pod #pod =cut sub cmpstat { croak 'Usage: cmpstat(filehandle, filename)' unless scalar(@_) == 2; # Read args my ($fh, $path) = @_; warn "Comparing stat\n" if $DEBUG; # Stat the filehandle - which may be closed if someone has manually # closed the file. Can not turn off warnings without using $^W # unless we upgrade to 5.006 minimum requirement my @fh; { local ($^W) = 0; @fh = stat $fh; } return unless @fh; if ($fh[3] > 1 && $^W) { carp "unlink0: fstat found too many links; SB=@fh" if $^W; } # Stat the path my @path = stat $path; unless (@path) { carp "unlink0: $path is gone already" if $^W; return; } # this is no longer a file, but may be a directory, or worse unless (-f $path) { confess "panic: $path is no longer a file: SB=@fh"; } # Do comparison of each member of the array # On WinNT dev and rdev seem to be different # depending on whether it is a file or a handle. # Cannot simply compare all members of the stat return # Select the ones we can use my @okstat = (0..$#fh); # Use all by default if ($^O eq 'MSWin32') { @okstat = (1,2,3,4,5,7,8,9,10); } elsif ($^O eq 'os2') { @okstat = (0, 2..$#fh); } elsif ($^O eq 'VMS') { # device and file ID are sufficient @okstat = (0, 1); } elsif ($^O eq 'dos') { @okstat = (0,2..7,11..$#fh); } elsif ($^O eq 'mpeix') { @okstat = (0..4,8..10); } # Now compare each entry explicitly by number for (@okstat) { print "Comparing: $_ : $fh[$_] and $path[$_]\n" if $DEBUG; # Use eq rather than == since rdev, blksize, and blocks (6, 11, # and 12) will be '' on platforms that do not support them. This # is fine since we are only comparing integers. unless ($fh[$_] eq $path[$_]) { warn "Did not match $_ element of stat\n" if $DEBUG; return 0; } } return 1; } #pod =item B #pod #pod Similar to C except after file comparison using cmpstat, the #pod filehandle is closed prior to attempting to unlink the file. This #pod allows the file to be removed without using an END block, but does #pod mean that the post-unlink comparison of the filehandle state provided #pod by C is not available. #pod #pod unlink1($fh, $path) #pod or die "Error closing and unlinking file"; #pod #pod Usually called from the object destructor when using the OO interface. #pod #pod Not exported by default. #pod #pod This function is disabled if the global variable $KEEP_ALL is true. #pod #pod Can call croak() if there is a security anomaly during the stat() #pod comparison. #pod #pod Current API available since 0.14. #pod #pod =cut sub unlink1 { croak 'Usage: unlink1(filehandle, filename)' unless scalar(@_) == 2; # Read args my ($fh, $path) = @_; cmpstat($fh, $path) or return 0; # Close the file close( $fh ) or return 0; # Make sure the file is writable (for windows) _force_writable( $path ); # return early (without unlink) if we have been instructed to retain files. return 1 if $KEEP_ALL; # remove the file return unlink($path); } #pod =item B #pod #pod Calling this function will cause any temp files or temp directories #pod that are registered for removal to be removed. This happens automatically #pod when the process exits but can be triggered manually if the caller is sure #pod that none of the temp files are required. This method can be registered as #pod an Apache callback. #pod #pod Note that if a temp directory is your current directory, it cannot be #pod removed. C out of the directory first before calling #pod C. (For the cleanup at program exit when the CLEANUP flag #pod is set, this happens automatically.) #pod #pod On OSes where temp files are automatically removed when the temp file #pod is closed, calling this function will have no effect other than to remove #pod temporary directories (which may include temporary files). #pod #pod File::Temp::cleanup(); #pod #pod Not exported by default. #pod #pod Current API available since 0.15. #pod #pod =back #pod #pod =head1 PACKAGE VARIABLES #pod #pod These functions control the global state of the package. #pod #pod =over 4 #pod #pod =item B #pod #pod Controls the lengths to which the module will go to check the safety of the #pod temporary file or directory before proceeding. #pod Options are: #pod #pod =over 8 #pod #pod =item STANDARD #pod #pod Do the basic security measures to ensure the directory exists and is #pod writable, that temporary files are opened only if they do not already #pod exist, and that possible race conditions are avoided. Finally the #pod L function is used to remove files safely. #pod #pod =item MEDIUM #pod #pod In addition to the STANDARD security, the output directory is checked #pod to make sure that it is owned either by root or the user running the #pod program. If the directory is writable by group or by other, it is then #pod checked to make sure that the sticky bit is set. #pod #pod Will not work on platforms that do not support the C<-k> test #pod for sticky bit. #pod #pod =item HIGH #pod #pod In addition to the MEDIUM security checks, also check for the #pod possibility of ``chown() giveaway'' using the L #pod sysconf() function. If this is a possibility, each directory in the #pod path is checked in turn for safeness, recursively walking back to the #pod root directory. #pod #pod For platforms that do not support the L #pod C<_PC_CHOWN_RESTRICTED> symbol (for example, Windows NT) it is #pod assumed that ``chown() giveaway'' is possible and the recursive test #pod is performed. #pod #pod =back #pod #pod The level can be changed as follows: #pod #pod File::Temp->safe_level( File::Temp::HIGH ); #pod #pod The level constants are not exported by the module. #pod #pod Currently, you must be running at least perl v5.6.0 in order to #pod run with MEDIUM or HIGH security. This is simply because the #pod safety tests use functions from L that are not #pod available in older versions of perl. The problem is that the version #pod number for Fcntl is the same in perl 5.6.0 and in 5.005_03 even though #pod they are different versions. #pod #pod On systems that do not support the HIGH or MEDIUM safety levels #pod (for example Win NT or OS/2) any attempt to change the level will #pod be ignored. The decision to ignore rather than raise an exception #pod allows portable programs to be written with high security in mind #pod for the systems that can support this without those programs failing #pod on systems where the extra tests are irrelevant. #pod #pod If you really need to see whether the change has been accepted #pod simply examine the return value of C. #pod #pod $newlevel = File::Temp->safe_level( File::Temp::HIGH ); #pod die "Could not change to high security" #pod if $newlevel != File::Temp::HIGH; #pod #pod Available since 0.05. #pod #pod =cut { # protect from using the variable itself my $LEVEL = STANDARD; sub safe_level { my $self = shift; if (@_) { my $level = shift; if (($level != STANDARD) && ($level != MEDIUM) && ($level != HIGH)) { carp "safe_level: Specified level ($level) not STANDARD, MEDIUM or HIGH - ignoring\n" if $^W; } else { # Don't allow this on perl 5.005 or earlier if ($] < 5.006 && $level != STANDARD) { # Cant do MEDIUM or HIGH checks croak "Currently requires perl 5.006 or newer to do the safe checks"; } # Check that we are allowed to change level # Silently ignore if we can not. $LEVEL = $level if _can_do_level($level); } } return $LEVEL; } } #pod =item TopSystemUID #pod #pod This is the highest UID on the current system that refers to a root #pod UID. This is used to make sure that the temporary directory is #pod owned by a system UID (C, C, C etc) rather than #pod simply by root. #pod #pod This is required since on many unix systems C is not owned #pod by root. #pod #pod Default is to assume that any UID less than or equal to 10 is a root #pod UID. #pod #pod File::Temp->top_system_uid(10); #pod my $topid = File::Temp->top_system_uid; #pod #pod This value can be adjusted to reduce security checking if required. #pod The value is only relevant when C is set to MEDIUM or higher. #pod #pod Available since 0.05. #pod #pod =cut { my $TopSystemUID = 10; $TopSystemUID = 197108 if $^O eq 'interix'; # "Administrator" sub top_system_uid { my $self = shift; if (@_) { my $newuid = shift; croak "top_system_uid: UIDs should be numeric" unless $newuid =~ /^\d+$/s; $TopSystemUID = $newuid; } return $TopSystemUID; } } #pod =item B<$KEEP_ALL> #pod #pod Controls whether temporary files and directories should be retained #pod regardless of any instructions in the program to remove them #pod automatically. This is useful for debugging but should not be used in #pod production code. #pod #pod $File::Temp::KEEP_ALL = 1; #pod #pod Default is for files to be removed as requested by the caller. #pod #pod In some cases, files will only be retained if this variable is true #pod when the file is created. This means that you can not create a temporary #pod file, set this variable and expect the temp file to still be around #pod when the program exits. #pod #pod =item B<$DEBUG> #pod #pod Controls whether debugging messages should be enabled. #pod #pod $File::Temp::DEBUG = 1; #pod #pod Default is for debugging mode to be disabled. #pod #pod Available since 0.15. #pod #pod =back #pod #pod =head1 WARNING #pod #pod For maximum security, endeavour always to avoid ever looking at, #pod touching, or even imputing the existence of the filename. You do not #pod know that that filename is connected to the same file as the handle #pod you have, and attempts to check this can only trigger more race #pod conditions. It's far more secure to use the filehandle alone and #pod dispense with the filename altogether. #pod #pod If you need to pass the handle to something that expects a filename #pod then on a unix system you can use C<"/dev/fd/" . fileno($fh)> for #pod arbitrary programs. Perl code that uses the 2-argument version of #pod C<< open >> can be passed C<< "+<=&" . fileno($fh) >>. Otherwise you #pod will need to pass the filename. You will have to clear the #pod close-on-exec bit on that file descriptor before passing it to another #pod process. #pod #pod use Fcntl qw/F_SETFD F_GETFD/; #pod fcntl($tmpfh, F_SETFD, 0) #pod or die "Can't clear close-on-exec flag on temp fh: $!\n"; #pod #pod =head2 Temporary files and NFS #pod #pod Some problems are associated with using temporary files that reside #pod on NFS file systems and it is recommended that a local filesystem #pod is used whenever possible. Some of the security tests will most probably #pod fail when the temp file is not local. Additionally, be aware that #pod the performance of I/O operations over NFS will not be as good as for #pod a local disk. #pod #pod =head2 Forking #pod #pod In some cases files created by File::Temp are removed from within an #pod END block. Since END blocks are triggered when a child process exits #pod (unless C is used by the child) File::Temp takes care #pod to only remove those temp files created by a particular process ID. This #pod means that a child will not attempt to remove temp files created by the #pod parent process. #pod #pod If you are forking many processes in parallel that are all creating #pod temporary files, you may need to reset the random number seed using #pod srand(EXPR) in each child else all the children will attempt to walk #pod through the same set of random file names and may well cause #pod themselves to give up if they exceed the number of retry attempts. #pod #pod =head2 Directory removal #pod #pod Note that if you have chdir'ed into the temporary directory and it is #pod subsequently cleaned up (either in the END block or as part of object #pod destruction), then you will get a warning from File::Path::rmtree(). #pod #pod =head2 Taint mode #pod #pod If you need to run code under taint mode, updating to the latest #pod L is highly recommended. On Windows, if the directory #pod given by L isn't writable, File::Temp will attempt #pod to fallback to the user's local application data directory or croak #pod with an error. #pod #pod =head2 BINMODE #pod #pod The file returned by File::Temp will have been opened in binary mode #pod if such a mode is available. If that is not correct, use the C #pod function to change the mode of the filehandle. #pod #pod Note that you can modify the encoding of a file opened by File::Temp #pod also by using C. #pod #pod =head1 HISTORY #pod #pod Originally began life in May 1999 as an XS interface to the system #pod mkstemp() function. In March 2000, the OpenBSD mkstemp() code was #pod translated to Perl for total control of the code's #pod security checking, to ensure the presence of the function regardless of #pod operating system and to help with portability. The module was shipped #pod as a standard part of perl from v5.6.1. #pod #pod Thanks to Tom Christiansen for suggesting that this module #pod should be written and providing ideas for code improvements and #pod security enhancements. #pod #pod =head1 SEE ALSO #pod #pod L, L, L, L #pod #pod See L and L, L for #pod different implementations of temporary file handling. #pod #pod See L for an alternative object-oriented wrapper for #pod the C function. #pod #pod =cut package ## hide from PAUSE File::Temp::Dir; our $VERSION = '0.2311'; use File::Path qw/ rmtree /; use strict; use overload '""' => "STRINGIFY", '0+' => \&File::Temp::NUMIFY, fallback => 1; # private class specifically to support tempdir objects # created by File::Temp->newdir # ostensibly the same method interface as File::Temp but without # inheriting all the IO::Seekable methods and other cruft # Read-only - returns the name of the temp directory sub dirname { my $self = shift; return $self->{DIRNAME}; } sub STRINGIFY { my $self = shift; return $self->dirname; } sub unlink_on_destroy { my $self = shift; if (@_) { $self->{CLEANUP} = shift; } return $self->{CLEANUP}; } sub DESTROY { my $self = shift; local($., $@, $!, $^E, $?); if ($self->unlink_on_destroy && $$ == $self->{LAUNCHPID} && !$File::Temp::KEEP_ALL) { if (-d $self->{REALNAME}) { # Some versions of rmtree will abort if you attempt to remove # the directory you are sitting in. We protect that and turn it # into a warning. We do this because this occurs during object # destruction and so can not be caught by the user. eval { rmtree($self->{REALNAME}, $File::Temp::DEBUG, 0); }; warn $@ if ($@ && $^W); } } } 1; # vim: ts=2 sts=2 sw=2 et: __END__ =pod =encoding UTF-8 =head1 NAME File::Temp - return name and handle of a temporary file safely =head1 VERSION version 0.2311 =head1 SYNOPSIS use File::Temp qw/ tempfile tempdir /; $fh = tempfile(); ($fh, $filename) = tempfile(); ($fh, $filename) = tempfile( $template, DIR => $dir); ($fh, $filename) = tempfile( $template, SUFFIX => '.dat'); ($fh, $filename) = tempfile( $template, TMPDIR => 1 ); binmode( $fh, ":utf8" ); $dir = tempdir( CLEANUP => 1 ); ($fh, $filename) = tempfile( DIR => $dir ); Object interface: require File::Temp; use File::Temp (); use File::Temp qw/ :seekable /; $fh = File::Temp->new(); $fname = $fh->filename; $fh = File::Temp->new(TEMPLATE => $template); $fname = $fh->filename; $tmp = File::Temp->new( UNLINK => 0, SUFFIX => '.dat' ); print $tmp "Some data\n"; print "Filename is $tmp\n"; $tmp->seek( 0, SEEK_END ); $dir = File::Temp->newdir(); # CLEANUP => 1 by default The following interfaces are provided for compatibility with existing APIs. They should not be used in new code. MkTemp family: use File::Temp qw/ :mktemp /; ($fh, $file) = mkstemp( "tmpfileXXXXX" ); ($fh, $file) = mkstemps( "tmpfileXXXXXX", $suffix); $tmpdir = mkdtemp( $template ); $unopened_file = mktemp( $template ); POSIX functions: use File::Temp qw/ :POSIX /; $file = tmpnam(); $fh = tmpfile(); ($fh, $file) = tmpnam(); Compatibility functions: $unopened_file = File::Temp::tempnam( $dir, $pfx ); =head1 DESCRIPTION C can be used to create and open temporary files in a safe way. There is both a function interface and an object-oriented interface. The File::Temp constructor or the tempfile() function can be used to return the name and the open filehandle of a temporary file. The tempdir() function can be used to create a temporary directory. The security aspect of temporary file creation is emphasized such that a filehandle and filename are returned together. This helps guarantee that a race condition can not occur where the temporary file is created by another process between checking for the existence of the file and its opening. Additional security levels are provided to check, for example, that the sticky bit is set on world writable directories. See L<"safe_level"> for more information. For compatibility with popular C library functions, Perl implementations of the mkstemp() family of functions are provided. These are, mkstemp(), mkstemps(), mkdtemp() and mktemp(). Additionally, implementations of the standard L tmpnam() and tmpfile() functions are provided if required. Implementations of mktemp(), tmpnam(), and tempnam() are provided, but should be used with caution since they return only a filename that was valid when function was called, so cannot guarantee that the file will not exist by the time the caller opens the filename. Filehandles returned by these functions support the seekable methods. =begin :__INTERNALS =head1 PORTABILITY This section is at the top in order to provide easier access to porters. It is not expected to be rendered by a standard pod formatting tool. Please skip straight to the SYNOPSIS section if you are not trying to port this module to a new platform. This module is designed to be portable across operating systems and it currently supports Unix, VMS, DOS, OS/2, Windows and Mac OS (Classic). When porting to a new OS there are generally three main issues that have to be solved: =over 4 =item * Can the OS unlink an open file? If it can not then the C<_can_unlink_opened_file> method should be modified. =item * Are the return values from C reliable? By default all the return values from C are compared when unlinking a temporary file using the filename and the handle. Operating systems other than unix do not always have valid entries in all fields. If utility function C fails then the C comparison should be modified accordingly. =item * Security. Systems that can not support a test for the sticky bit on a directory can not use the MEDIUM and HIGH security tests. The C<_can_do_level> method should be modified accordingly. =back =end :__INTERNALS =head1 OBJECT-ORIENTED INTERFACE This is the primary interface for interacting with C. Using the OO interface a temporary file can be created when the object is constructed and the file can be removed when the object is no longer required. Note that there is no method to obtain the filehandle from the C object. The object itself acts as a filehandle. The object isa C and isa C so all those methods are available. Also, the object is configured such that it stringifies to the name of the temporary file and so can be compared to a filename directly. It numifies to the C the same as other handles and so can be compared to other handles with C<==>. $fh eq $filename # as a string $fh != \*STDOUT # as a number Available since 0.14. =over 4 =item B Create a temporary file object. my $tmp = File::Temp->new(); by default the object is constructed as if C was called without options, but with the additional behaviour that the temporary file is removed by the object destructor if UNLINK is set to true (the default). Supported arguments are the same as for C: UNLINK (defaulting to true), DIR, EXLOCK, PERMS and SUFFIX. Additionally, the filename template is specified using the TEMPLATE option. The OPEN option is not supported (the file is always opened). $tmp = File::Temp->new( TEMPLATE => 'tempXXXXX', DIR => 'mydir', SUFFIX => '.dat'); Arguments are case insensitive. Can call croak() if an error occurs. Available since 0.14. TEMPLATE available since 0.23 =item B Create a temporary directory using an object oriented interface. $dir = File::Temp->newdir(); By default the directory is deleted when the object goes out of scope. Supports the same options as the C function. Note that directories created with this method default to CLEANUP => 1. $dir = File::Temp->newdir( $template, %options ); A template may be specified either with a leading template or with a TEMPLATE argument. Available since 0.19. TEMPLATE available since 0.23. =item B Return the name of the temporary file associated with this object (if the object was created using the "new" constructor). $filename = $tmp->filename; This method is called automatically when the object is used as a string. Current API available since 0.14 =item B Return the name of the temporary directory associated with this object (if the object was created using the "newdir" constructor). $dirname = $tmpdir->dirname; This method is called automatically when the object is used in string context. =item B Control whether the file is unlinked when the object goes out of scope. The file is removed if this value is true and $KEEP_ALL is not. $fh->unlink_on_destroy( 1 ); Default is for the file to be removed. Current API available since 0.15 =item B When the object goes out of scope, the destructor is called. This destructor will attempt to unlink the file (using L) if the constructor was called with UNLINK set to 1 (the default state if UNLINK is not specified). No error is given if the unlink fails. If the object has been passed to a child process during a fork, the file will be deleted when the object goes out of scope in the parent. For a temporary directory object the directory will be removed unless the CLEANUP argument was used in the constructor (and set to false) or C was modified after creation. Note that if a temp directory is your current directory, it cannot be removed - a warning will be given in this case. C out of the directory before letting the object go out of scope. If the global variable $KEEP_ALL is true, the file or directory will not be removed. =back =head1 FUNCTIONS This section describes the recommended interface for generating temporary files and directories. =over 4 =item B This is the basic function to generate temporary files. The behaviour of the file can be changed using various options: $fh = tempfile(); ($fh, $filename) = tempfile(); Create a temporary file in the directory specified for temporary files, as specified by the tmpdir() function in L. ($fh, $filename) = tempfile($template); Create a temporary file in the current directory using the supplied template. Trailing `X' characters are replaced with random letters to generate the filename. At least four `X' characters must be present at the end of the template. ($fh, $filename) = tempfile($template, SUFFIX => $suffix) Same as previously, except that a suffix is added to the template after the `X' translation. Useful for ensuring that a temporary filename has a particular extension when needed by other applications. But see the WARNING at the end. ($fh, $filename) = tempfile($template, DIR => $dir); Translates the template as before except that a directory name is specified. ($fh, $filename) = tempfile($template, TMPDIR => 1); Equivalent to specifying a DIR of "File::Spec->tmpdir", writing the file into the same temporary directory as would be used if no template was specified at all. ($fh, $filename) = tempfile($template, UNLINK => 1); Return the filename and filehandle as before except that the file is automatically removed when the program exits (dependent on $KEEP_ALL). Default is for the file to be removed if a file handle is requested and to be kept if the filename is requested. In a scalar context (where no filename is returned) the file is always deleted either (depending on the operating system) on exit or when it is closed (unless $KEEP_ALL is true when the temp file is created). Use the object-oriented interface if fine-grained control of when a file is removed is required. If the template is not specified, a template is always automatically generated. This temporary file is placed in tmpdir() (L) unless a directory is specified explicitly with the DIR option. $fh = tempfile( DIR => $dir ); If called in scalar context, only the filehandle is returned and the file will automatically be deleted when closed on operating systems that support this (see the description of tmpfile() elsewhere in this document). This is the preferred mode of operation, as if you only have a filehandle, you can never create a race condition by fumbling with the filename. On systems that can not unlink an open file or can not mark a file as temporary when it is opened (for example, Windows NT uses the C flag) the file is marked for deletion when the program ends (equivalent to setting UNLINK to 1). The C flag is ignored if present. (undef, $filename) = tempfile($template, OPEN => 0); This will return the filename based on the template but will not open this file. Cannot be used in conjunction with UNLINK set to true. Default is to always open the file to protect from possible race conditions. A warning is issued if warnings are turned on. Consider using the tmpnam() and mktemp() functions described elsewhere in this document if opening the file is not required. To open the temporary filehandle with O_EXLOCK (open with exclusive file lock) use C<< EXLOCK=>1 >>. This is supported only by some operating systems (most notably BSD derived systems). By default EXLOCK will be false. Former C versions set EXLOCK to true, so to be sure to get an unlocked filehandle also with older versions, explicitly set C<< EXLOCK=>0 >>. ($fh, $filename) = tempfile($template, EXLOCK => 1); By default, the temp file is created with 0600 file permissions. Use C to change this: ($fh, $filename) = tempfile($template, PERMS => 0666); Options can be combined as required. Will croak() if there is an error. Available since 0.05. UNLINK flag available since 0.10. TMPDIR flag available since 0.19. EXLOCK flag available since 0.19. PERMS flag available since 0.2310. =item B This is the recommended interface for creation of temporary directories. By default the directory will not be removed on exit (that is, it won't be temporary; this behaviour can not be changed because of issues with backwards compatibility). To enable removal either use the CLEANUP option which will trigger removal on program exit, or consider using the "newdir" method in the object interface which will allow the directory to be cleaned up when the object goes out of scope. The behaviour of the function depends on the arguments: $tempdir = tempdir(); Create a directory in tmpdir() (see L). $tempdir = tempdir( $template ); Create a directory from the supplied template. This template is similar to that described for tempfile(). `X' characters at the end of the template are replaced with random letters to construct the directory name. At least four `X' characters must be in the template. $tempdir = tempdir ( DIR => $dir ); Specifies the directory to use for the temporary directory. The temporary directory name is derived from an internal template. $tempdir = tempdir ( $template, DIR => $dir ); Prepend the supplied directory name to the template. The template should not include parent directory specifications itself. Any parent directory specifications are removed from the template before prepending the supplied directory. $tempdir = tempdir ( $template, TMPDIR => 1 ); Using the supplied template, create the temporary directory in a standard location for temporary files. Equivalent to doing $tempdir = tempdir ( $template, DIR => File::Spec->tmpdir); but shorter. Parent directory specifications are stripped from the template itself. The C option is ignored if C is set explicitly. Additionally, C is implied if neither a template nor a directory are supplied. $tempdir = tempdir( $template, CLEANUP => 1); Create a temporary directory using the supplied template, but attempt to remove it (and all files inside it) when the program exits. Note that an attempt will be made to remove all files from the directory even if they were not created by this module (otherwise why ask to clean it up?). The directory removal is made with the rmtree() function from the L module. Of course, if the template is not specified, the temporary directory will be created in tmpdir() and will also be removed at program exit. Will croak() if there is an error. Current API available since 0.05. =back =head1 MKTEMP FUNCTIONS The following functions are Perl implementations of the mktemp() family of temp file generation system calls. =over 4 =item B Given a template, returns a filehandle to the temporary file and the name of the file. ($fh, $name) = mkstemp( $template ); In scalar context, just the filehandle is returned. The template may be any filename with some number of X's appended to it, for example F. The trailing X's are replaced with unique alphanumeric combinations. Will croak() if there is an error. Current API available since 0.05. =item B Similar to mkstemp(), except that an extra argument can be supplied with a suffix to be appended to the template. ($fh, $name) = mkstemps( $template, $suffix ); For example a template of C and suffix of C<.dat> would generate a file similar to F. Returns just the filehandle alone when called in scalar context. Will croak() if there is an error. Current API available since 0.05. =item B Create a directory from a template. The template must end in X's that are replaced by the routine. $tmpdir_name = mkdtemp($template); Returns the name of the temporary directory created. Directory must be removed by the caller. Will croak() if there is an error. Current API available since 0.05. =item B Returns a valid temporary filename but does not guarantee that the file will not be opened by someone else. $unopened_file = mktemp($template); Template is the same as that required by mkstemp(). Will croak() if there is an error. Current API available since 0.05. =back =head1 POSIX FUNCTIONS This section describes the re-implementation of the tmpnam() and tmpfile() functions described in L using the mkstemp() from this module. Unlike the L implementations, the directory used for the temporary file is not specified in a system include file (C) but simply depends on the choice of tmpdir() returned by L. On some implementations this location can be set using the C environment variable, which may not be secure. If this is a problem, simply use mkstemp() and specify a template. =over 4 =item B When called in scalar context, returns the full name (including path) of a temporary file (uses mktemp()). The only check is that the file does not already exist, but there is no guarantee that that condition will continue to apply. $file = tmpnam(); When called in list context, a filehandle to the open file and a filename are returned. This is achieved by calling mkstemp() after constructing a suitable template. ($fh, $file) = tmpnam(); If possible, this form should be used to prevent possible race conditions. See L for information on the choice of temporary directory for a particular operating system. Will croak() if there is an error. Current API available since 0.05. =item B Returns the filehandle of a temporary file. $fh = tmpfile(); The file is removed when the filehandle is closed or when the program exits. No access to the filename is provided. If the temporary file can not be created undef is returned. Currently this command will probably not work when the temporary directory is on an NFS file system. Will croak() if there is an error. Available since 0.05. Returning undef if unable to create file added in 0.12. =back =head1 ADDITIONAL FUNCTIONS These functions are provided for backwards compatibility with common tempfile generation C library functions. They are not exported and must be addressed using the full package name. =over 4 =item B Return the name of a temporary file in the specified directory using a prefix. The file is guaranteed not to exist at the time the function was called, but such guarantees are good for one clock tick only. Always use the proper form of C with C if you must open such a filename. $filename = File::Temp::tempnam( $dir, $prefix ); Equivalent to running mktemp() with $dir/$prefixXXXXXXXX (using unix file convention as an example) Because this function uses mktemp(), it can suffer from race conditions. Will croak() if there is an error. Current API available since 0.05. =back =head1 UTILITY FUNCTIONS Useful functions for dealing with the filehandle and filename. =over 4 =item B Given an open filehandle and the associated filename, make a safe unlink. This is achieved by first checking that the filename and filehandle initially point to the same file and that the number of links to the file is 1 (all fields returned by stat() are compared). Then the filename is unlinked and the filehandle checked once again to verify that the number of links on that file is now 0. This is the closest you can come to making sure that the filename unlinked was the same as the file whose descriptor you hold. unlink0($fh, $path) or die "Error unlinking file $path safely"; Returns false on error but croaks() if there is a security anomaly. The filehandle is not closed since on some occasions this is not required. On some platforms, for example Windows NT, it is not possible to unlink an open file (the file must be closed first). On those platforms, the actual unlinking is deferred until the program ends and good status is returned. A check is still performed to make sure that the filehandle and filename are pointing to the same thing (but not at the time the end block is executed since the deferred removal may not have access to the filehandle). Additionally, on Windows NT not all the fields returned by stat() can be compared. For example, the C and C fields seem to be different. Also, it seems that the size of the file returned by stat() does not always agree, with C being more accurate than C, presumably because of caching issues even when using autoflush (this is usually overcome by waiting a while after writing to the tempfile before attempting to C it). Finally, on NFS file systems the link count of the file handle does not always go to zero immediately after unlinking. Currently, this command is expected to fail on NFS disks. This function is disabled if the global variable $KEEP_ALL is true and an unlink on open file is supported. If the unlink is to be deferred to the END block, the file is still registered for removal. This function should not be called if you are using the object oriented interface since the it will interfere with the object destructor deleting the file. Available Since 0.05. If can not unlink open file, defer removal until later available since 0.06. =item B Compare C of filehandle with C of provided filename. This can be used to check that the filename and filehandle initially point to the same file and that the number of links to the file is 1 (all fields returned by stat() are compared). cmpstat($fh, $path) or die "Error comparing handle with file"; Returns false if the stat information differs or if the link count is greater than 1. Calls croak if there is a security anomaly. On certain platforms, for example Windows, not all the fields returned by stat() can be compared. For example, the C and C fields seem to be different in Windows. Also, it seems that the size of the file returned by stat() does not always agree, with C being more accurate than C, presumably because of caching issues even when using autoflush (this is usually overcome by waiting a while after writing to the tempfile before attempting to C it). Not exported by default. Current API available since 0.14. =item B Similar to C except after file comparison using cmpstat, the filehandle is closed prior to attempting to unlink the file. This allows the file to be removed without using an END block, but does mean that the post-unlink comparison of the filehandle state provided by C is not available. unlink1($fh, $path) or die "Error closing and unlinking file"; Usually called from the object destructor when using the OO interface. Not exported by default. This function is disabled if the global variable $KEEP_ALL is true. Can call croak() if there is a security anomaly during the stat() comparison. Current API available since 0.14. =item B Calling this function will cause any temp files or temp directories that are registered for removal to be removed. This happens automatically when the process exits but can be triggered manually if the caller is sure that none of the temp files are required. This method can be registered as an Apache callback. Note that if a temp directory is your current directory, it cannot be removed. C out of the directory first before calling C. (For the cleanup at program exit when the CLEANUP flag is set, this happens automatically.) On OSes where temp files are automatically removed when the temp file is closed, calling this function will have no effect other than to remove temporary directories (which may include temporary files). File::Temp::cleanup(); Not exported by default. Current API available since 0.15. =back =head1 PACKAGE VARIABLES These functions control the global state of the package. =over 4 =item B Controls the lengths to which the module will go to check the safety of the temporary file or directory before proceeding. Options are: =over 8 =item STANDARD Do the basic security measures to ensure the directory exists and is writable, that temporary files are opened only if they do not already exist, and that possible race conditions are avoided. Finally the L function is used to remove files safely. =item MEDIUM In addition to the STANDARD security, the output directory is checked to make sure that it is owned either by root or the user running the program. If the directory is writable by group or by other, it is then checked to make sure that the sticky bit is set. Will not work on platforms that do not support the C<-k> test for sticky bit. =item HIGH In addition to the MEDIUM security checks, also check for the possibility of ``chown() giveaway'' using the L sysconf() function. If this is a possibility, each directory in the path is checked in turn for safeness, recursively walking back to the root directory. For platforms that do not support the L C<_PC_CHOWN_RESTRICTED> symbol (for example, Windows NT) it is assumed that ``chown() giveaway'' is possible and the recursive test is performed. =back The level can be changed as follows: File::Temp->safe_level( File::Temp::HIGH ); The level constants are not exported by the module. Currently, you must be running at least perl v5.6.0 in order to run with MEDIUM or HIGH security. This is simply because the safety tests use functions from L that are not available in older versions of perl. The problem is that the version number for Fcntl is the same in perl 5.6.0 and in 5.005_03 even though they are different versions. On systems that do not support the HIGH or MEDIUM safety levels (for example Win NT or OS/2) any attempt to change the level will be ignored. The decision to ignore rather than raise an exception allows portable programs to be written with high security in mind for the systems that can support this without those programs failing on systems where the extra tests are irrelevant. If you really need to see whether the change has been accepted simply examine the return value of C. $newlevel = File::Temp->safe_level( File::Temp::HIGH ); die "Could not change to high security" if $newlevel != File::Temp::HIGH; Available since 0.05. =item TopSystemUID This is the highest UID on the current system that refers to a root UID. This is used to make sure that the temporary directory is owned by a system UID (C, C, C etc) rather than simply by root. This is required since on many unix systems C is not owned by root. Default is to assume that any UID less than or equal to 10 is a root UID. File::Temp->top_system_uid(10); my $topid = File::Temp->top_system_uid; This value can be adjusted to reduce security checking if required. The value is only relevant when C is set to MEDIUM or higher. Available since 0.05. =item B<$KEEP_ALL> Controls whether temporary files and directories should be retained regardless of any instructions in the program to remove them automatically. This is useful for debugging but should not be used in production code. $File::Temp::KEEP_ALL = 1; Default is for files to be removed as requested by the caller. In some cases, files will only be retained if this variable is true when the file is created. This means that you can not create a temporary file, set this variable and expect the temp file to still be around when the program exits. =item B<$DEBUG> Controls whether debugging messages should be enabled. $File::Temp::DEBUG = 1; Default is for debugging mode to be disabled. Available since 0.15. =back =head1 WARNING For maximum security, endeavour always to avoid ever looking at, touching, or even imputing the existence of the filename. You do not know that that filename is connected to the same file as the handle you have, and attempts to check this can only trigger more race conditions. It's far more secure to use the filehandle alone and dispense with the filename altogether. If you need to pass the handle to something that expects a filename then on a unix system you can use C<"/dev/fd/" . fileno($fh)> for arbitrary programs. Perl code that uses the 2-argument version of C<< open >> can be passed C<< "+<=&" . fileno($fh) >>. Otherwise you will need to pass the filename. You will have to clear the close-on-exec bit on that file descriptor before passing it to another process. use Fcntl qw/F_SETFD F_GETFD/; fcntl($tmpfh, F_SETFD, 0) or die "Can't clear close-on-exec flag on temp fh: $!\n"; =head2 Temporary files and NFS Some problems are associated with using temporary files that reside on NFS file systems and it is recommended that a local filesystem is used whenever possible. Some of the security tests will most probably fail when the temp file is not local. Additionally, be aware that the performance of I/O operations over NFS will not be as good as for a local disk. =head2 Forking In some cases files created by File::Temp are removed from within an END block. Since END blocks are triggered when a child process exits (unless C is used by the child) File::Temp takes care to only remove those temp files created by a particular process ID. This means that a child will not attempt to remove temp files created by the parent process. If you are forking many processes in parallel that are all creating temporary files, you may need to reset the random number seed using srand(EXPR) in each child else all the children will attempt to walk through the same set of random file names and may well cause themselves to give up if they exceed the number of retry attempts. =head2 Directory removal Note that if you have chdir'ed into the temporary directory and it is subsequently cleaned up (either in the END block or as part of object destruction), then you will get a warning from File::Path::rmtree(). =head2 Taint mode If you need to run code under taint mode, updating to the latest L is highly recommended. On Windows, if the directory given by L isn't writable, File::Temp will attempt to fallback to the user's local application data directory or croak with an error. =head2 BINMODE The file returned by File::Temp will have been opened in binary mode if such a mode is available. If that is not correct, use the C function to change the mode of the filehandle. Note that you can modify the encoding of a file opened by File::Temp also by using C. =head1 HISTORY Originally began life in May 1999 as an XS interface to the system mkstemp() function. In March 2000, the OpenBSD mkstemp() code was translated to Perl for total control of the code's security checking, to ensure the presence of the function regardless of operating system and to help with portability. The module was shipped as a standard part of perl from v5.6.1. Thanks to Tom Christiansen for suggesting that this module should be written and providing ideas for code improvements and security enhancements. =head1 SEE ALSO L, L, L, L See L and L, L for different implementations of temporary file handling. See L for an alternative object-oriented wrapper for the C function. =for Pod::Coverage STRINGIFY NUMIFY top_system_uid =head1 SUPPORT Bugs may be submitted through L (or L). There is also a mailing list available for users of this distribution, at L. There is also an irc channel available for users of this distribution, at L on C|irc://irc.perl.org/#toolchain>. =head1 AUTHOR Tim Jenness =head1 CONTRIBUTORS =for stopwords Tim Jenness Karen Etheridge David Golden Slaven Rezic mohawk2 Roy Ivy III Peter Rabbitson Olivier Mengué John Acklam Gim Yee Nicolas R Brian Mowrey Dagfinn Ilmari Mannsåker Steinbrunner Ed Avis Guillem Jover James E. Keenan Kevin Ryde Ben Tilly =over 4 =item * Tim Jenness =item * Karen Etheridge =item * David Golden =item * Slaven Rezic =item * mohawk2 =item * Roy Ivy III =item * Peter Rabbitson =item * Olivier Mengué =item * Peter John Acklam =item * Tim Gim Yee =item * Nicolas R =item * Brian Mowrey =item * Dagfinn Ilmari Mannsåker =item * David Steinbrunner =item * Ed Avis =item * Guillem Jover =item * James E. Keenan =item * Kevin Ryde =item * Ben Tilly =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2020 by Tim Jenness and the UK Particle Physics and Astronomy Research Council. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut FILEf70cb08a/Exporter/Heavy.pmpackage Exporter::Heavy; use strict; no strict 'refs'; # On one line so MakeMaker will see it. our $VERSION = '5.77'; =head1 NAME Exporter::Heavy - Exporter guts =head1 SYNOPSIS (internal use only) =head1 DESCRIPTION No user-serviceable parts inside. =cut # # 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 { # Save the old __WARN__ handler in case it was defined my $oldwarn = $SIG{__WARN__}; # First make import warnings look like they're coming from the "use". local $SIG{__WARN__} = sub { # restore it back so proper stacking occurs local $SIG{__WARN__} = $oldwarn; 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]; $oops++; } } } } if ($oops) { require Carp; Carp::croak(join("\n", @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; FILE8902686e/File/Path.pmpackage 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.18'; $VERSION = eval $VERSION; @ISA = qw(Exporter); @EXPORT = qw(mkpath rmtree); @EXPORT_OK = qw(make_path remove_tree); BEGIN { for (qw(VMS MacOS MSWin32 os2)) { no strict 'refs'; *{"_IS_\U$_"} = $^O eq $_ ? sub () { 1 } : sub () { 0 }; } # These OSes complain if you want to remove a file that you have no # write permission to: *_FORCE_WRITABLE = ( grep { $^O eq $_ } qw(amigaos dos epoc MSWin32 MacOS os2) ) ? sub () { 1 } : sub () { 0 }; # Unix-like systems need to stat each directory in order to detect # race condition. MS-Windows is immune to this particular attack. *_NEED_STAT_CHECK = !(_IS_MSWIN32()) ? sub () { 1 } : sub () { 0 }; } 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 __is_arg { my ($arg) = @_; # If client code blessed an array ref to HASH, this will not work # properly. We could have done $arg->isa() wrapped in eval, but # that would be expensive. This implementation should suffice. # We could have also used Scalar::Util:blessed, but we choose not # to add this dependency return ( ref $arg eq 'HASH' ); } sub make_path { push @_, {} unless @_ and __is_arg( $_[-1] ); goto &mkpath; } sub mkpath { my $old_style = !( @_ and __is_arg( $_[-1] ) ); my $data; my $paths; if ($old_style) { my ( $verbose, $mode ); ( $paths, $verbose, $mode ) = @_; $paths = [$paths] unless UNIVERSAL::isa( $paths, 'ARRAY' ); $data->{verbose} = $verbose; $data->{mode} = defined $mode ? $mode : oct '777'; } else { my %args_permitted = map { $_ => 1 } ( qw| chmod error group mask mode owner uid user verbose | ); my %not_on_win32_args = map { $_ => 1 } ( qw| group owner uid user | ); my @bad_args = (); my @win32_implausible_args = (); my $arg = pop @_; for my $k (sort keys %{$arg}) { if (! $args_permitted{$k}) { push @bad_args, $k; } elsif ($not_on_win32_args{$k} and _IS_MSWIN32) { push @win32_implausible_args, $k; } else { $data->{$k} = $arg->{$k}; } } _carp("Unrecognized option(s) passed to mkpath() or make_path(): @bad_args") if @bad_args; _carp("Option(s) implausible on Win32 passed to mkpath() or make_path(): @win32_implausible_args") if @win32_implausible_args; $data->{mode} = delete $data->{mask} if exists $data->{mask}; $data->{mode} = oct '777' unless exists $data->{mode}; ${ $data->{error} } = [] if exists $data->{error}; unless (@win32_implausible_args) { $data->{owner} = delete $data->{user} if exists $data->{user}; $data->{owner} = delete $data->{uid} if exists $data->{uid}; if ( exists $data->{owner} and $data->{owner} =~ /\D/ ) { my $uid = ( getpwnam $data->{owner} )[2]; if ( defined $uid ) { $data->{owner} = $uid; } else { _error( $data, "unable to map $data->{owner} to a uid, ownership not changed" ); delete $data->{owner}; } } if ( exists $data->{group} and $data->{group} =~ /\D/ ) { my $gid = ( getgrnam $data->{group} )[2]; if ( defined $gid ) { $data->{group} = $gid; } else { _error( $data, "unable to map $data->{group} to a gid, group ownership not changed" ); delete $data->{group}; } } if ( exists $data->{owner} and not exists $data->{group} ) { $data->{group} = -1; # chown will leave group unchanged } if ( exists $data->{group} and not exists $data->{owner} ) { $data->{owner} = -1; # chown will leave owner unchanged } } $paths = [@_]; } return _mkpath( $data, $paths ); } sub _mkpath { my $data = shift; my $paths = shift; my ( @created ); foreach my $path ( @{$paths} ) { next unless defined($path) and length($path); $path .= '/' if _IS_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); # Coverage note: It's not clear how we would test the condition: # '-d $parent or $path eq $parent' unless ( -d $parent or $path eq $parent ) { push( @created, _mkpath( $data, [$parent] ) ); } print "mkdir $path\n" if $data->{verbose}; if ( mkdir( $path, $data->{mode} ) ) { push( @created, $path ); if ( exists $data->{owner} ) { # NB: $data->{group} guaranteed to be set during initialisation if ( !chown $data->{owner}, $data->{group}, $path ) { _error( $data, "Cannot change ownership of $path to $data->{owner}:$data->{group}" ); } } if ( exists $data->{chmod} ) { # Coverage note: It's not clear how we would trigger the next # 'if' block. Failure of 'chmod' might first result in a # system error: "Permission denied". if ( !chmod $data->{chmod}, $path ) { _error( $data, "Cannot change permissions of $path to $data->{chmod}" ); } } } else { my $save_bang = $!; # From 'perldoc perlvar': $EXTENDED_OS_ERROR ($^E) is documented # as: # Error information specific to the current operating system. At the # moment, this differs from "$!" under only VMS, OS/2, and Win32 # (and for MacPerl). On all other platforms, $^E is always just the # same as $!. 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 ( $data->{error} ) { push @{ ${ $data->{error} } }, { $path => $e }; } else { _croak("mkdir $path: $e"); } } } } return @created; } sub remove_tree { push @_, {} unless @_ and __is_arg( $_[-1] ); 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 __is_arg( $_[-1] ) ); my ($arg, $data, $paths); if ($old_style) { my ( $verbose, $safe ); ( $paths, $verbose, $safe ) = @_; $data->{verbose} = $verbose; $data->{safe} = defined $safe ? $safe : 0; if ( defined($paths) and length($paths) ) { $paths = [$paths] unless UNIVERSAL::isa( $paths, 'ARRAY' ); } else { _carp("No root path(s) specified\n"); return 0; } } else { my %args_permitted = map { $_ => 1 } ( qw| error keep_root result safe verbose | ); my @bad_args = (); my $arg = pop @_; for my $k (sort keys %{$arg}) { if (! $args_permitted{$k}) { push @bad_args, $k; } else { $data->{$k} = $arg->{$k}; } } _carp("Unrecognized option(s) passed to remove_tree(): @bad_args") if @bad_args; ${ $data->{error} } = [] if exists $data->{error}; ${ $data->{result} } = [] if exists $data->{result}; # Wouldn't it make sense to do some validation on @_ before assigning # to $paths here? # In the $old_style case we guarantee that each path is both defined # and non-empty. We don't check that here, which means we have to # check it later in the first condition in this line: # if ( $ortho_root_length && _is_subdir( $ortho_root, $ortho_cwd ) ) { # Granted, that would be a change in behavior for the two # non-old-style interfaces. $paths = [@_]; } $data->{prefix} = ''; $data->{depth} = 0; my @clean_path; $data->{cwd} = getcwd() or do { _error( $data, "cannot fetch initial working directory" ); return 0; }; for ( $data->{cwd} ) { /\A(.*)\Z/s; $_ = $1 } # untaint for my $p (@$paths) { # need to fixup case and map \ to / on Windows my $ortho_root = _IS_MSWIN32 ? _slash_lc($p) : $p; my $ortho_cwd = _IS_MSWIN32 ? _slash_lc( $data->{cwd} ) : $data->{cwd}; my $ortho_root_length = length($ortho_root); $ortho_root_length-- if _IS_VMS; # don't compare '.' with ']' if ( $ortho_root_length && _is_subdir( $ortho_root, $ortho_cwd ) ) { local $! = 0; _error( $data, "cannot remove path when cwd is $data->{cwd}", $p ); next; } if (_IS_MACOS) { $p = ":$p" unless $p =~ /:/; $p .= ":" unless $p =~ /:\z/; } elsif ( _IS_MSWIN32 ) { $p =~ s{[/\\]\z}{}; } else { $p =~ s{/\z}{}; } push @clean_path, $p; } @{$data}{qw(device inode)} = ( lstat $data->{cwd} )[ 0, 1 ] or do { _error( $data, "cannot stat initial working directory", $data->{cwd} ); return 0; }; return _rmtree( $data, \@clean_path ); } sub _rmtree { my $data = shift; my $paths = shift; my $count = 0; my $curdir = File::Spec->curdir(); my $updir = File::Spec->updir(); my ( @files, $root ); ROOT_DIR: foreach my $root (@$paths) { # since we chdir into each directory, it may not be obvious # to figure out where we are if we generate a message about # a file name. We therefore construct a semi-canonical # filename, anchored from the directory being unlinked (as # opposed to being truly canonical, anchored from the root (/). my $canon = $data->{prefix} ? File::Spec->catfile( $data->{prefix}, $root ) : $root; my ( $ldev, $lino, $perm ) = ( lstat $root )[ 0, 1, 2 ] or next ROOT_DIR; if ( -d _ ) { $root = VMS::Filespec::vmspath( VMS::Filespec::pathify($root) ) if _IS_VMS; if ( !chdir($root) ) { # see if we can escalate privileges to get in # (e.g. funny protection mask such as -w- instead of rwx) # This uses fchmod to avoid traversing outside of the proper # location (CVE-2017-6512) my $root_fh; if (open($root_fh, '<', $root)) { my ($fh_dev, $fh_inode) = (stat $root_fh )[0,1]; $perm &= oct '7777'; my $nperm = $perm | oct '700'; local $@; if ( !( $data->{safe} or $nperm == $perm or !-d _ or $fh_dev ne $ldev or $fh_inode ne $lino or eval { chmod( $nperm, $root_fh ) } ) ) { _error( $data, "cannot make child directory read-write-exec", $canon ); next ROOT_DIR; } close $root_fh; } if ( !chdir($root) ) { _error( $data, "cannot chdir to child", $canon ); next ROOT_DIR; } } my ( $cur_dev, $cur_inode, $perm ) = ( stat $curdir )[ 0, 1, 2 ] or do { _error( $data, "cannot stat current working directory", $canon ); next ROOT_DIR; }; if (_NEED_STAT_CHECK) { ( $ldev eq $cur_dev and $lino eq $cur_inode ) or _croak( "directory $canon changed before chdir, expected dev=$ldev ino=$lino, actual dev=$cur_dev ino=$cur_inode, aborting." ); } $perm &= oct '7777'; # don't forget setuid, setgid, sticky bits my $nperm = $perm | oct '700'; # notabene: 0700 is for making readable in the first place, # it's also intended to change it to writable in case we have # to recurse in which case we are better than rm -rf for # subtrees with strange permissions if ( !( $data->{safe} or $nperm == $perm or chmod( $nperm, $curdir ) ) ) { _error( $data, "cannot make directory read+writeable", $canon ); $nperm = $perm; } my $d; $d = gensym() if $] < 5.006; if ( !opendir $d, $curdir ) { _error( $data, "cannot opendir", $canon ); @files = (); } else { if ( !defined ${^TAINT} or ${^TAINT} ) { # Blindly untaint dir names if taint mode is active @files = map { /\A(.*)\z/s; $1 } readdir $d; } else { @files = readdir $d; } closedir $d; } if (_IS_VMS) { # Deleting large numbers of files from VMS Files-11 # filesystems is faster if done in reverse ASCIIbetical order. # include '.' to '.;' from blead patch #31775 @files = map { $_ eq '.' ? '.;' : $_ } reverse @files; } @files = grep { $_ ne $updir and $_ ne $curdir } @files; if (@files) { # remove the contained files before the directory itself my $narg = {%$data}; @{$narg}{qw(device inode cwd prefix depth)} = ( $cur_dev, $cur_inode, $updir, $canon, $data->{depth} + 1 ); $count += _rmtree( $narg, \@files ); } # restore directory permissions of required now (in case the rmdir # below fails), while we are still in the directory and may do so # without a race via '.' if ( $nperm != $perm and not chmod( $perm, $curdir ) ) { _error( $data, "cannot reset chmod", $canon ); } # don't leave the client code in an unexpected directory chdir( $data->{cwd} ) or _croak("cannot chdir to $data->{cwd} from $canon: $!, aborting."); # ensure that a chdir upwards didn't take us somewhere other # than we expected (see CVE-2002-0435) ( $cur_dev, $cur_inode ) = ( stat $curdir )[ 0, 1 ] or _croak( "cannot stat prior working directory $data->{cwd}: $!, aborting." ); if (_NEED_STAT_CHECK) { ( $data->{device} eq $cur_dev and $data->{inode} eq $cur_inode ) or _croak( "previous directory $data->{cwd} " . "changed before entering $canon, " . "expected dev=$ldev ino=$lino, " . "actual dev=$cur_dev ino=$cur_inode, aborting." ); } if ( $data->{depth} or !$data->{keep_root} ) { if ( $data->{safe} && ( _IS_VMS ? !&VMS::Filespec::candelete($root) : !-w $root ) ) { print "skipped $root\n" if $data->{verbose}; next ROOT_DIR; } if ( _FORCE_WRITABLE and !chmod $perm | oct '700', $root ) { _error( $data, "cannot make directory writeable", $canon ); } print "rmdir $root\n" if $data->{verbose}; if ( rmdir $root ) { push @{ ${ $data->{result} } }, $root if $data->{result}; ++$count; } else { _error( $data, "cannot remove directory", $canon ); if ( _FORCE_WRITABLE && !chmod( $perm, ( _IS_VMS ? VMS::Filespec::fileify($root) : $root ) ) ) { _error( $data, sprintf( "cannot restore permissions to 0%o", $perm ), $canon ); } } } } else { # not a directory $root = VMS::Filespec::vmsify("./$root") if _IS_VMS && !File::Spec->file_name_is_absolute($root) && ( $root !~ m/(?]+/ ); # not already in VMS syntax if ( $data->{safe} && ( _IS_VMS ? !&VMS::Filespec::candelete($root) : !( -l $root || -w $root ) ) ) { print "skipped $root\n" if $data->{verbose}; next ROOT_DIR; } my $nperm = $perm & oct '7777' | oct '600'; if ( _FORCE_WRITABLE and $nperm != $perm and not chmod $nperm, $root ) { _error( $data, "cannot make file writeable", $canon ); } print "unlink $canon\n" if $data->{verbose}; # delete all versions under VMS for ( ; ; ) { if ( unlink $root ) { push @{ ${ $data->{result} } }, $root if $data->{result}; } else { _error( $data, "cannot unlink file", $canon ); _FORCE_WRITABLE and chmod( $perm, $root ) or _error( $data, sprintf( "cannot restore permissions to 0%o", $perm ), $canon ); last; } ++$count; last unless _IS_VMS && lstat $root; } } } return $count; } sub _slash_lc { # fix up slashes and case on MSWin32 so that we can determine that # c:\path\to\dir is underneath C:/Path/To my $path = shift; $path =~ tr{\\}{/}; return lc($path); } 1; __END__ =head1 NAME File::Path - Create or remove directory trees =head1 VERSION 2.18 - released November 4 2020. =head1 SYNOPSIS use File::Path qw(make_path remove_tree); @created = make_path('foo/bar/baz', '/zug/zwang'); @created = make_path('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711, }); make_path('foo/bar/baz', '/zug/zwang', { chmod => 0777, }); $removed_count = remove_tree('foo/bar/baz', '/zug/zwang', { verbose => 1, error => \my $err_list, safe => 1, }); # legacy (interface promoted before v2.00) @created = mkpath('/foo/bar/baz'); @created = mkpath('/foo/bar/baz', 1, 0711); @created = mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711); $removed_count = rmtree('foo/bar/baz', 1, 1); $removed_count = rmtree(['foo/bar/baz', 'blurfl/quux'], 1, 1); # legacy (interface promoted before v2.06) @created = mkpath('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 }); $removed_count = rmtree('foo/bar/baz', '/zug/zwang', { verbose => 1, mode => 0711 }); =head1 DESCRIPTION This module provides a convenient way to create directories of arbitrary depth and to delete an entire directory subtree from the filesystem. The following functions are provided: =over =item make_path( $dir1, $dir2, .... ) =item make_path( $dir1, $dir2, ...., \%opts ) The C function creates the given directories if they don't exist before, much like the Unix command C. The function accepts a list of directories to be created. Its behaviour may be tuned by an optional hashref appearing as the last parameter on the call. The function returns the list of directories actually created during the call; in scalar context the number of directories created. The following keys are recognised in the option hash: =over =item mode => $num The numeric permissions mode to apply to each created directory (defaults to C<0777>), to be modified by the current C. If the directory already exists (and thus does not need to be created), the permissions will not be modified. C is recognised as an alias for this parameter. =item chmod => $num Takes a numeric mode to apply to each created directory (not modified by the current C). If the directory already exists (and thus does not need to be created), the permissions will not be modified. =item verbose => $bool If present, will cause C to print the name of each directory as it is created. By default nothing is printed. =item error => \$err If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store any errors that are encountered. See the L section for more information. If this parameter is not used, certain error conditions may raise a fatal error that will cause the program to halt, unless trapped in an C block. =item owner => $owner =item user => $owner =item uid => $owner If present, will cause any created directory to be owned by C<$owner>. If the value is numeric, it will be interpreted as a uid; otherwise a username is assumed. An error will be issued if the username cannot be mapped to a uid, the uid does not exist or the process lacks the privileges to change ownership. Ownership of directories that already exist will not be changed. C and C are aliases of C. =item group => $group If present, will cause any created directory to be owned by the group C<$group>. If the value is numeric, it will be interpreted as a gid; otherwise a group name is assumed. An error will be issued if the group name cannot be mapped to a gid, the gid does not exist or the process lacks the privileges to change group ownership. Group ownership of directories that already exist will not be changed. make_path '/var/tmp/webcache', {owner=>'nobody', group=>'nogroup'}; =back =item mkpath( $dir ) =item mkpath( $dir, $verbose, $mode ) =item mkpath( [$dir1, $dir2,...], $verbose, $mode ) =item mkpath( $dir1, $dir2,..., \%opt ) The C function provide the legacy interface of C with a different interpretation of the arguments passed. The behaviour and return value of the function is otherwise identical to C. =item remove_tree( $dir1, $dir2, .... ) =item remove_tree( $dir1, $dir2, ...., \%opts ) The C function deletes the given directories and any files and subdirectories they might contain, much like the Unix command C or the Windows commands C and C. The function accepts a list of directories to be removed. (In point of fact, it will also accept filesystem entries which are not directories, such as regular files and symlinks. But, as its name suggests, its intent is to remove trees rather than individual files.) C's behaviour may be tuned by an optional hashref appearing as the last parameter on the call. If an empty string is passed to C, an error will occur. B For security reasons, we strongly advise use of the hashref-as-final-argument syntax -- specifically, with a setting of the C element to a true value. remove_tree( $dir1, $dir2, ...., { safe => 1, ... # other key-value pairs }, ); The function returns the number of files successfully deleted. The following keys are recognised in the option hash: =over =item verbose => $bool If present, will cause C to print the name of each file as it is unlinked. By default nothing is printed. =item safe => $bool When set to a true value, will cause C to skip the files for which the process lacks the required privileges needed to delete files, such as delete privileges on VMS. In other words, the code will make no attempt to alter file permissions. Thus, if the process is interrupted, no filesystem object will be left in a more permissive mode. =item keep_root => $bool When set to a true value, will cause all files and subdirectories to be removed, except the initially specified directories. This comes in handy when cleaning out an application's scratch directory. remove_tree( '/tmp', {keep_root => 1} ); =item result => \$res If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store all files and directories unlinked during the call. If nothing is unlinked, the array will be empty. remove_tree( '/tmp', {result => \my $list} ); print "unlinked $_\n" for @$list; This is a useful alternative to the C key. =item error => \$err If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store any errors that are encountered. See the L section for more information. Removing things is a much more dangerous proposition than creating things. As such, there are certain conditions that C may encounter that are so dangerous that the only sane action left is to kill the program. Use C to trap all that is reasonable (problems with permissions and the like), and let it die if things get out of hand. This is the safest course of action. =back =item rmtree( $dir ) =item rmtree( $dir, $verbose, $safe ) =item rmtree( [$dir1, $dir2,...], $verbose, $safe ) =item rmtree( $dir1, $dir2,..., \%opt ) The C function provide the legacy interface of C with a different interpretation of the arguments passed. The behaviour and return value of the function is otherwise identical to C. B For security reasons, we strongly advise use of the hashref-as-final-argument syntax, specifically with a setting of the C element to a true value. rmtree( $dir1, $dir2, ...., { safe => 1, ... # other key-value pairs }, ); =back =head2 ERROR HANDLING =over 4 =item B The following error handling mechanism is consistent throughout all code paths EXCEPT in cases where the ROOT node is nonexistent. In version 2.11 the maintainers attempted to rectify this inconsistency but too many downstream modules encountered problems. In such case, if you require root node evaluation or error checking prior to calling C or C, you should take additional precautions. =back If C or C encounters an error, a diagnostic message will be printed to C via C (for non-fatal errors) or via C (for fatal errors). If this behaviour is not desirable, the C attribute may be used to hold a reference to a variable, which will be used to store the diagnostics. The variable is made a reference to an array of hash references. Each hash contain a single key/value pair where the key is the name of the file, and the value is the error message (including the contents of C<$!> when appropriate). If a general error is encountered the diagnostic key will be empty. An example usage looks like: remove_tree( 'foo/bar', 'bar/rat', {error => \my $err} ); if ($err && @$err) { for my $diag (@$err) { my ($file, $message) = %$diag; if ($file eq '') { print "general error: $message\n"; } else { print "problem unlinking $file: $message\n"; } } } else { print "No error encountered\n"; } Note that if no errors are encountered, C<$err> will reference an empty array. This means that C<$err> will always end up TRUE; so you need to test C<@$err> to determine if errors occurred. =head2 NOTES C blindly exports C and C into the current namespace. These days, this is considered bad style, but to change it now would break too much code. Nonetheless, you are invited to specify what it is you are expecting to use: use File::Path 'rmtree'; The routines C and C are B exported by default. You must specify which ones you want to use. use File::Path 'remove_tree'; Note that a side-effect of the above is that C and C are no longer exported at all. This is due to the way the C module works. If you are migrating a codebase to use the new interface, you will have to list everything explicitly. But that's just good practice anyway. use File::Path qw(remove_tree rmtree); =head3 API CHANGES The API was changed in the 2.0 branch. For a time, C and C tried, unsuccessfully, to deal with the two different calling mechanisms. This approach was considered a failure. The new semantics are now only available with C and C. The old semantics are only available through C and C. Users are strongly encouraged to upgrade to at least 2.08 in order to avoid surprises. =head3 SECURITY CONSIDERATIONS There were race conditions in the 1.x implementations of File::Path's C function (although sometimes patched depending on the OS distribution or platform). The 2.0 version contains code to avoid the problem mentioned in CVE-2002-0435. See the following pages for more information: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=286905 http://www.nntp.perl.org/group/perl.perl5.porters/2005/01/msg97623.html http://www.debian.org/security/2005/dsa-696 Additionally, unless the C parameter is set (or the third parameter in the traditional interface is TRUE), should a C be interrupted, files that were originally in read-only mode may now have their permissions set to a read-write (or "delete OK") mode. The following CVE reports were previously filed against File-Path and are believed to have been addressed: =over 4 =item * L =item * L =back In February 2017 the cPanel Security Team reported an additional vulnerability in File-Path. The C logic to make directories traversable can be abused to set the mode on an attacker-chosen file to an attacker-chosen value. This is due to the time-of-check-to-time-of-use (TOCTTOU) race condition (L) between the C that decides the inode is a directory and the C that tries to make it user-rwx. CPAN versions 2.13 and later incorporate a patch provided by John Lightsey to address this problem. This vulnerability has been reported as CVE-2017-6512. =head1 DIAGNOSTICS FATAL errors will cause the program to halt (C), since the problem is so severe that it would be dangerous to continue. (This can always be trapped with C, but it's not a good idea. Under the circumstances, dying is the best thing to do). SEVERE errors may be trapped using the modern interface. If the they are not trapped, or if the old interface is used, such an error will cause the program will halt. All other errors may be trapped using the modern interface, otherwise they will be Ced about. Program execution will not be halted. =over 4 =item mkdir [path]: [errmsg] (SEVERE) C was unable to create the path. Probably some sort of permissions error at the point of departure or insufficient resources (such as free inodes on Unix). =item No root path(s) specified C was not given any paths to create. This message is only emitted if the routine is called with the traditional interface. The modern interface will remain silent if given nothing to do. =item No such file or directory On Windows, if C gives you this warning, it may mean that you have exceeded your filesystem's maximum path length. =item cannot fetch initial working directory: [errmsg] C attempted to determine the initial directory by calling C, but the call failed for some reason. No attempt will be made to delete anything. =item cannot stat initial working directory: [errmsg] C attempted to stat the initial directory (after having successfully obtained its name via C), however, the call failed for some reason. No attempt will be made to delete anything. =item cannot chdir to [dir]: [errmsg] C attempted to set the working directory in order to begin deleting the objects therein, but was unsuccessful. This is usually a permissions issue. The routine will continue to delete other things, but this directory will be left intact. =item directory [dir] changed before chdir, expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL) C recorded the device and inode of a directory, and then moved into it. It then performed a C on the current directory and detected that the device and inode were no longer the same. As this is at the heart of the race condition problem, the program will die at this point. =item cannot make directory [dir] read+writeable: [errmsg] C attempted to change the permissions on the current directory to ensure that subsequent unlinkings would not run into problems, but was unable to do so. The permissions remain as they were, and the program will carry on, doing the best it can. =item cannot read [dir]: [errmsg] C tried to read the contents of the directory in order to acquire the names of the directory entries to be unlinked, but was unsuccessful. This is usually a permissions issue. The program will continue, but the files in this directory will remain after the call. =item cannot reset chmod [dir]: [errmsg] C, after having deleted everything in a directory, attempted to restore its permissions to the original state but failed. The directory may wind up being left behind. =item cannot remove [dir] when cwd is [dir] The current working directory of the program is F and you are attempting to remove an ancestor, such as F. The directory tree is left untouched. The solution is to C out of the child directory to a place outside the directory tree to be removed. =item cannot chdir to [parent-dir] from [child-dir]: [errmsg], aborting. (FATAL) C, after having deleted everything and restored the permissions of a directory, was unable to chdir back to the parent. The program halts to avoid a race condition from occurring. =item cannot stat prior working directory [dir]: [errmsg], aborting. (FATAL) C was unable to stat the parent directory after having returned from the child. Since there is no way of knowing if we returned to where we think we should be (by comparing device and inode) the only way out is to C. =item previous directory [parent-dir] changed before entering [child-dir], expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL) When C returned from deleting files in a child directory, a check revealed that the parent directory it returned to wasn't the one it started out from. This is considered a sign of malicious activity. =item cannot make directory [dir] writeable: [errmsg] Just before removing a directory (after having successfully removed everything it contained), C attempted to set the permissions on the directory to ensure it could be removed and failed. Program execution continues, but the directory may possibly not be deleted. =item cannot remove directory [dir]: [errmsg] C attempted to remove a directory, but failed. This may be because some objects that were unable to be removed remain in the directory, or it could be a permissions issue. The directory will be left behind. =item cannot restore permissions of [dir] to [0nnn]: [errmsg] After having failed to remove a directory, C was unable to restore its permissions from a permissive state back to a possibly more restrictive setting. (Permissions given in octal). =item cannot make file [file] writeable: [errmsg] C attempted to force the permissions of a file to ensure it could be deleted, but failed to do so. It will, however, still attempt to unlink the file. =item cannot unlink file [file]: [errmsg] C failed to remove a file. Probably a permissions issue. =item cannot restore permissions of [file] to [0nnn]: [errmsg] After having failed to remove a file, C was also unable to restore the permissions on the file to a possibly less permissive setting. (Permissions given in octal). =item unable to map [owner] to a uid, ownership not changed"); C was instructed to give the ownership of created directories to the symbolic name [owner], but C did not return the corresponding numeric uid. The directory will be created, but ownership will not be changed. =item unable to map [group] to a gid, group ownership not changed C was instructed to give the group ownership of created directories to the symbolic name [group], but C did not return the corresponding numeric gid. The directory will be created, but group ownership will not be changed. =back =head1 SEE ALSO =over 4 =item * L Allows files and directories to be moved to the Trashcan/Recycle Bin (where they may later be restored if necessary) if the operating system supports such functionality. This feature may one day be made available directly in C. =item * L When removing directory trees, if you want to examine each file to decide whether to delete it (and possibly leaving large swathes alone), F offers a convenient and flexible approach to examining directory trees. =back =head1 BUGS AND LIMITATIONS The following describes F limitations and how to report bugs. =head2 MULTITHREADED APPLICATIONS F C and C will not work with multithreaded applications due to its use of C. At this time, no warning or error is generated in this situation. You will certainly encounter unexpected results. The implementation that surfaces this limitation will not be changed. See the F module for functionality similar to F but which does not C. =head2 NFS Mount Points F is not responsible for triggering the automounts, mirror mounts, and the contents of network mounted filesystems. If your NFS implementation requires an action to be performed on the filesystem in order for F to perform operations, it is strongly suggested you assure filesystem availability by reading the root of the mounted filesystem. =head2 REPORTING BUGS Please report all bugs on the RT queue, either via the web interface: L or by email: bug-File-Path@rt.cpan.org In either case, please B patches to the bug report rather than including them inline in the web post or the body of the email. You can also send pull requests to the Github repository: L =head1 ACKNOWLEDGEMENTS Paul Szabo identified the race condition originally, and Brendan O'Dea wrote an implementation for Debian that addressed the problem. That code was used as a basis for the current code. Their efforts are greatly appreciated. Gisle Aas made a number of improvements to the documentation for 2.07 and his advice and assistance is also greatly appreciated. =head1 AUTHORS Prior authors and maintainers: Tim Bunce, Charles Bailey, and David Landgren >. Current maintainers are Richard Elberger > and James (Jim) Keenan >. =head1 CONTRIBUTORS Contributors to File::Path, in alphabetical order by first name. =over 1 =item > =item Charlie Gonzalez > =item Craig A. Berry > =item James E Keenan > =item John Lightsey > =item Nigel Horne > =item Richard Elberger > =item Ryan Yee > =item Skye Shaw > =item Tom Lutz > =item Will Sheppard > =back =head1 COPYRIGHT This module is copyright (C) Charles Bailey, Tim Bunce, David Landgren, James Keenan and Richard Elberger 1995-2020. All rights reserved. =head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE9f207e19/File/GlobMapper.pm=Cpackage 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.001'; @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 = File::GlobMapper->new($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__ =head1 NAME File::GlobMapper - Extend File Glob to Allow Input and Output Files =head1 SYNOPSIS use File::GlobMapper qw( globmap ); my $aref = globmap $input => $output or die $File::GlobMapper::Error ; my $gm = File::GlobMapper->new( $input => $output ) or die $File::GlobMapper::Error ; =head1 DESCRIPTION This module needs Perl5.005 or better. This module takes the existing C module as a starting point and extends it to allow new filenames to be derived from the files matched by C. This can be useful when carrying out batch operations on multiple files that have both an input filename and output filename and the output file can be derived from the input filename. Examples of operations where this can be useful include, file renaming, file copying and file compression. =head2 Behind The Scenes To help explain what C does, consider what code you would write if you wanted to rename all files in the current directory that ended in C<.tar.gz> to C<.tgz>. So say these files are in the current directory alpha.tar.gz beta.tar.gz gamma.tar.gz and they need renamed to this alpha.tgz beta.tgz gamma.tgz Below is a possible implementation of a script to carry out the rename (error cases have been omitted) foreach my $old ( glob "*.tar.gz" ) { my $new = $old; $new =~ s#(.*)\.tar\.gz$#$1.tgz# ; rename $old => $new or die "Cannot rename '$old' to '$new': $!\n; } Notice that a file glob pattern C<*.tar.gz> was used to match the C<.tar.gz> files, then a fairly similar regular expression was used in the substitute to allow the new filename to be created. Given that the file glob is just a cut-down regular expression and that it has already done a lot of the hard work in pattern matching the filenames, wouldn't it be handy to be able to use the patterns in the fileglob to drive the new filename? Well, that's I what C does. Here is same snippet of code rewritten using C for my $pair (globmap '<*.tar.gz>' => '<#1.tgz>' ) { my ($from, $to) = @$pair; rename $from => $to or die "Cannot rename '$old' to '$new': $!\n; } So how does it work? Behind the scenes the C function does a combination of a file glob to match existing filenames followed by a substitute to create the new filenames. Notice how both parameters to C are strings that are delimited by <>. This is done to make them look more like file globs - it is just syntactic sugar, but it can be handy when you want the strings to be visually distinctive. The enclosing <> are optional, so you don't have to use them - in fact the first thing globmap will do is remove these delimiters if they are present. The first parameter to C, C<*.tar.gz>, is an I. Once the enclosing "< ... >" is removed, this is passed (more or less) unchanged to C to carry out a file match. Next the fileglob C<*.tar.gz> is transformed behind the scenes into a full Perl regular expression, with the additional step of wrapping each transformed wildcard metacharacter sequence in parenthesis. In this case the input fileglob C<*.tar.gz> will be transformed into this Perl regular expression ([^/]*)\.tar\.gz Wrapping with parenthesis allows the wildcard parts of the Input File Glob to be referenced by the second parameter to C, C<#1.tgz>, the I. This parameter operates just like the replacement part of a substitute command. The difference is that the C<#1> syntax is used to reference sub-patterns matched in the input fileglob, rather than the C<$1> syntax that is used with perl regular expressions. In this case C<#1> is used to refer to the text matched by the C<*> in the Input File Glob. This makes it easier to use this module where the parameters to C are typed at the command line. The final step involves passing each filename matched by the C<*.tar.gz> file glob through the derived Perl regular expression in turn and expanding the output fileglob using it. The end result of all this is a list of pairs of filenames. By default that is what is returned by C. In this example the data structure returned will look like this ( ['alpha.tar.gz' => 'alpha.tgz'], ['beta.tar.gz' => 'beta.tgz' ], ['gamma.tar.gz' => 'gamma.tgz'] ) Each pair is an array reference with two elements - namely the I filename, that C has matched, and a I filename that is derived from the I filename. =head2 Limitations C has been kept simple deliberately, so it isn't intended to solve all filename mapping operations. Under the hood C (or for older versions of Perl, C) is used to match the files, so you will never have the flexibility of full Perl regular expression. =head2 Input File Glob The syntax for an Input FileGlob is identical to C, except for the following =over 5 =item 1. No nested {} =item 2. Whitespace does not delimit fileglobs. =item 3. The use of parenthesis can be used to capture parts of the input filename. =item 4. If an Input glob matches the same file more than once, only the first will be used. =back The syntax =over 5 =item B<~> =item B<~user> =item B<.> Matches a literal '.'. Equivalent to the Perl regular expression \. =item B<*> Matches zero or more characters, except '/'. Equivalent to the Perl regular expression [^/]* =item B Matches zero or one character, except '/'. Equivalent to the Perl regular expression [^/]? =item B<\> Backslash is used, as usual, to escape the next character. =item B<[]> Character class. =item B<{,}> Alternation =item B<()> Capturing parenthesis that work just like perl =back Any other character it taken literally. =head2 Output File Glob The Output File Glob is a normal string, with 2 glob-like features. The first is the '*' metacharacter. This will be replaced by the complete filename matched by the input file glob. So *.c *.Z The second is Output FileGlobs take the =over 5 =item "*" The "*" character will be replaced with the complete input filename. =item #1 Patterns of the form /#\d/ will be replaced with the =back =head2 Returned Data =head1 EXAMPLES =head2 A Rename script Below is a simple "rename" script that uses C to determine the source and destination filenames. use File::GlobMapper qw(globmap) ; use File::Copy; die "rename: Usage rename 'from' 'to'\n" unless @ARGV == 2 ; my $fromGlob = shift @ARGV; my $toGlob = shift @ARGV; my $pairs = globmap($fromGlob, $toGlob) or die $File::GlobMapper::Error; for my $pair (@$pairs) { my ($from, $to) = @$pair; move $from => $to ; } Here is an example that renames all c files to cpp. $ rename '*.c' '#1.cpp' =head2 A few example globmaps Below are a few examples of globmaps To copy all your .c file to a backup directory '' '' If you want to compress all '' '<*.gz>' To uncompress '' '' =head1 SEE ALSO L =head1 AUTHOR The I module was written by Paul Marquess, F. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILEa3d4c093/File/Find.pm"package File::Find; use 5.006; use strict; use warnings; use warnings::register; our $VERSION = '1.43'; use Exporter 'import'; require Cwd; our @EXPORT = qw(find finddepth); use strict; my $Is_VMS = $^O eq 'VMS'; my $Is_Win32 = $^O eq 'MSWin32'; 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; } sub _is_absolute { return $_[0] =~ m|^(?:[A-Za-z]:)?/| if $Is_Win32; return substr($_[0], 0, 1) eq '/'; } sub _is_root { return $_[0] =~ m|^(?:[A-Za-z]:)?/\z| if $Is_Win32; return $_[0] eq '/'; } sub PathCombine($$) { my ($Base,$Name) = @_; my $AbsName; if (_is_absolute($Name)) { $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; } } my $Link = readlink($AbsName); # canonicalize directory separators $Link =~ s|\\|/|g if $Is_Win32; $NewName= PathCombine($AbsName, $Link); 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; return unless @_; 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 reversible, # 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 = $wanted->{follow}; $follow = $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; $top_item = VMS::Filespec::unixify($top_item) if $Is_VMS; ($topdev,$topino,$topmode,$topnlink) = $follow ? stat $top_item : lstat $top_item; # canonicalize directory separators $top_item =~ s|[/\\]|/|g if $Is_Win32; # no trailing / unless path is root $top_item =~ s|/\z|| unless _is_root($top_item); $Is_Dir= 0; if ($follow) { if (_is_absolute($top_item)) { $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)) { ($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_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 = _is_root($p_dir) ? $p_dir : "$p_dir/"; } local ($dir, $name, $prune); 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; 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) { die "directory (" . ($p_dir ne '/' ? $p_dir : '') . "/) $dir_rel is still tainted"; } else { # $untaint_skip == 1 next; } } } unless (chdir ($Is_VMS && $udir !~ /[\/\[<]+/ ? "./$udir" : $udir)) { warnings::warnif "Can't cd to (" . ($p_dir ne '/' ? $p_dir : '') . "/) $udir: $!\n"; next; } $CdLvl++; } $dir= $dir_name; # $File::Find::dir # Get the list of files in the current directory. my $dh; unless (opendir $dh, ($no_chdir ? $dir_name : $File::Find::current_dir)) { warnings::warnif "Can't opendir($dir_name): $!\n"; next; } @filenames = readdir $dh; closedir($dh); @filenames = $pre_process->(@filenames) if $pre_process; push @Stack,[$CdLvl,$dir_name,"",-2] if $post_process; # default: use whatever was specified # (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 (thus ensuring # 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_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 ($^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 = _is_root($p_dir) ? "$p_dir$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 ( 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; $dir_pref = _is_root($p_dir) ? $p_dir : "$p_dir/"; $loc_pref = _is_root($dir_loc) ? $dir_loc : "$dir_loc/"; local ($dir, $name, $fullname, $prune); 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; 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; } } $dir = $dir_name; # $File::Find::dir # Get the list of files in the current directory. my $dh; unless (opendir $dh, ($no_chdir ? $dir_loc : $File::Find::current_dir)) { warnings::warnif "Can't opendir($dir_loc): $!\n"; next; } @filenames = readdir $dh; closedir($dh); 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) { $fullname = undef; if (ref $dangling_symlinks eq 'CODE') { $dangling_symlinks->($FN, $dir_pref); } else { warnings::warnif "$dir_pref$FN is a dangling symbolic link\n"; } } else { $fullname = $loc_pref . $FN; } $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; $dir_name = _is_root($p_dir) ? "$p_dir$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 ( 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' ) { # RT #122547 my %valid_options = map {$_ => 1} qw( wanted bydepth preprocess postprocess follow follow_fast follow_skip dangling_symlinks no_chdir untaint untaint_pattern untaint_skip ); my @invalid_options = (); for my $v (keys %{$wanted}) { push @invalid_options, $v unless exists $valid_options{$v}; } warn "Invalid option(s): @invalid_options" if @invalid_options; 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./]+)$|; # 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; # 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; __END__ =head1 NAME File::Find - Traverse a directory tree. =head1 SYNOPSIS use File::Find; find(\&wanted, @directories_to_search); sub wanted { ... } use File::Find; finddepth(\&wanted, @directories_to_search); sub wanted { ... } use File::Find; find({ wanted => \&process, follow => 1 }, '.'); =head1 DESCRIPTION These are functions for searching through directory trees doing work on each file found similar to the Unix I command. File::Find exports two functions, C and C. They work similarly but have subtle differences. =over 4 =item B find(\&wanted, @directories); find(\%options, @directories); C does a depth-first search over the given C<@directories> in the order they are given. For each file or directory found, it calls the C<&wanted> subroutine. (See below for details on how to use the C<&wanted> function). Additionally, for each directory found, it will C into that directory and continue the search, invoking the C<&wanted> function on each file or subdirectory in the directory. =item B finddepth(\&wanted, @directories); finddepth(\%options, @directories); C works just like C except that it invokes the C<&wanted> function for a directory I invoking it for the directory's contents. It does a postorder traversal instead of a preorder traversal, working from the bottom of the directory tree up where C works from the top of the tree down. =back Despite the name of the C function, both C and C perform a depth-first search of the directory hierarchy. =head2 %options The first argument to C is either a code reference to your C<&wanted> function, or a hash reference describing the operations to be performed for each file. The code reference is described in L below. Here are the possible keys for the hash: =over 4 =item C The value should be a code reference. This code reference is described in L below. The C<&wanted> subroutine is mandatory. =item C Reports the name of a directory only AFTER all its entries have been reported. Entry point C is a shortcut for specifying C<< { bydepth => 1 } >> in the first argument of C. =item C The value should be a code reference. This code reference is used to preprocess the current directory. The name of the currently processed directory is in C<$File::Find::dir>. Your preprocessing function is called after C, but before the loop that calls the C function. It is called with a list of strings (actually file/directory names) and is expected to return a list of strings. The code can be used to sort the file/directory names alphabetically, numerically, or to filter out directory entries based on their name alone. When I or I are in effect, C is a no-op. =item C The value should be a code reference. It is invoked just before leaving the currently processed directory. It is called in void context with no arguments. The name of the current directory is in C<$File::Find::dir>. This hook is handy for summarizing a directory, such as calculating its disk usage. When I or I are in effect, C is a no-op. =item C Causes symbolic links to be followed. Since directory trees with symbolic links (followed) may contain files more than once and may even have cycles, a hash has to be built up with an entry for each file. This might be expensive both in space and time for a large directory tree. See L and L below. If either I or I is in effect: =over 4 =item * It is guaranteed that an I has been called before the user's C function is called. This enables fast file checks involving C<_>. Note that this guarantee no longer holds if I or I are not set. =item * There is a variable C<$File::Find::fullname> which holds the absolute pathname of the file with all symbolic links resolved. If the link is a dangling symbolic link, then fullname will be set to C. =back =item C This is similar to I except that it may report some files more than once. It does detect cycles, however. Since only symbolic links have to be hashed, this is much cheaper both in space and time. If processing a file more than once (by the user's C function) is worse than just taking time, the option I should be used. =item C C, which is the default, causes all files which are neither directories nor symbolic links to be ignored if they are about to be processed a second time. If a directory or a symbolic link are about to be processed a second time, File::Find dies. C causes File::Find to die if any file is about to be processed a second time. C causes File::Find to ignore any duplicate files and directories but to proceed normally otherwise. =item C Specifies what to do with symbolic links whose target doesn't exist. If true and a code reference, will be called with the symbolic link name and the directory it lives in as arguments. Otherwise, if true and warnings are on, a warning of the form C<"symbolic_link_name is a dangling symbolic link\n"> will be issued. If false, the dangling symbolic link will be silently ignored. =item C Does not C to each directory as it recurses. The C function will need to be aware of this, of course. In this case, C<$_> will be the same as C<$File::Find::name>. =item C If find is used in L (-T command line switch or if EUID != UID or if EGID != GID), then internally directory names have to be untainted before they can be C'd to. Therefore they are checked against a regular expression I. Note that all names passed to the user's C function are still tainted. If this option is used while not in taint-mode, C is a no-op. =item C See above. This should be set using the C quoting operator. The default is set to C. Note that the parentheses are vital. =item C If set, a directory which fails the I is skipped, including all its sub-directories. The default is to C in such a case. =back =head2 The wanted function The C function does whatever verifications you want on each file and directory. Note that despite its name, the C function is a generic callback function, and does B tell File::Find if a file is "wanted" or not. In fact, its return value is ignored. The wanted function takes no arguments but rather does its work through a collection of variables. =over 4 =item C<$File::Find::dir> is the current directory name, =item C<$_> is the current filename within that directory =item C<$File::Find::name> is the complete pathname to the file. =back The above variables have all been localized and may be changed without affecting data outside of the wanted function. For example, when examining the file F you will have: $File::Find::dir = /some/path/ $_ = foo.ext $File::Find::name = /some/path/foo.ext You are chdir()'d to C<$File::Find::dir> when the function is called, unless C was specified. Note that when changing to directories is in effect, the root directory (F) is a somewhat special case inasmuch as the concatenation of C<$File::Find::dir>, C<'/'> and C<$_> is not literally equal to C<$File::Find::name>. The table below summarizes all variants: $File::Find::name $File::Find::dir $_ default / / . no_chdir=>0 /etc / etc /etc/x /etc x no_chdir=>1 / / / /etc / /etc /etc/x /etc /etc/x When C or C are in effect, there is also a C<$File::Find::fullname>. The function may set C<$File::Find::prune> to prune the tree unless C was specified. Unless C or C is specified, for compatibility reasons (find.pl, find2perl) there are in addition the following globals available: C<$File::Find::topdir>, C<$File::Find::topdev>, C<$File::Find::topino>, C<$File::Find::topmode> and C<$File::Find::topnlink>. This library is useful for the C tool (distributed as part of the App-find2perl CPAN distribution), which when fed, find2perl / -name .nfs\* -mtime +7 \ -exec rm -f {} \; -o -fstype nfs -prune produces something like: sub wanted { /^\.nfs.*\z/s && (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_)) && int(-M _) > 7 && unlink($_) || ($nlink || (($dev, $ino, $mode, $nlink, $uid, $gid) = lstat($_))) && $dev < 0 && ($File::Find::prune = 1); } Notice the C<_> in the above C: the C<_> is a magical filehandle that caches the information from the preceding C, C, or filetest. Here's another interesting wanted function. It will find all symbolic links that don't resolve: sub wanted { -l && !-e && print "bogus link: $File::Find::name\n"; } Note that you may mix directories and (non-directory) files in the list of directories to be searched by the C function. find(\&wanted, "./foo", "./bar", "./baz/epsilon"); In the example above, no file in F<./baz/> other than F<./baz/epsilon> will be evaluated by C. See also the script C on CPAN for a nice application of this module. =head1 WARNINGS If you run your program with the C<-w> switch, or if you use the C pragma, File::Find will report warnings for several weird situations. You can disable these warnings by putting the statement no warnings 'File::Find'; in the appropriate scope. See L for more info about lexical warnings. =head1 BUGS AND CAVEATS =over 4 =item $dont_use_nlink You can set the variable C<$File::Find::dont_use_nlink> to 0 if you are sure the filesystem you are scanning reflects the number of subdirectories in the parent directory's C count. If you do set C<$File::Find::dont_use_nlink> to 0, you may notice an improvement in speed at the risk of not recursing into subdirectories if a filesystem doesn't populate C as expected. C<$File::Find::dont_use_nlink> now defaults to 1 on all platforms. =item symlinks Be aware that the option to follow symbolic links can be dangerous. Depending on the structure of the directory tree (including symbolic links to directories) you might traverse a given (physical) directory more than once (only if C is in effect). Furthermore, deleting or changing files in a symbolically linked directory might cause very unpleasant surprises, since you delete or change files in an unknown directory. =back =head1 HISTORY File::Find used to produce incorrect results if called recursively. During the development of perl 5.8 this bug was fixed. The first fixed version of File::Find was 1.01. =head1 SEE ALSO L, find2perl. =cut FILEcbb56b69/File/Copy.pm?0# 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.035007; use strict; use warnings; no warnings 'newline'; no warnings 'experimental::builtin'; use builtin 'blessed'; use overload; use File::Spec; use Config; # We want HiRes stat and utime if available BEGIN { eval q{ use Time::HiRes qw( stat utime ) } }; our(@ISA, @EXPORT, @EXPORT_OK, $VERSION, $Too_Big, $Syscopy_is_copy); sub copy; sub syscopy; sub cp; sub mv; $VERSION = '2.41'; 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; } sub _catname { my($from, $to) = @_; if (not defined &basename) { require File::Basename; File::Basename->import( 'basename' ); } return File::Spec->catfile($to, basename($from)); } # _eq($from, $to) tells whether $from and $to are identical sub _eq { my ($from, $to) = map { 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)"); return 0; } if (!$from_a_handle && !$to_a_handle && -d $to && ! -d $from) { $to = _catname($from, $to); } if ((($Config{d_symlink} && $Config{d_readlink}) || $Config{d_link}) && !($^O eq 'os2')) { my @fs = stat($from); if (@fs) { my @ts = stat($to); if (@ts && $fs[0] == $ts[0] && $fs[1] eq $ts[1] && !-p $from) { carp("'$from' and '$to' are identical (not copied)"); return 0; } } } elsif (_eq($from, $to)) { carp("'$from' and '$to' are identical (not copied)"); return 0; } 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 'MSWin32') ) { if ($^O eq 'VMS' && -e $from && ! -d $to && ! -d $from) { # VMS natively inherits path components from the source of a # copy, but we want the Unixy behavior of inheriting from # the current working directory. Also, default in a trailing # dot for null file types. $to = VMS::Filespec::rmsexpand(VMS::Filespec::vmsify($to), '.'); # Get rid of the old versions to be like UNIX 1 while unlink $to; } return syscopy($from, $to) || 0; } my $closefrom = 0; my $closeto = 0; my ($status, $r, $buf); local($\) = ''; my $from_h; if ($from_a_handle) { $from_h = $from; } else { 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_h = \do { local *FH }; # XXX is this line obsolete? 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 cp { my($from,$to) = @_; my(@fromstat) = stat $from; my(@tostat) = stat $to; my $perm; return 0 unless copy(@_) and @fromstat; if (@tostat) { $perm = $tostat[2]; } else { $perm = $fromstat[2] & ~(umask || 0); @tostat = stat $to; } # Might be more robust to look for S_I* in Fcntl, but we're # trying to avoid dependence on any XS-containing modules, # since File::Copy is used during the Perl build. $perm &= 07777; if ($perm & 06000) { croak("Unable to check setuid/setgid permissions for $to: $!") unless @tostat; if ($perm & 04000 and # setuid $fromstat[4] != $tostat[4]) { # owner must match $perm &= ~06000; } if ($perm & 02000 && $> != 0) { # if not root, setgid my $ok = $fromstat[5] == $tostat[5]; # group must match if ($ok) { # and we must be in group $ok = grep { $_ == $fromstat[5] } split /\s+/, $) } $perm &= ~06000 unless $ok; } } return 0 unless @tostat; return 1 if $perm == ($tostat[2] & 07777); return eval { chmod $perm, $to; } ? 1 : 0; } sub _move { croak("Usage: move(FROM, TO) ") unless @_ == 3; my($from,$to,$fallback) = @_; 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; } if ($^O eq 'VMS' && -e $from && ! -d $to && ! -d $from) { # VMS natively inherits path components from the source of a # copy, but we want the Unixy behavior of inheriting from # the current working directory. Also, default in a trailing # dot for null file types. $to = VMS::Filespec::rmsexpand(VMS::Filespec::vmsify($to), '.'); # Get rid of the old versions to be like UNIX 1 while unlink $to; } return 1 if rename $from, $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__}; $fallback->($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; } sub move { _move(@_,\©); } sub mv { _move(@_,\&cp); } # &syscopy is an XSUB under OS/2 unless (defined &syscopy) { if ($^O eq 'VMS') { *syscopy = \&rmscopy; } 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); }; } else { $Syscopy_is_copy = 1; *syscopy = \© } } 1; __END__ =head1 NAME File::Copy - Copy files or filehandles =head1 SYNOPSIS use File::Copy; copy("sourcefile", "destinationfile") or die "Copy failed: $!"; copy("Copy.pm", \*STDOUT); move("/dev1/sourcefile", "/dev2/destinationfile"); use File::Copy "cp"; my $n = FileHandle->new("/a/file", "r"); cp($n, "x"); =head1 DESCRIPTION The File::Copy module provides two basic functions, C and C, which are useful for getting the contents of a file from one place to another. =over 4 =item copy X X The C function takes two parameters: a file to copy from and a file to copy to. Either argument may be a string, a FileHandle reference or a FileHandle glob. Obviously, if the first argument is a filehandle of some sort, it will be read from, and if it is a file I it will be opened for reading. Likewise, the second argument will be written to. If the second argument does not exist but the parent directory does exist, then it will be created. Trying to copy a file into a non-existent directory is an error. Trying to copy a file on top of itself is also an error. C will not overwrite read-only files. If the destination (second argument) already exists and is a directory, and the source (first argument) is not a filehandle, then the source file will be copied into the directory specified by the destination, using the same base name as the source file. It's a failure to have a filehandle as the source when the destination is a directory. B Files are opened in binary mode where applicable. To get a consistent behaviour when copying from a filehandle to a file, use C on the filehandle. An optional third parameter can be used to specify the buffer size used for copying. This is the number of bytes from the first file, that will be held in memory at any given time, before being written to the second file. The default buffer size depends upon the file, but will generally be the whole file (up to 2MB), or 1k for filehandles that do not reference files (eg. sockets). You may use the syntax C to get at the C alias for this function. The syntax is I the same. The behavior is nearly the same as well: as of version 2.15, C will preserve the source file's permission bits like the shell utility C would do with default options, while C uses the default permissions for the target file (which may depend on the process' C, file ownership, inherited ACLs, etc.). That is, if the destination file already exists, C will leave its permissions unchanged; otherwise the permissions are taken from the source file and modified by the C. If an error occurs in setting permissions, C will return 0, regardless of whether the file was successfully copied. =item move X X X The C function also takes two parameters: the current name and the intended name of the file to be moved. If the destination already exists and is a directory, and the source is not a directory, then the source file will be renamed into the directory specified by the destination. If possible, move() will simply rename the file. Otherwise, it copies the file to the new location and deletes the original. If an error occurs during this copy-and-delete process, you may be left with a (possibly partial) copy of the file under the destination name. You may use the C alias for this function in the same way that you may use the C alias for C. =item syscopy X File::Copy also provides the C routine, which copies the file specified in the first parameter to the file specified in the second parameter, preserving OS-specific attributes and file structure. For Unix systems, this is equivalent to the simple C routine, which doesn't preserve OS-specific attributes. For VMS systems, this calls the C routine (see below). For OS/2 systems, this calls the C XSUB directly. For Win32 systems, this calls C. B is defined (OS/2, VMS and Win32)>: If both arguments to C are not file handles, then C will perform a "system copy" of the input file to a new output file, in order to preserve file attributes, indexed file structure, I The buffer size parameter is ignored. If either argument to C is a handle to an opened file, then data is copied using Perl operators, and no effort is made to preserve file attributes or record structure. The system copy routine may also be called directly under VMS and OS/2 as C (or under VMS as C, which is the routine that does the actual work for syscopy). =item rmscopy($from,$to[,$date_flag]) X The first and second arguments may be strings, typeglobs, typeglob references, or objects inheriting from IO::Handle; they are used in all cases to obtain the I of the input and output files, respectively. The name and type of the input file are used as defaults for the output file, if necessary. A new version of the output file is always created, which inherits the structure and RMS attributes of the input file, except for owner and protections (and possibly timestamps; see below). All data from the input file is copied to the output file; if either of the first two parameters to C is a file handle, its position is unchanged. (Note that this means a file handle pointing to the output file will be associated with an old version of that file after C returns, not the newly created version.) The third parameter is an integer flag, which tells C how to handle timestamps. If it is E 0, none of the input file's timestamps are propagated to the output file. If it is E 0, then it is interpreted as a bitmask: if bit 0 (the LSB) is set, then timestamps other than the revision date are propagated; if bit 1 is set, the revision date is propagated. If the third parameter to C is 0, then it behaves much like the DCL COPY command: if the name or type of the output file was explicitly specified, then no timestamps are propagated, but if they were taken implicitly from the input filespec, then all timestamps other than the revision date are propagated. If this parameter is not supplied, it defaults to 0. C is VMS specific and cannot be exported; it must be referenced by its full name, e.g.: File::Copy::rmscopy($from, $to) or die $!; Like C, C returns 1 on success. If an error occurs, it sets C<$!>, deletes the output file, and returns 0. =back =head1 RETURN All functions return 1 on success, 0 on failure. $! will be set if an error was encountered. =head1 NOTES Before calling copy() or move() on a filehandle, the caller should close or flush() the file to avoid writes being lost. Note that this is the case even for move(), because it may actually copy the file, depending on the OS-specific implementation, and the underlying filesystem(s). =head1 AUTHOR File::Copy was written by Aaron Sherman Iajs@ajs.comE> in 1995, and updated by Charles Bailey Ibailey@newman.upenn.eduE> in 1996. =cut FILE75585812/File/Basename.pm+=head1 NAME File::Basename - Parse file paths into directory, filename and suffix. =head1 SYNOPSIS use File::Basename; my ($name, $path, $suffix) = fileparse($fullname, @suffixlist); my $name = fileparse($fullname, @suffixlist); my $basename = basename($fullname, @suffixlist); my $dirname = dirname($fullname); =head1 DESCRIPTION These routines allow you to parse file paths into their directory, filename and suffix. B: C and C emulate the behaviours, and quirks, of the shell and C functions of the same name. See each function's documentation for details. If your concern is just parsing paths it is safer to use L's C and C methods. It is guaranteed that # Where $path_separator is / for Unix, \ for Windows, etc... dirname($path) . $path_separator . basename($path); is equivalent to the original path for all systems but VMS. =cut package File::Basename; # File::Basename is used during the Perl build, when the re extension may # not be available, but we only actually need it if running under tainting. BEGIN { if (${^TAINT}) { require re; re->import('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.86"; fileparse_set_fstype($^O); =over 4 =item C X my($filename, $dirs, $suffix) = fileparse($path); my($filename, $dirs, $suffix) = fileparse($path, @suffixes); my $filename = fileparse($path, @suffixes); The C routine divides a file path into its $dirs, $filename and (optionally) the filename $suffix. $dirs contains everything up to and including the last directory separator in the $path including the volume (if applicable). The remainder of the $path is the $filename. # On Unix returns ("baz", "/foo/bar/", "") fileparse("/foo/bar/baz"); # On Windows returns ("baz", 'C:\foo\bar\', "") fileparse('C:\foo\bar\baz'); # On Unix returns ("", "/foo/bar/baz/", "") fileparse("/foo/bar/baz/"); If @suffixes are given each element is a pattern (either a string or a C) matched against the end of the $filename. The matching portion is removed and becomes the $suffix. # On Unix returns ("baz", "/foo/bar/", ".txt") fileparse("/foo/bar/baz.txt", qr/\.[^.]*/); If type is non-Unix (see L) then the pattern matching for suffix removal is performed case-insensitively, since those systems are not case-sensitive when opening existing files. You are guaranteed that C<$dirs . $filename . $suffix> will denote the same location as the original $path. =cut 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 propagated from the path to its pieces. $tail .= $taint; wantarray ? ($basename .= $taint, $dirpath .= $taint, $tail) : ($basename .= $taint); } =item C X X my $filename = basename($path); my $filename = basename($path, @suffixes); This function is provided for compatibility with the Unix shell command C. It does B always return the file name portion of a path as you might expect. To be safe, if you want the file name portion of a path use C. C returns the last level of a filepath even if the last level is clearly directory. In effect, it is acting like C for paths. This differs from C's behaviour. # Both return "bar" basename("/foo/bar"); basename("/foo/bar/"); @suffixes work as in C except all regex metacharacters are quoted. # These two function calls are equivalent. my $filename = basename("/foo/bar/baz.txt", ".txt"); my $filename = fileparse("/foo/bar/baz.txt", qr/\Q.txt\E/); Also note that in order to be compatible with the shell command, C does not strip off a suffix if it is identical to the remaining characters in the filename. =cut 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; } =item C X This function is provided for compatibility with the Unix shell command C and has inherited some of its quirks. In spite of its name it does B always return the directory name as you might expect. To be safe, if you want the directory name of a path use C. Only on VMS (where there is no ambiguity between the file and directory portions of a path) and AmigaOS (possibly due to an implementation quirk in this module) does C work like C, returning just the $dirs. # On VMS and AmigaOS my $dirs = dirname($path); When using Unix or MSDOS syntax this emulates the C shell function which is subtly different from how C works. It returns all but the last level of a file path even if the last level is clearly a directory. In effect, it is not returning the directory portion but simply the path one level up acting like C for file paths. Also unlike C, C does not include a trailing slash on its returned path. # returns /foo/bar. fileparse() would return /foo/bar/ dirname("/foo/bar/baz"); # also returns /foo/bar despite the fact that baz is clearly a # directory. fileparse() would return /foo/bar/baz/ dirname("/foo/bar/baz/"); # returns '.'. fileparse() would return 'foo/' dirname("foo/"); Under VMS, if there is no directory information in the $path, then the current default device and directory is used. =cut 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; } } =item C X my $type = fileparse_set_fstype(); my $previous_type = fileparse_set_fstype($type); Normally File::Basename will assume a file path type native to your current operating system (ie. /foo/bar style on Unix, \foo\bar on Windows, etc...). With this function you can override that assumption. Valid $types are "MacOS", "VMS", "AmigaOS", "OS2", "RISCOS", "MSWin32", "DOS" (also "MSDOS" for backwards bug compatibility), "Epoc" and "Unix" (all case-insensitive). If an unrecognized $type is given "Unix" will be assumed. If you've selected VMS syntax, and the file specification you pass to one of these routines contains a "/", they assume you are using Unix emulation and apply the Unix syntax rules instead, for that function call only. =back =cut 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; =head1 SEE ALSO L, L, L FILE57006cdb/Carp/Heavy.pmpackage Carp::Heavy; use Carp (); our $VERSION = '1.54'; $VERSION =~ tr/_//d; # Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions # after this point are not significant and can be ignored. if(($Carp::VERSION || 0) < 1.12) { my $cv = defined($Carp::VERSION) ? $Carp::VERSION : "undef"; die "Version mismatch between Carp $cv ($INC{q(Carp.pm)}) and Carp::Heavy $VERSION ($INC{q(Carp/Heavy.pm)}). Did you alter \@INC after Carp was loaded?\n"; } 1; # Most of the machinery of Carp used to be here. # It has been moved in Carp.pm now, but this placeholder remains for # the benefit of modules that like to preload Carp::Heavy directly. # This must load Carp, because some modules rely on the historical # behaviour of Carp::Heavy loading Carp. FILEb956cb79/Digest/base.pmpackage Digest::base; use strict; use warnings; our $VERSION = "1.20"; # subclass is supposed to implement at least these sub new; sub clone; sub add; sub digest; sub reset { my $self = shift; $self->new(@_); # ugly } sub addfile { my ( $self, $handle ) = @_; my $n; my $buf = ""; while ( ( $n = read( $handle, $buf, 4 * 1024 ) ) ) { $self->add($buf); } unless ( defined $n ) { require Carp; Carp::croak("Read failed: $!"); } $self; } sub add_bits { my $self = shift; my $bits; my $nbits; if ( @_ == 1 ) { my $arg = shift; $bits = pack( "B*", $arg ); $nbits = length($arg); } else { ( $bits, $nbits ) = @_; } if ( ( $nbits % 8 ) != 0 ) { require Carp; Carp::croak("Number of bits must be multiple of 8 for this algorithm"); } return $self->add( substr( $bits, 0, $nbits / 8 ) ); } sub hexdigest { my $self = shift; return unpack( "H*", $self->digest(@_) ); } sub b64digest { my $self = shift; my $b64 = $self->base64_padded_digest; $b64 =~ s/=+$//; return $b64; } sub base64_padded_digest { my $self = shift; require MIME::Base64; return MIME::Base64::encode( $self->digest(@_), "" ); } 1; __END__ =head1 NAME Digest::base - Digest base class =head1 SYNOPSIS package Digest::Foo; use base 'Digest::base'; =head1 DESCRIPTION The C class provide implementations of the methods C and C in terms of C, and of the methods C and C in terms of C. Digest implementations might want to inherit from this class to get this implementations of the alternative I and I methods. A minimal subclass needs to implement the following methods by itself: new clone add digest The arguments and expected behaviour of these methods are described in L. =head1 SEE ALSO L FILEefc924aa/Compress/Zlib.pm/ package Compress::Zlib; require 5.006 ; require Exporter; use Carp ; use IO::Handle ; use Scalar::Util qw(dualvar); use IO::Compress::Base::Common 2.204 ; use Compress::Raw::Zlib 2.204 ; use IO::Compress::Gzip 2.204 ; use IO::Uncompress::Gunzip 2.204 ; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); $VERSION = '2.204'; $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 ; my $eof = $gz->eof() ; if ($test_eof) { # 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 = IO::Compress::Gzip->new($file, Minimal => 1, AutoClose => 1, %defOpts) or $Compress::Zlib::gzerrno = $IO::Compress::Gzip::GzipError; } else { $gz = IO::Uncompress::Gunzip->new($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 ; my $gz = $self->[0] ; if ($self->gzeof() || $len == 0) { # Zap the output buffer to match ver 1 behaviour. $_[0] = "" ; _save_gzerr($gz, 1); return 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 { local $SIG{__DIE__}; $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 = Compress::Raw::Zlib::_deflateInit(FLAG_APPEND, $level, Z_DEFLATED, MAX_WBITS, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY, 4096, '') 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 ($output, $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"); my ($obj, $status) = Compress::Raw::Zlib::_inflateInit(0, MAX_WBITS, 4096, "") ; $status == Z_OK or return undef; $obj->inflate($in, $output) == Z_STREAM_END or return undef; return $output; } sub deflateInit(@) { my ($got) = ParseParameters(0, { 'bufsize' => [IO::Compress::Base::Common::Parse_unsigned, 4096], 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION()], 'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED()], 'windowbits' => [IO::Compress::Base::Common::Parse_signed, MAX_WBITS()], 'memlevel' => [IO::Compress::Base::Common::Parse_unsigned, MAX_MEM_LEVEL()], 'strategy' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFAULT_STRATEGY()], 'dictionary' => [IO::Compress::Base::Common::Parse_any, ""], }, @_ ) ; croak "Compress::Zlib::deflateInit: Bufsize must be >= 1, you specified " . $got->getValue('bufsize') unless $got->getValue('bufsize') >= 1; my $obj ; my $status = 0 ; ($obj, $status) = Compress::Raw::Zlib::_deflateInit(0, $got->getValue('level'), $got->getValue('method'), $got->getValue('windowbits'), $got->getValue('memlevel'), $got->getValue('strategy'), $got->getValue('bufsize'), $got->getValue('dictionary')) ; my $x = ($status == Z_OK() ? bless $obj, "Zlib::OldDeflate" : undef) ; return wantarray ? ($x, $status) : $x ; } sub inflateInit(@) { my ($got) = ParseParameters(0, { 'bufsize' => [IO::Compress::Base::Common::Parse_unsigned, 4096], 'windowbits' => [IO::Compress::Base::Common::Parse_signed, MAX_WBITS()], 'dictionary' => [IO::Compress::Base::Common::Parse_any, ""], }, @_) ; croak "Compress::Zlib::inflateInit: Bufsize must be >= 1, you specified " . $got->getValue('bufsize') unless $got->getValue('bufsize') >= 1; my $status = 0 ; my $obj ; ($obj, $status) = Compress::Raw::Zlib::_inflateInit(FLAG_CONSUME_INPUT, $got->getValue('windowbits'), $got->getValue('bufsize'), $got->getValue('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.204 ; sub memGzip($) { _set_gzerr(0); my $x = Compress::Raw::Zlib::_deflateInit(FLAG_APPEND|FLAG_CRC, Z_BEST_COMPRESSION, Z_DEFLATED, -MAX_WBITS(), MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY, 4096, '') or return undef ; # 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"); my $out; my $status ; $x->deflate($string, $out) == Z_OK or return undef ; $x->flush($out) == Z_OK or return undef ; return IO::Compress::Gzip::Constants::GZIP_MINIMUM_HEADER . $out . pack("V V", $x->crc32(), $x->total_in()); } 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 = Compress::Raw::Zlib::_inflateInit(FLAG_CRC | FLAG_CONSUME_INPUT, -MAX_WBITS(), $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 == Compress::Raw::Zlib::crc32($output); } else { $$string = ''; } return $output; } # Autoload methods go after __END__, and are processed by the autosplit program. 1; __END__ =head1 NAME Compress::Zlib - Interface to zlib compression library =head1 SYNOPSIS use Compress::Zlib ; ($d, $status) = deflateInit( [OPT] ) ; $status = $d->deflate($input, $output) ; $status = $d->flush([$flush_type]) ; $d->deflateParams(OPTS) ; $d->deflateTune(OPTS) ; $d->dict_adler() ; $d->crc32() ; $d->adler32() ; $d->total_in() ; $d->total_out() ; $d->msg() ; $d->get_Strategy(); $d->get_Level(); $d->get_BufSize(); ($i, $status) = inflateInit( [OPT] ) ; $status = $i->inflate($input, $output [, $eof]) ; $status = $i->inflateSync($input) ; $i->dict_adler() ; $d->crc32() ; $d->adler32() ; $i->total_in() ; $i->total_out() ; $i->msg() ; $d->get_BufSize(); $dest = compress($source) ; $dest = uncompress($source) ; $gz = gzopen($filename or filehandle, $mode) ; $bytesread = $gz->gzread($buffer [,$size]) ; $bytesread = $gz->gzreadline($line) ; $byteswritten = $gz->gzwrite($buffer) ; $status = $gz->gzflush($flush) ; $offset = $gz->gztell() ; $status = $gz->gzseek($offset, $whence) ; $status = $gz->gzclose() ; $status = $gz->gzeof() ; $status = $gz->gzsetparams($level, $strategy) ; $errstring = $gz->gzerror() ; $gzerrno $dest = Compress::Zlib::memGzip($buffer) ; $dest = Compress::Zlib::memGunzip($buffer) ; $crc = adler32($buffer [,$crc]) ; $crc = crc32($buffer [,$crc]) ; $crc = crc32_combine($crc1, $crc2, $len2); $adler = adler32_combine($adler1, $adler2, $len2); my $version = Compress::Raw::Zlib::zlib_version(); =head1 DESCRIPTION The I module provides a Perl interface to the I compression library (see L for details about where to get I). The C module can be split into two general areas of functionality, namely a simple read/write interface to I files and a low-level in-memory compression/decompression interface. Each of these areas will be discussed in the following sections. =head2 Notes for users of Compress::Zlib version 1 The main change in C version 2.x is that it does not now interface directly to the zlib library. Instead it uses the C and C modules for reading/writing gzip files, and the C module for some low-level zlib access. The interface provided by version 2 of this module should be 100% backward compatible with version 1. If you find a difference in the expected behaviour please contact the author (See L). See L With the creation of the C and C modules no new features are planned for C - the new modules do everything that C does and then some. Development on C will be limited to bug fixes only. If you are writing new code, your first port of call should be one of the new C or C modules. =head1 GZIP INTERFACE A number of functions are supplied in I for reading and writing I files that conform to RFC 1952. This module provides an interface to most of them. If you have previously used C 1.x, the following enhancements/changes have been made to the C interface: =over 5 =item 1 If you want to open either STDIN or STDOUT with C, you can now optionally use the special filename "C<->" as a synonym for C<\*STDIN> and C<\*STDOUT>. =item 2 In C version 1.x, C used the zlib library to open the underlying file. This made things especially tricky when a Perl filehandle was passed to C. Behind the scenes the numeric C file descriptor had to be extracted from the Perl filehandle and this passed to the zlib library. Apart from being non-portable to some operating systems, this made it difficult to use C in situations where you wanted to extract/create a gzip data stream that is embedded in a larger file, without having to resort to opening and closing the file multiple times. It also made it impossible to pass a perl filehandle that wasn't associated with a real filesystem file, like, say, an C. In C version 2.x, the C interface has been completely rewritten to use the L for writing gzip files and L for reading gzip files. None of the limitations mentioned above apply. =item 3 Addition of C to provide a restricted C interface. =item 4. Added C. =back A more complete and flexible interface for reading/writing gzip files/buffers is included with the module C. See L and L for more details. =over 5 =item B<$gz = gzopen($filename, $mode)> =item B<$gz = gzopen($filehandle, $mode)> This function opens either the I file C<$filename> for reading or writing or attaches to the opened filehandle, C<$filehandle>. It returns an object on success and C on failure. When writing a gzip file this interface will I create the smallest possible gzip header (exactly 10 bytes). If you want greater control over what gets stored in the gzip header (like the original filename or a comment) use L instead. Similarly if you want to read the contents of the gzip header use L. The second parameter, C<$mode>, is used to specify whether the file is opened for reading or writing and to optionally specify a compression level and compression strategy when writing. The format of the C<$mode> parameter is similar to the mode parameter to the 'C' function C, so "rb" is used to open for reading, "wb" for writing and "ab" for appending (writing at the end of the file). To specify a compression level when writing, append a digit between 0 and 9 to the mode string -- 0 means no compression and 9 means maximum compression. If no compression level is specified Z_DEFAULT_COMPRESSION is used. To specify the compression strategy when writing, append 'f' for filtered data, 'h' for Huffman only compression, or 'R' for run-length encoding. If no strategy is specified Z_DEFAULT_STRATEGY is used. So, for example, "wb9" means open for writing with the maximum compression using the default strategy and "wb4R" means open for writing with compression level 4 and run-length encoding. Refer to the I documentation for the exact format of the C<$mode> parameter. =item B<$bytesread = $gz-Egzread($buffer [, $size]) ;> Reads C<$size> bytes from the compressed file into C<$buffer>. If C<$size> is not specified, it will default to 4096. If the scalar C<$buffer> is not large enough, it will be extended automatically. Returns the number of bytes actually read. On EOF it returns 0 and in the case of an error, -1. =item B<$bytesread = $gz-Egzreadline($line) ;> Reads the next line from the compressed file into C<$line>. Returns the number of bytes actually read. On EOF it returns 0 and in the case of an error, -1. It is legal to intermix calls to C and C. To maintain backward compatibility with version 1.x of this module C ignores the C<$/> variable - it I uses the string C<"\n"> as the line delimiter. If you want to read a gzip file a line at a time and have it respect the C<$/> variable (or C<$INPUT_RECORD_SEPARATOR>, or C<$RS> when C is in use) see L. =item B<$byteswritten = $gz-Egzwrite($buffer) ;> Writes the contents of C<$buffer> to the compressed file. Returns the number of bytes actually written, or 0 on error. =item B<$status = $gz-Egzflush($flush_type) ;> Flushes all pending output into the compressed file. This method takes an optional parameter, C<$flush_type>, that controls how the flushing will be carried out. By default the C<$flush_type> used is C. Other valid values for C<$flush_type> are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does - overuse of C can seriously degrade the level of compression achieved. See the C documentation for details. Returns 0 on success. =item B<$offset = $gz-Egztell() ;> Returns the uncompressed file offset. =item B<$status = $gz-Egzseek($offset, $whence) ;> Provides a sub-set of the C functionality, with the restriction that it is only legal to seek forward in the compressed file. It is a fatal error to attempt to seek backward. When opened for writing, empty parts of the file will have NULL (0x00) bytes written to them. The C<$whence> parameter should be one of SEEK_SET, SEEK_CUR or SEEK_END. Returns 1 on success, 0 on failure. =item B<$gz-Egzclose> Closes the compressed file. Any pending data is flushed to the file before it is closed. Returns 0 on success. =item B<$gz-Egzsetparams($level, $strategy> Change settings for the deflate stream C<$gz>. The list of the valid options is shown below. Options not specified will remain unchanged. Note: This method is only available if you are running zlib 1.0.6 or better. =over 5 =item B<$level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. =item B<$strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. =back =item B<$gz-Egzerror> Returns the I error message or number for the last operation associated with C<$gz>. The return value will be the I error number when used in a numeric context and the I error message when used in a string context. The I error number constants, shown below, are available for use. Z_OK Z_STREAM_END Z_ERRNO Z_STREAM_ERROR Z_DATA_ERROR Z_MEM_ERROR Z_BUF_ERROR =item B<$gzerrno> The C<$gzerrno> scalar holds the error code associated with the most recent I routine. Note that unlike C, the error is I associated with a particular file. As with C it returns an error number in numeric context and an error message in string context. Unlike C though, the error message will correspond to the I message when the error is associated with I itself, or the UNIX error message when it is not (i.e. I returned C). As there is an overlap between the error numbers used by I and UNIX, C<$gzerrno> should only be used to check for the presence of I error in numeric context. Use C to check for specific I errors. The I example below shows how the variable can be used safely. =back =head2 Examples Here is an example script which uses the interface. It implements a I function. use strict ; use warnings ; use Compress::Zlib ; # use stdin if no files supplied @ARGV = '-' unless @ARGV ; foreach my $file (@ARGV) { my $buffer ; my $gz = gzopen($file, "rb") or die "Cannot open $file: $gzerrno\n" ; print $buffer while $gz->gzread($buffer) > 0 ; die "Error reading from $file: $gzerrno" . ($gzerrno+0) . "\n" if $gzerrno != Z_STREAM_END ; $gz->gzclose() ; } Below is a script which makes use of C. It implements a very simple I like script. use strict ; use warnings ; use Compress::Zlib ; die "Usage: gzgrep pattern [file...]\n" unless @ARGV >= 1; my $pattern = shift ; # use stdin if no files supplied @ARGV = '-' unless @ARGV ; foreach my $file (@ARGV) { my $gz = gzopen($file, "rb") or die "Cannot open $file: $gzerrno\n" ; while ($gz->gzreadline($_) > 0) { print if /$pattern/ ; } die "Error reading from $file: $gzerrno\n" if $gzerrno != Z_STREAM_END ; $gz->gzclose() ; } This script, I, does the opposite of the I script above. It reads from standard input and writes a gzip data stream to standard output. use strict ; use warnings ; use Compress::Zlib ; binmode STDOUT; # gzopen only sets it on the fd my $gz = gzopen(\*STDOUT, "wb") or die "Cannot open stdout: $gzerrno\n" ; while (<>) { $gz->gzwrite($_) or die "error writing: $gzerrno\n" ; } $gz->gzclose ; =head2 Compress::Zlib::memGzip This function is used to create an in-memory gzip file with the minimum possible gzip header (exactly 10 bytes). $dest = Compress::Zlib::memGzip($buffer) or die "Cannot compress: $gzerrno\n"; If successful, it returns the in-memory gzip file. Otherwise it returns C and the C<$gzerrno> variable will store the zlib error code. The C<$buffer> parameter can either be a scalar or a scalar reference. See L for an alternative way to carry out in-memory gzip compression. =head2 Compress::Zlib::memGunzip This function is used to uncompress an in-memory gzip file. $dest = Compress::Zlib::memGunzip($buffer) or die "Cannot uncompress: $gzerrno\n"; If successful, it returns the uncompressed gzip file. Otherwise it returns C and the C<$gzerrno> variable will store the zlib error code. The C<$buffer> parameter can either be a scalar or a scalar reference. The contents of the C<$buffer> parameter are destroyed after calling this function. If C<$buffer> consists of multiple concatenated gzip data streams only the first will be uncompressed. Use C with the C option in the C module if you need to deal with concatenated data streams. See L for an alternative way to carry out in-memory gzip uncompression. =head1 COMPRESS/UNCOMPRESS Two functions are provided to perform in-memory compression/uncompression of RFC 1950 data streams. They are called C and C. =over 5 =item B<$dest = compress($source [, $level] ) ;> Compresses C<$source>. If successful it returns the compressed data. Otherwise it returns I. The source buffer, C<$source>, can either be a scalar or a scalar reference. The C<$level> parameter defines the compression level. Valid values are 0 through 9, C, C, C, and C. If C<$level> is not specified C will be used. =item B<$dest = uncompress($source) ;> Uncompresses C<$source>. If successful it returns the uncompressed data. Otherwise it returns I. The source buffer can either be a scalar or a scalar reference. =back Please note: the two functions defined above are I compatible with the Unix commands of the same name. See L and L included with this distribution for an alternative interface for reading/writing RFC 1950 files/buffers. =head1 Deflate Interface This section defines an interface that allows in-memory compression using the I interface provided by zlib. Here is a definition of the interface available: =head2 B<($d, $status) = deflateInit( [OPT] )> Initialises a deflation stream. It combines the features of the I functions C, C and C. If successful, it will return the initialised deflation stream, C<$d> and C<$status> of C in a list context. In scalar context it returns the deflation stream, C<$d>, only. If not successful, the returned deflation stream (C<$d>) will be I and C<$status> will hold the exact I error code. The function optionally takes a number of named options specified as C<< -Name=>value >> pairs. This allows individual options to be tailored without having to specify them all in the parameter list. For backward compatibility, it is also possible to pass the parameters as a reference to a hash containing the name=>value pairs. The function takes one optional parameter, a reference to a hash. The contents of the hash allow the deflation interface to be tailored. Here is a list of the valid options: =over 5 =item B<-Level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. The default is Z_DEFAULT_COMPRESSION. =item B<-Method> Defines the compression method. The only valid value at present (and the default) is Z_DEFLATED. =item B<-WindowBits> To create an RFC 1950 data stream, set C to a positive number. To create an RFC 1951 data stream, set C to C<-MAX_WBITS>. For a full definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_WBITS. =item B<-MemLevel> For a definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_MEM_LEVEL. =item B<-Strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. The default is Z_DEFAULT_STRATEGY. =item B<-Dictionary> When a dictionary is specified I will automatically call C directly after calling C. The Adler32 value for the dictionary can be obtained by calling the method C<< $d->dict_adler() >>. The default is no dictionary. =item B<-Bufsize> Sets the initial size for the deflation buffer. If the buffer has to be reallocated to increase the size, it will grow in increments of C. The default is 4096. =back Here is an example of using the C optional parameter list to override the default buffer size and compression level. All other options will take their default values. deflateInit( -Bufsize => 300, -Level => Z_BEST_SPEED ) ; =head2 B<($out, $status) = $d-Edeflate($buffer)> Deflates the contents of C<$buffer>. The buffer can either be a scalar or a scalar reference. When finished, C<$buffer> will be completely processed (assuming there were no errors). If the deflation was successful it returns the deflated output, C<$out>, and a status value, C<$status>, of C. On error, C<$out> will be I and C<$status> will contain the I error code. In a scalar context C will return C<$out> only. As with the I function in I, it is not necessarily the case that any output will be produced by this method. So don't rely on the fact that C<$out> is empty for an error test. =head2 B<($out, $status) = $d-Eflush()> =head2 B<($out, $status) = $d-Eflush($flush_type)> Typically used to finish the deflation. Any pending output will be returned via C<$out>. C<$status> will have a value C if successful. In a scalar context C will return C<$out> only. Note that flushing can seriously degrade the compression ratio, so it should only be used to terminate a decompression (using C) or when you want to create a I (using C). By default the C used is C. Other valid values for C are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does. See the C documentation for details. =head2 B<$status = $d-EdeflateParams([OPT])> Change settings for the deflate stream C<$d>. The list of the valid options is shown below. Options not specified will remain unchanged. =over 5 =item B<-Level> Defines the compression level. Valid values are 0 through 9, C, C, C, and C. =item B<-Strategy> Defines the strategy used to tune the compression. The valid values are C, C and C. =back =head2 B<$d-Edict_adler()> Returns the adler32 value for the dictionary. =head2 B<$d-Emsg()> Returns the last error message generated by zlib. =head2 B<$d-Etotal_in()> Returns the total number of bytes uncompressed bytes input to deflate. =head2 B<$d-Etotal_out()> Returns the total number of compressed bytes output from deflate. =head2 Example Here is a trivial example of using C. It simply reads standard input, deflates it and writes it to standard output. use strict ; use warnings ; use Compress::Zlib ; binmode STDIN; binmode STDOUT; my $x = deflateInit() or die "Cannot create a deflation stream\n" ; my ($output, $status) ; while (<>) { ($output, $status) = $x->deflate($_) ; $status == Z_OK or die "deflation failed\n" ; print $output ; } ($output, $status) = $x->flush() ; $status == Z_OK or die "deflation failed\n" ; print $output ; =head1 Inflate Interface This section defines the interface available that allows in-memory uncompression using the I interface provided by zlib. Here is a definition of the interface: =head2 B<($i, $status) = inflateInit()> Initialises an inflation stream. In a list context it returns the inflation stream, C<$i>, and the I status code in C<$status>. In a scalar context it returns the inflation stream only. If successful, C<$i> will hold the inflation stream and C<$status> will be C. If not successful, C<$i> will be I and C<$status> will hold the I error code. The function optionally takes a number of named options specified as C<< -Name=>value >> pairs. This allows individual options to be tailored without having to specify them all in the parameter list. For backward compatibility, it is also possible to pass the parameters as a reference to a hash containing the name=>value pairs. The function takes one optional parameter, a reference to a hash. The contents of the hash allow the deflation interface to be tailored. Here is a list of the valid options: =over 5 =item B<-WindowBits> To uncompress an RFC 1950 data stream, set C to a positive number. To uncompress an RFC 1951 data stream, set C to C<-MAX_WBITS>. For a full definition of the meaning and valid values for C refer to the I documentation for I. Defaults to MAX_WBITS. =item B<-Bufsize> Sets the initial size for the inflation buffer. If the buffer has to be reallocated to increase the size, it will grow in increments of C. Default is 4096. =item B<-Dictionary> The default is no dictionary. =back Here is an example of using the C optional parameter to override the default buffer size. inflateInit( -Bufsize => 300 ) ; =head2 B<($out, $status) = $i-Einflate($buffer)> Inflates the complete contents of C<$buffer>. The buffer can either be a scalar or a scalar reference. Returns C if successful and C if the end of the compressed data has been successfully reached. If not successful, C<$out> will be I and C<$status> will hold the I error code. The C<$buffer> parameter is modified by C. On completion it will contain what remains of the input buffer after inflation. This means that C<$buffer> will be an empty string when the return status is C. When the return status is C the C<$buffer> parameter will contains what (if anything) was stored in the input buffer after the deflated data stream. This feature is useful when processing a file format that encapsulates a compressed data stream (e.g. gzip, zip). =head2 B<$status = $i-EinflateSync($buffer)> Scans C<$buffer> until it reaches either a I or the end of the buffer. If a I is found, C is returned and C<$buffer> will be have all data up to the flush point removed. This can then be passed to the C method. Any other return code means that a flush point was not found. If more data is available, C can be called repeatedly with more compressed data until the flush point is found. =head2 B<$i-Edict_adler()> Returns the adler32 value for the dictionary. =head2 B<$i-Emsg()> Returns the last error message generated by zlib. =head2 B<$i-Etotal_in()> Returns the total number of bytes compressed bytes input to inflate. =head2 B<$i-Etotal_out()> Returns the total number of uncompressed bytes output from inflate. =head2 Example Here is an example of using C. use strict ; use warnings ; use Compress::Zlib ; my $x = inflateInit() or die "Cannot create a inflation stream\n" ; my $input = '' ; binmode STDIN; binmode STDOUT; my ($output, $status) ; while (read(STDIN, $input, 4096)) { ($output, $status) = $x->inflate(\$input) ; print $output if $status == Z_OK or $status == Z_STREAM_END ; last if $status != Z_OK ; } die "inflation failed\n" unless $status == Z_STREAM_END ; =head1 CHECKSUM FUNCTIONS Two functions are provided by I to calculate checksums. For the Perl interface, the order of the two parameters in both functions has been reversed. This allows both running checksums and one off calculations to be done. $crc = adler32($buffer [,$crc]) ; $crc = crc32($buffer [,$crc]) ; The buffer parameters can either be a scalar or a scalar reference. If the $crc parameters is C, the crc value will be reset. If you have built this module with zlib 1.2.3 or better, two more CRC-related functions are available. $crc = crc32_combine($crc1, $crc2, $len2); $adler = adler32_combine($adler1, $adler2, $len2); These functions allow checksums to be merged. Refer to the I documentation for more details. =head1 Misc =head2 my $version = Compress::Zlib::zlib_version(); Returns the version of the zlib library. =head1 CONSTANTS All the I constants are automatically imported when you make use of I. =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 1995-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE78eee0ed/Exporter.pmK package Exporter; use strict; no strict 'refs'; our $Debug = 0; our $ExportLevel = 0; our $Verbose ||= 0; our $VERSION = '5.77'; our %Cache; 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 = \@{"$pkg\::EXPORT"}; # But, avoid creating things if they don't exist, which saves a couple of # hundred bytes per package processed. my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"}; return export $pkg, $callpkg, @_ if $Verbose or $Debug or $fail && @$fail > 1; my $export_cache = ($Cache{$pkg} ||= {}); my $args = @_ or @_ = @$exports; 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 @$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} if not $SIG{__WARN__}; # 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__ =head1 NAME Exporter - Implements default import method for modules =head1 SYNOPSIS In module F: package YourModule; use Exporter 'import'; our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request or package YourModule; require Exporter; our @ISA = qw(Exporter); # inherit all of Exporter's methods our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request or package YourModule; use parent 'Exporter'; # inherit all of Exporter's methods our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request In other files which wish to use C: use YourModule qw(frobnicate); # import listed symbols frobnicate ($left, $right) # calls YourModule::frobnicate Take a look at L for some variants you will like to use in modern Perl code. =head1 DESCRIPTION The Exporter module implements an C method which allows a module to export functions and variables to its users' namespaces. Many modules use Exporter rather than implementing their own C method because Exporter provides a highly flexible interface, with an implementation optimised for the common case. Perl automatically calls the C method when processing a C statement for a module. Modules and C are documented in L and L. Understanding the concept of modules and how the C statement operates is important to understanding the Exporter. =head2 How to Export The arrays C<@EXPORT> and C<@EXPORT_OK> in a module hold lists of symbols that are going to be exported into the users name space by default, or which they can request to be exported, respectively. The symbols can represent functions, scalars, arrays, hashes, or typeglobs. The symbols must be given by full name with the exception that the ampersand in front of a function is optional, e.g. our @EXPORT = qw(afunc $scalar @array); # afunc is a function our @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc If you are only exporting function names it is recommended to omit the ampersand, as the implementation is faster this way. =head2 Selecting What to Export Do B export method names! Do B export anything else by default without a good reason! Exports pollute the namespace of the module user. If you must export try to use C<@EXPORT_OK> in preference to C<@EXPORT> and avoid short or common symbol names to reduce the risk of name clashes. Generally anything not exported is still accessible from outside the module using the C (or C<< $blessed_ref->method >>) syntax. By convention you can use a leading underscore on names to informally indicate that they are 'internal' and not for public use. (It is actually possible to get private functions by saying: my $subref = sub { ... }; $subref->(@args); # Call it as a function $obj->$subref(@args); # Use it as a method However if you use them for methods it is up to you to figure out how to make inheritance work.) As a general rule, if the module is trying to be object oriented then export nothing. If it's just a collection of functions then C<@EXPORT_OK> anything but use C<@EXPORT> with caution. For function and method names use barewords in preference to names prefixed with ampersands for the export lists. Other module design guidelines can be found in L. =head2 How to Import In other files which wish to use your module there are three basic ways for them to load your module and import its symbols: =over 4 =item C This imports all the symbols from YourModule's C<@EXPORT> into the namespace of the C statement. =item C This causes perl to load your module but does not import any symbols. =item C This imports only the symbols listed by the caller into their namespace. All listed symbols must be in your C<@EXPORT> or C<@EXPORT_OK>, else an error occurs. The advanced export features of Exporter are accessed like this, but with list entries that are syntactically distinct from symbol names. =back Unless you want to use its advanced features, this is probably all you need to know to use Exporter. =head1 Advanced Features =head2 Specialised Import Lists If any of the entries in an import list begins with !, : or / then the list is treated as a series of specifications which either add to or delete from the list of names to import. They are processed left to right. Specifications are in the form: [!]name This name only [!]:DEFAULT All names in @EXPORT [!]:tag All names in $EXPORT_TAGS{tag} anonymous array [!]/pattern/ All names in @EXPORT and @EXPORT_OK which match A leading ! indicates that matching names should be deleted from the list of names to import. If the first specification is a deletion it is treated as though preceded by :DEFAULT. If you just want to import extra names in addition to the default set you will still need to include :DEFAULT explicitly. e.g., F defines: our @EXPORT = qw(A1 A2 A3 A4 A5); our @EXPORT_OK = qw(B1 B2 B3 B4 B5); our %EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]); Note that you cannot use tags in @EXPORT or @EXPORT_OK. Names in EXPORT_TAGS must also appear in @EXPORT or @EXPORT_OK. An application using Module can say something like: use Module qw(:DEFAULT :T2 !B3 A3); Other examples include: use Socket qw(!/^[AP]F_/ !SOMAXCONN !SOL_SOCKET); use POSIX qw(:errno_h :termios_h !TCSADRAIN !/^EXIT/); Remember that most patterns (using //) will need to be anchored with a leading ^, e.g., C rather than C. You can say C to see how the specifications are being processed and what is actually being imported into modules. =head2 Exporting Without Using Exporter's import Method Exporter has a special method, 'export_to_level' which is used in situations where you can't directly call Exporter's import method. The export_to_level method looks like: MyPackage->export_to_level( $where_to_export, $package, @what_to_export ); where C<$where_to_export> is an integer telling how far up the calling stack to export your symbols, and C<@what_to_export> is an array telling what symbols *to* export (usually this is C<@_>). The C<$package> argument is currently unused. For example, suppose that you have a module, A, which already has an import function: package A; our @ISA = qw(Exporter); our @EXPORT_OK = qw($b); sub import { $A::b = 1; # not a very useful import method } and you want to Export symbol C<$A::b> back to the module that called package A. Since Exporter relies on the import method to work, via inheritance, as it stands Exporter::import() will never get called. Instead, say the following: package A; our @ISA = qw(Exporter); our @EXPORT_OK = qw($b); sub import { $A::b = 1; A->export_to_level(1, @_); } This will export the symbols one level 'above' the current package - ie: to the program or module that used package A. Note: Be careful not to modify C<@_> at all before you call export_to_level - or people using your package will get very unexplained results! =head2 Exporting Without Inheriting from Exporter By including Exporter in your C<@ISA> you inherit an Exporter's import() method but you also inherit several other helper methods which you probably don't want and complicate the inheritance tree. To avoid this you can do: package YourModule; use Exporter qw(import); which will export Exporter's own import() method into YourModule. Everything will work as before but you won't need to include Exporter in C<@YourModule::ISA>. Note: This feature was introduced in version 5.57 of Exporter, released with perl 5.8.3. =head2 Module Version Checking The Exporter module will convert an attempt to import a number from a module into a call to C<< $module_name->VERSION($value) >>. This can be used to validate that the version of the module being used is greater than or equal to the required version. For historical reasons, Exporter supplies a C method that simply delegates to C. Originally, before C existed, Exporter would call C. Since the C method treats the C<$VERSION> number as a simple numeric value it will regard version 1.10 as lower than 1.9. For this reason it is strongly recommended that you use numbers with at least two decimal places, e.g., 1.09. =head2 Managing Unknown Symbols In some situations you may want to prevent certain symbols from being exported. Typically this applies to extensions which have functions or constants that may not exist on some systems. The names of any symbols that cannot be exported should be listed in the C<@EXPORT_FAIL> array. If a module attempts to import any of these symbols the Exporter will give the module an opportunity to handle the situation before generating an error. The Exporter will call an export_fail method with a list of the failed symbols: @failed_symbols = $module_name->export_fail(@failed_symbols); If the C method returns an empty list then no error is recorded and all the requested symbols are exported. If the returned list is not empty then an error is generated for each symbol and the export fails. The Exporter provides a default C method which simply returns the list unchanged. Uses for the C method include giving better error messages for some symbols and performing lazy architectural checks (put more symbols into C<@EXPORT_FAIL> by default and then take them out if someone actually tries to use them and an expensive check shows that they are usable on that platform). =head2 Tag Handling Utility Functions Since the symbols listed within C<%EXPORT_TAGS> must also appear in either C<@EXPORT> or C<@EXPORT_OK>, two utility functions are provided which allow you to easily add tagged sets of symbols to C<@EXPORT> or C<@EXPORT_OK>: our %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); Exporter::export_tags('foo'); # add aa, bb and cc to @EXPORT Exporter::export_ok_tags('bar'); # add aa, cc and dd to @EXPORT_OK Any names which are not tags are added to C<@EXPORT> or C<@EXPORT_OK> unchanged but will trigger a warning (with C<-w>) to avoid misspelt tags names being silently added to C<@EXPORT> or C<@EXPORT_OK>. Future versions may make this a fatal error. =head2 Generating Combined Tags If several symbol categories exist in C<%EXPORT_TAGS>, it's usually useful to create the utility ":all" to simplify "use" statements. The simplest way to do this is: our %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); # add all the other ":class" tags to the ":all" class, # deleting duplicates { my %seen; push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS; } F creates an ":all" tag which contains some (but not really all) of its categories. That could be done with one small change: # add some of the other ":class" tags to the ":all" class, # deleting duplicates { my %seen; push @{$EXPORT_TAGS{all}}, grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach qw/html2 html3 netscape form cgi internal/; } Note that the tag names in C<%EXPORT_TAGS> don't have the leading ':'. =head2 Ced Constants Many modules make use of Cing for constant subroutines to avoid having to compile and waste memory on rarely used values (see L for details on constant subroutines). Calls to such constant subroutines are not optimized away at compile time because they can't be checked at compile time for constancy. Even if a prototype is available at compile time, the body of the subroutine is not (it hasn't been Ced yet). perl needs to examine both the C<()> prototype and the body of a subroutine at compile time to detect that it can safely replace calls to that subroutine with the constant value. A workaround for this is to call the constants once in a C block: package My ; use Socket ; foo( SO_LINGER ); ## SO_LINGER NOT optimized away; called at runtime BEGIN { SO_LINGER } foo( SO_LINGER ); ## SO_LINGER optimized away at compile time. This forces the C for C to take place before SO_LINGER is encountered later in C package. If you are writing a package that Cs, consider forcing an C for any constants explicitly imported by other packages or which are usually used when your package is Cd. =head1 Good Practices =head2 Declaring C<@EXPORT_OK> and Friends When using C with the standard C and C pragmas, the C keyword is needed to declare the package variables C<@EXPORT_OK>, C<@EXPORT>, C<@ISA>, etc. our @ISA = qw(Exporter); our @EXPORT_OK = qw(munge frobnicate); If backward compatibility for Perls B 5.6 is important, one must write instead a C statement. use vars qw(@ISA @EXPORT_OK); @ISA = qw(Exporter); @EXPORT_OK = qw(munge frobnicate); =head2 Playing Safe There are some caveats with the use of runtime statements like C and the assignment to package variables, which can be very subtle for the unaware programmer. This may happen for instance with mutually recursive modules, which are affected by the time the relevant constructions are executed. The ideal way to never have to think about that is to use C blocks and the simple import method. So the first part of the L code could be rewritten as: package YourModule; use strict; use warnings; use Exporter 'import'; BEGIN { our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request } Or if you need to inherit from Exporter: package YourModule; use strict; use warnings; BEGIN { require Exporter; our @ISA = qw(Exporter); # inherit all of Exporter's methods our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request } The C will assure that the loading of F and the assignments to C<@ISA> and C<@EXPORT_OK> happen immediately like C, leaving no room for something to get awry or just plain wrong. With respect to loading C and inheriting, there are alternatives with the use of modules like C and C. use base qw(Exporter); # or use parent qw(Exporter); Any of these statements are nice replacements for C with the same compile-time effect. The basic difference is that C code interacts with declared C while C is a streamlined version of the older C code to just establish the IS-A relationship. For more details, see the documentation and code of L and L. Another thorough remedy to that runtime vs. compile-time trap is to use L, which is a wrapper of Exporter that allows all boilerplate code at a single gulp in the use statement. use Exporter::Easy ( OK => [ qw(munge frobnicate) ], ); # @ISA setup is automatic # all assignments happen at compile time =head2 What Not to Export You have been warned already in L to not export: =over 4 =item * method names (because you don't need to and that's likely to not do what you want), =item * anything by default (because you don't want to surprise your users... badly) =item * anything you don't need to (because less is more) =back There's one more item to add to this list. Do B export variable names. Just because C lets you do that, it does not mean you should. @EXPORT_OK = qw($svar @avar %hvar); # DON'T! Exporting variables is not a good idea. They can change under the hood, provoking horrible effects at-a-distance that are too hard to track and to fix. Trust me: they are not worth it. To provide the capability to set/get class-wide settings, it is best instead to provide accessors as subroutines or class methods instead. =head1 SEE ALSO C is definitely not the only module with symbol exporter capabilities. At CPAN, you may find a bunch of them. Some are lighter. Some provide improved APIs and features. Pick the one that fits your needs. The following is a sample list of such modules. Exporter::Easy Exporter::Lite Exporter::Renaming Exporter::Tidy Sub::Exporter / Sub::Installer Perl6::Export / Perl6::Export::Attrs =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE81b1434e/Carp.pmpackage Carp; { use 5.006; } use strict; use warnings; BEGIN { # Very old versions of warnings.pm load Carp. This can go wrong due # to the circular dependency. If warnings is invoked before Carp, # then warnings starts by loading Carp, then Carp (above) tries to # invoke warnings, and gets nothing because warnings is in the process # of loading and hasn't defined its import method yet. If we were # only turning on warnings ("use warnings" above) this wouldn't be too # bad, because Carp would just gets the state of the -w switch and so # might not get some warnings that it wanted. The real problem is # that we then want to turn off Unicode warnings, but "no warnings # 'utf8'" won't be effective if we're in this circular-dependency # situation. So, if warnings.pm is an affected version, we turn # off all warnings ourselves by directly setting ${^WARNING_BITS}. # On unaffected versions, we turn off just Unicode warnings, via # the proper API. if(!defined($warnings::VERSION) || eval($warnings::VERSION) < 1.06) { ${^WARNING_BITS} = ""; } else { "warnings"->unimport("utf8"); } } sub _fetch_sub { # fetch sub without autovivifying my($pack, $sub) = @_; $pack .= '::'; # only works with top-level packages return unless exists($::{$pack}); for ($::{$pack}) { return unless ref \$_ eq 'GLOB' && *$_{HASH} && exists $$_{$sub}; for ($$_{$sub}) { return ref \$_ eq 'GLOB' ? *$_{CODE} : undef } } } # UTF8_REGEXP_PROBLEM is a compile-time constant indicating whether Carp # must avoid applying a regular expression to an upgraded (is_utf8) # string. There are multiple problems, on different Perl versions, # that require this to be avoided. All versions prior to 5.13.8 will # load utf8_heavy.pl for the swash system, even if the regexp doesn't # use character classes. Perl 5.6 and Perls [5.11.2, 5.13.11) exhibit # specific problems when Carp is being invoked in the aftermath of a # syntax error. BEGIN { if("$]" < 5.013011) { *UTF8_REGEXP_PROBLEM = sub () { 1 }; } else { *UTF8_REGEXP_PROBLEM = sub () { 0 }; } } # is_utf8() is essentially the utf8::is_utf8() function, which indicates # whether a string is represented in the upgraded form (using UTF-8 # internally). As utf8::is_utf8() is only available from Perl 5.8 # onwards, extra effort is required here to make it work on Perl 5.6. BEGIN { if(defined(my $sub = _fetch_sub utf8 => 'is_utf8')) { *is_utf8 = $sub; } else { # black magic for perl 5.6 *is_utf8 = sub { unpack("C", "\xaa".$_[0]) != 170 }; } } # The downgrade() function defined here is to be used for attempts to # downgrade where it is acceptable to fail. It must be called with a # second argument that is a true value. BEGIN { if(defined(my $sub = _fetch_sub utf8 => 'downgrade')) { *downgrade = \&{"utf8::downgrade"}; } else { *downgrade = sub { my $r = ""; my $l = length($_[0]); for(my $i = 0; $i != $l; $i++) { my $o = ord(substr($_[0], $i, 1)); return if $o > 255; $r .= chr($o); } $_[0] = $r; }; } } # is_safe_printable_codepoint() indicates whether a character, specified # by integer codepoint, is OK to output literally in a trace. Generally # this is if it is a printable character in the ancestral character set # (ASCII or EBCDIC). This is used on some Perls in situations where a # regexp can't be used. BEGIN { *is_safe_printable_codepoint = "$]" >= 5.007_003 ? eval(q(sub ($) { my $u = utf8::native_to_unicode($_[0]); $u >= 0x20 && $u <= 0x7e; })) : ord("A") == 65 ? sub ($) { $_[0] >= 0x20 && $_[0] <= 0x7e } : sub ($) { # Early EBCDIC # 3 EBCDIC code pages supported then; all controls but one # are the code points below SPACE. The other one is 0x5F on # POSIX-BC; FF on the other two. # FIXME: there are plenty of unprintable codepoints other # than those that this code and the comment above identifies # as "controls". $_[0] >= ord(" ") && $_[0] <= 0xff && $_[0] != (ord ("^") == 106 ? 0x5f : 0xff); } ; } sub _univ_mod_loaded { return 0 unless exists($::{"UNIVERSAL::"}); for ($::{"UNIVERSAL::"}) { return 0 unless ref \$_ eq "GLOB" && *$_{HASH} && exists $$_{"$_[0]::"}; for ($$_{"$_[0]::"}) { return 0 unless ref \$_ eq "GLOB" && *$_{HASH} && exists $$_{"VERSION"}; for ($$_{"VERSION"}) { return 0 unless ref \$_ eq "GLOB"; return ${*$_{SCALAR}}; } } } } # _maybe_isa() is usually the UNIVERSAL::isa function. We have to avoid # the latter if the UNIVERSAL::isa module has been loaded, to avoid infi- # nite recursion; in that case _maybe_isa simply returns true. my $isa; BEGIN { if (_univ_mod_loaded('isa')) { *_maybe_isa = sub { 1 } } else { # Since we have already done the check, record $isa for use below # when defining _StrVal. *_maybe_isa = $isa = _fetch_sub(UNIVERSAL => "isa"); } } # We need an overload::StrVal or equivalent function, but we must avoid # loading any modules on demand, as Carp is used from __DIE__ handlers and # may be invoked after a syntax error. # We can copy recent implementations of overload::StrVal and use # overloading.pm, which is the fastest implementation, so long as # overloading is available. If it is not available, we use our own pure- # Perl StrVal. We never actually use overload::StrVal, for various rea- # sons described below. # overload versions are as follows: # undef-1.00 (up to perl 5.8.0) uses bless (avoid!) # 1.01-1.17 (perl 5.8.1 to 5.14) uses Scalar::Util # 1.18+ (perl 5.16+) uses overloading # The ancient 'bless' implementation (that inspires our pure-Perl version) # blesses unblessed references and must be avoided. Those using # Scalar::Util use refaddr, possibly the pure-Perl implementation, which # has the same blessing bug, and must be avoided. Also, Scalar::Util is # loaded on demand. Since we avoid the Scalar::Util implementations, we # end up having to implement our own overloading.pm-based version for perl # 5.10.1 to 5.14. Since it also works just as well in more recent ver- # sions, we use it there, too. BEGIN { if (eval { require "overloading.pm" }) { *_StrVal = eval 'sub { no overloading; "$_[0]" }' } else { # Work around the UNIVERSAL::can/isa modules to avoid recursion. # _mycan is either UNIVERSAL::can, or, in the presence of an # override, overload::mycan. *_mycan = _univ_mod_loaded('can') ? do { require "overload.pm"; _fetch_sub overload => 'mycan' } : \&UNIVERSAL::can; # _blessed is either UNIVERSAL::isa(...), or, in the presence of an # override, a hideous, but fairly reliable, workaround. *_blessed = $isa ? sub { &$isa($_[0], "UNIVERSAL") } : sub { my $probe = "UNIVERSAL::Carp_probe_" . rand; no strict 'refs'; local *$probe = sub { "unlikely string" }; local $@; local $SIG{__DIE__} = sub{}; (eval { $_[0]->$probe } || '') eq 'unlikely string' }; *_StrVal = sub { my $pack = ref $_[0]; # Perl's overload mechanism uses the presence of a special # "method" named "((" or "()" to signal it is in effect. # This test seeks to see if it has been set up. "((" post- # dates overloading.pm, so we can skip it. return "$_[0]" unless _mycan($pack, "()"); # Even at this point, the invocant may not be blessed, so # check for that. return "$_[0]" if not _blessed($_[0]); bless $_[0], "Carp"; my $str = "$_[0]"; bless $_[0], $pack; $pack . substr $str, index $str, "="; } } } our $VERSION = '1.54'; $VERSION =~ tr/_//d; 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. our $RefArgFormatter = undef; # allow caller to format reference arguments 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 # 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. our %CarpInternal; our %Internal; # disable these by default, so they can live w/o require Carp $CarpInternal{Carp}++; $CarpInternal{warnings}++; $Internal{Exporter}++; $Internal{'Exporter::Heavy'}++; # 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'; @_ } sub _cgc { no strict 'refs'; return \&{"CORE::GLOBAL::caller"} if defined &{"CORE::GLOBAL::caller"}; return; } sub longmess { local($!, $^E); # 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 $cgc = _cgc(); my $call_pack = $cgc ? $cgc->() : caller(); if ( $Internal{$call_pack} or $CarpInternal{$call_pack} ) { return longmess_heavy(@_); } else { local $CarpLevel = $CarpLevel + 1; return longmess_heavy(@_); } } our @CARP_NOT; sub shortmess { local($!, $^E); my $cgc = _cgc(); # Icky backwards compatibility wrapper. :-( local @CARP_NOT = scalar( $cgc ? $cgc->() : caller() ); shortmess_heavy(@_); } sub croak { die shortmess @_ } sub confess { die longmess @_ } sub carp { warn shortmess @_ } sub cluck { warn longmess @_ } BEGIN { if("$]" >= 5.015002 || ("$]" >= 5.014002 && "$]" < 5.015) || ("$]" >= 5.012005 && "$]" < 5.013)) { *CALLER_OVERRIDE_CHECK_OK = sub () { 1 }; } else { *CALLER_OVERRIDE_CHECK_OK = sub () { 0 }; } } sub caller_info { my $i = shift(@_) + 1; my %call_info; my $cgc = _cgc(); { # Some things override caller() but forget to implement the # @DB::args part of it, which we need. We check for this by # pre-populating @DB::args with a sentinel which no-one else # has the address of, so that we can detect whether @DB::args # has been properly populated. However, on earlier versions # of perl this check tickles a bug in CORE::caller() which # leaks memory. So we only check on fixed perls. @DB::args = \$i if CALLER_OVERRIDE_CHECK_OK; package DB; @call_info{ qw(pack file line sub has_args wantarray evaltext is_require) } = $cgc ? $cgc->($i) : caller($i); } unless ( defined $call_info{file} ) { return (); } my $sub_name = Carp::get_subname( \%call_info ); if ( $call_info{has_args} ) { # Guard our serialization of the stack from stack refcounting bugs # NOTE this is NOT a complete solution, we cannot 100% guard against # these bugs. However in many cases Perl *is* capable of detecting # them and throws an error when it does. Unfortunately serializing # the arguments on the stack is a perfect way of finding these bugs, # even when they would not affect normal program flow that did not # poke around inside the stack. Inside of Carp.pm it makes little # sense reporting these bugs, as Carp's job is to report the callers # errors, not the ones it might happen to tickle while doing so. # See: https://rt.perl.org/Public/Bug/Display.html?id=131046 # and: https://rt.perl.org/Public/Bug/Display.html?id=52610 # for more details and discussion. - Yves my @args = map { my $arg; local $@= $@; eval { $arg = $_; 1; } or do { $arg = '** argument not available anymore **'; }; $arg; } @DB::args; if (CALLER_OVERRIDE_CHECK_OK && @args == 1 && ref $args[0] eq ref \$i && $args[0] == \$i ) { @args = (); # Don't let anyone see the address of $i local $@; my $where = eval { my $func = $cgc or return ''; my $gv = (_fetch_sub B => 'svref_2object' or return '') ->($func)->GV; my $package = $gv->STASH->NAME; my $subname = $gv->NAME; return unless defined $package && defined $subname; # returning CORE::GLOBAL::caller isn't useful for tracing the cause: return if $package eq 'CORE::GLOBAL' && $subname eq 'caller'; " in &${package}::$subname"; } || ''; @args = "** Incomplete caller override detected$where; \@DB::args were not set **"; } else { my $overflow; if ( $MaxArgNums and @args > $MaxArgNums ) { # More than we want to show? $#args = $MaxArgNums - 1; $overflow = 1; } @args = map { Carp::format_arg($_) } @args; if ($overflow) { 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. our $in_recurse; sub format_arg { my $arg = shift; if ( my $pack= ref($arg) ) { # legitimate, let's not leak it. if (!$in_recurse && _maybe_isa( $arg, 'UNIVERSAL' ) && do { local $@; local $in_recurse = 1; local $SIG{__DIE__} = sub{}; eval {$arg->can('CARP_TRACE') } }) { return $arg->CARP_TRACE(); } elsif (!$in_recurse && defined($RefArgFormatter) && do { local $@; local $in_recurse = 1; local $SIG{__DIE__} = sub{}; eval {$arg = $RefArgFormatter->($arg); 1} }) { return $arg; } else { # Argument may be blessed into a class with overloading, and so # might have an overloaded stringification. We don't want to # risk getting the overloaded stringification, so we need to # use _StrVal, our overload::StrVal()-equivalent. return _StrVal $arg; } } return "undef" if !defined($arg); downgrade($arg, 1); return $arg if !(UTF8_REGEXP_PROBLEM && is_utf8($arg)) && $arg =~ /\A-?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?\z/; my $suffix = ""; if ( 2 < $MaxArgLen and $MaxArgLen < length($arg) ) { substr ( $arg, $MaxArgLen - 3 ) = ""; $suffix = "..."; } if(UTF8_REGEXP_PROBLEM && is_utf8($arg)) { for(my $i = length($arg); $i--; ) { my $c = substr($arg, $i, 1); my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2} if($c eq "\"" || $c eq "\\" || $c eq "\$" || $c eq "\@") { substr $arg, $i, 0, "\\"; next; } my $o = ord($c); substr $arg, $i, 1, sprintf("\\x{%x}", $o) unless is_safe_printable_codepoint($o); } } else { $arg =~ s/([\"\\\$\@])/\\$1/g; # This is all the ASCII printables spelled-out. It is portable to all # Perl versions and platforms (such as EBCDIC). There are other more # compact ways to do this, but may not work everywhere every version. $arg =~ s/([^ !"#\$\%\&'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg; } downgrade($arg, 1); return "\"".$arg."\"".$suffix; } sub Regexp::CARP_TRACE { my $arg = "$_[0]"; downgrade($arg, 1); if(UTF8_REGEXP_PROBLEM && is_utf8($arg)) { for(my $i = length($arg); $i--; ) { my $o = ord(substr($arg, $i, 1)); my $x = substr($arg, 0, 0); # work around bug on Perl 5.8.{1,2} substr $arg, $i, 1, sprintf("\\x{%x}", $o) unless is_safe_printable_codepoint($o); } } else { # See comment in format_arg() about this same regex. $arg =~ s/([^ !"#\$\%\&'()*+,\-.\/0123456789:;<=>?\@ABCDEFGHIJKLMNOPQRSTUVWXYZ\[\\\]^_`abcdefghijklmnopqrstuvwxyz\{|}~])/sprintf("\\x{%x}",ord($1))/eg; } downgrade($arg, 1); my $suffix = ""; if($arg =~ /\A\(\?\^?([a-z]*)(?:-[a-z]*)?:(.*)\)\z/s) { ($suffix, $arg) = ($1, $2); } if ( 2 < $MaxArgLen and $MaxArgLen < length($arg) ) { substr ( $arg, $MaxArgLen - 3 ) = ""; $suffix = "...".$suffix; } return "qr($arg)$suffix"; } # 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 ) . "'"; } } # this can happen on older perls when the sub (or the stash containing it) # has been deleted if ( !defined( $info->{sub} ) ) { return '__ANON__::__ANON__'; } 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; { ++$i; my $cgc = _cgc(); my @caller = $cgc ? $cgc->($i) : caller($i); my $pkg = $caller[0]; unless ( defined($pkg) ) { # This *shouldn't* happen. if (%Internal) { local %Internal; $i = long_error_loc(); last; } elsif (defined $caller[2]) { # this can happen when the stash has been deleted # in that case, just assume that it's a reasonable place to # stop (the file and line data will still be intact in any # case) - the only issue is that we can't detect if the # deleted package was internal (so don't do that then) # -doy redo unless 0 > --$lvl; last; } else { return 2; } } redo if $CarpInternal{$pkg}; redo unless 0 > --$lvl; redo if $Internal{$pkg}; } return $i - 1; } sub longmess_heavy { if ( ref( $_[0] ) ) { # don't break references as exceptions return wantarray ? @_ : $_[0]; } my $i = long_error_loc(); return ret_backtrace( $i, @_ ); } BEGIN { if("$]" >= 5.017004) { # The LAST_FH constant is a reference to the variable. $Carp::{LAST_FH} = \eval '\${^LAST_FH}'; } else { eval '*LAST_FH = sub () { 0 }'; } } # 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"; if( $. ) { # Use ${^LAST_FH} if available. if (LAST_FH) { if (${+LAST_FH}) { $mess .= sprintf ", <%s> %s %d", *${+LAST_FH}{NAME}, ($/ eq "\n" ? "line" : "chunk"), $. } } else { local $@ = ''; local $SIG{__DIE__}; eval { CORE::die; }; if($@ =~ /^Died at .*(, <.*?> (?:line|chunk) \d+).$/ ) { $mess .= $1; } } } $mess .= "\.\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 $cgc = _cgc(); my $called = $cgc ? $cgc->($i) : caller($i); $i++; my $caller = $cgc ? $cgc->($i) : caller($i); if (!defined($caller)) { my @caller = $cgc ? $cgc->($i) : caller($i); if (@caller) { # if there's no package but there is other caller info, then # the package has been deleted - treat this as a valid package # in this case redo if defined($called) && $CarpInternal{$called}; redo unless 0 > --$lvl; last; } else { return 0; } } 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'; my $stash = \%{"$class\::"}; for my $var (qw/ CARP_NOT ISA /) { # Don't try using the variable until we know it exists, # to avoid polluting the caller's namespace. if ( $stash->{$var} && ref \$stash->{$var} eq 'GLOB' && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) { return @{$stash->{$var}} } } return; } if(!defined($warnings::VERSION) || do { no warnings "numeric"; $warnings::VERSION < 1.03 }) { # Very old versions of warnings.pm import from Carp. This can go # wrong due to the circular dependency. If Carp is invoked before # warnings, then Carp starts by loading warnings, then warnings # tries to import from Carp, and gets nothing because Carp is in # the process of loading and hasn't defined its import method yet. # So we work around that by manually exporting to warnings here. no strict "refs"; *{"warnings::$_"} = \&$_ foreach @EXPORT; } 1; __END__ =head1 NAME Carp - alternative warn and die for modules =head1 SYNOPSIS use Carp; # warn user (from perspective of caller) carp "string trimmed to 80 chars"; # die of errors (from perspective of caller) croak "We're outta here!"; # die of errors with stack backtrace confess "not implemented"; # cluck, longmess and shortmess not exported by default use Carp qw(cluck longmess shortmess); cluck "This is how we got here!"; # warn with stack backtrace my $long_message = longmess( "message from cluck() or confess()" ); my $short_message = shortmess( "message from carp() or croak()" ); =head1 DESCRIPTION The Carp routines are useful in your own modules because they act like C or C, but with a message which is more likely to be useful to a user of your module. In the case of C and C, that context is a summary of every call in the call-stack; C returns the contents of the error message. For a shorter message you can use C or C which report the error as being from where your module was called. C returns the contents of this error message. There is no guarantee that that is where the error was, but it is a good educated guess. C takes care not to clobber the status variables C<$!> and C<$^E> in the course of assembling its error messages. This means that a C<$SIG{__DIE__}> or C<$SIG{__WARN__}> handler can capture the error information held in those variables, if it is required to augment the error message, and if the code calling C left useful values there. Of course, C can't guarantee the latter. You can also alter the way the output and logic of C works, by changing some global variables in the C namespace. See the section on L below. Here is a more complete description of how C and C work. What they do is search the call-stack for a function call stack where they have not been told that there shouldn't be an error. If every call is marked safe, they give up and give a full stack backtrace instead. In other words they presume that the first likely looking potential suspect is guilty. Their rules for telling whether a call shouldn't generate errors work as follows: =over 4 =item 1. Any call from a package to itself is safe. =item 2. Packages claim that there won't be errors on calls to or from packages explicitly marked as safe by inclusion in C<@CARP_NOT>, or (if that array is empty) C<@ISA>. The ability to override what @ISA says is new in 5.8. =item 3. The trust in item 2 is transitive. If A trusts B, and B trusts C, then A trusts C. So if you do not override C<@ISA> with C<@CARP_NOT>, then this trust relationship is identical to, "inherits from". =item 4. Any call from an internal Perl module is safe. (Nothing keeps user modules from marking themselves as internal to Perl, but this practice is discouraged.) =item 5. Any call to Perl's warning system (eg Carp itself) is safe. (This rule is what keeps it from reporting the error at the point where you call C or C.) =item 6. C<$Carp::CarpLevel> can be set to skip a fixed number of additional call levels. Using this is not recommended because it is very difficult to get it to behave correctly. =back =head2 Forcing a Stack Trace As a debugging aid, you can force Carp to treat a croak as a confess and a carp as a cluck across I modules. In other words, force a detailed stack trace to be given. This can be very helpful when trying to understand why, or from where, a warning or error is being generated. This feature is enabled by 'importing' the non-existent symbol 'verbose'. You would typically enable it by saying perl -MCarp=verbose script.pl or by including the string C<-MCarp=verbose> in the PERL5OPT environment variable. Alternately, you can set the global variable C<$Carp::Verbose> to true. See the L section below. =head2 Stack Trace formatting At each stack level, the subroutine's name is displayed along with its parameters. For simple scalars, this is sufficient. For complex data types, such as objects and other references, this can simply display C<'HASH(0x1ab36d8)'>. Carp gives two ways to control this. =over 4 =item 1. For objects, a method, C, will be called, if it exists. If this method doesn't exist, or it recurses into C, or it otherwise throws an exception, this is skipped, and Carp moves on to the next option, otherwise checking stops and the string returned is used. It is recommended that the object's type is part of the string to make debugging easier. =item 2. For any type of reference, C<$Carp::RefArgFormatter> is checked (see below). This variable is expected to be a code reference, and the current parameter is passed in. If this function doesn't exist (the variable is undef), or it recurses into C, or it otherwise throws an exception, this is skipped, and Carp moves on to the next option, otherwise checking stops and the string returned is used. =item 3. Otherwise, if neither C nor C<$Carp::RefArgFormatter> is available, stringify the value ignoring any overloading. =back =head1 GLOBAL VARIABLES =head2 $Carp::MaxEvalLen This variable determines how many characters of a string-eval are to be shown in the output. Use a value of C<0> to show all text. Defaults to C<0>. =head2 $Carp::MaxArgLen This variable determines how many characters of each argument to a function to print. Use a value of C<0> to show the full length of the argument. Defaults to C<64>. =head2 $Carp::MaxArgNums This variable determines how many arguments to each function to show. Use a false value to show all arguments to a function call. To suppress all arguments, use C<-1> or C<'0 but true'>. Defaults to C<8>. =head2 $Carp::Verbose This variable makes C and C generate stack backtraces just like C and C. This is how C is implemented internally. Defaults to C<0>. =head2 $Carp::RefArgFormatter This variable sets a general argument formatter to display references. Plain scalars and objects that implement C will not go through this formatter. Calling C from within this function is not supported. local $Carp::RefArgFormatter = sub { require Data::Dumper; Data::Dumper->Dump($_[0]); # not necessarily safe }; =head2 @CARP_NOT This variable, I, says which packages are I to be considered as the location of an error. The C and C functions will skip over callers when reporting where an error occurred. NB: This variable must be in the package's symbol table, thus: # These work our @CARP_NOT; # file scope use vars qw(@CARP_NOT); # package scope @My::Package::CARP_NOT = ... ; # explicit package variable # These don't work sub xyz { ... @CARP_NOT = ... } # w/o declarations above my @CARP_NOT; # even at top-level Example of use: package My::Carping::Package; use Carp; our @CARP_NOT; sub bar { .... or _error('Wrong input') } sub _error { # temporary control of where'ness, __PACKAGE__ is implicit local @CARP_NOT = qw(My::Friendly::Caller); carp(@_) } This would make C report the error as coming from a caller not in C, nor from C. Also read the L section above, about how C decides where the error is reported from. Use C<@CARP_NOT>, instead of C<$Carp::CarpLevel>. Overrides C's use of C<@ISA>. =head2 %Carp::Internal This says what packages are internal to Perl. C will never report an error as being from a line in a package that is internal to Perl. For example: $Carp::Internal{ (__PACKAGE__) }++; # time passes... sub foo { ... or confess("whatever") }; would give a full stack backtrace starting from the first caller outside of __PACKAGE__. (Unless that package was also internal to Perl.) =head2 %Carp::CarpInternal This says which packages are internal to Perl's warning system. For generating a full stack backtrace this is the same as being internal to Perl, the stack backtrace will not start inside packages that are listed in C<%Carp::CarpInternal>. But it is slightly different for the summary message generated by C or C. There errors will not be reported on any lines that are calling packages in C<%Carp::CarpInternal>. For example C itself is listed in C<%Carp::CarpInternal>. Therefore the full stack backtrace from C will not start inside of C, and the short message from calling C is not placed on the line where C was called. =head2 $Carp::CarpLevel This variable determines how many additional call frames are to be skipped that would not otherwise be when reporting where an error occurred on a call to one of C's functions. It is fairly easy to count these call frames on calls that generate a full stack backtrace. However it is much harder to do this accounting for calls that generate a short message. Usually people skip too many call frames. If they are lucky they skip enough that C goes all of the way through the call stack, realizes that something is wrong, and then generates a full stack backtrace. If they are unlucky then the error is reported from somewhere misleading very high in the call stack. Therefore it is best to avoid C<$Carp::CarpLevel>. Instead use C<@CARP_NOT>, C<%Carp::Internal> and C<%Carp::CarpInternal>. Defaults to C<0>. =head1 BUGS The Carp routines don't handle exception objects currently. If called with a first argument that is a reference, they simply call die() or warn(), as appropriate. =head1 SEE ALSO L, L =head1 CONTRIBUTING L is maintained by the perl 5 porters as part of the core perl 5 version control repository. Please see the L perldoc for how to submit patches and contribute to it. =head1 AUTHOR The Carp module first appeared in Larry Wall's perl 5.000 distribution. Since then it has been modified by several of the perl 5 porters. Andrew Main (Zefram) divested Carp into an independent distribution. =head1 COPYRIGHT Copyright (C) 1994-2013 Larry Wall Copyright (C) 2011, 2012, 2013 Andrew Main (Zefram) =head1 LICENSE This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILEf88cde52/IO/Compress/Base.pm] package IO::Compress::Base ; require 5.006 ; use strict ; use warnings; use IO::Compress::Base::Common 2.204 ; use IO::File (); ; use Scalar::Util (); #use File::Glob; #require Exporter ; use Carp() ; use Symbol(); #use bytes; our (@ISA, $VERSION); @ISA = qw(IO::File Exporter); $VERSION = '2.204'; #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]); Carp::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, IO::Handle::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, IO::Handle::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 outputPayload { my $self = shift ; return $self->output(@_); } sub output { my $self = shift ; my $data = shift ; my $last = shift ; return 1 if length $data == 0 && ! $last ; if ( *$self->{FilterContainer} ) { *_ = \$data; &{ *$self->{FilterContainer} }(); } 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' => [IO::Compress::Base::Common::Parse_boolean, 1], ); } our %PARAMS = ( # Generic Parameters 'autoclose' => [IO::Compress::Base::Common::Parse_boolean, 0], 'encode' => [IO::Compress::Base::Common::Parse_any, undef], 'strict' => [IO::Compress::Base::Common::Parse_boolean, 1], 'append' => [IO::Compress::Base::Common::Parse_boolean, 0], 'binmodein' => [IO::Compress::Base::Common::Parse_boolean, 0], 'filtercontainer' => [IO::Compress::Base::Common::Parse_code, undef], ); sub checkParams { my $self = shift ; my $class = shift ; my $got = shift || IO::Compress::Base::Parameters::new(); $got->parse( { %PARAMS, $self->getExtraParams(), *$self->{OneShot} ? $self->getOneShotParams() : (), }, @_) or $self->croakError("${class}: " . $got->getError()) ; 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->getValue('strict') ; my $outType = IO::Compress::Base::Common::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->getValue('merge') ; my $appendOutput = $got->getValue('append') || $merge ; *$obj->{Append} = $appendOutput; *$obj->{FilterContainer} = $got->getValue('filtercontainer') ; 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" ) } $obj->ckParams($got) or $obj->croakError("${class}: " . $obj->error()); if ($got->getValue('encode')) { my $want_encoding = $got->getValue('encode'); *$obj->{Encoding} = IO::Compress::Base::Common::getEncoding($obj, $class, $want_encoding); my $x = *$obj->{Encoding}; } else { *$obj->{Encoding} = undef; } $obj->saveStatus(STATUS_OK) ; my $status ; if (! $merge) { *$obj->{Compress} = $obj->mkComp($got) or return undef; *$obj->{UnCompSize} = U64->new; *$obj->{CompSize} = U64->new; 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, IO::Handle::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} = IO::File->new( "$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; $obj->beforePayload(); } else { *$obj->{Compress} = $obj->createMerge($outValue, $outType) or return undef; } *$obj->{Closed} = 0 ; *$obj->{AutoClose} = $got->getValue('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 = IO::Compress::Base::Common::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' && Scalar::Util::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 = IO::Compress::Base::Validator->new($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, @_); Carp::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 isaScalar($input) || (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 isaScalar($element) || $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 = IO::File->new( "<$input" ) or return $self->saveErrorString(undef, "cannot open file '$input': $!", $!) ; } binmode $fh ; 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 ; } Carp::croak "Should not be here"; return undef; } sub addInterStream { my $self = shift ; my $input = shift ; my $inputIsFilename = shift ; if (*$self->{Got}->getValue('multistream')) { $self->getFileInfo(*$self->{Got}, $input) #if isaFilename($input) and $inputIsFilename ; if isaScalar($input) || isaFilename($input) ; # TODO -- newStream needs to allow gzip/zip header to be modified return $self->newStream(); } elsif (*$self->{Got}->getValue('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] ; } 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) && ! *$self->{FlushPending}; # *$self->{Pending} .= $$buffer ; # # return length $$buffer # if (length *$self->{Pending} < 1024 * 16 && ! *$self->{FlushPending}) ; # # $$buffer = *$self->{Pending} ; # *$self->{Pending} = ''; if (*$self->{Encoding}) { $$buffer = *$self->{Encoding}->encode($$buffer); } else { $] >= 5.008 and ( utf8::downgrade($$buffer, 1) or Carp::croak "Wide character in " . *$self->{ClassName} . "::write:"); } $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->outputPayload($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 _flushCompressed { 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->outputPayload($outBuffer) or return 0; return 1; } sub flush { my $self = shift ; $self->_flushCompressed(@_) or return 0; if ( defined *$self->{FH} ) { defined *$self->{FH}->flush() or return $self->saveErrorString(0, $!, $!); } return 1; } sub beforePayload { } sub _newStream { my $self = shift ; my $got = shift; my $class = ref $self; $self->_writeTrailer() or return 0 ; $self->ckParams($got) or $self->croakError("newStream: $self->{Error}"); if ($got->getValue('encode')) { my $want_encoding = $got->getValue('encode'); *$self->{Encoding} = IO::Compress::Base::Common::getEncoding($self, $class, $want_encoding); } else { *$self->{Encoding} = undef; } *$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(); $self->beforePayload(); return 1 ; } sub newStream { my $self = shift ; my $got = $self->checkParams('newStream', *$self->{Got}, @_) or return 0 ; $self->_newStream($got); # *$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(); # # $self->beforePayload(); # # 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->{FlushPending} = 1 ; $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}) && ! *$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 { Carp::croak "$name Not Available: File opened only for output" ; } ; } { no warnings 'once'; *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__ =head1 NAME IO::Compress::Base - Base Class for IO::Compress modules =head1 SYNOPSIS use IO::Compress::Base ; =head1 DESCRIPTION This module is not intended for direct use in application code. Its sole purpose is to be sub-classed by IO::Compress modules. =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE#0c079e18/IO/Compress/Base/Common.pmXpackage 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.204'; @EXPORT = qw( isaFilehandle isaFilename isaScalar whatIsInput whatIsOutput isaFileGlobString cleanFileGlobString oneTarget setBinModeInput setBinModeOutput ckInOutParams createSelfTiedObject isGeMax32 MAX32 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; use constant MAX16 => 0xFFFF ; use constant MAX32 => 0xFFFFFFFF ; use constant MAX32cmp => 0xFFFFFFFF + 1 - 1; # for 5.6.x on 32-bit need to force an non-IV value sub isGeMax32 { return $_[0] >= MAX32cmp ; } 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 isaScalar { return ( defined($_[0]) and ref($_[0]) eq 'SCALAR' and defined ${ $_[0] } ) ; } 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] = IO::File->new("<-"); } return $got; } sub whatIsOutput($;$) { my $got = whatIs(@_); if (defined $got && $got eq 'filename' && defined $_[0] && $_[0] eq '-') { $got = 'handle'; $_[0] = *STDOUT; #$_[0] = IO::File->new(">-"); } 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 = File::GlobMapper->new($_[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_string Parse_code 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_code => 0x20; #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 ; use constant IxError => 0; use constant IxGot => 1 ; 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 = IO::Compress::Base::Parameters->new(); $p->parse(@_) or croak "$sub: $p->[IxError]" ; return $p; } use strict; use warnings; use Carp; sub Init { my $default = shift ; my %got ; my $obj = IO::Compress::Base::Parameters::new(); while (my ($key, $v) = each %$default) { croak "need 2 params [@$v]" if @$v != 2 ; my ($type, $value) = @$v ; # my ($first_only, $sticky, $type, $value) = @$v ; my $sticky = 0; my $x ; $obj->_checkType($key, \$value, $type, 0, \$x) or return undef ; $key = lc $key; # if (! $sticky) { # $x = [] # if $type & Parse_multiple; # $got{$key} = [0, $type, $value, $x, $first_only, $sticky] ; $got{$key} = [0, $type, $value, $x] ; # } # # $got{$key}[OFF_PARSED] = 0 ; } return bless \%got, "IO::Compress::Base::Parameters::Defaults" ; } sub IO::Compress::Base::Parameters::new { #my $class = shift ; my $obj; $obj->[IxError] = ''; $obj->[IxGot] = {} ; return bless $obj, 'IO::Compress::Base::Parameters' ; } sub IO::Compress::Base::Parameters::setError { my $self = shift ; my $error = shift ; my $retval = @_ ? shift : undef ; $self->[IxError] = $error ; return $retval; } sub IO::Compress::Base::Parameters::getError { my $self = shift ; return $self->[IxError] ; } sub IO::Compress::Base::Parameters::parse { my $self = shift ; my $default = shift ; my $got = $self->[IxGot] ; 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] ; } } foreach my $key (keys %$default) { my ($type, $value) = @{ $default->{$key} } ; if ($firstTime) { $got->{$key} = [0, $type, $value, $value] ; } else { $got->{$key}[OFF_PARSED] = 0 ; } } my %parsed = (); 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}) { my $type = $got->{$canonkey}[OFF_TYPE] ; my $parsed = $parsed{$canonkey}; ++ $parsed{$canonkey}; return $self->setError("Muliple instances of '$key' found") if $parsed ; my $s ; $self->_checkType($key, $value, $type, 1, \$s) or return undef ; $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 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 readonly $$value ; if (ref $$value) { return $self->setError("Parameter '$key' not a scalar reference") if ref $$value ne 'SCALAR' ; $$output = $$value ; } else { return $self->setError("Parameter '$key' not a scalar") if ref $value ne 'SCALAR' ; $$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 ! defined $value ; return $self->setError("Parameter '$key' must be an unsigned int, got '$value'") if $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 ! defined $value ; return $self->setError("Parameter '$key' must be a signed int, got '$value'") if $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 defined $value && $value !~ /^\d*$/; $$output = defined $value && $value != 0 ? 1 : 0 ; return 1; } elsif ($type & Parse_string) { $$output = defined $value ? $value : "" ; return 1; } elsif ($type & Parse_code) { return $self->setError("Parameter '$key' must be a code reference, got '$value'") if (! defined $value || ref $value ne 'CODE') ; $$output = defined $value ? $value : "" ; return 1; } $$output = $value ; return 1; } sub IO::Compress::Base::Parameters::parsed { return $_[0]->[IxGot]{$_[1]}[OFF_PARSED] ; } sub IO::Compress::Base::Parameters::getValue { return $_[0]->[IxGot]{$_[1]}[OFF_FIXED] ; } sub IO::Compress::Base::Parameters::setValue { $_[0]->[IxGot]{$_[1]}[OFF_PARSED] = 1; $_[0]->[IxGot]{$_[1]}[OFF_DEFAULT] = $_[2] ; $_[0]->[IxGot]{$_[1]}[OFF_FIXED] = $_[2] ; } sub IO::Compress::Base::Parameters::valueRef { return $_[0]->[IxGot]{$_[1]}[OFF_FIXED] ; } sub IO::Compress::Base::Parameters::valueOrDefault { my $self = shift ; my $name = shift ; my $default = shift ; my $value = $self->[IxGot]{$name}[OFF_DEFAULT] ; return $value if defined $value ; return $default ; } sub IO::Compress::Base::Parameters::wantValue { return defined $_[0]->[IxGot]{$_[1]}[OFF_DEFAULT] ; } sub IO::Compress::Base::Parameters::clone { my $self = shift ; my $obj = [] ; my %got ; my $hash = $self->[IxGot] ; for my $k (keys %{ $hash }) { $got{$k} = [ @{ $hash->{$k} } ]; } $obj->[IxError] = $self->[IxError]; $obj->[IxGot] = \%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 { return bless [ 0, 0 ], $_[0] if @_ == 1 ; return bless [ $_[1], 0 ], $_[0] if @_ == 2 ; return bless [ $_[2], $_[1] ], $_[0] if @_ == 3 ; } sub newUnpack_V64 { my ($low, $hi) = unpack "V V", $_[0] ; bless [ $low, $hi ], "U64"; } sub newUnpack_V32 { my $string = shift; my $low = unpack "V", $string ; bless [ $low, 0 ], "U64"; } sub reset { $_[0]->[HIGH] = $_[0]->[LOW] = 0; } sub clone { bless [ @{$_[0]} ], ref $_[0] ; } sub getHigh { return $_[0]->[HIGH]; } sub getLow { return $_[0]->[LOW]; } sub get32bit { return $_[0]->[LOW]; } sub get64bit { # Not using << here because the result will still be # a 32-bit value on systems where int size is 32-bits return $_[0]->[HIGH] * HI_1 + $_[0]->[LOW]; } sub add { # my $self = shift; my $value = $_[1]; if (ref $value eq 'U64') { $_[0]->[HIGH] += $value->[HIGH] ; $value = $value->[LOW]; } elsif ($value > MAX32) { $_[0]->[HIGH] += int($value / HI_1) ; $value = $value % HI_1; } my $available = MAX32 - $_[0]->[LOW] ; if ($value > $available) { ++ $_[0]->[HIGH] ; $_[0]->[LOW] = $value - $available - 1; } else { $_[0]->[LOW] += $value ; } } sub add32 { # my $self = shift; my $value = $_[1]; if ($value > MAX32) { $_[0]->[HIGH] += int($value / HI_1) ; $value = $value % HI_1; } my $available = MAX32 - $_[0]->[LOW] ; if ($value > $available) { ++ $_[0]->[HIGH] ; $_[0]->[LOW] = $value - $available - 1; } else { $_[0]->[LOW] += $value ; } } sub subtract { my $self = shift; my $value = shift; if (ref $value eq 'U64') { if ($value->[HIGH]) { die "bad" if $self->[HIGH] == 0 || $value->[HIGH] > $self->[HIGH] ; $self->[HIGH] -= $value->[HIGH] ; } $value = $value->[LOW] ; } if ($value > $self->[LOW]) { -- $self->[HIGH] ; $self->[LOW] = MAX32 - $value + $self->[LOW] + 1 ; } else { $self->[LOW] -= $value; } } sub equal { my $self = shift; my $other = shift; return $self->[LOW] == $other->[LOW] && $self->[HIGH] == $other->[HIGH] ; } sub isZero { my $self = shift; return $self->[LOW] == 0 && $self->[HIGH] == 0 ; } sub gt { my $self = shift; my $other = shift; return $self->cmp($other) > 0 ; } sub cmp { my $self = shift; my $other = shift ; if ($self->[LOW] == $other->[LOW]) { return $self->[HIGH] - $other->[HIGH] ; } else { return $self->[LOW] - $other->[LOW] ; } } sub is64bit { return $_[0]->[HIGH] > 0 ; } sub isAlmost64bit { return $_[0]->[HIGH] > 0 || $_[0]->[LOW] == MAX32 ; } sub getPacked_V64 { return pack "V V", @{ $_[0] } ; } sub getPacked_V32 { return pack "V", $_[0]->[LOW] ; } sub pack_V64 { return pack "V V", $_[0], 0; } sub full32 { return $_[0] == MAX32 ; } sub Value_VV64 { my $buffer = shift; my ($lo, $hi) = unpack ("V V" , $buffer); no warnings 'uninitialized'; return $hi * HI_1 + $lo; } package IO::Compress::Base::Common; 1; FILE37b6870b/IO/Compress/Gzip.pmpackage IO::Compress::Gzip ; require 5.006 ; use strict ; use warnings; use bytes; require Exporter ; use IO::Compress::RawDeflate 2.204 () ; use IO::Compress::Adapter::Deflate 2.204 ; use IO::Compress::Base::Common 2.204 qw(:Status ); use IO::Compress::Gzip::Constants 2.204 ; use IO::Compress::Zlib::Extra 2.204 ; BEGIN { if (defined &utf8::downgrade ) { *noUTF8 = \&utf8::downgrade } else { *noUTF8 = sub {} } } our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError); $VERSION = '2.204'; $GzipError = '' ; @ISA = qw(IO::Compress::RawDeflate Exporter); @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 = IO::Compress::Base::Common::createSelfTiedObject($class, \$GzipError); $obj->_create(undef, @_); } sub gzip { my $obj = IO::Compress::Base::Common::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' => [IO::Compress::Base::Common::Parse_boolean, 0], 'comment' => [IO::Compress::Base::Common::Parse_any, undef], 'name' => [IO::Compress::Base::Common::Parse_any, undef], 'time' => [IO::Compress::Base::Common::Parse_any, undef], 'textflag' => [IO::Compress::Base::Common::Parse_boolean, 0], 'headercrc' => [IO::Compress::Base::Common::Parse_boolean, 0], 'os_code' => [IO::Compress::Base::Common::Parse_unsigned, $Compress::Raw::Zlib::gzip_os_code], 'extrafield'=> [IO::Compress::Base::Common::Parse_any, undef], 'extraflags'=> [IO::Compress::Base::Common::Parse_any, undef], ); } sub ckParams { my $self = shift ; my $got = shift ; # gzip always needs crc32 $got->setValue('crc32' => 1); return 1 if $got->getValue('merge') ; my $strict = $got->getValue('strict') ; { if (! $got->parsed('time') ) { # Modification time defaults to now. $got->setValue(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->getValue('name')) { my $name = $got->getValue('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->getValue('comment')) { my $comment = $got->getValue('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->getValue('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->setValue('method' => Z_DEFLATED) ; if ( ! $got->parsed('extraflags')) { $got->setValue('extraflags' => 2) if $got->getValue('level') == Z_BEST_COMPRESSION ; $got->setValue('extraflags' => 4) if $got->getValue('level') == Z_BEST_SPEED ; } my $data = $got->getValue('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->setValue('extrafield' => $data) ; } } return 1; } sub mkTrailer { my $self = shift ; return pack("V V", *$self->{Compress}->crc32(), *$self->{UnCompSize}->get32bit()); } sub getInverseClass { no warnings 'once'; return ('IO::Uncompress::Gunzip', \$IO::Uncompress::Gunzip::GunzipError); } sub getFileInfo { my $self = shift ; my $params = shift; my $filename = shift ; return if IO::Compress::Base::Common::isaScalar($filename); my $defaultTime = (stat($filename))[9] ; $params->setValue('name' => $filename) if ! $params->parsed('name') ; $params->setValue('time' => $defaultTime) if ! $params->parsed('time') ; } sub mkHeader { my $self = shift ; my $param = shift ; # short-circuit if a minimal header is requested. return GZIP_MINIMUM_HEADER if $param->getValue('minimal') ; # METHOD my $method = $param->valueOrDefault('method', GZIP_CM_DEFLATED) ; # FLAGS my $flags = GZIP_FLG_DEFAULT ; $flags |= GZIP_FLG_FTEXT if $param->getValue('textflag') ; $flags |= GZIP_FLG_FHCRC if $param->getValue('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->getValue('extrafield') ; $out .= pack("v", length $extra) . $extra ; } # NAME if ($flags & GZIP_FLG_FNAME) { my $name .= $param->getValue('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->getValue('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", Compress::Raw::Zlib::crc32($out) & 0x00FF ) if $param->getValue('headercrc') ; noUTF8($out); return $out ; } sub mkFinalTrailer { return ''; } 1; __END__ =head1 NAME IO::Compress::Gzip - Write RFC 1952 files/buffers =head1 SYNOPSIS use IO::Compress::Gzip qw(gzip $GzipError) ; my $status = gzip $input => $output [,OPTS] or die "gzip failed: $GzipError\n"; my $z = IO::Compress::Gzip->new( $output [,OPTS] ) or die "gzip failed: $GzipError\n"; $z->print($string); $z->printf($format, $string); $z->write($string); $z->syswrite($string [, $length, $offset]); $z->flush(); $z->tell(); $z->eof(); $z->seek($position, $whence); $z->binmode(); $z->fileno(); $z->opened(); $z->autoflush(); $z->input_line_number(); $z->newStream( [OPTS] ); $z->deflateParams(); $z->close() ; $GzipError ; # IO::File mode print $z $string; printf $z $format, $string; tell $z eof $z seek $z, $position, $whence binmode $z fileno $z close $z ; =head1 DESCRIPTION This module provides a Perl interface that allows writing compressed data to files or buffer as defined in RFC 1952. All the gzip headers defined in RFC 1952 can be created using this module. For reading RFC 1952 files/buffers, see the companion module L. =head1 Functional Interface A top-level function, C, is provided to carry out "one-shot" compression between buffers and/or files. For finer control over the compression process, see the L section. use IO::Compress::Gzip qw(gzip $GzipError) ; gzip $input_filename_or_reference => $output_filename_or_reference [,OPTS] or die "gzip failed: $GzipError\n"; The functional interface needs Perl5.005 or better. =head2 gzip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, C<$input_filename_or_reference> and C<$output_filename_or_reference> and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter The parameter, C<$input_filename_or_reference>, is used to define the source of the uncompressed data. It can take one of the following forms: =over 5 =item A filename If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. =item A filehandle If the C<$input_filename_or_reference> parameter is a filehandle, the input data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input_filename_or_reference> is a scalar reference, the input data will be read from C<$$input_filename_or_reference>. =item An array reference If C<$input_filename_or_reference> is an array reference, each element in the array must be a filename. The input data will be read from each file in turn. The complete array will be walked to ensure that it only contains valid filenames before any data is compressed. =item An Input FileGlob string If C<$input_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The input is the list of files that match the fileglob. See L for more details. =back If the C<$input_filename_or_reference> parameter is any other type, C will be returned. In addition, if C<$input_filename_or_reference> is a simple filename, the default values for the C and C' => '<*.gz>' or die "gzip failed: $GzipError\n"; and if you want to compress each file one at a time, this will do the trick use strict ; use warnings ; use IO::Compress::Gzip qw(gzip $GzipError) ; for my $input ( glob "/my/home/*.txt" ) { my $output = "$input.gz" ; gzip $input => $output or die "Error compressing '$input': $GzipError\n"; } =head1 OO Interface =head2 Constructor The format of the constructor for C is shown below my $z = IO::Compress::Gzip->new( $output [,OPTS] ) or die "IO::Compress::Gzip failed: $GzipError\n"; It returns an C object on success and undef on failure. The variable C<$GzipError> will contain an error message on failure. If you are running Perl 5.005 or better the object, C<$z>, returned from IO::Compress::Gzip can be used exactly like an L filehandle. This means that all normal output file operations can be carried out with C<$z>. For example, to write to a compressed file/buffer you can use either of these forms $z->print("hello world\n"); print $z "hello world\n"; The mandatory parameter C<$output> is used to control the destination of the compressed data. This parameter can take one of these forms. =over 5 =item A filename If the C<$output> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for writing and the compressed data will be written to it. =item A filehandle If the C<$output> parameter is a filehandle, the compressed data will be written to it. The string '-' can be used as an alias for standard output. =item A scalar reference If C<$output> is a scalar reference, the compressed data will be stored in C<$$output>. =back If the C<$output> parameter is any other type, C::new will return undef. =head2 Constructor Options C is any combination of zero or more the following options: =over 5 =item C<< AutoClose => 0|1 >> This option is only valid when the C<$output> parameter is a filehandle. If specified, and the value is true, it will result in the C<$output> being closed once either the C method is called or the C object is destroyed. This parameter defaults to 0. =item C<< Append => 0|1 >> Opens C<$output> in append mode. The behaviour of this option is dependent on the type of C<$output>. =over 5 =item * A Buffer If C<$output> is a buffer and C is enabled, all compressed data will be append to the end of C<$output>. Otherwise C<$output> will be cleared before any data is written to it. =item * A Filename If C<$output> is a filename and C is enabled, the file will be opened in append mode. Otherwise the contents of the file, if any, will be truncated before any compressed data is written to it. =item * A Filehandle If C<$output> is a filehandle, the file pointer will be positioned to the end of the file via a call to C before any compressed data is written to it. Otherwise the file pointer will not be moved. =back This parameter defaults to 0. =item C<< Merge => 0|1 >> This option is used to compress input data and append it to an existing compressed data stream in C<$output>. The end result is a single compressed data stream stored in C<$output>. It is a fatal error to attempt to use this option when C<$output> is not an RFC 1952 data stream. There are a number of other limitations with the C option: =over 5 =item 1 This module needs to have been built with zlib 1.2.1 or better to work. A fatal error will be thrown if C is used with an older version of zlib. =item 2 If C<$output> is a file or a filehandle, it must be seekable. =back This parameter defaults to 0. =item -Level Defines the compression level used by zlib. The value should either be a number between 0 and 9 (0 means no compression and 9 is maximum compression), or one of the symbolic constants defined below. Z_NO_COMPRESSION Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION The default is Z_DEFAULT_COMPRESSION. Note, these constants are not imported by C by default. use IO::Compress::Gzip qw(:strategy); use IO::Compress::Gzip qw(:constants); use IO::Compress::Gzip qw(:all); =item -Strategy Defines the strategy used to tune the compression. Use one of the symbolic constants defined below. Z_FILTERED Z_HUFFMAN_ONLY Z_RLE Z_FIXED Z_DEFAULT_STRATEGY The default is Z_DEFAULT_STRATEGY. =item C<< Minimal => 0|1 >> If specified, this option will force the creation of the smallest possible compliant gzip header (which is exactly 10 bytes long) as defined in RFC 1952. See the section titled "Compliance" in RFC 1952 for a definition of the values used for the fields in the gzip header. All other parameters that control the content of the gzip header will be ignored if this parameter is set to 1. This parameter defaults to 0. =item C<< Comment => $comment >> Stores the contents of C<$comment> in the COMMENT field in the gzip header. By default, no comment field is written to the gzip file. If the C<-Strict> option is enabled, the comment can only consist of ISO 8859-1 characters plus line feed. If the C<-Strict> option is disabled, the comment field can contain any character except NULL. If any null characters are present, the field will be truncated at the first NULL. =item C<< Name => $string >> Stores the contents of C<$string> in the gzip NAME header field. If C is not specified, no gzip NAME field will be created. If the C<-Strict> option is enabled, C<$string> can only consist of ISO 8859-1 characters. If C<-Strict> is disabled, then C<$string> can contain any character except NULL. If any null characters are present, the field will be truncated at the first NULL. =item C<< Time => $number >> Sets the MTIME field in the gzip header to $number. This field defaults to the time the C object was created if this option is not specified. =item C<< TextFlag => 0|1 >> This parameter controls the setting of the FLG.FTEXT bit in the gzip header. It is used to signal that the data stored in the gzip file/buffer is probably text. The default is 0. =item C<< HeaderCRC => 0|1 >> When true this parameter will set the FLG.FHCRC bit to 1 in the gzip header and set the CRC16 header field to the CRC of the complete gzip header except the CRC16 field itself. B that gzip files created with the C flag set to 1 cannot be read by most, if not all, of the standard gunzip utilities, most notably gzip version 1.2.4. You should therefore avoid using this option if you want to maximize the portability of your gzip files. This parameter defaults to 0. =item C<< OS_Code => $value >> Stores C<$value> in the gzip OS header field. A number between 0 and 255 is valid. If not specified, this parameter defaults to the OS code of the Operating System this module was built on. The value 3 is used as a catch-all for all Unix variants and unknown Operating Systems. =item C<< ExtraField => $data >> This parameter allows additional metadata to be stored in the ExtraField in the gzip header. An RFC 1952 compliant ExtraField consists of zero or more subfields. Each subfield consists of a two byte header followed by the subfield data. The list of subfields can be supplied in any of the following formats -ExtraField => [$id1, $data1, $id2, $data2, ... ] -ExtraField => [ [$id1 => $data1], [$id2 => $data2], ... ] -ExtraField => { $id1 => $data1, $id2 => $data2, ... } Where C<$id1>, C<$id2> are two byte subfield ID's. The second byte of the ID cannot be 0, unless the C option has been disabled. If you use the hash syntax, you have no control over the order in which the ExtraSubFields are stored, plus you cannot have SubFields with duplicate ID. Alternatively the list of subfields can by supplied as a scalar, thus -ExtraField => $rawdata If you use the raw format, and the C option is enabled, C will check that C<$rawdata> consists of zero or more conformant sub-fields. When C is disabled, C<$rawdata> can consist of any arbitrary byte stream. The maximum size of the Extra Field 65535 bytes. =item C<< ExtraFlags => $value >> Sets the XFL byte in the gzip header to C<$value>. If this option is not present, the value stored in XFL field will be determined by the setting of the C option. If C<< Level => Z_BEST_SPEED >> has been specified then XFL is set to 2. If C<< Level => Z_BEST_COMPRESSION >> has been specified then XFL is set to 4. Otherwise XFL is set to 0. =item C<< Strict => 0|1 >> C will optionally police the values supplied with other options to ensure they are compliant with RFC1952. This option is enabled by default. If C is enabled the following behaviour will be policed: =over 5 =item * The value supplied with the C option can only contain ISO 8859-1 characters. =item * The value supplied with the C option can only contain ISO 8859-1 characters plus line-feed. =item * The values supplied with the C<-Name> and C<-Comment> options cannot contain multiple embedded nulls. =item * If an C option is specified and it is a simple scalar, it must conform to the sub-field structure as defined in RFC 1952. =item * If an C option is specified the second byte of the ID will be checked in each subfield to ensure that it does not contain the reserved value 0x00. =back When C is disabled the following behaviour will be policed: =over 5 =item * The value supplied with C<-Name> option can contain any character except NULL. =item * The value supplied with C<-Comment> option can contain any character except NULL. =item * The values supplied with the C<-Name> and C<-Comment> options can contain multiple embedded nulls. The string written to the gzip header will consist of the characters up to, but not including, the first embedded NULL. =item * If an C option is specified and it is a simple scalar, the structure will not be checked. The only error is if the length is too big. =item * The ID header in an C sub-field can consist of any two bytes. =back =back =head2 Examples TODO =head1 Methods =head2 print Usage is $z->print($data) print $z $data Compresses and outputs the contents of the C<$data> parameter. This has the same behaviour as the C built-in. Returns true if successful. =head2 printf Usage is $z->printf($format, $data) printf $z $format, $data Compresses and outputs the contents of the C<$data> parameter. Returns true if successful. =head2 syswrite Usage is $z->syswrite $data $z->syswrite $data, $length $z->syswrite $data, $length, $offset Compresses and outputs the contents of the C<$data> parameter. Returns the number of uncompressed bytes written, or C if unsuccessful. =head2 write Usage is $z->write $data $z->write $data, $length $z->write $data, $length, $offset Compresses and outputs the contents of the C<$data> parameter. Returns the number of uncompressed bytes written, or C if unsuccessful. =head2 flush Usage is $z->flush; $z->flush($flush_type); Flushes any pending compressed data to the output file/buffer. This method takes an optional parameter, C<$flush_type>, that controls how the flushing will be carried out. By default the C<$flush_type> used is C. Other valid values for C<$flush_type> are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does - overuse of C can seriously degrade the level of compression achieved. See the C documentation for details. Returns true on success. =head2 tell Usage is $z->tell() tell $z Returns the uncompressed file offset. =head2 eof Usage is $z->eof(); eof($z); Returns true if the C method has been called. =head2 seek $z->seek($position, $whence); seek($z, $position, $whence); Provides a sub-set of the C functionality, with the restriction that it is only legal to seek forward in the output file/buffer. It is a fatal error to attempt to seek backward. Empty parts of the file/buffer will have NULL (0x00) bytes written to them. The C<$whence> parameter takes one the usual values, namely SEEK_SET, SEEK_CUR or SEEK_END. Returns 1 on success, 0 on failure. =head2 binmode Usage is $z->binmode binmode $z ; This is a noop provided for completeness. =head2 opened $z->opened() Returns true if the object currently refers to a opened file/buffer. =head2 autoflush my $prev = $z->autoflush() my $prev = $z->autoflush(EXPR) If the C<$z> object is associated with a file or a filehandle, this method returns the current autoflush setting for the underlying filehandle. If C is present, and is non-zero, it will enable flushing after every write/print operation. If C<$z> is associated with a buffer, this method has no effect and always returns C. B that the special variable C<$|> B be used to set or retrieve the autoflush setting. =head2 input_line_number $z->input_line_number() $z->input_line_number(EXPR) This method always returns C when compressing. =head2 fileno $z->fileno() fileno($z) If the C<$z> object is associated with a file or a filehandle, C will return the underlying file descriptor. Once the C method is called C will return C. If the C<$z> object is associated with a buffer, this method will return C. =head2 close $z->close() ; close $z ; Flushes any pending compressed data and then closes the output file/buffer. For most versions of Perl this method will be automatically invoked if the IO::Compress::Gzip object is destroyed (either explicitly or by the variable with the reference to the object going out of scope). The exceptions are Perl versions 5.005 through 5.00504 and 5.8.0. In these cases, the C method will be called automatically, but not until global destruction of all live objects when the program is terminating. Therefore, if you want your scripts to be able to run on all versions of Perl, you should call C explicitly and not rely on automatic closing. Returns true on success, otherwise 0. If the C option has been enabled when the IO::Compress::Gzip object was created, and the object is associated with a file, the underlying file will also be closed. =head2 newStream([OPTS]) Usage is $z->newStream( [OPTS] ) Closes the current compressed data stream and starts a new one. OPTS consists of any of the options that are available when creating the C<$z> object. See the L section for more details. =head2 deflateParams Usage is $z->deflateParams TODO =head1 Importing A number of symbolic constants are required by some methods in C. None are imported by default. =over 5 =item :all Imports C, C<$GzipError> and all symbolic constants that can be used by C. Same as doing this use IO::Compress::Gzip qw(gzip $GzipError :constants) ; =item :constants Import all symbolic constants. Same as doing this use IO::Compress::Gzip qw(:flush :level :strategy) ; =item :flush These symbolic constants are used by the C method. Z_NO_FLUSH Z_PARTIAL_FLUSH Z_SYNC_FLUSH Z_FULL_FLUSH Z_FINISH Z_BLOCK =item :level These symbolic constants are used by the C option in the constructor. Z_NO_COMPRESSION Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION =item :strategy These symbolic constants are used by the C option in the constructor. Z_FILTERED Z_HUFFMAN_ONLY Z_RLE Z_FIXED Z_DEFAULT_STRATEGY =back =head1 EXAMPLES =head2 Apache::GZip Revisited See L =head2 Working with Net::FTP See L =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE&7cb7291f/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.204'; @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"b239a116/IO/Compress/RawDeflate.pmipackage IO::Compress::RawDeflate ; # create RFC1951 # use strict ; use warnings; use bytes; use IO::Compress::Base 2.204 ; use IO::Compress::Base::Common 2.204 qw(:Status :Parse); use IO::Compress::Adapter::Deflate 2.204 ; use Compress::Raw::Zlib 2.204 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY); require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError); $VERSION = '2.204'; $RawDeflateError = ''; @ISA = qw(IO::Compress::Base Exporter); @EXPORT_OK = qw( $RawDeflateError rawdeflate ) ; push @EXPORT_OK, @IO::Compress::Adapter::Deflate::EXPORT_OK ; %EXPORT_TAGS = %IO::Compress::Adapter::Deflate::DEFLATE_CONSTANTS; { 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 = IO::Compress::Base::Common::createSelfTiedObject($class, \$RawDeflateError); return $obj->_create(undef, @_); } sub rawdeflate { my $obj = IO::Compress::Base::Common::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->getValue('crc32'), $got->getValue('adler32'), $got->getValue('level'), $got->getValue('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 getZlibParams(); } our %PARAMS = ( #'method' => [IO::Compress::Base::Common::Parse_unsigned, Z_DEFLATED], 'level' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_COMPRESSION], 'strategy' => [IO::Compress::Base::Common::Parse_signed, Z_DEFAULT_STRATEGY], 'crc32' => [IO::Compress::Base::Common::Parse_boolean, 0], 'adler32' => [IO::Compress::Base::Common::Parse_boolean, 0], 'merge' => [IO::Compress::Base::Common::Parse_boolean, 0], ); sub getZlibParams { return %PARAMS; } sub getInverseClass { no warnings 'once'; return ('IO::Uncompress::RawInflate', \$IO::Uncompress::RawInflate::RawInflateError); } sub getFileInfo { my $self = shift ; my $params = shift; my $file = shift ; } use Fcntl 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} = U64->new(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__ =head1 NAME IO::Compress::RawDeflate - Write RFC 1951 files/buffers =head1 SYNOPSIS use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError) ; my $status = rawdeflate $input => $output [,OPTS] or die "rawdeflate failed: $RawDeflateError\n"; my $z = IO::Compress::RawDeflate->new( $output [,OPTS] ) or die "rawdeflate failed: $RawDeflateError\n"; $z->print($string); $z->printf($format, $string); $z->write($string); $z->syswrite($string [, $length, $offset]); $z->flush(); $z->tell(); $z->eof(); $z->seek($position, $whence); $z->binmode(); $z->fileno(); $z->opened(); $z->autoflush(); $z->input_line_number(); $z->newStream( [OPTS] ); $z->deflateParams(); $z->close() ; $RawDeflateError ; # IO::File mode print $z $string; printf $z $format, $string; tell $z eof $z seek $z, $position, $whence binmode $z fileno $z close $z ; =head1 DESCRIPTION This module provides a Perl interface that allows writing compressed data to files or buffer as defined in RFC 1951. Note that RFC 1951 data is not a good choice of compression format to use in isolation, especially if you want to auto-detect it. For reading RFC 1951 files/buffers, see the companion module L. =head1 Functional Interface A top-level function, C, is provided to carry out "one-shot" compression between buffers and/or files. For finer control over the compression process, see the L section. use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError) ; rawdeflate $input_filename_or_reference => $output_filename_or_reference [,OPTS] or die "rawdeflate failed: $RawDeflateError\n"; The functional interface needs Perl5.005 or better. =head2 rawdeflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, C<$input_filename_or_reference> and C<$output_filename_or_reference> and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter The parameter, C<$input_filename_or_reference>, is used to define the source of the uncompressed data. It can take one of the following forms: =over 5 =item A filename If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. =item A filehandle If the C<$input_filename_or_reference> parameter is a filehandle, the input data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input_filename_or_reference> is a scalar reference, the input data will be read from C<$$input_filename_or_reference>. =item An array reference If C<$input_filename_or_reference> is an array reference, each element in the array must be a filename. The input data will be read from each file in turn. The complete array will be walked to ensure that it only contains valid filenames before any data is compressed. =item An Input FileGlob string If C<$input_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The input is the list of files that match the fileglob. See L for more details. =back If the C<$input_filename_or_reference> parameter is any other type, C will be returned. =head3 The C<$output_filename_or_reference> parameter The parameter C<$output_filename_or_reference> is used to control the destination of the compressed data. This parameter can take one of these forms. =over 5 =item A filename If the C<$output_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for writing and the compressed data will be written to it. =item A filehandle If the C<$output_filename_or_reference> parameter is a filehandle, the compressed data will be written to it. The string '-' can be used as an alias for standard output. =item A scalar reference If C<$output_filename_or_reference> is a scalar reference, the compressed data will be stored in C<$$output_filename_or_reference>. =item An Array Reference If C<$output_filename_or_reference> is an array reference, the compressed data will be pushed onto the array. =item An Output FileGlob If C<$output_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The output is the list of files that match the fileglob. When C<$output_filename_or_reference> is an fileglob string, C<$input_filename_or_reference> must also be a fileglob string. Anything else is an error. See L for more details. =back If the C<$output_filename_or_reference> parameter is any other type, C will be returned. =head2 Notes When C<$input_filename_or_reference> maps to multiple files/buffers and C<$output_filename_or_reference> is a single file/buffer the input files/buffers will be stored in C<$output_filename_or_reference> as a concatenated series of compressed data streams. =head2 Optional Parameters The optional parameters for the one-shot function C are (for the most part) identical to those used with the OO interface defined in the L section. The exceptions are listed below =over 5 =item C<< AutoClose => 0|1 >> This option applies to any input or output data streams to C that are filehandles. If C is specified, and the value is true, it will result in all input and/or output filehandles being closed once C has completed. This parameter defaults to 0. =item C<< BinModeIn => 0|1 >> This option is now a no-op. All files will be read in binmode. =item C<< Append => 0|1 >> The behaviour of this option is dependent on the type of output data stream. =over 5 =item * A Buffer If C is enabled, all compressed data will be append to the end of the output buffer. Otherwise the output buffer will be cleared before any compressed data is written to it. =item * A Filename If C is enabled, the file will be opened in append mode. Otherwise the contents of the file, if any, will be truncated before any compressed data is written to it. =item * A Filehandle If C is enabled, the filehandle will be positioned to the end of the file via a call to C before any compressed data is written to it. Otherwise the file pointer will not be moved. =back When C is specified, and set to true, it will I all compressed data to the output data stream. So when the output is a filehandle it will carry out a seek to the eof before writing any compressed data. If the output is a filename, it will be opened for appending. If the output is a buffer, all compressed data will be appended to the existing buffer. Conversely when C is not specified, or it is present and is set to false, it will operate as follows. When the output is a filename, it will truncate the contents of the file before writing any compressed data. If the output is a filehandle its position will not be changed. If the output is a buffer, it will be wiped before any compressed data is output. Defaults to 0. =back =head2 Examples Here are a few example that show the capabilities of the module. =head3 Streaming This very simple command line example demonstrates the streaming capabilities of the module. The code reads data from STDIN, compresses it, and writes the compressed data to STDOUT. $ echo hello world | perl -MIO::Compress::RawDeflate=rawdeflate -e 'rawdeflate \*STDIN => \*STDOUT' >output.1951 The special filename "-" can be used as a standin for both C<\*STDIN> and C<\*STDOUT>, so the above can be rewritten as $ echo hello world | perl -MIO::Compress::RawDeflate=rawdeflate -e 'rawdeflate "-" => "-"' >output.1951 =head3 Compressing a file from the filesystem To read the contents of the file C and write the compressed data to the file C. use strict ; use warnings ; use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError) ; my $input = "file1.txt"; rawdeflate $input => "$input.1951" or die "rawdeflate failed: $RawDeflateError\n"; =head3 Reading from a Filehandle and writing to an in-memory buffer To read from an existing Perl filehandle, C<$input>, and write the compressed data to a buffer, C<$buffer>. use strict ; use warnings ; use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError) ; use IO::File ; my $input = IO::File->new( " \$buffer or die "rawdeflate failed: $RawDeflateError\n"; =head3 Compressing multiple files To compress all files in the directory "/my/home" that match "*.txt" and store the compressed data in the same directory use strict ; use warnings ; use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError) ; rawdeflate '' => '<*.1951>' or die "rawdeflate failed: $RawDeflateError\n"; and if you want to compress each file one at a time, this will do the trick use strict ; use warnings ; use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError) ; for my $input ( glob "/my/home/*.txt" ) { my $output = "$input.1951" ; rawdeflate $input => $output or die "Error compressing '$input': $RawDeflateError\n"; } =head1 OO Interface =head2 Constructor The format of the constructor for C is shown below my $z = IO::Compress::RawDeflate->new( $output [,OPTS] ) or die "IO::Compress::RawDeflate failed: $RawDeflateError\n"; It returns an C object on success and undef on failure. The variable C<$RawDeflateError> will contain an error message on failure. If you are running Perl 5.005 or better the object, C<$z>, returned from IO::Compress::RawDeflate can be used exactly like an L filehandle. This means that all normal output file operations can be carried out with C<$z>. For example, to write to a compressed file/buffer you can use either of these forms $z->print("hello world\n"); print $z "hello world\n"; The mandatory parameter C<$output> is used to control the destination of the compressed data. This parameter can take one of these forms. =over 5 =item A filename If the C<$output> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for writing and the compressed data will be written to it. =item A filehandle If the C<$output> parameter is a filehandle, the compressed data will be written to it. The string '-' can be used as an alias for standard output. =item A scalar reference If C<$output> is a scalar reference, the compressed data will be stored in C<$$output>. =back If the C<$output> parameter is any other type, C::new will return undef. =head2 Constructor Options C is any combination of zero or more the following options: =over 5 =item C<< AutoClose => 0|1 >> This option is only valid when the C<$output> parameter is a filehandle. If specified, and the value is true, it will result in the C<$output> being closed once either the C method is called or the C object is destroyed. This parameter defaults to 0. =item C<< Append => 0|1 >> Opens C<$output> in append mode. The behaviour of this option is dependent on the type of C<$output>. =over 5 =item * A Buffer If C<$output> is a buffer and C is enabled, all compressed data will be append to the end of C<$output>. Otherwise C<$output> will be cleared before any data is written to it. =item * A Filename If C<$output> is a filename and C is enabled, the file will be opened in append mode. Otherwise the contents of the file, if any, will be truncated before any compressed data is written to it. =item * A Filehandle If C<$output> is a filehandle, the file pointer will be positioned to the end of the file via a call to C before any compressed data is written to it. Otherwise the file pointer will not be moved. =back This parameter defaults to 0. =item C<< Merge => 0|1 >> This option is used to compress input data and append it to an existing compressed data stream in C<$output>. The end result is a single compressed data stream stored in C<$output>. It is a fatal error to attempt to use this option when C<$output> is not an RFC 1951 data stream. There are a number of other limitations with the C option: =over 5 =item 1 This module needs to have been built with zlib 1.2.1 or better to work. A fatal error will be thrown if C is used with an older version of zlib. =item 2 If C<$output> is a file or a filehandle, it must be seekable. =back This parameter defaults to 0. =item -Level Defines the compression level used by zlib. The value should either be a number between 0 and 9 (0 means no compression and 9 is maximum compression), or one of the symbolic constants defined below. Z_NO_COMPRESSION Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION The default is Z_DEFAULT_COMPRESSION. Note, these constants are not imported by C by default. use IO::Compress::RawDeflate qw(:strategy); use IO::Compress::RawDeflate qw(:constants); use IO::Compress::RawDeflate qw(:all); =item -Strategy Defines the strategy used to tune the compression. Use one of the symbolic constants defined below. Z_FILTERED Z_HUFFMAN_ONLY Z_RLE Z_FIXED Z_DEFAULT_STRATEGY The default is Z_DEFAULT_STRATEGY. =item C<< Strict => 0|1 >> This is a placeholder option. =back =head2 Examples TODO =head1 Methods =head2 print Usage is $z->print($data) print $z $data Compresses and outputs the contents of the C<$data> parameter. This has the same behaviour as the C built-in. Returns true if successful. =head2 printf Usage is $z->printf($format, $data) printf $z $format, $data Compresses and outputs the contents of the C<$data> parameter. Returns true if successful. =head2 syswrite Usage is $z->syswrite $data $z->syswrite $data, $length $z->syswrite $data, $length, $offset Compresses and outputs the contents of the C<$data> parameter. Returns the number of uncompressed bytes written, or C if unsuccessful. =head2 write Usage is $z->write $data $z->write $data, $length $z->write $data, $length, $offset Compresses and outputs the contents of the C<$data> parameter. Returns the number of uncompressed bytes written, or C if unsuccessful. =head2 flush Usage is $z->flush; $z->flush($flush_type); Flushes any pending compressed data to the output file/buffer. This method takes an optional parameter, C<$flush_type>, that controls how the flushing will be carried out. By default the C<$flush_type> used is C. Other valid values for C<$flush_type> are C, C, C and C. It is strongly recommended that you only set the C parameter if you fully understand the implications of what it does - overuse of C can seriously degrade the level of compression achieved. See the C documentation for details. Returns true on success. =head2 tell Usage is $z->tell() tell $z Returns the uncompressed file offset. =head2 eof Usage is $z->eof(); eof($z); Returns true if the C method has been called. =head2 seek $z->seek($position, $whence); seek($z, $position, $whence); Provides a sub-set of the C functionality, with the restriction that it is only legal to seek forward in the output file/buffer. It is a fatal error to attempt to seek backward. Empty parts of the file/buffer will have NULL (0x00) bytes written to them. The C<$whence> parameter takes one the usual values, namely SEEK_SET, SEEK_CUR or SEEK_END. Returns 1 on success, 0 on failure. =head2 binmode Usage is $z->binmode binmode $z ; This is a noop provided for completeness. =head2 opened $z->opened() Returns true if the object currently refers to a opened file/buffer. =head2 autoflush my $prev = $z->autoflush() my $prev = $z->autoflush(EXPR) If the C<$z> object is associated with a file or a filehandle, this method returns the current autoflush setting for the underlying filehandle. If C is present, and is non-zero, it will enable flushing after every write/print operation. If C<$z> is associated with a buffer, this method has no effect and always returns C. B that the special variable C<$|> B be used to set or retrieve the autoflush setting. =head2 input_line_number $z->input_line_number() $z->input_line_number(EXPR) This method always returns C when compressing. =head2 fileno $z->fileno() fileno($z) If the C<$z> object is associated with a file or a filehandle, C will return the underlying file descriptor. Once the C method is called C will return C. If the C<$z> object is associated with a buffer, this method will return C. =head2 close $z->close() ; close $z ; Flushes any pending compressed data and then closes the output file/buffer. For most versions of Perl this method will be automatically invoked if the IO::Compress::RawDeflate object is destroyed (either explicitly or by the variable with the reference to the object going out of scope). The exceptions are Perl versions 5.005 through 5.00504 and 5.8.0. In these cases, the C method will be called automatically, but not until global destruction of all live objects when the program is terminating. Therefore, if you want your scripts to be able to run on all versions of Perl, you should call C explicitly and not rely on automatic closing. Returns true on success, otherwise 0. If the C option has been enabled when the IO::Compress::RawDeflate object was created, and the object is associated with a file, the underlying file will also be closed. =head2 newStream([OPTS]) Usage is $z->newStream( [OPTS] ) Closes the current compressed data stream and starts a new one. OPTS consists of any of the options that are available when creating the C<$z> object. See the L section for more details. =head2 deflateParams Usage is $z->deflateParams TODO =head1 Importing A number of symbolic constants are required by some methods in C. None are imported by default. =over 5 =item :all Imports C, C<$RawDeflateError> and all symbolic constants that can be used by C. Same as doing this use IO::Compress::RawDeflate qw(rawdeflate $RawDeflateError :constants) ; =item :constants Import all symbolic constants. Same as doing this use IO::Compress::RawDeflate qw(:flush :level :strategy) ; =item :flush These symbolic constants are used by the C method. Z_NO_FLUSH Z_PARTIAL_FLUSH Z_SYNC_FLUSH Z_FULL_FLUSH Z_FINISH Z_BLOCK =item :level These symbolic constants are used by the C option in the constructor. Z_NO_COMPRESSION Z_BEST_SPEED Z_BEST_COMPRESSION Z_DEFAULT_COMPRESSION =item :strategy These symbolic constants are used by the C option in the constructor. Z_FILTERED Z_HUFFMAN_ONLY Z_RLE Z_FIXED Z_DEFAULT_STRATEGY =back =head1 EXAMPLES =head2 Apache::GZip Revisited See L =head2 Working with Net::FTP See L =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE"8437bc4c/IO/Compress/Zlib/Extra.pmpackage IO::Compress::Zlib::Extra; require 5.006 ; use strict ; use warnings; use bytes; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS); $VERSION = '2.204'; use IO::Compress::Gzip::Constants 2.204 ; 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 findID { my $id_want = shift ; my $data = shift; my $XLEN = length $data ; my $offset = 0 ; while ($offset < $XLEN) { return undef 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 undef if $offset + $subLen > $XLEN ; return substr($data, $offset, $subLen) if $id eq $id_want ; $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 $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 <= @$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)c469705a/IO/Uncompress/Adapter/Inflate.pm package IO::Uncompress::Adapter::Inflate; use strict; use warnings; use bytes; use IO::Compress::Base::Common 2.204 qw(:Status); use Compress::Raw::Zlib 2.204 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS); our ($VERSION); $VERSION = '2.204'; sub mkUncompObject { my $crc32 = shift || 1; my $adler32 = shift || 1; my $scan = shift || 0; my $inflate ; my $status ; if ($scan) { ($inflate, $status) = Compress::Raw::Zlib::InflateScan->new( #LimitOutput => 1, CRC32 => $crc32, ADLER32 => $adler32, WindowBits => - MAX_WBITS ); } else { ($inflate, $status) = Compress::Raw::Zlib::Inflate->new( 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__ FILE00f4c5d7/IO/Uncompress/Base.pm? package IO::Uncompress::Base ; use strict ; use warnings; use bytes; our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS); @ISA = qw(IO::File Exporter); $VERSION = '2.204'; use constant G_EOF => 0 ; use constant G_ERR => -1 ; use IO::Compress::Base::Common 2.204 ; use IO::File ; use Symbol; use Scalar::Util (); use List::Util (); use Carp ; %EXPORT_TAGS = ( ); push @{ $EXPORT_TAGS{all} }, @EXPORT_OK ; sub smartRead { my $self = $_[0]; my $out = $_[1]; my $size = $_[2]; $$out = "" ; my $offset = 0 ; my $status = 1; if (defined *$self->{InputLength}) { return 0 if *$self->{InputLengthRemaining} <= 0 ; $size = List::Util::min($size, *$self->{InputLengthRemaining}); } if ( length *$self->{Prime} ) { $$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)); substr($$out, $size, length($$out)) = ''; } *$self->{EventEof} = 1 if $got <= 0 ; } else { no warnings 'uninitialized'; my $buf = *$self->{Buffer} ; $$buf = '' unless defined $$buf ; 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; my $position = shift || SEEK_SET; # TODO -- need to take prime into account *$self->{Prime} = ''; if (defined *$self->{FH}) { *$self->{FH}->seek($offset, $position) } else { if ($position == SEEK_END) { *$self->{BufferOffset} = length(${ *$self->{Buffer} }) + $offset ; } elsif ($position == SEEK_CUR) { *$self->{BufferOffset} += $offset ; } else { *$self->{BufferOffset} = $offset ; } substr(${ *$self->{Buffer} }, *$self->{BufferOffset}) = '' if $truncate; return 1; } } sub smartTell { my $self = shift ; if (defined *$self->{FH}) { return *$self->{FH}->tell() } else { return *$self->{BufferOffset} } } 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 ; *$self->{ErrorNo} = $errno; ${ *$self->{Error} } = '' ; return *$self->{ErrorNo} ; } sub saveErrorString { my $self = shift ; my $retval = shift ; ${ *$self->{Error} } = shift ; *$self->{ErrorNo} = @_ ? shift() + 0 : STATUS_ERROR ; 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' => [IO::Compress::Base::Common::Parse_unsigned, 16 * 1024], 'autoclose' => [IO::Compress::Base::Common::Parse_boolean, 0], 'strict' => [IO::Compress::Base::Common::Parse_boolean, 0], 'append' => [IO::Compress::Base::Common::Parse_boolean, 0], 'prime' => [IO::Compress::Base::Common::Parse_any, undef], 'multistream' => [IO::Compress::Base::Common::Parse_boolean, 0], 'transparent' => [IO::Compress::Base::Common::Parse_any, 1], 'scan' => [IO::Compress::Base::Common::Parse_boolean, 0], 'inputlength' => [IO::Compress::Base::Common::Parse_unsigned, undef], 'binmodeout' => [IO::Compress::Base::Common::Parse_boolean, 0], #'decode' => [IO::Compress::Base::Common::Parse_any, undef], #'consumeinput' => [IO::Compress::Base::Common::Parse_boolean, 0], $self->getExtraParams(), #'Todo - Revert to ordinary file on end Z_STREAM_END'=> 0, # ContinueAfterEof } ; $Valid->{trailingdata} = [IO::Compress::Base::Common::Parse_writable_scalar, undef] if *$self->{OneShot} ; $got->parse($Valid, @_ ) or $self->croakError("${class}: " . $got->getError()) ; $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->getValue('scan'); } else { no warnings ; my $mode = '<'; $mode = '+<' if $got->getValue('scan'); *$obj->{StdIO} = ($inValue eq '-'); *$obj->{FH} = IO::File->new( "$mode $inValue" ) or return $obj->saveErrorString(undef, "cannot open file '$inValue': $!", $!) ; } *$obj->{LineNo} = $. = 0; setBinModeInput(*$obj->{FH}) ; my $buff = "" ; *$obj->{Buffer} = \$buff ; } # if ($got->getValue('decode')) { # my $want_encoding = $got->getValue('decode'); # *$obj->{Encoding} = IO::Compress::Base::Common::getEncoding($obj, $class, $want_encoding); # } # else { # *$obj->{Encoding} = undef; # } *$obj->{InputLength} = $got->parsed('inputlength') ? $got->getValue('inputlength') : undef ; *$obj->{InputLengthRemaining} = $got->getValue('inputlength'); *$obj->{BufferOffset} = 0 ; *$obj->{AutoClose} = $got->getValue('autoclose'); *$obj->{Strict} = $got->getValue('strict'); *$obj->{BlockSize} = $got->getValue('blocksize'); *$obj->{Append} = $got->getValue('append'); *$obj->{AppendOutput} = $append_mode || $got->getValue('append'); *$obj->{ConsumeInput} = $got->getValue('consumeinput'); *$obj->{Transparent} = $got->getValue('transparent'); *$obj->{MultiStream} = $got->getValue('multistream'); # TODO - move these two into RawDeflate *$obj->{Scan} = $got->getValue('scan'); *$obj->{ParseExtra} = $got->getValue('parseextra') || $got->getValue('strict') ; *$obj->{Type} = ''; *$obj->{Prime} = $got->getValue('prime') || '' ; *$obj->{Pending} = ''; *$obj->{Plain} = 0; *$obj->{PlainBytesRead} = 0; *$obj->{InflatedBytesRead} = 0; *$obj->{UnCompSize} = U64->new; *$obj->{CompSize} = U64->new; *$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; *$obj->{InNew} = 0; *$obj->{Closed} = 0; return $obj if *$obj->{Pause} ; if ($status) { # Need to try uncompressing to catch the case # where the compressed file uncompresses to an # empty string - so eof is set immediately. my $out_buffer = ''; $status = $obj->read(\$out_buffer); if ($status < 0) { *$obj->{ReadStatus} = [ $status, $obj->error(), $obj->errorNo() ]; } $obj->ungetc($out_buffer) if length $out_buffer; } else { return undef unless *$obj->{Transparent}; $obj->clearError(); *$obj->{Type} = 'plain'; *$obj->{Plain} = 1; $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 = IO::Compress::Base::Validator->new($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')) { # my $value = $got->valueRef('TrailingData'); # warn "TD $value "; # #$value = $$value; ## warn "TD $value $$value "; # # return retErr($obj, "Parameter 'TrailingData' not writable") # if readonly $$value ; # # if (ref $$value) # { # return retErr($obj,"Parameter 'TrailingData' not a scalar reference") # if ref $$value ne 'SCALAR' ; # # *$obj->{TrailingData} = $$value ; # } # else # { # return retErr($obj,"Parameter 'TrailingData' not a scalar") # if ref $value ne 'SCALAR' ; # # *$obj->{TrailingData} = $value ; # } *$obj->{TrailingData} = $got->getValue('trailingdata'); } *$obj->{MultiStream} = $got->getValue('multistream'); $got->setValue('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}->getValue('append') ; $x->{fh} = IO::File->new( "$mode $output" ) or return retErr($x, "cannot open file '$output': $!") ; binmode $x->{fh} ; } elsif ($x->{outType} eq 'handle') { $x->{fh} = $output; binmode $x->{fh} ; if ($x->{Got}->getValue('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}->getValue('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}->getValue('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 = IO::Compress::Base::Common::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) { local $\; 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 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 = List::Util::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 *$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, $before_len); # if (*$self->{Encoding}) { # use Encode ; # *$self->{PendingDecode} .= substr($$buffer, $before_len) ; # my $got = *$self->{Encoding}->decode(*$self->{PendingDecode}, Encode::FB_QUIET) ; # substr($$buffer, $before_len) = $got; # } } if ($status == STATUS_ENDSTREAM) { *$self->{EndStream} = 1 ; 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 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 ; # An uncompressed file cannot have a next stream, so # return immediately. return 0 if *$self->{Plain} ; my $status = $self->gotoNextStream(); $status == 1 or return $status ; *$self->{Pending} = '' if $self !~ /IO::Uncompress::RawInflate/ && ! *$self->{MultiStream}; *$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->{CompressedInputLengthDone} = undef ; *$self->{CompressedInputLength} = undef ; $self->reset(); *$self->{UnCompSize}->reset(); *$self->{CompSize}->reset(); my $magic = $self->ckMagic(); if ( ! defined $magic) { if (! *$self->{Transparent} || $self->eof()) { *$self->{EndStream} = 1 ; return 0; } # Not EOF, so Transparent mode kicks in now for trailing data # Reset member name in case anyone calls getHeaderInfo()->{Name} *$self->{Info} = { Name => undef, Type => 'plain' }; $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 ; if (defined *$self->{ReadStatus} ) { my $status = *$self->{ReadStatus}[0]; $self->saveErrorString( @{ *$self->{ReadStatus} } ); delete *$self->{ReadStatus} ; return $status ; } return G_EOF if *$self->{Closed} ; my $buffer ; if (ref $_[0] ) { $self->croakError(*$self->{ClassName} . "::read: buffer parameter is read-only") if Scalar::Util::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 Scalar::Util::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) = ''; } } } elsif (! defined $$buffer) { $$buffer = '' ; } 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($$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, \$data); } # Record Mode if ( ref $/ eq 'SCALAR' && ${$/} =~ /^\d+$/ && ${$/} > 0) { my $reclen = ${$/} ; my $data ; $status = $self->read($data, $reclen) ; return ($status, \$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 (1, \$par); } } return ($status, \$paragraph); } # $/ isn't empty, or a reference, so it's Line Mode. { my $line ; my $p = \*$self->{Pending} ; 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 (1, \$l); } } return ($status, \$line); } } sub getline { my $self = shift; if (defined *$self->{ReadStatus} ) { $self->saveErrorString( @{ *$self->{ReadStatus} } ); delete *$self->{ReadStatus} ; return undef; } return undef if *$self->{Closed} || (!length *$self->{Pending} && *$self->{EndStream}) ; my $current_append = *$self->{AppendOutput} ; *$self->{AppendOutput} = 1; my ($status, $lineref) = $self->_getline(); *$self->{AppendOutput} = $current_append; return undef if $status < 0 || length $$lineref == 0 ; $. = ++ *$self->{LineNo} ; 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}) { 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, List::Util::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; } sub _notAvailable { my $name = shift ; return sub { croak "$name Not Available: File opened only for intput" ; } ; } { no warnings 'once'; *BINMODE = \&binmode; *SEEK = \&seek; *READ = \&read; *sysread = \&read; *TELL = \&tell; *EOF = \&eof; *FILENO = \&fileno; *CLOSE = \&close; *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__ =head1 NAME IO::Uncompress::Base - Base Class for IO::Uncompress modules =head1 SYNOPSIS use IO::Uncompress::Base ; =head1 DESCRIPTION This module is not intended for direct use in application code. Its sole purpose is to be sub-classed by IO::Uncompress modules. =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE 1476416a/IO/Uncompress/Gunzip.pm~ package IO::Uncompress::Gunzip ; require 5.006 ; # for RFC1952 use strict ; use warnings; use bytes; use IO::Uncompress::RawInflate 2.204 ; use Compress::Raw::Zlib 2.204 () ; use IO::Compress::Base::Common 2.204 qw(:Status ); use IO::Compress::Gzip::Constants 2.204 ; use IO::Compress::Zlib::Extra 2.204 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GunzipError); @ISA = qw(IO::Uncompress::RawInflate Exporter); @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.204'; sub new { my $class = shift ; $GunzipError = ''; my $obj = IO::Compress::Base::Common::createSelfTiedObject($class, \$GunzipError); $obj->_create(undef, 0, @_); } sub gunzip { my $obj = IO::Compress::Base::Common::createSelfTiedObject(undef, \$GunzipError); return $obj->_inf(@_) ; } sub getExtraParams { return ( 'parseextra' => [IO::Compress::Base::Common::Parse_boolean, 0] ) ; } sub ckParams { my $self = shift ; my $got = shift ; # gunzip always needs crc32 $got->setValue('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 = Compress::Raw::Zlib::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__ =head1 NAME IO::Uncompress::Gunzip - Read RFC 1952 files/buffers =head1 SYNOPSIS use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; my $status = gunzip $input => $output [,OPTS] or die "gunzip failed: $GunzipError\n"; my $z = IO::Uncompress::Gunzip->new( $input [OPTS] ) or die "gunzip failed: $GunzipError\n"; $status = $z->read($buffer) $status = $z->read($buffer, $length) $status = $z->read($buffer, $length, $offset) $line = $z->getline() $char = $z->getc() $char = $z->ungetc() $char = $z->opened() $status = $z->inflateSync() $data = $z->trailingData() $status = $z->nextStream() $data = $z->getHeaderInfo() $z->tell() $z->seek($position, $whence) $z->binmode() $z->fileno() $z->eof() $z->close() $GunzipError ; # IO::File mode <$z> read($z, $buffer); read($z, $buffer, $length); read($z, $buffer, $length, $offset); tell($z) seek($z, $position, $whence) binmode($z) fileno($z) eof($z) close($z) =head1 DESCRIPTION This module provides a Perl interface that allows the reading of files/buffers that conform to RFC 1952. For writing RFC 1952 files/buffers, see the companion module IO::Compress::Gzip. =head1 Functional Interface A top-level function, C, is provided to carry out "one-shot" uncompression between buffers and/or files. For finer control over the uncompression process, see the L section. use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; gunzip $input_filename_or_reference => $output_filename_or_reference [,OPTS] or die "gunzip failed: $GunzipError\n"; The functional interface needs Perl5.005 or better. =head2 gunzip $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, C<$input_filename_or_reference> and C<$output_filename_or_reference> and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter The parameter, C<$input_filename_or_reference>, is used to define the source of the compressed data. It can take one of the following forms: =over 5 =item A filename If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. =item A filehandle If the C<$input_filename_or_reference> parameter is a filehandle, the input data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input_filename_or_reference> is a scalar reference, the input data will be read from C<$$input_filename_or_reference>. =item An array reference If C<$input_filename_or_reference> is an array reference, each element in the array must be a filename. The input data will be read from each file in turn. The complete array will be walked to ensure that it only contains valid filenames before any data is uncompressed. =item An Input FileGlob string If C<$input_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The input is the list of files that match the fileglob. See L for more details. =back If the C<$input_filename_or_reference> parameter is any other type, C will be returned. =head3 The C<$output_filename_or_reference> parameter The parameter C<$output_filename_or_reference> is used to control the destination of the uncompressed data. This parameter can take one of these forms. =over 5 =item A filename If the C<$output_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for writing and the uncompressed data will be written to it. =item A filehandle If the C<$output_filename_or_reference> parameter is a filehandle, the uncompressed data will be written to it. The string '-' can be used as an alias for standard output. =item A scalar reference If C<$output_filename_or_reference> is a scalar reference, the uncompressed data will be stored in C<$$output_filename_or_reference>. =item An Array Reference If C<$output_filename_or_reference> is an array reference, the uncompressed data will be pushed onto the array. =item An Output FileGlob If C<$output_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The output is the list of files that match the fileglob. When C<$output_filename_or_reference> is an fileglob string, C<$input_filename_or_reference> must also be a fileglob string. Anything else is an error. See L for more details. =back If the C<$output_filename_or_reference> parameter is any other type, C will be returned. =head2 Notes When C<$input_filename_or_reference> maps to multiple compressed files/buffers and C<$output_filename_or_reference> is a single file/buffer, after uncompression C<$output_filename_or_reference> will contain a concatenation of all the uncompressed data from each of the input files/buffers. =head2 Optional Parameters The optional parameters for the one-shot function C are (for the most part) identical to those used with the OO interface defined in the L section. The exceptions are listed below =over 5 =item C<< AutoClose => 0|1 >> This option applies to any input or output data streams to C that are filehandles. If C is specified, and the value is true, it will result in all input and/or output filehandles being closed once C has completed. This parameter defaults to 0. =item C<< BinModeOut => 0|1 >> This option is now a no-op. All files will be written in binmode. =item C<< Append => 0|1 >> The behaviour of this option is dependent on the type of output data stream. =over 5 =item * A Buffer If C is enabled, all uncompressed data will be append to the end of the output buffer. Otherwise the output buffer will be cleared before any uncompressed data is written to it. =item * A Filename If C is enabled, the file will be opened in append mode. Otherwise the contents of the file, if any, will be truncated before any uncompressed data is written to it. =item * A Filehandle If C is enabled, the filehandle will be positioned to the end of the file via a call to C before any uncompressed data is written to it. Otherwise the file pointer will not be moved. =back When C is specified, and set to true, it will I all uncompressed data to the output data stream. So when the output is a filehandle it will carry out a seek to the eof before writing any uncompressed data. If the output is a filename, it will be opened for appending. If the output is a buffer, all uncompressed data will be appended to the existing buffer. Conversely when C is not specified, or it is present and is set to false, it will operate as follows. When the output is a filename, it will truncate the contents of the file before writing any uncompressed data. If the output is a filehandle its position will not be changed. If the output is a buffer, it will be wiped before any uncompressed data is output. Defaults to 0. =item C<< MultiStream => 0|1 >> If the input file/buffer contains multiple compressed data streams, this option will uncompress the whole lot as a single data stream. Defaults to 0. =item C<< TrailingData => $scalar >> Returns the data, if any, that is present immediately after the compressed data stream once uncompression is complete. This option can be used when there is useful information immediately following the compressed data stream, and you don't know the length of the compressed data stream. If the input is a buffer, C will return everything from the end of the compressed data stream to the end of the buffer. If the input is a filehandle, C will return the data that is left in the filehandle input buffer once the end of the compressed data stream has been reached. You can then use the filehandle to read the rest of the input file. Don't bother using C if the input is a filename. If you know the length of the compressed data stream before you start uncompressing, you can avoid having to use C by setting the C option. =back =head2 Examples To read the contents of the file C and write the uncompressed data to the file C. use strict ; use warnings ; use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; my $input = "file1.txt.gz"; my $output = "file1.txt"; gunzip $input => $output or die "gunzip failed: $GunzipError\n"; To read from an existing Perl filehandle, C<$input>, and write the uncompressed data to a buffer, C<$buffer>. use strict ; use warnings ; use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; use IO::File ; my $input = IO::File->new( " \$buffer or die "gunzip failed: $GunzipError\n"; To uncompress all files in the directory "/my/home" that match "*.txt.gz" and store the compressed data in the same directory use strict ; use warnings ; use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; gunzip '' => '' or die "gunzip failed: $GunzipError\n"; and if you want to compress each file one at a time, this will do the trick use strict ; use warnings ; use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; for my $input ( glob "/my/home/*.txt.gz" ) { my $output = $input; $output =~ s/.gz// ; gunzip $input => $output or die "Error compressing '$input': $GunzipError\n"; } =head1 OO Interface =head2 Constructor The format of the constructor for IO::Uncompress::Gunzip is shown below my $z = IO::Uncompress::Gunzip->new( $input [OPTS] ) or die "IO::Uncompress::Gunzip failed: $GunzipError\n"; Returns an C object on success and undef on failure. The variable C<$GunzipError> will contain an error message on failure. If you are running Perl 5.005 or better the object, C<$z>, returned from IO::Uncompress::Gunzip can be used exactly like an L filehandle. This means that all normal input file operations can be carried out with C<$z>. For example, to read a line from a compressed file/buffer you can use either of these forms $line = $z->getline(); $line = <$z>; The mandatory parameter C<$input> is used to determine the source of the compressed data. This parameter can take one of three forms. =over 5 =item A filename If the C<$input> parameter is a scalar, it is assumed to be a filename. This file will be opened for reading and the compressed data will be read from it. =item A filehandle If the C<$input> parameter is a filehandle, the compressed data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input> is a scalar reference, the compressed data will be read from C<$$input>. =back =head2 Constructor Options The option names defined below are case insensitive and can be optionally prefixed by a '-'. So all of the following are valid -AutoClose -autoclose AUTOCLOSE autoclose OPTS is a combination of the following options: =over 5 =item C<< AutoClose => 0|1 >> This option is only valid when the C<$input> parameter is a filehandle. If specified, and the value is true, it will result in the file being closed once either the C method is called or the IO::Uncompress::Gunzip object is destroyed. This parameter defaults to 0. =item C<< MultiStream => 0|1 >> Allows multiple concatenated compressed streams to be treated as a single compressed stream. Decompression will stop once either the end of the file/buffer is reached, an error is encountered (premature eof, corrupt compressed data) or the end of a stream is not immediately followed by the start of another stream. This parameter defaults to 0. =item C<< Prime => $string >> This option will uncompress the contents of C<$string> before processing the input file/buffer. This option can be useful when the compressed data is embedded in another file/data structure and it is not possible to work out where the compressed data begins without having to read the first few bytes. If this is the case, the uncompression can be I with these bytes using this option. =item C<< Transparent => 0|1 >> If this option is set and the input file/buffer is not compressed data, the module will allow reading of it anyway. In addition, if the input file/buffer does contain compressed data and there is non-compressed data immediately following it, setting this option will make this module treat the whole file/buffer as a single data stream. This option defaults to 1. =item C<< BlockSize => $num >> When reading the compressed input data, IO::Uncompress::Gunzip will read it in blocks of C<$num> bytes. This option defaults to 4096. =item C<< InputLength => $size >> When present this option will limit the number of compressed bytes read from the input file/buffer to C<$size>. This option can be used in the situation where there is useful data directly after the compressed data stream and you know beforehand the exact length of the compressed data stream. This option is mostly used when reading from a filehandle, in which case the file pointer will be left pointing to the first byte directly after the compressed data stream. This option defaults to off. =item C<< Append => 0|1 >> This option controls what the C method does with uncompressed data. If set to 1, all uncompressed data will be appended to the output parameter of the C method. If set to 0, the contents of the output parameter of the C method will be overwritten by the uncompressed data. Defaults to 0. =item C<< Strict => 0|1 >> This option controls whether the extra checks defined below are used when carrying out the decompression. When Strict is on, the extra tests are carried out, when Strict is off they are not. The default for this option is off. =over 5 =item 1 If the FHCRC bit is set in the gzip FLG header byte, the CRC16 bytes in the header must match the crc16 value of the gzip header actually read. =item 2 If the gzip header contains a name field (FNAME) it consists solely of ISO 8859-1 characters. =item 3 If the gzip header contains a comment field (FCOMMENT) it consists solely of ISO 8859-1 characters plus line-feed. =item 4 If the gzip FEXTRA header field is present it must conform to the sub-field structure as defined in RFC 1952. =item 5 The CRC32 and ISIZE trailer fields must be present. =item 6 The value of the CRC32 field read must match the crc32 value of the uncompressed data actually contained in the gzip file. =item 7 The value of the ISIZE fields read must match the length of the uncompressed data actually read from the file. =back =item C<< ParseExtra => 0|1 >> If the gzip FEXTRA header field is present and this option is set, it will force the module to check that it conforms to the sub-field structure as defined in RFC 1952. If the C is on it will automatically enable this option. Defaults to 0. =back =head2 Examples TODO =head1 Methods =head2 read Usage is $status = $z->read($buffer) Reads a block of compressed data (the size of the compressed block is determined by the C option in the constructor), uncompresses it and writes any uncompressed data into C<$buffer>. If the C parameter is set in the constructor, the uncompressed data will be appended to the C<$buffer> parameter. Otherwise C<$buffer> will be overwritten. Returns the number of uncompressed bytes written to C<$buffer>, zero if eof or a negative number on error. =head2 read Usage is $status = $z->read($buffer, $length) $status = $z->read($buffer, $length, $offset) $status = read($z, $buffer, $length) $status = read($z, $buffer, $length, $offset) Attempt to read C<$length> bytes of uncompressed data into C<$buffer>. The main difference between this form of the C method and the previous one, is that this one will attempt to return I C<$length> bytes. The only circumstances that this function will not is if end-of-file or an IO error is encountered. Returns the number of uncompressed bytes written to C<$buffer>, zero if eof or a negative number on error. =head2 getline Usage is $line = $z->getline() $line = <$z> Reads a single line. This method fully supports the use of the variable C<$/> (or C<$INPUT_RECORD_SEPARATOR> or C<$RS> when C is in use) to determine what constitutes an end of line. Paragraph mode, record mode and file slurp mode are all supported. =head2 getc Usage is $char = $z->getc() Read a single character. =head2 ungetc Usage is $char = $z->ungetc($string) =head2 inflateSync Usage is $status = $z->inflateSync() TODO =head2 getHeaderInfo Usage is $hdr = $z->getHeaderInfo(); @hdrs = $z->getHeaderInfo(); This method returns either a hash reference (in scalar context) or a list or hash references (in array context) that contains information about each of the header fields in the compressed data stream(s). =over 5 =item Name The contents of the Name header field, if present. If no name is present, the value will be undef. Note this is different from a zero length name, which will return an empty string. =item Comment The contents of the Comment header field, if present. If no comment is present, the value will be undef. Note this is different from a zero length comment, which will return an empty string. =back =head2 tell Usage is $z->tell() tell $z Returns the uncompressed file offset. =head2 eof Usage is $z->eof(); eof($z); Returns true if the end of the compressed input stream has been reached. =head2 seek $z->seek($position, $whence); seek($z, $position, $whence); Provides a sub-set of the C functionality, with the restriction that it is only legal to seek forward in the input file/buffer. It is a fatal error to attempt to seek backward. Note that the implementation of C in this module does not provide true random access to a compressed file/buffer. It works by uncompressing data from the current offset in the file/buffer until it reaches the uncompressed offset specified in the parameters to C. For very small files this may be acceptable behaviour. For large files it may cause an unacceptable delay. The C<$whence> parameter takes one the usual values, namely SEEK_SET, SEEK_CUR or SEEK_END. Returns 1 on success, 0 on failure. =head2 binmode Usage is $z->binmode binmode $z ; This is a noop provided for completeness. =head2 opened $z->opened() Returns true if the object currently refers to a opened file/buffer. =head2 autoflush my $prev = $z->autoflush() my $prev = $z->autoflush(EXPR) If the C<$z> object is associated with a file or a filehandle, this method returns the current autoflush setting for the underlying filehandle. If C is present, and is non-zero, it will enable flushing after every write/print operation. If C<$z> is associated with a buffer, this method has no effect and always returns C. B that the special variable C<$|> B be used to set or retrieve the autoflush setting. =head2 input_line_number $z->input_line_number() $z->input_line_number(EXPR) Returns the current uncompressed line number. If C is present it has the effect of setting the line number. Note that setting the line number does not change the current position within the file/buffer being read. The contents of C<$/> are used to determine what constitutes a line terminator. =head2 fileno $z->fileno() fileno($z) If the C<$z> object is associated with a file or a filehandle, C will return the underlying file descriptor. Once the C method is called C will return C. If the C<$z> object is associated with a buffer, this method will return C. =head2 close $z->close() ; close $z ; Closes the output file/buffer. For most versions of Perl this method will be automatically invoked if the IO::Uncompress::Gunzip object is destroyed (either explicitly or by the variable with the reference to the object going out of scope). The exceptions are Perl versions 5.005 through 5.00504 and 5.8.0. In these cases, the C method will be called automatically, but not until global destruction of all live objects when the program is terminating. Therefore, if you want your scripts to be able to run on all versions of Perl, you should call C explicitly and not rely on automatic closing. Returns true on success, otherwise 0. If the C option has been enabled when the IO::Uncompress::Gunzip object was created, and the object is associated with a file, the underlying file will also be closed. =head2 nextStream Usage is my $status = $z->nextStream(); Skips to the next compressed data stream in the input file/buffer. If a new compressed data stream is found, the eof marker will be cleared and C<$.> will be reset to 0. Returns 1 if a new stream was found, 0 if none was found, and -1 if an error was encountered. =head2 trailingData Usage is my $data = $z->trailingData(); Returns the data, if any, that is present immediately after the compressed data stream once uncompression is complete. It only makes sense to call this method once the end of the compressed data stream has been encountered. This option can be used when there is useful information immediately following the compressed data stream, and you don't know the length of the compressed data stream. If the input is a buffer, C will return everything from the end of the compressed data stream to the end of the buffer. If the input is a filehandle, C will return the data that is left in the filehandle input buffer once the end of the compressed data stream has been reached. You can then use the filehandle to read the rest of the input file. Don't bother using C if the input is a filename. If you know the length of the compressed data stream before you start uncompressing, you can avoid having to use C by setting the C option in the constructor. =head1 Importing No symbolic constants are required by IO::Uncompress::Gunzip at present. =over 5 =item :all Imports C and C<$GunzipError>. Same as doing this use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ; =back =head1 EXAMPLES =head2 Working with Net::FTP See L =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE$eeb3cf40/IO/Uncompress/RawInflate.pm|package IO::Uncompress::RawInflate ; # for RFC1951 use strict ; use warnings; use bytes; use Compress::Raw::Zlib 2.204 ; use IO::Compress::Base::Common 2.204 qw(:Status ); use IO::Uncompress::Base 2.204 ; use IO::Uncompress::Adapter::Inflate 2.204 ; require Exporter ; our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError); $VERSION = '2.204'; $RawInflateError = ''; @ISA = qw(IO::Uncompress::Base Exporter); @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 = IO::Compress::Base::Common::createSelfTiedObject($class, \$RawInflateError); $obj->_create(undef, 0, @_); } sub rawinflate { my $obj = IO::Compress::Base::Common::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->getValue('crc32'), $got->getValue('adler32'), $got->getValue('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}->getValue('crc32'), -ADLER32 => *$self->{Params}->getValue('adler32'), ); return wantarray ? ($status, $def) : $def ; } 1; __END__ =head1 NAME IO::Uncompress::RawInflate - Read RFC 1951 files/buffers =head1 SYNOPSIS use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; my $status = rawinflate $input => $output [,OPTS] or die "rawinflate failed: $RawInflateError\n"; my $z = IO::Uncompress::RawInflate->new( $input [OPTS] ) or die "rawinflate failed: $RawInflateError\n"; $status = $z->read($buffer) $status = $z->read($buffer, $length) $status = $z->read($buffer, $length, $offset) $line = $z->getline() $char = $z->getc() $char = $z->ungetc() $char = $z->opened() $status = $z->inflateSync() $data = $z->trailingData() $status = $z->nextStream() $data = $z->getHeaderInfo() $z->tell() $z->seek($position, $whence) $z->binmode() $z->fileno() $z->eof() $z->close() $RawInflateError ; # IO::File mode <$z> read($z, $buffer); read($z, $buffer, $length); read($z, $buffer, $length, $offset); tell($z) seek($z, $position, $whence) binmode($z) fileno($z) eof($z) close($z) =head1 DESCRIPTION This module provides a Perl interface that allows the reading of files/buffers that conform to RFC 1951. For writing RFC 1951 files/buffers, see the companion module IO::Compress::RawDeflate. =head1 Functional Interface A top-level function, C, is provided to carry out "one-shot" uncompression between buffers and/or files. For finer control over the uncompression process, see the L section. use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; rawinflate $input_filename_or_reference => $output_filename_or_reference [,OPTS] or die "rawinflate failed: $RawInflateError\n"; The functional interface needs Perl5.005 or better. =head2 rawinflate $input_filename_or_reference => $output_filename_or_reference [, OPTS] C expects at least two parameters, C<$input_filename_or_reference> and C<$output_filename_or_reference> and zero or more optional parameters (see L) =head3 The C<$input_filename_or_reference> parameter The parameter, C<$input_filename_or_reference>, is used to define the source of the compressed data. It can take one of the following forms: =over 5 =item A filename If the C<$input_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for reading and the input data will be read from it. =item A filehandle If the C<$input_filename_or_reference> parameter is a filehandle, the input data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input_filename_or_reference> is a scalar reference, the input data will be read from C<$$input_filename_or_reference>. =item An array reference If C<$input_filename_or_reference> is an array reference, each element in the array must be a filename. The input data will be read from each file in turn. The complete array will be walked to ensure that it only contains valid filenames before any data is uncompressed. =item An Input FileGlob string If C<$input_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The input is the list of files that match the fileglob. See L for more details. =back If the C<$input_filename_or_reference> parameter is any other type, C will be returned. =head3 The C<$output_filename_or_reference> parameter The parameter C<$output_filename_or_reference> is used to control the destination of the uncompressed data. This parameter can take one of these forms. =over 5 =item A filename If the C<$output_filename_or_reference> parameter is a simple scalar, it is assumed to be a filename. This file will be opened for writing and the uncompressed data will be written to it. =item A filehandle If the C<$output_filename_or_reference> parameter is a filehandle, the uncompressed data will be written to it. The string '-' can be used as an alias for standard output. =item A scalar reference If C<$output_filename_or_reference> is a scalar reference, the uncompressed data will be stored in C<$$output_filename_or_reference>. =item An Array Reference If C<$output_filename_or_reference> is an array reference, the uncompressed data will be pushed onto the array. =item An Output FileGlob If C<$output_filename_or_reference> is a string that is delimited by the characters "<" and ">" C will assume that it is an I. The output is the list of files that match the fileglob. When C<$output_filename_or_reference> is an fileglob string, C<$input_filename_or_reference> must also be a fileglob string. Anything else is an error. See L for more details. =back If the C<$output_filename_or_reference> parameter is any other type, C will be returned. =head2 Notes When C<$input_filename_or_reference> maps to multiple compressed files/buffers and C<$output_filename_or_reference> is a single file/buffer, after uncompression C<$output_filename_or_reference> will contain a concatenation of all the uncompressed data from each of the input files/buffers. =head2 Optional Parameters The optional parameters for the one-shot function C are (for the most part) identical to those used with the OO interface defined in the L section. The exceptions are listed below =over 5 =item C<< AutoClose => 0|1 >> This option applies to any input or output data streams to C that are filehandles. If C is specified, and the value is true, it will result in all input and/or output filehandles being closed once C has completed. This parameter defaults to 0. =item C<< BinModeOut => 0|1 >> This option is now a no-op. All files will be written in binmode. =item C<< Append => 0|1 >> The behaviour of this option is dependent on the type of output data stream. =over 5 =item * A Buffer If C is enabled, all uncompressed data will be append to the end of the output buffer. Otherwise the output buffer will be cleared before any uncompressed data is written to it. =item * A Filename If C is enabled, the file will be opened in append mode. Otherwise the contents of the file, if any, will be truncated before any uncompressed data is written to it. =item * A Filehandle If C is enabled, the filehandle will be positioned to the end of the file via a call to C before any uncompressed data is written to it. Otherwise the file pointer will not be moved. =back When C is specified, and set to true, it will I all uncompressed data to the output data stream. So when the output is a filehandle it will carry out a seek to the eof before writing any uncompressed data. If the output is a filename, it will be opened for appending. If the output is a buffer, all uncompressed data will be appended to the existing buffer. Conversely when C is not specified, or it is present and is set to false, it will operate as follows. When the output is a filename, it will truncate the contents of the file before writing any uncompressed data. If the output is a filehandle its position will not be changed. If the output is a buffer, it will be wiped before any uncompressed data is output. Defaults to 0. =item C<< MultiStream => 0|1 >> This option is a no-op. =item C<< TrailingData => $scalar >> Returns the data, if any, that is present immediately after the compressed data stream once uncompression is complete. This option can be used when there is useful information immediately following the compressed data stream, and you don't know the length of the compressed data stream. If the input is a buffer, C will return everything from the end of the compressed data stream to the end of the buffer. If the input is a filehandle, C will return the data that is left in the filehandle input buffer once the end of the compressed data stream has been reached. You can then use the filehandle to read the rest of the input file. Don't bother using C if the input is a filename. If you know the length of the compressed data stream before you start uncompressing, you can avoid having to use C by setting the C option. =back =head2 Examples To read the contents of the file C and write the uncompressed data to the file C. use strict ; use warnings ; use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; my $input = "file1.txt.1951"; my $output = "file1.txt"; rawinflate $input => $output or die "rawinflate failed: $RawInflateError\n"; To read from an existing Perl filehandle, C<$input>, and write the uncompressed data to a buffer, C<$buffer>. use strict ; use warnings ; use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; use IO::File ; my $input = IO::File->new( " \$buffer or die "rawinflate failed: $RawInflateError\n"; To uncompress all files in the directory "/my/home" that match "*.txt.1951" and store the compressed data in the same directory use strict ; use warnings ; use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; rawinflate '' => '' or die "rawinflate failed: $RawInflateError\n"; and if you want to compress each file one at a time, this will do the trick use strict ; use warnings ; use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; for my $input ( glob "/my/home/*.txt.1951" ) { my $output = $input; $output =~ s/.1951// ; rawinflate $input => $output or die "Error compressing '$input': $RawInflateError\n"; } =head1 OO Interface =head2 Constructor The format of the constructor for IO::Uncompress::RawInflate is shown below my $z = IO::Uncompress::RawInflate->new( $input [OPTS] ) or die "IO::Uncompress::RawInflate failed: $RawInflateError\n"; Returns an C object on success and undef on failure. The variable C<$RawInflateError> will contain an error message on failure. If you are running Perl 5.005 or better the object, C<$z>, returned from IO::Uncompress::RawInflate can be used exactly like an L filehandle. This means that all normal input file operations can be carried out with C<$z>. For example, to read a line from a compressed file/buffer you can use either of these forms $line = $z->getline(); $line = <$z>; The mandatory parameter C<$input> is used to determine the source of the compressed data. This parameter can take one of three forms. =over 5 =item A filename If the C<$input> parameter is a scalar, it is assumed to be a filename. This file will be opened for reading and the compressed data will be read from it. =item A filehandle If the C<$input> parameter is a filehandle, the compressed data will be read from it. The string '-' can be used as an alias for standard input. =item A scalar reference If C<$input> is a scalar reference, the compressed data will be read from C<$$input>. =back =head2 Constructor Options The option names defined below are case insensitive and can be optionally prefixed by a '-'. So all of the following are valid -AutoClose -autoclose AUTOCLOSE autoclose OPTS is a combination of the following options: =over 5 =item C<< AutoClose => 0|1 >> This option is only valid when the C<$input> parameter is a filehandle. If specified, and the value is true, it will result in the file being closed once either the C method is called or the IO::Uncompress::RawInflate object is destroyed. This parameter defaults to 0. =item C<< MultiStream => 0|1 >> Allows multiple concatenated compressed streams to be treated as a single compressed stream. Decompression will stop once either the end of the file/buffer is reached, an error is encountered (premature eof, corrupt compressed data) or the end of a stream is not immediately followed by the start of another stream. This parameter defaults to 0. =item C<< Prime => $string >> This option will uncompress the contents of C<$string> before processing the input file/buffer. This option can be useful when the compressed data is embedded in another file/data structure and it is not possible to work out where the compressed data begins without having to read the first few bytes. If this is the case, the uncompression can be I with these bytes using this option. =item C<< Transparent => 0|1 >> If this option is set and the input file/buffer is not compressed data, the module will allow reading of it anyway. In addition, if the input file/buffer does contain compressed data and there is non-compressed data immediately following it, setting this option will make this module treat the whole file/buffer as a single data stream. This option defaults to 1. =item C<< BlockSize => $num >> When reading the compressed input data, IO::Uncompress::RawInflate will read it in blocks of C<$num> bytes. This option defaults to 4096. =item C<< InputLength => $size >> When present this option will limit the number of compressed bytes read from the input file/buffer to C<$size>. This option can be used in the situation where there is useful data directly after the compressed data stream and you know beforehand the exact length of the compressed data stream. This option is mostly used when reading from a filehandle, in which case the file pointer will be left pointing to the first byte directly after the compressed data stream. This option defaults to off. =item C<< Append => 0|1 >> This option controls what the C method does with uncompressed data. If set to 1, all uncompressed data will be appended to the output parameter of the C method. If set to 0, the contents of the output parameter of the C method will be overwritten by the uncompressed data. Defaults to 0. =item C<< Strict => 0|1 >> This option is a no-op. =back =head2 Examples TODO =head1 Methods =head2 read Usage is $status = $z->read($buffer) Reads a block of compressed data (the size of the compressed block is determined by the C option in the constructor), uncompresses it and writes any uncompressed data into C<$buffer>. If the C parameter is set in the constructor, the uncompressed data will be appended to the C<$buffer> parameter. Otherwise C<$buffer> will be overwritten. Returns the number of uncompressed bytes written to C<$buffer>, zero if eof or a negative number on error. =head2 read Usage is $status = $z->read($buffer, $length) $status = $z->read($buffer, $length, $offset) $status = read($z, $buffer, $length) $status = read($z, $buffer, $length, $offset) Attempt to read C<$length> bytes of uncompressed data into C<$buffer>. The main difference between this form of the C method and the previous one, is that this one will attempt to return I C<$length> bytes. The only circumstances that this function will not is if end-of-file or an IO error is encountered. Returns the number of uncompressed bytes written to C<$buffer>, zero if eof or a negative number on error. =head2 getline Usage is $line = $z->getline() $line = <$z> Reads a single line. This method fully supports the use of the variable C<$/> (or C<$INPUT_RECORD_SEPARATOR> or C<$RS> when C is in use) to determine what constitutes an end of line. Paragraph mode, record mode and file slurp mode are all supported. =head2 getc Usage is $char = $z->getc() Read a single character. =head2 ungetc Usage is $char = $z->ungetc($string) =head2 inflateSync Usage is $status = $z->inflateSync() TODO =head2 getHeaderInfo Usage is $hdr = $z->getHeaderInfo(); @hdrs = $z->getHeaderInfo(); This method returns either a hash reference (in scalar context) or a list or hash references (in array context) that contains information about each of the header fields in the compressed data stream(s). =head2 tell Usage is $z->tell() tell $z Returns the uncompressed file offset. =head2 eof Usage is $z->eof(); eof($z); Returns true if the end of the compressed input stream has been reached. =head2 seek $z->seek($position, $whence); seek($z, $position, $whence); Provides a sub-set of the C functionality, with the restriction that it is only legal to seek forward in the input file/buffer. It is a fatal error to attempt to seek backward. Note that the implementation of C in this module does not provide true random access to a compressed file/buffer. It works by uncompressing data from the current offset in the file/buffer until it reaches the uncompressed offset specified in the parameters to C. For very small files this may be acceptable behaviour. For large files it may cause an unacceptable delay. The C<$whence> parameter takes one the usual values, namely SEEK_SET, SEEK_CUR or SEEK_END. Returns 1 on success, 0 on failure. =head2 binmode Usage is $z->binmode binmode $z ; This is a noop provided for completeness. =head2 opened $z->opened() Returns true if the object currently refers to a opened file/buffer. =head2 autoflush my $prev = $z->autoflush() my $prev = $z->autoflush(EXPR) If the C<$z> object is associated with a file or a filehandle, this method returns the current autoflush setting for the underlying filehandle. If C is present, and is non-zero, it will enable flushing after every write/print operation. If C<$z> is associated with a buffer, this method has no effect and always returns C. B that the special variable C<$|> B be used to set or retrieve the autoflush setting. =head2 input_line_number $z->input_line_number() $z->input_line_number(EXPR) Returns the current uncompressed line number. If C is present it has the effect of setting the line number. Note that setting the line number does not change the current position within the file/buffer being read. The contents of C<$/> are used to determine what constitutes a line terminator. =head2 fileno $z->fileno() fileno($z) If the C<$z> object is associated with a file or a filehandle, C will return the underlying file descriptor. Once the C method is called C will return C. If the C<$z> object is associated with a buffer, this method will return C. =head2 close $z->close() ; close $z ; Closes the output file/buffer. For most versions of Perl this method will be automatically invoked if the IO::Uncompress::RawInflate object is destroyed (either explicitly or by the variable with the reference to the object going out of scope). The exceptions are Perl versions 5.005 through 5.00504 and 5.8.0. In these cases, the C method will be called automatically, but not until global destruction of all live objects when the program is terminating. Therefore, if you want your scripts to be able to run on all versions of Perl, you should call C explicitly and not rely on automatic closing. Returns true on success, otherwise 0. If the C option has been enabled when the IO::Uncompress::RawInflate object was created, and the object is associated with a file, the underlying file will also be closed. =head2 nextStream Usage is my $status = $z->nextStream(); Skips to the next compressed data stream in the input file/buffer. If a new compressed data stream is found, the eof marker will be cleared and C<$.> will be reset to 0. Returns 1 if a new stream was found, 0 if none was found, and -1 if an error was encountered. =head2 trailingData Usage is my $data = $z->trailingData(); Returns the data, if any, that is present immediately after the compressed data stream once uncompression is complete. It only makes sense to call this method once the end of the compressed data stream has been encountered. This option can be used when there is useful information immediately following the compressed data stream, and you don't know the length of the compressed data stream. If the input is a buffer, C will return everything from the end of the compressed data stream to the end of the buffer. If the input is a filehandle, C will return the data that is left in the filehandle input buffer once the end of the compressed data stream has been reached. You can then use the filehandle to read the rest of the input file. Don't bother using C if the input is a filename. If you know the length of the compressed data stream before you start uncompressing, you can avoid having to use C by setting the C option in the constructor. =head1 Importing No symbolic constants are required by IO::Uncompress::RawInflate at present. =over 5 =item :all Imports C and C<$RawInflateError>. Same as doing this use IO::Uncompress::RawInflate qw(rawinflate $RawInflateError) ; =back =head1 EXAMPLES =head2 Working with Net::FTP See L =head1 SUPPORT General feedback/questions/bug reports should be sent to L (preferred) or L. =head1 SEE ALSO L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L, L L L, L, L, L For RFC 1950, 1951 and 1952 see L, L and L The I compression library was written by Jean-loup Gailly C and Mark Adler C. The primary site for the I compression library is L. The primary site for the I compression library is L. The primary site for gzip is L. =head1 AUTHOR This module was written by Paul Marquess, C. =head1 MODIFICATION HISTORY See the Changes file. =head1 COPYRIGHT AND LICENSE Copyright (c) 2005-2023 Paul Marquess. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. FILE0a70d587/PerlIO.pm7package PerlIO; our $VERSION = '1.12'; # Map layer name to package that defines it our %alias; sub import { my $class = shift; while (@_) { my $layer = shift; if (exists $alias{$layer}) { $layer = $alias{$layer} } else { $layer = "${class}::$layer"; } eval { require $layer =~ s{::}{/}gr . '.pm' }; warn $@ if $@; } } sub F_UTF8 () { 0x8000 } 1; __END__ =head1 NAME PerlIO - On demand loader for PerlIO layers and root of PerlIO::* name space =head1 SYNOPSIS # support platform-native and CRLF text files open(my $fh, "<:crlf", "my.txt") or die "open failed: $!"; # append UTF-8 encoded text open(my $fh, ">>:encoding(UTF-8)", "some.log") or die "open failed: $!"; # portably open a binary file for reading open(my $fh, "<", "his.jpg") or die "open failed: $!"; binmode($fh) or die "binmode failed: $!"; Shell: PERLIO=:perlio perl .... =head1 DESCRIPTION When an undefined layer 'foo' is encountered in an C or C layer specification then C code performs the equivalent of: use PerlIO 'foo'; The Perl code in PerlIO.pm then attempts to locate a layer by doing require PerlIO::foo; Otherwise the C package is a place holder for additional PerlIO related functions. =head2 Layers Generally speaking, PerlIO layers (previously sometimes referred to as "disciplines") are an ordered stack applied to a filehandle (specified as a space- or colon-separated list, conventionally written with a leading colon). Each layer performs some operation on any input or output, except when bypassed such as with C or C. Read operations go through the stack in the order they are set (left to right), and write operations in the reverse order. There are also layers which actually just set flags on lower layers, or layers that modify the current stack but don't persist on the stack themselves; these are referred to as pseudo-layers. When opening a handle, it will be opened with any layers specified explicitly in the open() call (or the platform defaults, if specified as a colon with no following layers). If layers are not explicitly specified, the handle will be opened with the layers specified by the L<${^OPEN}|perlvar/"${^OPEN}"> variable (usually set by using the L pragma for a lexical scope, or the C<-C> command-line switch or C environment variable for the main program scope). If layers are not specified in the open() call or C<${^OPEN}> variable, the handle will be opened with the default layer stack configured for that architecture; see L. Some layers will automatically insert required lower level layers if not present; for example C<:perlio> will insert C<:unix> below itself for low level IO, and C<:encoding> will insert the platform defaults for buffered IO. The C function can be called on an opened handle to push additional layers onto the stack, which may also modify the existing layers. C called with no layers will remove or unset any existing layers which transform the byte stream, making the handle suitable for binary data. The following layers are currently defined: =over 4 =item :unix Lowest level layer which provides basic PerlIO operations in terms of UNIX/POSIX numeric file descriptor calls (open(), read(), write(), lseek(), close()). It is used even on non-Unix architectures, and most other layers operate on top of it. =item :stdio Layer which calls C, C and C/C etc. Note that as this is "real" stdio it will ignore any layers beneath it and go straight to the operating system via the C library as usual. This layer implements both low level IO and buffering, but is rarely used on modern architectures. =item :perlio A from scratch implementation of buffering for PerlIO. Provides fast access to the buffer for C which implements Perl's readline/EE and in general attempts to minimize data copying. C<:perlio> will insert a C<:unix> layer below itself to do low level IO. =item :crlf A layer that implements DOS/Windows like CRLF line endings. On read converts pairs of CR,LF to a single "\n" newline character. On write converts each "\n" to a CR,LF pair. Note that this layer will silently refuse to be pushed on top of itself. It currently does I mimic MS-DOS as far as treating of Control-Z as being an end-of-file marker. On DOS/Windows like architectures where this layer is part of the defaults, it also acts like the C<:perlio> layer, and removing the CRLF translation (such as with C<:raw>) will only unset the CRLF translation flag. Since Perl 5.14, you can also apply another C<:crlf> layer later, such as when the CRLF translation must occur after an encoding layer. On other architectures, it is a mundane CRLF translation layer and can be added and removed normally. # translate CRLF after encoding on Perl 5.14 or newer binmode $fh, ":raw:encoding(UTF-16LE):crlf" or die "binmode failed: $!"; =item :utf8 Pseudo-layer that declares that the stream accepts Perl's I upgraded encoding of characters, which is approximately UTF-8 on ASCII machines, but UTF-EBCDIC on EBCDIC machines. This allows any character Perl can represent to be read from or written to the stream. This layer (which actually sets a flag on the preceding layer, and is implicitly set by any C<:encoding> layer) does not translate or validate byte sequences. It instead indicates that the byte stream will have been arranged by other layers to be provided in Perl's internal upgraded encoding, which Perl code (and correctly written XS code) will interpret as decoded Unicode characters. B: Do not use this layer to translate from UTF-8 bytes, as invalid UTF-8 or binary data will result in malformed Perl strings. It is unlikely to produce invalid UTF-8 when used for output, though it will instead produce UTF-EBCDIC on EBCDIC systems. The C<:encoding(UTF-8)> layer (hyphen is significant) is preferred as it will ensure translation between valid UTF-8 bytes and valid Unicode characters. =item :bytes This is the inverse of the C<:utf8> pseudo-layer. It turns off the flag on the layer below so that data read from it is considered to be Perl's internal downgraded encoding, thus interpreted as the native single-byte encoding of Latin-1 or EBCDIC. Likewise on output Perl will warn if a "wide" character (a codepoint not in the range 0..255) is written to a such a stream. This is very dangerous to push on a handle using an C<:encoding> layer, as such a layer assumes to be working with Perl's internal upgraded encoding, so you will likely get a mangled result. Instead use C<:raw> or C<:pop> to remove encoding layers. =item :raw The C<:raw> pseudo-layer is I as being identical to calling C - the stream is made suitable for passing binary data, i.e. each byte is passed as-is. The stream will still be buffered (but this was not always true before Perl 5.14). In Perl 5.6 and some books the C<:raw> layer is documented as the inverse of the C<:crlf> layer. That is no longer the case - other layers which would alter the binary nature of the stream are also disabled. If you want UNIX line endings on a platform that normally does CRLF translation, but still want UTF-8 or encoding defaults, the appropriate thing to do is to add C<:perlio> to the PERLIO environment variable, or open the handle explicitly with that layer, to replace the platform default of C<:crlf>. The implementation of C<:raw> is as a pseudo-layer which when "pushed" pops itself and then any layers which would modify the binary data stream. (Undoing C<:utf8> and C<:crlf> may be implemented by clearing flags rather than popping layers but that is an implementation detail.) As a consequence of the fact that C<:raw> normally pops layers, it usually only makes sense to have it as the only or first element in a layer specification. When used as the first element it provides a known base on which to build e.g. open(my $fh,">:raw:encoding(UTF-8)",...) or die "open failed: $!"; will construct a "binary" stream regardless of the platform defaults, but then enable UTF-8 translation. =item :pop A pseudo-layer that removes the top-most layer. Gives Perl code a way to manipulate the layer stack. Note that C<:pop> only works on real layers and will not undo the effects of pseudo-layers or flags like C<:utf8>. An example of a possible use might be: open(my $fh,...) or die "open failed: $!"; ... binmode($fh,":encoding(...)") or die "binmode failed: $!"; # next chunk is encoded ... binmode($fh,":pop") or die "binmode failed: $!"; # back to un-encoded A more elegant (and safer) interface is needed. =back =head2 Custom Layers It is possible to write custom layers in addition to the above builtin ones, both in C/XS and Perl, as a module named C<< PerlIO:: >>. Some custom layers come with the Perl distribution. =over 4 =item :encoding Use C<:encoding(ENCODING)> to transparently do character set and encoding transformations, for example from Shift-JIS to Unicode. Note that an C<:encoding> also enables C<:utf8>. See L for more information. =item :mmap A layer which implements "reading" of files by using C to make a (whole) file appear in the process's address space, and then using that as PerlIO's "buffer". This I be faster in certain circumstances for large files, and may result in less physical memory use when multiple processes are reading the same file. Files which are not C-able revert to behaving like the C<:perlio> layer. Writes also behave like the C<:perlio> layer, as C for write needs extra house-keeping (to extend the file) which negates any advantage. The C<:mmap> layer will not exist if the platform does not support C. See L for more information. =item :via C<:via(MODULE)> allows a transformation to be applied by an arbitrary Perl module, for example compression / decompression, encryption / decryption. See L for more information. =item :scalar A layer implementing "in memory" files using scalar variables, automatically used in place of the platform defaults for IO when opening such a handle. As such, the scalar is expected to act like a file, only containing or storing bytes. See L for more information. =back =head2 Alternatives to raw To get a binary stream an alternate method is to use: open(my $fh,"<","whatever") or die "open failed: $!"; binmode($fh) or die "binmode failed: $!"; This has the advantage of being backward compatible with older versions of Perl that did not use PerlIO or where C<:raw> was buggy (as it was before Perl 5.14). To get an unbuffered stream specify an unbuffered layer (e.g. C<:unix>) in the open call: open(my $fh,"<:unix",$path) or die "open failed: $!"; =head2 Defaults and how to override them If the platform is MS-DOS like and normally does CRLF to "\n" translation for text files then the default layers are: :unix:crlf Otherwise if C found out how to do "fast" IO using the system's stdio (not common on modern architectures), then the default layers are: :stdio Otherwise the default layers are :unix:perlio Note that the "default stack" depends on the operating system and on the Perl version, and both the compile-time and runtime configurations of Perl. The default can be overridden by setting the environment variable PERLIO to a space or colon separated list of layers, however this cannot be used to set layers that require loading modules like C<:encoding>. This can be used to see the effect of/bugs in the various layers e.g. cd .../perl/t PERLIO=:stdio ./perl harness PERLIO=:perlio ./perl harness For the various values of PERLIO see L. The following table summarizes the default layers on UNIX-like and DOS-like platforms and depending on the setting of C<$ENV{PERLIO}>: PERLIO UNIX-like DOS-like ------ --------- -------- unset / "" :unix:perlio / :stdio [1] :unix:crlf :stdio :stdio :stdio :perlio :unix:perlio :unix:perlio # [1] ":stdio" if Configure found out how to do "fast stdio" (depends # on the stdio implementation) and in Perl 5.8, else ":unix:perlio" =head2 Querying the layers of filehandles The following returns the B of the PerlIO layers on a filehandle. my @layers = PerlIO::get_layers($fh); # Or FH, *FH, "FH". The layers are returned in the order an open() or binmode() call would use them, and without colons. By default the layers from the input side of the filehandle are returned; to get the output side, use the optional C argument: my @layers = PerlIO::get_layers($fh, output => 1); (Usually the layers are identical on either side of a filehandle but for example with sockets there may be differences.) There is no set_layers(), nor does get_layers() return a tied array mirroring the stack, or anything fancy like that. This is not accidental or unintentional. The PerlIO layer stack is a bit more complicated than just a stack (see for example the behaviour of C<:raw>). You are supposed to use open() and binmode() to manipulate the stack. B The arguments to layers are by default returned in parentheses after the name of the layer, and certain layers (like C<:utf8>) are not real layers but instead flags on real layers; to get all of these returned separately, use the optional C
argument: my @layer_and_args_and_flags = PerlIO::get_layers($fh, details => 1); The result will be up to be three times the number of layers: the first element will be a name, the second element the arguments (unspecified arguments will be C), the third element the flags, the fourth element a name again, and so forth. B =head1 AUTHOR Nick Ing-Simmons Enick@ing-simmons.netE =head1 SEE ALSO L, L, L, L, L =cut FILE4a50329b/SelectSaver.pm4package SelectSaver; our $VERSION = '1.02'; =head1 NAME SelectSaver - save and restore selected file handle =head1 SYNOPSIS use SelectSaver; { my $saver = SelectSaver->new(FILEHANDLE); # FILEHANDLE is selected } # previous handle is selected { my $saver = SelectSaver->new; # new handle may be selected, or not } # previous handle is selected =head1 DESCRIPTION A C object contains a reference to the file handle that was selected when it was created. If its C method gets an extra parameter, then that parameter is selected; otherwise, the selected file handle remains unchanged. When a C is destroyed, it re-selects the file handle that was selected when it was created. =cut require 5.000; use Carp; use Symbol; sub new { @_ >= 1 && @_ <= 2 or croak 'usage: SelectSaver->new( [FILEHANDLE] )'; my $fh = select; my $self = bless \$fh, $_[0]; select qualify($_[1], caller) if @_ > 1; $self; } sub DESTROY { my $self = $_[0]; select $$self; } 1; FILE477ebe95/Symbol.pm)package Symbol; use strict; use warnings; =head1 NAME Symbol - manipulate Perl symbols and their names =head1 SYNOPSIS use Symbol; $sym = gensym; open($sym, '<', "filename"); $_ = <$sym>; # etc. ungensym $sym; # no effect # replace *FOO{IO} handle but not $FOO, %FOO, etc. *FOO = geniosym; print qualify("x"), "\n"; # "main::x" print qualify("x", "FOO"), "\n"; # "FOO::x" print qualify("BAR::x"), "\n"; # "BAR::x" print qualify("BAR::x", "FOO"), "\n"; # "BAR::x" print qualify("STDOUT", "FOO"), "\n"; # "main::STDOUT" (global) print qualify(\*x), "\n"; # returns \*x print qualify(\*x, "FOO"), "\n"; # returns \*x use strict refs; print { qualify_to_ref $fh } "foo!\n"; $ref = qualify_to_ref $name, $pkg; use Symbol qw(delete_package); delete_package('Foo::Bar'); print "deleted\n" unless exists $Foo::{'Bar::'}; =head1 DESCRIPTION C creates an anonymous glob and returns a reference to it. Such a glob reference can be used as a file or directory handle. For backward compatibility with older implementations that didn't support anonymous globs, C is also provided. But it doesn't do anything. C creates an anonymous IO handle. This can be assigned into an existing glob without affecting the non-IO portions of the glob. C turns unqualified symbol names into qualified variable names (e.g. "myvar" -E "MyPackage::myvar"). If it is given a second parameter, C uses it as the default package; otherwise, it uses the package of its caller. Regardless, global variable names (e.g. "STDOUT", "ENV", "SIG") are always qualified with "main::". Qualification applies only to symbol names (strings). References are left unchanged under the assumption that they are glob references, which are qualified by their nature. C is just like C except that it returns a glob ref rather than a symbol name, so you can use the result even if C is in effect. C wipes out a whole package namespace. Note this routine is not exported by default--you may want to import it explicitly. =head1 BUGS C is a bit too powerful. It undefines every symbol that lives in the specified package. Since perl, for performance reasons, does not perform a symbol table lookup each time a function is called or a global variable is accessed, some code that has already been loaded and that makes use of symbols in package C may stop working after you delete C, even if you reload the C module afterwards. =cut require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw(gensym ungensym qualify qualify_to_ref); our @EXPORT_OK = qw(delete_package geniosym); our $VERSION = '1.09'; my $genpkg = "Symbol::"; my $genseq = 0; my %global = map {$_ => 1} qw(ARGV ARGVOUT ENV INC SIG STDERR STDIN STDOUT); # # Note that we never _copy_ the glob; we just make a ref to it. # If we did copy it, then SVf_FAKE would be set on the copy, and # glob-specific behaviors (e.g. C<*$ref = \&func>) wouldn't work. # sub gensym () { my $name = "GEN" . $genseq++; no strict 'refs'; my $ref = \*{$genpkg . $name}; delete $$genpkg{$name}; $ref; } sub geniosym () { my $sym = gensym(); # force the IO slot to be filled select(select $sym); *$sym{IO}; } sub ungensym ($) {} sub qualify ($;$) { my ($name) = @_; if (!ref($name) && index($name, '::') == -1 && index($name, "'") == -1) { my $pkg; # Global names: special character, "^xyz", or other. if ($name =~ /^(([^a-z])|(\^[a-z_]+))\z/i || $global{$name}) { # RGS 2001-11-05 : translate leading ^X to control-char $name =~ s/^\^([a-z_])/'qq(\c'.$1.')'/eei; $pkg = "main"; } else { $pkg = (@_ > 1) ? $_[1] : caller; } $name = $pkg . "::" . $name; } $name; } sub qualify_to_ref ($;$) { no strict 'refs'; return \*{ qualify $_[0], @_ > 1 ? $_[1] : caller }; } # # of Safe.pm lineage # sub delete_package ($) { my $pkg = shift; # expand to full symbol table name if needed unless ($pkg =~ /^main::.*::$/) { $pkg = "main$pkg" if $pkg =~ /^::/; $pkg = "main::$pkg" unless $pkg =~ /^main::/; $pkg .= '::' unless $pkg =~ /::$/; } my($stem, $leaf) = $pkg =~ m/(.*::)(\w+::)$/; no strict 'refs'; my $stem_symtab = *{$stem}{HASH}; return unless defined $stem_symtab and exists $stem_symtab->{$leaf}; # free all the symbols in the package my $leaf_symtab = *{$stem_symtab->{$leaf}}{HASH}; foreach my $name (keys %$leaf_symtab) { undef *{$pkg . $name}; } use strict 'refs'; # delete the symbol table %$leaf_symtab = (); delete $stem_symtab->{$leaf}; } 1; FILE!a90b71ff/Tie/Hash/NamedCapture.pm.use strict; package Tie::Hash::NamedCapture; our $VERSION = "0.13"; __END__ =head1 NAME Tie::Hash::NamedCapture - Named regexp capture buffers =head1 SYNOPSIS tie my %hash, "Tie::Hash::NamedCapture"; # %hash now behaves like %+ tie my %hash, "Tie::Hash::NamedCapture", all => 1; # %hash now access buffers from regexp in $qr like %- =head1 DESCRIPTION This module is used to implement the special hashes C<%+> and C<%->, but it can be used to tie other variables as you choose. When the C parameter is provided, then the tied hash elements will be array refs listing the contents of each capture buffer whose name is the same as the associated hash key. If none of these buffers were involved in the match, the contents of that array ref will be as many C values as there are capture buffers with that name. In other words, the tied hash will behave as C<%->. When the C parameter is omitted or false, then the tied hash elements will be the contents of the leftmost defined buffer with the name of the associated hash key. In other words, the tied hash will behave as C<%+>. The keys of C<%->-like hashes correspond to all buffer names found in the regular expression; the keys of C<%+>-like hashes list only the names of buffers that have captured (and that are thus associated to defined values). This implementation has been moved into the core executable, but you can still load this module for backward compatibility. =head1 SEE ALSO L, L, L, L, L. =cut FILEfc27010d/Time/Local.pm?package Time::Local; use strict; use Carp (); use Exporter; our $VERSION = '1.30'; use parent 'Exporter'; our @EXPORT = qw( timegm timelocal ); our @EXPORT_OK = qw( timegm_modern timelocal_modern timegm_nocheck timelocal_nocheck timegm_posix timelocal_posix ); my @MonthDays = ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); # Determine breakpoint for rolling century my $ThisYear = ( localtime() )[5]; my $Breakpoint = ( $ThisYear + 50 ) % 100; my $NextCentury = $ThisYear - $ThisYear % 100; $NextCentury += 100 if $Breakpoint < 50; my $Century = $NextCentury - 100; my $SecOff = 0; my ( %Options, %Cheat ); use constant SECS_PER_MINUTE => 60; use constant SECS_PER_HOUR => 3600; use constant SECS_PER_DAY => 86400; my $MaxDay; if ( $] < 5.012000 ) { require Config; ## no critic (Variables::ProhibitPackageVars) my $MaxInt; if ( $^O eq 'MacOS' ) { # time_t is unsigned... $MaxInt = ( 1 << ( 8 * $Config::Config{ivsize} ) ) - 1; ## no critic qw(ProhibitPackageVars) } else { $MaxInt = ( ( 1 << ( 8 * $Config::Config{ivsize} - 2 ) ) - 1 ) * 2 + 1; ## no critic qw(ProhibitPackageVars) } $MaxDay = int( ( $MaxInt - ( SECS_PER_DAY / 2 ) ) / SECS_PER_DAY ) - 1; } else { # recent localtime()'s limit is the year 2**31 $MaxDay = 365 * ( 2**31 ); } # Determine the EPOC day for this machine my $Epoc = 0; if ( $^O eq 'vos' ) { # work around posix-977 -- VOS doesn't handle dates in the range # 1970-1980. $Epoc = _daygm( 0, 0, 0, 1, 0, 70, 4, 0 ); } elsif ( $^O eq 'MacOS' ) { $MaxDay *= 2; # time_t unsigned ... quick hack? # MacOS time() is seconds since 1 Jan 1904, localtime # so we need to calculate an offset to apply later $Epoc = 693901; $SecOff = timelocal( localtime(0) ) - timelocal( gmtime(0) ); $Epoc += _daygm( gmtime(0) ); } else { $Epoc = _daygm( gmtime(0) ); } %Cheat = (); # clear the cache as epoc has changed sub _daygm { # This is written in such a byzantine way in order to avoid # lexical variables and sub calls, for speed return $_[3] + ( $Cheat{ pack( 'ss', @_[ 4, 5 ] ) } ||= do { my $month = ( $_[4] + 10 ) % 12; my $year = $_[5] + 1900 - int( $month / 10 ); ( ( 365 * $year ) + int( $year / 4 ) - int( $year / 100 ) + int( $year / 400 ) + int( ( ( $month * 306 ) + 5 ) / 10 ) ) - $Epoc; } ); } sub _timegm { my $sec = $SecOff + $_[0] + ( SECS_PER_MINUTE * $_[1] ) + ( SECS_PER_HOUR * $_[2] ); return $sec + ( SECS_PER_DAY * &_daygm ); } sub timegm { my ( $sec, $min, $hour, $mday, $month, $year ) = @_; if ( $Options{no_year_munging} ) { $year -= 1900; } elsif ( !$Options{posix_year} ) { if ( $year >= 1000 ) { $year -= 1900; } elsif ( $year < 100 and $year >= 0 ) { $year += ( $year > $Breakpoint ) ? $Century : $NextCentury; } } unless ( $Options{no_range_check} ) { Carp::croak("Month '$month' out of range 0..11") if $month > 11 or $month < 0; my $md = $MonthDays[$month]; ++$md if $month == 1 && _is_leap_year( $year + 1900 ); Carp::croak("Day '$mday' out of range 1..$md") if $mday > $md or $mday < 1; Carp::croak("Hour '$hour' out of range 0..23") if $hour > 23 or $hour < 0; Carp::croak("Minute '$min' out of range 0..59") if $min > 59 or $min < 0; Carp::croak("Second '$sec' out of range 0..59") if $sec >= 60 or $sec < 0; } my $days = _daygm( undef, undef, undef, $mday, $month, $year ); unless ( $Options{no_range_check} or abs($days) < $MaxDay ) { my $msg = q{}; $msg .= "Day too big - $days > $MaxDay\n" if $days > $MaxDay; $year += 1900; $msg .= "Cannot handle date ($sec, $min, $hour, $mday, $month, $year)"; Carp::croak($msg); } return $sec + $SecOff + ( SECS_PER_MINUTE * $min ) + ( SECS_PER_HOUR * $hour ) + ( SECS_PER_DAY * $days ); } sub _is_leap_year { return 0 if $_[0] % 4; return 1 if $_[0] % 100; return 0 if $_[0] % 400; return 1; } sub timegm_nocheck { local $Options{no_range_check} = 1; return &timegm; } sub timegm_modern { local $Options{no_year_munging} = 1; return &timegm; } sub timegm_posix { local $Options{posix_year} = 1; return &timegm; } sub timelocal { my $ref_t = &timegm; my $loc_for_ref_t = _timegm( localtime($ref_t) ); my $zone_off = $loc_for_ref_t - $ref_t or return $loc_for_ref_t; # Adjust for timezone my $loc_t = $ref_t - $zone_off; # Are we close to a DST change or are we done my $dst_off = $ref_t - _timegm( localtime($loc_t) ); # If this evaluates to true, it means that the value in $loc_t is # the _second_ hour after a DST change where the local time moves # backward. if ( !$dst_off && ( ( $ref_t - SECS_PER_HOUR ) - _timegm( localtime( $loc_t - SECS_PER_HOUR ) ) < 0 ) ) { return $loc_t - SECS_PER_HOUR; } # Adjust for DST change $loc_t += $dst_off; return $loc_t if $dst_off > 0; # If the original date was a non-existent gap in a forward DST jump, we # should now have the wrong answer - undo the DST adjustment my ( $s, $m, $h ) = localtime($loc_t); $loc_t -= $dst_off if $s != $_[0] || $m != $_[1] || $h != $_[2]; return $loc_t; } sub timelocal_nocheck { local $Options{no_range_check} = 1; return &timelocal; } sub timelocal_modern { local $Options{no_year_munging} = 1; return &timelocal; } sub timelocal_posix { local $Options{posix_year} = 1; return &timelocal; } 1; # ABSTRACT: Efficiently compute time from local and GMT time __END__ =pod =encoding UTF-8 =head1 NAME Time::Local - Efficiently compute time from local and GMT time =head1 VERSION version 1.30 =head1 SYNOPSIS use Time::Local qw( timelocal_posix timegm_posix ); my $time = timelocal_posix( $sec, $min, $hour, $mday, $mon, $year ); my $time = timegm_posix( $sec, $min, $hour, $mday, $mon, $year ); =head1 DESCRIPTION This module provides functions that are the inverse of built-in perl functions C and C. They accept a date as a six-element array, and return the corresponding C value in seconds since the system epoch (Midnight, January 1, 1970 GMT on Unix, for example). This value can be positive or negative, though POSIX only requires support for positive values, so dates before the system's epoch may not work on all operating systems. It is worth drawing particular attention to the expected ranges for the values provided. The value for the day of the month is the actual day (i.e. 1..31), while the month is the number of months since January (0..11). This is consistent with the values returned from C and C. =head1 FUNCTIONS =head2 C and C These functions are the exact inverse of Perl's built-in C and C functions. That means that calling C<< timelocal_posix( localtime($value) ) >> will always give you the same C<$value> you started with. The same applies to C<< timegm_posix( gmtime($value) ) >>. The one exception is when the value returned from C represents an ambiguous local time because of a DST change. See the documentation below for more details. These functions expect the year value to be the number of years since 1900, which is what the C and C built-ins returns. They perform range checking by default on the input C<$sec>, C<$min>, C<$hour>, C<$mday>, and C<$mon> values and will croak (using C) if given a value outside the allowed ranges. While it would be nice to make this the default behavior, that would almost certainly break a lot of code, so you must explicitly import these functions and use them instead of the default C and C. You are B encouraged to use these functions in any new code which uses this module. It will almost certainly make your code's behavior less surprising. =head2 C and C When C was first written, it was a common practice to represent years as a two-digit value like C<99> for C<1999> or C<1> for C<2001>. This caused all sorts of problems (google "Y2K problem" if you're very young) and developers eventually realized that this was a terrible idea. The default exports of C and C do a complicated calculation when given a year value less than 1000. This leads to surprising results in many cases. See L for details. The C functions do not do this year munging and simply take the year value as provided. They perform range checking by default on the input C<$sec>, C<$min>, C<$hour>, C<$mday>, and C<$mon> values and will croak (using C) if given a value outside the allowed ranges. =head2 C and C This module exports two functions by default, C and C. They perform range checking by default on the input C<$sec>, C<$min>, C<$hour>, C<$mday>, and C<$mon> values and will croak (using C) if given a value outside the allowed ranges. B or C<*_modern> functions if possible.> =head2 C and C If you are working with data you know to be valid, you can use the "nocheck" variants, C and C. These variants must be explicitly imported. If you supply data which is not valid (month 27, second 1,000) the results will be unpredictable (so don't do that). Note that my benchmarks show that this is just a 3% speed increase over the checked versions, so unless calling C is the hottest spot in your application, using these nocheck variants is unlikely to have much impact on your application. =head2 Year Value Interpretation B or C<*_modern> functions. Use those exports if you want to ensure consistent behavior as your code ages.> Strictly speaking, the year should be specified in a form consistent with C, i.e. the offset from 1900. In order to make the interpretation of the year easier for humans, however, who are more accustomed to seeing years as two-digit or four-digit values, the following conventions are followed: =over 4 =item * Years greater than 999 are interpreted as being the actual year, rather than the offset from 1900. Thus, 1964 would indicate the year Martin Luther King won the Nobel prize, not the year 3864. =item * Years in the range 100..999 are interpreted as offset from 1900, so that 112 indicates 2012. This rule also applies to years less than zero (but see note below regarding date range). =item * Years in the range 0..99 are interpreted as shorthand for years in the rolling "current century," defined as 50 years on either side of the current year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045, but 55 would refer to 1955. Twenty years from now, 55 would instead refer to 2055. This is messy, but matches the way people currently think about two digit dates. Whenever possible, use an absolute four digit year instead. =back The scheme above allows interpretation of a wide range of dates, particularly if 4-digit years are used. But it also means that the behavior of your code changes as time passes, because the rolling "current century" changes each year. =head2 Limits of time_t On perl versions older than 5.12.0, the range of dates that can be actually be handled depends on the size of C (usually a signed integer) on the given platform. Currently, this is 32 bits for most systems, yielding an approximate range from Dec 1901 to Jan 2038. Both C and C croak if given dates outside the supported range. As of version 5.12.0, perl has stopped using the time implementation of the operating system it's running on. Instead, it has its own implementation of those routines with a safe range of at least +/- 2**52 (about 142 million years) =head2 Ambiguous Local Times (DST) Because of DST changes, there are many time zones where the same local time occurs for two different GMT times on the same day. For example, in the "Europe/Paris" time zone, the local time of 2001-10-28 02:30:00 can represent either 2001-10-28 00:30:00 GMT, B 2001-10-28 01:30:00 GMT. When given an ambiguous local time, the timelocal() function will always return the epoch for the I of the two possible GMT times. =head2 Non-Existent Local Times (DST) When a DST change causes a locale clock to skip one hour forward, there will be an hour's worth of local times that don't exist. Again, for the "Europe/Paris" time zone, the local clock jumped from 2001-03-25 01:59:59 to 2001-03-25 03:00:00. If the C function is given a non-existent local time, it will simply return an epoch value for the time one hour later. =head2 Negative Epoch Values On perl version 5.12.0 and newer, negative epoch values are fully supported. On older versions of perl, negative epoch (C) values, which are not officially supported by the POSIX standards, are known not to work on some systems. These include MacOS (pre-OSX) and Win32. On systems which do support negative epoch values, this module should be able to cope with dates before the start of the epoch, down the minimum value of time_t for the system. =head1 IMPLEMENTATION These routines are quite efficient and yet are always guaranteed to agree with C and C. We manage this by caching the start times of any months we've seen before. If we know the start time of the month, we can always calculate any time within the month. The start times are calculated using a mathematical formula. Unlike other algorithms that do multiple calls to C. The C function is implemented using the same cache. We just assume that we're translating a GMT time, and then fudge it when we're done for the timezone and daylight savings arguments. Note that the timezone is evaluated for each date because countries occasionally change their official timezones. Assuming that C corrects for these changes, this routine will also be correct. =head1 AUTHORS EMERITUS This module is based on a Perl 4 library, timelocal.pl, that was included with Perl 4.036, and was most likely written by Tom Christiansen. The current version was written by Graham Barr. =head1 BUGS The whole scheme for interpreting two-digit years can be considered a bug. Bugs may be submitted at L. There is a mailing list available for users of this distribution, L. I am also usually active on IRC as 'autarch' on C. =head1 SOURCE The source code repository for Time-Local can be found at L. =head1 AUTHOR Dave Rolsky =head1 CONTRIBUTORS =for stopwords Florian Ragwitz J. Nick Koston Unknown =over 4 =item * Florian Ragwitz =item * J. Nick Koston =item * Unknown =back =head1 COPYRIGHT AND LICENSE This software is copyright (c) 1997 - 2020 by Graham Barr & Dave Rolsky. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. The full text of the license can be found in the F file included with this distribution. =cut FILE092d256d/XSLoader.pm,^# Generated from XSLoader_pm.PL (resolved %Config::Config value) # This file is unique for every OS use strict; no strict 'refs'; package XSLoader; our $VERSION = "0.32"; # remember to update version in POD! 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; my ($caller, $modlibname) = caller(); my $module = $caller; if (@_) { $module = $_[0]; } else { $_[0] = $module; } # work with static linking too my $boots = "$module\::bootstrap"; goto &$boots if defined &$boots; goto \&XSLoader::bootstrap_inherit; my @modparts = split(/::/,$module); my $modfname = $modparts[-1]; my $modfname_orig = $modfname; # For .bs file search my $modpname = join('/',@modparts); my $c = () = split(/::/,$caller,-1); $modlibname =~ s,[\\/][^\\/]+$,, while $c--; # Q&D basename # Does this look like a relative path? if ($modlibname !~ m{^/}) { # Someone may have a #line directive that changes the file name, or # may be calling XSLoader::load from inside a string eval. We cer- # tainly do not want to go loading some code that is not in @INC, # as it could be untrusted. # # We could just fall back to DynaLoader here, but then the rest of # this function would go untested in the perl core, since all @INC # paths are relative during testing. That would be a time bomb # waiting to happen, since bugs could be introduced into the code. # # So look through @INC to see if $modlibname is in it. A rela- # tive $modlibname is not a common occurrence, so this block is # not hot code. FOUND: { for (@INC) { if ($_ eq $modlibname) { last FOUND; } } # Not found. Fall back to DynaLoader. goto \&XSLoader::bootstrap_inherit; } } my $file = "$modlibname/auto/$modpname/$modfname.so"; # print STDERR "XSLoader::load for $module ($file)\n" if $dl_debug; # N.B. The .bs file does not following the naming convention used # by mod2fname, so use the unedited version of the name. my $bs = "$modlibname/auto/$modpname/$modfname_orig.bs"; # This calls DynaLoader::bootstrap, which will load the .bs file if present goto \&XSLoader::bootstrap_inherit 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 $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(@_); } # Can't test with DynaLoader->can('bootstrap_inherit') when building in the # core, as XSLoader gets built before DynaLoader. sub bootstrap_inherit { require DynaLoader; goto \&DynaLoader::bootstrap_inherit; } 1; __END__ =head1 NAME XSLoader - Dynamically load C libraries into Perl code =head1 VERSION Version 0.32 =head1 SYNOPSIS package YourPackage; require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); =head1 DESCRIPTION This module defines a standard I interface to the dynamic linking mechanisms available on many platforms. Its primary purpose is to implement cheap automatic dynamic loading of Perl modules. For a more complicated interface, see L. Many (most) features of C are not implemented in C, like for example the C, not honored by C. =head2 Migration from C A typical module using L starts like this: package YourPackage; require DynaLoader; our @ISA = qw( OnePackage OtherPackage DynaLoader ); our $VERSION = '0.01'; __PACKAGE__->bootstrap($VERSION); Change this to package YourPackage; use XSLoader; our @ISA = qw( OnePackage OtherPackage ); our $VERSION = '0.01'; XSLoader::load(__PACKAGE__, $VERSION); In other words: replace C by C, remove C from C<@ISA>, change C by C. Do not forget to quote the name of your package on the C line, and add comma (C<,>) before the arguments (C<$VERSION> above). Of course, if C<@ISA> contained only C, there is no need to have the C<@ISA> assignment at all; moreover, if instead of C one uses the more backward-compatible use vars qw($VERSION @ISA); one can remove this reference to C<@ISA> together with the C<@ISA> assignment. If no C<$VERSION> was specified on the C line, the last line becomes XSLoader::load(__PACKAGE__); in which case it can be further simplified to XSLoader::load(); as C will use C to determine the package. =head2 Backward compatible boilerplate If you want to have your cake and eat it too, you need a more complicated boilerplate. package YourPackage; our @ISA = qw( OnePackage OtherPackage ); our $VERSION = '0.01'; eval { require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); 1; } or do { require DynaLoader; push @ISA, 'DynaLoader'; __PACKAGE__->bootstrap($VERSION); }; The parentheses about C arguments are needed since we replaced C by C, so the compiler does not know that a function C is present. This boilerplate uses the low-overhead C if present; if used with an antique Perl which has no C, it falls back to using C. =head1 Order of initialization: early load() I section in your XS file (see L). What is described here is equally applicable to the L interface.> A sufficiently complicated module using XS would have both Perl code (defined in F) and XS code (defined in F). If this Perl code makes calls into this XS code, and/or this XS code makes calls to the Perl code, one should be careful with the order of initialization. The call to C (or C) calls the module's bootstrap code. For modules build by F (nearly all modules) this has three side effects: =over =item * A sanity check is done to ensure that the versions of the F<.pm> and the (compiled) F<.xs> parts are compatible. If C<$VERSION> was specified, this is used for the check. If not specified, it defaults to C<$XS_VERSION // $VERSION> (in the module's namespace) =item * the XSUBs are made accessible from Perl =item * if a C section was present in the F<.xs> file, the code there is called. =back Consequently, if the code in the F<.pm> file makes calls to these XSUBs, it is convenient to have XSUBs installed before the Perl code is defined; for example, this makes prototypes for XSUBs visible to this Perl code. Alternatively, if the C section makes calls to Perl functions (or uses Perl variables) defined in the F<.pm> file, they must be defined prior to the call to C (or C). The first situation being much more frequent, it makes sense to rewrite the boilerplate as package YourPackage; use XSLoader; our ($VERSION, @ISA); BEGIN { @ISA = qw( OnePackage OtherPackage ); $VERSION = '0.01'; # Put Perl code used in the BOOT: section here XSLoader::load(__PACKAGE__, $VERSION); } # Put Perl code making calls into XSUBs here =head2 The most hairy case If the interdependence of your C section and Perl code is more complicated than this (e.g., the C section makes calls to Perl functions which make calls to XSUBs with prototypes), get rid of the C section altogether. Replace it with a function C, and call it like this: package YourPackage; use XSLoader; our ($VERSION, @ISA); BEGIN { @ISA = qw( OnePackage OtherPackage ); $VERSION = '0.01'; XSLoader::load(__PACKAGE__, $VERSION); } # Put Perl code used in onBOOT() function here; calls to XSUBs are # prototype-checked. onBOOT; # Put Perl initialization code assuming that XS is initialized here =head1 DIAGNOSTICS =over =item C B<(F)> The bootstrap symbol could not be found in the extension module. =item C B<(F)> The loading or initialisation of the extension module failed. The detailed error follows. =item C B<(W)> As the message says, some symbols stay undefined although the extension module was correctly loaded and initialised. The list of undefined symbols follows. =back =head1 LIMITATIONS To reduce the overhead as much as possible, only one possible location is checked to find the extension DLL (this location is where C would put the DLL). If not found, the search for the DLL is transparently delegated to C, which looks for the DLL along the C<@INC> list. In particular, this is applicable to the structure of C<@INC> used for testing not-yet-installed extensions. This means that running uninstalled extensions may have much more overhead than running the same extensions after C. =head1 KNOWN BUGS The new simpler way to call C with no arguments at all does not work on Perl 5.8.4 and 5.8.5. =head1 BUGS Please report any bugs or feature requests via the perlbug(1) utility. =head1 SEE ALSO L =head1 AUTHORS Ilya Zakharevich originally extracted C from C. CPAN version is currently maintained by SEbastien Aperghis-Tramoni Esebastien@aperghis.netE. Previous maintainer was Michael G Schwern . =head1 COPYRIGHT & LICENSE Copyright (C) 1990-2011 by Larry Wall and others. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut FILE65b9a8f7/base.pm*use 5.008; package base; use strict 'vars'; our $VERSION = '2.27'; $VERSION =~ tr/_//d; # simplest way to avoid indexing of the package: no package statement sub base::__inc::unhook { @INC = grep !(ref eq 'CODE' && $_ == $_[0]), @INC } # instance is blessed array of coderefs to be removed from @INC at scope exit sub base::__inc::scope_guard::DESTROY { base::__inc::unhook $_ for @{$_[0]} } # constant.pm is slow sub SUCCESS () { 1 } sub PUBLIC () { 2**0 } sub PRIVATE () { 2**1 } sub INHERITED () { 2**2 } sub PROTECTED () { 2**3 } my $Fattr = \%fields::attr; sub has_fields { my($base) = shift; my $fglob = ${"$base\::"}{FIELDS}; return( ($fglob && 'GLOB' eq ref($fglob) && *$fglob{HASH}) ? 1 : 0 ); } sub has_attr { my($proto) = shift; my($class) = ref $proto || $proto; return exists $Fattr->{$class}; } sub get_attr { $Fattr->{$_[0]} = [1] unless $Fattr->{$_[0]}; return $Fattr->{$_[0]}; } if ($] < 5.009) { *get_fields = sub { # Shut up a possible typo warning. () = \%{$_[0].'::FIELDS'}; my $f = \%{$_[0].'::FIELDS'}; # should be centralized in fields? perhaps # fields::mk_FIELDS_be_OK. Peh. As long as %{ $package . '::FIELDS' } # is used here anyway, it doesn't matter. bless $f, 'pseudohash' if (ref($f) ne 'pseudohash'); return $f; } } else { *get_fields = sub { # Shut up a possible typo warning. () = \%{$_[0].'::FIELDS'}; return \%{$_[0].'::FIELDS'}; } } if ($] < 5.008) { *_module_to_filename = sub { (my $fn = $_[0]) =~ s!::!/!g; $fn .= '.pm'; return $fn; } } else { *_module_to_filename = sub { (my $fn = $_[0]) =~ s!::!/!g; $fn .= '.pm'; utf8::encode($fn); return $fn; } } sub import { my $class = shift; return SUCCESS unless @_; # List of base classes from which we will inherit %FIELDS. my $fields_base; my $inheritor = caller(0); my @bases; foreach my $base (@_) { if ( $inheritor eq $base ) { warn "Class '$inheritor' tried to inherit from itself\n"; } next if grep $_->isa($base), ($inheritor, @bases); # Following blocks help isolate $SIG{__DIE__} and @INC changes { my $sigdie; { local $SIG{__DIE__}; my $fn = _module_to_filename($base); my $dot_hidden; eval { my $guard; if ($INC[-1] eq '.' && %{"$base\::"}) { # So: the package already exists => this an optional load # And: there is a dot at the end of @INC => we want to hide it # However: we only want to hide it during our *own* require() # (i.e. without affecting nested require()s). # So we add a hook to @INC whose job is to hide the dot, but which # first checks checks the callstack depth, because within nested # require()s the callstack is deeper. # Since CORE::GLOBAL::require makes it unknowable in advance what # the exact relevant callstack depth will be, we have to record it # inside a hook. So we put another hook just for that at the front # of @INC, where it's guaranteed to run -- immediately. # The dot-hiding hook does its job by sitting directly in front of # the dot and removing itself from @INC when reached. This causes # the dot to move up one index in @INC, causing the loop inside # pp_require() to skip it. # Loaded coded may disturb this precise arrangement, but that's OK # because the hook is inert by that time. It is only active during # the top-level require(), when @INC is in our control. The only # possible gotcha is if other hooks already in @INC modify @INC in # some way during that initial require(). # Note that this jiggery hookery works just fine recursively: if # a module loaded via base.pm uses base.pm itself, there will be # one pair of hooks in @INC per base::import call frame, but the # pairs from different nestings do not interfere with each other. my $lvl; unshift @INC, sub { return if defined $lvl; 1 while defined caller ++$lvl; () }; splice @INC, -1, 0, sub { return if defined caller $lvl; ++$dot_hidden, &base::__inc::unhook; () }; $guard = bless [ @INC[0,-2] ], 'base::__inc::scope_guard'; } require $fn }; if ($dot_hidden && (my @fn = grep -e && !( -d _ || -b _ ), $fn.'c', $fn)) { require Carp; Carp::croak(<]*> (?:line|chunk) [0-9]+)?\.\n\z/s || $@ =~ /Compilation failed in require at .* line [0-9]+(?:, <[^>]*> (?:line|chunk) [0-9]+)?\.\n\z/; unless (%{"$base\::"}) { require Carp; local $" = " "; Carp::croak(<[0] = @$battr; if( keys %$dfields ) { warn <<"END"; $derived is inheriting from $base but already has its own fields! This will cause problems. Be sure you use base BEFORE declaring fields. END } # Iterate through the base's fields adding all the non-private # ones to the derived class. Hang on to the original attribute # (Public, Private, etc...) and add Inherited. # This is all too complicated to do efficiently with add_fields(). while (my($k,$v) = each %$bfields) { my $fno; if ($fno = $dfields->{$k} and $fno != $v) { require Carp; Carp::croak ("Inherited fields can't override existing fields"); } if( $battr->[$v] & PRIVATE ) { $dattr->[$v] = PRIVATE | INHERITED; } else { $dattr->[$v] = INHERITED | $battr->[$v]; $dfields->{$k} = $v; } } foreach my $idx (1..$#{$battr}) { next if defined $dattr->[$idx]; $dattr->[$idx] = $battr->[$idx] & INHERITED; } } 1; __END__ =head1 NAME base - Establish an ISA relationship with base classes at compile time =head1 SYNOPSIS package Baz; use base qw(Foo Bar); =head1 DESCRIPTION Unless you are using the C pragma, consider this module discouraged in favor of the lighter-weight C. Allows you to both load one or more modules, while setting up inheritance from those modules at the same time. Roughly similar in effect to package Baz; BEGIN { require Foo; require Bar; push @ISA, qw(Foo Bar); } When C tries to C a module, it will not die if it cannot find the module's file, but will die on any other error. After all this, should your base class be empty, containing no symbols, C will die. This is useful for inheriting from classes in the same file as yourself but where the filename does not match the base module name, like so: # in Bar.pm package Foo; sub exclaim { "I can have such a thing?!" } package Bar; use base "Foo"; There is no F, but because C defines a symbol (the C subroutine), C will not die when the C fails to load F. C will also initialize the fields if one of the base classes has it. Multiple inheritance of fields is B supported, if two or more base classes each have inheritable fields the 'base' pragma will croak. See L for a description of this feature. The base class' C method is B called. =head1 DIAGNOSTICS =over 4 =item Base class package "%s" is empty. base.pm was unable to require the base package, because it was not found in your path. =item Class 'Foo' tried to inherit from itself Attempting to inherit from yourself generates a warning. package Foo; use base 'Foo'; =back =head1 HISTORY This module was introduced with Perl 5.004_04. =head1 CAVEATS Due to the limitations of the implementation, you must use base I you declare any of your own fields. =head1 SEE ALSO L =cut FILEf923cf11/builtin.pm(package builtin 0.008; use strict; use warnings; # All code, including &import, is implemented by always-present functions in # the perl interpreter itself. # See also `builtin.c` in perl source 1; __END__ =head1 NAME builtin - Perl pragma to import built-in utility functions =head1 SYNOPSIS use builtin qw( true false is_bool weaken unweaken is_weak blessed refaddr reftype created_as_string created_as_number ceil floor indexed trim is_tainted export_lexically ); =head1 DESCRIPTION Perl provides several utility functions in the C package. These are plain functions, and look and behave just like regular user-defined functions do. They do not provide new syntax or require special parsing. These functions are always present in the interpreter and can be called at any time by their fully-qualified names. By default they are not available as short names, but can be requested for convenience. Individual named functions can be imported by listing them as import parameters on the C statement for this pragma. The overall C mechanism, as well as every individual function it provides, are currently B. B: At present, the entire C namespace is experimental. Calling functions in it will trigger warnings of the C category. =head2 Lexical Import This pragma module creates I aliases in the currently-compiling scope to these builtin functions. This is similar to the lexical effect of other pragmas such as L and L. sub classify { my $val = shift; use builtin 'is_bool'; return is_bool($val) ? "boolean" : "not a boolean"; } # the is_bool() function is no longer visible here # but may still be called by builtin::is_bool() Because these functions are imported lexically, rather than by package symbols, the user does not need to take any special measures to ensure they don't accidentally appear as object methods from a class. package An::Object::Class { use builtin 'true', 'false'; ... } # does not appear as a method An::Object::Class->true; # Can't locate object method "true" via package "An::Object::Class" # at ... =head1 FUNCTIONS =head2 true $val = true; Returns the boolean truth value. While any scalar value can be tested for truth and most defined, non-empty and non-zero values are considered "true" by perl, this one is special in that L considers it to be a distinguished boolean value. This gives an equivalent value to expressions like C or C. =head2 false $val = false; Returns the boolean fiction value. While any non-true scalar value is considered "false" by perl, this one is special in that L considers it to be a distinguished boolean value. This gives an equivalent value to expressions like C or C. =head2 is_bool $bool = is_bool($val); Returns true when given a distinguished boolean value, or false if not. A distinguished boolean value is the result of any boolean-returning builtin function (such as C or C itself), boolean-returning operator (such as the C or C<==> comparison tests or the C negation operator), or any variable containing one of these results. This function used to be named C. A compatibility alias is provided currently but will be removed in a later version. =head2 weaken weaken($ref); Weakens a reference. A weakened reference does not contribute to the reference count of its referent. If only weakened references to a referent remain, it will be disposed of, and all remaining weak references to it will have their value set to C. =head2 unweaken unweaken($ref); Strengthens a reference, undoing the effects of a previous call to L. =head2 is_weak $bool = is_weak($ref); Returns true when given a weakened reference, or false if not a reference or not weak. This function used to be named C. A compatibility alias is provided currently but will be removed in a later version. =head2 blessed $str = blessed($ref); Returns the package name for an object reference, or C for a non-reference or reference that is not an object. =head2 refaddr $num = refaddr($ref); Returns the memory address for a reference, or C for a non-reference. This value is not likely to be very useful for pure Perl code, but is handy as a means to test for referential identity or uniqueness. =head2 reftype $str = reftype($ref); Returns the basic container type of the referent of a reference, or C for a non-reference. This is returned as a string in all-capitals, such as C for array references, or C for hash references. =head2 created_as_string $bool = created_as_string($val); Returns a boolean representing if the argument value was originally created as a string. It will return true for any scalar expression whose most recent assignment or modification was of a string-like nature - such as assignment from a string literal, or the result of a string operation such as concatenation or regexp. It will return false for references (including any object), numbers, booleans and undef. It is unlikely that you will want to use this for regular data validation within Perl, as it will not return true for regular numbers that are still perfectly usable as strings, nor for any object reference - especially objects that overload the stringification operator in an attempt to behave more like strings. For example my $val = URI->new( "https://metacpan.org/" ); if( created_as_string $val ) { ... } # this will not execute =head2 created_as_number $bool = created_as_number($val); Returns a boolean representing if the argument value was originally created as a number. It will return true for any scalar expression whose most recent assignment or modification was of a numerical nature - such as assignment from a number literal, or the result of a numerical operation such as addition. It will return false for references (including any object), strings, booleans and undef. It is unlikely that you will want to use this for regular data validation within Perl, as it will not return true for regular strings of decimal digits that are still perfectly usable as numbers, nor for any object reference - especially objects that overload the numification operator in an attempt to behave more like numbers. For example my $val = Math::BigInt->new( 123 ); if( created_as_number $val ) { ... } # this will not execute While most Perl code should operate on scalar values without needing to know their creation history, these two functions are intended to be used by data serialisation modules such as JSON encoders or similar situations, where language interoperability concerns require making a distinction between values that are fundamentally stringlike versus numberlike in nature. =head2 ceil $num = ceil($num); Returns the smallest integer value greater than or equal to the given numerical argument. =head2 floor $num = floor($num); Returns the largest integer value less than or equal to the given numerical argument. =head2 indexed @ivpairs = indexed(@items) Returns an even-sized list of number/value pairs, where each pair is formed of a number giving an index in the original list followed by the value at that position in it. I.e. returns a list twice the size of the original, being equal to (0, $items[0], 1, $items[1], 2, $items[2], ...) Note that unlike the core C function, this function returns copies of its original arguments, not aliases to them. Any modifications of these copies are I reflected in modifications to the original. my @x = ...; $_++ for indexed @x; # The @x array remains unaffected This function is primarily intended to be useful combined with multi-variable C loop syntax; as foreach my ($index, $value) (indexed LIST) { ... } In scalar context this function returns the size of the list that it would otherwise have returned, and provokes a warning in the C category. =head2 trim $stripped = trim($string); Returns the input string with whitespace stripped from the beginning and end. trim() will remove these characters: " ", an ordinary space. "\t", a tab. "\n", a new line (line feed). "\r", a carriage return. and all other Unicode characters that are flagged as whitespace. A complete list is in L. $var = " Hello world "; # "Hello world" $var = "\t\t\tHello world"; # "Hello world" $var = "Hello world\n"; # "Hello world" $var = "\x{2028}Hello world\x{3000}"; # "Hello world" C is equivalent to: $str =~ s/\A\s+|\s+\z//urg; For Perl versions where this feature is not available look at the L module for a comparable implementation. =head2 is_tainted $bool = is_tainted($var); Returns true when given a tainted variable. =head2 export_lexically export_lexically($name1, $ref1, $name2, $ref2, ...) Exports new lexical names into the scope currently being compiled. Names given by the first of each pair of values will refer to the corresponding item whose reference is given by the second. Types of item that are permitted are subroutines, and scalar, array, and hash variables. If the item is a subroutine, the name may optionally be prefixed with the C<&> sigil, but for convenience it doesn't have to. For items that are variables the sigil is required, and must match the type of the variable. export_lexically func => \&func, '&func' => \&func; # same as above export_lexically '$scalar' => \my $var; Z<> # The following are not permitted export_lexically '$var' => \@arr; # sigil does not match export_lexically name => \$scalar; # implied '&' sigil does not match export_lexically '*name' => \*globref; # globrefs are not supported This must be called at compile time; which typically means during a C block. Usually this would be used as part of an C method of a module, when invoked as part of a C statement. =head1 SEE ALSO L, L, L FILEd780df67/bytes.pmpackage bytes; use strict; use warnings; our $VERSION = '1.08'; $bytes::hint_bits = 0x00000008; sub import { $^H |= $bytes::hint_bits; } sub unimport { $^H &= ~$bytes::hint_bits; } our $AUTOLOAD; sub AUTOLOAD { require "bytes_heavy.pl"; goto &$AUTOLOAD if defined &$AUTOLOAD; require Carp; Carp::croak("Undefined subroutine $AUTOLOAD called"); } sub length (_); sub chr (_); sub ord (_); sub substr ($$;$$); sub index ($$;$); sub rindex ($$;$); 1; __END__ =head1 NAME bytes - Perl pragma to expose the individual bytes of characters =head1 NOTICE Because the bytes pragma breaks encapsulation (i.e. it exposes the innards of how the perl executable currently happens to store a string), the byte values that result are in an unspecified encoding. B If you feel that the functions here within might be useful for your application, this possibly indicates a mismatch between your mental model of Perl Unicode and the current reality. In that case, you may wish to read some of the perl Unicode documentation: L, L, L and L. =head1 SYNOPSIS use bytes; ... chr(...); # or bytes::chr ... index(...); # or bytes::index ... length(...); # or bytes::length ... ord(...); # or bytes::ord ... rindex(...); # or bytes::rindex ... substr(...); # or bytes::substr no bytes; =head1 DESCRIPTION Perl's characters are stored internally as sequences of one or more bytes. This pragma allows for the examination of the individual bytes that together comprise a character. Originally the pragma was designed for the loftier goal of helping incorporate Unicode into Perl, but the approach that used it was found to be defective, and the one remaining legitimate use is for debugging when you need to non-destructively examine characters' individual bytes. Just insert this pragma temporarily, and remove it after the debugging is finished. The original usage can be accomplished by explicit (rather than this pragma's implicit) encoding using the L module: use Encode qw/encode/; my $utf8_byte_string = encode "UTF8", $string; my $latin1_byte_string = encode "Latin1", $string; Or, if performance is needed and you are only interested in the UTF-8 representation: utf8::encode(my $utf8_byte_string = $string); C can be used to reverse the effect of C within the current lexical scope. As an example, when Perl sees C<$x = chr(400)>, it encodes the character in UTF-8 and stores it in C<$x>. Then it is marked as character data, so, for instance, C returns C<1>. However, in the scope of the C pragma, C<$x> is treated as a series of bytes - the bytes that make up the UTF8 encoding - and C returns C<2>: $x = chr(400); print "Length is ", length $x, "\n"; # "Length is 1" printf "Contents are %vd\n", $x; # "Contents are 400" { use bytes; # or "require bytes; bytes::length()" print "Length is ", length $x, "\n"; # "Length is 2" printf "Contents are %vd\n", $x; # "Contents are 198.144 (on # ASCII platforms)" } C, C, C, C and C behave similarly. For more on the implications, see L and L. C is admittedly handy if you need to know the B of a Perl scalar. But a more modern way is: use Encode 'encode'; length(encode('UTF-8', $scalar)) =head1 LIMITATIONS C does not work as an I. =head1 SEE ALSO L, L, L, L =cut FILEcd5536a3/constant.pm9package constant; use 5.008; use strict; use warnings::register; our $VERSION = '1.33'; our %declared; #======================================================================= # Some names are evil choices. my %keywords = map +($_, 1), qw{ BEGIN INIT CHECK END DESTROY AUTOLOAD }; $keywords{UNITCHECK}++ if $] > 5.009; my %forced_into_main = map +($_, 1), qw{ STDIN STDOUT STDERR ARGV ARGVOUT ENV INC SIG }; my %forbidden = (%keywords, %forced_into_main); my $normal_constant_name = qr/^_?[^\W_0-9]\w*\z/; my $tolerable = qr/^[A-Za-z_]\w*\z/; my $boolean = qr/^[01]?\z/; BEGIN { # We'd like to do use constant _CAN_PCS => $] > 5.009002 # but that's a bit tricky before we load the constant module :-) # By doing this, we save several run time checks for *every* call # to import. my $const = $] > 5.009002; my $downgrade = $] < 5.015004; # && $] >= 5.008 my $constarray = exists &_make_const; if ($const) { Internals::SvREADONLY($const, 1); Internals::SvREADONLY($downgrade, 1); $constant::{_CAN_PCS} = \$const; $constant::{_DOWNGRADE} = \$downgrade; $constant::{_CAN_PCS_FOR_ARRAY} = \$constarray; } else { no strict 'refs'; *{"_CAN_PCS"} = sub () {$const}; *{"_DOWNGRADE"} = sub () { $downgrade }; *{"_CAN_PCS_FOR_ARRAY"} = sub () { $constarray }; } } #======================================================================= # import() - import symbols into user's namespace # # What we actually do is define a function in the caller's namespace # which returns the value. The function we create will normally # be inlined as a constant, thereby avoiding further sub calling # overhead. #======================================================================= sub import { my $class = shift; return unless @_; # Ignore 'use constant;' my $constants; my $multiple = ref $_[0]; my $caller = caller; my $flush_mro; my $symtab; if (_CAN_PCS) { no strict 'refs'; $symtab = \%{$caller . '::'}; }; if ( $multiple ) { if (ref $_[0] ne 'HASH') { require Carp; Carp::croak("Invalid reference type '".ref(shift)."' not 'HASH'"); } $constants = shift; } else { unless (defined $_[0]) { require Carp; Carp::croak("Can't use undef as constant name"); } $constants->{+shift} = undef; } foreach my $name ( keys %$constants ) { my $pkg; my $symtab = $symtab; my $orig_name = $name; if ($name =~ s/(.*)(?:::|')(?=.)//s) { $pkg = $1; if (_CAN_PCS && $pkg ne $caller) { no strict 'refs'; $symtab = \%{$pkg . '::'}; } } else { $pkg = $caller; } # Normal constant name if ($name =~ $normal_constant_name and !$forbidden{$name}) { # Everything is okay # Name forced into main, but we're not in main. Fatal. } elsif ($forced_into_main{$name} and $pkg ne 'main') { require Carp; Carp::croak("Constant name '$name' is forced into main::"); # Starts with double underscore. Fatal. } elsif ($name =~ /^__/) { require Carp; Carp::croak("Constant name '$name' begins with '__'"); # Maybe the name is tolerable } elsif ($name =~ $tolerable) { # Then we'll warn only if you've asked for warnings if (warnings::enabled()) { if ($keywords{$name}) { warnings::warn("Constant name '$name' is a Perl keyword"); } elsif ($forced_into_main{$name}) { warnings::warn("Constant name '$name' is " . "forced into package main::"); } } # Looks like a boolean # use constant FRED == fred; } elsif ($name =~ $boolean) { require Carp; if (@_) { Carp::croak("Constant name '$name' is invalid"); } else { Carp::croak("Constant name looks like boolean value"); } } else { # Must have bad characters require Carp; Carp::croak("Constant name '$name' has invalid characters"); } { no strict 'refs'; my $full_name = "${pkg}::$name"; $declared{$full_name}++; if ($multiple || @_ == 1) { my $scalar = $multiple ? $constants->{$orig_name} : $_[0]; if (_DOWNGRADE) { # for 5.8 to 5.14 # Work around perl bug #31991: Sub names (actually glob # names in general) ignore the UTF8 flag. So we have to # turn it off to get the "right" symbol table entry. utf8::is_utf8 $name and utf8::encode $name; } # The constant serves to optimise this entire block out on # 5.8 and earlier. if (_CAN_PCS) { # Use a reference as a proxy for a constant subroutine. # If this is not a glob yet, it saves space. If it is # a glob, we must still create it this way to get the # right internal flags set, as constants are distinct # from subroutines created with sub(){...}. # The check in Perl_ck_rvconst knows that inlinable # constants from cv_const_sv are read only. So we have to: Internals::SvREADONLY($scalar, 1); if (!exists $symtab->{$name}) { $symtab->{$name} = \$scalar; ++$flush_mro->{$pkg}; } else { local $constant::{_dummy} = \$scalar; *$full_name = \&{"_dummy"}; } } else { *$full_name = sub () { $scalar }; } } elsif (@_) { my @list = @_; if (_CAN_PCS_FOR_ARRAY) { _make_const($list[$_]) for 0..$#list; _make_const(@list); if (!exists $symtab->{$name}) { $symtab->{$name} = \@list; $flush_mro->{$pkg}++; } else { local $constant::{_dummy} = \@list; *$full_name = \&{"_dummy"}; } } else { *$full_name = sub () { @list }; } } else { *$full_name = sub () { }; } } } # Flush the cache exactly once if we make any direct symbol table changes. if (_CAN_PCS && $flush_mro) { mro::method_changed_in($_) for keys %$flush_mro; } } 1; __END__ =head1 NAME constant - Perl pragma to declare constants =head1 SYNOPSIS use constant PI => 4 * atan2(1, 1); use constant DEBUG => 0; print "Pi equals ", PI, "...\n" if DEBUG; use constant { SEC => 0, MIN => 1, HOUR => 2, MDAY => 3, MON => 4, YEAR => 5, WDAY => 6, YDAY => 7, ISDST => 8, }; use constant WEEKDAYS => qw( Sunday Monday Tuesday Wednesday Thursday Friday Saturday ); print "Today is ", (WEEKDAYS)[ (localtime)[WDAY] ], ".\n"; =head1 DESCRIPTION This pragma allows you to declare constants at compile-time. When you declare a constant such as C using the method shown above, each machine your script runs upon can have as many digits of accuracy as it can use. Also, your program will be easier to read, more likely to be maintained (and maintained correctly), and far less likely to send a space probe to the wrong planet because nobody noticed the one equation in which you wrote C<3.14195>. When a constant is used in an expression, Perl replaces it with its value at compile time, and may then optimize the expression further. In particular, any code in an C block will be optimized away if the constant is false. =head1 NOTES As with all C directives, defining a constant happens at compile time. Thus, it's probably not correct to put a constant declaration inside of a conditional statement (like C). Constants defined using this module cannot be interpolated into strings like variables. However, concatenation works just fine: print "Pi equals PI...\n"; # WRONG: does not expand "PI" print "Pi equals ".PI."...\n"; # right Even though a reference may be declared as a constant, the reference may point to data which may be changed, as this code shows. use constant ARRAY => [ 1,2,3,4 ]; print ARRAY->[1]; ARRAY->[1] = " be changed"; print ARRAY->[1]; Constants belong to the package they are defined in. To refer to a constant defined in another package, specify the full package name, as in C. Constants may be exported by modules, and may also be called as either class or instance methods, that is, as C<< Some::Package->CONSTANT >> or as C<< $obj->CONSTANT >> where C<$obj> is an instance of C. Subclasses may define their own constants to override those in their base class. As of version 1.32 of this module, constants can be defined in packages other than the caller, by including the package name in the name of the constant: use constant "OtherPackage::FWIBBLE" => 7865; constant->import("Other::FWOBBLE",$value); # dynamically at run time The use of all caps for constant names is merely a convention, although it is recommended in order to make constants stand out and to help avoid collisions with other barewords, keywords, and subroutine names. Constant names must begin with a letter or underscore. Names beginning with a double underscore are reserved. Some poor choices for names will generate warnings, if warnings are enabled at compile time. =head2 List constants Constants may be lists of more (or less) than one value. A constant with no values evaluates to C in scalar context. Note that constants with more than one value do I return their last value in scalar context as one might expect. They currently return the number of values, but B. Do not use constants with multiple values in scalar context. B This implies that the expression defining the value of a constant is evaluated in list context. This may produce surprises: use constant TIMESTAMP => localtime; # WRONG! use constant TIMESTAMP => scalar localtime; # right The first line above defines C as a 9-element list, as returned by C in list context. To set it to the string returned by C in scalar context, an explicit C keyword is required. List constants are lists, not arrays. To index or slice them, they must be placed in parentheses. my @workdays = WEEKDAYS[1 .. 5]; # WRONG! my @workdays = (WEEKDAYS)[1 .. 5]; # right =head2 Defining multiple constants at once Instead of writing multiple C statements, you may define multiple constants in a single statement by giving, instead of the constant name, a reference to a hash where the keys are the names of the constants to be defined. Obviously, all constants defined using this method must have a single value. use constant { FOO => "A single value", BAR => "This", "won't", "work!", # Error! }; This is a fundamental limitation of the way hashes are constructed in Perl. The error messages produced when this happens will often be quite cryptic -- in the worst case there may be none at all, and you'll only later find that something is broken. When defining multiple constants, you cannot use the values of other constants defined in the same declaration. This is because the calling package doesn't know about any constant within that group until I the C statement is finished. use constant { BITMASK => 0xAFBAEBA8, NEGMASK => ~BITMASK, # Error! }; =head2 Magic constants Magical values and references can be made into constants at compile time, allowing for way cool stuff like this. (These error numbers aren't totally portable, alas.) use constant E2BIG => ($! = 7); print E2BIG, "\n"; # something like "Arg list too long" print 0+E2BIG, "\n"; # "7" You can't produce a tied constant by giving a tied scalar as the value. References to tied variables, however, can be used as constants without any problems. =head1 TECHNICAL NOTES In the current implementation, scalar constants are actually inlinable subroutines. As of version 5.004 of Perl, the appropriate scalar constant is inserted directly in place of some subroutine calls, thereby saving the overhead of a subroutine call. See L for details about how and when this happens. In the rare case in which you need to discover at run time whether a particular constant has been declared via this module, you may use this function to examine the hash C<%constant::declared>. If the given constant name does not include a package name, the current package is used. sub declared ($) { use constant 1.01; # don't omit this! my $name = shift; $name =~ s/^::/main::/; my $pkg = caller; my $full_name = $name =~ /::/ ? $name : "${pkg}::$name"; $constant::declared{$full_name}; } =head1 CAVEATS List constants are not inlined unless you are using Perl v5.20 or higher. In v5.20 or higher, they are still not read-only, but that may change in future versions. It is not possible to have a subroutine or a keyword with the same name as a constant in the same package. This is probably a Good Thing. A constant with a name in the list C is not allowed anywhere but in package C, for technical reasons. Unlike constants in some languages, these cannot be overridden on the command line or via environment variables. You can get into trouble if you use constants in a context which automatically quotes barewords (as is true for any subroutine call). For example, you can't say C<$hash{CONSTANT}> because C will be interpreted as a string. Use C<$hash{CONSTANT()}> or C<$hash{+CONSTANT}> to prevent the bareword quoting mechanism from kicking in. Similarly, since the C<< => >> operator quotes a bareword immediately to its left, you have to say C<< CONSTANT() => 'value' >> (or simply use a comma in place of the big arrow) instead of C<< CONSTANT => 'value' >>. =head1 SEE ALSO L - Facility for creating read-only scalars, arrays, hashes. L - Make read-only variables via attribute L - Perl extension to the C scalar flag L - A selection of general-utility hash subroutines (mostly to lock/unlock keys and values) =head1 BUGS Please report any bugs or feature requests via the perlbug(1) utility. =head1 AUTHORS Tom Phoenix, EFE, with help from many other folks. Multiple constant declarations at once added by Casey West, EFE. Documentation mostly rewritten by Ilmari Karonen, EFE. This program is maintained by the Perl 5 Porters. The CPAN distribution is maintained by SEbastien Aperghis-Tramoni EFE. =head1 COPYRIGHT & LICENSE Copyright (C) 1997, 1999 Tom Phoenix This module is free software; you can redistribute it or modify it under the same terms as Perl itself. =cut FILE2b6cef96/integer.pm package integer; our $VERSION = '1.01'; =head1 NAME integer - Perl pragma to use integer arithmetic instead of floating point =head1 SYNOPSIS use integer; $x = 10/3; # $x is now 3, not 3.33333333333333333 =head1 DESCRIPTION This tells the compiler to use integer operations from here to the end of the enclosing BLOCK. On many machines, this doesn't matter a great deal for most computations, but on those without floating point hardware, it can make a big difference in performance. Note that this only affects how most of the arithmetic and relational B handle their operands and results, and B how all numbers everywhere are treated. Specifically, C has the effect that before computing the results of the arithmetic operators (+, -, *, /, %, +=, -=, *=, /=, %=, and unary minus), the comparison operators (<, <=, >, >=, ==, !=, <=>), and the bitwise operators (|, &, ^, <<, >>, |=, &=, ^=, <<=, >>=), the operands have their fractional portions truncated (or floored), and the result will have its fractional portion truncated as well. In addition, the range of operands and results is restricted to that of familiar two's complement integers, i.e., -(2**31) .. (2**31-1) on 32-bit architectures, and -(2**63) .. (2**63-1) on 64-bit architectures. For example, this code use integer; $x = 5.8; $y = 2.5; $z = 2.7; $a = 2**31 - 1; # Largest positive integer on 32-bit machines $, = ", "; print $x, -$x, $x+$y, $x-$y, $x/$y, $x*$y, $y==$z, $a, $a+1; will print: 5.8, -5, 7, 3, 2, 10, 1, 2147483647, -2147483648 Note that $x is still printed as having its true non-integer value of 5.8 since it wasn't operated on. And note too the wrap-around from the largest positive integer to the largest negative one. Also, arguments passed to functions and the values returned by them are B affected by C. E.g., srand(1.5); $, = ", "; print sin(.5), cos(.5), atan2(1,2), sqrt(2), rand(10); will give the same result with or without C The power operator C<**> is also not affected, so that 2 ** .5 is always the square root of 2. Now, it so happens that the pre- and post- increment and decrement operators, ++ and --, are not affected by C either. Some may rightly consider this to be a bug -- but at least it's a long-standing one. Finally, C also has an additional affect on the bitwise operators. Normally, the operands and results are treated as B integers, but with C the operands and results are B. This means, among other things, that ~0 is -1, and -2 & -5 is -6. Internally, native integer arithmetic (as provided by your C compiler) is used. This means that Perl's own semantics for arithmetic operations may not be preserved. One common source of trouble is the modulus of negative numbers, which Perl does one way, but your hardware may do another. % perl -le 'print (4 % -3)' -2 % perl -Minteger -le 'print (4 % -3)' 1 See L, L =cut $integer::hint_bits = 0x1; sub import { $^H |= $integer::hint_bits; } sub unimport { $^H &= ~$integer::hint_bits; } 1; FILEc8ecdfa3/overload.pmpackage overload; use strict; no strict 'refs'; our $VERSION = '1.37'; our %ops = ( with_assign => "+ - * / % ** << >> x .", assign => "+= -= *= /= %= **= <<= >>= x= .=", num_comparison => "< <= > >= == !=", '3way_comparison' => "<=> cmp", str_comparison => "lt le gt ge eq ne", binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=', unary => "neg ! ~ ~.", mutators => '++ --', func => "atan2 cos sin exp abs log sqrt int", conversion => 'bool "" 0+ qr', iterators => '<>', filetest => "-X", dereferencing => '${} @{} %{} &{} *{}', matching => '~~', special => 'nomethod fallback =', ); my %ops_seen; @ops_seen{ map split(/ /), values %ops } = (); sub nil {} sub OVERLOAD { my $package = shift; my %arg = @_; my $sub; *{$package . "::(("} = \&nil; # Make it findable via fetchmethod. for (keys %arg) { if ($_ eq 'fallback') { for my $sym (*{$package . "::()"}) { *$sym = \&nil; # Make it findable via fetchmethod. $$sym = $arg{$_}; } } else { warnings::warnif("overload arg '$_' is invalid") unless exists $ops_seen{$_}; $sub = $arg{$_}; if (not ref $sub) { $ {$package . "::(" . $_} = $sub; $sub = \&nil; } #print STDERR "Setting '$ {'package'}::\cO$_' to \\&'$sub'.\n"; *{$package . "::(" . $_} = \&{ $sub }; } } } sub import { my $package = caller(); # *{$package . "::OVERLOAD"} = \&OVERLOAD; shift; $package->overload::OVERLOAD(@_); } sub unimport { my $package = caller(); shift; *{$package . "::(("} = \&nil; for (@_) { warnings::warnif("overload arg '$_' is invalid") unless exists $ops_seen{$_}; delete $ {$package . "::"}{$_ eq 'fallback' ? '()' : "(" .$_}; } } sub Overloaded { my $package = shift; $package = ref $package if ref $package; mycan ($package, '()') || mycan ($package, '(('); } sub ov_method { my $globref = shift; return undef unless $globref; my $sub = \&{*$globref}; no overloading; return $sub if $sub != \&nil; return shift->can($ {*$globref}); } sub OverloadedStringify { my $package = shift; $package = ref $package if ref $package; #$package->can('(""') ov_method mycan($package, '(""'), $package or ov_method mycan($package, '(0+'), $package or ov_method mycan($package, '(bool'), $package or ov_method mycan($package, '(nomethod'), $package; } sub Method { my $package = shift; if (ref $package) { no warnings 'experimental::builtin'; $package = builtin::blessed($package); return undef if !defined $package; } #my $meth = $package->can('(' . shift); ov_method mycan($package, '(' . shift), $package; #return $meth if $meth ne \&nil; #return $ {*{$meth}}; } sub AddrRef { no overloading; "$_[0]"; } *StrVal = *AddrRef; sub mycan { # Real can would leave stubs. my ($package, $meth) = @_; local $@; local $!; require mro; my $mro = mro::get_linear_isa($package); foreach my $p (@$mro) { my $fqmeth = $p . q{::} . $meth; return \*{$fqmeth} if defined &{$fqmeth}; } return undef; } my %constants = ( 'integer' => 0x1000, # HINT_NEW_INTEGER 'float' => 0x2000, # HINT_NEW_FLOAT 'binary' => 0x4000, # HINT_NEW_BINARY 'q' => 0x8000, # HINT_NEW_STRING 'qr' => 0x10000, # HINT_NEW_RE ); use warnings::register; sub constant { # Arguments: what, sub while (@_) { if (@_ == 1) { warnings::warnif ("Odd number of arguments for overload::constant"); last; } elsif (!exists $constants {$_ [0]}) { warnings::warnif ("'$_[0]' is not an overloadable type"); } elsif (!ref $_ [1] || "$_[1]" !~ /(^|=)CODE\(0x[0-9a-f]+\)$/) { # Can't use C above as code references can be # blessed, and C would return the package the ref is blessed into. if (warnings::enabled) { $_ [1] = "undef" unless defined $_ [1]; warnings::warn ("'$_[1]' is not a code reference"); } } else { $^H{$_[0]} = $_[1]; $^H |= $constants{$_[0]}; } shift, shift; } } sub remove_constant { # Arguments: what, sub while (@_) { delete $^H{$_[0]}; $^H &= ~ $constants{$_[0]}; shift, shift; } } 1; __END__ =head1 NAME overload - Package for overloading Perl operations =head1 SYNOPSIS package SomeThing; use overload '+' => \&myadd, '-' => \&mysub; # etc ... package main; $a = SomeThing->new( 57 ); $b = 5 + $a; ... if (overload::Overloaded $b) {...} ... $strval = overload::StrVal $b; =head1 DESCRIPTION This pragma allows overloading of Perl's operators for a class. To overload built-in functions, see L instead. =head2 Fundamentals =head3 Declaration Arguments of the C directive are (key, value) pairs. For the full set of legal keys, see L below. Operator implementations (the values) can be subroutines, references to subroutines, or anonymous subroutines - in other words, anything legal inside a C<&{ ... }> call. Values specified as strings are interpreted as method names. Thus package Number; use overload "-" => "minus", "*=" => \&muas, '""' => sub { ...; }; declares that subtraction is to be implemented by method C in the class C (or one of its base classes), and that the function C is to be used for the assignment form of multiplication, C<*=>. It also defines an anonymous subroutine to implement stringification: this is called whenever an object blessed into the package C is used in a string context (this subroutine might, for example, return the number as a Roman numeral). =head3 Calling Conventions and Magic Autogeneration The following sample implementation of C (which assumes that C objects are simply blessed references to scalars) illustrates the calling conventions: package Number; sub minus { my ($self, $other, $swap) = @_; my $result = $$self - $other; # * $result = -$result if $swap; ref $result ? $result : bless \$result; } # * may recurse once - see table below Three arguments are passed to all subroutines specified in the C directive (with exceptions - see below, particularly L). The first of these is the operand providing the overloaded operator implementation - in this case, the object whose C method is being called. The second argument is the other operand, or C in the case of a unary operator. The third argument is set to TRUE if (and only if) the two operands have been swapped. Perl may do this to ensure that the first argument (C<$self>) is an object implementing the overloaded operation, in line with general object calling conventions. For example, if C<$x> and C<$y> are Cs: operation | generates a call to ============|====================== $x - $y | minus($x, $y, '') $x - 7 | minus($x, 7, '') 7 - $x | minus($x, 7, 1) Perl may also use C to implement other operators which have not been specified in the C directive, according to the rules for L described later. For example, the C above declared no subroutine for any of the operators C<-->, C (the overload key for unary minus), or C<-=>. Thus operation | generates a call to ============|====================== -$x | minus($x, 0, 1) $x-- | minus($x, 1, undef) $x -= 3 | minus($x, 3, undef) Note the Cs: where autogeneration results in the method for a standard operator which does not change either of its operands, such as C<->, being used to implement an operator which changes the operand ("mutators": here, C<--> and C<-=>), Perl passes undef as the third argument. This still evaluates as FALSE, consistent with the fact that the operands have not been swapped, but gives the subroutine a chance to alter its behaviour in these cases. In all the above examples, C is required only to return the result of the subtraction: Perl takes care of the assignment to $x. In fact, such methods should I modify their operands, even if C is passed as the third argument (see L). The same is not true of implementations of C<++> and C<-->: these are expected to modify their operand. An appropriate implementation of C<--> might look like use overload '--' => "decr", # ... sub decr { --${$_[0]}; } If the "bitwise" feature is enabled (see L), a fifth TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~>. This indicates that the caller is expecting numeric behaviour. The fourth argument will be C, as that position (C<$_[3]>) is reserved for use by L. =head3 Mathemagic, Mutators, and Copy Constructors The term 'mathemagic' describes the overloaded implementation of mathematical operators. Mathemagical operations raise an issue. Consider the code: $a = $b; --$a; If C<$a> and C<$b> are scalars then after these statements $a == $b - 1 An object, however, is a reference to blessed data, so if C<$a> and C<$b> are objects then the assignment C<$a = $b> copies only the reference, leaving C<$a> and C<$b> referring to the same object data. One might therefore expect the operation C<--$a> to decrement C<$b> as well as C<$a>. However, this would not be consistent with how we expect the mathematical operators to work. Perl resolves this dilemma by transparently calling a copy constructor before calling a method defined to implement a mutator (C<-->, C<+=>, and so on.). In the above example, when Perl reaches the decrement statement, it makes a copy of the object data in C<$a> and assigns to C<$a> a reference to the copied data. Only then does it call C, which alters the copied data, leaving C<$b> unchanged. Thus the object metaphor is preserved as far as possible, while mathemagical operations still work according to the arithmetic metaphor. Note: the preceding paragraph describes what happens when Perl autogenerates the copy constructor for an object based on a scalar. For other cases, see L. =head2 Overloadable Operations The complete list of keys that can be specified in the C directive are given, separated by spaces, in the values of the hash C<%overload::ops>: with_assign => '+ - * / % ** << >> x .', assign => '+= -= *= /= %= **= <<= >>= x= .=', num_comparison => '< <= > >= == !=', '3way_comparison' => '<=> cmp', str_comparison => 'lt le gt ge eq ne', binary => '& &= | |= ^ ^= &. &.= |. |.= ^. ^.=', unary => 'neg ! ~ ~.', mutators => '++ --', func => 'atan2 cos sin exp abs log sqrt int', conversion => 'bool "" 0+ qr', iterators => '<>', filetest => '-X', dereferencing => '${} @{} %{} &{} *{}', matching => '~~', special => 'nomethod fallback =', Most of the overloadable operators map one-to-one to these keys. Exceptions, including additional overloadable operations not apparent from this hash, are included in the notes which follow. This list is subject to growth over time. A warning is issued if an attempt is made to register an operator not found above. =over 5 =item * C The operator C is not a valid key for C. However, if the operator C is overloaded then the same implementation will be used for C (since the two operators differ only in precedence). =item * C The key C is used for unary minus to disambiguate it from binary C<->. =item * C<++>, C<--> Assuming they are to behave analogously to Perl's C<++> and C<-->, overloaded implementations of these operators are required to mutate their operands. No distinction is made between prefix and postfix forms of the increment and decrement operators: these differ only in the point at which Perl calls the associated subroutine when evaluating an expression. =item * I += -= *= /= %= **= <<= >>= x= .= &= |= ^= &.= |.= ^.= Simple assignment is not overloadable (the C<'='> key is used for the L). Perl does have a way to make assignments to an object do whatever you want, but this involves using tie(), not overload - see L and the L examples below. The subroutine for the assignment variant of an operator is required only to return the result of the operation. It is permitted to change the value of its operand (this is safe because Perl calls the copy constructor first), but this is optional since Perl assigns the returned value to the left-hand operand anyway. An object that overloads an assignment operator does so only in respect of assignments to that object. In other words, Perl never calls the corresponding methods with the third argument (the "swap" argument) set to TRUE. For example, the operation $a *= $b cannot lead to C<$b>'s implementation of C<*=> being called, even if C<$a> is a scalar. (It can, however, generate a call to C<$b>'s method for C<*>). =item * I + - * / % ** << >> x . & | ^ &. |. ^. As described L, Perl may call methods for operators like C<+> and C<&> in the course of implementing missing operations like C<++>, C<+=>, and C<&=>. While these methods may detect this usage by testing the definedness of the third argument, they should in all cases avoid changing their operands. This is because Perl does not call the copy constructor before invoking these methods. =item * C Traditionally, the Perl function C rounds to 0 (see L), and so for floating-point-like types one should follow the same semantic. =item * I "" 0+ bool These conversions are invoked according to context as necessary. For example, the subroutine for C<'""'> (stringify) may be used where the overloaded object is passed as an argument to C, and that for C<'bool'> where it is tested in the condition of a flow control statement (like C) or the ternary C operation. Of course, in contexts like, for example, C<$obj + 1>, Perl will invoke C<$obj>'s implementation of C<+> rather than (in this example) converting C<$obj> to a number using the numify method C<'0+'> (an exception to this is when no method has been provided for C<'+'> and L is set to TRUE). The subroutines for C<'""'>, C<'0+'>, and C<'bool'> can return any arbitrary Perl value. If the corresponding operation for this value is overloaded too, the operation will be called again with this value. As a special case if the overload returns the object itself then it will be used directly. An overloaded conversion returning the object is probably a bug, because you're likely to get something that looks like C. qr The subroutine for C<'qr'> is used wherever the object is interpolated into or used as a regexp, including when it appears on the RHS of a C<=~> or C operator. C must return a compiled regexp, or a ref to a compiled regexp (such as C returns), and any further overloading on the return value will be ignored. =item * I If CE> is overloaded then the same implementation is used for both the I syntax C$varE> and I syntax C${var}E>. =item * I The key C<'-X'> is used to specify a subroutine to handle all the filetest operators (C<-f>, C<-x>, and so on: see L for the full list); it is not possible to overload any filetest operator individually. To distinguish them, the letter following the '-' is passed as the second argument (that is, in the slot that for binary operators is used to pass the second operand). Calling an overloaded filetest operator does not affect the stat value associated with the special filehandle C<_>. It still refers to the result of the last C, C or unoverloaded filetest. This overload was introduced in Perl 5.12. =item * I The key C<"~~"> allows you to override the smart matching logic used by the C<~~> operator and the switch construct (C/C). See L and L. Unusually, the overloaded implementation of the smart match operator does not get full control of the smart match behaviour. In particular, in the following code: package Foo; use overload '~~' => 'match'; my $obj = Foo->new(); $obj ~~ [ 1,2,3 ]; the smart match does I invoke the method call like this: $obj->match([1,2,3],0); rather, the smart match distributive rule takes precedence, so $obj is smart matched against each array element in turn until a match is found, so you may see between one and three of these calls instead: $obj->match(1,0); $obj->match(2,0); $obj->match(3,0); Consult the match table in L for details of when overloading is invoked. =item * I ${} @{} %{} &{} *{} If these operators are not explicitly overloaded then they work in the normal way, yielding the underlying scalar, array, or whatever stores the object data (or the appropriate error message if the dereference operator doesn't match it). Defining a catch-all C<'nomethod'> (see L) makes no difference to this as the catch-all function will not be called to implement a missing dereference operator. If a dereference operator is overloaded then it must return a I of the appropriate type (for example, the subroutine for key C<'${}'> should return a reference to a scalar, not a scalar), or another object which overloads the operator: that is, the subroutine only determines what is dereferenced and the actual dereferencing is left to Perl. As a special case, if the subroutine returns the object itself then it will not be called again - avoiding infinite recursion. =item * I nomethod fallback = See L>. =back =head2 Magic Autogeneration If a method for an operation is not found then Perl tries to autogenerate a substitute implementation from the operations that have been defined. Note: the behaviour described in this section can be disabled by setting C to FALSE (see L). In the following tables, numbers indicate priority. For example, the table below states that, if no implementation for C<'!'> has been defined then Perl will implement it using C<'bool'> (that is, by inverting the value returned by the method for C<'bool'>); if boolean conversion is also unimplemented then Perl will use C<'0+'> or, failing that, C<'""'>. operator | can be autogenerated from | | 0+ "" bool . x =========|========================== 0+ | 1 2 "" | 1 2 bool | 1 2 int | 1 2 3 ! | 2 3 1 qr | 2 1 3 . | 2 1 3 x | 2 1 3 .= | 3 2 4 1 x= | 3 2 4 1 <> | 2 1 3 -X | 2 1 3 Note: The iterator (C<'EE'>) and file test (C<'-X'>) operators work as normal: if the operand is not a blessed glob or IO reference then it is converted to a string (using the method for C<'""'>, C<'0+'>, or C<'bool'>) to be interpreted as a glob or filename. operator | can be autogenerated from | | < <=> neg -= - =========|========================== neg | 1 -= | 1 -- | 1 2 abs | a1 a2 b1 b2 [*] < | 1 <= | 1 > | 1 >= | 1 == | 1 != | 1 * one from [a1, a2] and one from [b1, b2] Just as numeric comparisons can be autogenerated from the method for C<< '<=>' >>, string comparisons can be autogenerated from that for C<'cmp'>: operators | can be autogenerated from ====================|=========================== lt gt le ge eq ne | cmp Similarly, autogeneration for keys C<'+='> and C<'++'> is analogous to C<'-='> and C<'--'> above: operator | can be autogenerated from | | += + =========|========================== += | 1 ++ | 1 2 And other assignment variations are analogous to C<'+='> and C<'-='> (and similar to C<'.='> and C<'x='> above): operator || *= /= %= **= <<= >>= &= ^= |= &.= ^.= |.= -------------------||------------------------------------------- autogenerated from || * / % ** << >> & ^ | &. ^. |. Note also that the copy constructor (key C<'='>) may be autogenerated, but only for objects based on scalars. See L. =head3 Minimal Set of Overloaded Operations Since some operations can be automatically generated from others, there is a minimal set of operations that need to be overloaded in order to have the complete set of overloaded operations at one's disposal. Of course, the autogenerated operations may not do exactly what the user expects. The minimal set is: + - * / % ** << >> x <=> cmp & | ^ ~ &. |. ^. ~. atan2 cos sin exp log sqrt int "" 0+ bool ~~ Of the conversions, only one of string, boolean or numeric is needed because each can be generated from either of the other two. =head2 Special Keys for C =head3 C The C<'nomethod'> key is used to specify a catch-all function to be called for any operator that is not individually overloaded. The specified function will be passed four parameters. The first three arguments coincide with those that would have been passed to the corresponding method if it had been defined. The fourth argument is the C key for that missing method. If the "bitwise" feature is enabled (see L), a fifth TRUE argument is passed to subroutines handling C<&>, C<|>, C<^> and C<~> to indicate that the caller is expecting numeric behaviour. For example, if C<$a> is an object blessed into a package declaring use overload 'nomethod' => 'catch_all', # ... then the operation 3 + $a could (unless a method is specifically declared for the key C<'+'>) result in a call catch_all($a, 3, 1, '+') See L. =head3 C The value assigned to the key C<'fallback'> tells Perl how hard it should try to find an alternative way to implement a missing operator. =over =item * defined, but FALSE use overload "fallback" => 0, # ... ; This disables L. =item * C In the default case where no value is explicitly assigned to C, magic autogeneration is enabled. =item * TRUE The same as for C, but if a missing operator cannot be autogenerated then, instead of issuing an error message, Perl is allowed to revert to what it would have done for that operator if there had been no C directive. Note: in most cases, particularly the L, this is unlikely to be appropriate behaviour. =back See L. =head3 Copy Constructor As mentioned L, this operation is called when a mutator is applied to a reference that shares its object with some other reference. For example, if C<$b> is mathemagical, and C<'++'> is overloaded with C<'incr'>, and C<'='> is overloaded with C<'clone'>, then the code $a = $b; # ... (other code which does not modify $a or $b) ... ++$b; would be executed in a manner equivalent to $a = $b; # ... $b = $b->clone(undef, ""); $b->incr(undef, ""); Note: =over =item * The subroutine for C<'='> does not overload the Perl assignment operator: it is used only to allow mutators to work as described here. (See L above.) =item * As for other operations, the subroutine implementing '=' is passed three arguments, though the last two are always C and C<''>. =item * The copy constructor is called only before a call to a function declared to implement a mutator, for example, if C<++$b;> in the code above is effected via a method declared for key C<'++'> (or 'nomethod', passed C<'++'> as the fourth argument) or, by autogeneration, C<'+='>. It is not called if the increment operation is effected by a call to the method for C<'+'> since, in the equivalent code, $a = $b; $b = $b + 1; the data referred to by C<$a> is unchanged by the assignment to C<$b> of a reference to new object data. =item * The copy constructor is not called if Perl determines that it is unnecessary because there is no other reference to the data being modified. =item * If C<'fallback'> is undefined or TRUE then a copy constructor can be autogenerated, but only for objects based on scalars. In other cases it needs to be defined explicitly. Where an object's data is stored as, for example, an array of scalars, the following might be appropriate: use overload '=' => sub { bless [ @{$_[0]} ] }, # ... =item * If C<'fallback'> is TRUE and no copy constructor is defined then, for objects not based on scalars, Perl may silently fall back on simple assignment - that is, assignment of the object reference. In effect, this disables the copy constructor mechanism since no new copy of the object data is created. This is almost certainly not what you want. (It is, however, consistent: for example, Perl's fallback for the C<++> operator is to increment the reference itself.) =back =head2 How Perl Chooses an Operator Implementation Which is checked first, C or C? If the two operands of an operator are of different types and both overload the operator, which implementation is used? The following are the precedence rules: =over =item 1. If the first operand has declared a subroutine to overload the operator then use that implementation. =item 2. Otherwise, if fallback is TRUE or undefined for the first operand then see if the L allows another of its operators to be used instead. =item 3. Unless the operator is an assignment (C<+=>, C<-=>, etc.), repeat step (1) in respect of the second operand. =item 4. Repeat Step (2) in respect of the second operand. =item 5. If the first operand has a "nomethod" method then use that. =item 6. If the second operand has a "nomethod" method then use that. =item 7. If C is TRUE for both operands then perform the usual operation for the operator, treating the operands as numbers, strings, or booleans as appropriate for the operator (see note). =item 8. Nothing worked - die. =back Where there is only one operand (or only one operand with overloading) the checks in respect of the other operand above are skipped. There are exceptions to the above rules for dereference operations (which, if Step 1 fails, always fall back to the normal, built-in implementations - see Dereferencing), and for C<~~> (which has its own set of rules - see C under L above). Note on Step 7: some operators have a different semantic depending on the type of their operands. As there is no way to instruct Perl to treat the operands as, e.g., numbers instead of strings, the result here may not be what you expect. See L. =head2 Losing Overloading The restriction for the comparison operation is that even if, for example, C should return a blessed reference, the autogenerated C function will produce only a standard logical value based on the numerical value of the result of C. In particular, a working numeric conversion is needed in this case (possibly expressed in terms of other conversions). Similarly, C<.=> and C operators lose their mathemagical properties if the string conversion substitution is applied. When you chop() a mathemagical object it is promoted to a string and its mathemagical properties are lost. The same can happen with other operations as well. =head2 Inheritance and Overloading Overloading respects inheritance via the @ISA hierarchy. Inheritance interacts with overloading in two ways. =over =item Method names in the C directive If C in use overload key => value; is a string, it is interpreted as a method name - which may (in the usual way) be inherited from another class. =item Overloading of an operation is inherited by derived classes Any class derived from an overloaded class is also overloaded and inherits its operator implementations. If the same operator is overloaded in more than one ancestor then the implementation is determined by the usual inheritance rules. For example, if C inherits from C and C (in that order), C overloads C<+> with C<\&D::plus_sub>, and C overloads C<+> by C<"plus_meth">, then the subroutine C will be called to implement operation C<+> for an object in package C. =back Note that in Perl version prior to 5.18 inheritance of the C key was not governed by the above rules. The value of C in the first overloaded ancestor was used. This was fixed in 5.18 to follow the usual rules of inheritance. =head2 Run-time Overloading Since all C directives are executed at compile-time, the only way to change overloading during run-time is to eval 'use overload "+" => \&addmethod'; You can also use eval 'no overload "+", "--", "<="'; though the use of these constructs during run-time is questionable. =head2 Public Functions Package C provides the following public functions: =over 5 =item overload::StrVal(arg) Gives the string value of C as in the absence of stringify overloading. If you are using this to get the address of a reference (useful for checking if two references point to the same thing) then you may be better off using C or C, which are faster. =item overload::Overloaded(arg) Returns true if C is subject to overloading of some operations. =item overload::Method(obj,op) Returns C or a reference to the method that implements C. Such a method always takes three arguments, which will be enforced if it is an XS method. =back =head2 Overloading Constants For some applications, the Perl parser mangles constants too much. It is possible to hook into this process via C and C functions. These functions take a hash as an argument. The recognized keys of this hash are: =over 8 =item integer to overload integer constants, =item float to overload floating point constants, =item binary to overload octal and hexadecimal constants, =item q to overload C-quoted strings, constant pieces of C- and C-quoted strings and here-documents, =item qr to overload constant pieces of regular expressions. =back The corresponding values are references to functions which take three arguments: the first one is the I string form of the constant, the second one is how Perl interprets this constant, the third one is how the constant is used. Note that the initial string form does not contain string delimiters, and has backslashes in backslash-delimiter combinations stripped (thus the value of delimiter is not relevant for processing of this string). The return value of this function is how this constant is going to be interpreted by Perl. The third argument is undefined unless for overloaded C- and C- constants, it is C in single-quote context (comes from strings, regular expressions, and single-quote HERE documents), it is C for arguments of C/C operators, it is C for right-hand side of C-operator, and it is C otherwise. Since an expression C<"ab$cd,,"> is just a shortcut for C<'ab' . $cd . ',,'>, it is expected that overloaded constant strings are equipped with reasonable overloaded catenation operator, otherwise absurd results will result. Similarly, negative numbers are considered as negations of positive constants. Note that it is probably meaningless to call the functions overload::constant() and overload::remove_constant() from anywhere but import() and unimport() methods. From these methods they may be called as sub import { shift; return unless @_; die "unknown import: @_" unless @_ == 1 and $_[0] eq ':constant'; overload::constant integer => sub {Math::BigInt->new(shift)}; } =head1 IMPLEMENTATION What follows is subject to change RSN. The table of methods for all operations is cached in magic for the symbol table hash for the package. The cache is invalidated during processing of C, C, new function definitions, and changes in @ISA. (Every SVish thing has a magic queue, and magic is an entry in that queue. This is how a single variable may participate in multiple forms of magic simultaneously. For instance, environment variables regularly have two forms at once: their %ENV magic and their taint magic. However, the magic which implements overloading is applied to the stashes, which are rarely used directly, thus should not slow down Perl.) If a package uses overload, it carries a special flag. This flag is also set when new functions are defined or @ISA is modified. There will be a slight speed penalty on the very first operation thereafter that supports overloading, while the overload tables are updated. If there is no overloading present, the flag is turned off. Thus the only speed penalty thereafter is the checking of this flag. It is expected that arguments to methods that are not explicitly supposed to be changed are constant (but this is not enforced). =head1 COOKBOOK Please add examples to what follows! =head2 Two-face Scalars Put this in F in your Perl library directory: package two_face; # Scalars with separate string and # numeric values. sub new { my $p = shift; bless [@_], $p } use overload '""' => \&str, '0+' => \&num, fallback => 1; sub num {shift->[1]} sub str {shift->[0]} Use it as follows: require two_face; my $seven = two_face->new("vii", 7); printf "seven=$seven, seven=%d, eight=%d\n", $seven, $seven+1; print "seven contains 'i'\n" if $seven =~ /i/; (The second line creates a scalar which has both a string value, and a numeric value.) This prints: seven=vii, seven=7, eight=8 seven contains 'i' =head2 Two-face References Suppose you want to create an object which is accessible as both an array reference and a hash reference. package two_refs; use overload '%{}' => \&gethash, '@{}' => sub { $ {shift()} }; sub new { my $p = shift; bless \ [@_], $p; } sub gethash { my %h; my $self = shift; tie %h, ref $self, $self; \%h; } sub TIEHASH { my $p = shift; bless \ shift, $p } my %fields; my $i = 0; $fields{$_} = $i++ foreach qw{zero one two three}; sub STORE { my $self = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $$self->[$key] = shift; } sub FETCH { my $self = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $$self->[$key]; } Now one can access an object using both the array and hash syntax: my $bar = two_refs->new(3,4,5,6); $bar->[2] = 11; $bar->{two} == 11 or die 'bad hash fetch'; Note several important features of this example. First of all, the I type of $bar is a scalar reference, and we do not overload the scalar dereference. Thus we can get the I non-overloaded contents of $bar by just using C<$$bar> (what we do in functions which overload dereference). Similarly, the object returned by the TIEHASH() method is a scalar reference. Second, we create a new tied hash each time the hash syntax is used. This allows us not to worry about a possibility of a reference loop, which would lead to a memory leak. Both these problems can be cured. Say, if we want to overload hash dereference on a reference to an object which is I as a hash itself, the only problem one has to circumvent is how to access this I hash (as opposed to the I hash exhibited by the overloaded dereference operator). Here is one possible fetching routine: sub access_hash { my ($self, $key) = (shift, shift); my $class = ref $self; bless $self, 'overload::dummy'; # Disable overloading of %{} my $out = $self->{$key}; bless $self, $class; # Restore overloading $out; } To remove creation of the tied hash on each access, one may an extra level of indirection which allows a non-circular structure of references: package two_refs1; use overload '%{}' => sub { ${shift()}->[1] }, '@{}' => sub { ${shift()}->[0] }; sub new { my $p = shift; my $a = [@_]; my %h; tie %h, $p, $a; bless \ [$a, \%h], $p; } sub gethash { my %h; my $self = shift; tie %h, ref $self, $self; \%h; } sub TIEHASH { my $p = shift; bless \ shift, $p } my %fields; my $i = 0; $fields{$_} = $i++ foreach qw{zero one two three}; sub STORE { my $a = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $a->[$key] = shift; } sub FETCH { my $a = ${shift()}; my $key = $fields{shift()}; defined $key or die "Out of band access"; $a->[$key]; } Now if $baz is overloaded like this, then C<$baz> is a reference to a reference to the intermediate array, which keeps a reference to an actual array, and the access hash. The tie()ing object for the access hash is a reference to a reference to the actual array, so =over =item * There are no loops of references. =item * Both "objects" which are blessed into the class C are references to a reference to an array, thus references to a I. Thus the accessor expression C<$$foo-E[$ind]> involves no overloaded operations. =back =head2 Symbolic Calculator Put this in F in your Perl library directory: package symbolic; # Primitive symbolic calculator use overload nomethod => \&wrap; sub new { shift; bless ['n', @_] } sub wrap { my ($obj, $other, $inv, $meth) = @_; ($obj, $other) = ($other, $obj) if $inv; bless [$meth, $obj, $other]; } This module is very unusual as overloaded modules go: it does not provide any usual overloaded operators, instead it provides an implementation for C>. In this example the C subroutine returns an object which encapsulates operations done over the objects: C<< symbolic->new(3) >> contains C<['n', 3]>, C<< 2 + symbolic->new(3) >> contains C<['+', 2, ['n', 3]]>. Here is an example of the script which "calculates" the side of circumscribed octagon using the above package: require symbolic; my $iter = 1; # 2**($iter+2) = 8 my $side = symbolic->new(1); my $cnt = $iter; while ($cnt--) { $side = (sqrt(1 + $side**2) - 1)/$side; } print "OK\n"; The value of $side is ['/', ['-', ['sqrt', ['+', 1, ['**', ['n', 1], 2]], undef], 1], ['n', 1]] Note that while we obtained this value using a nice little script, there is no simple way to I this value. In fact this value may be inspected in debugger (see L), but only if C Bption is set, and not via C

command. If one attempts to print this value, then the overloaded operator C<""> will be called, which will call C operator. The result of this operator will be stringified again, but this result is again of type C, which will lead to an infinite loop. Add a pretty-printer method to the module F: sub pretty { my ($meth, $a, $b) = @{+shift}; $a = 'u' unless defined $a; $b = 'u' unless defined $b; $a = $a->pretty if ref $a; $b = $b->pretty if ref $b; "[$meth $a $b]"; } Now one can finish the script by print "side = ", $side->pretty, "\n"; The method C is doing object-to-string conversion, so it is natural to overload the operator C<""> using this method. However, inside such a method it is not necessary to pretty-print the I $a and $b of an object. In the above subroutine C<"[$meth $a $b]"> is a catenation of some strings and components $a and $b. If these components use overloading, the catenation operator will look for an overloaded operator C<.>; if not present, it will look for an overloaded operator C<"">. Thus it is enough to use use overload nomethod => \&wrap, '""' => \&str; sub str { my ($meth, $a, $b) = @{+shift}; $a = 'u' unless defined $a; $b = 'u' unless defined $b; "[$meth $a $b]"; } Now one can change the last line of the script to print "side = $side\n"; which outputs side = [/ [- [sqrt [+ 1 [** [n 1 u] 2]] u] 1] [n 1 u]] and one can inspect the value in debugger using all the possible methods. Something is still amiss: consider the loop variable $cnt of the script. It was a number, not an object. We cannot make this value of type C, since then the loop will not terminate. Indeed, to terminate the cycle, the $cnt should become false. However, the operator C for checking falsity is overloaded (this time via overloaded C<"">), and returns a long string, thus any object of type C is true. To overcome this, we need a way to compare an object to 0. In fact, it is easier to write a numeric conversion routine. Here is the text of F with such a routine added (and slightly modified str()): package symbolic; # Primitive symbolic calculator use overload nomethod => \&wrap, '""' => \&str, '0+' => \# sub new { shift; bless ['n', @_] } sub wrap { my ($obj, $other, $inv, $meth) = @_; ($obj, $other) = ($other, $obj) if $inv; bless [$meth, $obj, $other]; } sub str { my ($meth, $a, $b) = @{+shift}; $a = 'u' unless defined $a; if (defined $b) { "[$meth $a $b]"; } else { "[$meth $a]"; } } my %subr = ( n => sub {$_[0]}, sqrt => sub {sqrt $_[0]}, '-' => sub {shift() - shift()}, '+' => sub {shift() + shift()}, '/' => sub {shift() / shift()}, '*' => sub {shift() * shift()}, '**' => sub {shift() ** shift()}, ); sub num { my ($meth, $a, $b) = @{+shift}; my $subr = $subr{$meth} or die "Do not know how to ($meth) in symbolic"; $a = $a->num if ref $a eq __PACKAGE__; $b = $b->num if ref $b eq __PACKAGE__; $subr->($a,$b); } All the work of numeric conversion is done in %subr and num(). Of course, %subr is not complete, it contains only operators used in the example below. Here is the extra-credit question: why do we need an explicit recursion in num()? (Answer is at the end of this section.) Use this module like this: require symbolic; my $iter = symbolic->new(2); # 16-gon my $side = symbolic->new(1); my $cnt = $iter; while ($cnt) { $cnt = $cnt - 1; # Mutator '--' not implemented $side = (sqrt(1 + $side**2) - 1)/$side; } printf "%s=%f\n", $side, $side; printf "pi=%f\n", $side*(2**($iter+2)); It prints (without so many line breaks) [/ [- [sqrt [+ 1 [** [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]] 2]]] 1] [/ [- [sqrt [+ 1 [** [n 1] 2]]] 1] [n 1]]]=0.198912 pi=3.182598 The above module is very primitive. It does not implement mutator methods (C<++>, C<-=> and so on), does not do deep copying (not required without mutators!), and implements only those arithmetic operations which are used in the example. To implement most arithmetic operations is easy; one should just use the tables of operations, and change the code which fills %subr to my %subr = ( 'n' => sub {$_[0]} ); foreach my $op (split " ", $overload::ops{with_assign}) { $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}"; } my @bins = qw(binary 3way_comparison num_comparison str_comparison); foreach my $op (split " ", "@overload::ops{ @bins }") { $subr{$op} = eval "sub {shift() $op shift()}"; } foreach my $op (split " ", "@overload::ops{qw(unary func)}") { print "defining '$op'\n"; $subr{$op} = eval "sub {$op shift()}"; } Since subroutines implementing assignment operators are not required to modify their operands (see L above), we do not need anything special to make C<+=> and friends work, besides adding these operators to %subr and defining a copy constructor (needed since Perl has no way to know that the implementation of C<'+='> does not mutate the argument - see L). To implement a copy constructor, add C<< '=' => \&cpy >> to C line, and code (this code assumes that mutators change things one level deep only, so recursive copying is not needed): sub cpy { my $self = shift; bless [@$self], ref $self; } To make C<++> and C<--> work, we need to implement actual mutators, either directly, or in C. We continue to do things inside C, thus add if ($meth eq '++' or $meth eq '--') { @$obj = ($meth, (bless [@$obj]), 1); # Avoid circular reference return $obj; } after the first line of wrap(). This is not a most effective implementation, one may consider sub inc { $_[0] = bless ['++', shift, 1]; } instead. As a final remark, note that one can fill %subr by my %subr = ( 'n' => sub {$_[0]} ); foreach my $op (split " ", $overload::ops{with_assign}) { $subr{$op} = $subr{"$op="} = eval "sub {shift() $op shift()}"; } my @bins = qw(binary 3way_comparison num_comparison str_comparison); foreach my $op (split " ", "@overload::ops{ @bins }") { $subr{$op} = eval "sub {shift() $op shift()}"; } foreach my $op (split " ", "@overload::ops{qw(unary func)}") { $subr{$op} = eval "sub {$op shift()}"; } $subr{'++'} = $subr{'+'}; $subr{'--'} = $subr{'-'}; This finishes implementation of a primitive symbolic calculator in 50 lines of Perl code. Since the numeric values of subexpressions are not cached, the calculator is very slow. Here is the answer for the exercise: In the case of str(), we need no explicit recursion since the overloaded C<.>-operator will fall back to an existing overloaded operator C<"">. Overloaded arithmetic operators I fall back to numeric conversion if C is not explicitly requested. Thus without an explicit recursion num() would convert C<['+', $a, $b]> to C<$a + $b>, which would just rebuild the argument of num(). If you wonder why defaults for conversion are different for str() and num(), note how easy it was to write the symbolic calculator. This simplicity is due to an appropriate choice of defaults. One extra note: due to the explicit recursion num() is more fragile than sym(): we need to explicitly check for the type of $a and $b. If components $a and $b happen to be of some related type, this may lead to problems. =head2 I Symbolic Calculator One may wonder why we call the above calculator symbolic. The reason is that the actual calculation of the value of expression is postponed until the value is I. To see it in action, add a method sub STORE { my $obj = shift; $#$obj = 1; @$obj->[0,1] = ('=', shift); } to the package C. After this change one can do my $a = symbolic->new(3); my $b = symbolic->new(4); my $c = sqrt($a**2 + $b**2); and the numeric value of $c becomes 5. However, after calling $a->STORE(12); $b->STORE(5); the numeric value of $c becomes 13. There is no doubt now that the module symbolic provides a I calculator indeed. To hide the rough edges under the hood, provide a tie()d interface to the package C. Add methods sub TIESCALAR { my $pack = shift; $pack->new(@_) } sub FETCH { shift } sub nop { } # Around a bug (the bug, fixed in Perl 5.14, is described in L<"BUGS">). One can use this new interface as tie $a, 'symbolic', 3; tie $b, 'symbolic', 4; $a->nop; $b->nop; # Around a bug my $c = sqrt($a**2 + $b**2); Now numeric value of $c is 5. After C<$a = 12; $b = 5> the numeric value of $c becomes 13. To insulate the user of the module add a method sub vars { my $p = shift; tie($_, $p), $_->nop foreach @_; } Now my ($a, $b); symbolic->vars($a, $b); my $c = sqrt($a**2 + $b**2); $a = 3; $b = 4; printf "c5 %s=%f\n", $c, $c; $a = 12; $b = 5; printf "c13 %s=%f\n", $c, $c; shows that the numeric value of $c follows changes to the values of $a and $b. =head1 AUTHOR Ilya Zakharevich EFE. =head1 SEE ALSO The C pragma can be used to enable or disable overloaded operations within a lexical scope - see L. =head1 DIAGNOSTICS When Perl is run with the B<-Do> switch or its equivalent, overloading induces diagnostic messages. Using the C command of Perl debugger (see L) one can deduce which operations are overloaded (and which ancestor triggers this overloading). Say, if C is overloaded, then the method C<(eq> is shown by debugger. The method C<()> corresponds to the C key (in fact a presence of this method shows that this package has overloading enabled, and it is what is used by the C function of module C). The module might issue the following warnings: =over 4 =item Odd number of arguments for overload::constant (W) The call to overload::constant contained an odd number of arguments. The arguments should come in pairs. =item '%s' is not an overloadable type (W) You tried to overload a constant type the overload package is unaware of. =item '%s' is not a code reference (W) The second (fourth, sixth, ...) argument of overload::constant needs to be a code reference. Either an anonymous subroutine, or a reference to a subroutine. =item overload arg '%s' is invalid (W) C was passed an argument it did not recognize. Did you mistype an operator? =back =head1 BUGS AND PITFALLS =over =item * A pitfall when fallback is TRUE and Perl resorts to a built-in implementation of an operator is that some operators have more than one semantic, for example C<|>: use overload '0+' => sub { $_[0]->{n}; }, fallback => 1; my $x = bless { n => 4 }, "main"; my $y = bless { n => 8 }, "main"; print $x | $y, "\n"; You might expect this to output "12". In fact, it prints "<": the ASCII result of treating "|" as a bitwise string operator - that is, the result of treating the operands as the strings "4" and "8" rather than numbers. The fact that numify (C<0+>) is implemented but stringify (C<"">) isn't makes no difference since the latter is simply autogenerated from the former. The only way to change this is to provide your own subroutine for C<'|'>. =item * Magic autogeneration increases the potential for inadvertently creating self-referential structures. Currently Perl will not free self-referential structures until cycles are explicitly broken. For example, use overload '+' => 'add'; sub add { bless [ \$_[0], \$_[1] ] }; is asking for trouble, since $obj += $y; will effectively become $obj = add($obj, $y, undef); with the same result as $obj = [\$obj, \$foo]; Even if no I assignment-variants of operators are present in the script, they may be generated by the optimizer. For example, "obj = $obj\n" may be optimized to my $tmp = 'obj = ' . $obj; $tmp .= "\n"; =item * The symbol table is filled with names looking like line-noise. =item * This bug was fixed in Perl 5.18, but may still trip you up if you are using older versions: For the purpose of inheritance every overloaded package behaves as if C is present (possibly undefined). This may create interesting effects if some package is not overloaded, but inherits from two overloaded packages. =item * Before Perl 5.14, the relation between overloading and tie()ing was broken. Overloading was triggered or not based on the I class of the tie()d variable. This happened because the presence of overloading was checked too early, before any tie()d access was attempted. If the class of the value FETCH()ed from the tied variable does not change, a simple workaround for code that is to run on older Perl versions is to access the value (via C<() = $foo> or some such) immediately after tie()ing, so that after this call the I class coincides with the current one. =item * Barewords are not covered by overloaded string constants. =item * The range operator C<..> cannot be overloaded. =back =cut # ex: set ts=8 sts=4 sw=4 et: FILEa0c659a5/overloading.pmpackage overloading; use warnings; our $VERSION = '0.02'; my $HINT_NO_AMAGIC = 0x01000000; # see perl.h require 5.010001; sub _ops_to_nums { require overload::numbers; map { exists $overload::numbers::names{"($_"} ? $overload::numbers::names{"($_"} : do { require Carp; Carp::croak("'$_' is not a valid overload") } } @_; } sub import { my ( $class, @ops ) = @_; if ( @ops ) { if ( $^H{overloading} ) { vec($^H{overloading} , $_, 1) = 0 for _ops_to_nums(@ops); } if ( $^H{overloading} !~ /[^\0]/ ) { delete $^H{overloading}; $^H &= ~$HINT_NO_AMAGIC; } } else { delete $^H{overloading}; $^H &= ~$HINT_NO_AMAGIC; } } sub unimport { my ( $class, @ops ) = @_; if ( exists $^H{overloading} or not $^H & $HINT_NO_AMAGIC ) { if ( @ops ) { vec($^H{overloading} ||= '', $_, 1) = 1 for _ops_to_nums(@ops); } else { delete $^H{overloading}; } } $^H |= $HINT_NO_AMAGIC; } 1; __END__ =head1 NAME overloading - perl pragma to lexically control overloading =head1 SYNOPSIS { no overloading; my $str = "$object"; # doesn't call stringification overload } # it's lexical, so this stringifies: warn "$object"; # it can be enabled per op no overloading qw(""); warn "$object"; # and also reenabled use overloading; =head1 DESCRIPTION This pragma allows you to lexically disable or enable overloading. =over 6 =item C Disables overloading entirely in the current lexical scope. =item C Disables only specific overloads in the current lexical scope. =item C Reenables overloading in the current lexical scope. =item C Reenables overloading only for specific ops in the current lexical scope. =back =cut FILE7e124be9/parent.pm package parent; use strict; our $VERSION = '0.241'; sub import { my $class = shift; my $inheritor = caller(0); if ( @_ and $_[0] eq '-norequire' ) { shift @_; } else { for ( my @filename = @_ ) { s{::|'}{/}g; require "$_.pm"; # dies if the file is not found } } { no strict 'refs'; push @{"$inheritor\::ISA"}, @_; # dies if a loop is detected }; }; 1; __END__ =encoding utf8 =head1 NAME parent - Establish an ISA relationship with base classes at compile time =head1 SYNOPSIS package Baz; use parent qw(Foo Bar); =head1 DESCRIPTION Allows you to both load one or more modules, while setting up inheritance from those modules at the same time. Mostly similar in effect to package Baz; BEGIN { require Foo; require Bar; push @ISA, qw(Foo Bar); } By default, every base class needs to live in a file of its own. If you want to have a subclass and its parent class in the same file, you can tell C not to load any modules by using the C<-norequire> switch: package Foo; sub exclaim { "I CAN HAS PERL" } package DoesNotLoadFooBar; use parent -norequire, 'Foo', 'Bar'; # will not go looking for Foo.pm or Bar.pm This is equivalent to the following code: package Foo; sub exclaim { "I CAN HAS PERL" } package DoesNotLoadFooBar; push @DoesNotLoadFooBar::ISA, 'Foo', 'Bar'; This is also helpful for the case where a package lives within a differently named file: package MyHash; use Tie::Hash; use parent -norequire, 'Tie::StdHash'; This is equivalent to the following code: package MyHash; require Tie::Hash; push @ISA, 'Tie::StdHash'; If you want to load a subclass from a file that C would not consider an eligible filename (that is, it does not end in either C<.pm> or C<.pmc>), use the following code: package MySecondPlugin; require './plugins/custom.plugin'; # contains Plugin::Custom use parent -norequire, 'Plugin::Custom'; =head1 HISTORY This module was forked from L to remove the cruft that had accumulated in it. =head1 CAVEATS =head1 SEE ALSO =over 4 =item L =item L A fork of L that provides version checking in parent class modules. =back =head1 AUTHORS AND CONTRIBUTORS Rafaël Garcia-Suarez, Bart Lateur, Max Maischein, Anno Siegel, Michael Schwern =head1 MAINTAINER Max Maischein C< corion@cpan.org > Copyright (c) 2007-2017 Max Maischein C<< >> Based on the idea of C, which was introduced with Perl 5.004_04. =head1 LICENSE This module is released under the same terms as Perl itself. =cut FILEc6a146cd/strict.pmpackage strict; $strict::VERSION = "1.12"; my ( %bitmask, %explicit_bitmask ); BEGIN { # Verify that we're called correctly so that strictures will work. # Can't use Carp, since Carp uses us! # see also warnings.pm. die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); %bitmask = ( refs => 0x00000002, subs => 0x00000200, vars => 0x00000400, ); %explicit_bitmask = ( refs => 0x00000020, subs => 0x00000040, vars => 0x00000080, ); my $bits = 0; $bits |= $_ for values %bitmask; my $inline_all_bits = $bits; *all_bits = sub () { $inline_all_bits }; $bits = 0; $bits |= $_ for values %explicit_bitmask; my $inline_all_explicit_bits = $bits; *all_explicit_bits = sub () { $inline_all_explicit_bits }; } sub bits { my $bits = 0; my @wrong; foreach my $s (@_) { if (exists $bitmask{$s}) { $^H |= $explicit_bitmask{$s}; $bits |= $bitmask{$s}; } else { push @wrong, $s; } } if (@wrong) { require Carp; Carp::croak("Unknown 'strict' tag(s) '@wrong'"); } $bits; } sub import { shift; $^H |= @_ ? &bits : all_bits | all_explicit_bits; } sub unimport { shift; if (@_) { $^H &= ~&bits; } else { $^H &= ~all_bits; $^H |= all_explicit_bits; } } 1; __END__ =head1 NAME strict - Perl pragma to restrict unsafe constructs =head1 SYNOPSIS use strict; use strict "vars"; use strict "refs"; use strict "subs"; use strict; no strict "vars"; =head1 DESCRIPTION The C pragma disables certain Perl expressions that could behave unexpectedly or are difficult to debug, turning them into errors. The effect of this pragma is limited to the current file or scope block. If no import list is supplied, all possible restrictions are assumed. (This is the safest mode to operate in, but is sometimes too strict for casual programming.) Currently, there are three possible things to be strict about: "subs", "vars", and "refs". =over 6 =item C This generates a runtime error if you use symbolic references (see L). use strict 'refs'; $ref = \$foo; print $$ref; # ok $ref = "foo"; print $$ref; # runtime error; normally ok $file = "STDOUT"; print $file "Hi!"; # error; note: no comma after $file There is one exception to this rule: $bar = \&{'foo'}; &$bar; is allowed so that C would not break under stricture. =item C This generates a compile-time error if you access a variable that was neither explicitly declared (using any of C, C, C, or C) nor fully qualified. (Because this is to avoid variable suicide problems and subtle dynamic scoping issues, a merely C variable isn't good enough.) See L, L, L, L, and L. use strict 'vars'; $X::foo = 1; # ok, fully qualified my $foo = 10; # ok, my() var local $baz = 9; # blows up, $baz not declared before package Cinna; our $bar; # Declares $bar in current package $bar = 'HgS'; # ok, global declared via pragma The local() generated a compile-time error because you just touched a global name without fully qualifying it. Because of their special use by sort(), the variables $a and $b are exempted from this check. =item C This disables the poetry optimization, generating a compile-time error if you try to use a bareword identifier that's not a subroutine, unless it is a simple identifier (no colons) and that it appears in curly braces, on the left hand side of the C<< => >> symbol, or has the unary minus operator applied to it. use strict 'subs'; $SIG{PIPE} = Plumber; # blows up $SIG{PIPE} = "Plumber"; # fine: quoted string is always ok $SIG{PIPE} = \&Plumber; # preferred form =back See L. =head1 HISTORY C, with Perl 5.6.1, erroneously permitted to use an unquoted compound identifier (e.g. C) as a hash key (before C<< => >> or inside curlies), but without forcing it always to a literal string. Starting with Perl 5.8.1 strict is strict about its restrictions: if unknown restrictions are used, the strict pragma will abort with Unknown 'strict' tag(s) '...' As of version 1.04 (Perl 5.10), strict verifies that it is used as "strict" to avoid the dreaded Strict trap on case insensitive file systems. =cut FILE24b540f9/utf8.pm*package utf8; use strict; use warnings; our $hint_bits = 0x00800000; our $VERSION = '1.25'; our $AUTOLOAD; sub import { $^H |= $hint_bits; } sub unimport { $^H &= ~$hint_bits; } sub AUTOLOAD { goto &$AUTOLOAD if defined &$AUTOLOAD; require Carp; Carp::croak("Undefined subroutine $AUTOLOAD called"); } 1; __END__ =head1 NAME utf8 - Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source code =head1 SYNOPSIS use utf8; no utf8; # Convert the internal representation of a Perl scalar to/from UTF-8. $num_octets = utf8::upgrade($string); $success = utf8::downgrade($string[, $fail_ok]); # Change each character of a Perl scalar to/from a series of # characters that represent the UTF-8 bytes of each original character. utf8::encode($string); # "\x{100}" becomes "\xc4\x80" utf8::decode($string); # "\xc4\x80" becomes "\x{100}" # Convert a code point from the platform native character set to # Unicode, and vice-versa. $unicode = utf8::native_to_unicode(ord('A')); # returns 65 on both # ASCII and EBCDIC # platforms $native = utf8::unicode_to_native(65); # returns 65 on ASCII # platforms; 193 on # EBCDIC $flag = utf8::is_utf8($string); # since Perl 5.8.1 $flag = utf8::valid($string); =head1 DESCRIPTION The C pragma tells the Perl parser to allow UTF-8 in the program text in the current lexical scope. The C pragma tells Perl to switch back to treating the source text as literal bytes in the current lexical scope. (On EBCDIC platforms, technically it is allowing UTF-EBCDIC, and not UTF-8, but this distinction is academic, so in this document the term UTF-8 is used to mean both). B The utility functions described below are directly usable without C. Because it is not possible to reliably tell UTF-8 from native 8 bit encodings, you need either a Byte Order Mark at the beginning of your source code, or C, to instruct perl. When UTF-8 becomes the standard source format, this pragma will effectively become a no-op. See also the effects of the C<-C> switch and its cousin, the C environment variable, in L. Enabling the C pragma has the following effect: =over 4 =item * Bytes in the source text that are not in the ASCII character set will be treated as being part of a literal UTF-8 sequence. This includes most literals such as identifier names, string constants, and constant regular expression patterns. =back Note that if you have non-ASCII, non-UTF-8 bytes in your script (for example embedded Latin-1 in your string literals), C will be unhappy. If you want to have such bytes under C, you can disable this pragma until the end the block (or file, if at top level) by C. =head2 Utility functions The following functions are defined in the C package by the Perl core. You do not need to say C to use these and in fact you should not say that unless you really want to have UTF-8 source code. =over 4 =item * C<$num_octets = utf8::upgrade($string)> (Since Perl v5.8.0) Converts in-place the internal representation of the string from an octet sequence in the native encoding (Latin-1 or EBCDIC) to UTF-8. The logical character sequence itself is unchanged. If I<$string> is already upgraded, then this is a no-op. Returns the number of octets necessary to represent the string as UTF-8. Since Perl v5.38, if C<$string> is C no action is taken; prior to that, it would be converted to be defined and zero-length. If your code needs to be compatible with versions of perl without C, you can force Unicode semantics on a given string: # force unicode semantics for $string without the # "unicode_strings" feature utf8::upgrade($string); For example: # without explicit or implicit use feature 'unicode_strings' my $x = "\xDF"; # LATIN SMALL LETTER SHARP S $x =~ /ss/i; # won't match my $y = uc($x); # won't convert utf8::upgrade($x); $x =~ /ss/i; # matches my $z = uc($x); # converts to "SS" B; use L instead. =item * C<$success = utf8::downgrade($string[, $fail_ok])> (Since Perl v5.8.0) Converts in-place the internal representation of the string from UTF-8 to the equivalent octet sequence in the native encoding (Latin-1 or EBCDIC). The logical character sequence itself is unchanged. If I<$string> is already stored as native 8 bit, then this is a no-op. Can be used to make sure that the UTF-8 flag is off, e.g. when you want to make sure that the substr() or length() function works with the usually faster byte algorithm. Fails if the original UTF-8 sequence cannot be represented in the native 8 bit encoding. On failure dies or, if the value of I<$fail_ok> is true, returns false. Returns true on success. If your code expects an octet sequence this can be used to validate that you've received one: # throw an exception if not representable as octets utf8::downgrade($string) # or do your own error handling utf8::downgrade($string, 1) or die "string must be octets"; B; use L instead. =item * C (Since Perl v5.8.0) Converts in-place the character sequence to the corresponding octet sequence in Perl's extended UTF-8. That is, every (possibly wide) character gets replaced with a sequence of one or more characters that represent the individual UTF-8 bytes of the character. The UTF8 flag is turned off. Returns nothing. my $x = "\x{100}"; # $x contains one character, with ord 0x100 utf8::encode($x); # $x contains two characters, with ords (on # ASCII platforms) 0xc4 and 0x80. On EBCDIC # 1047, this would instead be 0x8C and 0x41. Similar to: use Encode; $x = Encode::encode("utf8", $x); B; use L instead. =item * C<$success = utf8::decode($string)> (Since Perl v5.8.0) Attempts to convert in-place the octet sequence encoded in Perl's extended UTF-8 to the corresponding character sequence. That is, it replaces each sequence of characters in the string whose ords represent a valid (extended) UTF-8 byte sequence, with the corresponding single character. The UTF-8 flag is turned on only if the source string contains multiple-byte UTF-8 characters. If I<$string> is invalid as extended UTF-8, returns false; otherwise returns true. my $x = "\xc4\x80"; # $x contains two characters, with ords # 0xc4 and 0x80 utf8::decode($x); # On ASCII platforms, $x contains one char, # with ord 0x100. Since these bytes aren't # legal UTF-EBCDIC, on EBCDIC platforms, $x is # unchanged and the function returns FALSE. my $y = "\xc3\x83\xc2\xab"; This has been encoded twice; this # example is only for ASCII platforms utf8::decode($y); # Converts $y to \xc3\xab, returns TRUE; utf8::decode($y); # Further converts to \xeb, returns TRUE; utf8::decode($y); # Returns FALSE, leaves $y unchanged B; use L instead. =item * C<$unicode = utf8::native_to_unicode($code_point)> (Since Perl v5.8.0) This takes an unsigned integer (which represents the ordinal number of a character (or a code point) on the platform the program is being run on) and returns its Unicode equivalent value. Since ASCII platforms natively use the Unicode code points, this function returns its input on them. On EBCDIC platforms it converts from EBCDIC to Unicode. A meaningless value will currently be returned if the input is not an unsigned integer. Since Perl v5.22.0, calls to this function are optimized out on ASCII platforms, so there is no performance hit in using it there. =item * C<$native = utf8::unicode_to_native($code_point)> (Since Perl v5.8.0) This is the inverse of C, converting the other direction. Again, on ASCII platforms, this returns its input, but on EBCDIC platforms it will find the native platform code point, given any Unicode one. A meaningless value will currently be returned if the input is not an unsigned integer. Since Perl v5.22.0, calls to this function are optimized out on ASCII platforms, so there is no performance hit in using it there. =item * C<$flag = utf8::is_utf8($string)> (Since Perl 5.8.1) Test whether I<$string> is marked internally as encoded in UTF-8. Functionally the same as C. Typically only necessary for debugging and testing, if you need to dump the internals of an SV, L Dump() provides more detail in a compact form. If you still think you need this outside of debugging, testing or dealing with filenames, you should probably read L and L. Don't use this flag as a marker to distinguish character and binary data: that should be decided for each variable when you write your code. To force unicode semantics in code portable to perl 5.8 and 5.10, call C unconditionally. =item * C<$flag = utf8::valid($string)> [INTERNAL] Test whether I<$string> is in a consistent state regarding UTF-8. Will return true if it is well-formed Perl extended UTF-8 and has the UTF-8 flag on B if I<$string> is held as bytes (both these states are 'consistent'). The main reason for this routine is to allow Perl's test suite to check that operations have left strings in a consistent state. =back C is like C, but the UTF8 flag is cleared. See L, and the C API functions C>, C>, C>, and C>, which are wrapped by the Perl functions C, C, C and C. Also, the functions C, C, C, C, C, and C are actually internal, and thus always available, without a C statement. =head1 BUGS Some filesystems may not support UTF-8 file names, or they may be supported incompatibly with Perl. Therefore UTF-8 names that are visible to the filesystem, such as module names may not work. =head1 SEE ALSO L, L, L, L, L =cut FILEab7f7a02/vars.pm package vars; use 5.006; our $VERSION = '1.05'; use warnings::register; use strict qw(vars subs); sub import { my $callpack = caller; my (undef, @imports) = @_; my ($sym, $ch); foreach (@imports) { if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) { if ($sym =~ /\W/) { # time for a more-detailed check-up if ($sym =~ /^\w+[[{].*[]}]$/) { require Carp; Carp::croak("Can't declare individual elements of hash or array"); } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) { warnings::warn("No need to declare built-in vars"); } elsif (($^H & strict::bits('vars'))) { require Carp; Carp::croak("'$_' is not a valid variable name under strict vars"); } } $sym = "${callpack}::$sym" unless $sym =~ /::/; *$sym = ( $ch eq "\$" ? \$$sym : $ch eq "\@" ? \@$sym : $ch eq "\%" ? \%$sym : $ch eq "\*" ? \*$sym : $ch eq "\&" ? \&$sym : do { require Carp; Carp::croak("'$_' is not a valid variable name"); }); } else { require Carp; Carp::croak("'$_' is not a valid variable name"); } } }; 1; __END__ =head1 NAME vars - Perl pragma to predeclare global variable names =head1 SYNOPSIS use vars qw($frob @mung %seen); =head1 DESCRIPTION NOTE: For use with variables in the current package for a single scope, the functionality provided by this pragma has been superseded by C declarations, available in Perl v5.6.0 or later, and use of this pragma is discouraged. See L. This pragma will predeclare all the variables whose names are in the list, allowing you to use them under C, and disabling any typo warnings for them. Unlike pragmas that affect the C<$^H> hints variable, the C and C declarations are not lexically scoped to the block they appear in: they affect the entire package in which they appear. It is not possible to rescind these declarations with C or C. Packages such as the B and B that delay loading of subroutines within packages can create problems with package lexicals defined using C. While the B pragma cannot duplicate the effect of package lexicals (total transparency outside of the package), it can act as an acceptable substitute by pre-declaring global symbols, ensuring their availability to the later-loaded routines. See L. =cut FILE61bd46fa/warnings.pm# -*- mode: Perl; buffer-read-only: t -*- # !!!!!!! DO NOT EDIT THIS FILE !!!!!!! # This file is built by regen/warnings.pl. # Any changes made here will be lost! package warnings; our $VERSION = "1.65"; # Verify that we're called correctly so that warnings will work. # Can't use Carp, since Carp uses us! # String regexps because constant folding = smaller optree = less memory vs regexp literal # see also strict.pm. die sprintf "Incorrect use of pragma '%s' at %s line %d.\n", __PACKAGE__, +(caller)[1,2] if __FILE__ !~ ( '(?x) \b '.__PACKAGE__.' \.pmc? \z' ) && __FILE__ =~ ( '(?x) \b (?i:'.__PACKAGE__.') \.pmc? \z' ); our %Offsets = ( # Warnings Categories added in Perl 5.008 'all' => 0, 'closure' => 2, 'deprecated' => 4, 'exiting' => 6, 'glob' => 8, 'io' => 10, 'closed' => 12, 'exec' => 14, 'layer' => 16, 'newline' => 18, 'pipe' => 20, 'unopened' => 22, 'misc' => 24, 'numeric' => 26, 'once' => 28, 'overflow' => 30, 'pack' => 32, 'portable' => 34, 'recursion' => 36, 'redefine' => 38, 'regexp' => 40, 'severe' => 42, 'debugging' => 44, 'inplace' => 46, 'internal' => 48, 'malloc' => 50, 'signal' => 52, 'substr' => 54, 'syntax' => 56, 'ambiguous' => 58, 'bareword' => 60, 'digit' => 62, 'parenthesis' => 64, 'precedence' => 66, 'printf' => 68, 'prototype' => 70, 'qw' => 72, 'reserved' => 74, 'semicolon' => 76, 'taint' => 78, 'threads' => 80, 'uninitialized' => 82, 'unpack' => 84, 'untie' => 86, 'utf8' => 88, 'void' => 90, # Warnings Categories added in Perl 5.011 'imprecision' => 92, 'illegalproto' => 94, # Warnings Categories added in Perl 5.011003 'deprecated::goto_construct' => 96, 'deprecated::unicode_property_name' => 98, # Warnings Categories added in Perl 5.013 'non_unicode' => 100, 'nonchar' => 102, 'surrogate' => 104, # Warnings Categories added in Perl 5.017 'experimental' => 106, 'experimental::regex_sets' => 108, # Warnings Categories added in Perl 5.019 'syscalls' => 110, # Warnings Categories added in Perl 5.021 'experimental::const_attr' => 112, 'experimental::re_strict' => 114, 'experimental::refaliasing' => 116, 'locale' => 118, 'missing' => 120, 'redundant' => 122, # Warnings Categories added in Perl 5.025 'experimental::declared_refs' => 124, # Warnings Categories added in Perl 5.025011 'deprecated::dot_in_inc' => 126, # Warnings Categories added in Perl 5.027 'shadow' => 128, # Warnings Categories added in Perl 5.029 'experimental::private_use' => 130, 'experimental::uniprop_wildcards' => 132, 'experimental::vlb' => 134, # Warnings Categories added in Perl 5.033 'experimental::try' => 136, # Warnings Categories added in Perl 5.035 'experimental::args_array_with_signatures'=> 138, 'experimental::builtin' => 140, 'experimental::defer' => 142, 'experimental::extra_paired_delimiters'=> 144, 'experimental::for_list' => 146, 'scalar' => 148, # Warnings Categories added in Perl 5.035009 'deprecated::version_downgrade' => 150, # Warnings Categories added in Perl 5.03501 'deprecated::delimiter_will_be_paired'=> 152, # Warnings Categories added in Perl 5.037 'experimental::class' => 154, # Warnings Categories added in Perl 5.037009 'deprecated::apostrophe_as_package_separator'=> 156, # Warnings Categories added in Perl 5.03701 'deprecated::smartmatch' => 158, ); our %Bits = ( 'all' => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..79] 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29] 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30] 'closed' => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] 'closure' => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] 'debugging' => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22] 'deprecated' => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x40\x00\x00\x40\x51", # [2,48,49,63,75,76,78,79] 'deprecated::apostrophe_as_package_separator'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [78] 'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [76] 'deprecated::dot_in_inc' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [63] 'deprecated::goto_construct' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [48] 'deprecated::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40", # [79] 'deprecated::unicode_property_name' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [49] 'deprecated::version_downgrade' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [75] 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] 'exec' => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] 'exiting' => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14\x15\x10\x54\x55\x05\x04", # [53,54,56..58,62,65..73,77] 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [69] 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [70] 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [77] 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [56] 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [62] 'experimental::defer' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [71] 'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [72] 'experimental::for_list' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [73] 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [65] 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [57] 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [58] 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [54] 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [68] 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [66] 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [67] 'glob' => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [47] 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [46] 'inplace' => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23] 'internal' => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24] 'io' => "\x00\x54\x55\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [5..11,55] 'layer' => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [59] 'malloc' => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25] 'misc' => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12] 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [60] 'newline' => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [50] 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [51] 'numeric' => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13] 'once' => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14] 'overflow' => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15] 'pack' => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16] 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [32] 'pipe' => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] 'portable' => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17] 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [33] 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [34] 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [35] 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [36] 'recursion' => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18] 'redefine' => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19] 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [61] 'regexp' => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20] 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [37] 'scalar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [74] 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [38] 'severe' => "\x00\x00\x00\x00\x00\x54\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25] 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [64] 'signal' => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26] 'substr' => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27] 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [52] 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\x55\x55\x15\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47] 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [55] 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [39] 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [40] 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [41] 'unopened' => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [42] 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [43] 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x50\x01\x00\x00\x00\x00\x00\x00", # [44,50..52] 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [45] ); our %DeadBits = ( 'all' => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..79] 'ambiguous' => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [29] 'bareword' => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [30] 'closed' => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6] 'closure' => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1] 'debugging' => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [22] 'deprecated' => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x80\x00\x00\x80\xa2", # [2,48,49,63,75,76,78,79] 'deprecated::apostrophe_as_package_separator'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [78] 'deprecated::delimiter_will_be_paired'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [76] 'deprecated::dot_in_inc' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [63] 'deprecated::goto_construct' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [48] 'deprecated::smartmatch' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80", # [79] 'deprecated::unicode_property_name' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [49] 'deprecated::version_downgrade' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [75] 'digit' => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [31] 'exec' => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7] 'exiting' => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3] 'experimental' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x2a\x20\xa8\xaa\x0a\x08", # [53,54,56..58,62,65..73,77] 'experimental::args_array_with_signatures'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [69] 'experimental::builtin' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [70] 'experimental::class' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [77] 'experimental::const_attr' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [56] 'experimental::declared_refs' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [62] 'experimental::defer' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [71] 'experimental::extra_paired_delimiters'=> "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [72] 'experimental::for_list' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [73] 'experimental::private_use' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [65] 'experimental::re_strict' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [57] 'experimental::refaliasing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [58] 'experimental::regex_sets' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [54] 'experimental::try' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [68] 'experimental::uniprop_wildcards' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [66] 'experimental::vlb' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [67] 'glob' => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4] 'illegalproto' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [47] 'imprecision' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [46] 'inplace' => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [23] 'internal' => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [24] 'io' => "\x00\xa8\xaa\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [5..11,55] 'layer' => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8] 'locale' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [59] 'malloc' => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [25] 'misc' => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [12] 'missing' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [60] 'newline' => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9] 'non_unicode' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [50] 'nonchar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [51] 'numeric' => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [13] 'once' => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [14] 'overflow' => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [15] 'pack' => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [16] 'parenthesis' => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [32] 'pipe' => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10] 'portable' => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [17] 'precedence' => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [33] 'printf' => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [34] 'prototype' => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [35] 'qw' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [36] 'recursion' => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [18] 'redefine' => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [19] 'redundant' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [61] 'regexp' => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [20] 'reserved' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [37] 'scalar' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [74] 'semicolon' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [38] 'severe' => "\x00\x00\x00\x00\x00\xa8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [21..25] 'shadow' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [64] 'signal' => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [26] 'substr' => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [27] 'surrogate' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [52] 'syntax' => "\x00\x00\x00\x00\x00\x00\x00\xaa\xaa\x2a\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [28..38,47] 'syscalls' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [55] 'taint' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [39] 'threads' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [40] 'uninitialized' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [41] 'unopened' => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11] 'unpack' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [42] 'untie' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [43] 'utf8' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\xa0\x02\x00\x00\x00\x00\x00\x00", # [44,50..52] 'void' => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [45] ); our %NoOp = ( 'experimental::alpha_assertions' => 1, 'experimental::bitwise' => 1, 'experimental::isa' => 1, 'experimental::lexical_subs' => 1, 'experimental::postderef' => 1, 'experimental::script_run' => 1, 'experimental::signatures' => 1, 'experimental::smartmatch' => 1, ); # These are used by various things, including our own tests our $NONE = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; our $DEFAULT = "\x10\x01\x00\x00\x00\x50\x04\x00\x00\x00\x00\x00\x05\x00\x55\x50\x54\x55\x45\x55"; # [2,4,22,23,25,48,49,56..59,62,63,65..73,75..79] our $LAST_BIT = 160 ; our $BYTES = 20 ; sub Croaker { require Carp; # this initializes %CarpInternal local $Carp::CarpInternal{'warnings'}; delete $Carp::CarpInternal{'warnings'}; Carp::croak(@_); } sub _expand_bits { my $bits = shift; my $want_len = ($LAST_BIT + 7) >> 3; my $len = length($bits); if ($len != $want_len) { if ($bits eq "") { $bits = "\x00" x $want_len; } elsif ($len > $want_len) { substr $bits, $want_len, $len-$want_len, ""; } else { my $x = vec($bits, $Offsets{all} >> 1, 2); $x |= $x << 2; $x |= $x << 4; $bits .= chr($x) x ($want_len - $len); } } return $bits; } sub _bits { my $mask = shift ; my $catmask ; my $fatal = 0 ; my $no_fatal = 0 ; $mask = _expand_bits($mask); foreach my $word ( @_ ) { next if $NoOp{$word}; if ($word eq 'FATAL') { $fatal = 1; $no_fatal = 0; } elsif ($word eq 'NONFATAL') { $fatal = 0; $no_fatal = 1; } elsif ($catmask = $Bits{$word}) { $mask |= $catmask ; $mask |= $DeadBits{$word} if $fatal ; $mask = ~(~$mask | $DeadBits{$word}) if $no_fatal ; } else { Croaker("Unknown warnings category '$word'")} } return $mask ; } sub bits { # called from B::Deparse.pm push @_, 'all' unless @_ ; return _bits("", @_) ; } sub import { my $invocant = shift; # append 'all' when implied (empty import list or after a lone # "FATAL" or "NONFATAL") push @_, 'all' if !@_ || (@_==1 && ($_[0] eq 'FATAL' || $_[0] eq 'NONFATAL')); my @fatal = (); foreach my $warning (@_) { if($warning =~ /^(NON)?FATAL$/) { @fatal = ($warning); } elsif(substr($warning, 0, 1) ne '-') { my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ; ${^WARNING_BITS} = _bits($mask, @fatal, $warning); } else { $invocant->unimport(substr($warning, 1)); } } } sub unimport { shift; my $catmask ; my $mask = ${^WARNING_BITS} // ($^W ? $Bits{all} : $DEFAULT) ; # append 'all' when implied (empty import list or after a lone "FATAL") push @_, 'all' if !@_ || @_==1 && $_[0] eq 'FATAL'; $mask = _expand_bits($mask); foreach my $word ( @_ ) { next if $NoOp{$word}; if ($word eq 'FATAL') { next; } elsif ($catmask = $Bits{$word}) { $mask = ~(~$mask | $catmask | $DeadBits{$word}); } else { Croaker("Unknown warnings category '$word'")} } ${^WARNING_BITS} = $mask ; } my %builtin_type; @builtin_type{qw(SCALAR ARRAY HASH CODE REF GLOB LVALUE Regexp)} = (); sub LEVEL () { 8 }; sub MESSAGE () { 4 }; sub FATAL () { 2 }; sub NORMAL () { 1 }; sub __chk { my $category ; my $offset ; my $isobj = 0 ; my $wanted = shift; my $has_message = $wanted & MESSAGE; my $has_level = $wanted & LEVEL ; if ($has_level) { if (@_ != ($has_message ? 3 : 2)) { my $sub = (caller 1)[3]; my $syntax = $has_message ? "category, level, 'message'" : 'category, level'; Croaker("Usage: $sub($syntax)"); } } elsif (not @_ == 1 || @_ == ($has_message ? 2 : 0)) { my $sub = (caller 1)[3]; my $syntax = $has_message ? "[category,] 'message'" : '[category]'; Croaker("Usage: $sub($syntax)"); } my $message = pop if $has_message; if (@_) { # check the category supplied. $category = shift ; if (my $type = ref $category) { Croaker("not an object") if exists $builtin_type{$type}; $category = $type; $isobj = 1 ; } $offset = $Offsets{$category}; Croaker("Unknown warnings category '$category'") unless defined $offset; } else { $category = caller(1); $offset = $Offsets{$category}; Croaker("package '$category' not registered for warnings") unless defined $offset ; } my $i; if ($isobj) { my $pkg; $i = 2; while (do { { package DB; $pkg = (caller($i++))[0] } } ) { last unless @DB::args && $DB::args[0] =~ /^$category=/ ; } $i -= 2 ; } elsif ($has_level) { $i = 2 + shift; } else { $i = _error_loc(); # see where Carp will allocate the error } # Default to 0 if caller returns nothing. Default to $DEFAULT if it # explicitly returns undef. my(@callers_bitmask) = (caller($i))[9] ; my $callers_bitmask = @callers_bitmask ? $callers_bitmask[0] // $DEFAULT : 0 ; length($callers_bitmask) > ($offset >> 3) or $offset = $Offsets{all}; my @results; foreach my $type (FATAL, NORMAL) { next unless $wanted & $type; push @results, vec($callers_bitmask, $offset + $type - 1, 1); } # &enabled and &fatal_enabled return $results[0] unless $has_message; # &warnif, and the category is neither enabled as warning nor as fatal return if ($wanted & (NORMAL | FATAL | MESSAGE)) == (NORMAL | FATAL | MESSAGE) && !($results[0] || $results[1]); # If we have an explicit level, bypass Carp. if ($has_level and @callers_bitmask) { # logic copied from util.c:mess_sv my $stuff = " at " . join " line ", (caller $i)[1,2]; $stuff .= sprintf ", <%s> %s %d", *${^LAST_FH}{NAME}, ($/ eq "\n" ? "line" : "chunk"), $. if $. && ${^LAST_FH}; die "$message$stuff.\n" if $results[0]; return warn "$message$stuff.\n"; } require Carp; Carp::croak($message) if $results[0]; # will always get here for &warn. will only get here for &warnif if the # category is enabled Carp::carp($message); } sub _mkMask { my ($bit) = @_; my $mask = ""; vec($mask, $bit, 1) = 1; return $mask; } sub register_categories { my @names = @_; for my $name (@names) { if (! defined $Bits{$name}) { $Offsets{$name} = $LAST_BIT; $Bits{$name} = _mkMask($LAST_BIT++); $DeadBits{$name} = _mkMask($LAST_BIT++); if (length($Bits{$name}) > length($Bits{all})) { $Bits{all} .= "\x55"; $DeadBits{all} .= "\xaa"; } } } } sub _error_loc { require Carp; goto &Carp::short_error_loc; # don't introduce another stack frame } sub enabled { return __chk(NORMAL, @_); } sub fatal_enabled { return __chk(FATAL, @_); } sub warn { return __chk(FATAL | MESSAGE, @_); } sub warnif { return __chk(NORMAL | FATAL | MESSAGE, @_); } sub enabled_at_level { return __chk(NORMAL | LEVEL, @_); } sub fatal_enabled_at_level { return __chk(FATAL | LEVEL, @_); } sub warn_at_level { return __chk(FATAL | MESSAGE | LEVEL, @_); } sub warnif_at_level { return __chk(NORMAL | FATAL | MESSAGE | LEVEL, @_); } # These are not part of any public interface, so we can delete them to save # space. delete @warnings::{qw(NORMAL FATAL MESSAGE LEVEL)}; 1; __END__ =head1 NAME warnings - Perl pragma to control optional warnings =head1 SYNOPSIS use warnings; no warnings; # Standard warnings are enabled by use v5.35 or above use v5.35; use warnings "all"; no warnings "uninitialized"; # or equivalent to those last two ... use warnings qw(all -uninitialized); use warnings::register; if (warnings::enabled()) { warnings::warn("some warning"); } if (warnings::enabled("void")) { warnings::warn("void", "some warning"); } if (warnings::enabled($object)) { warnings::warn($object, "some warning"); } warnings::warnif("some warning"); warnings::warnif("void", "some warning"); warnings::warnif($object, "some warning"); =head1 DESCRIPTION The C pragma gives control over which warnings are enabled in which parts of a Perl program. It's a more flexible alternative for both the command line flag B<-w> and the equivalent Perl variable, C<$^W>. This pragma works just like the C pragma. This means that the scope of the warning pragma is limited to the enclosing block. It also means that the pragma setting will not leak across files (via C, C or C). This allows authors to independently define the degree of warning checks that will be applied to their module. By default, optional warnings are disabled, so any legacy code that doesn't attempt to control the warnings will work unchanged. All warnings are enabled in a block by either of these: use warnings; use warnings 'all'; Similarly all warnings are disabled in a block by either of these: no warnings; no warnings 'all'; For example, consider the code below: use warnings; my @x; { no warnings; my $y = @x[0]; } my $z = @x[0]; The code in the enclosing block has warnings enabled, but the inner block has them disabled. In this case that means the assignment to the scalar C<$z> will trip the C<"Scalar value @x[0] better written as $x[0]"> warning, but the assignment to the scalar C<$y> will not. All warnings are enabled automatically within the scope of a C> (or higher) declaration. =head2 Default Warnings and Optional Warnings Before the introduction of lexical warnings, Perl had two classes of warnings: mandatory and optional. As its name suggests, if your code tripped a mandatory warning, you would get a warning whether you wanted it or not. For example, the code below would always produce an C<"isn't numeric"> warning about the "2:". my $x = "2:" + 3; With the introduction of lexical warnings, mandatory warnings now become I warnings. The difference is that although the previously mandatory warnings are still enabled by default, they can then be subsequently enabled or disabled with the lexical warning pragma. For example, in the code below, an C<"isn't numeric"> warning will only be reported for the C<$x> variable. my $x = "2:" + 3; no warnings; my $y = "2:" + 3; Note that neither the B<-w> flag or the C<$^W> can be used to disable/enable default warnings. They are still mandatory in this case. =head2 "Negative warnings" As a convenience, you can (as of Perl 5.34) pass arguments to the C method both positively and negatively. Negative warnings are those with a C<-> sign prepended to their names; positive warnings are anything else. This lets you turn on some warnings and turn off others in one command. So, assuming that you've already turned on a bunch of warnings but want to tweak them a bit in some block, you can do this: { use warnings qw(uninitialized -redefine); ... } which is equivalent to: { use warnings qw(uninitialized); no warnings qw(redefine); ... } The argument list is processed in the order you specify. So, for example, if you don't want to be warned about use of experimental features, except for C that you really dislike, you can say this: use warnings qw(all -experimental experimental::somefeature); which is equivalent to: use warnings 'all'; no warnings 'experimental'; use warnings 'experimental::somefeature'; As experimental features become regular features of Perl, the corresponding warnings are not printed anymore. They also stop being listed in the L below. It is still possible to request turning on or off these warnings, but doing so has no effect. =head2 What's wrong with B<-w> and C<$^W> Although very useful, the big problem with using B<-w> on the command line to enable warnings is that it is all or nothing. Take the typical scenario when you are writing a Perl program. Parts of the code you will write yourself, but it's very likely that you will make use of pre-written Perl modules. If you use the B<-w> flag in this case, you end up enabling warnings in pieces of code that you haven't written. Similarly, using C<$^W> to either disable or enable blocks of code is fundamentally flawed. For a start, say you want to disable warnings in a block of code. You might expect this to be enough to do the trick: { local ($^W) = 0; my $x =+ 2; my $y; chop $y; } When this code is run with the B<-w> flag, a warning will be produced for the C<$x> line: C<"Reversed += operator">. The problem is that Perl has both compile-time and run-time warnings. To disable compile-time warnings you need to rewrite the code like this: { BEGIN { $^W = 0 } my $x =+ 2; my $y; chop $y; } And note that unlike the first example, this will permanently set C<$^W> since it cannot both run during compile-time and be localized to a run-time block. The other big problem with C<$^W> is the way you can inadvertently change the warning setting in unexpected places in your code. For example, when the code below is run (without the B<-w> flag), the second call to C will trip a C<"Use of uninitialized value"> warning, whereas the first will not. sub doit { my $y; chop $y; } doit(); { local ($^W) = 1; doit() } This is a side-effect of C<$^W> being dynamically scoped. Lexical warnings get around these limitations by allowing finer control over where warnings can or can't be tripped. =head2 Controlling Warnings from the Command Line There are three Command Line flags that can be used to control when warnings are (or aren't) produced: =over 5 =item B<-w> X<-w> This is the existing flag. If the lexical warnings pragma is B used in any of your code, or any of the modules that you use, this flag will enable warnings everywhere. See L for details of how this flag interacts with lexical warnings. =item B<-W> X<-W> If the B<-W> flag is used on the command line, it will enable all warnings throughout the program regardless of whether warnings were disabled locally using C or C<$^W =0>. This includes all files that get included via C, C or C. Think of it as the Perl equivalent of the "lint" command. =item B<-X> X<-X> Does the exact opposite to the B<-W> flag, i.e. it disables all warnings. =back =head2 Backward Compatibility If you are used to working with a version of Perl prior to the introduction of lexically scoped warnings, or have code that uses both lexical warnings and C<$^W>, this section will describe how they interact. How Lexical Warnings interact with B<-w>/C<$^W>: =over 5 =item 1. If none of the three command line flags (B<-w>, B<-W> or B<-X>) that control warnings is used and neither C<$^W> nor the C pragma are used, then default warnings will be enabled and optional warnings disabled. This means that legacy code that doesn't attempt to control the warnings will work unchanged. =item 2. The B<-w> flag just sets the global C<$^W> variable as in 5.005. This means that any legacy code that currently relies on manipulating C<$^W> to control warning behavior will still work as is. =item 3. Apart from now being a boolean, the C<$^W> variable operates in exactly the same horrible uncontrolled global way, except that it cannot disable/enable default warnings. =item 4. If a piece of code is under the control of the C pragma, both the C<$^W> variable and the B<-w> flag will be ignored for the scope of the lexical warning. =item 5. The only way to override a lexical warnings setting is with the B<-W> or B<-X> command line flags. =back The combined effect of 3 & 4 is that it will allow code which uses the C pragma to control the warning behavior of $^W-type code (using a C) if it really wants to, but not vice-versa. =head2 Category Hierarchy X A hierarchy of "categories" have been defined to allow groups of warnings to be enabled/disabled in isolation. The current hierarchy is: all -+ | +- closure | +- deprecated ----+ | | | +- deprecated::apostrophe_as_package_separator | | | +- deprecated::delimiter_will_be_paired | | | +- deprecated::dot_in_inc | | | +- deprecated::goto_construct | | | +- deprecated::smartmatch | | | +- deprecated::unicode_property_name | | | +- deprecated::version_downgrade | +- exiting | +- experimental --+ | | | +- experimental::args_array_with_signatures | | | +- experimental::builtin | | | +- experimental::class | | | +- experimental::const_attr | | | +- experimental::declared_refs | | | +- experimental::defer | | | +- experimental::extra_paired_delimiters | | | +- experimental::for_list | | | +- experimental::private_use | | | +- experimental::re_strict | | | +- experimental::refaliasing | | | +- experimental::regex_sets | | | +- experimental::try | | | +- experimental::uniprop_wildcards | | | +- experimental::vlb | +- glob | +- imprecision | +- io ------------+ | | | +- closed | | | +- exec | | | +- layer | | | +- newline | | | +- pipe | | | +- syscalls | | | +- unopened | +- locale | +- misc | +- missing | +- numeric | +- once | +- overflow | +- pack | +- portable | +- recursion | +- redefine | +- redundant | +- regexp | +- scalar | +- severe --------+ | | | +- debugging | | | +- inplace | | | +- internal | | | +- malloc | +- shadow | +- signal | +- substr | +- syntax --------+ | | | +- ambiguous | | | +- bareword | | | +- digit | | | +- illegalproto | | | +- parenthesis | | | +- precedence | | | +- printf | | | +- prototype | | | +- qw | | | +- reserved | | | +- semicolon | +- taint | +- threads | +- uninitialized | +- unpack | +- untie | +- utf8 ----------+ | | | +- non_unicode | | | +- nonchar | | | +- surrogate | +- void Just like the "strict" pragma any of these categories can be combined use warnings qw(void redefine); no warnings qw(io syntax untie); Also like the "strict" pragma, if there is more than one instance of the C pragma in a given scope the cumulative effect is additive. use warnings qw(void); # only "void" warnings enabled ... use warnings qw(io); # only "void" & "io" warnings enabled ... no warnings qw(void); # only "io" warnings enabled To determine which category a specific warning has been assigned to see L. Note: Before Perl 5.8.0, the lexical warnings category "deprecated" was a sub-category of the "syntax" category. It is now a top-level category in its own right. Note: Before 5.21.0, the "missing" lexical warnings category was internally defined to be the same as the "uninitialized" category. It is now a top-level category in its own right. =head2 Fatal Warnings X The presence of the word "FATAL" in the category list will escalate warnings in those categories into fatal errors in that lexical scope. B FATAL warnings should be used with care, particularly C<< FATAL => 'all' >>. Libraries using L for custom warning categories generally don't expect L to be fatal and can wind up in an unexpected state as a result. For XS modules issuing categorized warnings, such unanticipated exceptions could also expose memory leak bugs. Moreover, the Perl interpreter itself has had serious bugs involving fatalized warnings. For a summary of resolved and unresolved problems as of January 2015, please see L. While some developers find fatalizing some warnings to be a useful defensive programming technique, using C<< FATAL => 'all' >> to fatalize all possible warning categories -- including custom ones -- is particularly risky. Therefore, the use of C<< FATAL => 'all' >> is L. The L module on CPAN offers one example of a warnings subset that the module's authors believe is relatively safe to fatalize. B Users of FATAL warnings, especially those using C<< FATAL => 'all' >>, should be fully aware that they are risking future portability of their programs by doing so. Perl makes absolutely no commitments to not introduce new warnings or warnings categories in the future; indeed, we explicitly reserve the right to do so. Code that may not warn now may warn in a future release of Perl if the Perl5 development team deems it in the best interests of the community to do so. Should code using FATAL warnings break due to the introduction of a new warning we will NOT consider it an incompatible change. Users of FATAL warnings should take special caution during upgrades to check to see if their code triggers any new warnings and should pay particular attention to the fine print of the documentation of the features they use to ensure they do not exploit features that are documented as risky, deprecated, or unspecified, or where the documentation says "so don't do that", or anything with the same sense and spirit. Use of such features in combination with FATAL warnings is ENTIRELY AT THE USER'S RISK. The following documentation describes how to use FATAL warnings but the perl5 porters strongly recommend that you understand the risks before doing so, especially for library code intended for use by others, as there is no way for downstream users to change the choice of fatal categories. In the code below, the use of C