From b82ce31a0021dde922d58a783889a12452db7db2 Mon Sep 17 00:00:00 2001 From: MotionGPT <519396593@qq.com> Date: Sat, 9 Sep 2023 23:48:58 +0800 Subject: [PATCH] Release MotionGPT V1.0 --- README.md | 396 +- app.py | 365 ++ assets/css/custom.css | 359 ++ assets/images/figure10.webp | Bin 0 -> 27082 bytes assets/images/figure12.webp | Bin 0 -> 72888 bytes assets/images/figure13.webp | Bin 0 -> 58108 bytes assets/images/pipeline.webp | Bin 0 -> 65444 bytes assets/images/table15.webp | Bin 0 -> 48652 bytes assets/images/table7.webp | Bin 0 -> 92374 bytes assets/images/table8.webp | Bin 0 -> 116696 bytes configs/assets.yaml | 32 + configs/config_h3d_stage1.yaml | 60 + configs/config_h3d_stage2.yaml | 62 + configs/config_h3d_stage3.yaml | 63 + configs/default.yaml | 141 + configs/evaluator/tm2t.yaml | 19 + configs/lm/default.yaml | 7 + configs/lm/gpt2_medium.yaml | 7 + configs/lm/t5_large.yaml | 7 + configs/lm/t5_small.yaml | 7 + configs/render.yaml | 23 + configs/vq/default.yaml | 15 + configs/webui.yaml | 75 + demo.py | 240 ++ demos/inbetween.txt | 50 + demos/m2t.txt | 50 + demos/pred.txt | 10 + demos/t2m.txt | 50 + fit.py | 289 ++ mGPT/__init__.py | 0 mGPT/archs/__init__.py | 0 mGPT/archs/mgpt_lm.py | 592 +++ mGPT/archs/mgpt_vq.py | 190 + mGPT/archs/tm2t_evaluator.py | 111 + mGPT/archs/tools/embeddings.py | 322 ++ mGPT/archs/tools/quantize_cnn.py | 414 ++ mGPT/archs/tools/resnet.py | 82 + mGPT/archs/tools/token_emb.py | 73 + mGPT/archs/tools/transformer_layers.py | 285 ++ mGPT/callback.py | 200 + mGPT/config.py | 217 + mGPT/data/HumanML3D.py | 123 + mGPT/data/Kit.py | 88 + mGPT/data/__init__.py | 103 + mGPT/data/build_data.py | 15 + mGPT/data/humanml/README.md | 1 + mGPT/data/humanml/__init__.py | 7 + mGPT/data/humanml/common/quaternion.py | 423 ++ mGPT/data/humanml/common/skeleton.py | 199 + mGPT/data/humanml/dataset_m.py | 156 + mGPT/data/humanml/dataset_m_vq.py | 54 + mGPT/data/humanml/dataset_t2m.py | 211 + mGPT/data/humanml/dataset_t2m_cb.py | 211 + mGPT/data/humanml/dataset_t2m_eval.py | 92 + mGPT/data/humanml/dataset_t2m_m2t.py | 119 + mGPT/data/humanml/dataset_t2m_token.py | 86 + mGPT/data/humanml/scripts/motion_process.py | 529 +++ mGPT/data/humanml/utils/paramUtil.py | 63 + mGPT/data/humanml/utils/word_vectorizer.py | 79 + mGPT/data/tools/__init__.py | 2 + mGPT/data/tools/collate.py | 99 + mGPT/data/tools/easyconvert.py | 72 + mGPT/data/tools/geometry.py | 566 +++ mGPT/data/tools/tensors.py | 26 + mGPT/data/transforms/__init__.py | 15 + mGPT/data/transforms/base.py | 84 + mGPT/data/transforms/identity.py | 44 + .../data/transforms/joints2jfeats/__init__.py | 2 + mGPT/data/transforms/joints2jfeats/base.py | 59 + mGPT/data/transforms/joints2jfeats/rifke.py | 159 + mGPT/data/transforms/joints2jfeats/tools.py | 97 + mGPT/data/transforms/joints2rots/config.py | 119 + .../data/transforms/joints2rots/customloss.py | 217 + mGPT/data/transforms/joints2rots/prior.py | 229 ++ mGPT/data/transforms/joints2rots/smplify.py | 284 ++ mGPT/data/transforms/rots2joints/__init__.py | 3 + mGPT/data/transforms/rots2joints/base.py | 56 + mGPT/data/transforms/rots2joints/smplh.py | 192 + mGPT/data/transforms/rots2joints/smplx.py | 201 + mGPT/data/transforms/rots2rfeats/__init__.py | 5 + mGPT/data/transforms/rots2rfeats/base.py | 60 + .../transforms/rots2rfeats/globvelandy.py | 128 + mGPT/data/transforms/smpl.py | 191 + mGPT/data/transforms/xyz.py | 81 + mGPT/data/utils.py | 81 + mGPT/losses/__init__.py | 1 + mGPT/losses/base.py | 61 + mGPT/losses/mgpt.py | 97 + mGPT/metrics/__init__.py | 1 + mGPT/metrics/base.py | 46 + mGPT/metrics/m2m.py | 95 + mGPT/metrics/m2t.py | 345 ++ mGPT/metrics/mm.py | 129 + mGPT/metrics/mr.py | 97 + mGPT/metrics/t2m.py | 259 ++ mGPT/metrics/utils.py | 607 +++ mGPT/models/__init__.py | 0 mGPT/models/base.py | 204 + mGPT/models/build_model.py | 8 + mGPT/models/mgpt.py | 494 +++ mGPT/models/utils/__init__.py | 0 mGPT/models/utils/adain.py | 66 + mGPT/models/utils/blocks.py | 146 + mGPT/models/utils/cross_attention.py | 412 ++ mGPT/models/utils/position_encoding.py | 192 + mGPT/models/utils/position_encoding_layer.py | 30 + mGPT/models/utils/tools.py | 37 + mGPT/render/__init__.py | 0 mGPT/render/anim.py | 155 + mGPT/render/blender/__init__.py | 1 + mGPT/render/blender/camera.py | 52 + mGPT/render/blender/data.py | 3 + mGPT/render/blender/floor.py | 73 + mGPT/render/blender/joints.py | 378 ++ mGPT/render/blender/materials.py | 135 + mGPT/render/blender/meshes.py | 93 + mGPT/render/blender/render.py | 177 + mGPT/render/blender/sampler.py | 15 + mGPT/render/blender/scene.py | 96 + mGPT/render/blender/tools.py | 56 + mGPT/render/blender/vertices.py | 17 + mGPT/render/matplot/plot_3d_global.py | 151 + mGPT/render/pyrender/hybrik_loc2rot.py | 140 + mGPT/render/pyrender/j3ds_render_smpl.py | 48 + mGPT/render/pyrender/smpl_render.py | 130 + mGPT/render/renderer.py | 179 + mGPT/render/rendermotion.py | 134 + mGPT/render/video.py | 67 + mGPT/render/visualize.py | 747 ++++ mGPT/utils/__init__.py | 0 mGPT/utils/demo_utils.py | 79 + mGPT/utils/easyconvert.py | 84 + mGPT/utils/fixseed.py | 18 + mGPT/utils/geometry_conver.py | 550 +++ mGPT/utils/geometry_tools.py | 566 +++ mGPT/utils/joints.py | 444 ++ mGPT/utils/load_checkpoint.py | 34 + mGPT/utils/logger.py | 68 + mGPT/utils/misc.py | 29 + mGPT/utils/rotation_conversions.py | 551 +++ mGPT/utils/sample_utils.py | 18 + mGPT/utils/temos_utils.py | 133 + mGPT/utils/tensors.py | 74 + prepare/download_pretrained_models.sh | 9 + prepare/download_smpl_model.sh | 14 + prepare/download_t2m_evaluators.sh | 14 + .../instructions/template_instructions.json | 3623 +++++++++++++++++ prepare/instructions/template_pretrain.json | 35 + prepare/merge_smplh_mano.py | 130 + prepare/prepare_t5.sh | 4 + prepare/requirements_render.txt | 6 + prepare/smplh.sh | 31 + render.py | 152 + requirements.txt | 26 + scripts/fbx_output.py | 354 ++ scripts/fbx_output_smplx.py | 427 ++ scripts/fit_motion.sh | 1 + scripts/fit_motion_parallel.sh | 31 + scripts/get_motion_code.py | 70 + scripts/plys2npy.py | 56 + scripts/visualize_motion.sh | 10 + scripts/visualize_motion_parallel.sh | 25 + setup.py | 20 + test.py | 142 + train.py | 94 + 165 files changed, 24459 insertions(+), 81 deletions(-) create mode 100644 app.py create mode 100644 assets/css/custom.css create mode 100644 assets/images/figure10.webp create mode 100644 assets/images/figure12.webp create mode 100644 assets/images/figure13.webp create mode 100644 assets/images/pipeline.webp create mode 100644 assets/images/table15.webp create mode 100644 assets/images/table7.webp create mode 100644 assets/images/table8.webp create mode 100644 configs/assets.yaml create mode 100644 configs/config_h3d_stage1.yaml create mode 100644 configs/config_h3d_stage2.yaml create mode 100644 configs/config_h3d_stage3.yaml create mode 100644 configs/default.yaml create mode 100644 configs/evaluator/tm2t.yaml create mode 100644 configs/lm/default.yaml create mode 100644 configs/lm/gpt2_medium.yaml create mode 100644 configs/lm/t5_large.yaml create mode 100644 configs/lm/t5_small.yaml create mode 100644 configs/render.yaml create mode 100644 configs/vq/default.yaml create mode 100644 configs/webui.yaml create mode 100644 demo.py create mode 100644 demos/inbetween.txt create mode 100644 demos/m2t.txt create mode 100644 demos/pred.txt create mode 100644 demos/t2m.txt create mode 100644 fit.py create mode 100644 mGPT/__init__.py create mode 100644 mGPT/archs/__init__.py create mode 100644 mGPT/archs/mgpt_lm.py create mode 100644 mGPT/archs/mgpt_vq.py create mode 100644 mGPT/archs/tm2t_evaluator.py create mode 100644 mGPT/archs/tools/embeddings.py create mode 100644 mGPT/archs/tools/quantize_cnn.py create mode 100644 mGPT/archs/tools/resnet.py create mode 100644 mGPT/archs/tools/token_emb.py create mode 100644 mGPT/archs/tools/transformer_layers.py create mode 100644 mGPT/callback.py create mode 100644 mGPT/config.py create mode 100644 mGPT/data/HumanML3D.py create mode 100644 mGPT/data/Kit.py create mode 100644 mGPT/data/__init__.py create mode 100644 mGPT/data/build_data.py create mode 100644 mGPT/data/humanml/README.md create mode 100644 mGPT/data/humanml/__init__.py create mode 100644 mGPT/data/humanml/common/quaternion.py create mode 100644 mGPT/data/humanml/common/skeleton.py create mode 100644 mGPT/data/humanml/dataset_m.py create mode 100644 mGPT/data/humanml/dataset_m_vq.py create mode 100644 mGPT/data/humanml/dataset_t2m.py create mode 100644 mGPT/data/humanml/dataset_t2m_cb.py create mode 100644 mGPT/data/humanml/dataset_t2m_eval.py create mode 100644 mGPT/data/humanml/dataset_t2m_m2t.py create mode 100644 mGPT/data/humanml/dataset_t2m_token.py create mode 100644 mGPT/data/humanml/scripts/motion_process.py create mode 100644 mGPT/data/humanml/utils/paramUtil.py create mode 100644 mGPT/data/humanml/utils/word_vectorizer.py create mode 100644 mGPT/data/tools/__init__.py create mode 100644 mGPT/data/tools/collate.py create mode 100644 mGPT/data/tools/easyconvert.py create mode 100644 mGPT/data/tools/geometry.py create mode 100644 mGPT/data/tools/tensors.py create mode 100644 mGPT/data/transforms/__init__.py create mode 100644 mGPT/data/transforms/base.py create mode 100644 mGPT/data/transforms/identity.py create mode 100644 mGPT/data/transforms/joints2jfeats/__init__.py create mode 100644 mGPT/data/transforms/joints2jfeats/base.py create mode 100644 mGPT/data/transforms/joints2jfeats/rifke.py create mode 100644 mGPT/data/transforms/joints2jfeats/tools.py create mode 100644 mGPT/data/transforms/joints2rots/config.py create mode 100644 mGPT/data/transforms/joints2rots/customloss.py create mode 100644 mGPT/data/transforms/joints2rots/prior.py create mode 100644 mGPT/data/transforms/joints2rots/smplify.py create mode 100644 mGPT/data/transforms/rots2joints/__init__.py create mode 100644 mGPT/data/transforms/rots2joints/base.py create mode 100644 mGPT/data/transforms/rots2joints/smplh.py create mode 100644 mGPT/data/transforms/rots2joints/smplx.py create mode 100644 mGPT/data/transforms/rots2rfeats/__init__.py create mode 100644 mGPT/data/transforms/rots2rfeats/base.py create mode 100644 mGPT/data/transforms/rots2rfeats/globvelandy.py create mode 100644 mGPT/data/transforms/smpl.py create mode 100644 mGPT/data/transforms/xyz.py create mode 100644 mGPT/data/utils.py create mode 100644 mGPT/losses/__init__.py create mode 100644 mGPT/losses/base.py create mode 100644 mGPT/losses/mgpt.py create mode 100644 mGPT/metrics/__init__.py create mode 100644 mGPT/metrics/base.py create mode 100644 mGPT/metrics/m2m.py create mode 100644 mGPT/metrics/m2t.py create mode 100644 mGPT/metrics/mm.py create mode 100644 mGPT/metrics/mr.py create mode 100644 mGPT/metrics/t2m.py create mode 100644 mGPT/metrics/utils.py create mode 100644 mGPT/models/__init__.py create mode 100644 mGPT/models/base.py create mode 100644 mGPT/models/build_model.py create mode 100644 mGPT/models/mgpt.py create mode 100644 mGPT/models/utils/__init__.py create mode 100644 mGPT/models/utils/adain.py create mode 100644 mGPT/models/utils/blocks.py create mode 100644 mGPT/models/utils/cross_attention.py create mode 100644 mGPT/models/utils/position_encoding.py create mode 100644 mGPT/models/utils/position_encoding_layer.py create mode 100644 mGPT/models/utils/tools.py create mode 100644 mGPT/render/__init__.py create mode 100644 mGPT/render/anim.py create mode 100644 mGPT/render/blender/__init__.py create mode 100644 mGPT/render/blender/camera.py create mode 100644 mGPT/render/blender/data.py create mode 100644 mGPT/render/blender/floor.py create mode 100644 mGPT/render/blender/joints.py create mode 100644 mGPT/render/blender/materials.py create mode 100644 mGPT/render/blender/meshes.py create mode 100644 mGPT/render/blender/render.py create mode 100644 mGPT/render/blender/sampler.py create mode 100644 mGPT/render/blender/scene.py create mode 100644 mGPT/render/blender/tools.py create mode 100644 mGPT/render/blender/vertices.py create mode 100644 mGPT/render/matplot/plot_3d_global.py create mode 100644 mGPT/render/pyrender/hybrik_loc2rot.py create mode 100644 mGPT/render/pyrender/j3ds_render_smpl.py create mode 100644 mGPT/render/pyrender/smpl_render.py create mode 100644 mGPT/render/renderer.py create mode 100644 mGPT/render/rendermotion.py create mode 100644 mGPT/render/video.py create mode 100644 mGPT/render/visualize.py create mode 100644 mGPT/utils/__init__.py create mode 100644 mGPT/utils/demo_utils.py create mode 100644 mGPT/utils/easyconvert.py create mode 100644 mGPT/utils/fixseed.py create mode 100644 mGPT/utils/geometry_conver.py create mode 100644 mGPT/utils/geometry_tools.py create mode 100644 mGPT/utils/joints.py create mode 100644 mGPT/utils/load_checkpoint.py create mode 100644 mGPT/utils/logger.py create mode 100644 mGPT/utils/misc.py create mode 100644 mGPT/utils/rotation_conversions.py create mode 100644 mGPT/utils/sample_utils.py create mode 100644 mGPT/utils/temos_utils.py create mode 100644 mGPT/utils/tensors.py create mode 100644 prepare/download_pretrained_models.sh create mode 100644 prepare/download_smpl_model.sh create mode 100644 prepare/download_t2m_evaluators.sh create mode 100644 prepare/instructions/template_instructions.json create mode 100644 prepare/instructions/template_pretrain.json create mode 100644 prepare/merge_smplh_mano.py create mode 100644 prepare/prepare_t5.sh create mode 100644 prepare/requirements_render.txt create mode 100644 prepare/smplh.sh create mode 100644 render.py create mode 100644 requirements.txt create mode 100644 scripts/fbx_output.py create mode 100644 scripts/fbx_output_smplx.py create mode 100644 scripts/fit_motion.sh create mode 100644 scripts/fit_motion_parallel.sh create mode 100644 scripts/get_motion_code.py create mode 100644 scripts/plys2npy.py create mode 100644 scripts/visualize_motion.sh create mode 100644 scripts/visualize_motion_parallel.sh create mode 100644 setup.py create mode 100644 test.py create mode 100644 train.py diff --git a/README.md b/README.md index b4b906e..bb12062 100644 --- a/README.md +++ b/README.md @@ -1,119 +1,339 @@ -# Official repo for MotionGPT -### [MotionGPT: Human Motion as a Foreign Language](https://motion-gpt.github.io/) +
+ Project Page • + Arxiv Paper • + HuggingFace Demo • + FAQ • + Citation +
+;YeV+>M(Plm;sdCyQ)5q^KZQTW1#(C=Du1cfT!#T+m(4c-lo@4u}Yg;V$DNAcWco zA$-uc;XO6Eb-3jD+_J!Fhjcxet&`5)tB#~@uD{5lK?dcB#&1ftxdQ---*}&WvDaas#ej0x-611?jKWth_mB`pyc7d5S zY3nRFGo#xe4hduXNP%R46mRkwt6CClPxXjr@jP?q)^b`SVa5OMA}lS=I3@4*EdMC$ z=Dbw`u}H2Vb3G`}G2a)76C6A`Hn=1WYV+Rf!D00uVZMHr_5ppG){_ht?I?0CL|pdW zAd6u9VM{(N+F(V6I8qu#p{)UXZNY|mqadO)R@HsT<2$^@X{m7C5SCPNN^fOMs(Zn4 z!u9virfXz4%jZ WYltY@7^A Z%aqk#6-T4aU1Y}0JR =?LC%0)LCc*iJR|%x%LuE*zDtnK5&wn%UhJe?=qBWb{zPSZtRY z7zk&@z(9Z PMPnFzSI5#Yjnn#&inwIPgrheN( z+K>eR@Z9+d8Q?8xXUymokFfAqqZMzyonqb-Zi}QwaA2`9+5-Ta*?MWkQ*I}k^C|jP zB`Vqb0Y22GaWS2je;4Hhcm!HSR4{m92`Ol`9#>5XB%S=j9(X(VZzz6TxO5x6#yn9e z@_a>!5<&DItH^eWp~%Jl;=TeqhPg}f8{$?^l{TBhZ=GGmA`J6ogzAWEU=+GVA!}cR zr(~W_Wv)An2nD}JTsW&`=?ReCG~$ {F8Rw$XmR zl{J}hV?ognYv3ZJEpaws6*r2VL9${Q3P|m}%_Tk2Hl)DLy7KpbG|~5rUYz6wxHgu< zPK)!0P-FQ$FwGMg9OAS%Lvu(A`~=m_97jz^pK&W%y%7tqd(D3ULjYat5ziX}iNE}F zs$7odD)0SNVwPbq^Y|=V{jayaw@_Ng#UfGDjO_*r<%21=!}IOl<;_yreKTAGAuH@w z)FkK?b6=Q)cL)c5^G^NI@M`=P0JmjRt*RMav4Mu5U(g0x6sHqiS&i1R<2`x +`^f_ig4pTC~vQVpRnkcvOdD&u9zvu+7ejoYwCaN;h>w179V68I$P>cohuG zX#sLso&bd{3Fb6+NLnu`#k}&YOz0EPZSFfg$7y4#3Pr*I8josjrYBgs(p}wf6M^-I zKF%psHz$aEJK{J@g R31L8r*<^C!cj^YduESJOhWnw3a3gsl$0g pMTWuYVctcy@{O&y2}7X{s4 zlHoqGFdmTmAr`R|v`re}#>4R4+KKH?wd0mjoqvvik)CrkiA0IZOVYZ=ttSVI^1@YE z!2K33$>X6b?iMdewWGkpyu!q T3cS4)x?Ri_2#>%A;WjwNY=Y5)M03FrEn zkDx1b%)SL$jRxY{tdumUz_BtOlqxt&u#^=oQS-ewkw-U5u8lh4 !3jae_Z*MRCKqx%BiHYoZ9f*x zg_{|`WJ>P-;H#K0Kh-`ax{I~c-o)brF9=_$bVosrTV>iUilJxKBJBNFiaouPy`vAh zgRHo&N7IA0Vi#d6gTm=41_cQj!j<&TTy;m8(C(SSq9O7nbSxZ%;I7t~Wx5cB)F11n z5`lUfr8FvBjIiGly?@`5q#;SVttw%U_b^nR2EgU4{I54w26UIHLHT;Kk;u1i_jbT! zH9EoI&(dD9E8kik0h#dX_}pYp&j?lD41cZf%TaVysj!!7_xx97Ovc0rqe6r>`x9Fo zABLu1bPC;qSK}42fRK`%e%&3fkY8{!bd9l56rRANnuHPIUU+=N5&!_?)wwe!+~RbX z`vlqweXIs=lizh(!Ey?km>*{HsxLLdTw>6%qA(s^eOQZLT(O7zXi!2~sRQ;o#9}FM z)IdGgO|9SmN&dAgvQbaHZc>Hlo!dq&fz%R8XaO;WPYaz*doJ;_bWLr`6hf<}+Ro?d zM+&l-h3rNl7a787C0Aux0_#fTfJRGjOBfG6H6Htk8eQy8ax%Tla*pd#Pw5sqdxoC1 zXK$-oNWNpg0i}gT<(1|%|BPsQ0P_d)>cbuM<2?4PalUUy$+9#m+6W#|s(gt6R?Gd_ zMKS;7?H{{I=-k5CtOu8L6*Hkxs~cg_Pc5Eubsjc>S2$3!w^Ij5 cV~HminCF_QqC#X|X&TzDA3 GEa#m4Chm zQJpca?NA$|F=l>)s*>6dj>H9LtC?YOT^j>04CR>LWqf|v)JDHcR>12|D~?mSZKV|- z{sI5=AC^prAY1v++A!IwEZg!AvA_on;d)~>@8JJCMV-XcV*~(YR4^+zSYvS;{m6vY zqm$>hf$ZQ(o}eUDGptUwSdB*nq6n)}^)UtX|njkN= z&a}0=x{15Mw(N+l@Kej2MjBrFF`*B-&8uh-O{;sj`4G&FPJ24qi4dwa<`YjF znH|V>B$i_-(Q(sVo=eSpB{pjJ9hrPM)M=)11F%dVh|C{OkHzQiApq^VdIWojgc4k+ zih(t=*(#u7tV4tX-9khyAo9S1BpLXVnrZO5G;lM@@Rlmc%g8qKe0FzaI>O`$%EhGG zOw)pX-$^n%kp`^$v0)xahZVV94UuxH(s+p$+6UPF>Jgi#6p)Op63n1(Xx*1;@4D~d zp{7sfg^l`!ZDHSF-5ytIYWXkkQ)843Hi{@7%hm#=G&&xT2# Hp6 zLQLg0mklij0CXr-M${s~Qbs-x 4qZ8`r%2FbbHP^e;q#yUp;s<|#~|b6L$}4kAT|KH!B5;M*5Uyc*d(7k^RO zQNSSHXdP=iI*fiDY}|b$`S>w%O0hVG?AoA-p+@kSKEFLO-!%kdipD>c3WTz?3sNv% zG_9`U3F_bJf4jL9Rnqh2@BZ=CGS3^~yRBoD7V<=O^`W3vpuj_J?v>8ZX5@kVd}Goq zg^JC};bUh8d2M8UoZU +J$c)@P*l<_B?_H`-2 Xz(Ez*s zJzj^zRoQC1+1npe36Qlq%T#iLD%hRaf*;IF+&{u0zsPCa()KIBpotZ1hP_^edu_z` zrWLf#()^MbG=x5H70Z+#8T=DBK!8TSa$&kWerwc$`uVtB4{MgY;95h+8WdWuXoDaq zN`r@XR;7|@_S(flFyQPPB2Eq#Z={&Uax&V}a>eIpR-;-DJeh#qqcahAsdd)0pGfPs zC}rqr5W^}cj=P8~XAr!1mS(tpodcs``PYYvVR7q>8{IGUq_SS(F(V5}7F6p|nZQmy zv*wE~$zDKN>g;fit12kwPXkxx_mjGIL0U^V9(+-MxGx9T2EiCHDoGk@>$E&60gf{b zeTTpC?knC4q1PZ60^XAVW`xU0A<(?D@l`f |{2?dNnv3K+ezx*XwXwmS64>^AAWvP>Yp)jtgZCQ zN3EN@*WIwF2> zjZQyvwYwVhm ~W;keYwN#$w4G^N=^+J1phv zB`;>mZp=V0_=IDaHe!y=ou9o>SK)XkABF|g*-_Qj-!IyIB7V~+Rjz~sb{8`$b6$3| zC&<7`j0zn&dZ-pxC~=1h3bTHH-Z}+e#0>gGvniLe{G=P3m3hnF^d_gJ kjDn^3~XZ5k2FnWx3jql-SNnb++utumY4u0r1l zZ1%ND%#M=%Q}QYs^M*IZ{cLopo?#MnAxt$);nWuO3Z*jFdx`|+cZ*H*qj6zQai%-0 zS8IJ+aEHsa5I6niMxVJ1$Kxl|JosOctC)-Bl59NmUV>Q!$r59#TFV!|@@*gq%0A?0 zV~84onJ%^89w@vQ%&mrhcb>`0=Nm?9aHseSrUH#Bp(!peUi1Xy^wKQ_QF3s)4KGDt zu(4G9AgJ7McLW)9`>~pAa%+5yg_$#5fFGfWqma;e@+v#{l^P@=veGO*A{||GZOG7* z&AjZ^{TnXht$bHQsxfsZVS_+Fwhy>HOmVPyMUgOs1A%BD9brL0l=2?c?MXGZ2du@Y zJ3t=7!` hzD)E-U`J5uqEGqb%+t4!W-Xg1s2%xnBSSM~b4)9B^Da=SIl~$r z{IN_t)3Akaek1D76ZUG))`=(k89z|9+iim;Nsc(I%bwL~`PYELFBbWU4orqG!5kWt zS)0`3Io(SEzYYVgS(@()F%J*QvwD|}{`UF#w~8;^7+#-qF_@c%d}vD!+p&wR*#+oE z^|#z|m= nFyfQ%8k4a(60DXpkx$@ZZtKdtyFj?%wNfjqL2Qu5Rt zzXj{`v^eVD_Yc5A-k#(0jpG%?gbv$adukRQqm=L2^WD<~$}&sOGp`RW4>wjbsncW% z&cjovTHZqpj8WYBuO;&iXP+lZKJ)VqI~iD#X)4?dDSm99n+jEs+;)&fvi7yc4H4i{ zQSH9xrlUN1P7sgHW?^wZx7T7)G@pEQ_+Z-RS FPBi(zSNj^2Fgly%=?nJ9PF9$l1JXgs$^dNzg>m-@iF2N+Q#?f-?gvBMJ; zZS>UFd+$i%KCbVAr5B GBYGD>*2MGf$?rczDOGci}(AJ|& zvM`f`6ut001NAs6He8# iyCR*Rz|r(b8gy$?xU z@wrkj56zD3{AmsCHAW^}Hz5a<56WDo35yYoR2y~f_D{XF#g3AGvrfjOC7_&R3t!$* z61xcpXRcq}wR(_gPo|9DoykGLK-_kZzRBOF#BE#04tT^FXX+=ZQ}9#9i#(&&jP${& zcZ!}A|7afF#ST1UR(Xk=NMmRh{2`JnhA@zu_OY3fAg7t@kjlYY>+!Q_+e!=pxJUnC z#)p%bqB?P*408Djet+O~bt~eBY_geH0JW8r6a{@HHNhwWN4w~%IW6L1-_76v?viYQ zR9GTgcq$miS6E}d4(g@zspl?}Ah$3BT~Kaaf9*RtNvP&TFSVtvmCSU?g5e#D*l^M` zl3!dRM6{M>PZVW2_*k*EqxX`PF4}_>8!BciB-`|uIr^8kk9ibrp=lIbjL!7!JgJhA z1)37n;}5*=8OV1=Hpt9ALKnX;iA1u@Aa`rN1F2tU_==;iP;}$^EaBBJ0=1Xg?ttbU zzGw!w6yMNIv^GJ>7yi$3;eVS8!Lmk#vjp|$DoVJ!a=CcYj_JtEDy3V-Ys|>SfqkTZ z<&P!VuJ4}aW-F_ydV`t?1AomA^f+)U<{~*NL{)jhqMmxfq}ih(V@n3h2V>Prv*{Ya z+MI#1z+Wb9jbvxdsC`Z@WQJN=Zy84S6}}OShU}&MK6(DTX(00`GsexaY}7yJwy*mR z$R=WY^kx;05zI>=QhcY>F4RM&A+$zYINVEwc@-1a{x&PCTQ;4k=~uaIPT1YO8($Qd zkn8k9FXIcemVRWTDbpQvzI+_Ol22FkTYo*i2KqZv6F)fO@~-Mn<5WFhnsG)=S|qFw zk~`x=|8BDl6Eib*IEWGy9aBmx)ovF8E63c8l%R`5DWT+QQadok(mZ7^Y^~{kR#Q%r z@sZ-cvH++Nr>i8w$pL$)V@=U_x9{-mTuJqmVJOy5 @G;|Z z<4z71%u;Q8ymbqDNNcWR2U@CJyz&G)Lz};_$OerB&?moe#v%0XdN%#903aye*AX7A z+0^ 2LK80RRRCW#sRy
eZl&hn;dXGNkqWumM^nZ4W|g z&Ae`fBei+cs83*}fiZ}DJ1ZWhy3|_btrdA-2xEDjV`_XlY9?lN^Kz`)201tbac!P> za%=0e*Ka7{cgVWzrW2Kt`=CwK5aqYd|BH7O*3#XwUjM$*ed0*2hva-7OB1dQACpUs z%b|Pwi|mEAmCFcegA#_ht4! rXC<~BRMY3XXZG5p61ERSC >PTL$C9lUo-8M!uc9*J{PY>Aze`xXebH7hN-O#;$t}_(rcVXB7Gddw$J`rWn=a3 z5Yc-dv~xw++^6;S?nIs6P!1bv>^SsX;beBn1Vyo-4Y@gR5fLI**|{oo5-Ewpten7i zZ2&&?N8M>;w6>r(-GLc1nnpi(-jjiRPV6=#-&Kip@VMl2DQ}z+ZTMxc#yfDyRS> zpjQspIi-+Lt|Es({%MtWF #(47^S3cqNL$`72NguaV6QG}xGA4mR$8bTf`jgog zj>{P>gtca9y;deWi^4Mr!O7&tho2RSp+_p9;wuCu(Q6ExrF&HhjU_j+yeV`<#06wY zA(3KOID+f?B$rZuZ>xZB2ls11-g;!#PSadXeye)vH5_)DAGH6cOJcu$2tz#3tp6|S z^}7MC)ty;BD1~PnL@j6s7Wn!-3vg+;E^%wLSUXO*vB5?>eZOVtmmlSyJ{MF7&g-Z0 zjJPbeyZ%$>vt@&3Xq$2H;Ks^FP`truHrof(<|EL zh3}66De 7xvHC0VCve%UI{t=IIEfZw*~$)vX;;|SZ`*j%)@?)zj) z6b4u41z7`$q~Y>n>G%Sqe`kBFPw4{!@5r`{9IkZTyue$K@Yr+(T!XBJN6Iu9I?@5` z`0o}dkXjgy`JyCHUUbxr&38V>L~d$iccu*6t^nR*RcUiI+wD;)ywjWWm>dxs@=iP* zzq1{Pi@rE`i1jEKQi9raG|c%^pX{FT1AMeUQI)|?DCF5%&3A-?ourD%+nP?3hyu!q z5KFRbkNn|MbchO_@5+?PqB%KUAv1;awDA{Q)z8}hqbx-k)p{qLyn0|o{FR3z8>wyU z)O~cExPF%?ySTsfR5G*Q0N*l25ZClrsRUm8+FOH%hsn_fB;W7}TAemD+A7CvCQek; zmJ$R0pkpU+BUe%%k(CBE%JL-k+bF@;HW}{$$!t^q4DEaoFi%%sg-t5ZzG(=cV3#EO z%U)0hO4=Xj+fLE()UlU@69vZOXl{@-le8#5te7FuN4)2#<~iwhfII|JTa=3k8q)em zzwoFWmbo}%y!ZqN$=tju-g=%Y^>VUkV?qU_nu(7fK^JYl6!TXE$87{lA&$>$OZYj7 z;kp6p_1tH+8jBDU>FmdHpLV9JK|U9w_hVJx;~j{9aSH_Da_I*q%Q6x%I-juN!{!Xr zp 5|iS_1xA$La(9WrtwMIrM10DWZaTK?5k3Iw zc^85^R7pHJyue-nG0( ^UA858**k*-I3+7xXE1enz)-$I1#e`p`jB{(2+B|Y6@&gLbf?)gF_ za~j#rgd2*Oer8~GmUsI(Bb$(pcROo6ahezGZT)+w8yW|XA}7~P)9+x7by|9oE$VUc zBDymSxwpATnezf+h;<_3GZyMDQxOfE%8o 6QbuFCn~@#;LkG)?t 9g;U>AyGzCKiBkZ;e7 zA8|L)UH#23b`^U!|9G_0%^~kdi2?8U3c;_ RAgX4eok z7VWY&|BFsxtV-Xztd^kj?sd-R9f6oEcUE*$2ybsUeXFMpK@dIxFdJQNefX)I7`=lr z&B&JJG0Nu1YfkXJ5qfv(qtfz0tEy7}Xpihyo2=xyyoBVBY#7D@6_M-v-*cm;Ut$Un zYZ9Rc6x`^*P=+0UKrko)OnJX|L8-U1$AsoMEBp!cJkK*=dB|i)7&bB$EHe_N2zGa0 zYx}r|n`*`>T6wBdQf+vVUGXQMX)b~B4EApd+HK>uq7wC5>U5bcebMI-$I?1O#Rceu zv~c_wkZx(FTj>)>4qw!@;QPGUqqMEBa77(&w*{8CX)Wwn)Z_bY$$&|vNy!4xn7D?= z+~1W^8tzc<3b9TLNw0YNyPo dw14}*!w+@l4Q$YGE^|<@>hIt3pYtm~N zXK1d$B|i|LCFSxCc9NVU&_0J;hG<@!pc#GD(T`iiAJfYCe+tsPU~oaHcoSkCox;4a zS#OqK=(sXzSTFo;o*(eyC9^mfZ<`W26Xg6uj(L)pzG^hEK^;RE5_}9tyLL>KeT&Yl zCKH z`rv> 1C`@TvXWig?lFtY4WW z6$W{mc-AF37DuXjvV4i}9jN)bbFeW`B-(?f4TeK%LjqnZ-q;r)n7?KlKh611FYbU; zk+MJ!86w%}dI7HOOR*VP%`m+HqTjwAV>0L!&11_mL%o3up)M stnzH>sC*<2iW4B=)}=(;~0yBxxFEhz$Yr!l<=^Cvh2$P z9bh~(0WqG}IFE -R*P#j6@#uaA6A73wE1DcLXQ}N4!V?Vs-0|XeT)It1z*r*; zRl&Y_jyXdYgY`>2gq4J%m3k6OQ;k9p0+oH|p^S@j?1L^(mi@F3G!T)syG vVUM zp*)$K%YYXMP(f(vu%33PDTboOS88SStrLJi-Ivc_l2BActXcM2qs)~X&4)QCd>IMU zKvpu}=$j929p8${#1=5SR>+m~DOF}2uCFigg}A?U5vRy3ID?^u=~9G5({@L r2fJ{8vakSa8$SVhq9%N6BwcO14*~fw` zOOLANgs|6|JhmUrAqPxs?7&)%WtCD{X7i|%F#9}5!gb<22Hnj8e#HeIrC>2$v&~Ps z$Ka~ZX4SX+MI(Pk^O;N&b%6&~LckC&4aRoDcO5h&;xXMBNQmFJ?c!aV#Nx(kOwyOx z7pPK$Posx5)4r}U9WO;vHyvkZC)Fr1q<}|y5Z(yD=c-83bSGB?z0kUldvON{imo_O zsKqjh{pB}B{za_M{_A9C*0yXIhk!_{_Oi&HxVKe&wV-LD@lyort_mo7m;dt~Cnz!m zQ@OOZr4Ts0XE`t0R}#^ p~`9TK$&pj zLFbELM!kz}%@H)+IeEMxbe9AHxTOc~T-;{NeW`?F{{T@mB(j=~gj+j1zdW7tp*b;m zZb~n
*55Op2sqU^*Hw$fPT?<6tnWgS+B6I@c0puN zH^uFTW6PM%$`P+Y3E^)D=1uchi)mocD8nEpK+-ZksXX=mWwQi3x%2ip&|N|zZ<~eS zlGHQE8OL;pASQ2m6WOBBz~4xX-Xg(2ymORuYIPB*3(|nuF$&YtokmN{F59$3k)N~L zYaJq+w(hiAy+R+nCC$-VkOCi?n0buBH}8h0*vGS9JWAD5lWCNjd*z$UxN8C*M@@zF z4QOm6zx{BYB(}IEVpaJ9dG8uu@O!);>QEXw@yavJUk2iqF8FKGV~KgNNQvvRz?W^B zy2kmaFd0J-wa~%UVDxL5qr}lTanzI@O6eGlL@ctFxOf%)!i;Tb!xO2J$-_*D5;TwS zdm`FdFSJ9J?U4nUk4S11D%K5v(xq*oxIUZd(};@c9wNKLZ5c_*sGt>RR7YEAgjZzY z75)`eNL(#`@%4LwCz^=E`7wEvNoh )kdS{y z*150wgI=Nct{#5g=-)NKwL%!gM4Z*Z*iBdqKHaM2mj~E90K7)gZ3+K2f$BUd2t9&A zk_Q$wuT-xKBp^}fNO5}q{VkX8_W{f)+pl;01@fLtgMo{;QxkF9G7VnhEABG+CdeZs zU$KgT5|6Ve#0kJ6gLFRNEf$XjNqisV$-be;hsj%e)^B4xJ7(S0;AoLM8ZxBx<5_co z^jWY=C}gCqBTcOH 0axCO+B9*`SwLo%*wn!}ivTvINLP{UDHHvwO$P z7Y-_>&Vqw1+|HI_Fu0`Q6ZZE&ZoDZPCFW_i;N_AOfi4c!d~Pcnr7hVEs3}}#txrUA z5i_4JR&zJB!+b@6TYcWNU&akmI&JiJ((T&lr>!DQ$=YuG=2!h2^P!Z)Oh<}UubC0- z-l)|7`GVf@`7JR$y3Lfys~+y%LNpao=eV)E<}yGthRDxe*{Ilp^!r9GLPiTp62nDM zHqrj>iGA~y1iC|-kS xjJ93&@$rb>;tSfAsb+ftj@?fXj z#{6*TwU*R1@hM?BguE^)KmY&(LN`@|Vwt;`;7N+hkh3t60k;jb 5h>#lR^}8`Q P_ zJqr6s-rVpyi7qU+q~ ;LwTol{o;b>F1G|Wz{lEv7%9i0%39z;WvEsPZ^n_Vj|!p* z0VU)!^82>PY7t{}ZE8c4Hqpcb2{x|0?e &k0aX`pWbc>2q{q{_t$EjQgv+3LyX9Ta)|< z!DwQvmaOS@q`XJr4PJFWIzDRS-FPR>KrLCmoXcX>Je}0>phHe~n4C9n@ZvJ`5XY70 zo*)+9D=8<6C=S|+6dYE~p7m0tVQ9-c<&4Jt$WprdMyJ%!p~XVr`Vho=`Uea9#G-}Y zu^K`?Zy4z=Fw`o}iSx@dtH1|oE>5v3Oo(D3f3l3nlg>^I?Pcm3?l{}km&a@`S^gQ4 z%@`kTu`#}_SZ2wHAfDb-T=|buh oL>%|k{>3bo4*y1ScaBsk$OgsO_MkNd|(pG2`-nO zjjT7}TZll}=;|`71K4i(AG>iX>mztWH(}W_3Kxhp4BD8~o2-m8+YGS!!pcEz{vBpv z_%rOT%;0Ori!5n372o?tp%P>qVrgI>1mr7|O>#P3An7=*Fuq7JBhw_LMl!rv+6qj? z FAVKX=@mv zwVKC1oG$KS5i{xZut0 JJ&M;2m*kN}trY?bS-Bax8A#msT8FyldAtofI1UuQ>=flRA6_=H;cG!`yg zx2-Hcin6q#KnZqmI?-FMxCmK|4qcdeb%lc`0NFZlcN4!x692h=46Uia4JPAA3-fRp zh4TSc@Z%gox5ZE{F4N%V_2lyoG~-~e3!V}|lGf5&DR)Wg{u|}eqO^b#wNFcHEBr(G zo|5-y7~^uxD^DrpTkwZYF+1aXdczmAY&_n+WxS`?edVD(k}X15<>iTZNg9?Pf@uHQ zwd^FsyV=O|8h{rJ43 92S(C8 !ER5T@MhVVwFfTn zVX~nc_`jVUsc&5i0%Mtj3bw-3B7$$v=Vj|Cq1E#w-})->ZX<___eaf0PlCW1hSc4( z@7&ob)K|G;JHQ5g)e2F8W-I5_x(9cab(O3^(%ndaDNFP>@|m=6wL5Qq+UxulXvwG6 z8P7ctognEYAUfAmM3U SJ zmDx9$f=E B0PAY5HBuL$b+O(mL9cD!{99`XCv3+bIZV0Z3oB3+Ehu zn}y-xrq`Spt#DpqG`G3<9MM-VkmIy(s9JyGD!)uoKkpV#cxgK&t&*B*L(B;F`GdtK zA;_{|`vkh` HR?IpM8 zr*}ktj^o#VKZ3Zaq1ngJQFg+Kn{`sxqWLD@GxQ4o!Ub*Nqp%b>HF!Afks!u7nZna2 zVL5AbNTE+??EE4`s>+%xp;$rEQ;%!@04#>s#co5*o$AEheUPGh#OTM&M#dxSe5S@q z?3zc;R{QJj(z9n*g3#wXX>gU|%R!EoXPSMbES3i+v5a3j|EhA`_E&?uadv5NlrL(Y z!Es`&r !4z;8If0#Ip%b=pSZ#0rSwOYCoBY6`&&!>zHI@rXwZOy2W(7$nr!hSQg zkdgM|3+VpR-gOH9*~SJkIcxW>S6ZL)g WAdYPg+APyWY0INlh`DUht{isimXDuG$3lG|R-QT^c=kC5Mi?+8q0OEDiM z@hYEq4l+c 6yk!drHhw6kmKDvIv7N@+JLy8~MT!Ko;7YvB(hJ?v~L zbH(HU1fin)>ATHC-ccOel_?y6JW%=Q=m|B;rG7}R0x{d3a$Jdp{(^^{P8Zuoe<+mz z2$TYuVl1cq&4|8k8q{$tDflGc#Y$cO%>kj-*}NpB?@TLOt~VBX=9xI?WS5cXHxV#8 z^^Y7Yc3Rb{U1TzR?D{`|9uy(%Z1TRF=Oib{?Umdyhc~xhwkRY|GussEKWejC>^3Mr z0YFgB33pT0AJgykLVK39^Jj&iJfIy1EJ}|`HffqdG#BVh&9~5`;6HQUB|v5;GoUY4 z&&ezT7<%A-H{#JQ*cWa6O;%B}2JGF95m2?@8gMwmp=W$4+4m5310W{%HTLx`?goY2 zA <%hF2&6^xwLVFvrBHKeA=wmC{2Y ~UwHjI?f@ zwDG8o)=a$pL>{^^KOqub$J15L_W3>kYEPpDelV+eRWUT_%_r(QN!mG&!vUm(K>y9< zI6RxYq|GI>EM3+uAajR$MYD0Nu(NQELL)$~FrRBAJq%rF>HeENP)4imQ@g%III@0v zFc48wFKoA*wj7e;&e9Go363Wyyv=xd=nB&yv@#v4^Ib!mO$Y2WSwHeA z#F|mR)fhyu#_>BL8g8qD4}o3*x5^Dl!c!@P{pc$v0}OF8b=I?Vf&o?=fYzKd+rP0= zM^Er@q*A _h18S=oa2D{%AEk%+5JtI{Aj~V~WT&v*&O#x}$FJp;^U|EhVp=rOv_QMz=9R!`1PoP@ z+|X*~@T^sj5}(hF2Wgv1 ^*f#gB1i?Wc>WG4m^3P>%pJ%>D7wiZv|AN;^mh!sC(a!w^c`2AGhijq*@8h+ zG} %Vo<-NB0U|!jpgdknfyvrwrsh45<4SJeUrU!9?3YUE{xa_DD-i~M z{H&4IL{BBQYBHO0g`JIUM&RiV$_nJ{8D8aCiuhI9@RRxJYmJIVp>8(NG?42!$1MT` zMJ1?mvML-Pb@%Zm(Mv+5qr|d+R8BKT%Aa{g@8)){3Q~|<+8d>zYaQd_LqKtHxu?M0 zqkuZ|165|feU%klZOcJt%K*z)hP6KRfx*3&LM~vfASEVNz%GDL=8+ -<4h6rG{2tYpv{l_5#d~6-pM`Zmtlijx(`GQ|O66p>?@)DiS=c~bKR3qLBZVBbi zZClFKH2J0{9lZUiFstsMpPSX0kysu9Na3S8gI7-Gayc?kh^^GqB roi4o@g@e!qiDxDp!y)&ii| zl%@v{SZpqaOXxrKLwvgj#lA}UE-b|e6hJI_s5FJ5$-sE#A+Rcp0p##WZ+&sdTr_<= z1>%FPE6fdV4uhT?NHyEf<^7|AA!liGEm<`e#Qyiy>`{bJl}AFV-5|tOkGKvkN*3In zjCzNjT$1&N*SSRm|H<=fSbeVuaw^PHJ73glwcj)RV52>IbApUrRi69!8GG_hp< zzeQ0I7$rK$4l- 74+!9G${tx$T@Ywb89^<7djv~7Z_f&W+E8BZyRlVI}37)uJ9)mXsjTb6B# z+)=Fk9mp`-!pzj(dT+mP@J#BGMZ)nj%$Mj!;q`e4qPR@Pmw=|c>PV v$}Es9$+YB{WEppcOOtgzg-8;V(0vA8fj| z$>~gzX3Nk=2ZTg{Iw~5nQO{}WLc^yerh+-{{fvJCZ=)=4<`esxPSfF4win$srGeKH z`S0a`+X@tN?PbX)I{{iMh=+lylsnOI5k-cE3$2o;pC|)7nqycP38yQj`Xc@7Yl0i PrzmFP zbO JduQW`d;Y un5^T7mJGa1ylV(Bqz=?u0a!{a)P()g2|g6NBP NRHqhxYVp6xC!kThiVIr(kM z%*sdFAa-#)I4a(b (fa2NjD6YJH^c^X^C$V2I54~ZmJ>IP&h_CM%uAknu@Snqs$Is_QxE8)z%xaQ z!DC|51Dq^U!ZY_22$c!a&MUwWgFV{f)64-mpAt%N3+&e*38f0HN-gTQXvCaRSkeX% c59MwaGk)`m;8or3^V 30CC=ez@i`U zIUbk<{P>z1aC^0X-va_KypjB*fzCi65E>{DF$dV4={xj$0^EMm`?&!pfWUQdAh31s z4jK4m4p8_4elorQH<7RX2muoBz!$$;fd;=#KTDsnPv>*OL7)?m7)bc>(h7XdJNqno z&wJ{-1x|S8eR^Good~o7(||buwA0(Cz8isAUn$R`hog_ahraH<%U)q15x@ wfn$CfK;k#6XYkLq_m_{` z+r2~s0pQj>_ZRe6-8Q4Y!ll7)pab7#Uk`8zQ1{h#^P>xS5xD4g43q$LJ+J*HeXDzp zdlT6AoAX`yD{|n=84$R$cdG#e0t`?Hy9I!gU9TuF=@ywY3+CUNO{YmMC(^|il9*zO zD2%>~%MNlxX9WMmVTIXb`TzJ>S6T+$!*8Kw4<6U%5nOjQi R?Aun? z4Kl-yv+X~1+=K;7zig29-MP#f*$Fo@ua0v%JNkA|hY@##`VTx=2*i1Ka2;ZS1Me1d zj(;itT2&=HmrIrL6ER9?m>q &po-Iu`~wJno^K{oxK5#n^uV&GS}B2Br#1LI#=@5Ro4 zeA)U5ob=)k3Hjc2IN h4KGk^LC!PX_hK zY)`NrvV*)l`wBXkvWQk^sC<`diBrB(5A?QW9%H&_1*C$7O`FsM#D*J&W5$w1OHPd# z(~0iVxV-D0>5^o cn}}MGLVXgC(m+Fn7a|Rg`EfkJY>yJ2 z>4v$hPE@5fgL$8nILlyuz`Ze)=Ni6;=c~*$n_FNjZRM-0+>a`--AT w_y=cL7oGf xvXTBxLMIv!W9p7@%9J^f*?b{q98c(uomPYiAP z!IOn$NO4~>1GwJ wTLV8H_J0`OQr3o;lLioo2WZiL4MF>{S09lUExp1P$QG{=i2 z5ce{k^N`cV$>mg5XF7^InfV?=YcVPhx2PV-$t%-%j`@OL^GPHzKh=W6oXwh3A#6`= z^qUbSJ-qFq296`>9zwACd-oX^-7Ly~+*OM@2XWpB0zNJ5q~I0{{}{IqIb?!AyHwcd zvudG2s_d$#o_B*6yE9f^vR`LxZHYa$%H*C*MIK$$46%{lNCakX-J7ly`8@^GT4?qD zAlv2>qjSx6f-j&f2-h_J1|PXU%__{I9p5lJ_D*?y5w ;G&j6E|wEVEC`Mx3hh z{Ya!V8>NCB&Vh-30krDRiVxOLlaiEIN#5T~hastpn6mCa8+GMy+v|3)T=7-bb7~S+ z0g#O0=*zaMv8hr+8Uz6#*n55YRycq)9xs6Cds1)5fK|F)%SgkDOn)JZm0bq&LF 6 zoLO-XgL7gq0IB~a#wvj1CxkG|=Fc~Wpj!Bv4X~EKTG?f^+N7HMOCR^g^M~Rgg~b(! zx0~+wZ0Gl>P{9|+6IdZCxL<}bA6&yF#<$^dq0`!``INnqK_XC*G~rPzM&;NqPsN$d z39eCgC8UW_g5zL;>BKlGugBckK_?Yw$EAD>-#Oo4tdJ71w4Rtwk>_-C2>5hB{A) zSV$=5&KU4Khl`E-9wXi))0xNkVZ#YjXd=j#%!!=$&?f52nR|z|G*!ir0u8xcINJV* zK`lEgu?1&DoH3bZdRaxRYz^&v3>);oDjp`MwaKR6Z63Q>K=h*?jL)N@%PP;FA>3ds zl|39z8aNEh+>bDsj)iWKUoTPca A#F_1AHuIoIhMv?5Jpnl1xDK0@` z9_e%WA^MyW44-cDZ6wHlxM3_`gD?p`cO`Vls%8|gLx;k+{u^%@2=x+VTAp*PJ3g^3 z8}x)F*N{KQ0}kvFE}iVLk0B=c(dnlgY{gU^My*wQ`d~qdz3rcM)rfimrWn#TyuM1e zbNWpw%j8BMMtRqoJVWrm2a<)$y$vgwX__p^um71vX2bKHM-0mYh@f*lVA9_bo2;1) z=>KP8c`VFkU+M7oL;ri0&G@N4l5F>;|B{2(s4wx)iZnj;hJ`4OW+-9|ap$qu?mZ2` zjRePnWn!QWV%;kJ8`1h(OZ!sy-WyHtpeQwb8c-I0=YPwzr}KZ4yutWy=( y;o0_I;p5cSk*Tf}%o$5fmxxk|R_cFv*nJsTWt8xEq+)@?z8}=rbum8&n|6cj8 zjqI?P^c~f~Z&4g;h0lGxh{ydkDH_609KKM-W{QaaUwhtW>OIXv^kYVA>Vi#SP2=8u zh*4Y {o_wr@`T}f zIT$axF{3hW{xOaEe?>6#-`~Ey?x~455g;X5P|cZGDUE;VQ&8jo&(2(E-R*(p4dQ3- z?RYZHq6IBeJs@LAkds|a8gjb|T37DmwFnS&LVT7G`A$~PnxpHT{rC@3UVqi#p8ym_ zHex6UPplbn9A5ARc@%A^du}12bdvVWg|HqBKKH0kdG@%;R*8d?B48jD9?y%85P8Jm zgZ}~jKdtkxa<#PNE-i33Py5M4u^C1{;w=H?EoJP7>=k>fk#zq?1NtWn7O+TK%9Xoc z+pnj @;pQFfSv8bO}zXc0Q~XN zfSTRG>_u$~zyJrGnf7%NlQKTr$(CuI`QlK7-Y{PGstxi;?`|}?&}JN1y7`-Cd+0Jq zq}*yTE0r}Wj|OYSW<4FnbZ^a2d{jEaS2 QM~XMv|O|7 zIoHhor-r!jPd`((`@BX!bi8qQd;Lw}T*bDsw^~6Al&5=3sA!e7c0<1oSmAVBDPUN$ zA_h-D;w$WKvk|xi _mKI;B(k?8ube#z;X_y%)1}0c)Q1b&}0Lt?KsX `fy>Hy#U6?OBP56{I{KE@1j0xzd7F+DR-4U26vYqy{Yuz5Ke;T8yE64B5sCUNv zSBo0FE&b-p#PdE|kWE3K9CO6W*EX)q!u~9=As@)znpRn<-`nI4cm573z~7mso44g3 zB{uSB@o6vCn)u)Q= Ihg^iT!ODH_4I+d zUe!p@ha?ypLlWZh<}xs(v1EyV6ZSuO-4jQ069aQYTVsz5_EwkNn0J=Eyv@~!y&2ln zi&_7fJFTko@d%rn30MU!lpocTR_QfYN713L)En2*_3^=@x>0n=qsv_QdmR7WPc28& z5ZVT9t{7JhU;(x7VG#b`1(u+Lp)(8`CohjwrIXP!ZL`$FEZR^8vfJMq)PFl7Bu26X znP*U&*?jz`A!W*EPOxBQ*W`yl>6gjf*F0ox-rGxEV8dkdI57Mux#F=cbK+Wb!Z)~9 z_nqsWAE~;0cUlVj82*>76rn|jx}vQ$IN}i%J3rLbYtmDo2UU=7mX-5ouw`*M%_o+P zPZwORi3u4myYqM|)}EI^nvQ$^kjE#1{UfqX$Na78mvT~xwN~;8t4jg=7^?@X2n4y9 z!tRwDR0=0Xr4Amdx8uOmQ>+UZ*Kf_VBlM-Af^O8ENjv9+S +k+;908Jp4K{IZg`2xFI($33<=Y1EM&} zMQFM1bvVS|Mw`rNHa1c}NgwBZGnWeZwuEK>7JSbae5F%cLVKkiWOF9RW}I^IzL=3# z93pUx92yCwM5|rfAA!wK=!5gzAF 9Y5W@VX@Q&L#*cn?3-oSvvS zeq&BaS{;otP=UPs8^vtM;Tpyn44X>xBV3G{XGq9P%%JwldcL&-U`@b;o6y6G;PzN4 zRg$U9j?>>XpR@E_8qrh>iLDoPz*LP6xmMib)*aBO|7CP>bof`6a-6OalRW~?mYJN~ zwjG9A79&Gb`xIzY!}_0Tcmh>0A{!oqv)2Db3ciht!=3LlHO#kNB4)5|oVV@mqZ{Ou zWcAHdF()#$uo+jW`)?sL+c28EQV$+;+1s12_sI<3qF~I+e&Rtf`~w#Q>0zPb)pDiO z ax~Z$dub z+3 B0{;K9?=oXva^@$k#C8|c~E}} R@$3OzKXl2 zE7$s4@VksfObss^iE*nnp88nZf{JhHx#vB|NVzTG^M2;ry+kJh<>EJkXZUYw3KBeK zr)Rip5oX<*;Y~u={?RY$(CXc* >!w*$SgQJW3vW@-eZcWAFuuI z07)FM_2#1^M!5@Y={(+c#4_craTqyw>Kf1oY=Q;&(Gr7Y=G^uI43t#B4(7}R8iDVZ z+mv%OEZnEV5Fvk8$ki|GynYC0GxF5*7v*8pPQ2V&@bk??+<6mrejS^Plz_r2b+k55 ze%X3pnI()Jr}2^$V{h 9FEobb-+CL08h7{;aG1=QdzL9S$!|R zu~%uWUr7rL@)w93?Z#GuF~J%t2yRhV#hxaWyjj*A^8}=br46=~-}l;o(i7rN>kPH7 zPq8~P9z)Mv$`^A9^^djS0fJr4n`ucgWjsxmK3bPn`*!Y?QGfGfB>9w&JPd17iO}zl zL0tfy3hQX=e{!5(*pq#?p~86YD);%@muxUZv%*|Y_39%lRv9)Jkneq@>{4pIOjE<@ z7u=MMKE*~|!9JIi%CB5pi*ISsX@WG!-LM%#VnglfQcm-sy^VouTN-2t71E|R6}^jY zX9Z ^lTImHb>RyWtvmfk^1(20#-zRk9=5aek?I@2I&ZS9i8Wz zU#&(SwW&`2OUbW#-6d3Gdrg|<>fkW >~2gP0v*B{s%3lno)Sc)Fs9IXjwcOKL;7-bAJ<#;_1oqkv% zuJgEzo4kkue_3-@*90oGr<#~7=Fk}F@dzjAUN}{4T61Uoh370C%fC58EqfW>jaqo0 zF((4oLG7VQhzj;!hVCy_N OLl
zklq>=K~`}gw%ZM(tKki^Ve7g4cA4fhK?mLqRKl8XLgJ9<6h!ySBLWcQ)< zUW6vlUC WqogZYl&x3XP729d^cIIu$^Y_h}x{G%w+<+dHGTHO}MXlCaExPly{?OsoWDQ7t!6_9~U+cMRK&*y14+skQF;jO6k4V z`AjfrHNapWBDCNmVxUqYmIEh{FWD9Cng}5_Yzlf2osI)N6d*<&f&c8hI}ChIhHo`; zw;JF{j~CxRjT)X@nfo$w&ww;QjNUgc*HzZu0k`o^swBd4Ze6YR53fCRegJ=?*r0Pd z5eTRdjY)CcKEE7RijDBSdkomy?(iL34*4de0FyO!2?P^*fslBw+vrIDJWM}jA*-0V zP4 ;owu_=++j!$4wFHog&$Ih_nVPJZp<-_GJzdV zRE&OSKwzy?sEqe2JecouYY_eNcH|$ROOfbT+DyhO?0LF+w PpP&A=BCKD^VD7O2POcN*zchrEo`NfK4 zGQ}gnmn0 _KhX4onh)q-4=r3*d+C?DCIYJIp3-|-SB#a-f>Y2T=Mq^}=ZJw%n? z$RZX(oi)FDWlMrs=GUWRS0j->{F%|!6SWrWMF&NGTyz*fY cl B+wC`Pdoe7cqX@PvW9z!fA=8ll1RwpMY~a;h=EE7S>pU ztNZX8FHPMV>I>Y)pmhj%lq?j7=&2~)A-M5cc5;XW9akA2j!7sI-n4N{X{3OW`tor> zN6^#jGE5+#zm6n&hg=Vas)xXNo{dE?5f%?)d(*Cen!JpO5bj=QwrHZYHWCq~4{OMh zIb ~QoEK*EU{r1G$pqd3U;Vk3n%Uta69dvlY(;e$hS`X`OznqaF8+r6 zhVvf_k{6%Y;gMDsKj7&6r@Kz%ii7B4+qJ#>7`6pia=NI9&6E^D(ZdXgl#PU=_Z9rP z8H(^nKah9Or^0&D6HC^ BC@?lM89paE|2Y3igc1;#1)RqJp6J#M;8{lQFnSRTC+No3teFYvaK nB*wD+8Y5z@1c7yvj^%a>nyVG4VK$ogaXDuCh D8( Z#^zRpU~r!1>(AlT5h8ZElbMJ`;V|Ln8;1!(&?9 zbAE1InW`EI;A>nD-jgh0-sF&}ajXa9B{X1;1g*AY(+Lo7x_uJYZdz0~|2YslhbA#1 z{WiS*Wx}Jl&Vg3%@rF1ev}-3i^f+Q}YG7Z;Y0-NcjyS_P *mF0xU5j;$-=>vJRAuQvH$fn#w|8)LC)}ua?m`?j+cmE#MXImPj-~o4 z134I+|8
C#8zIwte zRwV5cH1^KQBET0QsZ6+^u q^C5JepC#R< nwV7_$R?R4k~)z3t*-F5hYQ)0qs#u_gC6U~MxbyKH}Lk}YO1sqfdJi}$C zc@^VK=w=$4&Dyh;Om?fR;uc~-(Nt8T1f+anQ<1f7*N31^ zx7n7UAzvqp^T2%oa#&kZ2Ufy4?DGnxPe`B6;M=XcO(M1NjsW^hY0c!Sca=AnLT&Fb zH9|RszIE9t@h)kdbrVk2ulr3F1_$w&l`UozLi%rUNcu%+E5%sBeUmFIp;@Po+^Un8 z@piIx9EkyiqGlu*M~d@-`KTy`v%N4<^~~l~XGwr>GWNoXZVzKx#tQM`pO`c+hVA@B zSJ!93>g7(pmRX}W+#+(1aziF^VCs5Qv(bY(FG6w~<~VM+T)<0a6C)yZk1KJ?dQ2?D zDS`iPtY;fW;NEb$L7v0sW(jHFsjTm-gl^OgnMM)_av%G&z^;x+TAY@VGb7D#{aEjZ zyp(LvlCBLGLm5MG6mZ}Z$cCFpnb1&INT;!7kY})4V01$lgZs_`Lq-BBa6{NyWP`M& z8nn|24-9=o=_JBPirn|BHa9bHz>pdAK!TItuKxC$7-MBaF_#!d2BK(QTK2EM7k{1U z^n!o@)}D|^shVcO_=hqKR-AuanP_?S=+W?>xhpAv{Oj`5mut2Cm`$9)TqU;KUT-<= zt6UIiF$#vtcV!OpHie7fy%S9c0RdxN3E)><)pQA*rEbG63R$(0O4^MA>^(RdpZwfH zCqbi!n|L&lhE)9{SPu~k9sGiq>0#TohdkmLDid$(--B=LWU_b%5fv(GU# z0zY#|gSK&%m93T5$n2g-sQ=oG&%%DMyRs+&yXq}PlRXfH;^rh?2O^Y-a`+XK)%tyK z4eY}!S{T0`TZi-pV|+-J(~YQ%hSQjFC+dp-K!P!pHU@gR{UK1xucvMF9-S8vOEVya zDCwr3SB>#DKNq}Dy4UPdAaA6k&Cf8@7|@nn?F>RR{YX39_hr8DJ0gpFYY S3SD0YP}vkkm3)Z`<5{!f!WDjY8LM zRokQdiEiXV5Oo23`0-b5hX3tL&FgoJA14B3o2{(Cgz-V%cYFc&-&UUB;IKy&Jf+0J zTCS9S3L6bntew9R_8}c)_dJBGRv8>x XDv7ZW_-sD{>cCca(7+}_aHf_Nmq z3zdDFNa#XqCKw`q(z}dQ>wAxst$-oizA#Xc1;Cjtpz`%|aN?+hqH+V9K8f;eb>{Qt zQGc&6{B>dl37#B2f~7gw%p3}qR1|Dexm-?FeZs83FY1~;&i$?J4og>Vf~Ss*Kv2kw z!T48eXEnx hhqu=&=8yn^ z51n054@bt0GG<*?W<^MK!hP03opP;q3LL5L?-5(@PC-NV?55ovrsig`{Cacwu?LUe zv6>#v6u+;hC+%yWua#K5QHTd}d*`TTh*h{(lR@u1TyFN+7xg)nuP{v}SR6>b(GG3z z;}t`X0x|-;E8KJoGD!LRyeJpqPTk#2l-+*J(rqkjM#d->^!ge&Oh{b%O4*A~iFLxh zp2MMVHco(*Y7lcF%QL=!-+ILea{hwj*4Q*s8LL3|7dnZ`kwzxk3Tr07XPgQbNEpxcP(i>g*FkPW$;^z^Y4DWk$#Yp<~A ziMxVvpG0k2gZx$QjrI(6^Fb@oxIt`@M+Y_F4gEaJpVk&VbfxEKLxnQ~5R9m (=#l0~QPBEXq68jLK9&x~kh>52N0Yw(vv zPdc{Ek5V~5NU~3Bc12%c+`ynXFPqsQsDGTOgaC(?Ej7#i6Z!5a-{A`5Fp9ql L0beBTAz1&-^_&L}9uh-JtSY?j$wN!!TI9 z4REx_`1fAZorvQ{bVq$9vlJF)XIbNT^)0?`bt1k+2^}Vh{#71|5VCpjU9D_l*XW+2 z*p?N|4fb7(;5?<%*u@cfR`Z+57Zh(k5F{gZs-jd>Aoh^%^!bt>ZR>PjYOyA}4tn}h zZ*xZ3h}h{#W;vR6@Q-oRtvg7P1g#$n={TuHH@lk?sb6{vmlCA8f7XiwFGOl5v_TNH zR+>LN+M`&@6CckjjFMWQ!P7f~T@aRkBB1|9=^)ACK9+28*G{dtx@tR+F1-ySuz)*s z&4GMPDhlQ5rV*jo8M-YD9y6g`{DT;Wjgp{hU#ub`3Q+I0?3DvSUOa>n$2E>4lwCJw zx7mJhWAQ-BKm2pWnTIam*3q7X#74CCC|SYY(mofbRK*_{X<*$Z_kxpkp2E2n4;Ds5 z5|m%>r7uh6Em@o$_qZV;sdVv@E|f@MtXvq~#%SD%4>Sx?T?&c2;-YQNo4P&eJRQ1X z^5=SCVrmKeor~l2<{3K8eT5+w>41Gr!BBH(3LxiI@~OLQykv2UsjAe8MDSR+L^kFo z!l}#1unWF|vlw;$Ae~>Xg>Fv7_$*qiOBECmwKRmgE>_3`a}4H$k8L%3!eK=N>$gb( zQ!ox`HX>0oor4 >>M^i2CjNxQ%uVak#yi z{M^_!(e7*UP&4aTJ+hjC6~emW7AFiyFT$D1Y*28y-zQ!1=AeI320}0%Vat4;g^xIx zq~BfbMhsH=i$oDH=Jmor(aF%BOJfxve&gfmv^gK0q>71?SR**_?oiD&DnQ?o6`-m} zI-kH!IXS9a6$5u@F?RO+2M%R<)TKvyx{1zvF&QFU?Li}$>GEh|p9R$4g3yQ^3R7Mq z1xx Gn&Drouti5ikPO0E`dGMED zZQls7fGUy@(V^QLVJsK4;`_ZR=ZO4o_zf@8U0(#x&O$^(q=Tht#-Uc$dJ@rzc7j4u zvtte3;0GxBSZ5U?whw0;FR<<<<>*^yftxoU;C>RTdWT_@Q@ik*-d5{ObD%aD)@;y7 z`LZF5a6?3P;%lCHi_+zx`v)Hd8U$*+N IZ(#>`T{wk{(C~Y*m_ymD3C_ zK(keUBi|vugs9PsxIMv@wj5_5s*HY^=ndx;e33x%(~aLnwhGm0yDCN`;D`pkg+i`Z zC2i*_7E^OhOwn77ZR2X&{ZwK~p@Tk6dDAiWXE7N_^k^^;0dvi_^m#iTsrg{&{ICyv zwWRCfY?GMmcY~&-JtLW*yE_?J+Q(oHOt2^8_KtIewgHIsyCeB!_bT_isqjeZzfeX< za$7kY-6X=Y1f{Hj4r3tVV&^@&@*m3{^`a^@;~ f0PlrYH(QKd}w1kTr+uX$F{`$eI1U9GyX{(@@5mV>}Y zi&O$Ind)PE8>VBYDlhwqL-(^xMY-ACyNM&)Lfik{>#OedA}x6ZNg6ygPO^04Mj!-# z-GUs#(-ULc+E1I$&$zm+MQLTke6|KP1U(j~f(lwlClzdSo7Gp{-2;FY+j~5BpmgBt z8G4w F!Mb%WqVshD8JoG1(^V+$rr`F5Oev zjq)vhB;5;E^C}!)bXc;m;V5h=+8N%|Yz8wgO+a2!=9=buIL|? zYldQ)8%8V1lJ;z*tCc7fv7`$Og-lfm(-oIJCOM;#n+}zn7~SCFI)gO?F0jFI zAh9S{)kg|^svqrlZ&-8bv_mS$nS4ncZBceskHF}GNN$rqKBoi%Fg+kgu-Ysl4j}Fj zu9^f!LCi(scS%X($R&&XQ2-u?c9pHf@TuU#Lz_7KE3lW999+$JLe;6K#T-e|4wij$ zbP%NvH^u&9MYD#-nT9|C6>j)RtdYKqn$Y1Af}YjZ{WHpBnC-HYW4oxk#T(8!PL Zkb7di-d|quFhUPM=gaF*t-0^ZPvbEZ_>`#5DNC>(uXO-YUep zwew@(F8LO~3Y=Kiis%Tl{#5>GFF<{~aBFu3tXH CM9gFSmJl&oXs2if(c@ zA&T11)_|PbiC;F}f4uL257!Vf9UeM@hJxLJu5O?c`*qZtZA3QhXCIiThDDTM>Pm!6 zk)sri|J_qWRG)37CMcIoe&_^-XpT2fD83U!IEbd5A{)UdN;ZW9Py?I^J)ToKl<&(} zKg3=_=U6S{sHQF`oBrZ}P~(k}$H(8rW`?3>UC5!(IEI^>t@?JYsch$3xzqk$5nVc6 zQ!lCu8l`<35*yav<3XME64|wHCEvzbx~@kCKiOx>=qggg!Yl4e@XXH4a{4KhCz!Kv zZc=O~RIq`%w(skMqSI`I4j8O|{=*hD6DXU!aOlMbyTE=m8TeYOY{Y&~oPh>NX}7YD zw5|-LUwtY(!6KKp8k{8v3GNe*goBxL?R*QEe>Q#r+H&EV-#o29q{@HAk?j%t&7K!W zLViIDMFhqXu=1QyAUQ1Qmt9=;sMvp$qs%i@v8qVT=hD4s3W}iu@+*3mETaj&D?G|D z#c*trv5(#v$fYFIACtc*>2QhF{un`%0bADz_(^D=#9*{VkONk&Lp7qOPTCSiSeoK# z*>EgfgQkV ^z^|^h(?|omJ zSq5{MesFroVfTS^tbS)>M?j(S?U2Kiy!&^=5?c$jywiYEIPc?w)whhxI45?1rnYgy z?gn?7`8SoJopxhZf8t`G&rF-5;K*%qa6@Z0_OD&cAWpe8IsSa}d@<@BG7-Pq@Ssio z(aBp6l4hR`VnK2#YjfoUSbvwkVOd_ly17fbS$L4?V2x%!rnBg_oWX=nW;~w-`T4yw zBq -)`e1#Gc#}wiqvaBCM%rI+$TTaNzVMiQm&ve{+7#C%W{k?e z;`cRkYl1;b++7K4z-aYLKVeKzW *bNsQG# z$KVpH@Dx;=eQShVZf%UNTTEZs)WSFP&$$I_&Y<~PnD)HZefJyR?oII7l-W~X;Z@M1 zQdAp_&n(b7(5na))hee{kLHg3Q?TLO-FL&LQfU3GUblt~OZ$9)E=fvaxG}6#(#2!~ zx)yfxaM9B9SUF%S1ITfD?u*S+gEXw*r47-lJ$!PYQB#@W%}bgZKKT?7_nr%^AiRs} zy^PISZXPj6w2bu5l1I}hO@5*G2m@~|6z=2Mu5%}=RiXX8@Q0Jw?{uuG_Cd|!GXA@5 zJ(^^F5 xe!Q)moEH5MIpYdC9C}nMB zjZX4Z3+Bgrt>&$$)%R4@k}7XR@ch_P@l3T=yNVvHZu?b@ZZMr#lvNOha6U5_Rdzl6 zzHZhchF0Vb;e~hGI`1E*nW+`HbhkA*iktX#R4kbHbyLl90nc3cbtS)?57Ne+ek(De zzF5jIf)lKVj4`4}ct%gUr|9!4h|m8{_CF%$?u`$>mr2R~-jg`Vxj0MIFQyc_DAg(X z=Sm{l1**JR3SH|& r`MYI z2tdJ3N=z<_VOytqPhj}==g?JrbhH!1V%Rr!Um=^5nzhv0MtQBkH`OEcpM2l=*(>?F z`!yK|h6b8u=LCqnxqqA0F~>9)K(nu(a}MT|6!R3DWV}zrvc7 UVXI zq%}no86hy*iP-UqzHfBO{t>tsK)Q-!Pm3wZD>1OqbJjOJzRYy42^}S4!`vo}g~YO& z$u}*z3d^BA<7kA)pH}MOrIS@l*0is`Y@OMDwfknkcIoyD+BH`CmPV^LZ3bqt*`0gV zD_k8ZrY*(4Q*{n^xe2z!FxDz(&^-nFM#%CPm1re`gxm$ucCFmU@=58pYg1J0+9NnR zkxc_u6GYx<#$ =BI+s zW-{ERJ-rRF6_%$5G>L~P$WXhhb~twWbEx%ucz+qLFk)5mSE6V0+33J-#67Z`QU93R z9y@>t2jrqvpS>`(&hczx7gMJ)+)IBmI=OoQ>P!0tZ_j8%*IwRU`;b#DUYu0!^-4<1 zvDh-kcCT>k>w&xGW!Kh%;*4+8?4rn!LBt-qzD98IY`sY%5gSi@AM!v9a`bu%k&TY# z(fYL5%U)VePHfAn&o_8S5JZ0NnUkXsB3rwqb+r1nX3>com085AW9 zPjEfQPw<}=IXFydW!?an1SLPWI5PzDcW_W+HbPF+hU;=T z4!|05^0&r2ygkcVDw3u!@bQd4RVJe%Jr18N<-YGU28p9GS}mMQA$2jhv6bU@# ; z6c-3;UuY!e58)80S^|R0rqc^kbtH`=^)wVoJcyzh-4hO)N7p2NxswQ{H}Fv+!sq!Z zg|M2dTUidJ=2C0Cdi3L~ZJSI2%vy{z1ve4yZ24{`EuM>N4Zp}S94V#KjzgCa3lc*k zx!Mb9Vqly2EeeV=0CizBHKN1=R* CA_l~q&0;p0k{ z(XHiqDV)o%(rd(RLJ{`%5PsYWWGlf<)tK_8w9rE4&NC7J0u?rK(8AEB*zU~Wce}HP zTv}p0BcWw&sl_ oHWdII7;p+18!P6LVDlga!@ZX3GqX9nPLp2xpp|88zQ xMoxHoLy2` Y~y`9@|obqAYuwk`Eqh_t) zJq!SEhA{q&LKWbg$NC^`hgRTxFZ^`ra??gH7T5Jf8t_BLtbCxv1!;iD37Tj_hlW_5 zK->dn4EXU8Ss%RS#H91ME`4AWsvCZ*3d;Tc3H(ZFys(yDE!x@-exUv1eiam{&*bOQ zo!SO0*kde1Tp!w&2)^Si4Nq}g@~(z5_-0Y>QLlX;N;v{?3aDaq*zG>6+AS{1Xvp%i zFcGqIAib_v<$3TUR=SZHwncuMHA0Xr@-UI|Dh_IhO e z_JL|b3#ynnd(H6uBGPbG_ya70?IF0lr;r f{zzcc%Ih?j*=nDW?y7L@1{L4h4QCN^Mntpd6lR2*x@#S^ zE5CkT`elRAgr#83x8B7imt1KFb%yrFu IaEO zy!6A?zMXT}jp=xH3Dic1o|^p>xTTGR=8b-DY>9(1&h!ASImvd4L#oNZ^oc7Z;-#Q9 zUkOvGK_d?`$HoTMaEASuCy3;Sc}>qpm|v(`gNHa^ya_JG(I3y?O@qv3l@TlpHR2{< z0Y^Sx|3(JBpu>;nmn%M +SpOl e5 ^!`z)Nwy4euXW5*_stHyq5iiERL zR~F~xfZo0_ycQhIzXahrwc=N2J`WqOWjLG+9J~Vx4P|@-iyu4((?F_TK+r@^uf($v z3wxGB%=>DFOEwmTY7=-oY2FM%bzsG&=%$pLK|v3zv{d{mIkIAqTq2oZ7$M5`7uq=M zrU<~M3=({Fz&_?jLFG1RaY;?5U1pDRy27>}CesR*q*fY|9JT_f;W2CF?7IBE+_NDg zvL}_fX^E9ltb)x&9T!{*@%AyXDz>?>V#`8)-yJzpD~To8&D0u3F3Bf~ATW7wJh){3 zdB^-kI{M0!Ub7UX_9&IHMt8I?R$9r=7?6qW9}}WpT+sY}&ZN8 tXjMxDwx5E zoe9K($lvr$79a~(j7oKRe^K)iKO0A|6W`2ZAJwxyPkc9N5Hqe?IhTpVTi|R|xVm7W z&j=`t*J-8H<_;~80h}cU{$dHni{K1cFj)kpm#tPphtUh5U)`)ZJBFnD>Dvw8>6cRQ zN5{x;WD^(@VI@P?Wa&OQ^%e$HXcmx#FmPmR%%P|?+8r0S*LM8l@yp*aTAJ~T0FUb# zbpd9VQuTWaWETc>jle4rQ+|;HGtl9TzrYbs0&JJvG_ERW<0VYm{T79LBuIVchyNvK zC)96A&H;3)zWd1_-$A?aFwb>%XdZ33y{w%OdLNBFWl|jr{cs8wM)>#LnEQelo@f3! zVZ+%n?{!?t7T=rBpP5$Rr^wztWhRJ0r=aChgi!9Ff_uv)w620BoIX#mA)nd0E#fj? z%d}DlJ6}t}Ba&bHD@S6I${QAe9J<%RdopflcDV+R$tXZ=YCWNYVqs$*3glE f6>>W3~PV0sd0@Bk*1&hswF7}a|n z7aOOs6!JmtAg_-5;WpFoN14IWZL14s3OKoDJl9+SxF0tfpF`Mod)i*B__C@ZtA_;2 z5kK$(UqDFpa0T_kXd)_@b{<2k{KaEs*l=b%9w1Gm9LUPVxvpJe@B0#j3NRKsk5`?G zRbBjf2*G>GlZgTHbbf@cCYvUXaSm;@-~B2yw@1W;#(`{`u^L9v1J25P#GEH7A5m{6 zgfin!eNQ*nC=`caJCWNS!*ax@kAV6hoI0z1C~GlyD$4 dfCRBa9n~dU {c<4*dbeCZl@SP3FkzH$ zE|LngdfCkCf^s4nUZb=$a~7d#K9N8Mc#b1TuF)7Tnf9b82vJ&Csa)ty#RxVL6T)?D zBlj(pCZ8aWJS0_%773%9y@MoCZ-_r)fAQsqZ~S3Ogkaz^8};B2d{z7G?xY{sgm*|r zPVKusjkr^|K)IdE(u-T0=wR(Fdw#!Py0cBLv@;#7^X`fkY(ga80JsjGy0&yov4axZ zbQ}K`>9E^NTAD`*x^b#6@zhyS{@$J1R@~-nFG8P b4nq>>u{l|Y&!Zt8yE&YVv?KVcjVr|@Z+ g zip~Ri1N*&e9&fn7e#gCuFE46?5H5`YtPWuTuTz9!#jO~NO|7V~Sb5Z+0s56fzR7t2 z`u_(=K)1iX&ITWxaW5?DIB5~^B=6G(JhUYV2XP087sm+V?Q5I-t?%HvwYk|)LKA@h z{?YxTn(dL{JX-6c_*S)YdyPM+qG5M|!~H-!Tbf%!I^B+MU}< T(%BOh)nwU0iPg5A98CkRA8Pt%lvf~A?6bhrc~WrP zWmWx7ok!PsuvI%$TJW1@P5cYo6#GS5u2`u_!?;>`JI_E^RMPLM(Hux|&fc|fTtQo8 zgI_y@r=%UFXF~(iS6|I@1J;SH7~L*K{0NMkPa_|tGC&Ld-bDa0##(63hf>{3#cMAc zbV7W$gS&E{&!=baMS$dsiw5lJSNAUo4}fu7Wx_e*Ygr2IQ{kgL!*o#vb1wI%@tPKr zVsex8o9&zwA(Lxb2p;UL+Jp%oEpO3bdQl`{z39_h0s7ne5{CyIbF*Xgh%T?eQ2Qrm zdEYs9amaf24us5H&bwEqy{ZTEE^f2E%3uBS+;^ViHV>N+^xNDYK 1v0;V0%5Zs)KEDhMaQPuPsFj5{=sGhb1 fBH?m@gr!l--2pzfb0pL_I2V$Drar5 z-FYJQ`q=8Cs2Hqh5JAiomkK!t!sfmW8|r#}MVW0sQb-Oy`BqLO;e}F~s Q2OxqZ zuko9*hAS$LScKOuiUEgB_dxg(PoMQgH;Td&?PK3{Wl+mKW{leLWie4UZ|oBfo=twz z6~xqmYU0GRc1>s~SQpeUu7}2UKDd`l5^PsCcaGR8z)`ypjr-)oO$!sYW$&{;hJ-Rn z_UgmFQ=5xh4gC2KRxk}iO0Ghpg;dN?y2$VageWP#A=t*T%v^JfPW5tNOWcDV0owr& z;ZZe(@$uu$s+nNHZDyWvIL}i4#jSkhKMALnX7;p5iu-U9zyq{eh8Ou%3QllT1j`dh z(Jc8IxC#nR3yQi1U?UmJyDN!(^lfotP78bpOs}AwVaJ`MAOHXW09EzJ4<5}(|8PZ8 z2dQ8%hgFOB90Qomt>r#0$|UkL7xT5AOenAkOyx(zg#1pD*(7S)0003Sh_wgKj2>1P zKdg7|Y{!TAkMK31R5@yS7=WBp3rTbMnFQn-0^h& P7DW4>LXs zlAzJ5)T&lCAjRwjuE2lDtT|B7&ZM9_^1@1TtV*>C@{;@5O^TOBSYQh>e7@ecX5x_V zfVj^tDgQH|9@9dJINmSUi<29u8{CJYpcE+peg$}^mcF1}q&; FiH{Z+{x;yWTaWoVLH=bH&hRv-N 86FiU8+2+8Fceapa4l<7>7SfNZ+te@>3=HrOIUi1c58+>^zuFeCMH} zcZ~fy)&N}>f(KN90008|#{&8v5nwLo@f-1SO%^|6I+LD7%S9~`m$!o1@NGw2HIM8W z5xt<>`_$4pOMnDLQf7c5%_KnKyppcM3NdJO=XXTzpZ+TFI-EakYL>hADoC%^^bzP3 z0aeH!{ye>Sr-Pe^v~(pn9*MfSSeCEsCKNjQ@Ko+7ZkiV!c(&qwOgKu(WYK=$#~_29 z^ZhAxE!oxQ(+YbcQT@860neS3catBG9u({19i)5!^8#Yx`Hqkp3Pnj$IYS!BZNCWe zA3;A;kBt(5=BztdvhZ3;-=F&F;9Z%wlHIfZ4XJ5R<9r*|4x&IK{=Epj!+Z^HJr#Cd z4bsEEpNQaZ4x2g}hQJ?}9M4%0-T>oQslU8-EqKWl^dZ8