Subject: Scripting.sit.hqx is the source for a c++ regular expression ba From: Steve Israelson A regular expression scripting system by Steve Israelson. Hi, In the July/August Issue of DrDobb's SourceBook there is an article on a Generic Parsing Engine in C++. This is a very interesting article by Todd Esposito and Adrew Johnson. This article presents and excellent way to implement a scripting system. The only problems I had with the scripting system presented there were that it was incomplete, it was not made specifically for the Mac, and it was too slow. Here you will find my implementation of the concepts presented in the magazine. I re-wrote everything from scratch and I think I have come up with a faster, more powerful solution, although when re-reading the article, some aspects are quite similar. This code requires PowerPlant and CodeWarrior. This is because I make use of its LList class to handle lists. You could easily modify the code to work with any class that handles lists. You are free to use this code in any applications you like. You however can not sell the source code. If the source code is included in source code collections (Cd-Roms etc), it is ok provided I get a complimentary copy. This scripting system is being used in my free-ware product called Pfhorte. Pfhorte allows you to edit Bungies Marathon map files. If you have any comments or questions feel free to e-mail me at steve_israelson@mindlink.net Steve I. (This file must be converted with BinHex 4.0) :$90MFQP`G'PZCbjcDA3!8dP84&0*9#%!N!4-)J#3"2I@8dP8)3!"!!"-)R*-BA8 #!*!%&J!!)#!*8f0bDA"dD@jR!*!@8$F!N!-l!$m!f!%)!*!$!`#3$iB!!!%!rj! %!3#XH'TIV(KpX`#3"YD8!*!'5j`!N!V#B`d0"e*PB@3J6@8!N"M-a`#3%4B!!!6 %!*!$&V(JXU"dG(*[G(4iG!!!V(Kl0+aiIE-!!!&-!!!&A`#3!pN!!!,e,)hh$J# 3"L32%3!)(-ah#+)#04afMb0Z!#LE$""c"N#jAJlR!'+h"mM9PC)`pP0(KJ!4-YJ q90D4c1IBi1!2AH2[k*!!m8i+2Y)*B+-l!2!96XGj6PqQj6rYH()!LYGhX-R"Qja D6`)8VJj3HTb$$`'8#MQS1rJ-3*R5$RBPGeI6fMd&*5Scb"f&LLh,jHZI[eE688r J)5A'*BrT#h!-$Y9STkCA6)-G1ia$EIS$l,hTRMAceQVUc*!!Cdi!S#$NJaL(HfF YC9d'eh(Jk#*h13TeVJ3bjG"d4a0KP&)kLqZB8F%##U)!6j!!!8a'l!ReLL##15& -)qc)8F)mFS``-Q%%B!8im5PC!9)m!aK32--cJRld!Y9UK"NC8)*+jZ29pr"AP2K 3JdR%[kI%1AZ*P'hb8r(a3(R*K8ID,r48q)9TPj2KN!!PAREG[Gpdh5j5'CJHDPJ qAY9$c38CZ6**6lIT9[ElGjQHT#E,eb*($8Y-2T1*C&,a0L!+6r5C)bG[kG'NV-h [iX&(*%@kZELi*(SH%+Ujp-*T`9e"NGa'1[I!5XrL(0hP5E)[JSk1VPcLQ4jNL,V DfZ1FU)Yc,,U'!`#@3m!cc@BKa2Ya#McUJAP$SMA4kF+#&V*(8+BG$FE4l-[3S(M $D+h,EX9JeSmbQ%*H5f2ID%9,&pkF6k)8'Se$QiQYllde!C9l5DhL9f-hEE`eVBK 3$M*MRRXYYdM&(L&3la%bJT[cTUBSkD"8DeL*PLG`m(FKJ+HAScQB2`!4KAC3aAC 18TLJJV583DIYNibkY#PfD%[XN!$Vil("!'0J8+BkRDJ`e"Z3!*!!0M3+eTN%"23 e8*C3G3pX'FSJp6$32($8`SQ0djikaSVY"RNSCC3)C4G0IP@2@E)I293'0cA+V3# Ea,M&U[5SC4q$8C`ad`f1[jZ8[+4AZqcCQTVK13ara'ji!L)H,EpmmA#E$5BVCGJ f1JJNi#JMr`FiXe)$,'+b"k#M10r$)JdZc)$)@G*aa5!ZjbB+rkP,AXYdRCE48I[ %,9KA!&2VS!"6mmdd"FK!UFN0mq#25UQ'$jJDK*+&C08I'9il'DQ*Z293S%r`[ai T!R"3U1jNJ(qR9L"(HqVlrXCY[`Q-am9qD+T#-1`1%ljicGl4J9@E6@Hqq3E5YM) YCcMIj0MSdhI-hFV$9NV!GPB@d-a9#`#K2j`rpS1NSL1Z,a!(Y(FL!FL``bEA&Im 3i1UVJCd'f'id%d3)e$!#aYHXjUM'Si`k%fC-X)Rq@HM3262FZA,)fp(i3+SH-+A r3crpqArSd`M""RM[-R,TZ[9[kI)r!*!$$3d,8f0bDA"dD@jR,V8!N"5`K!#3%BB !!!YQ!*!$&V(JXQ"069"568e$3`!!V(KV#+aiH[J!!!@q!!!3EJ!!!98!!!6G45Q m&3#3"JHQ)d31)R*pMkJ)PEb%qYRcLX4d1@2+DY,hTdlJ1C*Z4YUMddB9ZKNGlj( "I4qe%FARrpAYAjk@A'-SaS)Gpfkfbek)Rr!C)#CkKT`CR5HJ,#Q494$6P(4UUK6 6rZL9TeSUGhc416c5Gcld,'836Li(jA)&TLhR%!qK),[&Grq09KY$aAQ1GkF8Dq0 5R1['SX@Vrb9hdDIir)9EC`Ebd`NHH*-YUdC9(4$V!Z39NG-CK6-rjjPr-f!d2@i m6c!6d,&,Ra5SCQcR$rN2+qR+5mC,$BFlX*IUeVql,rrrIp'1AcK1+6T03,l(%Fe q4L"-hQA(rQH,3l86[JA%YIplCpCb(C`()Y(ZkHLhLMd0[G)f3,'T&XCDf(),8eR B6J[M,'b2KI%@GXc#P"E@C'&U#lYSB4U"-EDr23,MaPQB`X*-l`6-(E5dm`9Q#1[ D4Kic'6+cbTVk2J!-!"42@bqr0cZll-bZP6`Rcl)M+f(b)mF)*c0kK1B4EUiGaa1 qeK&'RT2M"0r,e[#%QP+#IhSQ*mp1mTc`*jb`MM"#bE%)*FI26X,)mbH(Mh$P6ij &1H&(1''%G4*1q*&MK&2#"i56Ci4&RK01*Sc`)r`)*c011,N9q2"H&`"E1l0VCA, #b6(aj$Pj6JDF6$Kj,KQZK!-62$"H,'$c)NP9c4"#'Z$E5dK)J1mHq#I#GaYmaiP !pX1hYbQZ6QY*@Brdp5d8S5+qrM2pCiC2A'F&,&U-jimT#8h5&&R[@hMMY21k@M$ a2cbS)Rb2NJI1HZiP*(@KI4(II%f%!A2X4[(AEhe(RrlaqS6[X[GmXCKkAMJ&Mjq MA1mm)4h(B0c[f2mID"riLJd''q"SJY9)'[UYIkf$BQCDafmdSb5ULTKACXiei!i a2UAk4k6NBr%DN9+0ICcD5+RK%FNBKfdim2$Kb0i(PIZLm1mQY4!)Gh,U0UT@9pb 3!'GNI6LMjJE9V+'TQ@KbDST6Cr0K6[93DSK548R6C@d&5+QjqGmie8ZTEC6kH(T SGQSG#Y46hh0U%kAk*L8PZi&c&(VU'UIkk$D%BJIc@@P553jSQT3(I'@(hTrA1G9 2UEjB60'0+XfKCVriK&-$E-YKAaq4TC5XkE"mk`Se(rL88jZTVX(b$SeAUEPRph* U#jfeL5T8aC88qXKbC9UYP0UfXJeVG(0Tk%01$9*UXbJq+@VbF@@f0Urjf@LH8pX SYHA)d'a5RM)80AX,Dhj`l(j1$GR8Jh*L1Te@XZQrU1f8'J#&a[*6XRjl)Fc%DeF jYB05Jd!&Xp-0+@YXN!$0Xee(1$9Xlp!K3pBN3dl90Y$-A[fB8c[TPSHVrPSQ&h) [j[Q@Ge&U#r,'e!Nj@e1fN!$6"%lGcYa,0l60rE%8ZZ%pcaAUCSk5Rj%bQ`Z%e*q A6R,U$UT3kdd[AfFAFLmFj`VYY,Gm4*j8YIa)HX2aeVDmapimh$LkIHSkf%bmh-1 TZjJVmeNh$"eRj3VeXK3e-"SrC1@Rb'!8h,b5SX`VMll&UE[YY&(fKQVD!)8iGBp 0,H[U8ZpKfj!!"1Y5-h*80kB6HM5jTZ[Rhlc(U4'@+@hUl6dh,i3@q3j"M#*"XS6 MmPI@(cH21GA%qPC-&bH,*)`1#Ad,CK6S1p"RS3pLMS#q(GdDqZhS8p#(F%1KEf0 p0cS4p&hSIY!(-&G"hiNHqY0TdSb*#IU,0GhFT1X8hLrU+1Lf[%aeJrq[NR0SN4A Gh+cYP1Frh5TkfITBZPaF*M[3bf'ZemQE1&e&(cI91q@Y@l"AYPk@6U!AkT3#EHa V$02*[DSiCA1(E6)mkAjER!$VJeqLi)R0d6I[K1#Qp$XKqklpk5dK`60k5C!!,X- pkD&A#V2'PfbHa8fGh*[4#UfHJdlZ[FQTaVS*1TdJFlGdfNTdT34BdiQpqNASIRG rf5C3Kp,lC6JY`Sd3e&kGhmeVTAaR*cE-BYcARV(ZN!$qbPaZjR4U0qYY[qh"A2P [([K$KcXTeLQm$pFjd1(1aDm8E9Gcb0rclec9i5@b!&1`Dej*"rH'k*4r+`rGh3r d395jNLZflL&1l@,phEf`I(-Z"@2$aRX[LF-CREej!Si#F%2hpBXahH"""TeA%10 bZQM4E6GZ)2J'eIXI!!!J)!C6Eh9bBf8!N"UB!*!$3`"C!3X#)`#3!`J!!!6%!!" ,XJ#3!aB!!![@!!!$3!!d!)!"!+aiDV5XH'Xq!*!'ZEd!N!Brh!#3#S'R$3d-4Qa [Ge4[Df9ZFbjS!*!6XHX!N"!,CJ!!$UJ!!!YQXH#ai&4&@&408%0$!!#XGdf(V(G b!J!!!CS!!!2@!*!$h3!!!B@r3A(V!*!'D5i4!!JFe"b#'+MalI1f5HH$3h`JCCQ qY)%H*l+*#"PX(bVV5-DcGIXG(6,qN!"XK4bF560pF69V1L#hjY'K)T+D*R&mSdC eF8$`F#36YfFTA%5j)*+'Cb8eC6Q12YSBKp)S$JjPNJc"+HNN-a0(584NiNaYDC1 4&%I[Pe5`6&bjDe*Q&6`i)Y0dJIMVj`1G'96`1Qd$R-R2*J1)J9K)K*cS!8rj@Ic SN!!YHfCI$L%1CZJlBLP%(j4e8eb1j0c&6R)8#Qd!q32"VSiQqAZdDZ9`Am`8T@E A2'kdS0BQ!3!!83UTR$iX53rCE162C$")e@JDbN!DpN9m`"a'EPm`$%2#*''5`CI K$rR#!$-qJ'(!&`S$,ZccJ[6XR)JAK&(JJ5'-B"#`EK6fS@4K8KI)S9`DK"R)"Ed JM0d)!cF4A8Y*54EqhpbU3PL,4Hl-,$H!)Bp2+25&Z#``3*J8F2(5Cae#J4#-KN! cN!!L5dT5+%!)aZUBZ--JbidpM-mV!hi-XVJ`"ZNqN!"0'Z-*IM-c"*'2S)QG-(j 5rk*-j2Nj"(33Br!J!Z'!RfApS8`3j2I#K$bD`b`Im#&%iV%2FbJ%)ZiJ4p+Ck$k I2E2k`pEF6[D$BCpXFcVdQM1fa8mCIh#,`)-3pJHh#CKFqXVmN6Z-FeH8lYr+`$i bEjU&KA`J4,iC@EqZPrpQC#YDG(99l&@40kdpkI%q$#rY"8Z+)BI*cLkKPpeeI+c 2M4IIXqTR`!mipj)Y(%1m)R%I%3%AZ4KhD((Sb"F1,dr--5GSK8*'Q`9RIH#ANZH F12P-d9H4*3eU)K6Z"`#3!`d0#'eKD@iZBh"`ER-ZD!#3%ajB!*!3#pB!!"MZ!!! ,CJ#3"&4&@&40680$!!#XH'XqV(Kkf`!!!CS!!"cR!*!$T3!!#6'ZFN(e!*!'Aa) 4!!JFe"b#'"#8m5(*l81aMMMah"NN`R`Td@M%ikK04-KJqe$CfAB@Qr+-[k0$aKq DVC!!JpmaPQlLD4f-pPI62dZ12H,Ga"2L3i0+ICpdi5DHP,4K3Xhi-N3&VjmcNX+ rc1#GC@YJ5mqQ-I'cq0%K`ji%+(9p0Nkr3Gm45b(kS+bEiR)N9bjDee%SY!(N$`5 l1TVNlp'UPF0p-92Ql-K209T3Dj-!$%laj2%%'3#FlL18VjPADdH14BkGh#0(XkZ MC''IK&Q4fdGc5`!SrP`IJ&2mZa+!MmT@XMf#IX3#G9hIGmNTB4&'MZH4Bf3KcmP Y-YlNpT("2V+563P9B'F!prV$rrbPbE'C,DbH6,hBIr$JrN#FHR@Pa)Qc8KA19'Q 5*LI#c#[KTpU*c14U6iJrQeT)Um6B+L@m%EA$cqCHk%V)DL'F'IXj80*N!ELjV(a %,Z9#9-B,TiSL`$T6fd`&G1Q&,)U")0"-9L*0'!HIVCKCNpHC"kLT*e2314Nc$T% M(A59&68iY&UN545$U@@Q+&6QYDP%lrMTm,8TR9!qf`Piq2Ier`RT4''U#Ak6m"- &0B"EcJTGUXT,5e4QLldd54+f#VkNb6G11H$-T(A+NK$m4CK+L8,MKaRMfQ9@cmJ $Ij49AK!Jb`q0+U9bPBYaBHCJ9hPV#[VY[)AB$SK[TK!2F#"AeXk,#pMNSJ!bU(j APc1L6#Sc@5J19T'ZF$19kE&@q9lkhkcShdYreaKXLl9hVeM`[HR@lH9Ad2)i5,N qra+LkQUb0hfm[(RqA$Y2*fPklal%KK-RKEQ3!1`#,hAP@0('AP0%"(pcSUT,C6@ X)G5lQ9A1`GZ15&$1c%eGj%JD@m)k#c'9#$Cf1Mb1B!%Y,b[%cT@dQZa%cU'B)Ic SRUb3!-lYT5m@3@Q4p&['iH)`6491a0r5K"hlVDkmQJ$TNEKmBbj9p5fb`6Vqj-5 Zf"md3*@D4+cfT"'L2A$+YpmZP*UPb3mJ$(R'aL*DFj%V+'3P4CT,Vic1%DkkkY' ARF-dQdSVqXL`8eEcMAVRHq&QV![e8TB+))ck9"A++dJU5r*LMadTYZ%k[R(!D6h 3Ie,V)MmfCBNF#cF0i4Z-PieARVfE2DXJYfU!1'+IAFPL"4'e!@PmM'BHL*E6pSh e"L'SqieV5+32[)jKrbFbZrb*(d2QdXX'rJr+[j!!Q6A255mh0CEkKU+[!p%b)#m Y2lH!)*&Z!'KPe-ZH'jPcNfUL#'C$b+QXpJJUUK&29FNG3AS%)68`Y)ab%90b!d$ DFplI*%UD)1BkMk-@G4'!`,[,"GJKZE&Y!h3A$S5@*Nq-+C5XNTcUdb-aPS961#5 [*IeSKNI8c*DT9ZQ#`-Qr59CEFL,i!@E8A,8TFAE`aIPKNP$'Qa)e5D,EaBBf4c& &NmT0@`P3!TPhS%fdcJlZIh%q%(hB6*D`RYeII6aSk(S+I(cN)%hD(-A&Lm@b'bA 8qD,k(f0V)(T%D@H9Fl$*I)S-&lh2b#C`*U`TK%LZe9p(fI+5HNM-PHCh##m451J aL(9i1q5@bSM5S206ah4!*Cr!S+'r-i@!R9aB*5m2m4'L[1m9bd,"&XcJG'TdA1j N#A+1DI!IHiJ5S2A)(NG)Ve0X),DA-Kd5T4qVGkF1rl8I51A)X@YVe@@&YB-9Vm- heRUZ",AdVY[VPP!5c!kKeS%iI(`ReUT3`4iJ53X$k6r@&ShV)2M!"5ZeD(YIBDD BRRK9([NHV,[GT3q)r)aeX-)kD,$!h-de8+,q&"m8l8Q5Ul'X#rq3!*4"afaFF6* "LiCqZ)LQ#1C%2(D'ajG-`KPYG@8@q)eNE5Xf$4A8fLq8CHaJ@$KrrlVVYi!9@ZS edX%edT*-Pr'G2mj'jf)S2Mrkr"`'[@fFR6H3!1+hrA+GZ"q&TPlq8%#G8PjLPX% fSfBdD&Aj,`)cM,36F+im)iAHS,$Qr&dSUKZIK$TGZ#IJeb-fYpVpJ"rirmpS"[# QJ(U,CK*@UQDH#QNpYUEN1ip@"q,1i9*AD,Z[PDpY@,BB#B%m-4lV@c`F8Cb(SlD U-!NN$M*f8d!IhJL`$h#(TR69k21NTU+aMh"D+h$1mLNJd&p)4XD-#4-Q0+3%4S` VaNHI%c@[J'K$G0(@C5b@rZYa%+F22Z%EFS#&5c49j)'`b[m*'pUM4NLklj!!`ad TLVZ@!kkD-`6X2NjM)ie(CrTFE'mhM%*$$Feb#B$L0AShSQ8K&T!!iE#6!#eP,8* ((ATcek1@Kj!!#&'#UFic'd*HbG5SY#Yd'i#lZr`0Rk)LM!@p2Z[8i4*)H3*IKDC "JkfbTDkNKd8[&#S5*p'BiKl1M1a*bAp,pl0b0fSpKZZrrekX6-k'BYdi*'PPCfd !$Spc6S,)LN3,Z&DAHMh#QB-'f&eba%N&PpPX356DC%00lR5Jd['"j6F[KrmJ#N1 !4a3ZC"5qE`kS),`cccA%S!l1mhSZ,V!!84YI6I(GV%p!S@qk63*piPpc*6H*D)l E[RL$qQ0Pj%fT[a1(cmd"TYTJB)S0!0X`Zi@21!T$h4NGKJ8(`450"0SepSB)&&D mCLm+3(c6$([VCBmV9l*F"RQRDbFTbT@*[X*5a0P-HficrN41cBjd)fCF[@kdAfp *T-e[Da%NZ4erU,!X*ihi,Z%Kl`#XciSk2C4C$bp,j1j4`d0U@XIH[%+fAdXA"SP 6M[`h"LE[pF,(9plZ["Fj@$9!YK2'NR"MF0kDfV%#`iCYC,TGNPVhrcSAA90'pIT e-Z&ND2SFmb%0`QKbh@"!C(0!KH%KrHlKdBGR-GK+M[)m2+5L"@pj+UD+AR1KdeV %%LDB@(+DFCMQ"[BEhPPKmd1mE!VB8hjl,h,clQ$f8XdT*I'V1H*BSl[KBfLmc+V HePr2a&YrhMmE$4qFliC[[pr#0,0+1XUAAp#(2m&hFIH*`GR4m#rRfqm*0"%8FMR Q"2(B+0"c2iE%bYUm@pmQ4(2(mB$MNr#'+VlE)NkCUHRe4(a%XFEM[Sbk3h43GV! (j%V5R$@Rpe[mc'*$3BMF28cD$*!!(kHSDZcKA@aD4ZcYhRSC5rHR&1"9&YJl5ea DJ[Nj`+B#qiI5dVifl!U5kpE@G9rC+2"dk01cXQB0$G9T,4&k"K@5(J*@d%bjIiL IAp*pE,RBBBqaEANm'a+BmpSH'iB#,0r8fq))G9H-099SS1`3-"iqN!"5Q+8#,1T HKrSD$kfZ&-%k+Y5M%4C6EY+E"FE`q,#*YYj0!3EmrmGrMIXSSI'dpJ*0C0'qT8A cM3r3H%BRd+B(a-FK6Y1cf%al[2A&-Md3X4pm4dp8r@,'dheiC48Ql"K`@j5P4m4 aIr6@iJP[l`KEj[fGYjEMm3JIRP@j(Vqe@m&Nr`-!N!-0$496G'9fCA0'E'ph3fp ZG(*[E#jMF(!!N!SNZ`#3%!kS!!!Tl!!!#fDap,(J9%9B9%e33d-!!+ah5GkXH(N 6!!!"QJ!!0k)!N!1a!!!2hDM6[&d!N!Da[a%!#"c8())B!&$chMmiRZqpmGEXple L38N(dF`fkAa`DmkNi1QqP'M8im3d%5'$l@GaVDaM1IQ1$KPr@,C#$Rlee9HVkBi 4F"6X1kk2qaP*k#K(pHp@Qrd-rG80XIZaQ@BQUH!0#0l'@I-(N`(%3#bdJXdpr@, UcZ*(K``Y!C!!Bf`fmMIU1f)T4"q8G90FMZ6F4IGf&1VF&r%(JPdG6I,hD0A+iEk B+@B&XqCaS`@e0JN06[(N9i)-!1CbK*(eDZf+4[D6il6c11&(1H8A*CYbRh"D56E C!`Qq"iJUTrKdh3!p@h1I&d%r@S(k,Q[5FCS9bb+EX-hfXEi4ZIhN11(Npj'9E%U SkMRUpZE@IrjDdB%C6fek1Lc9cZZ[IlqV6NVp@+ZM`XBk+dcHLPV4N6+6A*A$Y&" p-p$E5[h%9#Uf@L9@De8D94AikGqV0&Ga2P@&5FS*TV5L+FC0iVadNdIa91@Q9)A 1-KPEQ-VfY8b25a9R@9I4d(kFUeE%Fr$CUV%eJkTIBULT6SGBjbMK1E3FiC!!j[f X`Jie&Uh)JF'Vp8f@kAkCQPbe$plHHYq-#UA,INIQiGq$(kQi8*R*6r'EJ$r93!0 c4q-X(HQmM#fY-TjZYk)SBUVJ5b[kS0!&jSaM@fK,32!ACA+YXK3r6),A4GqQBq, !$q0mN!$43)BI'19D$r4!*CQCB,ZmY#DMhd9T!AD"LBq'!!rMX0bS+NV9!dek'5C MeBqVdCK@*T4j@5#1VGbkUKMVITUNHX"!d5,c05I'RJ'*3LAJKTN8Zbh!RULf2Kr E6R6lYP"$2ikc+Lk"'@e'El(Z!"pd[k*A3[Y%!6$G999HTKN21-`(H'@X1X`+S%@ r)PU+4[P&X&i5ik((l5KTGe44BPXLA*IHb%0HXUI,LAB2D*eQ6Bm'pU6[['LTl5M 0Dq3@Zl@L$iGTTKhBQ$EKcc0N"0!Rfr0XV1-!N!"9jKM`%d)K-fD-A3c2(9[p1$9 9iECYd(KIMh9F-QjiC8Z5&-Y[H!2S`!'"8,01H%BlI8"ICY"kl#"0r,5Qmc88XRN c[XSK8!hEkhAH08A98eRFdjR#1JdJT+UN+QPHNED45'Y)IGNITT!!dj1UC`f'3*m Da*YA[")KG!6bpQ['-K'FISCKa,N8r1#KRKFQckD"(&!6UiXa9*3G#Z2'V-616,( $'MA-U8BBL8qd-SZSb#%K4dm%pA))9&Q'"h!mV+G[!JK2%K!'fa3L*p"RmeKhGL( Ze8MG8rMP2Zf&EmfR'mfhrGNhqI6K8-0Zd31b4#6rq46+$(MB&q'KYQ"0jLd)64% 2NZEX$HLh2Y9fZpAkVfAF[0hk2qqc0YJ#&Hq!+JGL+,D('q(j[C25!U2YiAkVY4E !UVj9TGP!%GlPa&NX5c4m'%1Ub1HTX5'BfB%YHH%F$0%pUA,fJ,2*m%k$Z)b$Q8a J@U!`Eq-4fFa569+i04"[M*&k`-lVHN8$MUd$S0KldiC8Zl[ccqekjm2cm82R1BI kIM8kp""daF3k"$ZYk0HYL2$"M"kQlDhQh3@J3`dEDfNHhV[*Gf%(QAEBe!QF,0c ZB#5rE)"TRVC)BXF9ZHGH&ZGRS13CM*1c"D8CNkBlJHqIGC%!U!N%$QTLe6"'!J& qpBHkI`D59XA`!96XK#Decal4)KmGRHE'`TUpeP9jLV6!'6AqaAD532Kd6B$X('3 DqJRR%I!L!jZbbD)F3ir'j95eiCR5-je01a#@4bD'6HGjMF9*kBdaD`Rdi6F,J4$ #NiDe)BMU()6HZBZI-"r-SZehGAPJi"r"9AAVeMRQdF#)`6h%$Y-SfJ4k4c"Ui&% %Z0Xbq"hN*80kpQEC2ZqUQfj)KcEJ&AL@Hl@eM`r(j0(iHI4f#N0@k)HPr@`#l6Q Ed-D2MPq2(hq+(rKr$@Y0Xq*cF,&24#Sh"l8Cqb@dPp!a*S"MAB$)L,FK`CM(-f* beJ-)aQ16$Y450ClU0id5"B''M`a%UlEXL(UJK5,3F3q@f5*JL[YNq22TK%aU5q% 21-SZffm1'Z[3h[M&6pA2bTp[(LAbZlepkfERrcHkbUYk!PDpA)#L(rR56+G(Amf RK1KbJAc`03)FlM3SALc$!lk"SpPRJFKIpZ#`jcNS21$9-K)+AD`JcelY`-%*IlS &2#jfiHH[9JP5r@bI-1-EiQ(Q&Hh`E*f!K3cUrTBaE#G$B&4VI(6IP*3qLNHHFX$ H`f#%%GD-a%a+Q0[h!4k(G2i4JR*1`)fe#,NPHL0KaKVN8NFa4IFT3TYl'j4Sdp1 %`T+0HhXEk`d-aN9d%2a&%jXp*DKRqDdEHmpS$q)FrV++f82qHDAp,eCked,NY(d dM2-(pPr,hIYLZ@--r@kc,aEl0e![F2S(Vrj)Uh8#kZT6[$Um4E6NfJr35CF)FfB Fq``'MKEa85Z#pXBM65U)XJ@L5YS$H9r)"5q&QUEcB)5V[3Xejl&)&S*MEQ*'*2l pB3e48p,`r40*`FKL@jh`ULL`)'G+*"a$lPbD,L2C"i01NHkk3#QbZU`XYYFTeV, "lThPk1i%ImfT'EPf!XeDI1"F$JZi*Jd9APE$ZB&"MlPl)XLc65%N13QPUCb'BKk !6SaBPV6NN!$m%)NTI#H#mbNSJ&d!TK4VjPN()p'Paf-NIJ3YeBp@Q4ZaJ!X-(%, %S@(!i`%Y-kDH8Lr()Ee2r"IXDmFCTaaa0SQR"C`*dRC*)UPMX&b3!1SU#*F'UNe TRp)8*&#"L''&,L$Cp!QR3b4C"Cece"eaQ8Ec6SDElXSm0*c*G!+(*ad99`MLB"U 2V$3h[!JLh9@2BjY56iK)eBUU!ZB!&25&S@B5CF*EDQFp3-l%ZI25"V,[Dd1bV0S Xp6P+26b&%XCM!8$Xi2%aU61(G"JCMiUlh03JBH&F2jH#!aiLj+@!RZSm51e!M#D jh14[MmaBTRXfJK`SErPb&)eS433*NXlD"HcFp416e)V@1AXJ0+AJhcRi+)*-5iG %bk)Nfa![lcIU$YSEVBMK"Uj-D3lIA5SKc""181!SX(FBKNa$IEcDBKHD`K+!Yb5 Icf'#Kd'BMdSC@!+P'D3NHiM&@8pPbARHZB2e!`[U!0q[Q@++Pk*9GJp*ZNL'Bf[ M+BSmq[bMB`6K@-jc%Y##GM9c3!ErFQZr"JS,iHR0QmhEY*!!L4"L"SG6CU(6hY+ `G#KUCNC5l(&Y-U$#916`*X2C*p81b(68'dk#GaIZLEPCR+AMZ[8@I!@l[VV4"Y2 -[cKppN1Tp-H$TEe9k0M#%h,$%0bMXYm$kM'&fJ"F)Fm3ka$$hc$i-fUFm!$b+1# -J)Bqd@8Q"Yl88#m`4FdM+LBT'1aS&I,mIJ`"mY-5&*U%@e!k5CBQD-A3kSjK9)l U688e'K[Xam*@X6qZak-qiBR0hXqjA&3jb22*'P[%Sbff@UaS)!A0Jdqd&-T$eI" hA40*ZM1EiFSL5jT6#kE*-aSG"2HCb9d5GcHakCIJViG!ii`rcAK#5E3`C8(9&6H 40[18fKRiq@602hS[,GlM%'p!qmLq6P'%606QT!H3!(fi9HUJ5P24bDL6)bI@MM[ 5Yh8Y@$b9PLcpr9D)pp50cppq53*+dpF-X)!@@Y(JS4N,ilmN*)ISJX86RH$hkaU N`LAm,iR#JllQ#NpEdB8PAICXN!#94ecjFI$2M4PL%2m-+3%E)"mLA*4BVcM*cCh 2#5"pJYTA51'9bY%8aY4ZfL$eH%CIfH'+[p))qaXPZ56aNSqbpTm)b8[pNBeNiQi m%aUZm6,pa%&54LAGh'mj['VrrT2%A13)P,Q3!"B(Y&5riI)'KUfIC(L))MQE%AX bUmc98c'5Fbl1fA`r%!&+$--U98h*G`Ii2eXRG@#'P6JMBU'!-3C$hNQjkq&HciM QB(Gp0Xc`-ZR![*BLCX*IPDKadl89"KN"pa0+#aBc3Xr*[#+2SfdM1M9qR(laFPc RhP2hpB3+EMriRXFHRY$fae2#RfGd3p48mq-E'S3Y2R0+4!rK!U*jT(9eTN*%)&6 Vj(@"kh09#VbZlB@l20#d-Pf*Xqi28&c&-N0Li[6M1rNJpEJaP`r([RU$pR+jcBl 3N!"UTlCGT,r5*PR0k(MbABS"0QT)jmB%'[YTp`(6&CZ&6PHf*q4XdYUk&[D2U5* !@S38KqU!MN[1aR@9`@Fl5F&4E[Hk5`)FB`DjEH+'@EMeb5F840MqD$`$jdUD9NT p[FqHk*!!T,HX1T+diHh&h)Y)K26+b49G++MekNUGjU%0Ti#cH#rF@T!!cPIF,b@ SPe-$cSeGL@`3RL[$m@dFJDeH1,RI'H1C3[`KUF$'6RiDPr,#b-jp$lGUT0"f+VF H![mD+dXMA8F'93e5JGPK#HJ6UM(0!S%N8MlQ9,cNFVHlhZ)+#8dY1C9DFSUV$b& XAh558pp*pTf)dGJhNUrcqC6U!CJLbME3P"@M%#"M!8fBqViHiI!%M5d`GqHeep# 3!#GeRdAQq`XZ8N62U3*Id($j-,H$U0Bl!2HU*-'H5b,lk0JRb[cm,V8Ze`F8ZmK F-3*Z`rN0N!#kcd(e%,*Yk%BFN!#R3'K%X3!Gh`QcI63Uh8Kk5cPbQUd(U,aFZ-0 Pr@AT%8-2jRP0rd@IIENf#bCrH99ZGdl5GrDpYC)bLRpIQdARU6cAQe8K2qi9q,4 'S05(ML(iMNXAe%hbh5L511'k8LHi!B95,CfH`J@,Y0hTSLf,1aeF3SqS6eHqXED JeJTXMY(SBF9Y5fQ*b#F+l-T0FQ"$'&i(,EL(XSTC-134A"f9$dRlfElKeJ*pG`F 3m*%'25c0!5MDI[+ihRjVr`JAEfaC'`#S[p$G69SV`%i81E#P*kG8e0bYUQ8&JD- ElKkJBSNk&$AR&L9*ZV%L1DD2D-)1l[J3p,d*5F2C+$q1$R`"Ne!Ti5Xj11Fba8N UkEkeSTlZab3C,R",mb,&A!J0+L@),(JCC+(qXSI2ipBAA'"Bf(S4$QNSH4'T2Ef c$AAF3A,Xfq5,G+*EYmaRhYqrD4)38DIjdBpF6m6%8$"92lc1T1VR(%H4Kr$6[8A ahqX-bCR%qG0jGV@)VTVj)DAdRjCEK))BCM6G[1@8@Ic6I&f-Z8Kl,PX[q#HpY`Z p[5breE5JmK[j*BSj1)NJNieqS(Iqi9E+iYk)[12`SXmNVXEV!j3mA+UK!'a@p*0 fhpS#hI1*6,J&-*FKJl-"cPpHhjkj**NIb8D9a%H'5Kl5$Xqp1rB2PNGU'Z*p0S' 'Vfl8c$GE)h!3aTeQ#ZISA!QpL80Fmk-F8[)"He0)"jZG%%aC3ZN*63mRUQJR+S5 e)VE@lPAB$JdmVUMhf9Vl-ekq4S`UqcS!0I!fC#N)blj,EAE#'e'*ZRdV(2Ja!qU $A#RDZU!+ApQDcqV%LmB[A5+!ASH2GqS0FVc,kE2FXA)PA06@8qS[5YB)G[Pq,#p -&@ia1E0E#DlK1d0b8I9G9QhGD60*XR&-VT!!Q-29SA#!M!DJmdrR6AjIjQ@!j4, +de&hCU2Z#"Mj$TQrcA!ZV#1e"NHAjNiBcF[[2*Z'l4E6S2+VNLNTp8!RFC@9Zfb *JY5a1b*0VP2BH9*0YbiiU&j)3C[```8p4[2Tl1B-a5i&P[ah[3S1m$hIa*r)#'[ mEKeF!RbqMVpNmY8kG$E`&G$Zf-KAQp%4`TI!rhdY1Rqi@JZHDCe(VZkcc`CUC1$ X!U'lVIm"!*!$$3d68h4PGQ9c4Qa[Gd0[ER4bEf`ZD("`!*!+Kk)!N"!BlJ!!-$B !!!YQXJLai&4&@&408%0$!!#XGdS$V(H1H3!!!CS!!!Vr!!!"&3!!"-8mU*`,!*! '4HJ4!!JFe"b#'0LR4AA)f5*fh&lM$Zm,k,+%jp9Tj6VKHr'pMR+2Sd`05MU)CVC *ji0EFbB&6rHPHCcJ*L*NX(fSl$cPe$XkC2aKf3SjZ1"YSalGTPQ#1Q[[i9$3iAI @pUQVEQ2U2%Hl[d21e%%GF[8A0I-P6hKlH,k@i1RCQBHll9Rk2'r$+"3X8lZT'RP Cbc+Sd-2HKTLTkh!Dj-D"c8IAD+HQ*cf[AL[A)CVc+*qcfafYTm@0aII@ZVFG8bH F8+jQ[R((c-jM-kMJ$3MHaPRc"j-"a%!XG)6'RNdp9mrL4iGXf3XJYSk$jjSeN6J FbJ6VTVJFbEQ,*6X+K6D!r)&J9dH6r$eDYA+i,fD+8V0V(MGD8'Z6#di"b1-*-S! *1c*BNq#C4cJjPZ6B5Ci6QRQ%56KY3$Lpb(2##5HF!+bHkbPC!9D!L`"me#5-X!M kd3T8ecGJFN)*kmKa-Z3%2Ic)mj8`m3+p"ma1TXrqr4ALh,8EVaG0T1pH[[bqT*Z SlK4G"5q9#Fi@SK"Aj0D@BU-$9Dj@ad3rZikN9c6h5P&de!Am1E`RE8RD$38hMfZ N&'+$Z,@dX8pHb3eC&bNSBh*XF*f[9%kAND3a*A&S*5d9)ZAJXkI@ZlUV)N*GYfK 3jfUHFVJFlk"YC6Td',FS4$p'UPBjBe39YE-d1Arcl#Hh#U4LGC6cm-q((dN'-Xi Zm$F2[e"B!lQVeZL9XP&kVY*ZMJXK4%)&A`VaeTNk)-MS%-R0bDY&Ck3RGGpk&3) APVE'm,&U9%"GYH+jX+kfE4FaFI6D,M$S@4FGBR3&"ME8)08J%"pTEY`Dh@hdc[$ IL!3+S5b%d8Y!0hq'@VDNGD10iPQa$2$3%@[%cYY!beZh92Dh6hCT!A6*-r4B4hj )U`lVc45edJG9&f+fi3K!#'Tmf[R@NEU6TT14#dq1+%4mBM#`%3Cfb2-m6UfC-QP f!BAJ-UQE*kX8J!%#BahEVC6RfAI3"!#"bVAME"e+([2Yf3hRmLMC#8af53(SUq3 #pK)hG4B!13X&a!C1BC@-CHqNeh,'C$%RIFQ%3[C1+`0m!2PaNAPRXc05Mk&$q'Z aK)%'d@Z0J9JI#CmD@))`l$FZ2i-krV2hp+4ifRUj@%N-ADRLkH#r*dP0i@1#lEK jXRYj#BdN$`4q9a3R*fc[QZE18qKQhR94@a@+Z'P9VHB!Q$9$Rk%CD&%)(F-e!Yj hUe-S%1Q-L-%,jQ%'Y$&d)T!!Y6lfB3piGN$95*p+[*FVpFZ,jlqL49r#iJA,mb' kT"I2L@-$r(PIL#qlYaH`iHEdkiMX",5YPRp2Q'c(k`h0Xrl@#UCNN!"KUhr@4YV FGB"p*e!qPr,!8q4FbjNbqeMqcVPXU+#NVaSiRcFVdh!,Kf'6,N+59b&H1fH8Y*J KA0bVLLGIC&ki!TUSi9@bi!q(a*ZKi5&al,d2'i9p`lE1HEc)AZ4p9CiB"$*I!ha -hff#!,`a`+-`rh$Jh[Ib6hpbPbXF@qPNB&fb6V10mGQL3,T)KZ[(i5`C+%pAff3 kYVUiEl2rMLE-*%fMZSpPMS%Xr"XCj4(29aRZpfl$CMc2pe8K2KGY0c1kHX@((Rk (jj2(NV`,,('4jf@N8e(iSqqCDrcqY3Hrbk)4)[9iR#UC*#Z)efUp[J-qVh!@Aer MfZ4N8&XY"jmP0,03S2(N"Me2GmiqF5[k62Y`Z1iZJ)3HbQXrkKhqIVI*Hk-%hZC [[H-Z8ENIpR$f$C'%Q0fPP)YcU'C&$hPPRZU4--(U!!@i-IV#VB-4',hd(a#i$rS ,C(#-hm+&V6lec'm2MKaDi`hIYRG1eaceZY1QhN'Dfdri1H0kL-%irC`2+3mR#SR TTEEe&VXGjrY5Ch9pMF934UiQLGE%IrS1-T)3XQMfU4qld(b!'j-(*MQ%lj&YB#q 3!$,G89NTI)b8X-Mfejm$@qZRDk#NmCfdq3V"QfqjZj2MX)jVmc!$'q2C)36VFX[ 3!%@MYQmim-XTIIX9aIm!$3d38h4PGQ9c8'&bFf9b,Q0`F'`ZD("`!*!+!6F!N"! Tl!!!033!!!YQXKbai&4&@&408%0$!!#XFkr-V(H5qJ!!!CS!!!Q*!*!$c3!!!j' d4d*(!*!'rKN4!!JFe"b#'1M6Te03KVZ5F)5hbT+5-ahJ3dl)HkIfk60)&Ja+1SK Q"SM)T-+A%Se5Ma2,j2jJqe"C4dTU%qrSN!$aKf8Vj'!S0DHCfEb1-bPiZQkGTc2 H1h9VE4[GJXjbeG2q*#YGGXk5k4&'B9I(1f0ZBPdD64RBLJpj*h0mfN`cJ`VHJ1" YR1)rQ!`J"Q+K-fcKkHijGKBr1RM[kI-Lm)jB#Y'#G90FMZ6F4HXk#S8fJ2b"B&G (Nr`p@V9bZ#pQLP+cDaih@P"VN`#3!`Y1!FJ$%'3!Nj@6if40YQC*RT0R*rI)-8+ 2$eE#kI'MK"kA2#F66J!BrS$A8m)!9S"E#F"(IF)*Lk!IV8"ea4`Ni8I3``NDq*' 9m*@XUJ-M*j2MIhpDRBIe,YTPPqRdeDY[TR5EqBjTRU*KPi,A5UXjKBfRh0P%6@K j4[4Ek-P%TN9NTKbS6rMFhj2eC2b18PMN$95dfN&ZBh`HP&GQ4cjN5ZaFP8fKM`e AGC2*1$FP%@f-*kf+$TiMV@0SqbC$026,$REQLk)MjL3(ka[A`m2R,,3D`LM@QZ! F0pN'6q2cLq1EX%V%Z6QUH[Mlj5FbL9c`5ha,m%Y''Y"GVCeGXFmQLTAeEUD98U8 UH0(Uaq$D"#&R8kD`S-M,hTP)[&e(6NN-'pmLq0adR'#A9a)AdV9qh@G%R+1&kFL jMejH*,1eL@E&Q51X34fU0,m3Hr,bB+hDDNX5la2mABF0afZ(8L5k[*4-'QG5QU* BY6R&AJQV(#,5hV9DI@"TFNXEQcYDm)DDc[JPTjRq$c16%rh9[TZM8TYdE@,L11Y 'IehH,,rEVZ93ki-!I2XjS0`S&1V@")qHJ4q(!I+mfY8%AlrH[ic[JQf2Y2T$Udm (!U+lB)If#`fI'jm!hJ##i%K+I'JJcMmrjeQc['(TSe)6f-9$200U%5+0,C!!Zk8 hG(U'cfrI2-Bcqi(cHHKp(KqGdBXA@aK4GN(M4iR[!GjZRRRe,Sqh8rTkF(FN@UU YbGml2K43U'YK(3D"&#IcYN`'-!qF&HS*B`H%iki$dTmTV&AZC*h)m%'k,IE(VF8 bf&'11e!p9")6'hcm23'd%SF9m@8$2$8DC0pdM%'3!+N0K`+3!&Yfc(fabrFB5)m dNI5R`cDBP)66JB'f`mNrM4HaiH$ilCA8D&`cHMNPEc%(Kj!!LTLU*GVciIMYr!) j!4,l`jGRkZ3%'r1TBF0-1K`!NhHY6$lr1-4!J1GT9["F9qr9qpYIbE4PafQe#U" )@R0M&lEjJRBE%h,I,liLY'62d6M#@-Y6V%8X*XbPfF6-*L1X03b%5Kl`UUkGXZ! 3cXL-"(L!bJG'Mf%m"F#XD$Ml%5D-LHfGL4m((c*iKk*--FX*kl6%-*JYHlUXjF* *bH-`!+PN16f3!!V9NPlA4M`4Ub"YI[(%UMfU3+GkX8GGP5cdJ#3)m3!CiFJMR1B HcV23+3&2TqKIM'Bhpbe[Ilq8eYhcUXk4,lrr!3d0$P0dCACPFe"KFR0PFLjSF(" X,QK`F!#3#Up+!*!3-$B!!$HQ!!!,CV)`XH"849K869"$3`!!V(1[kUahKbJ!!!' D!!!#a3#3!ld!!!&e4$LQM`#3"R*S%3!)(03FJKJBh*lej`"&q[4*NAhk01M8)m, #I(#E3)0135NSbFJIP(33c3`3N8Q&,deiR&!QpJIEKmSk8NT0[k0$aKq@VC!!JfH ff`NjVfrYY1ZRf3DckN4pb((f[+#aL,j!I+e1VAP'"Q&K+Z$L%bFmppN#idm&Ed$ `0Tc*,c*iL!8*4G#1RYbcq0("ZfI1Lm!lBLP%#pC0F6Q5+aHjbe%SY!(N$`5l1TV Nlp'UPF0p-918QPhcZ0'#@TX%!&%+UC`q,%N2f@cNcf3`509S'XT!'[C&I-!F4Qj I-!a$3Q'5'F"S#'$'(`BHk28P!p!&FX#0I#!$qA`!3m#&b@Z@"hm)Z%2C)!`cF*4 3@&)f`8hF)4`M$pcC)!3a#2Z#`9`XKacbq(,T&JEZB&!'H+MY$J&K8Ji(cc&J%I4 b(NbJ%CI*%*eQ4Jk(j+J(2q3*FX3Kli)PaFS3DMB-"RdHl)FK)0BEj%kB&3Bql*( Nm[$[T"e`Kd%3KM,*1a9rlL0Y)(I!"[eC[K"f)ejPQ*dX6%T+bPN+AYMr'ea9#'Z ab*fCj3B`j2%*KEAL2EjKXIM$1*PT,K4kJZj`'&Lc(@i8pL&KdJ!Kbk8(r4kY-#N (SL6jqV()&`k6GRQ6*)8#-$$S$C0UA4!NHB!C1EIBPmN&h3JXS@'$f+B5Ge-Md1q 90-R*r)1*%!9S'%T56N$e-%4L&I[kB4R)+3#NV"ZjXm)mL!b8**hADdaBAJ,&`TS '(M9Y)Y`2!!!0$3p6G'9fCA05Cd9iF#jMF*!$E#jSF(!!N!SZaJ#3%$8%!!"(3!! !#fDb4,(J9%9B9%e33d-!!+ac*D#XGicL!!!"QJ!!0,S!N!2T!!!13Dq#%Ti!N!B Y-K%!#"c8())BH'cN5!AqNr)fH0$K(cqTeGZ[R9X,,MfTrF!,(2Ge!!@#NJkLQ9e 6NiC%I5R4U-Ha04%KJqe$C4dTTDEId5(M$mY@b-%&,R&DlMVafCa(1IbU%emi6lI rj%PYVRl5iFG1DSeU1rcHNlTZdp,KRcKaccVTFpICje6`32idKr*2kcVB+D0Y)0L TI6$NDad)I$V!HX0qefPhPP&8m!B%Em1Cr'`b9K"LS68-mi4LFXhL4`I[(TNABG4 h1*3*eNea1C)V&khV+"6D!2)(JPdG6I,hD0A+iEkB+8V0VRRFD%'Y63)!$8laj&H #$!$DPM!RATHEE)mFTq9&+0IE4bJr,aTK(pN[hC3I`AHkTT[LdhAM"p4NQb9"2eU "VU[[bbkkMfa@(MP1f#E(b@pb@m)*fq3fq8eq2jlXPDakQK1!lBhHIhkGi*kEc,, iG&5BRIIIIlGV(KIfh*V$2!YYNVZd%h5#3q1QU5P'F@i',V*Ea[c@P5E-V"PQeTV #Q6,(ChAIa+N*djR*hE#BBNSRQ'(F0%`,2hNFcNcU#T2E*0'aZ5ZcJGATB@(#*1N D$Kf%UHN%-JI(QCPN,LS("BDkmR3%1)G$Q80`h%1F$T)5'1TGG!+r$)%fF%PL"dA X8V0fElrhb)ecBi["ZXl$hp%R*Xa0iY*6I(2aTaEE`0ca*)R(0Lh#M&!QXke1%!4 #&CadJNIfY%c#c0L,5@EcR!$(B6%BaHNTP[4NC!dQ(&a-GRFIKPPZepE0X%ae%G- i56V"),0KJGfEe%j0pJU0krmHLc2p-,H4`EQ`)8iR*9K8C)6C#8JY%UBB@H`m2p1 YqXRad-5&,XAQ`+P63Bf)ph3*Q5h+$21cdKUAQ@'Bj#6lVc*A6J"N5'3JZL)#[i" eBV1KbmCQ('IK),'jX!(laKMU!`CHEh0X#j!!DK4LCQ'cR$`fSa#bNcT6f)ZL%d4 f'+GFd(3%25#-[-#Z`LbDcbA%,V3$dmHKX*kib`PNbBdl`GL1A6EcQX0PK9&NF!8 #eDK'&qZ(#)3j+Gd*[JJqXUH+(2Y1iT6mILFi!%fDmq16i,%Y+!&KlfQ`Cl)`238 YKS[98(BJF$,P14PKKK!I0b@bb`f+&'+F,&N'EJ5hb$pCPE)1`QI2BeIQCK)@'*a LbQD`mlFT@m%HeDp#M"[2JU--T2L-5Y+haG45,6#MQ,TU,KMjkG%6FrMJiIf$"`H I2MRBAq'[%p`-S&mKk!XNUQYAN!#TSL%1UbQGB&ZfRi,@c4Td5K,M+%``B`m#ll$ "l)SEIS6UbUHZX,Z%MHP!Q#Z1@K2*J$J#PEQ8('+0DjjAqpQqkrHKk)r&D25G1i0 NR)C23@McFCR-Y[I+dc*A$`43H8RKipl#V)JKE!*d"QPcd*!!r5ecN!"2A"l$F9" !pp)SJfarXQ8qGU-8TJQc2l,34BTI'*(bP1*18)(K81kRPZ$)pXY6k!i(f4JXJ&[ TLLK'jYc#Fi!(43)h!a(&9*[#,%91TTYmN!$&Ni*Rq5`[l0J[EZ!`C!*Yke[BN!# S%bJbR5(F%Z@BZ#NN[+328qX!*X%J(%)`ak+PdlJBJAec5"l4`[#"V-RBJ6mLBT` -&[+XfS,!RcA%l*SqV)[D,RJV+pj+r""Zb',%Fd&#ZL3)ad0Mj'+CKhe`#23#Kb* D6cL)cRppm-CfTr1cbMhH%'1A2k*MfaVGD#jqm&LpeZKZTp-1B,h&p+N5TQG3Ub3 'KD$PVba6MMZH2&L!X%QFNLGljZ!K[!N3%$4di#QQdY,C#!aq'1CL5kV4j'B4UYI KR3BXKX(`UlU#AP445MYFq8cXeX3M5H-%q+RHmdZ%FVJ[p"4kcfdITX"f`Ha#DBE aD8RM!K83LhIPR)'khR%V!,R9ITZ05aY1Xf%fL,(V$EVCN!$0Gc8$i&)1ppFl`4p KBlE9Fc6m8H%'-mCd%@T8Ca-aBmdfC6"9$XT'YMi)c`KK2JYNjlc+U)[DB5EC'DG `iL@q+FmHY9"U&-+X@!c5V3A""ZlMS+,3(A,cGJI4#H4l-$*VXZ606Db5Z`3$XFM 9,eChLE42alZ`["K!JER%!i2c5,caI8aB8mjiIYcQ`$l%l)`RLZdGa8D&rKi9c28 2Q)i9%dcbDbc`jEcd"XZ'BRPU-eHjD%j"-V!Q#N#Q"#U$[EY#e6[Q$'clmR0-2-S HB*l!mTQ*kSQLpJVb9r#E#Kj1kdIX4kRp(r3YK5k4'06[0C'3!"VF`rdh4(VQGrN 0P+2X"dVH9#4eSM#&Kja(#Gp3T"i"a!b[rXf1E9f"6ahLTr2FSJXcRND*CJU2lZX %$%C5&CC*XCMlQJPqUUc$p-c1YlZiY4[-"93A'$Q'48`9Pr1qDU+l"@TFrDSY`+I #Ii*A0#IAD9iG`131aPmGQi54$cjlr!3j!TaS)$5kXf3Mh@'A[0$p6j(qH)Xc3E+ "i!,TLN3)65)N[NPL)6[%`9"8J8QHa(q5L5jFE(Z!EGcGeHme-B@k-I'%m,R#l-0 p,0#[@)aAF+RD!hZEA2C5)Fk[%ba85k,@&J'q2R'K4$&eqZ[6&Rr0LaVGac$1mPB "Ilflqp`c4IP"Z5C@UR9NQHB)p"D"46pJ8[#AN!#C`G95NPi')"!Bb4US48c#%1K a-13@B61LZN98#dSlGFTeXJm'`90NjTB21cbGQTQ`qm5X(3490E!G1"$DM9`QSIb L[A#@ZZPb&FKK00-4`TCTViT'DSLb!%K1"59bkHTLeib@5(TR4Ll45+A@(DM[FMK 5GdlAGG!J0T1JmB-c`%,GBSVJX#D0NNQf-fFHF&1+"6Nd#*QC"&!BILNqBCaJ"`) $U!V%R"8M$E,C'1b5l!2H3)GaA85J)r*b-,!fBRY!G!$Q',f+*UTLG+@jSd#QQcA RB4C,HNLf@6X"D#b@M"q"HZ2+&D[G!'rK3McP*)C84i2mJCd*EdpH"0Zd+&JBV'Y $9ar55C!!Ua*4S%`LI+@CS81LVDaU')MYHM[Y!+,mNA1*4GC@LE23C"PkU3b*fP@ ('`PF3YIF[drfESJ%m%J&A8B%BR@%6hH`+FC-de%-8UhY92N5mbX!Vl4#j)!G)N6 96,h$$c'$jQ#PCUlIKflLCJ9`AAbq0lH95C)-L'f4+pAQ1EHRS#Z)3Y#E0q@Q`*% 0Lh&6N!!H%KI'2H9PIaQm#TKkBB,Qf6-ChVZVM0,G9A#3!"d+JaVU#'V53V*!N9" TZmc$$5q$l20!"la*NGZjS6'Z`Sr'0'+M#h*@#!251e$HqYL"0ilIqm@*H&#j+** HZe(U'$YBL$[8+%VcbTA`#p%X$FFa"@V'm#'@i#e!'*!!$LBcA3Bf4dTX9YbYYD' R0c6E8,GlI(Aj"#ZkG9YiS6NU5e$DpQ(3cX3$qEM(5`jk)&aklqjKLZbr1%5I)Gm VeT!!TS4C&Xi1dmKHI2P,kLb84-DYbqTCrfPd'adKf*ajCLlS%+A8HP0(5Ec8C#a Y!elp4`Yl"!r4be"b%6Hbk'YjrbGLjHXDjf'#LdbM-DXU""#EcFlRh4qb'cD-J#$ N("-Qdh"'fS'KZJ2i%B0Q)-pTk!!1"4"l8G&(6!ebrFB&d5Xc`XkaUicZVlA!cG! kI'pSX(je,cb"i-KY%,LPJ-rrc-TD!G+A1TK(9&@I,BNaMkl-VZF3XTNkbS)qqQL 4j)eF&e)L6B@jBCrlHNM-QdL[P8%K@`9NCXkTYe*$VkCb3iY-XlDLESK%Jrpc+4b 9HQ-eK!`#QUBMX061*)8VLkYEX%[HBVm3Xb[6dPlJ9pSDp-eA4+"ZrU6e4pYU2Ve 9YQ[p`J)TAp*PpHfp*V5AV&i5$9K(,3+p8NFKfA'9#8$PQ,'mZ,2kZfa9XT5f$IQ $&fHR%BU$1NZkQ#Ce"XC12[18qLpm0KZ4k*Sb[q4%56AS"e"E*AfP'A'CAL*rBq$ eSM`l,a8EFdm#(EKbq(i*R*!!p'aYqDK!)K``hBqiFBbE*cF!Llc'Q@`*&aQ3!-, jaqGa9,,RXZa`9i9p%-kCI')(mA"'QNJl@X5-feMYV5lVb1JKQpARUm3UYIBk$Fp 3hdC)*NcL`&aUhI1Dp$(DehZpcjp(qbHQDEC,IM%CK9JcJbXrfPj)Fc@5Q'1r(F# 5q+BC,)NrqFQ5q2hkI6E,e3)m+`9V#,20K84Nq2c!r2cGpfkEcFd,DL$"![MaK8C S5N8NF`c3lKL%XRU"C5UIe(+)cfPP5C4G29L"YTkX9XSUiLchU,REUf*Cre#LHre ehLh@9'KpXLTe!MREAJ@1B(16++M'Pj!!)!!-,k[0F!hDL0Sd1qZ#PR`)S3L3!$Z 9McT!E6"G-U4#)d5jShZYZI+#,8+51YM$+aH5RXdAp&bi8*1*a*%a[&3KN@P,0(1 U+AcFmHX5"lVNM9U8'VCZr5b'T#ZAQYP)eh'hrF@`eQVlVbK'keMc2TDS$LdNY+q h)r6M+B`Dr'K6j@&23bV2qR`'V[1aKPZFN!#+HETbQ5r"0RA4'V+BhRAed4iQLL& eUqM[!FqPM9lA'(fj1acMmBj6PR8!88clC8rT&FkPV1SPVkQB8dXUSDp8@LJqrH, Nj,UXiG(**r4GT,#UK8M(Qfm)5'X#,"0$K%NJeZ@ffcfb+pqNK9(d*cmCaIBAlDm *e)+Nr65KH1X#D8e9h%,J)m&TPeHdIJaCSA#cU3GGdXUF(Ca9259J12M0[B1(6cJ Lar03,r2YUY*FehadQbYL)lJ4-4*,FQQ%fd5,%S(jPPFEM-23JMd-KKlmj#pH229 MCRaIS4A'Ge5dHQXlAQVAVf[aV&ql-8H2b$5caZET9*,AUId3mpXFJZTlqMcD)Vc AadI#&bpfb5-N+5U#,0Y+YeFbE[bT22KRR9S"T-frQ!"YmbIr%$G2CC62U9j0cGl A@,A$TJ&IRBfZF&D9K5kI6fPUR08$$IACGdqTI2XJb[A$*Ymp82,Y!b+[ArMiqU@ 1LK*ebE&j6Z,0@aJbEjjYeXPPMZSV651DSjQEX)bYC8X2`Mr*prV4M+"I$SFf1aC LEQibA[82eebYb&Fb&r0mPh4C*DhmC8Z&9CP2UrL"0R-HXjrH2!"(+pm5m,j9l@Y U6AeVE,a`APbR(@d4dBThrqd1fBV+q(@XqUG)YIBD`Ufi+Kai1e)Th)PX9N-C$9' +'-[AkpfU#LamU5VQl$Vr1@laqDh2E9QeUR&5G8&H[BT$,DqrV1#$*Al"&bUj(ZJ )$am`Bf'Aq'A!X[Mp(`!0N!06G'9fCA05Cd9iF#jSF*!$E#jSF(!!N!S6B3#3%$H Q!!",3J!!#fDb@,(J9%9B9%e33d-!!+acC'QXGieQ!!!"QJ!!#)F!N!1P!!!#l4' 3!"FB!*!'FqJ4!!JFe"b#'%K+$)85Nd)K`j0BVhPpA&$5365cDfV5N!#S,mhM4$B 4)B2Y3f8GbALfEVqM3mBIRUf3!)0EYkjEG`iZeRcaA*l%aCSc'ZHTGqC-%ZG*9$4 AjR)$f3`UH2fFN46qf@,Xm4!,r5#r*m@6-BXI(EalfV`)[#1@3V4Jh45A)lPbm6b 13U%0)(mJf0A4*(q29UdFlSZCSY6XQXH0&Y6D*!#3!`Y1!FJ$%'3!Nf0N3!p2eMb @j'MND%EB%HD!r%VBbXM+#$dbB8mBB34J0H$eP$#![!M!4de##BZJ(ke!!0GeG4j j4Sk4)52(*!0'N!$#MUb%i3PH$kY"C&3Fr2QN1(A0fZYP&HQrSk2$!9e'[Q)D"kr B"'HPN!"L6'jP+9Bk81RQ2#4kjeT5RQRKQ5NkDJ1HQhh5PT4G8h#,Z!*&LM9`+f9 M6kl9QUb,&0LB$KYFkd[Zk#U5-QC!#9SU5e*N$XDH'ZrQE4N"GHfbJTca)R15Z15 $YU9TS@(VK45p'9PDkBcK-QTRDHrdl1$#eB%iP[XG$lrTDe+"M,0,[*2a5iBEi0D 0d6AEU(b5dUb(8JL4Si+*&"HmE)hba0H0ja!J-!cPhfJ@)rQSm@TC+h+fC#NIpHk +jj1*$R&B[C!!XM3U"),mmqX'5EQ466XcZR`Q"GZf&MI`4SM2f2mdKBB"B5T')b3 `PK9NQA@RE30jcpj0r4[R-fS,HNc18idYLNJ"JV(9a"hYAK9rahdjcL'"5aJ@PUr MFFH-&Ap0$FD)r`)aGD[3T4*bT%L*"'pmPUJ*Lel3Fq44,c4l!(d(Ze@#eULFMk$ &GF1p@%9TL0CbG4DZCJjGPj,#AU9DN!$La$R$bS,A++pUMZ`""h[ZD-9NQHHTD$c (ePY+RC4GIjPD)%5)+$GT&-9Ej32[P4@+SBL`I0#[&S1ZBT*Eil0p4#0phHjHhV5 mZPhm[pr%r*XrEj,Z1hACFB),IMXXd!mBjX+J)PZD4NRDPIDa9BBfLV)H*2UA*,E ca%HN0r9c`NYY*aV"IdCG!IfST1cbPR@RmpleR3,@R0[jEf0kdUi%@bij`JArdjB N+cp!qr$Nm1R(ieaLSG3kR8LT)P2cj4V(1L98'&#qjPkL+l+Y[G*G#EDqXZ[6"(e )@drDP@$,e$q%,E[5JABPQ$,4Z#dJjD%#a+aG,0Mh&C!!1X"dl%#9`J'$Hf6'C($ iT2[*TLlBT,mAZI2!dAm!N!-K)3P6Bh*TF(4TEQF!N"Xl!$m!f!%)!*!$!3!!4d! !N!B,CJ#3!iB!!!%!rj!%!3#XH'TIV(KpX`#3"YD8!*!'5N`!N!S--5%K#90MFQP `G'PZC`#3'cX!2`$B!3J!N!-"!!!,CJ#3"aB!N!1'!!!"!2q3"!%!V(KUAkaiIE- !N!E@P!#3"NT-!*!+P1[RF`!!: