From aef9ce78eca5f7a0dae98d67af8fb72ebd1fafb7 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Wed, 30 Sep 2009 23:42:49 +0000 Subject: Bug 364254: Add hook to Bugzilla::Template::quoteUrls Patch by Max Kanat-Alexander r=dkl, a=mkanat --- extensions/example/lib/Bugzilla/ExampleHook.pm | 43 ++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 extensions/example/lib/Bugzilla/ExampleHook.pm (limited to 'extensions/example/lib/Bugzilla') diff --git a/extensions/example/lib/Bugzilla/ExampleHook.pm b/extensions/example/lib/Bugzilla/ExampleHook.pm new file mode 100644 index 000000000..6452e8fef --- /dev/null +++ b/extensions/example/lib/Bugzilla/ExampleHook.pm @@ -0,0 +1,43 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Everything Solved, Inc. +# Portions created by the Initial Developer are Copyright (C) 2009 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Max Kanat-Alexander + +package Bugzilla::ExampleHook; +use strict; +use base qw(Exporter); +our @EXPORT_OK = qw( + replace_bar +); + +use Bugzilla::Util qw(html_quote); + +# Used by bug-format_comment--see its code for an explanation. +sub replace_bar { + my $params = shift; + # $match is the first parentheses match in the $bar_match regex + # in bug-format_comment.pl. We get up to 10 regex matches as + # arguments to this function. + my $match = $params->{matches}->[0]; + # Remember, you have to HTML-escape any data that you are returning! + $match = html_quote($match); + return qq{$match}; +}; + +1; -- cgit v1.2.1 Z!|(/#4" I6Xn[vHgTG:|0d(ɮO ; ^_wRHT@e bGU.z K0 }&YЙ# ]SqgTOFjH0Xn A +00* j{<ٽUĖ/9DO|2^467{G)R^l zA7>ȬgZPe':%K|40[A~3Gg:-`V3k2: czK<-W0ǿ7\$%qwў(d]mn(=.PjC'4kS2򥍌&+:6b}6U,!)YWk\z݇*$ ݿzɦ=]cPfH 4n!+wPP,I>tMa%F0'N|@A.-S/Zx3+ }8#ý{hP|-L}cu^Ʈxyz&4c֟%7yANf7f]bZ@c!ʋӔځaȭBzxX? 0γ2o(TA5*SaTLF$rt55Ҁ2J=}3UatP6Z 㞒A>5 BS]BC5%l%D?C(@x#)Ѭ YQvnzr+j8b w-XH'{,ŵ֔_☢'AZ9fN^$zdz+^ %QIxyc\kfDqWTE^Kx&x=0D.yGNH"Hmٿ/q!ǀٷc1<%ll>8'faqNn})!R8%_8ޤ&7ѵ*-l/lOY[C#W)̂6%_)fh6%h(jqW0,O#:AI:/䷽ 7!^H9ܑ/` ] .^q1GVNu*Ji~ !&xo@T%M6=(!E2)[S=!M:j~]Sua8Tw_^acɲu3hly۷LTgDaLc^ʭ>ucvyTBk7O9?6?ih H UQ~D?;ln|dz̮Ck栯,Cpa4 0 ,2r&FWV?v5&E 2ųn8SCH~jkI$qr\ O^r.:rA#&HOގ{*%`hr/\ &fcU雨A9b[ȯP1e!C\>{7WqdNQ8T22hQNU/Y+ 豂0ooZɭL[O%XcO2qv쩳lhZ\a' ­/Zlh^aYvͥ ;Bn!A w =ۻ^ʠX@'ۅi?^jY!G4Ւ5P5=UVOQmRsiZT ˨~c([k`=i且OȮg2l+!w1Ѝ' lOo[UHPOPV3;RT:{GB 'xz%:60V3qjEaUOc F~5Io8h\PɃ9{gc=kBFAJ1،.k 6iX@1Ha4Ʈbpz:VJq!ٿV0OAr̠,<{ˌՔ]a}wWM)b@^?)u2pq' uL'( 6dy Г#LtYF~mGA\ rғTaO96Y?sюk`{X:ɥkv_{5;Ov+Y ![I濻fs cM'PTS-,EB1>erEPGdzt:mYH#5AQD`&od]ҾFb,zUc{)~@|/UEw:9V{]gK1ck7=߆րy,oA-%{J!߬%fm0ٗOT 73S?/87-Y(/v\F \+ U2%&;]YUb$ɱ\ByopY XwNTSld!Aj`컘J (f2@BB&QN\SGNppSaf)_sֳz0gq]gKI쏥#$^pS2s๧Z\V'$1[ #o$_b".R;'Pӓ#y*L<5eNAJR(A]U4Dc rcX)n'=Mi*3y(E;"h4S-̪ *8]Gu/{/9ѡ:E7m`?3I[YUe!cC00HNף:G4%`F3]Փ2K%c E?7̉x]TwA+ٕ`o~YrYG)(u5nҾPwwOV:&GÇ,ȉ3+ӈ VQ=:( Ws* AJU! ΏPVBq`z"M\9¶9xh0drq@Ͽwm}qe h vO:Fr9Poq,O*&䁵CU7 zew\F%a֩g:r4G$ogt8\j\p[WA G-`@0.tryVq*6*!6?4FgioiS5m' >`p|:n,]X)餑rN>9Tu}Hs?AF@ #@TaE 68f[%Hw{n:<-@Wز[,8qcH@ɬyjH8k#c5УxUQg QnSr6j*~C:}?JhNmCAe!coWK$E8v+֟fRre4#AcX%5}܇dݣC&x{;U*I_8WYX"[vN9jmBz.TNrl( }ίAaLƑHh #d#` ̌;Od8 X.l\)1A{ӕmvT.c rGPGό!ʎU**(Ƅ8 fD2kmn\NVu '|CCOUjblbʲnz_08PRLJ %s ^,(,ɼL3Znx&QoIpdBJ}?SLMzךù@)iPץsؠ@+1ng0)7wSȜ ]20~M/ctG+pl4]> Xq1 Y0Ͻ$"\û(A::K9S4nD*K_0eJJE>|ȃy{,w9^ yǛ3v*ŊBG6J5 hw]崥 ^ʄWz߳4`._ >rw~L7zGn]p-QJF'h̘G)2J<>e}.wz'@Bv]P6yB-WcS1f_Y\J`bمljҕxj% ;](51'<7ˌv}^kY?;K2#wTw%?q|/F\7Bܷ>ZYVŁdOA%_bM&9SpNxQ^?}}ǦIbgٳfqݞ,F<*M˽ 7'J6zb&d6~v viU]lQ^ !FU#>ѡ| 2}󪛈ok-g\Eu֩t.3sXs+jc/&htBd%ccS؄DHN ;cp|wKs([k, 1Trh~|K{TŅTG} r鶬߈&wX6j5D9VpRMR72Cm%vO05ytA |}?b8(ѱ?YޭIpS}d*,%sE,9o#}tq@"b'h(i.#O[b}x--z-Wv9`]l"S3n:FN{G:|}.mdM (qQ#FjIwFe[MH'b:rY!wm]J "`*ӛI[p݀5nEAX/;=[šڑUu#uyEH/lS+ׅQS^ 3h'.Rt  kP]!: r[:e YrHߕ`yk:>NbiRj5WWpaxvƊ_N1z"q$ va]|lj|k?%u.v 挜7uI?&abGHDMlfI5_;;k)} :$6Uu3 h+砓]NLo0DUvKyy nڹFr!X/h=CIz#~Η_^ud>ӓsĜu`={Y,)#A}|,g9,tF K$ǻBy.&`N["gu~Vu&zEnƌ0w ݦcֱjnet@qD=%縫V΃Mt>mC,Ғ<[h*BgƈH+ƶ>]F9(!gl:'?g~Lo8Z6 \J^&ʅ[Sk\Aџ QB.6kM/3JEV diϨPyVwQ'yp1R[ WR5[Pqc ߁c'thFuoa[ Vu3cMzυ%FSw.|/^j1,=3?{ɸec1/9(*<)y[,:zWX7RW97vT c Q;Y!v8T?)7OI=:t_5k}r(8px{vCcSnK;Q#Oa?cƇh7` # = "N>.t?f|L~nd*nZ-G"lT~@N @di1#]:jaI->`m;BׅhSR c%y!4:*vT'$JjLb)qj$ꢤ`"ga WЈ%aL#_ujDfEMi>s 剅<3>km V`{`V(g9 MS^Sy w3?s޼i߱LO3^n[mc- nDB㾐5jom5L~жMGѝt'ҥK{7ߗ đ"BTLrr]XKRh$^A+Hgy4ifRBmO^S]0a Q%I3aXH6$،@ȉoO%qO.Yxc6)Ab 2:k+J<,q1Ca/eL+ U&ȅB}_MEV9T=Qkd0o |sDxY^=O\-(GCȷ2*PN2`ϝր"װBU ԉdzN.).;E<NM>,麳fj<EGAӔOj+H ,CX˵(Vld]87OBr?aN^ 0`CF =8 0әlL A¹sƂn󯗂&yn]Gzd8a1&<`i A*SYfݨZ}̕r3jUGA<= :+G1e@XvDڂTcӂr$W 9F.W1S9?M ~f.;[hwSw5X@ud%h^{_ qqytlmߚŋRz5rPtWNjFe%Gxa#bp)gpQ[))cW!fTsOVl44x8ֆ)2} Ƹ_SHfîE̕* ʭ 3Q\X7<< :KҶXdǸ$^C͆ t*OPurs~p9D20 ڻ뵗Ҋ(dMik)|mO~2n@*+3g,nBtX_&e 1!e3МRBH8$ 8Uxk#X-x2fX͆[E4IZ~]&e7YċUDLn0@ #o:yx;@@Tήg*j߹bPE>6ĵ6` } dPVAiM>ԁF\W"wto-T'o!J7&f}!]A}X#C}\3<osՅ&<Ȫq8]д15dz}t𔃬1o^ǕdFTxͫ3R/<2RA[B\BIּLV S0}ue-UF~,RnJXr``y&6X$O;w 't2nBh)i4g'"-=lOu-aͼ#0I3ow;C;NgPd2 {61*hp4{&}),ϼTa3d,+Qrj,$#)n:T$\t9"O8+r=VL}❾ >Ul/V !NB/Ԕy-rsYovX(["ŒwO[+<*eHd<|UIEF31(cd„#6 So*uYaZ;q)lսf*YL\tHZ!bJ? wáߣ !H58si 5!qXl&}5L&Em@e\,20Ę@iT"D  &5)Qn T_\?6km[=D5|˘$ޟk^>x5fGW[qƬ.aij|vzovufb]# InQvu`.8NNc !KBf4҈i'뻩5bw~MZQň9z JF1.àZEm*: nrÌkfp#; }4,Cka9)^ |hv Gz|_H$ӋBj+ +j;-uƗYu3nG\In{e6'=8M延;\#7*iųZ9Վ~MI|3IDHDm)4\ĚGgOD*8ZI!oi@Y$RBK MIcۦsՋ'42CT9d̪$oq%niמyݻ 6 8 j`Ft5 9KͮWwlU0?Y+_HgH_b9Lƽ hJ jTі[d&'ġwNI.otƒuXMJ@)pF5 ~!:P>]]mMW x|z;6)^[c`|M*xޝiE1,(bα ;[ϡD!n ;p^X0Pn?R] m-*t0p1 pGXd'.W1_;{ UnW؀ 0vy)CLR̤E6aXsJ;dHBdŅmqGjn$r~i0l/ ~ec\ 7N[fڬZ~!Z>*Д?sԝ73$o{[Aq& e~@,vM*V&k:>3י}Z¬C"iQ9˾Vܖ(ltK.w kA_S{J:7?ѭgX+BG5"vf<+xGDbdkmo}QG :f.íD.sw]zӈk>%LI{o/!Fi2 ;H!)h 6SM4n4 7<#'@KrIX˲w4dI}Ukvz. 4~!V? j5L0P[uI6/C.)F l^}$DZ Z=Ne g_gKҭ(H5q%V̓z5wψDN%g%۽"wifvjr{-#A>WݟS:FyN4/?HrT}w,'$O1gez{qɒt z<'zo6INTCu 9:;"j[^NZ?ҟS^OZ4ᴖ6Xf$6 ׷;X,~tΜ]*Sif'tg62J!5ޝZU%Dqmzoux9¸U-"&,QΨ[33"E¿`ȗ~Ufs'E7:؁ɑ+J.?_mrP,NL1jʽ9e1;Zfkt b+2njEVU`[VnV*p\뚛]rI@jlʣ~)78.RH ]@)їl:h^~]!Fȷ]tZkGwɂ҈»_b܍&K@~'IHN(^(&$>l5<- Rl2Ј@Q7 A"Az=*ЮZdoӪ/p݋"66vU{A>jV W#+3V85FM10om+P6Sx/劗JEis.K@5ߖD2ڛf&l eqro) p}`NQ5bUXf-zq)o*(v!x{yn[#}f..4so2Հᴏ0 Z /"[TRx忉;z%kE%Y*D5hNO 59qjNƝW(ˁ ;d}X-ZF)46\3odw,yϜ$%#(= M~A3S;K:ğ#1Hrtj" S]Vu6=L0u^,e.gN ,d7K!"F 6 + 5(G5$y)Xs`L?C5Ƣl}ĠorA  W"[-1no%*&CC٭'k\=H($ҮIMxN:l0[VwU4!0_[E@^j/T~GF)s=1,AQyZcu; EȊ5(:Ako[(Q- sV9]Xb|`+'UIc`3ChܜdP!Aj=%ɳ!@!Yfy;)::rmd(w:2W[e7$e 7Y"!CyI3z^I1u f2[.fzTeu(.1_%.+EJ 4kdqTOaǒPA֑ލٸ!u3'82A9͏N $Rb< + XK/{no;={.5[<,cφncZpǷFr˔Ҳ5 kUWϹRxXԿQwrgJ߼g0 m-&L#GY ;{SX͓`/~l{"Hѵ+_uP8qUR7~)9i;OƢ<ܱNғMMK3n4).M&* 6>>-p=\`oύ^,B;w5߶P".E=sꜥ+fO}dHwgf#ŇwsA:NӼGaE|3p f. nװઈHu`[4N6Z~7X@g~4Q^ IZ·^_^'R-1O-XVO O,l'-9U=6a-JIVjm;< A&%-`NIu2s#kܠ[tQRY>TN yojG)iU}gva 7zqhFs[ɝ|/gSdb5nQM>2qP>֠3(ylQ]d+ Q)% A 3 N>C?%Qbİz?SgiE‚%p;DŽUŎ>2:Ӧiw#es>,5UJXU"PPBz}nO :  aWFԙ$*3a`nk(;]XànQ[ۃq8ΐY;<ڝd!)gH%~l-1IQ$<"p@q`t2'_oɷs_)$d/eBGN-m˗ų@EΖRTyhG9(D&p}Ң$)]51MyIWV7y9<x3c#Eg CFKXqBALc)2PzTɬSLy+d҇y;XR8|޴ZѾEt $W"_ mQoj#S sR( %6xۡtd2!ɂk&1)cn){9 )tX`ޡܰ{pbqrX ҙ"ο0nMrjw1O04`y:y3NibbsNP*_}"Y7^֨)e:8eMilwCaϻ3}ȅ@n9 qDV"ܜ*𧃻X#aW8\$gq]fZOCrFZwwFo>e@M"{W7 "dp޻j֒q{\G٣x*{ uQ cM7 F#06tP m}EIXpRvpF%ߗ֖o:@aaeSvūd(4h79&BJ xW|&PֻPq-$}x#3h] Z8~Kp9 Qn߆2t|rd ⩽OT9ro]v UFtQfzc@#jM1HB8;q?f;UUMq uu| A )wPًR{FW (:K]g>TOmM4ӹϨ&r܇%OޛJ,FƜȕ4Mw|VA!qy)49,/WYKF! }KU4ݷ*uo>' ,f3tŷK,P̳yK_!EJ|F7i^`L0p ^\0R@O JE,x\m7[|OoЊ7S ^#Gw;Q:=<ݹ/a8|^ѾJZ ld<XSv-O5iא!?8b!$Hc̱fIWvmR3Ny_{v`rW|F16׬ )>`]}*} dZ.$[vEsO!I-ȏ:gJ12]߻Tmjz&BTexI VDH{A@g ^N[:XG@r;t0B a9c"sր~#/U)#v4rR]b e鱔1 ©PKd`1 = x&-Z{19J{wQl3# sIY2^\py D`ml޲Ƹu7~ҫxzzn.RQN<Ǻg][a؊[Iٰ F`P!S *#p {, sxO>h~1 Śb9 !If]]s|M';Y 3L-!Xw-;I.;v1% _uԇI;,ǽ@paҋBk3i4o e[сrF6tZ/Ҵ5 n fV&\;kHTiys#P,7 WDNw#M`$]оt&^]lm_#:]}%Q+ʷ#89cM:@T rBȵ >ŦqS'5`p%IxM.3,+ht+THoD2j`-ďW3n{kk& "&rҮx.e]mt?TGRLp/*YB[EO+}b %KGy0;Zj78"#y.NsKkۥOu QP\6mQsȞ![g :q<՛&_,==9B=*!;pmъ Yܤ,*,^?73~T 4*@5YTW8c} F$s8U 9dXa򣼕7b&Bwc/yhEs'ME@ eRQ贅XnX.w1*\ڙB͛T9#JcL]+7 tS²e7:}I[tNzzIEc 8t,TMm'NQs69SU4}ׯ :]Hk눳Ak ;swZ*[ȫS#c72*5, ɠ 톰nͦ}1}\yLm~KW)ʧ^UyRF:h\& jap)}o?fOm 2|3va2j՝1KnILKgtZ{$۴4a%4@H@xGXT‰: Dp#&S{TP;|~D;Ì?{5kٷ;}[gfC:Aԁ~|%nh*jaA]-d2HWYw)^"cF?g7`+(YLÖzvA^i5%, -njKf Τ'+IC#l]@$msd>[C7Nl%]n>T~D+8W@NW3va>ӏ~ZE meM'a IOL9u̱+3eWVN]3;w7Er8nHcr"܇RaA#,,@V|˸k(5:V ebf0h*Ab@{B)P 4,L:h[+/NNL80hxxqձۂ;cRdYm8MTD#0T ٫s@2$_"MH`anR5= (HsF_U}koyU/.,]A#zK 6TbX&qt M$-+6 :D&D>kV4!4iz dv;o/ˍ^o`3ٞ1wV PH3q{\-.;4q7$c\򆬚yJoATrC[-? > 'ֿ!ݫB!J7r[8pEhM1+-6F:uRRH1n$€[J؎Avlez4M:TVԻQօLշ>km.DVjUMTY1(J+T. *fqN.~CadS-j0u|Mt%+4 ˑ/ԅ1]E|LYKJi&6QqWNC52\ڿܱj#Ce2}Q_lj]l+C ?/؊`h1o:q9 5!dρWgڿBQy}b`Ebf0u2PQW~eQS(ɄVվ@wXq{].nϥt&fTPJX$QEi| S˱@6OUDfA@Jtm{YQd: P34~+* _+O؅XxN H-wtwڪ8H:D΂3XSsakh+z+Ѿ^@&~a0a)@ci96]"5ZLe?JW9l1rQ _2EXzݐN3aC>m(7o T;:6 X?Ns\ĥeƦf.=X~Sdc$>Km&4I}Y+_VPN% )5a֪7R) 1n = YnbX|igvo8=yڈpL'Fܠ[-}L'qc{9#0c*n(k3y0*a$g0z2$"JAMh@S*%Heek [I#*5_ȁ֢YhoQ?9~X~*/ɟ9JFɦ~Dؒ&B@ZCP? 7U)0E֧\@)^09;&=-0%: |y󖔙Wj}ĝi> Wg\zV.Gq5+hж)v%ÆESa E90OF0M1T a[3e754q9,gN"*+RgLv/cc<'=Sd(wwr[a|Ol\Hb;G=.'yڪVl L7.Ų"h_V=!(qqK,/ qrK$>[X h4R 9 {Gu4HnrE~~~\7hq쾼wꪥ̾y6)wc8E”gmƆlK\b wS3(j>D+)OtG~爆R"bwCoKUc /ռW+:Dq&m'F@o>pWMj]i3U*-UwJEyS\GP|`чMMڄGM6VXuTID˃ 0]lÝydR7&zaNzuv:fE,qB @ςè"IP X=݌k?n.S0RT:b.gE<(I`En]جĹ(w2*i':&@{; %)jCnųxoMRNL:/EtMH˳X ̭Z'O<΃n1_'/OMV<6 !ZY]fJkY]?y!NSi\'gn@ 6d.RqD͙[Ӻ'-sfכUaS:5dSXxK?-ovIp1/J ')aiBH/!SqdGX@M D !u|̚ʖح"=U0֏=jSv7iv-b}5iJ1B?dbaοl+n|M-L>,2]w`c%8j!M[@Wق0O׼%1vzKkֻ[+=]<[)Q %I֘}id =Mb46VBsIẗ(^;J$) {8EoMN3*ؖ,;ĺ'nyM(ȝgG?BY/>OY26S1A*RTӲѨ2Wㄭl#>^,tڴ*֝4ZYe~55N_gMJ `랳$g%M]:01a*W |(XG'  hFI{~otDe.ނfBRS [#C"G%f2D%:YR Jab%9a\pU ֔&tg9ďUJ1dlY)eOYS/n)։wQwZ̃6QusCvQiG_3b{ǘY4_Wop;JFI.hv7G TxK ԉelu&U#[ec8@[8mX2dRNГ f}W| ҀPN۹3:#Ygvxh̲Q="!]L]9.al9 ,NyVV y& 2dSfľvy+ ['pB20Jϑ,0u*rKsgvw9jqf} nkv k\G˅v4Fuh?*I]iv#̬DgiE:UA"t}uw*&}y^XyKn&;r ϱ] @2PИZ:G]9-o|HU0\@)ʖgz@fc#Dk)9*wzS/ GyU?J uG, 3F> o2¦S)T"tTIyMzRW !6A7kVhmfu`l1_W$ZoЯ#k,r03EJ?6 jc`$IX4nWՏqIPZk8_ɰ2ZqDF ;k|w:;:=u@E?G=3cc<]`|3L3:xofʙ] Eɇ:V9z5r=$ҕ 䤳L! RY!aGK nBh=؎n7G1Y\;Sw0DAp RhBq~,I:r}z֣:60Ł>wVk-\.D rZv |, e {q? ?}&`&Uv_>}> XH]jk7~! ՇbteW3opOxvj9S{!M>ҥ23Tu!裢"" X.gr 6xK$di! Dbtv-V# &98lA,P?@:ٔx>9@-9U@0.HAs8e!},uk%LdwVӪW +ĠTh1y&!XqR}aS+G:Q4I[~0_пMu+$&/MVصbâa}؀$]H 5;G_{$ <;ũ;&EZp *(i+2_1ɹʀucj'-g# oNc$ɗIU~6O !b / <|΢1ʬY&LGT7,=)SR)Wx8vQg.3*=_4~XYty[z hˆ{̎AԇUsq_,(bM}Q1DԺE (b* w.\uي!ٟ&deݦt=G/i[rM9f9(ڤe^ kSB6fAH~Gz)=$=7]s}L)QIiB^o΃RLd|,ns.AtH]8F'\&5bQ^n cWϥKP˫&G>`"egIøtӫLh0Chz%EM&x\BADxq2@, cA(bhk\g`2 FAyspx':R,< cj61)~C%?Xz+ ;P\!ȰY@Urmt{.z]=ô{7 f*類w]pψRĶ1uI; P`po:r;mD EYh$MAd>,|a\@*G Q~]* cV\GzF"\خ*Tp]2FWh[U *SNcŠNI u9ul.0 Y+#&XFhPe'knCz T9o(Lܯ_P?E )wAuwM5_ n7ci'd a^m>rDI.+pG06e,]6#K)bo*!#)Orܪ:xk[4- 7| G/Ց }͍ k^!O6eC`rM7@cnЁeV22*Lpԣi 9.4Ulblfg @-vGU|qY? p` { IDdzp퓁T bՕՁ-ֻPLLe Ve9<.Pap> ļmF7-U`>RIeQqM6lc {#k V]"+7 !Gd aד)4#v+濢quH4(KƄs()F^Ca {,e1`r߫ZvJ_n Kl*l粮Ϫl-[O" ~s|Vds<=8Jg]%6w q>%AhZF@u3sy8[Gw#[_1rZ=<g}n\B "(V%Ao|>-tԕ/.5bZtϰV+w1>@T^n(@oγwӿ ̌hImXXo:͒wzƑ8UwnzAߋ ٛmc3h>y tM]cWچ~'65QT$,n?>Q?6S(GߞqR?~/QD50#af4%J(:'g a60]7gfŬZ{ JJ^uRs|vA0?5tpZWl*"ȴkM j_-A˅*EØqt8b!~7 stŻ3(*(j< N'm߽Ep&dޗ1؆LTmkuw+m_2:BN@W6",+]8'¸ؘaurM (7q=U{?=]$ Ϯ<:49R{(̊p JRh"BhYgQ|q]n2{.cdJGѝB#zOg_pfq2W |74R8͉@;Ǽ?5cLw 0qxɠ3F7Fc@!CҕLI_;}g:#_$c@_*$*v| 9|~w0!7P Y*4P܎@|"_W\ a*7n.es;lJtK3>LǠ޲zRX|6"T>mhzL7yhtׯ=LEmxg^z%mFy|n4L߮Z˩T "Iճ_Xp1g#;}yaU@*ԚB! Jy /#bi%:nTD:{$l K s]SľmP_]1= cY_><3?6dM1ӱݬ{nZ|><ԲUq[P<(#cs{kIH -;M5^08LDcq!Z}JEu&hwdWfY*a袶7>,ꥮ#nI]F ˫7//.G%jk0@ytkg`A{סtwxy `x[ $ 8^QΧ@ݮ3쥟k/V6/skjZPaSR٩QC<^i#f- {7j*I5P(6[#][ y w6JckZ%E3S"JO4ry“! fH;n`H)S;Fmi9 ޱK"f.&Vžb.,Zr£i~jdm7{F._SJ)QUCf r֤=<&ʹ!Rhϴ Ygר_%ܻ+Ty2m`! ȩK,LQJZ#!8X@}a8Z֍*>_j_f{ClTi7X5(fj)|"=F`a.H\+OД<~uƓK*.z$ħEO>=i:6JN8Mo tI塓J ^h O"%d"tHl8]4֥Yre ' 1缿K}ьڕ"20"DC]A(0',!"$z[B]YomrػZށރL7ܣ@ X;uFtS~FTq gEfHydv'H7/OO)"L`j茊1ZId_,zCO3VG$M]Z}Ek/z[fDzQ/!`ʷcyĘ`Ye tWC.kBFySRQj=O^3D~|8<ŸI SAظp`: Kl՝ %\'-FU/ekڴŵ+3F AhvsWI? L碤N7+q&r_>Fr@班J [fO(r2\&dNN!ܕ/n&S4 3*^$>QF4d\7mHxV5OF;h cLIfI p#qHk۵5wl[?范rn,4) y,>Lr]w`ZLT̵[olReĨG A~ґHu\ee5qZΛEZ*uq+<D`X3xCyF8$g`RHfِH~Y0wST^*зI/HrfxS.Q$(kVo8AUIqTl,PHEZD$&5F>\yθj>\ ŠErc<@hi "4Љ!Ӭ6(]W-I>rU/(_gqߘ)Ӱj@m6 U&g9lnطaa^hH]ҨTӇc4ݶ bbfR8a1OH0iqipu* ٱOGs˰5P0?h[OI\ʖhƒN;(tg;vjg}ނ3H%Ɵ;oZ݀ <jS$S@>y-EtTD~VO^VHF7Fޯ}ǐד☮JVD2^oaoE"Dt,&gcrx#d"FBĻjkuFykeNge>"9UB%yZdwlNIl3+1@W}S>b :s{ksgKq}`]iZd0 ޜr..qs9g &IOt|& m}DiJ @"7 0tܳx=g-y 9A ,Ukf_ VgZ_\..#ҹɭbd]+fX9wy],~ Kh3r'ݟ1gSrx:6oF<*[I' pWP>@:/nD_MEY9AF5RD b4vӎxSWusJ\.P^GoY/2QwR#:JC Lv a墓’(i1O(Cr(uy3j2݂[*H>fّROtfz?xƝeaDvaQX~Φ.Z "WAcqFn>R(4h ,N \\ <ҥA[x/U͌\;QjjPJ`?z9w r:mqn>T{>_I2X5R"Fg _Z}IAs9iG@~y## qd !BK(Φ;~Rk-Ɇ s&Z]&Nca WyY=P[%)H"UYnG!E3Z]*W+GD 1p܏sMUc2y Y7bL.P緷+eMuhV0.jS^ [x!HeD3vfp0XQ8;FNؚEWUR6~!^nzy cP`moX;Xx4t7b3jVrW-I,#&.n6F IAa8|{FkUx]G}U.ed'(dI 5m_//j{V~28f5NFW&FN)ClJzLF,Ut# wSs uiCY^yVE}@Hy?Sc6hZ'ƕY6_(?Uh=AGL2@c,"n_t}?ޝlu<@h I ycMkjkgQB39SOj#Ž(zx͵n̻DlMq NZNuT1Oe-/8?UYթf*VC=Ob?QU>w>mM&cfQɋf&#ܒQt[~3IqE4}?!EN${ ]E9sil8e/LC&ñZVCkj!Puj))WuZ3*KraM\OQ艐lo1H.E jvT"5K؍QQ%Jl&7郉feCMIRwX9]Y Kp6>wd6aL|6ʹ=?-[kXG7O0+3ߪT,>j2Cx4s]!^]pmXsIÛz{J\3 u {=+}{\he?XQ0Bf-#Q͔ZTbjtYwrW1)i^1^!J̗?Eטr Sӻ8]fSD5nR4{+oV2l.~\{^z>%, GG?)XV |5@ɢ̓AӚ H!Ⱦ FU^ oG}꫄)[ub&̴\{`йWOI =A i]ذO_yg} lB MY2Dlqh3I;nr}˃!+@ 6=\{Wq_٦2`"ZQ؟8nhq ۍUs^‰u ~< tH4YJyؐ}N n$ZT9r!HcKs  EGwNK!U hؤCދYY6gXT--DNJb0:`>q l;Y4L>Fh+% iI p"5y!`tedŁ=/a#lah 6i-'1Ls•KչllzuJC4(n&iXD'$Lu'τ֐z ~2`7d"snT*EAZtb(Æ%RA-<:EpX}29˙A W&\gE1QCݾ }3OO-׀P tERiYWlg3Q ~h#:akrKɣ #>qvDVfKdOy3,!XxR~; VF}rQ[Fwb<\?Rhs.GWS"w ]R:"qCz2dHG?@ kװWKMj($hvR! ()\Zߺ5Ej.5`X>7I^k]\~?'b "iIw(CEl4`U[<5MWp~ 6)@$ D_2,@`C{X[`VFSgN$fJ!*ҧ 4 I  ?fGfHH{$]8 d&Qt&5A YHLAWX"}mn!q$:ƹ`Gʗ{qD`1\:LY[9[)L1Nj>M1u̥tA(nx7JXϨi%;kuv Xذ"<9^=Ek >.X`>W%f>)%/ r]~,4G1Y{*$%VP l!{mPuǶ*af>Pk'XZx#6<í9F}c Hv"f 9͌|q]bf6mԾSBM-} .ႄ* heaam>wP#K;!o~w<#|l[4!|–b-8";2D؁CNŇFs?zJhmA׿)ƘH {l s)2f* yoZ_nUyj Rte>5Ho]E2eP{|+-+_˒zaDH)ec3Ԑe42T!(9>MZm3E-\Q{ϊ%M҇Eݠ9J fnf$0)w/La ~aKS6Dgyt?FV+ HVFC w߬N ]ۑ :+h:EDm^ی8?blsKm{)M6aѬxc#=׃JsAY XaC|9o>"rynpֽ^avrq^GʊV$֚|v"aoV7!byx 4J"``iT j)hg}&x#3Xj5%w݇>(m"d!Y-}u LYCKǼޢ,>H\(6};f୶Re!vLk3wE0>ı "47+xG_EISZ/^TZAW McI 5jǃA*p\ $x 7lNWg2: %{2C][p8RW*u\0[?=Z#ˣMVR&=VL6MR7Jص.2w4w N`F{=|頚ԅ_DLg wyH+*_NyR^PqyFN}{#7kCbgU{a{éFwܦᚆ$e#:7F&<2La|\j![W$esV>~  NF.T H{K[Cmtsav:dևo/:L|C06zJ76dYS-p}RIQMI^:3or_" >]]DP {XWsfF~EKu/h&8Qd 6Мπ/ |2s? ,R{ kQt{sh מPN1KaՍ,&I2ǯ0~Rc96 xI& vA5 =VvVk3¤=4_Nja4<`xt*7g.6l}֍~Aَl[Ez6;*1wseaͻ'aWe&r!ĦzguC*/)?ػ9/ylRrYWK*}K!@ENkULo(y iv 3(ݣK{3u,]g+Y8?WԊ[޶|8@K*]Xfe`u|ƯűXhdABP_2Nݢ0Hv02׼Di'"6lK+ĕڷ@&ODB.cd i'PtTB_H(*jF>v;i^ohn7Vo)N#ơA[5d(ְ̌&dG!8t5?t/{1pBGu*A6'F VA$ hJ?K UÎ p:Wꂿk ;  n7bz_#|@SL'[5+zm;@~x-|h0w8e-jhw_6Eh40 yɚ:D]J=}n"/C,-WL}gMjNm2}*?K<7dc?dǭ[:(cw'iNFe*2ȭpKb1}>*a !]hĎwj f'u>Vs5JI,}^zf3eOoEƵ̽uogS>ӯl,ljiaY `L|dcvOCp9DsZ"׭`~P}xU3(F+Q[w"/SR>ȫ!"4ZHN]nb aICu3' XДY`4bK\A(*IÚaŁ[X&$lq>GЋT*2.njrsPDTԢ nNDjNfsw Jg!퍏żzQ JJ-F˛Sr[".Dګg@E/ʛDg^ |m-ċk ]9--Vg$"*/8vz,=C1yK[dAI!1j11/ӵ!T-"*F6fN<>_3ʪ˱8E]&ߵ