|  |
### How to Use
@@ -130,3 +130,5 @@ N/A
3. The DevEco Studio version must be DevEco Studio 5.0.4 Release or later.
4. The HarmonyOS SDK version must be HarmonyOS 5.0.4 Release SDK or later.
+
+
diff --git a/README.md b/README.md
index 8bfae06..fbe844c 100644
--- a/README.md
+++ b/README.md
@@ -7,13 +7,13 @@
### 效果预览
-| 主页 | container | node_base | node_camera |
-|-------------------------------------|------------------------------------------|-------------------------------------|----------------------------|
+| 主页 | container | node_base | node_camera |
+| ------------------------------ | ----------------------------------- | ------------------------------ | -------------------------------- |
|  |  |  |  |
-| node_light | scene_environment | scene_animation | scene_shader |
-|--------------------------------------|---------------------------------------------|-------------------------------------------|----------------------------------------|
-|  |  |  |  |
+| node_light | scene_environment | scene_animation | scene_shader |
+| -------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------- |
+|
|
|
|
|
使用说明
@@ -53,20 +53,25 @@
```
### 具体实现
+
* 添加、移除、遍历节点的功能接口参考:ContainerPage.ets
- * 初始时会使用深度优先的方式遍历并打印场景中每一个节点的信息,从场景的root节点开始;
- * 删除节点:调用remove方法删除指定节点,不会重复删除,在本示例中删除了头盔节点;
- * 添加节点:调用append方法在子节点列表的末尾添加指定节点,不会重复添加,在本示例中添加了头盔节点;
- * 添加节点:调用insertAfter方法在子节点列表的指定位置添加指定节点,不会重复添加,在本示例中添加了头盔节点;
- * 清除子节点:调用clear方法清除子节点列表的所有节点,本示例中清除了root的子节点。
+
+ * 初始时会使用深度优先的方式遍历并打印场景中每一个节点的信息,从场景的root节点开始;
+ * 删除节点:调用remove方法删除指定节点,不会重复删除,在本示例中删除了头盔节点;
+ * 添加节点:调用append方法在子节点列表的末尾添加指定节点,不会重复添加,在本示例中添加了头盔节点;
+ * 添加节点:调用insertAfter方法在子节点列表的指定位置添加指定节点,不会重复添加,在本示例中添加了头盔节点;
+ * 清除子节点:调用clear方法清除子节点列表的所有节点,本示例中清除了root的子节点。
+
* 对节点的基础属性如位置、旋转、大小等操作参考:NodeBase.ets
- * 修改scale属性改变节点的大小,本示例中改变了头盔的大小;
- * 修改position属性改变节点的位置,本示例中改变了头盔的x轴坐标;
- * 修改rotation属性改变节点的旋转方向,改变子节点的父节点的rotation同样会改变子节点的旋转方向(position同理),本示例中改变了头盔的旋转方向;
- * 修改节点的visible属性改变节点的可见性,本示例中改变了头盔的可见性;
- * 使用getEnabled和setEnabled操作节点的layerMask,本示例中将layerMask的信息打印在界面上。
-
+
+ * 修改scale属性改变节点的大小,本示例中改变了头盔的大小;
+ * 修改position属性改变节点的位置,本示例中改变了头盔的x轴坐标;
+ * 修改rotation属性改变节点的旋转方向,改变子节点的父节点的rotation同样会改变子节点的旋转方向(position同理),本示例中改变了头盔的旋转方向;
+ * 修改节点的visible属性改变节点的可见性,本示例中改变了头盔的可见性;
+ * 使用getEnabled和setEnabled操作节点的layerMask,本示例中将layerMask的信息打印在界面上。
+
* 对相机的属性如投影、后处理等进行操作的功能接口参考:NodeCamera.ets
+
* 修改fov属性改变投影的视场角,本示例中设置了45/60/90三种;
* 修改nearPlane和farPlane属性投影的近平面和远平面;
* 修改enabled属性改变相机是否启用,设为false之后控件中的画面将不再刷新;
@@ -75,6 +80,7 @@
* 修改clearColor属性可以设置每一帧的刷新背景色,设置a通道为零可以获得一个透明的背景,设置为null时不会刷新全部背景像素。
* 对灯光的类型、颜色、强度、阴影等进行操作的功能接口参考:NodeLight.ets
+
* lightType属性为只读,表示灯光的种类,目前有DIRECTIONAL和SPOT两种,分别为平行光和点光源;
* 修改enabled属性改变灯光是否启用;
* 修改color属性可以改变灯光的颜色,本示例中有三种可以变化;
@@ -82,6 +88,7 @@
* 修改shadowEnabled属性可以设置灯光是否产生阴影。
* 对背景进行操作的功能接口考:SceneEnvironment.ets
+
* 同时修改backgroundType和environmentImage可以设置背景图片,backgroundType为BACKGROUND_IMAGE或BACKGROUND_EQUIRECTANGULAR时对应png或者jpeg格式的图片;类型为BACKGROUND_CUBEMAP时对应ktx格式的图片;类型为BACKGROUND_NONE时不设置背景图片,需要同时将camera的clearColor的a通道设置为0以获得透明背景;
* 修改environmentMapFactor属性改变背景图的相应参数。
* 修改radianceImage属性改变PBR中的环境贴图;
@@ -90,6 +97,7 @@
* 修改irradianceCoefficients属性改变PBR中的相应参数;
* 对动画的播放、暂停等进行操作的功能接口参考:SceneAnimation.ets
+
* 修改enabled属性改变动画是否启用;
* 只读属性duration、running、progress为动画的时长、进行状态、已经进行的比例;
* 调用start方法控制动画开启;
@@ -102,6 +110,7 @@
* onFinished方法在动画结束时执行传入的回调。
* 对纹理材质进行操作的功能接口参考:SceneShader.ets
+
* 首先创建一个shader作为ShaderMaterial的colorShader,再创建一个material作为纹理的ShaderMaterial;
* 使用Geometry获取相应的带有Material的Mesh节点;
* 修改shader的input参数;
@@ -109,9 +118,11 @@
* 修改materialOverride属性,将纹理覆盖为自定义的ShaderMaterial。
### 相关权限
+
不涉及
### 约束与限制
+
1. 本示例仅支持标准系统上运行,支持设备:华为手机。
2. HarmonyOS系统:HarmonyOS 5.0.4 Release及以上。
@@ -121,6 +132,11 @@
4. HarmonyOS SDK版本:HarmonyOS 5.0.4 Release SDK及以上。
5. 使用6.0.0及以上版本IDE构建此工程,会有以下告警,告警不影响程序运行及功能,可通过升级build-profile.json5中compatibleSdkVersion配置为"6.0.0(20)"的方式消除该告警。
- ```
+
+ ```
The 'createImage' API is supported since SDK version 20. However, the current compatible SDK version is 16.
- ```
\ No newline at end of file
+ ```
+
+
+
+
diff --git a/entry/src/main/ets/graphics3d/SceneAnimation.ets b/entry/src/main/ets/graphics3d/SceneAnimation.ets
index 8e48d98..9199076 100644
--- a/entry/src/main/ets/graphics3d/SceneAnimation.ets
+++ b/entry/src/main/ets/graphics3d/SceneAnimation.ets
@@ -13,7 +13,7 @@
* limitations under the License.
*/
-import { Animation, Scene, Camera, EnvironmentBackgroundType } from '@kit.ArkGraphics3D';
+import { Animation, Scene, Camera, EnvironmentBackgroundType, SceneResourceFactory } from '@kit.ArkGraphics3D';
import { Animator, router, AnimatorResult } from '@kit.ArkUI';
import Logger from '../utils/Logger';
import { Constants } from '../constants/Constants';
@@ -31,6 +31,7 @@ struct SceneAnimation {
scene: Scene | null = null;
cam: Camera | null = null;
backAnimator: AnimatorResult | undefined = undefined;
+ anim: Animation | null = null;
onPageShow(): void {
this.init();
@@ -57,15 +58,38 @@ struct SceneAnimation {
}
if (this.scene === null) {
Scene.load($rawfile('gltf/BrainStem/glTF/BrainStem.gltf'))
- .then(async (result: Scene) => {
- this.scene = result;
- this.sceneOpt = { scene: this.scene, modelType: ModelType.SURFACE } as SceneOptions;
- let rf = this.scene.getResourceFactory();
- this.cam = await rf.createCamera({ 'name': 'Camera1' });
- this.cam.enabled = true;
- this.cam.position.z = Constants.CAMERA_POSITION_Z_INDEX;
- this.scene.environment.backgroundType = EnvironmentBackgroundType.BACKGROUND_NONE;
- })
+ .then(async (result: Scene) => {
+ this.scene = result;
+ let rf: SceneResourceFactory = this.scene.getResourceFactory();
+
+ // Get animation resources
+ this.anim = this.scene.animations[0];
+ if (this.anim) {
+ this.anim.enabled = true;
+ // Register callback function
+ this.anim.onStarted(() => {
+ console.info('onStarted');
+ this.animationCallbackInvoked = 'animation on start';
+ });
+
+ this.anim.onFinished(() => {
+ console.info('onFinished');
+ this.animationCallbackInvoked = 'animation on finish';
+ });
+
+ Logger.info('ready to create a new animation.');
+ } else {
+ Logger.error('No animation found in scene.');
+ }
+
+ // create a new camera.
+ this.cam = await rf.createCamera({ 'name': 'Camera' });
+ // set the camera.
+ this.cam.enabled = true;
+ this.cam.position.z = 5;
+
+ this.sceneOpt = { scene: this.scene, modelType: ModelType.SURFACE } as SceneOptions;
+ })
.catch((error: string) => {
Logger.error(`init error: ${error}`);
});
diff --git a/screenshots/scene_animation.jpg b/screenshots/scene_animation.jpg
index 9cbe2f574306b4ac88ee7c3d24d8bb7ee6b25b16..be61e4fae4b75b3f4feee3d49e32813f8a158a2a 100644
GIT binary patch
literal 260554
zcmeFZdpwkH_dj|I32Bf+6jMQbj5){UC1h7O~#26AE0URv9T zV+wtD>)jV-Hf`su+xos-MdhDBpXIcj#iY@EUp$RyOPyfpQupe?FLqu3WxO#_;c`O6 zF@)2p&v(1n=o&SJ9?ljx1R>_@Pc^@g88oh_+JHZ%8~PJz$BbZL+35>yu`BAyYG06I z1KXL_35Nzb{r>oy-OCi3&&VFSQGuOwmVYQ{Rfn= =^MNEJ@Ei4YyLZ%u o%S8 z=8daBM8U-t57Ce0HnpI(@uq;$>1XtN7F*3C>W-Wm@D?!?sJVJ*ue5U;36m~gK7SgY z-47!h?zr`ie%T?s@QF9xBv T7%RN8n3Eczj z(z%P{7%i4zt#3c&)r+E{*H`9$qK1;$K@sUw%Kd?cY97-w-uhf;o-) zyx7D59@8JWim{FJn2VfG1lnojHcq>_D^=v~r(rU$S%kx}KRa)F+Hzh{4}C< >HCSx=^+g=f6j>yM>Aypf*kp;0 zN|Q2{JKDVytX4w{pOwF&C^=XJ*du!y?CBG^0`C6X4QOHIfAz7}9qiY&Vn0pA)uXUd zK6?DJSr<6o TG0X_7k{-bIe76>bTjdP4dwae7Gkap#J2 z-(Fq`O>~gJE*f$aWoFK8a;Gd@DQsI$%8`XPGeAcm#KRRQsY )tBA zU7?~|H!(EpP5`@iHgx{nk9 Hy0dEQkz%$-IWJi?PLl^ zk0qX%xb^w7AD`&a^%Zx`=00nF%+ee~tQ*|b<-W1 i187wZyY0a@OPW?8@@jH3M zr5g<>>(sX_iEg|N4IfpGyI+ec@0l{!f9a93e^gNG#2hMTiP%mM^37;y#>$oSlvO@p z*d_=nT<&toF&O@Ze1-Lcu@lHhN67%cOH6}&kE*>M_KAt=WIXNL(U~mU9L`75=GQb# z^eftKqK1@CYt^S0@8WMhGhq%Iq+1={YgT`;fN31PCs()rP0d-VGFs5r=S+_}!MX6c zs`7j|uDGA6V`-wJz+^nj7?SJ9KElubn|gjZ6F92NvH-#~-_m8{YYJbBc<+!QHaN zSt>5xTYa+|Xjf*P>|piv=jb8~A@)AuZjf_Znhun%yXzoYP*iXz@mFjU^4(Ep!;DRp zy66p>!2Pq9`n^89zoRs3PaB?-pZaZ><5`A>kFt;+uS_R*F=PY!B3Nbb?o=7Cxcrv? zytgzl){mg6hoTl`o&T!&sWtHZi1N!SW2a!pak`Gpykbh~a!O18>+x72|2gu>q<55Z zcVgM8)`4PT$1J>?Fr_Z}zV-z@v}MIN(GMatR9Sq!6~od=+&hE&{X}1&ZP0YNg(JAk zR0jLROam`+zV}S0qWOHi5+^NxZW_oH{A$w&92{cLPSzKcWco;)9cWBA5hG#x(o$=S zHFOEm<*^XNXGHId655k-UkJ8hfQ?KckC5R*M=ELR4XW$NP5$iX BG*#5vt)R?J RI8$5V# z>r6qxXlYf&F lsVBrti|Yxxaa(Eqt`1rmU)8ugUo7&SV|$e(QPsImtFo9Y?XJ#*4Xr zqRRXE8?$^@v%KpJ5yBHO>8IkM)1#37{q#+!krb8$`P^GL_|9-!sG~$gQ_AB`?P@pM zv*x!d#P{xK6g_eLKy1*QSKY|A9)bIy3zS`Zh=z$%y^D&&uEQI>d7cySMfXCXnrhc` zzwo^>4 g{-L#eW^@jDY**PfJSrN{cApyKy&y^(0uGxzXug9fk zq|9@nPrLAgMkA`BU6(dD1#V_a*OU24!x{2>X`2WNMM+);`B{-sAFor$T8hjt(6E!& ze#wRS@08Tysl5$fCVwTc^j6%PWMl?vPH+5->fdKOmoA8-{KA#(&UI3czDo{2;_hpF z!2X-VzPa-!F3p{y9({i2F@$hq3NTKvOSBOE*$qn>$_g)i^UbZ@*}GoNOFL~7yb>t# z5xwpH(P4&CkDegW*U~erN-Z;UaC~yOsZ-(lE0d#ckLxualItNTyzONx))iN$H%;jR zyYf9{CJe;mQtHL*-EM4j5{s0-w0+Bh5@?Z5w1TE}$UmFb|7c$SuYO-9Ff!S-wcD^? zcU!2 _9C4R$1A!# j;>i(Y+p zs$W0g$`$K^4Jgv%rY_UTlCX#iu%Z+@ MD^9DeRZdzrEzs= z(si_?gWf~mDsls@ IW*qwG9%}H61$6JO?XS`1HdrMh(p&jUjC$D6mhz6fi@U7O z^_sl!+RmA)FOWouFV5ctt#y7`c80h4+ZVNp4)#}n8F@Il%c>WzQy*Q`aMB2iWP!a% zAw_}rXhB^j=ex? `19zI^uA^2`1uJ2Mo0Iwm^zTM~_URw2(5hVE~& 3P$^1c}>I0efVMUXwJjN3dUU+eq$+{!;5smbt_VvVpDkI|<$OYkOaV6CwGfA=dBt z?K>Y2e}aV8AE(=LgmS5EQj-=hS#q?52c}IsYP(cZ=NLFfX2mJ6$?8J|Gx*{oG}Fg- z+4!YI+JWL|^wYq%(RHSi^&+It@AI26WlA4Nuo8!$6Kb%{_cn4fJOnAce|k|`eADZR zNxm5_^!ob#%4UAwY?cmr+K7I@q?U#c`{DXKo;-yTY4yFoso5Bjv>dc&%NKks7kW$l zfL|bs+4)8@Pvf6%we3vgNXgAj2=7_q3vwSr^pQD2DHJqv$Zm`vRtB@A^G}^{%`^PH zFn*ps@A4-?srMEaa;vdwK+(>Dx>aN`vJ7lWNfUlcs<_Pjs8o_-UNi9h;nv@tFVE;t zb_F`q(8Coh3FL>Bh!_J&b9V|Z@^OCcpS}!H>4&jXRZ+e>@avpsd-WlKF+NQb?~Qkk z@3hz$EvFb4s+=psCsxPjlik}4=1UlnKo=PI63(tiir>wzMr?9DV4SM!wy9`xhw2|i z6~Vzx2aBf!M{;?ms`!8_*R2&8Yefc%BNPBaVt#nQ7hy&_P4c3Y 60To_Vicvfy9%_>$gH@4nxnM zFKi(m1Td^|RC}2ps8nsVFGbe-S6*S)`s*8zg}esK?B{{rxq+u(#4tu;QU#wkk$TZ; zP|r=$@wD|b-q$BbdE?#NC!0uDW|y^*VPwX7G+Sh{-*p3+8DEk(dosWB{^Fr@KH^t= zKa=qRCeQ{LA7cz@OOei 7=twHTTX@io3F&oV`3qSe1URWc^NAb PyD@N>4qI))v39&`n3_f{Xr%0%@y78 0x(xbbrhI5R z_MINy!U!RIhaZC{O6$BNe>N$`gzp|;@S`L~zV#PawSjYK>ERASv)hI^@yUO0HaErJR=N_b?K`?gc z!!%msw{X59OIsQS &WDH>Rwy1tHVkO{Fk $7$cr!ygg^C;W#APxkXF>c}fI?XchaeWqH1C`bu-t7Vr* zkA1k|&DRJOX|elb6BH9Z-iIch$D>z{GYE81I(f?6iz?`3opiRi_`Nf4Si)0bo`oyd z#a1L;d_>q;(l#@@D$=wc>o~?196 F7L#IMwcqq^vCC(dEWL%bIL1Mi7lS+-j=B>f&gcG6CKfD za|O8pPQAxGC;D3aGwb(LLpkxIDe?~vjR#wPHu*M$s1f(OnH`ET4^-_sSaV!^4jHnj zUOJ?B3Tvwu FmT `$pW#UApiblfB5xkc@S+Is} z* +y9qU!HeH zCJ4}rsI`XdWR|&lh`}zmG|_4&xwO|CAAkPIv+pW>aVu$?ZSO+d_?J{2(dX;XCt;jT zZ3;EJ#Q|d_@~6+fl@W03@K)*Hd_i8RD_^LiQ6!2O>`9ymW>xMicaD26S8I)WDmm9u zAEQYj@lI5+YQB|dMWd0rw@A4X?cqD^Pkg8m9zn(=n8dBvgoH2m9=4n~bqmq7L}IP0 zL`0|d=*?I6RO2FSNLOhFxkZQAj8gxpIIz0B e1DI0Wlhb~E8$z3FAPQsrTZv8RPHuVbziS*C5qB& z#ecYsd*wgN5?>llWm&R8Jq-@9Y@aVfuW!`mt-MXV*H~D^J}RQbE|rKwbQ1bd!>ZX+ zziG#h(jK|Wbl(dqwS9+P_VC-j{&Yathoe&=??a;Zef&q3(HmhTwt+)=je*{rI&jFO z-MAK<1q%V!#|XLtr{0FJqS*VBBoU~i6k96;mmUrCLFc;K+LY{>ncd8fjJZNO0;XwP zNK{2nlS-2F<+XWdE@yv6bkOd&hLH1Px%Mwx+H9cE_$=OW!!}UGdEUS^>|~j?vEUXi z^h(S&nhVwK4?LUgtHdy*yF_ZoB)GnE^ n z1(mn72>k3qNswF+k;pg5cs-pFTx6B}Q~Krx@(qV?OSdgNZ;d2KG~S>1AtUqoxl@`^ z5ZLp?7e#*@q11qp_C0%Z2fi^1bkwhFSML|MxJhe{{)~!LRv4AjLD(&z;eFDvTKWPE zr!Fm3V_)1`?U(`Q;!-DO$JwQ_V1LRvdH*|xZ5bRf*6DWafk2(_flib;a-aXJcL_Uh z@zyu|zW!uW*m*J7_A+J{u1@`K>+#d g;ix&mu_iL`2AqG`aQn!j?@%n*C52Z~c?gUcG9`vm0!<^V%GlmQwO@ zqpFMyne z)D=yBOSGXT=3C439eT* OHPn};5@|F&IP zs$yh&1q9sDX0yBERC=X1Ihr}dUwDdFO!~CDU|{U$HJedpzLo2}FB^9nGuz1DZ85_n z{z;se-cgTqUl)rM>+YKeEH@M%lDiN!%roKkQb6bGUbCZj%$?#rj&%E~g8KWtwOUz4 znE8$&QsF&}Xssk1@xi~V-=^Zm Pf@!!%BSO&_bA(}|73l( zrM9$|+_#otTnj=HoN)&HV^2|Ll+{*T+Ffzwl#Z9npKxo=F4U7l3Vghn@6uDt^p<1n z46MZU+C$&bDg1Lc-j!YBpH`EO+TrP~kGOSii8!imRU!IO4m*iE!Ukv$ITU#1-FMC& z-xNyI*I(oPzn^w_>~yLhJQ_D(!aOV0#=dR$Nvf?EWbmAa#E(dLFLAmdXrxWT4JTM5 znWIe#)B0plTk3ZMJ`z{|T< z7G#(cM`F{`U6$kpN2 #Jp1w8 zfS_Y{yz+dn_ }i#Mnw6Qv|3HQ!;p0^2 zGSTt_GMEF#Zw1CLE1_W;l=ptUH8|T-E@2fnk=3$}aJIVjhJRjK_p;yX{+OsavbUeM zO4gB1^MLy@@r`UZO2>32=6OX|YDZj$0eW{eUMi4>P7be8aHd+g7zL@D)t;f5-NIhU zx+ BmI_% *6mg&xXH~B=Ze_V=RoHuEljVFK( zRhq`QJP)nneoCY4yuE7Eh)P0>&f~`W^FI%0YQ7cRupU}y `?oM=g7?EN$R(R(t2`6Wll J2~AKKkxMi8oMQcUrvrIWebVjMJR;{5kM`zXtH*ENk;ODhBpo>n+DUJ)NU? zm^qyFAawGh04*;~jSD?`0XD)rALs>Vey?P$Phm-J=A7=B Rr2 zb~>v5_dBK!bJRUO76uN_%#6nO^bE>gaCus 98efp$}64QVQ8;F|BZPvO{iL~w#W f7{Z_QWFmxSoW4Aj&(MDW0a0uX3kCRsR?OTuiZu
by1xqq5FZelTHd@?U0TrGoQX`?{VzfQ Yr%?k2&QV8qj!omWRdAqdw|v3OIWYvw?Gcz2zQk0UQnI6{C(P^sPLL) zQS1)uyO)0~O44dyfzK-Fo${hvo$s#MoMlnyi#zi(0WFt*@u MpUzlzP^wM |U{H2?Wk`o>WOy@Koe?{Gfy>h%z(aWq786{g7^8H3w2?NVD4+oauf z(Djdnr=B6t9`uOu8D5^*G!b5~6@U13;vV?U@UM?Qy <_AS>DLZl-p*|sdppQ) z8(fD3*~vwED38bv<2M}zs`K;jj4wjE52I4~{E*Y_E?x#POjWI0X4_Nh8KN((mF`dx zkNne2 O++KNH;=2^tB?b%q!pg&H9W9iK;IdYXMR|2i``zk8nL1|_3q7@N?UXw9 zVfsdVX6n?~>WAZrf=w}ytq8rEqLxJOq+lXz#0v7*Db{Z_S`Pkv<`>Z_@nt4n@;%MO zf985R;?I1eqf9qe4*p_G>nY{6b6e5>_1H&)3*9?$B@2JX>tR5MNC2iG$bDLL;4?z; z&XkGW5*k)csoO=XXe{KV-h3gD;zB*dX~=oBW!;?Q)@{t1^GL?W-p?4p#oHAKH*{7E z3%`(~!mOs)lvZBeTDgU2N>_}i=jhQ!qc2@Nn!Bg8Quu>rqi`dd*}e>xrg-dV>S6w` z`*z9@GZ)`$v(C~gY{L1;K`ycrQt96Fmv R7Vf{fy#j#*6)VF#D zq~$!;dJ6NVBFg?EY~|siJoBz2JHWWjq4Fnix4Z%^&qY }MvNAfPaRdD-?c%i tSigI-g!dWITC3iIc2R&BUkb`s)1| z&D2DW@m~(SS|*zkTPqKH&K_IZuNTGn_|TLLPbtl(KV^2SoTb}5PZOhIlQN8bJEy2` z4W@E e;_3 zE+RM1;a*|Erxk%2lLWDW(1)|=&W^a2O|5>a?fL}&>{DCHI`+X_K f6FprL%6T$XUJs$#GN_NwiI5d|Y+=c``duM<%qvFmY?v&aLX_4^aHA6-$^+U?eE zBzYoiZP5lS+yrVe&*JK|o#4!o7~;0TL%q|$EyAC$?S9U8 8WzoLwnn&`^lQ z+l{3LrNv0$MV{|{Wpq FhG?Ob?a!2h D5keb0ycZ)+>X&X6`$-TsoKVek-qX!gtZ5GQ_a0 z96={~GLCwTAa?g2trAzs7$}kYxm3{?J5q6KX%>?waYnNl=S=DgZ6Lpy4R&tViu%>9 zZ9dMol2&+tFW@Oue?R?2WagoZX<3P81+)D`h7pYf7Lf-`y_KW1Fk-HCq|(KF--fcw zRV_Qkb(+zKK5m~wTx7nN;90(k8%`l_yFm%s^o4plQSV42Ud2r(p`rA9{bo7cjnONU z3}bdAONXgCFz9v-hVjkPC4QO{Z%!!0Zz)ZZ*qeAxeEs?7Z*?~*j~`jvy0u0(tCaJ< zaq)zXOg=4OiBOeeZl9pL_9A5Dd^Y^R_mG}inv0`%lX8@+ug|Jpt4KcHv`@lYe}e*_ z?YsjWPhpem3DH9;w6H0UZ7T;~>8B5}OpETJ+LPQ7SN4I4Qq7|Vcd4Q0h>j{`IB9b^ zDQsoVJ$2U?dk4O&D(_pi1!=G*Q_&04s7ol&Nz*vv+Do{4FaA2~<3Py!mUo3YZGEk} zKfV=6njZS(ARkOu0KG}U zdLb&tmbDR&t3|k|DeIhvY(I7BO-5VlJ-Ns3QT^yoZRAq9g8a##4oz;0L%~2tW+R*X zhFUTcW3zR8&QgbuoZSKxkRmrR&%BX|`?MF(^N0-G^3{&VJ@aFSY7bB4XF50*%(v$l z92Ju8e5V}tvrVFz{1~Sy|MJtFN~bLE0>_x@+JqbI;j>0*!I|%ojbm7Nw2J+>`Lge; zd$aR%ZPj-|zkzEAJK@poM+R-f?OuM~4wAa3T~iikTwU{A;*j>>=|3T1sFDDFtM1%X z2PvD$PbLrX@mcq8!QYnESUc(E+bQ9N_Hl=GXjt5`KlPM*O<|rUJ#drQIB92e=wto^ z^%m(t{ 9i^au`J4UzQb-xXyT#^1Bg){plY{Cd&w?9^9^l4#i zNDvx+uKVyO ARYMeLpF|tDO?Q&Mb z^Wwt`g146Kesqhq-@Pa8sQ;DqVk+c aZcEW2XG2kHwi|QHI#+ zvNwklHGOZ!myI*UK2q5p81^=1odu_b(PU=7g>f7K7BpoWyky{c02qV@4cyN8d$JEF z+(|QLzHaz)+(Ewm{suGgYYzFY*rzub`HAs7BDdX%`&s8!yPj*t4{zD($i5lrVLji$ zv&{;;-1m`h1%FgiCQ*qCdPL7hrIlUTc2>i9#QSNQ_0Wq}=8x;oc#ekDPIJw<6;g39 zhYtSW&H&Gl@5_Hy-BU`3Mp#P_Jo65EKK *w!Z84fSggSjQ-lWXMNIDIcNbMp3~$3-ArgQE{ReKJSas_lxeL zg?qbFgMK;)h@w(r5;kPG*@1bLmHJEtL5BI=YsM`nw>i4y`$Z^JJjQ?ax-I(DqWQ&_ zbFFe8gu~C3nr-k<9|hheD+k{0qrfLq($3BMRvn(N@vnGu=>2$X=hh>2>L6R# )#~#T`$|R)nM_^nPLjlBO3>Qs5?(; zBwGyojcL~Q#C^m^CEh_8d7aZKraUVg*Xq}Q^m*!SeX|vnX~$Ie0Lm74nHpOs9>_;} zR7`5#K-Tmu$s4$u-Ocw?GQAe7B{BWtwYpU5IE$sghn7-5((p!g_>AX+?ZB9GGD4_I zDl7=`D&F|)Y8&k^2H!(_VvDA3(9b|81l}WCVMNCrUu -b!+Y1{&ahl2J^a~P%0~m(s#EUbn_RtP{;wNXPjY5?JJ^X+hS!ED1P^y4r zKt4_Zt|7#;TBI=I_C}-3n$DhWqp-DpPDb6m$ENEgA;%2Qe9;y-$_{;#zjH+QpL%H4 z5ZVZOUvm@Z(7mP_8{;i}BHEo=ZvP;0wPf|!{+}(v;KVk`f817YQMo%eK;`pk}Xm=Q#6m8C6B^Fc$sRJX_ld9S~hwy$UwKl0kqU(%Buj-f0 zw-QxuHQP~hFnmY)`_D}wZi#m+Bu9SQPt76gUO9R1WQx7~hX9^1r`7bNhH$d=#zUe( z{am$22wMFUo2`-(Q0utd@h8hB6Pe~~u7uNi zMIE*Uw^yft1{Z7*%@90+&TmgU2R!Zg! 6 zj#wGJBKGuTsD;FdJK~N$qI(VogkCTepnR~l!B(au<#{bwsrg{P^HWe;f>af132r TH6U3 zgnHTmSdY6f*ZV#qHvG*AQ}M6Z8eZ5L?Yd9NnEZw4+e2pr5E)__+m^b+pTB_H=mQ|! z1LYK9Y79-5a;Nq&jGc7Wn9Lr|QRvEb#7$nfHDURHDxVlWvfSDKWKzzUU!*0rr;>aX zvwo!2l3ym{(u$s_kYr(u&WSb5=-8mf1_CjJ98arynSa84a>O2>sa3)OUv2n4i0UV| z=G@8Y+iuUP(XjD!5nk#`b~Vxd*~mu3LAHYmOd>LicTQQ37@c3d;h{apmrC{52lLa6 zi>JL7p14x4;wF8jKr6b*B0lP%)@{vT*5DDu>) wx)iD*V9`MQln~Ru!)GPC)XT&VJN8Y0p04yY*1Ri^rdJ ze6NwHS`ILu2=hLV0iff;N%{lv31~hCtWY77ag(f%&sZs7jTQFtkujXaDRS4WsxL;D z)M35cR6bEOFO3b7+|;X$njkF6jEb4fS%e(V&Sd=H18f#4uW3HA=&Z3H13K=Gj$Zz^ zXZLe+ovnagV-C7X2A*=jQYRbeTvzqB-}|i!^F;2koL+_e2t%;@)Gzre9HZ=kuUli7 zhE|9zE=_Xc9VSa(PRJY*)3dZ!%*iKw@wLo|UOBzKnDy?U)Hd%jB5Vy8PUGsLC}dji zHxSjq#(eGPqMXirB%s u>lkr@Cs;y&@SgdymF&fc^3+jPQWWM!K+3+@nc} zQMoX6|4QvUTi?A6{t;@6X22j2AoSC&S%~}W@?+sk=d)IRvQFWPKa_o{e|{0AKTsZc zi~2bDbRb*p8`{uv!e~Kuli`SyW^^gxDzf(KWwW^n13#6-iiTr4$6|#I* JRVIh z@vlXTx33_*E>PWAe$1Czi#=Mzc9P^KkdZV|*V91cZ&0qn`OY$`s(sZ#O;z4jZ4V9w zZaB+2s@BH6(zTkzbj_a1!IlJ-(@v*cW`FKkDflQ?SRm~$V5M+ zJ!_wkN&d&e{BejRf$pqHAMpSG4Ws|Nc@R;EW%DH#)c)XpxL~T+V&o@5gOV-#t~3qx zG1O13SwsbP3wUxc$1jhzn@xB=u?VKX`wuC?YPz(;z~YPSj}uh$Af5HQ*;Q=lZ}W<> z4^tU@aO5tlTEa3=JU_>~*ic(LelQ1>EI; L~CHSXgaUA=~&MBde4gK )zf((G_yW72nqeG=K0!Cb-VT1CB{&g<2 z+&WPb`Q*q!)YV?3a$M~;j<$Co^MMNyenqNHCvT|e{`Gsn>X (~pM{yv%i)+AU68)@|T * z&e$ux=w3 2o z-hXmhWh_^dcA)X3KN%b8cW?Ox!I`2KY{dv%0^sU@_myW3;m=@0JlYc&q5!&Lj1rCS z5)SVC28_!E>CE6t*q+J9EUam)wCJ}5Feh+G_9MIm7$O>eL13#}=61|eO$ct5)8skW zntMCDdGHB8T;sQ`IB?TAA7RfJQOszY1Z^1@M)TqN+e!3Xm3)*3z-EDYKuOMCf~kYE zH;S3ip*-7EpOjCV5KyW+0o=}8H-?Eojz5R3xG4kWZ9($tFUX(PaD3mNWtkBYPw3}B z|8M(~nn98z8f(4 0WWa;EIt8!)a$T4(8sgNO5w&pmz#pm|ALez!nWZ&$Ix+O z6=Y=Y7;3|TcC&7Rq>uDx1uEX)j#( gjIfLuyg z0!L-R?MAWW3t*)6Yk5{Gc?Lv&04I$;Iuc=+?Kx27fOT@xhTlgL=IWx=%sX;2>O-wx z+vGi}Z&)7H=k2Qq)F%`-={@bWXHy-N`U*MC7EVitZz%-T6Yo>OtcVU&C2JsC*pUOD ze?d+bT 4fKBVPiXCKX&D9w4GX|hd|RsirX~j z@YF^e=>Zw$n$B3gtU8Kz6Dj9ewWU_IdhF+qVo;opezOYAvl(dT#Vs3q##D%l!8^Yq ze{eua-NL9ouXcX5@D)tk6JXc#j4?gnW6S;v@=XLrEYczS2Hy7EikL%_#3Cuq`=NQ2 z*KudeHl|762EP^oTkCkb9I;?vW1KWNw#wTDTQ-7{x^9 UJ%OHVd8#wGhlRmNqt_`ZC zkDSs2*?fp`|H%egAi}|~mas(zF FQ(^zvP zc-TR~sfiOX9Y&Hcq7R29)CZb5y$S$$CkpHSu7WNyTAcciZ@?(^E95ayKJ)>lXdDgh z0FGh;BN#9>3-l7Wb+7IeXeynjAS*ckbbpF68HG%R*Ta_k5d6qFscbMQa$w-0CXf@h z!zxoWo#rrfmfL|cS+@_0g*P48E(QLiq49tuf}RliS3=NBqrmWWE(~ORMFV>O{O)&y-00jo(3Ag;f-d)t@d0bJ1f5;EFk*&u(0pZA z 01UlE|yDU$%)ndL#Vo9Tn|y<)OrGD+@V;m8KFKm-sNbLo720q`TFd^5M_at{Km z_WzCoed8Gk-sj-{dmOLfo$+qtxc?6C0t_?wC&L( 0sMUzmG%o}*vca5U58C?o z7y@*I|2d?=xD5DfT!Q-*5&W>f$7LM2YMMTZ06TfKX!3w80g#1t=z;@PyD_`ts~g-w z8Tem?fYy&apyX3HXApbnk=OoJgMUwqzveL~Xqv@8rZ^Z3MgP?_W>g*QuXzk2i~nnq zqnG>8{P$h|nt-yrYFnTNTH{Db5+6 SD0XwZIfarhvOqLg>UKS+Y7#xgju>MaJ zy*}}@0hqw=F3a3q&GvI&$H8C|rFCb11MQ#4DFaXZ!ju>Q1W>}x%;>ZMu)PIXSVL<4 z3(rBrqm^iat5b5j2|=F&e2>tjY{0Nf|5=w@I0^TO@c=;Sa~{y9uND?O;C@6m@LmOO zjk^on;bH<7P~=2eFnyggqpy=YU`gei?T*H70ok47(azfXdqH!dmhYrQXi>bMbgXAc z2S?ChW2+l^3mMfwyZ+Z2>=rx(6KJM1dIRp<_S>1b+o$PJFe^t a*4 NdUzN`xAj=i zMHs#vQO7-Oe%l1`!W5{;jtqd5Vzhk#uLO(42=l~NWmi1-o&w*D%|Bowl`jd1ge2&) zu~AHCSTsTdW-ACIVw|Z@z|mCH(_avwU )1yp4GX Zn6mZ)IsZ=f6iM^W7!OM@{~UN=im!TCm?o>=9dDQNI6I?})(rh98QXxEJOguj zrWL6W_f@TXk?QsV$mzE+u_ux zP4xD0eBB`CDX=gjcY_9Yf`$tJ0RA2NTC ;R==<~cv5FWX4jz;h 05&?GfVs!a^A6< zMU5awr|ko~mWOnTfXwh|3y>?979UXYKN1^~?+uDG#nD;-aSnPmOqm(2UR@|@1MHoA z6TE$BGd}2RIksvc=ZzM9Xawls0u{dyT(7ke1i6Etf85)U`~|sFgInCDQ+h6VCMHsk z8UtGAG>8<0RjlGe&YNVunvQXSmBYyi{n4-pM42(`AJnKUk_7U#)}~uAnHf4n8_GCf z1fH+*MJ>jH0$>##n=TDT83)YBJgP8Vjm*4Foze=jiU}1>uN%EY)S?Bb+t{_NMQ(-` z;3SFJ6sI*Je!^`x*kBcNOtJJ26KVwRTj@Kp8j9}u(8(%F|IQ-wAm7^F+wcdi8Cv`A zyi~LnXv9DBE^-HjhMb2kn$u=DGBa1W2LOGeMWVV8Y6GwuIwVTQ_E(|j&gxLpk?+)n z(DYEHf0S@7 0pg(+xvrRsyXD3&{=6pFP%EHq_4xb@c{r zJJgyt0mlbG?WmzCbo$^D2(3+*l5EbOboy>r=zRbxptYe6>V>xF9xLnI4Y}COy6IM= zcs#kEo8hxC7!%3fpi6$x0O149OmWJffeMumQ15I#2Q^O@pUXI)QwidYcKS`N!N846 zT_}%ERBLC9J6wtCQ3C@i&IPvEjRZUD*KUPwY!0A!X*{5Gd53oL$1Furd4@K{L`8IB zrm`s*dNmc-PwSKUGY;s_JCG}zx|_z{*_vIAh%TmCL1vEVF_B!Ax|@OtJ~B=wtxoDf zSuW_sUd~)6n2e9R^I7BfXpjm@pWqpBdeD*5LOtbBJ!Q!BbT?3R6+WL2ahfT8?WUZk z0Mbp1^)zp~sZALk2`2a+zS{5DR|2^`uyN$>$^a0R>y_Lo7`&P3Q3sktQ8_q-%-c6* z6^&z^x0?Zr) Fqpg$5 zFzO?)hhDS6_R>0ayZyv;TVX$5b>Kc@KT|AzL7v-ZZGeOA?|0S*3?33U9xd*LI?2?7 zuGvL@q|+VPgmi!WG+Gsxra5i{6eTW14KY|<*e}TCZ@uV>CM1Y{2ef_FtNE1u;1Q^# zPZaOfaj>3L%bzwO#ZJ=oX+}VwhOBfFfkM~U(5*#3jUvYu#3*hP7(5Jh07DHDTXBu6 zrGng{e*zEY!ZF}2-0lzT)-pweLQ)dAuNP=iijZIktM2GestR{>C0xtEVW?Ym^f(DD zmv-Apv`20T8JFA9Ve<$JWW65z-jh0hpw6iSK>o^V;ES?8QWD%oq(HcSMANllZ%e++ z^({@edOlr<%tTRny-}#-dm(uScHi}z7XmGwOl=gMZb c1iL~q6EkzHO$K=U?I*LZ_+_x|zojaviRGV% zcaJGZ4inV{+MEHNKeG&NXw;eRWVwT9?`g~zF4DCBo-VVhE>Lt!RbtGMC%bA5tUJ5W zkMh?_c*2wYsx#QfUWegRtHS8fOUFabs maBLARW0uUGriMLF5hUGqc1_%e mYRqXPhYTyrU`JJO>fRd)&vB)q z2Tg<0L8Csaij$9)z$&`8 %jHAH vwjE=78M5X0$6UHgsdHL|oDhz-QT7u0q*biRI%L zot-RZ)||Rg_^4!%mL7S;Sn}*GCBcE`P}e8*qakMm2hH7YDfU-rm{h`KAP(=#@&(6| zhx}Yw!;>M+ZeGR;IIAIN*L}yD{4&^GjuyVwu)d=~u(%N(0r`}8fWtIV1pEF3a5B<$ z){ fM*jA_xaMgmBXo#Nyu#zcRQ^@t$}&FW&n5; zTU_O1Af8>H8KcEp8?(;Sy} a9%9OCAr;Lnhqs6Mc;PbR)O}wxZ|; zU0)fY{*Yq?qU}6Uqk3rv%oLOsiD;6ZLg@#a^5&`j%w;)B4B{|p>gx^=b~b8FYDG}& z$UVR|cABi?HPHuK+krY{ N4Jc1J{sOgKrEs;>q#Wsl z7$rFuFzdIXxZ3qM(BUZDY4`l%CQv|}MbO3BuI%O&Om|%};8<)F2{nO+t}NvP)r%!| z_2zRl9p{wX9mXx&Ywa>C7N^E7`)a)z6lz7gF&`iH`Vz?&gQ6Q5tXjfWG0LJSe2Eqm z3*l-u%l4iFu*cO*Q0L0_QEu+e)ut9YqVl*I*ghHQCfHvn^nw~nTA;qqs~?p1Iey8@ z(o#*?{3%peoRRrqPyb=dLuXB;%^9v-_A=dTaOKLIf<0=z3|H;X=M|qUE>>A9;Dx$E z3d@p_&t1D42u3SG`HY42?XXq_m+RltX6_p^Yd-Axbh1QRt(V9LNMd4j%kIMWm}iOr zs5Ls#lX%#Yf^ogmKv3tV#2Ky_*m8MwC$(;5uw6f_H=X=$x_b+hW?(O0r)hJ=B@pcj zDVR2ywiuI4Et?FHkmjz_v|YKYH*L%eJ&vBX=#Wfm$zZe76ak?UZ3n~|!=Jm1>J-%( z$i=F22S%tw)E&!N$)|^YJPZ#kM4Su}-{SV?x!;lnvZ?K4^D?{w62xl7T8UVQSU{ZU z@vmk~W{g>o|8IftWI0zODSU{8|KGGY_GPaaIQy&hro*v-#!1xiN|i#-ol0DO*azM{ zL; {7wVpU+ E%W&8*~HAz9OADiNJ4?+faTcFK)?r4ZQIsPGC<)yb_C z0ws%a_eUl}zMe{VDcRTPEU)U9j~7ukX68K6W3@{~64K#(KG&Zo)BbzbN p`XbHqg<>ZUbamz3*f{DD7SOlOst8iHJK}47Hb}uLBY9`gG zd=WJ_gRG5wJGB5~76&bh>6prC6uzi32q02(OkpdO1$zU9FVq2Jjp?NJcAr4jg7qP- zfrwY~^b}VoH;N-$7G9+*x74DB-$U*sX9oo*Ea1x62-GYrCz;P
%-@9!v z14wcQDwP7?rC$)OVPn?0#$8OhOJj2cv(o-ICJAoG)LGLp2?!-G{FbN-a=V~}y!q1; zJX8;oR=`Kb_61WAj{=X86;|&Tf)jFb)a1G)lHTS7-GIM3nTwpb;tT){1JoIrGo_d* zGL&?wGUM$phy^EPb<^^#Q3QHL-y2EZ50ou)Z{3PW;2jZ=qUsyig%41>{<2r8P)4Qu zk+rf2f$d&9=3})^M3v3eaUj|mc(@{mM#3q7Sao3V)?!2z3nU}Z3h&En1cRbuXPf@p z*!i=9Y7i(x*7uqK?m3uBngPNm&~^blKh751W8>!tTOh#V%+qG);FLq0Gy^kZaLOzh zFbG&Phx>@EltZjE10#B1`tQK?T@xn>Ah|lYNvgqUd$Sk0CS|qNpk;y$P5_D-?z`wi zf%2fRAfSb~RE0_N_Sw=BF5IttM4paKK~iVh{e&$0YRJaS@4V;X88I0Tf{HHf0npTx z;ChZ)P~L1gg>Z$4#uT3j?k&e)uf`}tT>mgEUzyh zV2B45flM-!B%5u3iuj YA(zT~Y75gG@)iNid{j#{Pq#G`oi|*WV|)_< zvQL~fyfVj#OEO%c79wTQGo8$isN{P|mb_{%qqY#sEAxRk*VpCUTiy(a)|{0e14&v* z>OB3*2swPQwD*#1h~$ FOKi!fBd|6@1cRMmg0@4u z^-dBrXn|$2nu|&eq|hOE%i?ZZwlk=262aiKMaND~e{cCf3yf@R7Qo!C;NHiQ)ia%D z+zdu-yQu-a*qFG_MUPd?^!+o~Zb}--;Y$`bvUkE$W&n|7GkFGstX%oPzW$gOU8|re zH4a*h^tw2cGT01+FL&)kbTXfXDnOIqR%$Nkwh&WiQm(v@7s%!fGEZjsQHw540W4t# zF !BZIxwVZr>QAr^DShrjT!R)5H8kHh%a9zaqfbl>(Xj?9_L z0s4&0D5dWA@Qr;o!CmmN4cQSeoyo2%RAZkhYyf)kNHc*a@boXp8NwJ1Rh7ZnB?!*K zC-SU}QMh|(`Z%z~y8`rkHx$ Kb*Ij+BA-u1;_sM zCNpG~o3)rwq?BFADIt+^D2KDh#aYAyR#EX5bWzA5xML64>s>8geI|PZW#|fJn57+t zMF=d+*8hTJ(IMv>20#w}7laRg1kCMx75d&U?-T7bne?}RMRVgQc;R>%O*jvhr!UBL z5`FL25&7O}JDH@nkq$gI0O+j1ru)SFw|Ri52zGdJX1%aQr&_Rm )fjY|rwD;>!DjUA;URN&xkrM<+G4lfADHC}>T!L-$U;{U^FrUv6 zjIVYL7ED$VdU9?I =IjI6)ny{%(05* z&=R!B9~ceUqhXdQ$R+7$7!Q#YOf&xeNcZL8WQb-=&J|Lgr1_InW5&JILiNY!iU+29 z=NKXd@RCNd>E)D6`p{OOBT8OzU~i-_ Egj^PtpAY~56b~Tc*p>Ows|A+I^dwK(FW48<*4#@{Ke%->!9n2^9c rUT1fl^T_rzkgMjZF$ecgh(yQ-%@bc!5uQk5soW6+3OlE zH(09FAY@}gEC-zjU7L4cZbQ&Wy6 B`3m~4pDmUpy3kqEuk zmMiUIiLR~mTx`P};AaQGq)uj}?6aodWCJS O+Hn^aLqo;3qv> ziLgSJf@2n)?U+QDcN|uyS9JgkTB0HxF1z+ y$@1~d#$umN|_c?3;e&E$OAm%sZn=~w~lpVCxdF)_T51U*Uw2WKg87w+` zPpTQ%c;`plab`@>GOiJ lx0U2GbY_ft;#%>lXyp&M&w@Jl2@UgU zjpXjwpdYDE+aWi< 1Gvpvvryu>U2_2(Xx>pQ^G6B$fuvIXSt|ZN28UgR(ijQ| zGY`ddPq3H>sglT<1wslmQN9guDEyD)&*{kSBh}D=tYul)#2Hc=IQE%AR~jkEE&j}- z9csT8dV1sWo?x-$un)i{`O%4}5fx11q#oI|Du9=?mVi>}BcgJX5&^0)Fo~R#LHJUD zIMX}u5e7mdxj^VNa(n--L<7ElOE142w7w}UFHyKQ{}pKQTck;%v55gZ6Kn9?m1$hJ zHnq$ugQVt+NaD|b68{lS*0RZ;#a?tWxL(WNKT;DTb-eX9i<`$c2Q0*{`eLKAdV=Xl zfMwLt>metfUUr? Y=Gcrjje?GFS?u*y4}o3=>S{Jj59a!{pa5 z8d=QdXcvLaTOnI;z3Hwv!^Fel@*^}G#GI4ELQb2T5_paZ5DYEAignu9%V RMU!3irn<_bYw%eq#8Wb*|-AJIz#VHQAyi=+ovkxdC38GHY{o^-7M z$7WmC%fM29x!#Phk>!bnTm;sK(;z;NfuMeHk^2^p+L)^%*?7+p<|E8T)%fV0)LMzE z`wBizPvzXPQzY`f%9#szT3#OOVWF#aRyia)=7>nPlL(3D(DRsaSGRy7=UC|ux7qr4 zF4v}xZeNRd>*&S%%8BR8)s<=E2G!t%8D+5u9|N MH*qql5>Y*LM{ z%k1w;{qOqf4@x#q=m2&d9TXpw465sO2klp6V`D>mVwINZKNZ tAdyKnK>C#A=aeWZVw`LexkYu2>~-2t*kg()~=u%|&RgT=GE`gqA6 zIXg*3J7wcN?3piGB GPSpmV>^Hf3^)oK=MCJ^66H!MG=j0hVcvro#wKcrLgV{uek0I z3GK`x?NE&No6W)%S!X7-KMP;~;jDXp-r~fzG0UybN`kM>#JHK-Cn{W;02(KhcNR}{ zU>*|>?oO6VvD?gK$a#Zn!Wg?GG8-qUC1q@Pdl!WDuPepfpSMdO? m9=s6wRQ)orsi|o+#Mp>tB%W7H6gv*amPT zc=ovbHztnlU?MB^1#bFSaS)I>hKiO@4{-sK&ryM-0u;&8N-+R=%X(+;R!q$R7`gXy zA`7yw0obi0X6nQ>PK>d8qh;<^TUOuPIC28o3pXQvRqU-5%hhlp4?l{5#@ 85 zp~x4eNkv!BH*f19&l;2Xpv%dD#?Uo99rjFV9n!ev#2;H7lt9?us&=5uBGCO^cf1mL zNpJg+O?6z c@O#{QSE->P<^7KK}bb{PS#+gaaLH1&-uOH#7t?WjQ7I 2OHP|JNc-GW$e%Kq zw-jAcKXjSnip97Y*B!|l8jTQD%RGzkFS7UxdX|hK8NHtmNbtCto5fT@W=tg}3?yGQ zTg4vSl!r*Bnm;hqls(<3A~BT=;X9vK>SA%=C-!(L9^(2P-F_Z^JbQ&Y$552o^D+5O zbBEQv#2{ye!rb&iFWvkgmmlH6&J1tlXUvlQge7QK*E3k$ v6a#TnH@QYZ;xhH&Jt@X7 zcD5<^+<)-@g6Mu#Q-m!?=jK--mGJB=$7efJXL*F?Jy;DYyQ x-`4jIM!)v^RBU_G29vw{R{sQ^FPC>etlTO)e$%VGf+&wk}!c(Zo zbUxDE{3}C#VWx_3z9)`Rdu^A)ME&uc0{rW(LJlY2A?1Y9;idQCv4NM~E-QUnI`Azr zW$*f1g8kKNw_fC2d70!L`(~@`+)a}XsP}hlZpQTc9Q?}p(|3y4WX-Ki=kHc7Cw=l{ zC;d>Fv+B!zb&R?8#n`Pvh9+G_e)weuOr#I=!K_hv_$NEYe#~KbMZ9i}&-deRqBXAR z2t5?PWAv4U_45aKPcRoLc7wpFsoa-ZWflL70r@%pvBkt&vzBvWq9J=rikhP3^9-$o z1cK!bTbbrW u`^kV(04@><%~)TudM78g9;^;2cjM>GtHD=!vOqSAZJa+v4c)PBX-Bh~KPy zBv132X@46x!$1DuLH+uIT_cMKx1)`y__3fT80r36O>nC3{b*K(YF&xiNMh#sdzw Au_I75IsMsnofTGuCuSY$6fcEt&Mx@ zN{`2%Zm5I?Jmkh~uY*{`5{w-l87STpxNmt(OK;fVl$D*W{>JjC?x=fX zx4WfN8v{1r1|(}{99}WMY3!QFJ5cr7zdwmfnyAe>b{SF>d^C*IYq1g7A3o{+pujFi zYEsAsv*CM*?vbRF=zJP&^=WOdFYqgjvtQ4$U(eWE=JL+KXa;SiApkynli6ZT-9=NU zP1Fz4b0~i40#T5Vf^592dw73b+a^8DB@X?TAaH~Bg8D&s`EP Nf|t$A_`fQ5-va4u z3UU?iT3W#Z9JD&DAf@K3`i|#{*u&FZ6*XdZsGLbod$!#ppbe@aVCeG5^-i9utD;c= zbl zfSc*H^OF_dm(&IL^j4A^>+Ga_7hV;+{fuY$?AiuQJF#ST6se^MtiGjSnSJj+T71q! zstae2+dB7mAS5`Hejm%u+M5SmajaAM|6Y18Y}oHCy=#$M*q~MVz5~HX`vO}z*su2N z7eo vUJ3QqHJ#bT@xy%WduRCSbuG;|d3-0Kf*N;tGNGY{%kLwImn_G@PZ& z$hl$qApim5&DZC^CMS{R!}ma4 7 zbwNvNA+;ts%LAL`QOV$;py0uyV5cxy^0AWPx`M)W1+@fjH_I$5NPtA6VZ?1oc{|BZ zZrvdwg?^K{78eS50?Z3>3J_%lg);@i`q8eAh{O<~Lcapd -ob!fOkMoCow!9_AyJ)U$;blO zd%6o()%TT|B?L+QsH@BlV1sDdiL;$GvY4cAG>(7>=JW7$m*F6=I5J _9#4NceW{@t(Pu96aXg+cmGwMc{VlIXTvpTBs_{5D~@`S-ilR z*Lvo%g}!3@1&^pIf3}RfKMXwGOA(E{VPD?_RlxAlc!udu2xgm8^9y#CE~Z%N3kiHT zz3qE#HNV7Mup!<^UeB+3^VH$F*desc?Y;HuCtqg|q|mtD5O`RJ@QyFea;A7eM1s!c zXFnn= gF%2GWEUa&&w?E1%gd`WA;5I zvG%>o@ob-)G3N_w;vK$3Ul-6sF*#2~tgRH=ovb?^t^7Q$HfVa|J$lmVNtCFep@b(* ztJ2T9(K1+~+W(r?qrR#a*`i)kM<2{b%m8n_tOh}j_5S$uqpvG_rN3)02@hSdW~Y1z z^}lfEHp5R&75D=*1HvXyKMdhE@0})QAH5{{$Mm7SE%ki*SW zZYfe1^l%3?k$0LpOrGqE{%~E*xBh~)^t&*wP)-~8Tn8(=kAT@mDaXbL(i$od-8^~Q z=XinXchtRVvmY0b0tOQ>p@sCLL}7eGhL&q=n!3In6SS?$LX)-hylC%w2UN)~WvV@D zj0-#Bptqc*^D3Py_`bhr)WLMmw#|LtjLP@5)U)>0Ud>zpPiC*D$ sce%B*okT;lHEzOWJ`^_TWm(`PXj5x;B zu7ejYnXCP(GM03BuX3Aa$-9bqxjm%NHbl=N_Q<|uw+j!CS?T}Wb6dlyPHT$PP0F0I zsO;lg9M~_o< -<=t&D2<+cDer5mr2GCIHZ9rP_rXK! zzB1ppA3B&q10pulv t|}a`R8hG zN18s4Ay$6_r~bcsD#%=-_48lv&5h9@zbTa-(SP&xYM9gJ57h$#{w1CV+F?=hM@FQs za*ci>GA4OVpZKg(e>7;o(%3gWz^Oka-_OXjXDKuN>t3vs`-k>DU(CL0UiUrsvptU7 zSiioM9%j&WO}Q4I>T5RGTyeu> d0d$ky=Nd}`7Ssw$BcC! zR>Czs8lmTND#Z{P9?ThL)YW&Q=H^yu&X$Swp4yJD3?J8Ei&QD7P9IjvZ~D2d>Ewo` zEzLXs&0t&GpW#%i=ue)WAK+dk&P2PBt9F%~clrr&(`9G4Pe7kRpQYxLKRjrid^@iq z7gXYQSi8nMz%stsTXE%WLK2gU?3utO(NuK&;m)b&R~{xut=~EM_yG67&ovXBKe~?9 z3D@??DM;CGU|-s@Si;rJE*)X+guWcET2Y^Uuz;Pk)!o1M#M?Kq_Epsn+od1Q?(dBw zahABu*Qiz{z5C3*^0wjgY+!T;WRri6+26CdgtHO196j17`xNPUjr=`!;$e$Q_Ew0m zv9GN9S1;Rh`aJsP$zeJ&KHsLltV;TOi+1pSTYC*BlSM=7Nb`GYeu4*A9t#E?? {=5$jr^)#R z1O?1$y(7w|-MuZVlH$UYxrJ(xKwaOvXW6gmj+6t9mm}llLA;?!Hh$@uV(GV^&HZ)4 zeQNBa@<9K4P7awrl)C;Hc)8J6@%&swBD>)vWa=Kq({;Nbetj5gR1R@UCMNKNLe0fjS|yvy zz3L$=Ln>Yic0u|+j#g zVBJgMk2XJy0^3pLAu8E6EH_66mb``ir>~a;o+Un-ed;Y=TlTJMK>F(7K2xJn(R=Xm zYb$$MQw538Xfy-GWRjE5#mFVAw&r%&=S139i-g_->Zi+X4mQ>te&*Jx#zYdC{ZJ$O z%0B0todJ9GewA)+6YPd$YQS`8P(_RvJYu`p>xHL_rEW>ijij2 OI~tMT0nnb z+m4ETykBM|71-{U-FUbBG7iAuG|4r@;60k*@l9Ie0)`6pw7XX<_j$|;gnA>J{ Bc?tinEoc}4-%!!L;Hj^2IOSreG^g4e+5 zh(J-YF|q{%r3Q=9Li;xFHIBUpegb=G;5t~TX5g?7jx}Upbw-09f)+!O)4l7QWC09p zO%of`hyco 4O9X$wjhf3$lZ=Ja}BtU4N$nnk&SxGW4|qV zwMW37*fI~FQBhnj#5P=wcws4nx@etPSILm$fqli;cjWfDlD+DU5ZmZrt7^8sD*+ZQ zbBv$dEFJQ%^ITUD>fF;(Yfg+w5EO6JFFYmAXhAR&-zrovY1EHUGTswgqMtRBdl@L! zk2o{@IBP0CCsC+u{_66C`T>h!Q^}v%>XPcr5Vi|uea;pFd4&-W9#@Nt4=#xhcW1Mm zR%gLmSeY1Fa6=?}BWg`0BVx_3hj9Eqw0#LY)N9-S4 bKTBt;hP#N3EGBcP|OtP1fs6ot7ma!EfB)h@+-!tl*mgjx{&-0%5{e0+S ze#`w^n)|x1>wA5_*HxTX(fS}7VS|UnJp ma1*fDh~dI|E*x)b|;)qBuCnFAV(Uwy?I1^mCo>BqOt;I zCvbv21H;~c|0^J+NjrBKk9 1<=jqBdA+lt1b-|&^WD{yBg75&PHz19=Z%_my;eg ?5C;{*Dfgs#?>*?TBCZi2r`f4J{$&|qn|SFa1eH#c}$ z qvhH)L+z9xEky07FdfMT&6K&M4+p)xcw-BYZOwJw-WxAo z+x&;B{IzJY)BG(Jt^G5_ZMz<0iCyZIV|2ytC_c-5$i}@g` ^$ b&&vlTzb>`-h~jJYLJ%|9kAmWdjCp)TC~4c8&V*LIm_hQAQCZnX->8Z4-yoL` zoxFxSGCaCtCp71x7X$YdrV{Bp3*C1&`Ryp$%bS*ZJ$O7K>9K9lQ=oD<-${RU+;zq` zUpG4=2wSmeSF`Ao(^oE(BI!$@|4c3Uq<;O-I$5WIcL~8ej;=qmc1Xsf=pkcVQq-nf zJh!>OzYR`NG=bKMZ;7ZlQH8!X5}bBS5ma13Bt8Fm@q+Wz$E>5}lO~tm;urA!Ba$l( zN~az@vVNRlko?TkI6Hmo2@Nmb*9Jt(y{DoaJQvEBhlpX@9#k-39){FA$dCdBPgkR; zw@an`9=)fgYD3jj%aYvI6|CJFbw Y^Pgju33ZpT(7a;@)iR`IiPt3z4b#%=8g z2lL6Mqy;ChHgD^#AB9FbC+Cjolepz8T0z63oRHk!#pX3TD*Q}K+H%~cbH~6kmK>7% z8+#qo>VU4?jCNHwZ_qS%69cQCg_ IYG7~o zjCn{-Huj9+BCOr)XCpp}lr&b|1hAt?eDuNm9a-K+^4FBP`JK^x&K9TuNs^?o1>|r% zhHh?vN=x*&F6kx+w%D()hB^Kr7)kdb2wvAf<;&0H-&Y1JS{5E6$}{$ {zgGW2MNf99WkwR|2LMW|Ylu zYfm5f6AGwSoi==ZVRemTvDY}b90Bx@v)Q5ceG iqk;TTtW5peJN-u zcKH^TlLA@sb_oyL&U)qW=!eCPlM~^H&Hyn@bakO}DTXxXHOzj;zECz<(E&+f(xG|R ztO3A2dECBI`r??&7*`2k>TW;R$s(Qhzc6>ucCXj?$(2TstATkb=!Iv-jiBW|b8%an zzAR rRst2#}N2SS6efL+TSC+5f-B2Z9#sC^c7x921BPiFvOWwI@2zj CMB5a5%yLj1~ zs%-A&rXX0V t!b6UF5?|mNS+@ z`#^149eeFLSvk7**;gCY>3$*FH?sVe8x9wT#K+vIAKKP?(!I>HB?q;0cVOu|SG9g+ zx-C&CJCG^;u`1tHW;U*{L(jTSK~(I~AAMDGzR9NbYqngg9F@|*Ev^eXqjyu{4BYgM z&lY8?{SVirhBCnA{)A*;)zZO%tq0o9&gewlsP_#yUB5N?^3fdy0*!}8teh*_{a?H0 z?k!BqI=|AGdw0&Kow3+8mv!|BW2}X`7^uf&^%_L_-R(T)jOvx?*&AM0vdyoj f%k`>p71{kDNE_nNk)zrOS6WGYv}(WdB?JuYD?_o{Eau!#QT zS@Q(#?(p(@I&@U-7Eijw9buh^4za`?I)Q^N%a?W>s99Mw8i)|~cpkzbOTKRn6v^u- >LV~#+bUBf@CPL5TAA{Xl{t&cVDh`+PhahroZa; zyi%`jQxsNc+G@Q^lQ`|&?dL7^0^84g+TAN!|LnubbE#(w!~2GhlZ_K)I!tBxM_|?QK6V|xZnVAKMaf$Q#+j?iq 5x!~ipMZKB>)0{o&3V#B#Nvd#+6}+ zX-cW|Y+@GO;q!+}Y9A9m;o@H6Q#D-R^bV*Nk8A<#LH^mTz;s_?o9>8J)6G?Irod2Y zTI6-yilx-lO6_OMjr}X9{qNxF+CPLGUvTw^zj5_EGyRGFT*JO2?-%yUeO5_~8hY^g z&L5bj9+m4h>I6}URe!F?6Ja@h!w2ddQ5hpF0@%5=1~;tu8!j!V1Jk`^47y6j0igtl z*oQ@yK$pmGiGy|Qy=K((^%gI%I)%M13tOs`vF%^el$$uA2D|gb-=Ri$&txcv@FPd% z|C{h*8 t?>8Yh6~z?#C+3y44YtpNh3zPeO&F|D zGm B^AU4C)|=Hn`Is;8f_4;2DZwmevTgr}aVe?Hf2zZ}snr zkNvA!cSldvsy%Jh(mh;yBEC0jOv+Rqp)SHNeBoHyZ^50`doT*dKWTStHkpEqHLsrz zC+i;Z@~@F^o_;V-)xLIi%+||DKEr^P`1B^E)If=^f3F*J&XF>?N5&vj$m@mf73UB4 zpML!5 2e d`^Z!JXB8%Z9bgtse_7Q`H??IxV6VWK$%k K~+S1@=t6i#_6#P_hAwuZ}m1^a8?D}S=Ox^rW+8}=WZKMHe zJhL9V;n=aGJ6b%(JK?vZRX=ylUhT)s?#cYkFA;C1%(b>wTWrzGnnz_%>qnJhsKHD9 zP)!PagOmkTL7BD-ry!4~FB;pxH=Mw~pdF$=8-;JUKSO#GOh(}wGy%raDv5TtF?ZWc zSnC*)>rKAphmXc>^^1 vnUl^xB58IV6X_s5Tp{ zw6c-nDr3;nW0{*jFS=r)ab;;}j^ljZW9bT4skR-`ONo-%JA$r0hkbi?J`->od)eH^ zzc7|EP++d+8&l>IwB$Uh4Iq|p?H+(wBC+42DgO<^a<#gbQ2lAw5+GcE23RCBml=x= z<=Dsj4d0&p%JgXfr7g1B?0n;WwrN8>xz{V${lMjx6!1&OP`@CgBN&+?W>Be|S*fsn z)E(p9@J+7yHVlt8ig7X5aUJ{NX8R3{%XMZ@QmFm#Tpn!94tzNT6o6@?gRh61oH}%< zGH?G} !Z59ExNUNn409K=czZk)pgZpgO<201 zpwmPRvx8)b97w1mx+b<~zt?Em*l#5xFxw 9mV*V|8D8Ch-_8e?M >2K7pBbLzj{Dss{H$Uw zl-YSp>WTf @@O%r|A?RA_B^rVc0b{H=K ZB(u%8E3 z%u7DApJ6kwA2D1g!uUJBLHPUpUY9qQRt`wjwa5)J=GtqlDka*ovw93vvGp1)h95Ne z*`-yg`3Su=TUVLK9$J7qHK1ABR>R zqUC^)BG~=XoWrp55CFgVIGn#G!1*&|bN(tN#zg?<@0jZ=FHC#RamPT)3+LN7m^TY~ zQ9Q#J^^-O4Jo1jQCSq&8Uo$Uh vgLpY!0h){OomP^_^g+ghi2O*}}Q2arVvN8utas6?f(Rx$gl@byB>Y?m9i ziWi|j&erbxY+l5X88Lo`idTxE{EiHB6lR9N&lP>9MO_Cc;jI&ovHSS{ogd#6p9R7h zmnWURm+?C`-EV?Xx>Nhd8-shK-4R>;>$(TaI)0D5=wprRv=jjR>M``imK&F@elp&_ zPT;KwaSAZ!hxK@*Obgv^`W QOJ>Ykmh|sHmmqhF2?*{vG^+rRjiaaEo9g{0 zTTSs?GN0s~iMt$|P2O_D8TCRC@c%aN)5nneOOq=+cOMpu?}T4B-h+E}K0CC~$TFui zQtslkT$JJZu_ZOdtUHpq8Fp>a_4@)F c{>7iFWRo7xe|B(JdL3?p@Y=h<2kRH(xlF7`=mC35RdVz1I*w z1`LgvCd=q=ujM?W3>H* >OSgezc2Q*wq7+ z7(g+a^G7rPTi*{)z;Yt&IxI4UW{q+f#=PIdYvE{iKvuYPeOb *Tr=6)wf%+d- |AdpHs=LhBDL z4EbRB#5nal