From ee31e8197f729201a1cbd31dc116ed1eb0bc21ea Mon Sep 17 00:00:00 2001 From: FlyingQianMM <245467267@qq.com> Date: Tue, 1 Sep 2020 17:27:40 +0800 Subject: [PATCH] delete thread_num in overlap_tile_predict --- docs/apis/models/semantic_segmentation.md | 31 +++++ docs/examples/index.rst | 1 + .../multi-channel_remote_sensing/README.md | 2 +- docs/examples/remote_sensing.md | 82 ++++++++++++++ docs/examples/remote_sensing/index.rst | 5 - .../multi-channel_remote_sensing/README.md | 2 +- examples/remote_sensing/README.md | 88 +++++++++++++++ examples/remote_sensing/eval.py | 44 ++++++++ .../remote_sensing/images/overlap_tile.png | Bin 0 -> 443023 bytes .../images/visualize_compare.jpg | Bin 0 -> 211177 bytes examples/remote_sensing/predict.py | 18 +++ examples/remote_sensing/prepara_data.py | 95 ++++++++++++++++ examples/remote_sensing/train.py | 55 +++++++++ paddlex/cv/datasets/dataset.py | 5 +- paddlex/cv/models/deeplabv3p.py | 106 +++++++++++++++++- paddlex/cv/transforms/seg_transforms.py | 31 +++-- paddlex/deploy.py | 2 +- tutorials/train/object_detection/ppyolo.py | 2 +- 18 files changed, 539 insertions(+), 30 deletions(-) create mode 100644 docs/examples/remote_sensing.md delete mode 100755 docs/examples/remote_sensing/index.rst create mode 100644 examples/remote_sensing/README.md create mode 100644 examples/remote_sensing/eval.py create mode 100644 examples/remote_sensing/images/overlap_tile.png create mode 100644 examples/remote_sensing/images/visualize_compare.jpg create mode 100644 examples/remote_sensing/predict.py create mode 100644 examples/remote_sensing/prepara_data.py create mode 100644 examples/remote_sensing/train.py diff --git a/docs/apis/models/semantic_segmentation.md b/docs/apis/models/semantic_segmentation.md index ab62bd5..b46a627 100755 --- a/docs/apis/models/semantic_segmentation.md +++ b/docs/apis/models/semantic_segmentation.md @@ -110,6 +110,34 @@ batch_predict(self, img_file_list, transforms=None): > > - **dict**: 每个元素都为列表,表示各图像的预测结果。各图像的预测结果用字典表示,包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。 +### overlap_tile_predict + +``` +overlap_tile_predict(self, img_file, tile_size=[512, 512], pad_size=[64, 64], batch_size=32, transforms=None) +``` + +> DeepLabv3p模型的滑动预测接口, 支持有重叠和无重叠两种方式。 + +> **无重叠的滑动窗口预测**:在输入图片上以固定大小的窗口滑动,分别对每个窗口下的图像进行预测,最后将各窗口的预测结果拼接成输入图片的预测结果。**使用时需要把参数`pad_size`设置为`[0, 0]`**。 + +> **有重叠的滑动窗口预测**:在Unet论文中,作者提出一种有重叠的滑动窗口预测策略(Overlap-tile strategy)来消除拼接处的裂痕感。对各滑动窗口预测时,会向四周扩展一定的面积,对扩展后的窗口进行预测,例如下图中的蓝色部分区域,到拼接时只取各窗口中间部分的预测结果,例如下图中的黄色部分区域。位于输入图像边缘处的窗口,其扩展面积下的像素则通过将边缘部分像素镜像填补得到。 + +![](../../../examples/remote_sensing/images/overlap_tile.png) + +> 需要注意的是,只有在训练过程中定义了eval_dataset,模型在保存时才会将预测时的图像处理流程保存在`DeepLabv3p.test_transforms`和`DeepLabv3p.eval_transforms`中。如未在训练时定义eval_dataset,那在调用预测`overlap_tile_predict`接口时,用户需要再重新定义test_transforms传入给`overlap_tile_predict`接口。 + +> **参数** +> > +> > - **img_file** (str|np.ndarray): 预测图像路径或numpy数组(HWC排列,BGR格式)。 +> > - **tile_size** (list|tuple): 滑动窗口的大小,该区域内用于拼接预测结果,格式为(W,H)。默认值为[512, 512]。 +> > - **pad_size** (list|tuple): 滑动窗口向四周扩展的大小,扩展区域内不用于拼接预测结果,格式为(W,H)。默认值为[64, 64]。 +> > - **batch_size** (int):对窗口进行批量预测时的批量大小。默认值为32。 +> > - **transforms** (paddlex.seg.transforms): 数据预处理操作。 + +> **返回值** +> > +> > - **dict**: 包含关键字'label_map'和'score_map', 'label_map'存储预测结果灰度图,像素值表示对应的类别,'score_map'存储各类别的概率,shape=(h, w, num_classes)。 + ## paddlex.seg.UNet @@ -133,6 +161,7 @@ paddlex.seg.UNet(num_classes=2, upsample_mode='bilinear', use_bce_loss=False, us > - evaluate 评估接口说明同 [DeepLabv3p模型evaluate接口](#evaluate) > - predict 预测接口说明同 [DeepLabv3p模型predict接口](#predict) > - batch_predict 批量预测接口说明同 [DeepLabv3p模型predict接口](#batch-predict) +> - overlap_tile_predict 滑动窗口预测接口同 [DeepLabv3p模型poverlap_tile_predict接口](#overlap-tile-predict) ## paddlex.seg.HRNet @@ -156,6 +185,7 @@ paddlex.seg.HRNet(num_classes=2, width=18, use_bce_loss=False, use_dice_loss=Fal > - evaluate 评估接口说明同 [DeepLabv3p模型evaluate接口](#evaluate) > - predict 预测接口说明同 [DeepLabv3p模型predict接口](#predict) > - batch_predict 批量预测接口说明同 [DeepLabv3p模型predict接口](#batch-predict) +> - overlap_tile_predict 滑动窗预测接口同 [DeepLabv3p模型poverlap_tile_predict接口](#overlap-tile-predict) ## paddlex.seg.FastSCNN @@ -179,3 +209,4 @@ paddlex.seg.FastSCNN(num_classes=2, use_bce_loss=False, use_dice_loss=False, cla > - evaluate 评估接口说明同 [DeepLabv3p模型evaluate接口](#evaluate) > - predict 预测接口说明同 [DeepLabv3p模型predict接口](#predict) > - batch_predict 批量预测接口说明同 [DeepLabv3p模型predict接口](#batch-predict) +> - overlap_tile_predict 滑动窗预测接口同 [DeepLabv3p模型poverlap_tile_predict接口](#overlap-tile-predict) diff --git a/docs/examples/index.rst b/docs/examples/index.rst index 8d7e68e..f232951 100755 --- a/docs/examples/index.rst +++ b/docs/examples/index.rst @@ -13,3 +13,4 @@ PaddleX精选飞桨视觉开发套件在产业实践中的成熟模型结构, meter_reader.md human_segmentation.md multi-channel_remote_sensing/README.md + remote_sensing.md diff --git a/docs/examples/multi-channel_remote_sensing/README.md b/docs/examples/multi-channel_remote_sensing/README.md index 1a46a61..cfa91aa 100644 --- a/docs/examples/multi-channel_remote_sensing/README.md +++ b/docs/examples/multi-channel_remote_sensing/README.md @@ -7,7 +7,7 @@ ## 前置依赖 * Paddle paddle >= 1.8.4 * Python >= 3.5 -* PaddleX >= 1.1.0 +* PaddleX >= 1.1.4 安装的相关问题参考[PaddleX安装](../../install.md) diff --git a/docs/examples/remote_sensing.md b/docs/examples/remote_sensing.md new file mode 100644 index 0000000..26c13b0 --- /dev/null +++ b/docs/examples/remote_sensing.md @@ -0,0 +1,82 @@ +# RGB遥感影像分割 + +本案例基于PaddleX实现遥感影像分割,提供滑动窗口预测方式,以避免在直接对大尺寸图片进行预测时显存不足的发生。此外,滑动窗口之间的重叠程度可配置,以此消除最终预测结果中各窗口拼接处的裂痕感。 + +## 前置依赖 + +* Paddle paddle >= 1.8.4 +* Python >= 3.5 +* PaddleX >= 1.1.4 + +安装的相关问题参考[PaddleX安装](../install.md) + +下载PaddleX源码: + +``` +git clone https://github.com/PaddlePaddle/PaddleX +``` + +该案例所有脚本均位于`PaddleX/examples/remote_sensing/`,进入该目录: + +``` +cd PaddleX/examples/remote_sensing/ +``` + +## 数据准备 + +本案例使用2015 CCF大数据比赛提供的高清遥感影像,包含5张带标注的RGB图像,图像尺寸最大有7969 × 7939、最小有4011 × 2470。该数据集共标注了5类物体,分别是背景(标记为0)、植被(标记为1)、建筑(标记为2)、水体(标记为3)、道路 (标记为4)。 + +本案例将前4张图片划分入训练集,第5张图片作为验证集。为增加训练时的批量大小,以滑动窗口为(1024,1024)、步长为(512, 512)对前4张图片进行切分,加上原本的4张大尺寸图片,训练集一共有688张图片。在训练过程中直接对大图片进行验证会导致显存不足,为避免此类问题的出现,针对验证集以滑动窗口为(769, 769)、步长为(769,769)对第5张图片进行切分,得到40张子图片。 + +运行以下脚本,下载原始数据集,并完成数据集的切分: + +``` +python3 prepare_data.py +``` + +## 模型训练 + +分割模型选择Backbone为MobileNetv3_large_ssld的Deeplabv3模型,该模型兼备高性能高精度的优点。运行以下脚本,进行模型训练: +``` +python3 train.py +``` + +也可以跳过模型训练步骤,直接下载预训练模型进行后续的模型预测和评估: +``` +wget https://bj.bcebos.com/paddlex/examples/remote_sensing/models/ccf_remote_model.tar.gz +tar -xvf ccf_remote_model.tar.gz +``` + +## 模型预测 + +直接对大尺寸图片进行预测会导致显存不足,为避免此类问题的出现,本案例提供了滑动窗口预测接口,支持有重叠和无重叠两种方式。 + +* 无重叠的滑动窗口预测 + +在输入图片上以固定大小的窗口滑动,分别对每个窗口下的图像进行预测,最后将各窗口的预测结果拼接成输入图片的预测结果。由于每个窗口边缘部分的预测效果会比中间部分的差,因此每个窗口拼接处可能会有明显的裂痕感。 + +该预测方式的API接口详见[overlap_tile_predict](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/semantic_segmentation.html#overlap-tile-predict),**使用时需要把参数`pad_size`设置为`[0, 0]`**。 + +* 有重叠的滑动窗口预测 + +在Unet论文中,作者提出一种有重叠的滑动窗口预测策略(Overlap-tile strategy)来消除拼接处的裂痕感。对各滑动窗口预测时,会向四周扩展一定的面积,对扩展后的窗口进行预测,例如下图中的蓝色部分区域,到拼接时只取各窗口中间部分的预测结果,例如下图中的黄色部分区域。位于输入图像边缘处的窗口,其扩展面积下的像素则通过将边缘部分像素镜像填补得到。 + +该预测方式的API接口说明详见[overlap_tile_predict](https://paddlex.readthedocs.io/zh_CN/develop/apis/models/semantic_segmentation.html#overlap-tile-predict)。 + +![](../../examples/remote_sensing/images/overlap_tile.png) + +相比无重叠的滑动窗口预测,有重叠的滑动窗口预测策略将本案例的模型精度miou从80.58%提升至81.52%,并且将预测可视化结果中裂痕感显著消除,可见下图中两种预测方式的效果对比。 + +![](../../examples/remote_sensing/images/visualize_compare.jpg) + +运行以下脚本使用有重叠的滑动窗口进行预测: +``` +python3 predict.py +``` + +## 模型评估 + +在训练过程中,每隔10个迭代轮数会评估一次模型在验证集的精度。由于已事先将原始大尺寸图片切分成小块,此时相当于使用无重叠的大图切小图预测方式,最优模型精度miou为80.58%。运行以下脚本,将采用有重叠的大图切小图的预测方式,重新评估原始大尺寸图片的模型精度,此时miou为81.52%。 +``` +python3 eval.py +``` diff --git a/docs/examples/remote_sensing/index.rst b/docs/examples/remote_sensing/index.rst deleted file mode 100755 index dc37565..0000000 --- a/docs/examples/remote_sensing/index.rst +++ /dev/null @@ -1,5 +0,0 @@ -遥感分割案例 -======================================= - - -这里面写遥感分割案例,可根据需求拆分为多个文档 diff --git a/examples/multi-channel_remote_sensing/README.md b/examples/multi-channel_remote_sensing/README.md index 8554e3d..63ec786 100644 --- a/examples/multi-channel_remote_sensing/README.md +++ b/examples/multi-channel_remote_sensing/README.md @@ -14,7 +14,7 @@ * Paddle paddle >= 1.8.4 * Python >= 3.5 -* PaddleX >= 1.1.0 +* PaddleX >= 1.1.4 安装的相关问题参考[PaddleX安装](../../docs/install.md) diff --git a/examples/remote_sensing/README.md b/examples/remote_sensing/README.md new file mode 100644 index 0000000..2663754 --- /dev/null +++ b/examples/remote_sensing/README.md @@ -0,0 +1,88 @@ +# RGB遥感影像分割 + +本案例基于PaddleX实现遥感影像分割,提供滑动窗口预测方式,以避免在直接对大尺寸图片进行预测时显存不足的发生。此外,滑动窗口之间的重叠程度可配置,以此消除最终预测结果中各窗口拼接处的裂痕感。 + +## 目录 +* [数据准备](#1) +* [模型训练](#2) +* [模型预测](#3) +* [模型评估](#4) + +#### 前置依赖 + +* Paddle paddle >= 1.8.4 +* Python >= 3.5 +* PaddleX >= 1.1.4 + +安装的相关问题参考[PaddleX安装](../install.md) + +下载PaddleX源码: + +``` +git clone https://github.com/PaddlePaddle/PaddleX +``` + +该案例所有脚本均位于`PaddleX/examples/remote_sensing/`,进入该目录: + +``` +cd PaddleX/examples/remote_sensing/ +``` + +##
#hkect^1mL4U``;Qn2$=h9+C+WE;mmn&on z32)n;_;5y0u01nItdQu4CU1G~5qRogZfJ8i;p^#EBi0nY z3>pdcou{-xpYCJ@Jf*eSD%=S%?23QZfJ*cZ^|ZnG2lp_8;sAYMzrZu>>p(C;M)OtR z{Q~cI1Y3q71zp+b3YulhES_co*@P?p*zfS_&BG1S=Ld)yiC+V*{}Cc}>J52ff6>|Y zlBNV84Q_04FnK&c!ryS^KqEpVhW=S-A+>Uhu*m-UZT4HfCWat^(`ODQXwkCWNHn`%Z$mrV< zbS4m`bpyMx{F1x7oyhZ^s4oL154=l^DCgA{9PhNpYO1WiTo_&&7Kh*2KgIOeZ*BU- zlu8G%z}`;`aHv@38K*B?P{=BcDJ4ePuQjYHuQ7jo?DE!eKB?d}1xlSSIy$<_tPLOq zg>n (7DLaa7nTPyjmXa$y~l8d_)u``{Dh|N9X`LZZnb+6lUqJ_eUKX8RTbF zf`Q30eGIl8wu^Lw!8MX%U&)kY%bzn0-=zxnOb>XCK@L%s q ne0oQAJT3Dk|K22c) zRF(*Qhq{mj90Ah))|ENs-J?_X8hr66!&VxE=&2@Jl#xO)(483m7U%7~CKoB3FM-8D z4v7wT3R6^@yy)L|(CQG2&P^yYSrAzgB@prxodDDbC&7@g+DAl+X=ZBsjIuET86q!m ztf;IA)&z1>h853q(!ZIcBl3y9eMqN&!Tcik*?57|(@g!Pk4iM!K{krVO!6@viw_sg z7q=GW_RXDuRgiQ=Xx8Zq1oOw(v)J-jovw#nqFuVLUcKUZ#WAw?O=`sBoAs-cyi|3c zob#}6vgKb(a$<70*I%rwuH&rRuIrLVS;*pk&it|eTG?u(OuY=N4D!Z>SDqI}u4Y@P zlc|%UQ$4}rTJk;9^Yi)rBdMdiM?vceBh|be I~x^9rtJfd+vg_qaW-1$N@^VQFDM%;Gv7V@RJ; zS FYdA(3hCIFC{fNN`xIK!i34 zFNqs#XMAcrS~qVzTRcsEe!+))5}grU(TdSh3tdv3F|FCsFXN|^ixV%$^-38hJSQy1 z?aFFRLMN)maW 6VRg!P z^XBa`dD)fo;H!?DkE@e&7iePJ#jR{~75X(ojz8LW!Dgk$wa}$*S;`s5_2b6i-2TMK zOx(`*&ZBsWY1`yUsS1k H)nwrbqA5oBi{} zt?iT*pN0#28mu(dv}v*ab}h&}WL#_+TJ({l-7U{PlxB!y#6H3>v_4n7y}s+_xxWVr zhmm|ksl;SMPlIScQDAc5BgxPpvEmx-Qf*)$bgp=AaBh^a;N9DIM|1>Iy;3|<)>2+g zQ%x2jDcHcb@^6c<>pS^OoX1BtQ=!zRmJm@Y$tZAy7R}z{LG~9!;{y0p{Gh2W$CGr{ zuQJb%253J~)pDQvM!G(=>!Dc)TQF_YjP@fJ76NJ5C{v2sy_wpsJlT`n>qhJ_!5?)H zeIgzq1~O^@eHHGiK2cjw VIt`zody_Zn{DFD{YtfW) (dizCas6;?PMm_09s8knr3au+p)$u6+Kq6HsE^-Q z;)oTDdlh@cG0$GLyRm9Gb}dx=kB`*`_lbE@JaIxq{H)e|y@_U(g@^IkLfnGJXn{%L z6a6E*qv4Si7CjceqA&UH3)ZwKs$j+`t>2e6&c|>^4U6u5o2qDZXhz`C@a^-#?C-)~ zR*%1S9$)U)eXDC{i#MsGY5wXJG^&!#Z*piWY*N?v;IhCov@yDb$`BL|0&Rv*yMCYe z`rWf)e%qY)byR+qb$^Da=JA~!+Z@-N>F*F|k&QT _Om z0)L1gVU*65XWerh^N0$s6VFz@joQlY&`RVobb&@V>1omv$U3DyDAFna6yC7cv``Cd z0e)ArNcNr*DL>oJ#mO#Aq4xWJ^t9!pv!!%@>KhyzLEpX;y&;dC19^6LgPi(RU+DIS z$;@WI?^hm`Bemt*CGATgEC!n7lWk>G)+hGj9=xaP _qERd@hbsE`@#ER;C%ISZa$L>k$F-LErqwudNM3z1jyt8wof>!@XQixK8%EfrG%S zlvXt>HI~$mB6+^smo>R8WgA@)VH`q+;fBYq3745?V zz=A~4h{yhtvO`0t?nwHe!;NytvU|z-+=E{oJH1Bj3E`=lmWQ7@SQw>zmr*>VR28L| z=G%jp FTR;4c*}{0MEgR))2en6v1>WR@hjEW-uSA7T4rD9X^IdtX`SFe~IK%%PEz z-e^#zIG?-t&5!x8!~H0eDcr^%r~^;|g#Y_R#)W~9f10KA5<^Dff4>@t-*M)L(W24+ z?-xU)|J!*0-<*=>|6WD{z z6Se{wwK003i|qell|)nV^8axbf9yz3G@=lBxIc^j|K&oYYXtwdUy#TA|K}Q_;J=Uh zIYGkGExQ~9(@C1t5!RimD{z}#>Jyf#ovd~)bUkr7i%!^b+PUVwsB2HI^_lTnT=%Y? zv7SGzJrB0_v3=AA)KM}CX9Q-Q`-IPC>wL>oR`j%_+ImqnlP$(fm&>nxW%%D=GLk`t zSR_5vuruP9OB!|={Iw?FGp}6}*tLADQ%1`5%0fmxt=DQ6F{cflSBy-gICOLAdTH)( zx!O?aZ~4xSkK0kDP>qg^Sm~#vXktvx%P)PErz9n{#KFOdPfT2eJ*r^T{V)j>1PFFg z0lfwu&X42t+Ni!%RaUC#DYNNT?S|$LZ_e~mS!S11IlCo){9pyw_ m@?+x^f=JD%ss>^{%k0$S(D2Nsdgfz4^Y2`We@>%Q7Qevg{p{JYU_ zBX?7g#ZwO?c@_R|${sTMuj)=eGk+Bo=W96q%!+sW(#A9{#a_gkl;TZ6`O=G7b|I1g zFp+|z8qm^WS;tPUZi$XoxUrJcxok4rQ+BZeV{z)R2HZxs@W+w2-*D>TAWbb~$gccd zJVyT5yTR7Hs&fTSCL9R+a$>*Q)s1Lt3hVqr=%^06;vp676gN)?hC7kROSvp_%S8`V zL2=VEue%;)#E^)om=5gDZJfnOdWx7=W{NnSL6j*|VgDL&iv$fn0La{P*<8~8?Q?q7 z&w1J15j8tU864?FeuF13O4o3)=*8|k5iVhzPSiaAsIBo%-K s)r3IjIjlHue#=b z@n2}x(7}j=uf^zEZqlFdMP`AqK22Idl_zQf?4voNK{M`1UI&~sV&AI>jA)Q zXxQ!A+JdSA>@a#DWx}H109@Qrq!Fh*QzKcl53ztSWwA16_zQVC^KZj5+MGT2%N&y^ z6vKVceiP2g;m&&&wVPBSzotHeoHE$xsFt$k8MpyV*H9f@TH;jeu$ji!m-IU3ZWcVY zX^oG|uf(g~aS&|$Mdr6-egaVXt+!Umuw?0eZig=M@{cGP|I;*+@L&9R)%_sJJ*y(8I= zvd%=u00-_b$|?@Gn>~`NZf3rNGF#&gPVB7e{>6$nwmNjdw3&B*PyksOroXOD8u4xvX{}6 ztIC ET(7h8J`~ zNLc6&SNQzS6FR!a!NEb>m!9$FS?1Mj?M{QvY?HQCYaXg1-KCMSPdS#e7=;1+002L@ zY7^j`a=NkpN-P;=rvTr?*;+o2x13+cRJV4dVz}C;SvN`8&bFATZ@R9kV1T`xS36=- zXHqBsYk|s6#kIpQ%>+H0=yW(Plh&GU;NBt{#)8%MbQ|&En{a~6>^uLJ(J~TEyI2DQ zyubU>DHy}O>tr!_0ao+|vQ^|Ugs-_(zQ4}kdDUEfy0>Yqr1L2=+gvMz*u8YnnN_$z zbFOy}ZAVwCNVv~gw~*Ky;6D^2U)%jb^=k^siHx&+DR0@Zb`WXIM!}aOTjP%lOdPEI zo{nd>##Q4w?7SPb<22k2B4?>-nq~{r>TSf+#BGwCshiPfnc(ohob8Y8O@?gMG;#`K zzY}auALF~%_pOd9X;}S4Sc59Im|kuF6Khqic5I)!0yV E z2_Vv>`Z{__O46 Tq{TsiPN)68|pC!c=5g=2>Q^{yHL;+}wwY z(vzzZ`|~kL%3b WJ7g)?Off?aQ@^K zvYA~y%qz%)j>ao<^@sEaUtV(YRlN>TaSP-!*-J*8U6aakrPUDK{}aamz-?7vliOrI zxkWC9I26M`*V8G Fg6NX=(kZb91?~HB(X)n$IjU&thy%8t*T3XP?qP zG1&V|kL-TM7!yLeTV=%IY9n#FnZ%I(N>jd6fx5X=0Xu73Dy`7xW^6t$L*htOpjNHU zQ`V1{Cv1RZYEEf_dyae0?`KN=%~(!zkcs8@^2HnAFD$je-t8Nx-A-xH?dFH~g|mSc zhm%G}NBL|Jenk=hvvAzDNsN}+CT2cnzi*^wOp9^aCf*1y*XJq7CP_#*7xxc#`@Gdc zSHuI2SAG-Xj*$*iVm;y!Gg1F=aSepas}(cLmfBeC>7BUz{16$+dpx6}wDK!Bx1R}p zkmr$~O?*uM6F34Oil56%TVZJvZziAcO%(34flBs&6kj?CV8jPr(zA4?t+vjFsa`Iv z%_?H5v+*z rqr}tezWC_0aS9Fm?Gxa#I7eo!DATRp7%Js zJ+k8C0tq~DFT!^IlySR=ENgv)cR+ydLCn7p(Ew&bg0T!i{fFCb88ENte}aCX1GZgC zvZ?T*uPixVEItdY6bKbz5guzJi9Od8j}6uo7XT!3cn=Btg{~yO9H#$ah$fogwK?4C z#6d=L61ev~Prz^LTYp-3*qC}oMh3jak;i8HR2KHx4647-f vgTnBNs*-7A6q2U>N zL8N|Rr9F+TQaPf42sYAWBk#%+=7ou`8r!J?V$RnYBV&e?eD(LeiuSsC*@_=B9@tQ; zJrIT_x{&}GAJuBAkNi!8Wc-l@jx7 EFGL0`67-yxauFY 52bSKgO!a`r)LJ2 ^Dq4IVeU7d8Hg0e#w7M9dynK{92oC-`;j8ywf58@+oa1J#uCJ>Dw0>#hD zv8VO}Vzo*dRP0$qRV4V@(z^d%^$A%vgxp-ct@l{%!Ntjg1lE%0oevqTIpYfc%?W>O z8St$i0^+oP`QZfk?3JNa5v9k>jKFybl|WTDvNg}t?-3ey_H@A%TX}3kkSMLX=bf~W zioxDTE!^_Fv-Wm1Z*R1e>6Gg=6W@oSTHYBJ^(kUr-deTIi6>>GB+=#CjN1`gOsr6I za~4~Z>qQ8GwCLXo_-RuyQ^3zdNwnb5%Gnga&5Ede8)1}QY;R@($qAaTW5O-qtTR}f z7)U25&ea@Vf)C!K-=3LF2~9*lQp@|ZMG@7v8B3rwzOMfC*_V53re}Q}9cAO@5jKkB zcXh=a%l)GI+qplt{ii-TrEa<17xbdCTj-}9MCRhROZCQ$Y4yen)lKmC?7*|Zui6Ww zo&a|kaiC>&b^wn$H$#-{@$H`*X%W7*vo8tay+}5y8N;u>8u)~+;k;eu>gp=%b6MkS zqOrycGeaop8o;`;qEf$TUddeLFiZSf3jtqfk=6J(r#t)B>=xR9!c_LjHuXk%gR)+E z!_v}~J{gtx%eB2kE=In3ms~b>ePd 6+2_P*Xt$^rFfZZn) m!Y~sfa#4>M56Psa*OftbuCah_}X;e-oOpg2X-~p5w`*syDFPbHV z^`-UWV~s6XZMGX6%5(AcTv J=mw^p8p6`MgbA7$ZNJ#}LL z*>65dw6?~;HV#3PKAuTb0;Q8r^3-(H)YM+mE2=6&t%#Q=Oim6=$6H?Ujn$fpafxv~ zF@5#yuh_psVl%-bmGN6<5 S<8E<5mqdiKrM^WB#YI-cKq6N?*2;@I4Zg0<$; zj+MY_V99eO#ak0hf+XZMtGApD9V)tUTJ1Hqi<{%T3hJ( R1h5OZg|)pk z#UPnHX>_?qrt%bNYnAwhtD4ONO9;iF`=Z{@(9!N=c(R|sp%V<(2{B$%)!_u+HJ|Ou zW+iYKM%Nrb=IMaISrRpE^StC|HE;Iu;@^Kb =XNRGeHkC23A)`73w>ik~wVK5Pk= z4vA~mR5)c* %}wBnkL_XG?Pm^84gI0}qx<`HLUl!$MA%LYp5m%iVgN zjP@3;VB2t( 9SDY9m5#^MV~7F%K=M0FFl zdi_?iV-e-p<$R~Vzr#FhLdr4fYjn|ABVgeY#^&q?D4nQHa{uTh`oZ@YkICok57R!q z9jA#$zAL;PF*R^LY9Q^fby8EOyJIhOT2fvP!}lZ+c_312Q&;fm7^m8Cf=%NSzvB 5r3Jt+EIudb0W+`4~E2J`JqTExN3IZ<_zO?aIG?~^uJ$$yWiaLX ;lY;=55taQi1K;R?B3v(3p_FG?*#b&%s~OAo{?&R)5EU0BSP$Mp^MG)gjs9 zv)`z2PE_fzcKP6oyW5$@NiZnRhl60;Q3F)S_Nk_+9%NGPbtI$lX7pVvefys>W{5#n z(tE+}E*&I(%VF=TY)z`!!o;_Hnnr2d9e>on10n^b=mU{{@dq_+$gf;}PLc0kk^g!> zROxf!Qu>YTI>|{iLiB-d{`cireQJc+S<`ps%u?Il9<^~c9x+?SD&i0U`l??ehTGJ^ zxs@+(pKC-Tm*J8(YF{h3?wsR47PnMUi3<8;sH$4Wmg1S>_r!fEV}q5K+4k90_s8EA zaPLt-2<*
71#`o9wCx8|+Z!V?ynCZ@_#$1tX{NK5%rZO^R zM?R?kOky$&w2QpiGVyJnDTCSi(e-uqdx7l+q-$U0#>;ucjIFa~O;~`2_Ew5(LCd<) zzq>l^C+wH}FUP-|a!j6^7Qts0bPEa!Y&)8iRaIdg>hXf_Px-1H&w*^hyj~q9?@j*{ z%e)$L=Up0U^IQ6Cim|S{u^BcEfzyCQxN{8O#e9mlV6m7sOH1|2))#h+Yi)0BC)3XS zcV2VF&_G(dPb#tzU1yUNU2E|mPCj(AoOo|<@4B{yzh|ztrDCnN<%&Y*=+`)cFaV&4 z+zw0$Vq`;ZXN%#UFz !?5C%vgNRJty!pnKRMi&I$TF3d&C~|O4>uJ2 ztvUj b1zxfPOv9(oO8m(Ge+DtD}-qINL|Z+G)O(1DIzQ`AK0@hU6X# z@b?mg8yL}J)X=eMYakz`&q(yk8mp9)6zLC678)?NG+3M6C)cEc#15~pqf%dmJ5s8@ zI{ 0ky1*?rGRL&8f z;7J-?3csMg3)= ;KANtYWD5Sw59Z^l2S?VkOth=S=`<_Yubi6EEjOX zjP=J`J1R&R8lT~SIv1tDolPPxDkQqS_#=(jZulxK&XsO7r7tIG1-TdlXUvco@N1?| zJ8^62G2n$aa+&5&63Xq27Yj4M&CZm1=>CvAeX6pFNxI*YRSn>sjoi=Rh4`OD5?R`n zPtd$88fLytAMekvY(`0QXuayq%_|v7Q|+wLd2{Z1P1-T0QuVwjX_esV(eEph0Ar (C%2K33hYfOX(0@ 7er={ z3}(RjsF0WUnElpT3IsmxY)Mb9?(JRE`>_NrCb)usk#TXn7a7|FK96zyvp^%=ZPpf1 zdo&t|o#t DUH_Y9Rj@|Q@kSvH+ z4rkY8S31epLYJV%0$D16ZXz!C Lqy{XUV2|Rz!*+GO%9qqajWaA|KiXrrUVr#7y zGRdGzUEK982GHx|GOu;9na(kxk6UMk91#MJ82>X`A5iu`A*x?B5Zr5PB+WnHT$9B6 zhlgddFwG~=$6`ALsZa+#pU3~T7gCo}J}fLj>Qdxh-_}{SW?@%Tsgrx|GW9AV%!1<@ zy;bAe1} X{=aTK0J6>S~qL%GXjtSPi!knGyAG(+3nu>O@@P+^qj;b3QmOCoYpA#6`mIPjM!_cV8hH@P?P5 zNxQezbnn4VF$e2qiOQ2i^1t7;yNAS<>(icL 0-7!cBOf8HwdS^Q_!j4*IalwPEkrG)ZpSz229_4s7e%_l6U8J;p$`>q2IzlA|$ zRHA-^r_tQ4N^s9AL8=78R*XKrQFu_2pNVyaILUkQFOd*Pg?XucaS{6sjE%hhpK!&; z|NL98r~r3h0IW~LYi;)cHY%!Ev$ATjvA*tU8HAl|Ze}qKoJ!dBHEv9>U0+=T?9#^k z3H**c5 14 z2$?YqK6f7b0lRPdxu^V0xSc@ G=roMa;h~j7;&Con{PZ6w(te{2c$^VrGykp_rzw z=-l}7^77 4yi&%^ z;;7(YtDV(QGcZlg`_1_Mu@51)I(ARp9;tF3)BYHrUL$2BsNLfL?U`)(%l~7&FLkkB zVm}@=WIs@0K_H<2@Xz!ZjESbp!Z)!X>}Q&ETyH}~MFmh{Mydm`ip6eFKktdQou`3} zPiN(CTxsD(1`I0ly-NkdB>7f)UxC`Ck9W`g%G*M|qxQzTO%{A|i}0~tO530)!HUg~ z{4?om;SLz>BhjtCfgFeGL*VaY>?fA6nY!!8;`_cg)|G7f>WUb9V2E~>{ks#>?M{M) zT}l`xpHOh4{U* sJ* HS7V5|$DN7(rtnE;joxPjuvzEM}F3esfP`wa_3t!7NtfH)O%4LnPF_ zVy>JH>L-Yke9a5k*wD$1kV;~@8j*C|Dtn@>^WxlpBA)B7R9wSAPLdIZyintth|z%= zYA#AeMa6C9Kyh xIPRAkCEBw?qDN$VT zFRMZ*kkM+kZMk2B9f^Wwn^JHc2Y}??RNbmut+ueRFwoWI 4oj(8ZIJ*BN24O%4vB0y^e&5m~RIjVv^3m}D z03ft;8#OSg=&WYC9^u8uZs{%K-I4P<#4;?my9sfJD`Uu^1av2GOw!DF_xK*K&rY^R zl%vNxB4=UKu3KYU)<}FxMR~~ijr*^sC8VYOcT(J)`ggYWYzee`$GgB703>8YSQM7n z7oLA%W7Vbv&~X16_tT;c$VoIgltqCNfB=BhTot-sSz68h?AB%#4{{$lxvc5xecj_% zC$02IIf-te8S=X+{Y38cpoU|0-OUPJnzG&tL+JMQHW=fT4);hMY~SlRSGz*jTkpTj zLccYO^KQ5#h8$slYr6rIrvC8ewoRjUe{yT_aUF5niip@QMUGlfOIf7<6D#B?6>o3W zeCrR!j)!5PSce?_=N3sZG4>~V7kJfUR}{`Ko#g&g$pMMCgq$hlxguENkQi=QJ9d3> zaFakK1hs4k>_rZCiVCg+rmN;6;$z?aV+1n)rKf&1BP0Wy8!_8ZtJzMa_iX@CO}tJf za6#5FRE_<6cb(&wTY-Srltfa3= 5?4H; z;(ld58zD5~mMb&nID0q@=ouw{AeS%zm8sayCwuyIT6M#Y!l+r=oV~EE?dfUUgMP1` z7u;B4x!s}`D+C;+#20=>qfm#Ol33(`G60}N%h ~swrmh;1wcEa)M4<3VrlyJ zj?Va5(fDZlhpEvuBWSMK_p#}#CCCd_Ha1nx|D@KODFEAE|8#PvZF2VV)q49n#Z}Y} zh;GI ~KAd6K4V#ZAP{wx9r=1f*&e%*JwM-Q9hGRc(28wJq9WIFdj^K=u<_-1!5F zeDg-Aea}j~^!uudR`oE>0s~1AIEF8~?cdqduo)Hb44Da@UNnX=8)@x@` z=tS--nKHuAGYSpEBU{V sY;B~vJ32f( zJ=t^=do%p_cA&DnY*Fp9_JQ%yBQ0g+h$w2&iNT?vf-hehE3(ymed~6{Mn{(?^(q}2 zqiMvqw+?2+>QE`Ys;a7Hn0$(rJ3Bgd#{{zQd`e47Sb5{bJ)Rub3AE9SEg%pzQCV3` zH)eudFVwtS!o(3~4B1^>N?&dBbm7KHFw?fkJ*X=P $e@82gT>DmSdUv&5M{No+N?==y_0TRfjf_2dNwP-whHpg%BR(vm5toSRH zPuP1dMhkaNYIwRI7$9b|J1@j#iq5{+?5M9#)x3Vy@D{YYLcT}L(yqr4f3VVj!R7$O zDr`=zEB }ydIX;BhOyO>(BX^VU)MslV0Te^xxHoUFjzSz*c z&bxZu>j#r}yK18zKXg8^4|Jv(-C{7TcZZJpo^Q^Ma~NJhr#-gDF1^6Wdm?csKi=QP z7x3i~A;1`3Fj)w0Dn0PEsv572sE>KD#Fynzrjp1x!{I3`B((K( HaY$)p#vKv$nkma#W>QvG zIT(XBrYE~2eSH-O+Jr+5o*E5wjZRD~Z!In!vVW7Wt~qn|+$1HruT!W?I5skNA-nI9 zfQ7qKSZHU-GBe3UO|l5a&}+6(R?e$ 70S#Cx z5;IW3PPI@!zk1atS vLthd 5$gn7oWq<0C^WEr0NE9VMDRQdq z*_csv_MxA2{>#8wL0(ZQh#y$}z1q8PoSkFSyv|&B<_eG8*GS&()D*v=p VK KV5Qf1cEEc2motpW)=UOP=?5w72>{^)iHCE2_s=Z}w zq40LJovL&c!^fbXXb7+l3tq_=T3HzdxP=?9`>m-KKToiORW9V&s3_Jg^$7aPx|pca zO}*#gN^xFLWXH6#Ber(p_JABg-{VpyFPazF7R=nCtQ> gp_OO9Cx|YD}C38nP(yW54{Idy~C0&IIw+MTC{i!*EDr?t+UnAj(eJX?y8>; zq&1}q-L314s*5D96WH!105y{2KQ3$L@TrpXh2PyXN~=;5j;@-mJQ2(i<(dmR3s*rj z6L?GAYiSf5Ga@xpzlH!HIFv=M5 zYby#wD3&-@l`89DvpA+#+1DQgH^as>;)@NIxF@K|@EBsfJ!LA}@eVF{6SbIK)e;H* ztKXdm*>)6Elu9q+eTVA4FZz0|{m{7>X-k7c!_jHF+pu_-trll%_SL<-n}d$WmkeR{ zg{J{a8B4y;NcDeDlLF{~NMJct(nz4NxsJp;&Q qv5_JDYPMd z!#BPbJp^;Omg1NyR-hL5t?`@qR$4mF@d+1qmdI9L53B*kVBG|&Ca)qk9jXNOdRl{X zxZLbu8)+s>O9e;(!hviI=f3g7V=^~4Hy}jh@{ TX#-g{uTcu)+WdO3La!`0(lKlSIQZ&0ZnvBtF}c378H=Ov3tx+zQA5 zAit_sXKRaHknLlDZE~<|E-3kR6o-+Gz28OH5s|+#3x}Ih@FhD}Q61oVIUzdB#!D>? zJrLGYtHd+?`P#LJfztlMqpIE{gT=PoCZ72)AsLGn1uY`+rj}S{_01@L>Wby>I=a`v z_Fe-t)Qc_fJq)v=)#qzh*;&V8`W=;A)RCw#0F{wavM^|~7#dT0RTDsQFX(e5XCtv~ z4;u!48#)d4>mDu{Jd6)#2P+o~jthvXQ<~!N@Vnv=cXC3ydwz$ZjIQ#K CsYR3ml+QeqHuoMWnnt1X_ z&7f-Q!rA{+tYTFsX;5%1D?z2=Z4&X6Kt}aN+68|vSI*uEfR*rjqVA~2U_ZoaD9eK+ z(nqpUc7akd3@R1-Ek|Id{eGRker=j$Pf}aklm5G~&Q2;ju^6{1Qc>%?YcrOFz5`R3 z-88 fpLcbJXQRf2UnJ?-seJTsgrLayKZKHZ14>|GvgT 2-|dH) z-{f6e&WucKPD0YGAa&QDMa$QWt8F`{kGJCd?2r#I`XsIXJ4#LukuVE3PGCx>55_bi zd_p)%nBgvk*BBs6hx>!VzGfheM!=zg0|qdvlrtpBU?m4QX_e7GrTa!3$!1tLh06!V zgNR>O?gY(sn}9Y(3$FVU0NUE0L$YfLufTXo;J4W3*#Ddwe}NdbOgjOIoT5K>nB2d? zR!wI31g(^HH-Re6(mo;P5d;81gsi9Prru2fO}ySj(u8a|?F7*MMdsrU;=T92r){Ka ziSy`kaHG9QY*ngYzjr@E#49qz5l;l6?khCXk`iC2=qC&Ht82sseh|>PEOo^hD46E2 zR`^_i>?sB!robPQ=OX=)|CAow%sZyHpj}{CKZC2^A}?InnA9pR_@emLix&t?4jI?B z5H7i%461g{bRWV95>~Cbet=dO#4!`^EC$$)4QP?4+AIzx3&r#Pz_QSOy1&Tasz-pp zJpy|cH(`x+a$u9q_isHUNNk8A3j()s2zJDsLc?+-h40d{2k&L1g22zrw-eADCQ2 9}O3keHX(UTD|Ek*25r%^zSIf1herdoKXi-MURR@2@oWE z?{KdZEhFg`7FOPPeh}3>$Ur_XVQh2_*gEXaXtTLE%&4|CnRz4*>UofQxs<@?ZSfA* zw0q@F@_ZMWy8Pv0GnaE9^b6I~IT>nmduTA}LEQDBsp->;Xs&}4K}^eSOhn?6Z$zV3 zLzq|U-tqyaMh~91GY5C-ZacqilY1k9cuS`@ExR`nmNOT&b@EV1)x-TZ{1fIPG+N7T z>rH(p=h(qDlXOA~P~{y4zGdudaLV3_&`Kmja3wP*y~QOrR?`$6^=2auMGx*ity )UfW!cfDaObFNIHSQ`&?>SW2T>I|s(Q7>x}V-_2ZE}yJHnh3f6zqJ zsaA$^E%0Dbz|%1-A_YP74SJ?(U+`h`2Ellk8Z8pSmpt_y5zhOx1}4oUf}v0*STO+I z_N?a%Uc1e3sCA O4CwlJ$ zHY7t2w*029c=GBpyL_vb47aMbAllUz9-@SqLswo)1QgUTOW0+fox!2UMc?|3k*szr zy0H%5Z~9==fGwjz7Oi$@ayLSRBn148^^mZU@EM_owtp$uEI^flq>|ML03|fhB78xp zqeWQq%;J5-v*y5*U?AcluF5( b`7>XJ#W`lO!RB!_TZ|Fx&P}xR4AAFBIOwVAvM3fktKF3*F?Bs$Z`BbZ zn+A}8ccd-qZ%F%H2f<;q!FQ06DekvUN+nHXqrbW zUz%TIZJ-It^}y!!gh(CTbV+|?dF=K-*1fKNOyYE%v&21?`xZS$U8hhWep{5I?Bh(T zqaIl;M||A2kB*Wx2y)XfQJG^-nqpa+Hu9`uI(vcQm6=87x3--h7*nzCy;i0X;3>*& zX4*`oY4Nw^^A&8WG4kG%6<(Hl-7nHW!xdj`Sh)L8K{yqh72Tx8Z3%`Xp0?gs!w(&s zcX2sd?oX!E*v7Ic2HrX5qz4|i^i9nrpIS8wdi+RpKAulCx;(qYy(*U1Jsuv2HibD5 zynx_cKCf&OZ6uj+j50kRB1tNqPdsf-bq~ZV9O77%v}sY*-4?dNpedtEolB^L C2AX%a7}3%0UCx{))a^NA+qp}S_0WF9aL}Tl0b_pILT}BR6RzDeTQFd zPajH68U UUt)AL3Ot2k_YxXUxS&iSsFup-&t*%l#?44-$^YS~t{)8;54Y zi5<}Ogm3*C={8*|E;=GG&D^>| oJtcc`dx }D`7BiJ z?Hde*wn(zI2%qC(^UY2c?6?4ar07)i=KRWrcDMdM9oDjW;zA_qSVs_ah3w0nfZ)9b z;GP3j$YN_v0CD6VWL0&>fsSDN!G1=x)c?oSyT>!#|NrBaGR16C$S{YZF6U%ULkM*h ztGuu1A~xhWF)I<~Fl;iXRL)e2l-QC}A+s5Bju;7>Q?axmhT*sC^L}5q@9*E;w%u;8 z?fE#|50A&wog|`=Oo))s4gDD2FdTNf*{7$lX+8Z{fBNohne11E55qd|N017pcRSdp zr3DHqzBw5Xct_$m5x*5zkK8LVrjqkH&7(jMu%UHuU9zDiE{akeJZTZ**sJGzOV7wZ z{f0|upK@bTWFjU35R_}FheA(XfQ!8w52ix|DCsRLi4sfRVWS{&oBsGQ0RJ!)i}!HH z06($}?l00Af q!R_qm%cmw0MS*d DW+-Xqvv@rTDr!hie~coX{t`@LeQu;Z&S-J3m(YC)p~7b6EN( z6X03^NaKSxuGpj8OiC?CCTqvA3!{E`ht2Bw9TjKv;A5BMy>nEZb@z_FUmvz)-rKwi z8su)!>yh|H1zIw^-tx!At(IJ4?ok)L?BtXkJ*v(|g2j*%L3^_WM!z4lnE_piuN{vZ znohTd$`PVW7)n3O7hR#tFQ68F(xKA@%|lcP2t7Wgav=Mj++}+SW>WUQz2>?5XYVba z++r;MVvanH{#s ec2e?9%L zQ0{zDxwSRq*Orvj$?JQTXP}51s X8%RvVey4dJ;YqL_7~{{zo~6g 2^M07 <|fPMRwJ)c-;Em8XH4yNGPD5*>4FexZ6S@+!OP~SMx*$#b# z`CAQ9nNMODh;>@4*E_0X?MYK|apJC8rJah!sJ-dB41DbjBb;mD6PjokFK%thKGEDE zB_+;_ccBeZh+;FHOqG5VR3)t}P0GKsa7QeBRRhOSW3&>-lYzVBv+uklxEG7WaPOY# zPVeu__P~v{xA0r@o5iZF_Pj9H=em1^w(G3KGIPvW<=zar$Pl_NFO;O{IVG v(=Qqsk|ev0?2D#`pRQ^RZ%Gpz6WMIRuZdB(Q>Iv=>6|h)*=tVWSEG+xjz~Aq z^QoRB%bjJqa-5_)Pcp&g$;nCMs4d%e&7@P?xs!Y=t}ZrSFR0;TZc0>d(AWH+;hCb+ zOYUyd=l|UW5Vh6Cp6b{>SHwv!wBV}1mY)KD$C=!j>2ae0eln+83 &qdaXKY8s*mdkA(9qF}PAp~HG z@c Jb7$01I=W8|hMUY}}N>))k+XU0BeA^Fsiu>_zQRegkFA0wy+>4&Cb zIf>R$%oj?LD$c#5WW_WZbFlc{CL7<_%G9fT=i8l}yZEp_+hoY7s2`Nij5FYY?K{$8 zN20FEA)@v(RFpO^Tf1@m2k)j$ 8{)=}tpfBox9Jb!p9QukKj_VtfHE5}iw`gL%y z8M$}&(qfed?po#7?SdxCe1xmTyxkTRxZ7EJ#Bs6e`tSca(&ApLf_Yz#?vt=Slww{q z?4^?Yg!tszT!LiUb!F99Wr4ENVA1ybJBxy6M|g5ifs~_^hi$4sE< d+R%TM5(;G z0!EXeGMSCyM|cO~fE0qQ*0aMY5r<$dv7YI+8vEo^?nbFx9*`{-L(IgUw4Ln9H;Tj% zy!PLaX(1{rsIB$`K3vS!`ORY+Xc3d~BWh$hAF0%nU0aX*5d~rnVs-p!xwt}ja%P)p zysY&R6KtUz*;YWNBEX& C7}H z+mndRdJI4<(}3|#1;IXh7AYZhQ)-moYIY7jc32a=K{(t#W3M$67fX1uCRpj)f=eAF z7GhNHqE%pOJNkX@;j9C@wjs j*Xb-R)1rL!{U$UHyt#JeFV;3yX|h{Nc#!CSO3v8e#*Jod3uX@bhHAK xIs`6|R-IxYU z#_ffjoFO1!3&sSgf8uD3Vq;D^=?21*_((gm1s>JV)92E6ag7DOg180Q;RYG81(x0B z+Pk8qFAB@y7%$?i8B7owlc6ykk6?nu+xbr|j-aKD4t#i+Vf53OVgEfPM$j+w!Oe@N z5tN(==h`<4iCgR%lPby^0Ho<@+*+GSxFJUdS&)-GI0>!#VdPHz$V0eX*_l6MJX>Hm z3UqAnF)mKJ)>>g`K*^Q)L=jS9+^(d5z=BiW?rSVrD>B)l&nEyN7N_`hol70XeI8?M zLS#W}$$iy8uk-}+Tw?O`5>cr>c0(3c1pH0X6-t5TWhJ(ho z-UfwzeRloz&n-vgqQB0Ref0VA?`8-KnYcRVV(9Cy_QBoH(k*Lz_NL_Af0Bso$j(wJ zB6pm7XAQR!vz9 y9V=pawDsFZ axynGmK6? zxc5-xI~#6-RIMK^zDUlv6iPWP` TD4)18#oN zY;Ipcc)%mx!F?tTQfANgHnJ|oxc`ddUxKgN)9u1(pgU0qRep;tGTlFfz42`h`0_`w zfmcWU0{~>rAB3oHiN$Vye(c2*lKt|B_F3u^G`@DmQEd6soqy#Ff|8gw-Ia9=5Z{HZ zDd|o3HhW*GUfkXSUYA@;Rye9hFeP6=Q<%xQcW8%Zcn-mMjI$#8NaU#TpD4NNd0p~L zcUVHOeFRACb5`tjoyP8`h5UQ%rZX{yTlHNS*a@$=N41ygdXsblUj}p6O$u1j=g P+c#brE zzX*(xwH2$8#yX2;KKCffFTVC|%llMNy(3k!nP=r%pJe{iILW*{q)gj_a>0Us0_6Gh za{HalOpz_U`R_Jn;j1-?2u?!SQ_#A?8W#cal%#lxL=Fukc`;HJ>F1%LcwGzODH0OX z2u6H^l_Z*9Y7Qe3jCoc%LlhR?I`YpBLgOj7d3hXB`2NFaWU;Ze4)b{$RsblD15iBG z_@KzKLG>dGJgLw*c?!TxftHIqGIn5+e(}-}1vF3Z( N#Qqkc|r7%0hW1>o5{SSt 08T4Jz^ zyFoFSX`w0`2KP?Cb+3Qh_4RI*%d~UzS5PBr{X@{iyBBMC!(BoT^llHbY`uAB%=FvG zJ6ZRjGU1bU@BcgRpoc#A50P?_d|Cs?d#=|i{tU<#eRe4Rz&?<*HbPHT{c3t_Jh(Of z7*$+9(e{L@lu&$a5%X23MtWPu>_mO+kU$()Q&!Vc`%KZZ?MCf|OeiY2i?lpbM2T)` znO;YGN@q&xi%n{UB|oZVdh2&Rdz1 i>p+SgcMO~3iYS?Pw>a@BGTw9gv&J9 z=hQ=S((23>U4*_9!JM-nmBoLlVJ}pIV93~)y&r;(X?oI?Bsw$YScn+LLCme+3tx7A zxGsb{05JXOIVjSTbp|9j92FPHpO# EvOoU52<}Do7$=2U9rtSFw&e& 7}L)L+j6V z+lN!L8>E*`KtJTChlo!D?pD&0^zoXU4Y#S41P@iP$OvE9m3!*+6YgzNAyT=#MCke- z>qaXX{Q7laDPzRxE5o8P0T?gMaR3W9?ap2yrfT$2It`cA5T43PQ6ay;D>WnTiv+xa zTnySk &ZJ3VGg7fG)f(z!`oD}z6(hh#kvW&4y?A0WNcgH_Xq);D&%uL( z{kR_^<*G0U8@F67(@wm{xQ|6&F=pK5;)6m}edw1evA{^WBMOQuZ#8aBGDUwbGWLU} zmA3;RiM-OZ#?I6NzjOq rXTLrP|yqS?0%Gy2sbn2W{Jiqg6YP?v!!NK;HsE z(TnMiEnltce%ZWvx$wWvE9(v!HDmO=TJI&uy^A7j?5E#`AOPq zQ;GG2v)%Pb=#^Y^6EGBqyr?u|7b8e4BmL--(~}WnG~UfIe(9wIh)crUlt6az4{JcM zlDx+eh+8b#eceHx>M{&j3wn!!a@e2Xziu`1?D` 3Qb;*@9Ibv?=BEL;YP+&ZxI*Lul zrtubhWeXv4tfCAwA(@Zp^aM?eo^!oDw`coL%Ub14s%pVt8dlCTA8Raa*3h3OXFP8T zJH_ F6}bJ~CbD H$0mIuR|7=&tAWJGu22Gmbs ce^qg@%10d zzU~ZqO=1Ft?Q?c|Odk$6`D^>*LDAz@$Nu}JMEQN0N0W5d!{bhf0kzh^W-i|;9p0#9 za*OA~L> 76z{*gL(526r?KeMn zdcUVoBh _qN`f+H3tVQS;eh+z*=S(Y;9rG_8-aFB72<;ytk#tyW&Li){tbj<04k zrXsqm w+T zKKjSS@d6rna>mwto>_*-0WsUvJx#pcp=hF(_I_PC{UBb7*X9G++T>h}_)3cYtm!@_ zLHK*=Yu!eSbY{oFr%46)Cvh Ak~Nb*vO>p4#XH3<{?QBZ*jiZ~x8BwT}sXE-Bd!9b0d@`&}H0 zyB>#BDysLrmH2=?w|^Z}@x6 `LW^IVxtz6moGlo4Q*Gwk@(Vq$C zLByIW#Y&3Ma)VZw#-~PfnMCmbuA%L^kXmj^5TASff~AnwCag?BAu}ZCp~%XCq*{Kf zQes3}^d|T&QQU)B+L8oY^= EV`gYDU3oZs^$CQFpgUp*m_4- z&fyrc)ukZ<@8EPYVz~rKz|m7<*ve~{?X}!W6mbo^++=9)D3{O!mY$|XkSFgdAwiZ$ zI4%2Q=yD4t42=kY=sQ- YK9|M5S&D_DE~VYV~} zyYj2nY%ZEQtQ0 (9$Qh`| zmYJsIw=ILayOhGU6o*}Q@xz^1o%jFsT&wviXKzm> zdkd8124!|Nohw)MKNs7=#RthxY@<}&H`)2NdfVX1dYS!_QL2Ba{+X#Jj-lHNRA-dI zWN=xA>@(@Gm+iVi$;p8QUiom7(v}3d?;;TTNe){>Oq)M<(0$B&rQ5(l=(QBPB2AH3 zBEA=M4iQg`B0?(3(+ZeltW=C@FbA2wNc_s7#D%v#Q@pZoKq50fP;4LZ0iUL$6@L1G zTZFSNrdoxm(kksrcBq)Sl*UXF=b<1lj(>Vg{Z)H20a)`V58xCUE9(VBFk}XRlO!XH zQ8m-kh#x7yvD0(i+1zt~m^?63kTW~v)t3}aw_#7o^HdgE<1i(<*o2&%{FzwGIYUG@ z8(>DauM9cF;nCzi6XHQ*p^oOYKkzp=`T#juwu +56pTOpNVu4F6HZ1W*FF}0zk=?EjsrNOa?-eqppOp^6#VFGw!wILFbj6X=A zb&=`ztyj4*TygB99eOJqbtwlBC$(;Z1%xTkGBE_`cD+5hr$AL>A=iL^;?@GCy&iL^ zk#rE7DaS{*=#GyX6!UB)>E|Sgtz;FWL;9ZS9^YHyJuZWVdMhDW>chc xb7Uc-=KLzif)&77wb_$GHg!5}~#);X33+kn@xE zJh-l9kxYmLexQPWlG_Z~r4|K*KouqQK+=xFV4BNG6`jff^&^a=@lJe!u Ds0qx%wM0F)$M+yYtUnc}
jo~4TJLxLl?P?=r6^{Q3E**)F}s=Df7Ucv#h5wHV=@Wj4bfnW=-0G|w78vo&i zyaMzZ8_2FdH8dIdt7$?9vGU;V_3OEPpdB$NJ>FO}7-sx-kNqBH_ge08-PWTqy@-M# zFTAnTFF6CoY KP+ gAkFu8^|#uOBWk~x6u*1)LNhuI dgJuMDkGI<&kdcntZ8QBdqxd(w@f 96*8^3I@om}Cc_MC*6r_7+t82*TxQ6w;9ZE>Sahi3?vdW|vNYJc z7rI&<#i_MJ`i?XB;IY%`CZ$43lG3@|euoiff_Mr#5Th_?Ar{MTfsF{+xE$`WF8!ZE z<$v?D`VdOmWA#Ovxqg398272gJMl(xN)uV%U4a(gT;N2uk7g3wcvMl%F(-0z^qj`; zRWFMSXqYe|=hl)8gHAGiOM;Mca|d8}k4o$%*F((>y2c<9Pei)cW@#MyZWc~b)EA9m z9*PLP#Deo%W%LJ?U`*A@7E`?^(48L_6)}l&etr5Q 0iC J0PH=WLOO7Q4HCarbjCKs z^Gc_Q_%-yPEK1@jNdqQz(7D2eWouulV)r)OSLObVL#=-_gHxpv!3p407tY(u>PEQB zpFz8HJGYtSoQTCYb(=e@vjvH!H~+C+98`$cOERawA|H^7Z8Lz4X4yAL6Z}$69&kcq z)1Fvs#U1#SZ+mk5?adU~HouFIP&E&kX_B~!a)9t0b^@iO>_{SOouEvjvEM}{G~d?S zj(CpbMFK~HM~I0qy)x)p^4? Pa}v}7o}^pY5zhDLUS7>`X3Go9MyuC_bfCMO*8N;5BtQipkJTr>Wh6w#%Rczsxd z^quB*{F-NreXca0e?kP8TsV$mD4g&>zoj0Gq^C6LL1`{vD8%dV(uuTkHKXthVK(vz zcz68F=wfzpZRvAyoaEYkjER5A&!on$+LX?o(S+N@8qHIE^&!Dng}I=5-Iu; mwC7Ag z>f%g7(`8vE){*L4@7T>RgN~pMGvcuvtm7pnE60@Cav+S`F1n5ox)=qQiALnLqf0Sd zV1$(Jh(AJ+a)kimpv;bhmg@2@`*lSSQ={rd1Ls79>(?X57u}d@AT(tlO+b-aeo+J) zk^)4IUG7tYFog*FhwPzkt_U>BskJ^SOvRnE--A!RMix)kvtZJ7S2FIQy$ndQFmjJ! z8q5BvWmvhI&@3i-=N(mN1z@&Xrc_FoU9j%vluu(b PZ zaKVvqImH0;pAALDjhpLX{F(f1$^7E1kI}z<*M=Swel{ ar@dc4gJHFrY*qCM9&LY{-~C};_4?}njlUrIQp5^9g^{iO$HjY<7lax-lYOxU zj0Y=8xq*Yh&0rCiRTZLg(*C`twI*oU7?pl TTU=Ammxjj> z*+(I%7tDVhVaQ@A-@Tu9TR&XmONs|={ywDNl;ZDM3KjRLR1sC)Ck2Q<$xGUqK~%nb zs+50Z!Pp0*AS2+Ph^eHKT>NRzAiMMnkuvQe=d`S!pM5DTwp#J7E-upmOd$-Os3;h; z)S8nz&=Kcs$DPqdNJ(qzV}Lvo_T0V%7zcYv#TT6@04pa;$E67Y94LA!HAYTNPuRN0 z8MW^5Y6u+B`6V)-fMd4K@AgeJon5^C= 15`Ok<>xo10pB5^@ z3NQ;u-^Yq~6xv?>ykx8R*i`YgW0_iw@!;?){LPxrSEWg&M1u!NPqDh=Zif%YzhnK! zdd~rAtlEtA-1g5tOI)pA_l5Ke$X_+?6YJl$8U)3=D~%q^zKFiNAy$)3@ca^p1#-an zyvRQL)i!gc;WziKv610YUd8q5fLj~wrv!Nl;j$%pUQW}OQybLVp}YR1j5Z)N>f4=> z8#N}qMSrUYPhA!8Lz0TkM?z2dP`X~Im*-TJtKFH_%3kdxrv&@**jJ0D`t^?58$XtI zu!k{};H7Xl?yrb&^txq< ZrH`E73tvu5U;( zGlu7L%Z)70WjgmY<#cE9(B+DjPg)Y0D@WDX)Vm9D6?Uo?Aqa$UXtHG w7cuyBJ-G17V|aMvMt7s7 z*82Fz@N||XCBkWA+{og3^X;xjvp=hL3YU{k$!2GM+lfRly3Hze>U4{D4IH{Zu0UpY z3yePq7Rq;*eLvN-G0u8D(eIaITFS}IF+zShKQr_@Q+@_uc;<`=8f f%jUxc*1!6)cPRW(VAseZ0X)xbj^Lg`zF zD)na!*-4G!sL<4G^YAl_GdT*YK^2&jjt*MbysO4FJj9B4S!HJmkgznm`g)biL{FOl z5BJD?{JT$P+;hsg SZ?-cEh&1&fg9r+oZerVj%`cqJ%h z`+y`xxd$GN{a<3G@p-WXs2Y%QCbX@zVM@u7u=!NCkCGA@I02K UT%pAIr7i7$R z1mrtAg`RcqDc8`y-|j3|&k!$OAZfe#aXL-h ^T$F`rI`gRdU;?}TT KSzz;MyL9xrFk_{;@SPSXikvSlIf>8Brb3IQmhGVyo8E2DBv~i2eJA827qWu| z<##Q3Q-DM4FA~=byrb2x%R-umggYjilD_XPx!0$%)D}GD8Z_9R>1+0zR`fo8u!eTN z>3ywZHV_b*OPHMh)6*-Pgi-=5-5A7%^{WMbqv~30JkSgeA-V##hPghel9KQ$ kYrzvTBH0BXoJ_2rfnZ3e -Q6+5 zr=jcuclTvM_Kw@K!%JZh{S&BbH$;=_^xf=+MC~RjzI0GJt5IJPFfcUSQ2UG{`n2Nh zGw;!8!?S0y=)6K_?CE(1(N6gU%VYpLvAVGd#LY)y%&Tw(<1hu-(u&Jz09u`Fwv( z=THGfDlwQG2;;rRd{W +`={ z`UFYivRhDUm6$e34trMIIfNxD+UU10K#RKc;d nv+=qLQ DKbl;SH_d?rK|2G#%_6jc9pyo5bX9r_F@W+bDTwfrr<^}JhJBHQ{ z{V+4tU%zT|aI!k(?r&^A3-IVgey|RraLh2#p7auzv{{_3Wb(8T)9Tul0y3+$z}Mq@ zR!)9oQ%~Tgu6zg&feHc=l$2)9R}6Pdj~3XNzhAGIy1xBkzC8p+xM-4TIX->PVOcW< z-B~yf)ey`@#E-1l6a_W1C1f@zrH)ZLFU`Z4FXlHAFOmXoOw54RL$k*cQlrC!^oJn8 zPW#gd_ZfNF=Jf)gF$&hvqBa+j4B;t6&{tk}zr51qb0W&Fmqm)n`9aK99BG&zM2@^4 zFJ)ljU28-9%^Mrk?I*8u(94KEvU-@HmBne^T`5j8*_nMLnHFCh^B%oCT?8`zk$JPP z02@_(z-x}B5}XzkCb76gBk=huU4V#s-ece4T#|1F$?!Cqh}Y?k%1F#C7<+E>7-4T5 zPlJCDg|IQ?!2KVp$CRgYF+@lhVeyQ!L0_fswW5l013X*-orkBQxZ-AL$#qFyYg?&^ zq^a>;hvAUY;yZ6wLlR^chmoyEwdO(yvg;dnh5AF^BiR3yrGF|2+0r27Q;K?apCJFE z*1Gw<;ElnJ?Ch_ oB{>|rpx1=u~0UCUJI%J z+{knj*ms72*7?DFKBh2s{_FV%H`_~xn(n}wq{^&JnT88z3Of8tDZXj}gAGv|%lB$c z*2Bt@NHIfbYr}}o4=+lmH#MfdvN{Lyf&6tZ&)Q#<*jZ!PjI7PQIbt_#x-~&k`YxZ8 zbjRT&P{Rh!rl$fw8bSgrXvd1suY&S6N?vb}r12iW<04^eZ###HLyZ>)9n~ h(UA3Y#N(sK-|AW{=I!Hl9yFI@ITo>!Y;R2sg|#)C-xs%3BrGKtF4ulh(o> z_um)#zV>+fI*rR0FaP1lA0na@)qn2=-Du`&^#!!L&I`vpU%^u#*`BQj;pomd=8b7F znK0H}M{V8Boz~@T+D;{hIr_!6eg1O03PAC1_Z7C$Ls_&CAB1_02)^+zzj5k&1J!9c zb<23DZZm|Dp3^2KUBn6l*5$QGr+sICsS&(%EnvI$4&nPmH=fK-Wd#L~PKPYdbbhHC zo7EJw*jUaxIhwp!?i)s~Ussv; k?cCKX%E;aLp{wqi^D!>6Pm;%V);PdF$4lvfz7woU=&@USX^h4=Z zBe5Pq;YFh%4vePvr`>3QWEI)Dp;Km+ZQmyhA(>g0@Js_}Wt-FvH>j{#kZB+bp WThiq=5 zu*OSuRs{4yzLskPNGDWMpSC0)Gs8`g#onGBHv9(9(t98ah`?R#3;7(EqKH>Co#|Zj zLfkrxo!Owt;yMXtup9aKi#v*f oR_}IyMG{3VORt-;f!1SWR&fsUT|e%eQfutx{`r^Hf%R!sl98#5X8A! z>4D@@e?8P}{yo{Xr6ah!d;7z!|Fx0Zq&QZP#NB+O{OhS^J%?$fR|oA^deyJcXzG`p z=uHmINm)IrCV{Xx7+(Gaj7ahFdL8F!Q_h B+- zbWq8sI?=T0Vb|a{J+e7Sm$%**%md{{l~-;8)qz^|XJS92lSV|{Rz9guIBRBLfay<< z&4RK9s;x$z#7`bmO8ujGBU!Q;{di;5?scjm4)r<5v@){#N|uE0=zlaU0vX5=Fy8)B z-a~nYpp_~)zD!H9ds|u<9< O9^nymNd6kYIfw#4^!sxDkZ}y)aRG5q2pf{Ah$wqKQO9QNE!nZY z$X+)NVR}f j#)cvP04`yd2)&66 zhtOV(#10^ J;7WX1nm zi~eLdTY7SMS>}y_a7Hc#w4B5=1cu}=6w&etGe0QhtT>~$b3Ih6$;Q$>6(M=}J}X32 z_%dy847~^LaoepL4>b|Go5)9_gnJ8ojA?`_@d5e^U8C?M1h%gxA~pE;Y=#lP {#94=aUmD(_ zf)3pan3xr M) zGg%b{19$tg> mZ(58?U~ZdZQ+THKt$|pt80xJ@P(h!zbOXm;86xH0MdXQpBd7 zNr&l7d~rp-foGRNsggmTPq 6a{)=hB9P=i? zy;fo+sv4l#9T2PC7pGFi$$HT)>gGMeKxXOUwF!5OpG|k$$#c-ho9Q-CrMKwTBe S*qddwUd{AC671Wc8r+5A2B=PzA+ryNt)F0vR_{#N>oL925o!`jEU^{mBo*V z1NGet&fQpobg=-xcc8fRJw~(tV-xs^272A8tcj}3vDmRAfoJ@}M!{q70JJwg0Pi;) zNGr4Q!uyNlrs|mF--Mkx`dM(kq@QtRdT4!5wI$Oq745Te!6p;bb2Qc50Tx^t@aGu4 zx*Z3rUOf|Vh9m*hcR7=aMzYAcVQa&sRpzl)1#?YDPl>`t9XVW|>07C3rCBlmX|g3s z%eC!+HZ?XWR0yVzSZvAz_ybYikYG>4?|$^md75k6Fluf1RE6i4ckwq!g5sE+jo)uP z*9@EKx=LX`s&7hKtjrYjWKtmoNfA9d5L_zEL2g;zeVCiI8B%qsy^=95T=P(L>*1#S zp42N2mdt4z^XC}W-xYa(@Tcq@QLU+^UVN1@mZ)r$yp%WnqCIH|vri4pSKtJspp7qk zG=p*r>S~%&wKZ@*J={25W+ptEss{OO$;2CqL$B#L=Y*YcH^nwh$(39w=jOg->5UnU zIG_IO&rR@-0lU1CRlUFs734U58qjDY!|Q)M{Zzwv-T0}@G|sB$r6Qaqx;y+P`CH!m z#{lM!X>+&x#RbgKtJ$7M&0<0|9DBU6MIYdOg8DgpP>rhW!hHwJb5~p|J0l#w(-sI9 z1QbQi?X19BX57V!0I-rJ5?ls765a*HtqaIyFnFKEMfiv1eUOSG2RGxcV`=n5`J3mP zJKb&%*#6}_DCZMK@67JAGwcF1)+-Kf7}nm#4W-?2;lsGvO6#}zX8;EIWVxu8dH14% zPBYqz3GNr&_ENPlrn;}BsM`bC;)oHnOP|}^w?PfB7P0g^BdEgMjjVZ^VPk|l(`V4! zgDM1Ni)iC6U@o$=5i4A$qaE=Ke~~8&$k)rDHeriIHdJ&yIGNH;o z8u6C)w>R{lOYv<6?Yc4KTu}Q=4*?{2H}HR0{~z?@t0`iTW?9u;Khqexy >8yhe}rZ YsJd#Kzg(96-uRwNS$`A_PBx3HzrCjk=v3cO(an{u0BpNTvle57eeOBJi+ z!t-Q5={KyIH~;BTT7iwoyO9S@c&(sU0&RMY+|b8D2I5jL$*Y9~_P!O*PckY%H?(JZ z7`7Amtea|-zw6={csX9t+`&tHBMqMwy@VJCLrl?~;p<;2)pL3_k~NB4f_PTLAxWL; z#oEnuvAQ`kC3 ^-yY@?1)~V$eB8A&k2E?nIEU#p!H$yyp8= zzG_z(_dUXKs>ZJG$>K!jUXR;tUAmCD9~xor*(E8Or z! #+eB_Gey!AU0+eQ(IZrfd%oPpaoL{i@IJvvl zU1x4SqVqql0lAArBE~L!NDG;H$<{_dOd)nasU9fM90IqI?)4c_A0%IS=V&k8)=&C; zj?y{2=X8~d{YdHO8ucfo$-jsv%F2C3{M8B=>A=#SQU`s-{J*gNLw@czy*`P$!Jf|` z$p?q&IEAL3Nap3o|{|SkB5K@T$v(jJTo#kye8;2x2}dJM{|Vr >yip{OaP5@NG0YT-969(`bq>6FBi<;=|I%9mAR_+8p!-S-JUW~9TS%|poJLdA;5E^xU01e;3a(D#wcsC1 a%P zXx{EvekR-el4R)}H48KfX#YCOz1KU#yiCA_sA%NXg?EBfu7cP%Z3>o)=ACbGD^79V z+*vk$q>Eu${HB$~$==f_ynVH%9K$IJYVOR(z9|~gidkh%Pa1v=CEOiZ{UN{Xnd5}; zzvX{6qBgn>9~dmrRSwPRh?buX)tZc`ogrx(?sxW7F7siL9qr9iinZPHSE8ma6b?88 z0v?b8dF8A(u93jEc;Q4(afIMOd$iuvCxsZvb(Zew 3 z@CwnPOJDZH)YsUJ%)hBYwhHn8PYH3e&X^E#o8v-ebm;9?>B-euMSy7WcDT8R=p>oU zQr2|`6bsW~OGokhkjM5bm7Vge@fyR32R6<4EK9uPH~ON2d&hk$xH?iKJvm)xgE^HB zv`;d2N}roj%l;eDJvWnIX|hh~vR}f0vTcOz572jcUsWGqGYU|>fz&T!Y#7)-2G!0; z^>TxB!bYEX^~~Rc{2%W4N0SM!)YE(Q)#>Ap)yb2=IZ>E~h1$MHA2-*0yB;r1&YB Kii!qI+d1_z{$nF?tM&{s%0myz3CLS6ADsf(j#jkp)yxkGxHrnrx~Z!_ z2B$rki=DI1Q $FIC*T=oO zj-yEFvOG^NTf!)y6K>A$=`_Ltf$$#K#sz76bO2#{NQNVj EVx}g|IqbNf6L0Qj8+u&} zyHVn9^D3VCZTGfi_UJ~x%4`l$<8ct+j^%M (I@l?i =N)Y+Zu5Nb|6!t1WqX7wZ5o$HZiyAvG-xHr=&aEawV!d3(;vlGa#NR1kl z`Q|Xn=(}&rDfiIuFlhH25>u)xiN7SsDG8SJ39V$!f_mX18&TfHH}Dn(ykpQ+=FPsE zobOp`!9DO^gWxxovV3}B_~=bdi`mp> YoE$N&j|7jci&&2Ad18Oy|aNnO7tu`<2 z{tnvPpZl!dnAg|9%se#upSkqUG!fwY$uT;rk1p!vOvi<8jj;Mn2N@b=o32`nX88|S z-iLfoP6WJiC(`n0n)RhnVQr7%`o&(;R71$+%sU7P-yAPBFC(d`KVBoZ-buZd%F8G` zd?DE~^9Bdw@x$});7kp~A4KVhM?hhK8sLm(Yk^bIl^3m~Sfy)g$QH$>_E&zcd8O7& z;@^1oOWwyc-6aoq)LNUX3!<|DRg>M(RV_(xCBmgChm;a`CLcIREs?v(ZXCxgglsMu zfSWg63+{MksuF>28!#gu9i%Xj12z-oUTno=>}#p~V`ZK#O7)}56&)fCK!k!OCk7I{ zT&_R>OMa6nXCJ0?zK|RyQi6HWy-#dv6THXx3CaKv?`m{3fFQ|xs!Y5pIsBVXPr;!4 zzGtD=inSGl491EOOs1BH5+b-5U|Dq#6xQ3S-}|tjRM`f!(s;$v{jAGw-7z=5iICgw zm-YG^U0=_lMz^QbBuHP{gmPC@;VJ4_y&3mgDO_6oG33hcY0hk1!C->1=11jm?k(e- zBmCLOrn(V!yQcnVPmli^<%n1&_srsb;IOC)f1c6u@}>AvYoBcWH%3f?WoS-#t-P}A zYN??*cawTB(A3^g?`Fi@nXV6dZ2o3Psm@%7H&^BJTE2+7w2|Co^N*3T()mk$#sBF7 z;9%a_Al7krE0uvFqUApLR}xC&BtDVO3g zC$j>-qjmM$(vXp=nunAo=3XkN%>}Rl#<^1Ht^zGIe9qEnx!kE-E^KYlI!_{t$yDF& zphmb(l5`64UlAznrdGI7UV> )*?hd1ug zw9QeiT+` W%JGq;74bw6%|qO2}Ds2Yq|VT!GLh^1gT0ke2nF939{dcACyuz z<>a&M2)SI}#ea_h4^e|ONl6`d+uCnXxpVtIKlFR|$veg$v(7k_?2oP=kv90zII Z(+^R(b0hl9?|RF z`8P@Jv4gEi?g#Av&$6KRxPJLalMKaFKsm7l9>n9ElptRrzW`tSCOQUI2OD@ghx9Up zp95$D+TshE%Cz4~l`Y0Fx=|L78K&YEA9f+auHH%6JQuU*zY~LB>U@G;>}ahPR_0@@ zB|rwSo`90UO_-Y09&f~PsLy=p>J|VPT7xY&%WW`Gu+q9I{f+mrGrIw$kcm%s88T?# zdon*i^Yu&hYk9!RK#oe!B*|pmpBJ;L`NVYV75wNZK2ISUTfm!Hg*XnkcRp(nmdN_n z?m|R-PphM>-xqrBi~E=tLcEyH3970#oV|I3$r~FU0EuuNAsd)@hE$o?Ut%ZJR$Un# zZ*bOW5|V!B?D_SvE**k*)hJ@}fqU|vpO)}IJ@mtaz$#WDb|Nk 9{jEM-yNmIe{y=>P z6K@A(kQRqCemEr{0+DuWIZ%g~i$J-#n@A2QnNs#w>*9r-zAb(4FYiCb2V*QP5@R=D zR%Hok- cwWVH(aLrVg>7$^1cHCGaDjHBFj*g#hfCtUUQwf3oIdAYPr3_K` zCK+@K^9#A|bQe$#PBjzOVTx|*_L1_6@I7Fr^cvNy6O(VER(n*)#*|M$Vt>MlcPG66 zBPoJ~1_FicHP#C`Va=f-A-lC3=OVOsnxEOE(Z1UEe%YPhpWIvEd=yhZTLxcF+c8Ry z{pU&c&zK47X-R&tRewU};f3lb%H{`6qwmAFRuwfeeP|~j)-*|fm|)E#>^bZa%lp3f zEAKxT6`qO(tuB *mK`;t0;H$`27hp>P{GM%qI~!sb|c+ zwk)XeqWo_&9PvM7XEm2Xhv 3+xb*39H>Un7K4rqquROSaBq6;J_Gbgp}2zG)=yY zd2B_|_5CH&pWXW$wMp&1o0DuyH6MlRVwe=7x@JMYBU%4}Pq>j`udd%+v4G* scCXsb1ka4mCGuuF5+tAF@V?vzequ7f8~A-CSJ!sM<506uokXgV=^NR zQRv#8KDX>*Xu9BbQzgyzYNQ38$35|5JIR2A;R?ETi?x~}LLs3TsQ}u-{huvotoXG$ zpN|FtnlC0Nwi-$KYq&pIII_Q%`clYBSO(krm*T`3@$+lCbR`A*)irWj*GyM3SP}VT zK>^=mO|qh6Oggio5qQkAtkVUU`~GZS!%eDF4d`wYT}MEON%jLjWbqtx4H`78d!bUR z&QRvLP_#%j)WAmTcr~4iNgDX`)85ekr@A^Xge-HTIA*?l+uEIHy}boK+ z`N zKXxITo3nnbzg<`|NoK6x14sUc2xf?i`nv?Xdiz8=Mk9qh{0rZ{xcJI?uDqv;F?3o! z&-%6BtB_fHtyozGI>_4qdbi==JIzIa9tV7uMbutGD=xcv{GPw;B=+%xX&R#BVsiKv zhH;7{5uHCY`C$6zx6X-JaZ{t7)+YeXaKPOySRIVxTy+jc?=`@I-5DpwuWxl2NdcTB z(ZwD9voR8P6Q@jHn +d{ui%$t!; zg2*9jy~?(jmS3Cm&t=UGrq6EeDOo+ew7U4T0JuKlb|zeBU(30x8#}RmZsCl6vT~m3 z13-FS*YN#^X>yv(qYrY9RGpSs>8V3rH=>?wVkiEiL{C>4#M@D95 3h*n9O)bEWCro$Gm$wiEgC`;+iJOk~lJ&EbPINB)KQ@3#n znbhRZqCfamIqREfu$V9UGr+xaQ!E@W8j4%cN(X6526P`18)tuV%Crl#loj8ZeFV(( zx}3DkmT6|XbQz4VebVu*xhuh9yfW_()kyW<_$>&x( 2teq~|Hw<%wRTOYDO8jE<1+t@|nZ_Y>rFDB17?td}=c*mEA{kcEv@M4wq?mt6= z^e@rf5q$t^g+AVx@lMK#f*dM{e~x%p4G_?~KHYRo7|J4VAoeCz1z?={7vOZWPst#5 zDr9lQy%O*m3NaTkq@4hWBSZmtXca~;YXqFj_LyQkx=%2>btO-r! v3T7?ZrnTh(92K(ZGf#mlF>(UdNyEA)ZbbmE`@dhFxbI zuMdH>OUYD}Z_GGMl*cEC+Kqv!;8#;~?J`px%0_;l=Pk8F)%M!YS#jo+Rk$bRGUFXe z`$F`O6UZ*#+NF%>V;86~RKsxmjK%!8K{NRbb`D& ojW=<&Vm!oVGNZz!|(<4WUstL4BO%09f72cCPSL^d$ zc;5P#-9MXN?kz?VCqakT*QbIb2I-aag)$>e0=x#9i!^lbe_=EdZ#!pU(&v8)=)2IH zEV+5wEXOVI)CWxQ<~s{ao?>_vfvVL~YVgEu-2agr&Mils@Z~&ma(sHlObz3jZMpqN zm%25d1CZEdcC6l42_|$wMMKoIR}AIwN1Xslz#mxUplv6t_teWAW>)z3mqCsXyBMGv z1FcbBFQp&}r&JpTjkJ^;Zln)O 7NSY-mRaV=-W ze~hw^Hn3*>%N2|WyGw34;dntR3`15LK i?!O5xw*PsJ2I8!bg2xsa(FDki zO(EtGvxy#H8L}+iZ8G0d?C<%$vOB2Jds;}6C#fhZRp(czGbQTU))kjaTBgyaBny8{ zgzNdWFHe7j9)R4s_gU1rH gRuiD9BX3p_xU<%Kc%u9@{1`r)M>Pcg zoNd2CQXB~#7A&d|<~qe51N!BL3uqq@`JI=!At~mt`@pZo0o(<`6bOWC=xf+Wa5Jwq z8m{nm8SCEdmv?Ks*nIo0uf3gLp*%l7;~cEv@xd`cU+j#j&!(Eh%0Zaq!o8{CO!&l` zbEOuTKklB#E)c+PkHP$0vjru{V;bG&UfJsR82&^p+Kq|Ii?W0j>k?EY=diJX0G0Y4 zD?|+F!?}W84EBq|53|4=C2?L9M6OBJ6pw3)i#E2E{MKEl6O1#OO>2@n%|5q|Yif13 zFc2>7etgVg;87sFm4Fmggts0GX|P_*G~^HIGoRQ;iz;y=3Esg}rOa7!jyz1ywPc>r zDA=ttqkx?B|JbC!b5cI H9>lI zYwzI=3p)~GLW8~VV!++`jET4~m*E^;9LAZ`@cmV3;+ugwYsL>|rXyWfpdNueTo#7o z$c$tA9Ad+C8O%&+0jJRZR&ox6_nU8@%?XDIBK 53{GA_ML)8%%-X7qaUY$Dn}Us;zD5o|8=HZaG5F4((qyyav(#~_V&g+ z;zHh7_zQu?-ft-(+xbj=ikpG$-&}llP8}XD*{D7A@8eOfBr59bQnULbEb|)R9!;2- zsqI?Hpv+R7-pdcO1r1!keSTE?ebi>v>iDO@7bB-(WlpaSn)G+x82a0!7hDhf3`<7u z_FE%i=oipJ?Z8Ujdrg6n_<|tVI%=W+^?kwg 4)9fe%PygKhZ!A0Jc5 z6PK*ntfa7QN1%Z1T8}=cL!JwcGUg}92<#C?(1Lv4wyA+Jdge(3cV@mUpfNuN!g^XS zYhP{_q3uk4x31bcZu(RK^tH);w)^`?lWxZ=&38A5a=6yB&oPI@fbDsACsCF22OhjN z(L;l=$f*_r_ QA%k)Qy(F7euWT@^Y}O~`hdl_sikYB6<}!Pb-wmPtPYf#G$88l z>bJuCeShVOLBL484%v|8oFv1$(aR71(7kKo*LoOayb_ -59W><=D0K@S$Kq&e3lfI^lv z^V3_M&9=H+8uG7|C+fQG^Krg=o0oFrV0K#zT(Ms3h`dLbkVeZ;}ojC;#bNG-A zld&M8xWfX};M6|#Hp@AmKb{b{O+sZcwVulC1o(A+h>F;odEXC`14^bUtOj75k_-b2 zV!4=s>K_EEq4C;j#l5yO#%qIDe2Oz4fQ}fC`qPraU>(vp{tyY3KCw70J#ZVBicARC zq_m3LDQxP`cQn-S&X^HYQRtb^4Z0kuhr4*Rpos{WhMLe_+B}obof!&u{zF3Q!+$d_ zg5!eJ(%6pFT=12%-=oCD`i(S?r_pd$8N5vY-mT6=h^Zwl;NP6D=(8v%AJMeB8y_xK z9j<~`RSYHid*`9^ytI~y7YMQWv5B!ytJR?CXuTob&yGX%LFtNP-}7H0UL)SbW+H;| zfs+lUF|;DUI}?-GQor4=)nkYv_veaQ5Fi%q0YjlZ);C=g&~#~i`k;2Nu=Q4qG2$!% zP@&k>(sH3nq<(`;Q?xTNr*zr0cs{fqYr%RL#Yd@s=&lui02{@4nZ}Ke57s=Ijs=gg zNrRt$2a$_3hMXjPw&_7Zz6cfUX$yjZS7+ Tm6(FAr(i0qhV>&y=l3`8@?8+kDG| z*RaZp2(u>dA3d83kw=U@9b+7Pp$Ug9V@;#vb;!NWZetnQ?H{X!)S@S~b?FM~JDhgK z{Y}+ CqFMGh~KdRn@s7t<=TC4JiM>*({bFzZ7`{JAs*3~ zPp+MmnL55V)wVv?C1OrHi8n-Q%-%|LzOl;UOuUuhd+4?)O*^+8fpY~~GN?Lzp|4KJ z3~VBt$xo%efew@)uljs;tO6#$KX9$ASkNq|J6*w#2r3T!Ous7 S#2*H2_1xK`1(M5ey|Ht!_9d-HpuoGEzDo>TC8fij^OwVvqh@zyuQ=SK!Lu@D zbq6thQ6$$ZN|2aooOu?#RH^&`SQi{;S+gmZi%E|b S2pAK$VfXAvP%q ajz1J@9D`&aINevItW9K% zgnC3k_Pjp)RF}GbMxIy%%jwajlDgQa#H# @q2*NF>R;Q=;>bEyJ zDP@gidr=Ke0Ylex{%saHDkTVRvE#m+dPK`tL!1E|&oo9TAgQe3SbbleFQUKzz#RYt zavO4yL;e#M{|#N^eFA#VTVrxuJG4GUG%R50%hS(J4is}2g5|ciEi_d-Z<6xnFe br?F}7i@$skb25%t2&cSvS9tN-ZhWY<)qeRU1-wMn-H@x!~UhM-eg3rj+FP0 zNz{`!A$>`#Y=IW0GIIK8v#^YXV}4%BrMr|wRZUOr5d9R8blWmmP<__-JY+Ktq1JF^ z%~40XC$m$x9^>YpYg=JvR55EBO|$wXI3ZOI4oJg!V!eD4#u_BGFFTH&O0nXl`ui;= zn)_|ZcY*V`qnJ*4JC5$dTWV13vZpgjyX|9+alWvYzE`Y4E*Cc3SG$;F!+VurR#yX? z!L%HxU)_D6qCRctXuaIj{pzFWg0W>#gw@<;h~0d65zDn~nXsen$rKmYY$@IAP (QVBob|1N zxpG#E-HKVilahKth-r7xYE&ukXXGUl$!RZwL&d$Z!dO+`Z=5q~aDSSbbuiSY!zWwD zuTW&*N$AOHvYUj_J#8GLOGKYjQk#Wq8J1I!szS0wiW pI6%G$CS@^H-g1UPDYyxD!Fg{H|si&Snr?{4#~N8$O;@l_G;9U@AR8;!u780 z`QmgXUtLmlsr}NHc@n7NK2;MQZHMnz16yq#%5zHc#*QxO(Lq5tFzewsI0R2UBbD`i zpuPYUz1Rn~Gbz#I9zmkt>g&a4qf5o2krx^>3aDy(sX`MoDG>t);r?^&DPd#%0e&Kc zfnla0d~q5YhL-%+o|82wp^*8_39G6WT1r(7-`s>46^8)(C})~5Xy67;xSqcJf1q}$ zRL$(vYA+z6xf0dt5ZSKU%X*Gdvc0u8@>J*NFAY$M|2&lR|9L0{|6P{ic*`@dFvOYi z?&Zshg100@jc_zAzw?>t3&jI6zSUkAvi r-#%B$-yI^8@D=si=_2 zAHOCD-*k?;KM#jkoo7KI#e+JaXq|LuB(#bfGyQ3%r}NHMPwZ%B-`vNtGy!%mx+s{3 zOB9!u6~G0=FAy&*thImYNldOc@z5TlO=`E)$$elv2Yi*yez_bkhNqv*4bg; MtrO=sE`z9myfevkcIq *C@k5V+%naVp#G)e$~ dCk_Vz>Q#Bz+~RS^JCL05KwS2%k}I& zqv8z;sJhWq5D>T{Adjs^LQ{S34afXA-W=MJCz;(b3swYxt6t4M1_2PbCs9KnbM|8` z0`i#ps6i3euREDPD=qxJ%_wPD*%(uvAOh>o$jbwA??P67G2+KxRPAY$W3{xT>9%*~ z1kyWNKTtwwcMQ7g$v3*ziVimQ8*KHFkrB3oR{g=T+Kz^#6|*UNj0nDoMrm!XJ1WHI zd{ndVZtE1`ms6JrS}P b; %F?opD-OSdz{%woT|UuyE9ws27*WWm7HE> S(4r=
Pf1~_4?GHQ1Ma1b$Q^;);Gpi^6ikp_FN1;I7W;15KT=UAJ ze@g9nP~i3H6A^(#SnI8g7k?S13K+EypACAmgyRs!if6;VHN-C&IT$;dWL5v}bd5^Y z%SC%?e|bbvvfrEq2~V`D3EcPdU92yVG-h!{X6(6$DOaf3bf-QI3^?j5SC?$~qe(ek zMUdXkKNkx@{EGC)CNyiS_EGbC%#w) JJUy8g>pRDjJ-<2KSt>1Vv zSyNI(fj$$1A5+-(q8^3VGfls~6AFP2E2(v`R*n0paptvR&2oPiB8^qbljIswUnUo6 zPc4W{b2YemR6@-NdGWYxR@+rMpXvGp1>Vqa&O+|n!>4^VlQ#^+-kNL$G;9{Tb7Kaq zi9>{uEGk8j)lF4bt7`pFc4e^UZW;HwP$@63Ky!(Qw92OT#Y&dU%33tUk2L7oZ7JB} znZJP6-W@~M;mQ$m`=g1&XReVy;e409rcXs{ZA#5Xs&Y8XGt-ScddcsT5f2X%;z!^+ zIa;;X@LU&Cj@BAyK~J;C_*#Hn0c?VLz|!lHcO} DmKSmS{r_;;5l z1!XYCtFC0E8Li@sxHP%T+;v$Xyw~-w={t)=Bys%|C8pm>1ozoUB+w_fuEaL(@oSX2 z)MZ8e119thHrC*&a(bo9wc<*+b>6X}S*=py|5vyL?vIRv`~CQtFAtunPVW1zo4eTT z?4L^O$C>d~_u0hrp|^bpn$%}e_x>kI@Bc64kX#5jnt3tP03Z#3Lhk#+3ioEQCAF{K zI=i5TJjFb2c?@~n^6IY=PKk{NyaK#d%mow(KW>$UgbZ~n>Ju+OwzQS#0(OXw{y6&? zy?HlxBkoNvNQ#5;(zw5KSJN15@Xh-+)Y1DXV{S+ weP-?mzAe+v9QqrKZ5{B1&MHxhKAw>UMSSu_X+o z46y19P>-CAyMCFb?UrqdrCR>#C296- R+!1(^cbpPiux7AmrS3+yLs>iNhO+<5)tb*?<&1tu* z8L!-yDFRiUavuY~0P^E9Mb+BPJGb5f7q0zeXXxZ>Df#SWFFXW%XIi&VLM7Mmx{gU| z4&*lQkOu1MJDEy$CAGRbV5_*5d0!?pb~w@Yj6Ls(I{fPVGY82LX`7Xe592;XzKy7( zTdf5RHqn;;;^NyKe@qYMBZ|Iv8QXA=XX?_ss?s;ta%2Ydvqp!r(;X?L`NN70UIg{& z5+8fqTNl`p)Y_-ku`i{vM1+j2?oz8LsKM1qV<4AGcFIO@2IWyX#v#|TGYcfb*1nY~ zIq)U>(cSV8pfrc7B&S |@#tN{lkRGFbbX~s5Xk)_@tAb7WyCTNS1!(Xx&-Spy;9}Y}u5<5og_V=W0kh@8 z#t@B`jj8)9ihF;Ui5v4nf^2&=WfVB*H||Tn7U&i)L|*D+ktoH3nsVrjMFna2kOIn{ z*t%dH&A2!~zVG{AVOwBIcb}o?gx5{%w0uU|PxMlX#tg2j=~|_-}X1-ARfh#jCJbvI%U8?9Gt$dd^fefLPLWXqLoN=V4W* zU^R5`EqdoT {vp#I1PW zRoEW+l5=J22z`Ns1`ENeTU!X}7_EO;{<^WgA&j$xk*~TJ*29Ab^`|Kt%*Cn$PB(ap zdw%e|dIksy)n%MX_RmCR2G9=qetbMGe-{OI$CudMA|^@BjK;N`beJ1 Xm?QeYxvQ3y|K(ANiVyowhnhQP zqqjg@OaEA4*eLy`i1Q|YQ+{U!hB#GGba<6X+j^s^lpE}xoAZULD(Cs@;Mf`=K^-8! zJvr~tKk{2?xM{aU1e;RC+OmFG+DF<-tW*G=_lofzs9fx@YVlz8s>{yaR&c)F?DaS& zbnpT}V80tEYq|v*<+)g`Z(W0vt`J+$*$6t1nzD!}iOU4)C$+QsM5N$V!i2>U`j?VL ze_=BWBzPv-!GIbSHt;*IZ)lcUSL3%3*=69s>5-KN*13{Q&X?wP4wuxk5^@6lx|+h$ zvr0&T&wa;& 4@a7B1#G$+!H<&ey)x;qastRkgKVq* z8`bD+F?M%cHhJ*8Iek}YKiEl*%v(V?sAyRP2Zk&hUfeJ#1V8=PKw(e(EA%({KonI; z|Md%#kv@KE`~pgaan_3|FbOVwdHuudfF9HPfVZ%>uJ<3_k7=I2(sjqL+l&QQ!bhHb zj eoE4dYGn+T^s7FgjdOrT;PndJqxn$LXaBt z2`|0Mg-_SC({x(76l)0z7m$grh#QcWt9T=CmL``Kf5( x VRq0pAV ;a ?{Qa!ABK`q%49)i&_m){e4}@Pn` jl6Q zpxD?zk<7Upc{p+cU}v^13-#S3RtBHdk)ul!YzQ1<^*mClTf3Lgw0PMfRT*i*57>hL zDZAa5K#+#ShOMGAlS{bo{xVMWCo1c9bmUOr+y6(AP?DlI1m5BeXieYQZ{+tp3*T68 zw%?WO?c3>7od>P|tXK^PIhhRq3pnHm@b%XEyB+9J*u$xop@8@Bz>?aRH(sZB4tXe` zrdT&kE>k-dCxu7cZ;B~F5Rlun)0ux0PxwlGw#>Uqx$K{+{sWc@dl7&>3nglMa1~Lv zR{KO8z?U>?Efk*m(&Q1+zSdt(B}9e$dj@%)U@&b4OfwS|Weix}ojom GgQp zP@4JK0AvaF=0dfLy1V6)HXoTaVZ3DqVg=?5?jM5BxqE9-qqs-PZWR}!1shK2+yLlI zTwm>yYgZ^5ZGYjJ_2VJH{sZH1Sr194)# G{_(H~|1sl+tua zA95#QW8t}~fA6$lD<{$I@;*cFo%HwaN7yy);mI`9Z+MzLpw+!aWt#oiOoe;6Y~}Cb z9Hn%Ty8QfmOEwD0619$II9-fyp-3ejLru~_FY69B>ooFC`huV1X6%7|n |TB1D< z*ih3hI@ooeNfZ{HJB73hXRBHafN;!__X@$7JPSHWJ@DgmGSdd%CUp(`p4qYfHH0&F z0%RO8a*K>Dr?kq-HWF2K;%`j2iXDNhQR9?xp^B3QR}vM@<0{VF9e^~<9#-V6h2l$Q zo!8Rsb4-Jb9|?>ZD4Ddm9_fC^BTAbIzMEu1v=2D2M#qs_5iI&)IenmNclfW;l1(8Y zYdA7D3%-i87ChhjlPMSb@9zilg^yS;KRXc{aXE1W)ejwAFkn`m*naDJNSs3x4Lac `ti8bz?zpfh3i{u)13K}e*(owS&3(7g7 E=G5u$A`_9ghKVjYz*NuX|*7q(><7oJ(>L~QT>JkRrg=1?q zCs4oAuYVa1^&gJ?WICvLKGUT6<5#0hGl*5DIYJg-K|7XtWe2R~+E}t|)!Mj>vLAY6 zmuZI3JWq}kM8q4>Ui|x%!PhPpls}uGcnWX8)F!%B`0fy6Mo1B12^rJwxBvdmYQ$lA zG1(g-l4%8yrJ*We)wouV*P2ujKA950lU*XC3UWfdtUsWw!_9BZ_jKA(678})+%u2_ z0MQ7w4()9Bw4+?1wsuaiAl2Ac)~NYxgPCX$QNyqJUd1ccqqWAJDH|7ebCcT!Oh9@^ zhZXms$+doL&=5jrgar@T)BX%S*WM?Q#JDYlYjH1s8$>@E9fDuDs`9Pfji{=b`%l0x zHU#P%Ock@>#XO^NXLM|PHdL!8Zu-q%ES2ebHo-2F0yTHmO3n`7CJuZbAA5FEWcucZ zuaZCH!gWKx`7M->Oj $zC|Lmds*b1j%ybR(ky`LOA zB4vDUQ@GAx<_2)&Z2uB>R%maTQ)Y^xZ zwUlJHa-2{r!-3fJ&SLl;^MGQ=?XuF56l6c>=1iB^ZVt(s;(o{2s|9pnCZX)@t%6Z- z$H8$N_^l_O+6lDHxm2;Gs#wvR49{wdKJq=Kc9_yIqiM^2*@U|rW8O3(m)Qfdd6s4| zMXzfd)96w)D6eIKB!VNQU`PUYMrqLqy1;u)HBw=x1R_Q+3cF9t{AP51PP-W1O;)m$ z19D `GtAZ9+Bi&dmP? z^Iv)LlbM6qnL7;pA)GP8N)TvmH7uK{hcQ4%j!xAJ*u!`O8-97OJr+eP2P$W+byr2p zRIX&>HD(?)9J}T^`yf}ruS0GZGcPMpv^F<#8YneO?1L0k-M6LgH}Fv0V})Q_>Popq z)Bi@&_`a6F9o(CLy5fv;=%CW)lg)*=+2_W}zWTeVKM#0E)Bk5KH2zDV9%p*Ccy@m2 z_PpSk`bFF8GhO2gm$&i@01R<~7$dj93E!5u!0P~oOzR!6#nc2P<#gHGi)lD89F`ZG zU#ci4_swpIvR v6U9Q8k)1>qO1c(IyGeG>w)Y-@-eN z^5-DJ(wnr=3u7u{*I%d`A*lvZfzLMNVj(aZ0tG%g%6kIYtRLet3E{AjlcFo6@PC}u zH5B(LXcm@AaFQ(mp?58;!@D`_4+g`0^+r1;xdYwVc^{7@%Q&d%E~oW=Nh>Yk3;w&) zO2roJVqp8>djA~A<{K9D-pCs|+t(wtBF0?ALOW==x2*ObTgZJ^^U~~a0dpAGsRO(v zLVkmP5_t=Hh;%=w5EQs9Vxm!~69VlHQ5!yxI2UQxz!5&e=X6O-2m{&4{zi1COxdu2 zj< !zPkCXd4_SxT*?Gvbx_!B@h2Dm3uH)kN{Av zXt|o3CGblyUoC!#QuqJ1xkTx#3K2*RK%TRSXsMrQZrBf9_klP|gHP4KBT^sOH1S=a z37&pL?fkb1>LZaL#-o9hKo~ YF;B{)MM!7%eSqSgiR5(Fq_2fg{ckb%=ivl^{*prRa9=-@Si> z+IjzGM;dDxoOv%b@^^*iHIvqShUt*|xVzRC&ZCm kpw~n*ZzB|=lZ2~i+S7CLx%ryot{sY|n&YR;#v0|-h*HEqM8Y%%&-hN7 zjyK#JI(;;OrjrDnY44WcuS2iSc0@RjJ=H{a&w>=OYo4517BzO#P?m8tPxxgG<}cX| zXR6Tt8Y-!kCL&cyE(bp$w_vY