From 3436f1f224036793c44661d457e01f0c084c6526 Mon Sep 17 00:00:00 2001 From: xxl <505279206@qq.com> Date: Tue, 31 Dec 2024 10:06:09 +0800 Subject: [PATCH] first commit --- README.md | 151 +- added_tokens.json | 16 + chat_template.json | 3 + config.json | 47 + configuration.json | 1 + generation_config.json | 14 + images/gme_logo.png | Bin 0 -> 525625 bytes merges.txt | 151388 ++++++++++++++ model-00001-of-00003.safetensors | 3 + model-00002-of-00003.safetensors | 3 + model-00003-of-00003.safetensors | 3 + model.safetensors.index.json | 736 + preprocessor_config.json | 19 + results.json | 1 + special_tokens_map.json | 31 + tokenizer.json | 303211 ++++++++++++++++++++++++++++ tokenizer_config.json | 143 + vocab.json | 1 + 18 files changed, 455769 insertions(+), 2 deletions(-) create mode 100644 added_tokens.json create mode 100644 chat_template.json create mode 100644 config.json create mode 100644 configuration.json create mode 100644 generation_config.json create mode 100644 images/gme_logo.png create mode 100644 merges.txt create mode 100644 model-00001-of-00003.safetensors create mode 100644 model-00002-of-00003.safetensors create mode 100644 model-00003-of-00003.safetensors create mode 100644 model.safetensors.index.json create mode 100644 preprocessor_config.json create mode 100644 results.json create mode 100644 special_tokens_map.json create mode 100644 tokenizer.json create mode 100644 tokenizer_config.json create mode 100644 vocab.json diff --git a/README.md b/README.md index e5b9cbf..7fab69a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,150 @@ -# gme-Qwen2-VL-2B-Instruct_a14122304306802688376722 +--- +frameworks: +- Pytorch +license: Apache License 2.0 +tasks: +- multi-modal-embedding -gme-Qwen2-VL-2B-Instruct \ No newline at end of file +#model-type: +##如 gpt、phi、llama、chatglm、baichuan 等 +#- gpt + +#domain: +##如 nlp、cv、audio、multi-modal +#- nlp + +#language: +##语言代码列表 https://help.aliyun.com/document_detail/215387.html?spm=a2c4g.11186623.0.0.9f8d7467kni6Aa +#- cn + +#metrics: +##如 CIDEr、Blue、ROUGE 等 +#- CIDEr + +#tags: +##各种自定义,包括 pretrained、fine-tuned、instruction-tuned、RL-tuned 等训练方法和其他 +#- pretrained + +#tools: +##如 vllm、fastchat、llamacpp、AdaSeq 等 +#- vllm +language: + - zh + - en +base_model: + - Qwen/Qwen2-VL-2B-Instruct +metrics: + - accuracy +--- + +
+ +
+ +GME: General Multimodal Embedding
+ +## GME-Qwen2-VL-2B + + `GME-Qwen2VL` 系列统一的**多模态Embedding模型**基于[Qwen2-VL](https://modelscope.cn/models/Qwen/Qwen2-VL-7B-Instruct) 多模态大型语言模型 (MLLMs)训练。`GME` 模型支持三种类型的输入:**文本**、**图像**和**图像-文本对**,所有这些输入类型都可以生成通用的向量表示,并具有优秀的检索性能。 + +**GME模型主要特点**: + +- **统一的多模态表示**:GME 模型可以处理单一模态和组合模态的输入,生成统一的向量表示。这使得各种检索场景(Any2Any 搜索)成为可能,支持如文本检索、从文本检索图像以及图像之间的检索等任务。 +- **高性能**:在我们的通用多模态检索基准 (**UMRB**) 中达到了最先进 (SOTA) 的结果,并在多语言文本评估基准 (**MTEB**) 中表现优异。 +- **动态图像分辨率**:受益于 `Qwen2-VL`的特性,GME模型支持动态分辨率的图像输入。 +- **强大的视觉检索性能**:得益于Qwen2-VL模型系列和训练数据,我们的模型在视觉文档检索任务(例如表格PDF检索)中表现优异。这一能力对于复杂的文档理解场景尤为重要,例如专注于学术论文的多模态检索增强生成 (RAG) 应用。 + +**Paper**: [GME: Improving Universal Multimodal Retrieval by Multimodal LLMs](http://arxiv.org/abs/2412.16855) + +## Model List +| Models | Model Size | Max Seq. Length | Dimension | MTEB-en| MTEB-zh | UMRB | +|:-----: | :-----: |:-----: |:-----: |:-----: | :-----: | :-----: | +|[`gme-Qwen2-VL-2B`](https://modelscope.cn/models/iic/gme-Qwen2-VL-2B-Instruct) | 2.21B | 32768 | 1536 | 65.27 | 66.92 | 64.45 | +|[`gme-Qwen2-VL-7B`](https://modelscope.cn/models/iic/gme-Qwen2-VL-7B-Instruct) | 8.29B | 32768 | 3584 | 67.48 | 69.73 | 67.44 | + +## Usage +**Use with custom code** + +```python +# You can find the script gme_inference.py in https://modelscope.cn/models/iic/gme-Qwen2-VL-7B-Instruct/file/view/master?fileName=gme_inference.py +from gme_inference import GmeQwen2VL + +texts = [ + "What kind of car is this?", + "The Tesla Cybertruck is a battery electric pickup truck built by Tesla, Inc. since 2023." +] +images = [ + 'https://en.wikipedia.org/wiki/File:Tesla_Cybertruck_damaged_window.jpg', + 'https://en.wikipedia.org/wiki/File:2024_Tesla_Cybertruck_Foundation_Series,_front_left_(Greenwich).jpg', +] + +gme = GmeQwen2VL("gme-Qwen2-VL-7B-Instruct") + +# Single-modal embedding +e_text = gme.get_text_embeddings(texts=texts) +e_image = gme.get_image_embeddings(images=images) +print((e_text * e_image).sum(-1)) +## tensor([0.2281, 0.6001], dtype=torch.float16) + +# How to set embedding instruction +e_query = gme.get_text_embeddings(texts=texts, instruction='Find an image that matches the given text.') +# If is_query=False, we always use the default instruction. +e_corpus = gme.get_image_embeddings(images=images, is_query=False) +print((e_query * e_corpus).sum(-1)) +## tensor([0.2433, 0.7051], dtype=torch.float16) + +# Fused-modal embedding +e_fused = gme.get_fused_embeddings(texts=texts, images=images) +print((e_fused[0] * e_fused[1]).sum()) +## tensor(0.6108, dtype=torch.float16) + +``` + +## UMRB评测 + + +| | | Single-modal | | Cross-modal | | | Fused-modal | | | | Avg. | +|--------------------|------|:------------:|:---------:|:-----------:|:-----------:|:---------:|:-----------:|:----------:|:----------:|:-----------:|:----------:| +| | | T→T (16) | I→I (1) | T→I (4) | T→VD (10) | I→T (4) | T→IT (2) | IT→T (5) | IT→I (2) | IT→IT (3) | (47) | +| VISTA | 0.2B | 55.15 | **31.98** | 32.88 | 10.12 | 31.23 | 45.81 | 53.32 | 8.97 | 26.26 | 37.32 | +| CLIP-SF | 0.4B | 39.75 | 31.42 | 59.05 | 24.09 | 62.95 | 66.41 | 53.32 | 34.9 | 55.65 | 43.66 | +| One-Peace | 4B | 43.54 | 31.27 | 61.38 | 42.9 | 65.59 | 42.72 | 28.29 | 6.73 | 23.41 | 42.01 | +| DSE | 4.2B | 48.94 | 27.92 | 40.75 | 78.21 | 52.54 | 49.62 | 35.44 | 8.36 | 40.18 | 50.04 | +| E5-V | 8.4B | 52.41 | 27.36 | 46.56 | 41.22 | 47.95 | 54.13 | 32.9 | 23.17 | 7.23 | 42.52 | +| **[GME-Qwen2-VL-2B](https://modelscope.cn/models/iic/gme-Qwen2-VL-2B-Instruct)** | 2.2B | 55.93 | 29.86 | 57.36 | 87.84 | 61.93 | 76.47 | 64.58 | 37.02 | 66.47 | 64.45 | +| **[GME-Qwen2-VL-7B](https://modelscope.cn/models/iic/gme-Qwen2-VL-7B-Instruct)** | 8.3B | **58.19** | 31.89 | **61.35** | **89.92** | **65.83** | **80.94** | **66.18** | **42.56** | **73.62** | **67.44** | + +The [MTEB Leaderboard](https://huggingface.co/spaces/mteb/leaderboard) English tab shows the text embeddings performence of our model. + +**更详细的实验结果可以在[论文](http://arxiv.org/abs/2412.16855)中找到**。 + + +## 限制 + +- **单图像输入**:为了获得较好的训练效率,我们将视觉标记的数量限制为1024。由于相关数据的缺乏,我们的模型和评估仅保留单一图像。 +- **单语训练**:我们的模型仅在英语数据上进行训练。尽管`Qwen2-VL`模型是多语言的,但多语言多模态Embedding嵌入的性能不能完全保证 + +我们将在未来的版本中扩展到多图像输入、图文交错的数据以及多语言数据。 + +## 阿里云API服务 + +除了开源的[GME](https://modelscope.cn/models/iic/gme-Qwen2-VL-2B-Instruct/file/edit/master?fileName=README.md)系列模型,GME模型也可以作为商业API服务在阿里云上使用。 + +- [多模态向量模型](https://help.aliyun.com/zh/model-studio/developer-reference/multimodal-embedding-api-reference?spm=a2c4g.11186623.0.0.321c1d1cqmoJ5C):提供 `multimodal-embedding-v1` 模型服务。 + +请注意,商业API背后的模型与开源模型并不完全相同。 + +## 引用 +如果您发现我们的论文或模型对您有帮助,请考虑引用: + +``` +@misc{zhang2024gme, + title={GME: Improving Universal Multimodal Retrieval by Multimodal LLMs}, + author={Zhang, Xin and Zhang, Yanzhao and Xie, Wen and Li, Mingxin and Dai, Ziqi and Long, Dingkun and Xie, Pengjun and Zhang, Meishan and Li, Wenjie and Zhang, Min}, + year={2024}, + eprint={2412.16855}, + archivePrefix={arXiv}, + primaryClass={cs.CL}, + url={http://arxiv.org/abs/2412.16855}, +} +``` \ No newline at end of file diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..caa8130 --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,16 @@ +{ + "<|box_end|>": 151649, + "<|box_start|>": 151648, + "<|endoftext|>": 151643, + "<|im_end|>": 151645, + "<|im_start|>": 151644, + "<|image_pad|>": 151655, + "<|object_ref_end|>": 151647, + "<|object_ref_start|>": 151646, + "<|quad_end|>": 151651, + "<|quad_start|>": 151650, + "<|video_pad|>": 151656, + "<|vision_end|>": 151653, + "<|vision_pad|>": 151654, + "<|vision_start|>": 151652 +} diff --git a/chat_template.json b/chat_template.json new file mode 100644 index 0000000..732bd68 --- /dev/null +++ b/chat_template.json @@ -0,0 +1,3 @@ +{ + "chat_template": "{% set image_count = namespace(value=0) %}{% set video_count = namespace(value=0) %}{% for message in messages %}{% if loop.first and message['role'] != 'system' %}<|im_start|>system\nYou are a helpful assistant.<|im_end|>\n{% endif %}<|im_start|>{{ message['role'] }}\n{% if message['content'] is string %}{{ message['content'] }}<|im_end|>\n{% else %}{% for content in message['content'] %}{% if content['type'] == 'image' or 'image' in content or 'image_url' in content %}{% set image_count.value = image_count.value + 1 %}{% if add_vision_id %}Picture {{ image_count.value }}: {% endif %}<|vision_start|><|image_pad|><|vision_end|>{% elif content['type'] == 'video' or 'video' in content %}{% set video_count.value = video_count.value + 1 %}{% if add_vision_id %}Video {{ video_count.value }}: {% endif %}<|vision_start|><|video_pad|><|vision_end|>{% elif 'text' in content %}{{ content['text'] }}{% endif %}{% endfor %}<|im_end|>\n{% endif %}{% endfor %}{% if add_generation_prompt %}<|im_start|>assistant\n{% endif %}" +} \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 0000000..affbd7b --- /dev/null +++ b/config.json @@ -0,0 +1,47 @@ +{ + "_name_or_path": "gme-Qwen2-VL-2B-Instruct", + "architectures": [ + "Qwen2VLForConditionalGeneration" + ], + "attention_dropout": 0.0, + "bos_token_id": 151643, + "eos_token_id": 151645, + "hidden_act": "silu", + "hidden_size": 1536, + "image_token_id": 151655, + "initializer_range": 0.02, + "intermediate_size": 8960, + "max_position_embeddings": 32768, + "max_window_layers": 28, + "model_type": "qwen2_vl", + "num_attention_heads": 12, + "num_hidden_layers": 28, + "num_key_value_heads": 2, + "rms_norm_eps": 1e-06, + "rope_scaling": { + "mrope_section": [ + 16, + 24, + 24 + ], + "type": "mrope" + }, + "rope_theta": 1000000.0, + "sliding_window": 32768, + "tie_word_embeddings": true, + "torch_dtype": "float32", + "transformers_version": "4.45.0.dev0", + "use_cache": true, + "use_sliding_window": false, + "video_token_id": 151656, + "vision_config": { + "hidden_size": 1536, + "in_chans": 3, + "model_type": "qwen2_vl", + "spatial_patch_size": 14 + }, + "vision_end_token_id": 151653, + "vision_start_token_id": 151652, + "vision_token_id": 151654, + "vocab_size": 151936 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..98534ab --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework":"Pytorch","task":"multi-modal-embedding"} \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..efd814d --- /dev/null +++ b/generation_config.json @@ -0,0 +1,14 @@ +{ + "bos_token_id": 151643, + "do_sample": true, + "eos_token_id": [ + 151645, + 151643 + ], + "pad_token_id": 151643, + "repetition_penalty": 1.05, + "temperature": 0.1, + "top_k": 1, + "top_p": 0.001, + "transformers_version": "4.45.0.dev0" +} diff --git a/images/gme_logo.png b/images/gme_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d2a87e94590a9235e0e5f6eafe14e15c893d77d0 GIT binary patch literal 525625 zcmeFZc~p|?+csQjmX&GRyh$4sFDb@%&;9!c;tTtyiMUpm}wXGaMZ z`*U4gW|>MlOqjLwo&`$1g5yB`HRSql`+n|M6{p4h3VtlogEgtoRhaYW?u Ld?xY zxybJFW@WBhy%-!LW@BY-pGa@*nG-elNSVu}f@3S~06O+N)3Y~4_vR{%b(I4a!FAI` zOYX;NhTDxwc!q~c2p#I`Of>B+;!jS?o1(4M<3)R+w5LOUfSr6k@D-E)+Y$}P)Y>`P z;bPs g1s(XO5$AuBSqw$TO9*2*YdTj8SC`h=Gtd~x^dGDf{z@Y-)+C;Ot( z25i47WP+^Cgo2%432_38?)H&1x*dN1r;7x8<;Np_EAAF4cin4OxDgR4Q*O$NX_mI) zVJ#u z{JmH5*5xdUsV{6P-%>OFW)gaeuELUU(l&^ zNUUIsq(Jlr+2?Ts3+hdPpZ(4|GN)S^#t)bKKar2)^mkJm0I4wVxfpLL%q{*iy@VaA z-BorlE*ck{{0m&rw)o9mEkmXqj`gNXe={LGZ$j8%rC7ujrv;Q!K0QpDam{h}Ou14f zz5Cx*pMPVT+w9OP($a3gE{vqkxtiWN?*SpXfMh~*ikGs(6UoFZ%-R#h{jmM#+rMgt z{|P~H1?tP2*zPye wnSP~=0{2I5M>BxErHpMsz0O=((#cx++tTnnIsP+DJl5Yl7rwMG zKgC_Z^S&jfFk1QIqSl{*Bo#Nk_ Mn8+g!bbbIc-3 z{ef+PyT45vMdsAV1^m2mmpJz>7x-@ItTly(o7v9iYru~zN%~OwXU}|!6*?lG-g)Q9 z88AXh5|vZ18IsJD(!rI6Lt(p30R6XqJg(&6!_ESQ(ztJXdZJ$dBKcr+%J^DdC22N$ z`XhE}usKEkc{)AnK3vdK+i!EMPzM~0$d!wHXMN2lP@V!atHOe8wcVdk6eDyyIE% zAivURW ({@Bo>-e0T&nP+U6x{GrPCkB3AL^SR};lW*MpbbDE@DLhS)#>4-38a z`I@M&PBC0#lz@+we&$n{X|ix~y>bbRoc;*l4c8i?$Ug09_|Ey>vr`9Nlk{iYTP KXuxwei)&@#|ZT zbW|fw&O;iPF|#+?I 5yWm5+#zpJ&itQtw4$euJoDjP_EviW-?Yg?~s z##P0R|Dz25|0d~}O54mLV(h{pDqaJ+0*{B}dATUjyt}T7U|#Q*v (0-!otcha#W zkDZ1gg4J$l&KoygoicMMyc4)KRsQ?V8}6SV@vIU^O?q3W%s^cjpF2;B72i+st9};= z2(ZU`%t8{DK_gvvBAolZ16ASCgJn{}Hu0_q`%8RxQN73d5m;Wr3t;oTHW22BY%rMc zH!s SB6 z11Dvoi&un@>+zm}Ww_Yug3r@qEE}wyNB!8fo+(aXr2Kx&aI%d!1&G-NrrRtrG4W|1 zC)`UcUyyRfi~OwCzgSn@+ttkJIJ0v1Y}2V-G4EC x9y9LebumL`lgaGO*5Qmf1C9>g2$ zD5(ss8=2$RhO(*m#91ed0dFpNMzX9TXnzOM<4^Y9Jx7ijEwhNHp)K>g5F_Dn(EyjJ zol1!}xaFh1(~qy4wOX!JU&}>-@1ETN3s?7;95k_9qGNNymuN^N{(By`(D#ld)aAGb zV3)V~>!nn(y`u^QT?6I*cvS>WZ|6Rj5pcE77v_LOQ3mi8*dVRw&wE6(d1h_Bgt^yH zi~107l9dfeyR;bgTTR5QU&Ta&qGY-VZqkL@Z=-g@ImY{s+u{^+8p(-{NDN5KPjd8< zviM8o>du1)< zTEbTJ;w&`Gsf3oq)N ImssWFfD<8?`MEtT% fHegAmR=!9|tB?Ptk{E;N^5P^035 zJ?jjfJ2b0n)xVWF`NV @v09tL?jPNeyVIglKbbmc%!H5s(ifcg;ny#%4>=c^j;^i=6}$__!O3B*bB3;t zmnalo_oN(JG?`NBG4d0bnbhy)WS4o}$n-YH9r-g{f}thSa;e=j&vJ>1M3yr#rpP?D z{pnmt1INsSb%JB-w$P$Jf0-5G4N2`?0e+gHxyhDl$Aja-$m)iQuC`Zlhqy8h|0pjr zY9jP{+K4o);BDag(bSgAVAtSVge#|{w2KE;+fFdG<$eHkYLY9T`}JdW!MXr*n!sV0 zMDI}(JX%$Mt9ONE&<$X5aMxwPY1W2PJj2Ccr_eJiln(Tw(^$hs`8vV2=<8p6#o#Ky z <5WuGQS~$g=!VEDq&|r{AEB?%^c{LzSFn
H DZKEvR)oq*2JzltvjSBMw=)qT}0>_fAOsg5g@z2W;9h=N~b0 zb*lNtiW S?F6$&Yhdid9n z5nA(7?k0;>DDOay)CGUSdHr596LK^W9L`xfBxDV|f4fwC@6GQMqWPuL*o9RjXAt5` z2XB6XYcdd_%@C(;_~B#<4Ex=+3m|O^>YNkl@+OcWSoQ|tOkB)XLL M-d zzjvVGG7AP;Z&t;;4F-vOehU=9D>Efwi;%L*X*NSBF=022psp#^Zz>bFZW0Qz%LYR8 z$ZMHea>>0SIq(TdL(_0tPzT_m?4a*G?gwAhvCt>!OS_(!2;LIM&m7pkH0;I*hY&D} z-?EzM35ulnJjoSL+Ku6oef7I-Sxr&9<`&HISY0RuBO!>9m>V7aVqKVDco!ek)9w5j z7IYKIZg=5BujKjchbs9|Su)gcnCZn3P~d9Hezx=9w!h_sr8?oI>VFrl*Z~ zTmJWY+y6~8{vX5pbm;|^pC^23vQ2L~HI%=DQ@W+h7%`P?YRFIyU<|xGqjSom+F|$; zYD~a=CWrHjglJT3P29YKUz;gy%w8N>Tqid>RM^VVwTe6xv;NE#%ZNiRtUE);O>5GL znX3&YzET(>Y`c~D46y$Cv0mIs*+?+*Yw>z?ddJ*K-&Iu7NPk|`SdAL0Avxvqwg9qC zA&XLX=|oudi7iZAEp9+#CI3K(L~PSSqTfU6_cZXoYHpuvi*ri+P$0&=Po>`pl0KS- zj*i@y;rL+>V#sUp$sS>Kuhs&(-Z @hl#A{w0 zTcyge#TE63xBP@c=oII>>rb4!w0o*?wb0X(oXb^GVc#&yTe0E-l9P#lsaZ~ z?&0@@&?_!< Ct2k$zS)d68Q^wfnAz%$7`yV@ z&iPWU$@oZ*GQ`;Hk^an;{6e7H XBL{Up?N zNlGDDrX)MvoAN)Hl06r{)WNdRu&+ $9^hCZQ}Kjpxt#QT zzIU&tEr`Vebs)C9Y|E7Pv(Xf2^^x|?>kL #Qs=MtJ+NY z?Ok}uAv4O{*NJB7Ge)kV=@M&xNa98w{rE7c6#NrJyY{ g;EumV*>qdd4q%&q`|Vs!`dhF(1pu|bmFbTSZ1<>B*O2!Ya&?!L43pMf+gcO6 zfI|WsnR7>(j$BVEt2R75TnrkW$DLR;+5+Or_}BY l(}%(a-^Z@zZjih*M!rSfh<|CWt@Ni}w03J;`}Uns0)U$lb~&+xn2K+M!x z*sXj5bI~B&9TF?#!r})P7a@83JX0vJuky69l-FY5ParE{TfY0S=99@va5I jTJC zoH{y285LXndds~EOMxGv=rP^BETLh8NyFIlB$v4Zb2PW0%qR(MPXLovWqki6m>;EX z-DMe(5W)5}5u8vn+)Fh;NBx@S10`{3TA>xt;*o{Wvb&Fm(>5;yOgQ~vpV)IQkooti z>e44|t%AWWLcF$*lhWemZG?Rb3uoE;O;Rb8eMs&7OF)$uhQ}%D_&`tc%M 4EKUM&PWF6eC+4S2%g$X;y`$Gy2MK1-W5zzPgr>Oepvn85nbA z*nq$v{Q0K(>P3|1t}BWBhgf7q+BZy2xXUymH!GTGn^*7}-A!D?%4#@fDNKWaFDcpI zM7ku$S)i*O2Zed2Z4Z_=T9fqG44N&VDC-su93YwXqarRL_Jpx&xW_+W&4~Wh5w~mf z=KA$V(HTT>MqE`!dv$3+SD^`9aBts?EPpDX{BA0BK8ORV`Yf<8=~{9i!WkgC+D+s7 zPCeA&q2qUI;1H*nf?tMqKWU48S~*+hm{uTgoC~6bMz}AF%Zn(iT@?}I(g-htmz^g^ zS8wQ`Hh5Uo)wWZa{7+XFt(bJ+!MgSM+glkk#rsBy4$@@!gNP #5gu3Auv%wcxjlaw$I#NrvFv+s1UAQ4_QAdgIjjlYeP`~d z^jvb%zUBz=)%2X^xEUH10Gfemj?<2TpTd*SJFoH^hER$1+J(Wid7EP9*pL(VMgVf8 zJ3ru779ohd0{V12$&ZlYV%l>KT%MApZ|=9_HqgctN^gyjVmFXn!p_xT9wEE@oVmcb z*MSdZ_ #$P3WZ#Ye*B3Y*^v>h z|A4?Jb!zEV%U!SoIga0}F$yTggn~p|@k{<%Ycci{l3@Q$-fIFTzun)w^YD=8{(P2y za0W)1-MI!a4bI6*$lkOY#@xfPeMmfeH@Pxu#qHeDC`!xgR{x+RvEQxR12Q9EFAM}v z1-P(szqV~pZ=GEn#f`KDM)sohHwl|1>qG~F6EwfYpE;V6>PM}Iyu_~T%%hbbX|IlF ziRvm&Xv+ha@LS_t5bH-zSOleuTX02pWl&7^-U)c@`gj7a^Nj=lNL!{3Dgys)rjR+y zYke*bJp)?L7bkM62ObR#a_bK7$dV2I6;O?SCH|NrY7<*)Ing6-Cb6i?fuC0gmf`rJ zkx%dB{z9}lH4*B8-WZ(14~;r_qMrNtmox=(CNR;q7vB>rcgL6}5|^kf%pl|ZPnb?p z)%NGu{`6}q%W-Pu`fL_^p??d7ztrct)l%`EWP;okl8B?V)hk%$35lRd!%Es2Hf`MS zVC0?29ft~^Wb ddFTuCDdS#y%mQkYDm|I!`JQJo9mu_wNtZU0)*p3X?ii2w!E(Ue=L7 z_^NK41)U!jrV6{MsfUbMet{O~a(U&G*E{w*IX5x*OObjB)Szs&Fmv{~j@zkoF7o>d z$w%@!{8C+3(vC@d#~^slmG7x>Fnp8~#;TQ1I2 ln~P#QH>&} ANdmCBJCwX!RomuZ(1{#{_2g1)Yi|y*E z)|Q1N12dsQ0z3N0^ccT$V|@`0V{wph&~0a)SbWA5M4id9wdRla ab*O zFPTXT%4L)w4dWALeaES?L7gv77_Nd?hrvZ6L+P2uc#3~e9y9I>jZZwN>bjYQ3Hy%* z!)4b_{Df8?SmJlK!Z^HAXI^iu5j{AABu6TnrWec+fqq=JA^Mmw?3HD1D|;RHWt`CP zqMb)!9JoCtn{V@&c~NF#IdJGoGhI%W8*DsdZ^;jv!gd%ay6Tq`^mhqa 1z&v`K*#4#I?OJ!4qPt-dSP96U1!}Yf?{$ J-St`y^ yjY4Y-oZZ^w*Q~DTczgl?^&kN~CkRsXU%YFwU*l+vULj@0q8XrA z>cY=!$#RN|M(G4G;u+`?^z(2jML<&a#VQ<0iIJB6W$?=uQ$L~7 ~7c}&%+(N(`ved _ONT>$YbE=6;Tf2d &Dc|u=NgrlW+F8q|bZF>_HfO?ltUWM8k=yHf`7vA-3OFD_FqUhf? z-Ckpd7Fq<$y&)GD1R($xs`P8r?jlB%ZNJW!?eK`}H9O@FSzpVfIBwDrZ7NTEb~h~o zi;noJa6(P%_p-RHx7O2cL$}C22LnP2b%u4%3Z40|w2>KEe+H_MCv$$8SNBPFBj;rx zDN7P2V}vsWE*3$^Tyy$R5R*178>>yG8qdxME!R%aJy02ZBloG;()mEOf-YhL4^}b) z8SdiIurAJdCTZ6rv3~xevp+-j-8n{SzmEX N zbOKzZbuN#lyX3fc6XlY&o}NL^@*DgOZ*a)W&G0002+;+VKU6m{c(xkMU%)Y1G1A(@ zRQTIX*~>>gc&vb-u!$Gr?QgEIn}9BVv*jWz2Mm_uEZN5(^8NBtw_`X*^O|y+uccUT zc&q61(f%q<$b;n63T(?**~!SBol@^VKpc5#&sW8uQbsVDtKjWH=wX!{2(r>t&Z#A& z;BEol{{-sUao^))$$x<#bMo Q$r(c-8M8|%BxyQ92sMky3HD}ea#XI?*Se& zVZ$kjpbrs;v5dRRhJEegK?4yVVzOsSkwDWL>V2o6-lBV|JkNpQz_^>_*owJ0gO+x~ zz^0{uo#9kSPjNt_3wE5v38s%8wh-jOk0=j_E#M* v6M{(NE#7|zOwJ$Ntm@NuHUHo} zEaGE~J(aUa qj|za=|_8egGhR~-i_imv{g|3%gay~UOe9@hvfJDS2b(A-2XlJDF1dHbqI@G*@R zQgyBRO1GU^0`gh_xcnC3p-Zx*u?yE?(hzXQ=HOAszj$)LiFlGD8ct0gNttW)_*4@y z>2RLxffY8KfA8*A89Vt5n`?(j4Ks3{OaI=HSeg8zbJ^88Fv|BZ$ojIL-aJq9(CNg< z1{4LAwq#C$x=IUp?-fkS!>If5TAyh#{%Q#Tv%(txFA4gX=bRkYvujPA^0+kDdN@sL zmX8`^w;UnpZ}-ci1%S$vjJxwe-0(7@$Ruo!6&6s9(! 4Gnpt;guB2 zE#{i`h?a>r!NA__FQz1s{C9(LeM#5bDqPt#v83xa|MI}j__RxCkzcrlb=R$~QW^~0 zk?#K-{#IW5$3+d>6|7r=k`mWiL2KWY_54A oFwBo?WbQrcNO0{qZb+i>~G+qc~CAS$-t5Mw$=*<4ub=()O;q<+x|HAO$KY zstI;*`z0?JI!RXzLvT&KT$dE8SoE7;x#Q0u&^=TSCm`zmJ-TbkT*sb}8j&J#T|!U4 z@m%Ec7TAWtc!yNMH+{V`xM+gUdNV;&>(vj@4?p<3jzsYgfZI*GCPybvtkljG_?Ixy zX-2tR$xw=I9_m~`M-mX1v~Plmd^azFnesafkNE9=_k_F(|528&&ll7RLyP!Mt<3X% z5UGlf%vrnJ!yXJbEh @3RabhuFckAqUMs6pRsvzJJ43I zviTuzV`Bzx@h5a`d8~d_t18~N!FSc*5s=n-JPBB~^v={&;Ds@zWEIqMFwZ_E+Rjxf zSZ39z2cQKwy7p>)G%A>X1b<2NvBAB`>NU{_9oX7xo807X55er==8W4^C7Lh<{8ah@ zq**8G7jA191~>3gAaT#J8n8DV_$$!#tk`DA4iWYi>&D FhNl{tmD_G8U z` ~NE!?wp-;`MU+^fDcbd zuT%x9h@=t@37;eV8A0l
e0)Q=J*;F>ZOaX!20^2O`7 nE7 OxrpeZo4f!qlP&LFEku` z2nc9SX-dK Kcg`vYKv-2Zs63}lS8hSADV|m z{4#w{WhLTZG-ASwvQyC0%^6BV|K;DF;HIflt%q}`SYQnQM8CjysvC-YM ;r563=K?3aT!Uxw%@ z(DI3)iD!aYqHYK^e_}fStXX;?5Sj|Hq8O+N*YnGRp-vYW&BJvsC+atlC-z1}0(N7w z@{HYZssdXaQE>gmgk!mQHztm_TVc_1frR>ORA?XMa7U226~K3R-JXWfI+pM>bu)L8 zUTp5SF6?$Kd~A`>L7Y8`kvU5X^!WUi+3j~}R|3gGPi@|X-Xz`|tZHmBCDbqJ%ez`! zN<2vL6H47pzN%8UXtRxJx@%?|!BEu>m^NKOjvy_GdH2*8d$pF#E}-^v><`^wj`^?2 z%oW?%vTlGD(f~J@42ZMtn+Q7y>68wnKnHwct|fEHmjAG=3^I$=BAlhDxFjo1TIQPi zOFQ6z9J{6%6G_)`twq}2I`5rXQEH%^h(94oRP}(l($v|*zh=l)o#t0kYLB#+jXetY ztMz64Sy~C5cvM-(43W2Z8;=gP?$TvBHx)NWZ?Cbtzbs%N8(4R2O+BU7;q)g6fd2gA z90_P5mrS!p;xpIc@i_w{i{pK1gRVfsrs&c Yx`Wr-7|Ba6``B@>iW zoJsm4IM9e*2by?h-5x6M>j*P4jv~*&94-7^Ox#e7y!nsa&2v*D(_ KphgPX-Y0qLx$JoT}ZJCP(dL`@Lv7QApuW+lS zrRO*~x{W2MM8KXxan=LHrM c zfdO2H*KOoghPo;=^Xo>snYh;`0u5DH$8$N&7V0!kAi7r7M+g7GN9qqpG}TD!&H%mM zHfL@UJEBHy z4wTBH&o6Y@QJ7!?FnX{B5N&=McHevW)TnbV?G)w-SELINM)cCCJ|j;3_K9&5sYFTU zHUam1*W0`aJV)R&hc_KKw!JCa#-!pIZ12N&5ndL#Zl(kWm-(@symHf}p%j;esn4;B z{%P3!Lc?^-(@c~Y{KZ`#@f*5h+`gnF#8XP%9ow$4PRzVF381KT eRQ{Ve>ZUa#(qOX27>u;pX^pRagsUqH&c-idI0>S;x#KQ_z^V77R z5*7)P_j`*x!b588a02 zx1_nj2?ouHrnbo=efJl z?r9B;m}l|t)w6v-h7NwC9>|zXjSduL@pHGrijVf<^IYJC^2-+JBkgyA_`4c9USj!p zKW>|{H(Mfc^c4YuiTx^`Kfea~`-*h`3N9FF6c=z}t)nfx%(~+@ZE2E;!PPU5V ;>4MscH_m$pFi7HU_7T^v?HpflaZ4DF6nXH^NlW;&ziryUEGA3LZ6eFJ6Ec)rI<* zeQP>BXeCaZ%(}f5MJkKjAI9G$b~zZ*=ed5uAV^pSos35xp#hI9d3edGh%{}V+Lp8H zsy(2QX{I==U7Xl*@O=uFFGS6pS$B}JZ?A#N%!kj@^BqjG9@5X)^knB$HU*1BrhUzx zR^v+UO?PWM0jopEY_@N3YBEIVSy>{p4Ucsnv{D-4 PS zz@2Fc79ZMt_d(?1ZETC_#)4K7BEfc|L`V@4ClYvb@1k4p=?t*H&(gc 9$V {mUfvR`}Ou`9hqiZzDxwj1{KxoRjokvS6r^=sjmwE%j#jf5xs&K;>tc5hj^(^ zzYYF!BYRz*YHB_Yo9j 783OZ1?D-9%XqTAIM4 zbuLfz5$9VC|9!q)68u7DJOaVW#|%D?M^U-@p9u-<5wWZ<=dV) B1k0t zgZo3A-mrZ-K`2Op8}M+zv)5n;kUF;T1Z_0HSRm57!Uq()OPLITR;(jWJ{h>^em zCWJ S*lL@T^ zo1akLgM1&Y8#o~oIiBYwo~^Y>W{!atZfWZ6J_d`k1(Bc*AbjFMjGdl&YpODG(7jEx zE2;q=p56Si0PF4-UDXs^k1MHUke3b(H;TGhpq57;{DWh%yF(YRVX~o7^$AxSa}|Ax z+GO5@{rh{oPb1a4FToCAkT^w4XA)OVuaMbLZXTmB&61G-=UjTiI~E1iZX|AFqov z3*e1-D&(=En1j99hw{{A22BGMn_1yAFj+j2WaKJJ)3f!1#5p0a&xD0o9eAz3HqsKJ zIZGPNjB~%<%94DJMJPTrH#izt zwk8}bOB(M@NgK&Pt3U
)qdy4NSp~Iyg z;69&ij+2)fqU(?;Z}CaH!AITZ^b5AmiimQw-N5AIo$|NyK(`=d&v4L4sPH!obN^CS zv(Pu4>W8KeP)b}#>)jwCJf6h|CG=5f_QWM}A8b_8GyTFcZFiz-v`|gkG SBx=;RSEkSWE}37BW$e|hw0WM~7s^4Bw~A_!-Dibe;HKOS#j zTfBbV%5mvKGNZZrmTYHz2Dil#L`+Q_Y*r1?YY(W8&YZzUjdB`KaYt}x4_lpWY=sC# zPHL#f0}j8xo?Y8>XCOCq6clBf-P-V?sKoczXo3FyuJ?O~Uvd{(OS_vIS9|3ePsEA( z2(_mMW6;2AlU`o7`@nQ}C5p1j(imx;*Tfqx=Utz%n1L28`NK*$1ORcyG%anh*L5CD zdFEB7k4g;B9uh(KX>JY^OZDa*zor@14~%+*g+LxI@>Rxvmk;uBsJZsBqu?m5@ZG7rI)_c&kYj4E4DMaxV4 z+vpD_D_wo?-E9*U&_gE8Il|6V%ndLj$`Toy5;f?aGL@?ea0+WiCS4KGl;M4rxme E@OcNLunrks#JR0ueE?1v;BTtOrK$yJYmfjM1@_@X}_%2v}+@{m`{==ak!= z7YV!ck^!u1O0DkWn NIF#Quat#5gN;C&B=f@hlc<OmYdJY}H=V?t64sCui@WFxV~O4IlL zgyeWXQd+7XJ|T)YH#zG_5<5~TE_1crq>KNbtxSiko<|4}9qo82>V~puNiLAr82%rX z>$#`DkMp1Ajyk4T%8xM(%JGOsQ#($pYZ*Qsk|HA;@?@ Ux*ccdCt>I|nQ-7w0b6 zoIySE{gQU}%`;1sz@eJi=ww$O_W~akHuBPtHr>ft&z`;7>p3O5u%zAQ0vo@Qvg>>k z(mY`P36B>G3~Vw>mePlf>n6H9Q^QhbCKZ-EdN?B9&$l$UJoRP<8}8&;KRfYPcdO8B zLr0X9jgPFfM4pYF&FAHQiHhUq9*m9?rE$-3LQ46`zaLF92A7xM=9z$=2#vK7ockbh z^ TXZ1i?%^N!M;ywTtL#3glVoB2yV6TOP3di#alX{hW7y6X&;4GSa< z%21`uL&kd6PVRRA8o0(amGuSIGk(r-PDE)|TFl~z@>>=Kqr5k1;yQK9)YMctpCv|o zn15^U@%UnEjPAcaa)z@honIzbvK;lSfRzWiqz1{OQZscO^^NDwb?W=1sK06R+oThE zj-qwmB+>Nvs_AZhEN>5pvfS+}=)6W)On#Ji__1x|j9oh0c7<$T+b7N4U;3wXqJKiE zEW`e)q5HA)dSWX0v-0}i#7RfK^W= n>ut^9U!xib@6{>H=mMRGN! zX640}e?Iy1#{crQ|Gzieo~&8zUHBoxu= !S+`wlfM3+am#rCwd7M+eot0eO>pdMCa$z9i^(Rk*ds)>GQ6&gsRGUC%A# zH}Ox_g!G~wv02B vBh~d!eZTyqz|=*AQz>6?~X$y%AmVM>1^n zWx3g0%+$r_SFBE#r%8__?yWko>~=|q2eWj}?;?j~wK`!(sJ8WENO9Y*n=f`gX1)pD zQ0*P{e$9=vxP)RWk51~xExoPvg^i`pjCxlrqeqg-o>yL7^aN7r_F_pwuTMpvAxAa2 zXNtJfv9_MYzxEw0>AUvT#0xI@He7os>Tl?BaB!%quZK!w!TiM!2VCvDe4$YB#6THS z {OvxwIqOR! r ztLL~XW%K3=NX&2l4_$8^7uCCW4NuTDAl<1*gGfmYA)tr?D&5`PIfR5XC?PE&NOuVg zjgrzGl1g_B@oxOx=XuV#pY#5~UofAUz1izp>$}#vuDLKz7h`zW{I0UZey27sb=Kx2 znht@}R6^@e?Q(?G7i9w~h=vOo&0)RlXucH>V~~JsEp;|niDB9h@JhGOsDgHv?I|VJ zd7nt1dML3_zdGj;c7kW4+Fa4!%R{pc96-l}Er{2vXlban0Jp0SJYx||LQf(g`Kjz7 z;~xZ3GCW!DQg#WbwYec$Q%0;HqsNA;3Q#kcgV?M0;k0kIY-de5ZqCcO8jr{)>aB@= z$f3Oi{w|*t*jO}~5Yd{S^Hm$MCYUazs`|jg>auqIEb-m1!r1#koeBzBP^uJ0Jgf(3 zHPNLG-}z`9H@rN=tFvz?9x@W-JPC{a>`c&IK+dYl)z5a1BFs86s|YP~KjQTyX3xE> zcW(rp5d3JEoR8**jox)v)Rx57nu *!tQN=j8e!=;g+k~|T7Ri31* zm`EtSDT9?4gjKOC_J}S!T91d*0a8!jUan?OaU>4C79*YLT}>us^sipw)48B1qh(jv zp!gyVL6>ZsvHqoJSo|a7P;rirZd)8Z^59-d$hQU}wFa-^~M6lHP PYY=tUCQN z-*~&9|5Yvjpz!p<)jILcu#CLux8dygwyNE{yEVE(1z|s|(d1TAqEXSVR;u&6M|@~@ zb~g0>WOujR3T7JzVaMdRbpf{@Y+t4 QXyD(TeFk*Bx8RnW zW}E3psRGuC; y zK9anx+Up4Dr!Lre#+tqg?>uWcYlfz?qn^A)&~KuaVg8$_{H7*vg*Qu!siiHKRxuru zZ^wZ*R|tW45qykvRZRp|lsEc!oODC=FsPX$Yva;;@@eybkkZv=z>QnJFX1cnnVFgG zgC6>`vk)Hr7N0Zk&dFlU6(rnjpjCthpuSqKlRqA0*~M3V zx@QeTY0d0?R;Ujs^Mz*54_5Nh?pB8^E1dmi*(;lo%abkJ`9@d2RsV!@@2z1O*a`LR ztn+$``3&{KKE|!R%6R-+ga5y!i$xX;#wD&)mPvn*V(}C{d ts`)?PH^fa?GTV$t#}8;W%&(WsU`&}Nxt_GC=c8AEIEs;& z6?ANHO6)~rZf?xcck12ppM;&v55&fT3hLpQ8?p|PgGVMyEFervsNxrLBhC>#^UZFG zo#vlJ)H~OiJ Q15hNoW%F`WDpN;O$karN$3GreA_^MRA$Sskj_qO20$1uZWWCbYx;^y%Z*1 zO8N#iZ|U0Ch7&KEv8KClwp cI|A!-&)e!WtfNnG2`OcbI4M6Y*8IRs}xwJIy z%G~+l1o11epNnuQgyEXooMX?^R@6#bvs1! UK0B zl)B{5!S4Ml@W6e|T;hmwCG;jFr}?*%edVlu>-@syL>+;=a2J3H0|d^d$QTGcp#eaM zYZ<_slh R$~S8g!nBtho^O| z^HNfnGz!GPf>j`be%$zKfXi}#wA!!( XFpVb(sDSw}UQn z6l#A<8RH`-dM=We9oZVU=-5N+r(I$6w3RuAPJCuicm=O%^K-;D@W$@vR;{dk%KvEE zTsR)duyrJ#23lVEEA(o~Gqxy nhF|b_Q97GSsI4CB_OP^iHm&l7(VLo3-MU`$b;aVR>d;7ClB1}JV7%A z{)JmF(0&54g>Dko3*0g=sMw%&5$PzHvmICEVLf6Yj7zc`((9Lsboul_v|F0MZ F+)qyZYH9fxTGibeVtK*oaAUctWi;}UNxR$Q z(HIOv_Y!^6qrGp_wMy3|H6-3`Q$c=VU0T?gIj{VJ(l_WkWf!EHve;}jjScRpeSV~U z`5na4t0fZTF5E@S{sk>~`llpnUZ||$!TvkfAE4k~jr+x~u-&RnTgyH+fgay;Y3E!g z^I-!iuZroDqan3EU{MFx{_d9B8hAV#k#2@NSvMWorEPnW|80j;P+Pqa8%*u9 ysaa;_Gr1 z9l1+=_mBOos4X>&P8t0?g ASRnZYWKhkzk#vTx2|V15fO z^W@ tv25;#chp;QMKZWCe3SPk&PpExZ5m>W~AreSEekLlzdMw zCu1s|hs3)EC2ws{YwOYj?K!C Kd;?z6sYcf#rA&$WY={r^dV9Kx z3s!GmQq3GK41rID`-uV!xO2V|Q}%J>P3YY#{%3Uh*CVA6@Reg9`2DQwq^@}a>#JI( zn|!|H9f2~>DBr6U`np#>zld+T(1Lzzw^*qMyu&4*c}K3dsgG2NVqZLncAt`giJM#@ zVm^^fy$0Xx9PHiR?Cr2hUSPL8=DOOk89K-ov$wD)@1gVV*Jq~vA$-V%o(sPv9d<6b zvA(a!rW}KFe0n;Qd2`IVf+?t8re|wCQGBqH$fZpa$?tdN;osu9UC}cmx_I%jHHucW zc0F&z`TCRouTHXpjmvP|C-=GU u6nk7Jn|&z_B?WgE(W zs0;Wxo2-s`@~0pvbyEuv{ZCZjWvH?5(yaCU=(uE4CzJa2?(?qdO3nIWZHo6&$6kpY z$YPS;!|I+)b867BaeB=J+&30&u;1_BlP#wLxBVk+YVC_kNjgs9x}IwvPczQG^*lPq zEB)7S8c@%cHA%5j%k;ziFNWW&j1QeGM5#~8=lt^z0O%i$GjgL5&r|Kbk47Gkex;JA zx6R;J+Irinf%N-`jZd7SM%AX&a)=y^0{VT6!Z-9Fe?-o*J*YD;uQE6bT)NIs4RUfO zq|3HFUs7a`kZ8ZKfR^iGOxi^_9%6+XC=x|uPSK*mRh{j$Ll|V*(MIdJ4QO&@tE+=> zputgu%|=8^0^M@zGsd7#@~s4I#w}qR#9%MzhuA`o#La%; k!r^1qu<;IIKnOgJ4o)kNib957$=!|&izYYvO zGY-O$D8kX><#L#Gu>pPd?Iyk))(`A93V9tT@i`I{Mom7JO0eJ@H oz2QHWiFbOfVdjKOO{$AmgfZZ$-_^#VQI=>-#g&?5-xf zDm9~ePs@z% l* zA6MO!z26b_N+{ap?73e2=qt&2iOZicGv<;gO@QEa{J%WtemQhPT=m8^sQ@72`S_wc z6>9Y+KswtX;ek@6{_W-D>3#=HTVH=s>g~+fn2G-7NYXX{|LB&f)vOO=CTy{scLZEH zQAAg@Mn0$SI{ubmy`<;z?GciMLfotRdR+hdqwlsceHAcJ2SEbyUr1;IQ#v7A?9j%} zjCENJV4(HLK)$b$XD>K(;JZzmCOvchmlA%f4lm PBix)#rz&qBV~oVmuHJ1*2hE|Qns?AMtH~6^!qUv8gkapriE-w`7P?`s zj%~pT?_2u1nN^Lqo&>T`guYbRr)~>ZG1+sjXLv%>A{RzKWY{6HT6vIm$|&T4Zow1O z$P4jDqYB~c>B%F+oWP0+p+j6y3_UNPN4C4Xs-uk(`4UNI*%N6|E4SJz>0rpWXs%5@ zP@#Ey`D&ucg?s%&36`))Vj~}h9YLe9TyGuPuu<>$S|GlWvbI@>jv@%dDQ& x{t<@@RludEixvNxKP6VopltEqdk-$$~^&p>9TywPuXd&j}Z z%IxpOhLJUz5nPLLb>?LDH6nd=vl9eWKG?>E7^R;{mmfxn=x7%ZC@|vY$*+cu#_|$~ ztu=47F+XXieKj129@9TiV_YJ3(mh?@F6k0_{fh*7Ye|epK|iq4`gkz?ca%g{jQ&&I z-4Eh)Y4RFQ&4hSGVTx*@FYWy3BQ6W|6{d8Z=`ksoqNKUN-@>NLR~k}}umals3?#{Z zm@{xDWOE5|xOTNT7%(b)eu|K*b2l$8fo+(^KgIraTv*@X*ZwJ~;>*R9+07VYSh`A2 z=WI&jTj*6Je@tb>qCZ)S=Lr{}c;x|)Xt0v#arLif@^_CC@`hxp!Z=j?d@1Or&Ck!< zx`F~xgi2M1t(d1dhWM`YXC4T>i3He;?zvjj|HH?3-U)$5Ky9rc3Q(T5t(W6vS2g2M zHy02wKwuC3eOHRB2A?3NKdElv*eraTX5_l6j23>pJIR{i(f(3+IaoM1hvsVmND}1n z{eIFE|B%@0E>7u9;~4P?v;JhpbL(++Y3#8aU}Ak6Q&jpX4`Ac-qs&{I#p_*nTC15` zP47B@HY@IUpMar&RJkH!YtOf2T-z7@Sf};UIt%Zwa= C_b`h|y6a%z0UhmBDG4yrzraw*NZ$U75E|LPaH?QE?rkL#ZoILEI8jH5-m z4f``ua~s>`9Ryn&oGH%$e`pWq+kQLl4Q0CL(K>zuiMo#CyLlj~k(>JZf7o?d4FD=Z z-LLmTgn&ZE{G6Dw(8R~vYyyajJ5S-@4IJ6-QQDVf{t+{*thvabPtbLWU$JiLy{&j{ z6^KC>SC2t)0|c?b;^hb7VDmH64J`X32=YO5%p}|iefLr@hAG=DgDLJkmp7o!woaB~ zphsAkLQdhxJ`>P0=E5ikfpdlnf}A$-wy;fi??4P}?noQM;D+F0^m6)+kIQ{3_WOH; z-*60uj|^X;b+$!^BVjNCwPT-T$%yv`K?Kz~N<`D3PYU#!tM8r>Jm$=K+1W{W36kF4 zsY%SB6D7E4wVZoM9b=!{&x@4Mn$16{U0U$35r~;H9axhXL)V7?8gcj}N2@?6*`ES$ z&0@@cZ@H?~{)7)UF_hL PR;O;gw;~71ijh(Zn06MqkGRM zx3i1lrJRwCOBJX~RateYz|;4K1
C!gzm5xR6$A0uYf6OAVP;GI_f{qgC0O1eim?(;ITh{c)-3#IeB*4JsKBK+h6dy%3 z9!RB8^Y?)=*u!ygahdYJJ@XgMbvRu8j(I&W m(HTx`yWXD?wCcEIM@2=oP2PI`&iAw`llI(XpuiGc;%XT-dwsS@ zUqlrnx+@$?*0L^87XDW6x!F01Mx{x(uE+AbTBo%i%eal13iPO{p6$}6-I2o7Q#F%%5j=0Zyq{uJ99*;LU;I#?b03k+E!?;as^?p^ z8YUTbzLrW*jsA;>x33KVKgezEqx#Gp0WuB+l)>hG&*lTo@ft>O7|=uX!Ogq;SD!e3 zAxY2A{BPZFXRX$pg`j6yl&TC5k!LeUdoS+Dd8c~xWdi5j#RvGZm-}2eiJr|lN9oJ) z>+IB&`IgLkZls?^yMHsTmu8Rt*RU~a9XW&Ms0K$>-4^AX*&XY1Xg>dI5W}xX3CnqJ ztX+_lhcIz;#Qsd<^I8Mjq5+MT`NZbrx>KJZQ!rznAYlkb7}c@|B9TbJg4BQ! @DAAt{khDqSx=!U3VZ^=^bZPiGqJRjl0HWUQea1oTgQ-lV#49p} z_FU@|q0E% h6qSWZDaGlaYpOLpZ?35rRZ%W?UFBv;{D)JGs> z6!t-nEuTo2&r&O%us#)Big4cIIqo6)d?KMl<(#Uor=q*tv`X?>{!f4jdWjNqB ZC9PPn4Qyvdr^s%y$QE|Zkuwy#_XwvB+F{wz^^{=6Ut2w z;Qn163_U#+^ZZWmI27e5(C!L4YtW!Dp|_LhbX`L0hV?kmhMWbXsjc&}eo9oaSPiG{ z+Yr6td*aS4?A%Mwe-K+=l-uU8+e?h_zRV#K4YH>{JvsZ{w1J^tzxwP=QKqVjoym*N zN;JvepY@%Cl6>$$((dFgoEuan A$JstXh)It*xpEo|dVb{ZPry&*epB zK=ZHl=2BzzGt1X9P-}INzARCX+u?WC+2h}%fME@bGWPmmiA9<$XiIgI=v-J+TT5X0 z0qT5xJo;*O+C0 C8;3fSXpbKArA+VgkOO56M!6~ ze=jv-i`8-5O41zgiLV9J-T`nLYk|})`Zf9PSnF5mHo4(zSA0oxdVdWFfSNnAx`XU> z0Dxl(Er3vmhW~Kv1?7O+lzb$Q4g6KwmrPiBp1oyA9hiv{TClhi%<)=*hlzkUfJMqc z5nA3ZU_F6n_@TLpPQ)p QIym>1}@1KQ?LI?erYGvsUn|)9b;?(^1WXxOWvg{-0 zUu#~Kf$}aFjdZ1QNc07*?Er4m$cd b^U zpJ7oo;K@DiWUvV#K!DIf(RDM&!3x3vbY9q4Ukw8qOddibE=i8 z8=lz9rC7;alkGq8y_tBer(lk{KLyoswEk0j^Gr(bC|)avsB<$a>G4LpC*f)oT6#xl z<2N0lf;4As!yT0v*a-b~Bmdk=CP%p6Vnu&c`f(S 2EF_kIxU !W>jvPL~l?#@xg!r!6@WEhKmNf+*rLe zq{a2{vA5*WHYc*i9J~K0P^q^z-W9 Kr+$qP7cEk_F>8YJvscN z62MXRZN#o=r&i Oabj=oV<&3XW^W5Fj4IZ{S+4BddI5oFT< zbD3+`+0nWzqMUkptWcBw*Xn%-&4$>PK(iqB-PfweCpxWzWIAgAcPS^}%z15 gBa3cUu#m_Yb|Y$ODdWLY3O}kH`9))6u6AsZC$UGjwZ56Yck^7F=>nQ>nt4 zoEfxm4ETQyPmNGAoPb9AOd^&t!B|O<>X=A=%sisclLic SOdPAVgY8;) z8|G#jdP&MTIch9Va(Eg-G~m`>z&8 j<<;<%Ptb2a-omQx}Zq#^)SKY!c*2J?fak@V781WZLGgdhRS0nv+%~FBnE1N zJ? =A z- R7KjFgZ*Q0m4d<1AOn zk=yBzo EAp$&C>&%8@CR8p-zcc_dWJ;ICbiW7cK_fwXChT+C-_PVSoc0 z?5|;hCDU6&Qs4~;;IF%N2((y;_uH)I=J~tyM7z@DyIxOdrSq@O@YAIr*bETwhCJ%e zx|sM!_+mT*f>?SM#x=P+94S9Vr}H~EY&srMyjI*U`q-Ufo?$tfuT<6D-EEbZRS#Sg zULeG4-kebOLj 3IL~SSbkKL<^-Y63^Y6-Ip%SK z@<*5jB1BP3qSAf6Z##Z^+Mv^5YeFwM9j16G1{GhHt!N;!OhFuY_y`G#CVJ4gk1!Pz z6?ei@nsXM}SbhMH5+ayn1kF%9m@ymXgTvH1DUgY=otTGR^46r`OT>dm5K+fhGL;J; zXXjQDCP+PzYBFQ+@CiJ6nCU5(G#30<0q(Lb-l`NQzQJec#lF%KZE|a&cj$@hZY2gX zwYJ2gO|Sme&3dMi?2s^4A?l~YLwP?<)_|yD7}0Xl*)Y`gh(DRYxs&AZci==ncAc^b z0>*S(PM7UAm>1 @Z5GO@+f-+m|fsE7qIcx@5v +; zL8FIGSA_7t&I0IW45Y0{>kYsB)pLgPE2k{XcL6(EqnaH{#( FQueEQcZ@>zL}eT%P5t%ZJh3ChS2owRGYFq^HmOgM;1W|oVjn8`Z)o0j}v%>Eq> zRT(gFeAYPh`TQbG=4MKDn 9fZqo+>Ix?9864e z *yC6)7pYpYl+_7>ng|8> ^q`vc{r1G zfD59NPySd122-glhOT%Od-jltdZ8jFF1~!9kofIKow_G`-z8PBa{ot4V9qZZgU~0~ zpO|@LZRFRH3V3_?#J%k~Hw1#mL}QBcpRY8q6_-2TkllE!!X~@g9EYO_=J|$Qzac$A z n5a7FhhcFU#&}rr{py z!IY^}I{MPPkMVTU-!~sHbu>>KCuvOw29$aeZpHw-6`-S=4Q1G>>$-jvzgSJEQGWT^ z`YyNd-4I=@DD%JGx?Hc3Ez6Bh`Y%DP`fEg1yAV)v@VJgIOX)5 a^ z4?kl$_E+d{r*3xlZtQwj@YE3b`43VBZ9k s5rV@5%UE9=rBn>~2_0%Z{ymkry}WIeh5k zEHCo1C>y9zsLQx^eYpFScrB1%LCM2j=AgZEkoW>nb2tqL++&cr^_{&o{su@|-@Nwi z+Kqt#wTjbjp_ZQ$W%`Ts&eIA3QYuTSi&y!&K=vB+OYtRee-ttxSN21NUoxz$CrhK0 z4p(|&grwhUYwc^=3H-}@3(7_48Pfp7Zl*voe6!tJ{GW>W)tw@)Gi&1C?Mt%RsePIH z$h~Sn=cif8J2FL~D743%xD>QVLx!D?;Q7AQN?}N~JPG9z!qTB1@{KdAKTVUY-V*T> zteH3 L5UxOG9q3?pLFI=hMaJ_`| z?w1~=NPH2!2WwG;@JJ$8H4G9iXy#Heqo8p -nee7gS(n=#`}6k+=*5Oo|c8#aH#QYRQFQ&3*p!^F2e)K zbq72Vrpe(Lj-l`ak$buZ1e4)0(9?QcjKj;{AJPqNDeH`gt _q-42;da6<*o?32aJ-2GVRw%Ng7Wh1Q^D7ej^dP3S?`HD$Nnf 6$gr%GJt1W=iYd12y z3Cd>aE8L+c4^#tAPu*7bnEaMss8Ze9RU7vZQ1cnds;a7Gs4}Pk-KIC66BWNd4=_|Q zSo`tu&b89cUed35!pW!4)eF=F*N1eYMb?wm`HN )adfO`)bCgRTFq!A4cw#* zgf=IC#@)`BLnlqI*|l)Snjn)p&QZGl*C!PT0Suq+%83 jbmnDr$NiqXaTH?IK#ELJXf_Xs#rr>$%5@ zB{ou8dWpt9#7}zr2LdlKqCPHcora0^w;`VLBk5i&B9<(yqi=>UD`M;JtqXfZ9UZK| z1>rLgg4m<_kDEzHAh@%6Ia(MD*mxv&u1)0$Myj#5v)aUwgCl4-nAJYzN=r}h#*_;N zUiy6PnB0shB>E)hZ&7ci5I9Y97{cA?K;Jt} Pu_-$9>n0T0M90a1KB?8G~Wng|b zhEu(k2=R+wT8c#o(>qbocP|GGBQd&XDyAnS4p=$tW)Pea6FmiVp`IXr1vtR6@Remu z1>r{_u^9JrUX`k+yb%jr5k{Ac#cW)D?~3kRc3;2W*y`uueHxX7$xtz@H+W|*2pw#} zPD?VXdlM8!AOq}SBYLY%D=J&+*P%1U5luTAFrKPgA0V>%O=s>qEmM+g*-h8h2ntK; zo-x5fcHZ HA} TJU)oCj>E?aDrG{+8V@YScLUxMmWEaWO17 zY6@!&n3+I#az+E~EhD;70U|@D%R%KsJV`+%L}<~+*~Z}A2O}U9J 2$2aY*D@ha8ti6|TSr+4^Q!ItLNSWn&=y%bH~KEwk2iUK+dsBL{_%{Q+CqN52` ztO>1D4eCiZ|NMD>zu2bURaxw=WK~^LGhOC)QlydSH}5*B8JF3t_OE^>FV>y vstt)!5&TW+Fm%CPq1IV#V4<-Kp> z{Hbd4DR4VHi-|+S3Rk|8Q++BiUq#a%o3Oa$^9>T`H4f#n6(4IH?E$?J{=w*(*e&s0 zZmY8<2&3>GJ6n6*BuN{TIhi(3X_Vkb=DG03<2ggDsPY% y`xhG^_Rbc=mkz V4sL>Ou0+hX^r%eU~kxf7j%-^+k88v6b^N| zNk;mdqVO^8=MsG0yrC-l`PrA2yWKcPW3bIGa%W29$8M{C%Jt6Tf|Vp{x>?Zw=K0p{ zE_Qw+AbJ^2ar%?_I)JSLLe#Cl b#>zn%6QnkI3;P+q( zKWm&Phb0@KJ0O7BcR6yea*_KS@P|vbb@PH(0cXT<{)< i%HSR)av;%-B7K6HEain&@@ z3FnPWz+DUC=04?kSV=N)9RO?>fs3uUwjat@N <^!ZT z*VDK6$NwXmX~2nnla~lWKSb=?&P|xYlyprco9zRXG{?*@=FpInS~RulKcMoMNXl$e zf_bP$%<&`4)NBc(MTg~&7(fNsK6v?EPR9fjElobg>^+bv8pgeK^{*gourfyyXbT8V z9JA=eemYb71~VqoQee$dO5fw$0JUP3%Vp7LdlASwgQ&KbQ#}MQ*}Oh^BS%0ac>9kh zpi@-7k0=h^T6+iDLMcL6dEyX4fy-D0IbZhi@4G~L!W$}#+946>(idV!yt38=9tzTH zH2hf9UW3dm$3L=nIWM!Nhz$_FMTygwk}qo=(`^L<;R<8%FV{FR=N}b_m_F@C=X_+c z;Tg9~G4bvokgPwjUu oOxWByxGuWWn=aT znx&x0vC-G27zIWBC%L&2A hSclAbv4m1|lo2R=v$5_KLbcwx zg4&pOS3l+=rjB%&N|n&XHZO%g5S=C`6`n8u#AKtsVkA2gNZr$R5$PG3q$JnSFZG!s zuf_&R@7iZ}h<36WOD=&eMcRp*eHMQg3kxq*jA%?{24Y%cy(L7sDAHlT>crXNn|d z#(U7Z*7OGLL4`{_m)@|&r2bhoFy@t<>fZ{``lHP?h}wIp0Ia~EhqHfx0z_@^vb$m; zXSll453^Prv3(@;? ) zA~8%Uu-_8<_noBHtGw&W$<~)n*gt4-u6Es9tE|hK1uL}rGsHzJ8aN!;2+i++I9QZ3 zmkW0#slUBJ*=|jgjAOTC76{F|B;552P!&`QhJdlF*Gy`=hqKvmv*4;yb{B>)gyYNs zCFTkx?~TFq?#bG}J9DA|mxxuw`fXXtf>R&YiB{vE=l}?i$mH`-MYc&lL}%me$JrNH z7q0uBz}h1szV<&&N^GDX%=f?~`_E$~fD(DW{ik*NmZ9C`ejP$<=o=bH(_4LEopZrT zNL+YmH>Gw^OVPO4aC@1dFwOx}fe!BZ6!fRJiUZ8F?$Cslv5w$Fc4HYZXGXGA<50v7 zOU932$#8%d)I;bGe_)*}cD#Zoft4|`h@>pQX!5*F>%vn!$PFwmv^E00rEsKRC)4II zibi=OOb8C6Om&c62P3I^6s({gQJ9ye&Z2?0%5<;svP7k!*!wxOC`wku?9{XUR4C58 zJ*cRGpNt$QRC7Nj1q_$}O#i84J{ihmxd#{4 `)lS+$ zuxS!c<-wXn79onab(2tDZCgxaOoQ8)PPz)x4i$lyF*5iX+fqzQ#n5nzTEsd&^u>|b z C{+Ci~yyo1Y}TI{@ymbxf0vzy$wK<8st zR5Cqo TrWOue@3MyKposkY!_}G5#EG)&ca<`NS(5HeZRBP*`UHvkn zcDcbvS9jdplSgr`Z0KK0k&Uif+w*&Vb-qB!VLWuZsD%nM1Jr7{a=BGjcNaIHrHeVx z3cUU=V)bhgvT8^|dmasg&=(jh@A|YbgOC>q#mGQ(T$`VtpFZPmbG{u(YB2$dz&gLS z3ML_H#Ttf5`hFre->OkC@$dwr!8DQZK22=J0G5Y9r{S5#{k4baA?gA8*MHPIs2vc% zm$R(#%mQ99hOo6o|A~&jh0Dju0HFSG2_03OxMSyldJZIvp}V0ApN`hN%lu94$=)w4cb}+ +rzw!=u!=0P#(`3s0 g!~J;G|8#rKg-4{kFBhrO`X zv74{TEbs7k( 6@;|C@?9|hZNk(W;N}u}t&L+Q9M8HlXg*zv5duE!C1ZS0E25QXJ zNQ);QXt0e3PN5_A-fNJrqJPm*Dt?3rsOJV}$Umf|sye2@@-T^BAd=I7F}^2=&4oRe zYqofv&^yIUSc~aP*@wceKXRfFH9_*<1V7D&o`;_@h(C&s$(B`EoAG4nUY+5iM%+@o zqq;E8>coHFP=68UXFzYuBX@K;g1{Y-L0o6^+lb~bIclnd80C&~nx&C>J?mai90(6$ z<#BG5>6{D}T5>3`AU|Q<;+UJ^0>)e!m_dxVtt#|pvcpX47oJ^Tw5!Z6A1KE)LLXqY zYTAU^U@$xvUUOTVr|^zhH~uzjTZJ-#6*Z@ia9>4Bv1!oj7!MgkjWTl 8LeelgVG_ ~B zF8lEOyzSklm11jqYwN01yGAxLkv|Q7oQc_`2|y9BQO}Q*2k>F=*@u7rG{hz6j&wD> zk|y?Lv@1?h`2H;5HXEULc0up7$z+Bz2M{G+pTcjTBOF1_Q`%Gcwu+=c8-2G0wL3NW zGMVRg5zw*!Tpcoi9f&w#Z$t*D34kIls;u%qiBb(=!da8dhJ@L;xRKkg<7#i`W9pU5 zXU vNsPpqS?!Zw95{PD@v0PaG;{F|(cO(KzES62W^%KANz$upQA7-(9>u z8x6yp5=_2;TbbymQ{*GQz;R6rAs0HS9|V>#uvi!Zi$Aedd^3uhB&sL$-G+TfQVokF zVfVFt(0FB`K|RyvuYnP*Ecx;a85(bXG0&*Y4*rVGu3**dO?@X_O2f3ETXe0o8_gla z0Jh&o^Pu59uvsTW#~scLR9xQ`3*gW!y^ri85f6wZ>DGP3Lha=VD=QW9dBihz&u$Dt zOSCl9hS0#e#Eq3%?MSXZl*sUumBTl7*t8zH2I&Vw?nx^=G(hLw%#v=uF-QP^i*@D@ zs@q83=<(Q>lI({{mI_#h=!ZIa@o;Oh+Vy`#WjZ{w-);OQIpx858D>MtJoaLr;cd6T zRpU!x42lP(DX&fG0z&)ytX(2=LsxtluyZPUF=2YIl85Ap>={EcJ-B~P7tyhsHqSjg z<` $eOxo85JD9~Iaf7i6%vq-(%7&vXcJ)1ur&0H`(+9)f}phJq^ zX}W^ Xny>KZn(;Jw+yC?rd*Yzw*Bvy^AX;hVK6Ge+QjFYA+Q4*e5{8 z!1|u*eELf6vjiJ}A)CrvRh#b04`0mQ&jPhQU6-Fv TW&rc(4rYlX)Q(JFZGC!c}RhcO @L}+r gqNSl-%09TAPr~-uB=aSHD2_+$d +ND96DcT5m{w(8t^hbu0BX>7hx4mCh{#n(8%}ntVL)Px$tC#-{0yN zoQ(hxOEhF#oW0Ptjt~^omT- Dr%+AexpWXtZXgp; z$s&ZeKt#KgYk#={qsMLONlw}bkvR2^KJM}j{ z9F{Wh>OlIdd!HX2vV_H5?^2 FGB(V@W_Ka z3zppv`U2Ro{-%6?3PsS*9~5a>9c>KN!TirVekOe!S2eBC#MR#@%7ew(PnBm2l0Sd@ zEP(y4ef#!a3r0sN&@liyhGe(xe@|=y+W0nC=Lc>;0dNL5*TH09V8CrPPJZUj^Znbj z7iztTY7yqhM=`M3d-(%fw}FtyuBh=n0N0cI1zTu9FQGI^zw54-kb~3zNq~ds<3XRt zU78!#dM9dctltb#N&o?9Ezr{NN`%++$llR+v%16s>+Hw5NM(+4%h3nSxsS1JfjY%A zh1Vkg(|><)mx}P|Qsk}SSOB_~d9#`Ndh+?*Ario?0k+C3jHpJ0Lv+QTrZ((9ZTfxF z<#wA;GNDCdI=xN?M 6h~GJez{mXUSB!0WQ-bO znkZe4m)bD&|D)`!qoQozuHl)XK|&CvQ|TDGVF&@GyJ6^-mWCk&L`o3p5>&dokwzq> z8|m)O_u}?`*84oq`&-{y-=DK!T{G8O=W*^M_TC3_7U3~6U}iwPrd$oBX#T^IN)Y$C zmwPctuJj#w*8A3 B6YsX8 z?F2~eP*R!37=c_$$P5!%i>T)UG4Sq8Taa^QRCc-9+H-GFTSaB{A=rNF)FXRPxV~kB zV+wH5AzY9bjX_l$0#e3ysON%^jb8zuHeC5BD#c|-WxV@4QHEXY2EMmj6GH{V#pex` z=q%G{am!X$hu`iuDx3{f*xI|SQ|F$e%f*whs`YDs_6`$e5Kl(P!EjXw#1mX~yY8GV zo0Vvw wiK5~nKql-Fw#lP%{pH=PMWwD2%c~KjSN|UejaLkgi zY?L;m->rKEYcr4vKygS0f{Gh6KOgjZ6h6JwJR|n5#Tgx2A3=5U8T6tz4G{zsc%-+E zD0x`s=mOM~C27kl=?LWC&umwcLvI!rCem&zO?_@mn=6g&qT8ThA6x=o)say gFQqcP29oFuygMS07b}3c0029Z5jo|+t(SIAT>Qs3P zY K+BfQB-i>QSyz#e0O_IA zgZd%n;0ZcY5+GwubNqpE24Lp=Uc PqF!|4+O#nIX0tEk|5+%`q1I|wGb9XM+ zGrF(e9>4F=c=bBK3y_dqj~;Jzx10eqz)rDO=GuIi=#Mn{ P!)E4{DSq&{oDDQ9VP0>f2l%63^0;--FQMOD|<`t429(8 zX}`->th4^`z*QI1j~WD-zWgAG&jS!pH7OG+KM}eoqw+8GCfZIG(4#5JMHBOgc#J7p znFu_|R6Gmm?I*1^!RL>yHX;#KkOOOC$Ose#1LZ&)k!W5a0I1hqwws3|m0~RNc$tC_ zx1hb_I~I_6@KeE?$VGn86+HGexKJ8S>P}|r0Y4!aK(!1WJ=6^7{5rfIBY ;`}F1a(V;r8BUR;0prlLFh#31)L7Q_H+t1@7@P20e&;U}@ @Or^L4oH>1M z=}Bep$oe!RxN~$uwk42KT|75KCOXE3<%qX+tjO$zNO5X5xBJev8RhJ*mUwM{MhD?! z!#`HBv^oXv4O8qbqIp5m6WcgGGzHHs4!u0ze{0+VwnSf!;iJ70EXOUC;5A~8lCfP+ zD@21fa0Y}3%M>@03k&)TQPh-<_oKgM;7;p>lt0^b>3112dP1K%Qhmg~==Vdk3wL`t zUAp^CMjM}LX3FD@jAg% ~7fM$@!eL}`qZoW1 zZe=bwfjOd*!;N12Yo@U^eLSYrVx!&iiCR4=GB<{$(z9LDTZGsEA698P+RrumS5n1n zeZALE3DAygRc3@b%nLsNXM{}El`4V~BnoiG?EnXrQ;pjE`2Ro@l42~i8OxVi)qC~1 z^=Z|#W@b^*udAyooAREF+a1fd*Sj?nX7*LePg+JJp$vO%x;DY^JRp;VdOTRAEL!V0 zq+g&|0`_I~P5Zw46-c)+Mlv#?VhOd2fmk bL-K*l#gz{4P^a7q2dVZbt>G=&%WeLVPCAqbfR<*brsJ>q!otNRFs z3_9)emFQL;zD@&-vXS83Hk#Hy@LsCKPc-U7-8Yyno9|ks`T=t7S*^ q~iJ`s|G zt6BPWpMh2o{SLz(X*RO%nSdhFg`+mL5=TTq537mz1b&wPYG6A=hb}7^CpWt&XlWMX zMj9^AZ&@VuL&Y-mr9>HMj#(GAndGf~P5Na8YmG&GBo3p1e=%&KhyL9SmuwVO)1yqM z#7E!AxJ++L+jwrTpXWT`#_(NPcuYcU(=CwosnLWj70WvqSv%$n`~{d=9(<%_M`6nT ztqULw2<|k0=bNe@ce1F%AhN}wYMdib!4h#4d}AFtOU+>HoQK-cOD&e#F4pavCLvYh z1bR+)Jv>JxggNNLH1$}s+gCc1A~lD+4~+*srsLPSawk33nt 7l_Ig&-h~jOpI*t zW2ux)mqr%}9x5QjjpNV`68n~j?Qaz%D$3$1$%>4}Y53loR@ZK8>CQ7#u_t=kY2m 91+Tx40%KRvA+Q1L3gOnfpSVl;Dk8dv6@;i?3hvXDI?!v1l6txeZAyF>Gr##!d z4DF_}?baWsyuBc^frQa4$7g+yFB?=<7$2WEIiIZ O>{FD)q4+yXR7yCyxV3Ijz6xW~#K$Ej+ zrnVq8cy|;z+B(%*MazS+5m0%WrkneI16XhqQ-GI}ic9DIY+VK5y(F%hnfy>|@{B22 z>;OC 0%$@ Paz3*)FJhmz09{Z$> zLPBzI`TQYXZ44h;R&?LGc4unn>9k%j{T;a;ssZDXE(e8A!*W38+MLsQH*hi^dCQpN z^cN{}2~lL@Q~|}yToX!4)#A%*fA@i^R~7C$N*1Z+DY|4HsNBTm5Hc1GkWa)AXDb#L zV(sf8su5af7H(-h3(Ok1=&`HJ8ZkYA$vR(XN*iu~B_jFIj4v3+t_)v15XU$O8*I_I z5@5%<-z@<03(j!LRHu@~6GhjTln+G0FmstC-NjIrd@{e-=fDpa^$r|d%qZpJMkDw^ zdn>IhdG*Z*GDF6)J`XZQ#*1;~4simdwm(jSUN0iG<46WKt>ZL+ULk#nUT4DzLKWNl z>`O%ZXsFIcHVO(0?Q=r3O2Q}wy1ZQ8i82FzMtT d4Fgh2`Ml>2i7TSnJ!A-RK zQE!Py)67{=Wiq }EK)qrBxVh^!fBHfnbw zTybI1Jv_nL+P8%0G$UE$w_0ak_x&FoY;5Zbl<=Rhp!=@ut@;RNbqOz}r!^BgD#%iA zA5$@Y8W5~~mWS&GdK9yM(B`T9UT(EGko;(gOlkC&Pocc&+Aq)kwEDK_i7=6sx)I#g z58NyB@MG=K?tlo{SlhuHXvX?zb6DhZsTh0cqN-W=Az4>mfh`s#OG-_6QHuAcyV+qu zXGFFbuK~dpx<~fDvW?WsOt)3{C;pTw?sTi&G@vhyR;4~p5dd?R_qt7N-n3@!EYW_p zmUSgW<>9pA7zO}iycsmn1MqT+ Ct%t4wv_Su#wosWm{8uth zS--9Ss|Rlae>xJST1XWR$L8i{nH+o5Xl253l?t$T&=e4!oiD|YQkhFCe|})L27L#p zJlN@ xZY!4B;@Zcu<$;G zJjIz)1;&;`*51(cQ~i7R=!pJ9)BtK|+25f&amd$U_kGNgj8JaO4Y!P}VGToE!+_2Y zo<-aOUHLWdqt&s1lYfm;PZByP?FM%!XymJ w5n9I{t=%MP4AMB-7_B9sS)>DI1xIo_5EEdO z$At9!(McJNxZeiS9^0g;Gb8RbB+COae@X}fV=eOk7$%!W4I}y!1hjQfiA@6XyFC_{ zU&43{30R&|z027|u_C=5QVtp{f%P+Sa}Rc?A<;y-cuKxW#E01jSD Cb(GeV6MhcmvTmqDA?^1&`v;d3zA0=e|8o3(=*2 z8ee1gjE#X3hr#~MwWGAUTvq^j-*)flM@B>Br!SNj7WLX2rT)V*8KXZ vw8vVv0qTRQh^ceF{*vuSr7dk-6n-i&j(cR`$ZRXT> zcS#?&Q@?#jKxwFL-PGjE{cunhsh<4fI6`@|h<51lo3a5%qANMMZ=Lg@u2V?n&il5d z%JKhzD9{n{L5anDx4g}E^(Aa&zeTHnD$o0P%*N|-@_~ET$6Vs$SyNn)1M)BNIf~2R zmdLOv!_e0LP>`RTp9fRD7y7!c+}>hK;koj-0mx(@_^Xl>K5c<04<6IRS^75ZC9NN2 zC Dt#lF#>Ye zTZWj?d&}W%(QBPa5+aJIi3A%MT|6`blbieC*yTapI$92yo0|iMNuN7D^{~hN{|MTm z*Y-q&43ME3C)=92+aA@1)f#4dmqGrYk%DBzAbDxWWTYlg57I7kT<;&$Fk)hp3+k1E zR7gj}WjQV%y#FS7u|<`bTM*RAuV|(Hb(j^5KnZ;Gr~i+m>*6SsssqH~0;6jDN<8S& zS}O@6ewHbG*D9L!=HL=+NMsTZ6L@YFeIkN(55AKb%0yZf#z_6xzb ap%-5W$yx&+xm-_6@73I O7C%e~{YBBat&ry3ZrW+jBY%$?F{4ryCI~hiO&|ZJ64W524_egHWw7KK4 z2 !z2JJ)I_d(rSVpp#F oou7%^b)-za$HyLFeuG% zl3?+_!4uSebeDwgTY V$%tI~dkx9?4pdA0BTwfmHs5^Lqaz+RJ-N&*0Cw<_@IO6xNq z!Cklr72shk{SLYGnP+R*;q(UVW6yTRA8a)LpV$n@XNoaHjGgVy6y&D`;ub+(&8Hx# zto;e4tR{76bfQu-6OzKz_uj3lwi^CIePrlcb9$7R-~78T)9{Jxk?HHftPqC;(Fcan z=GTO2M?YAUgR0nrap8lurCEZomr!;(Wxn9DfvUGf60Lj=h(jtH?4qLdZQP>fzp6HX zU-0UxbZsC_XqhU>8TgHh8o;CPE7XtgPYqwHVq?cb0OXC0aptnZj3DN+81m`;2)xRn z`a^T*P~MJG=ka3Uzw95?Mc6}U7A-$@4LcMvopGzBvp=`dqFMfr-bFURj2UJUKMiG! zLF0BDyTZ9X4>c^k{=Qqf7c!w;ZT%!O807Ji`6F0A@_;K4#S=hcI;>XWHv JR5jLCXD=#Epi?QoG#RX!KAo{9k#TX0TsG(mnUv>hg#kVwB9X- zQt_|7 %kCuZ|4q0=j8%{6ZGIMdnO*$` _f5X&J#uqRk}qc86#ZS%>~L zU@lfIwdxJ+^?UG_2MRoj2&`WsvMA~Pcb?aP0k3n6;gW~} gKjw>JY}NDbgE7Pf6n|@MhO8x{mGVK@bY13 z5{mhJv&saFwe1*`zaj;QqJ8nJ^xYEderKw<)xg{|9ZgNMAG*J8npJ)Akkjw2$vn3B z8Yhl^0qS3ZRm%U~Hbd+WY}gjFSe5vHL|+I0Q}m?=jwu-pkqnq`{_@MH{@2~Y-0{xf zV2w_m^&_|m*i4h<1Ty{d3x&83@(~IPskPw^29zImgucl9gv>)4N_=R7oaU4cj5_{^ z;`dFe(M3ij1gDn;x%+hx d!(wNii`5 zk#c6lh(%!7v`axSdckJGXtj@B(G`3Rli(8i_*Y%1*)-f=jm!dVquzNkwjz=9C+u_0 z)V2wxXV`~k@&+OYP*h5g$e`ii=gKlr&2fm0EAdnNqHa(bxM+MBYTocdt|eQ~QA0fY z67A`UaqzQ%#zlg)|9f!NmMyVyN_qCqFp8f27M75m-k>(~Qho3#=jcmEgKv;s+MLoS zSAU**E_P4E4+)L;*z#K_^BQSc5WFEAqKI{gBo7JW2vrOGBBKodWQW-BWRVW=-?Ocy zMjtlCx9cIB`oi<&YtRK*|M~rtH-Tes{?Yt(QND{8;tib>EIXH9N+B>Kwr5OgpNC_F zCoz|gX _R_wg;h8Efdpkn(Tf!A2;vZ(6Q@4 z-k B&ujKJ<)QnsLC|-t{ z&F43b{;cJ!dFfsFUMA&=lR^->5b*+c3Cbrpg0u{Vexu*J14Qw%!z-e*L{unrc9Xtu zB_;B+_#NE39S*psQf6HC*O;DeRb2{ChmyMMftjgLiffm`FM`A_f+ib1D^5!R_X9+W z#gTW*xpx`R;cc3(8^P2DGs95|5rm}>&DMWEw8}Gs3S-XQ(A;K9joUN7?KPfD1}LP2 ztVeHwV!i)h8SxK+hHn#pH}h<6;C{co%(%Zy1%0(p`*d~QSwTEfR@myJ(R!|Y>}K)3 zgzav|515>GRol;e8{7nYK>~m5v+V<1AS5#D;~ 5$1yztG)O1lbRn9We346`OleolE_+x_yxKBiX% zL=$eveDJ~O#w2s=nDUS`chkB2pXW5Iw(fJBjk)qC89X_-ntd7LtAABNdX3jJ_xFXN z4o?t>Rr?Ua$?_udgu9i!ivxc{a; {?H~|aD5oNJ~y9q0tKf}aH5C z+{CNd)bg#3*%8sf{e+kieeaT}wb&J*8IdkwRe+ArQn=HS(<*>Rp?r^&~K z4l~9w-Q>Trms*N-3B?+%UF>XyWx-GBFW4+G6gZ2Il;9L!b6IEHa$w
=VQq>dmVJAIb|dT+I64!UCDX1rG<60 Nz zrkymp3=U|$ZklG$6{1qHo*6r4Ci$?mRZ!gtbbQ_cc6coez+#HH!9QNX(ZG?L)e30X zt7ldeSp5W;d@cJ5&6%LQ&2H_BXI}1P_bW3pa?g%T`JVy#Pjtf1o)A$^P-2lR+9y&y zLlRa%OS>v UppgDFf(4LGDm0+DnmAJ|Mim$$%Fm6{4e# zr+xxnxC6CY`2}l@9p3v*e2PN5l>&pN+V~!$*%Um=U)c=mT?dX%o9 iqYqHD5l*)a}#cb^XvBfR)X|{U}M%f zH@$~h48Xld(kQvt6Hp#mH3Obf3i17lSTNlw*mUGcu8O9$;U)EbtSI}(&T+nTWh{4*X{S&qorS!!f zdXDy@3+&F7?SQhhnM7ZfjVI?Zd2H b0;+e4iNB8AjEr1hZfff*d@mRCyG$QOUQ) z+5Sl_@)ea#%<^XPcKp^v7SkQwh7(w$!_&3AdrepLPLq?GQ;~Tkl4HXXdSEh_d3-a5 z4U#gCR#HENFq4cc?bwdeY}OVXB(6 r+uIRZS=sSnt7wOW2J~;H5^{7WYjvo0fj3)Xv0b@f-c|xm0ev z27!n$X8kI{anVg=zma12iBHCl0YTRLA!}!4f M}2-9z+x_x#jp0(LM{OD(v4YN+MCC{Wwj!_#|P&Lz*9v%EjQI@A-OKbZ_pLF#T z+p4}nPPM@%?ZyjR<2DIcZp4?wSQ#8qL?~0L^kR_jMA2Ep^5c|gKX=n_KA+s6$;TfD z?M0$J45f|_w4J=!?^cbPAFrn#f2} m~-Eb&I8|Z_MxR1hBl+8wC|xo1d4r`dVVv=3iikr!y{| z6Rl4L4^%j>dHDkHcWftKNA?%^C$k|3WsScO5YXVBP6KPRYcH$QUV_614ZY}ykMFt} zVi6_~XP!<%I}ojz5?*F;9F8X3^c4d^eL*`K5 Sw&~4h zQj;=J;ILYg!EX2nay`Al5Z`wx+*XWX_TvKdKp5CNIqs=)JCW9#-zu&WzuvTJ>~zXX zp!Jqc+5VJH?$+j3-#UBuVR>Np!*Yt&0s&vKZtm~sIExRQZ?vFI>1#yWqhKiIG+|v% zR d<=S-f7Ca{9M zB uz-Rv;JkK0?W4g{O_HIx0sQd5{Rf^D}z7 zY&k}Bi@?WeVET8XCD}B{fypRch8Wk8=0NOdSs-70(guw?QKopLy08eDqAzt_^GY?U zUwljPXhlclPk7Yxz^-t1qdJRW{jxr#x7$?`Z$UU*$ AA`Cqx|Unt}Uk~Q<6j!#9OYd8Q`pe$1wQ`|Y}gFjw36r%r4 zJ#nrAaE}+c$mVV@y>u6DhyE-c#@xw(G>1-$rQwWk?E@|+Uly8M&yyz_=`>3WeM?_> z&Vm^ZM!$=mf(qBiPjK%KaMxMD3)_Q9Cz6Dd=U0+Eb8O=e`7u-(b7lP=jmebW76?r$ zAh3K >~K~0o^0bLdcFBu188mTtH$*t%Zx#@+Y zVk@s3s4Sb3pXz{@(+X<1!m((!@{`}>*#*fXPLSzJCsCU73sUDX43S|n@>kcDuX;?t z6p)7PYI>sd%<_m2NUPYvxI=mpGa%|%MX! `!kSaB &wO z0|NapTh&ww-u6+!)^yoTtLqE4t?83Qs^hO7$xVsMIONuC&+Hsuu_d7j0>+92%*$h? zqHW-m6)X!pZAwN4-qISY+;O_hAMc5D8X4+CDM`gBg;<)M$NFmT-iXgiQ&2?*K0SNd zql*xUbm;Y5GaUQm+2bv-bA*1QK&oq9Y=fXu(>5!Z=KRRb;=+*o!ZrtSYUAI>!JLDu zXP&m5-7iBhta`oEd!_n#Yt$?2b*3M7u^Y0YEU;+~3##(;VkG@QB 56_E?i=-Ghc1wYn1A8P|fWxR%P8zGbYirJ8bOj++zb)5kwO znn!f9u1hbr3ukaCTJ`#(aKE7@G?+w0EmoPOxSLAwVfw4fRX6(} >LTG(O5@xseruT8F#KfUh?Kf>btaO&Rb_TjdqQVN?%7^tK(XRCyHGxS@yLk zx}