From 4d51161e85911eb03964575476d32dd2d7a79f3a Mon Sep 17 00:00:00 2001 From: safe1ine <140062425+safe1ine@users.noreply.github.com> Date: Tue, 23 Sep 2025 16:18:20 +0800 Subject: [PATCH 1/6] Update README.md --- README.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index bb9c70f..a09669a 100644 --- a/README.md +++ b/README.md @@ -3,23 +3,25 @@
- 📖 在线使用 | - 📖 离线使用 | + ⚡ 在线使用 | + 🖥️ 离线使用 | 🙋♂️ 微信交流群
-## 👋 项目介绍 +## 👋 简介 -> 使用 Cursor 担心所有代码被上传? -> 想拥有自己本地部署的企业级 ai coding 管理面板? -> 试试 MonkeyCode?一键安装解决你的烦恼。 +**MonkeyCode** 是一款企业级 AI 智能编程助手,专为 **研发协作** 和 **研发管理** 场景而设计。 -**MonkeyCode** 是长亭科技推出的企业智能编程辅助平台,支持私有化部署,兼容第三方及本地化大模型,专为研发管理而设计,它不仅仅是普通的 AI 编程助手,集成了代码安全扫描能力,包含了功能远超 Cursor Team 版的企业级管理面板,使用 AI 的能力为研发团队赋能,提升研发效率,保障代码质量。 +**MonkeyCode** 支持 **私有化部署**,支持接入 **本地大模型**,支持完全 **离线使用**,集成了 **代码安全扫描**能力,包含了功能远超 Cursor Team 版的企业级管理面板,支持对 AI 编程行为进行严格审计和管控。 -MonkeyCode 充分考虑了隐私和安全,支持**完全私有化和离线使用**,在帮助你快速完成代码编写,提高开发效率的同时,还支持对 AI 编程行为进行严格审计和管控。 +## 能力 -> MonkeyCode 客户端插件部分基于 [Roo Code](https://github.com/RooCodeInc/Roo-Code) 开发,在 Roo Code 的基础上增加了 `代码补全` 和 `代码安全扫描` 功能,并优化了用户体验。 -> 感谢 Roo Code 团队 🙏🙏🙏 +- 作为 `研发工程师`,你可以使用 VSCode 插件,获得 **对话式编程** 和 **代码智能补全** 能力 +- 作为 `安全工程师`,你可以使用 MonkeyCode 对代码进行 **智能安全扫描**,提前发现代码中可能存在的 **安全风险** +- 作为 `产品经理`,你可以直接在代码仓库中提 Issue 并 at @monkeycode-ai,机器人将会帮你 **实现需求并自动提交代码** +- 作为 `研发 Leader`,你可以直接在 PR/MR 中 at @monkeycode-ai,机器人将会帮你 **review PR/MR** +- 作为 `代码仓库管理员`,MonkeyCode 会帮你自动整理 PR/MR 和 Issue +- 。。。还有更多姿势等你解锁 ## ⚡️ 界面展示 @@ -29,6 +31,8 @@ MonkeyCode 充分考虑了隐私和安全,支持**完全私有化和离线使 ## 🔥 功能与特色 +- **免费在线使用**: 无需注册,无需安装,只需要在 GitHub/GitLab/Gitee/Gitea 的任意代码仓库的任意 PR 或 Issue 评论区中 at @monkeycode-ai,就会有猴子来帮你干活 +- **与 Git 托管平台集成**: 支持和独立部署的 git 托管平台集成,实现与 **免费在线使用** 同样的效果 - **企业级管理面板**:对使用 AI 编程行为进行严格审计和管控,确保团队协作的高效性和安全性。 - **私有化部署**:支持一键安装到私有化环境,支持完全离线使用,让你的代码隐私得到保障。 - **代码安全扫描**:AI 生成的代码是否安全可靠?MonkeyCode 内置了安全扫描引擎,帮助你发现代码中可能存在的高风险安全漏洞。 @@ -66,3 +70,9 @@ MonkeyCode 充分考虑了隐私和安全,支持**完全私有化和离线使 ## Star History [](https://www.star-history.com/#chaitin/MonkeyCode&Timeline) + + +## 鸣谢 + +VS Code 插件部分基于 [Roo Code](https://github.com/RooCodeInc/Roo-Code) 开发,在 Roo Code 的基础上增加了 `代码补全` 和 `代码安全扫描` 功能,并优化了用户体验。 +感谢 Roo Code 团队 🙏🙏🙏 From 2d7353dbbbb07204b87848b2019927a1e291411f Mon Sep 17 00:00:00 2001 From: safe1ine <140062425+safe1ine@users.noreply.github.com> Date: Tue, 23 Sep 2025 16:56:45 +0800 Subject: [PATCH 2/6] Revise README structure and content Updated README to enhance clarity and organization of features and usage instructions. --- README.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a09669a..5f873ef 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ **MonkeyCode** 支持 **私有化部署**,支持接入 **本地大模型**,支持完全 **离线使用**,集成了 **代码安全扫描**能力,包含了功能远超 Cursor Team 版的企业级管理面板,支持对 AI 编程行为进行严格审计和管控。 -## 能力 +## 💡 能力 - 作为 `研发工程师`,你可以使用 VSCode 插件,获得 **对话式编程** 和 **代码智能补全** 能力 - 作为 `安全工程师`,你可以使用 MonkeyCode 对代码进行 **智能安全扫描**,提前发现代码中可能存在的 **安全风险** @@ -29,19 +29,26 @@ | ------------------------------------------------ | ------------------------------------------------ | |
|
|
+
+## 🚀 如何使用
+
+### 在线使用 MonkeyCode-AI
+
+👋 在任意代码仓库的 PR 或 Issue 评论区中 at @monkeycode-ai 并描述需求
+🙋♂️ AI 工程师将在收到消息后的 30 秒内做出回应
+🔥 无需配置,仅需描述需求,就能获得 AI 工程师的帮助
+
+请参考 [https://monkeycode-ai.com/](https://monkeycode-ai.com/)
+
+### 离线安装
+
+请参考 [入门指南 - 新手必读!!!](https://monkeycode.docs.baizhi.cloud/node/0197be94-c6c1-737a-a0ca-01cd9c81e833)
+
## 🔥 功能与特色
- **免费在线使用**: 无需注册,无需安装,只需要在 GitHub/GitLab/Gitee/Gitea 的任意代码仓库的任意 PR 或 Issue 评论区中 at @monkeycode-ai,就会有猴子来帮你干活
-- **与 Git 托管平台集成**: 支持和独立部署的 git 托管平台集成,实现与 **免费在线使用** 同样的效果
-- **企业级管理面板**:对使用 AI 编程行为进行严格审计和管控,确保团队协作的高效性和安全性。
- **私有化部署**:支持一键安装到私有化环境,支持完全离线使用,让你的代码隐私得到保障。
-- **代码安全扫描**:AI 生成的代码是否安全可靠?MonkeyCode 内置了安全扫描引擎,帮助你发现代码中可能存在的高风险安全漏洞。
-- **智能代码补全**:通过 AI 理解代码上下文并生成补全建议,减少手动输入代码的时间,显著提升开发效率。
-- **自然语言编程**:通过自然语言对话,让 AI 帮你自动完成编程、调试、设计、文档等工作。
-
-## 🚀 安装 MonkeyCode
-
-请参考 [入门指南 - 新手必读!!!](https://monkeycode.docs.baizhi.cloud/node/0197be94-c6c1-737a-a0ca-01cd9c81e833)
+- **企业级管理面板**:对使用 AI 编程行为进行严格审计和管控,确保团队协作的高效性和安全性。
### 在 VS Code 中使用 MonkeyCode
From c56c625497661871613a79dca77881464cf95a0a Mon Sep 17 00:00:00 2001
From: safe1ine <140062425+safe1ine@users.noreply.github.com>
Date: Tue, 23 Sep 2025 17:01:49 +0800
Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=20monkeycode-ai?=
=?UTF-8?q?=20=E7=9A=84=E6=88=AA=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
images/screenshot-2.png | Bin 383872 -> 116491 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/images/screenshot-2.png b/images/screenshot-2.png
index 0e30b80b42abfdeb759b7c9daa8d860ea75a8159..a7fc2a40c60271915a4a8fc6aa9a4df8070fa1e1 100644
GIT binary patch
literal 116491
zcmbrmWmFx_(gr$MaCawoAb4;O!QI_0I0Scx0KwgYySuvucemi~?sxOP=bZKZymwvJ
zW;1Jgrl+U7y6UN?stA#j5k-WrZ@cTdfB$pE=@WbiS zJ<#F7{wnwczTA5FJkw2YFaDbMlJv(NV@ZvC3Av1s-R|k7pcfgfCRUEc4@_+MT*=B- z!^nou?&Mm`Y^vBRd*e)CYH6Z>d_S6J;+mYjGPC8%XjWtoZv|WD@Ivca|i6yn0lqLsWb#?bAqNa(rf;GeQ5@PJ}J%!iYaBxLC4m-x1hujZ> z$v6l><-_kdN@ $^K1qQ0 pQ0t@ VNDBo^OQoiPle)-d!!fVGWg8ahshGVI`+BKa$>_Z3D!nj4C~qn|MaQYXI0!Dk zaj_$FIVZ=5Pj_ch!jE)0t&_ 7H8`$m zt<4scz{rB*mU&tMDh9#zk7cjn%cD4a?5$RHGvD9qMi9WZE)7n@i_2qpn4MRCpQ+zm z|E1p4+;wb5B!IKw{P{(sH5e6Rch~oz*DjoN07Dm~F1IGH3>PgnZyW14OFwa(?%`|d z;opirhVwg(8hx^7yAlFdpb}1(THWm3CB8u%l_!ciw$ca5)9E7%HzU_n+hS8-;*0jP zA=DOIe}NJCiLGxf9kFZQCE!Ecq8D_gzcEs=HAVj$#$JzI0*UVD)j1!ceRd@EfXr2U z9eWKU(aGOb_K%-mX)PXC4lL51Bf7I8a8(t%DK8CqRf$vs$e{EsVyRB0C6~U$YJ2dI z@ZbZPq}=Hzgc)vI<`N4CDyOnKT?d^Hwu4fITwZ?dgk5>)?45@!XCg(FfmOdVAa&<2 ze{n=#h}LFczBR5tcRCmwUl}4FiJ0zT3QIu&jLcO*n=9ROS6Wxh@TKh%Z7IJ|&kP4; z;k7UaAb>9M^~iSKo*zh(T#5CLy%!lWv|*+;NoVej-H%uMwPAK^-5G{gcy)(%lig(4 z)6?}!mtL2b(ip%tWXnA<_OGij>A|16q|XO?38WP!FU$LjlIwg`@e-l*&|}X=l1TI1 zhu`{%C)e^b-D07j+gcSmDcHuAYj+BiP9JwW2?`onKG{h&H3h%$ri}Jj?o`=0A#*0G zXY?9tNz2098SK0qR|#?kGV^Z-dyFr{+DVGS(pNa!Yq|F8+h{zeh({4W_4)eUy4SEi ze8i`3>CMl#{^usl6o^s$vgA!Fz3+frx4*tt{Aj57uaFf+V@9(hY_`v?(XySS8HAB5 z>`i!IxMb&0+tay`IN#ArVZ~9?ggj|%>4VkNZLQ~&8|)y-4C{>ehn#`(SGZ_|pynX1 zE Vk2$KA>{V$Fk$OQ*tZJHw{sM^3 znQ-WNu9P3|=Z;JuwoS3Y!$vpus{u6vq~IPCuycF(uBo`?{c9D;>>SdZ95zn4Ten3= zTX8fHbP!PsNc@2@xzp12JApDGOvUAgV4S_AE7DP3^rU?Bq-GlA`jgCewy}Om1le-N z>*bnh`|ObDJWaJ{N{c^{TxrmY&|fb*nYP6iNHrD7!k{$yQ*(Jl;;`!um$kweWJRQ` zl34$wxAD?2bD1X+---N%W&xiT2A;RF3IbJ9H|G}d?4+ jHr?h9O z(NR&FlOQL=!haXoUZny4zT951zQ3itFU9 =sOn z4JVUk@myPbyTEQ-OU*N~+WoVK$??rR9!fwzYm-Og_fh+gFRXT2cgbWv6XwR-r0~-r z84qp9oqJbHXQOl9U9DF+r{gS|zK3VPzMQjL)S85XA%OjbB@Qb7;I;K)NQwqh$|_y- zeIW23lIq-b8IbfdAPJ_0Hauax>!av9+-{?Hvo1GW@s=fManzuUW}KN7>$m8rrd168 zXowQyHt1_1+GP16OXacBwB;JO2xRx@^atbDhX6ppBJ9&`8b{)A37V3U<7U8RQv~BQ z9NaP6K*o-H16Oopjh^f_>)DMju@u4#-VPyZgFF%Puj+)zw<^wXRp01w#{k^9D1QB| zA{HJ7n|Plh5(Z+uTk;(aqF@WisL_(YJ1b~i)B_=OrPO5iX7*x%<#$XKA}k-`?FrZC zF*V%#s7!)51)PWg%intS>gp1%Ka1kCo12Fuf4Z371wF?(g{yx2tNID9Mk|31;aW<1 zOnZ2c+Z8b_1tIMc?h;Hyx?1i7w3Z?n&@PbqyiinB)SY&JX1F=N3meb}E)30PMvA4W zZFkbG1x$wwS+Li72+HsQkjv_jwBwdw6w<}TKlW%ej@F%MlHFfEbXtlY?NXKgTt%Uu z(Ed@aZ*6rX`zf*Hds)6LYVGU76;kt}&3FNSbMLM&m(NdUYuWvA(;xTXf>o77o!J}U zmmSHKwF^M!RQ7WBj6vKp+{v|x1x5iBRtbcKfbj_uOb5JxtQ{l((}-8LRaJLko9%l< zzh3x9s &BS=5ez(Rgac9>ho*t`WNqiJfA|@!>kFW7yaD?dv{|4SpPhc zm >FuO~1A0cx;D7bO zkO{&;4mD37fiPM5CxIU_AAyFADG>n3SIHp}ws`8(W>G$Sex&o6UJML%482EorK4A$ zDfPx*|1lhIxfF@$(AMxs{^WU7XE`(IZ=FA}t4LFf238q&XE12uE3s)o8_DZ#uo8|e zJQPX7wZ}jDHuX!IYAc=NxY%f%Q&Yq2ba!cA`uoX1)|I7-D0$~-?zi%ir>N3Z`O2k= zlAa)A^~ff+Q$p&0T;rK#H`34&^e`1Fo7kE8So0BfO6%Ncgcv2mpM9HkpSUgh9Md^x z=8W6R&(FuAuHjI9#G+6!Q$8Aj$;y2uzDHSGy7Y`~jQ0M-d$zPV%)?k!>*JT!D#9(S z3=YQ6{vwvSH)e^m^T3DgV_}sC^{l9gWO4~d4_yJLIuf=uV6)&_BtQbGtyr!idPsu? z2ie*x3A^rM*#d=iWx|G}@{3Q488$RW#S_!JEh^ESe!< s z2^hoKeGtTa+(6~$)~y_E60!+<=^i(pY&c&5Ia^* B#>pI1%ywF1j*#aDU+lMD2~1(H}|V$ma68ze3CT!IL*DmCW0gL=_|~ zP7k1dw8!(xS|fc`lMsXEu+mf#28&S6F$t5<+o^=xXJ@(wVJ;i)Pk3TAliZyO-tLB; z$BI}?f!xwN-XwLoDBPCk)U6>EPw(FpD=>@a_T?x*@el81SDs)fq%jt-m<}~u_qNKv zZfR#hGYQ2DKi;Z=OvV$1( 96Pz8;Zn$u}A`1S~N8dM!Zbp)Q7J?A#$%&u92 zL6}wm8YdV<*e$8p8sDaK367^n?-L>4NtWdrFk^ 2HZ_V|Vu<$ek$%r;witVwCr6 z(lxoetb=Oqc8!vnFVqOq<;>fxD;fg#mz)@$pr98d6RCslW;nBl+le`(DpS$5zPDT~ zL^!Pjt|sw40cKZiZ26%C?L4^amQKV2bf*T};7%Hqdj#(Db%UjWli0|g{{lX zUZ&c-buAhBHXqt|Il=Jb@<=3Y9@$k^))im?dSiGt8|*UEyU-cR8Mq!C$1jxQD#IX8 zPQ)5NF~ZOODE)ZF??DFsb4ucOp^~=6p-3ToCH%5Q8BKm~O#o-}aP7PPZ0Rak*uL=( zkC w1Jn(X1%SPv-O0%EiFk L74Fe<-U8X9> zQy}6imAIvo)u1I1O!D$e17nUrwxQW~Gjmjz0IR>x!^nhgl6~tUj4%>3-1hv2JkC;) zS}2_}w5;Wo80OZ3_Adc?6KYNDI6~hpDKCI>5*%TM{Q9|wMphe(+jQo- z_DL1!Je%ns7G?)JIePW={rC$yB5EFLu_6eX&Ef;WO6c8(!Pxf mkd>^UPZr!6k8B>HurIuTO_8f&loVXHGdXL;FrTpk?$h-G&B{Mv921W!aQX&r5O3l5)#Ps-!2l;Zov0Vmy!ZJl zx$zcbqth18Q+iVZ9uN~_vDm^hW(w{TJ)6%V>aK{0 TwEe*}%ojmiuTPlYTM8Ob-)iL-lQ|$)f z_*9r9_Sm4)wu<`M#GN4#0DM+jfk>7-0Cw>ulIUT;_Q<(Yad|E7;d+YLtIHYqp*Iz3 zLx5=N-hBoD=hqq{0_TK2-O;hnX}@Zzz|+o7@df`~gsk?WWg$@+@ASmkSphJI?<-Zb z)g>9=`#9S`?+9^Ez56V?=A_Uh05OI~lj=%ULJKOc)_uxKq$@ zDs^s7LdvpYe{e!LaLHk1HB3svDoJL_e3&}*B$m_dB@yrsc$LDLIC @A@DcqEaFhmcGS@m3 zTmFuf7dm^baE!QZRp-$6HSvT*>@Zp=BBJoUuDvx^qYN({${DS8t#lE)BI6^(v<&Wj zT-z0#U_25>=SMRlY`OlrKIv9|5Ef{Cr`h n4$yGW`! zy6 3m;%56A2FtZx@W@wKA7(w0Fkkxk>w&^YHLjl>%qNdFl z?BD=JJo8Kv%bWgs-xjKykg_ #HQQzC3sc{78jggvq$)%&=^}n0f%7OhlpjIUw0QmJTqgYeqF8i=;kaRI+|pK*V1c zsX81<3J)>3bM%UJT;?No8#MxXE{PqJiUWp6l&bz~AVAeQDwe@<9)8|%G9pMJZozKE z-9Dx1^2yb>z|FAL^5geUl5k6Q+n;bobUKDT#hkTJStk`3YNg1FiP`%Nx>gqHPU&3k z_c7-YK+52-q}g)}F>LUW|Hw5LPl(3aG-k9dG#ID^Dd(0ICU00GCtFor5_Cyi^IvZ@ zzXuG88|07sVyj~c;u(6aGD`QacSrf$ZJg?n#%sJEhu&JIDbjh%sX&8POI4f8$_9 2upPe|XRQ|MiXGuD&_al6e|vPT_QCe&3__WCJ!Ub_NM^?~0~?@l=De#j2q ztJ$5m{}VDPwFHeBt(%m067GX(S`W-JNEKTsIyu;?R>X$p3CK4?IH)YpS-0e7x!Zn~ zIzM*mx2GZIDJnIiYPA%U-pCQHt4rrcdhy(PQ5_adMWoWi=h?XnpQx&k(;ke?&|oxy z&XD!~ |PDe(3lA9;BF1H7 mzPg# &zOpLBVTVpjG @_OZ R zbK1~U>@kDC&{QaF$XggZTka22{NTNwj#!Cb|0 g%+MRn{lGm0#E5MD32T zCBCf{^8y4f-v_x%Xgz0qj!LoP6q~uByGx6a^5(`b37XU**K+Dy+Elo`-3}^I{r~E7 zE*!zi_&%1(U~dHk{?L&Z<|;fG|2dkG3PG&t9+yw(x^y25gI8y}g@ji}**`8fSwlGN zcJjdOX+=HX$He^Q-g-E(O`Gst1y<~5)!`9HQ+|+s^4NQz7H QLj}bxO;w2>s# L@9@iHAUvP9XESMm_-YWX*B7Oe3cDsCF$S zNtz9aa;-^koo=yH^&~@6nXX&S_~IICq532yXi*h;K0hHE97^%g4dP4 4_m?f&pC0Z_TH{dyTnILTC;SQhtY!9-op>{S**zTG@oI# zs0bRy;v&KyilBxCE8@A3%`RCK5CG>IeT#2?g6?#s` iiNm` zx _LoWR zoo0@pN4FC!5fF-7BjUyGewjXf!wPpcE@q;*K})`_^KMF#qKTae0~w;ev#}?K?tyfk zN2jH54Mt~p4W6|Hz1%H{40TJl77gzcuNN?%MVm~vmJSVdHwCXzxx~yqECMSs(RFo` zPT7`RW-~eapLtIyvQ~oHv8%f1fF4OIubd`gwKu=Qki-4Tx*bj`i^;|&>_`f}s`X%` zK9}o=DlA5-M;uF Vki{5d zq5&{gPmXsw4TWoISpbFTk&{1gHw}}ui5Pdz*^GXF7_2GZ#vl1@lT!*|WXhT$XMQ9) z?pWJ`R!Lp>pfymP+v{OG?BiQfLg%@(6AIS+vHUbgg1LegY34$0#~cRufKCYQzj-KR zY3Ya|Js;g-4Y8UE)Nd{Sqz3>I_d!$1rLj94t%rT_8gRnXoDXg*FVhqsu}S_YGi@8Q zKFjR?;m>D(Z1}Tgx}81|?fg}A?IK`@2^{$I^V7?$#2cucJL{2nFRuQ#uy{m`ek3gx z(U7033f|U-$&Ft7^ITaDl+6Q->D@k`BTG RWYd3()l-H1k?^xSbLb(ldK#cFDLa0{7 zJ@q`~Xh$jQ(LlBX3cF@Ce2XkcA!g?O<8Xd{vUe-di&mu6uNOt0lg{pREy!G?M3dzc z!=z@eX;QB9SnggRE3cr0pr>b0s-{%1-f7YWN;f(ujsq9C d36ArHIl@cz0hn>C#*7Y2F2PqGSMxTsUHJ$nUhKs^nPaXX}KwU zD1%N5>Ty8Ge24;nn^bJXBeZ4JXc9Jcnbs|Ri2QwsK)m!EXWW-3_rrN0dm1tI`1i!> z#O7+*9n4a6(!r98_Vg|l11&w&)+ZWv<~T{wrEq*BP|rBXR#aD&@h#SYzDMO{l} &p*62!1{Ja9)(DHYS22!Atz4<{Eg#w07ms3)d Lw5`hh=KVKKm%^aky+0koS)}P-lg`*fzn45q|4+Cd7pkT0lJ!z`b!`1 z$3@~=sX-7_p(>6 )5Cswia<046k>Iusm^x(I~rz<@y`glXLRjW*1h5yF-q zBK{wnfj7?)=qM^`tPWtpS|`FHA6a!)t6OE!oQAE)tQt%&x8?2bbaON8iTyQ(z^nK8 zsjt5{7&pZh%$!iA^o~*9+Rz+a$ss#*>qKOL@b!w)=y0*ge?!hXouF-NQ6#e zJE-p-cSv_{q6t&vom8KI%@&+cxn5BCGHXpRi*|b6#nq$An(9CAfKYZRFC?X=q6Nn& z^_tq8{ e|&N2C&8xX+s+15WAUik9K G9NFJ0e3uCE2EV JZ2lvYQ?!+B>o<-Z4 vNP7t0e*dV76 z7f;q>F;*HpcoDy>r J;NaySl1~HaCb-;%P**_0L#nv{g9vwQPm-Q-r zMiCPbKE*;s*G6n*sBX-{uLXK{P{~dDVLhVCbWounOE8;}Jxw fX=1N!531^}eccblP7nDY7cy&JQZ|x{#`DYELr&Eg=Il5< zhE|)l+gU|ucLz=A@7ebKvd3C|IsTJq|KL=6se!{(S@yc=6aIah3 DW*SYuB o5=y1mZ^Y#v6o{+rfxegITtu4MU7ZYI*;rOE9ADR+?^ j(mOiDeR^gsZNWxZ <5q%n@CFlF5d0eIoV>Y$(pKQa@sOF`hY!$g$ojbdhT zAa~sqtOVVQ-l`{XlX F>3d9qgIA;ClO^IjNeA zFQZ;l>qYNW{Iv-QHJq;X?9o47gYWI`Yu4}S{TuTAGwRaQ6TEA2%9GZiJ mdvB6pdKoQVpb?ZyBM4K!T>Ykg`OwteOIAH zclQ~`T(j`SM=9-HAbLy-8yZ9inWIvck_I%(*I^7Df*5qq5fsGz^_mKbZk_Mt;W~{; zb|?EG>pC!+YW-%JZ0;M+$b &Etji}~bJ&?d zfydjI*q;AVt;;pTRoIVT8QxQwJ)z&n`7fhw{(p|$;u#&@75jV34ATGdlVR#0g#O9Z zcyBrB{9nGY9QXgdeD|b-=*Efg-(J7M+|*9yix4u55De*qNWReQbEwE->d@kn#OKl2 z?}aR|elEhSpvQn%G)M2gGRfnH&63CsrSm(?tNI722}qyKYfrlYxMB)GWDKl}g(EM~ zfYh6|I1b#_#QJ5(_pWE2KTdYFb_3!ir8^cHZH&J-_B+lZvUjrl>sUS_@&5Yr;8`Nv z(;dPOh8<-IR*|tAovrUM0A}(<^uXm%Ugx$NgYE`j3Zk6i{Xkbv2d0uF&I=vixfY*c z5;?!!-FSnmqk^7VDZ&lG>T;R?#E~Bfj30?uwf(0;DLPOhCcY+ly!_2(xoG5}xzvXc zyML0a*GQbNPR%=>W;v{^Y}1ObUPgn>Stu>wWS*bqe+=I|C8`yI0RrMbzDw*Z_}H#b zUYoj%DHs;sO;4$~pHFYpHeVbGVI_6@-=9Mu+<0j$EiFNO!5KL;NNTrQf8%{MQ~f?P zD_Xv0c=q}%4A;Z{ -j+w09*q=httC{g=Mq<4QQdyt=@uDA1Z>#Ses0{6?F zl~@vQqq8Pd);ua9uhSt4rGHmvW0kNJKpDGOw~x9d^1j|}uGM4f6ovoUt9!dQJavN^HX4>l01!B+dotXl!#- sm+_7)@ZR@ z5t}IL8u@B@mv5#zMkxMxHxyg1E9w?Qo{mdJ2Aj< %woY;5Aj0woh6=tOFa{H{CYlhuF%E^{qb0dht8# znDGj{Y|#dfC-` l zk?$Z$GJ*nSPA+q@l!!cu>?H*Zi4TdmpI{8RN#VO<*bi5Zz1f4nIW(E8>@!H?%zbgK z0hk*IcEZ4B7EIPkv^XiS*{%5=1i(9I@LFsiEFu2HB${$RdU?1Hgjngm7UkO<>6h8x z=#*e9W?UZZP7#wKTdBLD%q*;^ugw8MeCi$heZO_*pR~b2mV4Lw)z q-du$N6$#%3Net07s5=EOx`O6`Oc4)C{r7vQW2 zT0Z;?hdr}4wa<JT%_1bM>rj)nAc^DN$ z*$$6fOq1MwY||zSkfVCP7*qd$v9@&mZkm6z6zBn}u>UW#;QvRZ`Tzg&8PsPrZ1^po zVH!>Pr DYTlChz&hmL`)^ zmE`<$!tJWbmu{aryZK+Ly|=@RaZQ>M^3qV-q<5TO^_rw&Ur>kOo(7y>?3S cqY|0k;^qatjs{4t=equ50Ud{C{w$zsepTLV?$$(U zRb?u%HJ4-T%}^#x_&gHCu$5qUfE;nu9)P~LKQTqYwt@=i9r|%TECvFB4RDw3bp^rq zt+GP;`mrNwYl7^cTyH~`bt4zGP6)DTRH$XsF9 wep7xZ+DvW#?N|Y8GY>Tu3I>aKUK~o8Dog&)q>l&gIuW9uQ&R3x%Y;7;{ zz+rixY586yovt2LcW;=s_WyO?cN6i*%>IQZ@zsbK2~R 6P`Wfr-)%c@ z!bbn~SHe6mE3T=8X?cAv36(Ap*yUJX33&vU$hL9eFMB*XZgtR1b5`lg&FsIpR(d8H zOl_63#mIz9iDFPoI$f#-ths=+7VytDbVI~-wfgcfS0eZ7sc}rVWrn2*0HCDoiVIq% z# _Gr(9?8)o zf!D14YXx9{p3{nd5s(;P5DxED!(IabNmn}}VRO)EgxxH06ku8gSEPho9-qJ3aQS5y zu9f##6#dji0{XSu*2-c2MKO&asiwl_$=p*Ty{?ay$RlL<1zYkDmfE-K0tp?@03yiJ zHUsD?@5TUxE>A!;R5r{nWqpabgNp7gd@yYZjQVw9jQ=eeyVmFlP=42J@2IN+?f+Dy z`TnoyEX(OS%lJpHft|Ltwr86fX|x!*LC7~aKnhgRqGZUNe0XS%hlgiwZr-LX{hzMf zj;>#sIUOAxm6eqp9Z8d=<|=ggvBL85`*Xp30wT!z(4xhZG&Ln-a)Uldf_{XAa#9bk zr0y@1E1PAM7@~)o5B^OJSq&H@VO2ZiItGJSd~t7~hskO$R~+8HHrc1f3ZtdX2>C|J zmRbf%Yb`I&U!X5?d2B5`Hf#Hq&GK`Ub>e6~QuwU6qN1Xx2o neW@-*>$?zgS^`68N{ zsiSkGFq_7Xqr`j6isL$??Ve|oIWZ|*sKW99q&S+?hn_!j<6} }*Q 3jekA*$V1Q4n(={7hA=t~81P^A5z%$YQ9)x|M zy1YE0XCrERUHfb=`P|sC>?ezu=G-!F>p#ouO)QSG6F*+}c!ysYm|Oyrm2h(~A^#aG zF+SeHqNc94Hdo=`)Kl~;8CtQ0Fn|FFqCyJFW1v9(i4_hB68Z#$f&+e2dPNo2>L>*J zdFACQ%E}ZNa5vZ2uO^q~A1f?>MzB4Eeqj7Z^4!vuXfT!9arD3BzFWh?oJZ?@HC0tA z6eW-or}kN8G6(I<`*dVvOc8;_kJJQ`#3!5j!6_8H&jgUr2?Btrsg?T)WZl$MMD&nv z*JiV`vn^T;D}GdzLN|83|CA!yAo%%oQ{^S(3%R$D!esFkD`pvvx6R8_#wsiE ZnR)P08b`4jNhN9qsb?0i*l`& zQG+T6M@L#38l&p+iV&J;gZzIC^BOe >k*i4m?mU<_-Xvc8 og^^Iwfk*hg|r^Kz6;%R5nO6f*C91u%x)S zwzk%7_nkg@m-KzQN%X87DN6T?uYY#%Li^AdI&3od+(FX=g@Hm&o!ApSuAjSqhYBW) z!d!$ F|E* z==l3zEb}q%Hw m9bgk(_`Wq_AMm_E$I OD*d&x|O4+f1heD zVaixccp7zcbA%6^QL7nw<^3LIIuR7n5(hsUKuXR--LMlk;6MfxqY!KuP-W0 &^@+eBQ845Lz$l1q$oHj`L&?QJ1oYSAmg63Mkw*txbxl>>&nRnSZD-HE z{=>&+2e|4@u6NcTNf;jA>dcxMGOZIpLHmSR^>*LkT!zabr%7FUc-%?W)=DD?l-GoU zrpz%TMMJ(Sb1Et)XEAbi+3|oB VZME3gmDV(|{mo!_3L z%VsM|OIQB H8(#G;ggc0VXmQ4Cngnz5Tl1e4j~pp3X3}k${3C!?;`Of z_aTRg0fY1>6?1f~i_Y(fx2U+C*OSKKzU)D!L^iQt7N64ldFnn*`5jRY6|&XPOd<-w zPY zOWlPAmX gwS{7uHc{u;?V?bo6vbA}$}Yg2T2Zk=7TKDd$&wsF9GO zF?@v|_)z4|=G{(uK8@*{VZ#}tdlgErezm{3aRtSCJ*?XK^S`+O{JXwSH9C`Knv)$F zLCttI#mz$AO(G!bSpJSamMne<2ciE8o8cjE9L5h4a4XN*w2Baz{8U8FJB|uaXBOJb z(J`|VO3;{o^LsvtoORqB*og_n##H`#;bNiaW|ew{+u)NcD<}sU7sv0du03qTm^ E}ltstmcvZ6L}0P)EUvMy@s~X8Dh`EmRQJ1gdD-m8GMsHPX7Aw*VOTS zNZ?yo_@f|?{n_4}^j+Leu1<^o%c*<*vCPa>Uzx5GF oJ0wkd~XHuui(x81c7T1p&pxywH1T#TDqh3|zG)3?85XD|9Y znA(^ONB6yd|9&}ZWpwXz4O4{R*LH8lnL*qWer=xqjR 7sfI-E< |vtFss^o<7ivBi&~8$FhS#*7zO1_J8RvrlCX!G2a@Dbo3Gc7@ zgO=;ZnB=^8U}$eW*@%V|**y}~7Vl*w75y4?sG$HK*x~L3|5n!9G8m;evyH+S#pRA& z^`=B^u~LHV_Kyqd9d$HC1d o6S_nP<5kkFVH@y_8nnK@POP>$n-3a$8~Of*b#2^ z% g&j ^>tuq{j%d zs2tBd^O0dt!4c`=9Pu9uODV+s!2NP{_ry>D3}G<2YC-=;Vapri+Up-wek6%*BhM3q z`StbvYoLE<@pEWT*`od#K`Ma 0deFhD@FVH$$2*E1i!M^QOCP5f`GH6E_ zAr_z3{EF$( >f|fAhzAvt y!q4fgBqzmDO-Ly=zsoeif&sqwl(Q4*;q7Uzj;FnPV_MUe$)-=37@ z&wC2Rl{fJYzTodr2Ad9H-#?i<_kH!S4!4J6<(u^9zKl5r>53a`JQ~#Q_kk{I_~)6t z7`(r@#j&V2I!u^Q5w>r&{h#DTeot2Qv*M||wMZ$KxSVY*eVbF|eX9$#LTnPgYyIq* z*?D1Rz_#+m+-Zm8i6_V>aq4iV`5uXsQ^)lphem9&bp~P&Q2W4N-h_v6}S7TPW`GyJl;Ey@>6qH-z^z~w;J_{Q}ZE`}B>d7tc zfA=J{g2a^SQ~hM>*mkZU@|nAf8d8Jny7pH}&M}E>|O| zxYOo(%pkI{B`N2)Q4JPA=iprWK)TWRwLbVoqSqo$@-%$Cw)C4Ss_n7k+U5{S(> zQxZ0yY%ErFUF5Fjyyi)z<)Ee#4+oAVsu#}yA^bfkPN};y>zahrh#T6=2`FaNLjKdC z}!kWgxgm33wf^*I#7gG*aS!8!0$&BbM{>iO%_8(-U0H`&}e z&mhdNYZA| aq43bZBYk>JQ8vh1@>J$?;} zJ9X2^e)YSThPO^)a?L6sIS-zh_GaCpQR3P@hCWoeA|M5bnkT*&r ap>w1&!p~^4Y#basGt<^ZXcVDZJzjbrJ zzu>B-sJe)Jr0XPzBmd%Ydf+EyAx&J-;U=c($D#W2v{mM2S*r@9zv)()syei>Dtl`T zN`=$$ ugQJJ$ZN z7K(r6K!c4qoRV4nHLTe;Id!*DDl nW|Sc=XRaAyRJRXL)(URuh}AFZ09hRmRIh~ zDu2-*g*)=h;paaB@zMwj3om(IXp4w+{y@gWMd<+k7iraElagv{XjHGRosv2lma3un zW;ksqJo_Q2h2egat7mY}ayE4H-6kw0K(gU$^Xjoh#-UIWqUr4+-=b&9wVzlr$F3g| zo mnI`AC>A1uxwE7t`qsB&fpPD?m7b9) zed^hs)JSRBhh|kZuu^kEysNC+K>kKNuk;jcMAT^GJl-RLDZBtwhz2`tZoI+Hd82h> zfd=<42*a}rPF=?<6fX1{kE@7j`xvf~jaL2Mkmt{fpyLZ=kR)DJ#*AMfV={X(lM`>u zu5+)WQ8czA2GR5=9Dk2v1de9epA9B;y5fPBmD9<>4TvZ14=npRvk}#jklmr$Zm#?0 zu8h)1Waq7y>S(7Vc6RO}#ydY-z+f8;&$;hH>!vndH 8fIQf4!pJ7T52tXJC#=Fy{%XX&eM1rXhE6 zh7sQPQt|rDMw$_dcQ=_lc`cg&@2!@xx?ZX?GD-klf `;4aZ*Y5xG`OsaTys{E53J6!s;c#Q{9{$T#isA*mDW}Zo0#X- z0^`<)<0*Z%A!WT3u&UEj**QUU*{ObcVR#jIz;UNHbonDx7_nt)15;A{YKJA-mCWpz z0X@5Tb#Q6@1my5xcYAs!SFuq+(8itr*6v)vNMOs4evQ!HK{5fwkUe^+3?Eu5Z=q7o zvbmiSzhK8?>FMwkv~6l P^Kp3`#C+ODqpd{b@o|e&r63* zbmH~ywGt*nLniHNi$8Jdni$kddrB(#VmgJ>Sf0C$-qu%&C!adr>wk4Y!;ft-#7QjF zFAo?nE>TD0NNmw(RVz5;yTmtMz(o-r>#Lbi$mt^TU6nc37D0ul#19NRGtxSHF8i$~ z5zo*P TiD46 zdR MatIG>_ty!>fvf19Hy zWbv%jc#|*Bsg-7AW6f4tKvt5E*+E)M{2)rze(TNIX{cYAX8*J@!cR@j(IO*0JIvfD zRw78Ug0eL0)qNo%Xwc^cY}ota@S~Lq4<0^fd7^#IE oCVi9Wl@8#sVZ*Y8d*@}bb6LFyFfON>|Z^O)jZQ)J*U`d+x>^2M2MP(HM;JT$4B z+8tSQcX1%<&_s(qx2Vba*kj>Fd5ml!fUM6DY`8~ZeD8HrALI;$LQw}vo9XthHWL{a z!;9qJalhey{HITx+QKcQtlk-Bt}C!4FG?0h6RYZYIDgd>Nz)*cOe7^dq5qyRQxxsW zfA1HRi_^GpdeD${%aheFodPe UUuvLC&+#8K2s?&?3Kimhsf>7Lr&-Wn(L#6KDVgBO<6 z`BF@mgKsOGXY-doW;}z&RpI2Qzwzx;MUv%7TO2PCoh1o6P8obOi>H#v@AN0B#D}yc zA)r8i31n-n6={V|vhDHuI@F)zMWSobNh4{A?X1~A)#-SN`V-+s35UgB$}(W^rh!L$ z%R>d+`73z|I}!0)9}#BA- 58v0@$n26O zLgTf&me$7k%6hUq19996m=@t%y0JvFedblSz1T$RKQ(wAGwmT6<}<|CpQ!n6qT6hn z`1=!@?~hM5g@et~pEN$Lc6!={H&rr#ES-8< jX{=;j@&ZDm&^7E9JF&Ho5?#8p^ z^myAQ_SsfHS|WUAUmR;`U$?fxZ<-JMgy30Nsp-d=-vC@8o1c%@dg#K63~Go<&}7ce z&zC^dwYYrY0q{&Z#%K-ofKVFU%R}%kE)46i?b*>Z!$9N*B6;jA?W?6==5wtpy+|y7 zxWVqmTORCQGL=Y)NP;~wBysR>IWy`!Y$3&b4f3PK4=_D!@o(|*zxp |zq*n2@ zZq(Z$uC(M{u~)tZ7GYw#RCiLR!67+gn@_%(r;?5ern<`~5SAUE*HA0G1O1^F$y3^t zl-PG`Oc*=8Z%{U!>ia%&hD;)KeX5eaw&X@!M*tcYG{aeoVbn~3vU%Tmz=O7U^pr^# z0fxD^`Lu-UI;y_cOumoU=*-1I8g*w!XM+Zc3DZSOHaCT(C@s;(cqN|g1&7#XMWf(F z7V6t7S;hqRDcDZ88)GF(lN1FG$d{^DCX&2O?Af&KM6)j_Dw<5u@Wylm3}JU&o`MQe zZi6#$o=8aXE4H5)`@NytlBDoj0^zRn&Tyw=HNdp@Dzc~I!=8?uT{WJgE-TVo=R&vh zZJ$~!P#P)U(hDfq(9rPg^4LJ{qA1g!yCY|7K2OOyu)gGAyVe^GoB77@Y>$Es|3^#y ztvr;1j;T@BvM3;6*}Gc8;v?@f7KmE=mzP3W3io0vSXe*AgNg7W#j*gLk&sS-HCn1z z&vQV!J|;Gnn3%I+rU_~HEG}91({FPJO=EkyP$aK7@fhnM=V!GQSB>AcU?+=a$aZ_w zX-@AtXkv@6YvcBxP|P+p@PPjGb=2U5L5h}`DqcF-)EEx-?ToC^_-0)cxShY>{k %vomDyeKIO1r}xYNUe^&J1!tgmFoO6IIMpSdt{BM z<3@U^C*OiXC_5ynoW1@M3rncuOMc|rNI^P0+E?wbfs 8@=Y*EP1sK%<77F@zMJ ~;gzDEViQ3dJSBZjLI%uQwDR%fU z{0EF#T(vO5`t&%PncR?-GUd9V`5Vd;D86O+b)BOH?xJKi?LeM9(-uW(HP6G$P!f!; z?rt&aNUpQeIMz`!* Eb;ev^GS{1r$@*MVEjc|Qp?admaw8ca^*;B1AOi_7_> z*8@2?(OKfr um@D*gwgLWP7E(R0=Wq4fZKN` z2f!4x%cocL{Eqh*uxjh2V#D`wbQu!ScDvb>i0}M2PVlXJ{#bdHW5dpms$tcn-n9|+ z6xV3BuI*oP38nDzqR e(%02K*M8+lAy=&f-DIr(M|k7-cV7=AowZ|^y-MA z&Vgfh^wnPYV^G5f9k2r+LTlGK(9+ji7*o%m*2WHXUed7dwtTKTmg91h?*G~11Z$Yt zL+4q`K;V7j3B8NZmK#{kt3ksHKU65#1&Px=V+jyMQ=k*iqQHAqs#d?%G&KWJ)u7ur zy()+`A4LV)1c5$vU3{l@a)K=u=H}KkG|bQ3RVJt28f>PdZtUh*z890h_1tkf+t8F! zz`|0@qTmQqLK~=18c Iet^!rC+s)(Q|K^absBK6uYxJ-=;$aaQsO2w#nC^c zJq5yP_gn-=!dt$a?VG76DfO=%ch*e9 x6$yv! zG#ZBgM@u~af#s5T68uv2Mk%DO&1Oz>pXAT!za;wH&OaEi>dtRGjN_(5Ylh$R@Ow=J z{$5m)8t+9Wqv{!_lkJx1STnc$xL4y7pRIl0B5?1@R|bZDzzBTlarcQQC^a?|J)jxa zej`*NOO7S}fh5rK1uVN?D-`<*fu$5!#wo+wj}DkM4h~v5SCy5Nx(!(+B~c6VAJWJI zRFTxMUDIJ)&d9(ZA(>_88l7hrX4NDlaN8W=on@SSy;hVIhoXS}L$F Ql|E}>TSV=`CTkaj;fyW|?_qWpJE0#ZE$=6L?fr0)=NWPCBE#=7$ zHF~&qKv-bXSI^B$@EK>CBZRo(UnSFrLv~F=UsEEt^x4T*P#j)%!r`=*W5vS-*Yy zv*m179D3^tEon@6SPd6=wC-Hx&Tw%@7&O4j99C(#@?3HtG_fZ!)GJX_-fDc#Tkn@U zb4IU#EEwFep`uiN6>5-!?5bg38KPti( gjo7?Z~lB<6J5G!}x#HpLZ2*O>^fUa^vZ5-Cx-U$rPXkg!K_( INf_jIArjLk;NQ=4d;Q8p* au$1b){OFg3Ks8AcY{cQ9XTpCiNDSJbJpP?u|v4)lvIntfsdGnLo% zY+GJgxw5phG(NsWF-PXvKG#F%ewE6r@7^uEdOO-1C_$m;XjR*YFxA8ekFJMmucx>h z32!MJj?dSXZ;TlZ+?CZkTAfwF1_GotDzog$hPJ;oetcGg0x~6SV`d!7Q>1akDEM1E z&bGt3ndkuXc3lAw@X=#vS4)C}gJWP|Aap_S&@2RU7d(%fvRC0Gl*Yc*d%hztJwEIw zu3tYe$9o{1tWCgv&wl)T*1~%u2S>dAv!c7K7XIqUTI~ffXtw=mM80o&ny}|3P*Iu? zG>Y#XCk4eSVRWoOb`hWS#|ccY+F#=1vYIsaTDu3;iyTd4kx@b%i%$5Hq2Hr^#${UT zHrPlzm+KEId$U%h%0$lVJn0<78VRgqsYUv^{d`#7F%8HX0Tfa#`Q1?OY;3F%VlRJ> z`TfbxdwaL<3)^q>d-I@%EzM-5h8GJ&p|yR1u9Q*`YGy>P$KFMsaSrxeZgrz`n#_;* zdIHNDC82f>4rlch*yU>RbC5 7Sa>Q*Jaz)Lm9p&LzUUZ3LXTK~_5J4V z7Llr_%y?U8#Olf>D$$!TBQ$Ed 4TpOY$+ZU;r9hj1bc*W8;1x~8dpr)Z{+UZsny=a)4 z{TRiqy6 }r+Q4lomFX|G57_{NQg2CUl5B?q6mZ7@&XDr10(nZR8pZ-;^s*72B5XBuc6;|hI5 zsbV*h(UT7jTt2?rfTUVA*2RYl;9pL5@Vd69|ISYENI$`lveS$d&mP2yVJ0;bjzA4~ zRhGZyt#OrCgR6J% n)4dn~Kdpzh`xokivEB0r+D*_18f$ zQ>6C7GVwdtCAPg1%iq#&`3L85zPCu|M0jq@=Py#v;2kfZS`HGZ6sp-ZMcg~TXFfO{ zeH|m&Uf~eD_=-7HH$^c<&0UDz8S$ RARYev!%mh*Wgx?6Fdj5|xY|9ZGX^zO*_ z%OXNl#+cdZWwq9Vxw(gw%1Pc> zU4XSHqo*?xSHI_y)$SSJ+)dJMmuQYJOTfvqys*8atMeCRvu>Y}!@L~06}SAvza4xf z&`i;yru^n3s(#!u 5~ShP&s^-|H$_Zdl|Zy!NzE(!x#;o$83bZ}vE(b6 z!6_{6M_K#mW@A~W%Os-OUHiM0TwK^MLsd$XTJ^br15XnvyOa5NleK0&ZrD-N&pO1u z3l6pHI$pbov1!#?flgxx^>y7|6;0nq-1VLDp;;NrgXPs%5e4c#!q^+eG){AlEP6$W zmC4hyJv?XM3j}2i%>+Z8^kw1POl8pUa^8c3_DLruA(M_RtRC5+(kgrPqJdn3riyBN zb+2y<&alW|a|t1b=>BUO+h{$k82z?RFE!`j_9=L&$}ouEmR0E4St(l6)>E3}?iG)n z^y%PD3v(ck!u*U>Cx5fMprKW6l;ogw95?V_ovOo0%EeDGFTEmJ_^^eh-Hj;ccWrH6 zq1E!=yTuZMXG)wV#k7&sF5LBXT(XevzR)8lM|-Da+#0uUiO|HQHwTTOTs$VlLA=R! zyAHj1W5_}##gft3;`$Aq22@}rr*kol_{F;|?E$k6Wk8m2aN+Qxx0*yuXkz)~p05Qy zOo9waTs9Lou_-}R0=`o7uiUEkS$YX)TArRqHhZ-ujvA;EZ{hP4$;NNxttltBjEc$g z=U#&vUP3~LGG4P6emyeeeAA;SWNf|6*yzNEm^I0Mg~v-4*4<+CKI`}HZ_>r1fV+%9 zN>OHPEP1ChPA-{LY1>gVCYVp^MX%)dFb WbP=`N!dM041y^?+EmDxNAjGeaOVv_m}o7_0Dru?v~F_`*R_rH7rs0Ziz z5iz8-JdqbEIXK~C0Adr^PFYCoTuF4uKicN`+aJ-ra{KhVR}oo)^i*AV!_9Wb3U=55 zEwMJMllQ9zQ?sL~_|JNqlfsfe2s~@y6{bd?Z}eMcC}(y#l|SfdO09;^dcUAyzI9Wm zuT{``msi~&(>y~wHUNchW@;*Pg)uMB-h?{%MQdXya3b2-E>v~t z4J38Dl`{8QwX-bgmf7eGHMx3XUb#;lN}mLsHo5X4jMuk+O3PzAS}VnB4as=l$5}tE z1USo)m0x*bamS#-;~VrkB`SH=_=iH_je?iDKD|za*FsvP@uRzl_j+*kbrYjVxp!0& z{B{vA?^f+kU=GhhF>7VwXS>XYwCDE)OM}tKI4U(R+94qf+ts5&VglwDDGRmK{`1wM zj1F5^Bdv|@hD?zdT`3yu{Xr0j3%{ -5VRhP$)nypn#j7iO%%yzW~KaP`%
t -^htQxAzkS+lW*x zU$^KcrIqK^UxvhnT{m;wjU0oixQ>+lTtsgtexOh^Zmy4@-TOLn;-5Ti-OP?hA?n zV+m@Y>kT-9c|V2 zCrIL!XyOqDo3NGHV~aq9*zvBp#h;@-1refTtd+l xmk{CGgxVU!q~f()yN z-f( JeD{qhgc#9RK|Doihz|~NAFr=V;#G| z^?`{i=7@^FzE4w+5RHfxQo=f*4=sXH&}6hk(rA!|O4l51d~x-74A)$HLluE43?{G^ zgAj$fv(Lrf6j)}kFje;5A5~yMYfmSOm?USFMc6R9Bp_6ETt|kMt(|&0(&%2h`I@ek zcelrR_8p=`%7X~Eh*M5(`m%ggJuA7LR_-m~9_bWGrnh?D3y-T0@^<@OIfj|EWJN29 z3dl7j%cW#AepPx8KP?CcqJ5Y%S5Q@~?J%Y0#{7h=5_L%y9akcTrA>OM1!k$=37-;I zjC?*Ubkku2RR{nQf!^Bd>_Rhwp0>_!b_&ehH-+2doV0ek^wIK*>5X|mvVXF7qkp#X zz9@d&d>&~SsruW!vB1!1?UTd$=PHkUF>R(E=GQ=YW7d}F@1rs1&15vRWWKgHZm_4C zWn~AFN}I&44mt~?Y`l-KxTNA2ymhz3OpqlbyFC$4-(Ve!T-V6k?Vo5XVw=oV6tPj% z0=rYwPd{}mEb+IMV^Rq`%&^Q{Nm!5Lwe4|t7~Tid>l9gpnYlLKM| e*U5% zScn1mr1~le2()bU=47e1-OB0XhzkWpqSv|r&8QGx$L78t`#K^B@~-( K9 FZGd4Fv@;jjh7=H>9CU5>}8YLCw^0e2o`}wu_747mem<9#Iot zv@)kShr7%Ji)&ppve)OlJRiJroHMU}@fPRdxXy5?-vl(Fo6upLCR f`l&~ldH zM)fE)P4T&-gkkD1)-K%ASi$gAmXVAsrRl~`w++d$0!+EojOFHVqd(9^74F?i=Fffz zkC`a7yLihG`Q!_T(9wef12uzV-31Z$;?B~l|H`py_m3^rShcUvvyjw3VbZsztIHzp zNh-;~)#~_{j%i!g6ke&}eVG2z2TO*;=r8=N!gL}o!r)#_w+h%dt=Ls#`$jDWVOUs0 zovw?|2HI$T!lYl-emuhU&X{_A5T5Y@S!R~(+U_blDw$pp0x_AjX?35+=QgN+ZyaW6 zyv+G6#h*cxX}-bE#jWJp32Cupa}X+&^7XZfjI~aiBimHT3xjtnhWoU6&Zw}tWo0w@ zhFLHT?ey0;Ex!4Q=4dVCtR9QG$iCmKT*thVo$eoIf|cmrrhHnEIS&^`9^$m;?orN& zS#n<~nJL#O7^Z8h5)G|7zi_(Fy3#ELWL;9 l&&rI(1X-Q@$D_va4C_c$Bk8 z{c$@elps`GU}7=A7TAisTH#;kgcKW`x4PGH3 ApK$O9*QI|8{W&+)8s0H<-E% |Ixe_aEu2zu-Kd8r$6(W`=M;DdfWp~9llPSX+n)ibI5%xnHARUV5 z?+=91 &omM&gA3oaG9%e{ 9gs0$CvkYiAV8L#^UO=3VCjKp8slhp^huLE|7plv%Lx~(hhb+ zJw36>PHomwQczG*`V7X$=VKgj#~|I;AIpiY3VqRh>N(Rk>b|j=P3^b+@o#INEC4Mr z(mz@j=m(G}(p=Kq9JfpMj^}v%6@HMJk=d~`jVMK(?Vi(hF@fUPkb9_y^L(6l$qa+z zhV^%*EN61w0*}#-n#dKVf4DDzw{)4<>7GNDYMJ1)xV?@mJl2bKr!hjh_q35uZ &MoKZ`A$?R z<^vm=L_I5A;(*u9dcZY2!}Z=$PQChfe*R)|h{RhzlE3w*3AN=K%$2J56D0>^Hx_`M zQFig0du|TAN6YGWr?N)N`j_r<7996v1YtVGW}MLy(dX(wLa~QJ`ci~+F0@0R&K#G7 zL$dK|)*_?bJ7>O0ae9wklH!`<{2i9T_7@WhZp5B&v;^MWB=N4Vn$2R}8vCr!oQz}0 z @X7hHJ?)h2qQwzJTb#dX z%e5OJe@Izmcn3^kUc-&%*bOz5d^}x+2|7*gc I4eEOQpmHOuhW)OE0BA~ zC)&hg-7gSVDZ3+=r-W&U>8{`X50d2O0JuhfJYa4Ha*?*G$NA0JCw##8D)@B&K1S&J zs!#as+t^}5>~LS