From a9858f58d89f9f8f3dde2b1df0721f3f5f4c491d Mon Sep 17 00:00:00 2001
From: Leo Treggiari
MBS gathers information about the defined symbols and include paths from a +number of sources:
+User-defined symbols and include paths: You can flag certain +tool options as special so the build model will know to pay special attention to them. As the implementer of the tool integration, you should make sure your specification has options of type “includePaths” and “definedSymbols”. The build model will pay special attention to these options and provide them to the appropriate clients in the CDT core without any further intervention on your part.
-6.13.3 Built-in -Symbols and Search Paths
-We have automated the discovery of paths and symbols for standard -GCC compilers that are building targets for the platform they are -hosted on. Work is in progress to make this completely replaceable so -that cross-compilers and non-GCC compilers can be more easily -integrated. Until then, there are two approaches you can take, but both -involve hard-coding the include path and defined symbol options with -list -option values containing the correct information. If you add a value to -the include path or symbol option, it will be displayed to the user by -default. This may be the right approach to take if you believe that -users will change these values frequently. However, it will clutter the -UI with values and since they are editable, users may delete them -accidentally.
-The alternative is to flag the list option value as a built-in -value. -In this case, the user will not be able to edit the values through the -UI. This has the advantage of keeping the UI cleaner, but the only way -for the user to edit these values if something changes is to directly -edit the plug-in manifest where the extension is specified. Please -refer to § 3.11 -for more details on specifying list option values. -6.13.4 User-Specified +
Pre-defined symbols and include paths: A toolChain may specify +the id of scanner configuration discovery profile for gathering the built-in +compiler settings. See the org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile +extension point description in the reference documentation for more information. +If a collector is specified, MBS invokes it to return the pre-defined symbols +and include paths. If a collector is not specified, MBS searches for +options of type “includePaths” and “definedSymbols” with the builtIn +attribute set to true.
+Environment include paths: Your build definition may specify a +envVarBuildPath element with the pathType attribute set to "buildpathInclude". +If specified, MBS will read the environment variable(s) for additional include +paths. See § 3.17 for additional information regarding the envVarBuildPath +element.
+6.13.3 User-Specified Libraries and Object Modules
Similarly, a user may want to specify external libraries to link against in @@ -5015,7 +5007,7 @@ to an option containing libraries so that when the build file generator requests them, it can provide a valid list. Flag the option value type as “libs” for external libraries or “userObjs” for object modules.
-6.13.5 ProjectType and Other +
6.13.4 ProjectType and Other Element Hierarchies
One area of the build model that the tutorial does not touch on
@@ -5040,7 +5032,7 @@ it is possible to declare a configuration, tool-chain, tool, builder and targetP
is possible to declare a complete set of elements once, and use superClass references to those
elements inside many projectTypes.
6.13.6 Publishing +
6.13.5 Publishing your Plug-in
The subject of packaging Eclipse plug-ins is well covered in the Platform Plug-in Developer Guide. @@ -5917,12 +5909,41 @@ holds single String-type value
String[] getStringListValue() throws BuildMacroException;
}
-7.9 Defining a Configuration Name Provider
+7.9 Defining a Configuration Name Provider
+All the configuration names must be unique within a
+project. Tool Integrators can provide unique configuration names in their
+build definitions, or they can use dynamically created unique names. To
+provide configuration names dynamically, you
+must specify and supply a class that implements the IConfigurationNameProvider
+interface shown below. The class name is assigned to the projectType element,
+configurationNameProvider attribute.
??The basic idea is this. The first configuration asked +gets to use the most “basic” name – e.g. “Debug”. When another configuration is +asked that uses a different tool-chain version, it would see that “Debug” was +already chosen, so it could return “Debug_8.1”. When another configuration is +asked that builds for a different platform, it would see that “Debug” was +already chosen, so it could return “Debug_IPF”. If the ProjectType does not +implement the attribute, the default name provider would add “_2” etc.. to the +configuration name if necessary to get a unique name.
+public interface
+IConfigurationNameProvider {
+
+ /*
+ * Returns the new unique configuration name based on the
+'configuration'
+ * object and the list of configuration names already in use
+in the project.
+ *
+ */
+
+ String getNewConfigurationName(IConfiguration configuration,
+String [] usedConfigurationNames );
+}
+
7.10 Defining an Output Name Provider
You can specify an output name provider for an outputType. You must specify
and supply a class that implements the IManagedOutputNameProvider
-interface shown below. The class name is assigned to the outputType element,
-nameProvider attribute.
public interface IManagedOutputNameProvider{
@@ -5949,7 +5970,10 @@ is true, an output name provider, or the outputNames attribute, is required
7.11 Defining an Option Value Handler
7.12 Defining an Option Applicability Calculator
-7.13 Defining a Dynamic Element Provider
+7.13 Defining a Dynamic Element Provider
+Tool integrators may supply a dynamic element provider to dynamically provide the definitions that are otherwise specified in the buildDefinitions +extension point. To specify a dynamic element provider, your build +definitions must define a dynamicElementProvider element as described in § 3.19.
8.1 Converting CDT 2.0 Manifest Files
diff --git a/doc/org.eclipse.cdt.doc.isv/guide/mbs/extensibilityGuide/image044.gif b/doc/org.eclipse.cdt.doc.isv/guide/mbs/extensibilityGuide/image044.gif index 569e4433dc8f7a1fbdf0fb7fb20dd9e67d6068cd..f5d2dc1bf799eb330b48825c5b5ac49f3ec170f4 100644 GIT binary patch delta 31068 zcmV(#K;*yo@dfYp0SQM*MmRZPw*qmo2@wN-w*qkj00{p8{ZYe5O(3;`0}&n+NYEg{ zh6f)il<1J*M2i&@W`wv`Ac^t6j1l=xvfh+&Tvk#iqY4tEPYS7T>FV(Mt}zR7ato7EDK{+q zMr`~%apJ^r7|D^@a>?0>e-ho)(XXx&E7R&7JHrb58KiDJf739Z{_T-w7}CvMw6Z-)t)q1I`Lbh9X1HA`c2N6LT&$(xD>mBSn!6 zQ?Mk-3lWvbGB1 ADAPKDLDzIaqP7za#`>O6Yfm5)wvg*1r&&KfG5UZ}tvGGLnm)0>l(FP7L zFdorRHEU7-R<15#(+8mwJWHZB12QCciy(i@ATJOhz05t$W-%$S%oGp> &y>3y)*2_a_k5* z)6No^DD*|eGZN+SEom{qI+QLybUpX5M;)d_32;hr6EICne=z3_KOL}1N0dJw@;@ap zDk*U^IFK@p%S Bdq{2h_|(vjl2{y7KV#G>r_n}N6G!7^IX5-1oKt2>6+FFhE5T7nuM-8c zvmB399=lV=e`+jMqw`5?G)l|UOF5J^rIAfuv+VS-Q4A%G)(BaZ^;rLzRgIR_S(`Ok zqxD&(6 rg4_i-f`bK6qe zq_kXb4OnfG2UV74QTJw3*JfE4XIIyCRX289fA@9QZ3yGjGq)n%(&<0R)M<^@YN0lG zpLTeE_iBZ=c#jupiC1}%cX@pmUDI@3A5$WmV?cQdPWRPp=N4}3b$h+Hd%-t* lc6bSAXx +x7qm;;x61!gR5w?YH(L~VotJ8{ zwtrN3e^_{hUATo|_=ROShV4f|hLc8d%Yd=VYjqH8sZwmoS9^n4E1h(MS@mvR^(!4z zb6X6TXmx%qcXFfHb2XR78nzupV^`g>e^+%lx)4}c6}bJ1wSgJ9CUMm$jac|@xA+E6 zObZW+hu3PPmOt_Xg}HM?&xA3V61O6fO(WBKLlJuuCvyHHd>3Yjb8$}LMKe7z^bi&- z6&5s0PC^gHAsoUxux4W?V?Y3S28)-M{)dPkPRksfAE8j zB_}dkIhIv9kV^t067x(rm@oA!Z&&MQGbL!RYG`GJC~(Ci|1`o@`h!*`gCiCuCcMNY zrg_xT5Cvw_hO-vwwziAw(Sf>ZD!DEjDFc>cg^+ngGFsW3W2H(YXPPbfONdw@bQzmV zlb4S;%J9}RnRq)V@Nc{3m@}Dbe?CHv1DYW=`J4~tnPX)@sD`j|Ih#d|$71pvOE&*b zHi2()f#1YR+F4;}nPI}@mSZKJhXbBV+F ad3&_tPQ-Rq0v2dJsw0x`De7h)6 z!H_HWnMiH5iOp`UJ&ZbGm$jw1imCXuUAwiX7`A8Iwq+Z)dAqh_o3?Ko9(mQG zNBKBQ8D;Z2!FG|1nftDt+peLzjHA1`r`wGAx=UkvK4%&MYx)pxda@ncu)+JWB|E$o zyS&MJyv5tR89Tl87$Pwnv(hY_0QrFgS%}Zqsy#cuK^wpK`@j7=f569=zd5o_pX`yB zm_!zKPsLUF9#()M{H*(T!XvzsDO|!U{K73fiU>G0|KWOc(G$6~`mC1wxuyHWsT;*j zJjGdj#b>scZ8N?n3$US4u&I!+S%)dtJH6REveo;%f4seSe8_>k#~Ey!rO}c;{D8r^ z!o=Cc$Qi??V9KeSf6B8CeF;3v0erx>9Lu|0zXjaO+a;gL55tBORv8zy$r7LkOjmzf zw}E@NeLJ_`yw2(T&U-t!^<2*PJkI@Gi$Rx*Wt_3(THfe7<|=ETHmg=#yt*A-#UH)J zBfZhH^}1nt&;!d`dlFp7^t*4oB>3&2d3@A~T*!-@)K9(Ce|_A@gM0#`H}amkUH@3B z36!I8+1^&;mZy27XPICUrl@IIo(Tj%)cHS#eRBV1xxcwQ%)xxwon6eIT?4z?k-yq~ z^Rz)2ysX=t eZwUjHBGX(e>KE4 z+H^TO58v~re_&ZmK>C$|#7ZE?mVv!XJlfz>+Dq1%q$yp}AwA+De&P@OrGcv2L6}l) zJhgBf8DDKzmRXsPnWsfPR-~qyh2kM3LY5J_p%pqPR9@B5TjpDR=2QLVO YE+wtv>6!ip;AM zuJ}34{rS4Y_KEF{XKJNu9(t%b13bRn wKqrv#lTQ1T21ivO7W(OwnCH~ QjOt6ulNJgW_S;y(Di zMl!I++9b 6(?G~iZ!d&tWPyk&4|xy*RUC>S|m&D zf2*ITTid#Q3pcLAiqz14t?N~zUA=k1_QhM4Z(zTJ0jCvwm~djlclRo8{MRvK#E=V1 zz8pETWzCB*Z~okwbLG&WN1LX+c5 krpWXE? z)v#*MF19a!?fd=w`%}c97kvRPHXng_|H*gYfCvg07=wp7Sm1&NLYQEK6J97`h6-+I zp@toD_#lQLMmS=HA$oXXi4?AwSZWTg24QMY#pYj)HYT)NQ!eE=6l^~McVm!3f5K%P zZ%FBg VUKgz2|top#P8r(td)wx?o!>d9xIehLccpoSKT=%0!by6B;eCdz1}j!FvYq?T5S zDLyXp1*2fDv3F;v!rfM$k0Y7te-V(Pt}3c= @dR* zH=L!!7DtS6#TkFOaZys8^c2BUrFn442|bHio@Pzv6k8_0TpL}Ukw)`rk5Pv6%{sHp z^UOB)ELzS$mnO8&MF+jJ(Mcmcbj_&QyH}@!eVP%>RvQ%Xb2*-hoT^uU-IlAtj_oVi zz?O~n*=qmFw%Ki`{q~q6f1zjW6zf$D_SMX03+G(`mNjkOf?FjsyXG1WFTIG*+b-jW z%e#2wkWU_O<%&~&Ift9x)oFhE|6(*a%v+1;V~;j@9eU~w6*+P17i$bV$FYYwJH)k9 zEPL*>>ux*mI}S@`>B3eNmg*(9$tRqC #2J*Cx8e{X&E*l(Yy_T6)T z{rBRBPrhE8`Xx1BRFe!nt64iYdevPQ+ oUBNz u z7jCgm@0(8i@OKf^?NM-m6rdshcgO%Da*>K`Bmo%-KLcune{Ko98~X-%qrGjbZyNbq zTC|ACs}+ueCoE+MPw6;RX3&JHBxNf>n95kLa+7rA9GW~=5zvKFO@B1Wzd(07`t34r ztb3jBlo&*04$+v&Wacu9sLUfe^GahHN|{1(rs54#NXYY(6(iUuP;RqiT`V8?yl2kw zp>v(*Y^OTif0@pBvU7ar!%O;_hsS-5vqpXV5vt_p8$s@qod0~JBNJ)Rgd%jIkYwmV z$tJf+BJg+X(dIz? -Xwr6^q~3eBa$5V5eM z`qJY^-y=hq&@hJ`5$H`pIxuKXGnzyls!@fC)Fd8Nf2m2;2@^Ns#GW$cA5r}2d#K15 zE3T|HF0*RCy12$T!cmNJB Z}87V~LSuZ}9HS}SNl ze Tac fZZ&wWC7RUI-GOjVem;$mH zNp)l>ehXIZqE)a?x5o>{q8jCj Pwk(eyCbC1= ze~V4`1~jl Q?QW@YVo4L{(la)$i#^@xq8@j+HU@R6lT=NP zD0hidwWy{e(oH=@*SalxwST1BUGVB!f4sZSHLri|>tKf$EcFb_J@3k8TT2AYx)F1F z$gJ#5pLxw~uJ)U$eQh@zHqQP%maC)95CR9tz!FR_xP!xBMFTp~hc2|cBmC}lBYNKB z(y%>Ylds;K`^&YRVTo(_L}>53IRB=x!A*T|QGZ(Dp(b_0N&Qrbij1m}KKGBse}Y9L zdvxGLGV+wy`s9zt70Og5ImoMAa*>DJ%44J}rp? o#-Y$QRo@*S62C z-E*KDl-pyrWX}IjW)TnN*^~a*_|diEXL`eX>hg{^p{aiLs$<=9jJCOEA^r4&%yvhX zwlt;%9`>-Az2T#7`@$WL@VGPlf7EbCZcJ8vcH&hW+_8R>b!qMNv=ffj!!CTU4G(O@ z3;XblPdxdG{qk_iT<`;_`OAay*GyA>@Yxo+=Q|Jjpocz^L6LK00layEh`T}L?oi-U z|B!UId+W2;y6v-$dv)iYUiLONz7eeN)Qi}}1uyv7Veb|d)7|ZCe>?M+fA9S0H{Yo^ zZlaD&Jk_dF{^EekILls-e1-_w |ek8(VtZ;*A?b>Ot$b#?8loY zF#KED`OioH|9PS(fd9vHME7h)mwI=$Xr9D$;KzRn5p`CldlOiDyT@)9D0R1IT3r`; z1R^84w0UC}NM#pH51194e+GTimx3$!aL?C*(#L|olU%~XYI+BIeP=#@S11l>g8!j- zKiGJS=XgUXghdF1*9CdUwq e@mCvhpc!%Ye$HQ=z@rtjfJR L`9xNQ<&4kO4`Mu^2a8*k4}wZE3f9 z57K%k;){MLd&l^OYe WG4e$c=vqlPn3CFG-jp0gef|l{T1w&y_sr=qY7smI8rm^eB(< z_>Pr{nU|@ViDHkEmyaWffBwXeV-}eT;fhzOm04Mks(Ed;SV>>_h++6ZW5{4VDTNaW zmup#(x`~l&nVY^@7rl3R5b0rdNfac;hf!FXDmj=jf7zUZ8JI5VoY6^>QH6axwwR(3 zWEuyVk@=INh?L=piQ{>R _2bH7wY^4c-0EwEbnVR{DpS0+j zb2k53PZyS5=pbZCpMS`7X$hRXnT!a!n+b}H%jjs$SeMU8O(eJzdr6IbDU%!eoYD!M zh54axe|MPT*lIUvYvvf7j(J`M8a?conUuMimI pnUDFIf)}5>0fj8;gRBXp z`gxy2x`n0JZ3?uIU@4m#MVqwQblqu|xXGZs*`QTQrB}M3u_T-v_M{@Iqj@-DduT&G zdX~}YmuAYLXxgD?3Zi+JV>Wq%2UbNpX^Lcef0pM-o_Ly`L#dQ`s-Am#l c(vTzRCp2!`phbiD|rQwfX?YNc7~saWckQ#wKrN|zuA z|C-Qfp Y=g9rqkJ`%QT`in0K(rkc{a~Dylx4nvyOWqc2*c#A>X=imaJ( zf1~G>qfHo^?IoW$*Q%!}snr^(*ZQbv)1RlOt4f+eO nNk$oomYB{-`-v_LG>2Z3>uz%XH ze2ShA8>oQlR)fk_%^G%y$~B}pt&NJUe~_B3A8V}zWTakbs5uv)2|1veYOe>HuI5^< zq^hpx3bUmumtN G hAkVje=jSu zH9NC&yRIqZksIc&E<~`JMv^v1uVcEX_sXyNN~?)Ww1}&M01KztSsDjBi9ai`eM+$r z>#&&%v3|O_6l<|Od5WpJk31T-WIDEIJF;k-x $|tYqW>^l1Q7F-P*QH>#O)gyI5 #3i-Z#7QZPve;`h3n>{F{HjKAAe8+igzbewd#QDD&E3YMa5+^ytoN9bX zytqr8$Vt4w%;dNMhn=}7r&&e8cVxjItihR#$(wAs9elYSJc{gjv0%(`VqE`77|M#L ztG;P`#;bf^E= o6EUt$1THJ5gL*{oT|Z#e-gus!bg0-$gIdp z%*cr7yh5y)k}SP|0(eiG%2vF^*_^#xti{{RwBD >1@X9>`<`G zwnz8Inliung2KFIAoP;a3hiuS+ebmaF)PgOrO<|pf{m{}p!IQzA6ur?IE!mMx*&S`!pN!c+ z7Q%!o&ia_PCJb08eA1(h)}>v5EPac5U5+rlNiywPG)>p{9NV|7&vRWuJp5?F4Ael} zvqN3Rgssp>e;wSwz0lCu#H#khPR-a-OwCSv$yr_1(0$d~Jl&4s#rUY&%4W)nTE(Vq z*56IqMM^AeytFVi&j?n}wr$tzt={cj*Y&oy_vXLZZEJijz*0rPgRTG6`)%06eb5bk zor`^`jlCC-J=GkY*%n>d369YV?#Vv$xuzJ>UJKTOe@nU?+udia;o$Avi3H1DEz7KZ zS+2cjG)&v<{oW}q+qJ!DH`{?d{L=s&)V6gx#ZBD8?UF^z-}>F(HooIbJcCIa%>&Nd zdqQjCdOy;w XU>Z4xf9nbL}kLnV}rGC4!P6gPs9_zM_>nV@&x32OpZ+(xu+;g?C zif;3WUg(pZ=s3UVI-m1^&hs~)Wt=_208GxAUg=1G=~lk ~S7tuDT=p6hZ>_Oo90e`9a PA>P=P4`V+_e_rW zb03f4T=cGf^h~exfe-kD@AT^2mEIQhMAp_A&-GgG@gbk}jW79D5Bah*^2JG^CcpA7 z-}0O9`7nR>EFbzpl-Ll==iW--LhtiE5A=qv`mMkEufOxIAM_9_!jJydsmSi@f6n{6 z@B6(E{J$^!!B70dZ~VoN{Kv2S$ 5u;F@BUQV*`iDMO;7)VU- 2g$^ZJ)aX&9NtG^T+SKXOR6ZR#oHmuJRfAQrYPHIB zs@JPqu~Gw@b!=I(XVr>j+jXtmwqM`MjT;v3UAlPf=H >W{8tGi*&8cJ0?2 zb35EE8~5zqwsiw1{@eI% K?fs* za6$zud{9BvER;|~3NLK1v#WgKa6}I`w960A= {B$swU!vdAc3Qf*2lk(5$Pe=4!0W+#z+^0LY- zog~ws&Q=2RpQ>VX^UXKs!;G@a>fEfcJ15hO&OGPb^UuZlw3AOl0mZY>KoLE3DiIac zGf_hy{R%`z9rY7ZOyxq6E)f422u@H#b#KP#UNhCY|5HmvbyZbcwJp_GS&h|ISZkHl zR$6b>HCJ9|^%d7&e|HVGS73`3)>u`2LUveYmv#17Fv~l3T4Je v+-Nl!yO;wzN#ZSF8_~4{w z9CKkV%iPjTh9PeF$u1{8^Wumf*0^GcJKoq~DwX}1Vvt=ze*uLkQEn2 q4=tPC?uGZG%a@PP_l^>W F%~WZ@#muPH({braN%I z=l)yp!wbh-fAPH;Cwy?k=XTj3tg+4x<;8)MS>@eOX8ddIqIF0$$EQ2laTH2t9NX5k z#TjncLj|{9e`}}x_I`2yS9jZU_kH)@^`p0IYKX7eq2rIArs}FdFWzdz&_ aAYBc&((rH{kkK+%|Uje`8emWsEJJng07>uHR#hN8aE6 z{Qa+g1H_+}u7tgUU@mn8`I v$QQO|A$UX+76#4H6Qj6h(kOY(|%Y)AM%TP z>eCw9f1roG=3x+d =4*~5;~$;FI@-9de lqG z<{F+A&sRpXJkpTH^Cjid7sV((aF|vEU46QTrW8$0UBp9Q_r7*aYyOUXRB>M$Tlr1W z% 9YH55Y6gbF-aJ-JsA^0n}ErQB!r zf09Q%?u~?H4Vhg1DyTv#2K0pO97xS{!jt!bQ=?Al85)CVL?I%Ph&mjpM@xD{l8RKN zDRql#LdsH;8cJ-VLn&Rr_Di{d4Wy1)8&=x3%8dq9MhARc;vlEGqbAj;OEp|mGso1Y zI<;|1m1 QuXGRex- C< zb7|LI-c_%8w9CxD_{k*&8)cZb#P_uQ050uibnRG>ZGhZC0oFFx)ZaP zh3sS{a=^@nma{Vn;aDx}S h?>~%$H|81=QCzR&IkdWhbk9UFv36klVGccDu`6?1J}G;r(uT z|0vctn%BE_L?vt78eP}QwXpLIEPeZGU&H1Xzx%bzKT_d`{{|Sq0~T ddI@P6SwTgQ*LriD-n>gHZt*;E`DR&vyTE4Zdb?xgg_gdJ$7B(BH zVPRxrSlP*D_OhMbY-m4Qf7;Qe_Oz{CZERm#+u7#!w!PhLaDQ9e;U@RE&0X#Q8-&oZ zW_P>Y{cd>2+qGorrl{?WYErv;)T+++zFX~YecyZ40mnDL4gPO|_dDSNyjiY;O>Bri zT;dL=IIkmKaW7+h*BQ6?#5=BW|6qgsXg}? 6A`7)0b{^r$-&?`@J;63vTs+16=D1 z$GXC=PVlUA9qe8Y``5Q_cCnv5BCsB|$2tD?jmJIYAE!Iq=Wh45i~QnsmwVp%es?Py zTfO2X{NN2wUc|3gfANJ+JmVLC_{TRM@{Xtc oda}p<;A5Y?+GXGM+NWLjuD?C)aevx||K0C+-#hW$-uL1o|M-As z{_vHr_vJgk`B^4;%XRMap#T3I`_|X~^}XMH@MmBA+#i3;f46V`@0Y*l=_h~t(I5W2 zZ65Wbr~mxzulm&IzyA0ydK3Nse*g?X0USUA1i%n!EDgJls`EVtw7uNpy$6K72<$xv z{JjR;Jqg?q6kx0=z#0*PK!mfX)#{1o6Tak|zUVta>03b+Y{3+KLFfyM4U9pHLlJ5^ zF5`>Ao?;8Zf6Khe^TErDJR$tSAq+wyJVGN(LLgj1T$w>7jJ(cZBu-+&BW$m1@dNg_ zKmF6f{o6wR<3cd}LNQF28T3LDvB3}-!+Jq1fgu tTsxz&*zDY8w z6|o!nQ^PPc!!A6=Vnjw_T*gW(L*B_IGEyI0!bE9mmuJeI8{`l++%Oi|!#u1*aEwDg zyu)xLe@AiDLqYVnK1?-6>YxwGH$ZF||7pi5;wOAcsDi2|j}gI)U^`1xM1XumO^ifH z49H0wNP{d$qp3vR(y0h~I5ZraAJQqWxTa;YqKovI9fXS>EJ7-LLL~f1k@QHC49SuN zNt7JP!mC8>l0r$!r1k#-L}}q8m&Bw`I;2Qyf1*-)7Ay3PVKl~M3`%BHMxY!@p)AS~ zamL@_#4WNbY6Ks1;Y9Q?rfiZ%ro@+R OAOLHvCuC$SLEU}3S zBN3BHh7ur|u_qE*AQMs{2$G`7BE*z1#Dn}tf%MD1OvJww%)lf_gdEJjsKn&j9w;g$ zf8wIXDMX`)Iw)gGD9e<}MDawnaW3{-#Z-Jn&x}RU>`c%s&Cfi|(KJQVOijR >MG z5arVlT|gLpQ4{}VQA1r(L{(8me fvB~4Nyom5M$R7_RROV!j&txxp) z)I#Y<1Rd1?EmZ;~)l)T923=KDWmQ#eRao^&JMB|i{Zl^$R9wAPU9Htz)i2g-QAll6 zMg`VFP1IpMR7Wk=WEIw6Ekq^jR8T$AP4(0v R%wOSYQ $R&Jfvh^5$Vtypb+*oi$NQGHd9O;wO})sT(Vk^NYaJz0`P zS(9az_2AJROnq6GjaitTM_HMzS(?3Bo6T9A-C3ROS)Tpb9=%Z;9a^C+TB1E#qfJ_* nU0S7WTBdzkr;S>uom#1_TB^NTtIb-h-CC{fTCQc uiO_8#V+ef#h8?Z3@8sQ2xkb$53|pua<4ApdQkTj)2a zL4W)I82| #oq0ER$0 zLQ??{AOHdaK)?V9v?`P}6bwol$`VQoItDEa#fCydv7pJ2e+~Wfp#}m1!9XD7Uw_cD zP!9wGg1|r! sgl0qKfO3L14DArg8VUv_4b6nog7SbChGIjZ zA^)c6Uo> O&0zoiV78(Egxhp&t0Zo$Q~k|IPQm!T+Z4pUnTw%D>qEg#M@cf7<;^ z{ZEd6lki`M|B(J8{cleG 2$)v)8SPTje2R~DSkTF>d9^!I)f-q^N><%qQ`=bc3rGisc^M(>B`Q_?|rpYA| znXt7o!Y?gkVo9VO;6c;BWs}G;ed Dl?FQd_4A1^t?Q_dc(9CFZ9vQTaaq#C~ 93QBkOY}H`Cs_=K^G0G5z6m zxyelX;A{otw$-Oe*d+K#;O=0`wKp$d&F6Y`%+7Mndjp- nf7tslBXs&qJ2UJ) zBs|}fnq-JL5+zML%N`>VF+Uh@#L_fo)Pk2Rj9==})Z<;G4oSrOtdGXtXtk-kQP^n< zyM9AU_oT5JT9y_+b>D_8+{9>*_9JCVi_Ae6W2uEP5B9u<$qU~<9()t=h#-siBw5-H zl20QfP5YpCWWbP5#)-m^PLqTp1RKI|TwIW1b6iqfSbAJq-gtamRy_b=I4Q56w>hb3 z-Y-3=Y`;4`sp@{ucv?1FupK4>Dpea3etf8l;eJ%9Q{ QwQqb=!L@H%aR{2IpOibPXj)bvK5y7mvt@2vR=cij z+Ek;g +9UkJ0Y*waX-?|I`n$Aa^65KY~VCPOxs>Py4Ryn(RZL_cir&uAcJ#)gt45p3*o1q z(-bZ7seL0O>#P0Dju11Tl~Z4VYy9FknyXU}ZtZsR9j$$RmrNq0!+z8f6Rl<$x6ZI` z?7U~KV)gUPD`0_Q2i;@xYuU?v@Aq^8ua*$`7_T{J KwmqWc*Z5Mrvf7>p`i6`2x2GpxwZhI^@ z+V2L1Nd+AjaE1M@yAXx_E(gPu{V#Wge+t~p@V{if4BKY=-%mF|I{r>YDGOchQ{ 7afivgl=0f5PmvwJe;^7wD#O5x#C_T zqM9GVH>9ZFX(c`qT!bLPo1!OLbv*511+IykpyWUNA;_AD-0Iy%`+3ObXSGAR{IOs7 zB@QKN&Ps5tBp$<^j%=9|@k@s+f@dhDjO3J5Tm$>0%P}Q62iG8BRre%kT3zPd>b^+Z z@Q%~nP!=WM&d)KVT{8P1N`<=tL5Hhxio_Y2yYB7y_~>aWclg}(RrW;b 0@GErrgii0(j4pS?FCpj#Z zz fsf;=HUI%+$vv^NVL87@^=zDqUBDE*;`h6$ zU*Arx*o2SUV))?5uYwAAn*gf%>%jO?=Xhp!ar89_9I=vMC8~IMGO !K4~N;1?t5w^re0opjjZ3dnv%bR3n~>rW9kal&0rcsY6{h+lQ<8x;$3r zXJp1(YD0xJ^Q_)u(0u8gOCrk1F{8KMLM802eAsN6>hSSG-2iR64L+{vj+qVuc?x&r znvGffjZU?kN4ZP|lL XT6lsmcNjqudA7j9wV zSfi{#@VD7J8@;u>#;Oj(3U&Rcf-^~+#_M<4S2*b PJS%X?;D4KpOKN5Hk9XJ zaln%QNK65m?n1@E )UO;^?d9;$9591McXEh(kT~McMfTKHX%E4>esAv@-uod zMrQ;iDbN^&^P%k-(zuKWy)SmFWHKiZo`&>Gopb!`QrM( tzc-1d z>v7WMg8{pj5@ ~OBE=|xJH>As)m4+7aeHDyr z c;zYu(6RHB>B~>QQHRabm8>WLbkzNl zqQ&E}IJRX&db@lHjO`H}z4+_(ywwkhedrvvKZ?vI7CmabX)RiF_Dn}wZ^QNuZ8CHT z!{uLPB*p1>owbV=_uYr@s%@yjy^0x3-EHN3{2W;6XpY*k$^vPca;J;~hRAt7E`|#C zuwd0__e$iYeqM4vDEH%(_q36|CAF$U_Tr?REjQv?zZ8n`T@@thvZCO^z=_Hu;KEeO z5!=odK^UN2M`p8v#lK*4Ix^G+!(~qbzy_o^?0%~m(luKM%O=rkGZ*G0mv;;kz|rT6 z+>BMfKiK9jhCc%CFiAQ<@?Ayx#z;+b~(^A>i%g=N6Fr`^p5|2=8{$6rDVMFFpa0SzC%{SEs%w&@Pu#spJ%7>0d! zxW` Xn^KufcoF-_74D%8T^8yC*xEr}1 z5f$Cp8c7X-ts0gg2iDce*7XA3D+iW!6JALL0pHF0n;RwWfSn{Y@d3F2nV0Kcp}K(# z`ZSH}006yBLWpM24nfTqo5Fn&;Ix7-r`2q#V@0A*7hG3pXX0i3RmXnVEVO7)7^cW@ z_`6^CR;c=+xF+2vw{S9DNVr`8OvnPa!vJ=u*+ZBmUARP3XsA_aPfGYEO;|J?Wvo@0 zIZecCW7y1O7|oA}?_PpIL)3PMBw2I;584`eL$V+4!#%?zeRLxHydoCh!s(Jig>}NS zJj1h*!g6`Z^B1XR3PXyJd`gg_%jlvlQX{IHBW|Z6!iS=r52IUk!lpk)%sxcLFNT>e zFnwK!b)faITkwdwLEPWwnBn+AEDrce%M!vyo?(J^;e>WE39k-=2}lhZn?zHagl9tv z`tC_Gmt(xPgQ%1P>+M96ABU)) Mw57 zi)&L@O=n{B5P(!P8H7GzT{MBl+k&nnfonEl<|cudAQ9HWvi4Gpd)Snh{uB9;I3+SF zHAsx=hX6guS+vBEB_gq&T#&;W$XSxq J wm;{pNtO<2vPtQShx&HOAD zGS>=iL8L?2!;-9%;jAHmVk}Z*b#>M;A30r4mck}%R}id%NiIvZp>0X_gtp)rVoow` zPH~t(*|&i6mYhwxY_&m=JAkn8N71hu4s~?-@0Oh?O9iOE_|dkC(AxwuwhF=S<`Jg} zSq){AqC{TpyB zl3WGSv$+72ydReNhH~h9%ULEU*}p#gX7CgmyOw*DVKvo8ALsA@9u%#pm;`PzL%Ol^ zRS5QPVG$wf=)pMx895jOWF@&22#GdmidYQCFqnxW$iKp{W_twMQV; zFAz1qA-ZhBdt(VI#KDgA!n1CAV_ZWIKLLzuG>Dl?i;qCMr2yRp>^3C=J(=( dbG z@LCY8nh1JltI)i<*CCwfy)62Eok;5w@$4q7B3Z>ORxU I!x|;Q`#LYPKpk`Knn4;fE*jCq2=Z zw4&3QvaXS;9zZz*eAS=Q>c`${U2_3UVnOUEzdv#{?F^OgqH5svMc$*LBAwJcBnqQ5 z*6KhcYBjBEZxW+hN^9qPYl(;@=W*)*`t^52)s&1Pd{JfmZDoR})xx7?J$ltuBK!}N z9__vSoI6FM(;l+2NS|Gc^Kyug;)w#;P!zkF+piJNFMrO+mcWuD9J3+henm@UDCy3r z#UB1qZBpTV0qeqs`Ar1@{T)(S8e)J5g2sjIY*1yNc+Q`+YW3wN*)*})X<^~|tec%O zJb6Kb-RfPvI?3m `4u@ZcR-ywa?eWq3L=$p+6_N{JR} zTfyc0GKw4FV*Zwp1rZzXmbYv1tQFz2!8SSb3MQ2Hak*A<{dN(#mLYx75yl42`Z`3& zt~j?w#RhTpA4VxOiT1g~Rus4P>%?}|zINIu(e39J?&mhtmHJ-a))U+IWYn(Ibdk-K zmPz@}hv%B7^v;*(&!?z@=WW7l#9gp<0-X5`E7fUbCFp^z4Gu*pA=<@DSC}9hhJi2a zKjqN7;xH0QF<3t`P`+RuSCZJPvjUrGM5b`$Jm!o?KhY2^)NA);UUL!wIZHjsW5a{90a?4)n6^ zM_b%8+97g_fnRpZN#{0EF1A7I$uN8uWxtMJKi*TN;7RjNS~+W6+w4_kmMzCFWE*X? zbYNq&WmS#^Lwqo!tnac_ERsp+(q~wZxO~>7Jw~8C@>6MUM(-@#Fg _SmU8fLReO2O>1f^Ra6`s$-0JXU&k%v_NYkg` zu4sYe)sa-R(S(e#LBHzdQgB`d`#4kOBva+188{IQy!~}dEorzvV|WET)~F!xgu_+{ zv@tmG2tZ*T$B~;=L3$u#fv_QL!Lo02@GG*h6>pZMSNDLOn(|@eJcxS-;+i7;um;*~ zNiq<>T_AqTK`c%~Y@rDmjm*ku%aZfUuGxg0i_7Xstk_6{#dXPMT!RmR{DSp)L1WDs ze9-OJ7pP>pKvOXAisR4SXzkBRpXpIA-_DyAFzg2hRX3-XaVVm*=1enXW*L-EkAIsR z)tljo8T_4|tLry97zJ)G8ymSEhV%6}w;M}Y9kUS}9bp^}(H^d6S~&1q==B}8UK>NB z8XZ}#b2RjF9s>vZk9*k9hn_7&W_J21vbbf8A^8pmp)U;zEEp<|XGD*J4CVz_+V>TN zo&5#uGRGV;!6D3xVQXU z?J$8oEokeQV%TP9oG@#& UjEpT z2pHxU8WCYx;{c2@EA6eT?Xt)2D(3HkqW5;UcXcuLLf3Zof9#0{>?J6!FT3nUequ3V z*-7}kkEyhGTd@o@+7t-@+jI`wIqbS%9DID+bM0hyuiUYK2< 0)IE(=-#Qd*_*fC9AD!V~ph-*Fknj#4L7ijrdApvoS zUYpn&lkln^Sq&B1(sr6xa%LZ}woZnJj*(IC=?BtQW-;>75Ba8B(r4a4<#XTKLctvG zl*%5y&1tsJg!r+DpHDB74Z_ ^XKi~OV%i%3Fvb(keQ^jlh_E(kVBC6uxy(1Xu@A!W0 zg`4=HuF)QLHoK0}B;rgRLDjOQ(NC|A%VjVN2`kGK 0)l ztXM%i4(C@%f`8G3uT71v9|LxuNmyUsHu*^}1RcjelHS-$9C!w_+`FtAFkb7gAC7Ee z-W;-}X7vWg9N7rmIS@~&<&@;YA~K?_Gm-{xh%tNTATUhAmt7!kgG#-e5H(=n)Kw7H ze_*PC1#Aq?W-;a&70)*HDyNnQb`vn`ql`CjwihV+j|0v+ ^m97k3 tAE$gaBS{GdTx@Ic?Hk_NQMpaQP;GvLre@ zBLZI0@>#|(dG8Wl314>BAU8qkFLab|u>sttU*BMI(McQZ=jt`DE!nagp)00ZfMS*O zUYp0#Eyl%aqK5EUCY$_1`xUY9Ps~2MsW|2h_Oomb!CqLTJyH04TEX;jCK6$&Ttd;s z_T-XLtXwVvhf^j)@tBGZ;9o8~BPpzoBL#c_hQ7r2h`<8+BvYMm(J(0{y$k%Yz>?KY zMf}=4bxQ(>K>q&e2C9v}=^qy<^!YCO>L<19Ag9DHX3^;{K^fzz>_d<=1tmng8L`;6 zw};CGHIw8I^u+?|$+Vax0vg2%&SKOPkUqZ^l>#!ENm8yrIs@L7P*#M KzD-J!Ejk5NvDgwPlF)gU8bE(af;}Q>-xy*@m3R^$++-!~nBX70!ziild1Ufzo zkz`+X9%V91lap?xev8cqkv*{xz=gCPl7SleWJFR&P?7TsZOW|3Qr3y(go5=-fAaib zOQYxgsh3wm^Am`I{yVK1$NEp+r*@ Ki8;nU*C(XR^(uCj^hn z5mV2q4YGK@sELzp>DMY?|721fCWkBqNA~j=C#em*KkLI8WcI`>ogn4Is|AQoNKE%p zV;f$If5=ao5z)!Z+b8XXJz>O0|IjzcX8#h7z%~lg%gEY` W1=Y!h5CHc2n8VgtvvLe$n9NiQlig z8>*=ApPMB7`t4^VGmda%@J*5`knL+_XQ5bBRb#vjECc>!)lpBjgO5csev{9B;b$I!gG%cArTvjtmKCe9ne#T+cyYwfmvZ7}4QYWH zM_dG(ffXo)?F>(F4;sd)Vv!%xyo^u|i&XjvHH#l9a}~d_zyD|f0omyc(7|;*f91aP zBewD;KFSs-ouoj(Z}tBZLBH>qr!TNvg mseN#4*dq-~g#Dh#ql)x`1t@C@TQ^I9iBaP&6v-M{&PRtPpuLbn_pJ zqLq);@*=xm(IT29aVRbWV`sJ}(!wigW9cIm(zk`nxqCSBYQiD ko%6GnHt5g z{IojRfJV#&FTYKSvtd%Vt*P&h?FZEF(v -ubVHIYZ>MZm<3ZbG!Ni#jXc=RzVIfOLTA3irZxaddn #sFmYrmPuvMsnzMIS37Wqnyp#u=10!Am(G>4&E@G=wazswT?mJL zNBPQ!^Ks{>pA-^sICop9DyZ2lhCe4SX;E?iLHLDLXH9{CyKPu-`i-J``5}7fB4RFK z{W1$aq>z0}Z#w=n?Qi^;Gfi!NnTT4CBAeR^U1}fw?g4_I9n5CNxw@+xBaL|qz4orY zD|%ZD9~uV)S!^-AS5o!~s%H!-yiAvcF4a7n;VoD=Es3YEIe0o+@mby47}pN9?i-E- z_k9wdmml}<+a?4H9DDVQZW@~!7ROlZ(LWhNzBK*5!e{e7c^-PE;H?^RXZA#3(ogLa ztMT3nH+`y&H_+VCfII~0v-mD)n{(r*Xi5UL6(YqH;&8j@-dp$bF_}ide&pW|rh7U@ z6z<0BB3Or1$1}f>QW<-;C=y)6r=#gmi!b%4rCcRq+U>pdaE}_icTMdV0CN0V0$WPC zrp>hjxto^8WC{m3aTd$qdbSC_>*AZJ-C}Cu^ yfqyv5$u9Gf8VkZvz4!6vzW!ZH*!1Q|!C9tVEw96*=2JCT4Ngk-nm8!ps9QW0Wl= z66%6C;V2ma;W`9)R5hBHA}p?^zsU+(-0S+toD8sYO*ACqa;_*1aOE1YYtP&acUJ(W zGI5ZhH6B-S_%*vkkPg=Qd0GtBx>Xu#$8(5Sh=I(;+oq@giy`T^D1BPW_V8dGSU|9+ z>=tL8jMOGGnYVNX;I5MQCrj3)1B8DS_Fkq%GQcS*J!1_`jc JRY~AvrR$g={!P^hzCR^dE$+{sPUsg} zds~#;s)#eUO_f_4K}Od_+5W56*-tHH>vv_W0*5ZN*lP$^w{1Hs?mh<|OZ>5}aUcA4 z?X;VERA0jU${AS8^Fn{XUy};*i+kmN$jW-9NbRj2xvhYVnkr>~K-dD^x)BIw!R12) zu%jN>zFoFoJyG~{r+VENWdo~396xS!k@WdH7oHj#`_3Qm-At0c9_V(xZp?V!=g _OgM76XM0FFTe19d~Vl zy+a+RI~{XnfM;Bx2gc56aiN)$t~pyF7=^Ayec{7=q5EFJQ%1p+oz5pzp^H&r <6FvD|;O^Puq^m2Xb6~jVc>+AV4+baU@Rkaf5;1rjb?G@AM zl??8c&FEz>@8xY57o_SFJQWx46aRwOrwA5Pc9RfG>f`9^V^I({i|P}p@8vC*(C+Kw zR*+C~6BmpYSNYT@%_*Ux(5G%Eq3PGB XQ^X?J;DM5Y8Adt{*Uw=rvuH(k DU zvW;$EnmBo?!{rM>^2jCfiG8DvGoxj@^0mRT-DoXo(Q*XVqxAydpGorZ=HP_WkwI`q zKs;EGP`>bTl%)n-q%oSl3Qk)Yo 3ja<$WV)m=L zOilHgPawQb;Z{(P|5iq}pQ79w|0s!kQJ_kTuX1fbh?O}Fx#di_Ggo2qpCqrCV5yj7 z?Vn_uo1{UXyn31ZB&k9|J;g1FgLl@%Y%$e$t@g2E=1o9dpg|SDJSnWg$*6!Z*&L^? zhTG-#8(oixdpJCaSgz`b*n9LNj_z+eew^>kNa}`Z=(R|Vvk`UgXvj)XeiM=>F(DPh zw<_;}R3sBs{bgOY6hA6zt{Z5!h~tG#PRYeg>f)#At!WtC&bGnNC7sL}R#2FH#(w>z zg}^+fH3!z#)Y5fF)|=Dt44RKmoHzWfMRhr6>;BtLaxQaAOG{9z%7nDSVBXn&-lan` zKYU(KZGp;E+m?CGWKPR_uGyhN+o@mMxqtRyQ(H+B3F3yJqlu$aL8fCTI0w?08)Zxn zQJfF$&~WJ=4LH+?Or|2hpNsZih*_Ht{;jQzz7!8$2y@qRz12?2)Jo|N`tuOP{E#V} zI$TK={~lda<1+2TSp-Nxfn*E4l#}QkPDEky#4o4M6;^S16~n3)@?z}EN#c50s(K+N zddT>ZMW2aV`L#N-KR$kn4#!om?i`(i^+c`;M?efU`nFy;9naRlmoL_lKxd5W6g7 zg%GsTD2da?tk;fD*nu8fgD}$cq92aF+CaT(SP|Ykw!Dc%-MR;=v^R)yZ!U^4=*(O# z6x1J$S xb8{7>WGeJH6D@$jqp*3s$ z)XS^XYt@2=m!~TmhK9xX>wiKFcajaulUJ4z4EMQ~L#GT6&t#4i4eRE{{8E+hPRfB; zda?Qj4OG}?27F@lNIvrI@W17#u#w`NGB0<>hC+-#Hzd5dw|l!rP-1^BL|4Ma&a9~0 zh}*#tkC7)k+sLQ`#Zn=?Gcrj^LWb+af>&xsSmy<~nf!KJ`PFUwj357s(0tl$0<&&X zbYc=2r{8Wn*F|i~>HGyZYx+r10D0V)#ND*&!Z>_xv*v{dk;Q}oc`ICglNxA3T4;=f zv5jB2nXzm9@oj@@fAg`y6l-6OZhh;)eiK64xJ`-um7vn(p?#BOT#cH<1an;P6M-qh zzUiZ&DVdfT6ZbUt`ZneGChyx |=2=_je%Iy%AZ)$Qdw@r7 z_1NJ~&Aob)eD%C}ZH!o*tYO^%Sq$q)eUIPor}joa#T&6qXTkuBVb-)*fTVo;pXK() z*35w {M$CTr< z45~_iY0WEcX?aq``0(Hf@KqwAx|8^~k%@_oO^dBfeTsgA2Q{a&`3{(;Vm`9v&L&M1 zw>|Vz2aRSLr|sbP<6kniLWFi@T8iaDr_D-sxft_R4yXC!Cs8^!omr<{vB%v5r=>KL zV*w}GDYld2R&C=r(*brf>$Z?#51WzqcHgn=7938p#%(4rjw> 5nA^9g!6O?v-QT0at?Qn@)8={nu7c^J7#kj?trkn^R=pXzZ@% z6=1rY5{Aah>74HGxF57G9vvp1JTB~mF4Pm8oNR$*cWE`ljcCS>8274}(iaa#7ub#$ zzc`&Y&s$!NE-}#!SG+HQF_&o>mm_7DSc5$8n>2muhLJF@aC8r^(OhmqFW>!gHpz3w z>e9jvJD>@4B3by03~`1qK>m7mT%q&0FiX3z{Q65h=*+g^OxI+CVtL6h=tMDi#l!O(4(is`pkDalP+KbNVDi5ySSuO0r9E9zE# zx%CjdD3!e_{Wo3aV38` _jop)m6|<;t`}WIHB6Kq1L4>;|bFEu!&vk zrfs vGk&WfCtwtqm-uk2q3Nzcbcev;p(yQ9so~*d=27bAkrsRx z6SHb0d~5Sz!=&m)YvHbM-y{0$Mi0|d(o@Corw0zZyN#obt)-_HYr1@(yP5R7L-xIe zvYP>|r%K3_YxW%^M&(|1(8F`k?FY|S?=XJlCU@s5C#em0e`!w};|<}-AAw#7!cNG| zw+1=DxC8+tO7z>;y|mMI?UY!oDQ`RmkV*ANRGa|WDBJMwiy$%8vlL96?`P3QirKg2 zkN7R#_-~sb`;R$)@xG2X v|V+`_za$r5gLBRk;;y7!-%?XJVq1vf>TukHUR^ zqN0ELbmx;wYYMWwCGb&u=l%2?<5Ta6)!^xrqdd{H;qxugHzCLOch~1aQr`|%-%jCY zvbSdyh&QO$r{^zWrSQuyZP)%V%9@GiFT*B73(ylXo{=V>^cKJ53BTSj?7qK#9_Y_0 zRz8EIuNgnTK)AB}vXx&OKlsf5d|o(sA-{Y96}`$$SThEPhz-X1>5t?^JASszZ=Q3a zSqEtd;!ye%naqLw-IbYiC&n}ul e$3gc2u5b`^p7BfV z@T-Fh;UbG%l|Uc3aGQt5t^9rEoGw2kWCt@DMN=Vr6kLbVu&U)h!N`}ovsz<${r0o) z7=Ecgw}x$SUa>RioYIB;mU$bKQvc?N#gZTr2!yk4^?b)5m+SMIrjW`f<`3A_Nhlcd zqeUz 1FE6h9w0Sd8AJj|a_MrcAmgDMN=@^1@Whe6> z *M3}x}T1Lubx|c(pe1qB|nV5 zU)9iNyZ+^xSrz_3ZW-_5O`S3!{$oo#^V_T9J*mgLa~>0)13}A8pUcOCoWSiCq;2;H zXWqOpSlIB)76ApZ-*p)Vk4f0@%NvX zOd >Cdp?VI>yoZ(~B1V#@r>Dsfby07QR+OR(pOrD0GwwWA^!q z`cj%V*rH7IyJ3JHY|Bq(=oUATq`7F);iP#FqB5lE4yE+PAfwVFr?fndPo)Ju45g*H zg~!sQc_wKk Nl)3Gtwxh(4UtLo2cb}?4(A#BXKBWCBEH9!n3B{R>*#D-J$QSQM`RkhdlHN*E zH0PYAzCYKzu5D&51G^?=irkyTX}rXzM|PIp0a5pBZd}J#k2xYr$pu4Ja_JAsn_2*t zRsZK#p3U#5EPuHncmd~(a$K76h7J)oE1ZxQ=t^VtgY$>=lHU|^{d75OyoU=t!F+23 zg24+KbLPckvpH>VUruXAv;NNPk+`49E)rzP=@7c7&x*TJyLn8MzL+}w{b(OhbEZ z@^b2LTgM*ymA0x_D|~&;=Vr|pBKV*kWpuukN9yjib;OeaQvTR;gC&onxjO+NjaOd3 za7JM#X YG{M)GTf+i6-5-lFWz? zyqxcjhV6>C+QHmu-Qau?p=%9~As;m(X-PY1-|wGv#q|R%YCYh_&4tiD?c~BO;ddu5 zO&UnHlj9^7OSpcHH9$Abd#d~`T2id+siv?hVjhJ3)6bUq5k_eu;}S7MBOmCHi`NO% zshkk4ijfx}6so39!im0Jy5vqp5l#`=_4y4_eF2cF|C@FA}JJIx}B3kM) zx0q7-OLkfO+ic~YJAv3$_L9V1)>0Ep2S1%mk;IKDms>?j jbs!ya(#F(72{%orNTTS1Ej*kt zTlcX Ekl^Nqa26{hmTE)^ zszoNxuHg~8BykW`674dWNiuu=+6D*PA&TnIv!{`7zkcT};U$46wAOaNO+|$|ycm=H zvSE!uV6DK>&6(_@!2WqNQzZDg7!8?7$AqN5Iz+J46rW+CpM%>_ucPp=v2?85<~AN@ z%m$&$qxg1AnGKmdN%asIC;V+1GpQ~^aZxPUqi{4i#$Wddsd#x-fr`9HUCB7&aly3F zEhmiW*c97laRH~PW-^1$Wl&odBk%8z-PU3n`d0pMm3(UqZyD? z4JzmnZHg(=O|E2k0&uj7+vb@4-dU+^QV=xnbW|z)wi??J`sF-jH)QtC;15dPd4yI> z0r2;sXwYgooxbSo=Oz`7&{sRgvvg$JseZK=Bc@p2{v{J9$UN@rTFv(>>f?xbWQ}Z$ zs~iXXa}z!$GYM|&TJBIg+-xuY5 `Ck5fYG&U72g=iJ#Sj9-)Td6tLCjgRYIa*wx%mB0MZ)2HzXS&BRMo;DC`GsZt^{1 zPs`^tAX86lzfksNAOg2FI(YG Z^Yk?jv}E1LBq{jWvRIDGGp#R5lgn0feJz>V z7yupu_M`{{z@}9|S@*K|NEH(WQ1bjD%S@y*a>+iGfdbOTMTLt5kN!q;It@2<+t{VO zdzVeDeK94