JFIFC   %# , #&')*)-0-(0%()(C   (((((((((((((((((((((((((((((((((((((((((((((((((((" ,.Fh Ch@ 10D``DBB h4 @dX bD iD ІI$TBB'$"`I)Eb`(m9@0hb&!1114  b` Dh "lTH)TAiN  A" hf%n£!aY4hcC"5J2#Tզ@ #(a`QI+JHB8h@!!!hSMNhC4$11SB!`&2Dc(p*`"XE b!IJ&0C41 b `hL0JHLi1L -XX`ݚb% )*Cp& ! $40)!b䜢hC@D 6JJቨ4B!`b `0@ b`&ё^IÆ LO7dX h@)A "I`6H !L'@ DQ B!Bj4  L@ @hb&%$ D LQ~7ҜtZ&pӘ b `&)F؆` 7DBB&qI:LVF2B1 5iL4$ mj4 @ @ b`0b iS` 14V1l˦I7 @` L&ȒB[lC!FlIY +@!"!%$  HX J00CبDE18! L r2ϳ>Tس:=8Ӓb  & !`) "0$EMSIAL6D$B`&BBX&1C CT4h! @@4 0Yf |,tCE\T}nn` b$1AN&$ &IS`0118` 4  9_^8B14yꞿ3wlK 7 &@ 0@ @ `Ȓ b( +$2DR:]Z3cqcAȴNb11@#@18b`!upyt|z8lZ+]}3:zKcwA9SUU5AJ   2LUp*HR+EUEvF2qIW8)-JYDUQ  b `16!B& n$I9y~yntpX"QE,m[&C44 b ``@  BQ0&:Qud J7*"S-5(J7U@`  b1n.2/| ZrJY]3~ڕyצ1Ͳʬ3}[9NΨWVun}Tc~g6g=Mq6}GKsx b``L!nu"6ڬQ}_4 4IMtSҫ(610 b`],k4r:\_GOn骻q[,C*ͳԖzhUݐ9w L01 L& hQm(4d]nNiF wfG&ܱx*uθIbBʤSnܢaFj(@`8箄Ꝿ&IltgxgɻM%Mږ{z)]vSqUټ& b`0CT 8&`% '** -L/(4$cךRjp.h @1b!  0n7ʮB Kt}UF˞tr\7Jϖ~%Ҹ[!hUqp!&7Č1] *O4צN.Ǽt0!J%S101CC&1 Lh b bey ?fW7Ƨ,ʒ2t}֚m[PzvvF@ʀ  hb @%(#!!bBâM4BF=x Pցdd'YS̷ͬ 118h`bSv\>}Ux/ޝ7UI5h,pܞ^[U9=&v8@I!(XjaS,S3]av(KWP4j` -#ݒ7Jն&W"1t!^0 ! &X2y=yomNz.zVwfKݚж26ϗMa5L0C]q$8EQTl;yj]\U:znT62U f%uLb!  o7Q/{jyϣCJgS[oޮOO>_W6O~oC,2T`44\3zc(B A\cuݛU4컗AK2B6vǷ\n9WXQ,y:Bz` `4 @C&r_'RdxyNu <SQUM+#S⎬7v㦩K]Jy:KX5b`!!)*d 1RYn+έӚKUJX7U3˟EA}lŪe6@@  b b4x2\>|z^WvB{3^S׺Np^kέ㜅VզhW6rw{xz=)@h+ !daYZC.~mQniڲ7|0Qgj_J}l;8Po)Ά>4 @dtsNqОgͷ>ǻ \T`ыfNf7(pu9|]͙c{#(h1 @ @}6yn;*SHI*Bj"9̻&{y]4գ7>Wf~םZ0niMRsTH/NL` @ `/9ywVY-tkZJ~sGCz|z[cV-KX+csSTWu6kK2"2QiM b6y֝^]k׍ʻK=U**MVK2R.ZE9}v6{i1m]jZҌRUJ)De%dR*K~eS>-у$eͮsuκh%lGNl8#~:n5Yߎqf?L'@ @ojȲ*d.ܴn3q$ngլNKbS%{ߓ\qM(zOk=R͕zX_~=hE'J]\YA&]ƣLk4>5tdUFm8ʋ+7T+K-%3oU]kRKV=cNjkCiGY)s󝧂뫟CX=na\^ RgOA5F|-P_ew9jWM;暜Q}rUh;p_>|+ng<%̙uӧ>phss.SE67FH[W+8sc<=3Z_FJ^Mz('.Rǖ=<}<=hr7Z6v"pV-:jS٩}vf2UeYN\K JN*|y.!~O{ k#;1rt݃:>8sVL]*gs*-dY*Wdnb b&@?=1Ms*|ZW3VY.+ӋcSZg EWfgvZNDeSBWʋ$ӟLu?CԎvܚ/\hُR]zu3&UWZRvj^l[֢3u[ةZ2=Ox]wԥΛbyu͝p뚫3UsaVX;I>7~xgpa;_կM5yĔ1dD׳<K}*D&P&@18{N]n)E=Mg_811YGE) "J cMQ]e3>_Q=:f]IzTQS US-izΛ$Iv3Q]]JM$[VT *N5-eBHJO<侴euRVzseOv--m(JƬi`jKڹW+n}1Z^.sLyq9}4/sw@ZH!]M&y،l-nq沯Ets'mi9E: Q"Z 5ֽC^mkV[ʝ>]3n2,#\B `T(U6-N,gF~&[bB^w*<=UÎ+mBePW:IPڪ7䫲anm J0 Pg=iQpڎz\~-kRqXl9]O.w}Ku&kSuHS $BRee:̢r fnYmSE9Hr3PQuVE 6AM "vty|yU.Y!nm4kqB.N4UdF鶫,qLں[e ⒅kYknpwBϓU>^Ѳ+214E8,:"=YվٛG\N{UǭJ1؆( -Rd [ۏͣ1f^6%fF$sB̠YUӲs]0 &\Z\_dL)f{!f7}6_w5SYŵUUYe]=73uԌybv#3]ё+fXx?ί'jĪZ'KZCOmVg ٚ5![omjbїxue ؒuU̔g5ziW:7':]Uˎ:ur;ês솅Dq#$BGVQ}cWQd.ŋZ5yrhgg^1ʎxGo|u?=%[V63fH41ӿFBwwnlӯǵ*vp$FJdi::qӏ^|{sF5skb+b;+ɳǽy9mIAJ1ɚz9j]<+htU!lNZ`tafcʍ4⁳G/LJ|TZ5%TͲBLSd-.ط%ؓ5ˡæRdĉV bc@$::v֋oV\fwtr~.V:2.8n.YX͎hk1.Jvտ}ڸm볧-%\s^Lݾ}fƥ<;9 o-^,/B9T,ųXҬ o,4 hxiӛfR-zlFfR&oSG/G=fl"#o %$4W٫#1e;Y(62+W4:lt#:;1[G3YfzseN8dًI8Oy@ԉ``&!#8Hs3_OFRثRulvth;Ì:dl @TqVR* ˣnsuX4%y:f2h]KƣVi%:f'w?LkU?,iÑIg]B%6aUiUg&>zuƧM_5^^Z役:stNg\Y+6ٞEֹgZγV5vkD-d=y55(&: F%`Ȏ-@ 9}l|dNPGDWmp%܍=mbZFlӺ23jqъuپY|| FxiP+$'*싶M+oEșPBf x8O;)3:!319t5!K kϥ:o 鞖3;=QY٣ܘ0JCM`I5f|֭sb)[b6xe8Ne!Bq2c8&(Nv񺭁TmdB6AI"^OOA(D#4o,i󶞼 ^ϯɽEz{κչ  J2# J0lewn~̚!)N(џLbU9:x}qҲ6m~/LmҘ>F蛖޿q]V FbRF|qV]ب5ltO՜&e\u5N\&\تP ʕ^dKN}!F'3ԌIT-!Ќ\%||&zcy].:yٿ,n㨍vL1I"5I4ЇJ+y_4t[Aݦ>f:i2\2eP۱kqED1g۟NxǫOMJ4uH\EūB ]I!["IHl>GW t0peEN]2_g:nm#7S{qR7.ŲAVL,qhJ A$n,iօ7>]0g3MiKkK^#PJ8@LjVD,kU yz̪|NKυI@.v}5wy}~cLIWw!o )E(JT1RjґW{!#4}g(CD%bJ+WKO+ &3doFtr걤Zabb!ͫ7%ѯךU-Ăj*ÿУTҷ=|<=X[q6*iC"(d'"$- yyTnh-|z]fSn'dZ1Ky} />u_3\8 Nz8~GLP;iHvL@`SM"1`8x`q/mAI}E9qOןơ^r2U`JP,cBkW!$I)d+bܩir+уXJ-)~tc>&ĂVB-K_?z$. h0R)F@9"ʑe>\z\;5P:M9u9ɮsaOz{qҬsq6ȦN@gm ;\$8' #R#%M_28ІU[j,#"˟P=++| g!4n^䪶 i5P$ϮYCc`Wr^010#Њr3$H ۀ29# ?ӯ ,q=ی;G0O,, 4A@83s3o !<5-׼ 1?430D$a ;8cO4 ̲9G&o4 1ͫ?8<3w>9? 6 8E Ǡ~ߙs,< ,/1\O8<:Հn:,ӽDb.4'8+Jr<<9]+rˑ0 <8"CP/ < s c?2<O;x7}000 Á(N5M0ϯFo<Q!w0 # L4Ҏ +1`=LѨAuM 8 @h  Ϊg0[8d_o|n00 8 whhtS/-ŸsC8 0 07o8$ڍ"ʘq{ T2ѱa0sFsrљu[ ?Nz2"8fɒ{Oc1+3vzM|"D:I}KYaLω` 0 G+(+f?)ŖR+}0q@{1'7#:w4VO0 $βէFS4LBer JeN*/ =A1=$l\Ӯ@j.檄kz%eqe^PU콹4x=3` X?Rʺn.Z׍x)y"ř?21l6oW5O䐘eނ͠@{B2y^%kZ*ogxBVW`h9mh]zXX,нP,ۍ44&}=fJ4E6~JC 06}+n'Ui1᠗$ClLE՝)[T@Ub̶&R3[gXPB =J(B41|xs}Px蒲@[5"J۲syo#$;X#L z\,;tEfwҸ,=ěeӽ'O (7=u~*"x(Q$I0Nm5ͬz hEb0?%0+l2ͻXl RH#rA/TmXb̪?>޻|P:}f}Sb*QnW4{5\@9I{;MWjMxs1;1dY~>r[WRlW2 UսKzrIv6G'1gglOrm"(zLfo`Tx0fbhmNW= [c3 $'4jy32`$^vԩWW|[|{TFg4CPaڝ {X6]0[Ö4W`'LqϊJ.,3U[1[v Q!!FuZe$ eQw?ieg]TL-N @X-nqBٸGV'd H- 47O3y=Q ,swwF%"wXMhO{5! p:;K(o;1O6`.9I~hŶͱ]Yqưpmaƾk^'y; S!",`8t侑5qGZw)Ayw/<^?Oz1tӪ($S]n91#T2yJφ |R|3sJ(]U+G{a&Pd>i6ClR|2Ռ7Cgخurڛgs.3uo=p,!5bh-?KM)UzUk81ְ` ZIy6 qJN-ե5ymχ7cl,iX .CR oz⯫y/R褻kPp20%˄c`6HapC[q7C(Dz0DG ϴu{m[˯Ac" i;?vGms$יg,h?(sc}^?Z׼s8&IGhDm?Kosy[r)| Cq{د}4} /{ePE4]s։* -?ۉ붻]:+m'Wum}njj(l*J }mKVT~ 5o|YYLPK,"jC*6i<}}mg*ޏ<2cs|㐓bI/v}Hvw gM$YQm<}}}}ڡ, 5`na%mv}]}UhQۼu,0<2}5uSU[-3lMUQ }d[a-9qLԻƥŻIu<<}g}mD#͓[}3qԗq[\^|+ (ŵP }qqe5=߷ (Bt597=#a*8^ȁ 2y`Åqi}<887w]Գ=xQD\}Dr)XI 1ϻ( cK<u6YqJ|4tu<o0[$-| 4&'=M}R&ʨLs.Uij M\_҂B!wh,o3g]o4Q7u ?o.\o(iˣ&CpLTz7ʙqoyv1 ԄajAĕ]ȘYB1/&aжiv1$J]I1ڂ#y ہ+-AiVmmRYY̺}S*_އ #׭qrBv YR̿XB=kqYH8Dvq%=j1 PUjץ0,#>!Tף,8Ns|i,:$BWpہ0NNʼTrJkY?4@K_oYa @1沩(SgaA4Q6HwF!J`7pVhָe"֬jO>$,JdLTf9BV;(L\ h7 6: /[)+R1.?`2UM|r*Mѫ/-?H@l!M*"% d͖<HbģHo몯H^nTG[-9#%9I"9MԾtd%yhGN Z`˿LJܘ1 3Zޥ0ږ[z hfɎ$X览N7a./m ՖG]8_:)]`9xw(F.&n$6NJ?[^F GYdn΄΋9>z nf`~@lֽL&".qj'1q8hWݎ's@;B ;fdBy|q=S$`RD>]F ig ^%"MHt4SIK+fe Tnf/޳tdy%[1!Jdx'@^PMoxMS{TPfB|^*}'sUC-JA!AFx(i؟.C` \nx<졆|nxYPd(n`/fL#2t>#DũE^?кq OmNkoȚ6Y?7*&-BA0QRj`鋘LϡL61O{˗&T܊TΛ7 q5tfԯ09mKxt\6j0"4x/\ҙ UL}%jXƄ QYgк87d]G#aPJHrCN\xKg 3]Jy1`\` Ә![MͅX\ΖABn %̃rd@fL*tf]>]x*G~|ˀ`1|>;;_`GEqIؔ嚜 o3TrUsqǣĭ`FC1No}~`?52%f o5P  B楩I<$̙G.4v|ͬa,U+)7v1yP&_6WcBa1g$љWx5G!TxHRbL>}UȈ26KNV_OAk-eT~0 ""3›O1Pg(>L<^F,hF㘘ټËlauVGW5$Švչ6b.3N?/4Ow!~& <~0"1rvb Qf0U5Ax=Fo3S1z9f|1/&E(q3dq1&F #(Ua<DM@Af.gI똏fnD$;2?05(B A) >0Kp|~ED6EFZFv癩>Pڥ0 ӛf. Tk3mGVc0Qf;,ƥT`B"ߖ7*s iN*3("U FbqBbZ - ma_\X5 3.(drb;R`@58q@T&bfj\|{Tӹ$4AهB9itbĪہ̮D{ud\%jc5Ɍw,Le"m̠\xꙮkC ʔLD鷕x*D1(~?P& f&3Y1[c`J LzARspa\|t(TWJlKT"z 3 +ɨ80&]>Mg;0Ll&Ll61Z { MRSn(-=:fP& 8]!ryI'U,ynX\ n?sB9$̈́ u6`6/Y3Sd%1)w< 54QO8nYSMd&@k&<[DkcQ>&\ [%N:VA g08AyG淟R4qډswD:AOyDm<*\Mg3zA0c"țDɄf. ,jH#U6;U}1M 83y|kcBk889?Lچpd4L\W 2g&SLue~2-2!¦"Ӗ]:)&m;4bA?0k8d?)}AkV,&E(hڅ۸2S5Aq0F"UbYө䉗JF:6ry.6CMw> b&'5M{P|]T}8_3P,X Bc{A(7g9кӅr(55HDRiS~I:M_Ǐ  ZÕZ-k54ZV3Mg2/̹ڢiYԊD͐c]#6чu>Lv"pAFaJh]Q,MFfܢ&)>@CG(X%ߒhF(m.U?i.q.مw2c('kXIcbZkXD&#lGu g\)KlP#B`P[y}sR(UpAn%MW>fqԳM/|5FOm?ٷbx*ٚ-X9BP16ճ0ԲPP^cuyLF*e Ù­ -Ar8ybf&l$>!WQHQ.TIL ,?y"zmճ65Vq|L_"Sgϸ 72Ϸ#5Rܾb{["R>#9&e0Nf|6s5 ]?3:`"Γm@'gfLyybXq #=7VsE2%ĠG,y,n~"T~ _eXt^Q70ٝA7%ÑAf%3Vr(ij7@{_a_}od橶bdgGGɈlw˜' u.fYRh96i[9!>2p@*1&ELf`B~TM3F᱂\N`J AAH |e0sPJ|1>'L1L t nLQ cqsLUIQu4^a )u; о`vNbJP!1&Œ,.Rݳe(Gb}ޠ06mŒ`Q5ܙ#[`hP 6 cu 36`־& :3>SmxuxNMFdԐ9$G 4;++!>L(bdGRG pgʟ)3cܻ ~e3Hdiѷ)"T??ŋU"aENbw .SP@@_&l*1<8arcj/POܰ!48v ˊ|w3PrՄmCju594"~Q:LA[&-ϊc:f#YQ)="T{ajW><>D8[ǃz ExF6IOb"/"e֜965 &x&c̍h ~X9|K`01gm; 0md<Ӏ*3 >%]%Ӷ>4\AC85LY|@(vu{]:d5c::VzjzF]g.1dM3]bQn* "'6Vӯ28 e? Lu3IcaZ|T؉fm5:gyd9Rq:nǗ0:6ZvsB`G˘Lh8Oèf^Jk깠kMԸ~"nCop&. mS̹p{3b\ML;1|op܍l~_~&7<+\4g a+2 k_ߙ[ S7"ĚU@ѬGP&=7]=(!>cdːa,:~\r?i>ij28̵=<vm<)pc `1CهX õ{0t91 _`'cQf(\ehP" #YA>Q>yzS7Jy 1X Bp8s,v|G";_1+ks7#LZpڐ ?81|+fB\OB8<aMf*ȃϻo~5yֻ$ïb91LA1{xU5") E`+byg<\_lZ3aE c`;O0f,KNDd0XHN3tW3 OlHCaoUܒ&"Pه[2 FZW0'KWOt/ A δ 㹇E5L,JJ6DmZcdtRf w'1h_bc|ith\h/{XWfg`r#v=s<\ĻlkRkaٚţO:[鿿ogʡ<|h1TqNau3.,Y`c! Di3qۙaVh~ˆE<4бWf A{g2rL>8ljocMCAMO ';Q|Tv8&h5nqW IUdO\9P6y<fG&OT|8А&-22fp\tl~4zllCq] L9wB tiX\Fܠo~h?y/~AP*~ OãR(q` SfKN gfE]4hɈ6c Bkܮ3p=; DBAg0? =ˁS|Kt2ci4F3gJpee˪*~qwՐۏa4b1}S55 Cs EbE˸Q#4yCv{L^%XЈN6 ǭª&H*qsWv+gFuAƢy)MfhB2@PC '%}k"Lϑ9"z]BUΝ5@9&5';\>%H;u tۄ8V`zo3{@>'_l6dG+f:;A]BM;@D87"u@r2}t[ ¥4ll&>r!\O6&}n0!=`8'pftؾ=k1Yf(|uOrZn4(cuQɞ /L - T؊ۅ<ZEb*~&vߐ%+Fa*YSFM7/n&d5&i\>0@c"h#h n` `8 >=Ȍ(u`RǑ46`4{&R(H``7 abo"`ݻ5,('7j =5f\ '``g1|L˜"Vi[3HbT1g>`|č米?5_r~IjY 2p=kX0L4jLP-!Pr/gQm37}魻N}Ri`C4ŋ6,]R=ӷL#)(eF'%i&0L| 2UOULjliIP|b:}Bd_]vjvSCWe5$Q0>6!1A "0Q2@a#PqBR$%3?l/;?(g=T3iMm#D =>J~¿h,%_\rB>Q_qSMi3*:t(h{TR|aYR[oϧESFZ5`ܿ07a_8")&])5cbzԯF7KGz(JHP(F3X>?T6ʄJJޞJ dͰp&a)x]R~7NɘY18hHRĝL|2~#갢Sn<ً1ѓr]ٴq'>[\LoQ`צeBTf[ٌxmcgr`_ؾ!ݐ660-EQ  Ɂg@SC^&\z'Q8B= a?)?P:U?N@*>4}BrgX:;\N7jМ QK&ZNܯT6a6oa㸍練0d8E+`rVuhhhD3q=x멯oݙQfg<x?ӦÉV2?=`͟H$DXt`?TEeS'5g !{Aw~O2k'%8?6 1bmxls48>Hx55T[|G"0~{L`KPT4oU1c6|OF. >"De? FasQ^ʬrMne@3`d4tDDn8?2VC+VxHLeV748M* qU?M7& r g.Ѵ'o&\̀]` MqF*D,hA14l"\"@&T.f<r.2)&}0i#Qdƃ&nD3L@|@r"&#ɍs Eړ:cHfvd"G*fA\YB@S\X Fngt&,Yr*E!CDf mbiwd49Аc2uPr%&PCLlw\EP?1BSO(7#(☎B V0h@0SQrfn!kv?uw5LT!E "+2%}eAv`@Wc͒30+26Tc>fn<RT(9ֱO+n&W˦?UDZJAdQ`ZBAq0e*`"㈊Ld0X36fR@, #aJ?a 00GQ B% jfe WώE7iF ӏ(2}1:&e3A:%E]DPT A(DF=YTUm%d EPy<@ k mF^ft *Gs\DmšmAK列N2?gI8.0#%0 Fb. .f(FqV&P:vhtCwb-& ˇ#Lώ&#E!Rp'Og( xXX%,[V`Y LX!65mG],|Y*> i )4wdDs\f44M5Al|J8 f 3ןfyeSl"3]1X̸O+s"saWqR)yTccLCP, ;qh 4}y!IɴEv{9T2EXٚlG&@&W,j 3ǽ@j&zG&bLTno'cƘ<OLx=?(ؙȵʴRZ/R<֝Mq, nTյ$Yk] e`.u'V-w!h cOc4Y61&Rǁ1)4bG ,Cs 3'B@+1bg[Q4‰'˽&, o'"T5=`UvOj?BrC 8C XP ɤ:kȌMԻ1&ogG[@@aQp34_B QP_ hVbb C:c-h.!A ω 81J[ل'&)(ۣ,'X)\A 8D=Bo]7[{1QCP3&#Ez/gܻc~]q`QRf,eT ͤL=5#MC:.1\PT-8w Gan|c"%Y0LMٛ&L rsSd8u+W/Rè@E\\٦զ}1zQ,b~;"k6)F:YWc2TLnjb6ۓ9.><~1,NEn '74o_(*lD+u wӜٕDƼ@G3(e&lQзd@l. ȪjÓlUٔHn!:l"fL9v5hIu ǍL-o7:7EK.crmը௙ u3c]XGȘS2}#XZ?dO)f!ɐAbfG8T3OfpiNrfX)4cN2"F4!ʕL֠]ZŇLɷ%~e3܄E؈a/D>zzc=5V>L[i'b 'C>R#I( eR@9修euaFt`ŊSN]#bqk 3 j75lU*n}jOMWfUT0nf"!%zːc&gڥJ*i؜BV n|@7:0}bf\7M@9@gPМ`i 4j&p1m5?Qfk!ְcd luR>L'м̄&*}?툊怇J 0MfM) NՎs;)rlT=" (?9ɅZul@;%R&}: ^yVԛ# g-@@PRLg94^C>`&\.G7gйUL1 *: QDsAjqDl2-4u7Eox`܌c˼/*'fd*9㱆 D ;da:K2gbeh4{FҡgL |v3 }P ?tz`Ț&&o"{preLB$5fl L6وAn &3za)ϑŴ(ϩɄMQ\ޣ 3>=v~n ԐVPTWLĹnt̛3W=ØuqyYؿp}:O?g'ŷY(vf ,gQ9AL^?1!+n$֢&*`հ3$Ծ &5)\\@:&0E!iS3y7/URA<~"1e0YFNioIB;?Lpl=1V1w0`Nd`$C#O-ϙp!vkZ˹.fn|NɁOBdԽ(݇_-l3i0FԢ7+fLe9*D h;Ob`F1<"ڑح(E`Owֻc(VUlY{slc5UGESowѹ oy0Q{v剷 lsI6 FƖ8cimJIΓ 7TQsQ9F $h1"U/]Ps2+7s73YO|U|ΠS vcB=Tǘ>aۧjN3(côRƣ){Z;_@\P#؜gK=2͸1-qs:"1+*~`Ρ r"6b&mη$j 6>aTPŚ#1`R FD֔My$fI`ʻC3. >aӱ*1%g'i1lJfxjPðvېnk_%8 Q)RY4SLoɧ>lhđ&*&"ϑWj 8f_Xv3#B:;116&@caS0?`1sR37-b!q7Fa+4cE;S&Z3t;rq34)jQAJ!}c]@>`E3w]ҳ/8pÌe\I›, "1!cjTfb[if_i~ߨ4=ndY(L5cGQ ̣!5l=S2w,π-Fk6&wľ͆,UCJgP9cswbPݍ&ǰq0o*`C ȕ cF+/@B˩5fU #62‰(h۩2b`m4xm1V/lZo}VjiT/n 05w2Ʃ7b`<> 5٠%z"wv.n,LYWjfJ3wBm(w@\D|)d=Yqs?=f} s}&W4&Ĵ Cj}34s\m 0 &, &Lm3 % LTʶ.<x>FTLP"u-8 x (@QJy̨ʂT7?1}?n (6u^#>eh@Nnf*I<)aaԛ{}֊c]f{ UGT;,ͦʠyӌr1#nZE标80a+`DT\˘O(ٔa7`N[#6H#[YIU>'͙(M:.e/ONfRk޿> aٿ`G?~!^a£SP)cPD"l& 6ȇ)1t&zn|0dAc#'Calumb 4 ֩L=fݸ2oy.2I$\@=%?.$γc.U' &6yhc4~DžYz<fc@X~è81]K n DRk Ž &QbƣP pэZ:ljX3ʕ?ݎѲ(G` (z(PԅB~`kS6xM,bmwQ_ 6rMp{CdСG՝K cmؓG'ӲTnTM4k#Q{1O\GeN(QbsDO{h:Kihc'\?3(PBgmA)g 9aTq%#8N0m^T\cXQ%…^(/au9羳:o=3 =n-~Q~މs>0f' dΟ?n:cW=vKCiREd]|E9=(faݹ[9d* 8۳ݣeJ0}BKtLdIPGcGTıa+6M/" e'af[:^ 03~z?7*TqG Px{e`Q+yh'*94omJ(1W/Ɠ^+LJӓNJy-_$^kS h&fn!fusB'j9pV!8 0(蹦*9U4Xgc{ZUVӧw=Wf8TXңe\we7D ;>@SZ;VjgqHjP9 z#"bȯpcv)(et+w4gQ ,{ Ži$5EX:m/\ntXG\Frv~,Ԩp5! cL%O*Lx yŦqdGh 7cnSz L mgZl0G\dSݼ.UiVm FVcNH9dעlUe^,.I&Q&] mѝL/賀A5aS4s|CQqpoIH;|e_ -!Rb}/2tu #r@Uy6Tܻ0Phu]Ļٹ_@lrLдt#T1OS76~uwliΧ[L}LLiM9!7_O? IuZuNv,/!P25䷴CrwhcVI *U5ϢDiYLtaUvp}:'{?]fmst' LzMVrMMʮ0uFS naW7Ԃe Fk;B>Ƕ5D7w2&dK~ُƂڴ,;2Z{CX S5Mh?-$JfID£&x,-q#DQO2tj@GI @!Sv.2JvY*d &V`~#=27Z,TrdBCdFW K Tz;x5qTæʙ`;*kHQ&\JyݳKBt fL :|zt^c;`3 +ɀ-V;t)>au?7Xw`GRwAWHSnNeII*pU)ai0i8i9ͧPѥfcXUV6zy4Hg]NJ<-=֪xbS3fYOC. Py֩+kYZylg 9j:D3d\އoipwa6@nbq#\A}#R5Bl p2U]& %QΓ~3TLG]BbIU MӒcl*T&t9c=eC'~:;6x5@M4 [BnդM0I>򫅨VOt525j=wS1 0b L{mkEUm O *c T̸AiD? N;Ӛ`s^ǀ檓N|sPL:6HI?Eޙ'sf2M}'TjhhwL)? 煨 J Nu'䎉 ԅB4NU|)Tm<8B0k{2`i &KCe~Mޚx!%OA!Wk|!;T$S%L;kiTxG ײ4AL&ТJ.#4hmGhZ$4LtUeˡK*r{:s^D\TwPnQ[t\5ee=UG7˞je0GC,T8|P}(lsjhvwdOWgUtr;\DM)eEOHM >Rxs|BM:M}6aFbD eQ1[߽?P 9ke6N|hyD:9jpj6?ڎ-Kz*sDKay %^цAoyK)4nj]ˮ78uXjz5"汲!QQI=75iͳu}Ձ;V*}!TKC8nys]0etPmaS`CT*Tvb:ױ9*g<L0ʧU|!&eaL'϶DM$g53ZLk)#-S'wDcwE{0G;Ii#6?CrnC +Ϟp$puC=2oY4t 4FC9/Q:~'ET\t?T󯺰u8{C3B+'^XdamZZM<:}imް׎D+rKanUi*e"ςZs2潤CsS]sNRζqFHh4asۍaxJG9 ̕"ks7u)ѽLOE>>.suU?&hTUy}T!@& ?%̣| K]yoU#p#ZUDdNl9!R hNNg0[[o&O@p/ݯC3ȦRf+9إM)džA:J7@ˌqOK y]^3cNDѠqkXX~Z*AW,&קk*qglamFtqJ-'B|m>hwk!6!S)yBcW NmUZUIˈ.Ϫj܌~vFG$Ba;fVm:k x]^GN 1t /Tۓ@h+¼rW2gOݗ.Jxl"y%MzE1[uy,s-p,MTo8xʯ k $1Y:ȉ&̨;ÃVߧi dˠ "9BOȧ訸; i]c-{p ԉZ°1gif2nv2ZCW5[Pup|i ԜRʨX}I4w@Mny'K):\全9O%KxA Fn_٪*&i {%.*È*m &gR$Le" .$8OTT\*H:~F_ 5BF1ͱNrk Und*.|sޓ=Ld*6x2 v@)I/S5=%_ACFTثZ.xÒכxfd']%J܈#Ul4:({.|uꦵ'j{a~0r9#U4!apAd@ȣ190&hM_Ē)UUmsM%d 3o8ɵ=k:T*qLwu]h]chʓK9:_ө41{y.n|-@Wgl(:\D4cm:d Ow<_T8biS{d.ڃ(!UߴUMo7LԨ}mp:O: ^5*|MSK~`zSm\T ]& Mq+HTK YQR`s3΋ "'NߚܷunKv2/o㖍`vl&iA:VmE,9zg`̞>G^IwyTШzOM%4&@*O4; ˾*=}Bk?BaoA6 Csns M`Yy,"=S3{qn*'ڵrrՊ||LUHnJC) ve1/-ѣ@U[Uȵb*omx`n.Ӵ>*SLUZ *Ea6L\UR\w{g6Dhk[g)LdeW02BV5U6U,— cG `LOU8}~ K op|4q9(\~_=m7CdxH9eMl*ᕉ1Թa2D(܏TaBTUՄf EPC ?Obu'5Hk8G$y*cCrՅrM9Nyk>GTXdnoh4Xj;]9#YM­2ڲ3*joEARzeh@rküOWwZoU^69)'Xی;kߒcN ]< s'{lp Vi3R[ T`LE^ GS: P L}} (႘Ӫ}AlwEZzev#޳)Ȯq}C{bSֻ;IT}6s]:y)\ֻ{`L;%{zFKO}Uv-oHhQ2һK Y~LeڻPrDMwbby'rcTL$Z\2ǸT+*8Qt8]R)cAsdxDz6CDagXܩvk̦uQsdPqa|2ۏ`V w u6Fzho]m&wtX|>!<]Q1Z\ӡ݀ aȄ[qasUM>XrN ~LJ 0H}&ɨj=ʿı ^_> us{39+Z~%iv#03uO_תUeq| f}eR:,E ۗ.{`U\@ dgM04c6cj R3Xl@{n5X1-fࠉïNg~~wsDR:(rJ"\yŻ_o=ʼnZ*ѻ.4a*1uaouُ$I,)c[F@^ TGR&Mbnc\wMw*vVS6yL8džjvU ԅ@Mvy{D3=rYSkC@V@3QbP!q|Vڎ#Pf2{F2}!pT{M7T{F\L_0[5ZtTgi]97Y.ըfJf,s'D:6Yt}U4q-4cB>+ cmƲpvmh:ZGf32'k#o<'' _Bcd'CM#fp5k,;OV=G3Muj\eԕA-e1 ʬ4l9l)hÏUITk- y޻PŹ}ڸ50yQ'U2O@!T<SF6/H z7?XN3 BS)0-9s!SiTUw.HҚL~)\eT{Fly*.,Qp:gy. h-O`]}1ZPkP t:rXϧ^⏉8CM2c-&,y9MvXމCp8fmJuY,tHS]k:&x`!ۊ`r)lKS».R~~J9iuuވK{лO]W ?"Nh(uBJm췍܀sToKM.Cyho6{`CCvYpv9be0U??D *X~ӡ_4T'"ԤX㪥JjtđIu)w犏aT @{6X|Ml.rGf!V3+UȔ %Z|Ujze0ֹ^1OT>0 %2HX'vN+Ҝ!7'hp8+v.,R=Qѻjxѧ'dMH?HnX\=3AuĻ>^G_m 8\K@XAAk" +YsUt5vi?cLhI_5 <)JC /Ak\6,0;&)s h&q9SKU@^5_,ͱ$&nȷOݷڧ 7u^G89y m _,Rg/pjǘҫu0\?J]#\w"b=G%γX7l8a-[QU}r=B$h MUJLƦGS3@*\"B4E /VnͩNw,**Z[V.p9gpXgյ̧kc)ou7Bh 5U@FJ&,~t7)%37 S@sns)YMtn w4'xisWXa>o%kV}G'TU0vg J~lp*D$&vgkTwU%Yi^!b\xF+' ! 3\:G5iDWhGO*iЫwMwD|qvc*5C-aDjp^k V5 (7kKi7ywYoTʨ,B9rriL]60QR *`mVaY.e1R뾩Yn5c/k{xuﵤhCFjپ冤Vh zPab4^eRbgB 4]+_񓪜SC9[QG:Q`Y+Qw̬ v@ R,^,. 짖W _yDu๲-b>.$ )'}^'. {jWR9hb(6IVh ӬxI6Z1U Nm.ޣ4E@f>Ues-)*3 u=UJna 8:~K M-ܰm̧wd+I*imw Ri&Uh>VysnԳ>"2yNv%Pb:T.a5T=\S({*G^EhZ>G5هع өrU 4XC_Ul8 o5 Vو|uDasuDO%-0n5XgUpK+#2UiR6N 3G uBײa5u9gIN+*7O$H0Tn{qla_4O@RÅkXItEGqpyjihOͭ'>IUQu6,vg)Qc~ùh=Ή*}Wq ~ձ|UEYTqW.-y&Sxl_%in&v_y{oTG#%xy,E==ځ}C -oRHxuk L%昦A(qf|N7%Li-+ j#柕O4a_n!'(o9wK{ UOV絽:wbsAbUq5˟$r uL '*75n MB- /u:܈Xj&QNMyNH0TOUJ U0u[$o__ 9hqftY'J8; ?A2F2\dYtWh^ke*ƅp^j +|+Z>DmH B]Ty,#<=s ֛MٔZHsPF\8TiK˹NӅ:h(H\Jc&tJ}jnlo}CI!::<5\wBQK"3Qp51:eZ=Ät*# [)ܺ֙Jߴ?6hӒTkZ*zu|8GSktN|62f'3FOڵҝSH0ZKnj=ڰr֕!U|`1è?-ph >Jr: ~M`ۼwC%(Nn{ h ht]\0tL|~Knhø.q7D G  jANt#EO.`89跜1isCUkATiSkq#O^L@y2E x',(3 JpM9,Q蟲aC1L dWg{x|;vbkd杈uVaT׫knK ˭h,q&VEPf3RygbP2rjS]G>I"AG&$.ϧ$Yk/r{s4ւO c&5 h[(u!7x*5&89?>wu$2CR5F_[>u*=QΥiH=f.4l@-}#54@ ΉO0 l2?ҝ#0iO̩>. L ~X[`L_iAAx[XbuY8GЪT&gp9X٦:&yh 5%pRG%8&jS&LTXvjyn`{<5x4Â\9kچ4Laa^֜X.M4íf%;`G2~s ƛ;aRWm7 y"b0,hSmggԬ\>X:~kVGftRGyoᕼc|װezER4GUFPě.WX he< Z>NO85L5Uꖵx9amٻE$9 PH7~JmLtJӣZUS*FEauV.9+hȧze&73#^yg 4ˮh"7k {af ?ȉ[tZ<-XTʹ q,YXurr=L#iӺj~fL--jkRDwGkRѧUFe+w/E+ O_ XXQ|韆Dh Uw S=2 X[IRL1a.V"lxXZFWQZ] Ht9:uGV5U1oJ0Ktb:2~v:ջ6;Իv4O5 pfts\78S)fD+y놚A' (դ$2YC*9Tu*bXG \/<P hWejgiemmf<5@u 2Uud4i# dm;03 y/SA@L1-Uh0sGDse:CYV͵̭p;Rqꁹ->#Ś)wn(X!^UfL.ȧxx*7Cx,%?*|T Ҥ zͻFJM5?򫦣ˀp>{aЅyzMZbmn4 QʂZV; pKNTr@*bJgFDd7Soxuf>eb 9`\ZM;; 1.NCCs>KXiLW=G1g-q Ku[<|a'U9fF){DU*ݝg+HeJdazDiZu1P /GCD=ե{G%"oCJm*!B."J D>J"ᜅO8ےy͟{@~C R\rS=!0ѧK#yT!(tE"hF$y J.*X\1{ySjATZAy*7,I-p/ ȱkH^U 0<5?6g.7,'{]?!°檃!c/uLko#]"3թSi{8F)u6{QRrjh^e`mQ.k nBZ.Сu wcoVm4+ԫj}793 wz|,;3!'a\4+}X OC:V: v&ʐܚj2$ƫ 75Nmi"K}eLC |fD?LZ DHQ-YLA t2tj81br`yp٢d*9pNLɎmAeUUmFSk9D,Vm+vMN +߽hsC~jMu f^7%xSkO|K`&[%G 25 pH*:xOUP 2ElЎרּ`AzAne%By&O2N~JfsЧ*urJk*}"O>ES9,8;zhUs-$Z*\ ᒢw"3Nmi.D[*jUBրT8wM#Q‹]}HzK]rWf^v4:j[}\5ge7M; ʁN\f2|YaZLĪJ5y$E9 a);҅[kKwFs|tXO>"%od.wXi TV+Y= YI瓳w*.اR=5V u DHIMl&G޽s3~S XpZ,N3.+NCϢ6)TkUCK/y[~ɞhb*Y!֓:}\;OTЈUܟe?Hȷ3AS0 OHd8c^e/+zK]N*0}BDDfh ҷ7u0Ч!5i9gT}hUˋTeg)T?#x,h$xD4MHj]hBT M~ z7Jm':[96K ;o-Ӝa-)BfM'5W(;iWR4*Zs\YեUeGR9*g!y5DqNx}{MZS{IM7G$Ԟ8Vlߛ5V#JSPĿLp22X?mLx7fsM&%vJMߝVq3&"u+i<\$'^cg-@緸<x[:5 i>iЧa̔Ǵ) ei.:+U:cȦ֋DѪh>iL}8N}\ BVΑ$!s44^hwW>:xpY[gPp:*ױ||y[we4d4ٜ±sM9@Jz$cPee>nMSԂn\Lڊ/S57ky-s ADn 57}`.7-J^x)eArW,۫mVHUi,EKDTWf;ܘ@b< @ve`m';Xu:02޷{[PTe@$$4[jqGhy'g@QRx,> O&BgdӦ$U,)؆9 f(*f?־\ڔTMʡZ|0V0]:A5 ǻNjnaSΙi'h26Vo5I3dpH' 쎬*K^ZǫM!6e 2FɏU(Xch'-e`0SшżDesFt \52䫋*} >)o\Wm)0ŷyD41akUK'MVّs'!S\tE[F\&b2Lg iJ{p橐Y颖FSFDt 0N!>yPi) j0P (TELW%  OB{u<0oJ״Nf+#%a⒨Pm4¹M0aC۟А_wUUgaw, 4wE q g$BV;eӪҗi晢J*)t'876x`8uL1˄B$nOC^ Ѱ` ^5.)o/erlRۏtn3oBegTc̷{1ZdWg*WԈ FTo?!Ҭ]0px*,j2SCT+E0%9‡bwaSӼCrsm0sG<UҘB9ܴ6ho!&!UC/e[=*UamVEa`p۷zEIM֞+TtpX8yLaJQr]\OT0 peCDw-k{߂Ԇ* fn0حŶePi{h9L&؀ByVSlpJq98[19*!Uwӵf,R mv3 AY -%i)UTCa4dcc{ydZ8\UnU>O9?v7k!kw]!aiT{ƖP[K|]TYXxzsLT2=.e=Z\;v9 Oc]rW^ ΩR;PLIsX^*-k2Ui1%R@˪uWI]PڦRH'1>OӚCȏ /rQq,cSjwIғbpQ$[O9se; ӣ[ao^hP%Fj'?%/|*FnwWt=>LZ(妨TyVLNl>.ᕏ;CMZTAkcf]QQn傘3 ohdKO|rXJ]Iܴ 8Z+\Vl/a, ³bIWɐ\3GhEmrU|DuԢiRBmUtmrjԫW1H](˻q.s_{ɓ0u4Tj?OfA:a&_&\<=Pi0{5*Lx^4oq: xUuwM@I\Fқ1iz%Ps olUsbӏSM9AT/ʂq%RDStt鳆 ]} }ZdIaM"JaW`gtF3$Ð9x+̆Ɠ@ˉJp,6Qu>]Sh#Lp  UTS#7yP&zǗX9.VsG4LTmHnAE0HP̭knp6p*w901qE5Bvlvj3Q2\z8L!'9+F߳ly'CQwݪ'޺X;iOS\l v-Yn!uXhiϚb|d%bu'2x&ccyJ-aOjwU ;)9BJ*fLseP4fn/U-dG ƈlysR_=*¹5o$8jT#^J{x5CڲJ *MDD:SD+Sp W{U3s'䯜<x!59[7ИCEVRᓪ[ӢX3> 9o)/]/" M`qچqopS\hQwo,Ȫnm~JSdnNtHY57_|Sʬ{rΪH1$+ʛYCFaSi/rMw77NeuFF\uR 1QO-9!9ʧLn'5S: uTE&G&T%ZR9yu'HPiקCZC ȂE;6-_s-ks `Q)6!KZ\yM8-b 4fߺw,Zv؍&Gka WFBteb[Ҍ@sXb7`~(" qqOڌ{@sWw=[k XSsia^O-7:}REĽ%֋bMXGT N\wqf_lh ~zdW 35cNH^- m~^J%Li U*=h*99 dNי m'4 =^ . gU,})H-2=\qvQBiܲ-TNSk槌5jA`v] ƔSl\nƗD Dp˞cU:&Gsfc0ċ[2+[ leUstO0+Mw,M9җOY~Ik,|k UAg*ė.W,M  ]jaҜrȭNU= W$2FP8H,8L;J" M~92~RhoO"2P a0Y!b ơӉt*FNe[48Sʁ#00!„uN!B%JjNS` fm<[L X]u6=murq ) HCŒuV?wݴz*2tM*Tis=ѥ1HSܖDo(yOsH*o1O(CLӜ-v{ˍ̢skU:z+`G$O g/?Z5Maf^0o v̑™d1Ls I|,[%ZrWDJ*خ.>ISME6sT%V͍ UIU5c龠]nssa eisne9w'D 璥y!N;NkF\]uE"lY%1!;@Fn赘9jNV$"5:c)d+FY&gT~#%Vg+[ {<ˉ4JB6ۡe0 #67'i"sa$oz-vy8ndYRyT4 ?ֹ/oSV>U8e &2s޷-p,NAnV ՍCy2skþisx ϼSZ2o S\`<t9"I俁Nvd֟MJFن>*R Sj Zŧz@]Y^wPYZO9ALr~MYsT(Ѷe5. X~*8+-CSih]#H,*=֪n-R4PsGBTE=i'(Md2Sv:mҟ{@DCT`ys*d3*38JwB9'l/v* WpƥS~jwCvVzQEPlrofyFI5<&Qu٫S\Ot#j"'gJZfUzuTkK}+_^ jnq7wS:bGIW&O%yuBC( ؎!U(L vRӞQSgRK%We4ܮlQ'V3r` M,SN5`^ MpR'`*TJ\RXzTMVΪ-<{ȈJim뾉棄{f曊#\kǂJ%BoEwR匩;Uk|r@iV ''Z-'#0eIg;U'dNÇ!hPUFj])Nb&TOlL> V]᧽,8mVĹT8+XִHh:'2m uAµRT*WRz&419tKP8dUVXF7yhGvy/]R(aB eU"ntLl:k}a4Ʃ97~ =IWtF\NM+To$é7@T$ocZ eW]Nn5淘iXBo&HE{JJEك\i,>6uH) ND&} r^S_&*Gk訷wE,gz 7xEu "M*Y OIr*`yU5r^TAQP*+Xp 몴oBuѣOMU570莫z,嘒\5 _CA8g$3PcJ!90V"s`}|2M[f p9YUpYF\Z/ԫ{9J;UYCZ9v7gOk9ͤ*oI̪o:j}1u^L]MډT=}ٜh~r͒ʬUJu@2{MIw sn*,IW0vxO+HtUM:cD2s䍆hr4ө5\"~ix鰦SW!9R)ٷg&)T{LL*$#;lz|Ka{KQ{Y=Rxie}Bc n2X иsrVku1~j)\w! 8rꯦ3sHTa>IvF״r5wODi <&4 S[̑MBtԩb+:QȕBduqU ^o//lt+zL;,ް=NY"%E)FHx&rN 2U M-m2fJLBf LtswŎ ijUo;MÒ0zQĨ;;D^rr_(duty-}Ӓjb~ٽZfa uE2=9F>J/en|?p$Z69;ܿ5%O}Jgx9qpRz]a>jCi>ͪKG;+°&ꆫZQ@dUVdi)Akp{ ENо.l`)W) %hMb~ xvU٧~k E$^NlIth1NkɸTs6RՍD4*nžpN&DHPEc*7xE1D(vFS*Ԩ[żAAJO)>2d?OOvz6~jj2Y rw\RG{!ba-=OagQy"XSs#+v?6rN ouT5c4V7*'s)ﵤԞM9s0uIR$~0LFY}U;iGXU:#2:"DTd*dR{8\Ce \Z b~yަ~mGxћ] ufb}nG%@ BNNl#]5S+D禊Ri><>f\^zrMhh:(VR$ǂ'6jaVUDGUwltU;E7x-6E4Vtk#6SHjR.DgR}:&Ϣ;Ng%15n7\(maiញԞM@t7{ \;C^HB2kS97 fBe+5G2WխRi.{Qh=G0 ,‘vAN$:W35W7U#z쪔Lw__:d*] O%~Sp5^[bhlQs2/)z;5iBq.Ъ}Xݐ7؆7VT, Io8}GnTZ> hXpXv统2TF4hiS{-tX|S4ƆC%jЂ湠>J@@X;6 _4>US6YFY咎0Sja$O##$ /4W4\Nj)r@N e8l+Mkipo~d'5{ajw^9m&M♘3bknYN/x,FWv޺WeaSRc0%7uXLs[L%f|4!n)wFeTQֶe'G u(ӧ<ƪu3LjKIbZp 0oi>ebnT(!4 U*m8 K2Dv%:Xz6.rprn'z.h-JɍXی9> LZ%awj# m26l'DFK٢Uz4m> Ana ھ|+轌&g.i'[ ^Is# LjeW3B&Ys'ՍO N i-2GEA tR⃏vSpd+<G=CSi6*r]6V|%Xs)-M7`l] a&e;CkOC#AYiXk 89љ j NB;=.yTR,7{\rv(U#019?-$NS0=ػ{f::AkI 0|D61.:}3rM|D˺ǒrBU|"}DڜUZ+u3+w=C -Dvnlޙ*e$4ݪ4(lg,NY >8y.-mrjpvbvJC$*gCaC(Or2`Ach&.U{xf6X;a,Bu?X7$O8Uq>ʙ u`Ԯs .7. $stnvpgM<􅀾7{+}]֗d2uh_Vv%E&Lu32lXaMsT7o{IwlߖʂXSgx0Ϻ83PܜUkR~G J\iʣ"|s>AT3=>JȊtۉ [FϚ̔GM}(rA \sC]-eaj8Sk^-QB%5 fsu%]"NjRITxl9,}FcWg׃roŰ_.iuNU{&-N?못OF3F&i4UټMdHtU sȬ%}rjmQ%B*(PBjjZVHżOD:W8s{Wd2EUnL)%6Ub,Y==9'ɐtld\!P֖˓qL!hAdN nmV2= ִ 3 Vnג Dq#T{aꂵ BÚ3eSWxM祖תv 3d-B. Xa;CmXSaUa*yM I=Zݮns|FjDfs@?UfYP^mSLU;mpӲ %5?Ui!a9Z׺ R֑~G)X"ThwsR=Ld7K@]a:g%b(U^915 A'xm$|kZ^i } sN{r懚U reZd4 tZl(hOU0O"4Ҫwµ̔@s|Tҏ{: koV!3r&ZnU}Wd}u.qz#Q !4!s@~~UЧv}Ou#;_"֛ޑ桽Uܙ|kN¯sT #Ԉ]J%=vTe S&9f,Pky1Z r6$?6)%Fi=Rw& L1؆C'4.h0>h_dSB&sxjNܼhahC[5T\Cs|M'-|wfL/7UPjI?W4*HwQĵǝ:UZoHt41 } wB%ak4`v T4f9ʕa9}wBZ2V:$5EbL>tO>˧jkʕAQw?%<_3"LB=#Ȧ,{f]$;kxО\:Cs#=`?]NkHeyhi҃2VB r\i<7FIĺteZhRXU.ͱ)aMa=&ӱ^շ=ӏZJqZWx&TU4DTЪjMKWiWsD(ŚIUAȝ=L..cs/Ɨ݀g'e&:>9oX4.n;pcSt-DHF[7 VW\Z4^X& m h@JWS(_4{6%bnCÚzrXVRa{X*"X=1 d^2(ves̯֗&}j=א⪁.>U80IgHT]}6A٠Z e;ӕZE:O8TϮ;FliCϼZgW mrźOS-ہn碝]TyܧLWqƆ3h>j/ 'bg,=[LǠޛBz)D<5G0}j̀B{H>\JjQUhTTi~ .mQ]u<7;Oo3)w\-FJ g`ZoD)x)9#s.i$w^a9X߆oHj6v\:Ueg7LFp/n\6g}jRCi#ԕ x,3s(ViNf*Ҡ*E혒R%FkLֹn nR):]ҪDCQM-yJ!qCp#CITm[!ScZchvjv75O;WeN|әMIn'{jpdHdQ.YAavlz Wn:'8#>ΛUJ֍tySCfnW6T#)we@(-i@V_ ?6P7 | ķyftx {FJv,sbp? #.5 R/5%4Gf8wBKxMzmNצT.oߪkq M8OZ_)~OK?/~[R⭯_U?]OS<U[E7˹t*r }\= xk+Ѷd VNhZNIxfۂk- sc< jՇKG4h:Tzʺ]tD>aO5lMk/!T3ƎMD0uw5ID*uYXCr(3iSwy9pQ_JNFEnb&2u]>jKFlgihEcYלx.h=Pc]*uNWJH+{L9/9*X~j`溵7̥N:vs)4O3_ُ5]ի'+O%rQLsWeL9'"B| 4 jA @6y*[ʏ n+qWe)c\k9gaSAѸj` <̗@3UO<; N qDCG4uz5/ShQPTSOQL`J>HY:\VEd tVΪ DL(CvMkG=Sapzc C mV6&zKsMt8N})i§!P:sDv^V'kwZgMT}'3HJ7QnP" zJTY2O%Ul @ ,c:mZT fB##`ZuPŴQt0BR:Xw @,fQć8>< f"Y49&fgeU~5^]:e`7':u,S\Y[1ⷕ(5j? |G#.|gzefx8ukB?i|X:#A([:FY;1 j-ϒ,{-O'-P3£e'Q06-ZG%IkTꝘ[[S[w3fٵ)B jhh@#cJM*T䝢MJi~i |3& תcZ4().ˬ*iS>P4ʡ2<¤׹+| .m@AM2ܑ;2Pa -Lw.+0!krK[iڴd}L vТgEKMU vasyƂ:ibiu\C1qUjƊW8{IO ݖQµ=:/@:Eu'f#U DʬᄤrzØ_uW[!zUPQ2m%vχ[cZτB2[ݟig4l[MZ [Fgލ ˸Jϓ^#{?U$1RŗU+L E%4{QŞuV=h{E5 EBSD>aǪ:.ĶTve4vB湁j4RUèR:UxWh>^4k @<9JFD#/0 rThv@)Z<iDɘPB2nav=3z_U|0U.l6Mit}5yoT;2?D;63{;ٍX:Peʥ0Z֋O*0>;]Й__CtE>s`\@N*q2F6hJK ^\ײ59(kNcz*"sr~ Ɩ "Tq[>}"|!n? ^Z]2|jW^+FJ(^ժߺj|@~[Y nqG^_ .+?g:Q؃zwRvD3qP~mLj+UDi4ieg:ފ"ȡ =QԔ@lm0S"v#Ѩ]Tc G*g'?S5s,4 C pOuMaΌ;\c]6MNwBJզXNuЅu,{90@>6㩕O Q[aT ->K?(#jM+z}nޡNm-<|dJ)^2\uL'*:Ҏ)ky(wTtxX_ItOJ8*cʂu+N-{rPA6i $CBn`p2U,F\\^2sAŎu>aqշ8wxTj ԘVsYEvM[t(EQ71Qy-E^S02Oe}ۺ5k=l%3ۢk5脑Fa= qtQ&;HC~%wGl>Hf5*3n~'r#[S#p02ۊl{@'(!f:#gʔwBO0SXV[fRZ%> L;NSfZW~ZJq4pqO5Zl+ Zk:m#qʻJ9BsI1FX snXogU!JvA(ӞIB+w6=T:XG=y\; R(s1f<=2@Ts](/P 6l;P5rR,LYV״ N4[4tN:X29UUN.}E,7>V1f%We,óy^:'CD a9>IτriK HFYl-uԴǩ 6J' Mͣc!=[̑Aˎy,vy#vR$Ss^L(ex{>6TSo)nYڭvu <[ .K~uG[y4%Ti܋2VG S堟 MG{sx;Y+kD OԢ2)ۄxڏQ.UZg,1('8eVX`KNzme[gS3MWyPUKtWgϥJ~ 17T^`d 'xRbI(=:nrpmo/Wdjk 7ef՝S]|DmV4R O4V)T/K9B5hѩikgO5%Nxy]Xcc*K4E܁i"-/$7lȢ@Q(#]|zq,daQ]Zg&ʻƏNXmPzT Q\HBm>(*7_, niGTiyx#De@MdO܁sO"@UO n#YAVoS^oǺy=dmi=q;SLWhewO|dn7mi*$ !5vJ^OiVh> lfuLIkD\xZ#6Hٸiin B^:L8OĆtFѭMq23T+==Jcԩ[ﻗU|p^J޿L/ɡ2{xA{gf@EG0\>9a˪K:Y#FӔs+-kE>\â8rz#D̦Sr\6́Xwq H-czϨTi>Jn\*j%sTܱ}E>J!Jķgc4Rö=IOe\JOY *?YXe?Sm ŸQ#O8o uHBwOG;=p SE6ZV'Z7ڿ̫r[*frD5+:ֹ*6l:x'9O;yu ?VUJUjS1nV5۷wg?lj0NDѬ#pU=Gj٨FBZrMAuC4Ji$D\Ni}z-T65ZV2*2+a麩68QiVgQ>"sRk"AL&*Ew֤s@:V xF$3 lA. hԮѪk /SMJG)O3(z)_$S7JJvO%g\@lڻLN}oq޳z}~~TfSNKS8"&ssP`cIB\G23Nhx!E[ta ,~6ia֕ڮ`jğl=iPlt~OɅ)J gfkS䫙x~}'dZ ݵnPbwڬKNGW0Sƒp,5Kvb^@BgogvӓSmw5jZUxty*bicXV_SCZ^~kxOwz%ժa&qmG谴i vchS mJv> -Leτlے_iĠe:簎FY N~W1q2VWa^#I޷?'o=m]vdB#ll$aooX'=<^ݟ߳ǧ/Oُ,jL=[ڟ)TK/\Q=/M]9 'UN&閫g JۿمʋUTuW0拭nj~A>V>ϟT)%4jUnr@,q2LftB 2d45'SkA5:ըiG)P>^)nwU  >4r $ ٔYk {Y8 sd7.J؟5E ]z#P8z!fT _4l)ԣj+jVJNBJrMRRj:tg/#%%wTP*V$P੘jWsF[v*3Uqg5T2ghpp*t5 WFU].m60]9O%ӻ8&sXvW8eĪ6ʎoC4V AD%T' ȢP7.kPw6Wl ܲV({a䩙` gَ~y>K5_F}@'ŧ}Kyo-?]OG'/Ysf>c|eLϑ> !7~  q脲\isSu> 0_B}E.[9gD.)Á̎$KLiR۞qJd^hV'*o$2%`"S Vj:ݍQCdeqdV;5jX[oSs΍`_Gn7hG캎s 7FĈapwL6AiT3!xI˒kČh OǾ|SqfPs DӁb!kD<q4؉k>W"F7_tQ0Q i꣢ᖪG"@o!o|ܚ#5],"Lpea>zɥj|ef4֎gԍ(F']MOoK]d inmȐ &юMyq@Ore_P, wzY&NtOUjS(CC"ouF\ Ag?(>4V z"SG4LS fs觢>/V%ًXnN+ RkT!W͖Q1]>O F(XoKmi~JFl:l"u m-k:h4Ph`6yf 2uD-LDSIaez.ਚtYhAKg%9ׯD5ѦFڬwB pGX_e//o;4^}܂VKEMRM,~v5=JƉ)}V^t2sӮjeTL.`,5Bg4doa*l}Gg2-:Ӓ&T8ŭ*t)Nt\ch戹nNJ '0z-lوL}.tG⩹|&dBu OA [q=%bg5 2!S{s69Ǫi%FQM}` *a c<pz S l:eRC$jUkEk8^܎[FpCVWihϚi FO{5s_ZZr7K\~m01K/`6EW@ EHwq;zpS2PKt(憋aX'~QQ%S9&Fg%sA4ӈUrnPV'V˧E!s]vL6BqP T6YQmkd=3i{X@Я{=eTeBr0+~Ti> d>m9I^!-?4j1úQ"mKX[mvk6 Dw3g }"~p&h6WqfU!i1: ǩnp[t`ٟrhsn-AZ*:´R.k]uIXnZUk3P{k6C:,V-ӺQH:tҦA7waaXvqqT60 Tk~4#":S,jù~F]7KXnqs`&"KXJ)ucg/P(Cdz`z`/͞MT1~s]/@r *-xcF'w% 5kC1;E@_Z@p!YW.yT:>a,U">%aulp8jqyu$Th~9*ȯLwEڎ=#[B~c jsV25C5$I/FK9xXa_ C搏Y2YHk k񚅏yL!QbX ;)TɹZNPĹjZr̦3ؓwąs:N9@Bn9Ŭs.M=o ]e\h4+=U3P(N e"MFl:,ڀO9 =76QPB!Fzt^=G jiw=!s|=NK IvxRcVKꏪ*Ylkn#6Pe&9uVs{܏Dw ̂{.XOrtw%OxSۙ'w^{NcT67˞9,!zӛKb|SiXB32Ng5V/cɸ]5iZvv/l'Nw M㫑mџuW4Ѹ'H@TWkv7R<KLKxHXw5ָ"i .]ƦsO5Ru_5GT0{1憐-vl(*Ttb)0xpiNPwPThiC|s)=f765x'8O-\ A9ce4xf)aȻX*)9SCEsRI$a'`^ݽj*1GcrUmqZrbiT47gjxl#UVT0C8Ӣ5 Ou{9rٮ4r*6I樄Ջz#IYQR ҡz=C9h门=q9 KaVeMt$ꛃ5#!apo5*ln5nchx˸}+K .szeU?86!cs^C K|psnnm*2eȾ26xFkgT hAiU1vIyק*x%# c(SvB1)j+EFWyW{g/dvBW*Y^iվ[)eT*;aoGs.qxqm-nz.4o:?xZsEUs5nOS^hQ tO*i0N(cIy'c@ آS<W#SPMny#5}ymw~Y*Ns.q19Q b|"dJZ=Hl5(}AN=HGc̹(u9M%*LiRDs cJ@{]@Wg*T)CM3G9&ϦMᎰ993:Pv"Bu0Ak9d`Y iR1ڂ}Ȋ̔D;1⭈s/oUw@ڔ\eBF8UB'ZySk|O Kď }IO]cdm:-T"9&^?Tlq0JnAv)g+m3ncU7|>ypmpSS+JohmkG Y5=Z14x("bUJUh+]T6x-dHkd4%Z.r)Xu2S h)7UzSsog7vzmHTm,> `4zXc5; lxNȠ!"%ǒrUS Xr%,%?[ 2~}-Cռ붅Vs`94N~g۱,6Pj4l.)9aRR(Z@Ca|@U<{"v 182*x8;w~yKOXSd\GQ)6VjԼc\s1RF}sAUw2+X37ѫU5hOd| uR`-3/F7 | Zb*ꅃ,iQBpU W yUl ;lzNUoe%¦q0n2h'\A iq^=BaG v=9k@U:' (b\cR'l+VKU!BQɡVw ~+TӤ7sUDt' Qq4.\1cZp194v"'N֟%OsV6:䱔ǫNg0<,}cy^is`8qb0Ŕ!#%P\ ṖRQf[7㘔ݐdl!T 8u`PB}z/7ʄju9l5ͧV p!qƣ" A&faL$&ytB'eM!"}HQjJ%\٪D"!{dj)5ֺ+vPg-[SuA n6g$pޅvk!ȃ$ϬK6{ksY(QȊm^s;ޘXjK\Rܲ@`1M4)]HAI$=*WYRC+c~}Uz>u_lмz4=c'g_~T._ @!ڷa@"U<^z_~~/@*0G~iF\n_?K_Ex$ ZUY>緈w~X\~z+^6#7~z5z]M0dܭhOAՍ_櫽K/1A .JT^z'Hѷ~VЊGp\Ki>?Uz\"EJIRz1as~'Mz>3юo ryBw6?1 >"[NE_/KYCRJ~?/1;r߸&ehk1;r)*ܗа oWԌ}.\r=JE~RT}ULFW[lsbp&low._EJr+֥~ z?c0{.RV&*[^(Korn>w kftbʑ??g2J5^*TQ%z+ֽ.z GzxQzo_ 4a*fg8éf2#wT|Ns>m!GЊٷϪ*GV R>Wj쎫Uo7/>WtQ]4??rEܹr2C>RpޜD:Bݦfrs2J5ϭJ^%7j.nja$8QF; +fh #>cLEޅ6鸍a ?螧JeIHM+ٔj`b*tB`gHpZ <²MvE87ԇii7gңY8cb2d+Xß iGv} 53m@Cu~/YhXq;???bjU?NvVyG3N& mVsTJ2u>gѝNNs؈<,U1(*yNDU8NI\.j3 OF&my+oqڑݛ@|5;F6mmχգf=JYcxiP.+,E+vlWE:qU3<>*e.Gac/߻ .^ڥC͌?'藔T"yϜN2m֝Oah6W^"9!Ҫ{2y%L"c/@ s JqnqҪ8.Pi)J.eB%qiҖ2=lXoy!Jvmy4\?O?Lyf_&+i9gn!T ,]$ZXtw 4vN_RU<`q63TT*@ͭ2>=?賘YrKhGC yC;D"ݮ3\4Yt!kEt4D*Ǣmlf!H2ҾOmW3Lh7+;z=L:̱حFf}fplhHW(Rp=L`Oa2vوe(  >|eN9)%Snoq}״"=&]0*ovK;Lg̳rwmԽ[]]"hT[Sa|%{bDlıF!)vy/>6t32j#+LmZ=c&F.[9vR&p`U [x8579;s1Q)q803cb.7n|SfmyBHIv?0PusNjq8bQC/2Q<\7=sn[+5ۙrQ:tvE2}c=೩Z_/IkYQ0ޥ⧺tY,c5<J4jzjp0į< 6oLx,E\;\y0#U3Xf2:/?ybs"@W5 -BPȘ$;P)pep+-@E ۱h ]616_,*s0}MojDbKTP/RlN!8rNEXS }}u,u7^w/>#a-x0z DG&_hX`AaP+؋|G!gh;AWAn&sKPҍq*%q:ypzvs@Ydv b\S?8Gt,ra g#TBcؼkOc˯HrIGf#LLJd,N<gTBsWCA0ےqX_?y1|\3PZg?f9\yGtCL6q:',& -ܼ{pmy{\ARk<^Sľ(HK-qRg107R> IЋ^[+\שjHkIot@-⧴7V,*9 R\UyTVuaBbƿ1 dQ`v= @WX3RSٙAkXZ~IZ*4a.iC6T,wlJnGDKu.j+FRlg3r;.mSyx{WgQ*Yt{1op0/b3M>YMj:-ffA3 p#_qa!-kCSLxyByn#Ek~. ⏴ ֈ RnOyxM w͌0ΰ[ܭB%ׂ__B&x..lDJDZh[l +5F:x;K+ʲ\yW_@?ISo[i<ՀܤWvFe? جck-وj([ݿf06]I/]dUT&8/4/_3+2GRj*AM O9bur*),% o}L20~5L}(~xِ!8l܋ßxfʍbt5ůKK=ԼjnmdDϢT3ݧDmLΑlMu2W*0Dqc%a" iEi¸Ut0A/vcEyx@} *ΪQ^ﳬWsbdNC=EFf5xmoȔCWib(4ЧZ[փ0)FA+t>ʽyN1lƯ>0x8gAl+lA2FI=C(3G1S48?쳵 1!g-j7wnT,rlN u㙀#_ beĪ`e-?t;xoq^[7y*srnR13kOeG ەKsDG0TgIm&"*.|x]y{҅즾"&X :F Z;/ZVrusx/%zwV[{5^E0PTo]{]|LLM  חS  6(~g1*ҹpmE _SpZ{և-5 ¿ܯ; d9Έk$i TR&~ȣCL;1u ݹv`! \c~%{u}1^2͐5VƢKuMJ)PցcE bX_%3^<ŠeQniGyJW_ΊbcgCg'Ɇ8\UJpz,C/ ;ڊe*p}eԷ s̭l0*Rw (J2V7dSY,\^D,YcS^^cP@n@ l?(ljivþ[RTcm,x C qz^ h5)okѴL@lk^pi03sfR!W{ruE0޽P7WF*pFS' qa#kɰ }u'T 2rxѾV /5i7Ra"ԦkSn DS @ߺjNf >=̅vfeԍƱ(]g/i\Ӌz@}ӦXiP&N 3Gr7v-h;AA08Het;@TldM7Ѯ8Vhׇ"t-_.#e PglqAvR~IV|_JU)wmF"rU*B(ڷ v `j)?Kf:+R˗P*>ڞX & iӨyzAn?L*vʺq:g!ZbF+Jx9eLьF``R\',xҜ% k^ 4,j8L3r8(b(d̥]UgT/E.AX7X< L¹8z] >&Өyc/u?h5SD#x.+y`tvB4 %{,”fǥC} ܣG ԏo X$wgYeCPa)D!pP=H !P_(w:x״Vf%F_/(J> 0 X0Aw {17drn򍣱8N58or=C\eTs\F*.iZ/""NCƠ6b=Y fFp'_1Fa,~^ѹvL%NZ;Ҹj6^Y]NKQ9jZy .[;i euʸf0S߿IN{KCg\(-~ fA`9ka.`:]bRl~nMw^ n)*,/@rA^rGJ"SwXT&Qi?X9d\zeDzE@濾 ™)uɴ=_i\;]>k#~7,b75tStpyMn%OG3⢪y~hLcah3veÈnV꾦0/y}fwf h{`r{ΜRq&HMɸ?|i4(, saky4 =LX`10̂^|GBM;(3O,Mnd,C|)4VD3l@v!`(')il"++(cXcJۓ,z@ Mw!RَCh9J- ϓlP|[.lxD(XcP!Z A* -;G1*̳Es+̶yS=:"ʻLjoe(#b[ ϼn:Nx(cWeK^)=9v 阱YU{͙;R=it%İw1&˃L+e nkcɺ5W_{]X73E)cNO[?׬~y3]pP9v')@P܍+y:L}v_ R9iCغ1l&MP9 3.ؖO0ipo;u12ͣ-l4W4Dte_aX#>ޱQ!YW{JþiN7eȩ2 \P]XI\ y[Z#s{KmM)%<ܬumf:Fߙ7uh&(RPlr8͜)rۆe&<`Ru6cY@]piX`!RH֎ =P;n=\3" AH\5'M GP*pF"_Dv8ʑ 59w6Cv uc`N,eBݢlS>`-zSG0+US_`INk(O#[X5n58|T[2蘜)> Rl*FI>:]zinwOMu_-R՘8 LZ4S(̞|J^eC8ԶMj80 kb:#䍥t?x Mijz"y4)RKHŦ\T2X4#ڱ݄۳n,'vY"mx5 ;+(}k ˿lJpo#/(lUQp8S5NC/-76j%+Lps0iS i:<@h}UӞbĠ~߃aQ7#*v}}7GGGQ$X֥reۥuqC1ʧk/X7pJuVo3Ji%FפZ:VR 8Vdeu-o=k@-.E~D~9j 2ccT2+fR-*myqnLeTEn9˔,5b] N(Q 2ݞXmxNqf/-WT3,LQa|.:-Ws&1BJKUUQu/ Xqc̰ K(uf UkHL~ "YYƷaSa3jÒn3908#_X4@5α}pt; q *m\AZ8r2ƫEهR> pza=75{Ģ2W*:@Z KoX%k~􉉧P@5RI 6UET_vN{7dfk_!N9%PY7ۤu!PSTBUroA%-H"2XVGIsIQP|п rB5.p}`!riC&n tKzL˘DF55+;O러DYElA -grl= 91Q+.%JSS2ӯՌ/^1!􂥀ٞ+hc^Ng>pdu9:M37+5g,EEkAy*lFQnZ~C}!WpwU7*k f6fQQjȝ扺:ڟȧ l kmAp@fC#ˡLqs/$;uu; ^S7+M:Cдۊ ;&ic.CgMU}'\!{%z5X:55\CQTW8fk>0  w,yB9<v1{ܪb6ǴW\thP c|z |6|qqgM9V:B ?FT9ה(7G N8 iw rx! jϡ(ݙxX2ʶcK5}i=u5Cs+Eqhj׈EU_)!_mK xb珙@r̍l2{9C,T(r\rCb\S'J[';K#؊!*UŠ jcuD5)ia*c̷muoAd`@k Kb1קoN`DR¸ , zb%骻AϤtλ4Q,|acEyuYֹ-|A9/iV^jTF/LOvpOc9C=?빉Pfrzw Ɋ<Z.˗>ފfM;Fh3V% P',-+a] KgDZZVq9D+f=f RK|7 1eQGwt9T'i˓ԏ ^O9Qt0 Jĕkkc:>[~q Dh<=&`{dJΠ BxWPt%T~{i(vnPF 5KC"H2\Wi'ٹ|8P 3 ĸ1$t} P3g.%{n{ -*k$OA<@k^{VF rŴo=wίhT 2v)itsrK)0RQ&̩[tg\k YmZ "gdIPљiӣ=}fgl8l}c.ǘ4*`fj\/ъAg̤pO35B_2G7QsʨhRၥI{푱at\{h![LJhcu>D׵L@3([|Fq<ĺq4#L^jA8}9#ѷA% 1K_V`菊j`JsZ, n5|DX t.}%ٜK^ p7+2TPjffn&b..`HԏJ6kI*hVSe+j>ePɖW (prCo8W"8"eXΐYMaˮE5\0QX#q1A/!~ϛ"BfAyc]!N ^ٍve(YA3CvьMҔ\4 i8HNPeLk^1,a. =!'V2r^XK֫`!*AǼ!u# -:@׹ Z_׏JE%1S-naNefdK;ezd 4')6;Wr˅)Sw٨ w {JuxB/fL=Jd2ڰဿq*1ײj0lX:jMޥ59=a_~%x/`=vf]VWY`VHhkTy?ݽo +,D6Kޘ:Bڕ ‚S$93k7WU|fiD5|2ߔGRӻvw !2'<WEo{lK!hvz[e1}fo~¥3 _1S_蓏*mR:Vp8qvo@ 8CVK@;$ eBs̛\AC #K䎉fU>&p*X/tpD\"X Jd,2e h-W0ֹW0-!;%.D!uԱo Geѭӓ MRPe/*%̴u89Umt'U*avC]ʼn6}JB GKU+xtu_tE,Wԕ_N1Tq1T}?NOw0  WlPKtK!*]He|ͽGl)cMÓ")KŐzEas>*O:h4Bg+/ DhlٰykY̺f.HJAH9rDWq2tb6Se۪K*,gC@%U0tWȻAD|Gg˒0qbY VZ0:V]Z")}Y4ltNyqQM13D 9ZΦbG&nҠÉg\$p3&%UI}J8ޓ( N}ҙfIc26w@z+S2sc,?Xg^c$FIqUl {_&Tͷ̺z۪_އ+D1b^gCpA\m>]+1`R_T ;sa IZ|[9s1"n 5CJ(auqݭP:O4.s+=rgЎ2v< HPn/O8sbA|0<%8^FtA9԰Zw4*s,r8@ hpgBU+o7NEq @w ѾoNd\W2oa0sI"'Ml)S30f5o,nQLBk84:i)LxodPkg\ L/wK./t k}BV%7kC7eÇ$h! xGZ6 &z?+LcgrԩUӴLgC1sӦmdh:N'W~-LLsT|z%-X9h[|%%Ur)Q:l+͗|CQC qRx; tJ 4_Y͘|fep;@ KcL '|z852w& 0&QڽY(EI#7ˈ[K Կ|c?R4ωe3)G Y2q) ?XVx|L`QMavMҀ YQX%mpg3M`x J+oˊ-0_k?_n:1-# n*vjs/jxO[U :_R{C|S5IpV E[ tDxALZ22FAܹ§KPv,B FNVp?E}f$;L; K_\w۲sS>n:^W3DsMʲ/OB$Zt=|L"~Yrkl@BO p1R¾H0M ڨA+mħ荆qJPz8PJ@59" C QIT6yn.v#\φmmQj ^s/Ky#*"!6C |J&֘2%ӈeK%0y[x5ᙅK"!^b2Z2i˙˟ e)Eݯeqȥ5j,3]lVN2ƫ5bo11u)~gz~"r_I{( =sɃT{˼u~)9g%.XE)Lf |XI~R3/WI!=#)):J^.Zqܑ[@aGfiޏUYvNndE䧳LTTJ^qPY%'A8b㼩WM?1%V^.Q%{mpSC;#0$ƈWmTˑ5.ԡ7QU~R,\6R!:]A V @x=}fơLy#=pSW A&h>LQ,VY"u9[v)̣j2xf'a'Zy23#v} ݡs"l=m9(&%q*VT N%x[~&%~Sx%x X[^#ӹz̫S4dv:CGPy마NYНۀ.VVD`r }%z~ ahr1b ~GRSvJݵs2>t2q՗z9ˎ𣈬ll_(JzrӨ>!R2z03gY>Ъ]61.5Xeݩ(/ӈZΦK7q,Ctu3 hQn}2)eJTfp)Й+x#3_fMƷeU{%T;·B!$3bkhr{w+'94d]NAx=j S+* m9-`u8Ҿ%Er|D5 O̓){]0T8@<[F?5@r⯷]"-X!O \`b5Y6lZc`&rbanK?@FrE a[D6_M4 JLq3+yQy=">龡+'%G70j*eHs=X2Y]~ muYH}‹28^Sb8QT՟hL#x9Zxk~!¨|\6$p }%7tK' ̎YU3rzO6Jۙ3P ү@f YY޸] a2uC,hs ;,wcmcP}cNC A0[qK?(bYiy 8G8{xѴ+ߙ*@k6^N\cqEB0 ![4švKWvPR\b-WB}Eܶu<ǰO*O7ַ+fvؖ0 FkSb^ }n͋ףFN5dPNY(/-VT#oըfImn6Ʀd@B_ISў+:Ni]Z2^.`Kex?)J2uM%b yFXf%D g)k1!jwGO*usn7S2wI@ʢ1fs 2RJ6R 7)?Mbfzn'L"&E 1'z!R^FK!}Iӊ ]bZ@Jt$6^.v3+ PIJ)2FsYi+OUVMyDK_dǰˡq9Кa va-de`ģ|Z:=yo`Xw1緘δJqYr^4|t乱G,X)X,S \PGb_I`cv&H9%V `&6ʼ so꒩ 1CAo,))>,Ez-OA g0] aK֞GШ1yd[T6&؏q ,t`G_&s19Pg!'7 9 fwg3I.eDc>F)ΉLWY Y4xL &,m2weN!ĽgTh仪LqZMd&Xad\1243+q 0H)}QJE* Fk"G>m>ӓa!"{ѝ}i  pLXQ\< /o߿݈L 1 !y 6`dӻ2nX)^,ZU2F'2q}rTAaVUNжYje\=]fFYږ\/3$}.Yr.kCNh ;Z~k%-.;!Ny"}W&#y.s(=/wؘ>VO#jiЇ 6kTE ETu4,}AGXo/uܕ9+r8+ a!eM1$p0>"Pe F\g_5QQN;C [m3 ee_pg‡SZ|[?dfVl8-mJ{2G\־g'mSM;1M%ҹz' Omkn`/ӆ?D:ԡCyͺd -f/Qx_aZuJi.WlDR=/*EcnTL}!=WXoC|-v3u9k5"y&|X,\;8`<,GCkDܨ)v@XfEL-"\*s([߫}gC2E%:*3iPX9ݶf27ԗ6@4*c!ŘOɣa _s+8秆i<6|\(y_)a{,'78;[ O{\4.(BQ<!/oio.ml)2b!q d˿MbfT0j[he]hyD`/3w~I\^(&,ےÇ'C QLЩӿĻe<& `1/ PwQp=YY|ŝa1nZa~sh혠IkԻW YYu\J.uqa).A+sS)Z"7u.!ʤ y{Lyt˭}Z>k)2:21yu7K;83Ծrena4zz1s/G$̻Q#AX%te}"Ef51s3[T/j n6n*g5*+iNP.Q" ʳGf;Fgf6Z7*ӯM!y6d37K0JƠVvgkk kgK5\R]w2_s,}Ha5V(ԀYyS%_ MIB=XP,p'#l%QuSN}FTZ`A\p}s*TɆdٿYf<ޮekΆ$AϼQa)_R`~ܰ5gl0 0=_V(^@|Po3,s}HfWf}|Yf!~ l#"eHg蜲AkѦ98B2D+R et3p2IbSal˼04#7qljۼ@}%,m^rÔ5 ^&pkњFJ0@ -_/_#Gt=ߥ&*z&~Wa\תvj[3|g'̹,a73ƜC:u3b[q&P;3n٤~f4l#h0;eN$.\׭Ds_nI[L($S#jG1:e[[a :Mߍ9sKG1fJ"T/H?TJeB:lqIbgpWl>pd9VѿD 0FZ\8L_iOyuTՇٍ̽`c6#ӬxhT~s-Yؕq3n2J`M3*?b }#GeVyFof<.0˩YcÈ0[N"Id9뼭urK.˲[)A=Rs9Mq2#|ͿO7~ʂh1_mk#~o05 D6Q+_8h0TA8~!In߹+sWJt:mg}љ=xVfe{9N_Z0a!b2uO/CzMl+c*Xbά>@ĥ ÝJ+ҏ~p[s 5pY͉OɹQƊ 1fj|Ҍ bz<.;:Cp8<ǡQCmjqL ܱKG J/B+W2x3e uw5'ZY@;ObGAylz˸oG,_+MarV|E f\}e}B,tg>'򏥱{YC@;OCs&q(Yٹlʬ@]IONv2^j , ^tF%/JO-6F]JD!n5۔5̱ooS,_ghe;ןJN zX%t/֏T$+g/zCP5V xP/5wpVj㯩o512]-#\6u0BqWXegEom|EuS"J-Z&k/gLp2ZMYNs,F: r/w}6l[xunU6D62#]R-n+"bS۷SϠg៊4CJl_ Ŷ*=SV#|33"9pva7U&,-JjncG\5GflXruE 0[ \<^~YSe-qybX5/\?tI*o\X*efؿB[]#dOywNgR#Srňs%0?(, M3W_i|c]H;} PsSj$|ɣm+ y>ψSs(:z;j=G5yFTZ^ 0WxYL@PTIR3#oWaGy'b.\\cޅMS\0S1pŸ~?lLfX/?eMw ߂ozhu#g`z.,0ј NB 0f<0S~+@nj癖J'i+9en1:fjcё0Sƥ-L{Dys. vzJW̪Z2M2hG&68F,hseCGej]89V]X[2E~_> 2؜dr]B ۼx)܃Ŷ:ܲ ecĢi{\G<aIȕ/+q.q*N!O"V$1}Y7>VܚeGcuocBV0jwcmh,By16Uvv< 5BXLy)ĽVx' Fr0XwaN.20vgcQc4H>&ǙytKH/_2,]#-ݼ̉g)Ei71w4Gn)_ $J޻MGNf-SamڋE3NqU>鈀PƥF-i=EvVF9-U<7*~Ia-ku21O ڐs#Z5qc1B+9n1@=tӆqʩAyw,ZÍ`+os)"/%@ Jή%^L6/yA,iT&rSrwܥGgICבLOgfg&0E d4;Sg2@5fSAD:Wyn zX#y~U7f̸X1G\U{k7=$vCATDw7q1ü;1 T'RX0;S>^.' %pZ>aH:i*q?}=Q J.:J(OCܔf#I 0TKHY۩-e; ިL՗A7.We20tv:ٝ~g0*ߖZ1!LqiC.gb+70p`UjGh9G[ q:yr,d|Զ 㙞 ?=sq&Y=>O-n0JaADj~uMIk.vDsS&Еq閇0Ic^f)q^f9B\fu q 1+܉TvJ{&r`擴^U~s0Bf nTEEwԵ2;/~p:]~Rƻ"#:OKq^%s Tc{ʰ~띟SЇiv G9obvche\3;@-n=#_g̹Ri)}=ƍP_!uNn{[KW|JHXv1)fC]MGw ޠ]ǫ|1С\,xX]cu /9Q; v2qb^%Sat);3Me|Cr9*a`3^nwz.g̥qԮӡLG? LRcge8άܢVxR/y%<}Q==Z6c楛8L<@ k=c9 %)%Ǧ'3~ g>˧4coO9"s7ـvXwgt#ɡFJҳF0І2C9d¬wjAϏI2B.(+)Ybbnc+3G0X;ͣN"`]7ܞݝLЅ(>DžʶQ{NjS]S]B:4x%,U0:Ϣ>=KVF}陔X+ai3a7yvZ4 )ڃ[NDwO^~#ѣP2:Kc-k.Ȋ^k%2\˄szjLL1&qqʻ3dt;MADP+c{jh ^&Z^ +%{âh-bծe~#5[PFcB2-0%n2{LѼb,~aSqȫU6ī6ʋQϻO>'N% '1y}<¼L!bopsb\?hz4WzQb{ b'<]#kUQz9+-+Q! :1MOE\el_&wYMGImOV?812zƹ'ȷgg3LՓ` 5R"7틤.`NS%ʆ=9 wrzns9ۜ_[/iVcF-oXm0MR <>Dqǎ=Ftxϙ]5s^~gs4+7RmPV~jq (P+<1#0Q vD܎J`ZV{5I5h/9$sQ6(;kSdeivJQbssmi~c8Ks~==" L32cxr-LLgN`2Ѭ0)JDt}*d.Rs0q]%T-hJ tjLtOi nvo:6A/Z8Snڥ=xiޱ7,F 8gZICلmKY܍PܳWȈM!ꌚ/1q^;9h= SQ̒R,NW~T6޾ed1~]x: +]438=Ǡw cQTucqb2[zIk˰B.D37(wvy*3g/K9xeJ; zY{J[*.)^%~Ck8ZW%刱m3!0CX/LOĻ,>J}(J%Td~H}ѱCf/a'S vm GInw bs-ǟS!d۝RG>5Īnc!vaX xYUJu\o-;17K{x/ea}NJLf lN*4#| ]f_uwswĿ 3Vlpg΃!B4%,Of}7 Ny%ܓwR/ѯ^/5 jsң屪˞ۨ$+2f]RN/9~+PN*@sLĠ~Bʀʥ ݾƥYUoZ5,6TgUBW jU[۟H*Ú0 &.1p#ڠWAiB]~0}+db ]vEgh):͈I(`|?tcQXDLwgNɨzae>S718w h}Y3T W:?Ƭ{況}0lpao$t6C6}fW_9DIg^LgP S!h?skZ `{|5P{ m!g:"MLC= Y}q+SF22R(Ļōyo"&Ne|+-7a5 48ӿ_ގe GH˸+q`'Bgz6{~=XY 'tD=1OdN7AeTR'3^YdNDy&} z-S Д3{eG {"[.o;QxkT#fMf+g0|*KXās^Cܖ3~bm { ]=u8z)ܠh+1]]ݏGc(ؚ51@iLx0f\RseHɁ͞bX㈻"Z;$X(:89O;b/>}'髠> $-%TuY#MXbep pFpƝb")<^.eq ON\)}!3p {:VX Por=4Q؎=As X(^3<̪L,}ĵ% `勸<@z^2Ma(-lG׫X'BVu/XqT[IQ0&UNV#/f$kxzzkIe724yzo2Wa4@ vt c$hY9ε7%w% Aٞ`H8'()%u3.~4py;.Sxk՗fSobѤ̡ 萯 (gs˙YzC lp@daLYnk{f1vnK\YL:K) *K&,ρ~gmR/KdQ=WчCT\Ks238vp#Ib-c>P@a&h%Fos~"s"Am1L#,D𘾒`do&fqQA4I{ē$*@Uڍ8qK[-j z mtq+0flHg9pL )݄v`c>#<х}@p%ncџi"T1+u.+d^*P1n}y#SL9G_eu=݋1}aD>X6:[;YzOОIwl;AHxرQ-r ӇYi3Lt^20E3znsL0i[rvwNc}7\Tj|ٽ ǥ?2S!2ƙ]#fK^BO1,KJ}-W傰xJ1 秴/i 0Y-}3-(h-N_.W!ZU0UҎ(s,50u3(ryl k? ; {,AؤyW_>wij .k hNҜe8/ܞDvҷ/ C6 e1h/T2n!0_ޑj"*ܗ*-Tfx+`-7D.w*_Ϫߤ12ޥ9ͶOy 89yv &&q4b"wR%Lm_7U(2  2F̺AvT8ZT`)92ֶ̠w 7r].XPm79A3"~浘 }(<#['M X-̙U3Q^дP Sh9>m|])5JhTuIPY-& s49ΦLŲ yi/c%C}fZzz2_K=cu7Eyֽ1Ms;&,[UQl-o%T؆ ;J`'0pԾ:Jke{TJ;s`5(<] J ߈^wV%<{\ʧG \2|Jo%f(c~&r,W5Oiǘ`M Ûo%h !pA(`1 (CEch,_i5Lc8O*Q`M B 2BW(Uz$0&w˳` 8 k3EH\u1̫W FڎT蟑ƫ76Bf~4kq5ƿmX4jR`)rU&Kd5_hMlalLD&~pr$zj8g%z Me\eFFiӏFopz03]3ǥF %PJi/^s|"4Q.bb.1V1j1rCzЍ5g)}a'I1ݧ[L0 `T,};jf#; *uC*5`ORܑuҥ, 5X(s(1}Kg@QPSL/\Muxj%fbtnKჸktXQaW `)!_ 'e@%#6pfd,'w-"* uIpaMv*rf.9"eB5ǰu! _J+9^&FS̽4>/?J>Y|jjcY(pMosuj˴"<: }BzMO1ǯ2#؏} <z&Sy(VJ踄N%WWĪg!JMs9y#pplЕ¿4dǙm۴\Kc)xU@(F>C\xZjc2AcW-t3aќG.9EW 5 3bi2rܻTeeЗJXBU60"Kݱ`?/7>҈"1sZu{nb wipt{ʑ1Nc*Ѡ/rfE=b^950 ]Y* pq@}e${"QI4cw#~ص~7rfQeoDNefjԫ~!cN.fp_F%W9fs*gʢ@:Mn Ö9>!Zi_AwsQJ3̊Cz0Lquwc$ aԮ '%̹ ֮Q` XLjJ?;1)rzX_2^&&aRu#hwacΌD,%Ĭ-aB;-L Ś#E"d^gmeu"Ըe[M'0uVBb& (Oe|&ԮRW-~7%M,;8`:pJgH:8\ L5u Hu5ƒGJ+vk{RbQK{eCw@^(Ꙧ9D}e&ۇg9ɂ:!G0)f}.{C tq.4@0g zF0f;.C`Qn7:FRʲl ` ΄]Mb--2Hx"NyaUѬq3pwCi~!fsG63E{ť="[~AzNO5D 8*ݟ cKs=<Hi L_ڗ >`Z\ 90Q.C<AN8 4@rcw_lu,>{?M"򹒍x ͬJ2a3̵,Û,S"YmJQ+3SҽN`9ԋ1hz*i2fxf(&ebpT?V X>f/<]j1^#JFGBmn1`.U #k *?Pmx<gH7C ʷj26_#3D_KF8f#cҨ'hdI^TJb1 v&&Z͕ ip5;tPTXqslFi#9jg̨w&& d{N!sewk~_$ Ji#YrPUb;f"/Kc9i z5Z=<55ʢl @|,3*>铄,9L$! ϡkѿ]>5˛Hϣ~YjQ1T?uۊdڹ2^͗bc"S''dNMxA͹ _hP|qEcPlT jϰe!.-;yҭi ]r\Acۜ 5g&Suh>uc3}jvBb`.zi G702gP̪bY/=QLh0 d:KkY|3cI!\j+2,GXvc$!8^J:A^3:B5DrK<2=BPXJC8RрIoG'P eep]y _#9=C߬2F 6i J.g/Emr>:=(ff,tZ,C3ZoE)I@~4@fHĢOX8|DBɾrDe_X9 7! CC}>"TR@ Yߢ\KĪ7d73}bw>YFRS*(=sa}a8lje}XR`7M9/Ҩ_yd..k d֘ W^0,%J :_XY`C/A+Sp34#Bimeqś*醥0yk:53b* ǘ=Jv2GieR$\QS}c(ێ,`)ŸH<@nJV(.sA4u7٣B\oLs*THzWTR\3} Lښh|]hk,4*k>hNg EKzi~Ie@W@/Ó@`gcѴJL ~\lZmm[򩢧91;s;u(-re^]18"WA,oi%·lF+zv\T,J0I>JNJc9%WZ=22*ehZE=AUxQɿi}Y\E!$վT'DycmpVly3( FKt40bS<:* 535 ]~[:8=>2Lec^ԩY|76^)1u/ "WT*.UI% o3 rɛ9f~Rnl6̪-;N{6&-Q>%t59 =SD} =35aAy5*Bh+mX7q/.:S8 n[9oPw+טp)`]_3c7)'9әUܰWŌh!f&G"^L2ZhДMZD:y!:?4Z[{gK~9 v>O%7|K_XGYYLCO}X=e*!1AQaq 0@P?/TR ҿ}B.\ ./B.\r.\HAGqcYKH:8Z- ^ r˗/+.\peƢtr/~\aU@˗t(0Eȸ.C \(HL :?rѹr˗`˗\ yʉ 8?ĹqK?}<=1[3=P@:J333a!/_\r_K.__a6 uG=02/aHtFTRt*S:$r˗*ErTJ+ tW򨒥tN+RJRQb躃^eAX._*T}oYR W&[`UiQCfU|dNL#Ѓܹ}.\}_}/*J\qbqܸ *U[]ZS]@5T*TAper˃.?Q%tu ~@6&B1s_n\Yrˋ/(zBTI_en-q!c ҄_*T\/*TR}n\}n\Yrآ+miHrM%JTQ%u*.qt#lhtCۡab=0ƒK#$u\2չrοJ+/qa O)D8f՟~~%uRu.\} _CsGAp /u]rUꌾ K.\Zҥtj$a0^J`Dfaf#% ;ch[$]#|oM*!P%J/lJJ+e1_ٔʘrԯ}.\r\}*T+ + l|B涞 2#ԓ.5io_edͶYr˗JRq ˗._\QǢ e"G>BQ(*$p`˗.}C*;.\r\}jWa:nΠbi{x* +u/K -(,wF* ވLڮMsX[n\r.\rR'f/6XvkLJ< n㺪eOF A* M\a2X\uV+d4U!"`w2yFXZLPr .CGt%n;]*B `[ekIܴ(䟿撿rӹ0z;T0Q8HTAi,splXUo+L`Bj|ےpӎ^vAUTUr@ ݩxF- ҉6X`JVt*422tr˗_r J*_NB|gh6 fc ANs%$5& 2]FE\`awt$K.`=//]W{rXIPHͰ]/l h4גBlHƱ#߿ig~0)#Q^B}~/1~isX(ϘK? O)׼ǩœ| F":_*W0e9꧜ف!NsSUKB:0 !JoRv00B#< dSxKY/d`y Ц^‹c^/ e88)Ef!PӃ{0I9!npHW .,y贝0rǟ5r` P{ioPw8B4)ōj*k+LvS2riʆT =o3#Vf ;+ODA, B!n=Ņxq9MBϓ=cf%n7-o%[*ϙV Ru}@+E?\rѹUnTJDK1V9F$yQ! ՕbdaR8+V-)9KHHW>yuhw$%5˗._r.\W*\+}vEzd(l0(LZ>_T0A r|m,%Zd:Jk#s{|22%baizIf; R[*r9>0m5V򚔆C~f YuӮ 7 BhrԿ.\rɨof);`S# " X' 1.Xq ]S!qr#?SdHrX^ ̏:5QtuS&Gi/v/99IsXr?/B082Y_Әjg?Ws[O*j]460T/:=e4XX-yJIv쵨<̮r I<1K˿}wLx)P!osAոm;:QPJ)^׵6OD*& $NJ_E4^ ljRҹr$RPG"DzcUn W]JRU[J*7 q!k~JU7.ԫFv)ح@%괡_.;3yY7CՓ.J pS~KCβJݝ[ Bo_*TIRWST\z,<Ϳ;#i}=o+o"L*Y\ޞC-eeuIyW*j& cvsA-koG ZP&>.(14ODVwwwzV>+ @ ү?#P ZDHqV2ŔN!S-_C8xn$_w.\_wy`堨5SP=[]Uhߨ+%Iʺ!^d"-r׹R=Ve}t#TWM} Ǚj'kLPY1P1 #c{j0{B|l2s0e?Tf4ypwFoʵ 65D"_ '%. C@mcǍy~&mR{ 7J/H N_rr%J#/^zmm^4Lny%Q3''=8MAoklJFNפx-e˭+R[Ÿ.Uq 7.\"UmIP`̺֋UAZ&K8! |sr'ĻN**WG~0UxCoAMrR)Q 1ejleϭTZ\ L RԡV( %r7(򐥗FJk&ْ+l;nT "^6Al? QEB7i3NU z Jkk0ч㔙f}X=+E| =Cf⮾kC?5JӰnJM$q 77)RV9Db;g{3jø ^ M!{J&ST8b0|}n\KrkM ᙪg`N%fi)nX\Bh*~An?79^,雔? 2˵`f+ 5Pmu;[26aB[*z2,!MI2p9WBmc,tzWr˗/L[)+ZvsCڊٓ:EXJcjnݔCrw _L܌ؽH)ݧ=@;pU/%QvS98㜭q?wrSO8L]aY#;wѥKiK)c7)c@L"/[1JXP`h[y!EboeZqO{C#\_._/(4rRJ3ʸ"9b5De]l"I))?v2ª#bu+'E`⇵k{ݒ)ǿ`BW9\%V, ݕajk*O*WQ̹D׶:G{D|Lcx| |Z u;yϠQ)2❘V0Z%>' ¥={9 J^rl!,!߸2, JN-`!b`D[QYvcf`2`)q77gSjB6>!ݼk˗/r%]*k#rf7ӈ4$57,`B4#*e)G?,1̺"ިʇSk-tTݨX hEs%%==u<8c;y$Iڢ_O37`|& *u}HTj;?bielU<dHcC,sD$&651ah-`ERJjXh` 2_D}Zu> Ha# ʸƔ6?}ʘG$KKK< r,1 r^2 1â!:^qm̗zi~!ME{=OVHv2Y._}oQ2T66R^}H?~lEk9S }eƕ=O If¢0bXb7sv<.\zy"C5olLD\!6 Kr}o\r+øj&ʣbxZr66.0h#M`킣UNQ,9 7ZEZhri-,QU-_!b_r~LEN% Y8Vˢ\˗/w-eD dv>'iዀ6"C=/SP3Co?ք׾n6'{A*ntf.ܼfg[h4ݧ?n豎!}X4Z!)J7fdg3pc+}ށTN8M{d0n䲂csΧm>"[Sߊ.ϧw r˗._J7/tPiI_ ɦxc d5c0O5Jk$BVe!M[FwׄX1 bCzeӫ@څa pd瑗y.pT>Q9H˓u}ru/jW}.\˗/_[k r ÿc3d0EoUKh0֯f*|b:neоY ʚQMN#ZbJ||b#1!b#IYb8a&£0Uo!J^7zG+"+B1vP/Sʌ_JVRY~S+vy!TiBɸ|[2%Ɏ^ kJ;[C;pTX:ZWbam4ps}53c2g[xh0(bP+g>f~#j3m Y2BT1Wous<L4~Xu *~be˗/\"i&)㝻9_k'e3l-a8/ A._^,&wRHϘ+ z3b@LTz&^G{jig鸎ځM/o+3 ԳRrd4BM :nI++Њ+~(D,)\Gn<:e1w8~f7\2}La_bm5 U8#22OUM=хJ*A.U{\+-ێ5L?.L9mJ0TJw?WՍ]^UM^Xy{6(w," Ev ;QB|`X7 ֘|{JzW|2W.\r ev~ }?|:Vb<8}~*)q Rӽivj $2pTh @}e0w~=Ȥso!SyvCq~? ," v{':#&jr Q}3c6 6'j-MرSJR&tt<^RT>gץ -GDqKƭЪqUqy !pʏ"ݱk{Q5,?f~茗U]߃xbݯ!T U?uL7LI!n$ϯw/u@sɳFpb:(ٜ&v<-!Ji5]ahj|NpqG7īf-gzWXp.FX}TD嵍/\< lwA-R]ц7NX- i>%tB!rls%;.rRJ޵*_|U$WoJ])yM3cOi8BG &)t"J6K* ^pk$%+Px}Pp+ T&IQpς ئ$c+i v0Ơ.܌bW!Zq4y!YrC"b6VHJsv\?BG3v<6b ؀g!|0GXɹ&\  C?8drSl͓fGo$e)cZ5'ҩO M[RRw3ȳ+x7e8EsaqUeFEApJE$Ko }o$z*hsk|gs(J.f!E ὏ `,yC}J"ӤKxNA.=]мɦTӲv34=(+ T1k)L`XR* (+[_c3%UJ][%s+?ځ t(4MɬnMe=̻@a@Ƽt T's>F½ɞ?L.U}FE[%y8T NrDB QH @m$ +xȕZ3@f"3 &11T31&tX#ζ4d 5/C"i UKɖ/0P_{k _o,8y^1nx˲1f,u+VDt5߀)C@<:g`pBVicАѷ]ku._lwe[""mƛȝcpg[}(S`ԯn&N3ɃFgusf#0eqY 0 NnuƬ^Y9 P( lL@N Өy8M<8pJMn 036S4\9u-g CWkU˗._KЮ͙0mCE %ak+>M]1~bs,vCΎ dx=8LZ00ො^o |=تUDϴ^)7V\^Sұm (> bjŽ3 1k'#Y2'FNQP9P'?&zԩ_.=YkіU#s_H&L(szf3ty5`'Qs4$4ld|cU+w F1Qq3ev0KȌn y ZjF>X{ X5EuƠ/wHnͷK7%$U33U|f6cPaM{ƹn)7Vþ+/m`3N tݚs~ N`?*`rU'(Y.Ԥ1#،aYGm) X%,j*v~ێNQ{[W(!| Ǭ Co5W1Q3HsX<]AgT6?K*OOWm!23ow=NB/CR[%L_ aB˖K",Dl4oX}Ec{+NC_ <}#цH22ҊPB EW )X 1b X- XD p3v"adv%j ¹ca-Kޣl;Wg/ F/Y&Wj+8lßlq2N*YN0_7‚lՙ> ͋!&צ,[L R>Pq%I/P'ǤXc0I?셞*/aXA PŶ im>J4PdZŔpOP[,߄Y@+UeeIYbSukQ3`e#Cp4ªddcMU2VKa.Wc Ԧg]7Byxo>=h~6~|j#W%.15Uo_㾗/꿃SWt=_/10)tx ˥e?T ^~FE b ž'.lT<69հVDhoL4nk_-Id`66s^t+ )Z4i 5`[dޠ~Ț[jA1uNTSBhƫs1/&cSMiLpKxqV>+aRp!/?bA6ʬh [1gNDZg?_V5N4jpq;|E=WR F_'/g_1 Vo\Ꮏ&W7J '-UhTAC/"FemyBdMe®3p/Zb?Qn6a@$2Nl8#@9le#.!9pzPXIS +q*z4kjs?8.Rv0.Pa]438gI@8 mfh<4T$݈^/A(/mmyTXmeI{KfnԗUf%aܐ[-N*YK c'x녮gljbqw`wr *C[cpɗ7lӫy X0̉oR^U]2 k8[aOTk./ByBllNDǢ zr힇_ORkǘY,J;MQ*˗6S 4nɥbR0K];*y<b,WQ36 ]=t|v `ÃMxC Ac@J3{UԢStcU 9=gT9S 2I?C2]ciiBhFfnb[bml65rexLULY>8(j.l\1UZDsue ,MkEBƞU_%kbvqQ&j^,y82ZFh"-d N`0;lmr wREE0k`, b8:Z%ĻPklN;c+8e_[wc8ߗe;AsGvW඲_dG¿~12[ǨZudҥ}]+p؏@ 0j_cVgٙc:W}XF6W JSpߎ*[Tp*RKr܊%xnʐ,N3_b| D4 Xp C" \iż FypMd&Yj` q4t%*ʇp_`j9Xv-FQlee~ tlbCXZL)DҳErj-<8\N&9cx`51F\YcWGtn_5ÕL+JB;aB hdI|vJHgjbQDG9ya`pfzFԿt 5Zu,4Ŭ5z׹Ah!Bj)V4h$vn+%L2grI(Ҷcɗ& 9sPagI{@T)(xuZj'8 uݩ{@XBȮh9HX ^E k0,- `J?-R#1FU<{U'h4@ x@̢ͫ>(s {Q= Ѻ qIW`RgRPR эoe4GMQ«k:iݟ0A@!\mB/ٍEaEFy&]}7 fMxaBw/9_-ƗOy mf*gB'Nj#/rղ&e0`*#bz^K Ib}(ow rH y\RІfҲ0m KTFRx‡vfPw}60he Wn IJaE1Klp*6?K@ݷ4'Bt )DNOnvBrPxizI WEoq3_;edx旒3Yj^NVvޛ:Ra34鴅Ijͮ$M[WX{"7堂W;Ɓ`8X@+eBPbOk֪hKuhYWʦX[0X+u)\ؼ*˭AbRႋ78#~ H19r\jk_eheB[4LD9F(KYnuĽC燹Eu`m?ilpt_vT`L_ ewXAXq$ե>X*v=H ,HU5pXRW\]2SD#BXt)صr*3Gyc_/e]z^a_)A>)1MATi&*-ʋdٞ[< ׅѦ0 3^EIP21|\ Mבw2xܸm j~EcwKu8D \&<%.-2z4(F^ ^"ʽT@Rv!!m9~g;n-YQq+ U:ז&ZY#T;1KE3ZOoGیO,C~~;_^o4D'LJ%ƈ@C1EH_^C߃hN܁i}.b_P5DEKϙA8DYMiZ̪ruX@CIZzKds X.Ȳ1峼m1L-n YE(k+P\Ns` g5* whYfa}Rռ9,  o^m|,CTc4B*۫?@ qC^~+pbA1X[ "98z6w u ט[39:{wB<,_>ŦNx8}3F{oL}:φʳ)| .HA/*%)[Q^gWjZ(Ⳙd6^9dEٶx ?8Pq~nYH54n!7Z/,%O J:vZkl]=einRVJ%^V5I, f)I! [  Y.aC"cuF%+ڥUi4NDcsPG{9*YAv9p"` ~3)$L~tB֒kno0缩-Ear =t Ҹgh n g 2:*Urb#IG'r ,b_;JSP"#PET`5ⸯ)2,/cYc/L3h@P _r3z>5b]XXW֢ڣ`g#RF@Xp ԡanԘ!U@b--Ӧ̀A򈣹c0ѷ@p9WBAF!k)"Få۟rK.K$jŀvVJ#] n"3sD*̠74Ns) 蔭SWd$o <Կ vJn{1Er_Ob 2vCcp{V".yb_[`j0ૂ9fOӦ7h+ǔ{Lr dlu˵>l|&<1;Sa2`+54qBn|XmVë;QjsX @LSVDolJ5}a\=x͐x?.ގa.ʍ^fIR-E* gf`uD0B` ."Oz(K֭P#$雄R.+W>e7]-O-*PY)36\(\J:=(sr*"3p."rTw)6`F1r /Oirso=ATډ)wOhP_ aevPN`՛ٍXچÑ S^, i@j ;ucgDV ,3 Qp=Owq`,s$.42? G"vƍRryʖS]$DWQ0ȞA`Bn{z$Xza[Ь), L{q XE/3F2c ^'g_$շL(fjw nf)lD b#~e}U lgdm2W Eh\ybB[VD.KeoK(X ̝)/hb6Xskx_1Uu&4TbXUwtx&\Lr o9 jɄ"zk j2 4AAZr鵹!#'S08mM׉)ŵUǡ!)nO1-n\5(ܟTG>TZ\czTv 0@W1 @0mRvRtdJܼR@F2"54BA6(gLkBiNfRQݼ*0<,805 g>=2R/m/5Ev7;"79n 32 %5Щ3Qƻ ȿ "WյGU QSN-·.{ʞm.WjN'Ԍ,(ڰ`Q%,.@|B O[igOx,(cQs*8!A@!Z\"ɲd vvM(hM#$=Stϑ׷8cZvF#SOLِb!: U|P*VZb֡O+SK/cPx r {/"ٽc30a,KTBf{|Ӵ3Cee\[a0ivQ0PZl3\ҳFc Pg VJ.`Uyq=xu+46\h+ m{]xϰf@>#v㰖)^V.1I퀘 [XٖuZ)`&l{٪9kGA(Uut@]T+y_*\p=fZS*X~p܅m9m* u3oԷ+m!Ig7L_buRXj}Pϸ's7 b ObK#~b-(b\sLD, dҏtfR/;ui%^qb to!PggkXAScNC}ojHb1:fKF qN?.e? qPi|v" &bKq tf"0b]>#V.QpswMcz,@[~b~Q骸U&6 [!+/}azHe2f-K8q1N֪UNSe.,7pDh>z%w497a*Ulmh"sb k75{bP]Q'Ee5wO+uUDwfljE0[w!,чɘY+[؊A}/~]hj?eAgQ<35V' ;o/,lEe. Q6pY2 X 7*S;.+־ɚAՌO.YV\3^<#;(F奱O~Q򧐝vX׳*1v0# M)FhFfDfY~߷NGi'AKq 8Ɛl}V;B&񕯍"D(Ͳ|BEN އ/t$e[CvdCL MYmƎ.TWp =xүew@c%h̨UJ5@Ҧ)pneYJ0P-"aq`7oi,!bZ+q( y9Y̻q8R e8I46eY"[RsHhز4A…o^p^7ܢrg2ݟ\;.ị% l%B`QyG\F[[\% Ơ ^8DUzUl*D5'1EW y;p56b( :7v~(MmSVn`:VB+l"o-;̸ՋL:D, fw~rF#: ߴbΘ%&ILdJq \4m.qv*ٵcDW,3,ᭅFBh@f y7Vr1-qU@!yWn-ET%hY6S2ĭR(Kl.8n4 'l#ԸF.c>cVhj#( 9v>nS(ޮ+ L>B,6:Uj,LS^@fP֕ y,he*5dȇvQbr#SAu0Z{̿ĭLV(6/zeо%r8r4#-%Rsi̳<_/CY2 >ks28{K"\1l^Ɲ&b|i!X\H`j+,B >a* l׻.pJr@-¥Uo-SXR7[d3b5CXams2}43اDF2𜟨KwEƍ/Z1Nd2n'޻NTd|Mx)?fm][~ɗv% Hߒ Ar‡1iмX4X&ʓA~.Z.GI^v|BUɘ_4Kڲ,!A;( (`Sd+GuWtq rZSW5UCMRPXL1m8|@g8̡tlm,]ʪe.4M1}v2rITĭ9~PH߆qdhFܙ7M@yUanEE1lZZ0Pq@uK^W gWA1gx-S%n}Y" "3;'0h[Co-("@}b_mANvNo࿹_wCINvGL슕h?/v|~ S~?a-XҲ+?0TZFfN/E?r1Jⱏ*{ؽ1.U.0s*xw|ᘤ$~I&]C=K0]'ܴ 9}x2i4Xd<&Ƞ6)|d3c .&N{\UԶ6]V aшPA]&ͭZsSg򷃛2*M%^M&u 7bV@/rQMfDQÇV1q8"Emw+_{&$J+;@4gO̲ ˳߁>D/ &Z;GVV^m)|R5H&6=`~ѨnYdzR`M".Eb]R}EBoo`Z&Jx ߙfj5=E" | !Y3&p ι"$g;˪$D4,5M]HJ&X`6,FTE ]+CYV]7Y]a .lͱE 4#1b3 h],tby bpX%%su[f Qnh&Q|D \HoA;`4؇!7AnKa3guBpL(o}K'Wq F \PK$̬qIN},?07)-iܳq5 m2Y (#k|gXR'?#QBo Հ!m}@.˚Arr%-]Y<ȋz&L&{[ÿ2zLc : 3-:4/}iwPch#|Vh|ƹ5rGwmf:w2RL+QqnY4شuD Vv Wj1򺶧kAR+egb*ཏK÷7@4%1M]%T%VX@$l{fvsօ ^W9~V{%S$<"; #6_=΄w}RAbV*bGSR\c4;Lf%DqKswᘀKsMF;BGt뗣 2*qVfh6_lr+$GDwv_'<{)cy9qpV\Uj=ʙlRZA"Φs_;#Hbe&!%> Pԡ!4xҔ”_DTÚnT E]7W%"휆Tv.ͿE€8)e*]{FexĶedTƝFH[Lbv @tTC|Z\pJaAVjZ;cT*)n_!%ў26Θow&f,o `,Z8+ g S78n+$.L/"k}{ Jah*Q~q7|ef+ł1Ʉ2[$c,eAiZhU}$s,G/ TYj"AbweCB̓=ux]Cl&l|4ZrPX45ah  y5`=;9e 4A ئ`yk&XQc C5M0ԳA!o*!0e68GLb` –/(\U˥%b'f bVDI>*)|2C5q!/4=[LH6%i!abEVjU2D~X/UQz>Pܾs6*bes XF ኹJ>lb8鋯A:'"xS!MT%(WB {DAn7oy\GGZ!d}Bh %A*(QG{j:d n -,$f [Bqm)"Lh UP5X[. ~+ 3׮ oaߕhTL,E"c@U]h,נcKpro2t[&y3gzK}F^$mUj1}#wcU1˿1Ífo'VdzIH[tL)ipN9Z*dآiZeQxã'fgyO] jRq To(Xٖ`2)⩑1cx< ٘z0A H򙋖g*C_A,(7!@0@[0I&уTVtNnWN ٘,.'m_*un֠q-%j6f)R ^{K+UF6T/q>6QVeUq3-D%VW[weoUM7ž#f@UZ 5(/$ei+loqi Ւ֮i5J;a3VŸW*[ZUPH8&;$4%a|lq@&oD8@oo/.R.^,?WIBgeЗ< 򦒺NT=2c!ڲ@?XcK xaV]> Lb}SjI4q9LRan}(:Ȍdy1Q0)뙈c7yn*FQ[``mf5{ &hes3=j]RYwjR)4QT*WiVhSl9bʁXj! fkLJ0;wKnT,hyBk>heWK)7=<Wjp*9 eXj7r|aPzv5vq{tS<@*!E2P ^pA6QIGgYvHKxgf!nw+LDVdWzdw ֗=HK0W^ yYww P1߷UKGmoiYNe-=n9sEJxǖ`97'NG EU8ݙƕe C 1J-pDIh%Z x?'a97}O64@tLR|G&theԔ B("d&a.Hee.q~h [0>FV/x -mt@4Z)dEY[fc?2LSASM )6ALU#$sNPZx9qnŸ4#c 4@wt0_JؓU;18#[ SFVXcyNM;*)*̷KGvA "0Kҭ,J"xӏ(jaYŘ7+\ ɔLQa2ih ;TstTD丘 Gf@{Љ?r zVفQ9n_׆v)wڋXaS|۽],q|E0!:RS= Zd/89^+kb uDWl)v8 Af{4(Yyn̰䯍{ {Z6DkRQ@  C^&jD!6q~ _@zH|FZ ՗0Qq{I|"Pz-AC6L-D)4spq`b0^c Kv,(U|EAnp6xށ\.c ^#(1TeLO%bR >JS 0eAH6ʄiWQ4;eTw}xD7 3;'%s~Ҟhܫx};&2}יnnљP+, qe)O0C men6Zl çDRT2|nʎg~ s~`/QUa_{Nߘ3 ADD] 5w `N AV(Ķi5NۻBO'~mt1(\BPM7uF!md ,rlآ^WF'v52PZ܈~'0ZV6P3,K">6[?b/s;vr^QK ZU;xT^LKg,n4/Ҋ(I9 V wC֠*Zp #O5zn@[`)w*K5͙nBK0k9̍5ey.~>b zqZC|Oٖg[3h |3n|Jpnr>ʝ?+*7VPLMb[Qݍ2,e ^ 7:$Di-I:{ڢRS`ʭݞd?]U/ Y8G+}٪Ke ɮPGI"ɭ `4Ɇn8`wlH3% l=V]$0B#N_c/aDĠS4J3z`WeCEwTb9|o1E/bw"v=q7:i.CCheEŰ('sMr֮4"`d{ogԣj7b kR@b/u0(f&ں7ĺ3wQ4y%,4_I[MKS#' K;#;a(:ebJs~WCIxVa]O7o8 Id +/۰'`nMO1I\> 79{Nu7@IPttn,4qW@UZ" v@{>c)u|MȽWI [N"#V>"AKS!vfzK8Cؗɦ[xBRaa5ŹLs`˖!PÝQK'AwCݧs&j)[Y}ٖ2O1jA%:*eKP^}sƎ* + =Rh(}"!>l Zw>e#Er+,Os|^RF A/-=$g,ݡ~1l40Bd)m'Aߚ1J,.kL>E' c~o o0\d{_$טd'\N f@U@{$X 8{'5?hcn5чJ>e/D{6U;fW9XG}[!q13a@,6W3whdy!fQiw*XEx_XfM A`̢\Y,qzc,}{&vndv˫ۂTļbŃ._E˗J2~^b8e203E@EA@.Y'&_]i< qy|a8z#6HRŜc#4/xPJyy7`1t=UCkaϸZpfDpG?A2$h(A5v67 NUocEUy{m%Mȗg0^<%"Ҹķ0UhUe;ZqqF$n}s9J(tV(a9\;I 7p:1vkYFmf:+w)N٥v/V+Lʿ3ATo&>IH&f誶*\sY;k[Yг1"& `Y{pK|EWe;%V4Z*Tۇ1b/"pA AKja q͌.j9U1[BG8#,d- sZLpt`oiU> )&Y9!.,RwRYPXC"FXlxln9۩3Y< je,e+6"v]۸6V>p#q7M|Z& M'i4xѭExq1PѵʉQ6hN&OeӦA"hd0ea1 mҎZk %j=Wt RR? G"b*Km~hW1/e9|sNnOZy UQV8_ʃQ['y$1,A98`rUX~܍@A,AAsYVjߘ7.i\L˩+e"HBhQh*{֫{/Yj*SM!dQzc:0ˌ9`~^ 56e&HVaX*uor;M*, hYi̻*0^a#ܫDފN: 8!x+k Xc*8>S0{\ Zô6.XP. B`sCZ?(ca K0K 1:ZE[.1,^;&:x*2{%; robTohV+g>zCNbmeawU+K0b8|=g*d4=ĨTRG~bj*) oAi0\EK 6"Tþ"l 4- vN>LA*{%ADXPDwao0Y}r0GȏZfw?Mܰ.iw.( S& 9UPo.sٜKo/><$UFx%071>F6KHq Dz\pC厭w% .*%`x8nұ,݌tTBext.rE.1vS UdA z4\k*LA.h{?IGDt)4XnBlĺvg},UܼKn̽^tgLnxJ9^3l"$aȁ LM/h;ʦz+%l5 ۫( ӵ8 z[.1uW8^ZoKswXKLb/ q"D= xD\b^}VWYL+dV̦h /p/,BDwTzo{!՝o苓f#kf࠱>ABl](ɨ' CfjhYi5aB A/1q )E(o2?Ɗ`{>6"Vdlt֮*x:Q`6dіZĿDW3z]#`4q*O䕝:i@Pr4xw-^+\9yA̴Y9&܉t +U_XPhq J dœ[_:Lo|!գ)kO4/2z0?!wO8o [>(jbT7/GcdGEc Md75!v BF<1,!*"3LtJK%NzBu OYG1bH{Kpeo%o a ʼney06&Lp5 hP^cXU{?1qLeÊ#}0[͑XWT<#+%K\SH0_I$UMҷAt#5<߆t >J=%SG#A>Jt*#m/D0O ހ~п ,W_P#H`.%-ۿL _+%7/*dZgYA~N|,H+3ƩO7~na0aWZZӱ>.6w@ TVm }BGDx%)dV4&0 f,4Khulpb\ӱ 3*Q0iUO([FO;NIED BII0_r1%l%o1v"09.!pkj4XRXpѝ|+6prŘn] n^R# U<!#(8Hiem - [N`J.T҉S" ROhk %8 u >)geQx`.q,qZ"i/e0>UqNJ\x @+rհnahG7yB!(D(̳-X'4f9[6;YP̦t35<]*%[ɇ]@nOD6#Nҽ^0yE^oh0`e;&-@yd(tx)1p'`R^E-5{Ga[_-9TեxL+m8ipV\rXqxE.ձwNupܶ9ycu)فR9:ҨMވj1Yj*!u]$\-l /£y\1i撬=Ls>Qiw`fT0dШimiX&e8TUv"( Eȯ#cpN,z0n2ZwYZP*A oga`@ Q/i -@蝪FZDM©_0 :\ΦuM\ E6V8ք GB@l|ah+Ȱ*Q'lE^fop] sYsnarX" CR%8h 䔥neIp3F0?0 hyv!^fji4eNK[x8Gj f%af/?c/ZK mW?K9A]!fvq-{h4(Q @+ZG嗟v\*,fEl^&8q[LP"rlj4 XZ;B"US l>).&. \P{)pfx2>/¬r/xx/F%Q_L|?!Fc|U_ n](N|B#P86Y蛁#agAEA18A)QxJGr.0T3W*̣]땊)*W IV]w"]Y .VS.9yT(հe3[ķc wTQ!|Nڌ\ZKxE :'v"ۊkUE3F\ g'uk,Q{45JᎾp*4J7rCe./5.a–-OlNF#+Ǹ*Ih+4{ 1%zhS<˛--,[9=S1q12˷`Hsc0S\ U}Y>X.Q)(7+5)Jw3eRkAv`s[@8weg\@5 -L@ o /1pV{Vrhde &Z b{.uu(Ec 72ؖdHg&4S-Ūyfd܊hhrܸw !ouZюoU2;`ٕX+rJRZ=Մُh6\@vąMψ:C0qIP"X9 5~.YT#DS_4\ :|8"OEs; Z*ٰ(G6gBPKߐ|{FdP3JI^ OxfeMܮG@oQ?vnR (cH ؐXm@~@Ǡ¶!EL7=VPUwx `/~1ZsL+F^* (t$SDKXwQ!aPM zŗvpj%=!h8%2FfzEiYBzO &bt hUñ#\+*d/+?nPap!N@F.ɖ{ a(%Ǚ B\b&t}gii[lG&6h<D;~.LӔ|dQ,;X4^kQl̉@5sXv0\#c!(mjYJB<76ŵ1U|. ZKffx3HD9) Icc.#H1e) ֡ܬ$]|O!x3r6c.m&88Hܗ+Dj@о&{0EQJiT8E QM/&g[oFO.[(jX$w$ݰ9:XMҸ!n%U-A@ ƒ6@~ |1H06T^ҎKGh ʦx~ݡ(]Z-Vbfod0'ZWlsC*4)8ahP#I%D\m=4 +>VM'ZHUFKwy](BQk - .2ϔT axUvz.YWX9ʨsacnC@385)_#ꇡNB0]Aġ,=&40 `'qolø ~+ R-]Q*OG4)!⢓B`= JwSU}پ,Xbcn\Me7'VL)bōm!>,ߊ_TA99P)Uce\STF=KpA FB,Xk[.qfgҟqݸjj: >b2m& [;z,0a;b D?3xhX7bʗ%p4{;#._15߷.T;oQq"'kaP^HװE#]F]V=t[)l=%e 3qnz/4; Uh JtFĺS[fV*,XF3Z@Rk4!ayr?˨9.ha a Jހb7<_اH ,uQ2y ;֭C\wz!106,F{y!ώP7D*w+bzIrOܵqK}6dDLO %,Sz')a SK2+%Ĥ7 *%5AЇ k EP8hdR[8-5Ƃ#d:dإJ卛{:[s{O":(d+ R]d] %Up7(EGs]#dǁ%7B›Hdp/w_ kjnY N1򂶷xH׶0 ɿy.W^y px{>!֤mmzT.wuM©!r xw^ݒKUT.5V0Ʌ aq w%Fyfj 7mK Kt'3UL.5,ɿ~mbĜMͳNp=1+f5Chbw\LȆ%$RRM#..9R炇?E!Db(;ɛٹ+x~ѱ&f#׉IND40JD[|/ /N V5T>%4k&]YcnR\,2p+QcK2<nW,̡RȬI6ylu$ |DmfK)-МSeA_æi;?iq&Vjterxc]q,YP\K`'Ld"&l~N +9uCaRmލR&oFpTFW١Z`]۟$uen"e~MYu}@{PmB\:B5( SDgR..)soc`"fy)^P!P:f3%`^J1jwHQ@*a _snpl>eCT S+'{.V U(1PXl@2AZ-|9yiW #O %w3k6afjJ;cM0yJ>FlQAPVS-賠86ja@$Z7eKf:?!k * xB cs̽UJ%+d|M,@ 8{scmÈW-65 KufrԸ K"(!^y?FeW@`lf~zYSg[T3f7@nez]C.0@]r,vX*w2 fj+tUC1^x{Ǹb;OB qG,ޣDEzj-`&lwءy ?gAĴ Cp゠#l 7g1{XU0.m7;0U\.RβUU0 [[Fp\"9@QqAlLveL兘-a+X ~O$Kdǖ:n!WhL؈-֏ܻ/\qR͌ÌZ8}I-jƘ`eK07!% /UɚnT",o(p~P-г&.~cJ#"@&_, ̂°ަe FT 9L o2p 2P+d`hg{vo_1-~cO1TOw K,L栂ޕ&D@u.٬ƊU.}ȚV4dU[pJ|ҖU dX¨̧Yȷ-UhDvѳaR0Y%obQT^pGȈ-K(Jdv -` ûw+D^ NϕR!M_IWGRЂ{ M%jNkFR[;G3 PwZ +/aEu>E#dyVf xXov7$%)ڹG)0zj#AjY mxFū D.2#"vp/p6=s(ܮQ悆X`m7XJȇgq`Ӄmka ̶M)RB`[ &-%kTӪ10q6 0z+#+f#A|$o%C?؏TWLXx؎TY6|Ԫa0@HH0Td ZVeArQ|m"4 >me,5; +DB(lR[̯$ P )BCD\`Mwa97b(&3h[tԁeQx(\$b#Bs 095BEуnWS8)|D=tЕPKh]-MXP2f#Rp:V's0vx<&=uiو# mm  s7M16` KdV(`ef<^ҸL[\"]1ޠ|0<^UycG$9?bˈXrbjhx @RsWKޭ6ЃW,pWf|j KU;\Y^a! M(.Xc*86 er+U'F_<]=q\30C Ҍ9.,Bs 2R͌J4 ǵHÃFYPGÌ3^̗`z3n l I4m̃v7Ohdr5* E& 5`_Mie3%hɉp1Z(k@*E'^<+uɉ]pCL[Y%TlDUt ;V']kp0]& \D(:&iu瘿Hmy/%^& ei-V,))> Z?e[4!ݓb)" W{+eӕ5y2,w,W9zK/B{f­|6 F&p+z{P鵗Rl<3{z*Ux+qa|"ysBu@zYD,9^K5K}P-艔K>f躋y/#2Gdqn` ^ )Kaǔ) \WB-90 ys2[Lfc|H*̭@IK95!t'4L2EM!21 kj92 @L̕ͅv0ӄ11|UpQ79En`1,g'yx (K k!0ґ:ROҞ{Ѐ0md=jEdۮ1 B%j Utn]^cmԤL5,‹cl5Z muzZ wK7uX 1mBO+k0q6L7V` sNa=HC:a4BÁCݿeͿ)y-4F@ H9Y,ړ!|  ,ض\j`(Ja}NNQ t,@q]EBPF.ES-ҡFF4{1-GSIjfuQz|3#3j.Fc8z1hGst옩(.UU 3xc v%,&UxC +B6=ܾOd802›KnnAo}XgF͢cϽ/N?1R>-+u^ ȍxUnC`UQvCw;_pT-0|~ 85[r>V7Jm{>(Ÿ%DSfŨ~ Dq$@ ˂pG8eU&6 xcbC6Y%%%0p!mh+G@a-P2-=ڵ+Mvek,H!*gy3ʀ2r% 3^B6(wP= 4)G4TZEH3V<[A@#!@>)vxa'/cmJ(Pa8^c7}" ʯ+9[/P\@@#PV]QmObC)`ܡ'}PŏiQ'6;h4kY%̳1"![18eq`áYi.D>yFg.Z?aIu`}B_yeVA 7UKA9ؠΎuN.a! *iAM-*F LiĬvܵ~vm>NH`KeSFY3B*cN2F#sw˖䬹AeYZ R\KX{׬v$.k ʿ3Ef֦'W=0T_Kck^n-ZB0\RJ ReA%u5P ɫ ߃ kɹ_l m p,edgS{m{s ,hzki͡y-7͑ m+=)xSp{gG`XJcU9fhbL@4. ng\fgţl~&,&6E-n,&B LejQ Fy4TZ6_RR`t^5 4i棣}9鰘"O,f?LYA˜y]) ]+0gQBI FqU/]ыx0zL)%P3Ig̼.) 12W%\j~JٚK mZal٧a @jWC/71 L+eU,<L5dR,69ơ+Zn? rȌ.+)2CAR#;25< @;=1O67:Y"~5I%]8UċBk0ǥv&Wj8PXJ,68HY;U~SGJ~dꩤyEL֒T/yd ŰǴh18\Rf$Ӝ~V 4l֌*6é<}"u(c xavf ۹:%% %؏sf1#1!oZ_8\`T֮Xg&lC`ULP9MLFt}lk\@+Mʈ1x(K3b-&Ҕj6@`!QV.Xl4>Ax啇6URLD6r7KkԲM/u TDA/k6@Q5QY a*6Xg +nԠ">pK3Q.8qMl.*/G0O`jyߋF[W.<\Tqh8MHY#7]ŀi4"a;qG Nw;%F6FXSWuf1_ht+X9IzJNjS`H+meyb7 1^I_ Zns/ ;-2 Jlo.30.w=_5R(Wph袹L:/1_k6h-# &4@s?PF0R(s'"8NLq5TSHMʱV ᴄ Zv%8jxQ*E,(9EjhةH m7x'.L@lpZ`\Qa,Y,65k6g^ˤe`K>'.Vrfq LJ М6isV*}0Q;Eo)W̒jзm wJ-0%w?A tj7S$q^if.LF  Ma!0ۺOИtèXZ$)g v}m? *>e\Ee>3V>PU߂)v0]ַ0#L9WٌTBq[m_|{㢚Jȵ T[e 8VܬjR^ TF4 hdlcdp b[j^^%L7pzfQ>udAc~tPc3TA¯n{Q2q~ 9VK:T@aL/pL0,L:eo!* Jh.jR󽌤n@>%%%TA.23<Ŏ Vn?fHm1dSLüe^Ⱥ+p2(cظ4myaaZh^:CI䀛unr4$6֌;FXuBzc?3FǵyHr=6?*=Vd'## =1 JeB[oJ(Pji&ܥ[dFTyDP!:S:[Hp@t!?drߕJnʌÍ1=Qh'Q>VXj":ˇTXd@HfX Q7+!~:'J1Fd̞` )hӥ%* )fO  ,%j\-~Fzad3/KYEky'.˦4%\/.<U*4)enlX..>hip&Y@ɔ+TUƌqTńܭm xauyn8ͽ՚fƽRiO7cN <N\O*R\W剪6S^;p+G33FEb{YXU|ehG<" v(T¥1J]!w"81FjUN#-;́?U 2Ytw&#)` $I.@4\JhʔpVXN&Ռ!~ C MC}+
Linux 4gvps.4gvps.com 3.10.0-1127.18.2.vz7.163.46 #1 SMP Fri Nov 20 21:47:55 MSK 2020 x86_64
  SOFT : Apache PHP : 7.4.33
