From 1484981b72f4584f7a1475a2c04529cfdfbc3c9d Mon Sep 17 00:00:00 2001
From: "magic.chen"
+ +
+ +The core capabilities include the following parts: + +- **RAG (Retrieval Augmented Generation)**: RAG is currently the most practically implemented and urgently needed domain. DB-GPT has already implemented a framework based on RAG, allowing users to build knowledge-based applications using the RAG capabilities of DB-GPT. + +- **GBI (Generative Business Intelligence)**: Generative BI is one of the core capabilities of the DB-GPT project, providing the foundational data intelligence technology to build enterprise report analysis and business insights. + +- **Fine-tuning Framework**: Model fine-tuning is an indispensable capability for any enterprise to implement in vertical and niche domains. DB-GPT provides a complete fine-tuning framework that integrates seamlessly with the DB-GPT project. In recent fine-tuning efforts, an accuracy rate based on the Spider dataset has been achieved at 82.5%. + +- **Data-Driven Multi-Agents Framework**: DB-GPT offers a data-driven self-evolving fine-tuning framework, aiming to continuously make decisions and execute based on data. + +- **Data Factory**: The Data Factory is mainly about cleaning and processing trustworthy knowledge and data in the era of large models. + +- **Data Sources**: Integrating various data sources to seamlessly connect production business data to the core capabilities of DB-GPT. + +### SubModule +- [DB-GPT-Hub](https://github.com/eosphoros-ai/DB-GPT-Hub) Text-to-SQL workflow with high performance by applying Supervised Fine-Tuning (SFT) on Large Language Models (LLMs). + +#### Text2SQL Finetune +- support llms + - [x] LLaMA + - [x] LLaMA-2 + - [x] BLOOM + - [x] BLOOMZ + - [x] Falcon + - [x] Baichuan + - [x] Baichuan2 + - [x] InternLM + - [x] Qwen + - [x] XVERSE + - [x] ChatGLM2 + +- SFT Accuracy +As of October 10, 2023, through the fine-tuning of an open-source model with 13 billion parameters using this project, we have achieved execution accuracy on the Spider dataset that surpasses even GPT-4! -## Demo -##### Chat Data -![chatdata](https://github.com/eosphoros-ai/DB-GPT/assets/13723926/1f77079e-d018-4eee-982b-9b6a66bf1063) +[More Information about Text2SQL finetune](https://github.com/eosphoros-ai/DB-GPT-Hub) -##### Chat Excel -![excel](https://github.com/eosphoros-ai/DB-GPT/assets/13723926/3044e83b-a71e-41fe-a1e2-98e479e0ab59) +- [DB-GPT-Plugins](https://github.com/eosphoros-ai/DB-GPT-Plugins) DB-GPT Plugins that can run Auto-GPT plugin directly +- [GPT-Vis](https://github.com/eosphoros-ai/GPT-Vis) Visualization protocol ## Install ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) @@ -120,26 +149,7 @@ At present, we have introduced several key features to showcase our current capa - Support Datasources - [Datasources](http://docs.dbgpt.site/docs/modules/connections) -## Introduction -The architecture of DB-GPT is shown in the following figure: -- -
- -The core capabilities primarily consist of the following components: -1. Multi-Models: We support multiple Large Language Models (LLMs) such as LLaMA/LLaMA2, CodeLLaMA, ChatGLM, QWen, Vicuna, and proxy models like ChatGPT, Baichuan, Tongyi, Wenxin, and more. -2. Knowledge-Based QA: Our system enables high-quality intelligent Q&A based on local documents such as PDFs, Word documents, Excel files, and other data sources. -3. Embedding: We offer unified data vector storage and indexing. Data is embedded as vectors and stored in vector databases, allowing for content similarity search. -4. Multi-Datasources: This feature connects different modules and data sources, facilitating data flow and interaction. -5. Multi-Agents: Our platform provides Agent and plugin mechanisms, empowering users to customize and enhance the system's behaviour. -6. Privacy & Security: Rest assured that there is no risk of data leakage, and your data is 100% private and secure. -7. Text2SQL: We enhance Text-to-SQL performance through Supervised Fine-Tuning (SFT) applied to Large Language Models (LLMs). - -### SubModule -- [DB-GPT-Hub](https://github.com/eosphoros-ai/DB-GPT-Hub) Text-to-SQL workflow with high performance by applying Supervised Fine-Tuning (SFT) on Large Language Models (LLMs). -- [DB-GPT-Plugins](https://github.com/eosphoros-ai/DB-GPT-Plugins) DB-GPT Plugins that can run Auto-GPT plugin directly -- [DB-GPT-Web](https://github.com/eosphoros-ai/DB-GPT-Web) ChatUI for DB-GPT ## Image 🌐 [AutoDL Image](https://www.codewithgpu.com/i/eosphoros-ai/DB-GPT/dbgpt) @@ -151,106 +161,8 @@ The core capabilities primarily consist of the following components: ## Contribution - Please run `black .` before submitting the code. -- To check detailed guidelines for new contributions, please refer [how to contribute](https://github.com/csunny/DB-GPT/blob/main/CONTRIBUTING.md) - -## RoadMap - -- -
- -### KBQA RAG optimization -- [x] Multi Documents - - [x] PDF - - [x] Excel, CSV - - [x] Word - - [x] Text - - [x] MarkDown - - [ ] Code - - [ ] Images - -- [x] RAG -- [ ] Graph Database - - [ ] Neo4j Graph - - [ ] Nebula Graph -- [x] Multi-Vector Database - - [x] Chroma - - [x] Milvus - - [x] Weaviate - - [x] PGVector - - [ ] Elasticsearch - - [ ] ClickHouse - - [ ] Faiss - -- [ ] Testing and Evaluation Capability Building - - [ ] Knowledge QA datasets - - [ ] Question collection [easy, medium, hard]: - - [ ] Scoring mechanism - - [ ] Testing and evaluation using Excel + DB datasets - -### Multi Datasource Support - -- Multi Datasource Support - - [x] MySQL - - [x] PostgreSQL - - [x] Spark - - [x] DuckDB - - [x] Sqlite - - [x] MSSQL - - [x] ClickHouse - - [ ] Oracle - - [ ] Redis - - [ ] MongoDB - - [ ] HBase - - [x] Doris - - [ ] DB2 - - [ ] Couchbase - - [ ] Elasticsearch - - [ ] OceanBase - - [ ] TiDB - - [ ] StarRocks - -### Multi-Models And vLLM -- [x] [Cluster Deployment](https://docs.dbgpt.site/docs/installation/model_service/cluster) -- [x] [Fastchat Support](https://github.com/lm-sys/FastChat) -- [x] [vLLM Support](https://docs.dbgpt.site/docs/installation/advanced_usage/vLLM_inference) -- [ ] Cloud-native environment and support for Ray environment -- [ ] Service Registry(eg:nacos) -- [ ] Compatibility with OpenAI's interfaces -- [ ] Expansion and optimization of embedding models - -### Agents market and Plugins -- [x] multi-agents framework -- [x] custom plugin development -- [x] plugin market -- [ ] Integration with CoT -- [ ] Enrich plugin sample library -- [ ] Support for AutoGPT protocol -- [ ] Integration of multi-agents and visualization capabilities, defining LLM+Vis new standards - -### Cost and Observability -- [x] [debugging](https://docs.dbgpt.site/docs/application_manual/advanced_tutorial/debugging) -- [ ] Observability -- [ ] cost & budgets - -### Text2SQL Finetune -- support llms - - [x] LLaMA - - [x] LLaMA-2 - - [x] BLOOM - - [x] BLOOMZ - - [x] Falcon - - [x] Baichuan - - [x] Baichuan2 - - [x] InternLM - - [x] Qwen - - [x] XVERSE - - [x] ChatGLM2 +- To check detailed guidelines for new contributions, please refer [how to contribute](https://github.com/eosphoros-ai/DB-GPT/blob/main/CONTRIBUTING.md) -- SFT Accuracy -As of October 10, 2023, through the fine-tuning of an open-source model with 13 billion parameters using this project, we have achieved execution accuracy on the Spider dataset that surpasses even GPT-4! - -[More Information about Text2SQL finetune](https://github.com/eosphoros-ai/DB-GPT-Hub) ## Licence The MIT License (MIT) @@ -272,8 +184,4 @@ If you find `DB-GPT` useful for your research or development, please cite the fo We are working on building a community, if you have any ideas for building the community, feel free to contact us. [![](https://dcbadge.vercel.app/api/server/7uQnPuveTY?compact=true&style=flat)](https://discord.gg/7uQnPuveTY) -- -
- [![Star History Chart](https://api.star-history.com/svg?repos=csunny/DB-GPT&type=Date)](https://star-history.com/#csunny/DB-GPT) diff --git a/README.zh.md b/README.zh.md index 2696080e8..f34db33c5 100644 --- a/README.zh.md +++ b/README.zh.md @@ -8,19 +8,19 @@+ +
-##### Chat Data -![chatdata](https://github.com/eosphoros-ai/DB-GPT/assets/13723926/1f77079e-d018-4eee-982b-9b6a66bf1063) +核心能力主要有以下几个部分: +- **RAG(Retrieval Augmented Generation)**,RAG是当下落地实践最多,也是最迫切的领域,DB-GPT目前已经实现了一套基于RAG的框架,用户可以基于DB-GPT的RAG能力构建知识类应用。 -##### Chat Excel -![excel](https://github.com/eosphoros-ai/DB-GPT/assets/13723926/3044e83b-a71e-41fe-a1e2-98e479e0ab59) +- **GBI**:生成式BI是DB-GPT项目的核心能力之一,为构建企业报表分析、业务洞察提供基础的数智化技术保障。 -#### 根据自然语言对话生成分析图表 -- +- **微调框架**: 模型微调是任何一个企业在垂直、细分领域落地不可或缺的能力,DB-GPT提供了完整的微调框架,实现与DB-GPT项目的无缝打通,在最近的微调中,基于spider的准确率已经做到了82.5% + +- **数据驱动的Multi-Agents框架**: DB-GPT提供了数据驱动的自进化微调框架,目标是可以持续基于数据做决策与执行。 + +- **数据工厂**: 数据工厂主要是在大模型时代,做可信知识、数据的清洗加工。 + +- **数据源**: 对接各类数据源,实现生产业务数据无缝对接到DB-GPT核心能力。 + +### RAG生产落地实践架构 +
+
+### 子模块 +- [DB-GPT-Hub](https://github.com/eosphoros-ai/DB-GPT-Hub) 通过微调来持续提升Text2SQL效果 +- [DB-GPT-Plugins](https://github.com/eosphoros-ai/DB-GPT-Plugins) DB-GPT 插件仓库, 兼容Auto-GPT +- [GPT-Vis](https://github.com/eosphoros-ai/DB-GPT-Web) 可视化协议 + ## 安装 ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) @@ -84,7 +101,7 @@ DB-GPT是一个开源的数据库领域大模型框架。目的是构建大模 - [**Excel对话**](https://www.yuque.com/eosphoros/dbgpt-docs/prugoype0xd2g4bb) - [**数据库对话**](https://www.yuque.com/eosphoros/dbgpt-docs/wswpv3zcm2c9snmg) - [**报表分析**](https://www.yuque.com/eosphoros/dbgpt-docs/vsv49p33eg4p5xc1) - - [**插件**](https://www.yuque.com/eosphoros/dbgpt-docs/pom41m7oqtdd57hm) + - [**Agents**](https://www.yuque.com/eosphoros/dbgpt-docs/pom41m7oqtdd57hm) - [**模型服务部署**](https://www.yuque.com/eosphoros/dbgpt-docs/vubxiv9cqed5mc6o) - [**单机部署**](https://www.yuque.com/eosphoros/dbgpt-docs/kwg1ed88lu5fgawb) - [**集群部署**](https://www.yuque.com/eosphoros/dbgpt-docs/gmbp9619ytyn2v1s) @@ -137,34 +154,6 @@ DB-GPT是一个开源的数据库领域大模型框架。目的是构建大模 - [支持数据源](https://www.yuque.com/eosphoros/dbgpt-docs/rc4r27ybmdwg9472) -## 架构方案 -整个DB-GPT的架构,如下图所示 -- -
- -核心能力主要有以下几个部分: -- **RAG(Retrieval Augmented Generation)**,RAG是当下落地实践最多,也是最迫切的领域,DB-GPT目前已经实现了一套基于RAG的框架,用户可以基于DB-GPT的RAG能力构建知识类应用。 - -- **GBI**:生成式BI是DB-GPT项目的核心能力之一,为构建企业报表分析、业务洞察提供基础的数智化技术保障。 - -- **微调框架**: 模型微调是任何一个企业在垂直、细分领域落地不可或缺的能力,DB-GPT提供了完整的微调框架,实现与DB-GPT项目的无缝打通,在最近的微调中,基于spider的准确率已经做到了82.5% - -- **数据驱动的Multi-Agents框架**: DB-GPT提供了数据驱动的自进化微调框架,目标是可以持续基于数据做决策与执行。 - -- **数据工厂**: 数据工厂主要是在大模型时代,做可信知识、数据的清洗加工。 - -- **数据源**: 对接各类数据源,实现生产业务数据无缝对接到DB-GPT核心能力。 - -### RAG生产落地实践架构 -- -
- -### 子模块 -- [DB-GPT-Hub](https://github.com/csunny/DB-GPT-Hub) 通过微调来持续提升Text2SQL效果 -- [DB-GPT-Plugins](https://github.com/csunny/DB-GPT-Plugins) DB-GPT 插件仓库, 兼容Auto-GPT -- [DB-GPT-Web](https://github.com/csunny/DB-GPT-Web) 多端交互前端界面 ## Image @@ -180,7 +169,11 @@ DB-GPT是一个开源的数据库领域大模型框架。目的是构建大模 ### 多模型使用 -[使用指南](https://www.yuque.com/eosphoros/dbgpt-docs/huzgcf2abzvqy8uv) +- [使用指南](https://www.yuque.com/eosphoros/dbgpt-docs/huzgcf2abzvqy8uv) + +### 数据Agents使用 + +- [数据Agents](https://www.yuque.com/eosphoros/dbgpt-docs/gwz4rayfuwz78fbq) # 贡献 > 提交代码前请先执行 `black .` @@ -193,10 +186,6 @@ The MIT License (MIT) # 路线图 -- -
- ### 知识库RAG检索优化 - [x] Multi Documents diff --git a/assets/dbgpt.png b/assets/dbgpt.png new file mode 100644 index 0000000000000000000000000000000000000000..e99be8d9afb5d23d2f5f4a178a04e4d9ea835507 GIT binary patch literal 250286 zcmd42Wl$Yk&^8JLf(0kR-Q9w-aSaxNTX5gFy99Ta;BLX)-QC^Y-R+l2#p+cL?kCEXF^$aksc1J3*3aB?Y9^27>`lx~E*-p(e7F4)`I7b=YcS)W zUaXbEO##j=^{vzs@srvUG$I$`1|k_^7$SpMa)b ;oSt>BKUM5aPIkj+9V6-YVIYp~szTsSxt#R2dw?VX?-pbte<#6|u+@aX^$e!I% z*0Ic{tz%qQnB@!0s0%XBGr-Ul_u_v4U{`g&VeN{6!L>}IO!MbhuUgnn#0uMOR9zu^ zpKFL?9nuQLicytpU0D!AU)|zeW_l9Am}S$Nd>#TzKtuAw W0w=!yuaq ShSaPs NHs;T3m1=g{#a@K!X-8`RY$E^iT$4 z>S-UoOFUGw0fuO35nhov5rRBY8BRt;y&@~qzOPFrA$b5gMCw;_F5Xn`7IXiB&;}O# zVg1o%X85EyregEjh2w`R*Imf51 yt{zvr0OtX@+dB0OMUb88i9 z6f|7)yytwR;V=Ar{8B?wFiO;~OG1?$T9+%Dvz~`^PdBgH!XNBU%6>^QC)m;3t2bI> zStnU7-0ZXtIhKyA$Te?H3 -gDz#_=tZy3N5`v}8D9uRC8t44W%+-uqEfyLX zj;iLgim%K5lra~mDcpE`u VS2urWP{$&D7N~|D?5=LR(fo)qN%2CH3*L zMY~M@?8^P%sq_qKY0bgQI^#5>r=v)yTF3xFysO&(wfDI9G%q% Ek@%=PyEe$&QHDIdc@ckV)tUNudSOZ+Up7rA z%>;1de%sGEW;?QnwTHt{uW7t*b;5DobaWQLwZer%->3y_+_o;vH3QC747Dc6YQWap zJW@X$`k6(|HI`Cnv^kTUh~7!Bju_QlTC_B3+C5#Rayr5~4xJXR71vu@wLKyw^Bp#= zG)C~kIE`O0o^GUyEsHVWWAMCAvb@3GNc6~W<+F~Zq~RSP9JXA$EnlT!WMQN~eS4d} zuR6@V8T#e<@G>)zzPxtz?b-DFW|Q5;(xKVjd5H}fVD+Z?+B9}H#Jlf4{}6R?F`S h6(inxn}7|fv?eyj}k3t?m!a{UGotbht^eEl_)S*G j7(hEzxc4L1>jP-CJP>>e=lTgR0EU;h`JK8 ^`7(bYVuz-RS_;D(1O57AqUrpK6 z&&9jVH9=vK5aYP-a+Jiu#MQ*qBJgq5>Vhb7HGZ^o)KQdvIdNGc$&*>`51vM&!v{`h zsoahhj(OZumb~s3dw?_NG1t*M_cPbAhnBIcl&|@+>8<>p#Doy<9)&*qiwYC)_JWYY z{O=uvzrCvQSD@d0mN?P{M*K(uF!uw10*-?G&S3&*g#M5B-XKTL#<-N`x)8rVu}K#@ zq(Cp2cMkqTBEk}i8x6@D;rC|D51DhbkN@6mP>{W+h4|HE4;$hSgWh|y7f755z<+5f zz^giK+Lmqx?Ojn(B4@K*-&G+$ Jr0 z@9U9YE#mYY#s8h6H~^%HoHVn-w0D#U8jk;QIzW4GG&N72+u^vpr7Eel35Z4Z?l3>F zyx|#|$8QVxy&>4lQIBs%u45&vlTBpOc~dvBPfQrO5G%vwY&G2b $5ws z)3O3RDv7uTUq3aDM!8dYP$sy3U|Regjfz`CQY)7N7lCM0x$smHM@*;@*Qv2KmW8SB zyg!l)2D5=8H;|W#{|HuKlWEkcv@dm_!ZERF$dH=oJp+pzgh`BK$dhl~B>_qEiJwp; zkT bbu;+6|USz3sOUJqtk7}Xz!M|WL>>b zS4nzjb|8a_q=ZnqfTjKZogyn@!W~u7Gx|$7Z3%_wb`WCY@g0(N-+IhNxEAjq`g>~$ z!wpVy2Z`(+s)E89ESqBt0OzSCz3_cuQ}laxv>-BMm1}_`CJ*tT61L-=v6fjh{+&Xt zHeS5=&$9DnjnwatlEe=-0o@bO7HNh! }Sh;__xVt+w2?R;-54vOo`GO z_|8DGgBzutcL&s=&{jayD*3hlb%4Px Xh tn}QL*j^q&w@6_wMJ1?3DDnDdfrgEhp3I3a73fZ479Iw{+g7admm$RSB=V5qd3e z4U#~%Ty%3FV)&9yxGZA=zQ(2*JKtDoGR}~^>kb5AGa}E8a3VaS(bF_G=3IDI)zd8I zUn$>p9)u8kIN)}u>@qCguAMT3&uS6H;u8C?Pf+sjZ%C@&V8!K4CrGaAX^duo>M{Fu zn>gw^oNpoTI{kKM$@ZJ=Z{TVXEi%>WIxe&b{~>8RvQ-VfO()Hr?^J2u6tirTJ?HyI z$`APo+!59R{WCl1s4DR{>Jl-*G1Z@#c=Ye8A{cfZe#gJ{0&_e?y00tm#%YnXWDi&x z9RB$|(-FUc)VLrGJu0IJn%$~pozcRye|P2iAq5E|h4TO#6E6DGXq}&Dh~C|Rdz|2N z8oine&%knDu_J5s_1ei1WwrNBL%5x6o#_Nt(s%dV7*MJiQH_81n~Lr|nFt}kVd@2g zY04ovNY6_djR6+i%P^DPvVU6ModoD2y?1%NwV%L|^^)&FR8!%9Y_ULoFbEyTEx2E^ zTZ=dK4r1VqnVSFgMt?7w{CZ|dW4BQykX(e&rQ@aE;i&Ja6d7D-{dlGR?|o&yxb+&? z|6wTnjF6p2z4o aza3eR(Lt9Y?;jz*8{SaP zkvSyUORv)o1y^G~DEIH%X&;i5>%CQ^vlB?Uzx;^!H$b2tPP&NBTId?>sJB*)GXg;h zA{siQ+#9RS@;m9z!Ti*Oj7BqQ3ghth0{>db_5?7?JI7=0*$iF$HBFRgTP3v!#pM0a zBjqnd?(!_c>nX_h&XUz4V*@c1vZ-A5GT0e0!T;Jeq$u7~7#fjGLLax&ata89@QbUF z+44aSEi-lJPj%Y3OkuY0IuDW8ylvXG!pgtBGKVXKub=}7Nq~mVzFNdldv5zMkro(U zVk4{qbqcGeg8%f2*p19TCqIe?aW!`;Ihoc7?()Z57RKn4CP=x5wdB5{`^YHbJ& 8EOsS*fLynFR47fq_uto^;MFwPV5YyN&de_ps3zOL2S1K}@*f6>!XXJkWC}P{ z?b?*wRVw%o^G^wY)aav{%cPd06r6ThzG^rTpKef8`KO-#UyC7Zh6LT!xdbyq{+=Wt zlmrGo=T2RX%mu>!BtidL TJf7E?>Y&KEfgJlr_Wp_xPQr>G1zpqR-2R8K=YJKZ zK|(xNPkE14ob!H|59FVR^)0yZZNYm# rk*!NLkvgrTM+ynB47a_0HPFRo#l~ zjbF{s4rLmJyxUG3!@sOp`)~f3`WNm?LCU1^0!#)<1=7u#_L5(>(j-m>6=^>2++8;z z;@3T>-{QL(&Kj~+8A_>V+bNVVa~}STtr9N{t>q7v{IlkKpHCM6x6}W<3K)()=fwJt zEk)S**Kp3^b9RIHsfo(1R$hNjvAw*U!PfCLy)_-2Ha0umma!i@+KLl!IUEkLKHUdg z%M;7y?I!HB>|8cOWidMilhr?5#d|Vg561GIOrYgE;BmBWwO_O$rEyqoZ+B!<3`iuC zBcva< T~p938?<_`!2K54{k@Qqfs%^ zN ZyUmezZ?PEG*=W%N I`E`H69yo3tNhAGHG1W%jsIRcxp8_$mwQ|xS}k KVnFcLmd2SaMkUM2r|7UijVAkd%0K`A3uKPoVlX?P$;|WC==<`JXRSWd4=%BNKpp z -JDOawW)cMuOn{QbIs6+)8Z(j!MgeI;Zf!5_-W)>Eq=vNpo>cN zY{ABOx!W&XD8A#p8Zg|7VKv+N=~kok_PK0H`M@pdN?$TUHB5CQ1g@`!UjA$|#XA{g zd$sf?golHZ4Q>qSf>QbkDgF6=50EGLTwB^gxmQ)imRv5J$m@PPv??=){^`<=`d`uK z0>s^*5n%0r;JB~2cHirkV@t*8A=UJyQ#SFPhC30nbk?iVi+z7=TfO#|HaNLjDU)R7 z0rj&@4cc)TARgQk9AF1d-*BSTY-sP#4_chOudy8!#V TQf2b%z92pDg zv1GqJt2{fu-j_6)?_8z%FcfS6zmX!!zQM2m`yO#mSa|!Qm{?Pj+;pCf?CP-_IGTDg zY|GHHMzY1ND)?Ytv_k<`LsfGe@hgl*lsk2yZHq!SLaTZOxT*?h(=3M9Vq-IBifLCg zKRxs$_iQ^_T5Dk{Q3k$ZjMWQ_d~-sa$ops9!h|r| 3)ECo>$Mx!Y! zO^y-OyM+MabxE)C?h-96Bfqp~Ijp?eHsfAdPo!r%7WgDBMXtk+M!)Z#Zb;W7L>i-K zO?q7y<%EyyIJbL)@w~FL*MAQEQiLOSZ@7`J4siDBU4Ib^FPbQkt=7z!G^6QDx-EUt zLgZC-m|LEC;!zuG8gfu)23K0)vVXKY!}9dFyuz1-F;!;?>Qu{K>B;;D?rHY~sr!K; zB5--J)?8h ?3wLTRgQ)!JkNSTiW9DbH)< zC#Z_-)vVZUzO|sQeD=HQk>IuG1orw($R2)0i`% hX1H_s+Px*bFN&tyc?eE2nEZn3i zl%~EDu4rf){fjXe{y#ZCX&v)^JTTADrN xO@%odb# zQnKWGZu6;FO&}<}Un q0S-^nsw{p1XX!OI7*#p-j#+5_n$6oaw-;*7`JY1XpqQYsV TaDCO7&;Uv!4#KOJuqfPIxMZ0S+3W^%j})@|Pdc z@!1FKng-#A6B*)F)Xq}Bi&Q_X=G2|>g-iXqiDW(8n08cR(7ydW7J8sd(CPV#_rz+H zd)uH%E!a!ve;_}kJXfi}gHpKSmiv$RDh$esj$Pc6gujhOk%&pjR~o*I4Riij%y$U% z5+Zb*wVPEQvKO!k*6^~Or7<6@cC$w~GKxy4Q1@SDM`wY`d%3?uBY4r7Tzjs4E5&|r z#H${Z>m+hot|CnwjigsPf-N79Q -ixS{98)@P!(yCKc=TYO)Rv0`c za&&i9rnG>&f`eWgFYi!>`cG7&4fAXiOiYO)(!O}3KY)s}%9`~XLro8nfcN=!$ua^T z@Ox)ls8~QugdALHx=4XTDYiT5D8W47xt2w;x7y&cZ*>ebJ*MJ@gJ_i|%y8m$ChstF zM!Ze>rxNPz;n2~nGY6FG_8KBYB83fs-u%xl9KJtYt8ti%6T&OadrOVRjnt)faGg9$ zSmctV4ZREY*M* PYxBZ-c#*PQ%+MQc- z>{EMtz%Ri4-$aV{RXo4&lhw<47gDiO$+sBtkr`zz%{-~3t3zTuJ`Y2<-*oDU?kb~1 z10SGu_uh(?%YHW47{pO4j_T;y9iF2aTdS_lwXW(McK_Thg*}2@mTv-vYp71WwI20f zj=U`*^TZNCjAqY$u0=?^bhit|zY-(eZM#jC1F#*#Ri#ADPPl+#evZ@dqpCFp(%4%` z@lG8jFbvOB(|C$aj!+CZPGG}!1_*A$gzaR#d%BlB&ao&+>6=H`aP-$&!kf878Q$-4 zUXuD_%$pph{?e2Ed1TO_R_321 xobUmI(=%Ye8dS6G)&O*Jl-np9W;E7FelPD2;z0~Wl<(m5I zY0y#0)68H=!2O;&(W(^MDZP;$!tJZ;^)&aISQ+=I) 9S-%L=v5^YFzb7`3IV;1jbRX-m&EjRBG^pVE)d6F zoeF21%YE@H?bgg;uv;1ZBCkV-0|%Ooad)%%SRJJajl#bQqS0LeM`vws7SjcCQ+d*5 zjfX{Y*`iP%+?Q(2OUJv2YRu+Nm+BbMUbPWrp$s&d@Y&g}v^-zzhv@2JX_QYJk4n`m z^(BIj3X5;%*QdN)qb8eh>m3V$3>F#$_RaNnt-}{L@V03IWpvfmbGeF=Dc1McypF|j z0jI6hE=fheq*0#VZXY(gm7OCW!d1thl3x+4BK4Qnt+$Fa=>t}F$oC6xhAZJ+@p!Ot z1_Coi%_;u$DVq&WYQoQ*yg3iGJ(H+ijeh8(tI&Fz9Mqtf`==+QKfg-jJXYw9AZYV= zagjd()%(6@i-wub6hZM0;aE0rsIQN(uL)COa#&@Yl};zvZVDe03)_v<90{DO)dI1S z+TLED% Rl>)l z2=&SA_D8o0r%91r8d9qhUfq1Qt?G}>f3j76)3YhR0|7UNgF%tXOt>Wb%JYEBSiYf= zAK~aTIX_OT{?N5{l~KEkE(??vsq_9k%5*jR$ziiv+q^J&H8$ JsAAAC)rJ%3gq_kXI`(!HKXm24 z(g#Pt1PlS8Xn35g-v(op%&@gAa!|p$qw}q^elhXK!->2nIOapUw|ngd)Nbd$eWYpj z@)AqZJFB?fEbmjy|Dq|wM`^F(wXnS?+hQ%4e-;$ak;M^9D5$9i0cJjFV(9HBL-; Ek@hEc2yW{k(npCx>sGt&lR^uwEm2p)OM3Db3`o@}qTDDmGkN>Vcj*h1C3H z0GuxyT3!$i36^gAZVN1*On+`hx%i2>H=HCRJh>+*_sNB0^54xgM;aWP1HS#UfCvT| zEp&9S+;Bya?xt(KHP(~D*Uq(xMj=z}$8EPiUTH8S@arR;N_o4X$KyeM;m;%M6D^IB zy$LY_5pLIu9*nn_JFO3pJ^COAh4FLWD2PDvIE9qWa`pM;ZjEH=WT7g6ahUJr8ZFAv z$8w<6{Yh#AeR^lzH9xu)l2NYktqol-b9d=Ar=Kd3q$|Uatl(k#0KWDZ;BtRYwaLCW z7(F_NL{BwZ%JmO~@q^NPd)(#quI&xvAuKw5VdGIk%+c}}EE Of)cJjnP*mT-{E&0+4JdbR+>RMnRL85b)v z!8g;D#+y(qmM`=g^#(& Uzd1mK#e?Q4~Ra zjOtWqkHu5Or70ij1h8nGj0e+pGxt3H`A`22s;)%hsv+$)?WMVDlt2>^@|N_`Ib4mf zgDQ5rO2H4d$*0L6hMkoQ<-+V7czKM+s13$Oj$-`0X_CKUSA(xb6@VLy{t9%Cxj!r} zi&QRBE=!}3#UCrxU&ZBhb2=9s%T4$hoH=Wdps7@$D^gkyJGEtE<)(RyK4tig)JpmR z_gONCPC5A>`V=OFfF+HYl?OS~Q0rq;jedGiRp7Em0R88j_mG;yeY~CR?db})+3cS= zEzcF@P3w?M$XvpbzR%x4KDkaT?RvIE{jBkbK1Sl&%tvKv?fKy TEAL{&;C*UrGpW!ryyAt@`X;V-fH815PGzabF@C% z`Yum`BqpZ4x?1^vb6 9i2?yEomEX*qi^fkD>FY?@tTX z*r2z}SLjKTfs7T8)ihS?7m4eaf0@c(K~Z5y(`V(I9L%|G^Y& daB zBMpCJ!=mM8cMw`)1!Vb-fClCF46vwB)o5H241L758|25kt1&+IrbfrJ*M5?SdpbjA zxrEmHO?bEP$gJltLSLNkRvg8`aS!Op3?*+*mJ$>vPYk^v2mMx#N*gR#+|ejGT9eXn zLzC~TlI$S!8=9T37I9^Xw@=G8uoXd5M;N31GFhb6)@t3C%w>PL6~SjQ8qK69I(8tq zL`sS_5t8P9tJ*ePI7O|s%m^Y-E-87t`Iw2a=6kXX^ALmr5bZ6MeL^s(6$%{BRx@k9 zi@n3x^H-vX^Ood;BBn)|it F^LMsy*?bGaG>+|K% zuL_k8vtc+uip5Nk;;97S02EdD&f7l-2a$U&*ITnMTm8xhTh#}Jo4UTV9=fYec!qW& z0ar3aSlqGzh$hD~Q1?xX8KuG>l?o=k-txmF*WPxM-;aYdWtf`1b=wPe0YlRiyJPZn zhsh%gZJuq?&@tyH%wpC^g!m7vx|b!klQ|MY@pN6!`Pv;mhG!u52uN!M^a-8)B}qsM z2#6ryd(BI>XxxsL 9cg+mhI}pTkPpI#+h~k!V_+&y(1{nw_pbJAc1- #o(c~Yl&6fG7jTqM_#Z=kHi^>&kM zI!h!3Ob}@&s8guj1f5{4qBS`HiJ&&Ab<{$Z=K}IKN{C`bd;^{6W-pFqw6*TFd#4Poh~x(e$q$~75d^RZEsaa z u1CFjYOlV(n|uwD z4@h3&1pEy-OE!|s?syVvh1InKEfnp1wfpjTR0b+@*6sv7qpF~0 iPz&EB-4b&CV$NeH+*(A;==?RLjh2S(q?9CPG zz0%pl4ap!lrJMqCNa=t`aiO|Zmtq{$`y`{Z4%Se9M&BYT^;+6^lG6&@{^;#nt2WrV z(mqyeX1@z#7FgM*7bTIaMu!tF;5_463ntcz^ImG&bIyJ^K%_sj?8RYW&Lw1CDBb-w z$xNUZ3k1cfPvIiy{b`NW3}%GbDu!)-y&_LENG8zNUK|V7Rwe%nOZ=@QLZXT*l>|VQ zU;L>+xBA6AOC!~(DG9f>GtXi)3XIS-uudkwhi}z}RIcSD7cl?z5ur2o13Y$>VQs$G zirrX ^_YwQ7JNE?i!8TfxoFs%aK2>VvJo$~PbAJ_ zUB4ogd}~F>#i7L0A9xB_|Jk=>(G=DMlQi67!fv?=d?!l*rO(8X{FSDF>$iAyiwg8a zy{f#KG=S?*w+oTvfo5!)PfaGMr-E|i1;KP)pQcOH+0hYVv6D?ur)BkVeGYUdH%B*C zbW3}Xf5bKoNmory$;$$EcD1?m*-RpebF@KDD^xxDtAU%|U X1TNTcF@0apS zzk`IM69f3jb|JV_A16RsE7}@12F2GXwHnig9ciwhMm^bWQvki2I$^8t8a-O-A|0R8 zxi*AC6KC32f$;M7$|R>roo;>h6=9H1Dx@=C+-HE9Xgw)iU-@uC^zH)Mpo&|7>ba$v z>1C~tMfSN&D-N25v@ps?7iNgRDCR(bwLJCWMm!5O-o{9kKJT=&F1&EL2J>>o4Cj0! zfWT$cEStj<6jo|gRvPV9>y|7QyQgIN%%|AAAAe07umfO^Qnwu|sFmX@b^KSbRV0GH z&z8a%-16Se>m{OFf8M;x{g!n)UyF6q4SZy6c)T29Xiy>h7Hg$0_yE}?g~hXb9JDD3 zT&V0h-6Vbt!}4uF{+42&YHJ`Y>qVg+_b@|#Dr)+Al+7QHP>@oZexe*DCh #7D-+#hol?Ox z*`PO%4PTm%4|rf9xe4conGFW-YrS1mtWs|pmUY=qE-RAWUA=8&(CP)GHOYL%M|RSC zs9_&SV#!yZq<1?tT>R>1+4ka~wAE`rRJF=x5coUP9G+J-kEhDrl`yCe1a9{yvMok8 zdqRSiHg^-RK{p$smXb_f?hLI&r$AX!Ii@<@HeNVdCF*8U)_ruXH+%C*P99;0o$KFO zvTUnyh4uDDfx|av3lPrz7Kc0yGqP3e+0Y}kXfB1>1Txd!YVs)(aTJ*)Q9=;Up9}~F z8Eg};hQdziuU&kzNzAXAJ_~NZj(PykQDKGS{&;5E(#I=; ((8QV5WN%!(bc-V6KgOVI|BmQ#_!-I5QXGecqQeiZ~@Xqikz3EFhbuD8H1_QZYY zEa|>NhH;d4ksyx?kAsVo+V{m_=>8F*L6lx;J) oXvn_mL?UUdQ>K&uDEy23+gEEhDld{a zvs3SlkDj$2?B0gHWZ?rk(svFgi CVv`|8<8d;A7S!2~f5Y}{^r4}e4DwO?9MHVNA9>uq1tjn4FCtVBL{8kpQDIc2f zxsFSF4W7=DmX_RNK;J_BY3!h%qyMl+Yxt@%>(mTH=3pGVfTXTvvOAnBJEP%o9vvnB zG0}9^dbF#T*+s4 #O+w74)G8LFL&mg zWGUo;m|W|K%76@hqHJV1mxW3LO!^7nrb^rOq@?@fwaM%stdjtqk7DH1-%;)R*!+EQ zDxs%{o=3}viKkI8I)8tUqu2Z`eMbq>MLQ^mwuCL0KoB CUsrnyl5ytigbp$hJ8#13&@(&LDW-U(M zlBg<*9kI@TacH5g!id48HDf&8U#Qx%9Rmbpb*!ClbX}}na0E8MGp^W8NvC@}79I^7 zjEO+-m4U3N#&iZw2($BLUX#s@Su)7EQEw=caQ$mMcbea}I~2Jv9Bn9@`J#S!4|9*w zC5Qw8t~M`NM1y5~=3tCrYBJ7OC%^w%%O}hGpx@<>F!D`bVgj#@snkNStYW8w8NQ3A z?h|tu#bC`Ey)6tJ#zdK>EPWk5`v|~)0dXU2d=bc-P~&=c3hYEn03@GDAm1+aCfS_f z$}*Y%qlrzJ8GN xfNd1xpA)AL|$*P>(3JFCnD6a zvQZx_cme0{&XKP7IGi@5-mW~KUBWvh;Ed8K(wuz2*z-tD;jtl6^ci_TFze5NFiX}V zHmfNiLI!1$lrV9q0VoC9=7gd~%H!%5aR`eBVnLE)?*^l%EPgEPs2YfK<)LZK{-rX; zTC6hxg^sppC>vD(dCMTKh8vB(Vy!N?4Xm3xrH>&OtgZ2`bOqtD;~o5aP)Jp256OO> z4gEZpY}sm}%i_A}Cf`L8!NctSXm_jjFq}3mogt9~fyZTMb@k7Jm^c;WVs-0QZyx)7 z>3H;y#WIIr{z%A4r{z>19^mEnKrLy9BarJJ(p%wto0-U|Jiq;gx dD!I;bFN+u zNepE^QDsP+5q4G^Uc1Z3F{00=`xJpwKoW*6bOpM@U_2TID@I!py*CF&wi@m;HK9a3 ze3stO-=yk1sM!yHL-dMiM%P~`(RA)x&o%+4jc;xTO7o`rc&ct*;WYn#3g{yn8zN-p z?|(FEH%`JsbV0eSEZ<9Yvfd;uvHv(4VYHo_X04)i4A>RO9w}r})*lVW((sxnQtpA? zRTA2M!iumzXVdF&pPjD+)NG!+gTDDyDbeEgYo7oYv-SQ#a`;g2cZW(+i?uDL^B5E% z;9x&*P*Xu5J2@^`@Urwt-JUfUX`?dfL|e?w8AksEb<%gI?WdT4nw$q1gJpX|vE-PR z$$HV2pyl!HKP(|A`(COe1%K@2?w8WRaCuIXN%DZTI*6+14aYOP)s^to6+b6z`}p0% zEO1-O1Q6wBj|x<`3q7ZBWd%+bxVvImk%>z}fr8i%BJXUmh}E@B_oPaLCWn*VQvWEp zrXqS!E}Y^Cndq {Nw^#)eZr$ZR|qdM(;p4<21ry8 5!UGJg8{o z1p4y9s-#mr-xSTeiquOpqR@N&XwqdA)o>oEFP;@dLzI@8&C5pFeZC|{`D{H h3v=MO}M zPM5zXNRRUsshMgkjdQoBQ+v&<*ul?YSTP&!Pq!D%H_ZfL&+$*I-g`XI;69FHrw~m8 zv!oCL=u|(tZBb%Qjt4xm$}s5E>MTy6j_B9-SX;>)jpH gcA^7iU#e>6*{S{b`mOO`kQ?2hI1cvkW8lQ#oL>kSdt zL7C}bXuZ#Jtt;(j#kuV~4>VQr>P7w ?=H!VkH>Ctj3AvHPbueP za&A@@mOrc)0r2?gjHS2E=`d`3%|N`SwU!gaK(=#F=JmoXtLA9%qpe4 NR>zO$h9)!X^1tB;v4YZ`mSR3k>FTL!xe jE-*yLF=jQ z$KDjZ<@$s}4cjnIEK3+yzMJWZY_U_bH6n@6kg>mYgaTxq_Or2A_z*MGhxu!P3qZu> zDkDo6)|_RbFAT4{Ag1YOg_}s86c!TxbAscU)^M6;j=0 (PY~$(R=M !&eBr=0Z(q$FY9rErrl z^1R@*oxtVHDo+?l ?(=VQy{o1@tZ#(ogZ zy4)&HSKQ=qusBj>VW}${Acqu?;Z&;9x*RP9B+HCrhhIOJME6!h8tPBsuzsE{oce^V zn)gxiFwsCUJe|im7 <%}d@;aRp7MGLN zQZJeyfl4 )FNVErC!@& zDD zsO6)YyxJW-S!+u-yY49Y%<0~C(3>}WEgBX+lNs&9pLN)c@u7*0eEU>RN?N&818db@ z|9dQ`ftYH+=4NBe7b}iyfJ-Z*F?X}WXXf29 zt+&^@WgD~p;37Q9;|LV@(aM@2E?hFd%ll2T!va$3&}JXIz@D{7gd =&>h_*vuAb8|>vbUz^ZkPo)bmGm-C4LmjGPInR1!Sng30Or`e5X^ zJn`G#Vx@89Yr@~cM1^P=w#2l{5z<&QCFF-JJZ^_Yf0X?8Jb7z~%)Lx#Zl-xw_vXXH zV$atD3YNp3;T(fvCHw*4hL7Lgw >KS}ZI-*^ho!u(H0^W!Ltz*g(6=yJo;w3E?8hS^?QqZt zxZ1w>hKmg0m;=a>nUgE#XPbBo!AMhHO^daxBOq$}@eYC@Z2K6B#XM`?YV7%S>FjEE zgeAY1V0_A7Dv5>Nd~rI)8IirBYQ2P`7PuTqA{u&KeChNX+6s*ns$ryxCeGYOpo!-( zum)Fv3pidb&``N!I$QKvPA<6K!41kOL(}CTckdQ8Bh&8i-YZJ`H>=sJ!r5xSY%`|i zOc5D^&^3`}rf!cFE2 Dd-Zqsfp?RLEj z@#*xWl>6*@n#Xli!%YE@w6P*gd$d-T?re{)HG mIm|P06qG=$}9P?PC7M6X*wyynLtzSqe6v=WBwS4J@_4<>aXjYN>Rq zBhfN&_qciS B{nc%E!DyuJgLMEVZZF&a!`xd(#noip!@&~V-6cU1+^vD&1Pj64-QC@t0KsWA zkOX&khsNFAg1f_a^FA}r%)IaX{{Pmxi`8`BuC7~E=bWlKd+)LsPUFy@@+fwNF=a{_ zOB|>k^Vu25?8`sO7(PbKkgOddtS6AFzOf=TM&P8Yei)>Mu02N+OcM{nZZgL*oj-?f zE8f)go)+B`F~;XM`+T(E%-@C3YG2mI(t-cHmNaB5%X|-Cadd1o8Iq+MInL$3kIs5y zUAKDNbYSHWwmW?g-Ul-!B)<<=JB^^xdaDvY$A_Xn^mHfASLE(I{61NkPOW^5OV`)B z7av$c^jgo~Xi@B |5FP<(m$>#8%7ME%H&@KCI6X#UZk~m z1ioRGx5FrZHXb+VS^6jsuSilSobbFBcw;J)RbkNMz)8?FRjT~}qt4Mkmx%3oe!M6hn7#6I%f(MI8cvJ;h)EM&Bw+tCnX)1e3cuyp zKdNJDI&|=4rn2o1TI240=-L^!F?rt)Ee<5Ws&HN>xNUDI%T}oN#c~P9&KK+CHA?AO z+Z+twV!ec=4EK}iH-y!iV8Wi@pFcW&P 5EysH-iCRT59jFy +NmAmlY67{ zgznDqKsS#U$43f9CJcF3R;#2>C1+20PXJ4P4V`z-r^8#ik*9BiG|)(;SZQF{c!E0+ zlF1gDki@81;BjREhj?qBYzIfRN@yjAsjZ^vJBRg{ nbodT{B6@E2 z4980WY&AynYB#UUsTLSIYvjH=!I1N$sm%M^5MviRLecjzpH`9j$ d0?uo zUhb`A!kP8IIIJWa4<;H5NbO{QgejCu6{a?jHJHsX$w9doA#*ky%kJoimE^Qpx)qaQ zh872&0nar(;)T%B98wv9%V2Q9W;$pz(XZSg%B&9#MBvg#eHB*nd7t%rSyL&PPqBt$ zlVc|5$(vDU0vLQXT(3m7fPg|ZoeICoJ~w@31!Awi5J8(~$rz?lSog(Q8YZ8lsB%8o zT`3R1Ruq+CPC+ r>Q;lmHYoHw%ZZH~%7c~b}3EaUBgcy$h1c|?y{-tV|_9=7bpqn#9g3R7) zX|E6-t2?=5HQS#CmoD_>axxY`IWlVfICZ}IZ69IS7nAPMevtE~nu|t`nB%vg{ (E* z3<2-7VG0(9En3>IYeJ<;9l~(#4wVD51Z4zstkPaj(Og!ihva0&$8^wzBCTa^*ljHO z26d&{KET37t^) @Gt Jg>p|CTiYoF|z!P1}%;w$NTx&gv(oy>e?Yuf{-4u^cX-U8NERVGD-y9Tw| z(Yi<|ciF1JQu`>%&amQTk?2LJ*42(?!l!TVaguXh#K_+P3)_VF(xip=&=_* e|| zg%4L`oKEmm+C)NAwHX*-+4OE8%y?e!9m`4g`|f7CuB5St&!-hKhic}8uI>*pwLSKK z&67?RAI V!=H(0nVSC;CSFR*4Z zTsX2X2@HIhQW{bT$Ps%S1K+R-w>-rxo-`C@Y9dI}gYNgJY*6<}L7pq#Hy|(%#T`>L zk!3I`BP{gfFXcAY&%HLmEu)|t{+wi~(~vPUP@nv*E6m|a2~i#KyF0_U=(NvGawH+k zOEhQN7>eAjqjB?%IM>HdO8$> t zaH+&fWlreA%ECpoTHoq@pJupNZ60`ld-2Y&ODw=wDa?7L=jB0noKg&duxCPW#w^S* z>u`D~_Z0@Ui6FgZZ_N(p=JY`~FiCx9TRkL4!bd4QAOAMV>*2`HKhR4z=R$UW>5d{G zWTBJ)LnHq^Z9<)Xmkx8l&pUnxZq5~E#d`bAUdjiD7O=a^tLW;!*9o@|C(8wDxvlxc z2BbMlL_71_V5GcwVCov}4*i;tlg!?tI}Fdgb)Gmu@6+gNQCaKx#88>vkP&7|t!7>6 zb=tYCyXC~9SI4l9{H4l{0${y&7VE mds{e`DC?$LFR!GPvrgrjv%g_jp^($~zqfVfN#Na+!$jg;~dafdSH!b@F6W z#9-lsLK%BoB1oRbs(omK;d0DrVmjZ6G 1KdXRQ&$oC9hXGHC;_l4dMs8ixHMJ`9j>$&`ZD(6M(ZeNzq+pNyw zI5YWOE_-s5U{RNE44N^7Q5WNv`;%>vU+ 610?J_j#4E0LyD{Bztzjd1LF9ej zE#+toweg|e%>ureU?Eeb)XTkXI&HdgZkzDomO;wobkxO%O!gg(9C(YT+;>%Ar7SLi z#uhyBeW-r7b2P?Fw~1eex3Qv8)>;eCM@t~qoy)`lAa~G(0h&hGP8Cy17-446QT_s8 zo=Ntv_Ag}VoU$3*9kuxCL1YSpR?bTSb3?JTXM7N76o@H+CL5#_i)58C^>Z+sBq|t9 z*;oI*kryk#?tI=$8vB}xnE8i6>luJ$VTg8jmxEH}F;H7Q7${uoX|tm;B_Lnq#6-St zyW2^3wzn+Z4M%`L&`b7FxaJIy5rGX 3kC y_pEbUV*cLyiNbq$PvMSm@e_ih~%TTuh-5a-_VljGdrx^b9Wv-wz zBMc#hP#-VQu6^ph3r$e(WOz8OA>oVW3U&N(2r;XZ*_z@a=a^e-j|*ErY%Qnw_S^GI z!&nLVaBmRy?MS1pW_}jxji6sjWU*nsP(d~%8$ukSjwJvm62d=v`H=kWgSytvip!Bq z*KMoeb+Ad$FlrjTPZ(qobdka1xKl5T#-T`|Y_Ga$&SBL5nUvn-m+zKY^-Q4Ox!Ndc zfjhj5_roQ1ghZS-SI=6~kMmk)mO@F@GKH>5I7L5+=v~i zOG4iR1_m9^r)U5{a1qs$*p>7aN~oAz0VHFx((Jy}(hbETj8@<1v@cwPgvZF<@v$|7 zYc%ib^l5t(7{4Br4x}csu;!m4h6d?QR}Uv2=sZ`}yL8)0$54ES$}mTB@j}`p1K*$# zS~+ ;M(D*%4uGmH4IsN!Fd-t7=>&77bhaATkKUOB!f@3Iy6l6elQV6rlU1g^ zEMB*f3JMD07VgZ+901)A;hbGoc1j-Mbzu}i7&Pa_rhL-NX;-%Ycw4R4ux;ah0TQF+ zWW^@T&fV$8>AGwh`}$(_*^QZYw$jguQdqr_gS)M3PM%w#)KytdZTedN+LnBE@mE+p z2VYT)F6Op&N0Tn!)@LqxzJ~eG3Qp{3<*=-^>V0(Vy1&}_v1G4MVfBvqK`aWh!fO6Y zXWioCp@IVSFv#kN> gL2sfLqmUqS>~A2(MS52>i7pKGrv^d<+?=|*s!Y<%JUjvmG-F_ra) z7nlKpTB?zG$8F9wsNY~yHzLvGRPs58l1Gx1GYhY$`Gs8=4YU0b4v8S(Vx!XMCc* z5vR{%(c7gqxC^`#*(lMdu`X)CxfEI^-7_kt8X%LL+AWtZ(1qjS76}B?n0uf7%9|C> ztP9rps 2Nu?dIBElRZBBcjahgvi&%P8 yOVm%doAM?J zQa`=l^nVLxW5I6KsQw|HTw35q@->TlefNkq6q)22`cYOts+o|>BJ8axlfUQ0pDFs4 zrXXHe_UxRjSJmy}*{1I1N|AOG=Q})lH9cwy*|ZD{+^3m1C$4 Pbd^EdelI ztxs$XCB5o=*e8zC#)uPYQk3g>cT`ce4%^679LnN( 9Xg;NrfoN%EFkP-u_Wa*Awapys8Bc(;O;jpdz2U%C`ojRtI15vy z(ZC>0tq;qG$r@*8+K}fe)6rTE*o68b>*8MkfcTr<;36xJgXpNZTu%w1;l-x(;T_+? z`p_drUc^Cgpap=oqLImvRAWSk`ehnR+80B1f>GGG!F7Md6)Bj?f#eArFrIcQG^JNq zlaI%!rAM7G#eDodxqL7@BBD}$ZSLakA@*QMnUu}t&~=r`+w>g!Ee<=jQ+0lQvA2Ty zMiA*jI3wU(F;ikHk(S@^wBuV~Oe1M`!Go&PiXdJq__8T-kkqH(BNRaq$mN`9k%2c$ zbM=qOV-AFejP>cB2>cT?BU!$K=exqW!VEg%TZNsUJf|l8H{S|1csVRCQ`~h&d@sit z3tS)hm+c>{!Jj`P)be)>MZjYs%cmvJWnubs@E~$v1;*%ijRci0-i)?NkowHMr!#Y@ z$NExf78T06YJ-M2N?kzNi;{8caqDZni2LxMT%>Y2x%eb9$nxuQ9N&L#*%&P5 _ZzhN5%L1SNgHkQ%ZT}oDmo%noZ@%Es$k!ANOB=tPBH@ZBW zubMBbwH+P=avUFlHFZS2j72`YC@+)`^{R(suK9QOH)2ama+##;JW(F05;z}lpBmkk z8*9X|$)mq ZRZM?Kni3MnM_9AO&u(t8 ziKduDJpfA&a&f(LA#3EE-nQ#BXDBM}uOK+4QR_6=ua*$%vioJPgpmZAGH*VMkn^o9 z-t8Azay+y9C;~L6L$erTyHQ$#A$nvXVbapz-kBqKmV9)&6lr v2v-f7NJpXgbz?M)# zd6rujXsUtDf@v1dtofB)p)xkogRxltrVR_qS_7 C>n88co` UthIUp(rsE9CW&gr6yi z4OVQsYnrd{#Rp11e@|Aj8E u0}6dzJR&K$^^o$xt#rYambrn~JT8x-gk-o? zAGGhCD!#uwWKC-wHXA_p#`iwk&_zM!w>Szi;T4X!X^fCPO`lv@B7Z3tX|%nr`{kRV z#zRfE`22@JBs^hdfaF)+lfMB#bErejaZb9V&|7-2*Agn6FK`(o@i(ccf2bf;8AH>! zHR gO0j7q}t1aWaVWug&!YgITY%b+j}^&^E@&Z&Hv%Wzd^= zM@KUGw7o;6@G2Orwvh{Dd9`Kcq|;B*%PTz5$OMdT4A^vk8o*(3#>-5_0o;}#1kx^J zwn|glSXH^a5EP!WqW} 5|Ee^S4V0w!yuDme_l_v>H+ znck!f3EkR_9DpEHbB}=*_36+nbj@ll;B2J>t5@&R%j8D6;$Oq7h_4d`b!9UQfb>=% z>BK4N>#g&}*mYCb7mm4}aRW|?@>sZtlW4$HVbW09gw(76d3CSbM_wTj^Icr(4#9p# znet-OF)IVh9fHsOZzf^`GIh(@Zl5>Hrc9$BW?NrfeAjNuRW>&`PU+)|m37o1Rs76h zp5jJa-`{pryEt}VvS9hCF-yO#c%~dXCv-R7n=~NCZDMCig_}A-aFNtgP!I3A9R@8f zmfe;VZ-zE%l}?cq`&uoa4M27zKDMx&Rmnn$+L8Lrfq;zLZ1>nQMipxH{E#VgEUPAW zhba6Fj`pT||4HJiCw|+$st$?mNTkVcPV$bVH?74=IB)+lnWIc|2VlCkozCJ|a5unq zqW!5`c3B;IA`fm6MswA^>2Bgor|(h7bU41}@G1 5W<^_ITF0xFRPpJy#)oMHi|Kem{bO3rX3q|u@ZY0F<725=W#O=y3(1x6LseNi( zxe?!Z! 4pfSK$HHPE$l zXU2#e-_n!Oe?2cV0RMQ1>SXsZ7a6G_CBFIAqtTYE>Yf{yi+YPf#5csC)}goTdWt$> zpK@G2TJwz#8Z9*S%bGuoc1B8f#?!b2=^cM>FzoQbIHR@jt483jwzDT6G?hl~qp;(mR@ zZNIj@-Vk%FAeFfD-O?}Z44&EU5NYmJ@KI^`YFzEk+fQ@jY$wtPqgxR+qHVvQrWALY zi{}h5UCvsE7~3FT`U5wS{UePRJp}jmmY`>~Q5+T@_Uojs>%NeqOBn|UgVBg3DYnUd zhwHr2`M}MT2Hm+g*IlWRxpW8!iZ|-{2X46k4Fn)Yx0=T9^B9KI QgScJ_^|*t;E0v1sh9p@o*Eyf6uM)9CBPyX|i$+oyFop^k@! OS@btRoY(VLiy lSC zEI&dX5Oi3VeHN{~_G!bLhcvVcYU96uO6>-=8|QUpz!dmcsa^s{i}dM=^>&xG+pG3a z3sR%$c-BH(G`%=Zk(;xS>`no-L#)xI(eKj9EI5_?!3{>(?Ot cl$_LGC24Y#eEEuiC=w*MBm{XInxLb+`CfdBzQD$3)0|)M zwEqhX*gND{CW{lrFlc936a73@yi(;J*k)EQcB_DSgZd0?+ljv7xFB1aycc+?&h%#S zb6FHwz$YQ+uK*{0tq!}eum{~K**;W;>8GxXJRvk*xQ$>gP@hi%kf}6yJloa*2XU+l z=U)!yIQ;;rm!@bMT_mx_ZA|vZsxw8$QBUbzMD^?sd&3n>HiOz{MKsVHLMUEof&J$V zyZ0ZbJ?b4zFPWU!qp(vj)>+$yDGJVftyf9w@!S^eqlM}?kFAN4+wrxN8L)~ln6bni zES3vUW@ADy!h&ikaAWXU42F`1n_ahu-{yRU&Z2GhOht2BscF1g9Ot(-3=!&HLPFB% zzkFEp55&J_LtPmTbG}*q_FmPXb5!&losDE2NGj3f84_uaRge~!TGsrC*%6}9p(Zxe zY`ELJ +;9&L{4FMJm|OC z>>a5DgmR85V9xC)pJU0r11qwf^~U028Z-3qLkq_;=Fu;8);Fs!e%^Cw$9e)YEWHt- zvN~w^v+0qHt#iaRE=PpqRgIkKsZ~ZhSl>c@P0Ds1A9O2XnZW)yA5 ZIcWJG+pj^0 W!C9 &j6CSqwoB8vROYRP$ey>Rnz=#n`DQ>|{c^djxG4s(l(%A23C9z!NqCtpqRM0+ z8)u7Dv(~u-r44YfP?N~}sM*o%-47L-y-8jc4v;Gel+JR$Npc-hrkw*)V{!O0EIXma zt6NPvJ1g9gv46-Alb8l!=N2&{5U+UGDVb3GvlM)YNu23>BLlzbM)$lSOX8LEaXC?_ zUUyg=Aaga<4~da+zZf`Z#h?;rW$PoK&(vV{GyEasrl)zAQn6XQh_t;=Wr&oEt^SZa zhiEy~K41*2P@@! QP3G0;7W4#O2kz_{Ti0?x2h&>@*_l!Rx;HDxV0auNjcZs zk?f|3J-8f HCAEEjvH_#Ul$v+ z-ek4x e{AwRHc6C8L@6yJF}nv-YVllS zL#kn>)Psz7BXAA7r3msrJl`=OGxADbF6Gx#Jb_sbQvq)`h=CKVfX3lS!9St}iCe6R zjGn6jfI)emvh&gXhgK*==T8Bbv~34Pb;vj!LxlGbO%<)w;h+H-n~O|q#|q)wJ#JcL zMW`N0&*TM#O-Zi M$(bg_0%LWPWrFZY&dfI0M1;(5G_8jNp=m5s=BKSO6Kd zkuK(Sq|_eemNPQ{or8U$^9e?i0J)EgNn^dwvIir(CF!{R=hJ|Ww8wgmboMrt9r~r- z 91`3o3#p%Qk%Vcl c4ed5tLubi5ofhyba$z*{ zn2j3PtUd!uM8z)W+35!Wd(%KnzhoodXSTlLndb{45Vk|?W{UZa^vGt6UJg&Naz3-i zrAe>!+X4iTP}qzCP=1#o`UC65IYMNuK~KcI;#*(nAv4E`R~qtw^^!tAJqQNUk%n_g|t7w5fKol*Fi;BGShCR~8QT(ZLU;5UiORKXW%RQ=x**T+rjV?j4Z z$U9LkYbtVS{?u(tQO=OtVj+Jdgd~Xka}s{nPEnbOuu_%NJ}dr@3xi?Op{3U_wnVdc z8<8)enLK3+_%&>g8&{}|hAHBU3iPRf%E0l1lb{ZE`ZKF _7E# zgaLd?Cp;OOZ7JM3LizU%5& {v@HA_firXz zV8hhRymbGpw|{Ca^TXUHzd!~Iks&qw{*_7`{q5qCp;i+>#|j;&vfW-ErdU9#Z|^Ur zYH$CVp09GGaWHFp+PrYJn6ltpx{iwQfU 9pj9Ph`fe{ ?BV0#ETeVAxaXl3AYM2BLh5DKw(xH6u zI}L@1LyNd7Mzbp @e)-o3>|?_%*E_2DGjY-h*EQ`avv3DCiTxZtlS7G=VDu zpfAw=Svi141Y0|RJ}Z2DersQ(XMpvM3Q-|s9G)r_mE^cjJW3Vm(ac~ckdAuB?$}Te zpmz4EChCfJD_$4|wOf0=QZR9c5?^#%?^g9Z+vq9i$S1%+A>^NXkC8|bhIWSNdbBWH z*92tzyD>bs#wF-JSE&rI`mXjr0az@yMcuT xdtA5AQlB3YN21bgdSr)^>HhVK=Mp7nzPTAXxE6 zdPIw-tf7GMM+M#vdTUAB)AM4@tj+;Jx&m6=43J0G$G15q)~v$ZW$;&C%r%rq)7*|X z7*8^gI_q=n4N53<@bNp1lRQ+PP_yPxkdSl1_0snP|1bnp#J_O)|AQ~p{4@1X`F%!> z!8#jN|J3rCo=4y1b8mrcUAG!bxm*OnLuW*fjhog6$(k!>3?5`KOBF!og+o6sVNQl( zczt`Hd f&Zq9nrewzHM#H&(y55p;Kp_Var 4>aCjj|D z!Bj={df0@i>vQj<7L)61;~}<13E4pW9aR}NW?a25!+zhY88*2(Y*!c -JP4SeW${84N0bbq_7Z{9^kh~O!b|@S5N~2y& zlr@>0h8s01++_B}5u+xGBZ35m4nFHDKa$Ag_2<`6DxWu6&!@GPs4*-;&%6PBjFjTW zJI-NCyDg&TgqdQUXn(Z3;)vie1S#-)FH;3B{#7mE$MU$W)y4SqB&M*hXoqz1JYUzU zpf99aS 3^ z?YnnAXw|sHF<~k=p?44T39|8%&lm_lVLMFzHlKFVa5`J0d%}BOfgq;I1-I6FF ^%0rs6?n >)GeFA7jP+d?AUp4c{IXyw>oI*1Hsb?aSF&AKArV8r(@jE(-Ee^o-&5PCmEv z`=W%q-5+16Qo(S0c)hGt643&?UuqVGJxeeQFcY(uV3ye(L`F$LcCyZFAai!|=3M?% zf386HM7Yv*ts~G-5)H x@@Ps{y`9EAg68&7XY; 9>y}DRI@ZG}g+0Jrn zNzfh7h`k$P(@e07?V2caY-Kw~Mo|lZ27kNZUTOyGuH*B~OXMZRa2RW#^c3AFxC5^% zJ-%&iD68&WMOP-L_x;wuiHzGO%HgaQs@E`rqMx<-+Z53T6h#eK%(nm>|D))8fYE*G zdp!a(68 E zrj^9nZ>ehUyiVHUOQ_=~O{kP|sY*8*ePnKRchpUNk*Q2g@I0Y{!X$^n1Wu=ck3uxF z!mjL!VC#q%f$ycusX~m@kBcTHiqE9r8y!eYL<|pi3t{J`gPjhKc=scn(^^H8?2Dv! zm{!+90KAIWHI^IFMzQ7eFNA5TA0u2!)FR;D-!KUhQCM>=+8x3%{1OAj*y5JnjC_XQ z>Z{)+e_bpdP3hy8IQPhdj=+tTJ+lc3;&>|r{nxcFC1imm5kqXfblZH&KOh9gi6_=a z+Jb++iM}PTx0FJ#y(!h+LqdvpSk0Tj Dg-QR?m-_ j`SVC(@XF9|YVtvVa+>1NYW9Y}UDv_20!!e!&N2Fr)0WzwL@ z%|uB*SmESXj%=aFHJcDAKUm;@;PRqI$HCz^C@KT^L$MrH-ZqfeA7!$g4>+sZo_D^f z_D0&_zcul2=#L`@GZl(M^ZLI=A%r}*3jm^R?r8(Te~O3*epLfD=;)XGt3=?haLB8f zneSs*tg1uF;l176{11mInl=r_fWQE-UMW(mh-WG>mxlf>lC8q9JQ?@bqcZ(@)S-ly zum9{|;F%Mt{d=QFyV@o)p!%r)(N7c9?Oveo-f-N1H}b!I;ZK{9{VAv~9`x@8{oQ_X zLgv7bRa{W@+f4Y+@BQNzp)(BNb1(XNtbg|5f8LhJ2^9bT=b!fv+c=2$^YHix#Ii$0 z@kyq|+yAYpV55L;^UE>rdz)=O<`HAVBZm36760qSX9L(DSBdx*s7fmEN*~CA6>BWh z<{|h4l@8 byU8R!(K7P~y McT34e68wrr_8*SqUuCa-^$XiQHT#nG=I2!+wRa3jDJ!nf$8? z|MYHu-dXzq41iY5JkWn1AFzMMafhchH`{+N{`A``Kp8Q79Q+Rh{Ew>n!2*@90k5@i zW)S@M;%`6sX~dRwo5}y5X8NBxc1Zha$e-#EjYR$T;=KU3*QaVwP4jnu{QC?4HQ-|! zw=xt{@&8_YD< zPKTPKo_!z5sHiYf3;PemA`mbNmMG(DR@Vf?DQ3q3Up#Nqf z{y*Co-2pa!!`mmLn`(3lSW;k7jc`&(@Zyy&c7IOY6JfLiL=!B?? z*+%O4{&9zXV8EUp6J8sdFQLkXco=c{&T;2I`fe>%=!=(8Q6mD_dMfYPM`Xm}Gsnzq z=#g^M a>6j5dnu__pxn M!kr$AeAuzesD;-2)#SObnX9l;nv z_m4QkXnlrN2-!PT`rH2k-7lQf-Wg5fmBx3O4DFddddz8-5}))H8*6hrOp1kbxJ*Ix z a-VfOv}18r_?afjer1XF_1a`bKk${M!@$WeOjlrR*{6{BL#= z^}>Bu)P8X;r@cMqPb!&lQ$&5P(3qyfOWMWBm^}yre_E0^9!`H?$mSGiGlk|Qa*_K# zBMAK(_EPK3x0dLE^H}lh2UXLa3MInlZ-MdpE_)UrlNUx9&HwJQUm?I!07muEO@aH} z|E}U+W9&2mFe<^0ivNev{Qv#yLP1$abN^$p{Fvnn)l`Ltq4H)wQ#D*_O(v>?@EIuN z_zEk3esLcT^0xVpf&D)=4@C|b?W@o8?+_BDpgEh8l1h%`D_&gNuOFx%t4xi|sEbT0 zQ%9OLWO18RN&;pof*X{v6!R7|rXw`0kiTcKy7!&t|ND3Zh9tBI;70W7D^)RRrC|?U zj?6;5d*l`ewQJ#stbXphBupDsnp0nxpO7>abig;cG)-IZCgu)n>1A<@>Qq(!wA55Q zFj?r4t-h_V42s(Q^sk{{93}KcE5E?_TSdaoe!S4nKe5(gkB1o{=#4*rQLR<7^UlI! zo6Ees@f=5y$qWZc-@wP!igfmb&+ekpt%bHRA`b~ilfF|v+Br3iV@{T~B?_QEiq?OH z_kRX!Y=6LyQnni^V$xo~R$kOd4LO>=r2F#APM*v5cN(%Du*SqWu)p=KJ1~eHkxF)R z+V3-|OIO$|XVITE5sb6qt?X{~XxTp|s$Nkw$1R9ry12oC`uk^s$o%tf!(J;Jx)M)o zd&X~2{#K1aXmi{m2qu79`th59$7^ybBAYRb<0>0WMi6qP=x30Q`XJW1@$KidBBot2O&}z{0!CepZ>)MBpfqxWQAF}9rpvd_ zg!ALkcwjAkr= Y(u#!fB9PHaQYdB`<(!c_`Lu*1Ne|JTN*g4Fif$L{EVi%aBF@Oz`9jbz+hnD9{0 zf4P=~M07F@VYGhW@LB)GNX57Q*_3{55KTp^(K3j-yAqzq+Q{aZBeO))unzeR_wz2g zyJ&q9 6iW9VjAO_ge&r9q^7Vf z%o4q#A)!Xhd 5CNV1s=Gt-J&VoUi8nK9>#{XFbD9kum zd{_#F@;@^V9Di4??UBW- kMyy+|CK!EZeiyU?r~eIYekMJzBoF5vj z3h}V7u_5Or0TyMslPxjmwX~|sT5R6K2{${5_Q*IrhDL^Z5vJv*2+nt+<}+T39wARg zjV|YjbWEyTQ_5r#B439kY-5IZPH$P#9UN-tvdpX*$KSuhkzty(dASn3{=M}`8|m)0 zDN05ytN6d48t^;7yz_g}u;V-bTnz57hD5EL(z8ZR(c&+KyAm$_oT#oO+N~WObMPfn zVv3=>Nqm}OO7eEJ+=YETh}uNgb8Syu*EhHitz9mfts EBG~SBts+*x@lr;t6Eg04zRN}+{1}4|9f)eUj?k{c+%h80G@FP-EZOi>bcpP zfHO!7L7q5_^|Z6&{cjIyQYGF;kN3SP$1U8IqjyR7I5{u`T--1mWtJ8yeU% Wk$Xi>mHR z=O5%o<>lBx#%0147B0aoc&ZmO+td^)P5X%X1~WRD#(~*Xoa?l}nKj;>=#Evr8b G#boGyrPmUC!cv!eVJzqb~igJ)e9AWOODeF=A)S7Ojk$L3CCs=k^I#5 zOm#niI(k^OzUCJVNzJ9KDTuEAdXq*pJI;D>NcNn`XQV)#5x$YjV8|Hld6=8R>Z0z} z_`gH&8XHg}0V+cnOn7PNuW2r=VomhImfN>V+$q06SD8meHP<63vTP@urW#g@+4b$; z`*LY^$3Y%zUt#QfD*}Iiuuv;4#lzUA6qBc@u2+!O{ihZH=4OqKb 8SHWN#e3m$|WeUe;K%P!{`B!6}2(46Ca=&acE`NN0I^-Xm4 z|23H70JD zEW`^@?k<)Ys7^z_u znC^*Jran(USA!mTmMtWvKAm2;x4L^f4)tCmSy*PKr+eyH3=Yq>s(*Vqo@f@+ETOLA znIW{7(wYJdgG^pIXz_+3t_LFPJ6N^qIHwQqSYl;<)iu0hK~K{Qd6vbrrlRD3Qh2ov z HmJVkg;8X(ObhBqb zb4v|rd)p-FkCHc#`ej7ReF5Yp?SD`GG&eVAMB!Hw7Zc+!8(Rak=)3?4Lg0R{ PvUns$1Ap>d$M02>S!mJ!K z8$W5yqh>8V>p@JHdPPf`uwz%#;Zx#JfE15-({#pM!mI53)qMA3$?C;jI@*F`F*Q8s zn<3=}23vu-Il;Y!7HMsBb29)IJ6rXAxf;lVTOo7Y9RXC}r+}`?S;PK~44qR5$V>ux zj0 =6yZ_e ze34i0;9(lLwbXD5ssYL!gJvx;zuPHr3WCi{acU0SJsGg|Zkpw-k~okz`iFl!qiM_G zG@|_ (2SZ_}?^+xwi4?-CA82Q>-;M}|0 z+xjTIg*w~S{;yO3r(wU3)&QOdx3f5jNf-4c8<2s$ 1B=47?aWSEem7f3$d08JXmPebj#)sF$s{ztcSh)3GS0Xx}55(YMw z^oRD<@9Bgj`oDt^ERlaOk^G)w<@S-}h=p>Y))(R|@xUWYdjUrHe50Mht-0T-;m-E- zVMVvch#QezKfekgU j7us>#q%1uMI-+QG`yd3^|#-=;t|otiQqI5ENrI0=Z{ zJC=#0zD6tn41hugx&Tt)AJKoO>MYA7itx(APq>WrYXMRT)C1arh^L{#rIh_3GbH$f znUaHv?~(nJ$c5k#6e3|`$9ZcHkNad@9|T`oVnFB05zt&*0CLJanv`UpAFhuwMY=K= z)c;-$eAa+ Y`$%1GHz@^j59T=+756D>WNdx^u
2 zM?)i8l!5Y->+U$$W%S`FuEb?h`Z2{|wcY>6-djdhxo%;@(hZA{Zlt6^q`N^%8tHC9 zI;6WBq@=q;x #2L*bI$9U*JXE) zfu4 (|ut&1Mfx43HF?ZBW5-pfEwghVeOZF|c#8=um>6!n7PU zwn)A@j|)X;GBs($Jm9Vv6z09#p|`d^Z!Ar#P$!N+9|=#w;p?)?pi$<+Bl6B!Zltd$ z%@JaJmq9BQ71{#lPLA%hSb+3h;%iLQoXkasSdh2}-jXwj@aqdN$p`uMhL27jOu&FU zXFg6Wy_6ggjkg=C4-g;ctl(JEeyUNvVYe;=q9X94VI~GGe!PhHY^@tOSa+1_d%(ve zg+Ho+_T&WKp@^MN&$nyp)C>XbZ+Qsh2mDLUQ_z0Bky^V2iE0*#-pmVc)BF$aHJS~n zZUc#zqFZ%*d_?YpsqbIrjRwvLZW!T5#vU%1axBF6AXN*s-Gsk&Pqkl`vptpk{Z{S+ z>D&pl!*ni%tYNTjFSWk_Nf)cbdvs{OHDAas9VZcLBz1JWKIF~rEDS%H3&@aKRl4Uu zm75op50UlBVKAYUoOUkRJKL-q#zyH;CS<+9OGTheY@P)Cda?vj=2dDwq^GBY>z0(3 zMzwv?E|#3c02D3=$b}BQdZ|sci_l0+ikB90ziauEwWcd!z_IW%rYkMVt&%ee9KnawP~{Y0mhg6tfmJ+_5j zK_mb%C;j}YZKq(!+1k6_-Y@&pYt7y@odhQ&R(iwCZq>05IdW4$FNAhp@n6kU7S~*C zIs`=r26M|I1sPGgKPTU#x}@Ac0=_%JF_5?D7rbgMlY+lCl4Ot9d2RchDBM ^x~Rp33q{ zI-0P~X7(v#WvR^Dr=~fKjEpw8XAuoY^_D^JGNg6S)~5}(z%G6d{O_W2o>+lJurun- z_T>DTInl40gf!jkR>6V)cz&XF5YP%@CR{*42}TJZyI2zA3&XORTj1C>Fo{hVRh*So zTPKXFK7zh4&{UrO;kb_7tEZs6@z#&QU9>ZuVd0~|li?XIzXms6MFKBLPK&S=$VOq{ z@>hm~wNTx{%*k>DH2jY1y$TZ+mY;~vbc>3M#RssP9G{Ef8wVjMxd1=6aO@yl49wXI zEug{dgqSJrzWVh9$m WD4d=a} z)NjBT;cHt=?G&gscKxD5f%%zEtvz`79pl1H1DUUoiWlTl(aqJ)LdI%Dl68|vGv9uF zWI|QqlFTc<-jQbOZio3T`_FccdtxH^%LOu_4k$?PGc=mYBQUqAOSVdRJ&tmD_(Lj+ zy~teR_p946sg(M10TFy6%5fDkfR|U28x48#ZcL}~Wb3i9i8hA5#~D!kgq8Cvoa3^Z z%6-sHh1RZDD{t(penD~FnKA|}qHoQw!|s5%RI&1VAgE~+WQ&z}W2EEdPL?nH{P|qJ zsuMEWM*{tw*4^UFcr4^cXk@X7e+yTluu@cxbL)Dl{3Z__sCc^gl7*73?AtG?+(K=k zVmsK|uGV@Ro^{wrZ=9tbrBy5L7;9lFQ(Rqaq;o3i@OP(*{A6{GS}f+}q0)MqA1!Eq zjCs(siSYTA*CEBNJ3mju)LZD2na+^8me9osdm@Fne%p^Eo8m43>2#7$z{*nkAx_WmX25xO_%_oB%U;gz%J*_(VPs>fU-_QPuTK;QG zQUQxr)w=ctta)0G=BvX`w=)VXb;~T(gRy%FTi+k&YZY#rqog2lzUZ=0=COW9=N&od z#?Y7JFf#J|^6l93&F7~WRS6%5SYEW8+6h`1Hjdq&BYK>r8$E?K50ezKfcabq)R$GYeZH?F7Fm3)H6~Y#M#_sa z=5{apsRslVfm}K#@vo*hYmoBa9qq^|DM=&oW`i22-yLxzvvb2=QyclyDby%L@oUfd zZU7RwV=Uh35?oy3U&AqgZl8dnm{u;+G(j{TN0dB+`-9yr39vtuv`ei3x>)p5ld>cC zG~CJxJPT@y#pn%p!Gk#tbM>EeWBI81T=YqtqlmZKQn1&G*rvMJzG?DYRNe}yc-{+| z+}zaOP2OEBs}Qo|$L{C7@)FyyU>%+}ovW?&`1VmZ>blxuy&UtN(bqDG4_IS>85SK^ zMi(ub9aqP_UqF&%nT(~8oG~Dtzr nUE<0ybQ#Gz)`Ub(Cct&-$Dh$4$oKjZr6Seh zgJs4uWTAz4j~5mdDAyDI_zC0XnI!6*w1d{x&u>a(-uNkxC{NUDHKt=Lngv|O&L+R+ zF50$|nf}4}j?OlxKYPe-UIPqw;0KfIZ(`Rld~Mp>Z1NVcRSo!^%n$aAc#jq{eAqCx z$*Sh>d!1imc(l$!NgPCR-dpB)BBJ$sn<|t1txy8pOghL_N$JtnPy nfzs z V1o2>WF~@jpv?;U70^akWelhnXz0yLhD->4u-H9t0A2)3l-3h2JU=o15 zl`PV>Uv~HsdNE_8IfI4hP@!7zF&G6G)Y6(AYf ;ONf;*|--P={89KbzYRu>_J2dKtkxA?uBDxx6TpvE@m8hk3(=6wY6;bgG6< z?S`CB$wp&QYKncF14j}G%^3-dBVsvts_{K-mv`J|sYhjO%iM0{D(n?B@7;G7{46%I zKh=H9+oF7?V3;-LFkM92nJd;B5L|%9@AgDry0^|hZ5cj|YKYUIgkbee<(~QHe3nJm zsz#-40^eAW)H(xCU9;!!`be@q_zMSeSH-gsifNSW>;0xko!4_72YI_5#YG#w&U?5v z_{Z0NYZ3J1z*t4{9o6H6`BVO}TA E zmXdZ0*(d#4ie02V&;GLJBxQrU#I9->%Jxo@|dF>~;n %I^fYu9t>yGts-m3MeE7 zoW@pPr5~fF3{jmK5wyjvzh73xGMD+v8@&os`1{Mj_{FfS_xs`tv4bWX6w9rCoWJ~t zC?P~PG73GY0m>LJS_%QRNvR&=L=t>p)T6Z)8!7GY<+}I%GnMl%r&p1l2nM(y45?0& zx!FzE$hdzK3nq}H2zGl%8Y>7k!mv6TCNA-2gCACH`EDbdfherGSr~u*QZRQwp@*<{ z=sCjH2m%pI*Gk}zKu7*3keBexbYD6juVqL}`FcEsi||%jwDV$59qub=zu*n*b}=8a z2waIJ{~8iJ-iBYeFYF~wk+hJn5&N07%#8T!(#xnrK`PgCzK5>cKmU#*M1#uf1Y#}n z =ZC|EE&B~%ZeWZ_9$-&%Cm=0fXl zv+aY)1{;eFed#uH{mFn_n$*qdhEwhMP#xv{0v$VT=L%I%wNuosi& n_p zh5prz{)*F6z CHKzNM&9YdxvueBlBI-4?txKM<~EPOY^9X65u$SRc8Yug!GVvrqW^5? zK!Q8V$^UfBL0P%pQu|=&)SgI_ _)E6J1(`!;f>#Q( q-aJ7Dau91H)7VVbfV9egsW*WYVS4onvQ~~kegYVuanpPOnK7V4t zL@!q*lW!F8msjl{B_Ac_L;t4iZtWKzW2|z)Q=HVGgq}V{dhYSUcQndo8_ngJkZ3g* zF8Ys-tuXyI|MklOJrIAuEskAaLct>m__GsI_q7evM+Q8R$#j~(-sgWG2Xh7_f9il_ z2sh n?v;i+E{Yjeeq*;ooBs}&8CH PJ93TJ*)CY^VPsH zz}fHHg_hm7E*ibbgzd+a4-pMMb@{)qBw0A1#=_6}Tedq;qhs|kLvN5%R0xVre3xQg zij}xL{^|pif{yF%lt_$|R*6O(83fi8ra{mD{-P^sN* Q)^YM&5lj!F_;bh9?|pfIWc^8-0FGOgr& zr# _DH4VoZ97Ku&SYRNy*9Z*fK8n18T~X z>GyIm&Jziyy-)xRy=gX`Kdfg)1LvE~ZQ8bkp_2EeNWR|ELtN4KCVPm2jM-KjSqYqM z;98px@ID6!Lce+}F!TjzCBk49Zv>}kPwoj+U?9F?58AQIu7}7fteo(##X-4)%&^jn zO6mz7LzE8cr0tF{1N0m5vX4*Oo14q`MdzZge!c#(g~nzTsC2LQD{WCjNh!9CWQQ}$ zMfe_iclrId(cz?sDRaxg?fp$;Y3cAC5+=EblgUcg+x@xM3@(`T%8xe;7-s4j5IemL zg0_Bkh#c&wF5~Wf`{@S~0K6R9FR8l9BaRnt$(`Qk%FYf?RAAwcW?>8o*deqzIJx6g ze}rL734=z{o&b6!NT1DPtraEi)#C YTBRy527Ki9Z+W#lb-9Nbtd2gHy!W(nGf!h>d1Wx&q0<0{utv6Jur3_c zfSsHA3%g35vgA7Pg- o%v0|-ss+_*%V5b8}8%B_5# z2R4lhI&veUqoEUt=^hqDO|7R}-NL_E7#P#st$t6VnVOoIpi6`=d%5n1Q!>_}H6h$l zlGT5GYq3##b>)$UF)LsB_5AKqWa577RaSB3Pmf=l^A~N!%jRj)($b^yIvzjotiK3f zYad4Tb(8R{tze1VpDi^^&XhXQMaB1`<5mMTOCNtB&y$&kNuh3sAo91*9exmI)%51H z(@N)l9T>*RbkfF5e*d0r5{+-x{2c-ggBz^)j@Z&%uUwki4x?MgkH2gmu!=o-S37+8 zc~?-&4pA(vj=K`Gjh` Geyt9@k5mGY{n^$pg5a@F zue;g&RtJBNOkjkheH2=0*QybozwkQ#we73J{ Y#d_#iE&ii7y z*Bxc3LOaI0ue*h~?FLe`E^ps#Y1K=prk{S%1AxO~rB3tVoWKp6&UI#`D%xvB&t}W_ zzC6obL%kAVDp(?AGUR?IaVboyJr^5O#@{~tR5>swIyND>Uq(i;`#yQ z8?wSW$g3Ui67oaOgXcMLY?j>$vM#mmIXO8Av^2?*OUH&Je1~{hi1?_cXA>)j{VU1< z_jXK})d{#NB$4%1qz)Cn<3GUNrU!6$Z|(^Pu!#vnYkbTh4-^~{lsvxQB1};(#n@^G zl1)bcRJ=2~Cg56Hi1K1y!xY+S(i+mL)W+t%Q7Q?PzUu@*j%pojNowBOwN{@Mc??!= z^DXi@dDwoIyx-C&d)X>+ EM(JSqsOs}UNqC#`1JGVJ=G?ktKo#SA>|%w9h;)O zXy^A=*CYb&2LPC+4}JrmR%A`#%RCOf`m!6zG@246l9JKp^NXUpMms>lireKXe56KM zUS9roeX{#ne_p1I6PUiy5sGRBItDFC;L>${@EpTmAVGco!gs%l$3V?i<$nLCMossx z)H5w{jJ_}N%?v=)#fa!hJL9`wjC>zJ{TyT_Y@k$N_v@Te&}ODo_266cPrwHOlR`m5 zL3BJkS_ZXNm#>Yi`(aV8#6;;#i>KC+gq~CVt2UU`Qd&-bzEnjciAI4 zdsKoV73~2GY&!KX+`cso&4y>~Ii*CIk0A* y?`efuBmMCM)F{HFU8S z<`%wZBPGsT6I?IQ?@F=+8JY6BVt_-8Se$S*st|A6&b%SP{Yk|$wDLYsGHD&itvEfi zojq*K&Ct$EVtl1LIbEbsqWqpU*C^%`IN#!-mYSifcjtWl3i*PTja>zN-GTe$iqC1x zDb-vuHO%cv(C5MOy&_%=%)id6s4&A1V0pwgeZ9n22%}w)L$MO#vY1G;oM}~)NuFhA zb+Ur`BYpc|O*4wzAkJyJFaUWCV{Um(PvQ2{&HSZ_3790Enyn=IG9)aZ`&D9&NW_?W z)Uy>qmDn-N(-CS!#OU?~V_v~tc9y&Hm*(ewx{~ug6^gO}`vp6M)V}XWPlq0#XA2l` z9Nf9HwzhZzeVSDXm*1V2pYB$Hj9rU9X$U+GwDebWs1UcLA`O}X=y;n>SExieu8|2C zP%Ykf+B7jhxp_)@%vYOuuqV#DO2M1F=eJEZZLzrQ` zcONtIx?M7lI8EDgyN>I#CnJ$(xF~a7UX-xPLgXqi{Z5H|p`kr 6 *OT5EUJrBiwM*L@AKr|k==Oqd9dY`h_(XsJU z>2s5+m0GcnxY>T+JryTJuw+QMZIELSKWj|azy4`pBfll&eQ7XLN!eB|cIP$yV~LoX zGFx;rftvx^dyqk{HTdzPppXfkn=1v7Us2BC2Wt5G7P)WHeXsId_j#5?j3}9@9<8dX z4>)TpRq!EUwI1z{sGYPeR#vOYL@^qpxOohPze!WdHX!DiJJO5jn219s4);%Fv)pC$ zw)k|rmvirK+*dEx>E$Z5aD>`~oT=UgsY6heE)^eACIy4GoS5R1K#xbQ!a}hJ2|~Ku z{<^!?^LX?4Br?}xcs=gC>jQm9Oky0_w --bvxQXL=?z zjPE? p=xQ{Y&21bWb^eR-@zT7<6>FK zhZUh(s=sFSwb=e$G}Ntu_9jKb6x=8rJ~kUZ y?LIn3$mWI4LoBAxDTc zt6_%Q=cLN=*SS$s4Xr{Nl}5Z(^@Q6_JpGKmF{MGxu2U03PXr?i%iR@<3?i*!RFnuV zbMfLBC;m}ll8ghTs^6Mq T>z2t9j3|b$Dh!RbEU4R&A|Lyr>d`TJCX1uZKe&on9W8z_s;BghA zPwjhlJoeK`uAZ$_MD6NPop$0}Y$&oN N=L1&wMHx6+KaUd-H=3<a=a>8NwdDIM_L|9zMe$LIz%Hn5Ktkx7J zEu8UeL%$qD=-ne`6qL=EYG}!2$O@~6PiM xPaMkJV+#YZ0CM7ObVlgdU|moY3wJwCkuHF+z)I3GG52K2>yr38gDW3 z?;x(qN0jg>7PAAC*7JEdmsLm@x6h2#0^c+`%_sT8{72koGvOsS7hU*kQKj9L_ODd0 z%#U$)RZTdvJ++13EG9`EAemP(-Y=3QNzt~2$OeQzncdnXcpn!ToeZ=~=CC*Yc<_g5 zfwb{Jh}bTBV+gHy(Nu|5U{jr$2m`Z0+lwEE-~1jSjO{uH^vAZBu HnZkYGm;6sM2kU SZU lYB1*Dm{YpH^@K8h4mmLMbFE8 zy{amJ#p0+} !*GO|OQy+5}<6jMx0IE-A- zMfSP7R_V(k(S1G-757=yb7GgPBMGc>jMV{u*F&lC3o-##n>qCyMhjp2mHnHQn@7dZ zuIlL9+ I7#=$$^9B@6=| oekDM z{`Ni&fx*H`Rb;2WAJNz8F)@z+w808qS_WKSA#J|beegng&BnOzCNWZq>X}Yw!q3!A zFw^*#_GW%9`J9eV$>gXLX2Zr?b$ z^!6E=5zgB;FS*E_Zq+|N%U {nbl5E;_=PH)>x5|RL%zy- zmb2L?xd&n%&apYCyuy~X=7W$Ml&I1E#*KkDySihq3khiyWy$@upS7ULmCCsj4w{9S zs&0cr_R}*XqIzYKEKNfllNZm^o~BfC;O)&bX{T4#O9 kO|}r9NWc zSN>8ETjK;|qy0e3I2>A>Er8Z>4%s{dhPV&X?Rb`@m@!zrz}xLHtB*?VkyC@`sYQSJ zMR}bwQ3;$qGUM7R#??Xd3XsT9P)KD?umG%TSIzbfRs0V6o=2=dbv`HlStN-kKk93V zucw!!H|+S*bvKvk2b`CuR%!afFv~QnD5FcKsM_3i&$4N(5$C3L+kWr>UzCB2=I=fS z+rQ8frmud^R?I3vk!JQY$mh=wSW>eS!=ODUt26FNNpbp%A7U!i(NxT?mp#zVu GM8%=8+Sg9nRwRn$#m{w1|;v_9J3! Ng6k z4zb+B7Jhe%LrkbHjdNAHCZQz1B_8RXfE$`n@|e#bfW{wuens**Z|AZ2BuL6;EMkq_ zV ^faQWxm;~s6jvf{zKeKB6$wj+cC_;3O kU#{_Z06AH0c& z5v-%BX9t~JzYNVfx5X<`S%TwX8c>o9x;rGik4poadb|z4;r@oK!Fy7Rtk`f`d)S;p zh(p8KZ=HEa8}rP&SzmsUTJew&VO~09^+j!HyQvlct%=GeFMjuqwVd{wC~YoRN(Pn7 z6>pw >W;!pG&;=xvlHPs^HK`&&$x2ZM-{G7CJ+Jb>o&60c#kgMER+Sd_YwA?(B=y z5Z)9yl#Irikff13I_eS&kHQWnJBT8?#<2UlcOKIAEKsolG(UqkBeW2wC3E?{mwI1s z)6p~kv%~Md0#Di0!GFIwl;eY1<_T>JT*(QUqY(%W=nat}KWWNE70R!&{0(@! oqqn<~v30FHi0plDDi-@IIEwylDsX+R76(zoA z33}p8NQT>qldgkd1fRo&viWR*UK7{)`l%x+YikBd`p +EP$JQ1V6% xwwY{-wryLTRyugIR$jHdl3FLPO#x*wHr8o&cNiLEe z 3bo+XZwL|DUI10Xj)Fv2UiO$Nfz z*qCL#W94NNPvUh&t)?$m{NnIL!jjFmC-}Cr+7H|I58HoUR1S*Xi-wZ9s+^&ZZ-R^w zM1Zt0N@+rn=_ccnGLFyw@=%ku0d90i<*CEU!7uo~0#%P^U|2=m75@rfOo%U9<35%& zzzTM b zUSh>-zY4JW)!6D5N%A*xA+u#_GAY~cKfVUcc5Q^*gVTe$6@D;z_h)>2*t2tgKxAbZ z!W_%%ox6G+i#_u3 mqPF~VL za}0h5e3k$u9rb)8lBwDsP8F=c+}u0~WY(8(Z Is08{r