From 82023102e22101774f5434df614a509073173743 Mon Sep 17 00:00:00 2001 From: isno Date: Sun, 18 Feb 2024 22:13:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20ServiceMesh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vuepress/config.js | 1 + .vuepress/layouts/layout.vue | 5 +++-- Observability/What-is-Observability.md | 2 +- Observability/summary.md | 2 +- ServiceMesh/MicroService-history.md | 2 +- ServiceMesh/ServiceMesh-and-Kubernetes.md | 9 +++++++++ ServiceMesh/The-future-of-ServiceMesh.md | 2 +- ServiceMesh/What-is-ServiceMesh.md | 15 +++++++++++++-- ServiceMesh/conclusion.md | 5 +++-- assets/ServiceMesh-and-Kubernetes.png | Bin 0 -> 108817 bytes intro.md | 8 +++----- 11 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 ServiceMesh/ServiceMesh-and-Kubernetes.md create mode 100644 assets/ServiceMesh-and-Kubernetes.png diff --git a/.vuepress/config.js b/.vuepress/config.js index 73736674..59ef7230 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -287,6 +287,7 @@ export default defineUserConfig({ children: [ '/ServiceMesh/What-is-ServiceMesh.md', '/ServiceMesh/MicroService-history.md', + '/ServiceMesh/ServiceMesh-and-Kubernetes.md', '/ServiceMesh/overview.md', '/ServiceMesh/The-future-of-ServiceMesh.md', '/ServiceMesh/conclusion.md', diff --git a/.vuepress/layouts/layout.vue b/.vuepress/layouts/layout.vue index 3c103e3d..386aaf88 100644 --- a/.vuepress/layouts/layout.vue +++ b/.vuepress/layouts/layout.vue @@ -8,8 +8,8 @@
总字数: - {{ pageWords}} - 字  + {{ pageWords}} +
@@ -93,5 +93,6 @@ .words { font-weight: 400; color: #aaa; + padding: 0px 3px; } \ No newline at end of file diff --git a/Observability/What-is-Observability.md b/Observability/What-is-Observability.md index 679217b0..65aae02a 100644 --- a/Observability/What-is-Observability.md +++ b/Observability/What-is-Observability.md @@ -11,6 +11,6 @@ The information that you will use to determine whether an application is healthy 如果你在生活中观察仔细,观看火箭发射的直播时,能注意到发射指挥大厅内回响起一系列有条不紊的口令:“东风光学USB雷达跟踪正常,遥测信号正常”,软件领域的可测性以及系统遥测数据本质和火箭发射系统一致,就是通过收集系统内部各类的遥测数据来了解系统内部正在发生的事情。 -所以,**可观测性本质上一门数据收集和分析的科学**,帮助大家在 DevOps 中遇到的故障定位难、容量评估、链路梳理、性能分析等问题。 +所以,**可观测性本质上一门数据收集和分析的科学**,帮助大家解决在 DevOps 中遇到的故障定位难、容量评估、链路梳理、性能分析等问题。 [^1]: 参见 https://cloud.google.com/learn/what-is-opentelemetry diff --git a/Observability/summary.md b/Observability/summary.md index b322ad36..f549c6cc 100644 --- a/Observability/summary.md +++ b/Observability/summary.md @@ -1,5 +1,5 @@ # 第九章:系统可观测性 -可观测性(Observability)一词最早出现在控制论领域(最早是匈牙利裔工程师鲁 Rudolf E. Kálmán 针对线性动态系统提出的概念),有着几十年的历史。随着云原生时代的到来,2018 年,CNCF 率先将可观测性的概念引入 IT 领域,并称可观测性是云原生时代必须具备的能力。 +可观测性(Observability)一词最早出现在控制论领域,是匈牙利裔工程师鲁 Rudolf E. Kálmán 针对线性动态系统提出的概念,已有着几十年的历史。随着云原生时代的到来,2018 年,CNCF 率先将可观测性的概念引入 IT 领域,并称可观测性是云原生时代必须具备的能力。 从生产所需到概念发声,加之包括 Google 在内的众多大厂一拥而上。至此,”可观测性“逐渐取代”监控“,成为云原生技术领域最热门的话题之一。 \ No newline at end of file diff --git a/ServiceMesh/MicroService-history.md b/ServiceMesh/MicroService-history.md index 52ef151a..35a26711 100644 --- a/ServiceMesh/MicroService-history.md +++ b/ServiceMesh/MicroService-history.md @@ -1,4 +1,4 @@ -# 8.2 演化出 ServiceMesh 的驱动力 +# 8.2 服务间通信的演化 TCP 协议之后分布式系统诞生,分布式系统催生出微服务,服务间的通信需求又催生出 ServiceMesh。理解服务间通信的本质之后,就会得到一个感性的结论 Service Mesh 是微服务时代的 TCP/IP 协议。 diff --git a/ServiceMesh/ServiceMesh-and-Kubernetes.md b/ServiceMesh/ServiceMesh-and-Kubernetes.md new file mode 100644 index 00000000..b11805e0 --- /dev/null +++ b/ServiceMesh/ServiceMesh-and-Kubernetes.md @@ -0,0 +1,9 @@ +# 8.4 ServiceMesh 与 Kubernetes + +Kubernetes 的本质是应用的生命周期管理,具体来说就是部署和管理(扩缩容、自动恢复、发布)。Kubernetes 为微服务提供了可扩展、高弹性的部署和管理平台。Service Mesh 的基础是透明代理,通过 sidecar proxy 拦截到微服务间流量后再通过控制平面配置管理微服务的行为。Service Mesh 将流量管理从 Kubernetes 中解耦,Service Mesh 内部的流量无需 kube-proxy 组件的支持,通过为更接近微服务应用层的抽象,管理服务间的流量、安全性和可观察性。 + +
+ +

图片来源于《云原生服务网格Istio》

+
+ diff --git a/ServiceMesh/The-future-of-ServiceMesh.md b/ServiceMesh/The-future-of-ServiceMesh.md index 7f8aae93..f0489a91 100644 --- a/ServiceMesh/The-future-of-ServiceMesh.md +++ b/ServiceMesh/The-future-of-ServiceMesh.md @@ -1,4 +1,4 @@ -# 8.4 ServiceMesh 的未来 +# 8.5 ServiceMesh 的未来 基于 Istio 的 ServiceMesh 架构在互联网公司进行大规模线上部署的时候逐渐遇到以下问题: diff --git a/ServiceMesh/What-is-ServiceMesh.md b/ServiceMesh/What-is-ServiceMesh.md index 93d15bbf..1df72513 100644 --- a/ServiceMesh/What-is-ServiceMesh.md +++ b/ServiceMesh/What-is-ServiceMesh.md @@ -1,4 +1,4 @@ -# 8.1 什么是 ServiceMesh +# 8.1 什么是服务网格 2016年,离开 Twiiter 的工程师 William Morgan 和 Oliver Gould 组建了一个小型的技术公司 Buoyant,不久之后他们在 Github 上发布了创业项目 Linkerd,业界第一款 ServiceMesh(服务网格)项目诞生。 @@ -12,7 +12,18 @@ Service Mesh 是一个处理服务通讯的专门的基础设施层。它的职 ::: -概览以下里程碑事件,我们看到 ServiceMesh 从无到有、被社区接受、巨头入局、众人皆捧的历程。 +Service Mesh 目的是解决系统架构微服务化后的服务间通信和治理问题。Service Mesh 由 Sidecar 节点组成,这个模式的精髓在于实现了数据面(业务逻辑)和控制面的解耦。 + +服务之间通过 Sidecar 发现和调用目标服务,从而在服务之间形成一种网络状依赖关系,如果我们把节点和业务逻辑从视图剥离,就会出现一种网络状的架构,如图 1-23 所示,服务网格由此得名。 + +
+ +

图1-23 服务网格形象示例

+
+ +从 Micro-Services 到 Service Mesh 承前启后和顺其自然,光看名字就能很形象地理解它所做的事情:把微服务的各个 Service(服务)节点,用一张 mesh(网格)连接起来。就这样,原本被拆散得七零八落的微服务们,又被 Service Mesh 这张大网紧密得连接到了一起,即使依然天各一方(进程间隔离),但也找回了当年一起挤在单体应用内抱团撒欢的亲密感(通信更容易)。 + +最后,概览以下里程碑事件,我们感受 ServiceMesh 从无到有、被社区接受、巨头入局、众人皆捧的历程。 - 2016年9 月,在 SF MicroServices 大会上,“ServiceMesh” 这个术语第一次在公开场合使用,这标志着 ServiceMesh 逐渐从 Buoyant 公司走向社区,并开始被广泛接受以及推崇。 - 2017年1月,Linkerd 加入 CNCF,项目类型被归类到 CNCF 新开辟的 “ServiceMesh” 分类。这代表着 ServiceMesh 理念被 CNCF 社区认同。 diff --git a/ServiceMesh/conclusion.md b/ServiceMesh/conclusion.md index 6c980b68..8040dd9f 100644 --- a/ServiceMesh/conclusion.md +++ b/ServiceMesh/conclusion.md @@ -1,4 +1,4 @@ -# 8.5 小结 +# 8.6 小结 Service Mesh 属于锦上添花的一种方案,而不是雪中送炭,所以业务运行良好,在惰性的情况下大家没什么动力去折腾。 @@ -8,4 +8,5 @@ ServiceMesh 本身过于复杂(比传统侵入式框架还要复杂),只 参考 - William Morgan 的服务网格之战,https://softwareengineeringdaily.com/2019/05/31/service-mesh-wars-with-william-morgan/ -- Pattern: Service Mesh,https://philcalcado.com/2017/08/03/pattern_service_mesh.html \ No newline at end of file +- Pattern: Service Mesh,https://philcalcado.com/2017/08/03/pattern_service_mesh.html +- 《云原生服务网格Istio:原理、实践、架构与源码解析》 \ No newline at end of file diff --git a/assets/ServiceMesh-and-Kubernetes.png b/assets/ServiceMesh-and-Kubernetes.png new file mode 100644 index 0000000000000000000000000000000000000000..78be56ba191648b32cd208a33f1fd3445c705c09 GIT binary patch literal 108817 zcmdS>i9eO=7e0<}LkNkIcBM#?BvBGFRZ=P{*+Rx7v&SF*EwF=w&%I;b+2`;Yh7zS?wnCSwu*HlD~Uu}rFvXh zgG6Gal1TKfEcAHi-{;Y~BoaSKRr!#nE8WjBFMr-XPsQI;W|wWnY+s2jg!mL*0+*_h!k*2j6S{ z6~$vXIHB=H?}_WumopVZi(P6@ukD`v5n{e($krvcZ~PWB(;w+nr$oLSb@vj3I4ZvY z@rpYb!%X`|pn%Qw?^}i5|9gwEl~r?{GVPVSovTcXpBivAhI-SVc=e|V3b^j^r*>;; zP&m1WR|Dk^i><_2%2#V@z@{hERzb>&<@a~<3$zMym966B`br;1%~RD}*Ahq7K1Px7 z{_k2jI|Rr|${E4_ow~}52SQ$m*gl|MBvEcXqgE%0G;2^&p8Z|$7Xf9)A%B+UHC(;Q zjKTg!B(AbrtO~cwTSHm#gi6v}7fhu;Lt!^cJ<9jr{du+u^!K=JVdCT>3D6%?Ci%1A z*Y5eV*ap22NeiT2+)Vq;PjpYHb}89*n(M5RL>#CA&YJ5y|J(hDEY~4Et}QyPv@=*;;@&AM3N z5a|p>x>>jP?*>U!)?<{+$o~weFDRgWQn{1Z8CGPc%qUYoPW(&fB!$l3zt4>%$b3vW z^c;n&?8hDI#eLYC({5b%mq{w6N;lb)^g@L9ulc-TK4x!fTnO>s-=mJ?;+mlSM_V3@ zs6-f%uz;sr{o1N=xd9l2q{HT^%=n1gX!+_^sZ?DnO4AR`Cf(%VY^}}s_nWi0Fb;=U z`(_d~AR6!d^_`+!ggy9o2$0_1*d{74+ckEFfPuQQCPi7U{sr#q@kpTm$ee*XMZO+J8kIYZ8~JP#u)`fQjN_=SB+5~B3Z1r9 zQ)V-j>Kr7|tZNdKEmgA@Uz^F#s8Wf`YoO0)e$&9qYqgtHTb9}Ue+;O(eCp)+JCxu#4UDY?hvPIY~Nflv6yRwI}kgEC1kkDDjEOJ0wl1SU>wn_&X_56kza!!ph?2mfCun6QR8LFw+&QMuLLy(HZKm;(uC z$5qe8RX^$&+c#5uC1})Bk%hi~JSDrh$1RpRTfDkdcL?7Eu<%mWaak*Q*S>_2gEE8d ziQ8V1F*y}!TKPb<=2RW+kUdG-R&=m-Hjnp@(3k%iT))q4i$gd=C;Wr9dG86rxUZuh zv)wG6THt5N62&*`iRey~rTaw8&tO zqkFJKLdy_s_rcUJ(NtL7a{0bk0%aKhmLaKVi0~wYS^YTaIEOb82Urh@Yt%uY``{tY z>0(7m$=u0n^M4ZJ&)?@3OSrT5-xwF@c8l$mJErW> zvHE7|ReG}*r^$X)%NTL?%*c_sW?ifm!3C4+QM^|*5;sWAChY9)`SI)Epk;c?$;Mar zaR54(d52ygfDu%>R#<})K1XF$+6>aif2Ff~bs=y8bVi^E4f1`4G_5=cjNkoXj^T-i0@;lTT zDfqvssYz1p{Q2|e68o^2Ai^XjsrxI<>z0i{fFNm*l+jEDxB$wR(a-%nfgA|(*gm@d zKa+TLOv%*~PC*#PsCs32M$6Eu)vF&7Cg{R%*{5W8zo7b;o&}5<(Mc(_WHm?W)vGo- zHR<4`udi?aQ4(K&O}bk|{c$gX#foCzC7A>P2;fq(I9|e1go6NgV5PrsYzj2i?mB0xtpA)4EV8uks zR??N^zy5m6qvJLW|AI&6mU9)riNITrj`eV2`l|8QTX(RRcXf5WCy*$cM@FXxK$6)^ z{~KYIAwkE4ED^;(_#q9T;w=jB>ei#JAwp`ag2y0goweX8(O18@^<};6evV(udar90l-az| z1nDve=Yhl~!9+_u|6%oZfqvM6W|8VUfMbZ)dv-W_beum%WUNlOZ08Ajy?aFJgQ+%}q?km*H`NDIQd0C>V37agF=;6&SdpaK zwW3(+Wt{}7P9)u#Dl!8yJ^Vzx(rEX8l%`N!nKa=p-wU{+5s=R5;yoPR{4BsoPDYC; z4w}1~K7_}G0prK%&CJcKrxvhCeikGziAsO}Y^}c#W7VM0tlM)*yW@d)#wjI6A^l9K-g8im(V7q7%nu}(eEx^-5&**Dksi3ZxBn#_KRr%H;**s6@la&d@z;`SKKx{d zkCLkhBsJA(cJ%Y}3o=2T-M>R1k4nOI9H^F#L~bE6>|`_z&94<1L?sXqZ@~8#A~ql> zXz=hCF!hr}m};`v84wT%i%U98{46&`Yi{!QPrBRPp07$aKq>0Q<-8q6Pa{A;d83yxq!J#lsCEYX+hk*0v(EQ54- z`v8$IwU0TrJ|H2cXoOAIYQGuaAt-_t3m}-aroq61%Rw}h1ZQ8)6z%tL=6!Bd%b=Cu zPum2LrF0_QVh>14UII~BCT7Gn>?O^Rh9{6R&r(PNHx;%pf!)iJtO;6`6)hn&L<4>A zA4MoGSlXMBVR!OF;AVA-Qo%9#cxag>? zr8tyIG6{P+i!&lUPykSATRCq=d?k-%(0!@;BN6QUiO72rD#)IHBi@|2I&np!1lZiu zs_=z*Q%@Ha=1eo$T&rXC65hw3$btHXR*iC{0@^z1hW#10z8QqX`~cu^oh1d zxGuY}G8~_;hd(hmnEr7XtyI zX@R#_fo~9Lgn+#NkxZxU)BuG_vfdryC(?sP`{eWjLH)tQQQG#r5SjhIEQK@L&jHMY zAHgTAy>A1!QcP(@Ao2F!LOz?oRn&!8uT_$W)cbP3B%l8wT*GAqr^;q)zuUD~&5x99 znBec4P2iKTsokeC=h43ob(L=Q-yg33{r|bQHgWnHCuzRfz1FYmThXdqJ_SV+y zEo=O`!nPe_y+to&-B%Zrc>3{m{Lbme3U{xb&(>Y2yIQ(JFS5@9f>mV>Up zJKw&2`{|QrkwI0A)zonNb~9sRIxG35`SI@#8%p22Ih@?|=H6R-_P$@a9hH>3!NKaM zPlp5ry|tfzzpwteMZl`oqH71D-HU>2cilU2>oA?q{ztWvYWCZwzFoWW^bF~DQ~LGn z&(=9@HXmYyNknk8w~O5S_w8Fo?|}ge(xm%lPxZ$Nn~!qYzMr0!ZhjaWo2HeVw_J&< z><8O_c>n%XRDyQ0rpUU$qolhk+f>)+Q3~6y59jwKBqq}FO51hT9_V;&*F~RZ>E!fE zTa^Aq%aH4yQ)+5O^J6t1Z53gZAwku# z*`f6NHQ$8;Tz-AY&dY;+OnQkQC${~nv=7<^gH|^UO-ctRH;H(|a9YVt)>2`~TFH%# zjd|fd986Y{8+&?s$WI!~gF-@{o#w5|)?JmKnVEU`srN36Y~Ak;Gfn3WH#^&H2QO_L z@Xkq~d6aVLXit?@_Lu&CVegk_^;_iKov@tz+>YzlJUn=ZG?SYyWXIrwC8_u2wXaus+DZddsQ}OX2$JnWk5xD zbu~-$KC?Qb)X~vVm1miGdDA~%*3-9UTb+M;=6E>c0U_1!Jzg_4*}A*g%Y_5r&+-Zi z!Py%*q<;MFD(5etqn)gOv~BLSpRJj?sehU;T-hw^B&>Gs>&`#J?SWPUE`@NN;2v>y zKKK5oZ0p5f^75VcYnWGWVLWp+!?^acql=5n#f$W%{r%>=Rd-bwJU8C0{P|Oqc7r@s z`~$%wm7<%9;PlDKTRw{X%P(gTqpx&R1y$`5S;~JWCC1W+CJgMWm-BJfP34Kcb?cUN zaAEuK@89CyD$nTpI?H_Q>S7MI*yd(#0DSDaUt>&GS5wPwv*9edN>79BN%#%23(U4t8gjQ7rVcD ziyTWQjtWk@$!?;*K~Pm`!hnqi+D?6}<-Z3KA2VT%Y02KNs{Xd!$;}G4s9%`s2vO*mt~|hc>u_RY*=5`&KVODaQ&aO~_parjPVJVi z)Kv|Cg~O3LaNxGW+|x*X<#%j>_ItefhWy?ho- zk78nuK9&v+tmuwEdH=GRnSGIZwDgTt!nEIfG%?Y5n&EikM3v&=C;&U7Zhqb)T#)=k zTQoR0nBH7+W4rD80~eag3X}E3_~cwUAH90@%4ztk%m*zVZvrKTS>iP;fG1~!B_Gw| z=p3SIFUM=R4aDF7_qzjcm3E>*y4Pf~;oUfvd^p|ww7qnbWMyIk?iPDbLHjvUwATXWMY}Uk!cfRzjFBqtu>OH=>NBZN72zKTFL$U zWMyaP$LmMha`&j6V{bN>%-FDgkHOn}+<_H=>-SttmB04K$YgNR{aHgP$)5LoGKFx2 zmoHzE5gA%oO_ODI@D}+mzg()Ss&Fz^=|xONwzjq|E<7!JWo2de?xi=fx0g^|WBq>9 zmDe}E{`u7wSRuf4!N9;)a%1ZQ!m(o1nGYm<_a0VQHq9>NJlJIj3)pjgG!VDS8``~l zcNZ18g`qFI#b6gtVD;UgpwiDnMyc=)g>&c5A?1}Ool6Wo=+Il;Resw(;(cA+MQ`B% z6%`c{PE%6tkkj_RS8vOA+`-hEX~Jwv9UZl|Zf(0#vdTU8pPKJP>Re7~`~~5(Xn%F@ zma#uwobVg9CUZ%qlvJ%<$W@R&a9@)E4ymLDb0ZTfM|8nU$3FG1-h!$>`uYwLkQj>Xj}b)kbdhB+aPk=(m)+At60Eqs!2pvhE;}sSxxA z{Z6tt(AEcspPmu9XUE_&{MBvxxA9kR^~8OOimSgw0i$dVHGi2KE*x1}99g3+~&uFV78W z?cqMN;LQh_cBrmNaUSb^r}FHE!m(gp8INgksT6I|?q(~gN7bM;(y%#F&UxqGon;RB zLC$f)H}}cNJQQ3x8-4JqEzprt;q#i}V!POgSp za8__4klQ59n~lF*?9UO`j!`$OkCi8j2KVTuGA)x0lMKsjS$X-pk1k!hBp7VMt|f9W zLkrl&b5`VD@l5TN;@QDuq$jJ~w!Cn0_NvNC7b1DftnM%FlIRwDY9GT-6h#OjWlqVS2Pj+w9*m*=0IYIz8=*kKMh~GhH3Ft@XjLw%ne}{&D>;A1{b{+vd)F zJh{i%8wB+jpC^bSJZuZt3hm02cOK<=;d03>SPD6{V}E zH$UaIbd|K3*-A}aT}bt&LR;>YD!&SQb~87(4I^QoM6vQ0#O|A!nYI0r`o@;&bG4=M zwBlyJt=>T9t-w;GT%?3lEe3H33GkcNUoM9(=-?c8+ge-yk7pS{K zs@4$p_RFPEBZ-@J1$ZyR&_5@(>!pjc0}G-rzq~Vr5Pi{P34&UBOkpex{N^iIhAqy^ z{+cjPpfNe8?U!)CmTNyH0I7Xo4R0v>H{OL50$ysX(n zvC>WA2wO8iW+nq_g41eh@^e358k6azod-3e67nJ+K78nq&wKQ2yvFCkt0QmT(3{t= zDk;CJ0LG16o9?>3^s8f04U&|y@+&tafITJiW4GAW1BNAOhjj+60A#DO*fY zhS?#bM1qHKT z9qZ#Q0*3Ahsy=HVeHhR>{6_h|SpcWdz_=HhBEP;BZK@00Q%pX}<#3ca-yvTQxdBNR zjM`c$x6QNb)_PDCIwJ=M2Mddxs%t(pb9?)n54F8CJDsFCTekW-=kgKA#?%4S3fje@ z#o2cV33a~y{f5mVN+9?3YqDA&pbFm|+-z;r8V8=7Mp#R3Lli*s~Nh58eKOgpk4si1whV`-tI=Q2xqMt7->fkEXxxyeuGs%!D8 ztD^@4fB$eF=#LT(^YLS^g~=AHY+b~OZ0+Tj4dy63^l)Zp?1?)dSEJxSRVh8`?rCXB zJtGX_hG09|0MN#Ly1TnWu1`EW@XeLMGxGlZgE1V<8#ipY6UV|pbNC2B@MF7;cU2M_ zv5f1u(|y{99G*RUhQfT0w^lN0LjUY;>2IJI(I@YV8K*|riTLhC11gxN-DyU`c~dVkv~h9P8zopEOwl3`bxc;!VgtrSIRf z&x-Eet)`|%cRc)(hlhuQLzZqTJM&jKi);`I2cohJP77*gyZfg_B^e) zFfmoKa!6!oh=qUsqrM%^;0Hw}^TJN6Nh7IrfHlBMO~ zho?s--Q`u+d=*T8J@%JN$;NP`#e*uyI$I*emOi>tywZrshdsgpozE>~_wDo9rK6{J zs*(HEy%qcd1?T36M;3?Y=jXkaro5OBp};LLFr4}KJXj@i#KVVWe$Zu3#NUJgREi7? z_4Jf&FJDdo{?vTOPf_KpIv)PK!JOpUbN4{#TtmopU*~W^x5=jSW|uFEDWK_EO2BD-Z7onJJ2E;cDXF2ML7ZK2 zEG$I%tZz21A|WRiq;REZvN^bIHC_17Z>-w`=MP?cbLdIe4ciHZvr;ev{eA0>-CW*pF6I7UJC z$G8ol93Hsr>^!*(23cSHdqv9R4zIBtxDDUNjr5=g5ZGKHBB4rV^EH;1kgy;8wDYSJ zR5XxRr3qWw{0u(}J=X?@H{!4RVz0ds_b53h%$;M?<}y+=wTP_b@$^h9GR)I6u1j+r zOOA?Djw6n5#CeIvPwA9r{kZbmaXD#17zY{U_nN-#0r+d|Ngo) zRiir;M(-G;)26DH-xCmE=HMl7+_*eBb+(Ryt6{SlG7I10@7t-gwsc%HGlsM3K79Ca z?zH^9<=Y5@K=rFn94r|>STeS&Bz*bZYACHvJ4AQ_OQx=s5L!P?4Cus1IVNZ7y%xV+ z8~Oiv@9ApK{xW7h$x2$aN+MRC23q6f>Z(ns)fcpWf-byX59hQCyk$)8Q*zoxII-ix zm-K}%SC;-B8yjsNk)p7wQq#-J=2d3mm&uMi#CJbwG| zp~|x(M2VaIk;JMAQK9QL-*uv$o(gr|<`C#L`uG)v!)oL^lNsXq^X`FfEH^>oU&RBw`rzCx!6*v_o*`v#GWmbz9WnSuEW3`P)~ptSP!Xyv9nV@OM)_fbk= zSwA~U6jAbPx0mVO7t@c5iK);QUxRD9!DPP+_3H?Sj_nEW26nT@mnqc47dW%t>}LXZs)G znk%TXl9GY~7Eu8#QUmL+cdbX=JbvD5@;olP$+5SZYa)N7c#f#XwjB#LTFzQ5iS4!r zHm%@EONgF(f~4uyxW+de-3e$x$=}% zH#hGL%WPe-`yj5eii%z+xd2W--amx$ z2nV-XwnVAS)#0yYKFsCfa`xSCkRwd*`gIT;5K2l)ipk8@ zmcs|Es|Zbnes{uGe{C>Pm`pnDIotSnv9M(Bpk6w<_NZk&=h`|9^z|p@5V21BU`!u& zxR4}yQ=FIO9BTvaqsZKLpsvWk$5d3HTr*Y(D6B!N}Eh8q^KU7$P?a!mYzy z$kz8xe8<=IVtU@N7C!n+m_FmxE6wy4``yST5DNgm(!?qu!}wI#>!Cg2R75)%!|6Bc zZ}L}Xu^)h7@AcD!?;3~&&ViHQlI=lz78Qc24aCWG=>Za9id;R47r-Ghe@K^)F< z6C5AKDJU>|Ih5?k8dK78)x-ZqmS7FvK1wd6cFd-toj^KJ9&uV>rvQP-1(V>OLibL@ zuQ&9_)D!`G=|y(8h@!_gP;&4M;LK}uz1LY`Zo6~f3{arAt2#gll~kh>RNcFO|BAk! zpI_SZK9;|hgKh^T53r7t;f%@`jv=ty9#AoMA-_1?LyRBTwlb`iv%}dG&HQ+Dh!es} zorcIgm1DJuSGd;&@)0#3k(drQamFR9r^M~M=`?g>&K5Dp=F_7;3A;d zCqnQYyb<2-pYspl?-C~Ougq6okpryesj}XB15v~SP|eSh;mj-VJ^{R3iAK=A#4X^+qy35gPo`EbTM03Dq)A(uitjg_{K z(@5e+k!l9&3Ua(n?OZS1qbEdh5xU{}m@C)EA3-`;RATDr;w;;e1@5Tb|n%kKbj6 zi{B0Fve;kI8QLo;=jNiFVwoMF04`gvxa2|h%d3E7;yCbed&)}$q~6J=XC6FwFkOW@ z<3v0?&@9n{)yUc!0wb|oB3YE7w`)WRg`Ir$8RDh!FN7!BFrvU>1oDh?U zH{#I`9-x}*M@O#+ng&(|(a`pMk-^Bh$FrZ(^b76IdG;USbN^k&yfn6FNdxt#Wa;9< z97;8X>9W;}lZH$C{rjaLu27pqns@SGKi%sg5J7dKK;83l{N|J@b=DHg0O>6ucu+AZMZ|eoQ#YNgjks6*jY_sZd@Ojfvy3O;-PfM z?G}I-V)IUSlV4Y#;?hi4m+@EY(+V@axX4`z0s4Y)1nV$LT;*5metykg%Ycpx!+GSh zjOK|6$!N#EI#iB&C%KQ>p=^?99UK%vCWjGdpxc0OAFwi<(}nu|!7^K6D!)EP!LvY5 zY&{_d4M+z+zBZgMsn#W^>M-~z>5A7}8#2zeZQDq3!cle*`F5qh&VqO{;1rrnG`9|H zyi3ToN}1X?tJcD+docR~3)jaSTz|Box3`y2zyav^McdrC}0(k0DxC+7rbk*0;MAX$$Ws%4mHpl?5V$K`5nF7s+ zzIrV!kU@5O(So5hS^RC42oMXAt(O}Q^6%vN?YTs7Gn5%#e_lRziv=G|O=-6^@rHy{ z3-yZ>J>FMuf>QftL;}b?(R8|)s+ElXXeh)t|LiO`q=btM9I|%7e2QD3K?Ik@{)%m@9V6E72!vImTH(Hfz1NSC&mwWX6VZIn{6_maP$yHf_$%&M`4D*Gu@^bT3?3RjyPP zxyLY#D&nmyVB97}D(UEGZsuXV<)m+zZMjZGC(mvxqkfCML3w$3by9LNgHe=_*mJzl zdMPRK8vju%e5%Cz|vz8VJ8in+l$>%zG!aFV)8)B zM)&B^6~3-=!I`zuGW&P}Z-kzV_vSn-M6MtIQ5SO!MVe7`yM5JWcwvjPez+j#;p$75 z$(5k87buiB|!oeCrh$3Y-`8#B`3#b zSzpHn$yLuDB;0Ylqbxwd-13^6RBC&B`}L9%h-REDpFVwR&ABV_f?8nPUJx6*r6$Wx z0<*NUb8}nCeou#HA-4?<4H>!*Z08mYJC0%MOM5p2Z4EpATw`a@R!$a8O-&{EP-*L% zE;~^khOPHc&~5cSC8+1x8+J^5QIn!yNy(vwA_mmJ{)z zRXH}CV-mE33b&S;yO-`^+V$pEogS_y}LQZiC5#-Y;!!>v!w=(u?XBOavbsevy>4ftUB~^dkuql?xZzzUDjHZ$%QkTh(*$ z>aew~Ez{QC6Dw~WE;Hg(61lgRox#nz?Hl%T^yn=r_51hln>TN+-nna+Pw0twyU~CD z{g+>G&B`FPmPvd&JZ!7hNPnXgCy(g1t;r%OKWl)9n9w+IN~jT{LUS|IleoBU6texl zepP(`@bP2#iFk28JL#|O?W+z8tzPNNxz{)^?V#7$$#20_mKQ4i1-iL3=^fySp;0V2EiT=Xj{-L3Aw+()0b#yFrc)TMcc`$`3dLieh z%+u%31s|SradtjrZfzZ;EWqy@Bya;j5Kg6v=tSDD(7)R5j46SV9_a_~iKRdk?3J6faJuk9^G^2eYq!2`^H6 zBz1#x?;@hvr;OiwadGj|-aBU{)%LM7cz2A1s668&{7NuFwOrh8Yl4NqX$y;_1Pc-> z7@>%=TV!JWpFeyEJuVp9Gc`x|&p-btncLW?#cOcp*tY9xXwV<7K2Ct|#SEKk2n?9w z{MVL}#YxbBL7&wMp@J(T8mW}zP_xDaH3;EV$A7)SKD5#e?nVP2l7IdB#mU6X+*kXE z8NC1lVKFhk47kjXAD8vQvGCfc{cLWF1CJL6-tBm-9E-@>&xUr>p542T)&Wq63AM7a zL!5^zYnxLq)WBu5BeSnB%o6=K40Lt7JSMK^>6dUIRb z$~+yo*Qca&Vd$&Z0gHQHTUuITuHsgA_eB;ASj}N?>M^n_4p&dRF3$8>Sy@40I9@=s zzM?M6#xOk@a!38UYu7%tm&L^jWcI`URXyZ3c;r^?$XkR#IML)ZYm-u$d2goR!?ttx z?pvYiiDAcDCYzg^?`}FE6!8uL6ZG6dSDLqYAmI@RKEu!H#(h0NmuvS`GIR+URT{s=PF@iXq!6RjB>8Oaq*PEB2fKu4N2 z!GZZ1k(nIkuX{;uy!HFjxzk%u%f|R|-c>np-ja;89gkv7cL(Cn5SHtPe%o3?oPB`b@hwKh@ z(K2f}Zqxae8wdTPo;dZZ?KW?tWG)Nn-Zq^`I2}b_e^u$o6xvfghtb?T)%eyeULy&_ zpj5KfNj7z87KsD}sk45r&8G9d#^gxTu5FEyyJ5~{s+J~FWp9gS0=n%(d0*1d?7QO8 zvnjoJR-`Xl!cW!I&h9tVCp5S!gyY`~HYL-cDBKtEP7aMmvKM%dO6-9SkF_fZWy!2I zYQ@vMJhE@-$|ujCUjl{W%(4EAoE5qwM!iSx+)DQ4oO%08k z<0lduktjVqJ@Z1pefxIf23@(hXw93Wd)dpgM1u}BzA_T`r^f^rc$&whF1tM9DD*^D z_;NZ-+SP4WrM`G^hO%z0lAGHMWTY8Ly{eI>r=*}+NPA;C^3# z9DE8v_Kxk&EnDkhnzI=w##dv}2_+>Z@KjVWxw*NCiOkzJ_;H0)g;iyxtlgpBUtrrN zC8m<@T~ozvr>d)~i)LaaC&%r=!a|80h#OFq=rTmv?)#YPBx$mi-dVdtsk-7E;r}5+ z1-b1m7bG`UytTtUQ?)bWUcNks6&}V4r%ys&!(fCJihk+zcv{8fHE$mjf}*`gLkD18 z{kE~K?Ha%WDb8^K^t7r1r6)X-gvZ^Ct?@{~s4K6xF6@r#+QXj4og0#5)?%uB>gDuec0H7g5*!T*e{al{K>`xJ67*KQ2*LGQFv z!y<|aWa(2&%k9(N&%N2+UD}I7;=eQ&O6*Ei>QNEkH?BcgC>-Ri>Y_wjj>JO*Ej2&i z?OphGR1$4Fjo4vNut+j9raKKo&7e*Tw*rbn9idlo9%k9v>p;60L!VyccdVs4E9j1| zM2^$I$Dy=BJQ3+3D#%ek#_`%(Mo_D#<&HbbSlxsj69xR9?N z#~NJD(oTO0!=VdbT8jPd^hI8<%||~>zonu|-O+IzvyLSejR|mC0kh^59Wt|zj}L}t zj@AMA&pg<$@A7+OW|@+OUsn#{f}u5s=yBQY7=xg2uUM;LYN}KzJ^bG+z;=@$$6(d& zw8G&p*bh3U3(z5JA4p(m&1-29O7PbD`I&JE4nn8y{d#@w7p|^Ehq)?+UI}&vU+g`f zm#Bu;nYFoCSXc3aF=5I>^57bD4QFCTbh6q zpJ-@?X*w^NR%mBlTrtLr0muJy#d{Sp=egrwzt*ErPHBRmTqtnbNi25d2;fd)EJZt$ ze*GAx?YLx!!6D~C?#eRcEqogojT?42x9Cf!|M~L=NwJq#)~O$8#gB_uf9D6COA~Ez zhJN{D`^iY7i*r8?l;~(^bQg#Ty#|Tdj3bgkiXsFl7*yOZDk|z|AkWr5s7x|-R+T{; z@&r*VeaXGTH-^n250FhT^f(uHG%&R9nBpuKY|iQM@HhZ=SD<6DZM&>$xOk=-JnD0n zDY(jm-(X)mdqG2nkuRidzDRm4dh~vV^)ZRFK;#G_4WbZuBaGCfQitnqxjt>I7Y-G^ zV`2De^*Dh57>`X$N;*UwIW7V52njXJ3~~p2fwoW6IMlCc{B1c`N*4YU4i~URl!27x zUg@ya;W1%f+Xe-Y_z7@DfZ#mIE27VzK3(70$*(d4&aHTLSg+UPn78<8+l|b7Ex6)*FJJ41JQwLR4kfh>-~G+b@>{4E&3To zWtiXcdDjzrZFmMX!7sNhLOwW<9kH(6uu@(q$}l|XdEmeS6Lv7z4h%8WeaD>KUa^mz zot@#^PhvFi4%-GY`9)e920XD~4}m1AE`<_L6=B)H407CiqANQ6LT<2x-@6|C;@JJ- ziFnLH9SRpb#q^8Nsd-r#QHG`HybLunGU_}~GE zCdM%CKi5I6)gWmzIoMR~2&EPx*!Rz7k2mx3GH&f1OnUL+gJf-13d(x!gp`z@Pj7G8 ztL9klwKaq0q$}`m7xF3ISmIeT~C&W>~^xuB~cT3QN$}Tz9?9TlsGO~E$<4M%&@TW0IDTwHR z09FzzgI!uFN^~G{(!5MhEH;X1@N+(paTM~7i;FuW%xGM8bH&l4N6U=PG)nf~QF(^M zOS)NRboJ_iI;(H5-AE{_%DcqHRD>dQUb{-D1gs=&+_b6h{lk}TMqXBWezzRC7t$E8kuNfoD7vaL*m5X-D#gjCKu$vI2#)l%%Au!f`Tt2Q&+y`ahV)XY)r7=SiPDLsxa~?24E!A_Qj~1JoojE#+K^p z)WHxuhmu z%V|kB49Q%@&JF^@sUZ&HvbQelv$Zs@0n|95ROF=gYa>ON&gzWbSBbOcvx+n|7A)!D zvtaKlh zs(`Lji=N{ug^fb|wai22WSe(}LfKxkSL{xo8zzhXW#;oJB_9+*M^)+UKaU}{V5Z@h znc|!d9u8Cux6SMFBW$p`vbFtcM-hS%{gwJGQG|hzB87s2@>xSasLR~koWuzl$%i#J zZP`+p_doRugq~PDp=#E{{r}J1!If&y$;E<76){6~;^#yh{mlWY_~L{$)JA z^!3uq&j*L|dH`_Bbgp$EwyV*E$6$$SxDyf;F{k>dcJHA`Q`K-%brx;RX=$!xDUeq+ z{POz;qw#w@2XL^Gq&gXIBXL(u30?oO?{OHOZ)L(GQhHPfN5n($DAprPH~4anWoBSV zNUagE3MEcL;|{5F{PEH}&dEEz_psV5>L0(~=FJ@G8LEeEyBc>{wj>`X_V zaykfv9S3HIo)S8j#4VQl*C(DiUA@|KI3O_4UPcqO_eBX7I6bPdXTFEGmUKKmC3L9z z*b~AE04g=wv64J?oW74&hG=`BCnwWaeU^f0zPuMN{IS`{?~iN?20$WXptvL|OzzZ) z+^#x{lHRd=)qxk(0D3G92qF`VN7bMag}=19W@N;VsW1Vqpfz_@wqhEjL$dbYe@~Dw zQo+gMDieu8CT zVPTV$^^4S08%V{{{>lO*>o#?v2=aDbj-G8$*yP+N%muM$aP_18R$7qlRA#%^mk`PeK98r*5U;&g`#(H2mmHj$JMuI%ZK(RCd4m9{ zAZ?Q$U8$rR>4p;V3eO=g&hY=m9h}-I4&H0QAoY_fE~Veffg6`=Pd+L(4U4kGBLFd zhs5M|iOx;BFVYmT;75aElF&3Q#lBrj#BpeXML}Ak#!hbjZD?44?K?X;@tZ+IhP!?P z(I=KOJL^uN&`nHDwKO%Mo&}}KhgbvM&v0SzJe`xXv+3T4kVYvKfFq>v1JEU;g?ygn+l;ROe0uwacN&YIU3jlBxD}Q zJ@5{b?n4oB=S1TxBnxd(KVE&}Pf&aukQ5WdBm?~oBXKedBeWkpIA3t--I~8%NToKn z5L3cOAlA3PcH8HRPY}2kmC)4E0(P=N$Kj}$HNk@)NkWXxEEII<{W>MDS6y4q3A*j&9`N970LF0luA$YJ!P99P1 zGn$&dVVCQoH?S~shJJXQDo}OWOLv+`<*RMbJ>?})aYASLKJeO#zK<^{Q2r7M37Ev~wW;?%KKY2I4NPN}OHKw!!?<$P{RT{fCYYLx}Io?oQmA zvpG%w0yLoL4DY}R9LV{WNhjG=hsFG$@oqTKqJLFi>e0gQ^3@VE5|thb9f&lLIy|6S zPG&%Jj=juC98W|1qr{&9BLxR@M4uPAM{gAM18C-p;oNtZZk9bs8zSv}_}*{TCfS1r zOE9<$^gaYgC1iRy24tzLS97UUy!-GJBp^O;ztsxUM%S)gJ95N_&{c5RUNqYv%l0Cx z8Cj#@ik`v_AyR9WX$^!PqC4l<;9LaNh$y?8Dl02jZIUwj$4)wkZKsIH8#GKZA(Q9i zNR<=MAMm64HJ1#aZ_P;^l6AmtLbk{kSbxq^;(tQ5G&Ac9Shq{GhJNb`LOkm6cB~^m zLLx#*X8U?nrOH0*vuGc0#N9aIaKU$PFx2dZ@dPygu6B6dmtcY{PDVj1;fK1X6RPeh zL`oK@0q9;lM9metO zVSVZH3w7Vw2hg}KL$*iFaah{ETUq4Zn_EB>cNw`61LDHk6*~KE{p%@EWagWk6vB|OcbN;6B_uGU?X=$Yj*fz zz$;z9@DCK8Vko&18|>JcGCw&2@HkBakE3U$`%rf-qRv26ps@gLX%ZvkJZr;Eb)ZEc zd(ZXoElm>w!lPP|fH#a33M90(A29`k@KRM>sgh-L4HQTCL4pM*JYFIo!2;n&basT1K5N8CQ{AiyUhc6m^#|75}R)8G5G_B!b zf!CIQZ)|Bfk17wy)n5=S2l4d{dL`S!{0TEnPEBpAN91c#vTX`qzxHr-l@2>@#7&_D z1_Tg6w$>Yp$p$lmy<@y$3=^!yg@xB3IHB6S@_Lj>D5$Kg?D4`+vyR0-xkN`LWNA9& zj&e7iKMTr?ixVKY;l&`L(J9iFGc-5|h3+`O($Dyb5oAU`BOM+U^!YIcp@%};sLciW z9J{R~Qu2onMzrya5(tbmvEq8rAxab9d?z!paFp^}deOa$Z?qsm2N-Hezb)=L>%;>7 zGF^=U07hdpCduV6@To>d6e+jDob*q}Yt%&Uwz9UK#|+*kj@uF^gt^@@GLUQAzVVK- zQgu@TyfuxR#%Bq#PK@1P4r*x6|phb#y(yyv`KpYRa*W%)JmK#b$IIX#(lp#8VM+2L1kf_q&2&j3` zg@xauIK#OgJI1V{lWVJw3uR!guPrCcL`O?atrjd`zZ#lRQfe=Ab6ZBHj)<$R<$IVm z#EIuQD`7-|uorL?CLdaH-D@7z{O#Kov`Ai1QH~c{Hi-mj>grOdmO45QJ4Wz277H!i zCv?|I__E$1{0${nkp9Q6-FKkUrs`%}qW4b>%Gwy84% z39PvsX_}pr)4h%5)?rTCh{#F7H2}B#zSwh=butMSX!FI1Csw*_UIw2e7P zI;VriG!#jh&~j2)hD;eX2}KBF$x@ai;gnDZAqm;WF+_wAAz`u%h8QGkW*RCnF}CM@ ze>1<|@A>=r>*>{NCN1CPzOVaQKiB7a7|y;XQ}lWC6_s-ENTe_YOe5r!V&$T1I|hAx z>fdKJd?1;fhtCG8JMTmN#`@%-+wn&ikP8azkcr$`Xs`DrBMY12am>nbn4Qj;q80r zLEYg!)e2t>g|Pr>NQr3taC1>dcQxT`PqdbIo zc3O?lco~SbrF>QC@O=ov+cHU107ubneel2m(vCazSOg-_KNl}n@1tw+Zq_bH@nt}}*D1|<6YdDFooMx2N|(>!fGkGFNmPM*M~ z16B1nLa?bjsRy?ocn#fF+3;2g45ZS>Dn$c-q}s}0q)-wAdu}L=Cxbl6f;wE^BhL=r zwkM7b*Ri6VL-QZesm@*S1(I#N#L-pfJM9v!5-&xA0(k?LMx;2L4~opSXmyW3bKA0w0iAg+9t%;N=x^ zeVCIQ3f^LfLcn_J&gK7I|7O57fZX#BgLk3KeeC@|x6e_7BQUy+7mUmi*(T7hL-{A& z1qKxrOez!snjjOclEGwngHJd($!Hi^K2m=@4o=$QjJIrSZsa_W0&e9H!P|1qW#ImT zf`a_~t3(?l7Y`N`5Us4=UI@%^KnEkQYX_b`e@;p{O({~dO^ZeBl`$5AKaudB(TmII ze%3cvt~{TZeoBe?=^}Izz=tA-Q>6O z@@8mQ3JuYXS%hL@l*vb*9prBXz7Ig9yV$47L@I#B;91# zvADY0+FDu)q|GGqA9hig5t=Yg4UHfQppER_Z?3zkr~_><`1GW9*1;i7M0K*0RZ2;u3rgnD!Go$5P~W~^TAEeJVE2ZHvySL1I7m|@cG8`rKa3~CHloLcV6 z%PV*NJaN)($`TgTmyK^9oH6`|kQw;&SRv49jaV(m3xa-R)UHHN`oX(4DkmP|Mat;g z2S+IucojRRQ7cM|3~hO-Jpd`6mfwWgm^Gc+d2wP=TMDK=lP6CmhB@p3Ok|o<*&hH_ zMBg$Nc^`@yN0TKQ=0qhZO3^f#%!c=GGwvRI2Eio+r6w%;fdeo9`6pK-uI5k-z>qlW z_Ee)El5GZ{uBpbo*-93-nvy{Nn9n-XQqrvRXo~pMf7Vd6YIEf1QG(cOSFa}3ts2l_ z&g|KwO35~ezS_{tMTTp)gHI!RCSyJgp8*BjDn)~)OFVx3xa2PCfziA z_}$uCd@+TuDnp@ANT7iTsOb7Pp!VgShl4|k?xCmT-nRL5dbF$*|KE7}GrffE?pAf9lizn!& z$Wy~@d3@yUfAD_r@rG7rf4kf$G1h!Rthp%fiv=}~O7k9>W-yq;`GiwY^dxISaLD^r zo5qV0{C2q7o)whGWQoe~z-yvAOVo~2H|h1b1vY*n@2!Z^skwr3h0v4YlFE$|Ib8Xx z_S?sbnLme2Iqz)WV?D&6vB&owqNU^B{4aqDz<`*k`?MfB@Jx=%}tLCM~ z@WA2&WG{6pJ0~YRUZkQN_C1UERC7!l*b0e3Zr6?m;ChjJ{=^}C|=WFr+(yI zYVQmQ^QaB58ji^h0S@O`wR|}v>Ev&zi2A?J|MhpL z6lz znj4VBVhM?q&4poEmOtzZr8N(NareBcA&{aQ8JYuoV@Im2oaXLSLxI)rCV+B15bA3#%&hGK6hWP<}2~M z%O6VVV_GFuAF*(+a+I)F;g;F4jhA@gk~?x@n#&~*Kk4z6vSZUO&KRDy?0*iR^2^-HW5dj)!1UO;ymoKz zFY=Qd#KM_R6ZMs;m)f4KdowpX)?`n0SFzwzJE!K3RA2HSz=rs!QFK>WHre7_>Rxq@ z>Pgj|de73e>T@2w!HC{I2ntnqF}m&9sjU8Tap%J46Fu`S|qd#Vjbrj4@U zik}28&HE&BB`MfhX^6ZWtP5`l9|R%R@`nS~bv-j<_@K&c-@(Zf-O3c=-A;Qnqy3YM zR@su;KKJlQXJe84w||tXu(K1$jIKN7G&$L-J=J6r_=Ya&vr!yV-I!bTo_;~$<*!WT zs}mvcswSrZ1VDlWXI1=m8P7WG2DdpJLS>vX6~NqNO=(kiTIk94QonId#a~h zGMIA7;P9TZ#>ZJBG~IGfHm~c>aalvj?Jqr(zNLD$Tmayy9yy952qdoq>jnky<$9i{ ziC@s%-c;W8`ku?XjrrB)ay>6Jib5AAP{_vU{h=E#BiEO!Vp&sjS(`pT(z)-0Y+sgy zg+;i}A@gY^9&6Mo;ujDtaR|z17*OLZo@$HoK@QMDtob@mZ~;;K6fa0ogC(Y7T}~f? zk9JdKxYz*sm#n1#om$8m>%vR2HnH{rNvhFJc#im->LWQ-g?q}HNaFP~PJ1jt@JUNk zWDFM0Z)Zi?nMg%@3zJ_6 zDXD!WTc{j40BNzE1FgOkTNN5)GiXW^u_92|k4$oUo%~CsJF^;YP0Wmaeq>KoyhV8V zqT(iO;IvChES0<&)M%8W%@C$N)h}$zXY{&^mW|E180}FdXd@oDn+qBR_E$)-{pfrk zzGoC<-X$NC^Fhu{*&ka(RXhd6wQ4|!m+R3IBu;u=URVsw#2{UK(=P~PJ+JqOp;LyJ zTk?3tvGCXzdn_sDX{9L!R3@Pe7P@zudlknT=u=MBR0Qf$;Y0VFDi0yRyvgONvgrM( zx$etPO1u?COQtj_ON*FwY%51c0S=XvNRrPhYEUh#ky~##QtlRn- zwjI}BJhG=+tc$$l67w!3)~hnxh);3y&`VXe=oj%k$PM3SOBzl3<$7Dx#M!B985@x} z(QTJw>O*(=C_Wm6F7Q5=ENW0hmF%rYb7+GX78@g(p-+;~F&@%d7@|d)X>wfL&8m7* zTw|J)&uDwH?0)u~oMwqtpht|D!jag~xzzLWLvddr8|aWXhcR?fvBSUg;7!Csd$2r( zjqeZ&`lwVPKTGrfo+#f*Jn&fgi5^WQSw6kzaLNrC6sTw@6w4%3$S3iQ8lY3lCkvg5 zgsjEzWN&dymDhStb@cwwv&)s<=CA-2xL$89}qLP4uU7X>F$m{*u8OTEr*9dmmo-V#|c9N`@D6Q`YtlUb`$*`6bM z2(visAt9}zq^%h?e&?h2_uhy%b^GA(@)@>gxqhSmX~q_uuwdsXOrG}ex05yG+`lpY zNVapSb8`e!XxmGL)klPh!xyVQa&XeusVLl5QRnXSh+{C?f4gJ#mp@EQ4?O3b#`&fy zLKmF@?N|hzNA{q?Uo@&AVXSZ$a;nbfr`ZbaDPf2)fzx-yBz#8x;gyIuZ#ZOFMqv+wooecPs|wzTP_SZMvV-}oj$K{vw>Pux`G_)_)dobP8} zyB+b|Px;%`&aQqIYfQoihx*Mi zTfG^P6>#sezckFS*xZUqM3K>aN*d$Dbqk)x)@)hP`(H8$T`VlyUVL~>t6itG6w``| z(cu@4H8f7#(Z*hyvvJJ2h6GepTAEo?qma*)KSP!sa&dtCX_lzZY9)31KBSw`$Y?3} z`h|4n8Hlf;Y_RU9an@+0wd)u}!gvPwA})wuU)Mp|%B(4Hfr_`Z@EGh>myU~Gc(T}| zqiLd3nU4tpgM}A-16J{#?v~>0jua1FF-MAil5L%Fa-=;bP8XHZxSNr^ihE1>PD^>Hu-b|VhQ(Hrn+7&-`3~#!5Eq2_c?+(z5u>9QD=&F) z5lKA5l=O85&fNw^roo^t?j>37Qyf0fs>;^>%zT9C#YtMGH1V&e7OT37V|DXQcK6lCEsT0}u0CkE>Dg&mx zA7nElY3ik&`dHZfOFYI#vy?8~s5N{C0cBga~!Qm2DuHy?WKk{9n2`=05)Q3+abF;cspnI$m(-(2|A6!CQZ1!J0UC z>t-a#o=eh2pOvVb2@+({jR0%3`%^*nN_I~QFP!!mJf=wcYoBh8^E9yx3Q_A*lh$pn z17QBcQ-9g2t#G7a<6E2uF=?3}5ygEkgu&vPwl}gw{HD9W7_1LE9 zXpxwTOjAA3IhBRO-D6erex$QxPn~Cx1)Ye>#HX(D^mGjtNy>ZV(am@m7(5(xqJ2WJ zsZl06v3Uw${;z-7v#FLg7C;UsPI-4ZR%_T?@Yaz9OHuOrt=hKrdm(bYbj$xiajAz5 zB)_v*8ynFHBcKuN=!07O3j{79%Wnov?tiQ)-A z{*ZKvlF(S&-^aNQe*I&TvK@WjBR>B7gAJ)(FHMWGhnt6ab4qiYbX)2YqwEmfGV1q| z3&Gt>O}s)bnkBZEoD4=b;hYv*siPPBUNF;WUivwx+_Qut!~5lvsTs7cr>q-q74^H4 zGm1n?;_XI2Go6v{kp$b?At0@LWZ2*Yj4v*ViUn1a~(}aan8;>5ZzCRRpTCJHoVGf5`*Qjl?y6 zN}1?xOYcT?H2}@BPB`_vF{Z#utx8g|AQxQ4rJ64EHrc%KokJmgO9=9ch`d={ZVlp# z`9J?P(%D40Hq^vGK8p}T^%{!0(nxVNexudM$@{Boj=T2knbi@L`nP2HemMSO^|Zpd z$QUKY99pO@*9-FOu{xNTGBPY{=4Fn#9`sKw0;jH(jWR3W!W|Gfr7& zpmj+NNV9|pzhlAQd-9frvXmf%(6m%tGP9HiBF1 zrQefmBa0{q0=O@LhYPs87cL+l!m@tp<7MR|Swy*ZV_wJenwlj_rgXS=Q>(0^F62*i zRtSDt?RTy#nn5x;QQOjIl(QmPtagA{aqkdc6PLaNFF2KsL$||8$aV!bJ_Fz#VFus< zJ^xr(%u9ueEvP&nlS_pbNwMZ$X;*}RX2-hpmH6C8oWm{#ckiH2Rr2r9%rgqOhNe%8 zw_Ui-V6SoF=P54w7|(I($rk@KG(@E-lS%aPCx4|Y95AbR5r+0yNv@|)ExDk<-Z8&Q z%(~bR&dPW!;ml6Gw62wet;|}d?^z|4D87*;(5msiUw94hF^OL6lNKZ_Be(T*Mj;{z5*R)AO|^&GmoD@9iOF zN){RK-_OI50oi096v7E-y2n)T96Yj1X}a)UG?8hC+i^|AbAyxJ#!}%8Nd2W@-YXSR zCdyKUk3x-qqD=O-YMxc12)TX%C7Nr>xe`iQ%pwd4a_(j$ixpR}5k`2Ey~+`{Z|ypD zmU|Uem3O}ABrJMx_hf*8yzh2Bg68g6s@2GEjX__}Vry242_)*q-&v@XZ!1*(B$L= zS5xKMbsc2GAvy177>yX8(Q(z;eYf6^vqDQK9&&6KiTf(l$}7fR9N+drp9zOe#cI3s zRSVBCGR;v)=u>sqZnpSZ&1F{+2M9rkiB=j{-5Kd@k+JsY7!##9Hzo#N+&VH%Xp%+& zvqHey2RIpQ3Up$3t#snHS{HLGdF#`zSaBa==J>BSwm&=8u|yGMVQH&O#w`4sTUYVW zUi^TEK?i3EZzd?DKMQRj+_q8^&SdwN=%=1lPAMtcWZ8?H7C%?j?X(4>UxaJaQ*G9Y z{1bRod2!jGpY`~BYI#nLIyo^(pSwx#e$HcwuLgS7mwwh!B}#qjLLOvotLBvc@aE+C zC>GYAo|ro(bJ~PkCuC``-PtHpssHqVG#7-eZWDJw@1{k!wC?tq(%w`lZyhczyC=L6 zZ2ajfk!iwPIqp<8c*>>w_BbsF4!-pTj~#lYu{ah&QLWpl7oUNVrb0h7Td{@H#cOrD z_BJJuMGEPjyeV*iSOa^UX|y_m>T4BM@*cq5E~1-X%&1&Xz8@E88w zx}iISt8FB_O5t6~h9^_fx~N>bi4`%lJ3Dd-0=zS3zyZ|WeqoNjK)i&6=~c4jX*8&F zRRhrlI~K>9`=i1?T|vqc9`6;|G&|x7qosvI{^&*Al+1C4UM-p{<;99Jv@d;{-Nvjb zdWjuH90OzlZ`h)DPZBO6AuaFR55*;G-&MvbLR(sD zi=_7AuHCFN6kD|JRn8^iZF8HAjuz^iQ-}!I3olF<9bXe+Q<#ObQ1}R%jv1#r=HrCo z*{d_hMMj57n@kfq-eF1}Z|Q&5Wst7%D%gn1?9T#;U^c{xEy}%i@_yU}vy`@5^==q9 zy^C=8wlg2^`UQ=e3*hTrvEI%cBGf7(F3!1dj1UWKBT9)YtUPxgy~;k}Wc3feZq*h| z1~Y}Vr(rwVq*}5KDUZ8=F+B*YwiC|;E#ltsWes#;oEP4574+o z=dCT(E`4n{>>OV`TOr%DX|QSD^X;~BY<+8El*ll0=PkT zOr$`e?wh;YUc4|x+xBxNBO0W1U(w>39E5?2?w>pHwi^1|jW^n5zCwxUbt&Y5Dm4{()<6DL-7gWL&Tv*lu>5_622 z!ShVB(tUt|N@Ls0H*XGOR>j_;qGf}+fkdu)L)^#r_TMUTsIP#%c1^!+&_==!lec^K z=E1v%(gJBPanhu_ho>4LE*gz%$wIp&+zfUvH4W5l+O&E74r&MYad2jjVpIvEIKXJl zDYCQM6;qH^<)M4_Y?7xrZy29rWTKondGeOZBABbZu8wo%eDKjM{x^rCv<*Lcq^8@1 z0h*~@w4%?qRl9bA!1MJ#wJu(|Dm1N(3Ch?RXC%1=%L$wo0;`i zHbzaXd3fXX>(@7IXsd?JQ(s;K5q= zxSB2z$Fz^=R{2a>nL*$aUt@6K_Opu@2ih=R1j;jfO+NhVH~BkzczE>bvqBkVx_meD zdEzMEi+$o{s$caqhrE*DhkSGZ5Xpt7z?wmJK&)ESAVE0EL;;Y7wdbITXjRio2i~E@ ziiwetxkGm;-<)puAu*{TfoBV38@)k;Lj=f>NLfaD?)H2-3K8h+UFleo_!sEfl!Y*M ziK!Pf^Md!ZxnU)1feo$gUJho&K~+^%MzRHCE|KKrqae^1gFv93_c7t++;bQ@aA#0K z7;H?P;5jRVsB;VOwif=3ePPnV4|x&atnT-0=3Dw@yV(uQsp3>P2JZ^-)G`W3xoyaw zj9t1|Z|jv;eso54%jU7MvEtbL@$4U#X3B3RB_)hPF<>5{z^|YKQAA%o@ow=Pu2~rP z0!>DZ8ME!mxJtzf&-t*fF>Nf-;uHmS#(j+4cCW^P`G-r`xqI)P^jOnn1Z|Sf8s5ga zUhe(Y$(wDA|1-n%NH)#-}>VZF}2BCEEf&KER60aL!k|Fzb{>A zm)wxR$Fyly|9kUe4G=WMAZapUmB-n5Uv%|uMD+9Xll-3)ZDe{*KIerK8g;II?$oK4 zfqCV=qiE%gj5Iudaea^V7dz-uQc@VuWP@N#J#fqTJn#daL)NF?wQAAxpy%Zg@sC%F zBdSbZy?Qkyuu-UqZ@ytHjT)uHxpmK(mgE4(x*BN-+x=i1ih`Ulq^)Ov`{|H@XTzOX z#R~@YI6y8B)tvu*Fwl2y-7;V{*oG<()(x!m?dn%k%=o({P{K2N$>G+3^tc+l(_;;d z$|*PKFVb`l?%+2bzZQ859 zLTpcKlA?x1L_D8)ls#+szW-oI{ZNt>Z(%)E|M=sNMG-AljD&JGaLbj$@%8dba6y1j zyeB+`FeHzRirR8z+@>j9O+q~}Re(2xfbM^egCeHj4{}<~@BTDv%wCrt{=)*m0G5ox zn`(xp0WYjULyX{q@K4nVRGNTl{w zOozi8LAudV^*7dQ^5jEd-^|U0SmXTpKuMWgP|)3$7NpjTv2!qZ(s(>;?AT_$n7S99 z%`ALw-n=P^F&aQ@PSB!A-{fmee9jhz*A6~B^dA;aN*51HKle-$ zV*~FAMQzxH@4xjjrm@I5tcS#<>0L?%m=an09rvzB10{U&c z%9w&ih4b}_Yolk*yfJ6R+jTiP34ns$zVB_ftC5mhjQ0SV9XE^>=REtbUBCYH4nbkx zv=U<4&KL%Uc0sC|4t@8gp}Pz?>~W6o6Xs8v^tmt72IxTpDVB-G5z>d|axa;)Vk^>Z zQS+Yuf9)f9LCz{sXJ`mVwn1wAGT_(8FL*rNb>l@FfeeaK3kMEXk|4^VE>)tq7h0J?IvPNW6_(WQ5F;ia zyK48bt{pWVDhYA_{<(u00LynYj<1s!)NaAq@%e`i^>A@n;P5w{7WMk|_UkroY^X3| zbvRK0>{oLfli?>4+WJ?|JQ^TcOc3nG6Rswc8rKz@2v#3R@QHgTXad5-)zMha0EW3) z45Rz-F5Z@Lgpg;h*c#kPcFmvK)VmMFp<%M-ls?P)ZsFL)=E)C**LDZzZ&6Hv7~k~3 zddAV=YFIm5o8NnLX;wNqhZ%XEP`y6{pn2CARSWwyCY;mY2zR_0gBl=P$NpE$vE7_m zxhYJxjw(aj?^eP#MO(b>)tUw&b%nHl;aX(;l9xBDXIsxrMMb^n+1n-@6`7WrOYrh> zrx*@%=ynsKWSB+BpvTLXF5%u96bldT9Ii7Yzf!WrPZh^Z#eS=1vsV{z))?8s4~rTC z;6w%oh*!RHdQC+y&wMC3T`tE;&t}eviZW`kXARywtgx^xGLG8e7K7nl&5k>TybB5p zUd_#Iu}@)msij!FM|9OdA?^Po;JaJ5yzw1(Y~L=S#Sh(@sKSTp0~NpQJ5NN2t{mZ=pDPknVXoFQO>bmxsf?=!%NqD{orK03_~+q(H_! zZ(iF$S5dFH>yI97ZLsrYU=ZG3dPLrmQ#3H)gu<@84+L!O1#<7}D^8nh&1lD@y zM5~#MLnCEOOsC7Swg>j_j|IXBU#wD~`rk82J=tPP9}cb1?&{02;{4*!EOF}6MYeWN zSJiFmSURT<^C`E&I~-Gha`Q~WBelKH+yPU@snY|PHV6{kBX=3K*%zFqPzZzZ7Et$i zeq!cmFVfG?Mcd;8<7@mX2t*d%Nta*Bwu^g@K$Z6K=CzfI^Em-xQ{#RoP*d_x!Bs!qQ zi5aq!0Xi z+eWelKAQ;qm=t>Z_H8lMK*;c1hGyaawa5+cEGkZRcKr&&kI#M;lT#&h=vy=s5Pt55 zvpIBE6QSX9zrV21ZevV=7!QdoY{7xQH@o^9_0jXhwe^?#Y($(ImpGVY=xNV3x3n7WlU!hX4EP zxiH^X{=m2m#@#@m>B#udq6NW9^`Vj3~ z%pQ$sz!?NfcdIsSPNy@#mB_#0?L0Fi1qO>tv^V|z_r#p40K)1KOtc{WJjS#`9Iho; z$$^6gMFsRQ*bBfpib?VkGZ`C)BY8Jw0s>@j0#~DGM)eJx|HOXVx_`PgIi2a4X>}+w_QF(IX&Q&}p)e!fO|vstwBzBCXTY6+e}I>OYfT8dcdv8r-sVgU z%O46KM_uE9bsR2b1_}4IuD;RSCFFg*ejtR-fj@@}S)8Ow8%w%Oi z$44;=@ZiB0o*UP$^}>f(G8&5ido>R&SFKDqagW)h=?w|^wCnG^>!3pnqKM4J12D*$ z2n~HlWABY;Gr?JH5K*vv$nMS=f%Cp%GBfq`bum{^-hlQuJTa@Ne5wW3!J=5hX;&ducY9BzZn zej`R^3zN@~unik7*58@a!af;?vz{bZZ(;0-Ykfe$5@5a)NmdxNz;ZwKi@e|70cJtkz7+3Xi*3MuUn%;siX~8%ok{A4y zDC{?$i_R^2=FB`wC-yR59~05X`|<7kk0OGL8^$Z5rXNp49MX?{{P0$3?D-3&X_PKZ zZbNn+fXlD`$-p~<_TM_jafTC)E#53|&i%Uahi<>t;G~fgWPI7#8#N73g>0zWIRArS zzlp6f?>&%QTY|~SIejuW5xnshavF>3|Z?AAm#E6)zBII=8;o?#e& z+ z-SGuBm=Ez%socSj@{jl3v?k^mB_18Y3O7qJS$);#yuNT7`ZYwhJ<>MT}(TB+0u*p>Vg%CfF9 z24S=oy49`{z@FO17qAuJEPh&LyBJ*BoEBKG%gNf20hycZc`$Hg0zN@)aI-xC6j4by zuaYZa>HrPzq3+BZjE!!r$820p6*0X8Y?=hzXB|ah?P1MgFe^41V}DUo=$WE1Zst)% z9nI!bUF&kD);_~{kyF{RhD#n_9oCrh+^=2DS-p-KS}9#AZIvkU+H)gNp{h?W(@n_} zaC4SE5Ny#@-_a(^&x+OC+6WfWNCA=2T`8OiP@jxV8p81HD=XD1pmNq3PGyo7%$4dv zQM2^Vr}BoEJUpn#Ra$%emO?@}wA1QZkHMYScxzr>b}(%|P1_Iw+D%=igfvR^_0U+h7iUVh%OKFwvw$ZKV2=9{Gc`A)IE{MgIN z_Ts|hl`lMD{kD>7-ZREE&2rFHPC2ZTwF)GPrwL*Z$%=qM9osDpj*b z3t`B2GNR9m!U*U@=lf`@;G-V*VDiW89xcrBqL#GVhHl(h?0n#UT(SF*6copAl zLct%HUjmVbuC>O|l2E2L7$THz&? zRB&vLvLX>~pX6(}=y0VGn8nYWOSLS9M;XOs{~F6p%qJ2-uo=)UF#U z8i5Vk%A2BGIo&74#4cM)_lwv>)q@s{->egVnK{NGr6FPTXm$U_H!?qY1;3y9szikq zZ}E&hdkdet_rSvN2ueVt11#}}a2M{6BUTH*XM6sJe%1;} zLAg-4Ke+`=-bvH;RJMHwi(L}Z2WSD%uVf<*n({5kJ1{t7gvX;tR}iw(1t6|%t5yufWjYjsg6R_v zu?H-X)}(hvvtIFyX>$c3X|hQ2Su;(OfF|l34kSUw!p1D`BDmr#{MTn?y{Kp`C_YTU zhU?({kv3vBKR{p>$FdP6h~&9QU|#*{5adoSOdE|M<{|mc+7^@NU@EltOZTmVeYNXX1>Gn8z0Um4TQk;1e_=bN__I-qOdt8&EL7ZFI#waAwEVTXVM!oz?4Ab}ZzdgMZ8IHB)!-o&UVv?da=M z2WpI^KuK+xQF6`MM`M+t*OfHY_Z#A%i@Tp590CwF9T1+9K1+S7wxJ>n9@3R+<)1|z zP3@DxQ5lSTlZ1q8TMQPV3>(x>j&cjLiSeJWH_or=5yA}0i>x|Z6jOpC+%Uk&?O zb^hViv+Xkq+)^$iY9#l>vHKj~e?xsND5vV?9Vj_Sb6F4piIm{2i8)MkzxL^WJAJ8!WAz)Y3z9wRns>$Z^YUqc=iWnyv#Tf>MoJrI_IO8)U zWS>D`NRwid46syy{8p-QOGOKxGzGQ|9e93#D}g%xNG(nHCTEjAu60c>Nf!r*3a+Yt z^Xmg5txFZ2p9gv_P}4}{5M_2=9T?Ez%5T37&KyH0Sm>(lqIBVw~#(Jt(gDu zJ*l#&STb!ySpU+guiZhGS;0)+n}$_)NT6V#NiQXgq&`YEObb&*P^U>gAynrA^f4w2 z)NUpjdfF^){Je*R1ZJ5eg51(1kJeg@3GF+L?(XvH$MKz2`oD@8D?BI2hS2WD9~l`L z{kG}EC@R>IURD_49jkX201ipDU-ZYl^6U-}hF9wBISvJ{}AsRE3;rs!#p=Sc5kBde~A~A`c639BHJx$#O@T zA@{or_&kqNTHOzF2_9rjD9d@xwJhJYpK8Kxm(sAWjkNBGC(h-*?D0@c49%T+^jY@l zYjBQFi;ix3<<6ZutcgK3vR8iM!wl$P!k!VUQQNGU-t%U1!9Qf0#CU{arjrw0*M9lz z-idZb0NF3sxspVbzuFM{+KwccKp+hHGw-_)-ZoH5+q*!oQnkWXw29IrZ*}Rbl9a}u zK2_7;6R&v>WhCBy03+tVUY#1dr$?=QKiz0jm+EV-?OUm;!c8_iHlJAhxy8;-ff}{t zA`54v>q>^E#3WGzbQhUt%@$b%%&zeh-fqQPHTWI$JPk&+@-iZX9ReQ|oqZVm1*SiE zwlclsA<)+9^g87x?{| zR~AN+JC=FxVxIBsXES?l=)1**vB1nO)=*Z9ODgyWiY6gbq$A19YJa}=r&v@*qHO%7 zfJJ3>Us0EI2I$aH%sFJRhhIV1|E%jISFjxYw_Nes`SQ+?5FN6kcJZ>Z4AdZO&FnJ@ zhH5Nmd)VWc>UsIC2tYj!ksN6E{;9ucbtkUMPur?}`F0+tFpvxLfJcBy2oDW?^I&P0 zV-4f8Is~3NH>U>VRF!QrO>!HtLHg#%P{^773%BYG?NhXBsV_1sBsFltZtbuMMT7z& z-@xo;?K3!}W}Z&XgZyyabs&5`dR=fxO)tA0dTsC*84Y&w+TN!ZIzyweTG6dEo&QOJ zNGI1p^Xwj|Q!ndu1r~|H!8?PmI;Q+m&_Q=j;X6bVzoc^*xlvChV))mNH+Wn?9v^x(8(WqI9zLG0Or;CLS!=W@y%+LbC zPB*3}GROu7Ht2{3m?#6S`T�b!={*oOo`|iqGX$OVmdih4^7*R!6w2(Xn)ki!HyZ zFiOmD>8nX|QL%Elu6m7c8-B;B>?%y*PJvc!T18>-93&wf>-Rd&>qt#%=&n(l!gfcN z;UO{1_Zo>Kiqwzdm!Ex)&8If@pGbBj(=7OL-(rqPktdRR*frvPOhUp3m{%yMpcED7 z>fa4X{^lqxAmp_76_Ux^ur+&l_J3FaCKX)aoZq9&N?5a;!b?t166;l0W`t3tDlvy+G>?f8<1*(#2TmNFmhriiUUFmDs^cp~mHlW~c=+^7 z_oq^fB1txC)Jcye9Yr#j`Zm-0e){P-$)B4VX8tnNiXs3k#+C#9Z;pg9h&mSW%)P!H zPd(|-v7_bV_}+c`)MWead^wjsy`B~Vxh-9F4G|#lunB>BeF{*14@>2`sy7S(qDIZB z5mSl(+LgyF%vumdW%y&U&uPekR_G0B?;6lr2M=ae#hVZ)!R9)FWRJj|5Rf=Hz|JIy zMcvkeI1$LLUw=(y>3+010|{26&LD?Ze&a?!Yp~&A6VgnTBoXKZ7TT3XylL#<=^avc zXqnI-JM}`P`j{wSUkJvkons5YjtU8ns?zA&pB85QdlR zACqy(ub_mmiKCKHMV9vyHR?&D(*ko{f6f18$W9t+U;v+#zI|s~9wCh*R&1bA@AFuC zb;R9mCinX0RAI0-W@l$_+<11sQ|Hb%s$W49^1u|Z#9Kj+}%m>+oY)znU*aTUnDtxcfckH+08hnOxM(iF6B0-EMrN0&^R!0v*g| zy&;xjwEhT$HVG#_R-RlKQxKCjD)}5K2Q+G8-#CwS4OtQ&6IGISD;`LIUQa|75~87$ z!_S3-LO90fNTZq}NQ)ek69YmlcXm?M^ddCg`O=3bS(VV}Y?h8>1ym9C=q3ca)!v{Z z-Yr9No%&t-J#4+EgO#PuDx)Mb^w?aU881r&2V`QweK0!Z{*V7M{^8!UnJ$!>#4wF^ zL*%^g&G0Q()@Enhwrkg}ZQC;)miJ}WcYJ(2BR}HfZ+R@K*?nsws0$5w;IkihQt14g zlzcA5!ijD!mD!Yp{dT@AN-+t%D@lQx*1PlajGRlij@Rp168ynH-CV}*TqQw!tSL@& z-u0OAS?KRsq*Ws$AMn*i(ym;GaUX4@@mZ~-C{CUy5oP1ISzN~~kmb~s^k0lhki??n z_j`rxE>HyMlD9VcZpf>=1E1D>yp4QDT@5XKiW5Is!k=12IRoui?4%jTeta4@X%TH7 zUZ5#eSh|$nbR78ogh`oW#%DzbWo-|Ib~bBFXzS1k7ZbI$Q*X9jx<-tdVr18%1++fF zll$F(0k{zr9!tJq<(^UH0QdU(BVeh>xpU`&b0jA+^->|e02y7XUm)5R%$|-@B9#T9 zN?(D-`ucM0+&LubJE*D{&205y5DQ>FsGHp=(&`j5PMmx~&Y<76Zw6!02$pzUD<94? zIbp|C`n#hBkPc$$)~L@9N_er7S}56D2Ix8ryoRbhe*0Mj?BD1zI@7{`{Ly#x?k_B> z!cW|rbtxnG`lQtt6$CDb^Tw8G)yh1 zWAk8t4ci^P`x#IiT)F_mbS;&ADKMnHkZN6=ZJ_6&0D6B=+$z<0u=6@_=ayjdNA7NK ziYJ|J>@`H#qw^MqDta}Hv_2-S4NTDfz{k=4pWMMq8OB~XDiUsw>eT17P`PuO{gSt8 zI^^GI9d*^U;6{faHVUUjCvTc)#J3!!=ESF$NP+MCT6S64cgs}h^*uLV8JFF2MhxR^ z`=oWVJid(cg9WY}PZ<^najzJ_J6Y5vX-}k{EkG6EDDB#|?Zu43-+y0K(6WuI!$hi+ z)a*JQp*X<+;t#3`&q_*+b3HH5XCC{5qu`rW3C=gdGz>QJC*o@>3FlC{RG4sLavF}y z!5h8fYS~a2KGdd(OdUG`x(H=YT65s{BD%Z%Ea9J9V+Hz}+}(+LHLqreW`^tv5$Zhr z(Cr!Y)E2a4EktCOn#*9?jdNd|M^GsGHGmU_0Dk_sap%I05_H8B2oDMM8bPBddM`dl z=tjTMX_grlK0!9>WiB_pLh5u%j*bCtl8E`zw9;OdRF2e3*IF2&m4pp27#t$?l;kF| z>5>tVPUFV>yWZcb4O?i1n{&q)x6}t$5d&=*s4F1^7y9}do3ou)4b0jO1^)OL%(A9L zV>MN}xA;ui=;-Luu%$ZyU44KU{)Ok+dpWax4*k$%Ta;6MsvSNZV1V8VS&7bMU_> zEPT9>2>dn-9`RrJh!L0T@AMUhfFd(PeGW2ZCoSkYI82TKrCHgn#3_H_*^zEm9Ss(w z%YKgOV>ohmcNhcyeSci9v$eDPj#mXo8UX)d#gQ2kh;aRxIxzj|Z4a%@Q3)PP7MaYCfVI8)0xk#vZ-MDUJq<5~u!LTDmsN_gTMVSS|l z)sT?BU};(#{H7gE-oW6gL>u2GeWQouEuSW->OgI%%gXo&Gh&8-vzz}$GyrnCwlsH zmXo^FsLI!MVjF~?G&~{#iz=oyQR1x?=386Ayr?s0{5*eh$=a}iDEwk{ED^Zu`rbDM za}hx@Wj{E*hfAi{J@A`2B58 zdasEw7`9SJFaj(S7SvUvv$m^-*feR%&P9yF#pRsiOq#h>!p4I0r%ut*t;%UiZi5Tp zY>1C2yT*w>NnQ?uU?GG)hko0tgb1L|z1TZvLo}OZhK)$hCvL?L;0l@&g#%|v(5dW` z)!jf{i6RQ^jTuZybFnRMs@~V6Wf$uS-?;s-Gr0EjVOkMRojTQMotjkAYaPa%?Q8Gq z`+SV0abn8beO$R<$Cq22^={_h7TBE9~KdTODcWJC+udPU@#Sa%Hwql_uT+POnJ7=wl#~1IFL*d ze65v)%d9{Kj#BVy;V$7A14GWK!gZKWC3!wP`s9h_G>y+yj|KwA@TJEgip+KNF;SCw zC>R%yrIOR-sC9+)IO zYBvL%!geoTw(LDqb3OnK7nIp-rsrip4LLX|cy)%ptKlZgoW^KAwQ8eFsi@5nk8&J| zG$v}U;#^w_&zitVvsI3&@#;R8ptx17kfpi$&^Uk2W^7@LUJUfXXvI&ie$kc`p zjL}gV>+t`G1bY%Ef(>DPSzPa{bMDnNP&a>7EyfKLGWYuF6$c%2K`9W4E6ul+t}gv}yt`pXQ`7c134giVNgLxrG`JKu-^Kmp%57GM9Wd_*4x+JoxIce+io z>+8H@(<+M>0CSESHA*xDVPz4UAf1|9H4wD?Qc$YUwT`c;_xyo|$%4$SvCFp>WD-*1 zZiLij+ou@lMC60>WR*d>Ic;=t*w>bU#4;U;IG0I6qvCkT8dYcx<2KHQ#Rj4htW^)8 zl~@?KeuR|TOzBs5R|XB=Z59PMr&FGnx)IG8~I`;TFtIm8K9vz*dfSd)TBwz*ceqlw-NYZ z5lj+P5-w`gL_#1%NhL5dlp}n6{>R?uasNUma0ITpHj%?{t8L?B(nuc{MdUd)pD=0L z5QEBGcy=%$xvm3?sBwyv%>XRlx1OGNs$cQUlkXlWfDi!wT5{gBgN%jjJWxk==5KNd zWN^TqzQt=qLYUaOa{He!J+k*W>8ZJcuj9Px{M4%PSutvrz8{r=2ZdkwuvIlh7(qfQ zR+{v7VC$$yrnWS6woeIg&`GY1`jocRAt4h#8Nt{^YPXTeS|e4`IfaoIhgy4hfi~TS zK-5eTrB;1q8JH5h+6XZeKW#Ot%qgM+!C)goCN4auibGO-XewN$RklrkDY%&g4h1lm zaPUevdv-lMJW`$l{)@}PO`!yKf?+sjMvTrXJ_MBaW=z4}F(ha3{m6w$)LUoca!z;# z?CagTxd51-V7P>!8VuN>@;dAr`n=70R44iq9^b%)5Rd!Ih@Vdy7>T|_-FQ0F?3 zx&Gyf+mZoM{VHTwKUm+u_*^9jT`s#?PoYLyYBupA2*b1 z&3m}42hL>=Pft%*R|q;_6J@s3-ouCEn3Wfi*We6)CrQ{+#WIw%0bWIO7>DpqTtou> z827}dmlTxmgj-3DA*{a@Sxl>IagqI;Qtnb4+vycgjZ*t(;4do$^wpe5OZt2p)qjmL347EFeY zc|1AvPde0%UM+z(%c%mj6PJa_VIX1DgnXxO6W+NWUp6#(H`Qlx7J*CxeM&^h3UYH! z;h`Hjz32VQY|T&kc5O?Ccj*AmEijBY+y*o$VtEbwb?J$U*Y)m{s!Em;w^I7Q>Pjk2 z1U>O0pI)T>y&BCne;&ahk+bMj&+xp=5qiaF`z~F&%<8!z0WKjq(6tI8DGt0y`B_&LF|5<}w z5WQpAMEW8@Z2!xHe2X_rrW!*;odhKSJ`BIc&&0b2d95^!@#Qu;VmNGpnga_ph=C%? zm6Tl%goZ4=kBK(Tg+gA4fv|~+k;H8{L~c7iX;F@(oV5N)>{cXR-7?|mF2iQ#S|n+o zHbt4p2B0rz+Q$UqO*FudQFSj0ZM(Pre8RK8{?f;q->Z=SXLREac5`fKL$aVGnT6NvyJT;xyOHBcYm+>nI|J?c>9C1`p6& zos(y&!m(d$LGTO;gD>oQ&7S_SblJ?K?+FzI5j#~zDhK&j0IqDg!d&U63`!NA3;Xt^ zAAF0Vf<#cIPL`lq{W8AB*Mvm6F0MD_7e{nGch|Qj&(yfw?42BJ3$H|20@iwvwU3v^ z3g<wo>#>G+a+wCvzg7*R|a@!|1^y-jF~+>n!V@J5bj{0s1Tey*0vBcO`i=(3tlE62n= zVY|u3wY(x9;nJ4bN793b%Xr zMdN^KUXQuIL?l!+8wB=jDm+Id#oai)=vF^bKiv>pF-L5OAi)z^+5 zMW+KH1&J5|b;_P_=r%P9>P5SPf^6i}vb=H22*#FbGqfYULIN>XOt(9F7vlVh#5mKY zy`Z^s(xKaUE+V5_@7cq03;AHf%BIo_&q0C(F=~KT13Ts<$UOm#$nKgz7mD!k$H_&n zXa)IU*LCJfEhAC4e(l=B0DU(y0E67`llTamGqtr-L;*G#g~EkJn#Iz<%j$9)O9KlZ z`>$jK--Dt7nA zs5^|C(zfSxX36{-M#}2e$9I=MPCRs5u{JBKXZ#CwE@qhC$#?C}=TBtv)4dPR?uj@B ziRyb`?_QwAb;;i)UtJnNeVa_S(6V2lJFOeNqQw>>GxB8pWIOjMBSAExY-=loPbt!k z>=fe;$h|jIo@5Mk>rurD2P%17<%|?)HqO{SdF1Z9C+2@-cS7>Y2}AKevom1;_*XP<;yb6~EZGYw{+t^c-4^aHF%S|UH+Z%yrC3qyHR@rTT`CQUiImO6fwi~>qkX`Dj&HP8?_NyD9bP&7yfkDeN` z8E_-w2)E+hx9HU&1ZJFkU0lnhR}TdN-g=LO(=$MV)6kuX@fcPPpTM8e0|*$a=GU;d zEUrp~m^bLgHFK}p+XPEV!r9NYPajc!N(TOpjh$VTGv=1)F%X<{7+wjWz@Ux2myIJO zN#lai@k6tV5{Li+SxI!4eOz$%;)M&ii0)OrnT$ks`r??-CxjxKU*Md_Du zpJWoA-`w|*q>#X9Fd}7mmF@9e>^EEv1hI4yX)pyVCb+F9HRdZsf&{^r_)D|sr#qSd=j}li}_S6TtI3StWJQ&l~yPU z%e@=5vzjD$qshi<%bz5MsM6ghqxV&+D$t6!OF`g?f-1Q2SJN~flbemn72d#Veum%p zGJ#tVMU|W8~Sp)_(+;gc6A5k!K zw?%gBP0fyL9+W_dw;{l2{0YDuG4UI)ZYBZ1+0s&r>kbnK@47A&F=YlPN)}9GsdaM8 zN=>L=e-HHIs+{>9nk$D*7`UqH&FLjAXpLH7>+xd$#`nKm8Mk$O^GZ?s3=e;Yr945k zZRoD+H4VE90(AjfjR8k8(}$Lu#-fC*|9=VhD?|wa^?Tb?nMog zx+PW??bVB+(gGFl@di1o>lNG^u3r7vtwhzALCp}(dIMjLSj=%P`tSZ zMJDazxTDf{ohe8%p6RbeDTk7X_bq^1QN+s!J&B8iNKq?QwT zYgWtXgu03e>WsdhvbfrxI|)DoxR=RkB75fphD-Rql8(B!+CZx{Pd6igIar!|U<{x_ z?H|t$;_jY?sDbSNmMdPM$@;vmG@APZzSM?U6(HCs8;hRdOc07Bul(aOIcW67Yd*95 zko(<^SVpuHiCmAF+_iA-e^`L-W*`k{>#K@izI)$|p%oiV2-M zx1Wi6Oj|p(ZET2R;E{b#_w3BPm!lZtanzXgxAI`F05CFLQjRmRwHw@3^J6(=7 zODBpT5>SJ0qc8zXRh$Ven;S5+(-#7daP3dexv!^C$Q(1~F+8U|G3I18S}$ANaJ(^U zjnCOJ9!<#K1}>|8XKhIyp@VRC|ALIVWKIjBN8=2vDlw&~9j3pm__hj|04Ta2hlI#l z*29}5gveX6QDDDxY_Tc{co(OP9Ir_3eueMnPR3FBqGDGkmF4}16pLrzUC9M@QSQzp z68|iSsK4R+UDxxSP6PbHDnPRF`X2(#Sl%nGe}RelYcV%qxUsXL+@@ z^N8bfpZ(E&B3vrotEvkBAGY2GuIBsy|34+f3@0Hp7e{fjP>L1F#ZFX&nrwwcibP7T zQj&{JB}_sQSrf{diQ_sn6w_+-kx`P1Y38C_o{aLlKTkfN|L_05{de>I-1fDk^M1cx z&x^kZ15rv@7>2X)yVy^X$)Ktf?s#xvO+o3?~OOOolPyueP=7OiaV;vI zPEB6GPBxj3GjFFGxmV5$i6cV}TEYk;E6a*DQcQN26iwI%!qLHx^OrKi*)n(M z;bMfcBLwVq3Qx?}SBM;ROS|?mk{lWZHM|EK!9^2$XdvboR~dMCF7tGqnd2=ZDW{Tk z84iplxHD_N`;K)EU}>=Yo>k^eK5$)Z*7LrmU8M>f3xd`e2FGR|S8Hl^rwx0uXLOf| z_T`uF`P1lD!7;NtXGrSuvq~ypLIy@=t84VG_+H$m+>!;+i9)76_v(N2qe4%{i7FdoJ=<0b#Wiz zo$4XhF>c;eGEFRO`D&*1jm1oNCDUMD8+Wz}zV?!_7>og&fd+P7&*G1%nTu z^Lyo&a`oQ<749JZQ@lVyB3marj^7-36V#orCgmNA5kZ+eY$J4aHjIy<1 z*qf@SU;O;|beGziRQFK!P%-&9*}_l-@@mZMYUY*{_C34lZydPs*u>OjItg-?&(^(J*`qv- zhBvAB&ah&Xp;2c=oMH78Pt)QP>I7M;0rf$hKx>XD|6i(&Nqx4c6R?rWP(z0I57H|V z@Z(e7-Pply9Y)F1gJh&8!x6Y2`9<=vrJf>38{%VE?3id{_iSwA9Bq7m?~BIb@tw%( z0-M9SU8#`Hl#w-J#;M=ak#f`b^OemgC=7%4#*RL%v(LyT)o9jioZ)#=j1j1uVk1Hq zEoy(vz0|ZDm9KL{-F<%FIM@0eUb&}_9>sU!t>}qyzQnyWuc`K&X_q^wTUIk!2jb4x-K4cn^<^l|6RTZ2}~Cy8xlEZNf01NRO;}d)L$h zE}FWyc+vopW7=*4@f0UWG4bU`F*MRVpmEFUBfnupLYcR#+QsvmkjJl2%HZzPwdW~H z;SEuYOgph45Hq5L43Yxu-n(J0E3=o??2OPDvBF_|Q{~-r)KSlw^Q8EAugmZcA{UUJ zcBOLV(G(#65)kX(uQIcbug_L-Kq#WcD;CNXAc<1-qH=PG%bL_Y9rdNlaDzJ<)IUNM z3Ce2^^>p+h_3fQdy?QJ~*u66XW@;_gVr*c;C zCBhsQBXJSwrnCVxhW`&6&&KP(bw)OzB3;%u8-+B883=2D6UrIobZe+xyK`J`l!f#^ z2)E#VHXguy%06Cgb9(0dOCq?$q+`>h0|WW5U8)8#d82b?EO`7nhD$W!P?)<$Jvjs_ zx+zsbiNP5n7&)zIaEj%yL_>>svwnVbKuip?3z{fWSlAA{1TdF8;)eHq?;6B2K{(ze+b&nrbq z282ieUm2(PL)j?H;cw^^07;Dm@8sq zLG|jp`kJI?&%r_CKwluDMVO@77 zU*AlbGFR(sj9EZv1gil!KgrI0!H)*Oo;PciXp24?1RX3iK~+-^z5DiTdwaG%4mWkd zwx#SA)LXMw8ETVF@WB$}?;jThMraNKc*j|*?L8Xjv0xjiH>1+4PY_z*UDL5|T0X+O z5PW;tgH5BM%TV$irpF*%%EH(@zY<6Gn#1Y__u34v18Z*A?R)v{sBVR}%1@g$At%w} z_jZ$?(Y*D}2#HIvP9+8t&hc$m=MVSR;e~+RgaC}3ziGdmI`xUagE{hOr;-qQ+etz` zduG^FDn>al-j@IWzZgnr{y)DuS9OgyZZ1U*3~*RGiMB$>c-zj%;jGX^6#WFlIixRt-KD5D=Nw0C!p%FnV7=~fuBgnn6Ll@}Qm}*kxNH-p zbDYbgeiYYOu;FXQn(0ZC6m(=2RQ%vCt&hR!Y8eYM$_Ng76X-|x1{I%Rw2_XM;ZR{$ zntzwDe_uV~H7Yor3_gxuW~(4QJ(TU*AIQMCN30t%*~cdmTL^3{o;~3xv0)p2Zs8@4 z&?2aV5D9khBale)-ag#nv-R$?v`>&TQh9QmrYDm4_}jWJ!ItnZq(5ZEe7-;CkIeC( zvFGZa|75XV)ts|_jCcmj<4j<3PgiCCR#cEONBd9S#*Ep^mYwv?8Rf}-Uea8y^;g$r z)zMMF9^3EYG;88yXWQ6Sp~v9&?y|T{-ZP!))1mMX&qskxZL3&q8NmdqwOi>Cniyn7 zMD3e%;kMXCBv}M+A8?quG0Ea>MYXezY9qmQS2gNI3@U`@`0(N0?AFb|ea#D{KF$T0 zXnXbH!ys`Hye|5)94##y0(#uX5>yn;h2fs2ylPXL42No9^6?r@KBv))%z&kiETUlH z3FV1Oc!{)&2~n`JJ{~Q-Hkpc?=ti)V-|Qj76C(&)|NBi>@9-rlof?0~9Dt#xO+lQo zVWarKooL&$C~v{E&dRt_)1JI@ZaL5@DO~t*mLk7q*x?93=kkn zudQOTPi~xc>h|JdS(yNyj)mayPdGE|WiD)vG8c28n#HH|zg6hLs-j`_uLNDWF-OZ7 zRYDU7iBjb3=IgT46dzRwz{q{2atOnh`*oO3XHPIxjzohVn;N;th69+H-wQ z4}@l=k9NPZx>yvsYqY0@%F~po0XZ)FAAJ9C$dWM&&vQRkGpzn4)33I^f>KL)G5j=M zT;{D)Z?bC4Ezgf*H-G+kZ`^qDbn=}ZpR%JayvWBUML=V;v#Kj}}+ zvGUvH@N!g+G025SJlr=zBQ15)l)F*=+XmLI>|4NEcyP>p|Zi% zwQFbO(EIMWI@{XX`ZOs;+)-L#=rA0FsK%Ssf?MzU*>_&QbLVHt?#Dd6Y1zI@rNKQ` zKCmE~jTyKSy{?oICJRX5o1*(s*bS*hX>MM~&5U4}eG8%B9PQwtL+P0q63IpqxTE}q z7H$K~TjTA*EY74bd{;F$Rzum;6+4Z!U6(N^>f`ZM>xo<9PU~DeVWoh!8r8?7Q@wUj zQn?t0^+c`W7sQ{#!6asXOHbInR^nUVP) z#?+tltlgK;MGos;Z5~R62^7>RngQd~=vLrIL$Mkik@f0_=&CeEgMbh4vd+fTpF{{E zoHTDszB3L}KdMb&b!U39S@v%lSLwI_{@DF;MW~Wdd45S2QhKLG;_EwK#uLl$e!?aE z2ARN5*XIxhkyH>mf{qfvQf?CAgwQC99OxSSG#Tmz#kMc$ON9ZV)h?nP5=MVS#AY6S z*VbzzcO95xURZRRq<#1>CF{#A2c!Rj02^*T4SFYIE}F%|D?xGEz#>?0>z2ft4sN|XY6P$YK2J##b-Oy z5vDHesDSy3WYE)86t}-Y;fQ6I_?4(>SraE}A=ihc1g2(-atAY%-`Kj1s{zmYrBk)o zSM(x`XZKmD4-o1E(I>W4(9Nqh1n}hIFHxzEOLGWkvenUVDa0%m54S^5AfaKfd23$7 z#%{x$hYa~#6>i?mIlAuL$|m4^i?zN33H^3WNDVHYf5xWrMDd#ecmGLp5{^*6y>!|T z&_X@IJ9?R|U8tq%f9LL5YrCHM%t8K;(Dns!!NBIQzKtsLJ<&qZ!v0*|FY@K%`>RIs zz{$91liHG0-z>|cP*QG!_c)*8mu6hlh1|eHx)_|@LP9=?W$@c&eF4LSFo)BSU7-76 zGQnhvpHKJZO#_45_bm4L7k(~|1n?3#Lp5pZ?*EBe$pyDLbnBIsyVBB_?uMHWfxzzn zkoS)i_zTjo))!{0)J6NU!_6m$#Q%-U(?ce%FGTx>V@*h^V@ZTElFip=xZ1-A)$#0o$$h`f5NJ`u#FSjuP93CBz4x214LpEny6|l-Rkv1`oO;1go{_t+tH$vyF z#Q8Xinizk^;Y~WnXQ&w~d3pyud%f(7(2Cm1!tm4c?>L9d^ECA|b*zrtk2JEC-Ti0# z`zU{qdzd+FD2NHYwsg)!{DP>GB7B=E+URzfhI!rV4 zoGqE115+sNng}Zh+gSQjwpyY-U`^ICMwgkvzZJ2OU_*fNCgWp?`09k1hL`EpkqswG zmOsP&=^pg<-YR3z_4jD`&d{S2n1L!t3!IP91+ltEgY;BRO(K)+*tFFYm4rd~6{GMUz0*x?L1WzH=UraN`rWy}mgnn<9QL zeZBlZA*q)!?IF`4c=QQv*ipLJc!&SN)3)`_M9fw6`aO&`qk!Lmx>0G zI3B#+ME{ylpG3>ru3tNz8LkQ5UJ(A%h-2l;p_PdV7sl}cWApsJmIZL0ZF$@Wz$*#D zsq3YMq}qhjdUG!BmFQ@W9h*g<2`b3zu9CqE*o_*%XjItezyXQ{?LO6LnixrC%XwlJ zqr5w*gV0tUQ2+w~cp@KZsqezZS7m_vFGyc&)`CPsqia=fIpiKVe4(HpCm;!UThNA#*)wJsl5-|p&-brI z9W56ZbcHR5ZYCjp1&D%UQ>2-h)0ExK3ZAttFzfxO8Bno zs#G>iXjI(vsaL+Jv^&f~5t`0>Ldyvw2{JFUZ>y~Detd}j@$^0y)y?H9*xdHLmG3Be zush2lEqAuD(?hqakp`fo8R)~X7Ewkr({8ppf7*xF)5eb*_mBh7LMdNekiriyv_~8# zPaw?@sS@m@4E5Y|RNu1Y5vfAB`GGm6E+#46TfT4-s>6^W!`@yV&r0@xalspykRjw$ zC@4}EAWQ!j>HvfLVchFEIg^H<%2WpW>;;20P7md$WeNnCy{E_;C7s;q=y{)-SExKKaQv~}6Li#eUg42T! zX@|n_W99X7QqG+5%b5fL6DVYUla^e1PPcSztEu2xt^E=N1I-<+M|I@ZK#5l$1MjuM z)o}{f*x{q;87n)5{+M0YUH`hXMrk+-WMvMop;Mtc^$l4LWDDN?sYQ2{ zptY|Uytx>iPn8o<5{GbQ+}I)Po9_fz=kdCM-I95lX@4JwmGBew4)GR_Dx>b$f@Ibnin zQ$@g7L2ml96nO*Ma%yDVyWs7ksDraWh2o9%33*G*c+HwrC52DBP0bdzGg{UzQ7^5S z>aR~DotrDjX+l2AP=kmZw(beOJeL4cZEkm<&nWxv*{n_$wni{A<00I0+#43oor{Bz zs0^kD1&loaY>K_ZwiR!;F}p5$8NFo5F?CCFKEBxJ%+51jAZXAw%h}e06nwY5yu6sR z(+=Jco!!}Yr_RC*l&iZtTUO7W)-mP-TM6Dyf>YX3+8P7yxO!Wv6YwfAb?KohnwukL zq}W2yhGI19eZ4sW?PD5X?j_iG^WmBS8DHebH8a*2Em^BCI9hi0*LYj9J=YGOPh^ky z!|8V6F2YET*H0+L+oyAPZec+lcuCAO{RdOr@9sXudl?9okHk7?O*55B9yt zjzJnXTO4BZvI?*d(y*yZ@b+=z#ub;8u;HY7N|Hsmd6ZO}Af?r#+3coAOoO-kh8WmH z&;?giyyEUqZQ`_=p;jT9^lraoR8KBbKxo@2DO2+Ie#bA{R@iiFa*1E#zbT- z_V7F_W?BWcfH6FCqdXROZ2XFt3=sh!dKthSQv$C?_pwQoPjBcSM2VT;ikw{Edse<1 z*A@U4umCfWw#rd5QfpSljOWv4t5MoEviMYe41+2u_;2098c1qM)Fn3Ntzq$lZj?l*+@UfLXh~g}qE1MQpiqe1b%((%3JquzbUg%=g!_L+&CmI)^;)JJ zP_dcM>(D7F*$xALK%C=HtoY^#_C|kY(iSCs9CIOkjG!8s%5;f^*S4M4Y+HSIl2MEkX@KRShJ*XeG z-+iJ6O&%>lMCCiq0O^|LL@*(JLztY-NHkzm*(=K97wl-Fd5HlYrV6ZQZ^fq6AJu&l zGKk6#?b6>qoxkD$MLgr}w#v{91CZhFsv_&2^)bUJ@kK+a%}{@L{s(Ob12NkWm{<;~ z;29rlp%sXL+ioIF@&YP`th?4tJX-ljR4YuG(0vEuy1xXUMSjX24)FAz`5wF>dt5mi z2K>OqzyFSGuRGh_kpxtndg@8c z7RdFrl`!g^URU{#8Dc-8-w`pAsXZ!dZn2 zbuj4g%|{EikxzYgBv$9+8DEI$E z(SXH618bt6K6{o;$sf53sw-gLOI`w{UiM%-RS;XUV60}SU2iv(&bN(LHj{@Bal%x} z*}SFC?+JOG9)Ip2Mr|w{d&J!^Q39#RwbKt@|JT|*z(Hyn{@>^Xhep15fIw^4iiXIF zfgw);+*XM}&!q9rZ)fIAI=?m-_&L{la?7w;`^N43_0s0?&NpY<*Pa^Oq3UOufikba zerrUWvA$Rkq=BuL4A0s*R1-?s{QzkUZO6`taPxI>8vwMGBLF3&aPX?iqnyWhN`VW` zX&rsz)X9_KuVA9#cd*@60R0fwwd{Qa!Ud`of61|VY^w5-Y-4PSy9r|mJzQfv9OXAp zXc>nPJ)_7}@32y+OP3vKX{Jh9+r6}U=Mvlk?V@Vdo}ZrQHw^9;uMWpe@C{i2-s2C2 zqNzz+PxC_AN+zIzy$3WuKF6~}J#>=Q=f88G%<(4ct`*+D+&dkFwr+yYR`^UZYC4V- zP*-GEQY9KjwMYhAg6Ak%EP{yEgCc@D=9Goq-t;Ct%Gku_2v)t!Y$z{u0NtNtN9 zGgOMfMRo#2(KwB#hAX4`jk)!b+Nykq4e|KF!;u+q*tS55g|R(p-f0!=e=XuBaKE^} z=m~0IpfD?7dYI>@14Da~caSm9Ow1hfU^k2JIrK3E*MH8oXTfxwG0hdJ0K-aVT7H;o zA#wLloc_?l4Z*@0*h54W>nk)nX%S_&tgj^6YETSvP{4pUTNvQ-(|ony*2yAjV5n>? zM_UEKMc5SjiRa~)(QG=o9aA2^GkbU~yN-%#gSfRs#c)73NJUZUQcHb!(s36|Q(cI@w(}(%bePE41lT z-TYU?6ZE3^fChEggmf>+r$93Oa6k{5NHcaBcXp`G);}6T5=19@ z56FX)OuucB7O^^CSOR*-NHRF!Jd00IgaCf*_dD1nfP3s0^Y$-6E?hh>ggZGpzGdPP z7#doPWeDE5!;>uF7e&I=q}pRbtzR!jjIzczD?PANEE{-CFTQzmG@_qdl2b{J7I^pS zY{ms~GJS6gf-pnFMYL12yk-vvvGft+8hxnWY=Nb`=kDy|Lo{oKb^mY8+$PZTYx8uRhv6sqCSOo1#zJm&u(@CQBF1%b%uTheD@Z!kYta#lqMY#KnuY?zS zSJ-19bX=jXq1Qu?oqe4%pT$?QHVSYT?#FQtJulhNrXw~I{W$#m*&)|2Rvjw8t#l5mZLCE8-y0AkAfY`J&B0Ym?C4sPj#ivxg?^?{yAMihQyzP zSjl6<{mp5?gG*B1Ptph}Q$@i^H`AX0inL+82DNTf)H@mw*y-o+W!k>i7>nt&wD-4e zoGF`aPl#+_iz-Z8{;_bIsP)RaKwl#gAN3zQmexG#1)EEVJ%S=B)P%)bd|`QcJ7vhc zQ@0zax_2zHwmIB6Q0~3P2 z9?&p{D3AwGmzRxi$9y!8W=-&eVlQ1m_*@QCJEdVudvw>vL{1^uIsKfh=P8IX-jcfPF; z0|&Es$#^;|fX-oAQf|@F5!HUYs*v(pCbNuJxP^)dSRo0#MKB2Jp!^gz@gZz&aOM~| za1kzN2-cX~Ez1kd36xQHjDxv}l+ynIu@e(mdY79E;+13pkBQJ%kP>v*hh>6GYjX5D z;vce!oHysf>KhAgc9$NQLX!HLe*ulfq94&FWF`oP;5~qrR7`+6hP!(T78GwR>tGi@ z-Hzc1sPKJ^*w!=9PAuyoz z{+8@E!~$XIf$Jlws$OC#xB_AqDUYZ@DVdDb4Ml7AKj74PIvIMdJ%5+miJuZNj(iNC zSNOrg07f(|A2P)ULlP2LnJ@lJP}pVZJGufIXe=&ByHW3-7vkW;elS`!P>p6PM9R}l zFNQhT7YLX5d8M75l9n^*u$zV&Dh6*^-8)1sfBf(zSAkRADOODjCAp7f@AJ^3fh`Uv zCe0t}fXf=(2q2NT2a(QZtp10ZK{k`ub=m4LHV1? zsJsf@qM_H4td*8y-Nx)%YoV)IQs%hUgD2Ym?E75XW@xt=U=P{ZdeHC5L>Tx9m2k_fiwge z>SV8?wCWS21r{!N9lWvQ_r1yDT{Ir`;bJHMbzQj9oXh3CZrLCZ{6^h!|&; zseMzq4jt@pw1xz}t$inpfZ+IX2YdThV*E>6vUI6gY}t0^75+h)6Scmw7=dB3&d=TV zF_PZED_codP9<3usv=B{F^0^BKn6l%e=OEH^LI>`7)R&PgLU<~dlK!DMUh zpM&GSkaN=_m|Ch^>Sw*%_OI~(Pl(ePjcCg+C;L`s0uU4~Kvy{zO1_NS)6$}uhVG15 zs_v@?hJc55A31Wwe(+#;Ii3pQ9_`BUb+!*V$!f7Q(Af+goZz)@&9K0Q3xPE1gUt(% zUm<)#rYwE5Fl-w@1ry4fW~)881Kk?#c59I4pH)&zQmw#E9$>bac;76OS_*f7jl5!t6&v>-Ag!eCmI5$De9_QFMPQE?>9{*xM_!`EK!pSEs|gQnni zBnm3cR;?uAMebS`XUix|CM^?x?FA_IF!E<@(8I;2b_V)TCTM+EuU?JK3GEtOCEpN* zmrA97E46>v)%ELybE8<$<*|PMi1gT%e+n3eTSi}e9toX*)cQ7#Asw(F{dgTmM&~X#t{)*hSH#l#P zc5yLV$4=d;*%ypNRdE~>S9hzaygE}Qs|wT!1jv3MWfaG)TDJ~m?hj2Q{g)rPB1NqYhh86{8naOcdblmY>P^=_0|H(7ICAMc)nPc=}x|3zl zUXwv!ys2?ghWqA-bV=Sn2bIb7?a*zhTf78I@k-FckX$ZOskozp%r~}AyoV-Dn&4$_ zonUAw`73*khZjs&<5k^_S5-})Q9E@3CqJOo8Id)B3?YW zj2JH&G9mPgTaOmfSm1@4j?^VU{G1tgu>4_X#PKm(1LaRK66Kq-{%oF6{s(srC0cT_ zmntLqo{1uJqJWU2eq=jbocc;Gds2Z>FL%Vc*_(6eN=JksAz>?2+myl}x#Z4LtnZ1F-K zhhOfb13vscGD?!gY@x?kQ`CG6gKU_7Jye+!GrbO#^~nTAIISaOy~xA|$HwLtteUK^ zyl`R}z-`tiN_7lENx!)_c(8+mTIFul$M$gCelIB&aUa9xiNLf*$hZiGt$vU;Qwsrk%3#uxU zEb`M?Y6&r-MS575SW582meGD&1D6gL-kPng0qsyQ3*ML57O>C5M0Xbqp!jCl6-*?+-u@#-*hry!+uX0DsMYuDo99>&i$Cd)KP z<>hWL!QHb3kG=Q=3~C1lGofm-mGH)616Oezs!r?IDS$j5cge9ZlXx&kTW9M2@V{ID zc+RoBhZI>j;Gp;4jWL2>ao=%xTRwS35E@Pum81h*7cZqM4lo=*oLyQ?6Js z$PR8dlc1lk&%r(5ZvrVQ{z(UK+;`|jxd_C7y3hRwiycW8R#cYP?3pgA4E-^vBY&6A zgP~jir4Ib%ha^s1Pa0uEJ=Q;fU`H$%t4E>9U{p@>l?(b%j ze9iviYOI4+;O+I}t6L!l9jn8(F*qHx!=qv?t$S5hMz@zP89!TX`w*K2=8>2mWm;ds z@Ea}O>L?bc7eS_BlI=KP0F=S|AP6GjL=h2%LgKLXmu)MW%SqF$F~J4Yz1T5etVFLl z+TV(Nw!U^3LK74gJQoQ^d$i5yR8vl{PZPo@%VPn8n0><>{`d7`@^A48X-xBQvr-Oa zJV(xlsX_GvW0@uz&;n}xIh<5YUADMi6kCJSI>Iy}AlPe^Ma7Oei(q9(V^uaPOWjg| z_O8RGLL8={N21&S#1z^StOfpei`PbGXiPuOos&@?gbIDhk!T7M1+ON-u1Mj4%rR>(TaHM``6^c56#(-(}{2Xt0)D-Zdf6(ms zc$qG9nZWHK#!?H{oz_3%Z=+D3{P`g5RP@^y?4IF0#QycyUyDzz?;l5zOXbkfu0Vjf zaPuZ9yLJ)cUHhb~9fAH9*39(x_opHkzT?X@ zQUWjBcXBda=V5EOwdW{~Qf_i5AXlN3WNa2*Jnzn#sVpg>)GB?1)g+iVj?OuYj+J}6 zUj%SsRxR&qBHdfaXToVDQj+2Zz&=-Gnj$dLc1Ry>snmBmMr}H+u1S#vvbRIwK~$Kn zmK4H(0O0!>SSiaNzQXo-QE?uLglvC&tt`O`-hQwD8#2y%YUhRf*PN1NJ9KQ=W}-V_ zCjEqhu=cgs=-_;Tan>)F9d%sDsmH?%rd@25z^ok^hY|~bQRq`(7_aKj zbWvkuNkM8Ae%WztlFlz=r$xMNuMPM4pn4%b`de+8=D`^0*dX5|d*vmSofO2-S_R|} z>U+(1U+^;c(A3q0HQ|mFq|hzG*#PXJpUaw<>_vl^SN1PO#pI)NBcB`sUR5fC$}Fo{ zJY2M*{>BP$R>)MpJ1zlA5}d(;HYddr$9jy0D7PIxsTeJ$szKnt};@6?nhMT`sa5VemXu!N}# zjF<%=ccNWw%l=Q;Wcu3Rd)vBaj$e2F?6ZLdD0f(0x(}+0-ij~m4)wxbdynS>xnNY- zg2VFuY6sdBKs2tQi)0nLzBp!M_P)|i-MSTiO#^dc@u}rh?-hb^S#cGFzh3NUlwZyA zN@SC)>3br@u-5iFu76{g?31d62s?`?>EB6hwjw&UyU$Uu@S#cUx`&IUzVFUS0B%t@J<#D7e>e*gz#6 z=X&br%xw!O7X2N^E3_gk*Y?W$s3qQ*kUar`&r4lDx5D-xM>zrDLHK5;rL`t zJW?i_)Pvf+Npb2-7>w9%aecP@uVRpTdd~Fe2D-ji21K`K`fOP}WouyFI;vrY=507? znbcAE-Lpmh(L&Ju3I9?VGr?y0PuKk%Mu}DA$+}ez8%R0v&2fzZ5v}-(Yas7|r7U!2 z5Bl*Mn(vkXf=ZVARCy?1t!>cEnKLQfX_A?}Mol|#oy%(X*aOOFz{8AWk;65|#Nq6n z-YQ^_kQ@}=RLLA`cwi@^bfKKu_)EB8+^N5P2cTl{^5uD6Sx7P760Wwm2NH|u{9HU! zlDx8SJl;8MMGX6qXV0GP?>{_*pRqsT&c=p3OBrtBvPrv`hsKAzs7xUCNuR<%iW)QIY1);S@41q21|AUi z=-aSesL*c>ROJk``<(Y`?5=`{&3}<5w7YTF0nPGn_~RFn`R%t&os8K)6}7?&iN`(UkMx!T&OI=d!c`_7mr;RaIA{ z6f;pKA7@yWazfn_VG^j16BIEXjqhW=h)tUHsQ*dpjg_uukNjXr^z?{NYu-O zd~tjC@u7qOM5obX!x($`$c`dwLzPPdi+>E!1)nKSOs;iAF>B&J07ZsseQ^c6K}cKM zE#^4IphY|#$<7EUyU?cT=fQAYJZJihLbGglI8L$KgmDij32Gp~5qv7sHS}3;cS=0FNJOB6LXJ%SD8IR%r__^x(ko&QaJPsI-d)33DR17r~bPgk| zuH^EC?|l%Kb?TJA7e5ObbBbSX33YcfeLx!0(Tw7zWSgLnbCh6a8tyo)$jvNyJJ#&+uvqf^%QwVUNLh|=B0rk2oP zm6>Gm9P;ymzyJ6l<}9P1w@xMcO+iF9mOjYdp>-K;H?bFpr-%F+tw)X)j_zq4AP8!= zd+bpIsU+nj+Oh=!6G9rs%a{(9I&4S>WMNl%3=xb@T0DJUFT?yIJw5%40!CTd4oW(o zcP5Ijh&3DUn-O>D0VRQ*)*)#Kt9OaIV6!x6#2g>6#xr(J)r>Q>=FT#seRuGG~0j@FHxdEH@L`$V)^cbe1x@2g;= z{B%M#K`n4IpYA6uC{OTq2)`)$!ue1+lg3zSd3jDHurO{rY)DOYFS52&aIkTv-Ee=u z2KFW4GqMH)IF`ql7fKAK|JJNSOKi{n( zZ01Z&2>UGVJCykjsiqu&ezYU-W>u9x_*#~98l}D+U4GC$Oaef_Yar`_rSgYU--J+6 z;Vec?LXpm5BdU5Fn%lc<0!o`s(?KR)e`>=2>oHT`{Su7VMw?VYvUIf+Jsut&cRy*g zWLZ^pxBCu3&39`wK%g=nK5%``;hSlxsgX3(XCRk;o=M4~JEO}Z3qp+@gaPtAQx^b? zT)E0{>n+?Ekl>#{Gmh7WZxeK&nu(_0CTFPO*otm2&#zn8t{XB~Frw^aZjMjdFSgt% zJBnj+si&z`Cin8l(W7s~Xu4m&KAFf!MrJO{dzLqC>ePC$bg1gyIg=0z-B0UcZqB6E zLWCk@Ao5f@+)Rb-&zP3b1D)>!-(`OJQ6bR+q9ce^QY~}*ro?klg|`CUl(h#dwu$bg z3+aroO}dS>ctpRFm)!Db{KbVKf@g$MZjSq(p!3#CdZ-|BQStDm5i>LwPYi{}h13(b z8G>P{!|n$fmniZ*>Bu*v(R7F>Y8D`Jx0<{@lr@c?cSSn*^T5_J)uv+J*MCcjf!8M_RUE!-XgpmJ-Y(h548zmKfh4d9-eD<0oPKmU}dS{C|C&>^JB9uM!&GNy`BWj0J z|L7rYkm}|+-fY1JG6z&gSg&QV>MZ1?U z+A$S)jVqF8$keQf``7gEsZz%qOYH>*V%oIcDw)bd>t{nk<>6Ty*(g8{_6lifFOSku zKjtI&({sN+K9%{cS68iMNTYVw3#adoXvB7gAGl6AeQ_wT6n@g(>skX#`Gzn^u1@PS z6wWDSU?fV@94+;NZGqG4|9s_XT8|yv*@$YW*S?R1%j$QKyvf~Hv$`8Z0O;04iBSY4 z|A3c7t+|Pgi~tW@M@L9rUU&Z+4fsIT%$%LLc;2pwSwd~BU(-OFnWVA$HVJIAhSQHN z6o{kh*2zVmE89Z?@HCC5n!VvG{s`zfmttqfYMdE~H**8mX}1c*jC^E^mwp@#Ia_1Y zU8q0z9V&AJ$DF-0>!DK#)LogXvFisHLXkLvKv2lYT)|Ss=%5kN-*LYC(l81M+G|gC zUa%`Jcr8?qfWvL${ce3M*gh#s`DES$sumvb+$>}`b3 ztD>-3t;7GMD}N+C5NMDq>gLA$^C4ef=y;4dChoihG0-LpH$IN&@DCk&EcK6$kdPv=8YaUOVpfw#ns=H6f7B5=C7>fXXpx_QgH_7Y_=e_s6TDf#_lkg5Af?qnSS2pP|f5!(N+eSAZWDEFL_CK zSshUX%o-~e($KL$Zx{^xX<@0*M+2hsaL8zwW7x$~=)A9LKI~6zNJl%}vOG-RHZn54 zevNoXRS6AJ6xXV{Wgn5xy1|`{bo)R?eftXTOlzaSv~c5RL%#Fc8YqL$uKQV<(_}>3 z_XmN4(;`T``l&mT;K#37eRk%|nHUNMbpriPK+bLcRz*$yix&&F@8#sTXfVA6w%$`E zO=OYj?Umia0|&skz$|F12~EZpFN9<-$X#0|Ugi^0Yi|Lg!fa~T zvYL3BLxg%1dHeSyGmxZ``QBuZTMJQVz|{y%^qD-l9X0+2ks=6=NOQ+v;{>FuOFcKL zGn+MUzAi(tn+@ zhYbNie(2w2@#mw3JQEj*gZ&alZb3r`(@6tIL4J`A8w2)-=Buk3z{c4x5>QGt2ho-~ z%AJ1a!<+dZ-r$4Z-`aZ0>7~j$ow!?6Bl=EYeB;AWj);%@MXocYrJISu(=<2-E0nG- zvMd_ZKFPvyX{|pF`4q{IUk{d{jbPtoNaQlUV|Gj+1i@^>Sc2!UbKE|Ww{Z+XOT)f0;>$-RPeI8znnjpR+~Asq7^Jy~K#AjUY3d zgnSe(+qbMu~+R@8Ia6LrRyc6S8F4>Hr%XW_XyMtdk9qgikK+$>r}BAG{G!3{(l8FcfqG z_Sh;fF`pzBGg~qcNnd0QVCe;9zJlzHhzGC}S|xZx%8AlPvvY6=I0GULA+P3^_KF!v zLX^{xVux+GzbtQ@M!uMhPVRb4GOVN2R#XgiU-4XrTfT34TBm=|^G$=A?UuB3m1P_=J0AE^ALI2bjA9x=vrdeEICze*+X!3K82gfgR=!;;6uz+&?piT}OJ$ zxIw}W=qg@QVr6(wyp@(6yb%Dy<9_DKl?F;rOQx+?dwE~;{X8?nL<|)C4)#_Fn|b^8 z0R=WM>GPU*!<=bM5Yjyqmdnk7hUnvWaNAz1ZJgg<;t~GG1IGDmRc_M7%$@rL5hi>P5NAKAyj*NN zRWeYaG1*Z}yyjc(;c1FGUq8FhJ9|*L|2#8MZ?S}5@kioBBe#pPOzLvBw33jxbqeOQ zdy@6c5UAdDK(h>=iMOeknu@yzj)TM+S-)D0LWR11rry^++3RBn9mo5uDj%bfWtAp` z%fp|OAk_&h&A2O5-t}Kp{{4CxZ(`mnD7-&bs?6#`6dYTsInFiN zh~C;AMe^qAw*)%a12c23``TgqK?8WWY;Xd{$tz(D-}IU<78QIv>Q%Bg^X|8ABZC+Z zR=#7YBoly%R^GI!?%NV=1%QbHWWz4l$|^G<1H>_sp9paDw9aQMOve?R*~)h;Thov8 zWC*$@)e~A!AA{W{dNjFilqVm#ZqyG4fv7BlCb_d$286{$MezM&jus43Z%4TP)6D+> zm8WCu%Y$DgFc^&o%6G;U$mk7+a}5+z+(K@{*H&jTE6=@l@7_JelLZCM^wj3P79<6| zi2cVg#8N3y;B=SHwok~olw0H*_4=Rd^aRW)QW*#C<)Rl9eCL(zckpwdo??ooZMeUW z!?}xz(M6{Fl!Qm23R$>eYP`qW-}=8?fc;{p_ZP%JF?@&A7lIloLp>!v_4&R_Q~w7g z@@^-4=xI^_Ss)ts9D*J~0yn(~#qIMgzhR}8qb2HaYRK|89xJah$mG-K=_Zck44Var zfmnN&tB+rkkF=*xJ2^NU&&_=S3xrkhhWjV>2{#YPiN6%J(PRr}zP73KF*uOU$f29V zh~3*A=^JkqzbO78jOj&T*X%J5;pKBHMZkAbD@%4^V9pE*c?voz>Qe}eHy$tI0xRLL zFb@zc6^JQ0&bTq+Ht8f0xBP0a3d@q0C|qiE>oRN#K<#fk!suCCQ~9a?f(5yEYQ&V3 zx&knLYn-dQe%eBiR*Gzpi3#ubo&z>Y^vjj+P;5ZLld*sX4ilY#mlq`*y)RG*r4x)= z3Sw%oWHvgfIe?d5PGQbu3G;y$EWTLKUuxd5a!zwcRTccZw(Q z9KN{mQSN**BtV^FK* znAI}a5ZgojmyKh@)Q!)rpBw|V$TaZSjmMv1Z1!zOKkO`C!n2}c`7q^7bmZ*WaU7sG zIPpulS|UZ`$dBkkmn*^=oVl;+h+_~tgobW(v8M{k*~}v>kQlk03S}3 z?_uRp8gn+CwcLIO_dz)>ho(HH)V|~;k>eGP{=Ww?+`z>W?Fl~B5G`W$d}E?kP2OBX zrl23A{F%$9M2Is_cHbrR*ed`@4G3@%Mj^9(L=@@*zswmt?3~On5L|pQG(VSb>#~TiQ+V+vDrvs!CKJ z>)`1#I8(Ks^|Y)`X5>+g>;Y=S8$eJ8*>mhFDt5lsf9o++EcS9(=aSno?DUwi(VzUhV*$OR-a!)?HO+$W3c( z2Ny{uste^OQ9^4AN;LSRMz`Mf^|Gn-Qf^7`2Du4j+)ZQ16Hb7*x-+GZ9IC@QQl!Z$ z-iy8963Ecgn773+Lp4&@eE6gnm7izca~Rjy`+l^65`rjV|Es{kcVTTZ*pbz31;jww z#q&i9sHbx0aJdS+(g90tRgwwZY1!tTJR>Oif3x9Zt47xT&gBVPanE5?+vv6Y#aDVI zYcy7WjVbfZOlIm#*CdaG`-r_S!1az)mzm66fw~s%D~0JHLkwn|40MC04Jgoff?XUb zlb%u-0cak*Gx|@^$<}iEBa)re*(q@^oH}me-8%}Ah1sLFOa%9>yE@fjRn2xpCGxRo zG|X%nRu+a&%oW0^T7D(k{>;KSn!Cn)KY7H5(qZ-O8onlz4SL>d+Jb54iq2T5PV4D% zf<3E#{i2i^$`&s`t`8pobYy`9320yeSZanktPMwh7;-^6{8S6KQ@05Rarb3G^K&2o ztg~ag*BwPMlS^SjE3J>;bdw6{u~7>7`Ms&!C^LMK2;(CE_C?^oXP@MI&Y$}A%0X4S zsUc677e7C=Jn7c@b(7Ny=9&At4pwen8ExV9#~RQ6eUvTs_`RB8@o>hT6D1qX{_5Du zq-Xf1PxfT}XH$l!{qOr-TD0_z9p0pAtCX^wsbj-`3F($jaT=1Beq>KiOLyO-qbra4 zlza(%z&%5(o-?V`-ony$gvzQwEx&ptrTpFD__r1ccb3b1n$03W$UcVO3rR5mxgH}w zOrv;@SW12kwBX8ykTZZ@0@kp!uuDKIRz2}2r~Rs|XzeDyY?JE3EP8O#t~h&I82B5q z74=-=_ebJw3vU04_ub+669(-RW5ev$KG^_YeAceWAhsgjsac^rbqD923wPk{j!uiP z!yOP>Mqw1YB-OF7u9-+c69(?B7n?#hxre>4d(QMpb;bGmj6|~@@k&cp&lQ-t6_{Bt zM8d{wO|7hPx;|(5qcPK%e8>jsg@eg@Fwwldp?==bCYklT+;)|Pg@vWTAIAJY&r;;y zZ8xof4x6+{70(Jo%5TUT^+mIsBXHedNUktz)$B$Ry{W8|@k;be(he$!)5#(k3ybh= zuJ<-<(y;VsYoIRa%f*ENF%=c&JSQZgS?C>>)r7A@#?xt!n+$6L^fJKY$1!g1BD^+R1W;?k03>0VqKMGP#{=DKfMweiId<9jx z>QP>|Zru((J{jCOq;F`i7GLy?Z?ndNmrvp55Ps>|pA;SRuDfFX4ORg6^@bOMyLPDU zkRj!dUx$@oxBm;+`-z2*Oe)K{fIA})d&t=u#rT7@iR_kcDtaVYwdd*GKKDtft5>43 zgDb$*Y8$fya%{R(=zMlWk&&BUO>8DqKuj zxK#`{8Es<{kjx);bF;AAl&tYGaZCJOW5TD8-Lt3d$f-A6DUI9|Nf zFXjfjjbittC~OKYaBu{vug>e%dabv2WX&)g&XLd8O|xbduy_HA5AOIC|CT~f0$PFm zq+M)d_C3D)wxe#hiZ`i<{rHC0L|l4y4KsDtr#585=3R;}Hmw8Zjp3^)_m7m%tLOrg z4D`;G_qj&5n1ng$K+|(kD+qxVb1BQf_yG!={_@K&Xw#b33~hYFSA9Qk(SoP{{ROks z3uYcBBll-#-wutcA$lDvuV-2=S9>nS?q+jpHg>hv^WeO_z1dy2PU+^#Dl-F{5hm^4 zTPC@>kIXQNwNO~B%h;dYr(kwsR`wjsm9Ebb4{heEL!g$yh@N_bf|(pXWy%z$$$U`7 zKPQ_FXMHS-*IV@DyZrho8=2zeSYL5|Yo2>*qW5(^x3FD!`CRGcXdSb%TlR!Kkv}v7 z3myyJJ<77B^JNRq0@|OLvl}Pl;TTM>&q4&`b1y1;UU4QtX+9p|J`OXN;IaOenJ2ugCeY)~U=k$zZ*{`E!V4t{kZ1Z#J`OB~sEwPLO)+%5 z;JD;{U3f(?D4;R&ue;sChREXBhYx$@KG~eO$F>=-)t!6tMVxKxwdZrK^K=&204bz% zjQX&;+k1Z-Gnq>U`ry~57mrQ7QGS`3@nr8U1UiX(&g%759oSoKJ4(TH3PvkIF3_jI z3~%2rjR_sMPzbOVe&OJ*M&0nrrT5okB0BSC zZ*#ZP&6AF&?lJ3W!a{9D65AP3SN?OdU&0Jho48VyU&iNhtm1q70>$@hqTC2!v2Mv1 z%w*Eg!2DI#RQ+?3^;KV7&dx@PtVl}wUXGiENfIdWmE0#^{odoF8G!%p~_K5tgK8nzwzOBs9V4CCDN-o|2Xzzj_` zMzd^yMT8)s;hv+r;AUi z6ZpJtwxcW?e?;f|-!GqlGr4G=pWl!l$3n2fclFLm48vfuSwP~}RU-J2?W(S@Gd}5m zI=0+#(LWO>Xmd_M_`1c#6PkJ(*n2y|8!6bD8Ljdvn>jYV_WFc)2aCm zGt-TPxS5(N)p!4CXA(E@dVBcrDW^;^swJdo$xY8I>EiD%KCN>l#IiheQ{c@{EjA^a zk}7a89my=TASF9{``&ol23#9s5LA{wJ!-pmth5Y@q_81LVPCl3TbyWXJIbxcnv*{_ zUyTn!qV3keM`_4-Yvi)?qnU~&NTTN#3SN5SPnYg6vs+a03DUpnMD*KSUDwMWZynR; zCL)2xn3Np5Th7Uji)MMcK-FcjR{lS9y$f8<_y7NY<(LVHaXCe~9Ea)PkQ7U}t}t`B zY$B%;IW5vjp%Ilubs=(Uo3y!ziAc#YS)Y<&Br3u*;>uxGmc#%4ykehy{@>egx81C% zuIqih4$s5m`FK8_p3wykI;(KKUZlo#_$Jlj#=7)&ADo9rPg@OR z8LSo;oL9!FU0f`xwyNHrInQ%eHIcx#cA$sZBOg)587aYL0z%>4E33&{X@XnK$iQan0g%brS08=eZ=#>qm)3U=!8VS9!QEM5tC zCaUP@8P0$i!z#e6$*G|Qkfh~=*Z{8wqg68pT754-M2Z;Ah z%wX5CB=RpqLlx>-;|u$>sLWCo*B#B#k9 zCL+mZghiNgw@m{=VDUaCY8**vY<4|N2~nm(Rn`D2ft%v9G_ugtnv0WVzC#jr?sQsw zx1I!pAyDTz*!P^^_erC1X9iYD8@e5$VTC*V)RJN~li3H##Rbcs%%48&Ih8qF2QQ|P8yPxr}j&dCF-ZSqQSUlDeQo@O2ST4j> zLX+eZXNRnOc6WF&^K8gd=$FeAH8{-G;yD}%4hM|9ciEQ zwlg9Ot{WtYvR0)bUPa4$ge$^Si%v`A#NMUPQJq(6+^mham3v^#zAAJ|i8N0$%(#nH zl#TVwRgTy$#ry5um|M02MWPV0l4>=*E)e`X1sm^x^P;CP++^_-bSb^uSsD7{?aF&i z2fz9ADo7EBQnJ2_C#urFsag>n+~(N5tdXgRPD|>Or&I1$5ysA-0giAzj<-`S{#xz` zMntFXX)=@*WZ^p5G-9x(x=w6M&xxzTRR*O7NpgAzH4l7;An1s+>V*(w$j*#>L|>>H zy(${Z)@}EIDN3u7D1+2My&LlG^^59JKn(*?$eTf=O3V#_x0^Ga#AE2XTJ;cj$p(d~ zx?<@+7+7MA4-54_Uo;v@2-3pS-WYtdrevye24=0wejlcLMyqQ>bf6Z5z z8M@(v&xg>R{RngShb$tdMlQ#ltP2+*V!>AmCn75&hYp%fMMQen2oQ)=V`nGUYi|>k z7N2CZwvqEk868x-nf-vD2Y_}GR*{`|9UYt9PJOn?Kly^n3M2kM83f-7KZUGVyH1y% zWH(l_>t;A29`@CYxRoJ zC&y7;xrK*&PBv91{1 zUs7XCOUB+!Bn|AKj|OQzLFgRtXF*OW%r6Hk7|{Mb{~gZme!8ew0jQ;ymqaF|8u7L_WazD7j?MJ~bpenPllcG~&`m*ZNG%o?mv_v1_9$3r+E; z_X|+s`-_3Bs?LZVeo6pqykzL9+ta5^Iae};el0lXn5b_*JsAWKuXqoTBvb^9SFf7w z)<9-zi4vDf*7Dtf`I_P5)YP?ew*Jsv)g)q=CcUm3R%fV1qgkBJ zpOZ5y8djR;6$@^1yFWV|}lmKW;?wgJ{`S#_( zLtJBpa2?} z%1tA{`Z%Bk-2p$k$`A#U-~2mx5)5ss#~Mm2k38~;s?h{T;#xeJFl7W_*0)b}y!s>n z`GX>oTouU&EV&>G<2(I$lG}e@KPKd9gwc}pJwt!PR7fg-UPF~udrh>bXb2*3-*C(4 z*ex~MC`SS-rxh2l7odi*vpWtUW760_?(TZ7%zS9{A)jqZPedWBYA}PKW)$zX@HE)r zXPOZffuk+{$=3pB(7Fp{+Z!kr_UxZ$8-Gd=O{HR`7`EIfFS_gf{rzE=`}wsXOA*~h zC;Gn!mHVzH+o2Vh{!WYr`&L{)NgBl~>X2egxP!$Y*^=Eo*1}_K7rQ4EFC_KxNpj(X z31D%7^c;jH0mZDlPkILk!FSW!4VY8&&x`=fFyA@d5HLUW@jX`omef5zv)&5_$ts*_ zFn34{ijRGrn0B<+D50?;5qqFw(XmnE(KFjhvS)-wxo-+1f{qin&|yJvuXQ!)CVZ28 zm`o5XrmuA)MXs`Q3$hy)JDg~NdWlXs&IQM+&_&xQ2?g+O61vw5i<0PY!wh4{Avk2V zvdhfyC`_@!_n-AI;rbNFJQw0m3DfoZvqZeDH*#m!tf?=9Fsr-M3)>_YxfsJPqm`Zf zSFRWHO;b*q`QX6&0Q|LhT0IVolnl@zICqw;yBSY0txZW|mMz9n)fj z0!6tWx^GK1;b*Fx!xf#x?7Cd(qHr5?z2Mdlf3<3VvGN!9>%T@dIA6ZGeQWSr)J=y9Z z#;1iwo?mlwJD;Hcn9jNGqsEWFYCqb=)J@$AW_Nva&+Nz#NX2pouRw3wlaXX1mB>l~ zkun>&{BQe3zRadOagcK4J#QqG-dPfTe}(qBT2+*-Qp}3hYWt0u5dS+we2+q_aK0yIbZ1PC#T}_5wk(o`=mqTvb zH{lSC!IVxfOhZEx6Q3hB1m?U>og7bKChwb&;i$BzONv z9!{&(Sl8wkhOHE=a3ao)xb-NQHa;yuh03^)0W2gC;2`d*h){2LgOm4Ed6u7DomqD+%2~ocZT0kPn|_UC0XB7 zH|DBTB!Jw}nOa;R#q;a#TVj`jNok0EnS|>G(~HB@(6}F*A;$laOPOhaRL!guKVN6r zbeqDnLq3g462clOm2KD35S{pxtSa_mRT7#^m2a4d_Z*e94P78>$>4xf?`lo~P{FZc zV14CsxdyzbMtfz^F$7v6)O7IN9nQ3~}wWqdwa*XgNX9HeB{=RTB5B zQ*KB{8i?1L%Z_b|s&b|_%O{Ns=csZpZ6;|yc9~(_Bm7tUF;qF)wa}zY%2Q6zY7td& z5cC`g@Fe5WW0Y7Ia?p=xY!vLGfn?3e^}Mo)0;_(4PV{g&ZE>=&@r7U$NVz zH4J?#OiMD-nuLpdqrjsyNC;s)~#T zGg7+r$PM|_Xq!igwn-jWnukW+^_!pnIDrvG%ZbD?AE$Aos?nq4KwH8o^}H*^}MpfBS=PBmCh0G58?7~8YPd|NWe(`9}`IZW)_nxvk4D{k`J^~_x$N>V!dsbWyL(FCqZO7>B$ z$>!76|Dv!TM@=sM8V)i&#dr%YBIN?1uP{{g)a{OD4Xnabd!?kQJnv>5tZ>JyQ^@Q! z3jHK!4t$giHU7!-S+k}QTsVabBUabj%%0p9i>#*PZTtoW310HR{P_zf#{;0|Y)$PI z7aJX=l0Kl(n4>P&{GVj;M#TBJHLp5h|1z^?Igj_%XWIOd|?Psl7~M7i`O+G$~_Qm|n@f>)XG-cM6IV zo0Xm*b$Ax~mI2LZpU1>>it?h~l$3Gc*wLfgk`s39Xy2~g#)jtv{%4Wr6I{(Rpx={+)u-LKa( zV(G`udwsV3&|QXX&7k#MyIECUOmjO9R>lw6k2y>_tTa=*5lge>*XFGO@FpuV#-v%F zM#!RP7`?U31|lN5ep5JYeu*_xg>ggah=-$RnF#uvLu=1s!gWt3PyRZr+2r|M&MTq* zwr<^8`nv;20HfpXqo?uu^=oR_5ExM&<4|PLtxaG~jQ)U6?eCG9O@V9fHt&J$ulqao z@BbI|FqxA>dnC)$EAI-i{_W!8P`VR^o|47<6*(!uo-<>9vF~IwU5!Dsgv7nUA(!HA!llsU?(3dBdBQlwq+WUE ztI`6{bfHqlCmo<^>*-=joW_iB=n(^$R5_!sR0Ovr$4!j?U1}01|J*~BnWBqwH+LBz zk+l@JiDI&gsa$m89UpjLge|xk zTECtIXsm;uo@poqEMcL@e`$~(W=iCN^t`*H(hM#JIbH^K8?S>3l z$#4)L$jX)PYD7!1xOj&QsU$=&l@3YNqiBwyZ58FAbw7YU#fH0%H~rpc8w+{=5*N-Y z`~u2};9QiMS#z5a^A}#VA3jcKGtWw;Wk=>J(e?(0jBM7;CjqB!Gr181MaIFeP&|9h z@XtRvSpkDOY^1~!yMtMt2?;WB=LI~f-~8d8MzFpH6qwME`D9%k>MdO#?x;H>I=Fiy zB2fucO@6BQTShc-$%;oz9inpq⪼4+5vV~?VAmLDzaEI#gJq7 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 literal 0 HcmV?d00001 diff --git a/intro.md b/intro.md index 981831c4..fbecbbd0 100644 --- a/intro.md +++ b/intro.md @@ -4,7 +4,7 @@ 这些概念其实全部围绕着构建大规模分布式基础架构的几个核心要素:稳定(不出任何问题)、效率(快速响应市场需求)、成本(充分有效的利用资源)。 -分析这些激动人心的技术变革之前,让我们发散思维,思考引发这一泼技术浪潮的核心驱动力是什么! +分析这些激动人心的技术变革之前,我们思考引发这一泼技术浪潮的核心驱动力是什么? ## 软件在吞噬世界 @@ -33,11 +33,9 @@

图 Netflix按照规模和变更速度对软件企业划分的总结

-在十年前乃至二十年前的互联网时代,大多数软件企业都位于图 1-8 左边的两个象限:规模或许有大有小,但是变更速度相对今天都不快。当企业发展壮大时,体现的也更多是在规模上,变更速度并不会发生质的变化。 +在十年前乃至二十年前的互联网时代,大多数软件企业都位于图 1-8 左边的两个象限:规模或许有大有小,但是变更速度相对今天都不快。当企业发展壮大时,体现的也更多是在规模上,变更速度并不会发生质的变化。而今天的移动互联网时代,则都位于图 1-8 右边的两个象限:无论规模是大是小,变更速度都要求非常快。并且当企业逐步发展壮大,规模十倍百倍增长时,对变更速度的要求并不会降低,甚至会要求更快。 -而今天的移动互联网时代,则都位于图 1-8 右边的两个象限:无论规模是大是小,变更速度都要求非常快。并且当企业逐步发展壮大,规模十倍百倍增长时,对变更速度的要求并不会降低,甚至会要求更快。 - -在移动互联网时代,能够成长并发展起来的这些公司,他们的共同点是: +移动互联网时代,能够成长并发展起来的这些公司,他们的共同点是: - 快速变更,不断创新,随时调整 - 提供持续可用的服务,应对各种可能的错误和中断