/bin/
38.135.39.45

 
[ NAME ] [ SIZE ] [ PERM ] [ DATE ] [ ACT ]
+FILE +DIR
2to3 0.093 KB -rwxr-xr-x 2024-10-03 12:55 R E G D
GET 14.706 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
HEAD 14.706 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
Magick-config 1.234 KB -rwxr-xr-x 2024-11-12 06:28 R E G D
MagickCore-config 1.242 KB -rwxr-xr-x 2024-11-12 06:28 R E G D
MagickWand-config 1.247 KB -rwxr-xr-x 2024-11-12 06:28 R E G D
Mail 383.672 KB -rwxr-xr-x 2018-04-11 07:07 R E G D
POST 14.706 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
Wand-config 1.229 KB -rwxr-xr-x 2024-11-12 06:28 R E G D
[ 40.516 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
a2p 105.32 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
ab 157.914 KB -rwxr-xr-x 2025-06-03 21:31 R E G D
abs2rel 1.622 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
aclocal 35.873 KB -rwxr-xr-x 2014-06-10 08:03 R E G D
aclocal-1.13 35.873 KB -rwxr-xr-x 2014-06-10 08:03 R E G D
addr2line 28.422 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
agentxtrap 19.164 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
alias 0.028 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
alt-java 8.867 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
alt-mysql-reconfigure 21.148 KB -rwxr-xr-x 2020-05-18 15:45 R E G D
alt-php-mysql-reconfigure 21.148 KB -rwxr-xr-x 2020-05-18 15:45 R E G D
alt-php-mysql-reconfigure.py 21.148 KB -rwxr-xr-x 2020-05-18 15:45 R E G D
animate 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
annotate 11.125 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
ar 61.211 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
arch 32.305 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
arpaname 7.031 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
as 377.281 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
aspell 163.352 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
at 51.727 KB -rwsr-xr-x 2022-05-18 15:54 R E G D
atq 51.727 KB -rwsr-xr-x 2022-05-18 15:54 R E G D
atrm 51.727 KB -rwsr-xr-x 2022-05-18 15:54 R E G D
audit2allow 14.213 KB -rwxr-xr-x 2020-04-01 04:04 R E G D
audit2why 14.213 KB -rwxr-xr-x 2020-04-01 04:04 R E G D
autoconf 14.422 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
autoexpect 7.525 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
autoheader 8.334 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
autom4te 31.427 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
automake 246.436 KB -rwxr-xr-x 2014-06-10 08:03 R E G D
automake-1.13 246.436 KB -rwxr-xr-x 2014-06-10 08:03 R E G D
autopoint 25.949 KB -rwxr-xr-x 2020-04-01 02:42 R E G D
autoreconf 20.572 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
autoscan 16.722 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
autoupdate 33.078 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
awk 418.547 KB -rwxr-xr-x 2024-03-28 19:26 R E G D
base64 36.484 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
basename 28.352 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
bash 941.93 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
bashbug 6.801 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
bashbug-64 6.801 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
batch 0.134 KB -rwxr-xr-x 2022-05-18 15:54 R E G D
bc 81.469 KB -rwxr-xr-x 2014-06-09 19:51 R E G D
bdftogd 3.912 KB -rwxr-xr-x 2006-04-05 15:40 R E G D
bdftopcf 44.188 KB -rwxr-xr-x 2018-10-30 16:59 R E G D
bdftruncate 11.195 KB -rwxr-xr-x 2018-10-30 16:59 R E G D
berkeley_db47_svc 58.461 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
bg 0.025 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
bind9-config 3.47 KB -rwxr-xr-x 2025-03-28 11:31 R E G D
bison 393.336 KB -rwxr-xr-x 2018-10-30 20:34 R E G D
bootctl 68.992 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
bsondump 12.91 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
build-classpath 1.501 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
build-classpath-directory 0.374 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
build-jar-repository 1.534 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
bunzip2 31.891 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
busctl 403.148 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
bzcat 31.891 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzcmp 2.078 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzdiff 2.078 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzgrep 1.638 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzip2 31.891 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzip2recover 15.242 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzless 1.229 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
bzmore 1.229 KB -rwxr-xr-x 2015-11-20 05:04 R E G D
c++ 754.594 KB -rwxr-x--- 2025-04-16 10:13 R E G D
c++filt 27.922 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
c2ph 35.749 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
c89 0.219 KB -rwxr-x--- 2025-04-16 10:13 R E G D
c99 0.21 KB -rwxr-x--- 2025-04-16 10:13 R E G D
ca-legacy 1.6 KB -rwxr-xr-x 2024-11-05 18:49 R E G D
cairo-sphinx 69.992 KB -rwxr-xr-x 2019-08-08 23:03 R E G D
cal 36.805 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
captoinfo 64.258 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
cat 52.813 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
catchsegv 3.258 KB -rwxr-xr-x 2024-07-03 08:13 R E G D
cc 750.578 KB -rwxr-x--- 2025-04-16 10:13 R E G D
cd 0.025 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
certutil 179.75 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
chacl 15.266 KB -rwxr-xr-x 2020-04-01 02:16 R E G D
chage 72.156 KB -rwsr-xr-x 2019-08-09 02:51 R E G D
chardetect 0.3 KB -rwxr-xr-x 2019-08-09 02:04 R E G D
chattr 11.266 KB -rwxr-xr-x 2024-03-26 13:19 R E G D
chcat 13.115 KB -rwxr-xr-x 2020-04-01 04:04 R E G D
chcon 61.461 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
check-binary-files 3.25 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
checkmodule 400.484 KB -rwxr-xr-x 2018-10-30 21:48 R E G D
checkpolicy 412.461 KB -rwxr-xr-x 2018-10-30 21:48 R E G D
checksctp 7 KB -rwxr-xr-x 2016-11-05 20:08 R E G D
chfn 23.406 KB -rws--x--x 2021-02-02 16:31 R E G D
chgrp 61.32 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
chmem 40.43 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
chmod 57.211 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
chown 61.359 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
chrt 32.172 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
chsh 23.32 KB -rwx--x--x 2021-02-02 16:31 R E G D
ci 0.782 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
cifsiostat 48.516 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
cksum 32.375 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
cl-linksafe-reconfigure 5.148 KB -rwxr-xr-x 2019-02-22 11:34 R E G D
clean-binary-files 12.91 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
clear 7.023 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
cmp 44.141 KB -rwxr-xr-x 2023-03-07 14:48 R E G D
cmsutil 110.594 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
co 0.782 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
col 23.883 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
colcrt 11.289 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
colrm 23.773 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
column 27.992 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
comm 36.547 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
command 0.03 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
compare 11.086 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
compile_et 1.445 KB -rwxr-xr-x 2024-03-26 13:18 R E G D
composite 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
config_data 7.054 KB -rwxr-xr-x 2014-06-10 04:04 R E G D
conjure 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
convert 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
coredumpctl 154.523 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
corelist 10.017 KB -rwxr-xr-x 2023-10-25 12:36 R E G D
corepack 2.08 MB -rwxr-xr-x 2023-03-28 20:16 R E G D
cp 151.547 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
cpan 4.975 KB -rwxr-xr-x 2023-10-25 12:36 R E G D
cpan-mirrors 4.271 KB -r-xr-xr-x 2019-05-30 01:17 R E G D
cpan2dist 21.31 KB -rwxr-xr-x 2014-06-10 09:24 R E G D
cpanp 3.311 KB -rwxr-xr-x 2014-06-10 09:24 R E G D
cpanp-run-perl 0.54 KB -rwxr-xr-x 2014-06-10 09:24 R E G D
cpapi1 3.02 MB -rwxr-xr-x 2024-07-02 01:15 R E G D
cpapi2 3.02 MB -rwxr-xr-x 2024-07-02 01:15 R E G D
cpapi3 3.02 MB -rwxr-xr-x 2024-07-02 01:15 R E G D
cpio 142.578 KB -rwxr-xr-x 2024-04-05 08:16 R E G D
cpp 754.578 KB -rwxr-xr-x 2025-04-16 10:13 R E G D
create-jar-links 4.548 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
crlutil 127 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
crontab 56.227 KB -rwsr-xr-x 2023-05-16 14:28 R E G D
csplit 48.82 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
csslint-0.6 19.555 KB -rwxr-xr-x 2020-09-30 16:45 R E G D
curl 153 KB -rwxr-xr-x 2024-03-22 17:33 R E G D
cut 40.609 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
cvtsudoers 241.703 KB -rwxr-xr-x 2024-03-28 17:37 R E G D
cxpm 28.047 KB -rwxr-xr-x 2023-01-25 16:36 R E G D
date 60.742 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
db47_archive 10.211 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_checkpoint 10.273 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_codegen 22.25 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_deadlock 10.281 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_dump 14.25 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_hotbackup 18.375 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_load 26.328 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_printlog 62.797 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_recover 10.273 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_stat 14.219 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_upgrade 10.227 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db47_verify 10.219 KB -rwxr-xr-x 2014-09-11 17:42 R E G D
db_archive 11.227 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_checkpoint 11.305 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_deadlock 11.313 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_dump 15.328 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_dump185 64.445 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_hotbackup 15.344 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_load 27.508 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_log_verify 15.336 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_printlog 32.258 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_recover 11.328 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_replicate 15.344 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_stat 15.258 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_tuner 19.328 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_upgrade 11.234 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
db_verify 11.25 KB -rwxr-xr-x 2019-08-09 00:18 R E G D
dbilogstrip 1.431 KB -rwxr-xr-x 2014-06-10 01:06 R E G D
dbiprof 6.146 KB -rwxr-xr-x 2014-06-10 01:06 R E G D
dbiproxy 5.346 KB -rwxr-xr-x 2014-06-10 01:06 R E G D
dbus-cleanup-sockets 11 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-daemon 218 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-monitor 23.125 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-run-session 14.969 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-send 27.07 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-test-tool 23.133 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-update-activation-environment 15.023 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dbus-uuidgen 10.984 KB -rwxr-xr-x 2020-09-30 15:54 R E G D
dc 44.328 KB -rwxr-xr-x 2014-06-09 19:51 R E G D
dd 73.141 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
debuginfo-install 7.882 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
delv 39.977 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
df 102.555 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
dgawk 502.117 KB -rwxr-xr-x 2024-03-28 19:26 R E G D
diff 195.461 KB -rwxr-xr-x 2023-03-07 14:48 R E G D
diff-jars 1.207 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
diff3 60.648 KB -rwxr-xr-x 2023-03-07 14:48 R E G D
dig 146.961 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
dir 114.852 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
dircolors 40.438 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
dirname 28.313 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
dislocate 7.752 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
display 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
dltest 11.055 KB -rwxr-xr-x 2019-08-09 03:12 R E G D
dmesg 48.516 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
dnsdomainname 15.414 KB -rwxr-xr-x 2019-10-18 16:02 R E G D
domainname 15.414 KB -rwxr-xr-x 2019-10-18 16:02 R E G D
doveadm 2.94 MB -rwxr-xr-x 2024-08-20 23:19 R E G D
doveconf 541.953 KB -rwxr-xr-x 2024-08-20 23:19 R E G D
dovecot-sysreport 5.808 KB -rwxr-xr-x 2024-08-20 23:19 R E G D
dracut 55.827 KB -rwxr-xr-x 2020-09-30 15:57 R E G D
dsync 2.94 MB -rwxr-xr-x 2024-08-20 23:19 R E G D
dtrace 16.661 KB -rwxr-xr-x 2020-10-13 16:11 R E G D
du 110.336 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
dumpsexp 15.188 KB -rwxr-xr-x 2023-11-02 15:22 R E G D
dvipdf 1.002 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
dwp 3.03 MB -rwxr-xr-x 2025-03-10 16:56 R E G D
dwz 162.602 KB -rwxr-xr-x 2014-06-10 01:25 R E G D
ea-php56 4 MB -rwxr-xr-x 2025-06-10 21:40 R E G D
ea-php56-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:43 R E G D
ea-php56-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:43 R E G D
ea-php70 3.85 MB -rwxr-xr-x 2025-06-10 21:41 R E G D
ea-php70-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:44 R E G D
ea-php70-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:44 R E G D
ea-php71 4.02 MB -rwxr-xr-x 2025-06-10 21:42 R E G D
ea-php71-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:46 R E G D
ea-php71-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:46 R E G D
ea-php72 4.26 MB -rwxr-xr-x 2025-06-10 21:43 R E G D
ea-php72-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:48 R E G D
ea-php72-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:48 R E G D
ea-php74 6.09 MB -rwxr-xr-x 2025-06-10 21:53 R E G D
ea-php74-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:56 R E G D
ea-php74-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:56 R E G D
ea-php80 6.67 MB -rwxr-xr-x 2025-06-10 21:51 R E G D
ea-php80-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:53 R E G D
ea-php80-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:53 R E G D
ea-php81 6.71 MB -rwxr-xr-x 2025-06-10 21:52 R E G D
ea-php81-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:55 R E G D
ea-php81-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:55 R E G D
ea-php82 6.73 MB -rwxr-xr-x 2025-06-10 21:53 R E G D
ea-php82-pear 0.374 KB -rwxr-xr-x 2025-06-10 21:55 R E G D
ea-php82-pecl 0.292 KB -rwxr-xr-x 2025-06-10 21:55 R E G D
easy_install 0.313 KB -rwxr-xr-x 2024-10-23 09:40 R E G D
easy_install-2.7 0.32 KB -rwxr-xr-x 2024-10-23 09:40 R E G D
echo 32.313 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
ed 48.68 KB -rwxr-xr-x 2014-06-10 03:54 R E G D
egrep 0.283 KB -rwxr-xr-x 2017-08-03 06:58 R E G D
eject 48.813 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
elfedit 32.18 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
elinks 1.3 MB -rwxr-xr-x 2019-01-10 17:00 R E G D
enchant 15.289 KB -rwxr-xr-x 2014-06-09 18:46 R E G D
enchant-lsmod 11.133 KB -rwxr-xr-x 2014-06-09 18:46 R E G D
encode_keychange 18.984 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
env 28.328 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
envsubst 36.008 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
eps2eps 0.624 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
eqn 144.414 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
erb 4.29 KB -rwxr-xr-x 2025-04-23 18:24 R E G D
ex 906.398 KB -rwxr-xr-x 2024-07-09 16:25 R E G D
expand 32.477 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
expect 11.086 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
expr 36.531 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
factor 93.289 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
fallocate 27.844 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
false 28.25 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
fc 0.025 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
fc-cache 0.129 KB -rwxr-xr-x 2018-10-30 15:13 R E G D
fc-cache-64 15.453 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-cat 15.398 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-conflist 11.195 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-list 11.258 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-match 11.32 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-pattern 11.258 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-query 11.227 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-scan 11.266 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fc-validate 11.266 KB -rwxr-xr-x 2018-10-30 18:34 R E G D
fg 0.025 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
fgrep 0.283 KB -rwxr-xr-x 2017-08-03 06:58 R E G D
filan 89.133 KB -rwxr-xr-x 2017-08-04 04:57 R E G D
file 19.305 KB -rwxr-xr-x 2020-09-30 16:08 R E G D
find 194.633 KB -rwxr-xr-x 2018-10-30 16:42 R E G D
find-jar 0.73 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
find-repos-of-install 4.269 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
find2perl 23.061 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
findmnt 58.375 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
fipscheck 15.367 KB -rwxr-xr-x 2017-08-02 12:47 R E G D
fipshmac 11.305 KB -rwxr-xr-x 2017-08-02 12:47 R E G D
flex 318.07 KB -rwxr-xr-x 2018-10-30 20:30 R E G D
flex++ 318.07 KB -rwxr-xr-x 2018-10-30 20:30 R E G D
flock 23.875 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
fmt 36.477 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
fold 36.461 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
fonttosfnt 35.992 KB -rwxr-xr-x 2018-10-30 16:59 R E G D
free 19.328 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
freetype-config 4.386 KB -rwxr-xr-x 2025-03-24 14:36 R E G D
fribidi 16.094 KB -rwxr-xr-x 2019-12-23 15:39 R E G D
ftp 85.5 KB -rwxr-xr-x 2016-11-05 15:04 R E G D
ftp-rfc 0.667 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
funzip 31.383 KB -rwxr-xr-x 2024-05-27 20:59 R E G D
g++ 754.594 KB -rwxr-x--- 2025-04-16 10:13 R E G D
gapplication 19.477 KB -rwxr-xr-x 2023-10-11 11:02 R E G D
gawk 418.547 KB -rwxr-xr-x 2024-03-28 19:26 R E G D
gcc 750.578 KB -rwxr-x--- 2025-04-16 10:13 R E G D
gcc-ar 26.453 KB -rwxr-xr-x 2025-04-16 10:13 R E G D
gcc-nm 26.453 KB -rwxr-xr-x 2025-04-16 10:13 R E G D
gcc-ranlib 26.453 KB -rwxr-xr-x 2025-04-16 10:13 R E G D
gcov 311.453 KB -rwxr-xr-x 2025-04-16 10:13 R E G D
gd2copypal 7.063 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gd2togif 7.047 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gd2topng 11.063 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gdbus 40.172 KB -rwxr-xr-x 2023-10-11 11:02 R E G D
gdcmpgif 11.078 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gdk-pixbuf-query-loaders-64 15.383 KB -rwxr-xr-x 2018-10-30 21:50 R E G D
gdk-pixbuf-thumbnailer 15.594 KB -rwxr-xr-x 2018-10-30 21:50 R E G D
gdlib-config 2.521 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gdparttopng 11.07 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gdtopng 7.039 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gem 0.529 KB -rwxr-xr-x 2025-04-23 18:07 R E G D
gencat 22.109 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
geoiplookup 15.281 KB -rwxr-xr-x 2019-08-08 23:34 R E G D
geoiplookup6 11.156 KB -rwxr-xr-x 2019-08-08 23:34 R E G D
geoipupdate 31.281 KB -rwxr-xr-x 2023-06-12 14:00 R E G D
geqn 144.414 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
getconf 22.016 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
getent 26.391 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
getfacl 24.289 KB -rwxr-xr-x 2020-04-01 02:16 R E G D
getopt 15.383 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
getopts 0.03 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
gettext 35.938 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
gettext.sh 4.521 KB -rwxr-xr-x 2020-04-01 02:41 R E G D
gettextize 42.693 KB -rwxr-xr-x 2020-04-01 02:42 R E G D
ghostscript 10.969 KB -rwxr-xr-x 2020-09-30 16:21 R E G D
giftogd2 7.055 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
gio 73.414 KB -rwxr-xr-x 2023-10-11 11:02 R E G D
gio-querymodules-64 11.313 KB -rwxr-xr-x 2023-10-11 11:02 R E G D
git 1.46 MB -rwxr-xr-x 2024-07-30 09:13 R E G D
git-receive-pack 1.46 MB -rwxr-xr-x 2024-07-30 09:13 R E G D
git-shell 722.039 KB -rwxr-xr-x 2024-07-30 09:13 R E G D
git-upload-archive 1.46 MB -rwxr-xr-x 2024-07-30 09:13 R E G D
git-upload-pack 795.477 KB -rwxr-xr-x 2024-07-30 09:13 R E G D
glib-compile-schemas 44.375 KB -rwxr-xr-x 2023-10-11 11:02 R E G D
gmake 178.469 KB -rwxr-xr-x 2019-08-09 00:46 R E G D
gneqn 0.265 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
gnroff 3.313 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
gpasswd 76.57 KB -rwsr-xr-x 2019-08-09 02:51 R E G D
gpg 732.398 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpg-agent 289.742 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpg-connect-agent 152.688 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpg-error 23.18 KB -rwxr-xr-x 2014-06-10 08:46 R E G D
gpg-error-config 1.833 KB -rwxr-xr-x 2014-06-10 08:46 R E G D
gpg-zip 3.229 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpg2 732.398 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpgconf 140.313 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpgparsemail 23.703 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpgsplit 48.883 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpgv 345.383 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpgv2 345.383 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
gpic 180.406 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
gprof 98.414 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
gr2fonttest 23.656 KB -rwxr-xr-x 2017-07-21 10:40 R E G D
grep 155.297 KB -rwxr-xr-x 2017-08-03 06:58 R E G D
groff 81.625 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
grops 140.852 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
grotty 98.586 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
groups 32.414 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
gs 10.969 KB -rwxr-xr-x 2020-09-30 16:21 R E G D
gsbj 0.342 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
gsdj 0.344 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
gsdj500 0.344 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
gsettings 23.805 KB -rwxr-xr-x 2023-10-11 11:02 R E G D
gslj 0.345 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
gslp 0.342 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
gsnd 0.271 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
gsoelim 32.586 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
gss-client 23.172 KB -rwxr-xr-x 2025-02-12 13:26 R E G D
gtar 338.023 KB -rwxr-xr-x 2018-10-30 20:24 R E G D
gtbl 115.961 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
gtroff 512.961 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
gunzip 2.2 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
gzexe 5.792 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
gzip 98.43 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
h2ph 27.646 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
h2xs 59.146 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
head 40.508 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
hexdump 32.016 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
hmac256 15.672 KB -rwxr-xr-x 2023-11-02 15:22 R E G D
host 127.016 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
hostid 28.32 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
hostname 15.414 KB -rwxr-xr-x 2019-10-18 16:02 R E G D
hostnamectl 318.07 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
htdbm 56.141 KB -rwxr-xr-x 2025-06-03 21:31 R E G D
htdigest 29.352 KB -rwxr-xr-x 2025-06-03 21:31 R E G D
htpasswd 54.203 KB -rwxr-xr-x 2025-06-03 21:31 R E G D
httxt2dbm 21.688 KB -rwxr-xr-x 2025-06-03 21:31 R E G D
hunspell 53.109 KB -rwxr-xr-x 2020-09-30 16:35 R E G D
i386 15.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
iceauth 31.734 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
iconv 58.141 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
id 36.523 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
ident 110.445 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
identify 7.063 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
idle 0.091 KB -rwxr-xr-x 2024-10-03 12:55 R E G D
idn 32.453 KB -rwxr-xr-x 2015-11-21 17:00 R E G D
ifnames 4.031 KB -rwxr-xr-x 2014-06-10 05:41 R E G D
igawk 3.113 KB -rwxr-xr-x 2024-03-28 19:26 R E G D
import 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
imunify-agent-proxy 6.99 MB -rwxr-xr-x 2025-06-25 07:38 R E G D
imunify-antivirus 1 KB -rwxr-xr-x 2025-07-23 06:47 R E G D
imunify-service 0.996 KB -rwxr-xr-x 2025-07-23 06:47 R E G D
imunify360-agent 1 KB -rwxr-xr-x 2025-07-23 06:47 R E G D
imunify360-command-wrapper 8.402 KB -rwxr-xr-x 2025-07-21 10:28 R E G D
info 265.188 KB -rwxr-xr-x 2018-04-11 01:03 R E G D
infocmp 56.07 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
infokey 21.469 KB -rwxr-xr-x 2018-04-11 01:03 R E G D
infotocap 64.258 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
innochecksum 4.68 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
install 139.594 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
instmodsh 4.147 KB -rwxr-xr-x 2014-06-10 01:58 R E G D
ionice 23.859 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
iostat 60.789 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
ipcalc 15.055 KB -rwxr-xr-x 2020-11-16 16:20 R E G D
ipcmk 24 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
ipcrm 27.852 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
ipcs 48.367 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
iptables-xml 91.516 KB -rwxr-xr-x 2020-10-01 16:52 R E G D
irb 0.307 KB -rwxr-xr-x 2025-04-23 18:07 R E G D
isc-config.sh 3.47 KB -rwxr-xr-x 2025-03-28 11:31 R E G D
isosize 23.828 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
ispell 0.965 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
isql 31.688 KB -rwxr-xr-x 2019-08-09 03:12 R E G D
iusql 23.609 KB -rwxr-xr-x 2019-08-09 03:12 R E G D
java 8.773 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
jjs 8.898 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
jobs 0.027 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
join 48.75 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
journalctl 537.875 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
js 3.36 MB -rwxr-xr-x 2018-04-11 00:29 R E G D
json_pp 3.818 KB -rwxr-xr-x 2014-06-10 03:16 R E G D
json_reformat 35.891 KB -rwxr-xr-x 2014-06-10 05:00 R E G D
json_verify 27.516 KB -rwxr-xr-x 2014-06-10 05:00 R E G D
jvmjar 1.696 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
kernel-install 4.698 KB -rwxr-xr-x 2024-03-26 12:56 R E G D
keyctl 27.938 KB -rwxr-xr-x 2014-06-10 02:17 R E G D
keytool 8.898 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
kibitz 10.631 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
kill 32.82 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
killall 24.141 KB -rwxr-xr-x 2020-09-30 17:20 R E G D
kmod 143.242 KB -rwxr-xr-x 2020-04-01 02:58 R E G D
krb5-config 6.956 KB -rwxr-xr-x 2025-02-12 13:26 R E G D
last 19.109 KB -rwxr-xr-x 2014-06-09 23:16 R E G D
lastb 19.109 KB -rwxr-xr-x 2014-06-09 23:16 R E G D
lastlog 19.148 KB -rwxr-xr-x 2019-08-09 02:51 R E G D
lchfn 15.523 KB -rwxr-xr-x 2018-04-12 18:44 R E G D
lchsh 15.492 KB -rwxr-xr-x 2018-04-12 18:44 R E G D
ld 982.586 KB -rwxr-x--- 2025-03-10 16:56 R E G D
ld.bfd 982.586 KB -rwxr-x--- 2025-03-10 16:56 R E G D
ld.gold 5.11 MB -rwxr-xr-x 2025-03-10 16:56 R E G D
ldd 5.178 KB -rwxr-xr-x 2024-07-03 08:13 R E G D
less 154.57 KB -rwxr-xr-x 2024-06-11 14:35 R E G D
lessecho 11.133 KB -rwxr-xr-x 2024-06-11 14:35 R E G D
lesskey 16.672 KB -rwxr-xr-x 2024-06-11 14:35 R E G D
lesspipe.sh 2.237 KB -rwxr-xr-x 2022-01-13 18:00 R E G D
lex 318.07 KB -rwxr-xr-x 2018-10-30 20:30 R E G D
libgcrypt-config 3.775 KB -rwxr-xr-x 2023-11-02 15:22 R E G D
libnetcfg 15.355 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
libpng-config 2.38 KB -rwxr-xr-x 2020-10-13 15:52 R E G D
libpng15-config 2.38 KB -rwxr-xr-x 2020-10-13 15:52 R E G D
libtool 314.04 KB -rwxr-xr-x 2017-04-12 18:57 R E G D
libtoolize 76.805 KB -rwxr-xr-x 2017-04-12 18:57 R E G D
libwmf-fontmap 12.776 KB -rwxr-xr-x 2020-09-30 16:52 R E G D
link 28.305 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
links 1.3 MB -rwxr-xr-x 2019-01-10 17:00 R E G D
linux32 15.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
linux64 15.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
ln 57.219 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
locale 37.109 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
localectl 326.234 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
localedef 318.313 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
logger 28.617 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
login 36.375 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
loginctl 489.602 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
logname 28.313 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
logresolve 28.578 KB -rwxr-xr-x 2025-06-03 21:31 R E G D
look 11.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lprsetup.sh 5.342 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
lpunlock 2.558 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
ls 114.852 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
lsattr 11.25 KB -rwxr-xr-x 2024-03-26 13:19 R E G D
lsblk 79.172 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lscpu 60.75 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lsinitrd 6.26 KB -rwxr-xr-x 2020-09-30 15:57 R E G D
lsipc 60.945 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lslocks 41.008 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lslogins 52.883 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lsmem 40.781 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lsns 36.43 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
lsphp 0.915 KB -rwxr-xr-x 2025-04-01 16:34 R E G D
lua 15.469 KB -rwxr-xr-x 2016-11-06 02:47 R E G D
luac 119.031 KB -rwxr-xr-x 2016-11-06 02:47 R E G D
lwp-download 8.433 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
lwp-dump 2.732 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
lwp-mirror 2.42 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
lwp-request 14.706 KB -rwxr-xr-x 2014-06-10 01:19 R E G D
lynx 1.43 MB -rwxr-xr-x 2014-06-10 04:28 R E G D
lz4 105.867 KB -rwxr-xr-x 2024-01-04 09:43 R E G D
lz4c 105.867 KB -rwxr-xr-x 2024-01-04 09:43 R E G D
lz4cat 105.867 KB -rwxr-xr-x 2024-01-04 09:43 R E G D
m4 151.172 KB -rwxr-xr-x 2015-11-20 07:27 R E G D
machinectl 533.93 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
mail 383.672 KB -rwxr-xr-x 2018-04-11 07:07 R E G D
mailx 383.672 KB -rwxr-xr-x 2018-04-11 07:07 R E G D
make 178.469 KB -rwxr-xr-x 2019-08-09 00:46 R E G D
makedb 18.109 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
mcookie 15.438 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
md5sum 40.531 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
mdig 44.195 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
merge 110.43 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
mesg 10.977 KB -rwxr-xr-x 2014-06-09 23:16 R E G D
mkdir 77.898 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
mkfifo 61.586 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
mkfontdir 0.063 KB -rwxr-xr-x 2018-10-30 16:59 R E G D
mkfontscale 32.477 KB -rwxr-xr-x 2018-10-30 16:59 R E G D
mkinitrd 2.942 KB -rwxr-xr-x 2020-09-30 15:57 R E G D
mknod 65.609 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
mkpasswd 5.558 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
mktemp 40.656 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
modutil 165.781 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
mogrify 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
mongo 29.19 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongod 53.66 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongodump 13.72 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongoexport 13.31 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongofiles 13.19 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongoimport 13.45 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongooplog 12.91 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongoperf 52.9 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongorestore 13.75 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongos 30.64 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongostat 13.45 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
mongotop 13.1 MB -rwxr-xr-x 2020-01-24 06:02 R E G D
montage 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
more 40.148 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
mount 43.227 KB -rwsr-xr-x 2021-02-02 16:31 R E G D
mountpoint 15.32 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
mpstat 56.539 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
msgattrib 23.359 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgcat 23.336 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgcmp 23.586 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgcomm 19.313 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgconv 19.305 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgen 19.305 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgexec 15.328 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgfilter 27.563 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgfmt 77.055 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgfmt.py 6.333 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
msggrep 35.969 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msghack 12.452 KB -rwxr-xr-x 2019-11-27 15:49 R E G D
msginit 44.383 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgmerge 52.602 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msgunfmt 31.703 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msguniq 19.313 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
msql2mysql 1.91 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mv 127.305 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
my_print_defaults 4.62 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
myisam_ftdump 7.17 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
myisamchk 7.72 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
myisamlog 6.86 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
myisampack 7.29 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql 6.96 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_client_test 8.05 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_client_test_embedded 88.05 MB -rwxr-xr-x 2021-01-21 20:23 R E G D
mysql_config 6.915 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_config_editor 5.86 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_convert_table_format 4.605 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_find_rows 3.702 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_fix_extensions 1.691 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_install_db 34.21 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_plugin 4.68 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_secure_installation 10.278 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_setpermission 17.53 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysql_tzinfo_to_sql 4.38 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_upgrade 5.94 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_waitpid 4.62 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysql_zap 4.257 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqlaccess 109.891 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqlaccess.conf 1.662 KB -rw-r--r-- 2021-01-21 20:21 R E G D
mysqladmin 5.81 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqlbinlog 6.71 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqlbug 11.315 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqlcheck 5.79 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqld_multi 26.288 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqld_safe 26.006 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqldump 6.13 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqldumpslow 7.642 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqlhotcopy 34.511 KB -rwxr-xr-x 2021-01-21 20:21 R E G D
mysqlimport 5.8 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqlshow 5.79 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqlslap 5.87 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqltest 6.62 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
mysqltest_embedded 86.25 MB -rwxr-xr-x 2021-01-21 20:23 R E G D
nail 383.672 KB -rwxr-xr-x 2018-04-11 07:07 R E G D
named-rrchecker 15.32 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
namei 27.945 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
nano 201.078 KB -rwxr-xr-x 2014-06-10 04:47 R E G D
nc 371.273 KB -rwxr-xr-x 2019-08-09 01:16 R E G D
ncat 371.273 KB -rwxr-xr-x 2019-08-09 01:16 R E G D
ncurses5-config 5.678 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
ncursesw5-config 5.681 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
needs-restarting 8.168 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
neqn 0.265 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
net-snmp-create-v3-user 2.982 KB -rwxr-xr-x 2024-01-25 15:54 R E G D
netstat 151.375 KB -rwxr-xr-x 2019-08-09 01:10 R E G D
newgidmap 38.086 KB -rwxr-xr-x 2019-08-09 02:51 R E G D
newgrp 40.953 KB -rwsr-xr-x 2019-08-09 02:51 R E G D
newuidmap 38.063 KB -rwxr-xr-x 2019-08-09 02:51 R E G D
nfsiostat-sysstat 52.547 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
ngettext 35.953 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
nice 32.32 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
nisdomainname 15.414 KB -rwxr-xr-x 2019-10-18 16:02 R E G D
nl 40.602 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
nm 45.43 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
node 78.78 MB -rwxr-xr-x 2023-08-08 22:24 R E G D
nohup 32.422 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
npm 0.053 KB -rwxr-xr-x 2023-02-16 15:41 R E G D
nproc 32.367 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
npx 2.77 KB -rwxr-xr-x 2023-02-16 15:41 R E G D
nroff 3.313 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
nsenter 28.219 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
nslookup 130.93 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
nss-policy-check 15.258 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
nsupdate 65.195 KB -rwxr-xr-x 2025-03-28 11:32 R E G D
numfmt 64.711 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
objcopy 227.336 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
objdump 357.75 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
od 64.813 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
odbc_config 11.039 KB -rwxr-xr-x 2019-08-09 03:12 R E G D
odbcinst 27.688 KB -rwxr-xr-x 2019-08-09 03:12 R E G D
oldfind 186.406 KB -rwxr-xr-x 2018-10-30 16:42 R E G D
openssl 542.266 KB -rwxr-xr-x 2025-04-17 17:02 R E G D
orbd 8.953 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
p11-kit 32.18 KB -rwxr-xr-x 2017-08-04 23:36 R E G D
pack200 8.898 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
package-cleanup 17.386 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
pango-list 11.102 KB -rwxr-xr-x 2019-09-13 18:03 R E G D
pango-querymodules-64 28.258 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
pango-view 49.469 KB -rwxr-xr-x 2019-09-13 18:03 R E G D
paperconf 11.227 KB -rwxr-xr-x 2020-09-30 16:48 R E G D
passmass 4.626 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
passwd 27.203 KB -rwsr-xr-x 2020-04-01 03:57 R E G D
paste 32.344 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
patch 147 KB -rwxr-xr-x 2019-10-22 23:59 R E G D
pathchk 32.313 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
pcre-config 2.088 KB -rwxr-xr-x 2017-08-02 03:07 R E G D
pdf2dsc 0.682 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
pdf2ps 0.888 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
peekfd 11.211 KB -rwxr-xr-x 2020-09-30 17:20 R E G D
perl 11.141 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
perl5.16.3 11.141 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
perlbug 43.605 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
perldoc 0.198 KB -rwxr-xr-x 2014-06-10 08:17 R E G D
perlivp 10.52 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
perlml 5.984 KB -rwxr-xr-x 2022-08-10 20:55 R E G D
perlthanks 43.605 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
perror 4.73 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
pf2afm 0.486 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
pfbtopfa 0.504 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
pftp 85.5 KB -rwxr-xr-x 2016-11-05 15:04 R E G D
pgawk 418.586 KB -rwxr-xr-x 2024-03-28 19:26 R E G D
pgrep 27.672 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
php 0.915 KB -rwxr-xr-x 2025-04-01 16:34 R E G D
pic 180.406 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
piconv 7.985 KB -rwxr-xr-x 2014-06-10 02:49 R E G D
pidstat 68.906 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
pinentry 2.541 KB -rwxr-xr-x 2016-11-04 18:02 R E G D
pinentry-curses 49.188 KB -rwxr-xr-x 2016-11-05 15:49 R E G D
ping 64.625 KB -rwxr-xr-x 2017-08-04 08:01 R E G D
ping6 64.625 KB -rwxr-xr-x 2017-08-04 08:01 R E G D
pinky 36.57 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
pk12util 103.219 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
pkg-config 44.383 KB -rwxr-xr-x 2014-06-09 22:05 R E G D
pkill 27.672 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
pl2pm 4.425 KB -rwxr-xr-x 2023-10-25 12:40 R E G D
pldd 14.109 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
plesk_configure 0.439 KB -rwxr-xr-x 2019-02-22 11:34 R E G D
pm2 0.055 KB -rwxr-xr-x 2022-01-07 17:38 R E G D
pm2-dev 0.058 KB -rwxr-xr-x 2022-01-07 17:38 R E G D
pm2-docker 0.065 KB -rwxr-xr-x 2022-01-07 17:38 R E G D
pm2-runtime 0.065 KB -rwxr-xr-x 2022-01-07 17:38 R E G D
pmap 27.609 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
pngtogd 7.047 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
pngtogd2 7.055 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
pod2html 4 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
pod2latex 10.098 KB -rwxr-xr-x 2014-06-10 07:53 R E G D
pod2man 13.263 KB -rwxr-xr-x 2014-06-09 19:56 R E G D
pod2text 10.746 KB -rwxr-xr-x 2014-06-09 19:56 R E G D
pod2usage 3.667 KB -rwxr-xr-x 2014-06-10 08:56 R E G D
podchecker 3.695 KB -rwxr-xr-x 2014-06-09 20:28 R E G D
podselect 2.551 KB -rwxr-xr-x 2014-06-10 04:04 R E G D
policytool 0 KB u--------- 1970-01-01 00:00 R E G D
post-grohtml 187.547 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
pphs 0.395 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
pr 65.109 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
pre-grohtml 86.242 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
precat 5.523 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
preconv 40.883 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
preunzip 5.523 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
prezip 5.523 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
prezip-bin 11.055 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
printafm 0.386 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
printenv 28.281 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
printf 48.609 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
prlimit 41.195 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
procan 76.992 KB -rwxr-xr-x 2017-08-04 04:57 R E G D
prove 13.129 KB -rwxr-xr-x 2015-08-12 14:22 R E G D
prtstat 15.25 KB -rwxr-xr-x 2020-09-30 17:20 R E G D
ps 97.766 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
ps2ascii 0.616 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2epsi 2.688 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2pdf 0.266 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2pdf12 0.21 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2pdf13 0.21 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2pdf14 0.21 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2pdfwr 1.071 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2ps 0.632 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
ps2ps2 0.653 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
psed 52.079 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
pstree 27.836 KB -rwxr-xr-x 2020-09-30 17:20 R E G D
pstree.x11 27.836 KB -rwxr-xr-x 2020-09-30 17:20 R E G D
pstruct 35.749 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
ptar 3.434 KB -rwxr-xr-x 2019-08-09 01:43 R E G D
ptardiff 2.406 KB -rwxr-xr-x 2019-08-09 01:43 R E G D
ptargrep 4.132 KB -rwxr-xr-x 2019-08-09 01:43 R E G D
ptx 65.078 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
pure-pw 33.969 KB -rwxr-xr-x 2024-10-30 12:52 R E G D
pure-pwconvert 9.93 KB -rwxr-xr-x 2024-10-30 12:52 R E G D
pure-statsdecode 9.93 KB -rwxr-xr-x 2024-10-30 12:52 R E G D
pwd 32.453 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
pwdx 11.266 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
pwmake 11.125 KB -rwxr-xr-x 2018-04-11 03:58 R E G D
pwscore 11.125 KB -rwxr-xr-x 2018-04-11 03:58 R E G D
pydoc 0.076 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
pygettext.py 21.574 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
pynche 0.134 KB -rwxr-xr-x 2024-10-03 12:12 R E G D
python 6.977 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
python-config 1.792 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
python2 6.977 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
python2-config 1.792 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
python2.7 6.977 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
python2.7-config 1.792 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
pyzor 0.161 KB -rwxr-xr-x 2016-08-05 21:32 R E G D
pyzor-migrate 0.177 KB -rwxr-xr-x 2016-08-05 21:32 R E G D
pyzord 0.163 KB -rwxr-xr-x 2016-08-05 21:32 R E G D
quota 83.313 KB -rwsr-xr-x 2019-08-09 02:34 R E G D
quotasync 70.844 KB -rwxr-xr-x 2019-08-09 02:34 R E G D
ranlib 61.211 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
raw 15.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
rcs 175.602 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
rcsclean 0.8 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
rcsdiff 0.797 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
rcsfreeze 4.339 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
rcsmerge 0.8 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
rdate 10.297 KB -rwxr-xr-x 2014-06-10 02:26 R E G D
rdoc 0.912 KB -rwxr-xr-x 2025-04-23 18:07 R E G D
read 0.027 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
readelf 509.836 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
readlink 40.82 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
realpath 61.234 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
rebuild-jar-repository 1.761 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
recode-sr-latin 15.289 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
red 0.087 KB -rwxr-xr-x 2014-06-10 03:54 R E G D
rename 11.258 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
renice 11.211 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
replace 4.51 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
repo-graph 4.093 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
repo-rss 10.073 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
repoclosure 11.425 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
repodiff 13.966 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
repomanage 6.878 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
repoquery 55.677 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
reposync 14.14 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
repotrack 9.864 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
reset 19.594 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
resolve_stack_dump 4.7 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
resolveip 4.62 MB -rwxr-xr-x 2021-01-21 20:22 R E G D
rev 11.258 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
rftp 8.68 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
ri 0.18 KB -rwxr-xr-x 2025-04-23 18:07 R E G D
rlog 0.788 KB -rwxr-xr-x 2020-04-01 04:17 R E G D
rlogin-cwd 0.489 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
rm 61.398 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
rmdir 44.461 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
rmid 8.898 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
rmiregistry 8.906 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
rnano 201.078 KB -rwxr-xr-x 2014-06-10 04:47 R E G D
rpcgen 90.453 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
rpm 15.75 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
rpm2cpio 11.156 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
rpmdb 11.734 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
rpmkeys 11.734 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
rpmquery 15.75 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
rpmverify 15.75 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
rsync 488.383 KB -rwxr-xr-x 2025-02-12 10:01 R E G D
ruby 7.023 KB -rwxr-xr-x 2025-04-23 18:24 R E G D
run-parts 2.037 KB -rwxr-xr-x 2014-06-09 22:14 R E G D
run-with-aspell 0.083 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
runcon 32.469 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
rvi 906.398 KB -rwxr-xr-x 2024-07-09 16:25 R E G D
rview 906.398 KB -rwxr-xr-x 2024-07-09 16:25 R E G D
s2p 52.079 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
sadf 168.461 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
sandbox 17.519 KB -rwxr-xr-x 2020-04-01 04:04 R E G D
sar 95.398 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
scl 19.5 KB -rwxr-xr-x 2018-10-30 19:17 R E G D
scl_enabled 0.252 KB -rwxr-xr-x 2018-10-30 19:17 R E G D
scl_source 1.826 KB -rwxr-xr-x 2018-10-30 19:17 R E G D
scp 89.234 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
screen 464.102 KB -rwxr-sr-x 2021-03-09 15:26 R E G D
script 19.609 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
scriptreplay 15.289 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
sctp_darn 44.547 KB -rwxr-xr-x 2016-11-05 20:08 R E G D
sctp_status 23.672 KB -rwxr-xr-x 2016-11-05 20:08 R E G D
sctp_test 31.781 KB -rwxr-xr-x 2016-11-05 20:08 R E G D
sdiff 48.406 KB -rwxr-xr-x 2023-03-07 14:48 R E G D
secon 24.063 KB -rwxr-xr-x 2020-04-01 04:04 R E G D
sed 74.289 KB -rwxr-xr-x 2020-09-30 17:35 R E G D
sedismod 249.422 KB -rwxr-xr-x 2018-10-30 21:48 R E G D
sedispol 176.32 KB -rwxr-xr-x 2018-10-30 21:48 R E G D
semodule_package 15.305 KB -rwxr-xr-x 2020-04-01 04:04 R E G D
seq 48.477 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
servertool 8.906 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
sessreg 11.242 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
setarch 15.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
setfacl 36.727 KB -rwxr-xr-x 2020-04-01 02:16 R E G D
setpriv 36.063 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
setsid 11.227 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
setterm 27.484 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
setup-nsssysinit 1.503 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
setup-nsssysinit.sh 1.503 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
sftp 142.008 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
sg 40.953 KB -rwsr-xr-x 2019-08-09 02:51 R E G D
sh 941.93 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
sha1sum 36.57 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sha224sum 40.633 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sha256sum 40.633 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sha384sum 40.648 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sha512sum 40.648 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
shar 154.055 KB -rwxr-xr-x 2014-06-10 04:15 R E G D
shasum 8.397 KB -rwxr-xr-x 2017-08-02 05:40 R E G D
show-changed-rco 10.128 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
show-installed 16.184 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
showrgb 7.078 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
shred 52.938 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
shuf 49.133 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
signver 102.602 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
sim_client 14.969 KB -rwxr-xr-x 2025-02-12 13:26 R E G D
size 32.352 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
skill 23.617 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
slabtop 19.516 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
sleep 32.352 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
slogin 760.438 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
smtpd.py 18.104 KB -rwxr-xr-x 2024-10-03 12:56 R E G D
snice 23.617 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
snmpbulkget 11 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpbulkwalk 15.023 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpconf 25.524 KB -rwxr-xr-x 2024-01-25 15:54 R E G D
snmpdelta 19.133 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpdf 14.945 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpget 10.891 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpgetnext 10.898 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpinform 15.289 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpnetstat 48.008 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpset 14.898 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpstatus 15.781 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmptable 23.008 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmptest 14.914 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmptls 19.063 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmptranslate 14.914 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmptrap 15.289 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpusm 35.219 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpvacm 32.117 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
snmpwalk 15 KB -rwxr-xr-x 2024-01-25 15:55 R E G D
socat 380.43 KB -rwxr-xr-x 2017-08-04 04:57 R E G D
soelim 32.586 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
sort 114.938 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sotruss 4.239 KB -rwxr-xr-x 2024-07-03 08:13 R E G D
spell 0.119 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
splain 18.026 KB -rwxr-xr-x 2023-10-25 12:41 R E G D
split 69.469 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sprof 22.102 KB -rwxr-xr-x 2024-07-03 08:41 R E G D
sqlite3 54.945 KB -rwxr-xr-x 2023-10-31 11:47 R E G D
ssh 760.438 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
ssh-add 348.477 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
ssh-agent 373.234 KB ---x--s--x 2025-03-21 14:13 R E G D
ssh-copy-id 10.224 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
ssh-keygen 409.398 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
ssh-keyscan 434.695 KB -rwxr-xr-x 2025-03-21 14:13 R E G D
ssltap 118.414 KB -rwxr-xr-x 2024-11-05 17:00 R E G D
stat 77.188 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
stdbuf 64.883 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
strace 1009.219 KB -rwxr-xr-x 2023-09-12 14:27 R E G D
strace-log-merge 1.28 KB -rwxr-xr-x 2023-09-12 14:27 R E G D
stream 7.047 KB -rwxr-xr-x 2024-11-12 06:32 R E G D
strings 36.531 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
strip 227.32 KB -rwxr-xr-x 2025-03-10 16:56 R E G D
stty 68.609 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
su 31.375 KB -rwsr-x--- 2021-02-02 16:31 R E G D
sudo 147.883 KB ---s--x--x 2024-03-28 17:37 R E G D
sudoedit 147.883 KB ---s--x--x 2024-03-28 17:37 R E G D
sudoreplay 56.109 KB ---x--x--x 2024-03-28 17:37 R E G D
sum 36.555 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
sw-engine 20.12 MB -rwxr-xr-x 1990-01-01 12:00 R E G D
sxpm 19.828 KB -rwxr-xr-x 2023-01-25 16:36 R E G D
sync 28.328 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
systemctl 704.797 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-analyze 1.49 MB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-ask-password 60.375 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-cat 39.984 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-cgls 326.313 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-cgtop 85.086 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-coredumpctl 154.523 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-delta 76.836 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-detect-virt 39.969 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-escape 48.195 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-firstboot 101.516 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-hwdb 85.313 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-inhibit 309.828 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-loginctl 489.602 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-machine-id-setup 52.234 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-notify 48.133 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-nspawn 545.875 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-path 52.156 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-run 387.055 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-stdio-bridge 305.773 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-sysv-convert 3.886 KB -rwxr-xr-x 2024-03-26 12:56 R E G D
systemd-tmpfiles 146.133 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
systemd-tty-ask-password-agent 84.75 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
tabs 15.297 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
tac 32.484 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tail 65.25 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tailf 23.883 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
tapestat 52.563 KB -rwxr-xr-x 2023-10-13 14:55 R E G D
tar 338.023 KB -rwxr-xr-x 2018-10-30 20:24 R E G D
taskset 32.219 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
tbl 115.961 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
tcamgr 23.469 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcamttest 19.367 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcatest 52.781 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcbmgr 27.664 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcbmttest 47.961 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcbtest 64.469 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcfmgr 19.5 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcfmttest 31.789 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcftest 43.859 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tchmgr 23.523 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tchmttest 43.867 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tchtest 52.289 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tclsh 7 KB -rwxr-xr-x 2015-11-20 08:40 R E G D
tclsh8.5 7 KB -rwxr-xr-x 2015-11-20 08:40 R E G D
tcptraceroute 1.438 KB -rwxr-xr-x 2016-11-05 15:27 R E G D
tctmgr 31.82 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tctmttest 39.719 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcttest 51.898 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcucodec 31.75 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcumttest 19.516 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tcutest 65.609 KB -rwxr-xr-x 2014-06-10 07:35 R E G D
tee 32.383 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
test 36.461 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
testgdbm 29.773 KB -rwxr-xr-x 2014-06-09 21:39 R E G D
testrb 0.072 KB -rwxr-xr-x 2025-04-23 18:24 R E G D
tic 64.258 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
timed-read 0.296 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
timed-run 0.271 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
timedatectl 330.195 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
timeout 53.313 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tload 15.375 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
tmpwatch 27.867 KB -rwxr-xr-x 2019-08-09 02:58 R E G D
tnameserv 8.953 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
toe 15.422 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
top 104.375 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
touch 61.023 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tput 15.43 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
tr 44.609 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tracepath 15.047 KB -rwxr-xr-x 2017-08-04 08:01 R E G D
tracepath6 15.047 KB -rwxr-xr-x 2017-08-04 08:01 R E G D
traceroute 61.859 KB -rwxr-xr-x 2016-11-05 15:27 R E G D
traceroute6 61.859 KB -rwxr-xr-x 2016-11-05 15:27 R E G D
troff 512.961 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
true 28.258 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
truncate 52.68 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
trust 179.078 KB -rwxr-xr-x 2017-08-04 23:36 R E G D
tset 19.594 KB -rwxr-xr-x 2024-05-17 07:52 R E G D
tsort 36.469 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tty 28.289 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
tzselect 7.167 KB -rwxr-xr-x 2024-07-03 08:13 R E G D
uapi 3.02 MB -rwxr-xr-x 2024-07-02 01:15 R E G D
ucs2any 19.469 KB -rwxr-xr-x 2018-10-30 16:59 R E G D
udevadm 414.273 KB -rwxr-xr-x 2024-03-26 12:57 R E G D
ul 19.469 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
umask 0.028 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
umount 31.234 KB -rwsr-xr-x 2021-02-02 16:31 R E G D
unalias 0.03 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
uname 32.297 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
unbuffer 0.625 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
unexpand 32.453 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
uniq 44.711 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
unix-lpr.sh 4.067 KB -rwxr-xr-x 2020-09-30 16:20 R E G D
unlink 28.305 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
unlz4 105.867 KB -rwxr-xr-x 2024-01-04 09:43 R E G D
unpack200 119.289 KB -rwxr-xr-x 2024-08-13 15:03 R E G D
unshar 108.523 KB -rwxr-xr-x 2014-06-10 04:15 R E G D
unshare 15.453 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
unxz 73.523 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
unzip 185.164 KB -rwxr-xr-x 2024-05-27 20:59 R E G D
unzipsfx 88.656 KB -rwxr-xr-x 2024-05-27 20:59 R E G D
update-ca-trust 1.029 KB -rwxr-xr-x 2024-11-05 18:49 R E G D
update-mime-database 52.82 KB -rwxr-xr-x 2020-04-01 04:30 R E G D
uptime 11.219 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
urlgrabber 12.173 KB -rwxr-xr-x 2020-04-01 04:14 R E G D
users 32.422 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
usleep 10.945 KB -rwxr-xr-x 2020-11-16 16:20 R E G D
utmpdump 15.445 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
uuclient 14.969 KB -rwxr-xr-x 2025-02-12 13:26 R E G D
uudecode 103.992 KB -rwxr-xr-x 2014-06-10 04:15 R E G D
uuencode 103.977 KB -rwxr-xr-x 2014-06-10 04:15 R E G D
uuidgen 11.211 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
vdir 114.852 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
verifytree 10.787 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
vi 906.398 KB -rwxr-xr-x 2024-07-09 16:25 R E G D
view 906.398 KB -rwxr-xr-x 2024-07-09 16:25 R E G D
vmstat 31.477 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
w 19.445 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
wait 0.027 KB -rwxr-xr-x 2021-11-24 16:33 R E G D
wall 14.984 KB -r-xr-sr-x 2014-06-09 23:16 R E G D
watch 24.141 KB -rwxr-xr-x 2020-09-30 17:21 R E G D
watchgnupg 15.352 KB -rwxr-xr-x 2018-07-13 13:05 R E G D
wc 40.672 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
wdctl 40.695 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
weather 2.185 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
webpng 11.148 KB -rwxr-xr-x 2020-12-15 16:27 R E G D
wget 408.969 KB -rwxr-xr-x 2024-08-15 10:22 R E G D
whereis 20.195 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
which 23.766 KB -rwxr-xr-x 2014-06-10 02:25 R E G D
who 48.703 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
whoami 28.305 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
wish 7.039 KB -rwxr-xr-x 2015-11-20 08:41 R E G D
wish8.5 7.039 KB -rwxr-xr-x 2015-11-20 08:41 R E G D
withsctp 0.224 KB -rwxr-xr-x 2016-11-05 20:08 R E G D
wmf2eps 15.289 KB -rwxr-xr-x 2020-09-30 16:53 R E G D
wmf2fig 15.266 KB -rwxr-xr-x 2020-09-30 16:53 R E G D
wmf2gd 15.258 KB -rwxr-xr-x 2020-09-30 16:53 R E G D
wmf2svg 15.305 KB -rwxr-xr-x 2020-09-30 16:53 R E G D
wmf2x 15.25 KB -rwxr-xr-x 2020-09-30 16:53 R E G D
word-list-compress 11.031 KB -rwxr-xr-x 2014-06-09 23:04 R E G D
write 19.086 KB -rwxr-sr-x 2021-02-02 16:31 R E G D
x86_64 15.273 KB -rwxr-xr-x 2021-02-02 16:31 R E G D
x86_64-redhat-linux-c++ 754.594 KB -rwxr-x--- 2025-04-16 10:13 R E G D
x86_64-redhat-linux-g++ 754.594 KB -rwxr-x--- 2025-04-16 10:13 R E G D
x86_64-redhat-linux-gcc 750.578 KB -rwxr-x--- 2025-04-16 10:13 R E G D
xargs 60.906 KB -rwxr-xr-x 2018-10-30 16:42 R E G D
xgamma 11.148 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xgettext 265.352 KB -rwxr-xr-x 2020-04-01 02:43 R E G D
xhost 15.383 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xinput 52.813 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xkibitz 4.748 KB -rwxr-xr-x 2015-06-23 22:08 R E G D
xkill 15.266 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xml2-config 1.676 KB -rwxr-xr-x 2025-05-08 14:26 R E G D
xmlcatalog 15.305 KB -rwxr-xr-x 2025-05-08 14:26 R E G D
xmllint 61.938 KB -rwxr-xr-x 2025-05-08 14:26 R E G D
xmlwf 24 KB -rwxr-xr-x 2024-09-16 14:15 R E G D
xmodmap 32.281 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xmvn-builddep 1.038 KB -rwxr-xr-x 2015-11-20 20:02 R E G D
xorg-x11-fonts-update-dirs 1.291 KB -rwxr--r-- 2018-10-30 16:59 R E G D
xrandr 60.063 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xrdb 27.781 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xrefresh 11.156 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xset 31.719 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xsetmode 11.102 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xsetpointer 11.133 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xsetroot 19.375 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xslt-config 2.355 KB -rwxr-xr-x 2012-09-12 05:59 R E G D
xsltproc 23.5 KB -rwxr-xr-x 2025-04-10 07:53 R E G D
xstdcmap 15.766 KB -rwxr-xr-x 2017-08-11 18:43 R E G D
xsubpp 4.45 KB -rwxr-xr-x 2017-08-02 05:43 R E G D
xz 73.523 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzcat 73.523 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzcmp 6.477 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzdec 11.211 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzdiff 6.477 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzegrep 5.764 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzfgrep 5.764 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzgrep 5.764 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzless 1.76 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
xzmore 2.11 KB -rwxr-xr-x 2022-06-15 14:40 R E G D
yarn 0.991 KB -rwxr-xr-x 2022-04-19 06:05 R E G D
yarnpkg 0.991 KB -rwxr-xr-x 2022-04-19 06:05 R E G D
yes 28.305 KB -rwxr-xr-x 2020-11-16 22:24 R E G D
ypdomainname 15.414 KB -rwxr-xr-x 2019-10-18 16:02 R E G D
yum 0.782 KB -rwxr-xr-x 2020-10-01 17:03 R E G D
yum-builddep 9.95 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
yum-config-manager 9.354 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
yum-debug-dump 8.338 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
yum-debug-restore 7.718 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
yum-groups-manager 10.772 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
yumdownloader 10.854 KB -rwxr-xr-x 2020-05-12 16:27 R E G D
zcat 1.896 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zcmp 1.719 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zdiff 5.633 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zegrep 0.12 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zfgrep 0.12 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zforce 2.094 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zgrep 5.979 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zip 210.781 KB -rwxr-xr-x 2016-11-05 16:49 R E G D
zipcloak 98.102 KB -rwxr-xr-x 2016-11-05 16:49 R E G D
zipcmp 11.711 KB -rwxr-xr-x 2014-06-10 03:44 R E G D
zipdetails 47.315 KB -rwxr-xr-x 2014-06-10 00:59 R E G D
zipgrep 2.884 KB -rwxr-xr-x 2008-10-10 17:40 R E G D
zipinfo 185.164 KB -rwxr-xr-x 2024-05-27 20:59 R E G D
zipmerge 11.758 KB -rwxr-xr-x 2014-06-10 03:44 R E G D
zipnote 93.734 KB -rwxr-xr-x 2016-11-05 16:49 R E G D
zipsplit 97.75 KB -rwxr-xr-x 2016-11-05 16:49 R E G D
ziptorrent 11.602 KB -rwxr-xr-x 2014-06-10 03:44 R E G D
zless 1.993 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zmore 2.792 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
znew 5.218 KB -rwxr-xr-x 2022-05-12 14:58 R E G D
zsh 723.125 KB -rwxr-xr-x 2020-04-07 14:37 R E G D
zsoelim 32.586 KB -rwxr-xr-x 2014-06-09 20:17 R E G D
REQUEST EXIT
#!/usr/bin/perl eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; use warnings; =head1 NAME h2xs - convert .h C header files to Perl extensions =head1 SYNOPSIS B [B ...] [headerfile ... [extra_libraries]] B B<-h>|B<-?>|B<--help> =head1 DESCRIPTION I builds a Perl extension from C header files. The extension will include functions which can be used to retrieve the value of any #define statement which was in the C header files. The I will be used for the name of the extension. If module_name is not supplied then the name of the first header file will be used, with the first character capitalized. If the extension might need extra libraries, they should be included here. The extension Makefile.PL will take care of checking whether the libraries actually exist and how they should be loaded. The extra libraries should be specified in the form -lm -lposix, etc, just as on the cc command line. By default, the Makefile.PL will search through the library path determined by Configure. That path can be augmented by including arguments of the form B<-L/another/library/path> in the extra-libraries argument. In spite of its name, I may also be used to create a skeleton pure Perl module. See the B<-X> option. =head1 OPTIONS =over 5 =item B<-A>, B<--omit-autoload> Omit all autoload facilities. This is the same as B<-c> but also removes the S> statement from the .pm file. =item B<-B>, B<--beta-version> Use an alpha/beta style version number. Causes version number to be "0.00_01" unless B<-v> is specified. =item B<-C>, B<--omit-changes> Omits creation of the F file, and adds a HISTORY section to the POD template. =item B<-F>, B<--cpp-flags>=I Additional flags to specify to C preprocessor when scanning header for function declarations. Writes these options in the generated F too. =item B<-M>, B<--func-mask>=I selects functions/macros to process. =item B<-O>, B<--overwrite-ok> Allows a pre-existing extension directory to be overwritten. =item B<-P>, B<--omit-pod> Omit the autogenerated stub POD section. =item B<-X>, B<--omit-XS> Omit the XS portion. Used to generate a skeleton pure Perl module. C<-c> and C<-f> are implicitly enabled. =item B<-a>, B<--gen-accessors> Generate an accessor method for each element of structs and unions. The generated methods are named after the element name; will return the current value of the element if called without additional arguments; and will set the element to the supplied value (and return the new value) if called with an additional argument. Embedded structures and unions are returned as a pointer rather than the complete structure, to facilitate chained calls. These methods all apply to the Ptr type for the structure; additionally two methods are constructed for the structure type itself, C<_to_ptr> which returns a Ptr type pointing to the same structure, and a C method to construct and return a new structure, initialised to zeroes. =item B<-b>, B<--compat-version>=I Generates a .pm file which is backwards compatible with the specified perl version. For versions < 5.6.0, the changes are. - no use of 'our' (uses 'use vars' instead) - no 'use warnings' Specifying a compatibility version higher than the version of perl you are using to run h2xs will have no effect. If unspecified h2xs will default to compatibility with the version of perl you are using to run h2xs. =item B<-c>, B<--omit-constant> Omit C from the .xs file and corresponding specialised C from the .pm file. =item B<-d>, B<--debugging> Turn on debugging messages. =item B<-e>, B<--omit-enums>=[I] If I is not given, skip all constants that are defined in a C enumeration. Otherwise skip only those constants that are defined in an enum whose name matches I. Since I is optional, make sure that this switch is followed by at least one other switch if you omit I and have some pending arguments such as header-file names. This is ok: h2xs -e -n Module::Foo foo.h This is not ok: h2xs -n Module::Foo -e foo.h In the latter, foo.h is taken as I. =item B<-f>, B<--force> Allows an extension to be created for a header even if that header is not found in standard include directories. =item B<-g>, B<--global> Include code for safely storing static data in the .xs file. Extensions that do no make use of static data can ignore this option. =item B<-h>, B<-?>, B<--help> Print the usage, help and version for this h2xs and exit. =item B<-k>, B<--omit-const-func> For function arguments declared as C, omit the const attribute in the generated XS code. =item B<-m>, B<--gen-tied-var> B: for each variable declared in the header file(s), declare a perl variable of the same name magically tied to the C variable. =item B<-n>, B<--name>=I Specifies a name to be used for the extension, e.g., S<-n RPC::DCE> =item B<-o>, B<--opaque-re>=I Use "opaque" data type for the C types matched by the regular expression, even if these types are C-equivalent to types from typemaps. Should not be used without B<-x>. This may be useful since, say, types which are C-equivalent to integers may represent OS-related handles, and one may want to work with these handles in OO-way, as in C<$handle-Edo_something()>. Use C<-o .> if you want to handle all the Ced types as opaque types. The type-to-match is whitewashed (except for commas, which have no whitespace before them, and multiple C<*> which have no whitespace between them). =item B<-p>, B<--remove-prefix>=I Specify a prefix which should be removed from the Perl function names, e.g., S<-p sec_rgy_> This sets up the XS B keyword and removes the prefix from functions that are autoloaded via the C mechanism. =item B<-s>, B<--const-subs>=I Create a perl subroutine for the specified macros rather than autoload with the constant() subroutine. These macros are assumed to have a return type of B, e.g., S<-s sec_rgy_wildcard_name,sec_rgy_wildcard_sid>. =item B<-t>, B<--default-type>=I Specify the internal type that the constant() mechanism uses for macros. The default is IV (signed integer). Currently all macros found during the header scanning process will be assumed to have this type. Future versions of C may gain the ability to make educated guesses. =item B<--use-new-tests> When B<--compat-version> (B<-b>) is present the generated tests will use C rather than C which is the default for versions before 5.6.2. C will be added to PREREQ_PM in the generated C. =item B<--use-old-tests> Will force the generation of test code that uses the older C module. =item B<--skip-exporter> Do not use C and/or export any symbol. =item B<--skip-ppport> Do not use C: no portability to older version. =item B<--skip-autoloader> Do not use the module C; but keep the constant() function and C for constants. =item B<--skip-strict> Do not use the pragma C. =item B<--skip-warnings> Do not use the pragma C. =item B<-v>, B<--version>=I Specify a version number for this extension. This version number is added to the templates. The default is 0.01, or 0.00_01 if C<-B> is specified. The version specified should be numeric. =item B<-x>, B<--autogen-xsubs> Automatically generate XSUBs basing on function declarations in the header file. The package C should be installed. If this option is specified, the name of the header file may look like C. In this case NAME1 is used instead of the specified string, but XSUBs are emitted only for the declarations included from file NAME2. Note that some types of arguments/return-values for functions may result in XSUB-declarations/typemap-entries which need hand-editing. Such may be objects which cannot be converted from/to a pointer (like C), pointers to functions, or arrays. See also the section on L>. =back =head1 EXAMPLES # Default behavior, extension is Rusers h2xs rpcsvc/rusers # Same, but extension is RUSERS h2xs -n RUSERS rpcsvc/rusers # Extension is rpcsvc::rusers. Still finds h2xs rpcsvc::rusers # Extension is ONC::RPC. Still finds h2xs -n ONC::RPC rpcsvc/rusers # Without constant() or AUTOLOAD h2xs -c rpcsvc/rusers # Creates templates for an extension named RPC h2xs -cfn RPC # Extension is ONC::RPC. h2xs -cfn ONC::RPC # Extension is a pure Perl module with no XS code. h2xs -X My::Module # Extension is Lib::Foo which works at least with Perl5.005_03. # Constants are created for all #defines and enums h2xs can find # in foo.h. h2xs -b 5.5.3 -n Lib::Foo foo.h # Extension is Lib::Foo which works at least with Perl5.005_03. # Constants are created for all #defines but only for enums # whose names do not start with 'bar_'. h2xs -b 5.5.3 -e '^bar_' -n Lib::Foo foo.h # Makefile.PL will look for library -lrpc in # additional directory /opt/net/lib h2xs rpcsvc/rusers -L/opt/net/lib -lrpc # Extension is DCE::rgynbase # prefix "sec_rgy_" is dropped from perl function names h2xs -n DCE::rgynbase -p sec_rgy_ dce/rgynbase # Extension is DCE::rgynbase # prefix "sec_rgy_" is dropped from perl function names # subroutines are created for sec_rgy_wildcard_name and # sec_rgy_wildcard_sid h2xs -n DCE::rgynbase -p sec_rgy_ \ -s sec_rgy_wildcard_name,sec_rgy_wildcard_sid dce/rgynbase # Make XS without defines in perl.h, but with function declarations # visible from perl.h. Name of the extension is perl1. # When scanning perl.h, define -DEXT=extern -DdEXT= -DINIT(x)= # Extra backslashes below because the string is passed to shell. # Note that a directory with perl header files would # be added automatically to include path. h2xs -xAn perl1 -F "-DEXT=extern -DdEXT= -DINIT\(x\)=" perl.h # Same with function declaration in proto.h as visible from perl.h. h2xs -xAn perl2 perl.h,proto.h # Same but select only functions which match /^av_/ h2xs -M '^av_' -xAn perl2 perl.h,proto.h # Same but treat SV* etc as "opaque" types h2xs -o '^[S]V \*$' -M '^av_' -xAn perl2 perl.h,proto.h =head2 Extension based on F<.h> and F<.c> files Suppose that you have some C files implementing some functionality, and the corresponding header files. How to create an extension which makes this functionality accessible in Perl? The example below assumes that the header files are F and I, and you want the perl module be named as C. If you need some preprocessor directives and/or linking with external libraries, see the flags C<-F>, C<-L> and C<-l> in L<"OPTIONS">. =over =item Find the directory name Start with a dummy run of h2xs: h2xs -Afn Ext::Ension The only purpose of this step is to create the needed directories, and let you know the names of these directories. From the output you can see that the directory for the extension is F. =item Copy C files Copy your header files and C files to this directory F. =item Create the extension Run h2xs, overwriting older autogenerated files: h2xs -Oxan Ext::Ension interface_simple.h interface_hairy.h h2xs looks for header files I changing to the extension directory, so it will find your header files OK. =item Archive and test As usual, run cd Ext/Ension perl Makefile.PL make dist make make test =item Hints It is important to do C as early as possible. This way you can easily merge(1) your changes to autogenerated files if you decide to edit your C<.h> files and rerun h2xs. Do not forget to edit the documentation in the generated F<.pm> file. Consider the autogenerated files as skeletons only, you may invent better interfaces than what h2xs could guess. Consider this section as a guideline only, some other options of h2xs may better suit your needs. =back =head1 ENVIRONMENT No environment variables are used. =head1 AUTHOR Larry Wall and others =head1 SEE ALSO L, L, L, and L. =head1 DIAGNOSTICS The usual warnings if it cannot read or write the files involved. =head1 LIMITATIONS of B<-x> F would not distinguish whether an argument to a C function which is of the form, say, C, is an input, output, or input/output parameter. In particular, argument declarations of the form int foo(n) int *n should be better rewritten as int foo(n) int &n if C is an input parameter. Additionally, F has no facilities to intuit that a function int foo(addr,l) char *addr int l takes a pair of address and length of data at this address, so it is better to rewrite this function as int foo(sv) SV *addr PREINIT: STRLEN len; char *s; CODE: s = SvPV(sv,len); RETVAL = foo(s, len); OUTPUT: RETVAL or alternately static int my_foo(SV *sv) { STRLEN len; char *s = SvPV(sv,len); return foo(s, len); } MODULE = foo PACKAGE = foo PREFIX = my_ int foo(sv) SV *sv See L and L for additional details. =cut # ' # Grr use strict; my( $H2XS_VERSION ) = ' $Revision: 1.23 $ ' =~ /\$Revision:\s+([^\s]+)/; my $TEMPLATE_VERSION = '0.01'; my @ARGS = @ARGV; my $compat_version = $]; use Getopt::Long; use Config; use Text::Wrap; $Text::Wrap::huge = 'overflow'; $Text::Wrap::columns = 80; use ExtUtils::Constant qw (WriteConstants WriteMakefileSnippet autoload); use File::Compare; use File::Path; sub usage { warn "@_\n" if @_; die <. --skip-strict Do not use the pragma C. --skip-warnings Do not use the pragma C. -v, --version Specify a version number for this extension. -x, --autogen-xsubs Autogenerate XSUBs using C::Scan. --use-xsloader Use XSLoader in backward compatible modules (ignored when used with -X). extra_libraries are any libraries that might be needed for loading the extension, e.g. -lm would try to link in the math library. EOFUSAGE } my ($opt_A, $opt_B, $opt_C, $opt_F, $opt_M, $opt_O, $opt_P, $opt_X, $opt_a, $opt_c, $opt_d, $opt_e, $opt_f, $opt_g, $opt_h, $opt_k, $opt_m, $opt_n, $opt_o, $opt_p, $opt_s, $opt_v, $opt_x, $opt_b, $opt_t, $new_test, $old_test, $skip_exporter, $skip_ppport, $skip_autoloader, $skip_strict, $skip_warnings, $use_xsloader ); Getopt::Long::Configure('bundling'); Getopt::Long::Configure('pass_through'); my %options = ( 'omit-autoload|A' => \$opt_A, 'beta-version|B' => \$opt_B, 'omit-changes|C' => \$opt_C, 'cpp-flags|F=s' => \$opt_F, 'func-mask|M=s' => \$opt_M, 'overwrite_ok|O' => \$opt_O, 'omit-pod|P' => \$opt_P, 'omit-XS|X' => \$opt_X, 'gen-accessors|a' => \$opt_a, 'compat-version|b=s' => \$opt_b, 'omit-constant|c' => \$opt_c, 'debugging|d' => \$opt_d, 'omit-enums|e:s' => \$opt_e, 'force|f' => \$opt_f, 'global|g' => \$opt_g, 'help|h|?' => \$opt_h, 'omit-const-func|k' => \$opt_k, 'gen-tied-var|m' => \$opt_m, 'name|n=s' => \$opt_n, 'opaque-re|o=s' => \$opt_o, 'remove-prefix|p=s' => \$opt_p, 'const-subs|s=s' => \$opt_s, 'default-type|t=s' => \$opt_t, 'version|v=s' => \$opt_v, 'autogen-xsubs|x' => \$opt_x, 'use-new-tests' => \$new_test, 'use-old-tests' => \$old_test, 'skip-exporter' => \$skip_exporter, 'skip-ppport' => \$skip_ppport, 'skip-autoloader' => \$skip_autoloader, 'skip-warnings' => \$skip_warnings, 'skip-strict' => \$skip_strict, 'use-xsloader' => \$use_xsloader, ); GetOptions(%options) || usage; usage if $opt_h; if( $opt_b ){ usage "You cannot use -b and -m at the same time.\n" if ($opt_b && $opt_m); $opt_b =~ /^v?(\d+)\.(\d+)\.(\d+)/ || usage "You must provide the backwards compatibility version in X.Y.Z form. " . "(i.e. 5.5.0)\n"; my ($maj,$min,$sub) = ($1,$2,$3); if ($maj < 5 || ($maj == 5 && $min < 6)) { $compat_version = $sub ? sprintf("%d.%03d%02d",$maj,$min,$sub) : sprintf("%d.%03d", $maj,$min); } else { $compat_version = sprintf("%d.%03d%03d",$maj,$min,$sub); } } else { my ($maj,$min,$sub) = $compat_version =~ /(\d+)\.(\d\d\d)(\d*)/; $sub ||= 0; warn sprintf <<'EOF', $maj,$min,$sub; Defaulting to backwards compatibility with perl %d.%d.%d If you intend this module to be compatible with earlier perl versions, please specify a minimum perl version with the -b option. EOF } if( $opt_B ){ $TEMPLATE_VERSION = '0.00_01'; } if( $opt_v ){ $TEMPLATE_VERSION = $opt_v; # check if it is numeric my $temp_version = $TEMPLATE_VERSION; my $beta_version = $temp_version =~ s/(\d)_(\d\d)/$1$2/; my $notnum; { local $SIG{__WARN__} = sub { $notnum = 1 }; use warnings 'numeric'; $temp_version = 0+$temp_version; } if ($notnum) { my $module = $opt_n || 'Your::Module'; warn <<"EOF"; You have specified a non-numeric version. Unless you supply an appropriate VERSION class method, users may not be able to specify a minimum required version with C. EOF } else { $opt_B = $beta_version; } } # -A implies -c. $skip_autoloader = $opt_c = 1 if $opt_A; # -X implies -c and -f $opt_c = $opt_f = 1 if $opt_X; $opt_t ||= 'IV'; my %const_xsub; %const_xsub = map { $_,1 } split(/,+/, $opt_s) if $opt_s; my $extralibs = ''; my @path_h; while (my $arg = shift) { if ($arg =~ /^-l/i) { $extralibs .= "$arg "; next; } last if $extralibs; push(@path_h, $arg); } usage "Must supply header file or module name\n" unless (@path_h or $opt_n); my $fmask; my $tmask; $fmask = qr{$opt_M} if defined $opt_M; $tmask = qr{$opt_o} if defined $opt_o; my $tmask_all = $tmask && $opt_o eq '.'; if ($opt_x) { eval {require C::Scan; 1} or die <= 0.70 or die <curdir(), $Config{usrinc}, (split / +/, $Config{locincpth} // ""), '/usr/include'); } foreach my $path_h (@path_h) { $name ||= $path_h; $module ||= do { $name =~ s/\.h$//; if ( $name !~ /::/ ) { $name =~ s#^.*/##; $name = "\u$name"; } $name; }; if( $path_h =~ s#::#/#g && $opt_n ){ warn "Nesting of headerfile ignored with -n\n"; } $path_h .= ".h" unless $path_h =~ /\.h$/; my $fullpath = $path_h; $path_h =~ s/,.*$// if $opt_x; $fullpath{$path_h} = $fullpath; # Minor trickery: we can't chdir() before we processed the headers # (so know the name of the extension), but the header may be in the # extension directory... my $tmp_path_h = $path_h; my $rel_path_h = $path_h; my @dirs = @paths; if (not -f $path_h) { my $found; for my $dir (@paths) { $found++, last if -f ($path_h = File::Spec->catfile($dir, $tmp_path_h)); } if ($found) { $rel_path_h = $path_h; $fullpath{$path_h} = $fullpath; } else { (my $epath = $module) =~ s,::,/,g; $epath = File::Spec->catdir('ext', $epath) if -d 'ext'; $rel_path_h = File::Spec->catfile($epath, $tmp_path_h); $path_h = $tmp_path_h; # Used during -x push @dirs, $epath; } } if (!$opt_c) { die "Can't find $tmp_path_h in @dirs\n" if ( ! $opt_f && ! -f "$rel_path_h" ); # Scan the header file (we should deal with nested header files) # Record the names of simple #define constants into const_names # Function prototypes are processed below. open(CH, "<$rel_path_h") || die "Can't open $rel_path_h: $!\n"; defines: while () { if ($pre_sub_tri_graphs) { # Preprocess all tri-graphs # including things stuck in quoted string constants. s/\?\?=/#/g; # | ??=| #| s/\?\?\!/|/g; # | ??!| || s/\?\?'/^/g; # | ??'| ^| s/\?\?\(/[/g; # | ??(| [| s/\?\?\)/]/g; # | ??)| ]| s/\?\?\-/~/g; # | ??-| ~| s/\?\?\//\\/g; # | ??/| \| s/\?\?/}/g; # | ??>| }| } if (/^[ \t]*#[ \t]*define\s+([\$\w]+)\b(?!\()\s*(?=[^"\s])(.*)/) { my $def = $1; my $rest = $2; $rest =~ s!/\*.*?(\*/|\n)|//.*!!g; # Remove comments $rest =~ s/^\s+//; $rest =~ s/\s+$//; # Cannot do: (-1) and ((LHANDLE)3) are OK: #print("Skip non-wordy $def => $rest\n"), # next defines if $rest =~ /[^\w\$]/; if ($rest =~ /"/) { print("Skip stringy $def => $rest\n") if $opt_d; next defines; } print "Matched $_ ($def)\n" if $opt_d; $seen_define{$def} = $rest; $_ = $def; next if /^_.*_h_*$/i; # special case, but for what? if (defined $opt_p) { if (!/^$opt_p(\d)/) { ++$prefix{$_} if s/^$opt_p//; } else { warn "can't remove $opt_p prefix from '$_'!\n"; } } $prefixless{$def} = $_; if (!$fmask or /$fmask/) { print "... Passes mask of -M.\n" if $opt_d and $fmask; $const_names{$_}++; } } } if (defined $opt_e and !$opt_e) { close(CH); } else { # Work from miniperl too - on "normal" systems my $SEEK_SET = eval 'use Fcntl qw/SEEK_SET/; SEEK_SET' || 0; seek CH, 0, $SEEK_SET; my $src = do { local $/; }; close CH; no warnings 'uninitialized'; # Remove C and C++ comments $src =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#$2#gs; $src =~ s#//.*$##gm; while ($src =~ /\benum\s*([\w_]*)\s*\{\s([^}]+)\}/gsc) { my ($enum_name, $enum_body) = ($1, $2); # skip enums matching $opt_e next if $opt_e && $enum_name =~ /$opt_e/; my $val = 0; for my $item (split /,/, $enum_body) { next if $item =~ /\A\s*\Z/; my ($key, $declared_val) = $item =~ /(\w+)\s*(?:=\s*(.*))?/; $val = defined($declared_val) && length($declared_val) ? $declared_val : 1 + $val; $seen_define{$key} = $val; $const_names{$key} = { name => $key, macro => 1 }; } } # while (...) } # if (!defined $opt_e or $opt_e) } } } # Save current directory so that C::Scan can use it my $cwd = File::Spec->rel2abs( File::Spec->curdir ); # As Ilya suggested, use a name that contains - and then it can't clash with # the names of any packages. A directory 'fallback' will clash with any # new pragmata down the fallback:: tree, but that seems unlikely. my $constscfname = 'const-c.inc'; my $constsxsfname = 'const-xs.inc'; my $fallbackdirname = 'fallback'; my $ext = chdir 'ext' ? 'ext/' : ''; my @modparts = split(/::/,$module); my $modpname = join('-', @modparts); my $modfname = pop @modparts; my $modpmdir = join '/', 'lib', @modparts; my $modpmname = join '/', $modpmdir, $modfname.'.pm'; if ($opt_O) { warn "Overwriting existing $ext$modpname!!!\n" if -e $modpname; } else { die "Won't overwrite existing $ext$modpname\n" if -e $modpname; } -d "$modpname" || mkpath([$modpname], 0, 0775); chdir($modpname) || die "Can't chdir $ext$modpname: $!\n"; my %types_seen; my %std_types; my $fdecls = []; my $fdecls_parsed = []; my $typedef_rex; my %typedefs_pre; my %known_fnames; my %structs; my @fnames; my @fnames_no_prefix; my %vdecl_hash; my @vdecls; if( ! $opt_X ){ # use XS, unless it was disabled unless ($skip_ppport) { require Devel::PPPort; warn "Writing $ext$modpname/ppport.h\n"; Devel::PPPort::WriteFile('ppport.h') || die "Can't create $ext$modpname/ppport.h: $!\n"; } open(XS, ">$modfname.xs") || die "Can't create $ext$modpname/$modfname.xs: $!\n"; if ($opt_x) { warn "Scanning typemaps...\n"; get_typemap(); my @td; my @good_td; my $addflags = $opt_F || ''; foreach my $filename (@path_h) { my $c; my $filter; if ($fullpath{$filename} =~ /,/) { $filename = $`; $filter = $'; } warn "Scanning $filename for functions...\n"; my @styles = $Config{gccversion} ? qw(C++ C9X GNU) : qw(C++ C9X); $c = new C::Scan 'filename' => $filename, 'filename_filter' => $filter, 'add_cppflags' => $addflags, 'c_styles' => \@styles; $c->set('includeDirs' => ["$Config::Config{archlib}/CORE", $cwd]); $c->get('keywords')->{'__restrict'} = 1; push @$fdecls_parsed, @{ $c->get('parsed_fdecls') }; push(@$fdecls, @{$c->get('fdecls')}); push @td, @{$c->get('typedefs_maybe')}; if ($opt_a) { my $structs = $c->get('typedef_structs'); @structs{keys %$structs} = values %$structs; } if ($opt_m) { %vdecl_hash = %{ $c->get('vdecl_hash') }; @vdecls = sort keys %vdecl_hash; for (local $_ = 0; $_ < @vdecls; ++$_) { my $var = $vdecls[$_]; my($type, $post) = @{ $vdecl_hash{$var} }; if (defined $post) { warn "Can't handle variable '$type $var $post', skipping.\n"; splice @vdecls, $_, 1; redo; } $type = normalize_type($type); $vdecl_hash{$var} = $type; } } unless ($tmask_all) { warn "Scanning $filename for typedefs...\n"; my $td = $c->get('typedef_hash'); # eval {require 'dumpvar.pl'; ::dumpValue($td)} or warn $@ if $opt_d; my @f_good_td = grep $td->{$_}[1] eq '', keys %$td; push @good_td, @f_good_td; @typedefs_pre{@f_good_td} = map $_->[0], @$td{@f_good_td}; } } { local $" = '|'; $typedef_rex = qr(\b(?[$i][1] =~ /$fmask/; # [1] is NAME push @good, $i; print "... Function $fdecls_parsed->[$i][1] passes -M mask.\n" if $opt_d; } $fdecls = [@$fdecls[@good]]; $fdecls_parsed = [@$fdecls_parsed[@good]]; } @fnames = sort map $_->[1], @$fdecls_parsed; # 1 is NAME # Sort declarations: { my %h = map( ($_->[1], $_), @$fdecls_parsed); $fdecls_parsed = [ @h{@fnames} ]; } @fnames_no_prefix = @fnames; @fnames_no_prefix = sort map { ++$prefix{$_} if s/^$opt_p(?!\d)//; $_ } @fnames_no_prefix if defined $opt_p; # Remove macros which expand to typedefs print "Typedefs are @td.\n" if $opt_d; my %td = map {($_, $_)} @td; # Add some other possible but meaningless values for macros for my $k (qw(char double float int long short unsigned signed void)) { $td{"$_$k"} = "$_$k" for ('', 'signed ', 'unsigned '); } # eval {require 'dumpvar.pl'; ::dumpValue( [\@td, \%td] ); 1} or warn $@; my $n = 0; my %bad_macs; while (keys %td > $n) { $n = keys %td; my ($k, $v); while (($k, $v) = each %seen_define) { # print("found '$k'=>'$v'\n"), $bad_macs{$k} = $td{$k} = $td{$v} if exists $td{$v}; } } # Now %bad_macs contains names of bad macros for my $k (keys %bad_macs) { delete $const_names{$prefixless{$k}}; print "Ignoring macro $k which expands to a typedef name '$bad_macs{$k}'\n" if $opt_d; } } } my (@const_specs, @const_names); for (sort(keys(%const_names))) { my $v = $const_names{$_}; push(@const_specs, ref($v) ? $v : $_); push(@const_names, $_); } -d $modpmdir || mkpath([$modpmdir], 0, 0775); open(PM, ">$modpmname") || die "Can't create $ext$modpname/$modpmname: $!\n"; $" = "\n\t"; warn "Writing $ext$modpname/$modpmname\n"; print PM <<"END"; package $module; use $compat_version; END print PM <<"END" unless $skip_strict; use strict; END print PM "use warnings;\n" unless $skip_warnings or $compat_version < 5.006; unless( $opt_X || $opt_c || $opt_A ){ # we'll have an AUTOLOAD(), and it will have $AUTOLOAD and # will want Carp. print PM <<'END'; use Carp; END } print PM <<'END' unless $skip_exporter; require Exporter; END my $use_Dyna = (not $opt_X and $compat_version < 5.006 and not $use_xsloader); print PM <<"END" if $use_Dyna; # use DynaLoader, unless XS was disabled require DynaLoader; END # Are we using AutoLoader or not? unless ($skip_autoloader) { # no autoloader whatsoever. unless ($opt_c) { # we're doing the AUTOLOAD print PM "use AutoLoader;\n"; } else { print PM "use AutoLoader qw(AUTOLOAD);\n" } } if ( $compat_version < 5.006 ) { my $vars = '$VERSION @ISA'; $vars .= ' @EXPORT @EXPORT_OK %EXPORT_TAGS' unless $skip_exporter; $vars .= ' $AUTOLOAD' unless $opt_X || $opt_c || $opt_A; $vars .= ' $XS_VERSION' if $opt_B && !$opt_X; print PM "use vars qw($vars);"; } # Determine @ISA. my @modISA; push @modISA, 'Exporter' unless $skip_exporter; push @modISA, 'DynaLoader' if $use_Dyna; # no XS my $myISA = "our \@ISA = qw(@modISA);"; $myISA =~ s/^our // if $compat_version < 5.006; print PM "\n$myISA\n\n"; my @exported_names = (@const_names, @fnames_no_prefix, map '$'.$_, @vdecls); my $tmp=''; $tmp .= <<"END" unless $skip_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. # This allows declaration use $module ':all'; # If you do not need this, moving things directly into \@EXPORT or \@EXPORT_OK # will save memory. our %EXPORT_TAGS = ( 'all' => [ qw( @exported_names ) ] ); our \@EXPORT_OK = ( \@{ \$EXPORT_TAGS{'all'} } ); our \@EXPORT = qw( @const_names ); END $tmp .= "our \$VERSION = '$TEMPLATE_VERSION';\n"; if ($opt_B) { $tmp .= "our \$XS_VERSION = \$VERSION;\n" unless $opt_X; $tmp .= "\$VERSION = eval \$VERSION; # see L\n"; } $tmp .= "\n"; $tmp =~ s/^our //mg if $compat_version < 5.006; print PM $tmp; if (@vdecls) { printf PM "our(@{[ join ', ', map '$'.$_, @vdecls ]});\n\n"; } print PM autoload ($module, $compat_version) unless $opt_c or $opt_X; if( ! $opt_X ){ # print bootstrap, unless XS is disabled if ($use_Dyna) { $tmp = <<"END"; bootstrap $module \$VERSION; END } else { $tmp = <<"END"; require XSLoader; XSLoader::load('$module', \$VERSION); END } $tmp =~ s:\$VERSION:\$XS_VERSION:g if $opt_B; print PM $tmp; } # tying the variables can happen only after bootstrap if (@vdecls) { printf PM <))[0,6]; if (defined $username && defined $author) { $author =~ s/,.*$//; # in case of sub fields my $domain = $Config{'mydomain'}; $domain =~ s/^\.//; $email = "$username\@$domain"; } }; $author =~ s/'/\\'/g if defined $author; $author ||= "A. U. Thor"; $email ||= 'a.u.thor@a.galaxy.far.far.away'; $licence = sprintf << "DEFAULT", $^V; Copyright (C) ${\(1900 + (localtime) [5])} by $author This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version %vd or, at your option, any later version of Perl 5 you may have available. DEFAULT my $revhist = ''; $revhist = < should be removed. # #EOD $exp_doc .= <${email}E # #=head1 COPYRIGHT AND LICENSE # $licence_hash # #=cut END $pod =~ s/^\#//gm unless $opt_P; print PM $pod unless $opt_P; close PM; if( ! $opt_X ){ # print XS, unless it is disabled warn "Writing $ext$modpname/$modfname.xs\n"; print XS <<"END"; #include "EXTERN.h" #include "perl.h" #include "XSUB.h" END print XS <<"END" unless $skip_ppport; #include "ppport.h" END if( @path_h ){ foreach my $path_h (@path_h_ini) { my($h) = $path_h; $h =~ s#^/usr/include/##; if ($^O eq 'VMS') { $h =~ s#.*vms\]#sys/# or $h =~ s#.*[:>\]]##; } print XS qq{#include <$h>\n}; } print XS "\n"; } print XS <<"END" if $opt_g; /* Global Data */ #define MY_CXT_KEY "${module}::_guts" XS_VERSION typedef struct { /* Put Global Data in here */ int dummy; /* you can access this elsewhere as MY_CXT.dummy */ } my_cxt_t; START_MY_CXT END my %pointer_typedefs; my %struct_typedefs; sub td_is_pointer { my $type = shift; my $out = $pointer_typedefs{$type}; return $out if defined $out; my $otype = $type; $out = ($type =~ /\*$/); # This converts only the guys which do not have trailing part in the typedef if (not $out and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) { $type = normalize_type($type); print "Is-Pointer: Type mutation via typedefs: $otype ==> $type\n" if $opt_d; $out = td_is_pointer($type); } return ($pointer_typedefs{$otype} = $out); } sub td_is_struct { my $type = shift; my $out = $struct_typedefs{$type}; return $out if defined $out; my $otype = $type; $out = ($type =~ /^(struct|union)\b/) && !td_is_pointer($type); # This converts only the guys which do not have trailing part in the typedef if (not $out and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) { $type = normalize_type($type); print "Is-Struct: Type mutation via typedefs: $otype ==> $type\n" if $opt_d; $out = td_is_struct($type); } return ($struct_typedefs{$otype} = $out); } print_tievar_subs(\*XS, $_, $vdecl_hash{$_}) for @vdecls; if( ! $opt_c ) { # We write the "sample" files used when this module is built by perl without # ExtUtils::Constant. # h2xs will later check that these are the same as those generated by the # code embedded into Makefile.PL unless (-d $fallbackdirname) { mkdir "$fallbackdirname" or die "Cannot mkdir $fallbackdirname: $!\n"; } warn "Writing $ext$modpname/$fallbackdirname/$constscfname\n"; warn "Writing $ext$modpname/$fallbackdirname/$constsxsfname\n"; my $cfallback = File::Spec->catfile($fallbackdirname, $constscfname); my $xsfallback = File::Spec->catfile($fallbackdirname, $constsxsfname); WriteConstants ( C_FILE => $cfallback, XS_FILE => $xsfallback, DEFAULT_TYPE => $opt_t, NAME => $module, NAMES => \@const_specs, ); print XS "#include \"$constscfname\"\n"; } my $prefix = defined $opt_p ? "PREFIX = $opt_p" : ''; # Now switch from C to XS by issuing the first MODULE declaration: print XS <<"END"; MODULE = $module PACKAGE = $module $prefix END # If a constant() function was #included then output a corresponding # XS declaration: print XS "INCLUDE: $constsxsfname\n" unless $opt_c; print XS <<"END" if $opt_g; BOOT: { MY_CXT_INIT; /* If any of the fields in the my_cxt_t struct need to be initialised, do it here. */ } END foreach (sort keys %const_xsub) { print XS <<"END"; char * $_() CODE: #ifdef $_ RETVAL = $_; #else croak("Your vendor has not defined the $module macro $_"); #endif OUTPUT: RETVAL END } my %seen_decl; my %typemap; sub print_decl { my $fh = shift; my $decl = shift; my ($type, $name, $args) = @$decl; return if $seen_decl{$name}++; # Need to do the same for docs as well? my @argnames = map {$_->[1]} @$args; my @argtypes = map { normalize_type( $_->[0], 1 ) } @$args; if ($opt_k) { s/^\s*const\b\s*// for @argtypes; } my @argarrays = map { $_->[4] || '' } @$args; my $numargs = @$args; if ($numargs and $argtypes[-1] eq '...') { $numargs--; $argnames[-1] = '...'; } local $" = ', '; $type = normalize_type($type, 1); print $fh <<"EOP"; $type $name(@argnames) EOP for my $arg (0 .. $numargs - 1) { print $fh <<"EOP"; $argtypes[$arg] $argnames[$arg]$argarrays[$arg] EOP } } sub print_tievar_subs { my($fh, $name, $type) = @_; print $fh <[0] =~ /_ANON/) { if (defined $item->[2]) { push @items, map [ @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]", ], @{ $structs{$item->[0]} }; } else { push @items, @{ $structs{$item->[0]} }; } } else { my $type = normalize_type($item->[0]); my $ttype = $structs{$type} ? normalize_type("$type *") : $type; print $fh <<"EOF"; $ttype $item->[2](THIS, __value = NO_INIT) $ptrname THIS $type __value PROTOTYPE: \$;\$ CODE: if (items > 1) THIS->$item->[-1] = __value; RETVAL = @{[ $type eq $ttype ? "THIS->$item->[-1]" : "&(THIS->$item->[-1])" ]}; OUTPUT: RETVAL EOF } } } sub accessor_docs { my($name, $struct) = @_; return unless defined $struct && $name !~ /\s|_ANON/; $name = normalize_type($name); my $ptrname = $name . 'Ptr'; my @items = @$struct; my @list; while (@items) { my $item = shift @items; if ($item->[0] =~ /_ANON/) { if (defined $item->[2]) { push @items, map [ @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]", ], @{ $structs{$item->[0]} }; } else { push @items, @{ $structs{$item->[0]} }; } } else { push @list, $item->[2]; } } my $methods = (join '(...)>, C<', @list) . '(...)'; my $pod = <<"EOF"; # #=head2 Object and class methods for C<$name>/C<$ptrname> # #The principal Perl representation of a C object of type C<$name> is an #object of class C<$ptrname> which is a reference to an integer #representation of a C pointer. To create such an object, one may use #a combination # # my \$buffer = $name->new(); # my \$obj = \$buffer->_to_ptr(); # #This exercises the following two methods, and an additional class #C<$name>, the internal representation of which is a reference to a #packed string with the C structure. Keep in mind that \$buffer should #better survive longer than \$obj. # #=over # #=item C<\$object_of_type_$name-E_to_ptr()> # #Converts an object of type C<$name> to an object of type C<$ptrname>. # #=item C<$name-Enew()> # #Creates an empty object of type C<$name>. The corresponding packed #string is zeroed out. # #=item C<$methods> # #return the current value of the corresponding element if called #without additional arguments. Set the element to the supplied value #(and return the new value) if called with an additional argument. # #Applicable to objects of type C<$ptrname>. # #=back # EOF $pod =~ s/^\#//gm; return $pod; } # Should be called before any actual call to normalize_type(). sub get_typemap { # We do not want to read ./typemap by obvios reasons. my @tm = qw(../../../typemap ../../typemap ../typemap); my $stdtypemap = "$Config::Config{privlib}/ExtUtils/typemap"; unshift @tm, $stdtypemap; my $proto_re = "[" . quotemeta('\$%&*@;') . "]" ; # Start with useful default values $typemap{float} = 'T_NV'; foreach my $typemap (@tm) { next unless -e $typemap ; # skip directories, binary files etc. warn " Scanning $typemap\n"; warn("Warning: ignoring non-text typemap file '$typemap'\n"), next unless -T $typemap ; open(TYPEMAP, $typemap) or warn ("Warning: could not open typemap file '$typemap': $!\n"), next; my $mode = 'Typemap'; while () { next if /^\s*\#/; if (/^INPUT\s*$/) { $mode = 'Input'; next; } elsif (/^OUTPUT\s*$/) { $mode = 'Output'; next; } elsif (/^TYPEMAP\s*$/) { $mode = 'Typemap'; next; } elsif ($mode eq 'Typemap') { next if /^\s*($|\#)/ ; my ($type, $image); if ( ($type, $image) = /^\s*(.*?\S)\s+(\S+)\s*($proto_re*)\s*$/o # This may reference undefined functions: and not ($image eq 'T_PACKED' and $typemap eq $stdtypemap)) { $typemap{normalize_type($type)} = $image; } } } close(TYPEMAP) or die "Cannot close $typemap: $!"; } %std_types = %types_seen; %types_seen = (); } sub normalize_type { # Second arg: do not strip const's before \* my $type = shift; my $do_keep_deep_const = shift; # If $do_keep_deep_const this is heuristic only my $keep_deep_const = ($do_keep_deep_const ? '\b(?![^(,)]*\*)' : ''); my $ignore_mods = "(?:\\b(?:(?:__const__|const)$keep_deep_const|static|inline|__inline__)\\b\\s*)*"; if ($do_keep_deep_const) { # Keep different compiled /RExen/o separately! $type =~ s/$ignore_mods//go; } else { $type =~ s/$ignore_mods//go; } $type =~ s/([^\s\w])/ $1 /g; $type =~ s/\s+$//; $type =~ s/^\s+//; $type =~ s/\s+/ /g; $type =~ s/\* (?=\*)/*/g; $type =~ s/\. \. \./.../g; $type =~ s/ ,/,/g; $types_seen{$type}++ unless $type eq '...' or $type eq 'void' or $std_types{$type}; $type; } my $need_opaque; sub assign_typemap_entry { my $type = shift; my $otype = $type; my $entry; if ($tmask and $type =~ /$tmask/) { print "Type $type matches -o mask\n" if $opt_d; $entry = (td_is_struct($type) ? "T_OPAQUE_STRUCT" : "T_PTROBJ"); } elsif ($typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) { $type = normalize_type $type; print "Type mutation via typedefs: $otype ==> $type\n" if $opt_d; $entry = assign_typemap_entry($type); } # XXX good do better if our UV happens to be long long return "T_NV" if $type =~ /^(unsigned\s+)?long\s+(long|double)\z/; $entry ||= $typemap{$otype} || (td_is_struct($type) ? "T_OPAQUE_STRUCT" : "T_PTROBJ"); $typemap{$otype} = $entry; $need_opaque = 1 if $entry eq "T_OPAQUE_STRUCT"; return $entry; } for (@vdecls) { print_tievar_xsubs(\*XS, $_, $vdecl_hash{$_}); } if ($opt_x) { for my $decl (@$fdecls_parsed) { print_decl(\*XS, $decl) } if ($opt_a) { while (my($name, $struct) = each %structs) { print_accessors(\*XS, $name, $struct); } } } close XS; if (%types_seen) { my $type; warn "Writing $ext$modpname/typemap\n"; open TM, ">typemap" or die "Cannot open typemap file for write: $!"; for $type (sort keys %types_seen) { my $entry = assign_typemap_entry $type; print TM $type, "\t" x (5 - int((length $type)/8)), "\t$entry\n" } print TM <<'EOP' if $need_opaque; # Older Perls do not have correct entry ############################################################################# INPUT T_OPAQUE_STRUCT if (sv_derived_from($arg, \"${ntype}\")) { STRLEN len; char *s = SvPV((SV*)SvRV($arg), len); if (len != sizeof($var)) croak(\"Size %d of packed data != expected %d\", len, sizeof($var)); $var = *($type *)s; } else croak(\"$var is not of type ${ntype}\") ############################################################################# OUTPUT T_OPAQUE_STRUCT sv_setref_pvn($arg, \"${ntype}\", (char *)&$var, sizeof($var)); EOP close TM or die "Cannot close typemap file for write: $!"; } } # if( ! $opt_X ) warn "Writing $ext$modpname/Makefile.PL\n"; open(PL, ">Makefile.PL") || die "Can't create $ext$modpname/Makefile.PL: $!\n"; my $prereq_pm = ''; if ( $compat_version < 5.006002 and $new_test ) { $prereq_pm .= q%'Test::More' => 0, %; } elsif ( $compat_version < 5.006002 ) { $prereq_pm .= q%'Test' => 0, %; } if ( $compat_version < 5.006 and !$opt_X and $use_xsloader) { $prereq_pm .= q%'XSLoader' => 0, %; } print PL <<"END"; use $compat_version; use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => '$module', VERSION_FROM => '$modpmname', # finds \$VERSION PREREQ_PM => {$prereq_pm}, # e.g., Module::Name => 1.1 (\$] >= 5.005 ? ## Add these new keywords supported since 5.005 (ABSTRACT_FROM => '$modpmname', # retrieve abstract from module AUTHOR => '$author <$email>') : ()), END if (!$opt_X) { # print C stuff, unless XS is disabled $opt_F = '' unless defined $opt_F; my $I = (((glob '*.h') || (glob '*.hh')) ? '-I.' : ''); my $Ihelp = ($I ? '-I. ' : ''); my $Icomment = ($I ? '' : < ['$extralibs'], # e.g., '-lm' DEFINE => '$opt_F', # e.g., '-DHAVE_SOMETHING' $Icomment INC => '$I', # e.g., '${Ihelp}-I/usr/include/other' END my $C = grep {$_ ne "$modfname.c"} (glob '*.c'), (glob '*.cc'), (glob '*.C'); my $Cpre = ($C ? '' : '# '); my $Ccomment = ($C ? '' : < '\$(O_FILES)', # link all the C files too END } # ' # Grr print PL ");\n"; if (!$opt_c) { my $generate_code = WriteMakefileSnippet ( C_FILE => $constscfname, XS_FILE => $constsxsfname, DEFAULT_TYPE => $opt_t, NAME => $module, NAMES => \@const_specs, ); print PL <<"END"; if (eval {require ExtUtils::Constant; 1}) { # If you edit these definitions to change the constants used by this module, # you will need to use the generated $constscfname and $constsxsfname # files to replace their "fallback" counterparts before distributing your # changes. $generate_code } else { use File::Copy; use File::Spec; foreach my \$file ('$constscfname', '$constsxsfname') { my \$fallback = File::Spec->catfile('$fallbackdirname', \$file); copy (\$fallback, \$file) or die "Can't copy \$fallback to \$file: \$!"; } } END eval $generate_code; if ($@) { warn <<"EOM"; Attempting to test constant code in $ext$modpname/Makefile.PL: $generate_code __END__ gave unexpected error $@ Please report the circumstances of this bug in h2xs version $H2XS_VERSION using the perlbug script. EOM } else { my $fail; foreach my $file ($constscfname, $constsxsfname) { my $fallback = File::Spec->catfile($fallbackdirname, $file); if (compare($file, $fallback)) { warn << "EOM"; Files "$ext$modpname/$fallbackdirname/$file" and "$ext$modpname/$file" differ. EOM $fail++; } } if ($fail) { warn fill ('','', <<"EOM") . "\n"; It appears that the code in $ext$modpname/Makefile.PL does not autogenerate the files $ext$modpname/$constscfname and $ext$modpname/$constsxsfname correctly. Please report the circumstances of this bug in h2xs version $H2XS_VERSION using the perlbug script. EOM } else { unlink $constscfname, $constsxsfname; } } } close(PL) || die "Can't close $ext$modpname/Makefile.PL: $!\n"; # Create a simple README since this is a CPAN requirement # and it doesn't hurt to have one warn "Writing $ext$modpname/README\n"; open(RM, ">README") || die "Can't create $ext$modpname/README:$!\n"; my $thisyear = (gmtime)[5] + 1900; my $rmhead = "$modpname version $TEMPLATE_VERSION"; my $rmheadeq = "=" x length($rmhead); my $rm_prereq; if ( $compat_version < 5.006002 and $new_test ) { $rm_prereq = 'Test::More'; } elsif ( $compat_version < 5.006002 ) { $rm_prereq = 'Test'; } else { $rm_prereq = 'blah blah blah'; } print RM <<_RMEND_; $rmhead $rmheadeq The README is used to introduce the module and provide instructions on how to install the module, any machine dependencies it may have (for example C compilers and installed libraries) and any other information that should be provided before the module is installed. A README file is required for CPAN modules since CPAN extracts the README file from a module distribution so that people browsing the archive can use it get an idea of the modules uses. It is usually a good idea to provide version information here so that people can decide whether fixes for the module are worth downloading. INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DEPENDENCIES This module requires these other modules and libraries: $rm_prereq COPYRIGHT AND LICENCE Put the correct copyright and licence information here. $licence _RMEND_ close(RM) || die "Can't close $ext$modpname/README: $!\n"; my $testdir = "t"; my $testfile = "$testdir/$modpname.t"; unless (-d "$testdir") { mkdir "$testdir" or die "Cannot mkdir $testdir: $!\n"; } warn "Writing $ext$modpname/$testfile\n"; my $tests = @const_names ? 2 : 1; open EX, ">$testfile" or die "Can't create $ext$modpname/$testfile: $!\n"; print EX <<_END_; # Before 'make install' is performed this script should be runnable with # 'make test'. After 'make install' it should work as 'perl $modpname.t' ######################### # change 'tests => $tests' to 'tests => last_test_to_print'; use strict; use warnings; _END_ my $test_mod = 'Test::More'; if ( $old_test or ($compat_version < 5.006002 and not $new_test )) { my $test_mod = 'Test'; print EX <<_END_; use Test; BEGIN { plan tests => $tests }; use $module; ok(1); # If we made it this far, we're ok. _END_ if (@const_names) { my $const_names = join " ", @const_names; print EX <<'_END_'; my $fail; foreach my $constname (qw( _END_ print EX wrap ("\t", "\t", $const_names); print EX (")) {\n"); print EX <<_END_; next if (eval "my \\\$a = \$constname; 1"); if (\$\@ =~ /^Your vendor has not defined $module macro \$constname/) { print "# pass: \$\@"; } else { print "# fail: \$\@"; \$fail = 1; } } if (\$fail) { print "not ok 2\\n"; } else { print "ok 2\\n"; } _END_ } } else { print EX <<_END_; use Test::More tests => $tests; BEGIN { use_ok('$module') }; _END_ if (@const_names) { my $const_names = join " ", @const_names; print EX <<'_END_'; my $fail = 0; foreach my $constname (qw( _END_ print EX wrap ("\t", "\t", $const_names); print EX (")) {\n"); print EX <<_END_; next if (eval "my \\\$a = \$constname; 1"); if (\$\@ =~ /^Your vendor has not defined $module macro \$constname/) { print "# pass: \$\@"; } else { print "# fail: \$\@"; \$fail = 1; } } ok( \$fail == 0 , 'Constants' ); _END_ } } print EX <<_END_; ######################### # Insert your test code below, the $test_mod module is use()ed here so read # its man page ( perldoc $test_mod ) for help writing this test script. _END_ close(EX) || die "Can't close $ext$modpname/$testfile: $!\n"; unless ($opt_C) { warn "Writing $ext$modpname/Changes\n"; $" = ' '; open(EX, ">Changes") || die "Can't create $ext$modpname/Changes: $!\n"; @ARGS = map {/[\s\"\'\`\$*?^|&<>\[\]\{\}\(\)]/ ? "'$_'" : $_} @ARGS; print EX <MANIFEST') or die "Can't create MANIFEST: $!"; my @files = grep { -f } (<*>, , <$fallbackdirname/*>, <$modpmdir/*>); if (!@files) { eval {opendir(D,'.');}; unless ($@) { @files = readdir(D); closedir(D); } } if (!@files) { @files = map {chomp && $_} `ls`; } if ($^O eq 'VMS') { foreach (@files) { # Clip trailing '.' for portability -- non-VMS OSs don't expect it s%\.$%%; # Fix up for case-sensitive file systems s/$modfname/$modfname/i && next; $_ = "\U$_" if $_ eq 'manifest' or $_ eq 'changes'; $_ = 'Makefile.PL' if $_ eq 'makefile.pl'; } } print MANI join("\n",@files), "\n"; close MANI;