From e1ac583a002f1a6ee875cffebedbcd96cf2ebf03 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Fri, 13 Mar 2015 10:30:44 +0800 Subject: [PATCH 01/56] add state --- README.md | 12 +++++---- state/README.md | 2 +- state/Thinan/readme.md | 58 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 state/Thinan/readme.md diff --git a/README.md b/README.md index c53247c..5a569f7 100644 --- a/README.md +++ b/README.md @@ -25,17 +25,19 @@ | ------------- | ------------- |--------------| | [单例模式](singleton/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | | [Builder模式](builder/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | -| [外观模式](facade/elsdnwn) | [elsdnwn](https://github.com/elsdnwn)| 未完成 | +| [外观模式](facade/elsdnwn) | [elsdnwn](https://github.com/elsdnwn)| 撒丫子赶稿中 | | [模板方法](template-method/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [适配器模式](adapter/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [观察者模式](observer/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [策略模式](strategy/gkerison) | [GKerison](https://github.com/GKerison) | 完成 | | [代理模式](proxy/singwhatiwanna) | [singwhatiwanna](https://github.com/singwhatiwanna) | 完成 | -| [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 未完成 | -| [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 未完成 | -| [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 未完成 | -| [迭代器模式](iterator/Haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 未完成 | +| [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | +| [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | +| [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | +| [迭代器模式](iterator/Haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 撒丫子赶稿中 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | +| [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan))| 撒丫子赶稿中 | + ## 目前无人认领的模式 diff --git a/state/README.md b/state/README.md index 0154882..ec35294 100644 --- a/state/README.md +++ b/state/README.md @@ -1,7 +1,7 @@ # 任务表 | 作者 | 预计完成时间 | | ------------- |:-------------:| -| [用户名](git地址) | 完成时间 | +| [Thinan](https://www.github.com/Thinan) | 完成时间 | diff --git a/state/Thinan/readme.md b/state/Thinan/readme.md new file mode 100644 index 0000000..4bd38b2 --- /dev/null +++ b/state/Thinan/readme.md @@ -0,0 +1,58 @@ +Android设计模式源码解析之${模式名} +==================================== +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 ${模式名} 分析 +> Android系统版本: ${系统版本号,例如 4.2.1} +> 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 + + +`复制一份到自己的项目文件夹下,然后根据自己项目替换掉 ${} 内容,删掉本行及上面两行。` + +该任务不仅要用java写出该模式的一个简单示例,还有分析该模式在Android源码中的应用,可以参考[Mr.Simple的单例模式](singleton/mr.simple/readme.md)、[Mr.Simple的观察者模式](observer/mr.simple/readme.md)。 + + +## 1. 模式介绍 + +### 模式的定义 +`模式的一句话定义` + + +### 模式的使用场景 + + + +## 2. UML类图 +`这里是该设计模式的经典UML图` + +### 角色介绍 +`对UML图中的各个角色进行介绍` + + + + +## 3. 模式的简单实现 +### 简单实现的介绍 +`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` + +### 实现源码 +`上述案例的源码实现` + + +### 总结 +`对上述的简单示例进行总结说明` + + + + +## Android源码中的模式实现 +`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` + + + + +## 4. 杂谈 +该模式的优缺点以及自己的一些感悟,非所有项目必须。 + + + +`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` + From efd5c88af0b9caa7a6707e20a98ed57e811556c4 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Fri, 13 Mar 2015 10:42:35 +0800 Subject: [PATCH 02/56] remove state --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 4a08ada..bf4fdd7 100644 --- a/README.md +++ b/README.md @@ -36,9 +36,9 @@ | [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | | [迭代器模式](iterator/Haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 撒丫子赶稿中 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | -| [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | +| [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | @@ -49,7 +49,6 @@ | 中介者模式 | | 备忘录模式 | | 原型模式 | -| 状态模式 | | 解释器模式 | | 访问者模式 | | 命令模式 | From 88c4ef44b08d77dbc781070a63b6cdf19a017e43 Mon Sep 17 00:00:00 2001 From: Liujy Date: Fri, 13 Mar 2015 11:18:51 +0800 Subject: [PATCH 03/56] update facade android Analysis --- .../elsdnwn/images/facade-elsdnwn-result.png | Bin 42401 -> 0 bytes facade/elsdnwn/readme.md | 159 +++++++----------- 2 files changed, 60 insertions(+), 99 deletions(-) delete mode 100644 facade/elsdnwn/images/facade-elsdnwn-result.png diff --git a/facade/elsdnwn/images/facade-elsdnwn-result.png b/facade/elsdnwn/images/facade-elsdnwn-result.png deleted file mode 100644 index 1425350fe274b405e6753e34388b698b1dc76bc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42401 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 RzW{-knX$D|?a8yz{{hAwNBjT) diff --git a/facade/elsdnwn/readme.md b/facade/elsdnwn/readme.md index 58c8d74..48773ae 100644 --- a/facade/elsdnwn/readme.md +++ b/facade/elsdnwn/readme.md @@ -225,124 +225,85 @@ public class CustomerB { ## Android源码中的模式实现 -在Android 系统中使用的外观模式的地方比较多,可以说每个系统服务都对客户提供了一个访问该系统服务的管理门户类,用来方便访问对应的系统服务,如窗口管理服务对应的WindowManager,输入管理服务对应的InputManager,活动管理服务对应的ActivityManager等等。 -另外ContentResolver、Log、Context、ServiceManager也可以看作外观模式的采用。 +在Android源码中,ContextImpl这个类封装了很多模块(子系统),比如startActivity()、sendBroadcast()等,分别给用户一个统一的操作入口,简单实例如下: -整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,通过WindowManager的 addView方法创建View,这样产生出来的View根据WindowManager.LayoutParams属性不同,效果也就不同了。比如创建 系统顶级窗口,实现悬浮窗口效果!WindowManager的方法很简单,基本用到的就三addView,removeView,updateViewLayout。 -简单示例如下 : -``` +``` package com.elsdnwn.Facade; import android.app.Activity; -import android.content.Context; +import android.content.Intent; import android.os.Bundle; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.WindowManager; -import android.widget.Button; -import android.widget.Toast; public class MainActivity extends Activity { - + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - // 去掉title - requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); - Button mBtn = new Button(this); - mBtn.setText("我是通过WindowManager添加的按钮。"); - mBtn.setTextSize(14.0f); - mBtn.setOnClickListener(new OnClickListener() { - - @Override - public void onClick(View v) { - Toast.makeText(MainActivity.this, "我是通过WindowManager添加的按钮。", Toast.LENGTH_SHORT).show(); - } - }); - - WindowManager mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); - WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams(); - /** - * 以下都是WindowManager.LayoutParams的相关属性 具体用途请参考SDK文档 - */ - wmParams.type = 1; - wmParams.format = 1; - /** - * 这里的flags也很关键 代码实际是wmParams.flags |= FLAG_NOT_FOCUSABLE; - * 40的由来是wmParams的默认属性(32)+ FLAG_NOT_FOCUSABLE(8) - */ - wmParams.flags = 40; - wmParams.width = 300; - wmParams.height = 100; - - mWindowManager.addView(mBtn, wmParams); // 创建View - + Intent intent = new Intent(); + intent.setClass(this, MainActivity2.class); + startActivity(intent); } + } -``` +``` -结果: ![url](images/facade-elsdnwn-result.png) +通过上面的代码可以看到,启动startActivity需要传递一个Context上下文对象,为什么要传递呢?下面我们看一下ContextImpl相关源码: -需要注意的是:设置requestWindowFeature(Window.FEATURE_NO_TITLE)一定要在setContentView()方法之前; +``` -下面我们看看WindowManager的源码: + @Override + public void startActivity(Intent intent) { + if ((intent.getFlags()&Intent.FLAG_ACTIVITY_NEW_TASK) == 0) { + throw new AndroidRuntimeException( + "Calling startActivity() from outside of an Activity " + + " context requires the FLAG_ACTIVITY_NEW_TASK flag." + + " Is this really what you want?"); + } + + // 其实是用的getInstrumentation().execStartActivity(); + mMainThread.getInstrumentation().execStartActivity( + getOuterContext(), mMainThread.getApplicationThread(), null, + (Activity)null, intent, -1); + } -``` - // WindowManager Source - public interface WindowManager extends ViewManager { - - // 代码略... - - /** - * 获取默认显示的 Display对象 - */ - public Display getDefaultDisplay(); - - /** - * 是removeView(View) 的一个特殊扩展 - * 在方法返回前能够立即调用该视图层次的View.onDetachedFromWindow() 方法。 - */ - public void removeViewImmediate(View view); - - /** - * WindowManager的LayoutParams子类内容十分丰富。其实WindowManager.java的主要内容就是由这个类定义构成。 - * 它的定义如下: - */ - public static class LayoutParams extends ViewGroup.LayoutParams implements Parcelable { - - /** - * 如果忽略gravity属性,那么它表示窗口的绝对X位置。 - * 什么是gravity属性呢?简单地说,就是窗口如何停靠。 - * 当设置了 Gravity.LEFT 或 Gravity.RIGHT之后,x值就表示到特定边的距离。 - */ - @ViewDebug.ExportedProperty - public int x; - - /** - * 如果忽略gravity属性,那么它表示窗口的绝对Y位置。 - * 什么是gravity属性呢?简单地说,就是窗口如何停靠。 - * 当设置了 Gravity.TOP 或 Gravity.BOTTOM之后,y值就表示到特定边的距离。 - */ - @ViewDebug.ExportedProperty - public int y; - - /** - * 在水平/垂直上显示多少额外的空间将分配水平/垂直与这些LayoutParams相关联的view。 - * 如果是0,那么此view就不能被延伸。否则,这些额外的像素将被widget所均分。 - */ - @ViewDebug.ExportedProperty - public float horizontalWeight; - - @ViewDebug.ExportedProperty - public float verticalWeight; - - // 代码略... - } - } -``` +``` + +我们可以看出启动Activity其实是用的Instrumentation()类里的getInstrumentation().execStartActivity(); 继续查看Instrumentation类里的execStartActivity()的源码: + +``` + + /** + * 需要接受一个Context上下文对象来确定activity的开始 + */ + public ActivityResult execStartActivity( + Context who, IBinder contextThread, IBinder token, Activity target, + Intent intent, int requestCode, Bundle options) { + IApplicationThread whoThread = (IApplicationThread) contextThread; + if (mActivityMonitors != null) { + synchronized (mSync) { + final int N = mActivityMonitors.size(); + for (int i=0; i= 0 ? am.getResult() : null; + } + break; + } + } + } + } + // 代码略... + return null; + } + +``` + +通过上面的代码可以看出启动Activity需要传递一个上下文Context才可以,通过外观模式我们不需要知道startActivity是怎么启动的,只需要传递上下文Context,这样就大大降低了客户端与子系统的耦合。 ## 4. 杂谈 From 18daa5923010088d9ec7bbdbcc643d00bd45cbdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E5=8C=97=E7=8B=BC?= Date: Fri, 13 Mar 2015 13:28:15 +0800 Subject: [PATCH 04/56] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf4fdd7..09ddb5b 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | - +| [命令模式](Command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 匍匐前进ing | ## 目前无人认领的模式 From 58d87840e97129ed3b47c3c5c138ce9b2637f06c Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Fri, 13 Mar 2015 13:46:33 +0800 Subject: [PATCH 05/56] update facade --- facade/elsdnwn/.DS_Store | Bin 6148 -> 6148 bytes facade/elsdnwn/images/.DS_Store | Bin 0 -> 6148 bytes facade/elsdnwn/images/facade-elsdnwn-uml.png | Bin 16624 -> 0 bytes facade/elsdnwn/images/facade.png | Bin 0 -> 48998 bytes facade/elsdnwn/images/no-facade.png | Bin 0 -> 37075 bytes facade/elsdnwn/readme.md | 269 ++++++++----------- 6 files changed, 106 insertions(+), 163 deletions(-) create mode 100644 facade/elsdnwn/images/.DS_Store delete mode 100644 facade/elsdnwn/images/facade-elsdnwn-uml.png create mode 100644 facade/elsdnwn/images/facade.png create mode 100644 facade/elsdnwn/images/no-facade.png diff --git a/facade/elsdnwn/.DS_Store b/facade/elsdnwn/.DS_Store index c3b5fbc223f17a9699c6671387425fa5cb060899..1d293a50a79ce3bf4d2051e844619b7982f2b41b 100644 GIT binary patch delta 19 acmZoMXffEZn~BZHSVzIgc=JIfXHft?Qw6{P delta 19 acmZoMXffEZn~BZDSVzIgaPvVXXHft?T?N1Z diff --git a/facade/elsdnwn/images/.DS_Store b/facade/elsdnwn/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0W&I$8n2>$nvXf*c`%adz zB>OVA`s-?iGNQ-agbj}Aea!c zj~_mB`?!REsSrPtaCYUEn%x3B^5*542)xw$`BL4BdNHw^op%J3qGF zf1XUI{*ApV=C3E+l!JO_<08&oxOwp#SF~I?}HRtsevHRaEcT*B5Rkb(wZZ zYJMC4k~iG8jk9y#YZv^R1xt|J@jiO6wXp3qiX*Jo8c2AL4)Eym#gbLsa&&a`eK0;6 zeFi}p+hC6nRUzy|tC9fE|Hg)_VS2)PDTI>cD>IA*Xfm;727hU(1sS zroSsHDi{xEpEMc}YPLg9AU?gK#32xm9?+daoICN748e5zJ1^oD<^R!dPTa`l_>^id zL`NP_nkQALuC9JRK`GbjgpbQYe{N5@vXx$tk;l$NfQYa#gZIvhTn^@FMZAdjWXL^J zQ`3?>si$1r+=-&@stY<_&Ac~K82umJ$hCTEJ=2~LB%Pu&@JJ}W(zO*?JZK%Cl`VAd z-gXM(p$r^rurse&x7W;(Z>|@VTS$1>gUIpRD9jkjkgyP6&8+DO22jM zmRja}R_9myFABBvJy#oLSiad30)m2qwpBv$wgU^BXYxj9Ik~x|nJ?{e%BJ_6I(16K zb(zy!K#=+SD#pKIVsum=t7Tw-NoG@1QwvP~DC}&>)xsW_Og?7LA1A}&U>0fO9_9Ir zN=nRZ^jhzFPRZh6vDr1$=H}+R$417+#uxj}`tEqv%CIoYc7OkVdW>Rw8DAA`Vxp}< zIDa6YsKXwmlbZ66TxxHX`RIMk!H_;HSK$QsQ4)u9$~R@@ST5^qDhYmQt#J@e@bmNA zt}Z{AJBG$F! zYJHv>OTqYCtgJg9lT_ZC1~nR)7RLq(#J3e{1+&UU7z@VF-HiLu65MFS@7V8A@p4ic z=F5pM^i)5_$3OMV{Z`K0bnnStjcyyU^{VBmz}wbN3J3^vWqV3|){EIvyrV%J2GcP-Y!dA3>UtOZC`pBrCWV9lqtdOVBEfhYxL?7%Rd{h>VVE<7P4vRT z!jmUYxM(i$+z6L>Ugw<<9r&2p#>Pe|y|}bgAY5i+W1~})i;HW{NtlY%|51{YFutp+ zJ|@-9-?X@*q~tv>4H?OmcYn8;-lYwBHZDhRN%;?F%e%*qB0giW*y_6(+YOJIc_kz| zkZM%^wLcq;3bi;jbak!nAkD+zR?j*0_x15&b#!!?!{4@E*uyP4jXfm3JG*OoPz!#^Y>9PSO&jSdbrAr}@G=@=Q6 zSuVG=wMnP&M#;6cx64I*@5oYAQc{)cE@$wW+uK}t|2ZKcA@iA~gF}S$7~6~ZxVYMb zDW1DnCt*F|gy}Jwo3eXz%04=(s*jXA5=3yeJ{do)zl@HK4jA|(;Dkkg=IPhW+Y1Ft z|AopaF1|~7uJe?O2M=F-Tglx;eAR&AoxdO5sI^;(frrH$4h!>rpC!K5%Y)@|(uKeM z>X}eENlCuErhKt1vT+|j{?5+J%+$6p=DhrFak$LR($bQCY}fB(&19W@Sxg$Eg!l7^ z&nR5z(nv+5D@|`ilQDDnrz?DaGw^V6nY3x^>9rv_czDc$GnFOBs@)@b1w}-LySpFZ zjoG7Pu*E`Aa$VW*xY0F<-p>op`xq6xv>E;qBCSK17YWhNcdfz)7ZPv#Cc3$ev*c>5 z0&DF##Cc@umuS_=`tn84iZq0tBe1)-m+IYPPw}y#v92_K zp`+rxJv8=b>|L|o89E1LZDYlkLUe)2WEU^;Vo69y96B^RPhj)4jDovRL->K@oSfjS z^b8dWwwCd6Ca=Ceyfki$_29-1iMqD7ti{ivp~~v&*7R(~$ZXC0EX>x%#`9Xw!G%rM z%janyv=n*myQIzAumu)%?+nYav$G>nxG+XdLV&CK$&pJW97l^Ab3Kufk?$VAmaf{_ z$jr=q^X82V%OitBbEenZoX@#q8YadQ&N=_s+TJGoEKI4XsYy$FLo$?=oo(?rIWyB@ zNt0=CY3r_8I~f_-GfhpxVDT;5km#tW`*fir_cPzjbYRMKa;wqr9y24!)^0PEtEDR~ z4V7|Se&@MlWsq`sCqYRhp}oCbDM2YlhNW8H&c=qTRNyJq)aHPJovkfA>8AO07)ls! zz0J4R0_ZM#cWB!PKTVF9JfKO!hq&u=1am-rgxA?Q~(8Inj@|6gHII|+BG<3C8gz| z(xBQ*_Zs~n5iy1^7Fk$&G2D7a!6CuH`~m{7C>TUstQ{PRVCbn&zf_Mga&T~XczD3t zEkxlgt*kme-fzf%6vgsxk8^QL0Lo})?}cvwVCtPSb0kXzPj>c~bV?6RmOoZwQ0 z=g(<9a(I%Jk)c8eI7r1}r7Mk%j*kvYOH1b;7K|KfM0|#hxF$+yTz?m5PP*-HE$wd;#;lJ&S`6gr=?t6{SJTnigE`}9Z?CctNY$68SH*xf zR|`=@p}xeWwvY8+}$NRAC8ta zj{NFmXQ{yX8HwZjTMf_Sg+q@w(j{&O78MkHg7;^(>yE{2_qpPBcX!*i#vUAP`y6X7 zu)j4|!>#t`>K<c&FTMtXAE0#Z9z`v+8-?Gj{b7oqF0E zp%+XoEt@Cob2hR%W`+w<0bS1VDt{uY(I$S6>P%ku!?Zk&)zTSQU;jSf4Ig?-Xx9>gwwg z@nh{;RK9|;@<4Adzo1~ZK5jeP@Q&O1v?BJW@2Ruw92^!$TU#!hqw*K{u9 zupjy?m*(e(C>v z+}wUn*lXo#WcSI{Tt3q4ur0%gxN>JJr1uQ|B)*X6P8)02qBkv}iu$Oh_fStI)Js3w z*XN|s)zWg?#=9=e&$9_T3)6euNU_uO40vxcXwFXy-A$B=)P&lcFV>vrVnD-H9(`ak zuh6*c?Cki&MDB0UXg7^Yc5C)6=GY^$)`4%>IJn zKX!byJu^LByIlkHZPa7lz4vYpiuPUFmBGLM`s?Dwi;Zp)1t(1Oe4v{E_?&yWOzsXu zBn;OxHs&+id4o25d_CK2I!uvO?GEzus1wxSp^1kcu^v-S!e`H(CAh!5M77SPprBCl z&6YR4)j_LYh~ zJH>z3<*oX_0ez39kb9$SN9f3=->5LLt%?rn{mGR`W%1ik^ zG`dGda@2#Ww}z~gp*Y^FT@Cq_PrP8kScOJ|{Bc2NI*F~HC>{FqB_bLy>LM4)K#j6( z4_N()o@=rr&sFID^NMXf@1bG7&>DLeo<9&x6^Z@9j#2M@n_R2aap0RenkU5lg!-}L z_>^hWU<>i<{T&QOW*pImhlqT^Ok zM2I^s^mAd6Til)B^Sw7Y6#G30FAtz|Y}?fxy71F-8QLIzJYn?ujudfU``l0MtC$5M z#101@z;Ixl#;ZQ9}db%X95#u#+!C@#q1CzWWq)ZuYvF!Qs3n#^=Z#kPijl zMyM~a$=tOdAw|*k*1H{|>%sk{I~PDgfc3^;53>$_R2iHb>YTaWr6ild*M4XEucC1) zUv>2LqfOl1-L)425jp37AvJz)?=QJj{o&2x80CfekvNmv z8hyg5o7;U93Plqn1tpm?y0DNpZq}iKlScjy^0&zlTri%2Jix+~z23I0=XGFm=WB6H zm}%$2rYDuZ=GV#9*-f-~G5XTz`czcO@DhLe7$JRlIK9VWvl0C%{@R-_ClUpi-TQVT`+2VmFw8c+w)iN zViVExx3NfPk2yPe`3o2>+K@F|FG@Y7Ykp{G2#%efx6BG=k@X~rX%V=8zX_wd9jp1( zoIgwc!s(Omh&1;dR@YctiRJP$R*V@MJ!Dxrx{5!M!||Or2TPQLHEQ%RGAuhnd}Rd% z1>LXtHNN&}M|@tN>4=Gr?p8Y*XV^JBg5F#D{JpSFrJHwG$b_iO~Z@C z3e#fkL!ZoxBn@H%XFsXHaA3kNI#hg{DBx@X8XGPn6H#I_EGV7^KpBU{n*V;tm7sLi z@1b_I#X%WS9nnxzlMI4+lhWn3Ij`>Av0>Y#B7k4B;TrIG9}}~^wZ(^pu|~(l%yB(t z4manw(arI;mGC(L&KIZmVwOs+mY+P`Nv znvlv-^hqDa6@f}}p#v@Z^nK7(9#Gw&2Wm&dcQdPUy{pmZg9{Ds z$PkqDI-ao$@bP^^TG`ok49S(7oyobk_(J7_?zvT=#JD*2XN`Zq7J9S!rXHM*8{^HS zY-E1*JGVV zB`7{|edjG8!rHpyL&D4b-M*;z@6GkjxP845>Psx_UzcVG=gKevn{R~P?B8rD8d#ve zcCE>)X=XhW1Hw*eS=rdk{06!vnQg<(+Iq3+7RD2x@p7FOqHW?C1J&1qg9G+_l9Rq5 zbgo3Dsb(f7GSuk%Of^Rp78bsap-?fNrI-9NH8rKhX|UZY4|D`iCSi_V~5xi9-z^L-%XJv-Jzl6*bgmJ!srdQwpJY5 zkKeyPH%u4?KUGLq&3s+$g~2w;5Q!X}7D-E&T2Vq%_OGBaR~FtfLCxNem7zjOr0?&1ZlqWdQR_;9eay1z@6!tGv}A9n6npZPY^LH z)FNjPmFb#W-!&@yd2rw`Dzhm;c*W+ign|?JtAY zL~^rFs2dv@@to^Uea7w#|HA6mt9A?L#a_tC$QYmcQIx|_&|by;Dg;muCP^uqvxQK* zpNGzHwX|fXBmWn*g$dGV#5Od6B%QF&-KuHAv0r%6der2r% zT_GkGu3`=zsS$lr{c>w^s zhMKS!%67Fb8^+;q7G#=YZi=xteGh9AjzH? z3MZstF2IDGnljN>0_z98wCYw30(qw${ilphkvG=TDNntczIS+U6@&4B{ZMcC>5_33 zK5t;bMo`zwOU$1sHN9b?+ z>u8(`LR+GxvJ_n43tt6yaij7+|#3fDL{-MS>)!19N%G~B2AF+No3eRJZfx|@>aZ#DKhI| zIQr{-PWP-!0wALP>trN$qt#7F5&Ln(v3p4}8%PhW9=DX^3=S{nhNnT-eDj7R&XzCs zbv=_3#iMX2se{qc(Y+EM)u>WIV93j}g$2TY6G_(H18V!G)?@alp$f+t(7?dTN(6B7 zj9u!5qGaX43`;O?P~)Sf;hrAJzfREvK{?`p`v5h7;`B*(c{NSd|F>kL-Wpu!Bz$;C z@bLlFK{M}p6D{?so9Kl72mLiS(LeqX09Y7IB`ey^&5bZx!w*l;aTIg%WKKSrHTs_I zNJdsxvoW8Smlu%sC6{{w0`4`VwY9YhtathOS!BDRlJ%>ux{X*1;)s@zsbKuw*x+Fz zaNNimUfM#}#44nfmPWCz-3FM$@535--v1F`1hJcuO@IVcEjA)_z}9+qaDoR^RgW6| zTBaKR)YO}CZPtQ4*IDLCLBIv|E{A%;(3jY(%1;F}@ZP<!Qj-su3{>J2|6CIWNU zUTD*$O=pvX9xNr*ctu&X{?@#c@a8031e&wOfjN9d_TUj@3gvT|6<)Y`5mP;}r&Z5|hH_|=~u8jbjO7T_OvM|gL7 zdmn_WkQETm#1^m*>J9BZJw>zm+~p@j8N`|icdnB9JDAC&_Z$dH4u7$UWVvm1P;buP zof{4~hW7gPzNdL?&GW}&rwzpn7m-C#(a~$V3U>gNU;!xOFK6TsUx1feiWb**i_q`M z1O5WOZPxyAV!O{th;GhlXlA{s2v8Wc)Kg_37}+s!VKFf=AT7z2{#w6_ z?e*^+7+7ETh>D7Wb$3bKV#>;emxFnc&C%%0Er^h9gE}rPks78iTg(} ze;}Jj-fgYvmd{!wW@CF>H@6>TO%Pm1Miw{GFqMIh89@yrITga9mD>-%vZJ*Xj$2>% z4laz*M}v=;#q;db(+l|nRpsR}_!-9I9o&Tr7of%mkkco-uSL5Y9qa;g07^6Q&3|oe z?da%8GJqV=KJkfy1tA0E%*W>#u)X>7)I8!Vlvj|CuLy-B&mRCI;&3zHCxKT(Lt}aq z4Y)s(5AF}FIvr_gX?yK6RE*x+=Zy|!;%swTk0)e!!4V>O5j>iV*Fedv(9{@z()|ac zKPu4TWR0|V@!|zIC}m}uk;1UVkBYI>&1Y4*jEG!JmKfPAk zNDN%BE!}c$P8zAF&$+MGrJZ~riGIMGY&2-*X?d{|F$#!dUV+A9YZwwkWi)~&W>uuv<_TM65m&z@!2{i6Z4 zXEFSgDtvoBZJIuNR4d^&4!tF6 z!X0PYYc{&&gA1FRn?YfIXgf$2ANQrMi{#RZhsHlzoYLFwOb2f+0}V<8gRo1jlIL`t z*_k#l9)VlTDp5HRf^zy46%=G5_<4E5n~eAN_GXtUopA5oy*sZH-JJC9&$!m4baaWY zyRl?=UcctgIH&6&K+oJn6Pt{CgH}W|%kj24a$b?7-c~{CyxhEU>y{360r)hj^{LyO4E{&R6cmU{5X6&9b0eMIp@@!iys;u1}{vK z=!nuQe!i{;a|d2fBiK7li@UOkce=vSY;>=OM~=wOYV;Y&NSuZBEG#lPTQssaq4{ih zSj}gdZTipUC2rSFAV?uCgK^)Tih+THpDcX$ZqLZba~+*#WU)>z_>y4arKg)28h$D% zaRRqoFn(z+9iuTeYa4I$!b7D5Xng`@7beFz0z-USuQ6t1* zX_BxYIe-K;{Ean<-$T6n#{MDn5CFzq=Dm}vosoY=lX?D_A8Qq zm9OWoeVbSz8a=?N)!e##?23k$fIRgkX;ArZ=M=Yq=i{BH8UCwrTdV2h{#e1!QQtXg9ui6&c?u{7-*Bq?1EbLKao#;Qu zxKnTfjbjF3i-?83B2gI6wRbApHlI4);23?LgHA+6A->}41r-+V7nJJmN@mRYfCk+! z*4lG33~|t`Y3b;CD`{4kB5YG~bc&GN$f&|D z@_69L;A=YgdMUU2&nHd6>|7FC{eH#i$z&A7Lwt5)d@?gK*mR;0ffRn!OvyR*q_5f# zHAL_B|4OCy-v-D3DHs1u5>_@*mb641_yfiPZG@5w=+kc4m{fGk+wy_I|j zM0{^+Ybz+sB~#zuT_M9$QYxscQ=_bHZIvd`2&yyALA);iU&aRi4k*ccz`OXfaMF)L zyt9(Ve&CDsV6rpyratOJFP#{DRW0(9xCsuhUst<3%QSK;vI(v;)tO5$MuqKjUsl)1by{rb z`ueUXQP$S^8VK4z#|*gMwb?O<$6sF9O4$8@=*6tGWN$89<<7y)pY%l#<5P}eq+@Si z*N+3wDH1II)1#r8vLBTtPfSdJGz_#PrK@}^#xMlH?MdISi;J9Mx%v49>8CFC3MvrX zTwDZ+D*2oY3&_B;pw9W^IM)aUnI*cjUVf*bq_lSXPtc1mLFuYs5NM4XXtCNj^B4zi(%G7Od*3Is!H88miuZieMn7-&SU%^cZNuNxxNl0} zI{ml(FIYCWl#EG16#d6R<5Ex~5(T+AE3}$gB#Ue?uWUqITwL!Juuws1?(F;rbl-=Y zsLdh>J9?7HM)dD5kbKl{#;?uaE;)>BV&Rgyg10S0FWHuflr7Dss`o!4__Ok1drND4U~*|>m%cia zr}r?f3S?!$MY;TG8xu>O{DGEXw2{&4j%%d;y+JcyfZeGvzI+xsu#g&&8S6l?RE^_Y zvMX8iVt@4MB`|fRbjOB`P|X)*!;oGC2dYNj&dcj?b~dBY=tc0-XpKm?48$gihxIC) zgxipjCJ-A0F=oXijPCyBphk%8xw>wX9GUBx@l>yzL}(9LW4s?E1z>?KXlAoM*Jwx+5nSHh^Cnpy)gJ2Ug8a6)jQF`va9 zBykGF3oDA@WNpMJ5n5&Bm_#km@(=hwV18#o; zmAEBFAXXumw>d~YhWkDp`NgsDf*m*iWHusf0j1o=CN&1+2UM{5gaRu}p!Y*g((f?~ z@gF~aZm>?}8XFz0EiV^>I4Ni|GfzXLC;cy6HP#N5PJ#48a3N^TYic=wPJ#Ib7rKcu zynFm>)eRh|{1rJX_vu(O^EVLN6Q(2oxT+hZPR?JW-+`Ru(W~`Fo43oy2@n3G#r`ri_ptD(5X-SwG!%Tr&ji-$)3NjnnKAE)=+y!;NhcuE(WtSSg! z%l3A5cESlqP0HTj>p?DU_BSF`63h@T(BTgm$kvJmt>G&3>yGxmeS-+SyqEl>< zMaH(Kc#9?7#M&ACTF;82qVCDnPNq}1;#YF*!daTy^2*8`@;o*CLPBoP$Cj6Ezw>HB z2wR4w{o{QUU#uH5NV$C!B~?Y}Y+fu(!`kj5iY?x%iOKS!q9S76kprSIb3v+VYFE5` z9fas07XlffwV3W$UYCQNm)H;b`RSL)Vp^PMJCopX!k&PYm)t)Z%aE|Lp54KIRGOKc zWeYhazS*k=lpL1aYxn@F3Qh{vO&n|X$EYs{J3B&EUU*mLaOAaXw>dak4ok0JR8eh$ z%9Sly)~!P&<$kz108kLrfSp)oCQwztSa-jJlSk^m(}doXUC(jcfU8~Y^JlO|zC+7pWgCMuXDu9$e#c+qiW>K*1+T!1O z@}pU!b!VAEE20Fu#27iXF}RAmIo-_K99-Xcbq|C_SNy0gw><-^i;DON_s^E=YAb$X zYxW@2nDNCz1VU3YX3vPMs5`oY-E1?uW^#L~+N%BxwQET?EBlYMmSM|mev^JV#viCH z-#`>)8)$VwJhd`ma~?Nsy$}VL!Swqpr3)E`n^V~PVl&K8y-YR|1@2zuN%e)mbEGfH z78V%Vs~h}CMH=Qw>2POu^O;rHFy4D}5cn0GrI5at5hlJTlda2@QgN^HB#yTZfA#Hn zn9l)-;D_I?)Vqc z#rVOckzT|3KnS3AGuMu~;Okjp$ZTM(%zAL`V7&tnpR?Y;NlOU`CIUn-?lWKhrUOVz z)7MU73_!%slbR39Dj^vxrHiWfg6xCdz#1cZHp%B`#)oFY`!^^(B4fKsva;{c$sIG0 zQSZ%?Tlg;*FfIoj(w56cdgL>!le0Y$n=Lbz1t98(2k%2+1U&*%otY- za7&IrhmLGOBH-3PrK-YvclevP5Vp+U3h|({Wiq#Hv@%;PJvVnLaUe=AHMuLJVFF_Ey_L0@ zMx-QuP;MoTR>RUk@l8uxP8TVnajlYIE6aT{p$(V)M*uoY!N56vbx%YGC!{am(KY2T zNYt9e1qG#*=OlTeRgnA(;&@IjAkd^l+|?h?c2eR*)m~iS1*f^Xe!VUMg{q%{sHrfbsMO zT}|RCv|zi(Rro|17EYQAeJbw)uq9fYMV#vwTMSaUTH{rpQq^9Zd)a^V)xm{*bE_lQ zee^IO=AW{aYCB(-S0h_uuFE6PHohYrh3F~_hDx0NA7q*4Jp?#ZK$4RNAc2@9sNk%T zkR1UR+{ozL!e%9YS%I}@V8Bc;9zt8Jkx6G^FOliAzZ)^bCx5pbzf6Qdjo@Yc!Jw4X z(1m$E=jVsf80hFYRN+fxMlFr`t^p!@Q(G&Jj+*}X;R7))N!q5J!KGmjF$=I5#+8e8 zjLpq|faH%l!mitz!KO3VDYM@x2%933mj(w0o;0djl*sPy?LqbuEeK|PZ}0aDNhH7G zl_FSlJgls;2Nn`OeE1aj^ag)JXD6k=%RfFtZ;owQe7}+iSsP;*E_1E7pP01p)Yr`) zAbR$H$zJCAG0+m!oZ(U|5clCjfljU!rtX!7g)KV1B4`EMHZr;stAK@z67L)sxFvhJ z)DUDW#a5eUEl#W}%aK-%#BY4&&elvwKxgVQf6wazz9o1@ z;)$OI7EbxT>a$D@(}1l7eGkFk7y=D$f4Pd#-J}xGaHECK`4H}Zh9iD-v>ge%cOa7r z;v2kR8;qSmMl1N%DP2EDN5${om!(d`5ce^3nU_>n#^qPSGW#@~zoKDzDWD--DIFrF z&UfZMn=iYNpFRnVIWH&Y^HPItSpulGCWFR&u%(9Yzal6hEG1=Sw<2YSA`Tewps;-) zz3;X{q;hVXuvC@OIk>o@Oa?7WL&L)EV!P)ye*V+~u!ylSHGLE3=I$O_8`oJDy}RrF zXZuJ-L@;lSzH;BEFXSY^2qH)IJUm1glVKwppiOkmDCn$tm&r&n)xi7R&DsVnp4_G= z)LiEMy?f3#Kt)|^Z@nJF>jE)V@i<~w)n)&mq&hGRe$h8Y#i=U7gA#Mw-Admbs|lG} zl=#>7AI8scpZ+{7;?@azrfjd`+J#PTuD2%*wCj=k?XI-|sE{aF+i)ZFExs7@W%kVV zs{L9OD!q7S4EQ^U^AHC%gAGt`AR`UAaXu_9EeOb`O6ed4GL?dbpYz}HZJPQB?9s_8 z!CD%(fwK$c7&7IVQ*O1^RM{mmz<8kOjEsCl?;G2gxp>sgL^QFWg6(|LdtytaVPo1I zq|4$@(7BXX01KyXjN2Ve+x6asZ9jJtl-9c;uM3%Tz{O0IvvYITkjPIp$>4rzHcYNQ zuX4%#@?{GIL@!fIWc{*x1>H;U=A0?aX1LkWTEqdtud(GdTMD zuWfr8v(&WbQp@!%WfD&@n@vML4iw#-?qetOjWzZyov;1Up%M?3myE#oC+;b<@J--RmB>^aRNyCg2r*bZ6b}D3lb@Y^osqFa`0VhXWclo>8@GP- z2M@F$73ovP0H3I*ntVY`#(>XLTpttF?u;YO^pdsx!vjAckE?o*#Ac+!%PIh@!f=Yj z?Rtlo=KHd(4zgnU-UHN^2cIr=WOu-OrO0z%x&L9D?#{g34VX*hzOW_V)?INt?0Vvqr(JKXv4fYPQkDo4XgIDvR` zPDNEESTutK_wCywQHFG1TDb3>#1~|{RMge`Mn{!!pK+7-U;a8Rrqa=YyngN4gn#GT z)A^_RLUd+2lO(&$onYrub+stO%pyH3L7sQ|q+jI{lJ-&Dt1>m!#MBg`^qyc`lLttq z_f$OR2BQyb>2zc0_7G_ZW0XkL9k2I0JEw3}39ao)b2lnc6f8-?)ZQNfm941W2B$&$nY zlOAjYnDD>a>z_ZxWn9Xm=Jgaj)029yYrNCf)|zPrpc;c|t$n3Wc`o=O#@*cfZF>`_ z9Y7_8UtR^w>x;fEeEpOD$M%-h+fL*!QZ0?u-(kF%os@VYo4`cc+^8yz=5moJYG3+I z9fsSr;D{(qut^9}4X__A#*qLXTQD7!c4AvGFvSMCb-|t7oTrC~?{{8RDF30$IiFPsM z+=!-znyH5QrOg}B+v9C|@~mS=kxheRFw7$wzWYnV&V{DQLFZn2J~?pvWZf)$j*$!^2HK3-&<#WTRM?y}rOq?pw(X+i zFZ~@gTn5`tL~PT5vL~=vGHWVSipp-Zwq1Os_G|bt3VAjhnX! zZY3K1FBf;}3%Z3gFL|Tb--0(>**oWJ%ulPir+^n#^wbpWBqaW9UXnLUT2Bn>r$qmE zR6Xe*KWd;Gv(a3-q*~*r2whJY^$2T>J_oDLdS`y4k9KDSw0YvH3ZU7xs{atu*V1A$ zw6H%0S(m8rx^<3Rrzhb+ApW!MQU60xZzFoEefVVoZp7aU@IQGa6uelXhhs04+e2%lz57EmzT_2K%yt{gMM+U@EIcvO?w0D7bD{G;|5R(MonH5ot)F=U-UWm( zN(RA(1+n(9N0TUccUXhJk*jS#kNpTLE<`vBY7y0?z=(;B4Gv^=cBV4WtcR-i|6REX z#IT7Sfft8iK}WNWLJ9Ll`Uezs3v-jAgsCIE!(T!<#=Q~M)d_~9`W-!_$D}B8A;w!u zZt%qc`%nVr%oxUwC0H~WegIiY@T+WA_-_|UB!Njub;6+<%x405xTr%z86QdG9nCOq zEV#|MuP>9Y#P~=Y5uZ`u^dve(@a>qY!sStqxJT<&BG=yc?8RG# zu!Wu>Z#)HT4NPhNyH_gPd%iFz5--6KjVcj?h)ygmC2m8r8p9#uY(~_N3C%DK2o-Ti zx=v8il!z%CZdE~fqECmooEgo*f+3YO4LX_xNGLOlB7+v~jFRSl$Yct`@*~TT zzP2ld|S4P#=32Co-yKMD9S)HLVID>>5%<&xSS5AXo%7 zOwX?^t{ko5$O$z|Lf_z9;q&D8C;H8cTLS}0`*1;8^z@OTz&L7^JWMftURAb*Cj2)= zD{AbE8pr+w)@K5GYi}4kl}ZN~;|EPY?y;WR^l4|fTQ(^_n6~_TMrN2`_<>}4n5~YF z&{&I4MER?~|R*sLJ<^^z>Z0l;TU%pnuth&WZ*kVTp&@)70A zk_rAyBsN3naU;>{u+=(3j|n?T7(X8h{XWnzjM)WnQ_{A8K3`0{BhDUS3XF?)g#c!7 zTZTx$1T&})<3o)g7BYp=#U>WT2*xJ8^$uM^?S#7VcC(drm36Eu8ZR>Y(Hj$tCgm%< zXDoUb{Q6kp!_{95Tc{XArFW8_u?xaa4@ZBAe`f5*Zy5Ty*Y->9H&p<@dARUU2o947 zE)h&kg3L}87Dc-lr6?{oLn$APQWCQ+!&T(%A8$k59fd)Yf0Xih5vy)qmLnQB<>iRP z4Y{jeOKLS`_K5qQ^1D(%ag(hy7h(#OH74@sHZC=ASS^2f-$M;NPGoAZ%%p+K}$}`Y_*M=ah|gug;Px zrS&*WF&ljX(c3h^>~O-Id7j<#$b zMG-41&Rl3=S4LN&Z;o%`i@t=!u;H+Qd2fWKdBK=|Jb>twi_Gq`$$8_I9%XGb3#~n) zJ$+5GXXI1Ptd&6v;JfXW__Mkf_Z#jT?3+;JG~s0QK@^`mG(As$PHPTT$y14WmST1? zXEX;dCz6ZZ-pjVyUe7+<2D$abM$3+Lp}TygbausSHDP6L$+)D?;H}py5?x|kpI%X> ztVPv2caAZC+%Uv`5N#i&YuByAUB!LV^Sqm<$V+(xKMsc$;}+cynx9XU|g95}Tr3 z!DQvisafSnNknw@+%BA0yV17nU-)W=6`+qO%cEr$oe&V*U`!X-?oBl z({9yl)!xaxz@mTP^Vb)D)Qa#-sftmiSh`pz1&!&Zj20GqmcSPEj{D{m-MS`z`=_~$ zG5*m{$)5S1k@5XXX-Z8>@v}k(?T$f?{f_C^o&w$ZnMMiQ(ml-2oqauhBmIkin*ld_ z`xKt*XW#fkc!vDK93)qw3=&wzDaNVBiN+(TeW}f**+6={_oEEcYPO}?ar^=ov8g>8 z^-ErrJ#+kX=6M8synJ8Xn!K^PHMRTSnu=Fti|dOi9MdNX|TA1Zti{pO#9Fa8XU4_AIWEt>z>pU@BO@9`Iq z-i*Uf+!20lD(os8aIX27E3zxH9T*#E5TqAGQN*;TRwPx#;3BiPMA1`pRU{qf=L7!mr3%+axl z++^N8-nkw!kBdZmClulZ@&xCCX-&O{Hb?eGETg?s9a7WelqPc~aZ+nicgw>n(kfe( zK-{L!VX@T_)r-roT+;e(8wsri&O`lrf0W)Ne@4^dI4d`2bNMg6Oh%--)05|xK&8OP zs{E`%wEo_&^kTI|^50Ui(witt4M0?e)SuZ-sWFKdf>ILXAxA4=# zrl81Wa!Ga@zj6q0__;s#ii9M~*MT zFEtN6cndM4@VbL#A+O>_9zOkLty%$L{&)GI68;!<=X378 zs zK491fo*CqHwOVG6H!Dq_Pg_nq*CXjR)fo2lcK*JbYGSt6xzkCn|J3qn>f!;<2`_gI zyvDHBS{JWp@O92@``)u~Rbh3v3Ru7ObaT*xFP`bPP_iqtI^)#sPnu2#BToL;(ZTguIzD7<;)4; z{51Sd+}#mSc-UX}=KD5{J^*_hY%Nm$&*Q=5aj-(dIP&?A!_z~=@YZm7o9=bo#tpxm zk%7OR|79{nCWq)VG5SA_`^>RlOGu&8}&GDntf){(EwXl~K61 zoS%Nu>22U@O>hzl;NH8Kv@c$pGfeCbxEt#vuH#L0+Ue)M)82GkxK0r0@;3gf{b=xG z+xMrWJ-a_Ud|OHVK(DuprC~DOfXc5Dklg{uMWZ(FytuhV_~z5T*nqLixn@JP!C z+1W4+ULP7Y7QXMJz@#n(o~rAqdQbfofBF~l_QR5i6C)@;7)I^^#*7G-r`RqWjQX^E zCjh~8(OD~w0e!)>=UmJsoLkOCW>F?i(_xCUCC~bKq4I2CXw};G9 zX`8a+mhrJ>lwf6z4Da!kL!EA?%f6dD5}u~m^vlQo zJ;>-WeY^_qc6^WHVMWg!f+$7!$gSOSx5FGeVY4a zP-iAiyHs9o#Swj-(c+@frcoTRGtwCA<(ScnlOSH|`flkTu&?4WKx6*z$K(^yE%}#D z>jBO^!dsvZ!U0fo4Ciuf;>KQs>i177C14Q6MNe^;WyX# zUk#RA&dF#V*Bj&Hv5#~HF=aK-=cNoQ_b&isrWk`ejS!Rjqf*^aNPCNAdgxop1N_8Y zmPbSmv&d&+zrR5NX<@E(Ez8{kAjPEcR}A1}teUUfvkhxZSh8y=hemtIq%~?Lvy7r~ zLftG`>f)KyL8W>E=$l^Ku)e>1ub1d|I#a$nOoW%GF_-Z%Kzt*8VV-8(aAEAi>lY)G z>DZ>H`LL#hsdVxYEoCE!GPG&!yH0@HMS56M`mBAT#@q`0OK?3dRF(}-`jWuG$Y}M1 zLgnXZQDdPQ@4!UDOZ0kNvy<;=v4~rboC^fvU>uiU%W1Bec=62<0a}F4t5JF5+O_cG+Dpy0{nHOCqM4?#rr<#K5(y;Z1=8t<>$=vt zoXe;js4IPD`ysb-9*%-ZL7fPK+|`tvV;Pgo^cd39)lS=yq_4P@JyM^Hfe7m2eX4XV zc_?FS9RQ9om7?612UAHMGN_mk_EC{TQlcyX!lZDLrQ3H=Qp4t^sWXtNIlQcJY}0pd z+B_k4s$%DUCYID5X;<$TV5E1%C85|W0>Rt3p%fv!NS9IufESewcUpCth2*XYRAMLO zn&^$CeFyNx#@PAsrcMdRgGqw#Fc6hA5!A@9RaxwXPf{%giwq=buE?OZ4B1nkR(<15;lh&l61Ah-+4?4VxB5qj4tbf!9@*cAtMaZuteGka zW^Nr7Lhei3X_z=;Tc1ak+{KS#VkaGQlhVQX$Mn^Tf~@@*dUvhA`WLJ{Yzv$u4C2au z{}Ea)KlZ$wT4?>XI%@Ne5d+vM#vr(gLlVV!5hw&GfSnI|$Bv}L;N_mid%Sz!{~LIR z3-pnn|9f+fu!;b%6TBSD^Ks(;P^A}e=l}m9(8XwwH^o!QEW!Q%LC8f2?w*r;Ukx)_ zUPv^JjF-3=<0NH}IV*v=b1EmVRxbZ|r&nPZn$z8q-wdk)?O-E%`Xx_9#b^iG*t!A2 z!=&p2SHV2`=$Up?cVVj|5<*8xX*}lQQRlhMv#!QT+H8m%F-3j-3`jR=5i#Di>qT~c zA$&yKjl(2t2_*MLp}m%dTv~HviW-e_sdoqsQ;^&==J>Z&%5b@vN7cMFw&Qrnrbc2njxW?mBYjL{~;=dU}tA%bG}%v zMz1;!$@x;YbyP-lVPVnqJ(wT{ff+M-nho1PIB#zfC}34nz$xoheqs_gJ~jd(F?QX0 zI=I0Kixm@G)(V8`dBBEti+{`!DjySd&gF4D`}1?R5|PY@Vo$cy9s2D0z7|EwK$9yr zgZ4PDO-J4hi&Q0>yMs|py~&2ZE$+#2kQrAb!qdu#8AN?;&vQHOLLs>ajrzPJC<{k} zD<1XRRItX+*NZQ!C?GwrMKAc4Ba`R}Z3bf^m=>ywA88oLkZ4#7v}^ zF(p(F!h-Y-H`f#`65G_y-rn*FVmbu(dQsDG7RNbP^zv|u=*cG( zIy>SC8NCJa31rBI-ahwu9H9iULnG|W)8Km)GJF6mRVbCt3%{`>Y3{n#;@E8P;lm@F zZ^u2l{FTkYxHtb5v@u8it@v5y7{>gh69y1z_7T(0K{<&U6tQ1K_CWNPc4{&aS=lt& z4ZnmEjNjgQ?nFZ5$bdeUj=e;D#uOJ#m2#YhfRk$Hm{1YnHwDo(9AL(P%WD}`-$eXx zp#p$sQvo}_eWO1NVNJM81Vd0@^}rl&A1>z-l?{P%-;NJrBa&^u&&<|;=5=p%6Op6ZcyE&$iqnw264n z&*}*A6{lj;1Gvs1)1aAVN>p2G&tSv=NafIKg~U9S(o$okc| z`+o`oo2K`-7tL~4b!Pr&zLP-0kAj6TJ3ZX!7+NtFePTr$ngxE9QSynf*N zvn&a|^!R?Vnpyhp&XMsd`ZDTA<%)tMtS~Aa+uD!JG+0Htw%?I;BQJe&H*hU^KksN- zc&HC<0wm(yJ-IbA*gs|kk3=H2xvB{|#&wq%eb)b!L()-8tdja(MY;ZWGW@8SM;q*PTRPH> z+vQ>d*w`yFr2o$pCIcPX$Tin_VO^HwzVQM~cD=B2HNK*GynOQk+VqH*5@S3sjaAJd z+B|W^)kRFyQ6pF$Jli0mF6wz=>KH-%nkVE&ss!5s#r+`Pbh&TUrY`Up9H&x-+KE7p zx}sXepyR+B|5d8-_0rLp$iY2=QE3m!%$4jlvauq;C~PRha6DONDhBm^cJ60TQ+*Iy zI)LTsuJ{os>;7;g^prb)e!R9*@f|f&wMM(nCcWU#FV9_K)l76po0mo3$BRza$6=O| zx{l3=Zf`^RdBHp2pWaTP>(1fTWzX_K`J7=*|{5n_UQ&gJyLK)su(@ zOSv3(g7SCa50`7|K`VIv`8~QQ#I<kf|KV;8V-^jwiuxKUV0Dsi!zby;Bq1%M<~ksVV1n_m5;RT zyVIkz;wGC+fzp~$0D9eyDc1IFq|rGKLNBi?k*9MTOxmZdgp z%HUA>&mup5$LP)*c8TmMlvkfE|JD_Tu@LyV27q7!Vnoy!s(r+*13%cUC5{q~P4EG%x%KBc606zo7H{!|Svb z#?s<(`m*yj>w1!Bbq5#Z;y{C~b7+Lw!Rz_5p`rw7~|E?aD+KiQc~EF|{} zv6*bflBfi%_*=E-8aDU5y9>XixDN!A`2053xZLL?a|AuxO@6B!as>4U?IkRfxn7wi zvA;3cmvB@pfrAsW*cJe@wr)Q4qTis@YMG-ZsVd6&xl)Axj#2?Y^hFKG)}1?BNsXIU zQmfMNNWO}?92sIXkrvVgi4xH+sQ6iL52E)Wh}z)=4a zGWHi7Y*Kq8kvaYQ^0RgHOs)0W>1{#kpEoPo*+j!q;VZn-$AOP^p@&7}U2vH-MzVzg z_hfy~8*f~JlN{dzuj*@TPnG=C{{8)9`>Wmjyg8SwsOyT8$p&`Y^N*CrS%XUDSEJ8Z z*Ijz-7i-?08>eeuE9d(Q#ScIFrL}MVz-ZOq4e%I#8DDte6_MgzZ77Qyc{FhhmRj0&17lgcj=l|_m1@pUY3b+0dEgAosBW;gHs$An? z$I48gb`m%h5sVLMplQ_m^69u%6x-vCW?uBcx@gSfDIs4wrF+kb**I52%98nFwUpk| zs0*Owj_vfFRxhi?+nRpS9cQ4Ul6I+bu|{Q=(o#j}oR9zRDD}KdV=m>7!cAcE37es; z(Wl4cKe^<-Ic(5>4Ugj@f25u(KZ``J?ph%7|0vXHo_p~)b7n6)eBO@ua)gA*OhYa| z8$|X!Q-3~&ZdV|Q!^U;DOJNJ?3N?fMR6~^npB=KsaNCPmpTELppePdXlU3=(muCfB zFE1>P%Z6r;U#!U*$k?2bahGp^L{I>Z*tjP(%uNsyf3Do+%+9#Yq^ZVl_FL=@^{E~# zmguN&uCuYc>C~U9Aq&$t@xKMO!XU(aLaBkj-LLsp0vb>P_9pFZTJ=0#vUB@gyjY(l z^>tJjU(b~Novis+?%A=GI7a3UyZx)T9sX9w8iP&~nRd>~+(Dzw+bVX z{rlp*OWOFJuVx7ryH1Uy$^Gx}`d$vGJ?5&%<&@S80wpe1i|cB|qqL8wH!H+8Jfxr9 z?AEGg8!7aO0XRU~l?ayQCXlQZgsTi=?YJ=T!;xsnat%dEb znQU(2s=2KHV)qY^@^)ih1m>{5=l3*)rEqJdsnHUA)5xuZ*{x?#E9Lg{^4D_ZHDeEi zIsqRF$JQs^Pq+Dnwhf2uWjGic1@wQ*AD@2dfF6)p_pNzdF6@4zGPn`2I`5`?iQHNc z&G=Q4wc>c%?H2HCS+N+oeCJ;Fi{H_lt;s9w_sw?ySYAG@XuitAQ#oy1z@=e0CBLl` z3GUuY^SAvWvMY5Gmf`F}Sso_R{eh)822b0gP4AF^4_lm^9p;^!p`8npr%ZI`xib{8 z;8gJOOi!?zD7%8g(`cHHaX7)M!G7Pn0Es(yFgcIk^&b~w8}3^`oYmb*h(yiLNE=p{ zO18&dy-roOD)dHoEY|{&Hcw8ZKKqLqe}8~GakFD#l(tJGO zu_5qJEIzxj_}7=&23oWqAMcCTfsHu(l`c=UYG@xP>Z@u|$nK}zTtYL!2SWNtod(P{ z^vdJs4Bp0*>6zuj1U+-i6@rerZ$G{k(y0_ER_3{(%od95+OnUFI@Z$UG;^)R#5Lt< zO-+d*!&Otze#DFexRr=O#w0W18MC5piW+ey8R$!<8QIj%5~e3ZqBrvx=n+!V)q=a} zO%I-b{lNyCa| z!z_njzeu5okdTgMZG|TqjS)W{O8RT3F^R}x1#Bhj$b0{FuNsRY{5iWUp>1jRuL)@ArOXr$xR6h)>@ zlvuQ3E}F4}m9Gz!#zN}Sk`6nW+~nYSQJRxVrOFw)pc`s@vnxwPP0sy_-L8+2C z+j#!SphX_$Q|UuOm#86cMZLmx z7)g97FvMQPPzN9C8pnsJRbq@1v(?GaUh!V%Z<*W@vu>t=%#~&eWH}8IKa%Ixkx9QHKTSvy>}}|O({$ry4=-2H*5P~(>an1s~*|vt=(4T4S~{FX~s?5Fx<2< zH>wf4Y@e%0c**ZbpvbYvqmtSbu3|R-#l4(YhIcv%Lkxl6L3vu@yw{Q*3jDGBIboVaM40w+p-VCQ+<;05SIKIMlG zsHPMKf*Ququ~rhJ;J$C!CDVhV>C5c(3QKk8>q^VzFNXaRhyicRh`ptgk@waVe>YO@ zJA6i)R5vRCU)@BAeo=f+&?4JOF6~@~d~qj15J>QOhn<~12ZT&hTU`>Z;7wt1iIN!m+`$t; z-7IcbRm~ehxxs^Wx#@@z7y@zG?fqsYrj(7}&3wq^V9ESE2g06sexppXsDL`$#DN>p zXgHgSxmEQvaZ+&4BajK14UWGo*P$4~vI19)fV$=>rr*^D4^Kld4e}{hO?dM))8>kP zCB!SK5^<;`NqxT-6_)$_yk%304zUEBh>Nbva&LJO#JY1M<}Pny^Rn{gKsw6xZ1zfq z=mvOe$5Tzx0w8L7a)d2e7f-^_56~Fb<18n_4f7K+;XN&I7*SF(hWfT(Dv?>M8I$Za zHWWWE#`G{0*80#DT2YIYMu$jJHH$Wcl$}K}G-q~&3{~|biZP81*GUgWwz=IKe0<(? zUh-TsqW5*(-j{s;n}b7?jYvxI5dUwhv-%eNd|sXAE!pjb@+8%2x$ck<8AhC@;~7ad z2`P(>8JI(tP{JzAvEzAA_(xmB@5d1+9 z2kYIYDOYlfmYxXRhgm~zCYh^v{@lWAF7;Uj@BoL=JgB=O1~2#X*Z2XLoQdlqEiEm# zi>d3d4?(Q>EUBRJ@&%{{9g}01IOvEPOy*WJekG2+_`=H`!8vNen86$=Qxe6(P>IxS z5(sg?hrV3U#vuxtV^m6Kuo=m}-Sn^B>hx6Jn;!=e!}Si~al34Y zZ;V(}+}DC$DxxQnKVU&Cz?F#In7n+9^YLYF_hwtqlCD_=4CD6%gQ5U}V7BDcuwcF= zj3uzN5oMfM`FV&#E$DcY9Xz}Wd&2W|k4rq}j-R*8Lcy&GGKl>102%#NzyDM1H{XrK zg+Z*=RBE;aF@8TjK49sYCNnEU$=I1)Vl5{_V5THP>ogKEsVR2C+g>1O>45wT(LJu)4x0rk z{UP!XHAz2WvL?~_*2o;0<)k+C$lwrY7JrfdrJe{VH3tR;{~aK+VztTSQZ&s~!w$J$ z>uY3drTp9D4|Q^fJ3NyVBH}F)dtgQzvnLxCSL|jPmEG2`NJqipOZq&uQsDrSdUG@a zMPbyR^(&`Y-BuZTpyd0|%n>>fxzy)%o0fqkWvgmPxLIO_%sh2REpp9Mzu2o3F=NnG z`H?BoK@G{e0e@C+Om-X7hY7JuK*2|4+-P((B45a#xV)Hn<({H4ChIbzkl?EabhlA2 z%_L1CM(SvE0^w4NI8}}BWnaS@zO>9%9%AePjfcN7GN0O49}59EtYTru9c1^6Ak zZB5ZGYBcx}T*T4DR4UKgJ&5`&=0$xu-vv0|j>L}oI8e}=%Y1oHrP|blqH~OO(Zaj- zR<=;}9HUPJ(3>;uXyt!<^+7Ov|CH-CW+q)SXlJ~@YKG*Nvrb4{Bn$&+(7O$W@^<-eUxc#R9BXQ9T`V%iFBvi zjSE^>Ukl2tlqIYq@Hi~=gU7dBca8?tGl#75HrlQ2Lfo_EG{WBmqG(7J1!dDmVf=h z88ev<(U1!P;nh?}*hmj7j`#~zNQnwVgqH&%IZw1PVu{CzN9(gdlMcGyNB4y2@bCwS=8}30r;S z?e#LL(ZKTdI?j|>`CZ{s@O~idytZ-?YP)+CoG9)?frnIdU;07O@%5VViG zJXx*7Ha4;FiO|o@6EB6@Q>huzv+V#kl!e-n%77iT6^8j5(AyKhtIOrQe zCiSs{f1Ki9yaJ`|@?8W%BGYVFApK})jlvPbm{XIhBTsjp;@mhTiU)GSo65J$;u&%H zJ+nPcuBE{d&to&m;)T--aU%c}0jC2I=M%{=qwiQ#IzZui0MAb~F{@q`UDKt)jAlw; zy~8by{CKl>DlAwXlV1$oKFOcnC_ac|w93o@D+SCnPLTqsaIpa}&o|L0yr(O$;d%sD zT<*=7`^D%8Wtpi-Wm<5Xa?P?Fx(9AbYQ%!u7lWTheq3lE54fF^^}JBIdIAEjCy(Ps zL0fZ56p;*e0-P55n0=w;M2P{)O`IzOC=>)6)ZJ(tvcEk*Mm=_A&+lQobwaF`62)Sk z7&~~Tm5|Tjq`7J6(PNq4iQeCvm3DW!ktdhgj%UZ7&asL>QknxB;Y}j&VA?t-msR$O zQTV-ROFfb;F!$h(n2k6*Ou|TA_Ws~kCejFWSUOri$>bQambKALIOf7Y@G4Q1Bv=-3 zEC$_HKYbvDmA;zfNVrUdB`+ba_;M2^B<(dP<-x6MclI}nUqPN}Y_J1Kaa|=OXY>+p z7ZFT9JB8KYNDB|jCAhLz@j5;-sl_C~$s`sR_cL>AUOzO`O-lYk+(SNCwF9C973U<@ zjh^uol8nNQw!QN)$vC?1D1m8_CcRm(*rj*lBi)NE<1QBoIl1! zpd{+n5O|`*GnQvuRGd$-9v_;|st(C~J+`zieXo7$z^8taR z*Siyix*}lbX^@U8%I7vA0PK4U2Tt=>lr;r8Abg(ll==GMopL0<>p1#mHLv`5`LKPH zOaWL;XED8^^P-$)L8P)7)HOp{ET^Hd;fxux-#4mVwp%9es_spS0@7D45=IxLD!4hdYUF|*%2pegFd zX^=4pD|b%0adr4KW2wu>1YP^feD4oaLrS6GaK|~0_U6Z9v&qSl8VF>xCUZ$ZeY4fY z52{YIl!$Mn^N5?VERc?;aT=G^3qViNRh}LOdrMX8G#yzSWt+ZiQaPzOkt0u^o)mYL zQj+4Fgf-cGr@HxGne~vsbpGRQBdG)Xm&2_2%+42dlJLS<_{p-V z(iVK8MYn~K&LU_@K6b1GkwqdewRS*9csZM%JN%^<7X?#Nl!t^M&L?@*L|^JE8SH`T z3YOLxA=`=G2sISWMVqT5(G*oDeHqBY>>mQW)eEUXldPx0K-7aP>Gtkh1vF3_)Qs!( zS{be4dKQodvyEiD1~koZbbxGRxLYD-AJ>;h;~qYoyfQ92k_4ovYrJ=Y_~;s8i%{vG zJQLXND_Lpatic=w_Dso|fLvp>a$+WXq$3-Zz)I1+V=JqzJ)g(Z#(nRgkwJ0(m+5tw zTnXirt5zQ#W+r+gD@`2+PMOS!u-}-}PeJGCBI{_7F|x)ZGf@K)bBa~vGo~P{3mlIw zw;;I`^QnluB1Ibvf|$F!vgx$o&l7{Iw+B%;X3GJk$Y1rnQ$Gmc0o>!#)#7}!OZ2BH=)b625Nq9<#F)kXp(9U$^0~e9t17{6iUC=mN3>$<$=?t7CR@PhTq3JM7_y1U1i3|vB)3sUB}@ktk;4%=-twBOG!qq z#f-RB8l&9|fevzeU@CeHglAXZm27*AdlN}Ey1C2y4gL1;e-^Rn!){+zI%(M*a8eV4 z8^kVS{mn7JB+no4yV>SG#J6rH_k_t>!~pRc=!UTuo#9!Z2D}k zAgqxkMR|lClO(h{E=dD}Nwu_Ae(Oj%^3@sjcxmeC$th&ApN;kQ)h-_ZcMI{<@0J7w(b=ulct7>k!x6J>1P*r+6; zygF$LzXOSmprWDMP(LjaF<)et`{^Q%il7)O0bAL{h259x>f*^%`lW5}T_vM#k7Q)C zOe3%2dZV7jX3Oah!BZ_xp+Nc+b`{f@g}MrQC(a-aQEaJk9D^@;K0=qxA3HmSi*Ylu z;5BsR?>vr)1Mym{W~WrkSx!F1Sr=JCf~eW^D){%qaL(ogekj&%tr|Eh{oL_mZ*$z# zZj7cVJR`Iz21?ckw|?V)wev-|7=_70BpEJ_Bx5>WGjJBVSZg3}vs;N-)w3p*6Sy0} zsebQqC$Gr#rM-w31Y1qKn}TK=7kVe-$3?H3^@+G_Fyr5qF5zE$fCIc9zVt-l*C=fR zM{Xh>2i-Z}o3WNT`+FeQe}V-U>px>ZLe3x!U4;y`;sPPR#T~yNtQlr)3&j$M(d1t1 zrprCv&RtRHwHO7#c=7L>9@z!}dv?qVNYQa#-<_Pb9yAjy1%5}7v4F>!Pe>hmUqUDxAK;cVb z;kEHq-0@;x74r2>|23ly30jdsYvAYizESKn(ivWFGOsr1a6;qrPq*BvYXAJM66R3S z4R=P15TwtjQ?Ckz&Q9|1>@FK3n#qB4j~=?aE#BkT`n1{f+r(tIIJA7M@$=@I;-8c& z#<*l<(h0G)lp~isBNoZ2 zumB<3ZWEN7iJ@>0v|Pvb?C1^gDN|vnnxflR7swZ8YvMCWWqfEj*zg4xDj(Cttf$<{ zPJoao)RyHWOV; z4BF7@+N%4(lJmC-X0f;tVF8>JuVXFU*LPgejdntqx+!jSrhmbT8-hhnvdqsa3j<2} z{oke}!p%xqHC53!hSc^XjU4e)jh$f;`KhI-1*CNXpn6~%R1dqg=P0TxB&_&IMm{GJ zKSP!SGy7l&6NSKc8{h4cZX(|MA=lb-N(9~8R7C3gdvl8U8Rm00@wkQP=a@}u(3|;} zOvGUl{GlwJ>?q5sQffsa3QfeyU`o>Qb+5+uO4FeP%LJkeib&d6#wwsg(wxJgol21D zn+8}+Niw0;dc=y$1#{pXugeDUW8JS{5gUi4OBe?29rQGPdcio_}Iz)!ZB z&n2L72AcjpO)!sIbj9EqawVBVj3`&NVxWf~4()qyqBm71Ub3wJDq>6iBz1)hsp1XU zA8#WB z5fB*|8Kv&zLcGHbDl`D}mVs$r(orHu(@_()IQk+E0#78P9Kr_K`rXOX=}O11&CWb- zDtQ8?aE=)4fQXIYF?Xxm7E9 z7bqRS5Mv7EkRP2pt7DOFN`+`lnQur1NR2*{d|Dbm0mIK%;1O_~u5D_61_?ml)GDGwodUvWXJL2S&ap_~kEoo?Vx^u>OE zKRwTxT;4<`CWvLDF=A@P^t+9%e%7g*xB+9V4sojIElQ$47vC%khpxOBwDyU(bFTh|}dQ4n(K0E`h2 zFvX)O8iivE)L;k1I%w3V$1}>nr{v@5|6~d^gjP?jd;rHb8!R=Z3|9Z*s5`yntDfHN+TQz4;)~-K? z3jyLsL>2Nmo0n^_7}&@WQ;tb26-K$lCH(N-p*#h)fb-ERefjmxmo_~|oG@Lg53M>$ zhb0ZeUdKYQc=i6}KQrbzNH_Vk;L~cKx|3r|c&cEV?{ds03+fn;;};U2S3$Qj9|*+v z3fUtagyXVLatvpy-Ld=MbjnRBY-?%Dqn`!Mxfqr-LHT^FO2IcWDPVKRE5K(p`FC4DwiZhH{~)10+93^gE z1jw;WtUFAP9a{`d^g14alGU=Q08@4KlEBU|fa_Iq?3vZMIlaFz(}3Jw;Y2DnLu85~ z%3oOX2Y8D>;Fw9U9EvN{bBK@12nsGw5{ijFG|X+2*8{uuTr$(wGrt@A{Qg&lbBwd& zZ?!ROw?di8Hn@n5UZYY{ek@v4{1oHq2s~avOBFm7m1dyF8crA<6%B0sumGG0YQn^< zL)w!T3jn&1u(T$Th`!tG8BpZF^2>7;P<+O8l_k7U6BWyxyjz{6mNO=XNCAdU?d)QF za(f2A3tv2WI*+DK@x7gb`6a8xT1-;ImigsP7v?S!IlSaK^PXjs%WOk z){yd6`j0Wvs2N%g-s5bYRtGD;`*jv{Njzy_w9;z%KoOPA^2Tx7!f|2C3{Eb1LBCd8 z*hwXUq=!jO@Mr|0n|$XcPv^Rj8kMZqPXk&%*{J0C`}XgqCwJ$c6~Cv$?iimf*+9Cc!UMkcQUT(X0zmtkYWGQ1 z8_ahI;BvX0FfYm_Kl<*$t5OlJPX@u;8n-7{L`~dLm=EO0Mdv?oA=QO| z%iQIOgYCWU*5Xct1oZj27dU^@vCCYMCRHA;VwAT%#no0jvcwL7Cf7`Mhk6B;i>X@1ZTHnL%(_@do80`gF-yh`zQ8#*A1LKHlSB84? z0gADHr)@z7aoaiExEF1tA3AKMckF-2^Zj1lTCaBybrFXqe`O#|FBWll?m83C!EAUx zUwwakcr3K+pLF~YacRSX>=Nc9<=+)9?M(qwc?G)3s zZ9DkzgiZ5uF?rUq#Udl`a;!(5l^3wOY6}0;>jm8s>aXG43lVh_&4Hfy939kfS!=XI zL*HcR$oNxNHJFObA#DM7BHKSRZ5x(We)+XuB}Q4CB)nMe3QmLURW`!TDR|XB&RG&{ zN*-okGJ^H4IrXpaduA^W^=Lf4@vOv#x?~PtGVEe*%dc9;Z76%i@F)A$7gzACM&&;F z`4utCprL8<@{HRP_r4REa(y^Ro1+J2e__OO8(Ml-7o&rVv45E7SEBE_Lc@2UqkL=e z38j#ECL+y*(pXB=XAaimYlqOY`mQ-3TRnIkpz`WD(#Pzj3^|GD^O+9=h}+J(xm?G& zkB-jn3V8Y79tA1#bE^nu_@BrXd!BCJH*Wa~s%6;^gYHg+!b4{dmU5&&_IQR(b??7{ zcr?0>N4$JhmR?;2UCAZW^xaU;}TeAj|#H?CE{9Zrl8$@Hq< zh@^dcID_fNW0yB7ivquW2Z1%*`348Ol9}@XM)aZnw$37=W$3y~%$k&ZE!xTov+auo zHkVG~fk$^0)#2&Ttdzx~E;sGGYR^l*n-$&$iy-u+;xfZ-`$gmpCR!^qZPl+Hv$>D*Bo{QYvf)1e{buq|uZql2u^)-Jakb3Zcu>oIK#Zzv?E;>Sf)eKWzW(EEe^eQn zJ4sS(`{m;y=uxLXyMZ`3u;H6o335I^xZe#qzJz40`Xj@*}fL(7Y|7fm)Q8O*~o z6(QC6zui6fzb(IBl?=r;Ks&Pmh(9nDcjf75fdbgL)~(3KHX(XIY_%OXVFW2tF}f&U zgr!2bmq$qxzxyei#*@$9j}~D?7VAOgpzU)FKwme)anh*w8goZ{$o0fwNYA6I0Eo6z zBKL_?_yM}tSh@C2C#uem@LIvMY{c$na6Arl^m*erwBfF3%ZEK?wXv)aJf;70NiTEw zuqr~c*!1J!+#u%b_@$lGjJmG1-O?sxzT&tATE-t{7Es z0`umxdLhE9a_jIal?CLNcAt8&(*Ek&0ScMMV{?lVN_g4oUhv?S>tV} zo2&>ZmFs+3X09~A)}jGHdZxn7Q2a#5sJf<7v=G7P={4=<3QBPt-i1*_WiK3N*Z$(P z8vKT}>@tJNO);}B#ogFfN_JGu_$r2y>-pK%=`AHOE)SMgXD6NqHk>}yVbAPR(W9mF zuPXlY?;XhpDhS-Q)f^hxWXg@02Gt79Vl`&}W&^@(S$)MO2I*f&gL^+E`uy5H=tqD3 z=0WWwn`nH71Itt4UWw)gAanX}P6Xsl@4z==O#%`?lKTi*Ntp9$wL zhkDn1XRf${!NnR}CP!@G^^#N-?a7k69L)mPic0x6C?pQ>*NbANvlx%d;=%|#`Y~qn7lkkK0g8^Enw&Knk^I1eHXc!w4drkKOwy4+JIel$J=GDR3fKcJ`qYFr_GB z@m~>qK5BKh74OYEEx2Ud=_4O?^yYL9(X4MTf2NBL z;--Lh-(Z|g5(XV!p#DnYDXcH&BWB*&<({+`MsP&l#?7|FpSDZ%aaQw8D!r5cKMpXT z1&z9j8vLVs`6omya-=|ecf&)prulv8xTx0$m=69CtV&R*9hh!n&T zz=Hp|<&yXfQ59VFZdado@DsIQE11~^=^$MpX(P#0)}M1MJLk)4^0Ydul# zv_l2L#q`M0&Uw=4h2P_3oqWb@&sO`nDAA!BQq7);4<*X_PM{b_7Vwke^8a{7L}Z5F zIGmLHN%Y1{iezC^lL@nM!-bXE;jOX(Vm20pR}ZX*;t~d4!THHQzp-6jThlXm*Z<#p zBchcmpnftb!O%p{wlTB2Uot96cko^E(ECBTX=dqJIyy{Pq%6(Oj0$4j`+-HO_U|*2gLN91UZFI-rDyFg=wAsKyyH`|C1(5fN#u(Ia z*kV3^lF^QMvnnc#m43(<8#J5eBXQ*CjSQz}vKzzD;?FA6ma%`z7*?noG};no)b}e4 zNNI9>?pEeu9ako=y+IVe)$Aj8O_g@YiF~a_g=TOBYHU{ta$X__ToUf8ZC@Z#qr;8_ z(X!bt!wZ9f?Zui2GFwmnWOX~3VbyKRCrNyg4G$P|F~zfy`VB90Fd+Hc(0CuRzClgT z>my*(;}De1|4+eVvyaE=WSO6$bFZenT%MM)aeAI!?KnROL!SF6SxvcMl4nhEtncCE z7$^DmEL~n#j@3 z2zLJdvrVsD0R=J$mDRQB{3f3h_xD3=A}^Ru{>By++=b!_!sQ|v2wxF)jslVFmx za62sbbsS1!mtPbs5Q)LJ{f=0~o6qHBF(%jd(GmM3~M z8iXNqA@;Zd@s$Z9_xxJbw5Zb;OtbatkZPBM-)O$PnoT#lCUskAT_8CL=RdwL^oPRn zzNwh00S+vB1tidh8+M6N5q(L{^}do5xSrs&yq@F*8pjEzz5=H5EN(?AP_FztPO3W) zub;1{=PGKtF_`NC6<$2eygCpit+JDc~mnI63CJ$JaYiQ|f zkWT%POZqd+hg9Nj<8=$Bsfg2VFdLQM|Br4}C5bMC{S4vp$buIrOt0Rs${iKJqz}Yq zd%iTc?q16XYMq={ijUH0|3W|a zlHULLR5G`9$HpmvlNl{TA1U4~r;lgtC)M-C3IuiH_8SZJM=b&?11ry0X+5~4)nR%b z2Ps^(t6VE1n4~ekf5{w9<(MJ`s_AR#d*Ia=*x?EDZUB-h&HRTb0>LR{ur}y#um40@ zy2@F0ISN&KNce&Ki`-|lcOh&Z`|6ROXUyUvv832S9Z(M6BE{V>(HmRne`8(v%MBBD z>PZ0D3VYw&ks}AiX6YFe&(m)lvAzFGcEXO#IoK$vT+?|KS&8*{4^h#$vot-MYhV4| zkh=8S1lvdW*t+d|>{=CettXKHz+%^S2~0@Y;OfELWW5yIykbVuE#f4)gGunL_$DBj&{ZmmFiT-;I9uc=G!v$4|8@fu zz1;XAd;~j#i>YGy0!x&0`Turnu&>+U?%`T{!YNr_)AzrFQTyP>CZNd0Kp0eEnH<)7s#eQa+vZ& zN^@nZidvj^avRKuJK)FK258Lo`1!TvCTeQVeMX3dzLk#zv?ev^LcL1H*~8< zw*hPaxr<)sZFFa~0~j~Zy|{5kTY%IT9C+vLfyha*RA0>xp@F#s_tce@`3UsQ;=>5E zKY!Rr85lH}y-T8{)zN0r9SKbR+b{Y*9&pVzEg3Mj?7UtKU;G6j5Lt0Vzrz2uRT9}aaC z5Xq+z(O2=GJI_yBZ}<;0Wu6Olrl39c+<-z3Ece9kRxs(MD03rRwD5y&-v~VN{!#W) zV>%l<=*zbHbkFN8>#AMHnZ*D)@1JJdwb>C0KPF)5MZJ(-vh)m<7ybAF$tOw#VA6%8 zfPq?|zcrme!X8Tnf5RbGHi3lCBd5uZ3Yi>GIcNX)PKLrKncQO^+jBR9ZvSRY^zC8V zsHrIXt4iVeTje{n^w&zCVm*d+Y79hJYW{Z{*3OxQ05V`V49N*FbrQSMV2+au9ky+O zReOQ1*T<9kt6n5Wp^*T(ZpU9btl=o8Bu9LdC>+=#Z_mzc*4Bf6vFqbLSH9pwx&*FD zsSe<~OnA0OT&TCu&4t=4xKXFWdx*VlU}OXi^5P;GO~jkESJIqDPrRTlQ6q;P8V#R@XlWNF*~l*#8< z*m+LTg1M(bZ{PFMd{MmK23yAk_FV(JDsn$IeDViJoawL#tGjM<~a1fcLEU-B*Gl?R=pDk zI!WPGJG4&@k5*&J^jC$FM+#1wKhcd$^9{QgrScY2V#bCmeq7jmRKENbbtucT0Z?=7 ztwnI%RpD!4EFRt-KlzG)%rVii!`$F;S{0N%CQC8bfj8%<^oeW5B5&DipcuphutpieiolsT27M}4j=D7(~ zhLf)KLQbP6oj>D4?WK1kp}*bPA|K?O7&OdFCotd%CglP@B9@6oxhzMFgM1K1hXkd3 z8Z$Wkn-`rgIRaKXN-wez&KXu=KkvRSQ7cxgIV0P{PSfGb<84xAk% z*qb>io{wV~#Oo0uC)jf(p^!m_rmnFlhe-_L8u=B^ld6MXBW{}>GRkE;)m&Y6@Lnbd z!&E;>Bgh7dn_)*7jQ)qn_V&Ti{W1=mY~ec_XQ5@G!VZFuhi$*4;ct%?@kJo5;B{=0 zL}veh^g)g7Xu?tPJ4LuDl?2)d0{W;7K)E@NhYERS$|*APDJVB;gp;IoCTdRAy$aPJ zBvvK5KO-Af;;zP=*JCS8RrPa7v)aLY%nKz-BpzESs|TyWYL2C>@ZBhZCzPn3?Q*X2 z&j{7|Di7aCA>jT7_Ev1TEh|G9KydIx)0*^gDQ_^rfgd6(zs^U46?f-~u&Pg|9&sHj z$GK*-*)$YS@TV^SZ+BDx>DS*rmV{qJJrPAhLaI&gD?cTf`qFIuW|D{PRFX?Je#YJZ ze6*Odw>KFEcSDpT>B2D}qAar$)8MX!YhbbrRH0}i!#8{wka7~@3d>JQPh|#X?mc`I z+Ns8*=^xHEnsbO^H^>N#I!BG!sL_9I6uyuegjKzo8(6dO0|sS3c+PqPjy{KtaRY~< z2vA}rM_iRRyd|!U-d)#o<`uFYb?d?@4e($mNhyDzZ4Hn899XuY@sBuwFSav2k0Qws z!vs3xO@ykf>L>`t=4IL3jq+_Rjp_&ydDzGC$RxJU9a?(1nC%6F!M&FGcb;5&EQ&|l z{X>?WpOEq@q-MIwThzSRS^lue zziHwVAxT0{rOn>u$i~^-;^M`cID(Pw+lGd8_5KcZWZyJ>arZ?a$XC^T8=JIjYLIy|Dl;n;Nh+eZLSm)YHWSt*+9uI9}S$j*WmC=F5q)A)8Zu6|~$dmQFC$z!`W zGG44s#h6wssd*#UPt<9%X)}E!mBp_espLaD+7GHyWb=+Cg9A!k#L{LL5_4N6uUo+~ z1g+=f$Si#=Ph(dO-j11$XzfD_wA-OsFL5H7y2}6=Tou~JQWh@$a z**-Xt=PtS5)X5xg2Vs_oRNP}*2h~pv-O!dx2Q7fh;eb01RPS=DdX1R((YPsC1z@O= znYNznv;;Csec=>X_B-;DMOD&5}jLCUJB5|YB z@Az2KV8P(FMoH|`zq57gaMeKif0J2stVn~$U%eqDZt9;!d>#QFu?Q^zyNzL~LxV-8 zQAVywk>97jYw76?-$qx8lc8!->e_cT=~0a7G?O}jWsRbmZKrdEk72!6(gH5|)!<0m zMf1DP3N#>xzDyybO4Ub`)`!gV7Ibs5C(8jEJgq=C%AtdX(LcxAN*rQzC__gH)aPSu zuzf%WJZn^OLO*Cf2uZq)Gq?OzTXr|)A49A__ri^g02U+8W5T&5?+m{qjaZ_~Cne9e zsqV{x_PtkD*)2i62z>Qd1GMg;6sDmg`4!U%kG9f;lW{A@^y%F2bJs7?&e9Wdz z36hN9P=AdjRT(n8%Eo$(pDtpp@zr^)O0#o%vyFNA2GD_HAw5X{Kw>M)6|77Bo8!t~ zBVUI@N{S}Z8=_XQy(pOQZ}#f8p<$FX9Ha9w<4l1bfiR!2wADWf7^fm|{O2z(1Ka0q zQXb?tiZ`fC|C%18bq}L07w#}X(4J@6C}_J`!!|ATlq*@Vig9x?#6Es|-A_MgjBv)! zUyn7N(>#{XNU5fx)2Xi`7SRXIZKWV@8+Ib7eZ*AR)h6mxBFZC@_D7JS7|e=xWDC>{ z>cX*H$Ded^p;p+Mh{Q%I+=ebzwG*eJ8_P3j9<)Ab$6Yj5ZvErPpF+UdhB4*V?MH=C z`vpANPGZE!Ty_dWEmRk{9OotdmW)Cpbuf)$obz34Zh&iFo-%P;rjA+Uoh6@^9veBI zL%w<=i;r5JzUJ{4Wn##qgu_!iHP;-)Jf`xyThIccW;GvSKu~X_3-n^=Dn+(al?YDd zaE~bI8>aBQV8W-Sjyu+kNaFJuK2WjcWmRS%Pt4)5FQTy0hf`vK#y5L4Jf1qd0J@}KQ}h_I&GgxP8xyNRZDU_Eb~-gvKNC2VTeP#)Pn zrzBvG+}|e4 z(um#qXD&uUk+b`ssssBwH0WMmf(>fg`rB%?sL*PjSS&{?Gng`iX@FKLlkhdJ2ao$J zX8O8=4zkJu72-=b#-IgJBV08$r8**od}&a=*}EY)6w>#P7<_{iEY&sK0OmUKWA|J{ zUgO>fA(+bJv>iBC{1w>A8&sZ}7BR*3VPFPh7P9`Z*8cu1E>e}Wxt%)Pn2lG#R|M^Z zo5S7OMMLK2Zhtu!+bldD3LHP7a#S!HVMgcgp)VZZx+28+B8!HvfsZf-GNS4YHv0rZ zG`3~2R3xY{G2eaJF66W8lInf1Vh($8A{#uynPoLHi3kGs9W!QI9WT}7SqxHZZTYM5 zyW@R;AC~p`=6pP|O5xZJNXv0c0E2NJmIH7C)P}6pdKpQ%?Qn*}hLYbNoz$le$yt*9^?{e$p@j*w@EhjuzKVcbRwV6oHS78*#0fEQtzDj3|6MIIq2&0`eZ zR!$u|rI#2w4w}Dtk12HF?~O@vSa`Ydp;MmJzH`BUP954hLt@`8ZtO}zRe?Rpcwg0Q zTy{499!+oe5ka#OC$ zzQedsA|&lJa=C{U`mqrAbsAK<+1a3GV-PsPl0Q2$=V3t(H~hS#!EQd1jV`)v3gHNL zb715?HR(vHs!_ax(DtdZ8eP38CM5P5zNg{63?DPI(ZW0P0Ba(5Og#8=*HHpjiiVE$ z0nBKpWX!F357=;B*C}5#-yEnwimj3>q%8t)*$E+#UpT4IqVwwXfgYq8rk?z8kL;b~>2+C0VCzw75pzvVVDmU2d+iZ9G!k1*R4AXC2F(RmM}?y%PtaX>8>+sx-b z8LeJs32>Fh)N%N*1`z);FMg0D`C#~a;23qiA(o1gY*}f{At71o(l*&48VXOIyC)`t zhoQD#bl$sdQJakb_NQ9vd3%9eozrwi$*nc0yIS}3esh8?u&_6|3aSpx?w0Tna*wEC z*)4SP30x#uGIda;s7VH?CEg}1{WRSca=<2gKF)Ju;xYPr?I1(0N$q|uuJF-9(A)pC z449jESi3D2Nj^3c!4-f&KU+^#;KKIHz-2+BK3n@9%PuvBY43=Tadd#(+6)cNX{>$udX?U^(=V@ovlSP2lHF!9njkWr{7>1V_V; z^dbSzW4f!D*&7hN&a*FJ{FR1yU<{$4*swHevHjt^@7Q=(ssjn(Pw+wjh9cDciK*I8 z57vtpR{h+oGwkublG`eZ6VU-{Y?W_E1)y$^z;Jc3Cw5J(;-irO$TsS0%J1_^%yA{K zSoS#QZJlskG)oR+ZT7#2{;+?2{>{3^+E0%sHFKkMd87t2%s;gHLIB<=*udNy68hV+ ztX$WbiA>JiiuZ*iUxkrvE0pZGviE;W2$cSXDCgJf>-rjah(~ zU?)X2>DAuenIwaD>?J|*IENCM1D~fqOp5)cSirE&c#o->jYjt&-HVxqk_*N7lZ3}t z!hD)Sk7pL9De)478AY3*6WrT=!eR!QeF4ux+6UqP(tBcC1KjLF0FO1>meFzQf~s_a zvSPo630Q0MH^_OWIJOwTeVwQ!iTtPL(nZisncD~5@?W3<2l9gv69qELx6c)$P7`oA zJ#}G7;`ncHrTxWNiH;^nkVMRZ3^_vF_xs`Rio*P85U1pDo)c4y=m$^#l-ab zOijMBFo&E{Y!Ba?v@8M>Li_xuiWtWEK03?%;&aQ=Hay(uBoy2_959*<+XSF(4qNNT z*m;bZlT`hxT|AB4C?gz#vpXoDd=+nl*_2MdwjU02fyS}?p*O`zQfGP16~;*QFx~gB zuEluq=4Nc_kpEP}veo+h%tQxRJw7$uku=DNO&7(vMJ{1IE({UGY(2s2wcV zJmP%{T$WiJZC4~&T<9wqWiV}TesA#I{j_f62TbJ-u~%X(v9lc!4?@8{zw39wIs)DN z2FoWR38&BR`6$jMjZqil?Mj39V)0_Ba4T|;2B6Ml>WMkGNGqQBb{b_ z`Sw{GW{w!K%KS1W1uRH8jZ#53mTH#gokR2GwqD@XD#j+;5QzQXc&25*IBbn4k(*~H zv^FwMqNwk0FQ0Cw5sOlmNK&ff58zbA3`34!z3-gd2lVyQ2`IV9-5lROi|(*X)eb~J zUGw^6cam3rcQJXOyO|j_%5~J(b=@w`W}4FdSpO2uO13)`>AqsrOg_&x*H|6T;q^~F zliLeUquENK0&pfzw%Yt@NBgw&pt(wW*q*7nyaZhCF4|laaH8Gd4yTmElatEP>;s&d zw@pbwFkh+lCH1K@#m_qFUw0xeQt+sR;ltap4CSRwXX8VQ+5}ItwY3_jiU?fdo^}um zL@F_fHY_;78Mcq+-ZD#i7hc3G#@t}he9>F&D%O{)0|1 zY{5W|FL0uv75=P@DgZ%8%Cw0*If~9F{H}Y@VWUNaN7xTi^Sb~Z3`Ty@dHM(BSonY8 zwPxfmPj9bcYiC@cu|mgskCxRQXMD8>`12+I8ChnNnNrpmIt_nlb>76G*%z=(GlPKC zuZT8rVNjekz9P`i&>7pd!eJX2?N}ey2yz6#ThRdz*M|8JjWwWh??pHc`bmNb|R`*qomW7*(zr{Xt zler#!2B7xzJ$?6$y26&plZflNA>T2^DpZ?!rK3PlYJeX#S1tOtk|J{^)PAtbc??y6 zl(0~>6!)CAq5C|J1p)4r{D5J0o?*i(?O}^2Yx)8ynPCs_5K{eYJeenRMG}tImMj;A zoB=p~aiAr8QKh2hH8n|6?{%X2p1t1!5PPjzOM4L+HGE;QLy8VM4M9c%H25R`OiIMZ zK-}2$&)S^EU(hMIGc8^?EgoAH%9#D)<7qCgF z;ITxHBmX8GO&Uo8Kn)qq^yx^r{8!`?Puvt0?fzs~0M zi)e~#H0Lp;KjA1n+I@N9+gJ~cz8`D*HM|4?VV~H`?eRHI^o`6O!Q~teJF}L2oD$0H zPOl5zqx%j7*D96{qj( zWe!Ch_0bs?WZcMO+*RvV7orUN$a>jzV{~e+04#2_<~87X+SK>wi`hSETA&o>*!Lyd z9}NM||G8Wn-1K-=7vG}X<_|f?{wV;GiTiaQ(|bM!v91IF3NSZ4lm2M{3SE}SrE^v_ zKmZorod&r^d5AcdjggzdRhG(MmJHDx5zl*W&-)_QvinTyIa-oxm9q!5eiZv2DqGLK zD$F^euo#;B`(;Hfju{9AcJGnd5~HkZ@J=lRTO0Uyyz=SQo)5yG%#eTcdO%-IA(JJ^4d~D)sOmT0Pz~LS`3F#b|w?_%B>NiJ=&}S?yKxssAQ3B`AEK`J43Hcw_Xu-uY3F zDSk{*IGhc}+$z2w_LI!fA`{E9t!J-V@6Hr?+oy6Qm&x;E*1vi(F6C@_>hn77t#2vv zVr>tf;uDG2H`n~3;4gXp;8w1&Th)~M*OX~R+%oi<{H#$7tbG;_9mQCwWSr*+QgIe-pfNmbouKLEPw)La3;9g+q zHdaRi)Wz3@cEfWNQdW^2pf4Y{d4nkco%ndHZO{i9#`wd1f9rHS9dK>bQ5QOgfVXKo zTPq)n@>%kV!y2M0bC!^X3S1-_ds6P3lYo z8>;mnP^M1nBh3v61p>S}S83p5mWGw}S-WN9jJm0Z)4@3uv* zG7yILXJKh2ec0y~iMfPlK1B=djn9laXI!AV`wdUPu14wjFv9*4>`sE;%&3&>NZ@lf zvC+6fJ`&uY;QV+1csVvc4n}VQzFoeCSI2>tt0;=nL|+p$bDr?g*WGOpd!~=yWLn-{ zOo-nm{4Bz#rX%-%9o7zD7OdHI3Cq3>aASgyM$Y?^AWk~HWeRB;7u<2K^WDtVhZB3e zUs-W&wpbW5*3=%td(;^hdP}3R6;%!h|Ii(2k9s5He=HIhEBG}Zdbja3i_!6xSR>Re zCUe&F@%C&ZsQG0`95AxSIwN7F(gj8RAhRjV`|Bj^4vi(gW%pw;Dx({lu3qrB(se7$ zM+oQMQNh})xW4<_mD)Y9g?2h0JIjvcfmiQJX4M4xUB~#ZG~i#G)>XnAE_l6I&;=rx zJZxZw+}~k%am`qGNynP2azKxq%KM+3Z zGC!xxL;YkYfeX)^ayN;E=eG~w&rall3haP-x-WmDnJ_t~TUZLw$kHH24GOq5fV z4{tb3;O0@77X)T(DO!AnpSa8E0M$%&2U^TvG+zHB8AEV#mvL?jCRLc(<{3QvXS6kR zbX?<3L_pOgTP(09LjW!~&|_h-C7VGO?P*Ndz( z$;}Q5#gfev8>ubtJB*Es=_t#I)B(#oOo~}i)>o>t?mf+Umn}|9hCHWDlZq;&w{2&N zxyn4h{5VnHzE+o`ObJF<~^ zK}Qqs9|a9(^{=P|T-sbrrU#*|2zG<}KQA-TV+@ zxwgkz^y0db>AIUGytwm%;a&Y0DvQV-ddswK7V#|JZJW5;<&jNRzm}C(T}k z+XOQ)sWLtY4CrM(?@e<7zIFRgxg{#*-QoCfyrQ?CX73G!dQo^r{9`tduob*u$tzmW z1w1GvgN(YK!9GvvH|5P-Ml)hKhHPV9;Y;qcC(V6&zox&r;jh; zxvhblue&H%vgru6N^Tilipr zkiwUbtoHt=z-6GdUabi`^UvCBNI5%@7+>WnTzTD3VRiql#f{8g6;Jm` zp(Z#sSq%P1aTH}CDm?yo>;$^P=igGeA0weQ(}BOmYok=YCx^*n4~Ai4sfw$MC0GBz z#d^<;B`?7+`g%Cgb$GrpX;)9;nuIra+(>|=&5Oh1QJm1{Cl4M8ewlOX{ zFfqXB>TC^Ld=oUjnZvo%#pfoF$V-9z~b?OfcN@XwRfC6w|P?xpcUPn)CXj{*=c_ z>)q$)y{On*q~SCM4)S9DWh%dH)#qpRSn_kn^Izn#YkPliR`w8E0vdPyq(G*p%fa*W z!;KL3WM!ZIeCaCAnR0ysy~T>GFC3wvU(iUfW%_Kh90NsU2kl0N^X54fp_0Sl8zoI7 z^9^i*2o*iL)z7y{du)&{^BKP4&$Ls}PwWwL7V)!)1ovlQu4O_6CG4N~Vk%;MF-1O9 z>ISD7c#-9)J-fWHNPa31NpD7Y;&1|;w0G1QFXjDgHlp=(vy5P+6OB=_e6my%PHi3? z1tm&KcoTl{;Lp|@x6?9yShT_2x9Kb08F0Awp_*xy!U0=K3kPEsZnsXNnG1a!^}ldu zjk&X=?t9d zV%{|tCm<4W3o~`f;X`@?SoBv}55E)J$yr7tyI30|ospyXUiR-h8cmp{rUr!Vx+X@un4h@NxpHOb)D&x za^=JMM>L`tl%Avn?IssNQdM>cGQTT_(Q?pfH3$_2M70DP4ZcsTI z02jl*a-oGb)~FABPzz3!H5JB{Yh;@YlZcF$p{s{o{wC}BS&wvDsNjFoo0_kDVIYP|%Nf?{QP25G|$ zG@L``!CGu8_Nzz69lqSqI0G-`gr&N1?NZeamQTj+qz$C@-7ok8OPD~HEiDaC12`3T zan5(#?89pJXcBt+>XPSc{se~&NB2@P?RpRgR|2H_`HKq2=iYG`B4=Cq;0ibF_ZSsu zxsl&451GG}@DvH_(X790LpyA-E#Kw5hxFnh)D-)qkF$C063!Q=k?oOol8WO{>BN2j z7X10KGu|^a;@l$*xtp{Yr+`AT-UjK;l0ek-6gBAGMB`u2pSE5ll0Agf=DT#JiW`-N!xZm#FHBDM75qJZjR|0oMviE8L;V!nMz+(_>e?M#%jf}?HTRH?)q-Y`9x zwkg91MXIpf+RY816P6oWZg;6*(BBnIvjZvqOJ$my0!xAJQ&h zWCM?!{1lqedA;=}{(dI@Ly?+HX)DkpO3SIB^>Q`0bZUe)f}~$J1?#tHp>c-vrI*(u zym3t~uMj-dvA1#Qz~h?zb=Kw6{h3>d+WPBD^{=TD@X&-zt|%eI|F1D zS~au+q!?g5u=XOwXb)^5=?L_450BWBYMl;n{g1*`$nWje z%+r44u1h<1BP&(l(Ivd`K+ds~_svUV@iZc?6bie1?Drk+s7=+Kkxhfre!(SHt({*g zT?c&bH~z+oDn*?chFQ0&-!Vq2W3~vPy7z9C8yN+^eGYmWH(&wN({v8g$b@^`1M$^l zo@p|Guy&-18~DHuZSq*Y2$%d$&55MkD#;o%1{{UDU*n9H|E#l zOqk8&P^t4Au@_m5t~YMEGIF_PzqDd8;i5?9l@`eF_Sa&h+vfNXDK;fa6!2%+!MUfy ze%)lGPm$&GH2cef4D-6^vuFIUa~A0UO1AkB`!i?KA%Ckm%iCc5+9hZAcT>otM|WTc zxPYGFMRwIp1~U+|2g)NOP#_8&(UGxc>F_ls@UEIV-*La(Sc&~+=0}jb%CNt{Xxs98 z=)(vsfn2%$JPLVVw{PyVQfDkPGL<7phJr~B0FAhA=wQFHv8Y#m5cO~#@(~@#^(|)` z{OUsdFYoP{4i?_!X_8iq{y{L)mbPd8^U4nfC@eQx;tWR<6-k5Yqg9E?$qOz{o5N!- z&x&z4!z^=_#kBwzKQx_Q1gvu6G6st>ijJS+6EdRy5I4n3l6dgb)njAhgh^&v9nOl# z*!g}gv^?W}`iVTt8CzggNyWge2IzSGk>BgvYMkDyf$8y>W$yu>9UdyhzVt%G7k9VWPqHi9fC08T1cU0e)N5ei~@int#v&|f4m^!Frg z<-(&1(8q;LRA2fnk$wYuByVHwLBUZrIvDiS47+=~mTi9tl`^SQ zpz+OF?8eB@cI?#m5sd6bm=X6|em$9RXk-HFF*9S%T%%4?2aY+=m>bxDjK9(0##(3h z!#;JVWy_Z&iB{>VAXOQQK8YCP>HhrlgP^?arxIl-4c!uu2&jhE5c`MfMV59qv3$<= zC;S=0YzYFh4=v4b5~)cN={^;M0P+I>8d$>^p->(njc)N4n0*t1L#^d?cg|^KeAM_w z-`J2bg7<@V5MibXDA|0*9-2fbX#4)v#Td4a4`&{9(r_AXlAg=OKrs{-{&Kohq zp@A`rNhYrP6BlHdW2ThwHJ{Pn6?j(AGIy;SvM-Wy^s8;U2t6rVuaH-BpNAlW&IubE zFJ>^UoA00P6JC?!G>uGL&wQAgGQ}Y9&e92b4Z~d5|z}fEB7RPeKLy9@b{khi(v(oX70HoS@-i37`$Im6W@3_A>{F7h_yuvP0KN@YmScP%94 za(a+6L3wl7WH$@-%ZPeXv>s+LM8;FcD{{LfFg9ZXped=+DrS(8 z!8(=Q1Ohs>MbD$9t{{m%8Do!tq)YV*eZ!ZGzYE_i(17=xQ>AqE7EBe=Lt5fV|CrCV z%eRJS@aivea`QB_P1z6T^ZWj28Gl~Ao$-KN%m%hUosg;DY*OWG0B3wo^?|gnMn?b z9Jdb_{IRsqNP}-43b_t)r(&wH(vK-yLKEaI+lNfFDvvjsFKORsv%!*`7WKZV8ggm9 zWs9lKBJyE9(!T%T_lYtYjwg|llT#aj^&9)eatO!Ug%f1~Y)C3zRoV>_j#5&v;FWHt z%Ic4ikM*l`|Bc9dauaW`Fc@zj>Ki$hJZhKHTk!Gzijucf^nTs@rgglWHl+mG*1b83 zfG(aGpQ;fd6Zc9o`6J)Nlh)`oGWLAl^4BOLwPZfVNMweZM|3+r@~U_lQ4IYfR-xp| zv)bo76M4}Ja|)zJr?1ZV%gs+7Y7Fr)1?#P{-0F`U^{u)3LCgUHj z4ve}&HcHhi9}ysBy~SSnpDJaUg7uSc0#BG+GVv_WNKYl%p3Jb8gTw41RP zMX)v(*AgvvZ-^S`vBxwccY$Y!+JW#ToJ&aT{q@NG!RbXUBaLXZ-Gf$F+C)3Gd+gEv z+t<1&8oE_0A}sqL-Pt!~kcc$#m1xwwH#RoUB-)fu^V-2;dXf_v@RrZpWl8+=biVBL z9c9ZA8i$6RT@4py^$U`%Fi8l1^n+qP(q1nsWWJot4K)WUYeMF5D_Z&T7Ch_Myn*0I zo50;7Ry)-&T8ChDzO5~O3DX}F8SL9JP9MmUR4o8J)cHReakf}bY6)b{q2M;Xg~I!3 z7SpTlnLH&(mG-CZ;1PL!h*D=&<_@INSZ%`?^P-op#-s<9Xn1*+%Z1>gDhwQRO$4ww^<-||x(!>*eE>m- zaEW3BIwR|*%J?vJG@&2Hei*T@BL0c>@drbFyozbgB+)KG4Pv;qEoa0%#d-<6Nlu^# zE!n_x(FlSPayVb5wz$UBmM85KsptWXCyfPzC=37F_l@!Kanyrcia(%p%}%hzCw6V? z6H_8u8PjgVlh0)8;~^e3FsP_H+Q#m>&zqYyp$#x8`{S*oUv(HVUR}7)8w;ck)PPSJ zbxIYq)*

z;71e29k?|T>FWI=c%LSKMTD81ot=N=`B@s#?B*QW=4y_V+Yq$*(C-? zs^s1dfJlj@;HMeYbLKeHRj(d2r20rQlwIq2fjKH?)|3}))w)$j)kyzYS^EaJ8w zC5X?1-SPx6Lyy{H8g%V>`;&s7-e<-@#eA7L=k4}B(iy|3Js&;5~|MbYvCdGf7j=={`#I*!~?Fy8Z$NtmO}2kCXiEA zoC5+vdCmt;>O5@1Dyh1s`?jQxeg`DKVN9$CG|mxFA;A1?TfD&0t^4uKNMUN$kgJmo zP;Hn0O1f?qf);gBrd)zYIj(xPMZy8jztENy`@FEBrpj!^>325#teNe4zAC;n!r1dl z+)=G)uUp!h!Txg>i?RS~rrMQ+vdO4ZD@-Mlv&BC z)lb-mtBpT&$h-xWppbMet*3Lr+_4kQe22eB=adAB$7)eq;k*#Qa&|Kk;~aH-VF9S( zvx4h4!9%-#I;6CNT`vT_7+{eBL8!CvmZ9R3r3{dsmLZGriNMf9N=jByhPUy@b%<9N zuTqcW%P9z>y5o1^7KtRFAScfoYt^fw1WqlsCfWrWsox%QzPsS1Km;IYn3Grxy|?rJk`=M&O)+ zV9e>=4vEsd86$rScf0F(xd8S-8D@fszy)YIOIP75PZhd@(0)C7!e7oZ&wvHHloQ0f zKCp{i4-b#i!wnEG6%4OMbP}%xIhA;F+xcT?&>#Jh`B&^bL5+iuDY>dSv8*;|S}_WZ z5nTPlz0C@r0A*+6&sG`swK8Fhi>#f`bS!JJ}pABoMnfFW78B$3WwEGZa`a=wHf zNDWdZ@0H5n+xYQ~aFkvfh8@OxR|v3?*JHa713 z$qeM|G;KN)j&gc*FPc{7PCbL3t7M2r)MU|4a8bubl;LSyB&6d;6gNS8WlRp>1vLE$ z9Ds#98+TPAjASUr@H-W!9tC7?5C(iY?CR~^F{-77CvMoBe=RAm z0e8AzGa5I&M}0DOUq?iOkm*e>s$V-Rd&imrOCe6l0(r6SBuEnVf}VIxCC6m3K^09N zsJA8-#_o5JX1i3SB$nB7Prf?q&_9j>f{BArFT?jS7^vNs*w@LQ z9CDLlIrIu?qAgiwN=@ZbcjzyPeDyfU*s=|NUnB?}FXs~1LxN5nMBz*Jo}y!0D{mYE z>yd#t0oKi(ix?hNbQ4Hw$mAMzR76Ku$*qV7gH5j;oX3eM?(E#)w9?ohOA^oUN@TOz z&>JWCQEL9`NyZO}M=|gnb^)x}38jz#_c)4~M$*w)DLEKoJ;EI`Cm|u=U)2T9LyMvk zQF+!FhK?C_9}cbW%Sp-b$Yhzb%atl4A&xF`_>hq+{kS&yf_@hHYF z0O$ND^p`IzP2a_YRV_HURn*jYG|bA~#!~3fu&|04-YaCCe`?c)LXf`dwymW|4x*Z- zlp{%n)EVGhpum`xS!{NAoSJnU1Du}A(QSopqvGCxUfioz$WMa-sH@P^&;!*eb3Ist zV7LKAB_$@i0}+d3L0IAnT4Tv8=$9LJAXO~kk(sV?ciry7v%DQLRV!RkS=flJjgY)u zE3eHDO869mp7xtj+L;=oerX-f6{*X`%HJ;>uo`0K8p%z{8CSVZUojtJ8^Pc_>(9W! zd%=`yI=tB}r@y+qL}JxOA44cfc{j zlVk)4rwOhGz|b6h?Toj30+KzSBhM(IgSSL3XN#g5QFhBNc;uaWFkmWtoZX6kAm}iq z_;NC@7(%+$Qh5cRG)rC|P_HvqlGB|O!W#i5NGfJ0kOW3;;!J2wP(X74w2>Btqu>TdwvYKvywx9MuKhO@Y%+~KOQ~R zZ+H76UtXW50*!);dZ_UCph8j8p8)=!_zFYSh~YGuV}=EJ(P0~=N|`iU-XL4v8&=~` zHKsS`U1sI+KCGmV8G@@U2$*9C*~{+FF1%VN2He5dSdxaXQ7v)tdj~Bb*9)0vTCXfs z@;e1Zu5CFE&FCbN66J#t$mJa^VwnuSF=&$%Bigx)045RFP~BhmEG1OMnfMWh)x6O% z`B43Y0}){zp}$IS=TRmC61lzx{Q`M%?0`t(=9KEcgoTA~B)`pFEB5zI>9kv5C1VMc z3Z;ESQ*7ll2km?0(7b+OkZqkQLY$*|f)t%23gDE6 zUuR?;$Dae&h#bPCL#|P(!H2e$(eK(lpwaI#hUhyXNKw)1%_m=WFUn^Bxj2wgsbl|i zWu#iIzrpRrI7?P(*eqOg)jsC%b+oon*qQzwV#a0gz6xx>nJHRMd`-$BjAYq3veg-I zcIuwOC_8sP-z-q2o;@!Q)+_$c|;>o2e^1y%CHn$YjLut`J zp2gQ;^RBFii-bJv_9XZkSq(j!<*U5&!JZ2C9B-#DMlY5rbbbDgLI^fC_DhVYMX5Wo z^Z6>4w`5X7iE{=Pt-9erI9jPecNeMhE^YR%N`cU6dPYWMGOhY<;4PyfD{Xd+H;A?$ z9vkCr1b4o0Jo+*fyVm$K%xRJvn7Ai|YDDeudj}SBQ)N(z1bX22Al*;1Lb4ljFV0PO zGSHS-0Ye$D9;Teuvoh|D!x}jSg>hdn9GAz9DKkVLVWI(1$9dD5s!L%dt>}h#QLX6f z!&9)S`Z~zvc;0aXw4s)elfyXkg4;)6*eWX})w4SoRckheZ6+j=w(g&xP68cVRstv5 zLrD9ZbITiJN!LlP$Khvi?}3n*Snz#>2E+FUZr6+T2nB&>NRTH>8|k()%U9)8b&ISJ z1K(%y&IJ8RZFaRs7-DZlJpit5)z7~HhhG>)C$sr^r!7UX4MK3^4IRWbPY=xK_#xo1 zQz61qk;F|+3p1GOM6f7rfMfsCwn=QXxu_|dZSkePT&tW8v)1JJzQFl?v|rE> z_<#`+R;XL>}wU9(qDEJ`+IGz`~ z0Wdf2z4q#VY4@*Sv-GH9d*mBE3gxM(sh@VE7%_QXsW_%#Y4#D$lVi}_$abm3w}UW;r(?tQHDXuq2yIx=r@N=4-E9vH#}Ye)t=b6j-Msm z+mm4F3CqbHMfGsY)9r^*!TGd4tkdkBYWD+GLNMJFjUljabu zKw}ZcdDT)c9L5fVhaXGlF zut5aMWeDlGHjs`^=Ccp9aEf%S?2S&$oN{}O78~<}JYdmf0c#X(XL!F!gSq-d7^+9{ z8Nbj(<-41OF&6_U=rsDAtC)hPQYe^S%D8(d6Nucm!N~1!?mMLDk2>CN#!fv^4ku5{ zg$fO>@sIeYx`+h;A z$*R?>Y7`5b41kaSXHy%r|JYn>)DLaF)kTPe$JV2DXH3!#N|!RRq3azRV~ZDwk&{5> zQdmo*zZrzZdvd@R1H{6RExJF5gR1V>sXUPJ8GFDuGBPsJ4f!$nBtpBYX4?%O{~}dB znnPk@>=uv`aHdj+^U6B-QTSobO<~_mb5qkoBgF?b^&zkB%_Xy2)nc?dNsY!E7995c z6gTj$^%v$3XZ3I}BZ}Y*j0|^Y%XhQ{^h?@KmbN=YI{+m@w-z?z=d(^M=UavKXudt) z9xc(Bv*T^+d_WJlXtxs4)~D(pb^0r>uYUzTo=n(jcUYtks}s6e-W>T`vYy}{kFr6# zgyS;m1dJUON(G@?YD(v#t-7ngffI#l+L)A#`*`?-lG zqS?W|jW|8mh zF?3!WMnzT;4-~2;ro*`dB~q&Y*w?7R#sN!88b68zG_RG0>D^;ffB+obslEv*3 z#zb9JcXUdGli##x3E|OHlTIN)tIwwT9LUAQ5@5YU8fB5%?B&$YHFG-}P}V&UO%EaF zI*ZDkBE&L3^e5p=j}Dde3Q+NJ;s6U_J>1ayJ*#7rN-77->@2# zE_EW;`of2Ezr`8llfw)`I|ZEOUlj> zrG0LgL-iF_{Oyye>Z85%i;VvJtNd2WqYxDv*Q>SI zV0V9H`4-@@GuoDOGwDUapD>EA%%X3y*F{6}jc$51 zdnRb$x~1#j^(zXrU*1m}%pv!9ZM$STZ91FIH6kl4F3z`E(tlbC9+4Uwc1<>sAy^-4 z46$LEfZ~CdHykT=d9vDI93E#-Jiz+(oi#47`QQ<{WEaU$oEYBe`uq*WVNdX-fOcg0 z8OIqYM@BS&BWTU^Yzjb|M2C-UDf*}#x7QOHR7(Rhl2Gknm7EvXa{mlr20TB>44*C| zD8%?cFX?$=3wYUqGg!Leb6iMkj3!uNx3wavrSWt#A2asV_7{q|Rrk%%?U^yDBR=qf ztgz6tJPl%S5xRiW?L-6JL~StLRUgnO>yAi63alE2%TBv$^oJ zJz?SC+a6WpJZB(wUk1n34bl611XLOfN*H}c{d)q4IL&C!*iR_ zWtvY&3}R~dHf0b!BVi350=loxchkS!LtHOZG&{J~^9=L)(rWYDvu1nSF?X#$ z!K@akf`}P)GTI9G)g}Q1wOvyCv>Thv7s?-OmZ9~N6>@WiCL<)D14eIkuH=g!H!yf? zHZiw6IWg|q!pl#$cxojM#BVq#$Y&^_UFA!yTt{_z?$=cc4s&K%O7XQg>Ebh%9_sk> zQsH735e3c*kLH*XL;36*^BLi~6?&cEXTBS;;m7W5Rtwli&Xz$>!y<2W&u$H*nZJL< z8qFQr9Itk98S2@d~=+89vmINR2l*U|-9p&-GetBEJ`J!FmamGknM#ObLeR=nC73)oKaCdtX zWIjyhb~o&E_7*&6{-#Jt|8wrvM-k*-m9wgAZvGv=_S4xd)xfv4P4#-~^Mlj$c{KF} zKL{*i%baLHfp(LWgB{ohbvxbsla=cxE>GnTkm)U=nQ1Sq@pz>S_hbDI;~@uD@=v{X zfx0qXT`W;gu|YFQlQx92^+xb!Am_XY7ZQNOPCLp4-&c6SQ_lXwLr;lb0DaB(6>3X~ z+Kum(L*LsJvV2z4>{ty4<6<-I{SCqWDs)U~!2uB__GnKwaq4AZPch98y!+z@zs}Np zJ^y{B6c?w;)cU^7K*^tq?Z;}Qc>^JwA7+#7GhwUuv!gnjZ-L$0yxb2N8GE$lb|+T# zw=a}0b;L*0{IQkVeSqXeBW1y5qjR;b=Qd+uQTY1q7R*V zC4@{jeaUar=nL6f>bs}BIqJK2r(sb{)9=01b1azS5s)R+En(>m3onZQPST5(ArX^drvKn!eIi(V!#5ZFf0M4kC`eK9Ab8 z1Y-8&oM9I@J)Zf0#O(}M96sG`IJ6vQAK5GiFxyQI4R^^oTof%qENGLMtzh2qS+F*p zXU9dev(C8m=rLTyb+Y4_T#}kRUqrQ>gp@H@h1{@y4R)VnH`n-I;vGu~aRwY!qH}H6mYSc4x?W2d#}4OGEU5Qr4#tAT zd^1ptKG5FX4#YniE2AL%Dn*+SUh+4#EoyBKO$x1}l|KE5TJaPJo$78+XR5agQYB^t z0!W5oTt8wP1?_}hu`TkAepfx&0xyR}5q}IpRL2~L*QyTbIQjMHLA38oKjc`tdZUrF z6ST7k^evLJI((>+We$%l+1-t$@wEwFT&%+wD7A=AK(R?_`Cs~Ngn6b5?u=Kx>utlt z_+rgbu7@GX2=op%3+yKj1sHL@6Bqk1ZAALrZRMD(6KWW~hT5sECzECO%84?lK%!1yQQq$?>D4LF6++LQ?aUmp&|Et5^*C0jf*46?e_=9ht1^ zGANb8FIHBPutMjC#NL_JwXq9XMx#6GczmKIG)7WHFwh`QPLLj0i37GLp&x{$<2pB9 zmeA+(OsKHiPTU1_dfXCfvw$dmPm_^R6*N2@L-}(zD3iJ;CQKqvG@`h}LBC41*DGBe zZdzdO_;X!;DdBT3QYPLM55>(x4Oiv~&BGnkZ)VCyPIvq&7Y9hd~O|l z|NQ&-p)Ia{5pvrDK)y@xdYUk3ro(}y?cpM>*}^BbpWDdNT|zB`JdC6YyW3(GLg_G^ zf^;^Go3reD7<)?T|OYD6N=qaV^_Yl?|mC zpL<-`0aukLyluyUDQ_j=!YwMWuP@)MOLTU@p~#-xH6)P8D`4jo z?Uz4*-YQJriZZ|V5g9=)dSeGM-_Fq#_o>thcIYbx z9dPg(P6E1{s(O=_40^C|nt-*Pzpq{p;`T;mJaZ2Phqk|t+SGVHm2>QX)s#FKtMr3(X4VJ*FzauMGq{n z0iGOIM55o1HY|lbT_EUr1z2u4oX?iwr{q4NDWga&1Kl$Xohom}Z51f15hJh_tBXj$IZM*FENZBD2*R;u2Mxp}N-Vk%+q=p{vf82)Sw@<~DuNf?)2%9nXK(((~gG zPVp1VQ3L&o?Syzb*Xo?Y9MpUsA8g`<9!{^~qHQV7<-Blm=(S?hH=vFC7vrWo`_nDg z^U1XvcJEm2ZBymLC%7X+_+o$fBEuupjkK7P&}=e!u5s8(bd^cl0^GS@bln9Qx+`ET zB&riI9Bj6-Tkd9Qd+g8_DkL0b)exNktflt1g~a&diqjI2mLMBob%5^M+kR7h7*rPj zBxo(5=^NlMC8>x@3%%y+LCJ>u^4{QOEKsFhDswxr1MAi_G;B^ll*09#H&{K(3L;BB zkwAVcZj0kBJVGH_)pX*+n!E1i2JN?yuy#Q*S=)|;pHrgk!$2tYh=i^fT?QNP+?9pJ zj-~_;yvf;i+waTX3aGJ!ha*?IOn#*IDS0UD&cGbMt*E5>$=*s#-R_;AbRWLt>T>#F zL~b!6Ki4k5Xf(y3<8@mE)NcB%SYEl1uX1ArUUo38?tox=z2W~SOrPiZ zmc?j)tVvxD56PPbNr^gU*EJ62~3%Gd9=dG|Nq=Wp4c%FP8XDm1)#$V58zh$u0D zz|V>7=!AYd;QbQvK<><5jSI2QOx!+K7|hQG-o#&7GQi+|MVaL6&=RZS*;XC5x0K{) zKSV${bmOo284vj?=~vdjHwt);1o#+oYX`vx-zE}IJkqRLaxlW#4t%Dv^;83ycZ@fZ zCBt9@KJPHz+ujTT9f+T2wiY9RYPK1I z<1rukH%C9mQ)%QYZacS%MAP;E!_h~;Q>0!GEl7035JN4}_sLXu#!gWmwE5zYMrfZJ zt|I>(8y2rVyBLbq^D|xvOh4WzBJaw4W8)|~FOj>~T&19tltG8PHoA)q6^TmOs2aMd zT%j6X2~_G2+qrm^$hC>0n4gRGgeBHQUEyAvu`K)bJoHK=$K$MVq9E%Fs%1CjIuj(E zJtUdkZlVCr8>oD**C_M&SW@Y}6)vAF2OqEIi4SAkNufH*cm={6tD3^E&}x5{L{xYn z9iGW?aL4n~$rzWu=HrEQ107!8XxcYSO_#;n8aMubVfjL;I8kg&QC>OmSp+XUlgSJM7D^}YGV@m-pmO=l(^78i9 zMzZviz|0~YC9(SW5{bB;@OH`F4*5#7JdVvwN7@BcZu468L|uFIoq-?;3m0W)IUf&n z?5d~aH^g|!l7-^jPxd9_9zE6si|9%~SzzTcaaj~4&-xtS$%bJsfMQJ|IU^fVXfQRL zl5JHiCcE|2MOm5o<=eX7j#Vb&6yqY|jkAYdj-mE`|#O%4_*5ho8I{PT}Pja>~t78???QD zCI1_N@85GUoZbH}b(R_E&@7nS*ILNldJr|9emsvOnJ-_-#1_jHoWLlj!IZVyBwT3{ z>Mcv`hLV31yPe1|aRppGa9`((pDAXXKFjpH^&R&3`?Yq!=i2XzTe#we=yzry z7W4~~DcsYY#qAq_9MVnRp044MI?*mLc(i$x>|tDOo%tMrjdUIiehP9KJHuQ`xrU1j z=_g;Y?20*EquV}h4~TDXN@#pG3t!dTuj0?FxmI}(eY!_-$py!1ulkz_j@U2>hU!hW zjA9S)oA8F`Z(Xa$>+mUEG%x8FM-j>%8)ZC9=4rshL1Sz>< z)8(A0Z0h%}+t2UG@G|s{)0&-QMnxsUKb|iN&yU;Cfl1UVsuB^mgkvXQ)c2b$4h4H4 z2kE;%%A~;mQtXwTNVvGqU!m#FWq8)!HWi%EbJ-}XgJ$!Ys-%b#D4m=PfEB|nVc@SV~)3qO7K3I$p|vq zSLnXwkqw6ae%vGcLB6vURjwhs{4=A(_>$w}v%>g9KOrVL$= z&AASt@miX?#adTGkyAR6lrr~1^)C2uJ zOJp>MhESN&4b+F$d-QklfaU!zx*xjpT(KO0)jS$cJnXj&OOaZnBo(4|Qch5(*TXhb zB?fOF*}}iM_0vKy)(A;f$+<_8AbE#x3#B37R)@#96JkI#%ePro-qZ(f$6Ew6xu4Z5 zK$iGy2Sl}>3!?8l)~@3su)x~rpyl?@FODZ-Qr03^p1+$(65ag*IPW}g=>!o}fH4D= zCZ9o%IMw}fsm_WrC~qP-N)i8qTQ?skx9sHPLqJ(*FgkSh>wn2b`0nC9}i7J=<4ujh{24R7cgdvoJ?l#_qG_3f&;aiH-BU?Hd zi@wOyuN0!$xSZUDIxegUk;lso(HpmR` zxvuj0t_-=f((?QN14(zk99S8ml&X68yJ68YG;KAwZ|Yec{8;ObHmDh-$##HyhyU?y zNM0w$2wkyhcHRiMYkO3|x;pu3ncxJe zibN?7Spn{wgeDWphuL;TBh|;32FxY@R~l{|H?^Hv-@LI*=i6(LF**iveda8S z*Z0)7x4gzEhBhf5vd~MJy*iOW+}k0=yyC!P#h-=q%R7aLzwkLjTA^%}$dE?R7Je)h z2+~IAKe5EVI>^#h!pxN?I$k>NTlVV_#N?OWE(x)|IPv87qe%=!9lJ=- z^ee?ghwWHSg)Qd)QFmI5tE9Un<%`rev|hoJv-aT5o_l8|YWlm1{{^|`TCq<0k!Qgs zP1>(YN<4ODm~wVT;{yXnF9w>aIEvInG3H~Ld;ploa}I|$X$5F$#gHn_XdlK}3nRsY z2-!1z@RcQa{YK>Bz+zSz=DWd5g_%^2$%UT=!tehGVzhd~#_T9La1~?^lj361Fwu0u zXRz5>!D!sa?C@3`PubHo*OsbJP_Gyb#1)ozT$0JlqluF}k7M6aUf&fuCSA`3TAM_= zRdal$uq(X9GQpx1f59lhEP}LFsD6eU8nvU*RN#U$db79B%Gq2A8%^OvV8o6D;IvUX3Z1T|c7A)5{}Ifw84 ziw*PHSoKMvEGE6+HDp#{sMnu~WYyRbHU)?1D)$Z}O>1!v|LdfwY|&TRY>2_NnXKYn z8@n(nenHXHV6rx8mdNBwNGWyscQkEnjQP(`o0 znQgzk!v-+8TI?NpEV-rhdW50`iSXL*zc6kHU<>#$owTBp4VcM^Z?L8zUwXiZc7Na) z6EI2OlgC|&M4QUR9ttrdhZEeY_PHSIA*xEMiXhv+@*ssX){}+S_OHD6ebFJnF$~i% zLa|3L%7KP)$Ij=?ObH#G1fvHA{1jFg^XWQPsb=EfKNl(D-#oNXv*n(fV&ew=0A7^Q zUwc( zI~GcRMOE;PxP|Ty?O)!d#*O2YIClT4eeA^^rU1PRchOlK#g! zK;qA}6|yBLl6Yb0vT%(fC(NLgFLdEV0{SewbVln|g{dS95D{UXV#$aGrP`sOe;xoy z-(ZWPZfOKHf>a@tPaRYBYVKow?uZLlpF$oQSigGDF}B0r{`~3dAPSMn3u6jDex8z5 zDIltG!4_;BKni@TbUqi!f!H~GJlNaK#1VoH`=PHs>t+NM)*S3|dpMDM8B_YF_a5<^ zr8P3Z_yQ3w0uH3|r2Vn5i}2WBf;`PBEVSjD8z*s7($Rq6f_ybj#>}iV!tAI0a=9!2 z2Un`o^S;LENIn{mJ+kXjuQXMhCIGWOA+C^d^n9zE7(_s}2-m)I8IqTZ=6WmYNTJm0Y=Y}hX+=7lkV$7)I2x<5GY{o{%B)XlyvcnE9!3N z3k1`k;Ns^toU3HuS-`ea%XF@n1hk{wfbZ1>{)Ljb;6t?VrU^pGwP`D)3woAl<&D-v z2s9!XrE>RIvTJ0GR^zoeuvP+b%DMlJZ3r06lDdGa!glU>Lt;TOYUa%-IWi7Y6vD;Ai+;!{d5to!C%G(6 zpou7>S;ha)(FgvN2URzTp7d4K8_@xbOu^%XC}A68E@4U~HR}QE{n<1pa6_OSn{jv5 z%qHq=&GNl}PAt9euaTu~%)lA63$;kt?3GsE3iJ>hIxC7-iBUgu^<>;vT`9f&`S0gM zl?!Hc!@m^i8NRxS;-9Bg$Z1=ZTk!&VUlnfgnf>3F`D2p6-aw*UO5YMfIbnUt?4M(w zM!+6ptOe^~FgrkU7Amb7e@9iaxqn|*Sa29Ii&0is@u!$NZ=`Tv+<{BzS=@jAo_qvE zSEeUDnd~zj>e?7n9vc#G(a=o#KW7>ZfG}H3ue$u|S==B7m}>)FYew`oL%ITT$KGBr z6!*U>jP2c;`hj10q7-L%-Bmg1h#-rb)H_d$>QH=C}Iy9jFW)u2VFMbsk z9a+lPWA$2-37r}Z#2NkPM#F&-1CFYkn5#6GuT8<>mqbjeXRH@boipjyZ10pjL50pi z#q~t$Q9X$F8K(~_wqWJQ-+*ja8jwQwR$BLJ`Ezd*VXF({)+&JL&Gc!$iMqmVM!|i zg(Iv0rcr;XfCupPcYP!4dKA#x#&p$vIW4dApEG^f_Yl-X5ha&UVkS~d8TKSyGV9kv zXPeVx)0F(@#$kiWB%m4raOI6oX;`Ba@xKR^h-TYg@T0=R zVT0>@D^MZ&Vt{9k5pWUZgk)s2(b1z{B{L*Iub_Z#W*BsIbW|K1oJ4|BrU{?At8ds0 zy5S(moP?KmZ546%fIdC1Cc%i7?zd2Ov0VugVztfc!!N!CnO(8OZ{rHCeYCte;NYUi zYV9qJA=`&_Na&HxskG6wS=pAZ)ls1iM1yQke@8{F&Jv$=NtlRUYNr|R>@_o|t5cfG zBFX!f_w{bZ=K3%Y0p>o`KB~v@C6u1uCUF2nx)!FUh709t*a~T!(PWsq%OLHq4IP}o zcU=$jQIxGu|KvaFq3}2<2cax-%#L{(w10G@Bhj2D zk0jOkE{RT!J!_)wWV;LN#QMe6kl3*A=|K3!PA%gNwAdd>LNIkQioSN;_Pp{X8QBDh zX5A5AnAwJN!fG_=!f~(+>a)2;_H?->y1JVh=%xD332FHoeWE0;*jW_By2rJ>_TDW)rxP)M zjd(5x`n?^49QykuG_Pl4fzW%(ZoG&Z1BF^M-|v!CQv#F0gyGz!t8tRgBFypmBblH~ zs@r?LC@1ETZSU;)$IEqWjF60FGot$A$6Ff3R}4$J$3)_^>{07 zsKF%mNivz3(}vRs!nlsrj0 z44zKfBdUP&!!JkXLQ^BN(PdA}s40>~6sUSy z<_y_$V+6rM@;GXOhavn_wYqwiZ#)aMO#K~hqLbh$a#T1XpB12nvX?H7L`I+*=y>G? zN0o!q1ZPn&ZPqCPCBo%Uhj5`-kznSFV}BK}i7wtah}QPbKa820_>^ta4Z+3ZLc&UG zMlyzzy!67oMXy&*ckrWWKk9ak^jB_I-$k5+j7lA&mk2GGM(ZB+?Cx*WtN1r>qQH!H z$rJI%F6c-aAbYcaJkbLTu96@SS;M?arqwcyBhk{(j}yGfuO<6iXk2z+1ofWHS=Nyi z5r^n!;&Oj#WwS!#6@T-dWShD-hli5L-YhjYVt^Y;bh;GRdY0)E6_V&CQ7C)K{RUv2 z$RAS~1XoKbOO>uj)#?g$z+Y);jN<%g8R88YH-p{{9gEAw$RkbV>cECquJxbUH^lMldTNB F{{rj0lj#5e literal 0 HcmV?d00001 diff --git a/facade/elsdnwn/images/no-facade.png b/facade/elsdnwn/images/no-facade.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2b995be3fd3c65ab872173cf862624995c6049 GIT binary patch literal 37075 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 PbJSs|XR2GN{W$tRA4UC$ literal 0 HcmV?d00001 diff --git a/facade/elsdnwn/readme.md b/facade/elsdnwn/readme.md index 48773ae..6e3f514 100644 --- a/facade/elsdnwn/readme.md +++ b/facade/elsdnwn/readme.md @@ -2,227 +2,170 @@ Android设计模式源码解析之外观模式(Facade) ==================================== > 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 外观模式 分析 > Android系统版本: 2.3 -> 分析者:[elsdnwn](https://github.com/elsdnwn),分析状态:已完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 +> 分析者:[elsdnwn](https://github.com/elsdnwn)、[Mr.Simple](https://github.com/bboyfeiyu),分析状态:已完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 ## 1. 模式介绍 ### 模式的定义 - 外观模式(Facade),又称门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,让客户端直接调用,实现了客户端和子系统中模块的解耦,让客户端更容易的使用此系统。 +外观模式(也成为门面模式)要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。它提供一个高层次的接口,使得子系统更易于使用。 ### 模式的使用场景 - 1、在设计初期阶段,将不同的两个层分离; - 2、在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,这本是好事,但也给外部调用它们的用户程序带来了使用上的困难,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。 - 3、在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但因为它包含非常重要的功能,新的需求开发必须依赖于它。 +1. 在设计初期阶段,将不同的两个层分离; +2. 在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也都会产生很多很小的类,这本是好事,但也给外部调用它们的用户程序带来了使用上的困难,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖。 +3. 在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但因为它包含非常重要的功能,新的需求开发必须依赖于它。 ## 2. UML类图 - ![url](images/facade-elsdnwn-uml.png) + ![url](images/facade.png) ### 角色介绍 -* CustomerA : 顾客A去超市购买所需物品。 -* CustomerB : 顾客B去超市购买所需物品。 -* Supermarket : 超市,专门销售厂商的物品,供顾客购买。 -* Towel : 毛巾类,TowelFactory:生成毛巾的厂商。 -* Vegetables : 蔬菜类,VegetablesFactory:种植蔬菜的厂商。 -* Computer : 电脑类,ComputerFactory:生产电脑的厂商。 +* Client : 客户端程序。 +* Facade : 对外的统一入口,即外观对象。 +* SubSystemA : 子系统A。 +* SubSystemB : 子系统B。 +* SubSystemC : 子系统C。 +* SubSystemD : 子系统D。 + +## 不使用外观模式 + ![url](images/no-facade.png) +如上述所说,门面模式提供一个高层次的接口,使得子系统更易于使用。因此在不使用该模式的情况下,客户端程序使用相关功能的成本就会比较的复杂,需要和各个子系统进行交互 ( 如上图 ),这样就使得系统的稳定性受到影响,用户的使用成本也相对较高。 ## 3. 模式的简单实现 ### 简单实现的介绍 -外观模式比较简单,在开发过程中也经常用到,所以直接贴代码。 +电视遥控器是现实生活中一个比较好的外观模式的运用,遥控器可以控制电源的开源、声音的调整、频道的切换等。这个遥控器就是我们这里说的外观或者门面,而电源、声音、频道切换系统就是我们的子系统。遥控器统一对这些子模块的控制,我想你没有用过多个遥控器来分别控制电源开关、声音控制等功能。下面我们就来简单模拟一下这个系统。 ### 实现源码 +TvController.java ``` -package com.elsdnwn.Facade; +public class TvController { + private PowerSystem mPowerSystem = new PowerSystem(); + private VoiceSystem mVoiceSystem = new VoiceSystem(); + private ChannelSystem mChannelSystem = new ChannelSystem(); -/** - * @ClassName Towel - * @Description 一个毛巾类 - * @author elsdnwn   - */ -class Towel { - public String toString() { - return "一条毛巾"; - } -} - -/** - * @ClassName TowelFactory - * @Description 生成毛巾的厂商 - * @author elsdnwn   - */ -class TowelFactory { - /** - * 卖毛巾 - */ - public Towel saleTowel() { - return new Towel(); - } -} + public void powerOn() { + mPowerSystem.powerOn(); + } + public void powerOff() { + mPowerSystem.powerOff(); + } + public void turnUp() { + mVoiceSystem.turnUp(); + } -package com.elsdnwn.Facade; + public void turnDown() { + mVoiceSystem.turnDown(); + } -/** - * @ClassName Vegetables - * @Description 一个蔬菜类 - * @author elsdnwn   - */ -class Vegetables { - public String toString() { - return "一箱蔬菜"; - } -} + public void nextChannel() { + mChannelSystem.next(); + } -/** - * @ClassName VegetablesFactory - * @Description 种植蔬菜的厂商 - * @author elsdnwn - */ -class VegetablesFactory { - /** - * 卖蔬菜 - */ - public Vegetables saleVegetables() { - return new Vegetables(); - } + public void prevChannel() { + mChannelSystem.prev(); + } } +``` +PowerSystem.java - - -package com.elsdnwn.Facade; - +```java /** - * @ClassName Computer - * @Description 一个电脑类 - * @author elsdnwn   + * 电源控制系统 */ -class Computer { - public String toString() { - return "一台笔记本"; - } -} + class PowerSystem { + public void powerOn() { + System.out.println("开机"); + } -/** - * @ClassName ComputerFactory - * @Description 生产电脑的厂商 - * @author elsdnwn - */ -class ComputerFactory { - /** - * 卖电脑 - */ - public Computer saleComputer() { - return new Computer(); - } + public void powerOff() { + System.out.println("关机"); + } } +``` +VoiceSystem.java - -package com.elsdnwn.Facade; - +```java /** - * @ClassName Supermarket - * @Description 超市(沃尔玛、家乐福、丹尼斯) ,专门销售厂商的物品,供顾客购买 - * @author elsdnwn   + * 声音控制系统 */ -public class Supermarket { - - /** - * 超市销售毛巾 - */ - public Towel saleTowel() { - TowelFactory mTowelFactory = new TowelFactory(); - return mTowelFactory.saleTowel(); - } - - /** - * 超市销售蔬菜 - */ - public Vegetables saleVegetables() { - VegetablesFactory mVegetablesFactory = new VegetablesFactory(); - return mVegetablesFactory.saleVegetables(); - } +class VoiceSystem { + public void turnUp() { + System.out.println("音量增大"); + } - /** - * 超市销售电脑 - */ - public Computer saleComputer() { - ComputerFactory mComputerFactory = new ComputerFactory(); - return mComputerFactory.saleComputer(); - } + public void turnDown() { + System.out.println("音量减小"); + } } +``` +ChannelSystem.java - -package com.elsdnwn.Facade; - +```java /** - * @ClassName Test - * @Description 顾客A来到超市购买所需物品,不需要跑到生产厂商那里,也不用管物品是怎么生产的 - * @author elsdnwn   + * 频道控制系统 */ -public class CustomerA { - - public static void main(String[] args) { - Supermarket mSupermarketA = new Supermarket(); - // 买毛巾 - System.out.println("顾客A买了:" + mSupermarketA.saleTowel()); - // 买蔬菜 - System.out.println("顾客A买了:" + mSupermarketA.saleVegetables()); - // 买电脑 - System.out.println("顾客A买了:" + mSupermarketA.saleComputer()); - - } +class ChannelSystem { + public void next() { + System.out.println("下一频道"); + } + public void prev() { + System.out.println("上一频道"); + } } +``` -``` +测试代码 : -输出结果: +```java +public class TvController { + private PowerSystem mPowerSystem = new PowerSystem(); + private VoiceSystem mVoiceSystem = new VoiceSystem(); + private ChannelSystem mChannelSystem = new ChannelSystem(); -``` -顾客A买了:一条毛巾 -顾客A买了:一箱蔬菜 -顾客A买了:一台笔记本 -``` + public void powerOn() { + mPowerSystem.powerOn(); + } -``` -package com.elsdnwn.Facade; + public void powerOff() { + mPowerSystem.powerOff(); + } -/** - * @ClassName Test - * @Description 顾客B来到超市购买所需物品,不需要跑到生产厂商那里,也不用管物品是怎么生产的 - * @author elsdnwn   - */ -public class CustomerB { + public void turnUp() { + mVoiceSystem.turnUp(); + } - public static void main(String[] args) { - Supermarket customerB = new Supermarket(); - // 买毛巾 - System.out.println("顾客B买了:" + customerB.saleTowel()); - // 买蔬菜 - System.out.println("顾客B买了:" + customerB.saleVegetables()); - // 买电脑 - System.out.println("顾客B买了:" + customerB.saleComputer()); + public void turnDown() { + mVoiceSystem.turnDown(); + } - } + public void nextChannel() { + mChannelSystem.next(); + } + public void prevChannel() { + mChannelSystem.prev(); + } } + ``` -输出结果: +输出结果: +``` +开机 +下一频道 +音量增大 +关机 ``` -顾客B买了:一条毛巾 -顾客B买了:一箱蔬菜 -顾客B买了:一台笔记本 -``` - +上面的TvController封装了对电源、声音、频道切换的操作,为用户提供了一个统一的接口。使得用户控制电视机更加的方便、更易于使用。 ## Android源码中的模式实现 在Android源码中,ContextImpl这个类封装了很多模块(子系统),比如startActivity()、sendBroadcast()等,分别给用户一个统一的操作入口,简单实例如下: From 64852ebf5867d395c30b320d6b1f7b7645133fad Mon Sep 17 00:00:00 2001 From: Kerison Date: Fri, 13 Mar 2015 13:57:07 +0800 Subject: [PATCH 06/56] update some code style --- strategy/gkerison/README.md | 661 ++++++++++++++++++------------------ 1 file changed, 330 insertions(+), 331 deletions(-) diff --git a/strategy/gkerison/README.md b/strategy/gkerison/README.md index 6e45fa8..e3073ef 100644 --- a/strategy/gkerison/README.md +++ b/strategy/gkerison/README.md @@ -1,335 +1,334 @@ -Android设计模式源码解析之策略模式 -==================================== -> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework/android_design_patterns_analysis) 中策略模式分析 -> Android系统版本:4.4.2 -> 分析者:[GKerison](https://github.com/GKerison),分析状态:已完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:完成 - -## 1. 模式介绍 - -### 模式的定义 -**策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。** - -`注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。` - -### 模式的使用场景 +Android设计模式源码解析之策略模式 +==================================== +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework/android_design_patterns_analysis) 中策略模式分析 +> Android系统版本:4.4.2 +> 分析者:[GKerison](https://github.com/GKerison),分析状态:已完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:完成 + +## 1. 模式介绍 + +### 模式的定义 +**策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。** + +`注:针对同一类型操作,将复杂多样的处理方式分别开来,有选择的实现各自特有的操作。` + +### 模式的使用场景 * 针对同一类型问题的多种处理方式,仅仅是具体行为有差别时。 * 需要安全的封装多种同一类型的操作时。 -* 出现同一抽象多个子类,而又需要使用if-else 或者 switch-case来选择时。 - - -## 2. UML类图 -![url](images/strategy-kerison-uml.png) - -### 角色介绍 -* Context:用来操作策略的上下文环境。 -* Strategy : 策略的抽象。 -* ConcreteStrategyA、ConcreteStrategyB : 具体的策略实现。 - - - -## 3. 模式的简单实现 -### 简单实现的介绍 -通常如果一个问题有多个解决方案或者稍有区别的操作时,最简单的方式就是利用if-else or switch-case方式来解决,对于简单的解决方案这样做无疑是比较简单、方便、快捷的,但是如果解决方案中包括大量的处理逻辑需要封装,或者处理方式变动较大的时候则就显得混乱、复杂,而策略模式则很好的解决了这样的问题,它将各种方案分离开来,让操作者根据具体的需求来动态的选择不同的策略方案。 -这里以简单的计算操作(+、-、*、/)作为示例: - -### 未使用策略模式 - -```java - public static double calc(String op, double paramA, double paramB) { - if ("+".equals(op)) { - System.out.println("执行加法..."); - return paramA + paramB; - } else if ("-".equals(op)) { - System.out.println("执行减法..."); - return paramA - paramB; - } else if ("*".equals(op)) { - System.out.println("执行乘法..."); - return paramA * paramB; - } else if ("/".equals(op)) { - System.out.println("执行除法..."); - if (paramB == 0) { - throw new IllegalArgumentException("除数不能为0!"); - } - return paramA / paramB; - } else { - throw new IllegalArgumentException("未找到计算方法!"); - } - } -``` - -### 使用策略模式 -UML类图 -![url](images/strategy-kerison-uml-calc.png) - -* Calc:进行计算操作的上下文环境。 -* Strategy : 计算操作的抽象。 +* 出现同一抽象多个子类,而又需要使用if-else 或者 switch-case来选择时。 + + +## 2. UML类图 +![url](images/strategy-kerison-uml.png) + +### 角色介绍 +* Context:用来操作策略的上下文环境。 +* Strategy : 策略的抽象。 +* ConcreteStrategyA、ConcreteStrategyB : 具体的策略实现。 + + + +## 3. 模式的简单实现 +### 简单实现的介绍 +通常如果一个问题有多个解决方案或者稍有区别的操作时,最简单的方式就是利用if-else or switch-case方式来解决,对于简单的解决方案这样做无疑是比较简单、方便、快捷的,但是如果解决方案中包括大量的处理逻辑需要封装,或者处理方式变动较大的时候则就显得混乱、复杂,而策略模式则很好的解决了这样的问题,它将各种方案分离开来,让操作者根据具体的需求来动态的选择不同的策略方案。 +这里以简单的计算操作(+、-、*、/)作为示例: + +### 未使用策略模式 + +```java + public static double calc(String op, double paramA, double paramB) { + if ("+".equals(op)) { + System.out.println("执行加法..."); + return paramA + paramB; + } else if ("-".equals(op)) { + System.out.println("执行减法..."); + return paramA - paramB; + } else if ("*".equals(op)) { + System.out.println("执行乘法..."); + return paramA * paramB; + } else if ("/".equals(op)) { + System.out.println("执行除法..."); + if (paramB == 0) { + throw new IllegalArgumentException("除数不能为0!"); + } + return paramA / paramB; + } else { + throw new IllegalArgumentException("未找到计算方法!"); + } + } +``` + +### 使用策略模式 +UML类图 +![url](images/strategy-kerison-uml-calc.png) + +* Calc:进行计算操作的上下文环境。 +* Strategy : 计算操作的抽象。 * AddStrategy、SubStrategy、MultiStrategy、DivStrategy : 具体的 +、-、*、/ 实现。 - -具体实现代码如下: - -```java - //针对操作进行抽象 - public interface Strategy { - public double calc(double paramA, double paramB); - } - - //加法的具体实现策略 - public class AddStrategy implements Strategy { - @Override - public double calc(double paramA, double paramB) { - // TODO Auto-generated method stub - System.out.println("执行加法策略..."); - return paramA + paramB; - } - } - - //减法的具体实现策略 - public class SubStrategy implements Strategy { - @Override - public double calc(double paramA, double paramB) { - // TODO Auto-generated method stub - System.out.println("执行减法策略..."); - return paramA - paramB; - } - } - - //乘法的具体实现策略 - public class MultiStrategy implements Strategy { - @Override - public double calc(double paramA, double paramB) { - // TODO Auto-generated method stub - System.out.println("执行乘法策略..."); - return paramA * paramB; - } - } - - //除法的具体实现策略 - public class DivStrategy implements Strategy { - @Override - public double calc(double paramA, double paramB) { - // TODO Auto-generated method stub - System.out.println("执行除法策略..."); - if (paramB == 0) { - throw new IllegalArgumentException("除数不能为0!"); - } - return paramA / paramB; - } - } - - //上下文环境的实现 - public class Calc { - private Strategy strategy; - public void setStrategy(Strategy strategy) { - this.strategy = strategy; - } - - public double calc(double paramA, double paramB) { - // TODO Auto-generated method stub - // doing something - if (this.strategy == null) { - throw new IllegalStateException("你还没有设置计算的策略"); - } - return this.strategy.calc(paramA, paramB); - } - } - - - //执行方法 - public static double calc(Strategy strategy, double paramA, double paramB) { - Calc calc = new Calc(); - calc.setStrategy(strategy); - return calc.calc(paramA, paramB); - } -``` - -二者运行: - -```java - public static void main(String[] args) { - double paramA = 5; - double paramB = 21; - - System.out.println("------------- 普通形式 ----------------"); - System.out.println("加法结果是:" + calc("+", paramA, paramB)); - System.out.println("减法结果是:" + calc("-", paramA, paramB)); - System.out.println("乘法结果是:" + calc("*", paramA, paramB)); - System.out.println("除法结果是:" + calc("/", paramA, paramB)); - - System.out.println("------------ 策略模式 ----------------"); - System.out.println("加法结果是:" + calc(new AddStrategy(), paramA, paramB)); - System.out.println("减法结果是:" + calc(new SubStrategy(), paramA, paramB)); - System.out.println("乘法结果是:" + calc(new MultiStrategy(), paramA, paramB)); - System.out.println("除法结果是:" + calc(new DivStrategy(), paramA, paramB)); - } -``` - -结果为: - -![url](images/strategy-kerison-uml-calc-result.png) - -### 总结 - -通过简单的代码可以清晰的看出二者的优势所在,前者通过简单的if-else来解决问题,在解决简单问题事会更简单、方便,后者则是通过给予不同的具体策略来获取不同的结果,对于较为复杂的业务逻辑显得更为直观,扩展也更为方便。 - - -## Android源码中的模式实现 -日常的Android开发中经常会用到动画,Android中最简单的动画就是Tween Animation了,当然帧动画和属性动画也挺方便的,但是基本原理都类似,毕竟动画的本质都是一帧一帧的展现给用户的,只不要当fps小于60的时候,人眼基本看不出间隔,也就成了所谓的流畅动画。(注:属性动画是3.0以后才有的,低版本可采用[NineOldAndroids](https://github.com/JakeWharton/NineOldAndroids)来兼容。而动画的动态效果往往也取决于插值器Interpolator不同,我们只需要对Animation对象设置不同的Interpolator就可以实现不同的效果,这是怎么实现的呢? - -首先要想知道动画的执行流程,还是得从View入手,因为Android中主要针对的操作对象还是View,所以我们首先到View中查找,我们找到了View.startAnimation(Animation animation)这个方法。 - -```java - public void startAnimation(Animation animation) { - //初始化动画开始时间 - animation.setStartTime(Animation.START_ON_FIRST_FRAME); - //对View设置动画 - setAnimation(animation); - //刷新父类缓存 - invalidateParentCaches(); - //刷新View本身及子View - invalidate(true); - } -``` -考虑到View一般不会单独存在,都是存在于某个ViewGroup中,所以google使用动画绘制的地方选择了在ViewGroup中的drawChild(Canvas canvas, View child, long drawingTime)方法中进行调用子View的绘制。 - -```java - protected boolean drawChild(Canvas canvas, View child, long drawingTime) { - return child.draw(canvas, this, drawingTime); - } -``` - -再看下View中的draw(Canvas canvas, ViewGroup parent, long drawingTime)方法中是如何调用使用Animation的 - -```java - boolean draw(Canvas canvas, ViewGroup parent, long drawingTime) { - //... - - //查看是否需要清除动画信息 - final int flags = parent.mGroupFlags; - if ((flags & ViewGroup.FLAG_CLEAR_TRANSFORMATION) == ViewGroup.FLAG_CLEAR_TRANSFORMATION) { - parent.getChildTransformation().clear(); - parent.mGroupFlags &= ~ViewGroup.FLAG_CLEAR_TRANSFORMATION; - } - - //获取设置的动画信息 - final Animation a = getAnimation(); - if (a != null) { - //绘制动画 - more = drawAnimation(parent, drawingTime, a, scalingRequired); - concatMatrix = a.willChangeTransformationMatrix(); - if (concatMatrix) { - mPrivateFlags3 |= PFLAG3_VIEW_IS_ANIMATING_TRANSFORM; - } - transformToApply = parent.getChildTransformation(); - } else { - //... - } - } -``` - -可以看出在父类调用View的draw方法中,会先判断是否设置了清除到需要做该表的标记,然后再获取设置的动画的信息,如果设置了动画,就会调用View中的drawAnimation方法,具体如下: - -```java - private boolean drawAnimation(ViewGroup parent, long drawingTime, - Animation a, boolean scalingRequired) { - - Transformation invalidationTransform; - final int flags = parent.mGroupFlags; - //判断动画是否已经初始化过 - final boolean initialized = a.isInitialized(); - if (!initialized) { - a.initialize(mRight - mLeft, mBottom - mTop, parent.getWidth(), parent.getHeight()); - a.initializeInvalidateRegion(0, 0, mRight - mLeft, mBottom - mTop); - if (mAttachInfo != null) a.setListenerHandler(mAttachInfo.mHandler); - onAnimationStart(); - } - - //判断View是否需要进行缩放 - final Transformation t = parent.getChildTransformation(); - boolean more = a.getTransformation(drawingTime, t, 1f); - if (scalingRequired && mAttachInfo.mApplicationScale != 1f) { - if (parent.mInvalidationTransformation == null) { - parent.mInvalidationTransformation = new Transformation(); - } - invalidationTransform = parent.mInvalidationTransformation; - a.getTransformation(drawingTime, invalidationTransform, 1f); - } else { - invalidationTransform = t; - } - - if (more) { - //根据具体实现,判断当前动画类型是否需要进行调整位置大小,然后刷新不同的区域 - if (!a.willChangeBounds()) { - //... - - }else{ - //... - } - } - return more; - } -``` - -其中主要的操作是动画始化、动画操作、界面刷新。动画的具体实现是调用了Animation中的getTransformation(long currentTime, Transformation outTransformation,float scale)方法。 - -```java - - public boolean getTransformation(long currentTime, Transformation outTransformation, - float scale) { - mScaleFactor = scale; - return getTransformation(currentTime, outTransformation); - } -``` - -在上面的方法中主要是获取缩放系数和调用Animation.getTransformation(long currentTime, Transformation outTransformation)来计算和应用动画效果。 - -Interpolator mInterpolator; - -```java - public boolean getTransformation(long currentTime, Transformation outTransformation) { - //计算处理当前动画的时间点... - final float interpolatedTime = mInterpolator.getInterpolation(normalizedTime); - //后续处理,以此来应用动画效果... - applyTransformation(interpolatedTime, outTransformation); - return mMore; - } -``` - -很容易发现Android系统中在处理动画的时候会调用插值器中的getInterpolation(float input)方法来获取当前的时间点,依次来计算当前变化的情况。这就不得不说到Android中的插值器Interpolator,它的作用是根据时间流逝的百分比来计算出当前属性值改变的百分比,系统预置的有LinearInterpolator(线性插值器:匀速动画)、AccelerateDecelerateInterpolator(加速减速插值器:动画两头慢中间快)和DecelerateInterpolator(减速插值器:动画越来越慢)等,如图: - -![url](images/strategy-kerison-uml-android-interpolator.png) - -由于初期比较旧的版本采用的插值器是TimeInterpolator抽象,google采用了多加一层接口继承来实现兼容也不足为怪了。很显然策略模式在这里作了很好的实现,Interpolator就是处理动画时间的抽象,LinearInterpolator、CycleInterpolator等插值器就是具体的实现策略。插值器与Animation的关系图如下: - -![url](images/strategy-kerison-uml-android.png) - -这里以LinearInterpolator和CycleInterpolator为例: - -- LinearInterpolator - - public float getInterpolation(float input) { - return input; - } - + +具体实现代码如下: + +```java + //针对操作进行抽象 + public interface Strategy { + public double calc(double paramA, double paramB); + } + + //加法的具体实现策略 + public class AddStrategy implements Strategy { + @Override + public double calc(double paramA, double paramB) { + // TODO Auto-generated method stub + System.out.println("执行加法策略..."); + return paramA + paramB; + } + } + + //减法的具体实现策略 + public class SubStrategy implements Strategy { + @Override + public double calc(double paramA, double paramB) { + // TODO Auto-generated method stub + System.out.println("执行减法策略..."); + return paramA - paramB; + } + } + + //乘法的具体实现策略 + public class MultiStrategy implements Strategy { + @Override + public double calc(double paramA, double paramB) { + // TODO Auto-generated method stub + System.out.println("执行乘法策略..."); + return paramA * paramB; + } + } + + //除法的具体实现策略 + public class DivStrategy implements Strategy { + @Override + public double calc(double paramA, double paramB) { + // TODO Auto-generated method stub + System.out.println("执行除法策略..."); + if (paramB == 0) { + throw new IllegalArgumentException("除数不能为0!"); + } + return paramA / paramB; + } + } + + //上下文环境的实现 + public class Calc { + private Strategy strategy; + public void setStrategy(Strategy strategy) { + this.strategy = strategy; + } + + public double calc(double paramA, double paramB) { + // TODO Auto-generated method stub + // doing something + if (this.strategy == null) { + throw new IllegalStateException("你还没有设置计算的策略"); + } + return this.strategy.calc(paramA, paramB); + } + } + + + //执行方法 + public static double calc(Strategy strategy, double paramA, double paramB) { + Calc calc = new Calc(); + calc.setStrategy(strategy); + return calc.calc(paramA, paramB); + } +``` + +二者运行: + +```java + public static void main(String[] args) { + double paramA = 5; + double paramB = 21; + + System.out.println("------------- 普通形式 ----------------"); + System.out.println("加法结果是:" + calc("+", paramA, paramB)); + System.out.println("减法结果是:" + calc("-", paramA, paramB)); + System.out.println("乘法结果是:" + calc("*", paramA, paramB)); + System.out.println("除法结果是:" + calc("/", paramA, paramB)); + + System.out.println("------------ 策略模式 ----------------"); + System.out.println("加法结果是:" + calc(new AddStrategy(), paramA, paramB)); + System.out.println("减法结果是:" + calc(new SubStrategy(), paramA, paramB)); + System.out.println("乘法结果是:" + calc(new MultiStrategy(), paramA, paramB)); + System.out.println("除法结果是:" + calc(new DivStrategy(), paramA, paramB)); + } +``` + +结果为: + +![url](images/strategy-kerison-uml-calc-result.png) + +### 总结 + +通过简单的代码可以清晰的看出二者的优势所在,前者通过简单的if-else来解决问题,在解决简单问题事会更简单、方便,后者则是通过给予不同的具体策略来获取不同的结果,对于较为复杂的业务逻辑显得更为直观,扩展也更为方便。 + + +## Android源码中的模式实现 +日常的Android开发中经常会用到动画,Android中最简单的动画就是Tween Animation了,当然帧动画和属性动画也挺方便的,但是基本原理都类似,毕竟动画的本质都是一帧一帧的展现给用户的,只不要当fps小于60的时候,人眼基本看不出间隔,也就成了所谓的流畅动画。(注:属性动画是3.0以后才有的,低版本可采用[NineOldAndroids](https://github.com/JakeWharton/NineOldAndroids)来兼容。而动画的动态效果往往也取决于插值器Interpolator不同,我们只需要对Animation对象设置不同的Interpolator就可以实现不同的效果,这是怎么实现的呢? + +首先要想知道动画的执行流程,还是得从View入手,因为Android中主要针对的操作对象还是View,所以我们首先到View中查找,我们找到了View.startAnimation(Animation animation)这个方法。 + +```java + public void startAnimation(Animation animation) { + //初始化动画开始时间 + animation.setStartTime(Animation.START_ON_FIRST_FRAME); + //对View设置动画 + setAnimation(animation); + //刷新父类缓存 + invalidateParentCaches(); + //刷新View本身及子View + invalidate(true); + } +``` +考虑到View一般不会单独存在,都是存在于某个ViewGroup中,所以google使用动画绘制的地方选择了在ViewGroup中的drawChild(Canvas canvas, View child, long drawingTime)方法中进行调用子View的绘制。 + +```java + protected boolean drawChild(Canvas canvas, View child, long drawingTime) { + return child.draw(canvas, this, drawingTime); + } +``` + +再看下View中的draw(Canvas canvas, ViewGroup parent, long drawingTime)方法中是如何调用使用Animation的 + +```java + boolean draw(Canvas canvas, ViewGroup parent, long drawingTime) { + //... + + //查看是否需要清除动画信息 + final int flags = parent.mGroupFlags; + if ((flags & ViewGroup.FLAG_CLEAR_TRANSFORMATION) == ViewGroup.FLAG_CLEAR_TRANSFORMATION) { + parent.getChildTransformation().clear(); + parent.mGroupFlags &= ~ViewGroup.FLAG_CLEAR_TRANSFORMATION; + } + + //获取设置的动画信息 + final Animation a = getAnimation(); + if (a != null) { + //绘制动画 + more = drawAnimation(parent, drawingTime, a, scalingRequired); + concatMatrix = a.willChangeTransformationMatrix(); + if (concatMatrix) { + mPrivateFlags3 |= PFLAG3_VIEW_IS_ANIMATING_TRANSFORM; + } + transformToApply = parent.getChildTransformation(); + } else { + //... + } + } +``` + +可以看出在父类调用View的draw方法中,会先判断是否设置了清除到需要做该表的标记,然后再获取设置的动画的信息,如果设置了动画,就会调用View中的drawAnimation方法,具体如下: + +```java + private boolean drawAnimation(ViewGroup parent, long drawingTime, + Animation a, boolean scalingRequired) { + + Transformation invalidationTransform; + final int flags = parent.mGroupFlags; + //判断动画是否已经初始化过 + final boolean initialized = a.isInitialized(); + if (!initialized) { + a.initialize(mRight - mLeft, mBottom - mTop, parent.getWidth(), parent.getHeight()); + a.initializeInvalidateRegion(0, 0, mRight - mLeft, mBottom - mTop); + if (mAttachInfo != null) a.setListenerHandler(mAttachInfo.mHandler); + onAnimationStart(); + } + + //判断View是否需要进行缩放 + final Transformation t = parent.getChildTransformation(); + boolean more = a.getTransformation(drawingTime, t, 1f); + if (scalingRequired && mAttachInfo.mApplicationScale != 1f) { + if (parent.mInvalidationTransformation == null) { + parent.mInvalidationTransformation = new Transformation(); + } + invalidationTransform = parent.mInvalidationTransformation; + a.getTransformation(drawingTime, invalidationTransform, 1f); + } else { + invalidationTransform = t; + } + + if (more) { + //根据具体实现,判断当前动画类型是否需要进行调整位置大小,然后刷新不同的区域 + if (!a.willChangeBounds()) { + //... + + }else{ + //... + } + } + return more; + } +``` + +其中主要的操作是动画始化、动画操作、界面刷新。动画的具体实现是调用了Animation中的getTransformation(long currentTime, Transformation outTransformation,float scale)方法。 + +```java + + public boolean getTransformation(long currentTime, Transformation outTransformation, + float scale) { + mScaleFactor = scale; + return getTransformation(currentTime, outTransformation); + } +``` + +在上面的方法中主要是获取缩放系数和调用Animation.getTransformation(long currentTime, Transformation outTransformation)来计算和应用动画效果。 + +```java + Interpolator mInterpolator; //成员变量 + public boolean getTransformation(long currentTime, Transformation outTransformation) { + //计算处理当前动画的时间点... + final float interpolatedTime = mInterpolator.getInterpolation(normalizedTime); + //后续处理,以此来应用动画效果... + applyTransformation(interpolatedTime, outTransformation); + return mMore; + } +``` + +很容易发现Android系统中在处理动画的时候会调用插值器中的getInterpolation(float input)方法来获取当前的时间点,依次来计算当前变化的情况。这就不得不说到Android中的插值器Interpolator,它的作用是根据时间流逝的百分比来计算出当前属性值改变的百分比,系统预置的有LinearInterpolator(线性插值器:匀速动画)、AccelerateDecelerateInterpolator(加速减速插值器:动画两头慢中间快)和DecelerateInterpolator(减速插值器:动画越来越慢)等,如图: + +![url](images/strategy-kerison-uml-android-interpolator.png) + +由于初期比较旧的版本采用的插值器是TimeInterpolator抽象,google采用了多加一层接口继承来实现兼容也不足为怪了。很显然策略模式在这里作了很好的实现,Interpolator就是处理动画时间的抽象,LinearInterpolator、CycleInterpolator等插值器就是具体的实现策略。插值器与Animation的关系图如下: + +![url](images/strategy-kerison-uml-android.png) + +这里以LinearInterpolator和CycleInterpolator为例: + +- LinearInterpolator + + public float getInterpolation(float input) { + return input; + } + - CycleInterpolator - - public float getInterpolation(float input) { - return (float)(Math.sin(2 * mCycles * Math.PI * input)); - } - -可以看出LinearInterpolator中计算当前时间的方法是做线性运算,也就是返回input*1,所以动画会成直线匀速播放出来,而CycleInterpolator是按照正弦运算,所以动画会正反方向跑一次,其它插值器依次类推。不同的插值器的计算方法都有所差别,用户设置插值器以实现动画速率的算法替换。 - - -## 4. 杂谈 -策略模式主要用来分离算法,根据相同的行为抽象来做不同的具体策略实现。 - -通过以上也可以看出策略模式的优缺点: - -优点: - -* 结构清晰明了、使用简单直观。 -* 耦合度相对而言较低,扩展方便。 -* 操作封装也更为彻底,数据更为安全。 - -缺点: - -* 随着策略的增加,子类也会变得繁多。 \ No newline at end of file + + public float getInterpolation(float input) { + return (float)(Math.sin(2 * mCycles * Math.PI * input)); + } + +可以看出LinearInterpolator中计算当前时间的方法是做线性运算,也就是返回input*1,所以动画会成直线匀速播放出来,而CycleInterpolator是按照正弦运算,所以动画会正反方向跑一次,其它插值器依次类推。不同的插值器的计算方法都有所差别,用户设置插值器以实现动画速率的算法替换。 + + +## 4. 杂谈 +策略模式主要用来分离算法,根据相同的行为抽象来做不同的具体策略实现。 + +通过以上也可以看出策略模式的优缺点: + +优点: + +* 结构清晰明了、使用简单直观。 +* 耦合度相对而言较低,扩展方便。 +* 操作封装也更为彻底,数据更为安全。 + +缺点: + +* 随着策略的增加,子类也会变得繁多。 From 71c1088a8184e42097f902d4f5bd70cbfcdbe311 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Fri, 13 Mar 2015 14:39:39 +0800 Subject: [PATCH 07/56] update facade --- facade/elsdnwn/images/contextimpl.png | Bin 0 -> 51741 bytes facade/elsdnwn/readme.md | 247 ++++++++++++++++++++------ 2 files changed, 191 insertions(+), 56 deletions(-) create mode 100644 facade/elsdnwn/images/contextimpl.png diff --git a/facade/elsdnwn/images/contextimpl.png b/facade/elsdnwn/images/contextimpl.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf50a6939770d9f9f59456af16cf7aa745c60d2 GIT binary patch literal 51741 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 RF3|u0002ovPDHLkV1kSj+n)dc literal 0 HcmV?d00001 diff --git a/facade/elsdnwn/readme.md b/facade/elsdnwn/readme.md index 6e3f514..6ac90e3 100644 --- a/facade/elsdnwn/readme.md +++ b/facade/elsdnwn/readme.md @@ -39,7 +39,7 @@ Android设计模式源码解析之外观模式(Facade) ### 实现源码 TvController.java -``` +```java public class TvController { private PowerSystem mPowerSystem = new PowerSystem(); private VoiceSystem mVoiceSystem = new VoiceSystem(); @@ -168,36 +168,176 @@ public class TvController { 上面的TvController封装了对电源、声音、频道切换的操作,为用户提供了一个统一的接口。使得用户控制电视机更加的方便、更易于使用。 ## Android源码中的模式实现 -在Android源码中,ContextImpl这个类封装了很多模块(子系统),比如startActivity()、sendBroadcast()等,分别给用户一个统一的操作入口,简单实例如下: +在开发过程中,Context是最重要的一个类型。它封装了很多重要的操作,比如startActivity()、sendBroadcast()等,几乎是开发者对应用操作的统一入口。Context是一个抽象类,它只是定义了抽象接口,真正的实现在ContextImpl类中。它就是今天我们要分析的外观类。 + +在应用启动时,首先会fork一个子进程,并且调用ActivityThread.main方法启动该进程。ActivityThread又会构建Application对象,然后和Activity、ContextImpl关联起来,然后再调用Activity的onCreate、onStart、onResume函数使Activity运行起来。我们看看下面的相关代码: ``` -package com.elsdnwn.Facade; +private final void handleLaunchActivity(ActivityClientRecord r, Intent customIntent) { + // 代码省略 -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; + // 1、创建并且加载Activity,调用其onCreate函数 + Activity a = performLaunchActivity(r, customIntent); -public class MainActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); + if (a != null) { + r.createdConfig = new Configuration(mConfiguration); + Bundle oldState = r.state; + // 2、调用Activity的onResume方法,使Activity变得可见 + handleResumeActivity(r.token, false, r.isForward); - Intent intent = new Intent(); - intent.setClass(this, MainActivity2.class); - startActivity(intent); - } + } + } -} -``` + private final Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) { + // System.out.println("##### [" + System.currentTimeMillis() + "] ActivityThread.performLaunchActivity(" + r + ")"); + // 代码省略 -通过上面的代码可以看到,启动startActivity需要传递一个Context上下文对象,为什么要传递呢?下面我们看一下ContextImpl相关源码: + Activity activity = null; + try { + java.lang.ClassLoader cl = r.packageInfo.getClassLoader(); + // 1、创建Activity + activity = mInstrumentation.newActivity( + cl, component.getClassName(), r.intent); + r.intent.setExtrasClassLoader(cl); + if (r.state != null) { + r.state.setClassLoader(cl); + } + } catch (Exception e) { + if (!mInstrumentation.onException(activity, e)) { + throw new RuntimeException( + "Unable to instantiate activity " + component + + ": " + e.toString(), e); + } + } -``` + try { + // 2、创建Application + Application app = r.packageInfo.makeApplication(false, mInstrumentation); + + if (activity != null) { + // ***** 构建ContextImpl ****** + ContextImpl appContext = new ContextImpl(); + appContext.init(r.packageInfo, r.token, this); + appContext.setOuterContext(activity); + // 获取Activity的title + CharSequence title = r.activityInfo.loadLabel(appContext.getPackageManager()); + Configuration config = new Configuration(mConfiguration); + + // 3、Activity与context, Application关联起来 + activity.attach(appContext, this, getInstrumentation(), r.token, + r.ident, app, r.intent, r.activityInfo, title, r.parent, + r.embeddedID, r.lastNonConfigurationInstance, + r.lastNonConfigurationChildInstances, config); + // 代码省略 + + // 4、回调Activity的onCreate方法 + mInstrumentation.callActivityOnCreate(activity, r.state); + + // 代码省略 + } + r.paused = true; + + mActivities.put(r.token, r); + + } catch (SuperNotCalledException e) { + throw e; + + } catch (Exception e) { + + } + + return activity; + } + + + final void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward) { + + unscheduleGcIdler(); + + // 1、最终调用Activity的onResume方法 + ActivityClientRecord r = performResumeActivity(token, clearHide); + // 代码省略 + // 2、这里是重点,在这里使DecorView变得可见 + if (r.window == null && !a.mFinished && willBeVisible) { + // 获取Window,即PhoneWindow类型 + r.window = r.activity.getWindow(); + // 3、获取Window的顶级视图,并且使它可见 + View decor = r.window.getDecorView(); + decor.setVisibility(View.INVISIBLE); + // 4、获取WindowManager + ViewManager wm = a.getWindowManager(); + // 5、构建LayoutParams参数 + WindowManager.LayoutParams l = r.window.getAttributes(); + a.mDecor = decor; + l.type = WindowManager.LayoutParams.TYPE_BASE_APPLICATION; + l.softInputMode |= forwardBit; + if (a.mVisibleFromClient) { + a.mWindowAdded = true; + // 6、将DecorView添加到WindowManager中,最终的操作是通过WindowManagerService的addView来操作 + wm.addView(decor, l); + } + } else if (!willBeVisible) { + if (localLOGV) Slog.v( + TAG, "Launch " + r + " mStartedActivity set"); + r.hideForNow = true; + } + // 代码省略 + } - @Override + public final ActivityClientRecord performResumeActivity(IBinder token, + boolean clearHide) { + ActivityClientRecord r = mActivities.get(token); + + if (r != null && !r.activity.mFinished) { + try { + // 代码省略 + // 执行onResume + r.activity.performResume(); + // 代码省略 + } catch (Exception e) { + + } + } + return r; + } +``` + +Activity启动之后,Android给我们提供了操作系统服务的统一入口,也就是Activity本身。这些工作并不是Activity自己实现的,而是将操作委托给Activity父类ContextThemeWrapper的mBase对象,这个对象的实现类就是ContextImpl ( 也就是performLaunchActivity方法中构建的ContextImpl )。 + + +```java +class ContextImpl extends Context { + private final static String TAG = "ApplicationContext"; + private final static boolean DEBUG = false; + private final static boolean DEBUG_ICONS = false; + + private static final Object sSync = new Object(); + private static AlarmManager sAlarmManager; + private static PowerManager sPowerManager; + private static ConnectivityManager sConnectivityManager; + private AudioManager mAudioManager; + LoadedApk mPackageInfo; + private Resources mResources; + private PackageManager mPackageManager; + private NotificationManager mNotificationManager = null; + private ActivityManager mActivityManager = null; + + // 代码省略 + + @Override + public void sendBroadcast(Intent intent) { + String resolvedType = intent.resolveTypeIfNeeded(getContentResolver()); + try { + ActivityManagerNative.getDefault().broadcastIntent( + mMainThread.getApplicationThread(), intent, resolvedType, null, + Activity.RESULT_OK, null, null, null, false, false); + } catch (RemoteException e) { + } + } + + + @Override public void startActivity(Intent intent) { if ((intent.getFlags()&Intent.FLAG_ACTIVITY_NEW_TASK) == 0) { throw new AndroidRuntimeException( @@ -205,48 +345,43 @@ public class MainActivity extends Activity { + " context requires the FLAG_ACTIVITY_NEW_TASK flag." + " Is this really what you want?"); } - - // 其实是用的getInstrumentation().execStartActivity(); mMainThread.getInstrumentation().execStartActivity( - getOuterContext(), mMainThread.getApplicationThread(), null, - (Activity)null, intent, -1); + getOuterContext(), mMainThread.getApplicationThread(), null, null, intent, -1); } - -``` - -我们可以看出启动Activity其实是用的Instrumentation()类里的getInstrumentation().execStartActivity(); 继续查看Instrumentation类里的execStartActivity()的源码: - -``` - - /** - * 需要接受一个Context上下文对象来确定activity的开始 - */ - public ActivityResult execStartActivity( - Context who, IBinder contextThread, IBinder token, Activity target, - Intent intent, int requestCode, Bundle options) { - IApplicationThread whoThread = (IApplicationThread) contextThread; - if (mActivityMonitors != null) { - synchronized (mSync) { - final int N = mActivityMonitors.size(); - for (int i=0; i= 0 ? am.getResult() : null; - } - break; - } - } + + + @Override + public ComponentName startService(Intent service) { + try { + ComponentName cn = ActivityManagerNative.getDefault().startService( + mMainThread.getApplicationThread(), service, + service.resolveTypeIfNeeded(getContentResolver())); + if (cn != null && cn.getPackageName().equals("!")) { + throw new SecurityException( + "Not allowed to start service " + service + + " without permission " + cn.getClassName()); } + return cn; + } catch (RemoteException e) { + return null; } - // 代码略... - return null; } - + + @Override + public String getPackageName() { + if (mPackageInfo != null) { + return mPackageInfo.getPackageName(); + } + throw new RuntimeException("Not supported in system context"); + } +} ``` +可以看到,ContextImpl内部有很多xxxManager类的对象,也就是我们上文所说的各种子系统的角色。ContextImpl内部封装了一些系统级别的操作,有的子系统功能虽然没有实现,但是也提供了访问该子系统的接口,比如获取ActivityManager的getActivityManager方法。 + +比如我们要启动一个Activity的时候,我们调用的是startActivity方法,这个功能的内部实现实际上是Instrumentation完成的。ContextImpl封装了这个功能,使得用户根本不需要知晓Instrumentation相关的信息,直接使用startActivity即可完成相应的工作。其他的子系统功能也是类似的实现,比如启动Service和发送广播内部使用的是ActivityManagerNative等。ContextImpl的结构图如下 : +![context](images/contextimpl.png) -通过上面的代码可以看出启动Activity需要传递一个上下文Context才可以,通过外观模式我们不需要知道startActivity是怎么启动的,只需要传递上下文Context,这样就大大降低了客户端与子系统的耦合。 +外观模式非常的简单,只是封装了子系统的操作,并且暴露接口让用户使用,避免了用户需要与多个子系统进行交互,降低了系统的耦合度、复杂度。 ## 4. 杂谈 From e8f37d4c5bcd051f8f0bbb3601c54782237c00ce Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Fri, 13 Mar 2015 14:47:01 +0800 Subject: [PATCH 08/56] facade done --- README.md | 2 +- facade/elsdnwn/readme.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf4fdd7..729c2c2 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ | ------------- | ------------- |--------------| | [单例模式](singleton/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | | [Builder模式](builder/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | -| [外观模式](facade/elsdnwn) | [elsdnwn](https://github.com/elsdnwn)| 撒丫子赶稿中 | +| [外观模式](facade/elsdnwn) | [elsdnwn](https://github.com/elsdnwn)、[Mr.Simple](https://github.com/bboyfeiyu)| 完成 | | [模板方法](template-method/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [适配器模式](adapter/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [观察者模式](observer/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | diff --git a/facade/elsdnwn/readme.md b/facade/elsdnwn/readme.md index 6ac90e3..bf0fef2 100644 --- a/facade/elsdnwn/readme.md +++ b/facade/elsdnwn/readme.md @@ -381,7 +381,7 @@ class ContextImpl extends Context { 比如我们要启动一个Activity的时候,我们调用的是startActivity方法,这个功能的内部实现实际上是Instrumentation完成的。ContextImpl封装了这个功能,使得用户根本不需要知晓Instrumentation相关的信息,直接使用startActivity即可完成相应的工作。其他的子系统功能也是类似的实现,比如启动Service和发送广播内部使用的是ActivityManagerNative等。ContextImpl的结构图如下 : ![context](images/contextimpl.png) -外观模式非常的简单,只是封装了子系统的操作,并且暴露接口让用户使用,避免了用户需要与多个子系统进行交互,降低了系统的耦合度、复杂度。 +外观模式非常的简单,只是封装了子系统的操作,并且暴露接口让用户使用,避免了用户需要与多个子系统进行交互,降低了系统的耦合度、复杂度。如果没有外观模式的封装,那么用户就必须知道各个子系统的相关细节,子系统之间的交互必然造成纠缠不清的关系,影响系统的稳定性、复杂度。 ## 4. 杂谈 From 083a091d2b24bcb7509471545c2eff89be569f50 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Fri, 13 Mar 2015 14:54:21 +0800 Subject: [PATCH 09/56] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8f5b4ef..84eabc9 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,6 @@ | 原型模式 | | 解释器模式 | | 访问者模式 | -| 命令模式 | ## 模式与文件夹对应列表 | 模式名 | 文件夹 | From 8222fd6430aebe7caaa8320f9f40dab548c1de71 Mon Sep 17 00:00:00 2001 From: haoxiqiang Date: Fri, 13 Mar 2015 18:23:19 +0800 Subject: [PATCH 10/56] 1.add iterator --- iterator/README.md | 4 +- iterator/haoxiqiang/AndroidMileage.java | 113 ++++++++++++++++ iterator/haoxiqiang/iterator_2.jpg | Bin 0 -> 17099 bytes iterator/haoxiqiang/readme.md | 169 ++++++++++++++++++++++++ 4 files changed, 285 insertions(+), 1 deletion(-) create mode 100644 iterator/haoxiqiang/AndroidMileage.java create mode 100644 iterator/haoxiqiang/iterator_2.jpg create mode 100644 iterator/haoxiqiang/readme.md diff --git a/iterator/README.md b/iterator/README.md index 0154882..c550b77 100644 --- a/iterator/README.md +++ b/iterator/README.md @@ -1,7 +1,9 @@ # 任务表 | 作者 | 预计完成时间 | | ------------- |:-------------:| -| [用户名](git地址) | 完成时间 | +| [haoxiqiang](https://github.com/Haoxiqiang) | 2015年3月13日 | + + diff --git a/iterator/haoxiqiang/AndroidMileage.java b/iterator/haoxiqiang/AndroidMileage.java new file mode 100644 index 0000000..2bd631b --- /dev/null +++ b/iterator/haoxiqiang/AndroidMileage.java @@ -0,0 +1,113 @@ +package com.yuexue.tifenapp.wxapi; + +import android.os.Build; + +import org.apache.http.NameValuePair; + +import java.util.Iterator; + +/** + * Created by haoxiqiang on 15/3/13. + */ +public class AndroidMileage { + + final static int[] versionCodes; + final static String[] versionMileages; + final static int size; + + static { + versionCodes = new int[]{ + Build.VERSION_CODES.BASE, Build.VERSION_CODES.BASE_1_1, Build.VERSION_CODES.CUPCAKE, + Build.VERSION_CODES.DONUT, Build.VERSION_CODES.ECLAIR, Build.VERSION_CODES.ECLAIR_0_1, + Build.VERSION_CODES.ECLAIR_MR1, Build.VERSION_CODES.FROYO, Build.VERSION_CODES.GINGERBREAD, + Build.VERSION_CODES.GINGERBREAD_MR1, Build.VERSION_CODES.HONEYCOMB, Build.VERSION_CODES.HONEYCOMB_MR1, + Build.VERSION_CODES.HONEYCOMB_MR2, Build.VERSION_CODES.ICE_CREAM_SANDWICH, Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1, + Build.VERSION_CODES.JELLY_BEAN, Build.VERSION_CODES.JELLY_BEAN_MR1, Build.VERSION_CODES.JELLY_BEAN_MR2, + Build.VERSION_CODES.KITKAT, Build.VERSION_CODES.KITKAT_WATCH, Build.VERSION_CODES.LOLLIPOP + }; + versionMileages = new String[]{ + "October 2008: The original, first, version of Android. Yay!", + "February 2009: First Android update, officially called 1.1.", + " May 2009: Android 1.5.", + "September 2009: Android 1.6.", + "November 2009: Android 2.0", + "December 2009: Android 2.0.1", + "January 2010: Android 2.1", + "June 2010: Android 2.2", + "November 2010: Android 2.3", + "February 2011: Android 2.3.3.", + "February 2011: Android 3.0.", + "May 2011: Android 3.1.", + "June 2011: Android 3.2.", + "October 2011: Android 4.0.", + "December 2011: Android 4.0.3.", + "June 2012: Android 4.1.", + "November 2012: Android 4.2, Moar jelly beans!", + "July 2013: Android 4.3, the revenge of the beans.", + "October 2013: Android 4.4, KitKat, another tasty treat.", + "Android 4.4W: KitKat for watches, snacks on the run.", + "Lollipop. A flat one with beautiful shadows. But still tasty.", + }; + + size = Math.min(versionCodes.length, versionMileages.length); + } + + public static class Mileage implements NameValuePair { + + public String name; + public String value; + + @Override + public String getName() { + return name; + } + + @Override + public String getValue() { + return value; + } + + @Override + public String toString() { + return "versionCode:" + name + " desc:" + value; + } + } + + + public Iterator iterator() { + return new ArrayIterator(); + } + + private class ArrayIterator implements Iterator { + /** + * Number of elements remaining in this iteration + */ + private int remaining = size; + + /** + * Index of element that remove() would remove, or -1 if no such elt + */ + private int removalIndex = -1; + + @Override + public boolean hasNext() { + return remaining != 0; + } + + @Override + public Mileage next() { + Mileage mileage = new Mileage(); + removalIndex = size-remaining; + mileage.name = String.valueOf(versionCodes[removalIndex]); + mileage.value = versionMileages[removalIndex]; + remaining-=1; + return mileage; + } + + @Override + public void remove() { + versionCodes[removalIndex]=-1; + versionMileages[removalIndex]="It was set null"; + } + } +} diff --git a/iterator/haoxiqiang/iterator_2.jpg b/iterator/haoxiqiang/iterator_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..256f06038ea79d209c1c2a1206486439ece83503 GIT binary patch literal 17099 zcmch;2UJu0wl5rdlPX=R1R*p9rS~8u2{k|vLa`w=^dcZdq)3MlK&46VMI>|tk&YB0 z)X;lJnjnZg_Bs2UeeV6vd-uCvaD|2Eg`^EWRiF6RMsPz{I%fPjDi@bKyj zxWoh00Hnkuq$I?oq$H$dWTfPjbd;176qJlKwAbiZ7+G0a7@3*bIr+KSZ}4$2GxLb> z@ZAys34z$SMem3T-r*Mn30}4WsK^PV2tE)H&;u^p0UQ7V00GI>5`TTj2#Bs0Atb;0 z^%)(2fQX2YkeG~|oQ{H=>gvCQM8p6RdQt{5-s_Ca;x|tmTLK-HzM#*IDr)Gv=}-@6x3 z)$zj)?}^S$p31x@|@7Krmb{(N1O(k{#~NX ztTW4$XI+T6(3ff3gD!jJHGd~e){4O%{qf2;Y|djPqa#1&Y{^$b?w0StN+{*P?D<$BQR-%e^Ocl)&ozNX0?W{=_#xo+qreXnFjYGv0^F8Mq@ zjppg;;rxkvk;Fe=tUk`LRW-5QS)-~x&;-_ zj3M3D`WnIFsddthp0?;&c7GU!prsK&khtjKArzhyYm9w-;uvsnk(Y{L5sT)L*#;^F zpWDg5;OCPM`kweTj`bjNSh=EK$nH-(^S$ zw8+v`LEaVkYwy?ySL{RC>1!w=_r+NO@8Iu$9b(ohCddz)O31LWH!7uNfb23wc{OQZ zJK~QDZp`9rti!1KYp^x5((#DgT!MO@!uW)`r_rO-KgPsR_?TV>CmKctO9EuQ=bCt40Wx$ zJI05cOK!{btRN4~m0D~Y0z-q*T3yQYonwjvz_$kr8YyfWu7ti{y=I_kaZT1YhG`71 zHXZw<;R9+4-Qyno3}3;#5&vZ)+UhZs!%;3f9^*uIBf<>8xm@U@Zqo=#Hh)w*YgfSS zo?|WafTRNjkA%~<$-{HvZbJ5rrxUxET9{Y};;IsfmYsiWCKdftQ&Foc5CJYegkK!| z!Oon&N4QRGQk;@&q^}AZFnT%>7lIHyUFpuV0Tfh~tTFRaPy(?!DFZTvs?LI6LkY_sRC^B4WDI}LF)Qo# zx`la5c;Cm*_(r+nC`}hUE-Xp3HnP_}ll-L6hFL6qlwrk6VBp#EPZ!hK*HKaXa(%(T zE-TM$Rth^xzWJ5=oEy_07Wi-IsMPTkG)5eRop>IN!QNW8TtK&%@7J*L8jQ zLH)TI32Jr^rW<+{6yl^N^A@HvMKwQsc`Q#|H6qrKlm()?3B_+*j}HOVs0owsoAzjF zOnJpVUMbD7XB(ynV8(T-iN6D*gD9p7dSP8{@CXVsI=B~Oyh%&>m4KL^Mvf@A{i}Qk zEplJU$0Z=`YjH?`ZF>KDl8QH%EVTuB&RZ=jE7%jwi?2rs0eQE7j^B7h=}}1fMo&GaqL4(SLP&{$5>EKT;$_%u9J{>&T6DK%SWB!e zc6a$Cq^8HYq;`Ry>?k_}Dzm{fOq2ZC_HmDGxKm^S;;WH|tr&gAC4h$j#C0FYPr-U6 zT|vZtXGJXuE%;*Nzx)D8CKsxf*K;kxDaW2d3JT;?M*5y+6h!SqZFgvrnLJYW`7^^Zi3=Dxrwui-U>K{I8_b4mE2B~x|7m@(y z4~YqBR7;UMt0be7J4kCRUm^5Pu7?e8Ejm6=I%819p)>$1DQ1h#Z>C4cIK>~h{;zTe|c=QfLq5KW9kbKrOyf2OZ?Wv=qqjTt>8b^*@GtX3@>CcLe5Rxc&=hQ+`SMy7Tj`f2Rb0F|;+P)ZZ^Ez4Ix!ax zr+O_AP|JcaPm|ReBc-|KwZO6R`@uepYcfxFdff;6X5uy~Ag!Of*OrdPn{)USx+{#C z0*amgrmO7!MOT>-l(WF^uCnEQufbi1a;sVY;5T@>ItL07(rKc{Xwpjn;QB`(9oog(7oNoA zAC*aOW^<}HmR^MT(??J@S35mk;NEW;HH4Q5_tpbX#(Ov-=l8DP6})`IrU%`)|*6yna&s{du9J==jyh!IXm9lS{y2$(+5| zC4kpcU}5JHkZy=&35;(@{Qlz-Fi`ZbtLgl0HOZ^hmVbBrDtOsoOQ$KTcnR1L!&Us9 z8THSExE4zb7WPv@;e7bzX%6QZiw{f8ZPQ;pV%0nH6dDJNWNAzlN^1W7&S?r8xirD{ z+5vNa?ES~PKaTX9{pv`h`Hk0}fH!q5#oqmKKpoFcnh;#Las__yM=`aIC-K#9dSCFD z0J-1{qA284A*AlbBf;v&Fp^@H~GO! zz*H>*^7`YCxA^*-*_Qb`(^0Cnu0m{-#BMyV;;;Btad+ZkVGCx$3TvngTB<~!!FKp4 zR&#A!xEOrmmFNz}1V@>>oDANB(bF4Zy}m*t^zHJaxM9jPu^_jg#18_=;B-eiY03_{ z#ZH(*oNUnt7B+apG(QD3fD@*rp$`$0smjfwATHCXOF*X~zUa*+_}D|}bJddQcPoTM z($o3G9HDIxFecQR3S5;$zW{JiC31zr!?G(rcxMvb>)E{oP@auog@*qwr;?2OR4JU# zAsZ)Fn>|HFX@m}J*V)VqZiXWz-hs_s8CTKdFV2A zSty;6TkZju!AeQn8u5((*Xw+Kc|*sE*Yh~QQwjb%^;$G{h5#wd zX)7QC2)`x~v5)#=`xz_iVS^>bfJ}Bl^r2&QI478~d4QMXp{N>2<9lA_KAa-Qto%mG z80vEoNo|I?Mgc!aL=4V=EelE86@nt&h47V(AQIJw*$r|}`V6!#0b?mY*)AIL?ElFo zY6g0MR%OR4W_(d@HHu60sJ-hRylpCs2}|oVW;aZjUUu(66$x?9@_ltvC^5*ow`8UV z!4`cHOpd z2v-b1nysC`Do-l6mkq9PM`Sv?{yIW)ls$5e{R=A5EpocO>ChgfBhGC0Hi7^1eCW~O zoe4@HeOpFHdmH+-4X&TSXiWTsDzRXNn@Nii z)v_W)ZiQBt?K;Czgj11QJa7M0?^M(fi74!u?m%c>#p4^G+csY8lFz@T>{T!gM9@5d%4IzD19q|QS-#k)nK+ol&o>YE->f`;8r+HXWV zk|f(fc@3dblb$+U=_ib}S}x0+v89FA3Vq>gHg2O1%zGZ9U#I6&o>o@#ym73|?!B{= zIvmE&OGyq_YRl5>6Rl}!0N4hv}qom<_;|4Z@EUe zsRKRwch4lIi_Z_U+C#5 zS7q`B)k>nj7+89)`SSCN@!Z2C9laL5kx=XART?i<7?r&9s9=qaD#9bSaDUQp6AjV! ztd0v?a*C&0H0Tz|jSp5aAWfb@K1;u);FW>-T06VW9w&6;Te^^F-Mr$B2xu^+sYhr+ zHAaw7>t?g|81wVS&;CEDXl1%IX>JT7@}%G#AT@{qoX!XXddQd;K)`EWLS(Szh5DA6 z=ny+PpddrICyvvi0P}LL2s;M7--@KJ(@zLVkDRWymT&k~(k(nABy`TAbhCQ!duEwD zyzI}cRb*ZG{#KjvQebg@p1L=CtJ4A#J~zsjgEEyfIah9MWIn5HQQtk@Ca+ef?3{WFm|FLS!JR z;Ei_t(X$lZ5NaH-5lwgLm^V;IDhYRdasZZHiw*^mQ~mYts^`hy16l#loIb{+v#%@&*q zhhvUn9RVO4+ujcYb#KjRmPH%vmYMS`9%;l!^kcmeQECUkvf50a+jr1SEJy?D9g35$ zr}Bgj4i3YH+xGr_@cG7Dl6j8!=%i1%6cuty!-&-tQEM8RH=C>2LPvdK8=>}kTe3c> zH)AJw@lvVN1k}rw_*x@eGMAZ^zAivNoQ>Cx4T21}Z=yGGYA`$YR6BXRQbU^Sxvoe$ zD*EH5B2vTj9PbM@4w`_QQy<(&E~WS-hw1nnI%(xc%@C=X3(e$(s@AXw-_as*p zvb>0ddodIz{WxJS`!D&+Y?ap*B~Od!!6lUGr#5_=f?H^N4eK`#B*~$#*U5asgqFza zLtmu*vM4jr+^ce`IaXnKJT)7IQtLoc?TLV_x36KWU!UTGC3fBCm!fP!{Y_6$uMMk8 z84NfJl6MxLP{OFY>}74c9_AH5hX$o76JrzKG13v%j9c&p#HS|pGS<27rNCa)Re1Q= ziJQCTk|IX3ZuF?yRTtgo*L^BDe{TdbE^YI!@GKQ}YZP~Z_X#R5or=~P(w6x!C)!vI z6!g%|BF8s+bufSN(NC7TIx`3w*N{&l*iF$w zywUyI0E?l#@jy5LmR0i&4VccOBZYL$GQG-`RR4&W$hIg&-v|(1hhi{wNur^Qp&m{s zAb%^PMB0I5&qXEkKyhsQ>)5Cp>lxY^Al@Hz|lArgvik3fD3%D^2%g zAeN20qTU0BN98x8_$h?g+-0I{Y)D0rn6V_(<8^$((t_B%6D>BVH{fKVG2`FIKyzw@1aJ*(aN z+MU_OvO+KzF5#vNAQHHhv+})Lkp{`IYmh4`!C}-(t2ztReuhLxZR-AFPV-!ot^#z+ zK+z{Mbh`BQ%;ezC8tw(`Uuki3xPXCAkaHOWT_$hM}d67R8#`9xJel90W9|Z(=vP6 zLGVFhU7q|LLaP_!OMRD6&$8aK-0|pcIVU?kw~Ij(XQi){k>PyNBL~km4HpYRN;CZ= zE;Q!9PSU+F4vBJnwu=_ia*U{`!g-rdzW_=VFusi4RUemqnb?@=(i!_RkFB}4S!jWG zglol)IX(nPq6v;lm%tlzlRQE_MO^~ktIAi3zpr%}5P1$C$}gpV3NiPPLm?0g)pgxI zVsgD{<5$-}Pbz2+CJ)Jrd%E&=-|JtqTDJ-zNz ziV}nBSKaZ271OC+t*OD~wqbmjPgX{+cu1OCD8ZHn`V?T=;GjG~lF+U3FSfdq&fkC# ziMa+HiOA(UjKd5Ou`s(($#~`=*U{ac=}PQ#$PKVK@*A0M_J|91s;nwsy`HUVX>wki zDBrobg;NkksZVC-=d-~nkQ%~e=hUzx><}=+WjIbE)tJ-?U4x2fsM==Z&k_$Lyc6kC9?KjwvstU6ILS^eghzZ?_$m{@eOngwjq| z97gUvgH-y&a*$8F&xu=k_`epkTrUB@jH_~+!Gv zqRxiTh0Oh|t~Hn}T_5H(`C%qAox7)HM!M_-4qILUz8a{tLAu@xL|d8O{I`Wc$LF+< z>NhNz9yr!cEQ)q2>kUf|^M7^n?}(!SzQPo8-9I@jV)%PBeO1|0X4*M>YqqAksU!T5 zWzMzXM2EW^dqeTA7D|a>a667CfJW9va_=uf)GpfgC;+db@}@t^jB^p6?EIg`Y>y?y z-gW@798W&^K1pl-t;JoirCLRhLI~oXGg(KHi`ktfdrp+@)cEgemizMk0)Nyjhb>N< zOSi`b^_^bagE8E4x8+p%ti?t_0wbRYGJ2m-uO<-RQ#OY>O+_o=nyw<(gyw%ObN>3X zW?FglROgY`lKi_8_=cVfZ+=^e8Cio!@AN!6h2Z-g&6^d>vfhV9VSi@*uFQQ?$eE6B zg|Iwamx3sh_g&P(Ssqu?vpR3nm^N&eM_vhI;!y9q+`{vv9bqc!r<`R=l${7&FPaz- z^KU`vkRAIidk~jO-M|62tajqj%|>=artwT@oVG=Il?<`<_d|qN1~5cn$f(eXbUKNXQk>sy zd5MNT6nNSS%so)L=_hBBUUzWf<1qU72taM1>E&S4cyZRUEY7{;Sj*3lT4<(gnh^xL zJ)N5osv89SnkUEt%(6kDxYR z+J=iM*zEN8!w!bNQwpId44^8CKP|tWNeJOYNgQ6is4;)v*C6qR$`y6rsH35EHk2o( zWEy^_bb+6b=f&uR{s|%l@xTmM!^T|1@U+AFn5Sr>1LT4-GwCiAbjQC+_{zSr;&L!M z^W%$0>~I0(^;tt-EkqcDt;)xt;pRdVync*;)@9AxECGr<;|>2*5Ku%E;&Y<=@X3Qa z$k=)}zOtH-AjS!^FarIxG_L1I&l|T?2Cr?qBC(QA0c#|we%o5tG?U9iNAJDQ-9?$I z^yo>%quqSQeV|;s#-AYzp~*<^r{+&BZq>T_oZ$KnaHe*;iRonmhVdq*m}|+5N+DtmK6g`BEix?l%lCBA_>35>sr-{C zlyJnx(xVDE}hz)!idYF>152yG|0ZeC^iGbuS{I(71Dw=O0>b8RuV%*d`yb zctquoNedg(fV!{CGF4ukexN$JuVL9<7+dtCL9!ioySj8O&${(J?Eo|W)hbaR@?YL! z)-o-+S`NIs^P_XLe+=CR=kzq_ga|*$)koPVNdifpj3Ce8Nnn?|X0Vm{DFM?|Ljr>} z*k-JJnuofUS-jT%iXHh+oUqToa4sApzwO>5C%9yi`D9EwcdX*&p=;&eTd@#EN1*AvmYTl%cYiUWc z{_$^s8nu6-J|vxM6rdZh7JJ5{T-3~zR()5Zy#3mL696)9&~{*b>8DhsD6g=E2$-B%AAO*CtVDj*RUfp*M~)-LkbkH?4b8SsfEe& z6Ec|PZB8=1-4_D+9`Zl-sIy@BMlv>h^gPbleo>lkcdX9)Mj+*@p_QtLYci6IuFX^g z5E&5hQ~Ehm|Nkb4#nQ0!^i4dW%zXf7tG!lJ%S?sEznkIoPZ*5jsY8X>yZrOQ?eQ7; zU8c^y(FR1wGIVBy-=1SQo(%Y^yJX?{2RMDHe8i(Sx-Gm{8C9ChhZ+Y^1>Tpxy)}V?K#YM9s0ow0!ac(~G zT~{=bjm!Y8*!{7wtDuqaS_WUhud96OxXtrXmmRr}dUiiWdW`zk9&Gl3;YdA|30J=Z zRgPFvf}_O}kI|YEosB;KF(X@$J?p#Ww-OVmYMzE0Y?LlC64|6XsS>V@-a=nKIrNFX z$6uTdZlxq|TfN7G%Td4vgZDzDcDh1j6B2rB7_d&6;haAi_QsO=J_6f3$Dh?;q)yok z?=Hnfp(*wRNaI;C^h>qI z0rYVZ&-c}?+aL?-(G6yxw3gs>6rhyl6(DQO^wN~;bw-*RvU{XrP7!tA1j?rip6SG5 zK)7g3a0)quPvCJ)>BE(qWgX*ZZk8XS@*kTob=P-?J$rv|9ZpFz3UnHj1X0d1+?@v& z&Z7iM6-O!jqfhM0Tr#!Wbb?oxEr!XgUG=uxJuSvZ7A(1JIaLAkFg{?zZ)OD^h;;Du~=Zqe4~L3W{$c_;11Tz zpbl8?@HgN)g^Z@qdH1U3{p?kRc=FnV#4$!CZGn-^H_l^de}*7*QjNbf+Bd5eEPdp^ z?&xn-Cfc4W^(noo+K~tCLP`Vn`Dx$hJJtJUBzL-?4ci%^=(Qp*;pma2oBK4Eu?`Gj zlV`#{Ap_mlw0UWt7f&ot#tqL zkj7fC{_~n${GgM2tfx;uvLH2y@NVrE6gY^geJt@ziiMYkgI6bd<&kDx^ePr12HZd{ zJKzdU3U5+p>qp%(tjMA!1bdY-1P~YqQp!*YBBrCSXY!eCy#D^EKM-!p9)72yL}_^y zjX$Sh`Jny)K||2xDkIrKMftO_?zZi zuNN@&bsy*RRLS1*?7($t73f|({u8J6Ck*LrnNH+zs-6XJ+t!G6z34dkX9EPG=1@o; z-_Se!&=n9&>G$8|bj*Za)FkD3!h27W;z6M`n*Q;#VLrKD=8U(PELNH_0`tSAU9vud zO8~0}qI9elhHV=ySdo}+zSrM;tviWBL@5f*36i&f2f`o-Hw{@EZy{`%jB#N7R#b5r z^U1@>r&c1)ngQ36-yrFqba)n++dB19SwmX!8QX*;mapDpL+jINFzxXn8?q^akN{kv zR-%x65kZk4YR*U3C(q7QxM!vx3Vg`LXtgtz`;kaj8uZpoL+8C(qKoy)eM~(R9lVrE zmqcHO5`+-62SE+@u;0Gt_Y~igT-?98kS7M8N_YI&h0@tWp z)-sW{c7#`!z7P=4FaI@T+t*&T(kjPF&gP-iSr#y88Y}&wh>fGqM;5Mmo9c$H50iW6 z7L)chW2rd3xia1N;V$X)^kv@sNX7y(=(!`AIraQ9pBFrd%aWdwD3i}Tpn7<$S-EY- zu}%bJ$o)}U;#Rk*m)hEUE6KXj!e5iE`vk}V#uo_N?ZAo3mN)8d$%WoKvK=Tt-|hb1 zC8uUjn&Knr#kk=If|kn-2jr`z{$$@WL}xiSnV(KOQJXnwn|~|b^_KV8dV0E%z*&&0 z0zPA5WcSP~0*GQosagR~LEwaH(h7T-0E>6iZ|{2C@4N9~M?IN6PE=PE=d21+nX4m2 zPG`gy&ht^0`PP|~u;gH4a*=q6+fwp8kH9cL_^(@d*oQIq_$s(pJe5u72c&7567KHt zHHRrwiZ#UB$n064+lCaIzw2W4qR|E_B(IwI=p_%o1N=i8E$6J%`iw=<9ByBKn%Fz6^!dq1l4&Iryy2t zb@Qyt*?rEkCT6lr4n^$F#`O->rOaud zMaj`=pCz-O*`oe}C}FVzQ>W;J%XH{hR$34vdS{?09*O^P^6W0tW3@)ip{;-OEb}5W zyfWd{{F0>N7mf0_Oc8gEHBtiPBPda0+Z7;TvbtB}ve5_=_}C>t&|~f_^b#-#!eLu_ zIi-JR1s?Vm7>xZ^RLj2v;BNo+F*;F3F5BpDv>a1i0y0db+w08QU6zd5y!)s=bmU)Y zZiGpy*~m}{2pWwAXzcEdd^aFWO@g(3 zd_DG4_RDZfWCV3CgTx(-j27!Dr0i6e8d2z1k5gm`lWQCG_@p&ru6}Zhe{A`p-?jOR z-9?nADWC6XVmI)4xX9v1zw7OL@&RS)KZ+(Y1bpzv_P4RR?fdcrb0r4;#a;ptvtAcw zQ9Fho6m$=3H*r?>=@ErFdnSeB`R$IsK(oJR{kjq0z*3edTCTm}8N zvd@iiE-er*ZZ+h+_0;i(6v*BMi)NkZXa$LUQnYhdVAOiqN<*J>4K(@UliU*__?I~T zDtPGa%+QbXp&W-igg!PhOjRA?+J;Ppqh7H?b`Jfi`J2Dj+k6FdJ_c$I^J>l1^2rRi zCKzB#!WHgUPc7ifrV;Cp{>Yoo**qzEOc#%dPGWEY?3I4{-#(B0|CcyMa{r(SVlZrq zeJ#(qA#(o(4t(L-eC+ggfkfQv2xLYE6nxdA;!XQ%qlhNyv6{WPxBf_IEu|LhO%G(B z%m1{@5}hs=kXobFSXp<%RFzRR6>o?gy3<5+(fG0p^KfkUuTU~c-G+>#-|k-Cq<5of zS`8YntL1;~VJ3C1TyEZrD`*Xo_g8gi5cIv)it!)BV*J~swL)G~==e&Q^Ffi1-~4%r zHP*>4fg;c(a|O6@nEY4Lnb#u>NXzfAGWllS2m5q2(|TVC_W#4$r7ac{ACcNUf}ZUx zW{(8zSl4&i@d=mKZ295Rj{B6jqGvQB14OSUISH_GUyUOm-JK4 zf5=??r_O0eMbB9NZMM?~omuJ6<%%2@nK?a3=l?uT?~idK zyTJ=_y@Bog0lJMdw+qV}@_X3#pCpczRe5{pdDuI9je^KN>r-+uXsrrg!D{|u08Ac5 zYsHPY?0O6Lc23DG-#Ghnf3@;G5x+0xdy}=^t&mP>ffmkRB`N3c>z*8B?o(JL7R-=* z;l^A7UPFJSEB#kT%l_2O#Tu_^*LVpyrBF^R(@kDdzE*t^#$O~?q$^1Ws)5u(bvtW0 zUw3H)P_D=_gWT|CqCXt zMF5cION*`{xWCkqsR626OTMc!xqK%e@Yk==DE2iH>7skJL#yQKXhMP>_;pWJ;d*VLe5#No35-$N3mhQ z`-LkthBo)0WV~be^t3aoy$vsq@H3N*$BVg1IE(_LxKSOMtnWHPMDb@$u$Q=7BG|efEA4E<1!A zWGnIhyt#reH)NPxX8EF&8?5V_kXMjCzg`^Nee2|mm~62z^vmzs zk@wX;lUi+>bT)9NmZ^);LkY?#x)JTu4sn7ZXTt3GqW9Bcx31Igu0OYFOR&RyF>k!s z?`%_YdhyE`8JqXYxi0_uwng$mq>3SPk)Gt>al4ehQetm~WkrJH_PyP&i zQ?g-p@N2HbmnPJUG9S#!}Yh_$&rZUt2CM$Ty?J76;GtO3g%>Cyc zynpXbj|+;%V>u?J)9>CoeB5*@=mo1e$;sEi&3lx73dtKH6Nw}DCb^ZvR|>TH-L1rJ z=43#`A`huM8j$KMyZ7Bqe5yJNmuGh&YF;0^$e3kyKk?-|9P*eSz2uqb_|m7Qx2|($ zq~kH1`4DNuP}WW6@|lMtR+F%tYNfI-hGj-j@fm!^NuKv;&qs%WlU&y=JD6r(iGoa~ z!zT2n7Fo}`+FMBRn~k@glxfEHGA@-jRAQts(M9T-@c=@%7fGQ)=Z+CJEOy?4B2!Sh z^*2i!Fn+352$g^njp3`M?t`(uu1i4T1Fl`OuZ0OCZXrbsV_U9M4A<*d?rC`nvh_xi z^QyeyaPP2I$KdL|_Cy}S`4r-pbgL_K>q4)E0%PxUtnu+NdHZyED`%8`O>URjgCw78 zYgkjdj+;M#BDL6r3>1O@9GL=g&5ex-NB*0I1_O6wulzuFjt8fuV^(z|%5N-u7L+@j zVlFyEf3*ph=79|KCYlFd%GoG%tyh%En^$nZ$t*r@PJx<fG%PQ`(vIvv~9+_Izr&&uu2XUvGh2=Mn+C{z06 zH2JiG8VhW8RqdS1v3AmZ&rr<7Czx+|#bP;I{{E*!RNZ-&y7ryK%ED@WBRD28lznxF z{X~C5YR%q8k|-sWkAy3B8L?nCx?I101M9)Bffn6Im+lJ*{`sU-kov7pl6NJU8SyUC*{b0r* z4V(he0~bIh1^;c3e2=j|k56Q9Kv%j}yAt(Aqvt32T38PQ<6{jz(N$O-vP6l>uIpzP z@C98?Z=M5ry;Q+Wi#ea@2~;KOMxuBS*=I^V-=0B9VYb#b!=-69`c8;XCS+P@&MGwX zd-u_*ubszxjnVH*sT50@r_%=W7eNVO0k&c zrft?t@wR41ue;TpF^Af>=^vXg_~D>nd{SWR&_1o^5|IH?@4W&=v43TCa^PBBct=9r zB|u$iLe5a3LcHgQU-R4Y`|&fY-y>ulz4D*>l_uD&GQ<=H(ehV*_)PH?{#qyVqDu1{ z#o-mk+DPtPCow?`VsM}u54i-my|SE;KZC`kBo!O{E-u3Nk&;8pBUid_eiO-jPx{fk zdCjoVuTJK3rVsXk3hNya!z3|H-gt8nlVKR-xz1~7MwAU5LPf_FAwS_kHk4I{TLnEHPbaOo7)O zH}Sc5FW;R=oafa+3huSMDiU>PJ%K7P6jsgO3F{T(6iUQ8I+?ar!Oaaw$;IM-aSR2pBDr0iVOZi7<6}~au2^_#?_wUvYM9RJt+6W%r9OUpO%oP7 zHD+mIB5$}LXhWsKbJ!}GROE@drPN8vI%1Z5*Lxk|=dJbTdY5TjXczc^uB?YmUe7y# z7F`By8gz)-Gb^wX8<#3)!K$NDEk3Wiy_Yh*;GclrFy^)o4oME;;nfY7W{iyGGd&v% zA7Tzm5bw+8vk$Wh3s2v`qr;fOyol;PsCp?B z?7?}fA{JD|FlF!al$LC4>En15=&n!up{S(xg^eA0r15#bpW-F+r?zxdU6)Zl-Na31 zuPc*ri^&ognK}L^AhMg;I!K@TO?jHEDCX7WE%zzU)Vcb~UAWC_nD#PtY}q(tcJ-Yq zb5<}xTa7h^g*S&P&YLyG;<2doIhw!SzGw0lvaYVY4j)OOjqD9ets+l62l^Qf5|btzKz`*?C>o311Zj|wl!={|Z zU$e-kd0Rt*svFs8x?L(qBBmMUZM-#`oMlXP7y8KJ%f`NCo*oqMFfH>0wkBE*dJFyh z`0|BhwZ*Byqm~a&)h*u7mAG^U*!jhQx6~rE5c5XCgesJ(towNnI-tIRP&>OK*N9)r z)yTZADdtf8TO@SAr)FJuw16j*AzZXaSKX+TQ`Mh}TS*g_z(T`Wq`MDG0&TXl%&Kp=2 zt%F-~WJe}hPqBpLHEpaHkGN+{6u$ZO1@9liWlGHi5qo@zbltD7C#)Z<@gm~7Fib}-la?b@)FSh zM{`^8n_|XSbD1qh6o6$z+iqobqg=YXgG?69GsikPT^Yvu;xm?B(XWn-y=b#j-RIIq z9&(QM?LS%kXd1Aj{ri!p?)6_LwsX@DtiIlAXn=<&T}7mA8w%P(Q_PbEn%B;Lh7SLJ zeG+gNdD4LW#ZARJ6MHywWMc9^L00^&4|+TwTW}q*$WVU$svJ*ynoxP|2)|Ks8NB^+iF5qwAiy5;e?t%@o4Z78t!Mf^02+uM|AVHFs zILODO_&-Eqf<8ui9ex4%i25PlMCb&`$+T1Rh~`$A#-R4_4ZV<$=X~AVuVPL6{r>N? zf&c$(%^tPyy98Xvk|sBqej4?+nqk$uztO19T&j*8(tddeB427!iY@_pr6vfu=%8MSiVHC|cC6Z#s;Sd+y6;5%CBC()ThZ+zva zqz*ne4F(0ZzQijNXYC8-phT8XY>)$hTq?AB!-10~H}qYr%LG9B#4koSn|8WV8vFhO zvfzrSv~mYzN{9b^nxy?lj9>ZosuLFEFBj}qGlDf;StgR)NwI)Y6ZXXlKX%K-#Oo^F zYJ#}x-aCAX5tJV0vY1~>ITu_$Nb@%L?E>XlGfrz9X;g`G`xHDHpkOLf!4{Z*HG7_rX&a@! za)$xOXW89@@$eaUcR?z%q&h+xfWfriRih51^tJl^nDdX{Vxh8%Yb_(D9)I;9{^vWP zDB!g``M5-x63}eeP{`fyq}S`!dLpZnIl=mgd#Ucz&F|6fGjS}Dh51|t9wE6-wo(L^ zFPhGqB|Vn~I_p5{8u5sK^Z0E<$Sq7iilL5rs{%x^WjY;zg0Yb&_yc#^n8YLB+ z;lOhM=_VrnN#<|vBZPeQ*;I>rvBJrr>;9*NDhwS%S(kgrB_L9>pbz1j(`zuz4mdfz szw|CHM(`Pyrt?=O=l{lC#pUGx0IDPeCIA2c literal 0 HcmV?d00001 diff --git a/iterator/haoxiqiang/readme.md b/iterator/haoxiqiang/readme.md new file mode 100644 index 0000000..7e0b6ce --- /dev/null +++ b/iterator/haoxiqiang/readme.md @@ -0,0 +1,169 @@ +Android设计模式源码解析之迭代器(Iterator)模式 +======================================== +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 迭代器模式 分析 +> Android系统版本: 5.0 +> 分析者: [haoxiqiang](https://github.com/Haoxiqiang),分析状态:完成,校对者:,校对状态:未完成 + + + +## 1. 模式介绍 +### 模式的定义 +迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 + +### 使用场景 +  面向对象设计原则中的单一职责原则,对于不同的功能,我们要尽可能的把这个功能分解出单一的职责,不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。 +  Java JDK 1.2 版开始支持迭代器。每一个迭代器提供next()以及hasNext()方法,同时也支持remove()(1.8的时候remove已经成为default throw new UnsupportedOperationException("remove"))。对Android来说,集合Collection实现了Iterable接口,就是说,无论是List的一大家子还是Map的一大家子,我们都可以使用Iterator来遍历里面的元素,[可以使用Iterator的集合](http://docs.oracle.com/javase/8/docs/api/java/util/package-tree.html) + +## 2. UML类图 +    + ![iterator_2.png](iterator_2.jpg) + +### 角色介绍   +* hasNext:用来判断集合中是否存在未被遍历到的元素 +* remove:移除元素 +* next:将游标(位置)移动到下一个位置 + + +## 3. 模式的简单实现 + +下面直接写出几种集合的遍历方式 + +### HashMap的遍历 +``` +HashMap colorMap=new HashMap<>(); +colorMap.put("Color1","Red"); +colorMap.put("Color2","Blue"); +Iterator iterator = colorMap.keySet().iterator(); +while( iterator. hasNext() ){ + String key = (String) iterator.next(); + String value = colorMap.get(key); +} +``` +### JSONObject的遍历 +``` +String paramString = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}"; +JSONObject menuJSONObj = new JSONObject(paramString); +JSONObject menuObj = menuJSONObj.getJSONObject("menu"); +Iterator iter = menuObj.keys(); +while(iter.hasNext()){ + String key = (String)iter.next(); + String value = menuObj.getString(key); +} +``` +下面我们自己实现一个Iterator的集合 + +``` +... +public Iterator iterator() { + return new ArrayIterator(); +} + +private class ArrayIterator implements Iterator { +/** + * Number of elements remaining in this iteration + */ +private int remaining = size; + +/** + * Index of element that remove() would remove, or -1 if no such elt + */ +private int removalIndex = -1; + +@Override +public boolean hasNext() { + return remaining != 0; +} + +@Override +public Mileage next() { + Mileage mileage = new Mileage(); + removalIndex = size-remaining; + mileage.name = String.valueOf(versionCodes[removalIndex]); + mileage.value = versionMileages[removalIndex]; + remaining-=1; + return mileage; +} + +@Override +public void remove() { + versionCodes[removalIndex]=-1; + versionMileages[removalIndex]="It was set null"; +} +} +... +``` +使用的过程如下,我们特意使用了remove方法,注意这个只是一个示例,和大多数的集合相比,该实现并不严谨 + +``` +AndroidMileage androidMileage = new AndroidMileage(); +Iterator iterator =androidMileage.iterator(); +while (iterator.hasNext()){ + AndroidMileage.Mileage mileage = iterator.next(); + if(mileage.name.equalsIgnoreCase("16")){ + //remove掉的是当前的这个,暂时只是置空,并未真的移掉 + iterator.remove(); + } + Log.e("mileage",mileage.toString()); +} +``` +### 原理分析 +一个集合想要实现Iterator很是很简单的,需要注意的是每次需要重新生成一个Iterator来进行遍历.且遍历过程是单方向的,HashMap是通过一个类似HashIterator来实现的,我们为了解释简单,这里只是研究ArrayList(此处以Android L源码为例,其他版本略有不同) + +``` +@Override public Iterator iterator() { + return new ArrayListIterator(); +} + +private class ArrayListIterator implements Iterator { + /** Number of elements remaining in this iteration */ + private int remaining = size; + + /** Index of element that remove() would remove, or -1 if no such elt */ + private int removalIndex = -1; + + /** The expected modCount value */ + private int expectedModCount = modCount; + + public boolean hasNext() { + return remaining != 0; + } + + @SuppressWarnings("unchecked") public E next() { + ArrayList ourList = ArrayList.this; + int rem = remaining; + if (ourList.modCount != expectedModCount) { + throw new ConcurrentModificationException(); + } + if (rem == 0) { + throw new NoSuchElementException(); + } + remaining = rem - 1; + return (E) ourList.array[removalIndex = ourList.size - rem]; + } + + public void remove() { + Object[] a = array; + int removalIdx = removalIndex; + if (modCount != expectedModCount) { + throw new ConcurrentModificationException(); + } + if (removalIdx < 0) { + throw new IllegalStateException(); + } + System.arraycopy(a, removalIdx + 1, a, removalIdx, remaining); + a[--size] = null; // Prevent memory leak + removalIndex = -1; + expectedModCount = ++modCount; + } +} +``` + +* java中的写法一般都是通过iterator()来生成Iterator,保证iterator()每次生成新的实例 +* remaining初始化使用整个list的size大小,removalIndex表示remove掉的位置,modCount在集合大小发生变化的时候后都会进行一次modCount++操作,避免数据不一致,前面我写的例子这方面没有写,请务必注意这点 +* hasNext方法中,因为remaining是一个size->0的变化过程,这样只需要判断非0就可以得知当前遍历的是否还有未完成的元素 +* next,第一次调用的时候返回array[0]的元素,这个过程中removalIndex会被设置成当前array的index +* remove的实现是直接操作的内存中的数据,是能够直接删掉元素的,不展开了 + +### 题外话 +如果你想写一个集合的数据结构的话,通过实现Iterator来操作集合,这样能够降低学习成本,因为你让外部代码透明的访问集合内部的数据.当然在前面的例子中,你也见到了ConcurrentModificationException这个Exception,如果你在遍历的过程中,集合发生改变,变多变少,内容变化都是算,就会抛出来这个异常. + From d454223b2e6ad496ff47a6dcc17e19a7dacdb80f Mon Sep 17 00:00:00 2001 From: haoxiqiang Date: Fri, 13 Mar 2015 18:35:06 +0800 Subject: [PATCH 11/56] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 84eabc9..a346840 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ | [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | -| [迭代器模式](iterator/Haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 撒丫子赶稿中 | +| [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 待校对 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | From 1825256a61c0a2e7fc5a94597d2dd987d5b9546b Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Fri, 13 Mar 2015 20:04:15 +0800 Subject: [PATCH 12/56] update some code --- chain-of-responsibility/AigeStudio/readme.md | 81 ++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/chain-of-responsibility/AigeStudio/readme.md b/chain-of-responsibility/AigeStudio/readme.md index 79f5730..ad5e916 100644 --- a/chain-of-responsibility/AigeStudio/readme.md +++ b/chain-of-responsibility/AigeStudio/readme.md @@ -222,6 +222,87 @@ public class Client { > >Manager: Of course Yes! +是不是感觉有点懂了?当然上面的代码虽然在一定程度上体现了责任链模式的思想,但是确是非常terrible的。作为一个code新手可以原谅,但是对有一定经验的code+来说就不可饶恕了,很明显所有的老大都有共同的handleRequest方法而程序猿也有不同类型的,比如一个公司的php、c/c++、Android、IOS等等,所有的这些共性我们都可以将其抽象为一个抽象类或接口,比如我们的程序猿抽象父类: + +```java +/** + * 程序猿抽象接口 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public abstract class ProgramApes { + /** + * 获取程序员具体的差旅费用 + * + * @return 要多少钱 + */ + public abstract int getExpenses(); + + /** + * 获取差旅费申请 + * + * @return Just a request + */ + public abstract String getApply(); +} +``` + +这时我们就可以实现该接口使用呆毛具现化一个具体的程序猿,比如Android猿: + +```java +/** + * Android程序猿类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class AndroidApe extends ProgramApes { + private int expenses;// 声明整型成员变量表示出差费用 + private String apply = "爹要点钱出差";// 声明字符串型成员变量表示差旅申请 + + /* + * 含参构造方法 + */ + public AndroidApe(int expenses) { + this.expenses = expenses; + } + + @Override + public int getExpenses() { + return expenses; + } + + @Override + public String getApply() { + return apply; + } +} +``` +同样的,所有的老大都有一个批复经费申请的权利,我们把这个权利抽象为一个IPower接口: + +```java +/** + * 老大们的权利接口 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public interface IPower { + /** + * 处理请求 + * + * @param ape + * 具体的猿 + */ + public void handleRequest(ProgramApe ape); +} +``` + +然后让所有的老大们实现该接口即可其它不变,而场景类Client中也只是修改各个老大的引用类型为IPower而已,具体代码就不贴了,运行效果也类似。 + +然而上面的代码依然问题重重,为什么呢?大家想想,当程序猿发出一个申请时却是在场景类中做出判断决定的……然而这个职责事实上应该由老大们来承担并作出决定,上面的代码搞反了……既然知道了错误,那么我们就来再次重构一下代码: + ### 总结 `对上述的简单示例进行总结说明` From e5985affd99ea8b5aa8ac44ee91f78cfc0eed3de Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Fri, 13 Mar 2015 20:45:30 +0800 Subject: [PATCH 13/56] update uml picture --- .../images/chain-of-responsibility.jpg | Bin 0 -> 51658 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 chain-of-responsibility/AigeStudio/images/chain-of-responsibility.jpg diff --git a/chain-of-responsibility/AigeStudio/images/chain-of-responsibility.jpg b/chain-of-responsibility/AigeStudio/images/chain-of-responsibility.jpg new file mode 100644 index 0000000000000000000000000000000000000000..59edae7a41f8e96b7a4bdf5a878b8802f530b8fe GIT binary patch literal 51658 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 pIV+ZiynMF0 Date: Fri, 13 Mar 2015 21:53:38 +0800 Subject: [PATCH 14/56] update except android --- chain-of-responsibility/AigeStudio/readme.md | 217 ++++++++++++++++++- 1 file changed, 211 insertions(+), 6 deletions(-) diff --git a/chain-of-responsibility/AigeStudio/readme.md b/chain-of-responsibility/AigeStudio/readme.md index ad5e916..482b9dc 100644 --- a/chain-of-responsibility/AigeStudio/readme.md +++ b/chain-of-responsibility/AigeStudio/readme.md @@ -2,7 +2,7 @@ Android设计模式源码解析之责任链模式 ==================================== > 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中责任链模式分析 > Android系统版本: 4.4.4 -> 分析者:[Aige](https://github.com/AigeStudio),分析状态:完成,校对者:[SM哥](https://github.com/bboyfeiyu),校对状态:未开始 +> 分析者:[Aige](https://github.com/AigeStudio),分析状态:完成,校对者:[SM哥](https://github.com/bboyfeiyu),校对状态:撒丫校对中 ## 1. 模式介绍 @@ -15,10 +15,14 @@ Android设计模式源码解析之责任链模式 ## 2. UML类图 -制作中 +![UML](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis/blob/master/chain-of-responsibility/AigeStudio/images/chain-of-responsibility.jpg?raw=true) ### 角色介绍 -你猜 +Client:客户端 + +Handler:抽象处理者 + +ConcreteHandler:具体处理者 @@ -303,12 +307,213 @@ public interface IPower { 然而上面的代码依然问题重重,为什么呢?大家想想,当程序猿发出一个申请时却是在场景类中做出判断决定的……然而这个职责事实上应该由老大们来承担并作出决定,上面的代码搞反了……既然知道了错误,那么我们就来再次重构一下代码: +把所有老大抽象为一个leader抽象类,在该抽象类中实现处理逻辑: -### 总结 -`对上述的简单示例进行总结说明` +```java +/** + * 领导人抽象类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public abstract class Leader { + private int expenses;// 当前领导能批复的金额 + private Leader mSuperiorLeader;// 上级领导 + + /** + * 含参构造方法 + * + * @param expenses + * 当前领导能批复的金额 + */ + public Leader(int expenses) { + this.expenses = expenses; + } + + /** + * 回应程序猿 + * + * @param ape + * 具体的程序猿 + */ + protected abstract void reply(ProgramApe ape); + + /** + * 处理请求 + * + * @param ape + * 具体的程序猿 + */ + public void handleRequest(ProgramApe ape) { + /* + * 如果说程序猿申请的money在当前领导的批复范围内 + */ + if (ape.getExpenses() <= expenses) { + // 那么就由当前领导批复即可 + reply(ape); + } else { + /* + * 否则看看当前领导有木有上级 + */ + if (null != mSuperiorLeader) { + // 有的话简单撒直接扔给上级处理即可 + mSuperiorLeader.handleRequest(ape); + } else { + // 没有上级的话就批复不了老……不过在这个场景中总会有领导批复的淡定 + System.out.println("Goodbye my money......"); + } + } + } + + /** + * 为当前领导设置一个上级领导 + * + * @param superiorLeader + * 上级领导 + */ + public void setLeader(Leader superiorLeader) { + this.mSuperiorLeader = superiorLeader; + } +} +``` + +这么一来,我们的领导老大们就有了实实在在的权利职责去处理底层苦逼程序猿的请求。OK,接下来要做的事就是让所有的领导继承该类: + +```Java +/** + * 小组长类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class GroupLeader extends Leader { + + public GroupLeader() { + super(1000); + } + + @Override + protected void reply(ProgramApe ape) { + System.out.println(ape.getApply()); + System.out.println("GroupLeader: Of course Yes!"); + } +} +``` + +```java +/** + * 项目主管类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Director extends Leader{ + public Director() { + super(5000); + } + + @Override + protected void reply(ProgramApe ape) { + System.out.println(ape.getApply()); + System.out.println("Director: Of course Yes!"); + } +} +``` + +```java +/** + * 部门经理类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Manager extends Leader { + public Manager() { + super(10000); + } + + @Override + protected void reply(ProgramApe ape) { + System.out.println(ape.getApply()); + System.out.println("Manager: Of course Yes!"); + } +} +``` + +```java +/** + * 老总类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Boss extends Leader { + public Boss() { + super(40000); + } + + @Override + protected void reply(ProgramApe ape) { + System.out.println(ape.getApply()); + System.out.println("Boss: Of course Yes!"); + } +} +``` - +最后,更新我们的场景类,将其从责任人的角色中解放出来: + +```java +/** + * 场景模拟类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Client { + public static void main(String[] args) { + /* + * 先来一个程序猿 这里给他一个三万以内的随机值表示需要申请的差旅费 + */ + ProgramApe ape = new ProgramApe((int) (Math.random() * 30000)); + + /* + * 再来四个老大 + */ + Leader leader = new GroupLeader(); + Leader director = new Director(); + Leader manager = new Manager(); + Leader boss = new Boss(); + + /* + * 设置老大的上一个老大 + */ + leader.setLeader(director); + director.setLeader(manager); + manager.setLeader(boss); + + // 处理申请 + leader.handleRequest(ape); + } +} +``` + +运行三次,下面是三次运行的结果(注:由于随机值的原因你的结果也许与我不一样): + +>爹要点钱出差 +> +>Boss: Of course Yes! +*** +>爹要点钱出差 +> +>Director: Of course Yes! +*** +>爹要点钱出差 +> +>Boss: Of course Yes! + +### 总结 +OK,这样我们就将请求和处理分离开来,对于程序猿来说,不需要知道是谁给他批复的钱,而对于领导们来说,也不需要确切地知道是批给哪个程序猿,只要根据自己的责任做出处理即可,由此将两者优雅地解耦。 ## Android源码中的模式实现 `分析源码中的模式实现,列出相关源码,以及使用该模式原因等` From 5a80c71bd532ff0f96af2a39dfbe3be2596aaa32 Mon Sep 17 00:00:00 2001 From: haoxiqiang Date: Fri, 13 Mar 2015 22:36:18 +0800 Subject: [PATCH 15/56] 1.format the iterator files --- .../images/Iterator_UML_class_diagram.svg.png | Bin 0 -> 10765 bytes iterator/haoxiqiang/iterator_2.jpg | Bin 17099 -> 0 bytes iterator/haoxiqiang/readme.md | 81 +++++++++++------- .../{ => resource}/AndroidMileage.java | 0 4 files changed, 49 insertions(+), 32 deletions(-) create mode 100644 iterator/haoxiqiang/images/Iterator_UML_class_diagram.svg.png delete mode 100644 iterator/haoxiqiang/iterator_2.jpg rename iterator/haoxiqiang/{ => resource}/AndroidMileage.java (100%) diff --git a/iterator/haoxiqiang/images/Iterator_UML_class_diagram.svg.png b/iterator/haoxiqiang/images/Iterator_UML_class_diagram.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..f7fe4ca9c03318fcd4641627b031eec9175b31e1 GIT binary patch literal 10765 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 F{s-&oTowQT literal 0 HcmV?d00001 diff --git a/iterator/haoxiqiang/iterator_2.jpg b/iterator/haoxiqiang/iterator_2.jpg deleted file mode 100644 index 256f06038ea79d209c1c2a1206486439ece83503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17099 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 szw|CHM(`Pyrt?=O=l{lC#pUGx0IDPeCIA2c diff --git a/iterator/haoxiqiang/readme.md b/iterator/haoxiqiang/readme.md index 7e0b6ce..f6f544a 100644 --- a/iterator/haoxiqiang/readme.md +++ b/iterator/haoxiqiang/readme.md @@ -10,46 +10,25 @@ Android设计模式源码解析之迭代器(Iterator)模式 ### 模式的定义 迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。 -### 使用场景 -  面向对象设计原则中的单一职责原则,对于不同的功能,我们要尽可能的把这个功能分解出单一的职责,不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。 +### 模式的使用场景   Java JDK 1.2 版开始支持迭代器。每一个迭代器提供next()以及hasNext()方法,同时也支持remove()(1.8的时候remove已经成为default throw new UnsupportedOperationException("remove"))。对Android来说,集合Collection实现了Iterable接口,就是说,无论是List的一大家子还是Map的一大家子,我们都可以使用Iterator来遍历里面的元素,[可以使用Iterator的集合](http://docs.oracle.com/javase/8/docs/api/java/util/package-tree.html) ## 2. UML类图     - ![iterator_2.png](iterator_2.jpg) + ![iterator](images/Iterator_UML_class_diagram.svg.png) ### 角色介绍   -* hasNext:用来判断集合中是否存在未被遍历到的元素 -* remove:移除元素 -* next:将游标(位置)移动到下一个位置 +* 迭代器接口Iterator:该接口必须定义实现迭代功能的最小定义方法集比如提供hasNext()和next()方法。 +* 迭代器实现类:迭代器接口Iterator的实现类。可以根据具体情况加以实现。 +* 容器接口:定义基本功能以及提供类似Iterator iterator()的方法。 +* 容器实现类:容器接口的实现类。必须实现Iterator iterator()方法。 ## 3. 模式的简单实现 +### 简单实现的介绍 +我们有一个数组,对其遍历的过程我们希望使用者像ArrayList一样的使用,我们就可以用过iterator来实现. -下面直接写出几种集合的遍历方式 - -### HashMap的遍历 -``` -HashMap colorMap=new HashMap<>(); -colorMap.put("Color1","Red"); -colorMap.put("Color2","Blue"); -Iterator iterator = colorMap.keySet().iterator(); -while( iterator. hasNext() ){ - String key = (String) iterator.next(); - String value = colorMap.get(key); -} -``` -### JSONObject的遍历 -``` -String paramString = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}"; -JSONObject menuJSONObj = new JSONObject(paramString); -JSONObject menuObj = menuJSONObj.getJSONObject("menu"); -Iterator iter = menuObj.keys(); -while(iter.hasNext()){ - String key = (String)iter.next(); - String value = menuObj.getString(key); -} -``` +### 实现源码 下面我们自己实现一个Iterator的集合 ``` @@ -106,7 +85,32 @@ while (iterator.hasNext()){ Log.e("mileage",mileage.toString()); } ``` -### 原理分析 + +下面直接写出几种集合的遍历方式,大家可以对比一下 + +* HashMap的遍历 +``` +HashMap colorMap=new HashMap<>(); +colorMap.put("Color1","Red"); +colorMap.put("Color2","Blue"); +Iterator iterator = colorMap.keySet().iterator(); +while( iterator. hasNext() ){ + String key = (String) iterator.next(); + String value = colorMap.get(key); +} +``` +* JSONObject的遍历 +``` +String paramString = "{menu:{\"1\":\"sql\", \"2\":\"android\", \"3\":\"mvc\"}}"; +JSONObject menuJSONObj = new JSONObject(paramString); +JSONObject menuObj = menuJSONObj.getJSONObject("menu"); +Iterator iter = menuObj.keys(); +while(iter.hasNext()){ + String key = (String)iter.next(); + String value = menuObj.getString(key); +} +``` +## Android源码中的模式实现 一个集合想要实现Iterator很是很简单的,需要注意的是每次需要重新生成一个Iterator来进行遍历.且遍历过程是单方向的,HashMap是通过一个类似HashIterator来实现的,我们为了解释简单,这里只是研究ArrayList(此处以Android L源码为例,其他版本略有不同) ``` @@ -164,6 +168,19 @@ private class ArrayListIterator implements Iterator { * next,第一次调用的时候返回array[0]的元素,这个过程中removalIndex会被设置成当前array的index * remove的实现是直接操作的内存中的数据,是能够直接删掉元素的,不展开了 + + +## 4. 杂谈 +### 优点与缺点 +#### 优点 +* 面向对象设计原则中的单一职责原则,对于不同的功能,我们要尽可能的把这个功能分解出单一的职责,不同的类去承担不同的职责。Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据。 + +#### 缺点 +* 会产生多余的对象,消耗内存; +* 遍历过程是一个单向且不可逆的遍历 +* 如果你在遍历的过程中,集合发生改变,变多变少,内容变化都是算,就会抛出来ConcurrentModificationException异常. + + ### 题外话 -如果你想写一个集合的数据结构的话,通过实现Iterator来操作集合,这样能够降低学习成本,因为你让外部代码透明的访问集合内部的数据.当然在前面的例子中,你也见到了ConcurrentModificationException这个Exception,如果你在遍历的过程中,集合发生改变,变多变少,内容变化都是算,就会抛出来这个异常. + diff --git a/iterator/haoxiqiang/AndroidMileage.java b/iterator/haoxiqiang/resource/AndroidMileage.java similarity index 100% rename from iterator/haoxiqiang/AndroidMileage.java rename to iterator/haoxiqiang/resource/AndroidMileage.java From f67eb2fa5607f704acdea7e016a759b438759a90 Mon Sep 17 00:00:00 2001 From: haoxiqiang Date: Fri, 13 Mar 2015 22:39:44 +0800 Subject: [PATCH 16/56] Update readme.md --- iterator/haoxiqiang/readme.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/iterator/haoxiqiang/readme.md b/iterator/haoxiqiang/readme.md index f6f544a..759d2a3 100644 --- a/iterator/haoxiqiang/readme.md +++ b/iterator/haoxiqiang/readme.md @@ -181,6 +181,3 @@ private class ArrayListIterator implements Iterator { * 如果你在遍历的过程中,集合发生改变,变多变少,内容变化都是算,就会抛出来ConcurrentModificationException异常. -### 题外话 - - From 3d2608f327fba6ea1296cf56bf2a543b8fd73463 Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 00:09:57 +0800 Subject: [PATCH 17/56] update code in android --- chain-of-responsibility/AigeStudio/readme.md | 105 ++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) diff --git a/chain-of-responsibility/AigeStudio/readme.md b/chain-of-responsibility/AigeStudio/readme.md index 482b9dc..240f423 100644 --- a/chain-of-responsibility/AigeStudio/readme.md +++ b/chain-of-responsibility/AigeStudio/readme.md @@ -516,7 +516,110 @@ public class Client { OK,这样我们就将请求和处理分离开来,对于程序猿来说,不需要知道是谁给他批复的钱,而对于领导们来说,也不需要确切地知道是批给哪个程序猿,只要根据自己的责任做出处理即可,由此将两者优雅地解耦。 ## Android源码中的模式实现 -`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` +Android中关于责任链模式比较明显的体现就是在事件分发过程中对事件的投递,其实严格来说,事件投递的模式并不是严格的责任链模式,但是其是责任链模式的一种变种体现,在ViewGroup中对事件处理者的查找方式如下: + +```java +@Override +public boolean dispatchTouchEvent(MotionEvent ev) { + // 省略两行代码………… + + boolean handled = false; + if (onFilterTouchEventForSecurity(ev)) { + + // 省略N行代码………… + + /* + * 如果事件未被取消并未被拦截 + */ + if (!canceled && !intercepted) { + /* + * 如果事件为起始事件 + */ + if (actionMasked == MotionEvent.ACTION_DOWN + || (split && actionMasked == MotionEvent.ACTION_POINTER_DOWN) + || actionMasked == MotionEvent.ACTION_HOVER_MOVE) { + + // 省掉部分逻辑………… + + final int childrenCount = mChildrenCount; + + /* + * 如果TouchTarget为空并且子元素不为0 + */ + if (newTouchTarget == null && childrenCount != 0) { + final float x = ev.getX(actionIndex); + final float y = ev.getY(actionIndex); + + final View[] children = mChildren; + + final boolean customOrder = isChildrenDrawingOrderEnabled(); + + /* + * 遍历子元素 + */ + for (int i = childrenCount - 1; i >= 0; i--) { + final int childIndex = customOrder ? + getChildDrawingOrder(childrenCount, i) : i; + final View child = children[childIndex]; + + /* + * 如果这个子元素无法接收Pointer Event或这个事件点压根就没有落在子元素的边界范围内 + */ + if (!canViewReceivePointerEvents(child) + || !isTransformedTouchPointInView(x, y, child, null)) { + // 那么就跳出该次循环继续遍历 + continue; + } + + // 找到Event该由哪个子元素持有 + newTouchTarget = getTouchTarget(child); + + + if (newTouchTarget != null) { + newTouchTarget.pointerIdBits |= idBitsToAssign; + break; + } + + resetCancelNextUpFlag(child); + + /* + * 投递事件执行触摸操作 + * 如果子元素还是一个ViewGroup则递归调用重复此过程 + * 如果子元素是一个View那么则会调用View的dispatchTouchEvent并最终由onTouchEvent处理 + */ + if (dispatchTransformedTouchEvent(ev, false, child, idBitsToAssign)) { + mLastTouchDownTime = ev.getDownTime(); + mLastTouchDownIndex = childIndex; + mLastTouchDownX = ev.getX(); + mLastTouchDownY = ev.getY(); + newTouchTarget = addTouchTarget(child, idBitsToAssign); + alreadyDispatchedToNewTouchTarget = true; + break; + } + } + } + + /* + * 如果发现没有子元素可以持有该次事件 + */ + if (newTouchTarget == null && mFirstTouchTarget != null) { + newTouchTarget = mFirstTouchTarget; + while (newTouchTarget.next != null) { + newTouchTarget = newTouchTarget.next; + } + newTouchTarget.pointerIdBits |= idBitsToAssign; + } + } + } + + // 省去不必要代码…… + } + + // 省去一行代码…… + + return handled; +} +``` From 77243b561c29e306ab199280ef8c8e4ebc3455a7 Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 00:32:05 +0800 Subject: [PATCH 18/56] update all --- chain-of-responsibility/AigeStudio/readme.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/chain-of-responsibility/AigeStudio/readme.md b/chain-of-responsibility/AigeStudio/readme.md index 240f423..17bc6ee 100644 --- a/chain-of-responsibility/AigeStudio/readme.md +++ b/chain-of-responsibility/AigeStudio/readme.md @@ -621,13 +621,8 @@ public boolean dispatchTouchEvent(MotionEvent ev) { } ``` - - +ViewGroup事件投递的递归调用就类似于一条责任链,一旦其寻找到责任者,那么将由责任者持有并消费掉该次事件,具体的体现在View的onTouchEvent方法中返回值的设置(这里介于篇幅就不具体介绍ViewGroup对事件的处理了),如果onTouchEvent返回false那么意味着当前View不会是该次事件的责任人将不会对其持有,如果为true则相反,此时View会持有该事件并不再向外传递。 ## 4. 杂谈 -该模式的优缺点以及自己的一些感悟,非所有项目必须。 - - - -`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` +世界不是完美的,所以不会有完美的事物存在。就像所有的设计模式一样, 有优点优缺点,但是总的来说优点必定大于缺点或者说缺点相对于优点来说更可控。责任链模式也一样,有点显而易见,可以对请求者和处理者关系的解耦提高代码的灵活性,比如上面我们的例子中如果在主管和经理之间多了一个总监,那么总监可以批复小于7500的经费,这时候根据我们上面重构的模式,仅需新建一个总监类继承Leader即可其它所有的存在类都可保持不变。责任链模式的最大缺点是对链中责任人的遍历,如果责任人太多那么遍历必定会影响性能,特别是在一些递归调用中,要慎重。 From 92c2edb4ae0035e9ee566b1adf45876a2ce0b8f0 Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 00:33:45 +0800 Subject: [PATCH 19/56] README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a346840..e8bb874 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ | [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | | [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 待校对 | -| [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | +| [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| SM哥校对中 | | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | From a46efb6214dd77c930bd90e8f90e6a2f37c03fef Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 13:48:54 +0800 Subject: [PATCH 20/56] update dispatchTransformedTouchEvent --- chain-of-responsibility/AigeStudio/readme.md | 103 +++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/chain-of-responsibility/AigeStudio/readme.md b/chain-of-responsibility/AigeStudio/readme.md index 17bc6ee..b5c6a49 100644 --- a/chain-of-responsibility/AigeStudio/readme.md +++ b/chain-of-responsibility/AigeStudio/readme.md @@ -621,6 +621,109 @@ public boolean dispatchTouchEvent(MotionEvent ev) { } ``` +再来看看dispatchTransformedTouchEvent方法是如何调度子元素dispatchTouchEvent方法的: + +```java +private boolean dispatchTransformedTouchEvent(MotionEvent event, boolean cancel, + View child, int desiredPointerIdBits) { + final boolean handled; + + final int oldAction = event.getAction(); + + /* + * 如果事件被取消 + */ + if (cancel || oldAction == MotionEvent.ACTION_CANCEL) { + event.setAction(MotionEvent.ACTION_CANCEL); + + /* + * 如果没有子元素 + */ + if (child == null) { + // 那么就直接调用父类的dispatchTouchEvent注意这里的父类终会为View类 + handled = super.dispatchTouchEvent(event); + } else { + // 如果有子元素则传递cancle事件 + handled = child.dispatchTouchEvent(event); + } + event.setAction(oldAction); + return handled; + } + + /* + * 计算即将被传递的点的数量 + */ + final int oldPointerIdBits = event.getPointerIdBits(); + final int newPointerIdBits = oldPointerIdBits & desiredPointerIdBits; + + /* + * 如果事件木有相应的点那么就丢弃该次事件 + */ + if (newPointerIdBits == 0) { + return false; + } + + // 声明临时变量保存坐标转换后的MotionEvent + final MotionEvent transformedEvent; + + /* + * 如果事件点的数量一致 + */ + if (newPointerIdBits == oldPointerIdBits) { + /* + * 子元素为空或子元素有一个单位矩阵 + */ + if (child == null || child.hasIdentityMatrix()) { + /* + * 再次区分子元素为空的情况 + */ + if (child == null) { + // 为空则调用父类dispatchTouchEvent + handled = super.dispatchTouchEvent(event); + } else { + // 否则尝试获取xy方向上的偏移量(如果通过scrollTo或scrollBy对子视图进行滚动的话) + final float offsetX = mScrollX - child.mLeft; + final float offsetY = mScrollY - child.mTop; + + // 将MotionEvent进行坐标变换 + event.offsetLocation(offsetX, offsetY); + + // 再将变换后的MotionEvent传递给子元素 + handled = child.dispatchTouchEvent(event); + + // 复位MotionEvent以便之后再次使用 + event.offsetLocation(-offsetX, -offsetY); + } + + // 如果通过以上的逻辑判断当前事件被持有则可以直接返回 + return handled; + } + transformedEvent = MotionEvent.obtain(event); + } else { + transformedEvent = event.split(newPointerIdBits); + } + + /* + * 下述雷同不再累赘 + */ + if (child == null) { + handled = super.dispatchTouchEvent(transformedEvent); + } else { + final float offsetX = mScrollX - child.mLeft; + final float offsetY = mScrollY - child.mTop; + transformedEvent.offsetLocation(offsetX, offsetY); + if (! child.hasIdentityMatrix()) { + transformedEvent.transform(child.getInverseMatrix()); + } + + handled = child.dispatchTouchEvent(transformedEvent); + } + + transformedEvent.recycle(); + return handled; +} +``` + ViewGroup事件投递的递归调用就类似于一条责任链,一旦其寻找到责任者,那么将由责任者持有并消费掉该次事件,具体的体现在View的onTouchEvent方法中返回值的设置(这里介于篇幅就不具体介绍ViewGroup对事件的处理了),如果onTouchEvent返回false那么意味着当前View不会是该次事件的责任人将不会对其持有,如果为true则相反,此时View会持有该事件并不再向外传递。 ## 4. 杂谈 From 359ae5306174a31164d57a82e823fd7a6e8b6ce1 Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 16:55:34 +0800 Subject: [PATCH 21/56] update factory --- factory-method/AigeStudio/readme.md | 58 +++++++++++++++++++++++++++++ factory-method/README.md | 4 +- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 factory-method/AigeStudio/readme.md diff --git a/factory-method/AigeStudio/readme.md b/factory-method/AigeStudio/readme.md new file mode 100644 index 0000000..4bd38b2 --- /dev/null +++ b/factory-method/AigeStudio/readme.md @@ -0,0 +1,58 @@ +Android设计模式源码解析之${模式名} +==================================== +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 ${模式名} 分析 +> Android系统版本: ${系统版本号,例如 4.2.1} +> 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 + + +`复制一份到自己的项目文件夹下,然后根据自己项目替换掉 ${} 内容,删掉本行及上面两行。` + +该任务不仅要用java写出该模式的一个简单示例,还有分析该模式在Android源码中的应用,可以参考[Mr.Simple的单例模式](singleton/mr.simple/readme.md)、[Mr.Simple的观察者模式](observer/mr.simple/readme.md)。 + + +## 1. 模式介绍 + +### 模式的定义 +`模式的一句话定义` + + +### 模式的使用场景 + + + +## 2. UML类图 +`这里是该设计模式的经典UML图` + +### 角色介绍 +`对UML图中的各个角色进行介绍` + + + + +## 3. 模式的简单实现 +### 简单实现的介绍 +`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` + +### 实现源码 +`上述案例的源码实现` + + +### 总结 +`对上述的简单示例进行总结说明` + + + + +## Android源码中的模式实现 +`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` + + + + +## 4. 杂谈 +该模式的优缺点以及自己的一些感悟,非所有项目必须。 + + + +`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` + diff --git a/factory-method/README.md b/factory-method/README.md index 41dbcfd..cc73468 100644 --- a/factory-method/README.md +++ b/factory-method/README.md @@ -1,4 +1,4 @@ # 任务表 | 作者 | 预计完成时间 | -| ------------- |:-------------:| -| | | | +| ------------- |:-------------:| +| [AigeStudio](https://github.com/AigeStudio) | 2015.3.18 | \ No newline at end of file From db9d794b832b78d514be72b9e478ae4705026ac5 Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 19:57:39 +0800 Subject: [PATCH 22/56] update factory images --- .../AigeStudio/images/factory-method.jpg | Bin 0 -> 42710 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 factory-method/AigeStudio/images/factory-method.jpg diff --git a/factory-method/AigeStudio/images/factory-method.jpg b/factory-method/AigeStudio/images/factory-method.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b95c8c232bc5ae7457c5f03f1488d3d88f915db GIT binary patch literal 42710 zcmeFZ30Mvx!lWCTfvl5dm4EqGG!c zciKjb3Wy>mK!9l58U$rkvvs!%q^W8&R+~y?9{Qc{`}%$7fB%1G{<&u6nrrm(GHBIP z^(^O{``qU~F?E_$ko}TH;fo+MGc#y2_zjtQp!tJ8{ZIWG9OQp$fWezhb&$hQ=npdu z!^{CPcQ9i(n3)My^}GVcYf{J7Z$w;*<6#f0x2Pa4_?5){*R-+@mLo zPM$hleCGSJm#W1bAetTvT{KU#hW_vS%j{Ci3C0bdjAL$&9-H@E-92mTnLTs*d>)KE z##~_*Y6%U8{{3G*-sa&D6h2A?O*;`j3rd_lN*|1eLyU2=hFOhxY!Op%kvLDBQe6M_ z$&;th#D5xUNa)9~6^LUfL%eDa^n73FlaNsRsYPjZ=lwU^FK?gVeCNcTrl`30i#J<& zpM^I3kJiItl-Y?;#tlEl4aSMoF!9F1#iP=^`A-w=vTiS4QFqUE=W;VY#=-3a1y4?- zn1_1)ZCYkHLJhzBWmC2B^z;jUa|x^vwSPOucneXTGeK6h^EIp^5;h^0A)c&k6Xb@e zuEKYP4Z_?Sziirv3L%(Bf)iC;R1|K4ngyfq^7cn+*#3jpsJm^Sqn=Dp-Oy^>`T!cf z%>-q{3Z6s9O^}U;{)^4y*HV0~kn|t9D(OyR{8K~1?mrmJ{kgwPX?XtB`sRs^70^-> zWT!BmJ7|I$o*1Qjdrc6F2L`!oFhQ^S3>bU4U8p;vI*U}SAH~YWs=K_0cw_Y&G1blQ zt(QWLm~0nrwH7Lw>bCt@EM$VR;{?w(A?h8p5=~T4iE`Td3H9wtb+J71WKRI5kkn;_Y1M0NAb<5BRRk4hRhe;t{5;vdiCRxI5vZdCMqNZYw8 zjB*BpHSc-qlY3ID@1C{e__w>}^?%qWyPN_mpyOe#?Z-tCEX6#U1bP2UxC_E!6iGGA;CUZxV+ z`Exp0K7T#+!~%R^?HOE-?P;qWnbgeZd#qM)yj@m=`~3#-s349$ww_0>msYp8TzUd# z{{X9BhudfSfX_#|y~jB`7`A+9D4SEmns zQv_!8*P}P@njjXD&q`*V+N^xzlRn#`#au{^$?j`k{(=B=9|bkCNdIi`=%97C*UAT{ z-W0{WTDSU1`hrPclP)f;r zCW!P8FhPr+K``Fe-&IW?4by=GnfKSpG(n$swV3_88&J7n9sQ)l%y@pC9;3HA-suHvM`MA$(OV@+xsg`0l<|<=X1oFE2yJWA}1y$eMq&ubAh$cfrp^mvvJ| zZ4W$Izs6=LnQ0=+2iqsVn(TE6<`w#7pmn=}Zu@ZP57ZS=}-EBICJ9wF?P`THdSx z=O7bhXb?wIq)#R<;a8fX$8c@l!*2BG4`8*MWbN7}_ma!gOJ6!Il|o)%WB%=8 z1Iq-f&H1m@{trLEpAF3i8`@$#XI4+1G6)zMdoa~47+)Lu-7T|O$UVi}X3pH>Cpe=9 zy+Ews**2KiC*?igD;xz$>KXbl()SnlJw7TfK^ba&@k>>E1D z;kEH2#H5_&>k~rQqXo+B4<^X+FRML-z3LOKRNjAg{+Pu-oYOkLzf3S|^twU61Kb#Y z*tAoAv`0e5l*hq^N#`9yU1`rthM5c@xgM$hZO?K<{X3ZCx2nNU_YT^V`k^$-DiL*muUYT8;09=Uy%&-X)T8SfPiP2S=Chuc)q8TUcs%kBflvJjZmJK#+` z{(7%{b8SpeSVeF8XYYLnyodhfUsuk89f8T;P09y$H)!&+yFJ{1AL;T7TD&W{d+u{P z4RD=0R+rctYxv11oq7O&**Phg4X?Jg+9vn`H6Sp9TlXGNPPQb!)}1^ySj)v-Tp z%#mO89PhI2$&a_ZbP5HJ9E>x-!fEBBZ0eenwto8Z1e1EJ*f)80@9`&0?_pq7i~Cx8 zzN5Z1O3v+B^$?sdF1~i!{izk>HiEbEIko;|#@rQ+j%L%L6X20p%usC%2Lut^KjS+v z)hI+&Zr8-12jasFiP;k(f@c1{S^mwqy}wRop5QZ7&rcbq0lPOrF<7?LmL5g7c9&)d zCI}jp)x3NvS=C>F+>6wu8kUkf4NaJp1OY=%pN?c7q>HZ6t=LF`e>cfpk4sJw*_xT> z63h4-Y`ywd+$PxNi8p7wx!*QX2O;bJ4yV|_5;9JkpeNPnOyDg|gFi09db_1t4?+ey z&G&dp^GA=}p?^LU|E!#Pp1L*Vq+lMqd3?jvq0F3*Cdi9DEEaL6#u;WuQ(-tI@}T0> zy}}XirOe9Q--E*lCk~mCn5a2nf?QCJI?-IQ<`vtM@^%*;o`G1bLpKxWy+)EN1Dk@x z)|6jnQ?bZ3c$*5dRHls)6Yo@tY7~6JO4HbO;Xm+^wfIDFlhmz;&r|PEHug$~q2E*xhXGze<5aw%$~3_~ zY6lTUIY+7e8hKp-bqxJwV_NM3B%URV_92JY{LICd^SUFJdNG8d#v*Av*1f5A^}UI} zcy>v74tZiSrb2bU@=%n{aVZ~NJSOi(2z56E_nW{?bmrII(?xJqurkqv|>vv!(RY({44%SfF@>QF;oY54j* zu}G{oK}Wq@H${ZLD&N0p+JYC!A>%o&(P@hWAU3SI_fXgqq#t6rW!M4?|5n+(CUE@2 zGpD_k_`0TC=LON*N1q*?KMk7q^pGdS577ASX$M}Df^rk=t<5hIr4ZcEE+_;G;cjsmY&po6Px%RB%gj64; zJ*atYpB_z%Ap9D{c{J3XxL@H$d6LyCGP!)5z?s8fltX{0-h;7(DS}Li?8u zvmmxLdVri_Sj>-HNtD(jIcHr9KZ$M0BmMQ!Q!3kT#Z(eJnJCBoyYH`mEEz*a5J`0h zpGk_ftW2&e1rMpZCKd|psUM9I7Xqn#2<0Xh503&tB9Ig$}NV|}4jis)uiD&ZsN+mhw_Zv6k zy}XF#GJ~6-<=&jNBG-&vRUuBxgsQa_qpE8}LfYp&%nD_T$T-8kSb-}!E>IrOQ{BkD z3-@KISPoPu-f@H;LPfQjpxxYTsT0^7MYl)Y+o|Lf6|kieOR@l$X?cZ$k@WKn4cDdV z2HCr)E!g7+{v`SOmlFh@y%IM5=C=oU$2z<;#}E1{0(jKY5JGtqhzy3%&7=;`RP*xb zKz=&qgU8fM9VC8y*Ls0J`A~EJGso_ID;cH6vV$XTeW(#NPE1YaI+F?E#q;n-C1pPp zgf+6^w(XUH2k(79tPT!AUBGG;(2YtDBnI)KU(ue%D*}6die3N=EK?(@7kZ)_iQ;Bf zmODqLu;Yu>il(0a!>12s=L8>$AsB1$oyRXyYwy?Km{7t}CP+qAy$nvqL5OQ$xz%4; z|C*F9XbWXl@*nCej3?P%q>T(4PNf=_(+b*(Owh8jadbT{Y~;D3ab%oYVa6|2FMM8w zD`fYSPPKs=V@%V`4R#N3S{qHu@X~pi&1ZLBN>blQ7Uw93eLC|w>}4=lJu3j31>1r! zG*7A$38tE$EX)KA#dNO>-eei=QZ4Lf4@ZITJj~OdCwnhA=2WpHX?DnI>ej?S!u9gtuBkvl2IGfZkY0InON=%FSk z6viBXymlsQjYWl{`HyMgql(g?RpEXRt>wNi+hV@+~ob5ei1Gl*I*wYlt2+_euit6fvh z7X13?YSMBjSRsSG*fwN^>Wxz8dJX-ytlfFmb3l3 zaVr0EbFK@u;YGi|z57Cpmf2A5(NHqMm`?>7=ErlL*luwL)0j_1cfROiKqzz}b2VHG z%8Ot&V4cPK6Sy=R4N^;;(2d5s5*xuA2|~CY-Y?E(&v_L*MI$^se`Q-G2m*4j=UGY@ zB+dkR(u$JlFX(ApKBA&4RKhGtK#%r*HNQAVXXFR zsp_{Tr!{b)Nz=jU+?YUH9aV4$o8Ir{OnNx;PD;uyvtIaib`wunqm+qykj9c3z)>ZL zyXVU=I{`bs9jUN1K{_8pARpFqj92N&)Py$aw*D@xxuayn3)+k9P_g=^sQ%p0ucf7g zRQ)c4iqm3D3TX+Lv`hC%>4+{WlDUuW$V&`G#F#MVL9oCcwaIP} z*&*AxJ&MM&Gqds1M%t;3+Hx6$xkH9|NP}*vhDQzeQ@>~Sz;+;aB@sgHC)F^W6#20M>-_1?MRLWD^LyxA#gIWu%lj_T{4jnT=_A!1)WC}J|ZlY zDtUcsk{smwBiOzqZys^|j_QJclU`&e8Qc3E1TUlJk)QDxl{}B_$`8=U8-;dM@GHSI zGJ|7DO_36n6=Xug+nHqEq_RtKUs(-_4Eda@0&!-5B!I8!ZF1n?GSwS-PO+w=@lnuH z;!6(OgN$rC8<@@>^YP$f=5fIbQKerKFB5h{wu-XZ=Hy%zoFnlx{zxMUQbuirMm!wd zO>ktJwyC$qV&?1#f|icxvA8_z6Ozt#PGpa(lFNAMQs-}~T0VpHe`XF}4`-D)FN-B( z8YSb%JoRSQF}4dHA<@DXb1Rm!18N*IeXX9#l+ zMxVpyk&I6a+Fhz&SNgW9%_b=KUWpg6raepD4{b;=LCnuq!ExGD#s(sw9vecQ*c4I!mD3#H(iu0I z-?Iw(>claYnV{_^$e#aBozhU?p}#K5eM^u1uY$vsp;k-QeALTKeJag~rVzJNj}B zTLcPGHB)AbX_S3Rf+3?3oRcM)4E%V&jgJzT;AWx`LkVtue~!Q#pGaTqcsqoM$=iSB zB57E1_XT?*I!*HEmD37vh13(BN)}8iD4nZGoYOv;_2XEEij^b!>^A0{%@@N|0q8^IpyfWZ+CC03Xj}jnK$XT)yezH9wu2P2ZhTrPe2G;8pG;x z)iC=GXdfkolA|>y2!ITIB3Y)Djzq&rk(!eWvp$JgbZhiT@_UWWYmd^gL!V71T#a*} zUrqGEu{6{{!zJT|mgG5oBhmNuUA{CHF5u!Tg*jjQkD#;hunkZ>Im0lC;uw!q1?1Qo z*d}N*SRylRDyG4jIbPI=j#?)iK>Vt=*9hJ^Tyo`y4ZS6<#;czU(rn34V`=R|%{dW+ z3L&}4NrqirPYvIa$|wTKmB#YA18M72%?EViRdoC-D4413XcBh!Yl@qMok{W%PvGEI z(mgG4qKX(@h(=NHc2-q~U_9{d6MSCIz^r?fcUZa$hM=AgZyk=d(bns+#AJ;dnm`QH zcb7lARek8{hkLYB1+l69T-j@G*N14Ymr#(Rds;JhB$lA)`qGTtEi5zG3tnOs*QB}x zji-k`k`U!fCcP2-96k0$Fk(Qc)p%G_B1eCXEb@{X{OLAsL07 z`}ayll0JrT1rE{(k$!_wII(safv7k~KHmrTmLbD*^cXbCc!{2j?lE4jVs-Oqo7uRs zL3;03`4P!TeuuhWCbEd;vm(f*%hVEM-hP%Pxev)|>n1Do!22CmdOQ;WP9OKvM}Yi0 zfwneN!7kJSW93N3rv$a4QPJ(BLUc=k6A7q%fv8GE_n30Th6*>{V!NXYa9(47*1^)g zWI#&P&;@|QN}{a@ymw`$>zFGEW)?N=Cf_;v(6Xq8cFF9A zL`gbWHtRUZ(={`A2hpbGP{Ygg2Z@e+=~kqhr;o>ZX~C>Xg28f)Q!FTFLF%raw=Vru{BJ;@IXdB_3o%Jy!80ZMxWkWY&pnlgplk zMOT5GKva0JS(s!9qhB%V-K%qJHzig#drcy_hLL0smy<23WM2SY;scprSVqp5Ar6TU zD@%IUwb3?GfBc0sQQDo<9BuiKG+yB|R+D?x9Kd^&K&`dTssIKxy?uAp#Dhw8aREKM z*L|a?GFuk`(Adr!8lG#nC4uEjTmc@~#hA?1elWH+7H`@yacK87NIL`#d2NVJhPcS`RigUQR5;Oc=9j}|U0bG#D z7pjznXp(vaxJsGh?w9{OO9S_0t0mPp$(XvY-2B=kwUMi;mfJ?kN?dAdZW}Lfy zf>ve4yC!L-z`=N&ay7W3v&j03)OgYo$C^aY{xVUQJKR~^h~4XuDb0K0F!N8MERii5 zpcRwj3f@ZbgS;-`+7`A;e3IbB3USUPEH=Oe-H7x04&3B_m&mC<%W6)H_hx}=*mexi z1^U~h6V6lHr4tA^VH!9;kn4=7PQkYk%1N$?tOt4c3ghuHWD?%53Fym8Hf$yXHOt=V zw*2@JajT8H)(hYLA`kJ`=i~P()X$Ri0$ik_pT8!8ci-VyXmdMsGUyC1w@ z5E+#$QY3%tOwL!A+sL9}<2~Av-wu;pc%;OWTK=+Qp79!m+(0L`fRctKWmiewG&^pX zC1{p923r{p2_7pw!QqyD+i?(+^^^XJyxIuEqGx`6mu~jLQ1CLtcVI*3im?PvSBE+v z@AG1M>T5JgLV$mj9$2d69T1z zJoI1d%BUIPM6aqaxME#tSp6~+^!b`pCH!Re<(H!yW)DvuTZjIB{+J4Vk2dNCeBRcc z8l}6)$_J+!)I}Hzjiri)07sdo9p?acvsb=W@k#YyTDe^$z@R!&;*sZORm35h9nTanrpw`G^Z zo8*&4237-m&R)Dt?&V^<4Os4=i7^_i4(TeRt*6CY;a|}Ro5k*Fe7}6@_G+V8x{I6E z4$yx}-xHjn6{H&`(vOw!ClloUQ81Mp4ai79AasG(tJZ}W7NXu2WVn`-=I+;w*pRI~ zG65U!kO@1h<&r5NZjAUC?bA`a&=6El45+GQEGu*)`72;p9mzZ`Bkd4~Q1yNw(wrXO z3FF@)oi_XW_l~EVv5H-xPd%R0YTmdwL93AKK5hqMvP8L1yCfHFkilu*~CR5oA#_@N5M? z(69EAj79mdg++xR~twe@NN^~l6XJJz* z)+ZL&j}!Ewebc!Fd-4R>V~2vE#>qi)WLW)I0QgY zv0Ul!(Q6oa=N8I-i6p?zg6Du4ubrW>-PS1aZA*rS@r5$3`;7i!X=94O{RX@`i}s*@ zp7;Z0W|Y<@#t@PEhsGKc6e}H0KUXs7*@Cz55Za$g#?y>t>}gbz@hCf(ZWXzp^ND_S zXQQ4Y8mHk{P#(DCxM8`Rh|+Irmu?Qo^@ce;=uqNI zCfJJazp@&IL%@l;2Xb$O$d+^Oed+Thq|qdY@X#=I3N4`j{jvlju=*_$2Wn##IT0_d z!|;{;ZfFnzr+s3jA=cW5#$ul4!*$FL)&I%&gr9C&MJ5p69TcXZs{QQs$OBKPUWXVt7fo)+w+ParKp z8K#4_;(%59!&v-QSqBfQbybo*_TM+W^sEhH;0zaM9qi3Z@ze8EsM0kC_S ziPxyvZET;9`h)VqEgiwz3=20<%g7X5*(kAlQR_r_=%I@LPH509(0cOU%PnTsJC^e5K_Tu+7`pGst%lB=1&tX?7L&h}4R<*!W&xZ#;*3 z!Ufa0E@bO~Y}qX`Alg`n#Dw@aNX!7a&m#T8gh-5S3I}JU*98kTaNirPF#YTxq2{X& zt7BziZuCraqVanvAZ(oZPc2{6I$HQFS20K7>1|lmW z8Z4*Qwv?KW@A&oR0N?RxGus-Vdb1zV82rLnzG5lPk{5i-c!I@(>+42Ls;hVts3?H0Hja@nrCfn-qs!gZI`Nl zE}VgmFib+HwF*X23-Oq&O2mur1h^t zfM*ANWHxQnemWs|9swP2?aMYy5xiF3J&Rfr3Tg`65HhJ(&C5YlcSIJbr6HIaV!T|- za+N8}NPj(mof#RFt?>pDBhHn4Lxde=yHUQaw5Q-_uH7d^W{DrpJzA+eT*3gQs|EZ7 zwcrLG)Lb&$c%n*}mI>->Soz7kT=)JyAHsDl zkt_r;IZZOnctHZKr+-H7RQGupX3tYPeHPlk?xHr;8n4&dYB-$|gSJ{GwWfv|OC)1a zhZmB7Ua18&@v@*@@4iFY$m(XwAoz+1=U_vqR6t8}gcyrGg&M&-a(2iC!$$fw*g6k> z=}Iz7rEu)!x&+TAzUT>K84{bwY(AKBxYqfQCJM16E!iH_Dssn=bR?fzzk|qJMP}|L zl4QV4W~fBN_y{;$!rFaiUmZeW2wed5AvftJrG7JvM_|S{9_efRm(Xm61Maw5*!58T zpbr7*GC3;FuLV@WBm0(z2jkE$hLnClD4W~unJeFDzqigen5bvI5AzGkF>m?rD91V; zhXK9O)gRnmFMhkoYzNbCqzjZkWK>e9*F=22o=-9j(@5S*JfQDa++Xcl$FYd7`TXu^ z6~d&P$sH%tRZ?b4%m^zz(y}e zf|pgh5WM?pWBw6)~hroxir3J&8y$er6$g(9PowW zfM2t?2&`!}$A2&~J~O6m3YJ4iAJ;Iw_U`y0PC-R@jbFiO_3h9D-*cZ8?klRjv&bxg z_M8GPzG8x|ZlmiEG7ESQaC(BqLx{Q!#+M*p7a@IM8FRRXnI>r9?nNL0`~PqFfAuQ; z$8@y4NELLMZCWyA04-#8NBbFttfa_s1{ui0Fhl{T^ zL7iIJS%sdJM~zc$@{4`}u+4POsMRf1oIV4|R$h*uQ&@E1x6VzQ>b;q|Kein&;cKPV zX4;U#Y3~PY?OyS|!Gvp)k3YXk}m zLgGZ^xRkzyD!7}Y3abZRPhj0D-O3@y0g_hCL=%7?!E)cawADtI4ss3Q7yLNH=+Yx7 z?-D4NP#4W;=)vcc|eAh5yqVBWpysos6bN~NY{r{RpALWswl$7J? zSv!)!8Q(6bgMJ)2#h8!myw=U$!`&~kxn8hj*yO1`Irfq*Lq}~kQweN=MrH@6>kw^S zWta$Xj(!`-Fa!bAmuN7@>KA1fVCqGbD;a}}XeTFifA><_YSP=0>~S23A0yM<6517{ zZ1D10wq^H@){e-Ivu%CPQU$vqWb@x?Xk@lj_2YN6Z>{n8eh-8hUo$C7YXeM*w%QS= zdUUAqEi5G>vp&J@8$oo6K(_INM~nHT4Rg3hgI#~*%VcvVNxtqb)o_N!v8Upv#hOIB zw*XevL>2~5yTOg(m%L=m3pfHYsWlDH5%pc^=GZf5ewhknSQd|sSNHsSynclfZR0Rg z>os%N&c)i%wfEn+&pv6+BiBmtHOj9cNGEXM&bbC~!za}bAev@@B7)^66Lh7`n1&GR zM3o@vTW+1k`fuN0#**>K@hS^ZPXuj6Ll!46)fs8!F=*H?;L~mXe=5njtktW^ zVoG(Of?+`ir^_iPSN(}#-7qF~eb^t7!JapKO?EL)uPowka%*F=%Hg<;?TJ)Pv9c(^5)YyUWMq-oJa>{bLf@zti0SCk{LriPcZR;(Q;^0=m8l4!?K} zeLh!pzGd)EvEAiJg zu8ks)Vbw2`#2 z3wp42flp+djfYd^X|vqbx$Cy4El+_q{8O`q`MAt8R~^!}%YXmldD(rJ`mNc5mObku zf7@ZXCj|;c#$xfQu=ck{;GmB(9-V;11msAqLE)I9o4EKY{~o0?x|{UTa)n;D_wntR zmsC}BJi*Je3Ww7Nxr45UQI$laAl z$Av)d3dZR-LF+U0G+W<|_Y`iL1{nYjuki%xG_Z19y zO}#mF$sKQVY8Ke2@<1Cy0#=WlD~1CoCl6pi&A-iN!uYyrKh5gY{wP^fs0xQt{x`>r z7JWK{41DBFheUY!pdF&=2Ef|YBlj&tWP5;abe+WwKRS?EXStYt*go9*#D89gHUD+p zgXf5LowTwTw3@)gefFLqoakx53L*5bmpT#pm-RQMSuy^y*6rr&=laqxvu^Y{M$0i7 z5XD2>Yy@9Z`drZyMO%IC^!AkE-}1T_s7^*gTH0pFo+ZwE=A7KId-d;|EfHI(sw~YB zOXQG#B;*Ku+n_@U9c*p^AL~_SmA@2q4%Ck_14fJ0ue}>ddqmP!##7AzbPq1x-Kka^ zg(T{=Xx@owFM$yIuk`?at{)-JVz-%|n0C-Fdd>l@BC5h5!M388X)s=nsmi3E4ub!u z{egQhK_BW@028(DpsgPQF>~F=0=b-aM%?ZO|(= z8?PNdb3wJGjkbY)7x5k67e1ca5a_cyjSpv{vkj5&VSJ6KYdhU09U(AB*9D4h!_@G- zls$V0{j<^$0r?aewt!m+D7ua0adgAmVB;Muel+p@t6-yjZ0;4TVQh)l%sICu=Nf@z z|M?j+gXP~C;D4l<|4m_&33~UruD|yyapJ&5yMynVXom`7XPzoZF`PWu(Jb)=m66=q z^=jpi*S!ZfdQIr49jDR(eL!G-Fy}J)T~yVpWG;(bx|aBoFG zs#lMGdvvL3pPBR#v~Sa1_^a&xmdTeSNe_ShbB}V0;jf+#^Y<4|C!5XPx)d_MA)7M# zzV*Qqdsr6l&O%2w-CgkhuKhl<*skhZU7=eq&3F7M>Ew>sCyhzI3tERj13*;~j=MG@ zj_3wF`!Ka2S?qwah~G}(3eAPI*3XBA;2pxx+`~$1dU{+tPN!CX!FU;zRs&VaM!3Ms ztzBZB0N?rjxOx#TYyi6CU>s>YG;vA4{;=`3fYCeCU71mZvQH*(YWlQowdHUJ{J_AR11=+ccgoFFu1rt;B)|%c8hLig+3kgmQpJ z(gS3M)`F?jB*NqUSs*?L`T@lMVS;gdk0!y8_9~@0d9G1vONIaNK2QJzDFm|_w)-6& zt;wrn#h?6bOt;L>O_ufAY(o9UIVUF^-RqtB;t$o7Z|zwZe#c^!=CR5uUM8}wr`%7j z)o}795VhQRrScg{x<*!#OIb4M5!jLKfKF-OzlHGnu)p7~myMi@CZ+10A1G(_lv};g zZuo^0y(VaQBITK&QDnA~XBh8K?*~%#_30ZgZeFK8b$bZD=HBC*H`gUjZTv;o92(qU z(4?eK2hwU=5&c}b12#uS$?`C6JLu_vq50f!~N3As0;;vC=4#P9-s zp0-q$I(z>k?z(%#m`i~<(I#j<$Qu;&{cDxVC-@@OtlMM~aMB zz+yckdYcYL9+_@}(v?*`{FsI9$^9dQT~8ZpV)AEPNLnqNkJEWKNO>KBF2tp2a-9vH zu#gbyrWw4R0vX3vTqKmt`cMaNAF^tXo09^{r>>Um6{&rhEx$M&3;$cs9MC<0%!fLc zBI6m5K^7;5epIIS`xn{6UxWpa9DRfRv=-aiZSn zQ$2v8ze!b~SQ2~pry5Zl(1Y;4Ie)EIWi4LI^ zfNc;RxdhnV&tlg}-)oiKHX6X^JCVLoMB$Bu_!1b@5x*>MuU#02-^E}}Ezk-?(FHaIkW~JhpjnWapn+RdU zX|Bx`gdo-!89UJSSda% z9WI$3?>;Jl3IqBbP;`iHk6cuH3AR&=4Nd=}$<%J`oiUt5}Sm~|>AD9``o1S`gt zA}H7Tid)amLt`1*)D-<2P)7hD8ma7Wz+9IRjD{L<-yIdFt4zaeYS|gloQFA}MMBLLqwOQw>YrO#w&qQ~@k>)eCwgx`vZoR>rTW+i*Qk^&1hB zgW8JGnM8jh#vt2ynO<{<{m2l>tT=%?QF!SVs1J4G#X0E0>*9J*p7L&K6Xunc>hxc6 z_}`XbjelccfUp=}rTlYd{}H7g1KHzZh4D~iA14$>pO3hdJa7KYSHtXQuh=*wHUIrB zhw!b3Z|`{g$FEOv(-2tVPlG8|aRBQI$iOVv1D#<=p*y49$hcC}(pWv+Lt)S7$wc@v zV1QY^H-YQzFaX`Ky1x$2-Vjh=g0?6e61;p#Oexd&d7$$HNGRJdb2QSxLQ`>Johaw4WMsZh=Ofs=;I^2^P-nt)w1V4jnYcN8{8jvbsK6?uNlUD%QuPRT`B8NXK^SW)t zeZ9m^(Dv8x)|@Of!~MYYI(r(tya86+DQE?JSp$|Xs#F{nOyytEzb2okrQk)KBmtB? zQ1f6tQ7gcO-|_Qk8_QDq1>#uip!RgqtH~%WI9p0jwk;KAJo?#2oJ&tLo-L2?x2hGOZMrk_if+UD@xRtET87(X!I9c4Tl74k|A7HFImK%$anEviVjWfT)nDkh_ zT<=IeH7v#I{peZL7V_bB3M;CUeA8A1TY@zLj$@~&vqD|ncU&zZy%jkEm|BT_z;GF2yhb^*4Uc2I*1# zS^q#fr#y9w>U4^#JpJy4zL=Jj9U`jw)2KrR1hpc&G`wzq8QYJ16W?8$iN$d;fR18ZTIzf)r*o-(XC7@m#o$7@ zgRY7MeY)`?J(AUBqo-@gYvt%_GRd$QkBGqiC?}chV5~W6PtGonQ{GEy2-yIq zA@;!`h7GZBbw4$nq4Cq@8J0v-=0LkqK?KlNAGCP^63U1>SmTOji;$`M6rgI$F>&%tx;Q5z~K@{iScZ044e^)OiAW-K9qxoHQI@vq6*BG zsxDxatfP`S`~i9>$Ve>BjOQ_c?{c{gY|r-+Ch4SwNq@kq088C$f=0#xphd-%Qz?Wz zy>>K_p#5?biA6HoyHA1FWvZ2jsRWj8n)Z-119JizxG;1*nQE9#ttHd(J&X^E{IB1g zBS5capq5owti+cKyRj%^2HWR7a>o^T%w32JsnvTDtKYgBODm;Z_Dl8rF!JZ!m3&Yb{U4B}5Zm1Ke zo}EIcXm!4zU9Jx#^cE^oS_Yi8f^rnnHlBu2K)kT~20nk;9iqAcaiMk*oIc$p`q`Yo zqwLYtdcqFK(K<2Jui^%HB;6*ML^|L?El((5eH1Z3c}ZkX%{2-I9w-YBY%+#pTR%X^ zS_GuCxo<6u7bW15dN%DVP<;JDje6^CyetKa+v%z)?km#Tgak(8!rU2{nFw^LRr2JI z4#_rjwmiR|4#Dtf1s-*8i+EvxojT_ z>7YD;b}5=o`iMWu!{?+l1!R5YH6%vLOWfvs_ptP1wcp$}dOE-;a$J*C-qpoX>%Jw6 z)W6rXyzf4JY462*r!@ReTt}b+0(`0~wiPLqT3{-meqH;J)$OXk2&&xNgdeDHfV+`X z;jL_k-n0FEay4R;$F&Duw8|C0-D_sMZ( zAEd+C<0v0OQTNEV-aSjyuxuzpE{*NakPNTIg-r*7%|LIP60yQ!KoTL8;tL-ni;f_} zBqQm!?kUZn+|jL2$#p%zq`&`+9YxUZW!cC8)EvNq~HnwVSux_>>hIz zh(#tFFS9}4fT|;xJ(O-&x?n(`CbbM+b3N@)zpl;j4d0`#TcNYXJJd+u&Yxz$ovtzj zXdhI<(^7L2w8Il?q#4H3Qq`qM5g3)nair!0b&aq|WW{!mF9D1}#%^?OJC#Zx`Zjt0vz&dhTL1{we=?oLZrkjHWDD&xf&N)L1n8OFl}J^Dg&uVE2+{fmAA z=;T=bp5$m_a;9_0u_=v6I_OoKdodolCq9zqf%mBG#CU|33pAvv>`ZJklJB~qwC@~n zE$hIGpWvSWln4eKN{nzQKT;*_(;9r}&TX`Hk(lzxtcTsuh-BOZsX;E<0K1|gKyMzP zVKs8BX@&cj{K|kM1LzD~Q5TRWfbnWws$bu)hG70}Mh2kh)uq4%6d_f`b%eo!+Wf$H zzX#}72>%A|y_AAvQ5Q!Od1SvBgwN{IEZR2K{n64G(!5XAqmwvVQ#3`!yozE){{>R3j{CDR`)$Ij25)O zL#vc&Cg?6qISy#T`qrzI?t-V$A;xpTo*G?*-V-Pkb}Mtb#eH(TSR0s&j#G0pv5J0b z29SRdU+R#G(-rDoh1&<3O>V+n^=HUyc(qnhw<)L*u>s9GK>W5%rt%8YC@p|Q&6h~Y z4Nkz7YD9;qdEH<1uffuSq^f?G#GfD83>s)nP$3|yeh1>-c;k&^r1QEG=&Nv^#stY{ z1^cN1qyQ}fv+)Z3a$_Ftjsk_@6)v?5|5cPBnTdMM5g$bp%cwB&lnTp}gg^sAE4o=! z5d(%jD!tPo$1=EgOLbDi5`K_6MfXsh7#+gW0IJYc#p`Rk&Y$1RGdN=P^K_pQm#VP7 zUX>K|P`TVExf-4$l~Q9Y3~QG5L~0{tTr*m6F#9NghYrzXwf;_9n?8nE_C+?C6=N*^ zB(wqjE7d^ct7wo`Wb0DZa31Cg%tQ=ojkDNu&~Sp;$1(6@1=FjIg@ORGl(rtBl~1mN7FDU`1p*%N2mDi^#Ts{C27B=PbaoIcS*Tbxz9 zOp|7pBJ;Ax{bT{;_`rHzffQKxR-RB<5!eS`<{R`wGg!G^6G@+2g6B%85`pr;P^9H=IE0(ZWzo{ujtF6D!CTx^J;w&Kzwk`X8u zj{#D%u?+ney)fbjx(8^l-!SS&UnY-VCBNt|k*BmDCaj!ZzDc?jd_{@iDbS*LqMKSj z!;beW^VZ?cavhgQ(ObO?o{t}y7`5VM?Mi~NgbXM4!4@A+bD332PjVOIlly;trx6JN z40SC=KM5r25LiXv1$qH8h2Q^+wjm7x%F{m*m9|mJ4@2oM!Rgc9YKYz z!`NFH=j{&6DtJC*x$~bv>;Cl%iw@~OQ%0jyt1?+L*__?|{?{a3qW|R#)vi3mf2d<+u79%4BZuoX- zCEWBZXaQM8JgJQ%81q}vXo#Kv_sRpn#MV(JXv`bDXOO?3tw4Q49B<48OVTG?`KNKO z(pdDT*K#XwoBvAJ!1pqlJ3^z5f#TV6h%p;flQbf>ZSAKy&?6UqX%p3Nr!u>>8Q35%l0j$o?QBG(*yXwhD7(kBEQ!4Swy-OUIA& z$a5fy21ly;-8aNW``pX=gt^2X-2I4mos>2dAMD5oj*R<}KYx8krT;}cWqq{kZP2$< zJ40n0^R6-SU}V;QTMyZW#CLhMks9Sl^6tR0mQPQY`7f^_0))ZIV*a^i$;^&Pi8ou{ zZ6LS>)WTc*r<-1ldhiMjzom@t2&`^POWywOyDBR+h#jvZY$$l*kC25}&*I6xvhmKiZwB!9R?Y(pZDi|cpaL_CJ4WgfXDc?k={si znw+Z3=xh*mrq^thh|OcFqq9iPGVw$PC*;v9mA{m2h9zyf_prTkn84r!)l|11cx1iq z9*_FE;^DJy>v!Alon2~gcL1r9P#b9JKEkX6trKGHrtunkW<;+Y7Xv8rZ)*8@1wGKcnf0v^}@;)`2w`1OEzg0PvNXJ=panmmsg ziakKJ8~yA${_UaTe`<<_y|0U7w7&tzeku_e;k~OF=T6x|#Ae-hAf-~qKwOH&QzS=^ z=3jDf>~+-s{#PwAZMaJ!wj%iz$UdZnaq1V*TgW7AH-SsmQ&Hh!8VQ*+Bn=3U{w-oH zfj6A;BS>eXmASBys-^k`3HjN zA`0^gh(^I_s+zIHeHeMB(OaNz9JmlpE1jArCy0(qPHdjCP3b$c@{q}!wsCAM3I>## z6TM34B}gkE7_4A_zcnUUmFY1yq3m;ISHX6$recmzp8WC&#>xM3Z!m^Ku;LgDvz)m@ zs#^1UUM3F-+Ou(9SDqLNKJl<>%dNfNPFWwZ&cc6U=ea>SBb>;tTPZMOwVY-n>nPnb zXh$@&u^m_XG;Ua~8-)Dnt*RL!uc29}B@j|6O++Yoj4I-;z|Dzs%G`py7fujv7a#Q* zKI$m%t z#j8A+CXEL3hQ^|5W`{;^-k-Sk2QXip+%YzOy8J*Rh9+@5WKBf1^H~@${%gIycVrlI z>TRUhy^!Qmk5Z5|wC*IiWonHjnkb<)Uk8Bs!+IhDAW{aksdx^ih4O1@wgQ`X4BmPy z1eT!!l%ysu8b`1A7A|!4BogDhXO|4Q(ZVkZmgO=H0PID1s}(^JoP$O zld^q9c?uz47(?uu@l9UR#LFOBF^N!@v!QD-ooS0eVUjTlNvm!juY5s;W;%d&38qYa zl$P(|W)@4U;0$&v{bNEWR0HN;iH!aTc)j1&w?Q+t<8sB@_%HNZ-}BZ_+hSz-zsZC9 zj}{V+1smw}1p3$p8hsk5LusI3j!)L;&-I2*QNp=z$KRRiJ$`{>?S@o#HuKWeI1_Pz^jRC>RS~hvOp*DzEZz+UGnlh*sP9lz z65X)peDV(Dn?}#u^U;f=$DHdD4NAvC+T0i8pSv%fcKgtp1job$f{6PfKS*mDtYA3* zy^sQRB6R*?C>r%A?n(k+Fy@tv4fBH%)Iw;Tir95CD5IesIQGBR>$Plnclbjy?mPg} z&wZeBILgO|O5savU(nt-e-;g!{uWuCU_Xy@(&jhW>BTmCwAxhm>Z6`wElpdbjruZq zhUOgwLix}Bwp=6t!e| zCesvbEOC6LIC~^7DX{(fvqityI)~&aetv1w{<7=ucHBRLYyI24_X|f&6azXM#FVw-a?2(|$}(p` z0MeQ#Fk%|2FRKEs2AQdg73`eq!mKh^$F`A4XKE?zEiq!#7RP;#H}cF%oE^6ZP4l_E zt*j<+Fnznnp)DK7)sB1d?_HID%T@kk=}bu9wEQOQtt{`rI|;}vmT;DeSGru*Ru6dhLehznfzv&u{K;$@NUnXS>dxYB3OuFV;WI`L`a$&^C@gFlsX zVTO*3bpF#Uw<9u;tjX^quA*B!=1 zzpe~f5~~-U^#oS}n|KHnXR+*AO_cIKTJt^euVG$oS@(mdO?Hh8nb9{)_RzfSnbAqc zsdiMK+4wWt8Ll&4mTfm>$@|59n5s|T@(7HM_!Qy7 z8tbKrWku%q#8d2CA1rv@|Mpg`DeD=8r-^cfP%RYb1S#`;H>2!2ez#fe!E;wCtI}as z$4R6ZkTzZIJ2d+Q0ox3i-6o>-z_EJ13nUu(H+MXmW%#LRPA&1m>;H#K`EQSY+(A|dM@RDoX?VwvZTP1E_odakS+Y8W<-%Nn0fQ)W;s`7U4i9Gw%&=_cT3~AXR5cOx z-oI1%U`-NQc6CcSX_Lg(T1Kr;4hLao$5wyzYOBxJ z`uWE-6_oU;rG1ntYQylmo2+);ZO2wQy~|(jG_+7?!T}1Y;$+_bQ`ma6Na9srAX$JM zhNEKxai}+vess9ZUlvC<6Xi`}utFwbaciya?gB={VHP}q^47-TuI@UX>34b#fE}4r z(9lNE(GvIqRYpp_0-YA4hX@VUGsl%RbMwXl)(k|PS)(oE<*|vL0~`0$K!Zk)l2^GX zd=zvW@`8dqqVR+L`yo)AB^{dApf@6u)c#HErVGZo=3r9ggkE z%QP>q(rR9Je(31Y?~m6WKaDrgb_Yi2=}KZQMIXXqcQnxOiiSCQ!e^kNps9xu8|fEgH=JOEuO?fB5AFKm68%ft z?8TVcCfbuJYdH)N?7snFE%Ta@(q*hsbGyN#I(= zqetp98lP^JYetcb1l^pSm}Zuy^#{#*iMoK@ux>3nu|sn5cvbdejPpl}Bg;6ZhQ!>v zrvv)wlweG=0OXvLPQ zO$a?xd!W$bt)Ww%Dn#=~z)KSM58kKZ=eyesvh*1J=okMT{#PU^Fy z^?ZowOElwIo%cjPI2RFm{cu;PA{QH9%Gf1~SjV^l?G2u#V3y`(q*vR4ylD&f*Fk?_ z%jZ#cUD>{8>n#(J&Cd?qh;@J0S3bdYc&7Hy;eYOFkM&vne*`}1)poe{#KFM{9o?I{ zH-(Txp}TdJHc=}1wJvT_w=~aT5Qp7#M}2|4oqg2OtH(*x!3`O5Gf{S*VwnQGX zhMPj1R56R>2LUR8L)i}69d$%gLt)-vJjv6kxz!v<^1mJ6X0#7b2o$M9`J>JQTx?kl z5uF($n3L8Jc7@A{H{xFoE{)w6x8ZH4J@Mc_d5L5DK1eIbDPL=$Q{Hp$I!W^29qIB< zj^k&fkj>%j=P=1IRGqGQDWYUjc3zTcp{6jJQs#Tjy{9cS+@*gDK%YW`?AckmS@F!D!%8Gr*U|< zOqx7z5GA`op0|J@HrqN>J2b(~DU6G-bSK$^QPq|Ccuv&kXnA2-UJ|X48A({$*!K z&4=_QL3WZI(NpD{YWS4wt4DE;b1l|r9sIki(^mb7qp<0{t$2IGv9W?T?&w@^gUQ!z ziYGf8A9`$<`fFH(s7-|LBE zcGHzxH0{S99EWko31U@upqD{OBe0X|b;Y-zJcAXn`U&oCbKeZbslvIN&qPl6WN!g| z)4Rf0>gZDXkQy>kFO8lH&;^!5JI~r#aT3~j%Qa##mcW*r5UV|QK{xOJ<5yGudL;u# z{=|6)jHnq;NNw7ois$Ofo5%5xK*-O~BU8q+oIrda(BZWS4ABC;iM-b%7j&N}x3k)H zonTPtNTE0SY0non3NgoW`}Kz=7s8MvXVAen;I~y%%-vrdpH_+^fS$u{VRtblyT>pD zKgK6fMm$3@Y5JH{Gj-QtUNZrkVOY|rq}k56C>@U-ikG}F0$8hOZ{`8o#9bEn7E^3s zbtlRH@_^5tOL3C>D(@ZqP5o9wAAZAMrM5>U$kuv1H!|C(4kq-U(Hhsg$NYyb<>5TF|VPgvjZxT?^)t*CA4qpD%0>kaaZ%8 z1@tfU^2uT1AvL5T->})ea-zyCSJ8#JNVrn~o--BM0jROoCN{E?ZN>tO&J;C$7e_QT_VSMe5-U5JlF1G_8A8L71Q;^LX^N2z&hJQ#Tjy z{mt-!zpJsyoqWZ3`PclW9NNgm$;;b)4|RmK_4c#0o|ayZNHEn&Z|=He31vj-6ok_g7=gxBvLn)W5#^ zu!Q|`wHgvGpu)USms4UbanMwwC{$aPFQ#RSk)SmbMs(P9Ym5SVM;66siIFbgQ>dqT zDKyYfgsfWUG|WRTjZs4kPXYD3-GNOXR(T7NAiCzPCl0T8s=i$72$KK!O4srstf15&5xsPfh2)x4Sam&n_9A zuXv$;Fr=Duf;kz!CYjZFmY3U-qncQFkY>i32cJ8)f}+pU4wBOdP3W|*J<56^vc_%F zt`J!g5l1woF&tJ#%&YjYwq-6OF#t8Xc$LBWw&v|nitl5Xe$YkBcE-bBCUy@>9(Plu zJE04DN)Wwmg8x_)I4~!tzid|F%)Ci^yKnCMnWGi;-xS9F-v(6OAZ3)MoohW4?qC2* zoU`xdO|cn_RHm4Z^(QX;`lm*rY`b)x7|A31GFc%V<-HE|DC1i ze`$MZsn+XEy!M<23!Q8(5pLXmGP^Ow^$*QgKxyq&IqH64_0`gs_&F9|AWmhjf^VGx zTyYJa@huY6G5Lyq^)a$BaANA(1F{9S%vI_V79JzC6x;cH$}VB#F0uNN&J2~maEN&I zvg*RF>Ya}+=Pju>yB1S8da!K!&WE2Ez?_wPSWU!=s+?gcR2G72Q#qkUY!w?x ze2DJ3E*VZ0R#?_ka_pQtYMi2O#QM1W$Z>-}K%WvfTE^oHRwmPzx9% zgOqB)NLpL{O0^i~#EisHEHAn=hHT$%5YX|0T#Lh4Lv$Yin@t;)r&f_*2-+E zH=L3YCif8uD*6ouZCOoq+J?^kAkzG7)vKvz#eQ#xT~bKBE8%w6!#;9j(rz)9P=M?) z7;I4ragxA@Ydo9xrgJC&*(RdEw3?u@E~+GX19cJ>+%T%R z1i9FRcbhS{M)Leu6;uMFTdFB5OF8TXIxANJnC)ixS!4c|Ikr=c)mh&S-C81vh0S(4 zZw_!p-4cs4C5+bk)1XWnkmdx+Si`O?$FL?D+o(=X&|y^7d->eU_3SwdhAn(^#bzQ_Fsy!>^AgHf=m!Jnpur@%!%7eMWwU&(wctT; z-G&^xfb+3gPX7IFkRsKALoF!qvPT8FI(?>50Tb>kWQ1-&5$<6urrN3+`_G zsJ{^RjX|D?88gG^sZ~}=00EnZOO;G&hsy0nZ1tNXs8>o^O%SZ8s}E!Z-8fM(FYY2H zCE;&vW+be{E?vQb*Sr}KXVT^Dw6Ma)Qi5S0#hhhA!;WgZ$%QS#3|=|4!7v<_WRp57 zvR!3)nUN;#P5;E!W0C<=9^6#T&C$$+kixI0bI6lH!kwF8XNFca5+-A5%`{`?4yjP@ zbG2Ir)2(z@qSe(BdeM%`{Qf^c(zF()Z>x!2MJ-}8fVtUM+yPLjxty9S(maw$?s| zb3Bh<4v+Xy_i?T+Ts9q>2?B;n2|J$@fRxHIv*L~5Ze_u$wgc9N;nd@UUxxO)(|)c2?e7f~ zNuk*0BNk;@KMa3nFhdr?menB#gbiG+C(322nXdq4!rg$5Zgk2ZIY7gU)5vmaXHEMo zSoD@&8SfhmUB?4A8KJ>gS_zi(2a^cGj17&aJ9}(b>4$-16;-3hcgg_aW+I-|J$9-z z7f25vKK&YF^;wpEEU}W$FBz23#8eMeK722J-iI+P3ywz}?NiiJyANp4ozPbGk0qzW%r$tbJ_t?0rtm2hY2? zn^rFWGI#Zn@3U)9tk1?#-O24vtMJbs1+KwIUUom`?dbk>-{h28`*A1wagL@NaT9co z1(A#=!F#owQi5<^R|9(T@+26$b^+B|W{ny6Hf39ex#sy6KlHD=IFvDSb(3-)?u=Lj|#bqtxjoFwam&UP?UwAo`yPAuVVQ$#taV)@N`W)7lKG<&3ZWZiIJCV|D(^JJLs%iq-8b za{t#|okPgkZaKZVm8eQ08ndi{4;A_bbn1lW>>Uxo^+KDjwTCY|I!OHv;?6yo_i*N~ zf8uJ~?n@846~Ah^W3X#gMci&bvJQM`4E=%nwCAvC*q8f&j^YB~7Gz}tnuNHx(?j#x zNpz%K)~T9wNl}GeN4PR}+DMF5IK@mwfq%-IBSB;l{%1A2he2-^6KaB_LTg6ox;ISk zo3V-RxJ2GP*D^$0+hd5aQEJmDf%~QA5K`U(DBgfUxy%g*a$=R-p>0BajSsMg*r2mr z6o_TW$1u7fd0=j`Lt^L*am- zR%%f!8K=I%-bvsHr+Cu42bRA2P6sq|3j)})TE2~@k&UbY8iy*NO_cxwgS2v2p>h@@ zp)ssRT%KO+1I0=uQ(p;Dq;7FdtkQ+`2DpOWQX=EO= zpD)z+zD@UpdV7SD-)OeL5pNUXDBE~labao!^eSx6`vd>tBqdg;6UUmMzQS6_dO<-p z06>2W#zVts0Q0}AKBl5c`QwvLn+MyL6p7m9ED$ z6XFmyho;Zm&)!WD2^Enc1`)uDrnCs(bt=xhQq3e<>i=O zLK(JzZUj=>(J<%?K=gyuzY820IrJPJvVo8$)+>XiyX{>ZC5A6bleG-KQ3mu0^bsN# zs0dV=YBeM|)|;vC%mNU8mV^4X#*X0?cAryc#cyuSh;+q5q{G%RP!#_N`*EZf896Gx z$7$fE(QtEwG5joz<3kJ(C*wC_p2$5yrdW5sgz!9=q^U@XAL?Fqf^4!Ha#Iz+`Dbw_+HG1C)NBsuWTJ zBA3%z#QE&<63+fs4)Jd9P;$JKo^iOd-Ytz?5!#f^j4EZbA*+axCL+s)qC&;%C z5}J3AGV$Pt1f)prmP#U`ySl-iut>_EvWsWLoS`)=uB3r~#5$%fv4Vjpt{~d$>F@9g z9V}Xz!0MPEN5qpI3e`7?8haH2Zp0X(e^6Kv|C>6$CkBT8!;=k(%`6H{)a>hol}WAR zL4m)5rtkR%mEco)pw>awCsP$9tVOw_XBX`@rFK}KsSEK?83^mCT(SXMto%junu2gu zI_fiHWg00Sd;gX+5*hA1%LWCOKs@&8}f? z%{1%%gsxJl1pm2rFcx43DOjuAO{8ohnt;w^K_f-G##R{u=!aQK=YF9P2%q%ARQ`Z? zBGc;4EhZiHt z;$ko2lDqtfU{m*hFB7aj_3`7@!{_oBK5ixLZC&)RxB|C*%ekWlA3tu1U+C>E$KRsj zQ-eOG7(Pq&H~8C6CB4P-#EX1EEJEk~1MPhukKrCa@eRi59zM0E_JBz53GNO~|AImA z%n9xvZ)*iCoD=jjz?Ld>(m6K%@rbQozYlt(6EXz81OHdupLe$K+)1uOEr%uXJ=RW% z*37C81a_kGKZoL?MZz0#V5Rv`NrB(t-)?PumKT%*^Fk9;nXIA3>4%Xshp zZcRg?J<+NPjDb8qQ!1x-4km#Pf=@|3H?InfO;9a(1-##=NQ96{_6h3`o58(7VwZO| z+5)P-Ry=vc)+l0Kj0Q|HQb~&w<%X7x7Cz_8dNXy4;_NQ@*(5e((y+t5Ll+(vCV(mn zl&-(sEIodDwGuMBx~)gH%s+AA?#H7kn-+W9A0xC)#PyQ4miF7(A)K5_wNpJvkZ>zQ z%o;>*%dRpA^@VmO6=-N)rLAvBP0d||ow=vxkc_9xnBCoIH{*V$i{(;YbFnMZnLh3H za6GY5GxOE=dDr4h0F$SABCI4d(L`n%OJWlZ+Nn~-BN;zKY~*CcQ<;TJD49%HYFwH@ zO|Z<{t&*zCAJUT%y6FwPyPeHWDCCt9&eGRsTL-I!CS)y56MKRbNo=IqQt~-1M4d3z zRQ1)06oMA5+dm9TQ_j+ec@_MYh-eAEu}m8^!e#f$z-bm=TOFV>jn+&!b%8kvJB8}DHjNH*TAL}8XiNs&q{?sdyihr%o|ZBMCZH%ZeKp^@srYRvXa=UV6Ee+j^)+!dh*5Gi-NoaW; zrJ@*cB$80@hm_I=LzUAs&j9RslqkawMI&Dt6cOr5KFfwV3!8P7)gT1N5OcJ&o;3$C z7iS42`D|knF-Z<5Hyp52_CE@36dEx@l^@b=BO=;1z`;l ze0YNx4#GV`>=%KX=B+>vbj~E_c-lfqMWh3^dMtzp?|Rj_crAIu-bL&R)l9?#?9sd> zt&F{67@PW~P{z$IcEAoH!g}H4GLIp8qtKjXhEX>{*Mw<#Z5L}&RaM8A9qHQN!xe2< z)fMJ=tf_1h*d7_E`5x3PmJ>E2rQ{OrRO^A*J05bAGpYlx_=4GSL;!mNGV>6cabTDO zE%QoB7f*3q&C?K74hW6I)B=v@6Q6*iHEyzGc5T9d*aqsbqcnY3_?H2#KIyYy9!?_M z+S*;D*Z_7+6G|Eg*&D=_z0Ctdp$ZH;jt10~MEe^=jNG$nmdGUt`VIym62d z>aT&wwNggQ09z|FE=1~I*xP6Z7$*SJmkCX=yglC^6iWHl_@CwAzVSPiW?(Bq=q6ya458#;Y7IsAyH#5y@#FKo+(1*p!nA zsMBDTay9GSVW)J#45l^8&mmJV$OW-?JUn^)t_ynd7nU-wK~Sv}@f0%kSgJ!K2)Ed3 zD|V}ou;b{)*f(I8-v>W{^vH4Q60&n&^^aP54sil&>Hrz?qts;8X7z=5mSfdm9U_Slie&BJUE({$%maMOWWFCx^;G>x7{|*eR?$^v`ihbQDL+j$9_gs{f<>{E zk_Ky>dNfiGwQM9FJuNgQ`Tx%9gvch`B{YskQW_Sb{Naf6c@pr75c= zs2qfdlJ=vagV&XtpTNWd)w{AZPZ`(>iyWL#kf+q{Q`?K=Cfv2)y5WX}w$0&{S8=#G z$M^dY#(~(wk}=`|G-4%ryh_4Q(eKOcbcGov~WfO7Ku^(Z}m zggOD5zOUbY9q>m4Wpb|NuER!WT&@-*$tlKS|74l(1*3E7x1((IDGt*IWx^|QigxH1 zYr*2##vWt1ZJVh*{8tdsf6#(2`dtxLb+ zv66bS1)S3vHQ^GfEn}@e3il@ZLR|4Al$*xf^m{B2Ci$T4DqG|(4@LRLcKPmYs)A(Vr0c|7aNG$a~`sD!uUf6WbxXv zZ;Wooa2zi{IZ{tQ9P}k#PIY$sTomN06f%=U$DKG7=+NiCHpx)t2$CC%d>eWewe60tS^Ilz zSmPFAJR_j4XA5x50QN=`&?~%~r&UqJ!mbKxp}-#c^_))j+WeRtl3+;S?qn zHT#8EUr08=N^WXi6?x9VSW1Om5pv_1{8Z~v=2kf+jZ8u! zIWo5?o0)iQs#^veqI~Hv81Et44YUaw0&_ap4S>&+#3^$(*?1Mcr`j?VF6IMtnFVRm z^Z3PYNQwL~jNfwjYVL(tpFJgVxpg(az$|G*82|w z_sHf*YbI%KA!kX){;~x)e2l;lsp3?+S;kr6Gdv6l>(Ng_x@_2P*I{yANndqg9w{_h zN-<#AJ!|Z7uDMg*@d@?H`W>OAksKuVD_`skei25%GotGSla#Ao?Jsk0ey{zQWu$pd zoS@N$b3Fz4`TY$o3c*bERVEwX2x(*$%NhHCcF1;eZ(%>E?Q0t>!eDDLr=kHeVjj~4 zk#^LdWo1jvJ6Kkqi_MYmtZ^V5$LARL6)@)4QjGSO&DDM~0*Z6g!Amz)JCVYcY| z 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 literal 0 HcmV?d00001 From c5affd896a623d63553116f81b1d63fd52a4b73e Mon Sep 17 00:00:00 2001 From: AigeStudio Date: Sat, 14 Mar 2015 21:56:47 +0800 Subject: [PATCH 23/56] update some codes --- factory-method/AigeStudio/readme.md | 256 +++++++++++++++++++++++++--- 1 file changed, 237 insertions(+), 19 deletions(-) diff --git a/factory-method/AigeStudio/readme.md b/factory-method/AigeStudio/readme.md index 4bd38b2..bbe220d 100644 --- a/factory-method/AigeStudio/readme.md +++ b/factory-method/AigeStudio/readme.md @@ -1,37 +1,255 @@ -Android设计模式源码解析之${模式名} +Android设计模式源码解析之工厂方法模式 ==================================== -> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 ${模式名} 分析 -> Android系统版本: ${系统版本号,例如 4.2.1} -> 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 - - -`复制一份到自己的项目文件夹下,然后根据自己项目替换掉 ${} 内容,删掉本行及上面两行。` - -该任务不仅要用java写出该模式的一个简单示例,还有分析该模式在Android源码中的应用,可以参考[Mr.Simple的单例模式](singleton/mr.simple/readme.md)、[Mr.Simple的观察者模式](observer/mr.simple/readme.md)。 - +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中工厂方法模式分析 +> Android系统版本:4.4.4 +> 分析者:[Aige](https://github.com/AigeStudio),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 ## 1. 模式介绍 ### 模式的定义 -`模式的一句话定义` - +你要什么工厂造给你就是了,你不用管我是怎么造的,造好你拿去用就是了,奏是介么任性。 ### 模式的使用场景 - - +任何需要生成对象的情况都可使用工厂方法替代生成。 ## 2. UML类图 -`这里是该设计模式的经典UML图` +![](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis/blob/master/factory-method/AigeStudio/images/factory-method.jpg?raw=true) ### 角色介绍 -`对UML图中的各个角色进行介绍` +如图 +## 3. 模式的简单实现 +### 简单实现的介绍 +工厂方法相对来说比较简单也很常用,如上所说,任何需要生成对象的情况都可使用工厂方法替代生成。我们知道在Java中生成对象一般会使用关键字new: +```java +Client client = new Client(); +``` +如果使用工厂方法来替代,我们则可以先声明一个工厂类: -## 3. 模式的简单实现 -### 简单实现的介绍 -`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` +```java +/** + * 工厂类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Factory { + public static Client getClient() { + return new Client(); + } +} +``` + +然后呢就可以使用这个工厂类来生成Client对象: + +```java +Client client = Factory.getClient(); +``` + +但是,相信即便是新手也会觉得这套路感觉不对啊是吧,生成个对象居然这么麻烦我也是醉了。So,我们极少这么使用,生成某个具体的对象直接new就是了对吧。那好,假定我们这有三个类:香蕉类、黄瓜类、甘蔗类,我们将其统称为水果类,额某种意义上来说黄瓜也算是水果,为其定义一个抽象父类: + +```java +/** + * 抽象水果类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public abstract class Fruits { + /** + * 水果的颜色 + */ + public abstract void color(); + + /** + * 水果的重量 + */ + public abstract void weight(); +} +``` + +然后呢则是各个具体的水果类: + +```java +/** + * 香蕉类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Banana extends Fruits { + @Override + public void color() { + System.out.println("Banana is red"); + } + + @Override + public void weight() { + System.out.println("Weight 0.3kg"); + } +} +``` + +```java +/** + * 黄瓜类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Cucumber extends Fruits { + @Override + public void color() { + System.out.println("Cucumber is green"); + } + + @Override + public void weight() { + System.out.println("Weight 0.5kg"); + } +} +``` + +```java +/** + * 甘蔗类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Sugarcane extends Fruits { + @Override + public void color() { + System.out.println("Sugarcane is purple"); + } + + @Override + public void weight() { + System.out.println("Weight 1.3kg"); + } +} +``` + +最后,上场景: + +```java +/** + * 场景模拟类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Client { + public static void main(String[] args) { + Fruits banana = new Banana(); + banana.color(); + banana.weight(); + + Fruits cucumber = new Cucumber(); + cucumber.color(); + cucumber.weight(); + + Fruits sugarcane = new Sugarcane(); + sugarcane.color(); + sugarcane.weight(); + } +} +``` + +具体的运行结果就不贴了,不用运行你也该知道是啥结果 = = 。这样一段代码其实已经算过得去了,抽象有了具现也有,也确实没啥问题对吧,可是仔细想想每个类我们都要通过具体的类去new生成,能不能进一步解耦将生成具体对象的工作交由第三方去做呢?答案是肯定的,我们来定义一个果农类,你要啥水果给果农说一声,让它给你就是了: + +```java +/** + * 果农类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Grower { + public T getFruits(Class clz) { + try { + Fruits fruits = (Fruits) Class.forName(clz.getName()).newInstance(); + return (T) fruits; + } catch (Exception e) { + return null; + } + } +} +``` + +这样一来,我们要什么水果直接跟果农报个名(Class clz),然后果农给你就是了,OK,修改下场景类: + +```java +/** + * 场景模拟类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Client { + public static void main(String[] args) { + Grower grower = new Grower(); + + Fruits banana = grower.getFruits(Banana.class); + banana.color(); + banana.weight(); + + Fruits cucumber = grower.getFruits(Cucumber.class); + cucumber.color(); + cucumber.weight(); + + Fruits sugarcane = grower.getFruits(Sugarcane.class); + sugarcane.color(); + sugarcane.weight(); + } +} +``` + +具体的水果类不用变,运行结果什么的就不扯了,自己去试。恩,这样就差不多,更进一步地,我们可以考虑将果农类进一步抽象,在抽象类中定义方法: + +```java +/** + * 抽象果农类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public abstract class AGrower { + /** + * 获取水果 + * + * @param clz + * 具体水果类型 + * @return 具体水果的对象 + */ + public abstract T getFruits(Class clz); +} +``` + +然后让Grower extends AGrower就行了其他不变,最终的结构就与上面我们给出的UML类图一致了,香蕉、甘蔗、黄瓜什么的为具体的产品类而水果则作为产品类的抽象,Grower和AGrower的关系亦如此。然而很多时候其实我们没必要多个工厂类,一个足以: + +```java +/** + * 果农类 + * + * @author Aige{@link https://github.com/AigeStudio} + * + */ +public class Grower { + public static T getFruits(Class clz) { + try { + Fruits fruits = (Fruits) Class.forName(clz.getName()).newInstance(); + return (T) fruits; + } catch (Exception e) { + return null; + } + } +} +``` + +如代码所示,去掉了抽象父类的继承使getFruits变为静态方法在Client中直接调用不再生成类了。具体代码就不贴了。 ### 实现源码 `上述案例的源码实现` From e13342fe106cd85e4bdddb22b05c3247f787d5bb Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Sun, 15 Mar 2015 22:33:49 +0800 Subject: [PATCH 24/56] add bridge for shen0834 --- README.md | 3 +- bridge/shen0834/readme.md | 58 ++++++++++++++++++++++++++++++++++ iterator/.DS_Store | Bin 0 -> 6148 bytes iterator/haoxiqiang/readme.md | 4 ++- 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 bridge/shen0834/readme.md create mode 100644 iterator/.DS_Store diff --git a/README.md b/README.md index e8bb874..752120e 100644 --- a/README.md +++ b/README.md @@ -35,11 +35,12 @@ | [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | | [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 待校对 | -| [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| SM哥校对中 | +| [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 完成 | | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | | [命令模式](Command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 匍匐前进ing | +| [桥接模式](bridge/shen0834) | [shen0834](https://github.com/shen0834)| 撒丫子赶稿中 | ## 目前无人认领的模式 diff --git a/bridge/shen0834/readme.md b/bridge/shen0834/readme.md new file mode 100644 index 0000000..4bd38b2 --- /dev/null +++ b/bridge/shen0834/readme.md @@ -0,0 +1,58 @@ +Android设计模式源码解析之${模式名} +==================================== +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 ${模式名} 分析 +> Android系统版本: ${系统版本号,例如 4.2.1} +> 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 + + +`复制一份到自己的项目文件夹下,然后根据自己项目替换掉 ${} 内容,删掉本行及上面两行。` + +该任务不仅要用java写出该模式的一个简单示例,还有分析该模式在Android源码中的应用,可以参考[Mr.Simple的单例模式](singleton/mr.simple/readme.md)、[Mr.Simple的观察者模式](observer/mr.simple/readme.md)。 + + +## 1. 模式介绍 + +### 模式的定义 +`模式的一句话定义` + + +### 模式的使用场景 + + + +## 2. UML类图 +`这里是该设计模式的经典UML图` + +### 角色介绍 +`对UML图中的各个角色进行介绍` + + + + +## 3. 模式的简单实现 +### 简单实现的介绍 +`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` + +### 实现源码 +`上述案例的源码实现` + + +### 总结 +`对上述的简单示例进行总结说明` + + + + +## Android源码中的模式实现 +`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` + + + + +## 4. 杂谈 +该模式的优缺点以及自己的一些感悟,非所有项目必须。 + + + +`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` + diff --git a/iterator/.DS_Store b/iterator/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2ef526c2e125a415667e02c35c522c910dd0bac2 GIT binary patch literal 6148 zcmeHKO-nN|5T4Y&x@+Ne1rK`5%}WpU8&58^p1cSvdQj0_w%CQT(ROQvTG*qXH-Cia zAM)UjaVAL%QoV`1zRbYnnM`Jq&6AL906<_gXlrw9|27R K7tFwqGVl)8FI%Dj literal 0 HcmV?d00001 diff --git a/iterator/haoxiqiang/readme.md b/iterator/haoxiqiang/readme.md index 759d2a3..707a221 100644 --- a/iterator/haoxiqiang/readme.md +++ b/iterator/haoxiqiang/readme.md @@ -109,7 +109,9 @@ while(iter.hasNext()){ String key = (String)iter.next(); String value = menuObj.getString(key); } -``` +``` +就目前而言,各种高级语言都有对迭代器的基本实现,没必要自己实现迭代器,使用内置的迭代器即可满足日常需求。 + ## Android源码中的模式实现 一个集合想要实现Iterator很是很简单的,需要注意的是每次需要重新生成一个Iterator来进行遍历.且遍历过程是单方向的,HashMap是通过一个类似HashIterator来实现的,我们为了解释简单,这里只是研究ArrayList(此处以Android L源码为例,其他版本略有不同) From 6f20750576888a7bb83962e76b4b944eb86ca667 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Sun, 15 Mar 2015 23:03:23 +0800 Subject: [PATCH 25/56] add prototype --- prototype/mr.simple/images/prototype-uml.png | Bin 0 -> 26554 bytes prototype/mr.simple/images/result-2.png | Bin 0 -> 181578 bytes prototype/mr.simple/images/result-3.png | Bin 0 -> 137560 bytes prototype/mr.simple/images/result.png | Bin 0 -> 137684 bytes prototype/mr.simple/images/sms.png | Bin 0 -> 78239 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 prototype/mr.simple/images/prototype-uml.png create mode 100644 prototype/mr.simple/images/result-2.png create mode 100644 prototype/mr.simple/images/result-3.png create mode 100644 prototype/mr.simple/images/result.png create mode 100644 prototype/mr.simple/images/sms.png diff --git a/prototype/mr.simple/images/prototype-uml.png b/prototype/mr.simple/images/prototype-uml.png new file mode 100644 index 0000000000000000000000000000000000000000..860f518db74ed88bff85b1b237b0c8ccf0d89877 GIT binary patch literal 26554 zcmdSA^;cU>)W?goSaEkLEzsibP`ng(DG;Q^-95NNaCdhp?!^Md-Q696O9GeYeb@Uh z+;#8yA?qYLv(}v1Gka!#_h*MIE6QM?k)pxD!C}aLmsEv=gAaYXpFlx+`=m6c7=eSM zhLe>PQ+J0y^+ER2m}|V_?YuWa&5{& zC?X<)E;TbW6geH;vi{TJbo$JkoViDIP7_r%&e%zKwWuC%`cD1|7CnM~5$vY+m^^dI zntzs1!tMx7x9c_{AL0b^Yof9dt#aWyuR^vVJzO8U(wgIMc$cX-gJS-U3xU-CJkqaZ z`MT{xv$~KQ$5;K4cA0Mj|MV9-xtR4B)STUnm@g>d-BQb(@25$D1oUo3(K%l4R*j0M z*W}zPVIEhrdYJ+WT78z%V@Aw1keNFZiEmY$mWz63?^ugZo(fJti-DG$mM!(CgW8%L zWM%y0Y0devd7~ElEy)WHI!i%KRAdOI)}s#kKxbIppYWJ!(QI$Tqar>;Q?p{(OdnJ$ zj}>t4W}dP6|9*pV`IZZtKRbM+c9CSj)q+glmY5uacmqc_|ET$>1WckM9Sch0h%a1` ziq^fKTeveJGe@Osd%;F%gB@y~l{6bQT!kje?C8+aNmuc_77hx?E+DT%i_zA(7)`+ zIT$?pug=dV#NmA`40JXTafTqdwugm$n9C^nt~B#wIZku`0gJ+jU<%o)(JZe1P6@OS}*sn0V^q|Bu8+idzHB&>Ow3*4Z)bkFiHLP zTjS4q|1UR=F0{@H^zliknLcjl`>((0pZ|Z+@BbUIxS%R0Y?Wg%cYRftX`L`u3v%A; zEA)POy#JX4@c+#LC;h2gnPw`}j96DS=*f~VsTZcB$-h*7+ccW&h{b0d&TjtdJsT7@ zmVmmt#1aUnANxuqfAyKn3Knhd$%Koo=q^8UnO}L0rm9L5fkKi>-+$)SkjD7=W>$3) zZtFL5s{Nj=eKX_#xBi6Kex|z&o3G0KV`LQNO##{GIBwLF{&&}I>5El_{Qgb)r#frdp_hv2`8%^>Z4`B`uiLW`-6v^ruZc?lwfTSm>@>j0S}N@4{_^ z#opx#Hs*|(VydE0uKm#VwmqD!ow`&p%bTV+(p~pYLd1*CLB#7bKLpKL&*i=?UBjZY zLC@d-o9`=1$W7fH2h?zK!2|&AAH``q=jOWWA$}yRPI^0LHfqbh4KVFF41Hi`R$;rq z#~UmE90-PmZ)7o_rXSxCR}k0%wL(aDJv=P}1fJk8H}aagdvlSxqU1bzD^wPW`pXOB zwxUAA!^76xi*dqcegt1goK;sSr{CO}ji_yfRt16V|M-r^mxfvX2FuQLG1^?5$v02# z`3YexJ9c07hu!C{M7`(=BiRE5Yu9+XuIS^!3ZZz@2iSSssFYTbQ{s8KIpQy_Fd#0r0D ziKf;+0WXmEfrR>8>@lZK$7W}%yQvF2-$Sg*D_U8R@U(fZ}3O9$D%BVscTnm1V9Vb_Lmm4Iq8(D38+{2peW3y ze`9*7=l{~^J#s5E-&mrU6%md{PZ}NP-^d{Gynq2;jg^#?BrVurGKkrCXZPv(c0aCr znV~c**u2L&6PKu4_)17)KWFGlSaKa@#f;YRqUmkY@ypdu=Ln+zrqH-F$PhMt-Wiyj%}1<;1Fc2ggvj)&LoUH0bw8GR?=2y-S;Jxi781v`j>KQXDE;Q%Te*h~gnqOLj?T8ufiJFo=TMFn2Vtv3NiXZZF_ax>FIa_Ha zGgL}tgMYi)5L$9wd_G#AmMG;QDJ30@XGIPTeQ)L^gy~nkylv3ick@)u5mTsH0pGlC z7qU*2DzXCe;JpUz2bPt0t*orr9e2O4x~|xO8y+KS%HG!y!=ID8o-GIO41(IDB32EQ zr*eK~C*wAF%N^|1bADm_$TqO-Qy?Q zTE51-tu;OaOT&_ojH5x@52lpd)gfb79plU=WkODq=TEeMpNuGKS^CQa)cWGjFKbj^ z!TkxNquy9=&r#ebeZ%VN#;+@YMoc4AdhbYiyFx#XZIg)!0xuz0J+WH_>~`bm{W76V zC-b+B8hmd1=;fra$z}i=f_K*4uP$XDeP+i$6ZtKFD1B5_aVSsiOphoXnnWE<$uxE> z7r|A~GwC}kp?8B>0nX@p=%^LJ&Ov9LxoI-n%>O<}3OQ;lK!U1aCxLJ$s+R|B?M;Uh zo2_UtD-VPkj0cxQf?4%M!;@p)%V99yhP&X0U)fEmlW#rBQWiQt2bp;CKzHTF% zQ2FrF#|eh?!^7e;Y}A!-`i_pyC}aG+?7j`(N8w-dMcW|Yqc9RUl;jTv#_caalV&V3 zb#_Cco^B%OAp40{L|7&4_33OUm7^3Z%(`&N8e|fh7dWMD)HqOV2YpVdXY#TCvv+{cGD~8(Nr#6dd$-^64n0sk|;C$e~8MS_*x?ox9 z_Q_GHD<^2qx#CVsfr!NIYD|$)CFR>^r}fceBzd*0)mV%3-8ln5(%GmzEk)U$76I2J z!@x`eC8z{huj9niR)+g}bhEiMBXhZH=Nl5) zx_5bn)w}uS8fP&!l>QZJ_A7ft!rmS`Le8qz62>BQ)rnmDT2H~JuNMHUzo>4P=bn))YUau4zdEsI z|LnpIEM@@{5l$X{9%^1&s;Xk?TdKUiy!;@oYAodKL%t$>)-~UVt9(oU#PfXIDY=j@ zp^^PK>)aZX?DjEtyHA}F8n$Q@!+Itgm@~aC-f?*Ys6FY#Cf{hsd;j}3H8%5mfg`J4 zn>R_y2cg>2byk!0N_1=Ydn!KXtB=XPXV2O~E^zC>J(7+_U*>sh%IG2|BBR3y4Zfc% zL~cL_RJ53je#VPxsYO4BhpGD)!~vc5%l3`ea0BEko|otLd*ji|#zmL>cWxVAqSBwa zjLy7jwhzrR98PC(PuH5>OAQnei)Cs0nPH9_jEWgAGYDP1cKL6QuDNfQrCjcxu=cil zGp*}3WB5p~2O(c%gD9-l|5lvv?wrm2WOKC#JWLr@7i1nPCI70rp?78NN+*gl%hA_L zacfe(>jC}JLmLSGRWeQS{@@b{SEIywiy{3>Ss6pG-0MBP&@J?2Xq;8X+nNjQy4mDx zxslKF9Qk3KsMzpY@WN243AuPQ0}-IhD(tz74NaiWZCckNT_`DN+gqU2)k$^U!3qa~G<1on72~xB|W7A5b1W>C2$ZSWZz7z$nw&8sMSp76S zwW_GFnC&LuH}dClLNXoIkE+>tmAb+Fk~iK*^o3*xa(PcB8Kp&|3FZDkllP_N`JB~o zIo1HBR0xDMeF+{4>e3+AJcIor0BcFLr!bSO$n3^Zw>(P5uGSzmoaLjt(nJkU?Tc*b!MN$jUTZaj863bOwNX zl68-JKhHLYDiQl6-K|nbhv)F!mZ@9+Q{zJur0hM8mj{*gM4#7YIl-Q3Hw?m9mm3m8LepT zt5aroCg@*%cL?j62lDhY*x22ZBVgz0V@WNhPrgK{AGO3yahy7yqY`CbdJ>gUAy5=O z{O<1tWd=+x;{Rn1|wmasw$ype{lQm+iUldZu=* zF#yH)iqC42_v#hhrkRy=DT^~u*yHxejR*X*5D4WGQhdV%GT-W08h{uDt-mhqOMi1_IE5|nyJu4E?_-wmJ z5sTncF#)27100V(dB-_=^~g@AjsAa(*IK>NL{(u@g+=zHy}~;1!3rLl2+#!?9>>+Sk6~j02j=Lj2Yg z78;{%a_?ukk=m^>;MN()jheHWke9XdJ=q;)fYvI*YNI`!ac`g?1?GItvF>!v@SxGY z4e0GW%!p96bujE>V+>6W@Y^&D3i13q7|E0wdf=TsYd`zN{rMvo6MB!BKbNYVI2(mq zCoJ1;^ZWc~Ydr|5tIu}ia+{|-z?tY=n}cl2e~y^LQ%HoriKM3U3iIV*k@n$^w=1l> z`;P7f`n&;m>k=kA@)x%8g7ie+Z=(LhR+;~~43yj*kzqOp9(wpSN-UZz5IS?1lo=9^ zhqQv}r`+UiQP$LSiSTlJgV#W#AKl_hd)Zhc?6*W~9P6~pV4&X#|9bt5Xr2o#1Z9O! z1wPLhR-2e%mJ{mE?V!-NB1vXJMRB45#0q{aK`@>q0y?wxnPvf^B z1VdyuSwBnVwWF~=<@D}w;Z+brm;x$)3@9~5>i=wb`M2xx>~A#ZPk-H4ug0gDD=o9v zF^HAEnN}YTE)EFU7iz}DTr>D>=di>X-CINH=13F)=yR;|5GqOgF*T-M6;aq6s_?Le z=df6R&-UYMISwU7XcW6iZ2b2T#T%hM*anOMJUUibH2d9i%pF(=>!zYMd1A^O9}ncE z=sFZNM+re!lnKkBPhNY)MvBVv_soGqmk*Ov^I;dy@3jEZ;1eJf+0_G6z>_N*_|fC_g?O;Ar?WbGbY@3g#`<+)r!(fq z=X>d`*1(5bs_a~qE+R_bOUiScsH5D+b?X*NN`nwFMKWQ0HS_YHIxAri6J#2@9U~5F zCCT96X^T%(50i>qK7}i(=T`z1{@8OeJMdK3!Ggl;Z7;gnFpI}zb@#^Gk|L{S?y*5$ z>_84W($g`QBmd1>bNOtcvCnHG3sgQcoUyZZY-gV*PXmslLFm>DnX&0H?xeT%J7S44 zh6u%DF#|yYE1?nYM>1`>2H{^)=LEwSbd*)p{dlu|NR@$G~DcraWE&qvnyMW$G&4x#ku8Tz4n0Vdo2eX&EUZgb@dI}V{E4J=;a6s3ZC32 z>SUPYGq>?G>g!uUMny%v>HQ|EuEqT^-~p5JnVgEtf5(gJC%mGIiq zjgS@M%v#6YD8G{mU}6C;Uh`gRfP?ccb|w?^SSlJCA&GfvmzNS))WZCPU0mC!Xmy>y z(r{^Z_#0cFjZJL%tZw`grR*LrvW2a>PO{R3(!NFh=3F~(bj2y8EYVKZ;RTW5Efp<8 zLu{K&4_dB2yd0`ehI`e4?q{7KcH3RHPXn(0JC&6N^A*$VwK0`9^bL%2-O0`VtAtR2 z?rdjkOa$@X+RN;k?c(3J4XdOP%Fpe|LLJ_0_7Cr%Ouvceil_%A$|y22?({pEpYVRB zh^0t`*zTb;*TWL63|KuzLN|%O${?Lahy03~AvgNrbXmq>sU7Dw1d$S$@_2l2{8Z&e z<8X;`D(e33{Qv=1QA~eWoCzCS6)V(Y?K(pgh~7N!X=MJxj@nz~g*+$ZQp7@f5E2M@ zq2#sN49-6XZ!3T={=qnG@y0M*kCo~YcTP&v+7jKi>u1OQX8bP z!Piw9#iL>PrkgWeN%x!ze<^Y6Dxmdg!2i{FWoKP2i^Tl3oajvSQpp7h{vjBJv_yWO zDCVQk^mQf8C={YfC#jW5ga(ta zVjNAY3OtR+EVGn-;0ZXZ(E*a1(RY+@WSwr*S$%r{hhX8hCY|nEDc3&F;2dKZdSIdc zf@Cf?OtxAo#njhH?_o)6rlI3n)|pc}KtWa(HQRj~b?1Xm+juF1{wrH|YJ%W#Para{ z)#==7DNpq@e`Rraj7EA|NyU)h9eI>InSKGY6}gs03?KI;xoOE=*jLsP{s)DHU9Ph> zOoWj2(<~m4<%6hT{R=sSake|zO+UskiunX-vX>GDJIDbwSVl~-9TRTJUfQG{Mwd%9SzLrOH*vrgk zY{LSxh4`0G1-&ZlmB z(7-BZ`8ktAyJk$+Ghkon77OF6-sn4@ScGIF@_t`hTJoImhd=r>cbb%NS2qdkG=4IUF)|LAjOy)cd6WgU)W_r=mk z=xM2)dK~||J6Vji#Q>HqRzX_jh&*g#4Sa4jc2-b@eCGdC{E)`75W6*Icmiu#6PscQ zrT`z9nCUD$e%s`|FVyDkxxuU+h$J%E9f|{I2QI@kQkN%Gvm*$_ZVQJhWbkZ3AFo;J zL+{qh1($&tf}wW-TQNCg1xGU_CZyfjDcJ(^As3isF$GS@J`a~hCIw?WUgkgh<{bE^ zwM^f&uv~(W6#@@GJH5%8Zc&=t;#q-k7yOxmZkR+YdWV_l&fEGw&&Y=~|9z_w3jH|I z)zZ+wRp5kzcHE{U_QSv{e}V#`oATE}wSJZBcz!qIfY=B?2WCV8sbLf$aw=+?q}Y?h z(n`NSw|=d1#nhT%XUqM_+T}OOiIUx9;ReI0W&YfF)}>YPk$HnBlUr*-GFNa#6nGOp z!Pe#i{sX#1$vKuw&tMGeco+p6(Vk07CkPVy-)&w@W|SW=PIgCTS$JdwyjK&X^sJq& za|Mo7`vxx7K;oS(;6}m!oH@tfw2`2$-ON|sSru!Et)|0sM3y0bN!3;6TIIkLG6M!q zTb=)70sLXBC|ABw z@0}&-#bKmk8q&R{*`^L0HzWK+_B_u*R)`C5;^=l0Q7=Y-P=o5y5-?z)AhqGSgTj$*x$FjM^x&_PKt4*DoGVJxAg0* zlkOP8@<%%tg*=TZUX$1R1<~FGD(`pgpv=0svcAP;3k;E^RxGK#xy5D=W}iL}svlpE zB2~6aHFqgDBF(aWD3LjpOa>U0jBfYO7^8*uIoSN_PKM3L z4;h1-;cG=e4hT8Mw+o)Nvk}8rr7jFa8tj=Ktk>a8!hQ2^f-kv9%awQfzTg83K-|{| z)#rvDy>rLpCWfG=aT1mFuD7K`}WlU`Q&|B zZ0s!7Kh(}msVsFV9aIhwm5h-G!AD~+T4wH6nMK!=R09$juiFVXmEW`WKb>-iOSfX; z%`&W=4kqX2^}Ya1BtG-l>4Adc)FuUK@Sfd(G1r{*`B$Tal}k{54!QgM>IZyG+YSGY z<-nUd$frzxd+YddbcWYF|xKtDZ|Z`ks%BYHX)5tc8E^3?nO zRhdE*euQv5Q04_k=x%}_RltaE-lvvOu=!kCe#7}wsE5(nik;#0I_)fQmiqUsv-fib zKuT)fSLpiYnxV8>TuO~PdDVyN+&~D=NX%DDcULjRgm$N7_K}Gf#G|pG8aQB4?%%d! z6J9+$;NI%RD^bt*=8#DC}+}vr1T#*Pp3P@2-C>FxQj4kQB!?A1wCh9?uA2^KYE%eZj3Ib;1AR4`9T| zSjzNJ5O21mg~#VJC9b@ARzg7Qg>O)D&H&!4JBAhVjZ{zBPJ_b&RpV{+W$sc>9bQ_h zkO|WML|TB_`{+~!PLS}4=-&v65{HFOfP|wmNj9__X!uwzVlE(SXIhEgpVH;X>Zs%s zQ(vN#+hVQPd`|xG<*0eXmrO-PMcRbk?6{R(4Y+SIh-*e^F*#}!Q?KSRXVvzhJwfGS zN3n_a@Ysjn&Kt|^H?F{Soryv9ukCBR2_dIVH#(n}#{;l@epA!DJA?ChCOy z6~~Z9iEwdO-^up)`Aft}<*Znv|B#Y*ey1?fS7!*Z(e}PpU=aN?d>6r39+l0dk<)39 zvp=34{Qbi5bXEQtm7i!zT@9pcLONm9<=xhY=PO3@T~@KMsD$_vSjq%8+{wVm*caaS ztb(mB!wJI86!gKN6)#ZMdHAyKb0L9FnHca74@}L`;3e8WXf+DWW;9qmNwrV(b`MI3TZ!L7ca5I~LNf!R-_uMsy7;M?^F48=J z={Lt$4vetp{JVbD>ku6U+kfTao3&Snk=#k5v}E=&Xj?84WERKLxTT8oDN|?b4px4=8=H@ZpPcN|y$DY-0xh ztYa%uAUEjZ>c7wfpfF|We_Yb_C&7%gK4sBeYA0tq7*xxGo2Da8!Zz*V7|d96bMv*> zHoFccLp{>7ymK^P>4p!P^2NQ`oz7MJOQQeQ_OsoPr27Yk#%vCaD=a!eIi3oOjU@q3 zU}s*JRc+>T9-(wdF=OQR(I!sy+q;jE>jVc|SvHlEotU-h#N`08uI!)~`OR9IN( zXNEggy|Cza9O3xx;hC1nG7`V4&ftV@y0M&;xN{AVPXr}IxhD= zM9N-TAisaU%RW7dv2L!I$76G~QePI`J-Bwa-y*8h-d_Y3;`3V*wY=9Hwyg)E4uj0R zJrfl;$UHZF6E8PNcU1iT=>ncAdLEQNhUF{}W4=oE{3gXnA{~+Oe##G50w`xQ7_R2# z6_e&v>PONXS)j1+M^7jw8Xqah4vk>+)**U1xVw{b@K%b?FO8_@nWF|vGJYM71?WYD zrHYicD*Gqivg6|7 z4(BR}NDsXhryt}bPE}(yoqsSi>AXao%CrJ2u2@Lir29>OCTX4T#cGH57!u#j!}bKdy$?0$*&*Q!dhMvlpkIBgpYf@> zpiDew$y?{a38gHaG<+Y?eAkl}TWpYvqrXeLZ1G!fbdvSd(c*|d8|&FUyu%|3JdsCq z;S=(UKm&>UxuHlaWPze~u`?IjF)ErV#Hd}w15ywXDcG>Fv)caVEr$Mvsid|?c1-be zjZ~Jc@eUVFj!MrMc)X`CFcMAjKv(ezHQatc|I{x{^3Q~RqJI)gq^GE3#F^s@L5h~m zKsF*Cb{rcVKVy^OLiVS3p)#}|nHJfMFZ{mUSB0{$-fc%JvAND`Ef-g@9l+TYel9E9*?A*bM?C(D^F_9R!5NO{*2v?o1RWrxEC|>l7y{Dw#6$1-4>9fwQSK3XrA8yQLutMzR(@?p56A>GUJO z!^+{kvxkAfR|Y1wJ7Ra>L3R7NxTj~^6nkh$$ntuQq z3%2Z(7+;bHVf{IjG`|mFODxOV`|2B0nlS3C`-KN|^HgLu2>`A;MH0Fx_-O$cO;MNI zU`;85!#GW6P!e%oljYnugn`f8uOJ)w09CF(rHCh-?gHB%18zsf@C~oVJS|PTfBZbc z)-Yd_T0bQJRImD-2ta~^mi3`BWQFzuZiI64dVR-iBV0^P7)Opiy8r!P(KbB@22bfL zhH_)un@aL)x6_k$(n^S{wz$?6lVTMlR~Fl0}UP2J;D_#=OaHYFVmODA)E!ai;qGaGrPlV1CmkS=p2G zyNidA29@s|EbEK|8P*I&CjF=B_%`xESG%G z^?`R4gAWgjdasIfNy`Wh2o<|8h*N!<+>%~|n*IITgQ;prwS1{4pU0Q8To>1gD8a^L z62(4zS9q(JCm7Ub@okQgb}wJ4DE4cPt~!w~^97+O6=~Sb*~)@n4ExR!DeqU!hq8ws zi!=0a79@DFY=(Tthg{jBXY>yKx$n54drixB@8KC? zvSu_QfPlwJJ*{Ln{^8-^xZ+toVi~crDCvX>;-<@{PptI3m2k&=>50WKH~YkePhSUx z6?SdO_8kAb^nZWPK2?T4>OV+u3>aBa;%xMzYF@?6eCIw_LL#YLdlI%DC;%@iy8OFI z5b*lVaue~h<%72Z0B~^4C!HyBvup2c$;#KyQ|mbC{FfAdo@$N=tbCi6W+7bmLVT_L z1)C`L15>aoekvNX1$eSAjQ_PkZv9KKg#J5!*P{uM1l9WLy{ufl$fpA1iavdG_>yu8 zl9RH#i>u5)XSCBuwZ7?}j_HC1Niq++x|zlL3*vsaL$8aiGiAHlb5;NSUS0Nv$CfTO z1m$cN!K&X-uxNd`Cp^k6&Uc4OKW{fQc5OJ3voV)SB;(n?2oXiiEXtCG&IOSEIZHgS zGGE}vZo&Ou#n474fcY;PFwX_!L#u;R-tm@h6L78Pg+fM0<&3I*=a zmw7Ey60Ll5bKDO^)LMR#O>0khbIRYr14JfCd~dj4$Vsjmz487Y7w1?9-5}M8h+`0C z11h>Tm~mm=caY|<482m8z;B^wD;FZh|Lw37zc^b;i1_yQwc0dvm+M5<4KrZ)_FhL+ zhPUlxyZV-EWPhj@dtM^B9sJ|ORw2f*pIe_bv)hXvK)Z%-=y6W{ZWJW) zgz^R=B6f$Xwx59Bh7iy;m{l(jXrGc`l?P0*0{oBqQAsraFIOxu>Z$IH5FBJ0FM_Up z>b=d<|G5%gt;sYlIziqNBcICFqp7v%YKQ&o;xX=@RQgrDcP!C#rd7<9zF=C)z`S|Q zmCUy5(e&Mvpnhuc+O3oyhVMkSFu0}r4^A+v(E#HgM(gSkA!Nm=z0m4qe zq5jLNyz0WO9|Y~2QCbpIjtGr0G0V&W z{Ow=#%YQHP)W71#+g-b3Znv!yn3DbBtHB24SZ8{>_XuJD!zMMn?(^+!AsqlDE) z8v;9F0Rad*3VD@S4&~#swdLIv{|WzN`D=4j^HOj78N?E!N8ek~3RP65O~2$LeHZPT z0?eflfaqZmv(-F)HA3-7?>eu4Rb$-ap$P(}g z5H3Je)=qw+zbV%?PWt7an)Qx1f%NyFRoQXaob(*9h6o{``!N2NzWOuFA$^FgJ7}dG z_$GxxTWqmQ*x~RxONl=ycsr%zTzvAFX9s?>+zE+(*cf~zN}!*yvZ3^u)n-Y6ro*Ze zf#W~r9>T{s->5Apr^4>%HL(-Z+d+rKq!0a~q4ih{`sRrY4oLtsRtqrq>X2Y{4PsV| z-(iLD6JFZ?Wuf$q9}z)Loq3O*E_u^Ey7a~vh_`e`zh5bhfoeUlu4#i%``oGhqdI*@zju@Gm_;VeJji`S2 zOG~EapT@{0unPK``KCuiIm3L|B$c9?e&m%iDm%)X>=u3N!l#r2S*-_Bjq5W7+1V3M zBV+Z1nPc!{TdXK_D#*%7AiN=d4bT2ck(Gx{oJTC z`W$2Mj&PI$#9SeotL3EBdv*gMdyB12PWx>)T3ieo!n=GXzt@wllt|l9&~GF>K6XK6 zht9Y4ZkHXN+&Yz>&tygfm0)_ZuoH7=i|^jSfyr1p_jd(__rRgBi+>xV*`h#^b)S3v zC@RtQhgub_QPG8k0`MTdL;t3vNbdSAJ#csk$TJsv{$_uV^x z%vgn>Gsx_}AK+$__qXQEa{4oBIwYy2Nus_;;3@0t$LKws+pu@Kbpe;DKiwZ;uySqo zw$2O*`6PD@V*B|!OLy@4w7+e@U7;C(kl|@>_u&3Xw^E5%DJ)<8aaQT?l3YkLgPI+d zKk6)Cy4L)<(X+m?#3Bx8LItWvBii2_&iPM8y~&FR8o$evgmL|lQJ`VbW63uO*;B{) zfsKz7NfU@f{pl}qO8vy<;=h^FQX5IjC+wSoj>kv7jpQ%C&n#b(4wZhjFyRt*MzZcD zI)_)hrRR40-*)>62{Nq`LNuRM=1Icv4p-+?V{CEplV!wye9yhFC;&6)(nN$ylrB77`|X^ zt@r9IbX<^NTZVw-w5aPYR}2&^nP4UJ?GI}#`R+GqlLcN54DH0tzSr=h-4?h3{95dt zmyLGb6f1Y$L^3gyk}qa8#$$Jg<~OMMHF`-jwfER>e3@{>0*n6w{j z=x+g*XqeOU!uEtxXH5Ds-Dt~gWLUZI8wDyH1LrwZn#+cTci@X!j~rrrfADO7`3tA% zv>2;IZ#lxCAem;i9_|_0BrO9t0uS&CJdF0gIubAwy0_zB+cgu&n=S z4rINAI}p#4$3$9h5c0O0b(B-j$P)oNRtV zd>XETDhnoB{W@$>===C*>QLme6R-)SdVX(z^hvW?Hy8-L=EwJv-paf1r4oG^_ZbqX zrT8hb7TBAQu&bfDnasKo>Xo8UfYrcjG|%j|*$(o>nhB-f`g`ybCv_3a$#f$KHG#rs;hVM`b9lD^y<2cvQfoI$V8LArPO5rr=#1d0s93>P^9Xp$kxt zBB62>$IG$M#{rJ3{r>FZo07dhJ~lQ`)x2&g)ZJf?W_Meb&*{j16uq(C;9e>J375p02^VJPblrWr%%UU)it&H zLPbosczxan?I%kpxIw6E~AUqr1oJTQRI zgOQh*(fLJHC^rqlHjHbHI*UXX@()sn+&&^JvU>YlgOG@oN*rSZKa)$Zt*Hompy$$4l4* z=tnWH+-)PA;c;@vScti6DymF(FinLz~Gva6j2{c zXOv?3j2IG5Q==mrId)HT;KL+RON||h4U^Z*ryb6YhbyvDNcdj`CqhGLDf&}?esi7T zaL9_JjP}XVOr$iwJE7$3$)Q@Li*q;9G1HG9Uk@uHZw8o`Pw(nYRp1ta&OdLoT;aM5d%{$`+T0Y6=E*L6E7`YI90yrk5TLzD(M&F;HLUZ#hNk^A0vauR6EuBE7;+H8@y7O;CBqBWycayF{uwE+$88~nh zNqDWHX9lfsNe_K`Tc8!_rCRe<_vQFlNvjtm^9qe!0Y{TXyA{<{r6eX2cTcNUI~B$7 zxqa-g5H@~5DY$ljh22LVq%Gbxz_^=H-Oj+bv)v7)HS|9#eNG4 zmif5q&R31|St@vlmB}CZOkYw)hL(%ZZ~a15N=`Z28T8HF%Okg=;oYN9((RoL!@q@u zxF@6#KgGQKhC=l0t{Wp)rKgq%C2E_}$Go9Y`YmvZQOMq(nqiTXm^ zlbLXajr3^+^IgGSJE3nSmhB-Hm58-7+8_8afxVc(d%_mPmV<1sC=AOf_K~_s5QsN9 z^`W$)(BiouP6D~HJIcfBBxi?#(QMdWsKsJiv?-E3I*E=*li&-NisjE;49XEvN)&X= zH{Uy2UAK;CG=+M3mgToQt1kKe@e7l|touEOFIpUWJeddmXTC&JoSS;bPGf|OI7Erw zSaDIJ1F5X|ngm?Q8VCUqDJA@ii_GAYlf0Io_N$ha=vxI?Y%#A6v!@rI=jgrS6}#>%OrM}B+={as+>-iEc90PBTK1j9c^^lX{!6wm@Ibc$ z>&6OH8t>lm!pvuTOVmd(j3wz-of_}<&cq9qG_J(a+#Y91BF)*#GEbr*RB}q#sn@OK zi(c<()9PJ7|BnR-$tri^_O3dU+1McP9|r>*XTH}Ys+`FjT7OVIm|F@gbaQ>Vg{>_B zcB(2_l60z0@1}A+G^rzg0}@$7wh&y&cIT`b@#iTd-fF`xZ1mX26$o$m$-cIAFb@zO7YnLk!k02lB? z=d$@Kc{X)l$2&>DA-DMgWmcByld1Qf+XruYO*#!`McOu>Aj$hh`l$L28WFhj`)tYV9Z@3&UBjR{5E98&K*^#~ekRKZi%KI&RCwlWO(Fvvd`P+Z8*l zX3_~+rl-lgmDOrAwGTOoz>dVQvpXTOcyqE#{V8v`y^yy^{Y_i2@(^3x|G={?SN_&o zA4l|G{c(kdW}iO$E61@JAT!;JdsXe)?v%e2jtv`^D8~Yc7!56c9|4y$K7k98Mt8MJ z{C=93pkL>oT>5cjNBnzQowtC^z0^IePxFCY;g0J6Y3eM4+I+q?j1+Hiw-jlC;_d`1 zP$*hxad)Rcu@IoR1WK_M3tF_e6?Z5Wv^W%ZcS6EH{muK~&6gxIXLojX&)MwkbKh5V z!4ny`ncH6)1y$22kSI5BY6t&WZAQ$R1HAf(3iqXsX!A!zwe*hc6saje@>4Y%Td2b} zhKe!BG{Ut^YS=xrz%(sQc!3!v)gJ^WO<6J7DUJOt z5sC4^fjn#nrUxAXd#fJFGh)nzaf1dWlj9!Wve@VUJ35#sYtaJXT*-zC4(z>3C`0dn zVpa7_`|-O+){a9@n$4o4j)3_NeoynlYENCQ!gE@@%YiWaJ{HgBiWo&qvqXpnOkvhbH~dms`;~-!=V%LLuZZA?`{c&_BDi zs4qfW@=1N*_>uCBBXBQKsK&Y_iP2QAc;XL7TL=3bQ~nkf{s8V9l%?97Pn6QqF2cnD zK5=cOEPE(F3$4%&lH#D_fuyq!T2zzsamH>OK5a&UAm-CxbBri&G>(zd3zVs_Qc%aO zclHYAAh-a|)Q>t6J1ihO9Pm{%pbhvPmCo;JBRVjOvc8Lrj=04;`OPA5APq!W-`CedJblQpp$U5?_m9_z|T5Y<*#%A$XCoVc2f-WW@LT2Dh5i!zk*V zwj-5shXI903E^;9ZX(Dvxot$eG$0mcsqgt?F0xB^L zSHgn(VQ9V1ERM#{GRE_B3m}%;+8d7g!x_Zmw=}`uToh56PUbI~jG!_5Y=t&mZ;V&= zT)g`lAtIR2JL4p79kq+=_ZXwnjj-aNgf1J3ly%|~_ z1ao&hVT;*RePy97G!Wk3{)@S6&(L&(ts(DdAR^ch=35#l=pELFgPNS1kv^;UCn!gY!?+%l zf@|!pXva%=b*g+~gXMZ0+1mu(4y39WKaoD~$q1imIQzQ=P^bS91CF#bAv z-Sb7-|MM=**%eKSkIlaS&&c%OmkLzlQgs!5P&LW*dSn&Td>un(qnepAq)})z5oWe!mHv;{FuaJGePL)IzrZV=1#tT8n|}xu{#mkkqZta$ z^k>p`(w+wIYf3@yMagI@X-YMQCFz9G&8l=fNYnp;5FDwb3z1bvPH>-vhSCocqEpTO z2p=y(ZrkZ;JTZKBO;!@QVM$2Hnf9~pI7mM%0FQGzt4r}p7{y3%Ex6BbcxFsghw$Nri<-8wsamfN(ZtlVH3@yfuN}(&0?A4LvE{;0 z9fKEY9bZOW>Oc#GK%aIl%}1&3R5bwL+wlwp5U8h~g7fQol3a0A50H3P_oW<~`}y;su#X~{#`v&1~i2g?&)EA(7nSs@Ei>+h~4R;+o@naEd*6XO=HP7 z*VhqgX=#ZRZoF>pt+}~fQEH~*%oa1E-*z?awxJj9+{bRlp)>ZgfPunt5D{LP%+x%8 zW!Gx-QROga3#5DQ+}7Gy;J4G(dYCf)=HJ}l0)EKUJdF^yoB3L2Co7n{zFA=r6-_(0ZfQxk z;2=yeE+$GUUMoY1ZkcmXWh7dPFm7^3=k2%@7_-jeSArRTa3%ln?p{MsQJ) zU9Cs~+s63Z94-(De48yqqn5@KUPP6$y3+sg*K+;$S0<->BiB><@4vIkX3?Zlvlwtm9xZuo_Ks|#L_0Y`pJ@vnf76{#rex%zw zQ{i`ws1DwuB*$Xj`^io;5?x4Rf$=f8qy!G*-nXJQc``FsR*$pq6%j`3@BH*=gv(J$ zfctX2F)a4`0K?evu3@{?q1ownAqCQ5_JV{jb)r~$OQKH$#PMrd_$<7rtiEHkT#q}- z`aOsvv$v0`nOtZ6D-YPoi~Gb;<#Wa@Eszf5bL8!3wGZ_G;UI~n3lgnGEuNqA8ZUU- zW1?Ph?yVC*QOzXavpOrjf!JnRuD$I`ou?%iR;%GZtmRQf<1+T+9|5X@({XENjqYiP z>k^n2il;Zz7vUmwsmrb$3TqjE$p*lhQWjv_yek_$Y1cNaJW*?dNmcoFwS_|Y7Zd6z;)E>U22!V+7C1{%Pm{*z0K9I_ zYoj9%aW#B|NaNUHd5c(V#cBo9LY z6<%qW;Ca$Kie+WJ%8wXzz^+ZT>lFfr1&httPV*IIY%Gr=3*uY@X~Xp1Co_w(;rR90 zoSt95_HyRR%g-a;-Pw45c>h8u#EeznY*p6pA|#>l=x5pco65?v*V=M2L$6Ao9@QMT zzIiDoL~gNWaq6(s6Rdt&k%toT2u+TH0zrEg@;kvJprG~-fq@KdSgFT*8<=kXmD(TN zmnXmsnktO|S-V2l4lXtOJI)^U0wM6{-jq93`3laeUm~-XVt1<6muJuJjZW6AKkPrQfVDv6(iBI^c%hgZGB8b9#Bo_|9u491OJ=s+0Kzt7SUcC`G`YUPCGh2OP zH7A0ZV?XYcLVV@U7_3M?q zJKq+Y5U!puh1hpLYB&)Q`u!u0BMjit-P(Y4xe;%qiW7y z-P=cqcK0yH1?)g2qqktv(KE`bXIYQawuf9bWd_ooblfnNwlRA=Dgb+fmI4S~5!9Tm3kG#9Ebq8)E51~X z>|5)+);zrr0IcbLlELW7<98X8;xh6l06E2+9&=W*lojAV^X?PV+-tkP9LRey%xBf@ zPHr;PuYAHY@Z)ET*2LeC19%Gk-#GM}t@$6C zM(VuCljf*aeK$YoiwHk!`O_W>kh*`DDSpmzeS#n_@^R@8*RfP!NO^%b>CuBvMX|eae z{T|XsV7qqSB|TS#;2WcuF(1Wo%M;ikuBoX>%;u-@Sr(^C(>NZWb8E+e?&`+TCdXyb z0p&O_wDgigGaqy=0Wy@0lTHnhS9m=kCPt@!BmvJaj2XN0$oRecjk!#vs65s}Tm;nS zL!HPxsjMA?c5-N2uF7k+EFJyWWN3kGlrGP_Md1#w2O!Vt*?C5~=37a73*-7fV_guF zsjD$1TKJw$n63R8#=^yY+C2el+?egS=hjG>W^s`PZe}lq77+my<@C5I6ZRs7E89LZ zq{V)bV0{LzpP6g&W*eiLVG`$g+VZ|VY*iY`CH0U;LPrt|^9hXKV5_aRMyj-)PhK>A z)6BmEWAX=@;=bnv#ujD!kz~tNtHfRPELI{2A~iERC;iB@l>+b{UN@Ew30P-IMQ{&) zSldcy$o2VXb}MY$=?OjV-dcAA9mPlYt6}>oy)*u%S;C~9SFNIpb+prstZLUEZ`xRe>Ie=#;Z7qCy- z9}kEh$uc_Y?ntv*`dp}jU(tW?=#RbQgpv4-Iw2xm$9bWFV4f=01NK02J8SkBoK+N) zn4bQ*oWZFYei2xFhS%NL&X;kmZm3-@8E~w0z39AEIm1D0#SA1st7|O{BnW;YDcVqY zb|8LRjq*9Mb=c;Iq-xI*A+++IbfOTiDP zZu>MD<=m|(WK3JocX%jzLPe_J1(0sdpewtF?SWP0)h}q9rbD8p3~f$}*tcQV{XHEI zm`LQb+3C-gG;?>=r;ZNaODB5h+TJPuT~iJUfxBjeli>gruv+;XkQiKTN0gVb1l@Zh zWW}ek14jh*Z5=-NKVXJ&B!NAr9HXocq4^F4fjE?->4eZ2V-Ru=dy_nMDh_S1kY<8F z6G{4bc7$_w&>pi;-&h3tKYhHp zB=bEzXk-Dx=|3IAy641W`7G@v?x*7H=4%$UGJNoj5;6yxeyN>}03SnEANG}Z0bAiL zI7BRbU_MGsKzu>{XI<^q+fFJ9(h zRa^GSzdw=i{Nn$n-9P5{(dFDyC(5AYVgKOj4A)MN`jbj2mZdr4tCObnUMKG1>&K^2 z1i67>j+qjEUyN73Se${at0O&u<^(g0S>b#;=6Brj2c(Q|Uzno<)wO5;bR)XO7 za;J6lRXje4lyA0GFcB`@o7VERm+FtBkG8%(xplS4+QB6wqdW2wyf9- zq!Y(aO{o+4@i{oOsYQe^6Co!#$+j90FE_IV$upPB*Rrx`A780yod7-~F(a9|g=wf9 zIJnz1F+`w0<-HwVJRkx&f=n-?$ILI^K>B+*Hma{yIZwONXY7Y$;+qPP)RK<4syEQk z1T*S;LhAUleC5A7=FcM72F#6YX|ft#6`arfr9Vn(ZF^9k*89NZtp)5=!l8wW#KbIP zn|SfMVrB&!eC>y@GG3WK1s&VN;STRB=C$*i+=i?(& zCc_j?ktRcr-vaJ+zD@q$=fDNyA5IhfuK;{o`A{i=9sk`obbU)XX(<$ccdN;8%g6ff ziB^>4vVh(KYo~daow7j^>HE>xhOf@f3P+cV#kg7#YTrcah8|W$OSEiZnn0Rc_juG3TQF!(Ru-t3~YiH(lX8WYf^KniltQ+J`(8lpEt2l@a zV4tg1J3-pcJ}G}9RwOVq>R3Gs;LUugUBHrt@4nl~#Cm_-f40G9pU_3HHj&s*sv&Js znVOn<8?XdA{~aq)?OAu|CBR9L2D4t9?gKgQTG^Ay;9|9wE3Q`ZLT~432TL zi*q&CEc@lmRrdE{mqmoWH|F4 zZnQ6Iy-SZJsB@lmJ9Q7c6)|$x*4xK5+G}sAgEFcM*?T1SGMfvXe^L;om5@x(%jNEM z$qGvq&6&6r4~VAg1M8ph8w#g|{ z2&PtcozS-CGe7n$-;YwRvPC6gc1sOHv^TEum8SgPL>%xN4g*LurIDV_Io}nw*Ya`I ze!M8(BO{To4SxHzO$O*ZwO-jR35-Uw8JQ(@rgm=Lxi82Ygd$9bW>f1 zMAR_6+J7s6T8bU74PH1=?(qD&y_ygmujHE$m$?$K&R!_$0AIaH>oCnl+Q}bC*xXy>9&$e*n9!XT%TMGvLrlo zC;KqWpx~Aj80c2dWnJXuEYPn{RyCiwVsqzS@{2h90a(cP>>56TiroLQP3G?7Y-G{#fzobs$KoFcKHmJ^v{S*Gr&(!k`~zZsl4JiiU4Q~XnwJSv)Uq;=8*t^_+cR4r1aUbvE)#zY*8qFBDlt383zfCbkmrPh zO0tCF1}Y@fEZGfx%mK})K-jS2TS>nKy+NyZEss9=0pLT{4&kd#flPyk% zrPS>9htF6cm~a=(t-O;G(D?VaX7>xTQ^Tv0>4cztiwtq^$v!nV19RHO3#m+*S~nS! zmby&jWm-qk0AUb61N^vgYEn_O?G6@HF#CA>K@t||;NZ$?Vg^u$$=t}_cMY#fGCzir^9QU7Me zbKDL-_-NQNquz4l=>yaFPG;ist74grPh33l1KOzHs(zbm{87!aTUGW;JKHIYRDI`y zwsu!FRnC*b8@B}n8s+%QexEtgq~#3rgNsII63b8Em6MjvR`Z$Epg%6xHBCn5x`}I_RfFpA(`q4U z=`1DZgpKs&&|o;Tgq7sf!@6a9J&JCc>>BA#Q! z?IZ#D+L<398pK;K$Jq{N=x~xx>d)IC=kbu;BIjwdmqEI(L7PegnJdQk1#OPMThB+{ zmfICJK%0hnvJg#e=?=ZNPp4`C-@ zLc$nTBC|o$%1D!zjk{yl@{qmPW)5l>R>IMT`odKSN<(8A`%ZHwX_0F{X<0H{V&_eJn z@Ua>o!lDt*GI}mR6v1%dqLlWLl~t3~ahRyPase5mpKP8;jfUt#F^@uAwA;6Ey|~!T zJ0e3u%%V0b&K9%JhnjDM0BDHt<5VD7%)u}kC56P~Ci?Rt0y=CH3?9EVHU!7fPPPPD z;G8TAUomp3a_%aLH_w2E9N#X%l*12eG~3eri&W=Oak4&M$H%`~mI80@LmPBB?D>Ww zNkimjf`|yE?x@#_XN9x9xiQf{roNGZHAO`l$&zq6O09`X-DAGM9mc63^QV(|f<2E^ z_BeMxR^hkHA5;)O5J-?3FOM}o7xBjZ7W~q6goUW?wCvJda+hc^xLuD{_STt{Ko!*P# z6GFZq_^Wy14H8-(l^LOtW*YELMgT-vy%A`HSD(^=iBX0k{JFS{X2%5#dsDdNnTGt( z2vN$b2>HJbf}oePp$ZR{AaPQ^wm9~4OA{)t6;^1LW^W7wqhELBWc^VA(4OF)E`EKw z>_x_@<%}P}?i|b7_}?`TVE@aO>QYPs;R9n zC(~Y{#*N6;7z8txBYfTGM(&gqY$C6QUYOB%^(x<9^}n!uVt7AA$F`^GW?TUDe$p@m z-oFti5A5Q#8haN#khoogZa2zh#d8-Y+siW9UHMH_?a^4fm~O-dSOa)Ye8n_rv;~wH z9v*HSCb|)t< zJMAI#<=~C!EyX*BUgf=n!^q)3?$oJbTFggp1CkyGv8Skzm~@ke)Z1Ryzw!r1{eHe9 zQEXzQD1F0tVg1S*WpF}+XAC-d5h#| zui{BnrSB?@_~G5`WP4hLDRBact`zv;sOVf(P8u8LgFuUkATj+7{k_o^1Yqd@)SFl{ITc-LIhq9aK)jKt9 zJ7#VK|2J!3O2r`fekjNp)S#0<*qzP+Nk74)}^S)xz`3^o@KDHPZqxe+=;fHE_Mmy#&dUo1>zfjgdNXDw_qt-3$9h9Eye&R8{ zyRk(O*1o!GrS*K2o4=|&o{K^CZA za=xIs$tHhp=Esp2P&)?_9CIa5m|1x6rSi2xi#g*FwiG=}b?apI2n+PrrszHNKEjKL zFXQ>fHz^G~Jm<+^?&t}dZU)e23+&>BAh0#sa z%!G)RNF?#l?Ov!kWLu1RP@Yafo&&Njc3=awWkLqY#KiwH?00H6%1^@s69$7vN000U>X+uL$Nkc;* zP;zf(X>4Tx07wm;mUmQB*%pV-y*Itk5+Wca^cs2zAksTX6$DXM^`x7XQc?|s+0 z08spb1j2M!0f022SQPH-!CVp(%f$Br7!UytSOLJ{W@ZFO_(THK{JlMynW#v{v-a*T zfMmPdEWc1DbJqWVks>!kBnAKqMb$PuekK>?0+ds;#ThdH1j_W4DKdsJG8Ul;qO2n0 z#IJ1jr{*iW$(WZWsE0n`c;fQ!l&-AnmjxZO1uWyz`0VP>&nP`#itsL#`S=Q!g`M=rU9)45( zJ;-|dRq-b5&z?byo>|{)?5r=n76A4nTALlSzLiw~v~31J<>9PP?;rs31pu_(obw)r zY+jPY;tVGXi|p)da{-@gE-UCa`=5eu%D;v=_nFJ?`&K)q7e9d`Nfk3?MdhZarb|T3 z%nS~f&t(1g5dY)AIcd$w!z`Siz!&j_=v7hZlnI21XuE|xfmo0(WD10T)!}~_HYW!e zew}L+XmwuzeT6wtxJd`dZ#@7*BLgIEKY9Xv>st^p3dp{^Xswa2bB{85{^$B13tWnB z;Y>jyQ|9&zk7RNsqAVGs--K+z0uqo1bf5|}fi5rtEMN^BfHQCd-XH*kfJhJnmIE$G z0%<@5vOzxB0181d*a3EfYH$G5fqKvcPJ%XY23!PJzzuK<41h;K3WmW;Fah3yX$XSw z5EY_9s*o0>51B&N5F1(uc|$=^I1~fLLy3?Ol0f;;Ca4%HgQ}rJP(Ab`bQ-z{U4#0d z2hboi2K@njgb|nm(_szR0JebHusa+GN5aeCM0gdP2N%HG;Yzp`J`T6S7vUT504#-H z!jlL<$Or?`Mpy_N@kBz9SR?@vA#0H$qyni$nvf2p8@Y{0k#Xb$28W?xm>3qu8RLgp zjNxKdVb)?wFx8l2m{v>|<~C*!GlBVnrDD~wrdTJeKXwT=5u1%I#8zOBU|X=4u>;s) z>^mF|$G{ol9B_WP7+f-LHLe7=57&&lfa}8z;U@8Tyei%l?}87(bMRt(A-)QK9Dg3) zj~~XrCy)tR1Z#p1A(kK{Y$Q|=8VKhI{e%(1G*N-5Pjn)N5P8I0VkxnX*g?EW941ba z6iJ387g8iCnY4jaNopcpCOsy-A(P2EWJhusSwLP-t|XrzUnLKcKTwn?CKOLf97RIe zPB}`sKzTrUL#0v;sBY9)s+hW+T2H-1eM)^VN0T#`^Oxhvt&^*fYnAJldnHel*Ozyf zUoM{~Um<@={-*r60#U(0!Bc^wuvVc);k3d%g-J!4qLpHZVwz%!VuRu}#Ze`^l7W)9 z5>Kf>>9Eozr6C$Z)1`URxU@~QI@)F0FdauXr2Es8>BaOP=)Lp_WhG@>R;lZ?BJkMlIuMhw8ApiF&yDYW2hFJ?fJhni{?u z85&g@mo&yT8JcdI$(rSw=QPK(Xj%)k1X|@<=e1rim6`6$RAwc!i#egKuI;BS(LSWz zt39n_sIypSqfWEV6J3%nTQ@-4i zi$R;gsG*9XzhRzXqv2yCs*$VFDx+GXJH|L;wsDH_KI2;^u!)^Xl1YupO;gy^-c(?^ z&$Q1BYvyPsG^;hc$D**@Sy`+`)}T4VJji^bd7Jqw3q6Zii=7tT7GEswEK@D(EFW1Z zSp`^awCb?>!`j4}Yh7b~$A)U-W3$et-R8BesV(1jzwLcHnq9En7Q0Tn&-M=XBKs!$ zF$X<|c!#|X_tWYh)GZit z(Q)Cp9CDE^WG;+fcyOWARoj*0TI>4EP1lX*cEoMO-Pk?Z{kZ!p4@(b`M~lalr<3Oz z&kJ6Nm#vN_+kA5{dW4@^Vjg_`q%qU1ULk& z3Fr!>1V#i_2R;ij2@(Z$1jE4r!MlPVFVbHmT+|iPIq0wy5aS{>yK?9ZAjVh%SOwMWgFjair&;wpi!{CU}&@N=Eg#~ zLQ&zpEzVmGY{hI9Z0+4-0xS$$Xe-OToc?Y*V;rTcf_ zb_jRe-RZjXSeas3UfIyD;9afd%<`i0x4T#DzE)vdabOQ=k7SRuGN`h>O0Q~1)u-yD z>VX=Mn&!Rgd$;YK+Q-}1zu#?t(*cbG#Ronf6db&N$oEidtwC+YVcg-Y!_VuY>bk#Y ze_ww@?MU&F&qswvrN_dLb=5o6*Egs)ls3YRlE$&)amR1{;Ppd$6RYV^Go!iq1UMl% z@#4q$AMc(FJlT1QeX8jv{h#)>&{~RGq1N2iiMFIRX?sk2-|2wUogK~{EkB$8eDsX= znVPf8XG_nK&J~=SIiGia@9y}|z3FhX{g&gcj=lwb=lWgyFW&aLedUh- zof`v-2Kw$UzI*>(+&$@i-u=-BsSjR1%z8NeX#HdC`Hh-Z(6xI-`hmHDqv!v)W&&nrf>M(RhcN6(D;jNN*%^u_SYjF;2ng}*8Ow)d6M ztDk;%`@Lsk$;9w$(d(H%O5UixIr`T2ZRcd@U;BT?6c4AdmojH7yd80Ji}F~ zRR0%^y5CRc=c~Lf^v-$c0blm8lfLl2$j_dJFVyixHunQR-aF-sU08z3;dDafO+jsIAFZS_W&wXzYu|qdbTz~=bd#BT(^r`alhT7|UxBS2KL79&m$p6(f>N_zH zu3Spu;v&2SkDyW$-j`^d`wseFe)jCwAAo57%f2u4fUKLqEA!U;q%H9(w6*F#^Qdye>Ug_e3Ka?RjENC~hqN%Y7t?ljTHd#3mH8frp zoIX{GBb5gDhlfC8x1hVr441bLyuB2Nx?!hq=(F>Yn?1MA?bkC;Wv=eA_Kvd$dAeHb zaA?a0>@9DF+AjzJJ}y`-Hb5=R{XFoMwmkjyv@4zVhu_(OxZ!*D?{h!dEhcnzTi{}U z?m4=@KW}@z{hc3&WNuDN2P#YV<3yuNStFON8%Dy{%iBGlZ^5dk&Hnv);3U7@pV=oV zh1Fz)(QIdXJ_>x?_|bPxXXo3uO@fSfyNEZ9#GAHGBkWEUd^A23F5Rzq#@yR4$L>a$vrW36anDIUE6*x0=m%5f z9^dn<_1PxA{mJue?>8>k%w|}u4h8OTn9(ITP65VSHcijvu$jqb{yg}_KKsv&51)tbczQeA7GLan_3T=~<$%>{g4scsdaL2InMrH7 z_j>Ts15@`p_O#`JO`rLDo|9RgyC?hfr3^{d){1Vkz(@@*&em*Z|J-`s{M$V}Y2j=u zXQzC&El+=EXLdiw3@&tWyA+t>x0%L_g}ghQY9+>e}{ zyJxJPaj9TK%b8O+P*MSPP$&X)#4F+M%Dw~aCX=$J&K`Q|dC%Q$51f0(EBD;rU+BL3 zE&1tzgXfNe>uNQb;Ur!Q4Rw%?o4UHt*=d5+u7XZ`f&H#*4HqoN4m8#`pt+@;d*2Cf z?r~*pJRNv`JMAzUno-}-1f#`Co~Xq|GjwH=eHK}O1rnNWvxVUFfrcAaL1x0ig9z^5 z9EHH9&%5V-e-?4hdtWADYr)P{i?C#G6H?O>5y%Dm_OtS!`|AIl=e|=2i51WY!YDxO zKUVimK}b&<@~*Y<0KRzrAE@*mfP$=OXnoF(*@Im2{C8ara~lq9_zG`4_cA_Qyc(M} zt;G9(U5Gko7}64bQMT&~yuY;#!-nO-a%49)EZqUGv~+~~YXmKO$K&b84bpS(d&aD+ zgTqRqX;qM-ug2Q56lglNAD=$+AlCX9V|Y#^8uu;7=SvPCJTsGhYR~CUX;&uaS;IaP z?d{X^UGMKc5A}W|L6x~UJ5aiAA)f!uSMW(mMM`W4ygBF#&Pm?y8Tk47ldm0J4cPwq zt5|#>6oU%FQCsp2K3!Xe#Eevg=()jr$JGNfd5Ks5_S|>bp4kYq-9;krP2$pxQ3@{##nLptk%tHogBA<{$G$Zcz@B!hP9_GBHoL%5SH| zfCH;Oz|u-Jl4HYRF5ileUicl}_;?{c|9mmZ8lA`}%14;5dmngS?(Lg5dO!Ef+x?6K zT}BddvP~ZX+>NpQaEK3Ha2+lHLr?!MTPJoeS%fWz+Yz6g1mmfV_~*xK;0Q}Xa-@Gx ze-5-(?!}ys7C{x8hARaN8=pw{R~s4&wBhjp&R`M{Ka}TYXYQrcyyhDiae1cgxu^Wy z=X>RT&qIb22eJ13`7mY=Lwc|Sd)LmvgD=j9Dli^-8PUqVhm2+C61;fdAJH6(P1|E=$&TQ@`a)^~lr;zv6wc5TJ7&o;m}KOYf#8)^=3!kmBn6)*j1GrS^`QJ51& z_3eC@6YW){So-E)@yc&s$CAzKuzEFV*MJGmQ3T=ddG%%F@`|aQ+NIGBzu+)9>JQ-a28PbppOU{XT-`0$ zz5XjKC=15SNyAW>76U)6ni8WChIS(yUOsFi2)>k}2s^H!jZ#oM%r0+qHnyOZpY;wg z4Z6_X*od}nCxW6Q;jg1`K)AT2IyX`21#J%^z}k+(Yd*!#fBz{m#@~WRMinAJ>p)9w zBYeVRpx3xy?lPddH5hg>5lv7af|81xX zEjDF7R<1#Z(L`+!(E9ozz~2ul3Ph9mQDUa1tXjWVu{+Guk`Iq^2q6C1I_t4>@q5^5Nyp>~laLjqfi@r>@zEjBleoDXB!0BZyYBX6 zj0&DRY%p7>0dbHnYJ2j%);9ow{(2;34Zx%ur=o0AH@Z0ZULx;qvG=E`o&7K01>3Zd z+)S<5yK)YeHizS`pFD_IRX2&O9zHG#r=2!gYm55|1?A#GQ5nItf>`E&w6HehSgCTg;q?Lku=B zQF9XQCLl17IM9u@4ikK|zJ#GaH3((dls#kasKMTSd(fJhLRh%?TpbR4wiRh3uT-?| z9>_t%cVnXxsYz+MsGVHX7MLtXw6?UuM9oUA^W&b?D|51n#xDy^wZTfZ8{~uM^zoIJq`m)Rw%oI^wWKVRCJCmDs*y4-%ic zna{Y;X*h$8yN)3JCekYYXCW=?P=p}0LQ4Vyba0vlt}1A_FBEhTn!|R*;^0GB&(zrg zla2IAt%W~f=1V%`*$Fm76Uuk4z-iY^j+r>p-AUnd3yx~i6nqvXsgty(i`Fugw+4Rx zq-$IwGjY_5`^r})s;qUFVpY&;NiQwb0!i1PG}KqGM$?{;uwwre$WIDG5XWU{ zt3}Di3?^=gDU7tvOj;+FCE-~*p*sQx&%)YUaN_uWd~;HZaT-B33+%)Z zJ;zqQc|U6J=w#15SI@@xum@9fCDwiZA?BXY;P&6WjPx)KIt*4sb1(M4+E16_>xHwi z(lrndJ#zdj#EH zChS|g5PNMS@Z%pnj4Ov_LT{|b+WDX0?T?qEvdx5R@B29(xa}(V8%y!->_6b$#V4_2 z*0cE4vyWqBk`E57n2UGcn2oxy!MNw4M{)J|q15QCs43lyPu}?e3r~9^FMt~50WaKr zn-|R+K>h9w_}j~0BmB|3Fk^HPl4HUZ;XnaYpC5`g%D+2WDzW7Ev*9ef2lqX2H-;pI zC{MYZHf~~?BQ14A05y@1M23vf=IllXO}tia0wL6O$9G}jha3x~%-kEF!h`qB!hp1J zG?s3_;+-{o#*A(2R${9y8!!LjL5xXsV#Dm&`0K|j@Xhg=xc{~v;qGgOBf?)cZ_h=f z3P^}oG{8U-JQW$Azn_+-Q4$PmGnvR|c>SG4I9O3bCjT@Zy>});JN9GVhSL~2bvnk< zQeo?=!+4@#2d-nq@+kOTSqh{jKr|!U%p(!}Ws;uA=CD*cJ*tO*dh78Tb z-Yxr3cEvEn7esP%SZS$PjeTXO(N36c|9UoR(w@fCPuzpa0~27cJ%qUnw!!S>K-Jc@ z*jCnx8-Dfz?z(;wBE0CA){yZFbEkk~Bm4}lH1TosIVj8>T(=A#&RvYH`}ZJY#(&@^ z_uq;&B0=pU0b?Wu zX@VJ5dpBbKr=Q@9&DDs^9D{ovnMEd<4~TDN^Hk(U zMj$RV0pUl>xd*VY6(R64r-k-Yw+qY%m*>`@5>nFtH@W$16^QC9u zH7*@nN?yRv@1BN8O9d9c_Xg&!D@EL-d-1@%H)D8eAR3Qt$AT{pLm%P5q4^)9E@e1o z-FgGO>-XW;|2YqNSKouD9-oDgxsg4le+SxYPNJ&A8$~%O2q2|vBaZpfjP4^6Sf9&g zB|~oML>Eo-E(*k&056<5upA$3I*bh)s*ySKX*_oKwa5>1pllCueBCK@TPsngOUEO( zT?gIiZFuu6OTRdAjc7b%H8X+od}{?mL^ zbcJE;{g2_HJIBDcb~9G*?8NXHH(@}cKTIuU_~xCpP!Af7{P-@ceET)Lv+y_qvPR?1 zpFD({CKn)B?}kBJLp{n4bYk=agprQByGu-~ZbnUuJ38u5;q$luhQEBV8Gebw@W3Mv zU|fa<+t+VGK+#pWeq=; z5Aw&NU;Y%^a)5nRZ{hyQ!=SF%g;PFxgy(1k8P8zNCkxS)b0wyY%|yq6HJJU{oA_#H zGhzo$#RC*RuN|GjJxR9$En4mv9T$b^AO#av(F{N9R4dX4g~L!&hGX02DED;~FvJZ} zS+W^#{rzwFe1AO(hh2?_9=;co2UAeAk{0h-j|HE-hvl0~5uGy{k3aJ?*NZ~4j|JPm z`~=IlZ@_+281DZ0v$%15E*Y>H9p+AiajuT;ChS_i7Q2tNB2d$SRe$+Aba(v*k3V<^ zhGlRpm4~r<{)hPZi)}=B|_Cwj+I|6!kh)m(5w!@&5u5hJEsglpw_*Q z%~Vp()E!6I*n1F3%NczgNXQwAYg8swAEn^US@rICbb9!RSoz9M9KxcF<(T&3E0{hy8SN>4(ATU`p6j#4F7#0tsR30- zcj1$_|BMm$zKlKH$+%_pTDKQpAFQHp!A7aM5zDx_{;S zLKi&{5B&TkyztZw*t>i+_MWJRcVGmD<)$Jc@j6^Pbv(^KPMp|24=;bRoe2IPxOY+_ zmc0KNc9++ozVZl`y!mVFG!@}zcg(=3%w*J+bt_VulM+STz#*9V^dz(r38y~t9RBge zdK|58QV7&pNXmlAU!pk~P}UWR$zz5hJu{rIc^*DO|HG;(f-Ho`ph8T|IyXEEBi0lSZ!LeX9Vpt6=%%s_i9;m* zPVNo=ghD*J_utx!s0EhpSz%E(@QwLv#zx?@C z+*f47I-11~pQaU~{7bCbu@{ZpQr(Q{S-pHNs)+{@o1lvtgde^5Dt>z3bZmZm9!jd3 z;2oTRqT=BQIPwV&oNlGxo-rmT_TvbJqG3e|P#K$WV&`r&ciSK_4QEcR!E-OZjLMd9 zj2=1yS!uCI9hHvpS3HC3#ttTvvf|W{wb(&ek}SbW1+R3^B9t^5+?E`D5Qg3LW4!wM zk1;r8JKpD{q_Ed$=tk|)4S4;P7qLrSj3=M}10KF(CStgD-ZZ}jxK{4airGp~P!J%^8? z*-(ou^WVegCwy_^&z{4CkP`gz;|-`d-H3Wxx8{FD-bF$7*=L@_Ag-TUnH1+m8sAV} zi~3SC#uO(hZWAItm5Ts`hR~u!OElwQ&wtTsVd`i`Co!pvR@J}$<_S!kJOTfh`weQz z&)iqf9&?(|(MGGWBM(Ih!3qxh`UjynKl{5hba|QB#f};(OR#d$7nuF_X5`Ge6|?_v z1M`tm_b~H&M&(CUd+Bci(XtJ-8T;-f}x`9+iTFUhQ~o)p0bC$z`P`A}`O2CVOf+-pL47l`{x~ zX2`$<49w2PkWopvf@a>NpjPZz^LuQwOvl|3(FpTy!s;)UW8}SM3^=OCrcZ-$-J76+~Pv4Exr`ref6e2qcrSPd`TKYROv|{7EQYyG zKl%^@18KJEQC1Way&wc{P$@rq@v}tzT1oXO3ZVAXQ5=~21@!k`jj)I)1bA8Tn-xcK z!_{LD$qk|no`&B)c`NRknuzkyYW#L>3$;=|qz}wOM7kLx$4tP8fk|BOzMb@R*MpE^ zT6ABs@m%osk3w2@4uU!vIMdpJ$Phm=DhJJ0c^HzGPYLl9YKCXSxOXQke#IDEn2$7S zL%z*MbhUXQCQOH#b_!RDsZ?5)_T41C^>i7v|9267?Ls8R>5!0Chkx#&HRg%|2#KOe zj3(;nSx@5nS$AVhdN4`@x^VdCn^1Azc!c^pp$W;ub9df>TW=Xjt4}T(_dJWkWp$XE znM7eo7&?1ncMh7|7+=Gfs}?j??8LGucVo>xH{*)JSTY~^jxw_)25Gq(bW&hMO#}k! zC_FOABruwOyu?&oJ0TAfCJ#qSC038ZSSZC7djuZ5X$Ec_m5R2kV4PU< z40h}}fr4?N#1UUid1waidvpe3O#3MK{RJ%~>S9V%i7DO#Za2`+`DyNK!;x*(NFO{3 z5y3P`dufq1>IOXbsum01{tISJeh*K~{un>Hx)1}W-H6xb9l+traY$)9fvtzaaor<% zh*qD3WnC5QBXx*ONkMFED1DMz#HS`Bjrb5$JRTFq41nd>H`r0K9OmNZ5gx|41GN#G z)*MI2tRYa-%@a0yJZ^pbe%vxV7KeiyFsHl?H{W*$Mn$ziReBILT~vV!efQJ2eb#hD+t0v@8q2bs43wJ^ zPl3~hoT>NV(Vx%)H#7sjY75#(do&?t*o-Q~#Yb~p7>q;#Q`|HWGoQfix8H@yWLkz} z8tmKh2-Y93MnPCNN_HMZ&@D45REI0$YOQa?iCv8tbZ0Wn)H2eZQIh(~*tHZ=ld|*R z%Xzjq%Msqbm$XQQu*7T>kLkp&Q^zr(J`~jl4x(-PAmrpGBPOJa3_pP8=q5B#AhT{1 zv$30+yEQ0R08(+8ZmoohvEY8qkv!+H<&V0(geC$ zb8meHw>|PWEsM=)+_i`6)j^j}Jq{gy9nDd%AtE9ID&j=Ri$~FZ&sbU-ysWbHBaW(bF_Uo^V%T?Iq~PMFVE-aO_Fxy+TmVS8OPm1LT(XQ* z#?9ymn}M6AUW;)9w^ER~fx_e-+&O75f~c`OscdACAvS8$_Nn~&g{^3Bpd@@mxpM#iS4b((f@oA+ND3sQnHcp z7Yx26pV0WHpor@pNpqAVBpNA^Avhv_KiMRGK(0v00$(x=3$^B(M;9O^IYRLd6EK{( z19degu;kqjv1a#a1p76iRy)ESXCNDmxZ=m>wBkf&ggS39?!)b?wvsr6CnV6-LO z3J#0Gpu$k>HPE+e_aiF{M{!{$(r6y{s^aDgCM+14E_*~7;yL5&yDGF$Q2W|x2*B9% zc!UUFyy{;?qB|h5o?y=k2Ia$H?^4lUfHLNUD0Zl=-F;zTs~na-LwK9(f8MC3dJqgWFyd* zaU*swT3#6hnx9F(I(MIsA5H1ONY98zfW3=;Zpj{yR5Mv*7rGiMP}5{Z@}Lx&A!XD( zlNBLLAzX5==i)sznUDxzq6IU}0(pZ6A|cEVT1yDx6C7%^fxo?pEQx%MFJ ztXE;`4Y`aRkX19IzUee}+mrBU3W>9e>XmPa}G+#&@_%ZsDg9oN^&oFM{^^p z4pm|B)w38=Avk#UQVVTzn9xwOAD_%7PS#Oyuvg%?Z8-b_LP#fzQTWzey4E%!-ntKg zBgZ2rH3sJTWAsVCg~hvS5Xf;gnn<(Qw9F)gL5D*|4a6IZR$#3z8i!74F!4#6->Ho? zabKtu8Y5#MrLhEHKyEHFGNVa3ct^(UBJOH5?!YyXj(Leojv!ECnS2;9Ahgs*E&KTH zP59uA&r$2J&|1_4eUSw7l4;36#PTN~;0Ca_I}q%O#*m^Bs9LasLP{XA5u$^VN;S>76SvuX!JX z0xh`dSJ?;%2|--&VBG)0i zs2r_yLAkR*h&6E1WO6PxDbwuvp+JD|>im&2>RSBvFWILdD7%W>zGS72~9 zrT)l3zTjj^Kr@2{+<{6eogNgR5mP({H#~MT@}v2Tw=ZHMf?=v4z{vQ$$aKlul}k3d z_>3KtV4TzlTu!Di@oxc!?*|Dhve)ZFqOd7K|L4g9!z(^w)6{(a+mObG42>QIXP=;0u|e%vqVYhCzkC@XG@V zM@+?|(}yd>NTm-&RInaZ4BT@Hb0Yj)4iY~SXbA*TwjTd(H(Oxgcb-e&dd|haMOu{q z1n6F5UTQBpPI0~8`|CF-q)BUXf)h(jpE3Z&%1z>f#DRm5oW2Ne{BtLK{Kn%Y#z*MP z<@or`PvIPM2c8@og@d2Gj_t%eNx70sx|L~}DPfmx-GS)aUc}6+7^NMoMmmY9{oQx5 z?a<8_krz(9)4)K&XCO|&&kLPR&8V%8K^OzLBm!817~2@!COBj^w&F}n2V4vcQV62- zslZOwiKxy_Wei$I=d3O{g-066O8?k5861=@X0Ka|VKj2%v9*ut@0Va`B z^8q_G1tT|#OH77B#FX`rrD1v#Vcya}&A)>tV~Nx5XhbR9I@){&3rgS)pQnVu6e!M} z>%i6R4W1D#;e6|$0ElT`O*EGq!&2%04OiqodEZQ7#@o*yNkt=ZmCL}W=vPtE(2c;n zR7{%?fmuJg7hR*S!=Ij+g@ho+VYot3F!gr)IJ##l$FX8i&k@`$E}{(hviH zYRgX1XC8{NY0(~em9Qc%iqOEe1P9!g;5P45&+qKS_@hQ@>ybKQoZFpm-RD ze)%grv$`CGx4w-Zr!Y%}-@52ZY^XX6?{r49hXg2NkwMB>y&0^hau`uwvJr30E62^x z{0swp%i%b_oNFgh-vLM|7=!@}|BiQFnFH(Kd+}OcI&>zQ!WVsnEdgWj>j(4ExN`wc zd`Yu7@slkxUG+2$HOJuQlt@|{cuR0Wkd$zicr6oMXgj|8h!OW0c;?9~VJrC>hnE;h zmi!QzoPj~tdg0a2|4jE~Hh%H@I~lQU!M=H4;Du!_y!6}W$mmaFPT4|uydVgOM8?n| z2w(mT?tMayYi2!$htne!;xFLz>S5^05GY`&X+m<*(m_H*yd|b8SwW=B9I1vlFW(b9 zbRk;Mbh;LmCyyg~nioyoN3ne295fc+i64&-#lf%V;EQ@PeJT@PBB&5ils*V$7x76? zK9QIiL$~Mac>MSC@zcM~!O*NwY*xJ9k*SHbdjhj97j;l^zqixD*G@}a|dD3d#~d8yH{aIX$JCR{Lox; zns`}*AvdNnmP%UX0A#`(lOpsoWle+{_gL5`72o!zHo9p15EG??J}3;j1nvXkt)PWB z*TS1hO1Lla&`FbgYa0x9THB~>Mn#4r!utf>NUaq5Lnz?1;J|?`-@(w?pj^UWg2Lla z#D8fSIVc!dg56Acc(gryhP_rIal8_I}ip1c-BN6+%9XNKn z35k9*tr^=G@k*jfK(~?zc2Uh01QDp)%m$olW0ZOig|l~Vrm5UQAhUlGf{sI*pckUb ziP}uPQ8UW(Orr#m(X>uLw$Z$4V8mr(Yb8!>c@NIwD=;jZ zKnqPk%Qu^`X$QwRISZLneuBaKzQpmGdSuf4D`rEBR|;EaMi@($mUP+ z_R4bn@d1)%ZoG!$yYcobFXF4?skrUFS$KSS5i-*f5JC;P?i^ESTuCCzr?aN0}<;t6*<&SB|^Ig z)C&B)=vUQITcbz;4FltBVm09df_PmeZD?miXJak>j3-E>w7Hl#G8Y9g85ot9gqIm~ zH|UuskeSR#S!)Zt7$adYb;8i0!I|1kSam8NH!?aat98mNsmVAJ8X7=Gk76vd?z9=_PQZ7VkK8ie2h(KNMM(9ptc2u3bP zB<5kTjwxgdm%`6Tv;XczSn3#t-xg;eSlbF?Qx&6w#hl5D8?&pa0p28rcb$wb4kVMc~Z-T{s$+h{6ek3sh_0rQ!$#m2dye8} zuC2dA%?u6`g0dng{F=FrZS%IFL3WX45fTLsfW=R>pQCJauEMKT#uTxt%6W`yFi zH3yJ3b_7lRdiLuU%uH z*JDK>Bgxmz!{67`;x|vq3uIi5Hu}t&snG61eO(Dw?T)AA?F_OQt!^j$BqKp+i-iJP z8#4g>Vwtvf#SOrw!5ElRgm_<v1s18l3X_@!5HC~-QT zewx9?@o5-!cL-kpatRXr>58h}frTf5hkuj;e_K6P&SC6K+c>=Pvl&Rq8Gs3+Gw{*e zg~(71!I^z4@xYrgxTrjINtKF8NJdsx9)=gCl0f(%EGB_OhyDUDU$ipipd~a8shRo6 zPE9~cP&;-mn1=-`R^xyn3`Ha~k&;^A@JBk$_UQ?sl=kTp@36oxA{her* zkd%RBKGE=@*~J)`gxLJS$cpwQ!dekQMqAAOeY#qyy#*tQ`F`PyDC}-+gf2W5`GwqA zu}rODZs&%T+hGe#z~EuIuo)ak%+4iKpc&V@4Es-3Ad=ckeqIr>BE7J6^)h@hZyxqG zFfJgo5Cv)Rh{?%8&CYe$Ski&$q+E=RX{^|}@hA*r{`q8P{yk$9;j!aP8S~<|LB%x-WH965Enj12QzWKN8j1Ai0O%8( zSi5u`+G&!_DI5X6)@FpK(rir_2Ggb&86AtMQ>LJp?dmD8>8Wy@*tH&qtJ;vvpq^MO zEg^ofG;77dPtrJu;MG+}VJyhQ)ssgdi76T0e9wo$H2&0J!kCH@myrrpLm4Wmshn(M zjKkW^%#@gjNAI~7gK35`H=MxgO-FHxX)yIAyKtn|2e&fK<*E^d2=-yjL17dJ`#|Et5uo@?wu_TUpNG5R)?%azNoA#5@q+`smWR#!w zVbEqe5@G`g^Ac>^+lH)yOeHl=6B>iUqAbL*z4#cq92kN9^|Do{vPLm`;dV?KkqdfH zN&I~gl#++S%qTK)S`@rP5KTCzN9)j1wiBC(@G^5>%5I|+n z*mMfp7X1zHeZ3Ras#H92_jR;>B+*Z-Wy%-@*Mn=ZwjvZmhf)a0O+j))36_2S2|nL& z0Il9hC@x4)1aOy6D2fQbD4M7{8IYv)jiE_12ca4Y+csbL$L5e2N5N8m7%P|UL1^Jb zjAo32JN}ZUSZ1b}V!d&s>?DpI+>O15O3@maf{f^3_|j66l9!M85aKO^_cXZoNk5ou_IKlex! zHSNIANF--4o=0$wmjooWmL0~S75RAZIWod%$%kib%E`U>YVk3QnL#%j?^)WL(a=N@D6=H<}w7P<~`L=6$jn z0asjyX+zUle8nGzLtC)6v=+Mf984MFLswG>(n)(`Ssx;h?yU)vree&XZ1__$)Kc3` z!U?QewHGc%rx#Beh_31mq%f`}Hk2+53hY`<5b;4naQY zrDV#S-nJZjSsW`dcN7LhSkY*YMs9*Xw8YcU%pxQP)0IQ_mpX)aG#~}xk%^c-W*}W? z6oh^3Oo#SHSTcp>ykxq00XdZYmA~2`4}9LA#p5P5uBx>7Aq#Dhj)47|1#R8m85? z+w=%c$i{$t2BJoCZ1!rbU%>saW($s(7)Y9*0PoI9eEsQcd_+8V1{dP)hi8!X#X)1L z!mh3B8J0a5H%(#8fg-JQH{04#vS%GWUQ&W^(uF`(IgYjKs2pb^T4%;7W-~aVQc*xb zEu3?WjEaL#^&WgocUozk4Oia#WA5>R2=VGfWn~rPM&dDKKsrK0!x0%q+^gDvj~O)H z=9`Y&o_dJFvWQFPxh`;q zNbmz0ku1IwGfna#tkfpvG846PEhGFSAKF5{S{HqO67i>FKTY*@Xl2;6Z!igm7yT}@ zacCc-z=)zgG(^&FRu&3O!=BW+^};}%aJw>%xjgLQ8A?jhjW2g*um7npexQH zIFuR=bHGisOlW9glKH9Vj%cMBx~Zj|`ORwhlW0XSdeWO_!PYJpb5;Fm>Y?wO60L!; z2LeyYUF~kGLtQgBkbf9rS)f3}jVjg;F-4u;zaH<*oPgO(Ega=f|1@*r$2|55Zo6(Q zV(GIn(9O_DO-jRc4WzKu#o7bDA(03T($i2SNBz|&Bz(b^RQh;ggvXj}Uaq#0eu&_dh>33a=Bu0Ly z>0XFqTA)sCNA>Q{@x(7?W9;M4;+n!_npZUljf!ER7cMN-!7geyT~1c>3(^u6QrV5` zPHjkv9@(gcH!uiFqVqNWAv9kRS1Fb^H8xNKvmqcjgeFA`@km20HjG5gN=>7I!A7E) z2=S&>$mGQu0Dek7tcx&c_%#2ALCaqtjCPszl>R9X<48)VKXtnhxpRQd8xF4G}A>f zM!+4GW9ycRbKEbkKnBZ&Q<$P4!FeOhLu2_450bl|L!L1HvCw%gUC$J^*r+E3vYpJzzGL|;%Uj7;W{VPTfe2Y;W7;ZOe-S4qHL)o#pve?B(v z+lG$#NqFkfM=`Zf1p5v&oT*2L%ZK$B0;u^CCX9QCAbt_6nPc6?xCdW^uWotS1*+EH11>NDG`d1ON1-6`icbVX`ys zAk^ROGbi$iFxlKd%bU#)QFH+XYV6!Y^{g>M<%5A05@@SoosR(446rfyw4N4N8-)a^ z_-B>8cx@1A8`C%GS_Jo;WZK9YciX*5M|yI&6^(}skU`k(6zm+dl7tC8Y->{1*ha-B zm{O{ZRu46KNd)nL3r_1tBgbK;Lg4F$jo>7McmsmDPQ)pbSUP&}#*3Cm6Z6fziF-Qw zZ)C0(rw>BI7`)7W4UBzpQt1i_mI6G~*qfUa{$(bu)%k~$h6TZgd#!=)zfM{LG;~Kt zat}&Hx^@caUw-rsT8I4%k4(*hAL}nDoYlp80_|;RA`KP3DFVBSa|sI<+G3~1Z(#in zDtcTqk_LsZHj(BwG`BO@knoO)bJGv<+fLSr=q6nY;oRIcU5Ez_XV5_Fwl}k2LZhND z%+T5Nfd)cab)R2?C%c8WC|OMF*@fm zlu_dSY8!^!@E~)gqt5y6fBzpgR2|-nT`XFnO&f?|4Bm+f=sQ6dwf6%kY4SyWK^7R} z_^&T(D|W8<5bGObFzc2ZY1Td0<@2u_xHM0+RvtqI^QjUC6d^*~#s7=0<`Ww+_lxC7 zzv@v;DN1&mx*2P8`shKNGR0u{phOaR3o2PnYAM{cV=yF?^1OjFX+b55f!8f}YX<`39+Ie0L z-Nt~0dP-nc7JiVx6}i4k`xFi0ylTGk=6C#{$nx!4y?vkm{w<62bADSx-}Zj^&)QrV3SmN>!#1yMX6Y+XhoBzO9B)x2A~|DC_~?c2hy)R(D#|MV>!Ei zaspl3nHqFBMe~k=zuR`pm&L+C&67Uzs=77=#U>z(Rmud1JlA)D>ASx3ynivjFWlaD zeIuF@GZyFy@TOLwXYik5xM0V!9+6-dyXu=+mJ`_}Mee>!POtgo#>w<`ci zi8R@9%l;7i)w5RL8iX=-8VVRd=wuYXH;aPEItf0=b#`^!fB$!Xe%Cm@)ixg%pM961 z4mAx%M8+jDu#y!cX`&Kafn>SZX_1gD2JQw%P_y+bOiixy&&B=S|LULp*XDwQ?f2mM;B~=w-TPMRO4u0_pk@G|#N^1Pm3XF$0p5kX z{dPkadiETKE<`{`Tqx5CGA`MN-m6nshpq6%2)G}vX?yzAO0Hmr=j-`D5-*=J7Y-B-O6=3B}@&w2a2e^4<{OnjpK{o5|jxWDI^|HsD3 zafwncu$IyQ9$fbzmJGXh9r(vN)40@g@iZ=zm$rZC{-mGF*AEYY{_Fa~_jukO&e70& z@Jm5%J0oeCp3KO;bef)|tl8!3Vj{@(V^)0ecSSOofh$D%_T zR;5xgI@C@}5mWFL3M@JK4pzJyJeH?M1sJh?`(9LZL}BviG<4M*#+E~6=v3=@z=RJ5 zO~}K5%uuwQ+JzN$0T`dc!%%q2QYf<#jHfo^jfx7yFcrz4r`xGmovJ83ktZ5yX)2@n zoB!-|IZ58NH&aiHO*J@r>I`d>Gxd)7rFOFxX)HzCe1?(yjHb5hBaj&AWGd25l(MoQ z9p9wU=UYLU?d9t-1TI71G6a4&2%N*vdxZ>s(9pTB*GqX+B`oKM8^QmhElcb{7gHqs z!(uUf*kIN-KZY`07IMRUaCGZ_1Qui?)LMhe>IT*smJ*n5%}%MPM26eTOojOh!{a{@ z=RLewsj?;2gP67#o|1{tBVurfDSj4f0wzx^LJT!iN!_s+SS)ATMl9Y_$rKF+q;{rhrvMZdMEnEZp@#oqodyiD%#iKfy25@xQ{7?$QZL9r$%(@-9i7kcJJQ-)Mv zb8$ZH>I7UhegFbYbW_~3_HkiSv)GCN=EIL1o{5$q1{!$< zz(^)+sHtJmGd*Hc^D#7$M;;z(LiWfJ$c+zVuC@)G(ackgZ9-)^i#@QalNVF!;^O03 z%Gi(n({CyQ601-}GCy9*iyql)MomQ-tjv*5W0}Yl=GjKY`k^hYi)hqp(ffvmFE@nxNa7{@J9qA(sit0 zW@1@IBM)DZ>PoFVwaiN&jCkf&>R?1&n;yx@DLkUpiNnl6tzZF^REBM<{jxA?Y5|H^ zDl(crgeg<5MK_C+NIhzMbSlO~@yJ|_6V-dy;mwtMusJFSqgaHdC@+|)UuqawH87C* z;9eZ3p7YSqhR#E(;9?ohlXbz&f%oEROg1DibtsLMwJe--XDf4RTU$}hLN)Q3JasBL z5rq+~MZjGX8OD;jO=^UAharp=`6k@NlcTOSp}zVkR_>`#Ds4%L;`3lezkSgce}3qF zaq0W|e*5#kHZNr#UH)+y0+%81y&-UZhAyvDE27e*T<#j{5`O9aLa7rjUy_kYWM(fv z<2{L%c7H`p@SN`?dQ=#Pyhcrk3`M#4OCn8`P=DTV_a!&wduoZIy@_f^(x~*ML=eh% za^Iu%_3x|iIC}b02Fd>W_odvwP+u|*c6GtNo*aa3E4y<;k1%gTq*r zEI@6-(Gr@MnZw-9s##+ujmHDb!;XqgAY)_t4K+|XFhPzztvIj^znXglkNoE|n92%t znc+UzQ?J3GD<@so1}n=W!bll`|YS z6{aI5z?;mk8oOCZX}>w1r@ke#iW8%1W@?=uD+1~mtovfQ58Wx3|Pz$`mc@}&es~fVyUYELyrg#2sX1UuA zp5aYl!Jl(XiDDrfV<%JPm_HoL!X-2r7~7jD%t%q8E>xW9;CbPRh;ugLbeWxJ2GCsZ zaiIwM^tq(uWMAADvxR~`d`5}d@7+v9Ed{p}1mwP8`jnul8&%zS+;cI7wk*+pc45leeoY3zF=Q{X@OWiJoAzvvLD&I=k&$qFGJum1imi>F3ixS1%)UuHNH4bi63$;iKDUEDSFQ(4; z(lqJA4J+w0a*zit!pe8vbjbTMVoUN<#W&h5Ijc$+Dw_BCot#QQVrOH7l1Vv=Oukf8 zn_``DwkK&GN?+7gr7tP0??+#&2nj;8OdN-eL_@w)^Q1Q!hn$=v{(lq4A)^;^<xN=G;cp*SX^Lh^ z*z$57nv=xi9C?!6u$YmUJS-3XthZio(W7AKDEiv9_~g%DA!_1u%)EwYe)GKJ>gr}5 zXyMQ5U#!3t>5Jl_d1yNZZ2x*QA}8_WrlE1DpjN79S<``8vGC%lcUl!|r;~{}cuG>3 zxf-X{S(r9yI1+UxRJ7QUn$LR6dOHrSY)2N$?T+CAEGBBdM&_Carp1v-v)bJ;J0_0H zM`AQf39~ZW=qW)M$U}d2Zrh1ti??HyE|6tP2e7=aFVr0!EFo)RRYD%z(Rd19pHSoa zkO*XQ41Pi3Ji9y!EQ*It=6rXNu}6k_D;5uxK8$CahmmQkQNwe~lLr+blU2i-So=OW zDTya#X?Q>gkG?cAZ<$(qavDnp^B|x7tOu>8U;j*H1Jp4ZRz9<`&b2?Q%(e3Hjze%| z4M2+RB(|4U(QHrG2KUGLEH}cm1%ITTbT6(FkBKVooMi3`k#&1*~zR>sdCHq45 zyWp@0tWq{q&qFI@KIiMpy)S4*Vh!-V`$Ersp&UNMamXG#+m}W;Pe8Veopi!P{84Cu z^u_(Dqd+3CxqMxQz-0(r90V@N&}BnOrM{r>WK12Lhr}>6S-BXk**Ly&R2+^nstzk46$yacB$3{@IVzFn$qmzahoik*jdYRvXK~+ zpT>IACam7D3Ts;v@#w7aWFkE7FJzCvkuyB7CK!HX?uzO3+iZxZ`v?S(>L;v7oHQq(x^LjH}iN`mWuRs;!tTlQggDA97-z$5AD#iTy6kM zejYkjg@Y%p$elsPXzgHO76T%)S?`(EyJU{0#!A+2H{%MPH{i?hM)^h~!Pmk=Cydm} zeQ@eT6>L08R7zy#4opNNH%$A{S_+9QE+IB~H#_8S_a)4$yGw)ZtBv52ilxXPMT%UCz_duBKzPV+q=D>I+D_r8pNI|5ok` zhiViU$gzPt`p&yuaB^?c$)h_}4Wz5xgR$@;h*clxFW(!|u@gsicvq{6sC=+(tB_G# zy?#xv-wf%qpCY-ixf11ReUW>>`JRS*ynnG!ufXQl#(iN7h(>KZF?3h2oxY`P5@bJr zg8U4wNt+_9!42QreM4V=rw@4_hTj3~beucZS9oEDXTddn>q=0cdHH$mB{4Lc-^cEc z1riO zF1$MlO(e&e;>+OSY?$573x#ak44B05nH?*bZT2u?vdy+607%kOu{k)$!7psgN|uo2 z#2C$wh-LnuJrq%r&W{Hkh)SmLo#Xgu$E5orcgfktVDfTYjMfpx&Da>gLrmORb@nBctZ!AtO%2OML0NFH{Kjh}P2eQcxi$l{H~ z&OeNsIA|20SRDz-M7sK=+A3IkG2pQ*)ioL0lW&q0(S^b?Toy?MyD5PHi~6*08b$kj*y3 zSZ7SDxc!U3!VlwqK7HxDdWIU+f8v0)Y|DnFs8n9C_2Y{{^_+c8XS-3TJ@=rOUDcMC zk5UGQ%M?$>5FNBSrX&w$`Y`&xnL*fxX23YlF4pa?0d>GmmIJnWF^bOW=K^5A=MmeU z80uFT-su>8#h%29#>Qs!gFpVJzS;UEJ$)E#e?}R+c2)0OE7t+a%ZdWSdh56TP(OqR zxdKw2>RnIk>Aek1u2$4H+@*e%sFRp>(aN+k>#Nn;RHxYxA&#+#&Ykav;H6W6lDG!p zId0qn=JDu&F5ZDyW-AtX5ss4Jp!$fDuVN0Dwsq*)65{n>wht!Agr8j`39e43Uc@U> z5K|vso+YS8Jzy}`)szzYU!wXWS0jBrIzLjQUwDZL3AJ)>e-CCnE+4O>krB|N3zL}i zec|CAaIP5V`k`$Q!p!o{FzQ-Uq#SO)n{!RtJ!9b|+h%Rr#qZn~sq5HW>{!rtMDo6X z78Oiur!TfS)eRitOm|V5nGQ{_-DkANJ#0kA9O<;_+@DTg9LF(nyH~hp?E24e?sxi1 zJqzq!OWzmCZFYa!J(%i?F=pC%Swq&BDRjI4=qq9EJvcAx%UVm`>yFxY?k780cX1`) zO5o#4;PDEbyAm(C1DSa7;*xIS66bM)bp%NK;yhNCPm|EXy}Jm*84nYCJQ;my0E?*v zORx9dP0fz?I|)~Ihlf`oihwCCn+MI!53XqNzJc=dh%t8@anR5j3U6@|jOz>PB5BF# z3&8xPg?Yy!oF41bd(fKZ_>vEB zlSBhNOjhY@ff(vqbVgS$T~s%~`py&pOJs@j^5R|$(AJr=^LQ81eXS5vorfI2tKmMF z!e&Ms_q&}}6khH*2r7(8%y|%{CC?Mt+@EX9kk~-d5y9n{n1=#zIH9GzwJ`sXJ&iTl zjwMn>vH$ZYwkol(P0g^xt;OK}?wV2FK_(L<#l;~cP%TPvcu0$QL2~z4Owy~u@)CXV z)z3m1iA%kZ2Pf`an|v5#Xkk&6zVP>cQAZEdV;Rls#{EgvRYg@BA^_s7%TO2FTbLv_O+<4$fG_cVy2W5 zR^EsL@ERF`g+QR^v~WU@m~%K*3|IM-E?gc);pb7NH?NU+o{l3{V+V)(KqY%{%Q8t| z?&2r{wQ?;X_rl5|H9Xs*eQRaPGCp_07Lx<_$tovNk2d?l8LH#_;8Qsch)}kOFzF+QK!{ zJ$P3ah9Ww+Z>LI2AZkDn-~HegY<62=>hlre@u{Y+S`(KqXn2O$zITtxyfaYuLVmGA z$ib{shOu$6@7aW02Jkoqr;tbLgq>@3VTEvnU8`5PR&%&kO_LHvA`x;H3!29dX{wU@+I}) z@o^?GoO1~BoFzD)95?VjR{|fFz+)A<-Ag>1ojCK@$gsm>YmZ!e5c;XL z^`XQK1AK6vo87Ezw%Lq7n{8em@QbXUnVNFqf!3{&#%DV*y14TI9(7`LHY+y;ltr8N zl#gnBbY#6RObkCt!pBoLf>ImAg59jIW!BG4PdPC<8;A8}W3&g-+{~oL$C5ER8%I{U zFCNkpW68cu5u0^n_0N_}62`(|K{O5lp09lxiGAGE0Y1RUd^`&Avy$bo(^qI*|v>aDR% zy-FnM2(oEplF--gdolD0f#-doa?O}6gex{1Oq z)UJjtI^~B-6S*$U+(%LJ8`?hn+?g2hmWN@-WFTwvm=wnb)H^YwrX5Xs<(Gb4$5Av_ z-@mROeE+&$CpN$J#7jDoM@WV&{%;QSs)RUgG3-%s7?cWYd@wCV^=aJGhdI8nU`;PR zT_R65?)G_pFn-4v8TKJ8#k}fmI=X8Lc0aqms1hiy(jJlp%dzU)wsy!{v_P1kfUtts zQLr;T(;6QcQ=q8~B?UVZ*H7(^LwXfi=c2qqu$DdZ`4{CmdrlvW!7#^f?^wheE(%*` z*Xk_Ss&i>^&3L(f{M;92#I9efeBr;3ToAi2aHKoeY6LksmmT+47TdCz2pRVH$Pm>F z>1)-_h3nts9a@5~8XjrqT4fwI*~$j~)Vx*mv*b~Xr|ye%Up6tvYMvS&)i7QOr!TuN zxM!@dHDdK6LjxQ7;=W)U)|YWs&j)76A4s0C!K~Ui%nP>wi<&VXn*D9(<>eU12;lyi zo*dH%-XG^l;7mq2XZm6{cX1`)O5jJ7z+)AR&9*{Xa@GQD+ zH@_`51Gmqn=qw}IZp@9_?2fhsIVSZRwk6x6v(5XW4Rbl>zZ?df~m88z0tr5-yO$DWj4nCD~mI_bK^EN znNi)jd`2Gf0k)A-kVo>`{N#vk+{R*T&e3A;HT~tc7j~|UBl`o!EScYM|*R49p;I>la)?l-FL~lAMa?uZB1O7 z*zU;45FU%5&YwP`f{c(BpsuZ)>(#q&g_OA(P^6i@HBXlRyX0ID)5mO$EX`^d_k1Fo zICn5d`%vKK*$K~D-o>ih%`T^e@%Y<6GR z73AZ-u-C>Vd2K!6zIf8Liiaqd{Fe1=KY6WMUzXpI&uin7zK*lF+3mHytlyuHy)Sqc zmHY9<=S&|AW4`0WB$ZeT?b*b7M>HXIBEQ1U`-gHidqjgje_1e*IVV z*4wXBd)t8pg(>DPKb8a>?_Ht&P>OgbDr%sF=KHofC$tcWu zxNS4xIL^f<8zC!kHk?o)7OB;Br{@ip^}Gxhd?Je)a@^6g!C5U(GS-Ae>;ubm1PgGL zTnBvc6o6Cy1$T9}xyNzUF5nsPFpgsC(Ss;wPjQixxM;Zm%eZP+nJ`q9mB1UmObvXT z%=|3e=F4~o%rb{JoC!iGvp@|1udGo!zv{u#Cr-LdU3m`i`Y_&&7$72zvKD;Q8I&q%%QTVfiQ4g$G`S3`uV%eD& z2knT`sBLPY?t2L(4>vd*@cDV=+S=Jfe+kO)hIM;lMYYuxOf+Vl(z&g~$JnN-(AoDcD^}G4LSK_I2?yLBoI#<}muV??aV6kNz?HzyNCHn(=x?LY zTU>?yH}X?hcCy(f7M-y2GIPf|kqSOr^nHy<(;C*6A@kWbM|nH@*Oztaecof1Y|%nS+_adI4X zOq4qE5N`5(@+_RBO4?r}nJ=)KAcRmr$Rbk_66aRgrwH#+c!hk5WwbPt0movtoDK34 zEWxe3AeX(87P%>4Z^|8QU`lbmdq~_0MR3nEQOPoo29vT#CP{?(OgyN-xQFM!S6D^{ zJ(UuG?94ALD>FAA?-P>`cX1`)O2C!C&sYLacDetI2lGko&cX#r1&fkMesq+hDO2Md zx4d5u@y4XuN-19x2HTuB=kLRROc`2i-&t%o8n*c71Ld9CJ%QqVFd5(&%f|Pbn=_@1 zt-e1=9cc+rj0B~fRi^vSqzZ+|nSVe*(PJJK4h8eC}m4TD^eXU z_oQ5$NG$_Sb>o}}u423pn=jN$n-j&^kNAF3$@;nCh1k}dpKKSo;ln0@j*+Egwt0K* zT2}(D1Y8OH^d#^^h5pm)_U};3Jm3wahKw&Klh-U;EA4R*@lfGTGGI#iZ6=jRRNX_n zq!nF)y5z-Gh+qKxu>_^``iFLQz9c;ZtGM!~4b+7!ff`)y1=;JD!Q+m7-1=l6jPfx9 zee!W19-*zVkbxvZU%`;t!po~Fs%g_R$2*l37|?*HUL7Eo^-^|L(%!1#_%x_>w@^H| zhEr~7gPmRDWva+x%g)O_JMLs+*OaC?E?~A4Vj zS&tje&4W9BH9`h>`$4_%6a*xob7hhtKhy^j-`C&OtSKjpshjD^k>-9kf*x~HC$aRC z<4LljnVX&$A@1ygTJ5HkD?Bx-f$2F|&&UBt^=K6Wtz4QL#2js^8j&Edn9@@i`wc+*V2M9C`0la65>)hxB|kwiX7WhKfp;2qkJ zEl;X<2%wN-pHV|ot>*9LD>k(xUl}lR8x)Kwr^s?Z*)_ZL(u+^&NNW*5A438Y#i?!2 zW&11&dNDYskukz_~VYAJ#0 z6a=~6wKn~uLq}DzG@$R_KcjmYEvmGu^g|b8azX_W{`Sd;=to7)^*d^T#=D{Eb0FF&6Xfr~#d-oU!H^@RIC2A~%^^MqlI0O|f z6OuTsTooxN7C9j&dZv_abSwm-Mp}+0ZN`AFq8g>^~08Hr_W{K6acXQzb1l%ikiNyxyQ=71?q2)VBC? z(n@rWN^PS(6hxZY$+nondeE1RgX7Xebow$YmlJS~p|1zqSReZ-_2rCf!yhknsw(2i-_%qIm8xIi2@vv#XO}g!>**6!u&u>3JvOS|;YmgPxhgEJPz{!K zjLho&dmtsDtZiayM$@2unU}n%e7k;OZzbq*MJP(-YgR6q+Uavm4#gDTng-@_^~$L| zSkuM8qu$gX{MipR6D1q~CjBx%D+Ur%)3#eDjzjB8P5T%Me*oCjOo&ceDsksiK3Cki zQ)OVC&reQh6yTr`)^j%HY^B8E6F|rM8FLnx?_RRQ!??NQ*=0ITpH=ypT7X%ur*B9h z7}lzRPxTOP$n>}Cr$ zuMU<%!~)#v;DxvJJKwk@Pc@SzPgn`U9SnkrQ~?QV(AWZs;|BrFO5ieZ(_4LcZfTP~ zyXTM!e3b2xEk8Cnt9d3c6}5ojfP^N{<4zpOfqZU}ZBrVUCu~AuURgm zflS(Suw6C|aKqEG?i_X@JWbF$gJ^0@ml>3N_GkHdbn`||O9 zImwhXX!m8Nd1X?Af7Hv7_I{Ws9=$I&e+Fz2n)}g}fGdF?Ndiw)=saf}R;KaEAq4}N ziq7IuX?=|7&`0fK<1*38T7Hi@d@gOQwRBSR8w2-lqRi!qdf@F ziCMVLf>qpHRZPqjA_(9p$IJ>$FA#?q?IsvonnW?p!GWD#3TkRqTSQ;LvW`rQ;WAHc zvD)nVN|jIswTeYIFoH#w9%61G>|iC-Ia@MXx+Qyf0bBzCM+ggVeuacJpj4|1dHAza zd3CuKk^JQJgo@h^>-nb+tD~HBY6Kny@BPZTclH1MRlg2>?UW9;*Q=1YdnV;k#W_*k zyl`HB^gC~=_LUd(IZ)pkigT1(RH~BfWnfrAU89Zcv}Um3*pn7ZI9$=9#zs?8A$@S+ zZQU501gHl>6@to!FxPS58NG6JyJ}F_2_`_xK#HDy^9MS+wnZ<$&pd0aw(9vqZ7PG})xUkOK3~=d65gcFow=gE%yPZ>{4wooF=8ApBnVJ$UwT8o z*PX9djvv&{#zHJ~GRKR_6bJ0a&iS43O#SBvcBvl!c=k%Yp8C>1(@xmsZr_B)wQE#f z<6wVC$R40wVK1W|-h3UEZ98;e&y-%jdRs$@0=2ib=u5u}5l|b~Nl`*OU;45t$TJuj z>d~8T-BKB>Z=Zi=zuMtACli5x%es2*oc`mV^yuX;o>C{*WEMa+IZVWSk!ij8{kK%y z-k=kQ8ZhSb)wKVpehG4vx!EzDIS0Hc69F%i1ygDp7yAjqcHInf-K4M4yaLr%l`5a> zW&tYJu`#>==>CGeO68`fMl`$O8ueFKs}X2hON1OA83my&br3QxtE+|kJ&Urv zCG|5Yd~l62k*VXFv&q{cq$#707bbOFNvT@!=-7QZJ3XptbK9gAUsbi5xxVba90I`+ z_<-cX36*ePR@yTFl)UcY39hl!Hn99_ARj8?8L$jw?C{8jXFzcYSP5VvaP0?XM>RQ> zzL}AJRh62-1287IhozTl*L`y(;7Z^lCGc2K!hBco&LpIlL6>n=Towa0z!JcGlbfO-bUG#Bz{=N@Q0Pvv1b zT7$T9=cjbHA81G{x~ER;ram}XMr4`Gb13-RgR|h4H|cZx4&yGx4T=pKN5PMoHOs`H zu4#vk9Yv`c_zF!%fD7##0yG3Y-nr|Do_jXmc~Dqip@nJsnoz`3q+`c+g5+k1SPaC7 zL}tcyXJAGJCAInmnB=Uc85;yexuS7g$M;7URo$>vM~)m%^@TEA38LV~G(NxT)J4-+ zYN6DNxU?yo1^nhd08sM1ScQvm6~Zi*!Ey78ImCXCYHwSqhOV90t>sFcI=)rMk4M$> zR~O;puF&?Ko$@b^=!21EEKT^v^I;py+^J7Jb42^ zI&wc2crhN2OwKtJ7y&4zLtlIPC_MCq8ozr>_tt75e}Uhf$=N*es;+AQ?zT*U;Xd^Q zqiQarzMNx={e=MD#jTkSuRY|NiUml>IXy+@d3gxo()`*&d+z2w6*ZrxGW5K7bGc(dMdFU^L zJ~jm@O$Hu?%<#1CjYtQ#6LW=jbSVQel$v5_XUFu7@4cpXZ?~xuFTr7u&UTzE(i}2f zqwiZcFYBLwYfQg(tO>@lK{b4CmpbbTG;;Hj{=>ig1I7Q*f2l1kz-MBmS?t~V{?KB2 z#FErFA1@Xc8E_7e%JST->JK-lu@d;!@h<)0AN+-S>t9hz-79LYsMeM$AZyJ+gFg0~ zfBM@R+4s-&&ng>nmuKnP?|on4MU?tyc4&?X$!nKyY8quQxSFrew$!T>0G8Edkm6|D zkrr6>b%-=GGp?BlAXC5jf9l_?{jz?`yeU|A3-7BgbKj7|MS=0)NlXZX%&7APWJ|n zF80CbEK4`L(p%-xRZ z3e>b6yBl=q@NQK&Nd(9ivZkwA)LXZf^z^AM;N|lS;3;F51JlwVSzFY6N0H}ZV{SHAT|dF`%M#K zCD^P1%NVz!l@+aFE%x;FK;i);D4Wa*pBRD74If=FfLEY9OOu9C&bBBP|IkDL3p=5y z$zgTfi2{#mCJq)353uR^5Lne2kgNTQZ zl3U*Xf!>*!)e7eoCl?_&cAW`eQZTPRZ5B5;`*d@l#jXWO zGhC~SOm5+MZz$xPhX>>%EMnZ`2v>`NYu`g#=(Bt1-Vvy2G^MftrF{Px}V z?rRPgyK{|lUyc$ADk{t*ffBFQ9iIwQ06}4{nUU#5HI&3~w+|BbSxF}GnPtpjtKYV z@MKU8Wnkkw&wxm3@(^d@FoFDFmg7W+2Ku2Bo^!5M!_5!CK(_>ZaJH+=lNXNr*OkDJ zA%Vv#bbEFZdIQIMPVZluNG0OfS}Z(nIv;FYv&7cl8yid^X(hM$Kom2#qER>Y_uNTY zizpQyyaswgQIYO;U4tspY!N$#(6O@(g+wg;D%6cJ%ieLe(U&FALF^EOOZyB~T{7`# zLtiMeQB3Qh-tGtEaQebpwFyIa*L7mB>7MW-IDMgLV+*=|<&rKx)EDD}32Kpv%6a-r z_hnXz@vvvp*EsRl5vU@Q?$zXZ8N1wv>XCVp8#7%v1br$KnFy1JSYVnE0=ku2a4#;> z5#0DaqXE@Hi1Ov%fLUy<90HI6%AxM)`q?FIf7Xj3ZRKQ4V)$>uv?RZg(HR9-I@G!I zp#Js$wo6T0oAHt?@vtQ`9$t5Q=ss9DChpBsEgA8*Zr+7a?1;9UcvZjY-J(U>3=vbk zbZ=0DlUTM@9r|zo#jh$@(59AhCTbrriJJ54kP)KrvIlk+zk8Nh_nb48U?}2{R*l{5 z;4%G=CG{w~Rb4!NON0FoyKE^{DY0NoU4vtsU9(Ta#%XNZZ0sg!Y#SS+vE7)BZJQh0 zww*M#8*FmZ_q*?R?|-oSoH=u5ewew`2$f9z7!i!|P0`e$or!JiDF~5rVU>MY+id-b z{54l)Z8+R#$eMn*=I2fhpLCtGf$h|N~5{?KZK0c*bXq)5r4GN(@Cvozu7Xq>E!)c|IJDj$SDe+p35@0 z*gqVpGmKRX%(9v?68%b2j~{YlL}_Xz!}DF`%Muhi*qJPSyVe)r5JCBq*vH!tMk^BO1&~k?-G^9$NH(J!~NV_*Yl(4L2o1a zjvmQE((JaWv37=SH5Erxx?$$P&nuAQdNjpNzmQB(ywAFV+w7{{;cDwpNS^$g>knc# zd9ydD&X&1WD!MmL!6q^TS?U=SVU}s;SI@AJ95Wp%J18H6Tr_BS>v2I+%v2KWc{!`U z6xeyTI$`4Zb@{z1m!q?#wmN~&S}yBMkVEM4FXZbV!{9&uo(S06d@#@$9C(_r198Zx z%u8b>UVE{M#f|sNnl`TGFA774fftlz0c!tBLs4XF;9Wj$JOXDE(Nq5sC9IvFOP_#SN%D-UuvQ8M+8SdC4 z+lSAKx~p-KN$&$N61sjBsDIMrNcp`X=q61@y%wj$)mKh??ePa4`*sTdcFWdzTxiJEzQJ0Vo`;? z=|M!8!M$-ZP%gs9)5=xe*0F>UFx%KTAEO?8{V0nPk)_PH6iuV*&Ye(V@@GOOmSjs1 zu@qtSzGrTe506^?!`^L9wy9e^*lNk4B9bf>w~>ilb;Lj|57Mj;cgxLW06vTw`sBBQ zl}*iUH8Th{{=op4%*WTW2tqJi=ztCImRlMDfq z4-NeS9#5Zp#9mM1_BjQ8;unYA0%khnL7025^X(DHU`ftFvuiQKYO-b1daUm;P!^of zv$}@C8^j}F+x#fgV|!+GYtN+)diGARox<7c+pBq)^{xeguupG|?-Ti~9;^T14_YC! zzE8%PXs?OTXQHdsL!M0@f_m5z-{Kw{Ze8PTD&%dRr|prmNE@1Jg{{~+&VO~D-4QlT z5E2q?BqLt$OcE|_#;kp)0FI2jxoiRS)I`^kbi4s?&(Tb?oJMDbcBu1?y=Mc8@SNrmKh8s zsqHI3bIxu-a7jUSCwxx5OSCMlB>%!NOm3v&sIe)a({I&Gn?a*<;>uD!O)Znz`NOQ* zUawH~UZYu4DMD0Ug1V}5 zwbYN@!@)3DrYhnPn7-A!zO5vyJL9Om8OMW2Lf`6Xqvv%Z?hE7l0kojL^?|?lJzD{s zNHo{A`L0wjHU zz=z5#Zi|nR33OS6@bOTN*LD?}E<77oLnelMz#HBWFK98_-0X%z^ES%0e6fsM+PFAWr zATmZbF2*X|JH72Xo;B!e`i>z}pE1-GXXB^jj(ri$YD#fs>*!AD5q7lw)Da%#8$2v! z)^x4VGn1-Edc7D%q9phN(eYaahcK-D7($o9neTx6GOPksEM&i%~i9 zjez`VjcmY>ZL=Dy%uFsyy+Y)%a{X6+InTv!4(}!}rI(Am@i0u+ns$~igPqH-xdT@> zpha~{AxUXgn$x>UHT&)1kJW{l_RA@iMJKrw?inLXKrUl1bI+RyGGE@!PFt=+Sr=#Z z7Stbqku5V)e`KqlQ5&m{DIu!Qjh!Qe9>{{sOHJPG@{^)VtAE_u-j_X79ky##IR}4^zh>ri8kLcZr*^n7xCy($&%zw^!I-FPcVNR^^#ahiYxT z??Wanyt`l|(!R%y1tK5Yq<0AN6(Kh@3A5Ol+tq_+D+Mjm&u^z65N(QLT(@*T)XP68 zuIm3$q0wOWwrOePAOy{3BhceZH-=XQ?~lMJha`LH~|_gma6E=RXds%c7)|F~%AcW2u_XY!#D*n)<&u9}_! zPwH3w)V`-YBp;iLn8fizo!pvtUs_G?>$mZm6OX06YTv)Z@JVHjF$5eFmxDar*r(Q)%lIVsXpHjHvzgHr|lPt zzE(Ipm{yHkHG*9#Yp$2dh^b>1ewcW!3AY5;xGG!oH=_0{R0ut_8B5fe;r=MDH}i%Z zAG+xWP}@mbnAO&%=;~TZWm__nRf^UfJu*j^V+48RFA{<6x$-VIofjcyyk>V*eL-)c z5A%nx;%qctiep6O{&6Z+bQvv6zV=3w@GN|J1yGslVaeiPQ&;yW>n9XqlK@&m3C_#^ z5{@6lZMGY%b=kCRmyu1B^S`qIsy<~YYUvh(U>+>Abtx9JTLKx5hw~Fx40YjRj(Nb? zR{Fn82!5XAO4!HOZtLOaXCT*UC$FOL7Ho|)gm0lCPdiq-XC;MSl1qy({Cf#uFsUo zS48<nUa2z(OsFVX1(wfv%BB? zi-hZFN1*2+rbH5O#!bUFQhPNC0@doWY$gF^~Z!oQ@Aa;$My2Pq_M4O0>kaX@**t#8=;6>$8Mgl>ub zWieX$-x$7cCtZ$;_vfb4+c?HUuY%Ay4FLtcnFgQ39z!g&w`;Z7^49DsI@@qezG)J3Va$^{J#IOA_&k7A;d|uog}!1BNs@R8Suywi10m!00On zm<2p2sKc*DXW^8S)D0$_9jH)rK0J7cGY7N8*q5PJ1<|JEccn88+9WafdU*W<>^Ev* zKO8idV7Enmx3|Y<4EA|2s!Ic*;|B6>!(5M-* zIW^?WP;SSn9_$qj$09JMrJi6wZcD8UaFor)pL}2W0s87{Y;@kts_lzDut+%Upx#@} zM52D&qMC$(T!Bgj|BIu80lOp5wXt!%eakb|5#djzBcdA1p_!C|GpI} zxq$hP?%=~OL@v2q3%4OR>qK@E{*H-u5X5kzF+D>872#_22&_EuW3XS?-U=n2*da6nV5^0|Tu3hJEA0-?2$7zWX*X(IWi=!$Ei!x{1ZG295$2gz1fh*@7O)B86fiQ;NfB~xvTWTzkd3llLJ7q(~+on%VjoI(Y@oD5Pd)1JgzRiw8Y|=2o zAFZBFhNOADS&qy=)sp-wjR?-oC8F13ZQQ%$vX0WvoL$$^-fk@L%Mc)QlQQ|Pmo>9Y z0!tn()o%#ix8$~zLi1W)0BIs#0JoOT(vQU}bw9XLq z3)Mv@FbQ_a@e?HBkDp{@qH=V8@w{|x-C^fLwQu$S>cH0Sv_Tsljm`YWV#6QhkEauC zm!(AySa;){@vFc5v35XX&po`%+Rh1<&d!o;**;>K`^;NnSi@$-p1!mt;{k9sGyyFW zCkXWpJ5`TX_+oM;*|38l`^Qy(Z9xABnB=n{vr48pv#K-`)rM>q&4Zcbd$#j1bD*Mn z_PKbub2x3GRJA`HiyKJ!e{bu&Yc$(_elYi2w#zD3V#?qt3|ek`et6OZhz?p;-OncR z*z~N@KPFQLB3y{=PS7-U4_0M5!ybvV(XHO&Wj{xTlRCEAU$`4mRMJ=}^?lICS9GkD$J+9i-uqogw7gQ1AM$vzX@zz7{MdT8&eV8v?ER#L z4SV!vU7J=$ERvcrOL|CveYP}E-BtW%%DhBEMw5%Vl{7&~tfrpzMOO_asgm@wv;*P* zf;umhCG`V6?dOVz^&>HF>Psz_yV4NiK8HSMn3o~=-5SVk$4$kTl@u9!5R>w3nYCofnpI$`3!bcm5B zl)PhqG3Tw(dw}K`JzFtOJGWS*H9&`SJTJGtO8q_#gz#Xj4mAP7>Ykj;G8-_7i!0st zegce7i1Zs0vq-jBf6eaZ7V5=&iN9;AM*_AE#DdGHnW{OeO0=w=I3SE|k4s;Ee&DES+6SLz4)D{neLKBZ^*zI?0Uf#df~T5(g~mTiBNLN}EbI8mSt;`6))cJ!TCP-tQ@ItCXDfNhPfBsD8tpTe+Gh`f@n zxu&3bs9GmfaBxtFF3`1&FZ;}D6zEZGs-mG*2^Y7+M}35XQclv`BK<_z<7~(Hhkb3a z2$hq`zi$^;6;hqm%fN5dx=fJ(UNBl!UrV*va`gAb<0DOeyXacZC_Om#V95Q6M%4pS z^8NT-q#8(Ulnic$8(YDZ2xac-l8|prh6BCg(v_8 z?bTpueDDQj0%&}g)N0|fxG?p;-A7nz`7zqD-`c5a zThyBOKfh&h&ELiThcf)fKirb^_x4LZ&$EY)_JtZ_s&fV|AJKgh6h2PPV~=T}C`>(F z+i5i|9N3OhAg>I_d>BS;x?!cee|8fm$D~0_QQmm-ov(u?dUX{`7yOO zNhdB!sE2cU@p8;Mn7Kci}FaV8sPyNB`Fl}e`VmF_OID*UP#0+i&F(#ei@2CmB@^0+xWo8 z{v#*`N^g%ax|-b;HB98mS|}vs&^Rm4A2>!2De{PurOx658CuF&!YSmp7B$_M#0fIi zr_A}59wmJ|X7%wR8sk*Xt>W3rK|d}43g z5dj+s3Ate0kVbv$z2AUvftWg;ViEy1k5%*~Jnn*1+twsvfRD$e#s83!6gxSa@EN)Nt!>#XdD$B>HT2-?AO@}!o%Y~HrTs) zmhMFFjOuA2@%||FZ3D#RuJaka;TV*MNRo=qr8ZvBHg zcH6oulUyvXnwZD<+mdKb*4660*vE{9bsYFMzLkAa^+LR+R(87J=pN5G9wIKLaR2&Dcu3aW-;As?`Bnr-=l778SS_u>k!&@g}h9RQo7tDMxrGHg<({T_y(?4#?tgMzCD;)LQ+|6LudiB znLtnY{Q$ZL0^Mo|UPohxCd1v9_h}M1SnKcNy2T|@wpIz3m*004b+3M_IbH;|uEnW8 z)u;h@_~{h&Q5X~hCYi~!Au{)GKWaNYuBd;ql6iRE@o#8ZC{YGsp^v~_%M{oj=S7r#z|BrKn1xE_T;{&Uw&0ovpgeICWiQnPxi+k6{*bn@D^RWWPr-LylhtG_Fd2ni!un7cdHMRn1=W{48T1p$fwxz%fMbXYIJ$OMB`n z;-G}EZ>HfdB!tFxt3_JQm!(`5NaeEo<;v3DR>~WcuSG#KuCoqM2qfgvk-}`2$lbxTDnf=IseP=?N=;z4_|HN<#Bk{G9+c;k*o9?Mt4PuZR*|(hEEWU)72Y?!NaR5PqK&}ha1CNn1xfq z`*X+E0}#__I=&(#toYZc@sGpg8>(Bohy>yj@nh)EL#JvxH9Bu_;4Iy>okCV>_;{4iJnHnRYf=KdRtC+)1pfNLiM(g$gu@U{^$${Q21M=qyBRqSba(be zM_J#y4QZ6Z>Cd$ft2QuqqjR1r$YVN@O2DJn<|_S+#g=^}&}tUHWf_f%aD!Zkz%8Do zwx+^kW}C;m2hq)lQSWtw9`|%Xchuuu6j6Krrg<1!u6r!PBN|BOqUYZdc3aB85jKZ| zs4E4vj>l&Isirq9`F0dqWWnnQ>W8PDO|^PZONX@8f{r5Gs#X>5HnE+#uM|@@Us=a} zP#RHdb$b5TXmy2(7;KWwEunXK^F#EFOq7$WmAN8qd8N{q5m#*&!g=@**HRi+RacmU z1ofp{V|l^ChZ+f425sk@dQGt~_sotTlF65MmJXjFzrq{TTNjOIB9{Cxi%|i3fCEtl z2?LM)2{(d4HVnnzCZID%Gsv?1CafuyqbBYeD^&}#pfbDeIybvE%4@;A&fK5M7@5=r zoX=Od-ODN}l=#h^#N23he`#1ERPhe8MTrjkGz>ouwlsBX-ZmK~5HZnjhif&_i!%e!9X8w>ff zKYJAcFYQ#x=CfV5e3aiG9;=R)yGqn#C9{k)pDb<5{8N5vU4M_pEq`_U94chy=ctDk z1ZFDISASo|Xtg*3(%ZP~EPwNH^e;v|U4&_W8<{C6@i3))V2QY`Dd1od{uAV1?-7FV z$A;kE(kOjtd1@P#X)Hw4%Tk1lEvk&cVt($0|D6 z>DJ7GIdJhanOnpSLHi@#rI$MArhRZ>BSP#!p(eSxgvGqbl0SB)12DJYvBK>zf7iEs1{fsxU?hs5#2wB+h5@h? zcJ-~w6kturllJxeZYFQUIdJ{T+bhJoz+Wvok$17KhN7ByQFRyA`3=_Ql6v{22Jz0N?&(OhxD4J~4CoevxfX zJ=@>k?`KY$*6deK!0Bx)0Uv1@{4<0!B&-URId%WZ9jY%0@y|D^Vfm}MmXQCKPo4ih zDtH}-v#8D6Z80ZAT@CQ~cT%c=p!*xaSB}KpfXPAU^FZzO^ka2!*|Ys1SwvZLk=&7- zgJj(K%@*nR6HaZ_wZ)ROfRylVw=RBx;(hZ7q)acx_h$njutBYqSfI+yO&BCr51`_h*ZO8^`rQ)b=nUq?(ES2C}DlsA0)XsuWQXg}F&rTZ{ ztMrQYFKy0KF80}3YCLQySyVG~KEAQpz{?-pWPS4XiCbQ~+h=-(*k}iJ${{~F{~p#m zw_;FoGnMg1qbOThJCXsf>o!s6=J-Q>vKvgv|GxEVwkpE^w%i?CrQ4AY$kBKt^c2tD zoGalrI`RcAS|IjI*UrxEdmPWST>f7g*|t*yk5NC;$R#DAZ)+B3xZl4Kfn@DMRksk$ z)JjSs`KY1={SRwba(4UjN7I5hGgi+&87SNJZDf8Ko*l_lEvuYVGI08?J7@n{PmN>E zSy?@Ow4s=W2p(_gk(KYzB+kr?>aOPn>rPLsD%!SmG5XwnwA&$zJYS#zbztB!#Hm2a zT@|Al>8RF$ajCgfTe!e)q9hj4)6%Du|tjH8+i(4>F+}qo)^BYm``;FoBoe z0vX^;MiyUotyY4$o79r(HQ*^?FxI!A*Yho~bN7ySWhp;h_mN$FBd4fQPq)(u?I%#2?=Kl%wvb|F2E>AnG`&{HfyV+pix^ z`#W7nrLDP9^+HS6XfsLNH(?lrvb-km-9qoU1jOY56`4`4+mi4VA*tDOpG+rdc_lBPud}4eE_d ziQvs8U7jjaXxLl;$VMXfFlCttztmLoGY~5mnzZc6GMB8%7#*oaV?_iLbUNWV26(s| zQ;%^7;lw(skwHh24M{5uK=xv3&fN9;QK}=D2XnOnChD`RQ&@WI8GDh?(AczG{OofQ zC(Im#qPs~=XdV3lt8x_kg(3e(>isQ70w4*ka<%n;HVErz+n@AJfPKBkE>K&CsEM2j z!Bq?;X-yT8rDN1S%<22o%PJI>PT}FnqT112&1h($9`~v?H(e2Il-*aCB+R|mfw#24 z*7o_3`}#gIG@u@$H9*XcAJ?X|HeR#B)6_^xdAd$ZfAGw7jj(#0dp&_W+y#;EdAsas zEFKMoDUvz0X#A;3{LF`;GY@Pn)1Ifs?kalEKcz_UbnKZ0$<0)75j_55majjJ^Ms5> zpd82p_X|@yb8Z%~IXlizGJ4pl;|0*(KTz5~Es#&^KYqY@EVa_D?0t>xX#Mm=;HHyy zozeKpX%Dpx>b5mG&bXbXGfiTWe_}?ML*_+ispF=qja8Xb>{9T{#gWKTtjK(lwi5n{ zvZmM7jKAje$ibiSf^Itj>&0R!i|r`ELi*jZ_FBbQ zj_u~9ua|xj&1GNZ1sRo}Fy)X*RPC|}Otqvr=<0Rvxo!9Z--8MHx|0h2Kbw>Pm)q&lo!@qtc$`* zg+*Grm)#bZ!b~&+ZJR55f-7!B_)R0W>2`-Hcf#p}?^h49Y2HTJ$d`6iuT{5F~=KxhAc$!vO9KE+%r)z8b8=8-EFB^ou& z(qYEh4u4`g3|e05>QujdZ7+=A9vz{C7nDpFd@y)JBQifEh%mQw&~dzl#?97}(O!cb zQu~#o4s|7~h{WP!@(tSW;1Da}N*UMu3E?+~1|UO~q9VSBSu!UI+a0;yWaqFiDS6LL zTIsya?%(`%6&C-u6O1pEMc^;alkIx7EWRPF=ea$gkgdRpqSb#WBxKP`qfUSFA&h-tmjFu~|2(pNh`38vPN!_tnaA?@b>6h4S2H(bpsM zzHui0mtNQP#zUA`-Y8S`+_hPjIs`d;p57+4l}&osY@n6k7j2bG&`YZa79UuNReoxs z$H7Y9&6n~n$0l`(mk$eQpnQ{^>+x!dBwC2)!hK`79-7`ec%2v1%@~afr?vCA;zoX3wo= z;-Maq9>@sF;<=dlPZJ}J& zIp38Q-@VSkEX1}IJ$6BaPW5Nxk(1*}ZN?8aUgNJ%{r4Pi$^J$;?#n5(~1ND8GKiooymD`twhT5>80`?ntKgXZ| zbk-zDfd1`myh5^g+}h~qycTo{0;MN=d&Tv!)U;bun@R8`Z9J?s3 zU~Z=h2JwaP^p$5g$RZ8^hb?g0)X{=a=W;AfQ}1`CvwNf~fG|isCwLSNrph_dp&@q! zM;MyQPL+b3u_1(BKnh1(9gCfrrM$O{NA>p~$(XfQY{y?yN~G#PdDlbeVHh_OE{|yT zf16q){%kjD_;WOz2QFY2w}6^1Gk6!i~l|5r>O}zy;BN(?iSOQ7#_P?0M2wfD^8py3TdQ{EX#* zi^p|)%PBHC77o{o>Cz%CRjfmQTr3wMv)7;jEu2$-sB?x5sfN?}vEqj6LM?ZbKqjbS z=ldH(-7dk39~R|$UJn@Omh`G>y+2kZB;(qO+So`I?0EB-d`cmpPE>zbY9vo(E2{go z+piDAthPfRm&KWOcvXn|w8I7s5DzEr8$CT7uP=N61|0vXGn>a>D|j%;_% zpv4-v(-Tz*0U;XXARTgQonIifVs)!HSdEgZP%)pd|E`p@}v@9=$xp#lz2alw%9+! zT`+t}CL)-<-;c%Z?x%VpId1sV(*A8j_`iympTj}j27TSx9`*a5s#!!RZS z+nbmdpawzCHvF$;ozEia@nUumE+)xHY+f1VeH%mnrbHiGa)Z?!mWYt?BQZpuA98lO zr;9Sw&;aTx=LEFzqvqw2x(9J~_~y~!aG1EH97=Jj{gInek5j|U-6P_iCT3b53V_;+)T^>x90YK)ciV$t0e{r#&srD4M1QahvnZ zRitDo_MrZUX#>f(I{K^j0Me&k;f=26tWIAW>||%8MUPsfvn@nKO9H(>AMbZk=X@?>Md3b5#mQL!LyGh)jEryw9^8|dvPNGB+ zV0-q^%rj9{p;+B#-;rlouA|eP3v)4+9|Oi}F*Sr*IBRrlth+u02&@pQP4#@faP2H? z3Ngii&M+g6CGk~jC7-O@OhxD8v&IYfe+0uf@EFyj15{{a+1mY2h?CF_q5D`+yBw&s z&72uq{l)5s#8SsCg}H@L8-%!XjafA4_A07Ts?GHsC&%YAcHS@TMfPYC3Q1qk6|FoI z!|U@~J+9;4{!HM(87+!`KaciL)f2H!KWYycvkHh8o6GMzImc6Gk46RZR7hY($OVqd zsXekfmAT$kZh6ZdiXR9UMC8!&Tdrvp#7H2diK-W=dCh~o$z)`$mtI{_5YI@FzA zJ;eL`aWXqNN?M>$!9eb`bR(+lxC=(u>#mdxWDpQJo3b(xMHg z0*_12$?qrc3zzL{`A?8e9O=z#bH#?N(8)=^ZoAUe|fOhtElPa zPWkR6-@Q&ks~$2=2S>$pMe>hTXfUDFf~}hvol|{RfTw57pJr=d<}Ki?k}JpeSd3iA z0dJmS7@2qzY+o+fm2oQolIc$~HK|iiJ1QsJK3cG_4fW)D-l5<@7}OI_0%+N>ra`V# zWt>fN@|o-949*EPm2#&r?>BXPT~Fa~*wVJS5`of=mRo@X7qG`ZO90SE_wT&lz<#nM zZRw2S)IpDW)QhsZ+_J!NNW-}mlXwv?*z`SUKk+y6u68%Y)sY6F0M=vre`t;mf`CtI zI}C0E-Bg^i!mPGNttM^_&-FyTGawOk;EEBR*Ifg>RKvVfQ&T_8`q*u1x<&OI%#Iwm zl4aw0zW}tM)*ZKTVJwRF*ma2sc4fC1nlYP4zb+{O3!leMU7;>5Ct9D~JU}hc;=Qly ziVh2)SrFc6bJw@bVVFuOSW#^u-6E^R~cGCy6bo=t-!ydF3G{atr?yR|>L zAhAuDj;G3+{{20>gEK1njBg4ed)0qcVfm5394u<{G0Mc%v6wmx6)>hPL!~!p#)p$_ z;$ZqV9!B-_<**+on|p+-b|`62LylYm9uOYa9N$sOp^=kn2ZitNVx^mrf_M4$nrH}*QC#2o%|$r@VN{_qf6 z2z$F?!GXpwr50S((Y8I#=0*IY&K=@J+w%(f4S=z7UWSsQNuFp0S<4`CbyM|qc}{?y zB~nO=Yo7IC>Z-#5lvkOm<~JLC{-+X+cUl&pud4{RR%>>RXXD*`^Tx|1NI)5w;Ra#i zUSN|3$qs9dI!%71`Kx;nF7sK5wdTG7*HM~{%kzZZv>azV`YE-=rhj)EvHhF{b%#Fk zRR^WW+|SzD)Q$2!CH0P&^NYBfHk#BCQ2z>&{A|pm1?rozY3o|GL2d9N`SqH1(_Q`q z#fYBu=_KHFTi2kf4JXm1)IY|^);7G#s_eq~8@(kfj^Zh%#P!aLVL@`oFp!g&ha>c3 zinGuUA86%##n&SneixT%9zbup8I24_npo@}%aiG^=s(*FFxxaEJzc}7EQ7CXZ<^y1 zk=s!+_-ni;7)!pvi%)<4(8p1jLiyWtP^u(w7|+KwaPkTSj|HRjDicPpwOAlzmSNL) zK*qI@ll+j>+e0RCnhF_V(OOVBE6s>nbdS4mK>clEbu}9wQj>XBTkk3kONu5W0mZfq z;1Eu3{f#|r6kc%moq5gM!3f+i8*d5lBf&e|@QZvxp;g1?0B;V>?bIk)g>DGtCt2_` zNEKLXsqE)Z$I85`z!Hu_6D(~F69!jjC@mcsk+E+(6oRe!1(2=Sl>(GbIQN?LELIh( z;&e&1+ZCI6&9i|jMUsPyQTLTxE=S~g%QJArS>ciUT2Y7#-#wwPqwKl@wc!i!DA3D7 zQuiwt#(Cs_?og%3Cia!}rxLx+d`qRM{f*q$kMP3!kX}ss@Jw36Ml&fc&4)@V1fOdf zuVO9$Oy<;5R8|x(OeTh`#CY%mS1f{BJ~JJ>7@5#JF~PycA{tZt>7>@cj75wJMPtN0GS&m2 zclecOZcFP#7JrC4HkM-lUNd99W$_WOIg�-FuAw5(-Bf!_(djlA81KDqK(nEKlR* zSkjucsPJ(pAk|k!rlA`yh`lS1)<9*aIbK}gZhz0Y6nJu~^Nzq2dzF4$_}HF6YxX@< z945`Dv1|O??}hwNuu>}Wg_J`jL-soOC9|AEq072) zB79TJ5!tY$0bki>X8_~hZb}XVMhBNa_E@YaecOTk<+~}SfIC-a4@Z}w6N2zPRL4YT zwdmu&`u&ZfY*|?AGl#?bsw1*anj?{WX+?xQ@^DtoLK-zE=q|K&7YkAJGHMsahF>it z?eG3DfeVZppZgB($LspTDJ*3+<4kzMVCe1&0x+1?%76<@gkFhagCN;e4IC)>WJs>C zD(Uw3H~Yu*!aTYRulI&suJ3zNbQ(Z;EtL|9k#djB7*<<=HT`~h8NDhN!Xr%K*J82~ znbJtH^<(!GDcz$wr5)uGu_6xcn*M`tuv4lDK!+k8=%Dh>D>9{q_Q~DEvI(o||0bN3 zU)@D;A8RfKRwwGL83y6#$WF7R(Z^mDztw2LVs4$L5Mw^H?PTFm@xje(R8+v4S+_Rp zuj+!{6rZ08j0J2w1tV_10cWro&fG*s-muoO701iOCI&u_J&jiU^kAU>aU(M!UsEBA zx<+5Yhho0=jkemPIl{U6&6Jxwp58m+TLP|Uh-~kdxZLXhmjx65{wR83MJ|sBh|G^c z$tL+yHteE@P>*-TU*Jz0aptOs|3nzEh3_|SvVzzr1d0xiN>j?M=w<+iB4Ge;*kB5T zZ{G1r!oTEs61yEjaW16zc`*2~RIA{qB3H=sRL&Mxzc#2~Z(qCZ!1iO;#i9fvQK$`$ zx&cO2cJyte)9{un^E17(c*!w9$3dNQMN z?N{~8K3zO(C@jv$GJBtEYV>EN$ygAoG-LlLfCz?oi1t0fSWSFtmV-k=XfQWYcYTe| zjKb9*P!YY0F*=)y8id}Z|E@lWRtRpp(TF@nxE2Ln{wtQpLjx8fJ&dh9lj8^UB1l`7 zX1&c3&F=LIPDu@7m*U)Qf8~7IeeilGMnL2|KD#dr34&3-IW%2aV163aRmEkmCEl~9 zu@JTJHB)JZ0zro_s3|NDYpPaGAJg&_roemgpKI?&`9V_s{UjvjBjnyG#A#_mZ9l)c z;26@9DgwDF9S7oJp%&;TpO0BhjR7UEQPB=uP^4;c+ZqDS^4Mda&5dY_2dElq!o2qz+u% z4jERLiZU?hS;(Kv8LGO}}RJ+x&srg7O-Cf1}j)CaJB(dfP`HWUqp%mlO-cE0H4@I?(*SEhI{&c>kT+ z(d=VAt`ELd^)~|-)Ch8mFbSt4TT@kGQ3Cu5at-2qEfs3jbjy^~OW|cSQ=6_J=U0<< z>5wk~I~uJ+7w}{DrDT#R^46dl#14L4E>k%}^W}&&pWc-ODUbG|S;6C``3I|i(&)B* zTz4>B=J92ysm#$im){#4??K3=0rR%#_if#h3hB?mN}8Gw=?mcXSyCJ$1(k71zlTrH z_w0oO2A7BTK{wGIHMkC;KSk+1$$rvTPAQ}nnn!{D%<3r>9i)zQ$l$we)$NK*)~Z-d z^;DKntZAe)6vxNkerJw;otBmHu1Azj#8BzxULNz%?6MW_KOCU1-H(U#l$=giSeOmz zc+s$wXlNm((e2nxV=Prcy{;&%2$3g`{kp2yi^?U~G7O@pVoT)M{|3r?`hVVhc37_>@~a;~Rp!L4k&1!hvrdFt zYf;a$?BX!h+oyKARO#yY-b{ppXr3=K-yc|{8Kb!{f^x@$uKI1-Zx5Q7mEO>OuKO8p zGS(968oek(9WS$cAGdIXr`Y6o2gtN%j&cCw^fk*jd_H$JyESH+ZU_A=sB!a(E4Z-{ zFZM5^I9~6w_+L&JlcK}g_=eIPRW67ztcXrVEAHT!JI@?YjI&}ZFMWU7>Ff6XqKera z5Y<+c$5zQDj)L0Yay((QY_bzm7sWW!u{QZBv7sh+&Lbl&^i1 zEq9ecN0i;G-ISbY&!00t;LS8*F`wv(#21$Q03`WwimvB-NETT*W@t=Q_n^@s>DNmt zm8l0F*nwaJG8NfCy$dF%-v*~7${e5`dn!XFl7Qle-zA8p?6-;|i_7R}4~K{GKpofY zuM<~UY;^F)5OMJz_Apk)hVx(+JRTUS&iFak?}Bx}A|LtE{!?msx^<_5FzrF_KM!Ua zB%vrQpH41aJwIsDX>Kwms;0jJKk8+5W>rHpd=ddOkcCTU;po_!RGw$!X2oHCb|;bD~uBS;}1YjxUna2=kxh-dh#2**8wdfK6z)C9z~hI1wmusFE}0gtGp1s zMTygxBu}xh^)Vx%Y|+?ZXL#w~VwcCF(l{gzW}#b~^HIT;cy-bdkhzBGUk?br19`_l z{rN0>tfeRuCfpAw9i-9)Du|GwY3i0_FIu=$UT^AGC-rRxvW&aqFNZ8dGOR_Nz`Sji zcC$v3|Kya9(oFPk+)qLj+OEr?V!kiaWVomqN>Ej5wuWL9j-~)N%|&e8FC`HV;j)oX_%<(6GU80wsoP$ra3pj~$u7%U4B=3+{(6k1H;P&3``67D zZV5%y1$j;J3WClD$^XW?FRXRR^gsc6VL^T!db!33ml^3gy@j|~F7|P_+>9#04HNjj z>`$+#zNuz+JpMt(*%+Qm4|?V-pRmgIL2D~4wh8i=4MkzB4jM$xQgy2GldEzL#^n*0 zBvq7^P;NQS)~R~GUlzN?^0K5uKY>9%HN)oUFweus7wl=aIi5b7CVMq|r0(pv&?=ag zMFh6C4hl!GPsLS=ji+c|Ss`N7uzAt{q{a~$hg)=CSMjIbn^pdWj*A|L)!Nt+{hhhT zZjwKwZ4XiB}Z)LIw#?R&6hNW9?t8`$4sLX^15ylBl{eV5U zdLm(_aZUNfEx29OP_c1ACFaNSANO6dcK&sK_qedVi24*cc`IB-ToofFT`T`9_ap%@ zDV>CMP4XJzwjM&Kx*3A%}XN z*Ex11j%kt)Cx~D4vvrjVuRy4dOgecJ`Ki+Y87OUYv{xuj@Jvc=)QSDA$4o_;o!5xw z{#a4U@bfePkd)e$92T^rrNX-;1Wca;)a062y+^2thj5;YlyvPZrREOEwtie4S?$5c z9Wk@w|Lr{ouJ$I#5?(d|Fgh3<5N>~#pkVSx(H`OZ==Ue>p9*pNLv7MatMG~N>Q7Dm z$b|dsVv{R(pFb^z=lPdfLhN;Lxgtq1afUTsIJ6HdcpYp(;ql-~%`E-$;}n4Ea>#yW zyL9A5ELZNZlIxXbHr6Gqz-l^^yD*55s9~_*H}Kqt1&uZTyWDj@9oZojZi01HS5+pB zm5Is(u{=JQoH$J)iFvpe>9};IVz=VX9jA)U#4T0T51%WL9y@U3ocNQ}y~q4?xzToD zyV=4a9zI3MbYxnaQ_fVa-?jToI}5`_P*p=D)jJzOaApu7&G6GL%j8_-hrDu(a;~b} za3}If6>|lpeFBmQJr%7y8k9H(C5KJx6@{LudTHF;qjK4p2Z`4o-0iE3V*FA=o?};rw_Cl-WRGb5`h}7`B&XBFW z5c_6I-+;V)a1nS@L;%}kcE(5=o$lT&C6DsVuivN*7!#?a+$U%&?zFTzbgq!W%q; zdqxONHYL(rI733`eN52pcm^_>1JUqn9*$Ugc2nqnv@HRvB_AfiXEmJ6h2KTd;72vc z?@?Hh6F4c?7H+^is%M2W>frI{weBMGKBlLK2WWw5$Q@E+~kdsz7L~3h{#dy55`q@h8Ah<*yz*@ znVIE5&ETSrgmk-mv<^%?Lv%-z(>Mogw)4N7Z%FPRt$o#r<$R@zTp_PD#!+Igcv^O4 zEDy&ewiIGXtJ7U5z^Dk0tT{)oxXDL+fQ`}1&V9bBX(>0Zb~E{cM*}roo3h?}aAXEZ z?H*8C3oTz?PYwxkv?Zuh>L(q6*;$$f31!Y8gF{2_ppF!F)LmbeIvDE^Wx+3rYfwD# zNOnxGE={*|9V=+HWoJs(m-5K7>jx^)k{MJn zg)c2^v&r~7*Y-!NOUG57x?G=$U)4Nb_4Fbkf!X%I?k3=$Z}Py#7*7#1ediRPw?=J3#U(*1I_;%3X5F1zi( zliU8AcV@JwG%si0Bg0)T@9r}PH&HCl%8L?#m_ zCm@Yy{iOeT0j&I(tO?16Hs)iD#9oJzAL6f#vyG=G+U2bU^>Mn|1s_tXkWgn>Nxytl z%;Z&U7tdBs%f=quHR%JPt*_9d+fKpWo(L|-{O<+l8vf%q@JPi!QEWiBnq`KsRL*VQ zD@;;l+z@pTA@FA&KA0@?E;UzJzg$95Ib`S)c&hXa0jI?wCTn6wShc%TckNH7?zw=f zOSQZFJGl?BsU+q&+o5E)YBwd8+@|V>4tr6p>=)9^`|XIlm5|m}!Osqa7NQ>N8Iigp zK315Yp;Xe5g}fv?hvg-e{JkE9*cB5)1+%iITpz>BUgQ8+aw>sU)yQ_&MqCEN?i1`x z|D6`M#u-D<$&@|~8h%+cBzAW8YD)#KGte`AM%C)lRse?~z)mNd%ui7AGWHs}weV&B z7xe!rXd3>Jt$XCCZv*%^B-WNcvH%Rgp(Qi*Z zHkmoBtEHp}hcWNnL)PbJ1~bn|Fa0dFJV;gFn(zm93uCRes&;UKqn{QcCPk`juz^MV z+4*2ZOFbA*o6J`4aTr)rS)mg%7&e~5ANF|EMh9C~DZnYeFsbEqxR$zeJzNl5N?Tu7 z(@epsa0^x@tS(4f%FF`#AfKaYAgrj3Z8gl5P-h&_@-j34Eij#*ebZ<%MxctZ_Ckye zt7ky-%hQ{1Vw}p!k@o|u&+EDPj?6IuhXs3NFgTMAhbP=;e}p8>`ou|{jun##*8^B0 z+|ib>Fgy3ipIl;DLbW5Dp?Ymjcovi7DjuS_aWDo@vjfkoMm=FY3T6jixg56mvCC~w zjJ5gl%>VN*(??JoGim}1Yd3^-?0=sGmkq+ITs~xlDv@S5HE8Y#t!CDyW^K z5y2!~dG2z=}i z6H|?CHkX>d*+1rKR|puG{UBMd^~p8wW`q5VRv0O&7ekK0Q8%1V=*l@J;{OJa7(3

3AUUy~hSc9>emhyJ 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

shF1yH1id%@07)M_hPKU=TFDa7eG$g@# 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 z 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

pE1dvk5K*(BVpGP@f=6MsLO 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

$86SMcr?DeCy)Me3ks>fA~*n{6lM~ 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 b%(ZVN9G4YXyruPz??*yJR=7$~Kj8lZ*^*#; literal 0 HcmV?d00001 diff --git a/prototype/mr.simple/images/result-3.png b/prototype/mr.simple/images/result-3.png new file mode 100644 index 0000000000000000000000000000000000000000..3070ad4ace2b983e9055aafd089bc5dabb963422 GIT binary patch literal 137560 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%0AqkI`ORq<15-BS{`FZXG!?UqHvy@uEb=3<3o5%q zg;0sXLK4BSe+t?t8ZVq9d`sqlDL&ezfk|E3NSd`x@_GLeZJjZw>sAkk8^cIE*B=tj^_1Q71bFX#`ZZCp?@<{F<+C0V!u2$iNboc?8^Q0B zAvo_@%`1qPjt-NV4hcoHD7UBxW|yaL2Ho!0*63}GvgYlns~9HFT(6lG^m&V$5wn|E z(>AgQH5Dd~W!j0KDf+xpYJF;7Bt}i{oe_7jwjHNK9k07nUl`Q>5HZcn&_ftL&r*_~ zo-W1KnsP|XFYf7;|5)3!gBDdFL|q-$G&-n*}V zj~bp$3az;1@NYQy1XFQ0`ea3iNJ|YRRI}q~tIT$VL2trjc|O#erHFU1=(PS0A9o4x zG!sNc!;`SwOb)&78`$eTioFzqi<=Z$D-VfBP9&0G>DL&+iFqwhMvlM*=w1uLW?B4E z8YQYIHS5Ddab)y)097M)qh+E?R=>p6^YF|LG_HEu^t6van(f>G4M+8%C%L%8(ZUYPZh4?#F#Kws|%#rU&D^3XGqW?P8v!m<2x6GN~H|t7OTf}b!zuSVh+2LRB z!{zB0ftP1~xI}j*28j6Hjvg;82F$6Z+@XY|RNzN{7@*t1Ir0A3D^?drk#+XOR<`Tg9x#Ahq~;qf!XOLnuc(h7D~OGGv+52Zud1 z?f2<0Smf;JBZy=+W8fj2m#ErOYy3Fy3Q~mo!4!Ff6Es)Za zpl}>HbF8ieMByEC*4y>39(#lA$Yb@gjYu4!-x%+e#Z;K!XSeXCjc|`M6F?bol-#e@ zqo6%GLJn`ee#^}>Z~!DcamjJHb%GLx^p0-eP2+m$GCHF zOm^}dtQy{dgILU}ZH{<>UNYXjXi!dzuH)fDMq&0%1n`}lndP~AL!!x&pY3AJ(J0o{ z_%5qn&{*$qxEH^$_PtTep7RT)kfsq7_I3-c6Z?PfJ|0xPlPpI8A|SqD4fGH}zQHkH zpnyAl7Yx2w9b8RIuvY(2XfOu*Gh7bFN6!yD6gmj^0H}Tm9q>>_jiO&=PV7w-a<0T2 zp9U;&I%TsQI7-Y@ogxQ9_Qx<@1kD!d-DnlFPZJ`8%h}&gaOmH_R>B7!W4Mc}zRe=^ z!}#;CpH#o~)+h29P#~pd0}Dwn@W_o?qPY9RWceN>cl{%9`sJ`}zPD;nem49IlgGoj zu0{Wa8gr{b`r#Z3{6)d8IW3aW@i`TDw2*Ybf)FM1W&$NaY{mXN3BwS$o^X`j4fZ}- zj79fmEMI4W|JlnZ_{NHE8^)xGG3JSU;nisWh-UgvBF4NLV^%IjjPh-=+NSa}-rdv3 zqqHI;&c09p(@}>zCX**Va%VV7%%8|H36Y+;>DqE`ICd>g3<&}00E2^7H4`uM^Si;q zR>N5bBMLU3t*~>OZ2w$Yov~f4U?`F_uK;uCH1A*7B%*RxPkMWSuv#5<%pX*lyThRL zw*qd)+9Zx-(}OdZ{7zV&sYv57U-s#>1=K2zMA}L8;&H55w)|fN*x|I;pkJs(mz56EM$f!hCS{G zB>1ST_Hn+W%La9l1ra;)=Fr1Q6JCjgr!1$#)@9s-%Hd#P(^*04`yq2d69*XZFp_EJR-;YSnZ8fJ zkwzx;oXkeQ8ySsHTu_~Zb|UUmi=rf?f@qq5C+^bpg^l13S15CyAqVM*A;@NN1j(64 z>$pvMMNa8~bM@6Y-%Czsal2jS^3&(#O6Kva>NT*d?wmiaBW3boJCYv}P3XpVugL2- zfCAW2_b*;e^`%WRC4~)+qx3wVu7;XWCdWuCr<9OG*zZUGvP>G3M5+6}_!tY}D9MQu zj`W@@_JYTAk8ravgcD^PH|`xOEUr5{qvwMG0lC=UzCtoCIWSVufw z+`sV^pkf!v3!{`!>QpL>^2P*1#M}BgnUR(hj+jtuU+cWxm(e<5r)>ma{5hC-!LkzW4j1I;&V@G3 zVL|KCel)9N$xzbZK#@>uX^#nUy_c|}{|~bG%VZyFpCA5+ei7J;pN1i ze6(B+V}6HBf;y>b7CbV&9bK1AspUNj`u6l$`YZm(Qf_a&kvo>v0lI$4_;!PK5xkF* zXwtW>2s=fm2C+ZBK)jmAc2gvsVI>-6h>^BU4;k4_%)iI1oMN(?PA~d8JoPtU24j$p z#QiXW{%x^?mfIC@q>Q7N#rQVBLr05vACU|Hf7sZ! zH|z(g{}p~yR^H&|hCim8XG(&*8QsR{n;TbJz+%2jJ914C#X-uAE;ozGt$VXoTxJJt zAU8iV284dA9YVFctu#zB*iSX0pi}ECd^n z_PXY-%f=F~4kg4K*Q%bI`o?P(%-A^VH8~-VZ}qKgj^-tL*c%hMbbvOX*>h1^jMbjJ zT*THeX^JhPTO5)2F@MRSUI%gA-JS4SBqTqreOu76-c)&tsdM<-!&Odu1TQmN{LgNL zH_)EB27F;sUSN)po4OSHlg&ynFS+i9+Y=@zI2d7KyEDRGu9X-Nd?qM-jmg7>6W0=! z(y+8hhg594yapLpI4`xq;~^R4^JuPMZ$@D1As43~yI$Pu_*Bj2N^ms&*2y4hPO;7u zi}$Qp1pNLd1N7|+>D5knSZ7BKIZr5ife4nJ-YEA=jcQwRfTf#v(Z-Il#~!9+B_C#n zjMT46^i~p4`~I`u2?v!In|Y{6eMLw)om=yxB!H?Ro$c;F!9GZ6B@;;to*%0VEcl?o z5|U;4P-dNd^SkEzHF1`@G#@tBSSP{rF!t&|JQkjGS5URoCuT(MpXGYz2i6H}q-eNT zO}FmGkWyu6dz<84jcFu7Pc>?l2hwKgCEOR;`G(DEM@n^>dBNF4JtCasgO8x zax&0=CI*p9qX_b}P^sq`-{c6u!W!&+GlKiX|8cGNTZ=GAbTG}0fMkQ7V&n&@ex~WU z(njW|3qG=8w)I;UuKHF@BRy>WU?>wfcazz!t20!L3T8AzHqvmx&FxOj*!98mvSDm6 z=nrwGPblk2fwbmlRYf;+9}EX#TtRq?Mz~xL2k`{0LVXHk?0{pldb8;~3;ha!@7L0f zKvN<6tSJ)*WieFS?bYUJ&y=i;uC{B` zCtwIpWB#4Oz18YQY7Z`22%49@T&RjohDQcQ`i_QrToNQn!jNKabG@b}>W!aS&FjIlMP) zYz+HAxMY6e0?05hO%nLpy@dH-vY{}&O(4A4MuF-kPeqXa%4sI?YLKwuw0SdJTxU-~ zQEQO97N$11k0R=|nOg%}UKsmUKQ{{r zl5i&Jk&2KmHV2Dn*zCED3q~=Gi!D|)YHiKIZDtRVJIDsrkxrEWy5!Ha(UqyrtK=Kh z?uR?$$h6X2*IXe%Z$n|czf_3?5kwkCE8S>_Hg{9LUzv)tSVV@-d94XuAe^>S*-4Us zUs6#pB?G7joEX|_4!-Uten6(m41L4QyKkW&WX{H z&Fp?hV|YMeV;8h$*ScgLmLw5cFh?8onz_rT&An*isyjELEs^EF%3b$!*&`VEAOc$@ z=5p)U~~W0t|TJ7w0H02_~dq4NAq$DY;#K z;kaWwt8P^s3~Redg9a{`EwS4*t4UNA2Bzc;AUCNYSy)=SYswY1Sx=2Pr7z+&NH*Mw z*28OP{5;3jpk|zxAkv^-GtouKM!fTdG6}=Pjj)mo+7r7IVU&pt3YfFCIj5Tf{YPLQ z;$Tk;;T0&3rG;C$1yBb|sG*kwhlbSMZ67y|`?(Ht2%L;aO&(6DyP-zkjJ`Nb$@j+T zD1aihIGN9qTjt?wK#a1Q6Hc#dzt~1Msc$Jp?Axn@EV?f`SMSX~5OYH8d0>_#Da^oP zHZuqjQ}b|$mw=jHXm=22Jo>K_As<JXB+gke9o6XriV4&&q(RdcTm;l zXKXE{20kPD--JNl|7MIY3hYOJ>xM`ybRgpV-Y3EafL+HIhD7v;nxzQ`!<+lp63W&d z{nfFgT^m9CJtcVmHAqhT`5jfxvx)K%Q)ug06EM zne1%XCGgjS6dC9Clld$=gXcKSc=VF5UZs8C zT=hO+%)UHRF+aHe+n*2&_4sP$YF2))h8u%VbwV1=3Ota0Zgj?ZkDE#mk~DWSQR49N zp{Apb*#Pm$%R|zx-iA*n`(H+a#IhX5hlz#~-7I)6;BTbxhK0G#RA2Ahvg@|ahDZ2e zCJ&-s?1Tg3B-FgjWYTm0KF!&PqBUPTU?T}9HwA1sBh&jjVsvf;2VyX;SXm6y))Yl3 zcB$!ZEx7vH?2@$$ESY9RlIHFt0&oY!CSY*gzC9tUkrRK>;&kWi;SE4WDj(lYnn0Va zjR>87SDINJsF@EPf8Mig(GSp+BV}S%%Yund1b3#e6W9-5^^VxW1OA5JMVrU#YPm61 zFaOT}*WX(X?%vEB_%TKu1t}vd%!3vL-uIi)f-izSqZO>uvm($J;y*z7)5Nv^G;yyp z-`e2ca(EC$S&$s7fmA5}=xeFyMTX9X-!Oko>pJUyJ+CFN`wwjVyC$JpMAKSbZgp`5 zU2z3TL>}Nln<`LxU{+FNg2@D)P^Gj#yz~F{HX;&s`aRBqSJ&njq=%;5L=>RWoi?(` z;xF(`^SOK%a^@d7`lvocwk?cxLW8=qrL1-U@d^4%gu7ZaGVa7;Ny%TWLx-82H-S&9 z)jo{xQ9fJd*w$f#hK8&YL6_NPkpf=W2L>h%37&S29?f5GGg z9knqU5Z<3qw@hbeLama@LG^74Qg6M}HZLHyf6hY>zf`E}@xJ2T7xAQp_wfM>cy1_( zUIhP-n9E2x^PN#o-7e0J;vO`s%lrFxqJ&HvV$aV~eh4|Ji0EAHR%GY!8Dh`<_MU0V zW}6Q~lMOmXFCDkT>iYO&4DzJ3CCB7F{>U!pRfU}>|IbC8XtCt|k-Jm#pJW$Lb3RwM z;Qf55J}we8*XP4}Y(MMUL$Ydx zKqX355y_TXX3wi9)9iE%BO#gb~jyA^K|O*RGtKo_P8024ac{EAxP zJg%y$!hQC+cFx1`M}=D1GTi$yr}?Mb`L_LS)BW%Id#=;+Hhh!2b_1{1jz>m_HYCG) zDO}w)N|>PsbN&-od_n0=S{T2 z&F_V$%Na|O7dGwvN3R>3r_-RoH3$2c|QSRJLZu#7AK0l0c@_3s+0m6DA-SM$1t)7&;7(e zO;|;Wou%!$3@vCDGxa6i3i%GLx$}P!ruz&CNo6v9uQ`|l^l9wN$wnVYU z`IBeBleRQ@l!n>#Qo{x}5Z|CzYDtW-<|Hx*9~L8Hr9?~VTmVUP!RrxCJf5f`hnU8^ z9Amv{tH81K*=1L2nek!}sIDVUfY!Dzq|s8JjKRZ{V0F$Uzs9ZnW+Y*~re#A+F*EgO z76W?bATvPSDmn8S;A*&j$3-eezcbzS4t_t&XJop1Y&}`<&m7Ff`nf*J2Kabw4ao%@ zE7}yB(0XX-5ocr?Uw>B(p=u~fdE&l4q63wew1_Fhjn_yl%@`@2WhH3ZYPHI~wK>Of zIB_;~4Lf=iy&mqI&2CD;$uSb1p4JQ1ugv(wtLHq(n7N4M+}@wL8%cL*e%RDtNoJcg=&Eh0P{@?1EesG1`O@* zI|sQDCm@%Qbhejdqrs0CNLU{637a+*G{iW8PHpYjqM$2MWn&2bDFkA5Jl8D~=}(yc zSs^PcI=jgJuQqk`)<4}MM4ApV0l~|RvLZ$R|FVrb!ap|H#?H-e59bXE?nBWQ-i>vr zs){c{570g`sjDp#j~3w+M8U|xT5wJ3>ul|e#ku8(iGSKZ@t`H1LT3aBz&{vSaW2YP zTo$w#u1qyd9L2Qa#KA>XWwSYWt=h%RS5;*^yE7{}86y>%RDjN6{acq688RZ#8*8q! z&Y`m8b6!7f_)grdnr6M#0R6kVJCgk!*X<)MboSu)?2c!uknE20T}^k8#>bVZOK!A? z9z7BZ(h?JNY--S()Vh&>e2HuNKzgwUdOw-{UC%m)sBz<41ZBPvucr5Pf!kBIF)h~k z45Nlb9!`($CER{3MN|E8hG-T?Tm`%-{I!4OY?L()_DKI#&rnI1pU0lh&gQ3?9NWI5 zoJ~lMut5C0j>i5V`%~!ch~aZyxV2N7Q}(GX$rPSDL@^gmldXlY-=+CE{wJ%23Ay-^ z11Q9L=qiKFJS>?Ep)E@C@~S!pVzj|vzQ)G=$oxyMrLEp~A{aORN|d%{1|sdf!DavS zez#Rx&ukz>t!WMN_r;*L859SlPk%uB0Y}$&<27-O4Gg}T$Q^#PCBvOT$35$*PWkN) zFP&8uP2a!G={bz81iR<9(`793bC_I3T;LHsfl0<^fVvRLy`P1MqAc zywR=hF!=09RCLW|H@h@(_9h+hY|C)H%}H{4Y)UvX{U@x_pM=EdFd<3=(AeR7i3&KS zAc6;hdK;SVA@%{Ut2pVN8-I7ba#Ysp_lz+IxnyC~dV%F=S=sFzcIoub!xui{6T7L` zB-}atvuW6Gfll`9uYijK=4WE@z?l`l^q~jZm4tgX7{|3T5Bo zh1Z?e@H%TXaSK+;=3KjqzJD3a^SRh~<#-(l#>sHMdSR8#4%?w!$E5EMHApb?>aK@_)X%l?I~WXD=Vw! zrru@SW}p1=&WhpGrO00GjKV&V&Gb6f9!O_5kRjtWc`7r-0@C9!x=J?e$_k)&$?*SY zpy2VOE?J%2YbZ&0VbM2LSx&`|-HYIR!*zD$iMyUsIXtz6!kV0PV+dJ|*BX#)ogu#| z4`ESFj4Vs6ZB(2rof>R`Bt0x0Nom!WyoBwf-R38)PNQ169VBy%U||SKYxIYEE;?i~ zLt#@5VZRl?%7|Mq@B>pqfmt)Gv&W8Kch6%-bY}lj2ewEccARa8*YIL;%gUg-i8I!M z)#*izBL9RKP7q6%EuV$~AzZgX&{%kLG(TIzzAeiWFN*2M@$ghcSC>QW?UgCD@aO>N zpf1=mp+MOKDIc}5#c+6nMOmd})Hh@MC<-CQ6wb6cu<*T?fk!3L_t$i7cy{wJOMZPF z&uC~nTz>JoTwrqL^Lf1jV)C^1jhBD_((w#UZMysVM7`Ff->Y-D*5-`KA;9htYR^gg zhLs1|0lnS^5Mgw^1dAz*PWx?m5-~rTKVRoJy6q-R-ptHIyhzzXTz5Wu)SLtPfLnlY zF>r@_%VzOJI~uZi?KGUhf&R_-^_^)mORaJle89X}su zZR|pIM_yZ#-L*Sr4G(*Ge>S|qE2bA9%0)~S+G&FI0OCbyC9zgca+rZMQBsB=Nh&ef z2@+LSVk;1#xK9h;it=C5_Nc*g!8SZ{B+IlQWQsTm*Mu>w;Zi@LbcB`D;0TE_3?ur@ zC`}7%u2@KhTDpcAKW)r`hTE@}3ejCy_ke2*dwSSZxFWb6Rhvk@+6Dw~FZ8}RT9}vWN zWDL;Xzb6$D)H*_iS71Eq;V!YC_SUSKx)e}vojUYsJ!kBCdn{OKA`9EKLi{no{}a+W z{xbIL8_e)I>M@B3#l0#RNSdT$;&DWE8!sU^FCW(*6YXl|n;bt`c{AUhgWnpK^K;1J z+@-RjI4@ZI8^^O=K?)O#DIe7?wHv#&w;IBxm&dYdQg*ymo!&E?pG=i?7H#MfocuC*rKnFNaGi>L13 zcj958Y;KBodOnrP*Y`#Evl_b6@#B zG|m3w2TVSM3v(S(x6-6A5$cqLk)Wu;vGH0tO($2TieqlM{P|?6kB^}A3E;Wt-xps{ ztp#J4fcyhFXoCKv&@$9Fue~c{*aMswm!7c) z0RBSgCF1sPY)hkK$u{Hh9vBmxwdT9;1$)M5dT*q!z;#iPzi z+n()8Es-Z{6xe~5Tzo#fLct>WE4{9hHEnaWe zJ3iaWe$%3dW9YW{a@sahfuaHvAb{G8=VH+Fj@MWOooO4a9azemLKxb_pD8d&+K>4V zsmFa93>3tTG-m4|aUw0&;qq41oMc-DMws>n{Pr;)!<=npDzuh(!a4c33DX{p#}^ZUSE;t9 z7_~a94=V>pEP`h}sW*|O3LD?A9;86s`1zpCkiE7L@s8h;f_uyw8)&Gy-@Qk1zpMF3otLJ7HmcEf-c7TM3XU#E;>nn8+ZAEV=!hMeVbm1L? z+QfbG$!?I9^CJ5|=;#CbiAyrE#M83+&BqudY=S%iom=uwi@_k!5P#-uX@`3)6TOey z>6s#gZV}8KBqrO*_Ns3M|n?aMVnlZCws$};3)?UH)*s!f6e=^!aO*$&Ud$yy?y7)ctKn<7Ad2Z z=|D-(q|@K!x)zu}d7kF3n!s?^^bdj1H!N+(^U+Z3dkUQg`<7=dSPlu*&4Su@!}M$) z6Lb#HR`)_fw|yiq^qIm>^?i9Ev>RTi-ir&PAj$C3KhwoE*g9?wU?S+3I8k*^j{ni=YNg8?n?&BOsL#s0WI(sm6$Rr0Fk1Y$`vQ3BaFYJvVF89AQe|Vxf zlNZ6eM)J5uc^J@+3@68oVobHBeL|sqa3m`|)kZD#ivgruec1?G@g+)}Xu!AV?^CU2 zqlc{P`X|vji`Qe;TIwajpwP!=l9~O3C1l|Xx+=rOrRN6p#KR(;$N3vE2WR>#|6>i| zysH^j(^(d`adl)Cgm+avlG4=L@HbICf4`7`jg+=}IynC#t#8N!|WFAC7fI`|@eV-+z0Tt}3?UM?HFa<_(D~Vf&9(u^-%nhvPJO z=<^9jq}u~FU(UbWeZvB~OM$7=#1u;XD*YOOAw;Bm1H=BR{j#LKQe|H+)t1Y+)wd5l zT?9tmzu$j>z#dn;IEdKn7UoWFxX;=Je&uL)n~O!WDQN~S&7$a4?c?%glrHd<%o&BU zl^;da2rog;rD(vBhO)H&#&O;Eet^vZ?0Yyg+{#qvXlRGsym1HnIn>e;hJp~2K<%j5 zK<=o?C@QLHb#jc#GiT+GBI|+Wa3!A|b3H59wZr3hPq;M^@3_U4Hyr@7p!D;j{t(^N z3hzVKO%)>a3=;U87Oer^l~H5p?^7C zKKG?+Fx3Kq+2wV}TD$gYfAX^NN()8B zT==xY-we(Ne$H^Fh4znb{_CSQ-o&3nv|ke(9?N45q~EHx8!#Pt zAkVYk)m%2$tj{yahwZ|W0hkz5J6hH&;=~l*62wAYe9;2nS3ag)D9Q||=!f+q8X)^Hn(8UpcWd>ui zAmQjBw9@iq#souPM;#g2CI>?ro!PiF8UP9!2m^K?$xIm1=D0 zT$7j`~P3)mDAZ zpe-`c`v(qMmiLE4e$yz71+*@&gYVE#2^v^{h7J|aF02Hhp{ce+x>Rgjn9$^+>FkrL zZgs;{_R?h7HqyDIS?MVLX%qOBDi43}2(al@*B=hUoR@&%2 zhlWOdXV`zfNyj@*Ia6vM&7zhg5Kmji_iJ} zyKoR!z=b&y)12*+G%~K{R0iicT3DE_B!>^2@c zwiY}u5^WtDz&K|Q?u~Mw)_g|m%D!9R@}C#)NA~W~2J~2CI#DGXbRL4%fj{_Z4_yuz}|ueAY7Gnu_dOfV^NrrJUDEpvrMZm4xYnP1lVA-}#G zwH$l2bLs>PFpl-lH9r+5ohNNkG{nO${meuZ&SSp{cD%ZB+IMukvcAs?&BcnC5>Y z3I`cB*>PD}n-`L~YZBEsHpu8uGvb$@e&}|REdz^?!Gu1QXZ%QhvC#s39HT4HchCF$OM>{Im2isn9 zPalPK{suEszHS)KimStq&R`MZeLy|sGL>7b&xx+2dVey0y@zp~DX=={>}EF(ttLLn z$(KQ>T@q+Lk@$^^O_C;smA%;swkTo+c8}Vtdoll&bffU~D)mD7-C-l#wl>3y9|(Zf zEgNCwTD9cEN21okx&O#SXx%E|IOgT|L=$6(u9Ig73uRZF2+DSw#)|L9xB{ zE~RurRESYs=1?6%*`{|}G(^Ft}+A+>~d*mxc+ zuNNa$#Eptn+@!ddIM8x6{z)ka2UmhFPFze#A;3o~3ULFTSZsGE3#4vsyWIF`e~kE! z-*x+I1yEG_qUGtRA*G)6KYDdLgzqk?Y4a*d{pnqMxl>pqiL!fjK>O7ozUI5vhk4;y z8&wq*thTt9qxX3xj8t(r-tl#sV>=FJ$ye^|weZ8@8z&?REC=pFUG{n}Xdpw$XSsRC zo~k4Z$xC*rEJe|RS>}v3$6{wldDwzyuN>W;NAyL>9!7#H{034bh5uw4vA^y^oT~Gm z6P{z7isKCq-Z(HB?0DT<$*`z(B$8VX%-vJOX&?0HcDF$s>VARZyYJZ-hEDBiR$m8B zYf7tBBVXiadw{r)h(SQubgby`|neaM9vrJb1Kd}q#!NYQ5s+*gp z4Uwi^8Jv=qnV#{C?v)v;g*oP4wY})!C?aaU@Bl}!{YQN5LE$(%_(J;Hro`}x>nWD% zXzHm}Q;VMC<3&SG)xosEBCHsD?(I|-KdsQuO<*=e@HKmHC+)m1Gv*bY22dAnu6fQv ziR0nITKX`?|EJqlYp{;umirHq_fqTz5YBU@z1hR_Ozm~ZZEHxV9_hJ6C*WiNiIPxX zqa@mxa$%4+%5?F%RgP)?PpoX%dpyFU(jh0(M7FLbDHdjP(88H&soqhbSC6}FXjFe1 zQWyklMbgA4c>l|Ur=cT4>+#~!q-9H3q-ipSKltL-C2~&QRo?LsQY6>-bB zTwx0Q7t@IX^PTaEOzv}x?lZe`_y0njpP--1F+7_>qGbHIw?if|Hmp5F*(;BT_E{js zc#WYuS(D98jT>D^|9;@YflUw#L2tS5tD(^{Pl#CZf`PUY$&*f3&{GwC;?Ftpts7L8 zPHSZMz98XrupcdQ)#A`B-IN05z|m8FUK!L@K4~<5x~T2HAn(oPgM~)EOVlEAoTZH) zGeb6_KR(wz)D*~8W#<%RW@&-m$Fn>iDw8h*397W}&G0Tyk*3t>`qsfYebgx{-S`1% zyKfNPAFxwRIm3(g#o*ANdoVZ1``CtN-sYAp=~A6xh@lGTqpckkA0_@Sb^P0s)>aao zDYh$7{98@ESBLSv3lotYMrD^sLurmET98m?f!-(ndMC?zhrb?!(W7n0m?-3k7$fcN z?H@J;JietA#=Gw0=b#g3A*CpJvX}|wB`41>Kz*L(JTY0pYc0nmK}V=`balsTc<;9t z2v55#jHbATMFM4W+HQ1^!j~$B24(45zu+Tl&iGKFNu(Hf(Pazrioj)@MGgoFLO9iA zb)IRbaJNF)qZ{t?i`DD`N=lAIKHA`=1ITcJ8mdJ zj}l$K@#F9^Lur9~MjAgV$)Qs`D&iM>=^D-vMS5&@kXf7$)iO$ZOhnLTm&cNqJ6d4@ zv3*DSCOfMMP|%iok*NIHx>d+QTrhf}+;wO**;R@WHjSIW+;wh!usq<*=jn!wUCFX> zbJvMel7Y_l>J}e`Heud&q6Xofhp4M*u_?L-x>scQkBsym{;(O?^R79C;O|ckBQZTE zx=-@CEx7xyws{s3is9uqm@T%x;^^t1k)p&9Ix7Us!T`tkd!g~fDKQz%G*$O__w)Ke zCOkI(DbP1z)gw>&kvHuWiXmmB6W4GDrX*Gxa|*Fq-=~X%k0tH}ICm!Q-)Iz0DbA3T z!TJ&49q+fjV{&sn;hw{pV^S9O5s8=XsAYjXR_pQkb(i|JPVtw6R$WRR_uVyT?o1vE zqIh>ngigb$_a+6b%QaCu)-BhrzwJSm4F5a-|4%K-m2;;cB;7}Hs+HXM(^!G}DjrB` zM&&XKQZn1Rx)PC>&Akp+{mn(@2)F@F|O7q3^>G5s1)M=R!KJAO zkHGR#`CMX3iF5|Jv>WW%OvE(@K)Lj0l&VdeNXnQHsW|$L#(K3RxWoEzghOfG_ z3O{*cNiy->Vza&Ra$imFMt4PSr_2MOSY06t7x| zbp|3kURzpsH}t|)D&8^1rWIi-VSpv}CaRyl%^KJ7EBaS*y6gDHgY;a~@l`v-A(d+4 zw*kSBgy8-`?dYn&0nU=a;lH9(C(_#EOBc{|VZy{R?=zd>k%8ot#9zZxMQKV5y8aZ) zzYWgzkUG|X%eu4#+)gWnW)3^d=A8#&nB?OBFZTWD5-~A;_z+*E$61bq?bTX+t6hl9 z%39|wPDmvTPqBo9(Wp^uX)1^%{zm>yN0)WsxOw8Z zCcbQ~3xgK(DABbylOu-bW1qR1&~vo()AhJ=lb_e1=S>~T7g4z zJhJ#(p*a`r0T|s6B35czF$OTkDp*@=Z2(4(T}Ypsa+H?u+7f$&#p%q7h3E;`{l%Ow zXfb4E&G&&$H4T9POhyC(I2p7ZUH4#dCbwvEjAx+!PU_ctS*HIqb#UcG1 z_VjT3)Xt&zu!N{#NeR9Fwfjhe0Y_7YvAL7_(vShiRH&qB<2d{Nto69O736-8KUL<1 z$uECFh9to9-mW#x&T#v_JWQ`1G@98{_b*(h^Z-fTz(($p*QE3 zC{qGKi3W^rw^N9gRO(PuppuUd=>?YmKM4IKcAofe8y!4@Dv+@pgMG1WVkc4(9vXkQ z{m=lGtM}T0$!!|g+sL#Q{{};}V+@~*jcY_iXLz#&j6q_EGS(B?UG<0Kp@Sga5ScvX zx7FZMY{9ZuoEd(+ro1AZ>c-iu`ln>hM~ZY}JeRA5i&&!OO{WVC?QpSF>jAf2^iZ9@ z*r9p>K5eLNtKvZ{tIL7eqa4&0=N#RN(z0SqjH!9J7t|Z|by(mY*A!E_y*t8?B8B#q zu;{gyQ)8unu&^zu5h)#rWEvZA6?{fRz$r$l{zn50#vYJVt zEz#5W-z+-5^nbsvzkF8zeA-G&{Uv27f8kmn+j|{fbk~#wO7vzliEl1^KIOfpq6&9? z8E4jqKDcR0e+b4*)|T-M89gPxL5nST<$@BtUUUJYopIeB^;%ikP$=QAr2@$Bb(-^z zlXKEhsRD$<-+yrEKeY^XeKQJ?2PoJvl z>gtDqS=+)G$t*0q?OV{*HAS)MKS#e)JTf!&h4yV~GfW#Yyx-AraW@#}) z43p!7em%Rw-p6E+H9J+?;QGmou-L+HWOr^YCwRYREE_HWLrLfE$1<}lw0+)6dVgeI zZ;1K5kqGJJ5m5Cm8K&ixwZSTTf-W8aC>1|=?z?3h4GlRQP9Vu-Z0JlYDplS?-mi<9 z{}Dfj+_RAJFO6Fu84hn|QTJkS$@wB1{ezOtZEaM`5^ zqy&Wmt79tQTJY7tuksXW|eaRwsfk+t@3z-qu(btIK|^+)x^+#jwkSFH47gz8tcVOrq<% zifp;CO)Be8QM7(oie;`^X+bSzw-R`?!tj{r2(L(n&IbiEOcl%g|1~a{DW`gW=dxXQ zC>UHvscykog~S_};;7AGk!_lh%K*zd<6x!0-EYwFHpS8W?4fX2BX8>kNvYBqVkkNr zg|t1|B+=`BV^IiAAQ(Br<*(azhxJs+mP=+PM#K~*wc3*$C1)_J zf}bUw7*~k{35w}z0X_WO-F(#}MQ8`OE(_++d)*$T-HvP8I8{!x=)18-Kx2NC(B)N#!_HV`;>Q zb>4yr<|~gcjU50FODNdUNA}j7{&G?GOEdj?_4d(xJB6a-C?uNpK&X#uziN4w(1dBaA5X_jU;MnIq>9?oxzTSsm*5QfV1Dii^enL5Youe;Sio!@&sx88PKAC@&?lZ}6<9 zD{#?)$#QivNFfu3HZ0f-W5c(ZT3q4kd&|_|#uPb>^ngJjK94tVmfw!qx0V6pNUk%? zj6k9qhikHJJFwpypEpBHansw;$awCLonMaO*RS<~RD{Uq9lj1YjMG!i07CKD1G4h4 znnig9t!|0{bxmQIAz2_LG;#$YHxm5C_0v|c;UHPLt9t=e4#`sWQW@|^(f|E-ae=!U zP3Fh7HoIf8JxU*(9+<#z!`H}HhwIM*W8RF`2qHp0f_e53+LtWEoZZV^8gY_x^=Ylx z@iZ6TeWHW5F*4-Hn0zHy4KSjpfi)LyudKYk<=tLi@o&Mqy16z~2Ev9@7j*s5s8tn3 zXhY11dWiVuF}@aRv4vGvDZ3% zcz%^zFgvc&s!sBd!O3FlY*8ooZ)Z3of;=0{l8SyTfL76$iifC_L&!}MvG1c{nZeOI z9RM|DizMhq-fYy_F@en^6uJQ2F18q@VAPQ~N5Zr8)S5IsGnM8iaD8Sn#i9~?nd;SS zPdSm=$ufv;%6J<1_HOs*p=Jt(79Jx4FY4|ulY)ZZ3gR805sw1PFYSBn-WO_|NCyiYO^xcNI4{NTz!OY0e87qzGX=&PS*P81;Uo!@(s@X!i z&fpur4&{c+ddeJY@KitRJgA4>FR#C$$r`;F6&k9&CGL0h{hFow7s)&<64{ACty&Ci z2|c^-ke>oTGO-F{!0$9d(T)fb5T(m%t)g>izhdxt#U~uuaQb017t4fVE$p(m1SFMz zm&r)W5Yjxl24}aO89?%U$x{nu>&an-$MuO7xUI&}&R93&>YJ4EeH@gAbRTXsDSkn} zc$C1j6b{Zl^BckhsQYC~LhSCin0DX<7ZkeD%q^38$=N&%hdVTmxl2!o)~(b5#HS=& zYhup(uMb_pBl(|a21KF1{(hKJ+VaD3U#(6}FN~31i=2)l>h*YL(4PKjOfxz{+5@w{ zot!FLQ_>E@x0RfprB%gEyvQdHh4BV}nY@yo) zN>n={gA;cc$Q+vFwD`i3);Pjhx$%0uN3i9Mn2A_8LmPBFp+ii)9(u2%4Q0H)x(Gw@ z;(i=tl)EQryuDLQFt-a#U9q2-_q@9#Huq29mzMbf9iENilC}0ssKVUhQTatmzAk?cswAsuEh3y zo8XPwW%Xg2mD%deZgZ=o9!BR%J^GAS<#yh*L*szz{#d@xAF#FfY0YgL&8a|gBQ9td z{F!PX)m?^&X1mlz2$6G>c#4BYs}?o3?aT;2%+12O>|#H&E74fl=L?<%mGDoR=)#h)TN>@9Q+Io?Pv#dY;>G!x->FY^< z5;6P$8n&c?WsYk#;W+<3a^<`@fAIZ&4lh}%wA#iH$F>c#zb1Mmnzaju?k;euF%P+X z$GSm<%}_!(2Al?yjv#Ju^0YyYomfS4!hJTUvJgMx$=K~9BpC&0t_XD+> z?h6rF*XQQ^M)ea%jq(arfb0k!j=Wb24znRf{0I&GI1));l7^n!9WT1x2g#G4U$wNf zmSl98F*W=IvA0NC!oU_L?tq%Y0>6=iEFBe19Ea7*{`T@o=i#cOYkOpsXP&0(^FM~1 z|3R)FGB{j5X)O&DE{Tf!H|tg5QN(=;ce>}YD)~7plPp|vXi@uWTgbxYiXS?2!L*tb zqj70{(eHmUx6a4!47p;1{Uoi^5*G+&9no|jCv^LYv(0-Cx1bhSax0j!(4v~eG1JIv zK!5gx5`;av>J%;c4@w=i^|L}OH~cqH-kz}EzYTbj$LiBRhNn|c{y6PFe6`(nDZOF{wTO9$(BwU61xynd^c0xZNk2|t*aw;{w$f0@>v_Dg+!e4n) zg*~`#gLJ$3XZ^|d!uR#I^k9g!)6!_st81k;*Zd{EOv4oUlNZ8$(#%hc7HO7QPPdV? zY72Wr9yW-alQHt=NEd6iAJd7Ki+bjmiS)LD39Ny-ajSGf2&K2U8?X! zRU)v_mAYy|BKqT?k`Zi#4Zpb++G3TOc?Zp`YHkIlXTOT`M2cnV1Q+~3;(8X5WsMX! z!x<8YLEE>-vL_Ee@GeXli5C5KaM&Kcd55WB|bx)e*ud_DzL-Y109v#h!SD z51J^x&26`^<9l>2LZ#s13&U&ehOaLX#_ zg40hv9M@mzoT75e>^a{yMp~8%cFC|oV8qXI+b?s1i(b2GZC^n|j}2r_$vy{#UjXSWXJ%hhDgv(ApoQh; zNmfh~-t3rLyUqA8#e)L4_a~%|KYKRpI4^h=J&>{4hZd^*UbRW5<(8K_`v4*D{ZXgqL5=C;>YvEW4y&%^M2GK%0gn`q}i*?PP z&qg_Pc<2D&1wZt^GM9EFmAoL7ryKu-{N3=^T z6#soE+X!t$HLj?ZX@#4)p=iJ6>P?`PHU=={5hdp{M1N)=LPP!h5euu5$|j>pd%r>SE`7!R_8-R_{Q%YR$W}{xH27p>#YGe~m3u*@me`wzv`AfC}pU>US%4oIGDN ztfeP7ZbSm%Z5|z{<`e-DU=gxNp4^;{Y4Um(8|VCQ^K(acFS9Kn0pjpjViF(Pel>)w zu5sL}BG19@0%mf<0o4dFa(fwV=f==G;N@;o({uc?^e_F z@;^nU1TPxwAsikKUg-g z_H0xHHd?XsIjAP8Xq(1wZ~4`~FIY46`j>jG_vDAteq>j`$PvAbt~hQI^W2J}--KP^ zl(XWHB-k^=eU)SM?=t&54aBkYDo66M*hnd9vOJmm9=n2KE{v1=C$oILj#*9+GN z1}N9f3;a_rc(P`@n4pP1JLXzl)&4~0xUKIg-x`*!s-_et7;fkss)z=O5+0%M>M?4j z8OB87+RC7Ib-qCr;o{3wxkcl7j~@sqDw1-q{03m+ih)jT(d(DAH9<5yl^zuzL-)V+ z<%;%~*bz^$xU6=dVPl`TT^Ckv$T!$EF$c=PU@py{0s|W{@#ag`FbmiuMC$Lb+LW*u zFCBum+vEx9vW+fv>Z*9|E%9nlJBO;zuM3gUm^fwm>3OfZ9~n(GXWMY=J1Ti%^Ft-kTv4pp0SG^DXN72p&ILGe7k1k8Gory%wm^ChLj zITMcNEe`M78(17L`CRm{PsUd14@7xZRZj)I`d%khtzLh1nFp_Yv4B}Mtf8Q@>AU{8 z3b|Y7b2psE!0LucUt?Eg4GOnX(Ft&2WSW4Xg&hDqtGG8Ln;6H#ow+6S zP>|7GB7yO-L7ybgRF{`as1&4xGsA-?SJ{h+N5b#=E#d|MjxaI^dT!Ed0zL^>Oh4+H zCFW8E?mG!MSDTpC!cFRHR~Pqb2c!hNgWHZ3V_~Q}B__Me^XjqkcN`|FrPbsDA|HAqW!|=b}pvyq#nd;|ajH<@&ps+XUWQl?$dPEw{n$L1`DxDJyUM#VJ zL%V%W`|7Pt?+jE6yub;cdQ4Iyku)6aPS11PK6{iBo`;RXs_G_imkRJ^E_%ZWZZW+g z-LQ4{E%n(1HO3WZFi#}Bfm%Q1b*)ba;}rX`a>OQdUA%u5vU^VhJ4k*SIOH^Ba{93^ zb8Wz|ZAx`qlcY*e#YcrCmv#Vw)SW@!zuHVs2N(O85VKlO6nne1F^8o`xBg_k$#aZl z#Nn($+9zx5)N_96W@!EX#R1iA$nzupy5k--9HqxCy4(Q*lU;bzQRjVSj7R|@jk46f zspVx(O&Lvq2QOsln}B)=ytS&B9tC@kWTaD79eqYt!zrQ2Ss`CQUQM9aLuYPuqJCb( zxAWF&Xy4l&DS)2uTR_L9r`pt3Kv(9}!XR>oQVzmA~r*V@O&?-kctw0lddrgHlI zd3S`vlP-L}qY4YD%sSYw$pHJd^NQvPi%K$^eXr1dIarTx6wjG`o*in^yA1K{*>$7u z8H0FS($2E#i(n@5voBYu>D!V`8P(@zvfqopuYGg1(EC%SkQ{Jq%xX)A{+t z4ZX}STQ4r3bio{&l(QU>X7Jp#Ge*e0>=7?&?Duw>p(2j4GQ_E_YBj-(q>XeQG1Gln z%n+rTbGgbJSOUKbJC#WWr2j1SK+L$}p1P03Cmfb^XBru&C2~96N-s2xt@o^U>O=W8 zu3>-HDQC}mZmit#Yn}EcK7~B#g&EufERFlmf1NA_Y_F2%@Z-vamwztSMcRc z_e5AOv~7i^(-ANYz;6WJ6>~Hj3L4 zxnD2U!ZnVk5q%>f_nA3|cKUrT73lEBGmg79lprbV3$^*|A0zQ+-%; z^KqZ5sumA;O@rcj<)h{JuE8@_2uaFdsz|rg(H8V?o*_onf}8JmR5-3`x5yc z{;W}&j9=f4iz%`o0H`asygYrsq@<}N8Q?aZ6?>YAdb8*7@|m3uT}XsJ$X7feO`P&v zHTK_PnVCV88vf+h&oW@aIKPScI01|u7epV%tiC?PxU9_3h^ErGCmI){>P4jS_$IZa?n;^hMF(P-o4|nKR22#Elag;V2;BM8pE=?KE24E~>6dZ)~c{_KS#d zIqdwLGu*ZE#{NwrtRVh3TV$$8#FUb@s52Xqi|?lHR+{en!MryE1(-EYlX05w6Eb(zAt2 z9`kN|9LeY{YQAy!JOHF=j7rOm=rUi96r)fpKrKHP)|?E5Eh%%dzkv8+zdQK{FWP*B zz63NHLKRTluAD;fymLh9e(6dL*SD8p{H%mh)|@FIeRWft03WecYs6)4g18fKes)%X za6(~%kWX`9*zTE4P9KjdEIW3`@jOObhT_ymba37X3u z-S!VK{t9^(I^z9dZJ4FNoYS0=Mpt52s$QfCyevZmlPoMaxP-%A`M&(!+MXDZnN;G? zdT%I~E~?ah4*kUz$!6fU!;jV6w++6>Fd0mr-m=&pgWtUc;`vEPqV|33Hedf3l z{y`ju!t8fG)@{%ge4I?cze&Jb_~Q-d$ui$$iiKx8RoA&#l6)uZRL}x4IH`Jqs^vJXD5ZQvU7gD{1F~3 zW5QQ4vHb(*>!Pws(hgq4*53yUn>jxJ1MXaj|KiyXI@$eVuL199sda`ThfainC7AA% z5HpPjm)Z2S;Q-k@n+J{W3TIbB#!S5)B~3MEB>mLnL&vRpe{c`{jV>cPH+Y{g0B%FSuw?D^i3YZ7c?6 z7BZP9VW<1ZFiY-#cVvE>n}Kk^_0o<)URrDtUbhXm==hfqt&qa3C=6;d44bH-_BS&z z2Z@_tnXJ_Ir&R9zbqmDST%LX=nkE73M$UG8uxznR)lp$Q zv7r-SZl7(Ymz5W7wj2sY&}=>4LYs);6RR!;S3h1o8LaQl{V&Up4?7SA1(;gUrE69Q znWpBwq*@usx9k}U2Gu=XTI~Q+IfWP@ddD(HCR3gGA&Zb`ci-1#Oml(}+0+FhcQ0fQ zg|vS^GzBCa%u0%2At|$Zx?Qy|myDct?{}759l&dW*lOCG>oq50k_=+M(*=m&apx{hf6RDF)!bHv$47&D#!&bQ=O$)CrCQQB z2Fdo;Wy)p~`vek2rI-(R#Fd5vL$tR|-alQTMh2u0m=oH4Au<%#OaY0PoElqk#tudv zJv-5Z#LP5RwjE6C1z_}Q8F=>##thGXYVz4x;n6FfH0-4$J?I*Fp;ETq`1$xKo#QSdv#Z`5z4gKr_C3=A`YGB z{e+FCoKj!e2S-&Fe}LLEns~UxHGc1L-68IOIrZNXiWSVnIut#hq$t6$8D(0qHgV&? zL(KIxKu|a5cdhyz3AB<$cb$_DB}s$XcDPUeLc2br_Kk#=0yK>gR+8F2pkOI-ad0l~fr{j-28hRJRAkcH}J zVsp(9(L%84_HN0Eq(lGdevkSoOyrD{o{gfLd`*RxB8}@Jcv0Oqx7QzlA8;?+ZljzA}J8~|u_QPEYMdH(khiToTAPBQm z?7vZ(+g}`{{bIK2cH;B&Ij&2Mad{>Z`A!-ek!+S;$M5;u3DsC|=-a}~T#%vZax6`8PlT?=S468* ztdr)@o`fGbA$4DF=1No| z6aBQ6LW{tBb8Sz^z(_b{Yups-#L36YvDpqB`q@CO=YyD#)p381C$1+d} zUp{j@QDf7&akV{!aTdVM>Bnqs${1T$!=)V|q19qY@}$RHgZ?uXrlt;1&I*Q({NsED z`#UR?eYPP&f*;T0PSZoyg=Cx%i;gWO-upDa*s$XG(IXF@Z)+eC4KGLIIgIksc-HnX z1>ZIFJ9m3yIZodj%F(=Rm%I?2oAG4jX2t&~S^q5QFdW2@FCaFrDhKYCCUq^L2*~-; z-_?p;&cdhJy)UDyr6{uRn`LW#K>#)AF&y<6%AJ01qmB?C4^tjFW^}%!veK;Ij)<-Z zOvxctxyxo(@vy(b5OzCrL^AY_gfOh(q#;A%=AOUkSZf8sF^z}0G~T$SEk>*wmi1xO zpY-;V;hQX?o6u9`+%@8gz3*7_yoyEZFT{Q7S))XSPU;*XVo~fPDpON}W!4-3j=t`T zD|^l}1$|fMH5}x#LrnNy5cN)WBHX+pJo}J$?N4yB2&0{Q*ZOl1$JP4gtfKT8-Ky^%_#UQ;432mr zJABcyx4F!qzQsvEe}CZytcu~xGMbSMwL!iHxCwgR94n1bDKlJs^)(PBVUm65wMQi< zX!5?J2D%cLLk1NW$%v@ohv*KANk3N>ODqFE!?d@57fz8b6_k2L^lW< zaFukQhN*Mkym~Xcq>68+e{_WWvNUq8KYWy9KwWH7tcQ``#oo+=(5BkcyPi+?|1us1 zTWnj1knaYm{iGFjib4I*9N-aS0I1BIhoR0JNUovtwKe`Bf+nzABRwfnp@+9h+1%N4 zLQ`(|1sd3l(TX&cI-PFCwJ&FI*I*}<^V~!RSJ?fyQ%qnm zBo}+&A6AZCwcwec5ndL)FdqX(#vT#y(lzcs6Wc4KC9T!souWTDXtxC7l8plW+4je` zck*Qc;oxdrK{Cvrwac^)ZtBkaR6FjRy)Ii?WudPxsWlW>7y?mqp~7Ep*=+P~(f{d` z7mPw1^+IPs#|_oPX^i@AugY#un{rbRxU<0AFs(C{vxbzxVNv=&LU4=OQw*t8BbV!M z6a1p~+Qd{=%y#``j4ZL8!}H1y{h2@X%jrVp&k36Ua8tTBL(%Ho*~T-DjSpYr2v3lt zkkUxK!&Jah^u$oax6T=SrsvfxvzmCHA{#~;R`K&|GS0Okx-)fZn>r4k7p5_q z&my3Yf%z9*oz0eaVLS~(ZIgnkLVw0Bi7fs~2ycj7x8e|Ep6_eFW9j;TYbX^T1EV5c zR=WFQWGBS|oG;uKrPMLG)i~pv@-~y^GJW=VGKzhpg4P$1JtrwVWMpJ4F}RlXTT^jb6^PCM&l3k>jH_tE!$?uXewNYSb8LFuF5f1{YO^C9Xa{$H;ga=W&CDtb0sv7Bu_LRoBpuv{MqKd%y(jwBctscJg6jF1 z-#Jl}^ci)6CcFa}Gh5ir^nyTiJ@@^MgLYW7I}VweW?HV#G0kk&y>SWU6nk4Hc2;pB zw!nG#q?W1RHWseekWI&yjR_qD@qshC}<)gJxQ1ajF^D3_&B> z(iycsQve|aW)$7#-1F9pq2<&^>Sc)o@)O1=yKD|YrL}lPM@vwKRgfL7V?Z@hi=jgXj{gDL9Fqh zy)Uy6*>p0~QsT5t3B^L*y65F2KX-DI-7vYfM;HdLJYynWBqX;o26Bt)SB*l8a`V-%$O~0h{O>m#+ z;74**U~FC1hexb{^*L%AA%l<1iLAHo?%_@Tt6%JU#Xhgp#1+0<~y7~c?ysjIO^oZHM%wO5&H1F>>17uddp zkx*Y2F0o@!Tw0WSIJ9?j)P^U8z&BeI=2rPUgUX zLEjUzY0%K=7q>&WuEZ3spvKD-S%2VAr3WF^eWD5gyPEc`s%X&z#eVs$A_^tx6~i^y z^k-)tBmeH-?}gykK_1{kUZjBj>(Rg=e@bdbc-@t0ng7nSZ<2&E8mmkf_?#xmAnJe} z&HppSPv32Lc+isD-`mtIfB0l47LPvZUx1jV2-y%C9z zm9cHx%Ex0*cb+@o0@j4uh~T`NkzyRFWUX;5Dl9lKG!mq^4{9kXZ7HD+>6q|T#ufM( z_bHN6g?-?Oc1%sH6*WY!WH{6jo z-Y!m2myNd9F#BqIeFdKv;^tROH3pj)A(ey|^J%7lxXMR71VPNON|2SeeDJV!hdh*R z$UqI#37*pL2?ArtKF^p0#(Vcc@3;bXi*E1x)80x}WxGwmr5%`d`&00{Ol&>b_EB&T z+(0>9bPj*$_r&sV#gnRaPlPLmS<#PY@3JY-81+Wu)QB&dF}skxeKqkSxe7UWoITtNsSq~ssfO}5uHs4LHYo~%rr18j6>_lw`V0AP{AYTIX({4yE z*5+=g5WgqmIm!N+XbixQ5q>pfH4ysn(^mXYZbvlGUe*A;pl}l@23z3i81SQHJ2FZx zyF{P%?sPc{t^U)p_-2}>RWIg-TY_P`Lmd+HZ(RF$AhmUOU8dgzd)V)0*2RWr!ZN4v zEMkB%YBksLikx~82_tHi;cm&Co7wA+xX%gM{wuE{K*D5DivD~jOaE(+WTxr>H~~&L z(*h%LPHr29c>~5sTAI8Sdt4@eF-@?;blo}@_}}OL!wzen9nnYTlC?a&^m@!$su(qM zG=6qG&aX;CJy(}e^Yly6U3wMbeVs}e7Nj`v;utM#^P}G@g4ZH~w+H0<6phHHq|~x; zM2w<3A2xHFkW<^ahlrSb$oVk*3ZA0B7xgP%0JjII~ zSZIaG*IW%%N~Lxqf{~X${E7ck*)&bNAhx=zbho$4gMA_-S zj=V=f9z})F?{+vCvYCCMO{h{yDh`Bt-Nf9IdZEx$%WL7X{WNYoALkM%{R<}}MAt%S zaR(r&mr)lgx|3X#FIFV9_+D!QQO8n3$GvHk*{Tu^CUj8@TCHLavi3cc0ta`%94_ci-_A@D z84P-6co^=HLC(-EPj{7mkGnq(Wi|{UD%a93Ic=OsSgiR54mBK@l}Y2|SB5|Zw^yr4 zVHjBE0>-ayv2(L!FzX3oaZ`_T3T4XS5r=4uVG2Jb3lxe60F0d3+;je%78M{+v)ehY zLE6V^T9N#QWmM%e6#aZ?h)B{^oq$#|z05+^PyCQBchUn~Q;61nk65R( zGv&eSdGnR4(7=r4fl;KO_1T5b&lFEhG-$-1bDmXAl)kHB{bn;(%r&chuq+QrL*hZv z+kXj)Sj9?5H)87tHQSjtp0nb%+xh8zj01g-X+|>=9YnylNRt92u1kIj!+T=xNi_pw z*hSPb7l#kTS2)o8)$4o>6MJD(M4gXKqR&+Ev z*DyGW3O733K`BSH4~w~_8j1U9V{Qdm(%NO|k)$kE;GL!1p`U51CcBGD* zuj8bGCR7Yjv9VcjXzs7ak{tI3>Hq+yfSDxU_m2Y`3E8Pit+4$zPDpXhY6ai{h*DI; zo0~7`si~b8b}nztT1C4rtWyw794jGu0_h!OHiffs{jOav#wY$vz6s}_B;xnR*0IKQ znZrVYIeZIA*ZjuRwEQ(xkfn!ScF|?dxaD_lb3z?$yI$(JXPX8L_=$fZ4-OCJ0=c3B zX5P?skn^!mL;hAKuYV^l`rnaGT^w28ak?bsrF0e+s+Tv$!3{Cg9Dqk zKwpm*L{As~FxJRjhO4j?7`d&RLq(1i$y5!#TF1m+T}Rz8j%$S}wz{3$uQU@H2PRpn z;qDiosjHfrz=biQH?X0-9@;8-!kjG^wj>waRYI;iQ}Oz`3{TBA-kyzS{R;=(b>&EX zcM?>Qt$kq9ESwOka%<8KJtcLtT?`7CfZQA1gsI7b=XSy2Qe&C-80_**6+el$d)B?L z#nfIN$g500^r3UEG4UrMwQX;Xi!)Z5^=ia?Wwg-D_Wog4!9ew;F*&N0%^3XL87?ai zGv0ZYU%A&$tRzwxhC^4Zi*9!m#;9G1SiN2MboxVgrxe8%-+%9d8&?IE3(H{=1K^-g z;dCGrj~(FgG3%LZlMx9ifwCSDDiusQ-TYCrlM=NWAOsgj!-AU6l{(OPo{cHWj%|yo z%`hWvvRW(eaLeKI`sWrUuq?SgYVoq&9M&WXY ztBkL&KTI=U>}gU6R~_}r-QkNlGw+|9q8F!N7E^FlWDfAR&4id{EEak}BRCbpq}xi3 zFlya#U*^;E1Pp`2i^*bwIx6knJUD#$?~D8FQc2JlgFnszKdhytyKP;XR>iG@ft}A|Al;2K(oX9B zBR$wX(E*7?6uDkBDIN(|OV9vHZQf2Jr0(J1DxTa>6Xos;WVBS?^lDf#W-Xr!kO zw?_uz&g)R@xe$ZRy+nm+MhIAmm2dgGHg%KJpGE=24+Zv@FX}I=5&IjNU#Oo~Xq9fnCXgtYWM3vax--4EJxSVO zs{n{87yIT;3V~a1S*c=rMexu%&#EsomIzzNIHsgL9~F@U?sKhs@d|G^Iu#vvw$QC{ zB@!x)xEbwp!M0VKgLbk%H0pye8||cdU6Vk->wGr!B5v0T@~oXS<#$XeWV+`#H#(!d z7TrUQ9@@7Z9#7-MWV%l|dI2#e$weojNQ437wg=;w*x z$NhU!d4QC+e05>UXS?-@Asbt{>S)H%xcyj;^p?hVZ=*sl^)&GY<1T(^%@t2rJp#t>W{7 zjkPr^S2_=#EXtPZkaTP41VJiyb;r2}xh-zi>cnpwQWHIGWwCU|=sAaS8`+2_6M6*z zXyRUVc{0In+$LQ*jy$2&kJSm}&j@iX{k(5{%|D6fSYLPy0GM#O0{lUj(s;Zxwcv;- zkvds}4E@&+;Q&C<;K5e=`$7lgv)Lzz^frW6?C*G`=g9IIgqh&jw^ z9$%~?afC;v?(IOs+S)KfD~6TL`mJ|Qa_$*Gfpkx{9ddW4hv&8w)-eNN>9|+;0D0%mccChX4W|2Xhr0P%(&0M}?T7$Sd_u}>R4(r6Q zad`n!eu7Py|GvD#1lAVX@9Ow}q%7{l=CQfMND|0%@buh}W1NiICXx;GO>@{?AcFL> zlwl!?Q4BV(wA_uTrxvb0?XF7_#5!o<8I@S=@^BXL{Oo%|{X7bdoS;E>K|wA&o*v&7 zf;ExgTQguo9&oj1B>olqS+T!bKG;FaNZxuhO88I_wSY>PbKH6O+4v&xF|vVOIB0{G zb}PbOtK9|B9)4+E6uL-!O{9NMl=Ob*xXmW8SLEqVu(q#>T*GX4zUPxh(}e9dUUAr{ z9iwQ4s#}DDWYSUIkL+>`)#Yd8O<_-Tu`iS2XD^?2qkm*4I!-t%c$0?1O9M_D!*kia zb~@>Wg|*R64lzOemv}zQ--KmiKO1`UI{ksF4$b&k6;0=Iweeh>r|p!ls^U>Ri2%Ug z0MOr2{ejXMrX;TPB17)oy<=>IA9Yf{-*j3hNj>5TjR~&Lgoo!x3#Sr3YQtvWVF(@1 zmQb0`zf!d$(|bWMZJf}O8P+Hq8J`RVM`fI&#W4!vc2+s?TOnA~{E^O%P3r4j_c z?(gOLTb@0D6V(30mCpnrePCxRQNj|fy*i7K`kVUvTH_sChJ~#wF10vQth+9Ca}eP6 zwrwj`hd6A=4P{H7ByDK>VXpPjb1%8ntF2R?2N7IK9a1sX*gt#oDb^me0nTxSMiVAp zWzVvIH%etFThx{cy7&vzpve1ofIc?8YM_x_VIjJ0#wh7kEZkBB4HCU*Y|8{4!uG(sxnky+K=KSol2<|U52Rp{R00f2^x-jSv0zd^_)}nqh!w(?i?vqSHAM*EBRp0^nj{?zuLRuAvj zqH^$iqJ$L<%zZMPE4Gv5whr>=RPwfcc1tAlt2B+J2&VA_a!``?0)T!3|+ zrN&ALKI#F<)S5wGP_9CA+hK_bL23pQiMaHgxwDZCv%=+m|F2^?1-KL8Q|(rYAL7BD zqxJrKBLbB*dDN z{P*0?mG+WDV;c=A)Xy`mIvn@}l7#9;CtKGr3JZvcx<-j?>IKQpUqk`kX^n0%Y`%gq z@x+EPQ+uh6PC?ajQ52F1hDmOS z+?;P6I%5G9FbP^RI|mVsI;Yf#I{NPWlqOPgswFeA;z;I(S2!vc?~M<>nRE!vGx012 zNszAUM5p$b{BdZaKas2ZjVAGnP+d=`sd=&_LvgDq!y1lC(9zvK=D=yiLX;(p*~jzp{9Qot!1b{y zj7hH7V35ANzn}H-VrZ?h1`hmae;F+qP||JGR-e(J@c#q+{E* zZQHhOTVMLQ_qp#k_89xe`M1|PwN}-vS#v@bM1(UCrBygh8#&-p8)+_EM{vp-iXl%p zmJs2YT<|upp<6En4?;O|IG@1`3=0!AUvcu1FXlC?;*D}tKPFEy9ya@z+2nHc*lUQF z>DNkl*>xZ^imKqzmGQ<&5hKxM;yz$D4 zTr_o?1_YQnU7Pw}*n-869~#b@p?;xbu{># zBde{9Y{-hCk#fhvrrkkAdN2_%*}r+Z+-B0*~#ZuUKAx4?1oO6>@9YeGn_fZ4bfBuDnch zGUiiAcJlk52xDIbi#qGY6NkxzH3Tzj#~D$v`8{O7X<}d7Z+G!EYemIQ%QnT;xn>Y}4+xos_?qD*`i)58I$8$;pK{+wSxYGm z;1^sJF!p&VLb0iCVTM(}zBIQMnZ0dO?sL9ikWM(nPD;DkO$-b|du^au!kGh=ioU_e zi|zq^T#?}Vp{bOwdgL!aa>GoK=%`rjB_gTgF=L-QN=@+QN}!Qkq=d znQHVWChkW?rYsof#P0zfN?Zv%45k6)#ipo9u}h$tngMZot|jCjQr5j8tfN)E6@yQ@ z_$%P=RZ$D|eZo0tU}>}(H6R0q7{Iy6c~P)})|5RBL8`e4$NB|rN#@ZLic&ci#9?Xl zR!hN_r6*B0joa28_6T4LTC!3y1O^hliqn6>PZx-PCe$oor~g@k#`Lk$&(g$8px2tf zxx=Iy)~l0dhVRHqGE$YCl5AOKsE*$H`q@j-6Es7u9?s>Ovaa5dDDE&12HogrS_*R{ zDJW=)FV=Td**|5335GKaq8dVylizeZEA#hT7{X7R5+uozwk}ijj@$9hUYl(w0288> zbd^;bQSR4nzM)OW;{0(rX8g4xZ}1&&sSf6OfCai+Dk{wcicIx8^>_ES!E1}{=M*=rOVy7l|F zcJYC;xAaHel=Myk42sR%)@Qge;Gb^Agjs}F**~``P+Vz7c5uo)YIRYRRI0uO2fyvF z8^S7bRz5!w`g~Ey#kK9)9e@0(o;$EJK)kInh^D-|lNlSaVbob2%^~{;<_imlj!j^} zrS_fglIVA7FV`v0r47ObH7&WCYR3|ChClsnlA7+ato&>&^^#P`%a*93s;&dgjoGxq z^`chFK%8qI{kG9!-Xt~>1I>c0+Atpvu44m5 zSP;S*$2=cWVe%E%a%K^cFJh9fJWh1fh4Z6-9BS%uJ5 zLoA=Au%Gwv{p!MFp4>lhd+axO3fk3EF8>(=ynWhzb?30p0kyu5-=fBMOS-G13+N*6wyWEGzogFs?BboNX_pIa zawnaztvI1k{w8(enHsWfsRy}a z;%P)W(wxlCw*s5V&n^#})){~D);{r^s*&52#CJG;$kyNUe7g5mZj-!)ecAowKe9X_ z4L7lAzGV2(VE1t#WPd%aB;WPS-LCtw!r@gK{7TXZoO{~=jC#+Smn415y*Mr`;k5Js z#A5eR!0DxNIId%_&dIr9&F&@6nA#e-+`6d!&+X>+H57*8DpNnlR^H7V$^SidPaZnR zb=3%mgFhnZ(H$kU6l16#d6$_ljmHD7T@T&!b~G|a3Q%U2{yOMtyLAORN4N1Ol1~HN zO+`fYRr!pc+xHy)(jeSAUY1)1?w;9XqK2jrSm${LFHUiK1njqN8$39Crl|TZ7tdp~ zYdm~LN=wilRb?hl-vaJr6@z$n4|wKQ@9SA}ZPP{LPH5(4`hMJ`u4@jyH6ACp+q(Ig zTTAq76Icsi_vo@EP*vll>bbjcO0)3h@vAfSuNHtAc`~u*_Kt9xUi)>L0y@0E56@ml zF@bwXVHwe%bzCO;U=g;+4J@j;shStnHKc0Jo5pKi?;H{oxjj3*8lrUBuJ2$YTRAzo zit*7|q*73d@@f77Xf{>_Lsdp&B6Er1JMD_(Tf>`y(yf^SinBy*EnfVtdt8`7Lj>U^ zRi(l?E&zu^wlZs)p8MR(?8vq!c=py|mkgiMECkql?Yi6BBgnq(oI<}*8Y(tdlOeZE zG)yQx#8zzvI7dyymOFG->zzaS-u}2PY+=<^)HY8inAS(nuuy6EcJ4hig2wmbuPI<& zMc>Ug=?R@1sG;^JQMYTd!whH0!%KTd8ww`XtKdFfFKxq3S%`ezXEI{VeE!8$;f`;h*W3M1HuhL29G z!<%{CXZe|$sjlGfLB0LsZvb2@jH@8UqU_ZwB>BMKMG2@O9rmsrI7G>pdFTIBZ>xlWKfmS4q-GKgdLK=M-y;*|uF&}y{A9ICVDOofv{i>N=a2z@vi zkWH){`kDS}fFSFTS%P}birDQ74+R`SK9Z8{62@Ix@e6e&67=+jH8=ol}~lo8vFdU2-**hwF9mw{83nR_#TX zZPvxDqt6#b_tJ25o9KI;j7K6Ij2`?iXz_Z_nto?3i<+0T`GN8YjH~K%9{u_x4xM}C zX6j~wvJYmy$c`mvzx5N-OHgI8rUeUWGYLIR@JfnNbkjodFg!=>SQ>L5C(Q0*8CL;L zCB0M6BW!_F@mrG95fNdOsQQ-`Y~WEd0d0l&0bZl5rcxf$;{d0ZaG-Q__f4ZFijd*Q z4L1Qa6Zx@i{G~SyAIL0ABU{a;kGsqq%3;Q)zF{_ILUle2dpirt_;adZJim;a72&ui zI0f)Dq$jvOgWbo7bJmXzQOz_E3SyBDXUC5cCVdf=p?P5D^C|pbzW9cE@e!Cksdcn zDux}N=dDU@xl7@YRX7fhu7ZJ>U8c9B()$t(jcZWvq2pzzIWl`t~8l5Lo! z3Ddw;m59>HG9WFhj94rs8Ne5atD|ZgwT-yv1^IOmvqdyi1B;&T&`n;Xv&}oef0%~G zbPH4k%xdt<$a_-*(2Up%*zMqx6E4V+Ormx&+#hXFaz7vvQ0KQoWi3T9Hy7)6_nyBe$BP5nQ}X%>}seFTKc}peIFRpK65wZ zmAbZdsB`KXw5zd71>mZ+*#h=bzmQS;w0IoxZ66_d4o~0vhZJI3+FLL z#mJAr7PqG1qO(v_F6YhQXiPzO8Vm=klc?RKuF z+SFZiB>fgejrxF^yANH5;|6acixpoU4#R&-ahMU|epNXeo3%G#zmdn`wJXB?!s+F; zv?zkv_MJ}2Xd@2&$oAw(Zy{UtP&(z7U1Aw5KcgF4;+};NMnXY^WwK&y6W`932(LUX zOyO&9Hv90C6(7}=NlJ;;yjmsda6S^bS=0xA=YD|#^2|-;Z z(s$l?D@US$MC~H2=(r9hbskDs|Kct1-+`R-rtBZncY2-3a1_c#FW{+v8o5*S_aOQY z6Vip~i0+qy;Ta7r;|fK=GvVb|)AkY76iTHih)`3zxhkE2=>hLri)V+785&JN#pMv( zv_XRl)=KHQW|R&QB#*FQo_ZF*P}x>b^n?Yf4F1f`R4ELTEwLLZ#ow zV#*r+VHf_`i)#fH5}W7&ve-Px*%efqp9sav79v>)x67NL;}M1ST8rx1SNMAEG-}(D zG|DhQ&}15=g7Q2rJ)sa61{Y2I$wk#j-(7GYs;<}{2UQT z-sYb7O?IsjLzefIBZmgVmwspHRiem<@!#=&JEi8X-H64y6{=m=`2lTKU zSUViDfq_!VcO^Ly*-27OY^wg5_|&ap{K0JJi0xl)z9`isrO}gVU8l!TaE#?;IZlWw z^JRlp6R;j@k@o0xS(E2NWsgkgKeSoct@}1oY};NB5OMe%zHf*w?sU8+)@D3|TqgzQ zF7>|~@dq|F^2gTXOc^Sfnn9;Ih27~4?0-mSTg>BOTt3~h8T%)W_zg;5;l}mPu zi#BLUO?Qh!%nMt4Q$EblhJm9-afULQudky^mYAOnB{X(aFZL&q$fU+w zSzYd+kSlTsZAUG$O8EJ?h0tSYUTb?D+xq$J0cADYjfs+|8Z+9C6kKdukPNHOB&BNe zlM<_4SWIS0i|<47MWtkWLjDefUN!PA@!iB;cXU2~$m=IO_g~fs80-LR8Tb zbA6Z*FSW~ogOIpAKMci)BwS{Wxn~U{vpb7M1*G#CIAM_|tFdWXO)-Kbf&)P{4+669=?o{NM3HAXu@tm@;Ql;zD^GiV`6BT_@5`&)?BEb&{@DgUe+(rzg zSrsKf2}&S-n%+WBAFl(^yq_0`8$m`N#)Na8f1#kaR^hD*)RuvLzQ<*1Xe@dC5CPTt zWC1+Ee%#zt4hiUKf#0iA)_xY;V&>_ls@GzBDQ$6F%SfTRIn+8R2~(XLEyMMg`)_h_ zpvpyW=V-MxSy7fD42>9jN#Q6}A#Mpws9e87kbSYID@rUJTZwxZjZIykAR`o<)2vK6 z$uuvFXGXD(hm-0XI4d-U|J=B5`!)Uvb9rQC_iQOW9*F2W`pD0zx1;W+a8;zBPqFj}Dmppj0m#9Gt{ZAAj>)nw{(k%njnf>K`HxA8}>8 z_asJRn6?3m-drEg9%}*vZ;kbf|G|y%6+kW|vLnMHbp25ZVek*Zh~I}mtrphkhR_I~ zg%L)1r@W$n^BrkUyF*GvfsT(18FHhRgP`6&%H~wnd0$w8Daq@FDj@BnK!GtZjlauN zK|(ed7^2ReLM2HQQnkaMh;Jy))B@7!83Y%rqZcug7xDUG9$86UwFf(H3_EpDsLCaY z?FWOBW>kh!wvf`ucZUcGd?d%#e3K7D*GT+Qkz!6|M!5^0&{k606e?6NjI8oF^LdwiVnPe*jHN5FP?9<-oFpSPOeK|nBPBw59g$ED4xsOV zqJj#;7QWGT_J^176j(pzP3%;t1-oZ$uK22~4>F+ZjTRV%QCxPjip0~q*wEvxZuf;N z7TW3oQo{5}L=j!;1kl+lyCaCubGzqx&tV?@g1}#=S<#eeoR#%9UFCY5Gm?@8N{Z0% zT}&DE!{WTQ<-i-PToI_L$D05zFsC`G(INgrKm5R)NL3PJP-=P;uOXrUXFfryIq=I>e{!dCk(EZ2@KKR1qI>i7uUcLb%>Yn` z95lJ{Be(->^kl{+#{AyrudkCswd%w}x0YA~16bX;^<{rVifdUJL+^ks&H9!u3$y(( zET2FAN<@D@W}EX9hu@G`nSesF2ED1VXkq&l!hfEopf82306I#O^>tO7y(3#CmWr;H zemsYa&OZ?uo_8@!iZiii0Y*h+&dt{DID}}3wlVI+xamK2S0cmu3lKVv#7|~0b%pGt zamxa2`+~?2OXzebYI7Q`pBeuMTU2u%W05z5-+C5rqO&|}WSaO=viO&(f^TVS`bSotFdd-O#stf5oAoXNS@Jc1518E)tUr5jRD4%E~lk4By{F zEp)^s2u%ht4Tf4A_Vu%};pM(%hCPdpbO+KvbDI|aHOVC6V%<>*)Ui!hcmFDX&PME> z4{s}rjMr*SDN)7+;!87vG@ordZ|t7`%tvYh$h(CaNi6F>V3m|NkiEsD6>F7@Ci0B6 zABdKmQ5B1YZGv2Fx6P>w&a_cDZ{mos zT}9%kiw(Vh~i)lGU{^gF_&>YbsY z`vs7pq7~K~S`%I_eqwPICw4Q_kI}r#WAf0&oH_fX_j)43+jzxDkwgYOwksw)6S0jWDLF!oC#GpBXt&@Wx5Ez+x`Y`P8549Ny{hIyvKe&k41RTHz zt}f`oDuD@NY{-yYn+1}ep{+)(x>fz<3~rXxmHYv+P}z>p{cZrbR$^}`+X&{J^oUO2 zYA&d(&x#ZlU6?hpjt;Rz6U`1EN8>8~E>GoXYg_nP(PW zW*oM$)x*Os-t>^1NyhU57t`ZSQ|NlZvh*VsBmvt^eZW~14o(((8BPEeALbxW--a2| zrKUEZYD#`C_q@BkS2CsqBZ}1_36tD%LBKw^))gSc#!Hxwv*mWXreMncnxx})*N+BI zU*KZ~eEY#Bw8zMR&lxqe-(lMU|8>_>1oO6GRIR^!#SV#>lAR;%(S`gVH>-W&-z98B zXrd0tFhpUmokIa7H`C7jAi*o5@>?|$wv!Nzc!Z%fTo@zcJ<6Z0H291mbAPwz*2Ce9 zw2l`1+K9-641+TB0gu~_*gXs{NQ3!#(<({Brl$HsKA2#MMRkl|_Ju(Hr*>yd^~)cE zmXv36PMoKj6A9kDz?;}jt~lW1B=jzMcnvVnwQE9zlm zm(!SubIrJm401nbVA0Cf@=boXR;Nu!0-mC^+aYx&9pQWD$Z$8tRLEVtdIXp4*3kGe zJe4{1piK$6VVI~XNcS+%y_Wqj=xCs^sk!hB5Yx^%`Uf4$`a;OE2pQmgS{05Y>bTc0 zV`gcr%n{jyT^A9|G-AtYoK76LZ^Q>Vm)ZZ+!=Lr{o~jkPW+e(s@&I0n4;k<2KSN?; zX&8r3kU``7)#}SJ6}iA&x&~3&^N%LZbOWSF#(}VseSf`OeBQH+eQ8EMnnJsS6^D8# zUU0M0nyC-TTB$%a(llREo)yvdiM?{RaToUn8r3hobaA~ET6dN!*}PVcVrStW6PG5X zc3+E!P4VI-Vf3$VdV;>+*V`z{lT#`xJzK=`bCBVNnqi#D?A7`g3O@Cl?Q2M>Q0WuO zi4zHqOc$g`pnyN_HkBh`pIYPz*7qFO5hC8|?hB?ey6yq_O4Z?=nGTxS0o<5oIbI$R zQ7Vl6xgXa8P-#WfA?43z4$lbc(EpP{{e4pbIpXNQSJ@wPV9b&H;dy=c`zW&YxW+`&?Sh4lVW*5< ztJawMq2?xOaaZWs75#a2a2gkaxt>n2H0^b2{~mCI$eY4m5flpzf8EIT*9Oreb8c};tvG1Mo{7_89;qnc_L2d~nPkehyLmL2Q|Rlh0n|No`mPdXnS@*x`&C^C z1DZO!@Yg+KZT8ltAtEx?R^&0pM#g|K{rjzc zh}rN=bfbBC4a9b!JFzRa|1UzL1h*=h*NDp+&%jU}8X+AhWZU%W-=B0$Mf=<|=DkB|)1>ic{F8HLL0pWZ5)dzav)_M{$mf!SdWpA!h$Z zneoVc+wL+NW0DySWw|3B^?NDEre#zGg!1T5q`aO7wA5r*UtOy^wwZcxFG(YXf+k9n zg-U=Q@AzwM(zoRaIhSctUKyrS$Fbu^rf>2O7uFt=XX5|V@qa_>kpjqh-wr*1Vy*x! zlp?w8CYKF~?*a&{rMj-JW;6A`je$cffoNI90W&nlM5$4ectnBT3mvd^@SIa-Rr!N5 z)ygU{wA&URkdYIqm%rn{QKZ}an6`!IAmqL&Vc_3_@?cEo#%16gTHl`^jQ&Hy987&q zC}k~E0V(0vGjKe`<#Lw;ySk9rk_X=4kWO6TO+)B!zF{EZ7%0`FYl={WWgYadYu37( zM4X0+#y97n`Iffhu#Rzuj+!}0@&YdI`@d68f0OSTh_!fu$U&kbT--wN)cRDj{MKSq zXj7N3>7)7I8G)Q1;5sW>zZ6+ZzR$11w?XjkWaNL_LfYT zhiW+}4k-(Vh3!dyny}*nGQz?wS~#zX{%@_Zfc{C`G8HZR_vh7S=6*mY73+)e+7G=S zVc!ss`x4tNSmX*Q%%_#e*$>)}D9n-H$FEqq&{bw4Gsr%)?Q&+1SpRxH<^ela?n;9+ zNDGjQ={XyaiE#)|UDxL6(8DF#1#X&S8|z|ic{1Ua108pT1n>xy@32aEg6vuC?O2JUFc(r;B3!)IYEPr;z(grugTNm;dx-L6smxt>ZpLUvX3JyKC?fz zsn03dlH@~UYp2#XoY5R-iVE-DRAYZg{eB%ZG-?CyMP)TO3(xy!MhITpeIH_Awnj%* zR=@^jBG9qPYnDr@4oYJk7LX9ffTg2cCLSS+G?zC?^0;_TDtUc$!u6yfyQ`L&37yEP z{Y!fIKyLAW$K6{AA_A`4V0mXNGJBw)!YQ(cR(jI{-yeTQzv^qmyJwH18}KRN#5a`W zZT}04l=*=HK}4|Z=&FEjJs3&FwawiR$_(Uwl+DZto6nRH?h$Xceb(gd0+XIKVD#`* z@5rBq%i%6e>>DnR6f!#Jfw>FiQA-f7 zYo-ikDonBO7IZK~*?M{7q-ymJkXXt18}rMN9FMRlqiKgy(lWY2lt)CNNdLu3{vO+J zCkRcz&{}JUB`;iVdqz^6BXa6VJ;A-!+pj?@*VB_8V82t%<-`)2D1Q5%raxn}IwA1` z?m_UD-ccGVivnVwmlZ#LwtZAuXBicMWWLR@eMvhTT5wB)|*pA0FB(1xDqtCseF zBP$GoF=eyMn&myWkqB!+uD`!mYs~?hmV<)hC2lQl8s7x0I3HR)_X z!=we_`V~{xSZ?iF(`YTHIH49K{g}ittdGVg`#TI6R<(mNFB*K^w%es6F$(imcj1B_ zw$|ynD*cYaE6Cd&7E1hFZbi)>`71Ue< z3f!6hrp;3bPmKb9IV}=1<)+_9wQKflXCGzmQvx&J4pmKfC`4eGnGpf&WEN{`z*;=s z=pUJ%5nF{`(EItQQ>ZHX<1uz&&YFX&pLds68lT6J)iW7C_3UX!)O(aSQi3}m2I)c6i;dn>F6FD0^^FmJVXkTwN2QGZO$N`IOP!tvV4uC13 zVPnR6rEXH*Vz_D+P@|^97kGeIXh~`jKU`uXaLIeitPTd|0O+1KH=`U5)$se0s=L)% z8e4ctT}69&qr6;>O-zj4Ks3gC)f;YWdp!-fkz2#}qgz=p&FGf+9v|fYR}4Kh3T?sB zILK?3P`-3!99DT45QiLvY&;xkt4UT6iSJ|8D-_Q%$;|B2bsX7{1di5uFIKAgPkQd} zieZ)4Efj9Sz;Dmo>z!#fgJiliAd;5Npe4;1+#H#uZPs9Dq_!y9bu zUglEki3=4eDMCbdI0nA%#DG`&cbP=Tt{nIH;6>zbmuW>zdbOlX-|MCEx*+j$dEwI4 zER5%stMzzX^S|h$Y;sNo2GVk0Z`~k~5J8d@_Z1cjYO?GRGR+5NAET^V(=jaFpgp!lP_XBYUcE-)~uI}An^mXVk&$fx5A zI-H{c&~=a<2L0ywimN#8+n1}64`7T_tub$I=$x`Or(CbNgjW=qH1X^)!Gfj-nLDTY zof3Yi!ucT-c1I<1Ds?=GTV%jxdE=DwL3XRQ#UaSc>tOK~H3I%g7j-4c_IM*9%XUz( zSD6)Pax!HC|B zq%PeWU$9KuUckFcPim)utJx)GY{U&(g%VcE|UE=cS*l=kb z6p}-r`C{~4lop`jWxyG@hS#jXVviNS3$;CNQ@c6qYDs_B+5#)NqoB(GfPX$&Q4?=F zVi;r2Qlu|KDio;1FwLhV_DwBe5V_FEN;EdkZi{5k$#jBJ)dbSTqvhVG8HlWVsPDlC;O`zYrkB(y^i&U}^Q~LTN+{E85Z* zXgUa}VCCQqj_MB4Z%w~&3;tOA52^B>FRKLmJELPSSg(d_YNZ`V>Jtq_j&xe?=Qkp4 zH-;)KNn7|fzG)>3$rEs5n_lrJ#14jBLxzA)d2ptL(xG0v=Xyb&N=kl)ODQ3dD#IZ< z_om~kQ9Ut2s& zdiq7Uy!~_AJCO&_te;R#=Vp76mL^K%ruLfu?-dhCY@-ULRd)^pyyY8B0(FxPwb(?l zTy~)71=*!;nW$LCIaaK?jos#hURke8RZI>EQ?3t9Yd8|`#o}viZb#!56`<^?q8PVN zi`qeD(gBj+Bz5tlBGLk!=uqX{Y0#RFopOHPw@gAbGGLhi25^?y$3g=ksldy$B<{%G zphWe>GQliZERJ6?ep(q|s@SoNA`1m7mO|gR^_$M3aKFbrFZ^##*3};IHUI2Ttt&~D ze6T-f(By^i9W47e9*T&czYHuEb)S?C;1ZlO(9iY$O#jLMA*J58bVONHYQ3lJnd0Lr zF7l9?)LNMfWP-7_SQhH%ri(9uFg@~hm*O5!rG; zDxp4ahl)p-c!^nd4A*I$idC-dMH7t#NO!r;-tyNoP2^fS>Qa*NLM&yjY+Ms4>}-na zl;-PBc|+wJtSnNJap0jL(_6Mo9_PlVT4+Fjtw;33=+2d*!Wb+rN}%Gn#>A?dB-}0$ zF!&4W6hxX%cL`zOrHjFZW)-6o=jOfF*sq>N7}?PFn`n!^khR_<$tgwI%-3Ph`QxK8-4aT zKVX(0G%3i&%L)skpBS#_nf-ct6j<^FAjqJv&kWqI5sFO(fy+56pr-7O-}|%f|FUYHK{< z*#z<{>{6_)hNI#>@M|_mg9s_Ls>|X@eL+FYvKEk*mCD_C)y;t1XHWO@X4$Ne6sNjF zt_{yh&|XUJF;^;?X+3?j*f!%8xv=!sBzPG(C+DApMuj%}YvONB`%r81)K^|!dj>_+ zP6VjwJ>VIFwmmi5 zq((O|f`$_Y`y-lA4_;>fOaK4E^IQMo`RG+j?Q?vamUjk~Ik<1muYBnu(r5JRZ_o{D{Tbcy8~ zoqhV4ybE|8N62tX3)LA!9*1L^!iwX)15G#k{~IH1{D~(f0)!Pt%GsUwFS51`_TDas zG?G*oj&{wGRjQ^>U=y%m+3BD3S{Fa4Cd0tlD!pO#-k#_`K{mN(!-oM#t}~4roh5;E zdopj&_-~Xl_pgK^Cf6%uXu_068_ig#874K1n>_gOfo2DJhY83`a;{KGpH_x_jg^(a z{7b67#A&Jp$4-}3nTBx7lcVS zl2dI>33*ItR4%;9hhbH#P;%#4^KDuDEz_9rS+xLNxVzmS-)9;NkPiK*puEJPQ-?UN-7u!)Bz*3bB5BjA8B-!uz}4>u+IF3zv}L}T+- zO_lQ%JNFWG1Hyh}{=P{`V0PJpUKeH$trVz>wXGX-Bw@sHu@se?3dJ=YYioR;Zk51F&s~0911-eIs@ttJ%%2*UByHi;*PovEwk+{YC@Bls zyNNcrZXgN13T2v7=q~N(GE}X_4COD+Ey_&Q0evEIZ8B%djWwN<>yA`Yd|{wWOCL|Q zPxV@*TY43Z=>@dBXG())Mmm}b-6T7_$k5w8`6?iaU@SANoi){H${Ro}?Xhu#(0wEm zY=m*cLLO%$p}ewuK9PJk-%e=!lB8y9GM%+A-lS4O;c#D#uQbK8V_!dD-VC~v_Dfau zgn4(t)SgJ$u!QGJ;?=ZN!x(Z`yn5b0nf-PlqE-2X6?x)A2y!a>E^MyT<0680FbEnJHrSk^?GsoH(3XDZhY^@bDW3U7; zCS2qLNiz_@d?`(=%wI4J465c9O#PsHyp@1^_%@n*LZ?HD@5&fY6OROZbVs5?`A2Io z^070ZE5$hf&fI+02qbhn|T`(4z11F3KE$JY`6YnwC?~mGm9)xVSu5B0A`k@2@UETjVnKr9Hz7z3_E_Miv&KQ9hA5VOXkXtRK|fGT@D!`Xtw|y%ct3C zho*YmjUX#Vz~V>pxZ!v^=qxK^a9;3lnsN~`>d`-9G**l!=!_5Cw$uh&KV-o2EHvUT z(6YL_r<+)=qeBFb3I`0-0VxHh&mwPzMQ&O`x9MNW*Mdt;jWZ<2*lgiim%-`Z>9J4q z7{YvXbSro{BFKd!XjYu)ex?6ReZuoP9Q>ZgTy~&=$5wd z79Hw~LZ6v0HfBF^fNw}d&k#-#ncH$zlaH#y& zxvK4*0Cf%*Smksh-GyVexboT>{*OB%5PGg(XPh@!*Y41jZE6i%RKMaK0wn+m-$Vw; zb9ZtCs^g34o|z(l0@@He3OQC>q&7M|Vr?O-!w{y{B$7wtcc3B_dYa8LlHddmu1snf2ox?nDvtsUiO^qY{N!<5mugwjoj`T2{y$~1R_H+)s!VQ!CM)!g~@eCIvGBiy_dwag< zEMMcg78;_t00_T_yeb~dgECMf38$_le|SA{59H8{YsZN+N6&Imw%y$qwiS?H^l z3Od-fMxrtpw?qi&#G=bcLsweikD0YS2h5<1cRQ327*3~G5zaMpInDP*oKy=;Lxd!W z-Ra1){sFKA-~46z`Z?n4uNfO$D78_KvQAX~r$fJ^@RVw!Q@%nSt9dDOeD~rnS zo-Z#NN0~|4MAo`w-DqVc^Z^0&JAd(7*yD3exD ztYBggWl}2gK%`+rMx##OR>BGIH5cTq4YfIYcdhJfMrR0zk1oFfg^@&pDe(cE9Z4n5 zrKAlE0ocO^YL-f7{q@=yJIwZ)7bkis^NgrtWxac9=ptl&%N3%eii>ABtF(?SGzdZu z^K^MC!0GB>byM=0OAW`! zM&!f4$ko<{;1(Q83x&M0IgufZ~i& zK;u5j8nx5TW2Uu#kUxD#HDO&{TL1DjN`vKk5Ix;Zk1s|G_p0sDk$N6=!VbIVsrVc~ z40qK7H%Nmns&QSIG*K}P2YgtC$i>QHr6vXO3Jr~kGH^AmZ$9+U=17G8?pgWitdie% z00|sPO1{;-85dH6(7ZjsW{;F1od7v~+500@)V7K_q`Z|sqJ9iiHekT^WJzxgVvjLW zTXV&}L}7W>#E=Ka=xI$APuSA|g_c}am%}Ag%$dp)86A|8N+YxsW;{LsCMuM2%ppG6 zQ_~z@SQxSq7sKltnrU!!!bGx8h$#OvsL**o1rh#-K_sf4r4Bn>r#-}`M=>(4rqJ2j zm}*s>9&4EKPeILx|3SS?|0UEUXDF38N~%Pij|Heu?NF-{0Ul<5Utg^V*ZE_FKAbP{*AsYzjt=f5_!xtUmfV&^?FqjaE%a?5b?*X;3d|Ig0LM|uQ5fLpwREd!PqkDiAdy;d52#5?PiF^U@bO2Pt7MIq%X3y6Nf(*|63of#X<}PUeho2!P0&hZiTCU`My4U zpUIM_WAkgq$h0!Lujw;{r-PT(*L6U`E$4-~ZO}V?fTgG@xH@?JAlK%Y_Mv>~zBT>H z-=xQQ_wnOS>!3hGLMTwY&>``b4>(yzgTUn=%C7_T}Wp!}}20U?c8 z&s^JfnU!OlB5*8p-z}AnK&{AcpfP@^b=4GUqQtRT^<_v)9t}?sW1!GE#|&OMk!WNs z?Ha?mQeypSBHMFhm3TAi?iM?Pr$7n|P7 z`1uv%FF0(jyngFR5%DB^F&GGPd>!KOV$h#4ffR})Nx3*uaO8V3W34l@q{&A3Buy< zM4mk-+{Yn0IA2@q|75jRf^YHwGU9iAWfFyK)DR))QuttF$8ROlrwrq*tmdB_4Q0Mus7t z89@owlrt4~{Pt7{fvSc3U` z7;uc=^#z&G6I;~f7H7jrSAe)5fVsaUpBFJaU6*&hYq(o(3S->Tvb!!EYN@^p&U=@9 zR|YNtyWoahi~Wh-)kxCY!=~TNf4@`<05r$`Kcc>ZA+Bv{Hn_VE?(Xhx!65_-?ydm_ z_rcxWAqnmb?(P;`gS$hpk8{tx@BM?>J!|#quCA`~pUb0Gi-^r_>LGib^;((1h7D`4 zVY_&Fe%}=}^|r<7aHC`@aK4QJsV>wZ`#&5^nd+F6%iY9ux)L7}XNF{KpF^faA)9Lw z$PmBO-ZJ&2tA8JyiXyiTbp9>Zh6leoDk1dKE)O4{`o1kz`#f*Z-^Ys?L9N0}s%Yj< zI+t#}y11iRTr*pvbrLy8^&MrZ#rOOlpB&nVQ6bwOcM-{$_a+CSi#>d31VXtoc0^u3 z_PAp#JqmlK(MYFKre7wqK){DOBcuC3q)e*Anh$65{9G8XP@em>xo;}9duVq`+T$<2 zW(`R1kAMBz{f;?kZNHZn zP3raA|03sC!0n{M|2?b^lv}Rl)Egg!4&uLdYjL?kd?_UZ&604W3>{%4$&F`rgR9_u zvNVfQwa@iwRi;~|bu!NTrbljSSgKW%?Xp;k%WTEo`T_0t1_*_=xSUcG(h~hhq|Re= zT%G)aEV*8~2U60bQAn07Vi%<1<_Q4eG!}BRnC+Deo_4LoFcc((47>}ehp#5T;yl?* z$z{B)2*g2icY&YrD@|(#Wt?xXVYFwnYHC^o7XFwyX2FwDP4cnwHPf-oSq{M<17Ub8YMN@$Nm;O98?1T^~t4=VRo^vwnwzbSgx0t_oz_A6fsNH4T&> z1l_{oT`c-d@O~F`UL&R~Sw>)_&!eiNksM0U>?Yu-G?5RBT7o7$n066hnGX3RTT>nL zY5?omN>C^@4OJseGVaQZ_Z9rxaTaNOj7D&7C)@RyBDC67!Hqs`q%T% z(Qz?k=JaBKZ@Z9ROviZ%Rb`)L|%$cG84u)SZ1ac^8IE zMt7jUW&=TJ4>q+8SRtfRMay>@v^R;Bas#7hfs3mdUER`DR}=3%X#yVem76i#Us(=? zi)&q{+2WOmPJFs>msJ&j!$O2cx9Bm-4b2sPPkqL_5F|oKde)DV06mn^$Zk=;+G3TT z;Am?{B85VRa|mx)7`DRCDp0oDq)!i%F7Io4nQdKfc!0m9g^^=iQ_*C#jpJkt#(h9ngHjg{y9 zBCF6j*LHKg=^`9^vI+!&8p&7d?rSI{Aq3i=~t$(w@M6i6Nh;q^Z)03O`23?;p#^ad(Z1jcROf`}Z8H3js5_^@*wdqJ+EA?2+FdP@ESe+iqY0F z9r(#>7;Jq;TLYGldblU)Unuy*3RTk*>uy{eyUE3C^C+D( z%{5eiQfNL6Ge30uF5EH1-bP&dIrUmyV{bYC^T4#XZ#)U3M_O_L{pPPfIS2kyiSNqf zTWDmxE?yTchMsLdnh0S2;NvmfZNHtQPln4_>%){!7U5^6o3Y|=HakTZV9OudZkO^B zU80&eX++*L{UFcGenJg(NMu1@h7zvO=53o%JyoYOJn%ee*bm|q1=JNuJ8c&w;aeI$ zm%{9Q7%UCA84?Ldk`UP1s>b_~rpXY~F)&N|=Aayyh#c7mFW?)mQN+^uw-PD;!N}VX zW9cMny~Tpu8nVDyYCBe>Qm|4ftKtm@ zT1I2;IKWw8)^4_ds{L?=@uGa^b=@JSsLyGeMb+PPc^SQzwXzEwiBN0MHx>k7tP*_V z-L0jy5?iiV-`osC(h|gIO543saTHhT4Aed+=5zgt=Zuh}hZo9lp$_rvXAK1HhSEN=trOzV` zO1lk82;kiN=^iz4Cd!5E(qNT%4$j=DtsC_H?a|i`*AV7_}o2;6?3=2xL2nPFUX=eEm=2 zbuzU1C!mjICetx=bica)x-qk%Px-|2?LD)GUG>)!*5+uRHEoko?+=S-a@50)SFs4sG97PjvfxoHDDl*#XQC$TMb4q<- z-sS0EgDp)Rl9f{2V(^TY94Lx%qAvM(|Gqu)_4vHNVk+1MxExdbNmlcUHS2$)9 z76>?J^mWpxXE5O2f7naY>ahMdd5$l1>(6UM;4zd9T)nN1XL-a)m~tf@d|QOo<*U#< zG)+3ZmSH=KGqQ6^jxR+OsyTs}$4PhEIlI`&i*qBF1M&uUK(_HP%li2cRKLx2?P$Ma zd-p|{clse{HuDsPd<-RavJbT83mdCQq<1N~+%uZEbTs8!d_iEVwmE4dJki+p2UKO$ zM`L=rZh4cTYD4v?pH)bYq=xHZB%(+U6{s?(x8d^PqGDCo&aCZ8U!1VDjCV8ltXP~W z#QPA+36+%klbUPRqnk9Vl2JU4X*p z<=6gVq)LGZsa<5w>Pte2DG^lU@V^WGQ3$Xg|E-wqg-$@IO%o6=!c5QHBHS^jVO#cx z@f|Pn@S>Ss+*Q+UIJR9IuU6UKyGW8r;dcqf7bDnlaS1`a_1Io5``bcC7DFejkuxT9 zT?+snIX{=lIN#6nf7c@oZEQ`yI9Qp$N3627?0@(AdRZSSG*O~G{o&b`wWJ-7+wU}Gjto=gK(~R53D>_20 z3m={n%Q7WU#0tfgT>W;5b`Dw?_9hOg;>N``J?e$!s=@8)H)%aN*zD7KTlF78G89(i zYUik+s)@5TipN01J(#HC|1)}AY9sbW#$OoUP8m_Ob+sT3 zH`!dTeep9c3t|sstj&(v>fB?X+2|oEM;uJL`;D%>LU<2!CH$~^$I)98wr%q)vo(rg z?R*ZgwEImOQg?*<+kkv1rkOv!tJ|aEPG%@Vdm|*SmH0zXj2kKd1rL#W;-gI?;XMRk zqI?&1KXPM8p;9u_VAp$Z5gqdFR*K_07E6h3I1a0Um%GpM_ECmpS*5JeQdDOG+x4$< zRf8?EV`8?gxWs(WZ#nd_4j_VVdKX%p!9ZT;3!t;p~&iSTWy{{};U|*z=Km!6i}QX-UV#3d5=$iuncY>4k;h zV)}qit{6NMWPVPz^O)W5T5vqVVoVPdc(8)2?8(t&7)dpEo=c01;*Q0#%6*xO_}hoV z(Y$EMrc*1S+S9XQ%Fb812u6}d1cdhGOU_U1MU6$k!LX`(mP3FHYiZc#rW>)YNo_N! zXq04%w02iMylx)cP#ji-J&=g=iwH%tQeC0`kSopb4+0~YzhtOQ`X%BUL8;dSEs^1S z8=Rr&&ff-XJC}7w_wE|vyxP@fgnVKiI5%gwn znpi&Pu_LCwtoefY(6u8oSO&Lvuv4u|>>lCePB7uLVsGk?!I0Kt%xI77e#4hOLb++a zxKKqas?@ek(a_{YNI2`S2T)z`A8^3OdhV{MC|mQ*p{P4C*sNi%ng(D1X1I z2jZkW=v1e|^22Iu!r&ZGl+tmeCZ$7fD33TN(o~UBn=)C5V9b;*5h$s<=dkVN zJa_NBqPWcYz;_m-t1^ixd7iO?Y`V1!*W-SfvoxoGxswwy9u&KA^)e95@!~1kzZk_OJ>TwO@gDyG*+~y<`9WWs z#FFBIbEvt$@Y-*KHkm#G69NKDs=1QB(L%f;`G#@1n! zIuCJirYw*_9QarMf9SwD9Ln04VSP1p=9r+s+=Wz)z$t=^amE4st5;-Le#y)6urjO1 zN=`o_!Ao409FM*#1>^Kw?`$JR7LEo4aHO{U&%de6w31J|rKGM`t0^azaAePWnRRg| zL8qy{oQzKA9O6BhmaH9^X74|cEU4+>zqfzeQ#GIso67~4GMSlCCxQB;wH zat((o{6TW1HN_YMdf|Um4}d(^>jQLKogu1C&PgvFp>8mB^nVlZ3X4vIq;bjUL7Sq3 z(|hCmSxg*KL-l!U*}S6rV{xpK>KJuKqxL~me9iY{&F`t3qn?<=8G=I&{PODs|H&MI z&+1SQ4%78E&wQmuxjpE+J-z(&nMlvW9+NeV1G-`ym;@!+#@iQhln+HBV9(z#KcG?` z>IR==Nz(YqXulzQL`r{8D&Vs#=2VI&Ss1?WfWA49S_}-fv*w>o0T;R+jEM~VnDG39 zY}bF$lP{_yMzBAZ656NqcT1c=^Di3eJr=Wy@?w5#Z6=vuE9n>?Qmjv+qFWs>le^v( z_J-ZSPY*!g*NNfM{eXs1siI?Mt^J}E;d5+NCF0Ooe8@L48KkU&-B`iS#(&h)# zF8%D*;|3+Z`T4q-)%u#QY*p4i1w{|y+kr?MTqU=3IGoH?PmgH}7u$r0yUFp`9Z+Hr z$^u%v_Z58N+y%S|vNq)qOp%sd`VhpRU|OCM`~1}@y3Vu{`D$=4PYRoZBRYAzSS{Ac z93$a*3}O3@BTI^H)^3^8Xdu%bxXo!^BVQ)Y5HwkCzvS&4jt`;8e7U7qY>G>1IGA8| zCOI%$35=X>!9&dxJJ1LrM$y|}bIDn|o8SCzicR39oRB#J-g=cYpkL-Rk<8MJ{&wk0`CqT6K%MSWg zk}OB;O`>}R2Zj0H&>-Q+VEOP=XxAd5+3SG@l(?;mJq$FB!f3H&0^Un~lUfuHH(4CT zbk^vja=&Bihny|oXqi6M!O%J5hx5j(;^OccO8*Z_d?^2TY$fqnmGEc&Gy|P?Jmrlu zg+g!^Ic&aOwWeg#k{)ttn$VeH#i{g8yHpW*vvL5hQE+(;)J7y3VO*A-hjCJz&G1ly z`13~mr($=9QVQ0j?!!j1Wzs*f>lUG;ETHlsA#ML+mP|f$dL>Sh6GW^vKcg_IKiL8t z_mxzM<6lRqN*41n$J~Ip%a%vw<1UoSQT8f%~l+yTW(1oI!F0-Yx=XoF zk~bc5-weLjQj&{yeZo0aJv6TBqEfW;yx&ooYY|W&ynF#EO%J@bxbJZYITfTP1Y|Uj zd?;e3BNsKted3R<{&TYyIctKfsu>{)i`DU<&GV2qmtu55sfbQ`{}v`wwVk5X85ZS- zr}z_{U@SsO#Z1VmVyS5)bakiq-M?y$=8JUX(=MSVxVzk*OyPuPGT%RUN zpuHntr{@^yTr-&C#_h~eDNAYK*m;zhfaY^WnZ9ed`k2J}P!e6a%hziah#u_C@~mk; zY{3%-YJu`)2y+|8(Xs4tm3F!sJR0?0B1$1mB%qP{HsU8MhACMF+`=-U)DKNPS9FOb1k=a_7?-gF+-RK=Gp;`A5X9DW;v>pb+M?<%xl(Z-Y-K8Hc9FA#@?5gW%uVFh~a%3%0_uKhu}b+5B^|yKveM zMm#qmn1As-RJ3vl2zY5bCZzN{t@b}=X1Nc03gh9SuFX+Hpmx$+{g!;A~j& zgQzAU?CnGIC#Y=fXDAaSpmg|qg+=Q;anSAPbLFg2H=*EC_Qmeb%Xaf~a$`jg(iC^C zN)E@8*2bJO#-`wWSWcU01hv}$o2rb^>A*-5?KF>Z51yYn+Aq0l3G&OU?brLx-5TDi zUe`Pa8IqaZ*XpX}+a>VH-h&t2kG>jQwW_ z6d<&L0@TMkGenvLf#LIzmfHJt{Sp|+-Sm(n;U|tz&HK^N7z_l#@e~HlSFSLwpZ<;` zS4Lb67Y#=jc6F2si$SXxTG@BO?ADX1Gb6`krRDKkHEuzQN~k6+i{|07TM6M9Wz%bs z2dMS0%Z%oewERGq`&KYl;^kl`|M4DqUYI@lta~95AYl0T91B&U%jSn*L}_nYx3A~+ zPF5mCAgD%IMrGC1EygfDZ;H!qa0oSU#UZS%zZv==mgxN%S<52ojQ#!5RFqO@U4rqBjdvlLQ?}N2UtZs8)i~aLaibWJ zlIa3C9_WfVHG)|Ej}VgiC-m^pp{gcX{hwooRC@+8hvT1~Cp)p6Fkmi2r-olrrubtwCVARjYVg`T{N*#c zMm++4M3$)#4?Q_^e(Xv<*>--oS|s#1t0J1i@9Nx>>={6BxJ`Z#461e;g_F3<*aam6 zQ4EI^J!_74TNYhW(v;gnJGaTkaTy~OltM;xWS*aj9;3ScigZ4&YdHgT<4Rj06_NFa z-tTfcpjQ)o_*n;S$Nd#KmB{IQ6pg-pUg`Y=?3 z?Qc;#$iISAtIEJqIVErrr(c|9NG51^D&!YXd-YSJLLjr(6^!P$FzeiT!(``7WwcK2kqcxoj&-Z zL^3hT<^;j;&%w)Z9)7`M^563=j;4Gd&bMPovdH$rrT%yL_)!0mC?%(a6}{V73ST*{ zR>6|UU?KI$QvxF42GTIJtEYii_0vHOGL$)Z1Mgip`Qfk1@ivY*Js>}q1pmexNYWai z3=T6!_qw|0VF)7O#Ds$3Ql}gX+md9U)?6 zlGlLgI_&fmW>2pqnxN(lFG>FBw;~SI%Ed^d3+flwi#<;c#2aKj-xo4v;)4Nc*dZpg z`*tQyf(N?i&ayOHF2XY>*pF&ZM8jX_M2Y!rRX2ahS)INTQD zYHX@6If#8K0w>QG;wOfv(73tW(%QJ1 z$h1RT(o)3Oy9$(YeTO9nj+IRPq%Zr`g`RF$@{0X4cuvFw*5*mu$5_(T;hM`1qMShjU z86P_H`bR!nDp9;mZhEk^RFdwy)DDn;QrJL23bElc;YgV{%0nc z)y@jsIENVuzKu{QSyW>(od|OEF`2T$nrUiIZ6q}w@$}!O_H?VA_zJk1re0>~P~$~3 zON&F_TR33Bzy9P;XwuTOsqCisDhoCK#AzeljBzr99GUUByl*4zeH(_gTWV7JY?{sg zMt+ZCtENCHICAXVQiM-}FG0o;AuxJ!%olbO0cD5$oo34rd zm70xvHsa5MF~=?nmVBDhMH4;3)8-q3UEs` z&b*Su1%Zb_je(4eQaJh*B(0!j41)2%v!HQ`HxuxE)qNb+zra29PG|cYO3$vlsvto}pKNcJ)@#bJp}dT)=F@|v z79mx$sSQ*2x6!+Kr4O(u@Yw+B0r{1of-u zg51U7!`O-rsFj1))Qm)`TkGEX)VnW)T}#be*0*-|r}>cikoH~h<}OORC4~w>>HUyO z@}0eS3D4l$j?5@0$d42c#l0R=d^(|gpb8N13_JeN|$PXI%b&R)#T6X81(>h0h3 zXUn@CuG(AMUy(;_Lu{k1pMEyQUA1RNr|X490m?JF`P(1Z%r)v}*U{1X`Z9yQyBl-+ zkN0AbO3U3!nX>X*umcrMD2WuvwUgr~{_m;GhH2rZm!kOikca8t4h4Wy~m-EN^bk zgbVLzj#++y2NC~8PVmU5Q?nIZ*8~6{KAOIa&>AbrJA$*-lnf;7sHMX-%Kra{6!iox z&GF9_M0YqSamolImdLSmRHo_u@pamYXJt6*bpWYp$>KqS`c-A-b*l^-9wy)Gf2Vs3(_`<}NdV&H<~geEY2rGF zSP#bdclfjDzKLJ$vX6@JvoctNxc5v8F?kdmc(6W5M8sw8FpbRq#9ch7&{m-$6#yWGh|3(0oy zwr}8gZky@U6ljk8nBC`SoBU5?8;9jKWd`*;Gk({R$rJ%W1!A*}rpTnK`5;iZ(&bO0G?S4JL3?N|wl z9BG^jUej)?p2NM;En1V6$)UXNGLq#WO^T()2CjnKP^Sns?|D<>*_l|==#Cxw{cdx5 z^s=7R%&^az`EhW)qdQ`_WDAgX*TW7>t|9Cnx@UD_Bl`6pALDlmtWhQqIv;>Br*T z3xzD4V+&yfN{mIDf?!+?E~r34W_!DSwKMdkxP^K`A;TXsef&xsSyZ)K!Nb*hAUqO( z=#$8X^n4O2Q0srA=QrIg?0L8YILatX`5Jf~Z;q6e*kyj#px(jse8f$ivdH6^kMu)s za4dN-%Z!KXmr?sW9pLl|=Q7%pZt|}tuG@QOyzb1Ep>ep{^ zB_Z;6v2iBJipDg8&ozMDw4i!uq1?L1Fv+6uqP;h6r8Wq zSSgN)9D~8^eEQNqs(<$XP>Q1W(;S$8MVWLrKb^;-NYDL625H3o9jgQQL~1w~?hUa9 zy;Wd~*2YQMCrP(Xf6ho_B~L*jt!*m)#kB;|``GmB`*$+Pj+B)1Xw^f6-IZZz?{v`X zwVRA|c-E$>exP+PoC=mjbGWBxiLZ0)n+q#7E!S%aDyUC0Y-~&1K+KM(C~&@96i8<5ScZu<7RqhwH4!(i}y8B+`$~^q|K^y-WX$ zFw@#l0>N{92g$ztkYguX5>m4qwAkP!DAH)pEl>Y#`dmPnv|mew<}yOXK@8?%M5^L@ zlt^F_+-7jWAgFPyTus|#;96EBsyhDcbY4y35A3h-y-q-*nFLlyU8jQVCGXHKaQg`5 zhs!seI|mvwn@GOv3(0TR{h$`VZ1++Q*Px_!8)ne-^Z-OacKj_9`F=1rCnrGmyU~bZL0F zo!sdWtkXU>K%04>aY+)6+N)C8)*W&)fig2UJ8(?&f&IOI3HYrh*yEWq4(=)1NQm{RRo5P=2{SXetPSm2P+6 z?Ei#H)D^M=+5=v*6X=SVS%jOedvp-PvBa9rEz(ZwZI^~2?$oI4zJ&7J!c;z%;5B1R zFjDr3@`nTuu@?Str_aqtChU>17+&KLOJDFkkgfH*DYE+M!f0<25l(6kO@EZlf%V|a zI2s6rIP}LCbJ{QoN8G~jjj+-Pn685k+mgel-UHvJG zZa_D=fOi$4N3WmYQOKX(U*sZeWt26=8@OS$cDY6v zc%%Hf6Y*K%36GSAivlwN-x4OYwG0EsWaG9O`i7z+BOGY?wvoY%h+k>ek*yVUmRWM? z19htO;|iJzAU#3QGy9{p-X~rf{3gH~xQimYSBDDyHo&UvWPU{}&{mLE>_qHEowZqlHQ;SKlwIr=ZRoNdn5?50xsBXlCg1uUZn>A8>Cy0}c;gcmR9 zrnL4Dae%{e|=VD9&q4pe&1|<0zw`)3BBBWZkz^sl}=p<9Ad@z`xBQ0DLU%9W; z_^W8biQ;HSII^*usYni%9C`4zm`l+J{tfhTme%eOtz4$Wl1@gK@A}!&=6+AGo+?*7 zm-N2DhX>J1DAFOC;1y%uW~>Qjbqxc=99D3)cbe*K4W^2SGN3{n9W`Kljc^ERHMg{2 z&x1_RpS7W}V90Ucz&~O$umZWuGTik7lgMrC^3jxQkps0959C#Ce6fsSw{*>y36@LZ z8RCmDV^JGyq{lMwxe`xKXqP^xW#f0iyJ@iE#sQsC=B6=-u(NQ`ua z(Z}keMvuQ8yYFm$mZa&6qH|>nVj$-(tt6+}xoq9`X9O#y{4{0kYy!ZGROZ;~GNBTa zm`Lam6;UAe4>36Nc^pA(K+@luUTq7v@My%A&sB+qmN~a*wTOZcAL;9SLw z5zPiVJvKn~{H6!uKGOFi0KqmUvP;kP7;{O8(pm4t`>V(0j=!Bar)$r58qdmX{?TzR zX8zgGocW68{55GwznQ*E4snarhWzAco7@>&;M0V!cC}+~q%5J@H*0YUaiV+IuuH@D zV}iHGDMHV7lIIO?D0dIxHCx2m3&+l&G;g{t69m79D@ag}4%rYzJ=L}$9E}j$jAZU- z*cta@{LX8wvMV_Mm2mmdrLG5iiJ`?Jt1kf5w?3^)QNaLR&DB--@FY{+BsGQf6*IT| z*Wrh&lCiVLMq1JyN!!%jpR%)$9iork?V%>v_SHQJ)vpL|oiViYtV8cliZB#&l#gis zPxeCBC+`p^n0ijd5#zFouRpgP+VA$8Yc~x8W2i%rHoTG5m?3nQ`&%jn83 zbMV81`9nMLLUV^iWzbbDHhdnzTdg+(VpOBD%3-I}bL_Tuj*x3_?m8YEOUmQ*MoD0{+x|J3D zn`1ZMgQAXcUBJZHKfskXW}N>9qavCT^+pljvE$VOG^B46)o&-zY^wbM2@(F#SY{=bw zDGCmgrh%u)==t1b{wv=W>0z&woDCZMe(zd!NxZaEj{PAAt8u3=O50c{Yv(OR6HBF} zLD1zdJ#F|BD~qI|8eA5Fv5hLfki`Y#^>bn1nk)K<1S8Ut_An2ztb#a{U(4ZfkhfIiXcgERRP;z*h@%wjs#Wd5TDM#WI{#B zxcu-UcHaf^6Ksi>N{@?WEbrtBM1nDyRqR}Bt9_i2tRy@=Df`|~dw)dQlzbIMIp*<@ zhQx&%zycELak~dgyS*mCpc*Mfh{8NOFarP1EsJDmQXNfawI#fWyvYUP_Jq}kp!_#a z!MMzl4(K$+1~`cWg@Uvh+=d?T*B#Fw8jX?+#T~i?Wl;KT;^#xzur)&W^DN1ag^+8=Z(N)-? zf$`>nutSS3_+bc4D;;*H7ec)KBJ3-~7!0dvgBd;gGT{q{Z(a~hcR~%z=l||W#_4}l z_(cYKLE4K*)GNSDAOlSM0iJ7*NMFK&;s1CSr#L&k&1O?hdt+=;2~~fW2uFTmNli(2 z`nv?D7ck-x&}WhTaoY8bI<4Orbk+R-A-G-MR0Xzi9D=iy>+1N3P#G%4GaxBN%pSMG zr74)y5gDdbP)LQm28jnq;o;!nM&YY&{s2nz z%sO8PP)09RdF_I^>B3`nUw#%n)_@_=n6yELTEpGoMnQljg22N?|cas;;S{5kO;vUQ2>$ndORF`oimnOeIXEUZ0qGxrbYYh07Gwy z@=gb7d(;D3w%7&>C@Ih1fdAz9sc(rlUM$BlGGz;ya%q`UCHq#2DnNk5x#Iv);G4os z-4(gU<52BGP6yxRwi;IpsnmKQ_YWK8Zr;V1qz=k-{JaoRISx-H^@M`Yf5q!~Zy)q! zhJXOw#WRVgLIj_h3v_`t*~8b>pM|Ff13O^>u`*re2&oHpgS6EBBAhWucp1vZ2}aiM z<_&RQO}0NcJI)1g&ztY)VW|3Idwq;Grb9LohsvhO?KhqSo=jDy>?C*?GXTalu0@$r z-)my`-adn#lmwfGsufV0t`OIxtn-N-9($w@J82nElIVNyOm~)!#i8BZ(-wC&=diCZAxnFPQly`0qcv zbb*FMC~KUza4ApSMTVmYhX4O(bc_kFF1Rb^J@LAroxx6#Mq6y_eepdPg#i&DPt z?4n+9GHgneCERHy;`)H7PamA2fzfb{15Q@vT!ZMVw`gP;03GFLfR{IWrtN4xt*p1B zD81@PL{)yzL~ME#9Wy05wbd_r@y^e|37rml#3sfBH~U7vB*(C&zqs*7-?n@6pVx|E z-nqHOD^7eGF@h#Flyv0ofhh<{FlE2*V7#Hb0hIhyiD?YD9y3-B<&QOfv|@84k#&%} z*?djhK8Svvm=ih6B{X&p54Ca8*G5m6&3jG_XMt7N8WqU4t@AMcH-=_g&y*Vo54w z>71%*)Vo!r^dBhM+15bTHb z9O_)Hp6=x?IaxzYHMMF9V3*(sBBp9h{V{zy2!k%UHVYGPRFJ(EC635mC*yz5_ivs03)Zie%SnaY17VYX zkZ~9BvVb1F5ElKrZqjl*QD3^P0WajCga0MsSa{qLPdy>P&K+N zR&iZ)8g*_9@GP+_S!r@)trMRB3p!7UzPoVd13unUI;LlxLTQ%T|Cy)QVkoKX zVyrf%M{Aixb$en~kk2XTAa0XnQm6ABZ09JfG90ZocG;HnURN}-k(c4Ki~E+u9DF@^ zlEL{q$OHbpL!$WUn(?$IlhaEL?#01^75H|IgB*^S(z|1XXDfZ3ZF-@0j253go?U z)YUWlZ3=s_=pcgVwW_Y5i-wBQvvHH)lIsKonb*{=sUP1BG27f3R#7~F(zQq&H*ls1 zE0rx27-C>kFjvs9OCP950MiwaF>RFLMo*1qkDaMPK+Ap(Sx8w-=TedTdzKA5xA-ba zs1#plMuv+^3A+i9jMI|b?thNkzjXYk6`T5zr{URo=LlA;!bU6ngB3N zpOWmCZel5)Q|C1*wbw8ILe!$a30jbXm9eN*Oa)xg>{i5RSPIt7Cbip@?!6xF?u@AV z3r!+|ul@NoV)3BJzR@&fk7O}Ed#cKlTq3W_SD)sP&eeP6vf8@)pD!T0_OZ3rWYXEp zb-ecTkc#hSRxZ_!fMPihmc|q+TnWs6_U0LDH+5QL@U#-Y2%2tLq@$5o`rqfLkz0WR zl%A+hsjFq}ZW$&&h$3cRM7&n33I1e*|~@mHF3DsNYoBc;-{wA7&7t8GK7-yvf? zlsL>PWp(;YD(c3!b_#a!jjvK8DrHRjcuqZCgb|U+iJrEEkcKj3-8D@QK=L7jRl7hH zd|O^ekO&`0(tf?h)p>`dd?@m(t&!!_^`Ap@WsjI{ny4tdHJ$nFIZtI$-s>il5U|no z(M|1L&(|OH&X_cdara~PhYy^|%DzCpH(e8`(+xG*n$#%Z8JFPd@*{E4c4~M~$O*L# zIx5Y~d@FQJsK9r9q2O~i2-}8c8BrHgRsZt;VB{b8OV;7V z@@KN>dU(JMe$$&(Jqx)Bg6~1}k{%BIVD8gb)@P7b)hhId_>0d;UKdnwPauwM1gU{h zua==`Nbv;d$8RWwWr@=bFiwfZJvUM(ziYFD*HzN%!Ieif3Hc{w^f68Qq1J^vD{qfa ztG`78!tnMAs!Ma9*0EU(g`&o0Bu=$8$Mk9-MDFAB2+ny7cv>#myJ3K$C|1y=91=j1R#CqB(l);L!mA#`)ZJNH@VXZ61edLIi> zv}F+MXD|TVLoSp&#v5f_U z=2v}Y;RopuF>a&B7qt*XT$A7XICPB|OCTiF5kWjWJh8O&{xL`2fbeoyl?$&=6EM(R zwHoo{6(RVivlfFw%_5OWvay(ZOlVIl&=#jpKbS{lopm7A{*S7+4618exjm*5+B zcXtR7++BlfaCZo<8x8Id+}&L^?(XjH&g0zgp8MXbu3EoWty*(-kI~&@1U(JXmVq)u z2)g1(@S{3?amJrn{1?8Z|NRS&Sf5Wt@hCw)q@p9|-w0WV!ZEvf6~e({ZD4Xy4-XGV z8`gBNZP*uOBCWk;c-K^)ivkQxwdVCfW!*#6=z787_e4tK6B65p1xb-+=r{2t#+7)| z1AWj@I$Vt5M~xNt^gEjvIKl#;qk2`=WUy_V>JYPS=Ct_QoDsDwuM-S8DV3?l=;5oK z4A4M|T{Iqo!$~#+j-D<|%hj+WnDaTgP2Vsg5)BsuPO2N4@w(qn0A{u=b!a93Qv`Uu zWwXN~;PEyRC~NPN`v~!U69A}_lI^Mu0&bgwFFr+rk7^Lb<15TyBF*FoA?*Zrp5U{NP21LWlvs#Zek1jF23} zb~z%I58|IxFYl=oti`<_vV1(J-S}}JLyq?YaiqW{L8tC_&n$yRAZik3FDXK^r)G18 zUL?vrH?%Um!r=R5MWzoVUC@uBo$a6;2Z-Jw7kH67p4w?7_TCr~#4UC#tEE8Tm?{&NHmb<|on>Nf^Qa%O|3KiK%U_s|>t0%Ajiz{oT5V2!AgdoKv>fqiNsm7qgve`r z(NY~|f;-2fcnAu+U98Y$`p!W`_sS%Ap#kbk)K8(Ip1a8({BCC}Sc;wQ_#EYo;zbvD zy1e_n=V#LT6vUFrnJ!d^y<446Py>2{y%(oeWNhX5J9oHONA%Jd8SuKVTkRLyo|K@f zNR%K-7do?w404YjRJxuI^sk*4Lu8iS1%;Y^7vvF|v(Z=grFLjx!XrFkneQ++5A+(UYGr@%;@&0kT4zNfT^PtDUWT*3Q=Bs< z{o5lh!g(w<|7VBsv~nlJs)JoEW&|# z%FLdIJ@`dV{6Nse>=*66xWD-L*oZZ@t>{@FyYa~ss}{fM)m(H3f7zo>Cj@8xz!w6q zYZ^(r+|3iivyG-Ab}7^>-Tli?S3;@>xLU(MlnuE$$E8%f{y{&=!5Kcv>UPr(Pvz!B zn;N>y{=I=EE^&J>--d6x&c7J;KGab$hdirMAqn*!;p?*vf=2<0v0fuOg?aPhkRJH0 zN9dp!++58(`{R#0niJ+<2LEaSpyv-S7Y?Gp`MB78G0+Y{Q09US})I3Ksq>}>Q_3R=7S-c~n)M0bq;N+LXR zezr(ICv6;Sr{%~+HBfU2?*^)KQbWx~^9$Z)*k&yr2SMesC-(c7rEax3n4NdiNC2_% zt*muVj1UT|CLWi_G6e>}i~N?a_krFPwRzy27=(Nd31_1uW8-`}a-{3FtFNaZ*be-Z ziUJfa&~=j7 zGt}(Ykjo5pq;6c9SdbTW=5jr3TC!`0(m#M? ziE3zJ`x<5ct@9bvXY6Oh8sd}rnoa~sT)&RsHN*QwB|dcbh+?L^KEM&*=O_qNRW}`& z7dZX)a)BrE)Ptka656%j9O{iVeAPE!c!jDAmn44%dN+ctW3UwB;R@@x#(0!xq3I4|(Br9+JD7@%%pppm+LD*@!SXW;#@#PdPD> zo-%MoRI)+IP?PC(=W0$O@8(Ir_p2ED#4K&UPgvXPw~m zErf7$&@LPjr$<~sM5X3WT!?EG2hku0hcv-c>&dU|1AfcUp?1fEoyR#42kFF&h(bKy zA1tnzWC}%uZp~aBHLe@DEebhLA4&Z6$7jyT_$nh&>96e{P1o3INAB_n$eVkD&rl4v zQQcj?UgDvVwjcAsaC|)WM?YC(#Of;fR;xWVuk&t-8m}Px^J6Aqd-~yUspNRQz+ney zOMFAX$sJmD&}?mly3xzDhm~$)U__yp)w)>8^gJAbE*bxkD&f4Xo>WHR=FJP!5FfuZ zLt176%R1sc{QS&z{=6t@>*Tn{FEFWtl z#34ykJX%3WXXXFwrhO79S*cLxxl{~cuA1ns&$HOU#un+H%4q85VjFWVk)qpdhXzf9 z&brEyVnxGJDoH$xAN*0r3ABS()_u?$Zv?${K^oHvu&kPGQM$(_qR#XZQb-wM3o7-1=!^Am4{_9tPx)RV%`dd-sN80{m;lM^Jgi2WfkN|J zTPjjD>NL`x3~w_Nm4JMXhQ0Q^d_?K#Nu z#hAEq(6=%Nix|*wUtb8Iy16z)+V?m@MV!=( zh)D(vbUZwC12VeIwcxe^!Q+~aQ@DDROY{3gn^NX=XtuE%Jkb$RN(EpzSPb35%xt3x zpf`Iq_66b%)B(>6g1*2Gm^3wp@0qm#TuyW8FQTykhw2s zOG`zp$}SC3CVp=N<%s?E-)Msu04AMfexqO%GLp}4-y^2&#>}-SICbJtQXd@>XAAWS z$ncVrNd?77>bUAh(BHur)venYGYy4(Z0w${1Ob%>j;d6_;M95G;y_|Ex}fs!aWbk|7>QAPE}BdSr9mT2$@%@`1P#K6KpI z$Iq?{LSt{}RL7Uwr+kSPw8f7xPP^PlHWNQ|k&jQ0Mx#wN$i}SoziO3#KfC<@On53n zJVfphz&@dnwHK;(!xxIv>$1bL3`leyk!Da0F8myeJ68#O+=bMj-iF9RR{&&XQm7W- zy5IJF^;}^+>sE>3J3I$R=Smsu;NE4(LNbAmOWn9I;aZdHL4rrjF^;uegWP9FLCntb zp81@MDWa$^pgv&_2a~Nnq@!WWHvWS9@cakPx-{=gf~ZZ9mP#N^(>6kqC7TsAE15>y zKm$ilM)<1V6zqJd{p%@z(oR82#KPiWr>?nrn+neX+>-=Tv9iN~k`zq$0+CotCM5Y0Bo_ahk(D>CII##aD-NlFyky&uV*tWaVbRK#B(kB8 z{}cMPMvIh<(jDyd+#d^F@V;NB)(pxfnbLu;s$tgnfzf% z@F$1_n*8kQp>T*W6VSlu(NJPM!{XX$i5=VtwQ%TgH)g5;^!<*3-+!zpwY90Ioshc2$1(D7lx`TpmM~KCF zy+rk#_oW-_TZJnk76xVolS39T*K%E5h6kBT3^xCOgwg^NmI7P#n*%0x^nWMc{uzss zgLpu9Nb(dM*&t}6#gaWjR#j!+615)Nrv3n)y?oTJ3{r3y-h@nkR>BX~k#A7Z4KMBWC zBb8o*BxaKVlH!oRWx_Vg=S3pS&yES@>6B2f6xeL9rYt4Y@KxL(Gbef?_SyJX%F>Y2 zf*I^)36%EH^O5$#_y61H{wHTvKz;g6v^JNOR{iO>-IKbg%Um}KB%{n5&4;Hi{Pt(i zQMc`)S?v3}8b=5B0>bY71iu;+Ple@2&-M(3B7t@msX0P9to!Z~R$3_-R zk1da(_(lf9lLeUGm3XO>WWcDVdrCEJ9M?Du7L;KdOq+}J?e}xBb26hD7BSazt{?lW zFQe_8wjb6=$-Ie#7}bMAZ3`PU8ckygREZDHX`K6Oz3sX>{CfY#7JjNVNP7%A5+{t=q3filcI(X89M`}VOW{;Y~=z9a#wbyQPx8Tn{| z5F!55G4KZj=honQ^&2)CD}D-{SiJs+?np=)@w+xB_%hjTpA_Y|+bA^tkubR)y-i&d z-|D9e`XV8rQS>9%>D&|BK7zEP&@?M^5HeqWzlEzpECl80v zn4$}Vk2-ip{s%I(Im~!VzOc-3+Q;$6b)l>0&*q;st!Ftf8Sk*`#dAZ1vgGRMfDi5;bMdW5Bu}FOtA>7owF$S(5c~&(8)1{rnL0ya1yBxo5(5WH>$q zo)2LI5FDUjet(hp0_pfo@~g6zVj}sHL(BqY#)4~u`tr{U{)3yHdNtjZ15gdQb|O^@ zDm8N`m?327kKOJs0iSXoPUBbWl^!0ZOn?|vq80I6DUyQLmgCCK^@@~>kLj2Ba>3sd z7dl_f#-m-MqDTic{9{!gMDI$u?oCzVZ23X`KS0fmS2F^XE>=Z(kCFICb1PTc6;P1~ zh&g9UpXP^fde6IN3aI#|mW$DoDP)z+QKHr*wV5B_v%ad3D*uUhS(GNQ00BWkZ4~WN z4J%XQspO2h++D2RnmyVoZ)FJXF;=gnAM<}fKWuQcb7#>zjYuQ?6lMM%&Q<6jO_Wkz zUcDe~`&rMOCJ;dV!Yw+V>%y$AcY8he*3j%@dI#idxtpW;9uX#LWEzb_EDU z*#M^9&z|ZUBhw-@z2u7e`gd-juZJCdzsmI5@z$#uygu;5>n77SZYEt$H&#Q}qg?8u z70Lo5?K7pu3#8Rk!?rF2qW08?fMr%M9sp#oeHjKXdAbg@SUODxc+!Hc|EAZ8FE9<&kKv zOf{gKOI$t11Z7q-=%WV2VL%VA=ZI`*+(!I~L33xxHr9DW8h&cHSbvf4g zq}OJqORWuk0N&r|+i0uYUKRfPKhZ@W@q4yn?Xn;YNXtJC)u5m9hlBn|(5%vBQXD0o z%YT>TVZf2eu5iS{@Cq0BQKIUW45fVwsy!XyV13OTCa-?Ef2pb;N5lm>{{F!(sh0TS zt?c%&=6ZEqYP+Sgz~%Y3*KIEW>uNRaK)=Llpck32@0kTx^5Uy#9p4VCDK#)zL^d3=F-Z;#~zr;lJ_ND7p#7cl$*1 zuyXOncD~qwKoElOdExu5Abez&PM$~zt}Za9Iwn@eVU3w(;AaP4DDacovFv=n7TX^( zOhoF!Bmm`~ORhFMUmA z(QHHceyG0l_>SAI;qt<9s=G%V_7g5l!yl3v7Em;bi5P7Vr&LUP?uEXwT8CABpiNzN zjq2p7Rb}=8_9w(+^THb!v?D`&h+V9~72Awm%=mu?_Mhjw^Zy-MV!`@0#!SJ02s%Di z1w^Z!gWlaP*t)ds%YDFh0j3sDxljl*kQM?ZQr?Pep$V+F7fr%sI=LW+)7g1jry-Dl zVMyHy>2Q(pTo~Esb(+|Xvx3;VEU2!K^$<5Jm=it6m@;8N>gOOZLmlprL9TzZswP1u z?3)B}tA-2yaE2rvuNNfRu1sTi$e7P4h&6LdTamsQn4j4Yg6^u(EAwo<#SuovPH?HeIP1z51wEe;u%MNb2i0Pgbv4#8 z%V_oul=O;WivAm~rKEPsvy~&o-{#j?c{nAFnsEu#8pWrfxTs-MjaifA(nLbxj0tKo zo(e!)cd^2=76BY+LJjuN?>i7L)y?DiOnE6z)H-}m6diZJa95^(SNJJ9{F#xM9#m(W zui4-as_3YGy&G&YEv6GMj~}&`wwmrGK$0;srek|3Zmqz{pVgX((=q*J7&G<7M@7vK zgIvvIiirvR%aeXWLkkN{KZZ1TR#LR+E5P`i0HHByPL0LOb{l~0@He`*&^34bDEqZY z<)bw1zo+$gcvmMfIOkrD_F2D1Ya+(xDM~zeGXe%rUlI3{Z4~?YS7m8#%pkggwi<$2 zye+fQ`kM_mt8kXG!dRfv-Dpe>Xf1dr396{yT5-@+tz3gc{j}h+&(W`{C0|p_NG@&2 z19K-|6vH@77SCB+k$XN-ZC`K?NzowQK5)3crU09r#a0Y%`jnk@Wlf`fAik489YXjl z^}r$tL5TSiex(8$!57*F>st8hFE0g*M;}=B-Q)1WP^rkB96`ebVN|1vh1V@gv)OG2 zCp`xax(3Pv+iA^?aD+vI|7I2&i~n4`&Yo;Iihbgv2&%NPXWU$s?Djp>9Wg;aOD7EK z9>ABiqDgv?!s-ln&>{N5H2PcZ{TEnX|~AqA*K~k zRXgfh38}MXKrlY$1)7!`A$relDmwDL}|C|`)nPUfeMTRls)~h8o z)}o=1Ofm(`FT+fbqYnlRP@knLwm=(BF_CcBEOL)d4sIXz2F`@+!>il=5dHocn;X!6 zX)K313UJUD%fOXXI=8)}1G~D3Xv1GA(p4G`i{U2w@K?s^ksj+~Rkx4-P7MUE7zKud{~k$W#P*&;7d^-A*)P#p!jT zv0|9H5*}8aRDSHN{iHl)eE8EJDIXv%=uFta>EY%LH!ukh_xFKB#rebZA;|Cbb>nGW z-k$td&zkF5f0T(!+f#XGu>C{(qFz$3BO^ktD^Gw!Db)Dzp4;|$d(kZ9)pB%Z&yosr z#8o1uoclyrDPhTfkFVF^wcG9p1w z61ISM1K)Sja%|ZV+Mx)!3!hvpG}c;Tr)X$;8_F8V=}IZE^iu}vewOG6?A!hzvl^#t z^b%XB9b&a6(QA>`U!{r`W>>f?%ge3e`vu#@mHrH(qD@nms{-zd%ZtBRl#y8DA(GQ$ zx!RyqM~=7j{Z^-^z;%;eFVz_yh|TKriW}1TZX&J^btYkoWyyAg>kA>PyM0Evj;nGr zF`(=PpAL;Kp=79N7(~M|c}`iyxRM>HXkEKh*S;VsBY#T$^o!cCeT$GNfF$%i6vA7a zkG!;lmiy&pg-B=6?r(Kbd#wr@35D_=f>cH-N7z9zx8tT*PK(F(7pek!pipE*{r&6a@_Z5 zTf9ms8jo*IKPf*Rr69qz*KJCFtmK)aGTi@&;om)zSQ@En3vN3(wML#c!X!@Yn6cdq zI!8Zu-(}U%(+j6t*_9*o#x?s?S7qvKSCEx8H?F0Q8*BP?wW8;PCt9ue$+qDFWOxk< z8r$r^h`w5RlrzmK$_$Ks(|IsZ-A*Ic=Sx&4fM{Os(69#d3Vj3ku|8_CY3@t+1g1|G#MD1LxGAJYbfd zB2r^xGjguSE zds%envs=h`eC#mwC=y5>#!)z)-5fI$yL^0eHSli6gt$$1J>&g;!3XSoPKqxoF{*D? zlAXBpW{5K2s!ANSX$6!J;HCx+oe5RbM{ptsT~;%$Mr1gfM#}XoF6n^YS@$c4m>Nyp zxsOhjjH~kCaLHAr4Mjrd=C`ZcM>aFk{mO07Xr$;4p9UVj*~j^-T{W0pq>17DjT=kG z(-0DPu8F}k+sLF)ltn3h);#h}Xe<-r87C3o$3C&ribO!pZFAwK!MAYA!WWy>K+MoA zjM@EemVGs$l+F-ruLsl3EXE4Rm~@E!mV8@NUV-KNd=PRKHt|M4U})x-8RRHA$DHL0 zm{b4nm*fI}x<1x}frRyx_Q!MEN+I0Vc=@7HE6S)G%tAAr8ym)uo^OAKo$^Clo0G+Z z)#YprA&J2+>-A3k$`#bY)Vs|@ue$6q^+*YNxjN8$V&t0U6zv_HzqF<|H+5U3AYgP{ z;;9V?w;?YYdXhk+Me*+$2(Y+CxUG3JdVAbz>;RIkDWeB68|`!hHD)yYX(`u9#9v1a zQ;|qV+>@II0fbF~^F!ZwcweSg1mTSAx#uf2kvKhP*=Lm|j(~Q}tLC{|r%KDHKubVHAAqN|M`VC+V9@`65eOGm4+~(}Nk&HAhxuZX!8Y2+z+d{%kw5xnq z;82&$zacT#bsKUO*KlIX7UiB=$~q&?m)iuAPlnm@`=WydG;L#4#nGtGqocwqWZd*P zX8*4|{Rd4Ur>+sdp4QQ=#(@#r#ctQp3D5NI8X+5y5Da8Tqn5Cl@7d5s^yD74`~~6D z&r#(V45yCS#m=k|UK_U9P-@YH>uU@>J;boY>-Z2hoa5CP|{bcvbL# z_&DmIFl+mnzuPBdrC)p+?D{;iNe%z3N?`}!6N1JAXa^O>kG&udb_EFHI4O zOm?<L4<#no`tpCdD}tZ)tt<_8Tpe^dW6l3<$I6QobRkIEW2mMfMuN2?-O=k5=Q2?JH4KW z%L;@V?ZiY1mxoX}!5|{~j!R1w)OEr0#zMaUFXr0M`I2?prjNyH09~>#iG}6ZC)fjQ zC%gBn4}cE42Z}%1k>QsSw|-^@+bzGH>YeQC2~ zYB6kuIc>=}mpp&H75|iJ1^|I3p;68|tszlcW>}t^d54iI%Z04WWOb^Kz>Qbu)#@Cm z^BRZK_s5GZ_!V3O8K&3D!QOE_Melr)?Ei$_39+3rw^Qq7fBW|Tks0D8)zH^C3lr{RBTp{G;5;KoI6C3z#grUkAgMT4z6S4o?NVk-6A+tz zmbZ=_*pFL4-#ILTW&6`MfPp~BR-Umf%pS6SZ?{~pZ;v7VZw@<3k^~7<1_+#Y0{ghb zznD18DyFuhFI2@1d|e+=pu>otujSi1*Mi@1szU)-a_oUHRig1Pe~^-ySQum^vXkN8 zq&}9K7~&hb)GUj{P@+|j=o$~ue{VDnaL)d{4xhJQkV9tcfAjKK;_S}b`Cd9dzvm`7Zg&&n5epOdv5l=Q_D~w7BM;!Z)fx!_E|CF zRu<8ZYzkAPPv=&L7emKg-y(ml_EJTQtf|U= zP7iv!G)~DesPyN?_`U(aVr`qK=rE8-%&9uUZZ}7d!=B5=B2x7IzshX224?k-kY1w? zMns1OJ%d_WqIA=AKP~;@33$o1uETiTOFsQB1;}_XwLttP)p@a_08DfM0m^g5epdyz zcLA!Q@Crb{m}778p>(KTY19-5rRs1Ztea=zrY*v$D`8x>%D9jiF>DgFo*>uQwE8+E z|EQdTG?s5Seppn@Kwmw)12GW2;yy4Hg%hlg-66)& z`q5{MX+U}xgj=DER`5@AwX42wtOpa+>1l-G6W@~%Sv7-howBFp2?Tt$Fc$84 zbaIQU14&|}*R|A_$Rzi$>Gw#=K4on*3RrR9!Vtna)%b)m^G8aj8AM0{x(H~iZ-O|OF5+Hvu6 z^K%DF@Hol0A5wE`8X*UsHj^=xD35^INP&1f^F}7B-;Y9)+)k*M$ww-DUxSYl&X%DR zQ(zv6%)HMe79|Xn!fLkbuK{A!LRU-}CsK^md!?9T{g+!1F#hLvKn_uEy7BvDgQol! zGQCkKq5P@h(iz$nVCfHJ^8!Z>npf|nnz%nwn2N#*OGt~u0TfGVCa2m6Elf2SO>?4i zX9rsjj1m#1rj?ZIRl2a<5rvF%+i|GLdsgZd1HMgT_RWq$%o8u~K04=kA;nPi2Nb$@ z^M(q8%=_2q2i-pS*D_wiTr9?j?AP|9kAKm~ zYAVcXy3hk+UPzF!2^2IqnF90VWFM(gAAA3R6F5yxwv{ETTD9AVi73x-$F-kkrfVLe zETT#H0!}J+*JWV(_Z?l`U=wmAOy7P@NDkrX1YZ8Xmh{!EM84$@beWdFb*+B$UnuJN zL~gfe{h86&FEX8F){x`t#ghN352@ly|#pLOU2ow*og4;_+}K(0`=0FX89f3 z9aeNSbAxmlv);Ztda@;4;GMirP*b(xo3A@gf(6`G*rfd@2 zv*{@m@cdRUD#p_4yt(F>^v!fC*@vMsgR=xS15LZ3(m#NV{T!7ueSnRJv3}bPSya<1 z;qkEWA$DXfScNZ?_N-k(GhETt7uKo;-QS`i0s9uve9M4@Oi|^1LF!ghfu1tRHs0=u z*KUA$FlE_UQj~rT`j=s4 zz3Am)VZ%<>J_b`YxOP&0P>mMzbV09q9n1rN9Wt;CIfCWnoQd6VUx{+G^}NsQ{3kNn z3Mf)k6kX1KYqU1c?UD7tP&)&WH5PBa@>d}6nS8^e9$!_3bVO3JC2)7?W4*GxxAJ^d z99A96pH(P1B0^%(aDcb6Gb;MM`)#ptS_F!V1>{b(Zpb8}U5$65u2Ox#Hx$Fwt|f+{ zg~%$QqP~p=JzsUe4<1n)WW;sZ`TqXZ7=L_8_mE-%>G~jI)L=C6 zo>Amte);_H0k*+64JL@a=M?qpbfX%|lx4vCMg9XR#IrEg*fP=VfyYWiNR@*oCg|vC zMT&M(MYg_Xa+id`700E)Ta(HlbZNQubP7{DFNmB&Vn!aWc48(ZNCyQiee$Z|3!aZMV zPZeg_b)Y20b3~R}$q21L=fy|pOv>#jfZSS-e;jbU(C14KbAPk(`jkq^TSo7n(DlL) z=kYJ9j`Nn2&HnJ8sPbs~zivSYvL7zf;SG^Fm20ZuN@|^FKe&KT%mw2E(8Vb7^%TN~ zkwmIFUOp`Qt^f!-w{6`lEbD`b?Y`oXP{q`Q6t_L!+N9k( zi!IG+ITmN92EFc}apLP9R;}+l-oPZfe(xR|5J`Ji9|BZJ0W-dSMb?zxJMCGMlL=%s zWa)B>e@r|grpL|}wv$ea|9l0Qv9+kVg^h4+MCwJbhu1ZlYhE`2DEi}y@MEOY}to_q!U=$#1`Ee>CnJ($?egQCuKgu6)=B&*|i z|BR|n&~9KpP-Fg?yV7A~;_6D~YhDHJMlH;YWMQX}oTL%7UbrLp-X0>cB~J1l*h5(W zXHwk}icNu9nAcOA1-XYr51#(?My6^xmSi4XCr{*B6*@l{5;x#<&WpFT_@0_4c1Gk^ zBgEE-{L$4F;qKs}hbJ^w7;B?m@;+Vth=ilp3|+J1roP}WP}D$z!x~Rkr61c7{21W5 z0v2Y1Tzx$ddUdbs93%e0oF~)$4KirV?W{#Br-N>ch%I5sZEuG_QHJT&6iiPgi;JWP0V#3KtOc(;Scw=F zqo`|5otYKg`nhG9#;wg21J z3&HYB%k{xvc!=@!|7t%SULbl`!(+bfBV#6G%r8wOl!L)v+GaMmr)x1s{8Th*1QcVe)Et&;mbTn*wBYQv2@)1M9pns;ADY^wPqrqh_DoUN%afDFM zw_OHFxbOl~EPiFDMJN<}+MoBPab&m53MpcC=4NB&B9sF7lFrGN001-KmoVe$uqJ<5e)fq78Q41AbYt9Q4=&dD&z&3O+enAs$5!<8Bh8D+13~Ms z##|FN?>bGY989kA)hVUSnr?y5TK^W$YC@X@2p*Xu{6j8|7H7lpoiQ>$uNs0@WH_oj zN%Cl9?1BcX?6NH_LPaFu8*DbB@GXxQZ4!IUeJPO$`Tf>I)pGd89BZT%Q#7Qpji}>? zuJ#;LmA6!qjP`zJF7RKpNSU+*_U<_@p+gkOh^>$0W_Rt4tN+zWXdVFt?Igq}J{EpA zCf%XuXN?-S?*R*5#&)M_s2Gnc6nM{T(^*5#sOD z=fvUmw=c_ax;8ng@Sw8a63%bjnP^M#xZq!~Px}e>iCw{@5VGz5Ot^=6WtmB4aoRtb z*Wr;uMG4f`Sxm8|u%o1Vy@)zA^Ga;Tb(0}xEomWyS4?S0UZnx%{bLhK>D%ddRg#|2 zHI^|TCT=haTKWseHG96^?EbiUGS|eT6WCgQcp|Q_9o<9V9?;YYH$;itvNXtz@0U;1 zbz{a@3%AHrCJUl2H5Vo?uU~B}DUiDm1)jyAyvzV6xg z@b2{PapA4AHKTX>_`tExLUG2~GdhR-q;WQJ3*oP0gTAD1G~q#p9#Y?g$8J1@#_#|T zxq7Ga+>fAA=#6QWOnzvRSEK6T;bi9ivLWM>zg1FBflEO9pjxW?cs!f+Um}3*AJ!?4 zO`vhZn~-B6?P@+E#Lk5aG9<&mM3^R6rkZ^_mSNLjfq6CkgN`tFf*IYGDb*lRgH1k$ zsiyBwzp~n{qzUIwwJW*GgP8qjv<-IO%(^M+2=FLkugja)Q?_81icuj<^y|4BGSLK} z?GKN7g<=NXH>*J1C@lvxZe?uB${3e3Vu!3)J0#u*!QYJR>eb%#(4;9xN@U@ZRW$1Z z>o-?9a&2~pWb8YL8m;!w9P`U|_j6bV%hxbAm2=x>ws;07dH^*u(#+S<9gUxQaQ6*c z*D1Vn#G>~19Xx90dyXen`Rd-bU9xwJCi%-V+`5-E%tpNjLFz* zOz1^(6XQNjfKmjhYBOJ?DbW%GO`o)`VLQ>9pnWBGx6r)X$K zr||Np$YJ@lO z>i_FAd%^tES!eLETUTFia3!R1Vy??PAJ8WnC$Qz`V~aYOZ<099&B-a0Ygr0D?EAv- za3`WY?=OG83Nc;V`^nftYwkjM+t1Q(1iroSGwsKr%VGB?tb_faw>jmm!kA-#pa}7> zFZP77fNRk)nN1OwJ1Nr;BgQ~`nUqd0bpcFUai0iNdUl}U;5MAKN6#JaI+&Sw>wQou ziSfErd8`Sa-`a)GmfR*6zDQoPV2ke@pEbRlqq+o+ZKAF$77R@={IpcJUG3)h+;;U_ zdEke!T#jad>w;|hKFO%{W$?LIf-#-=OZdF8!m>WOqmI9f3whDB%;h^sQE|A#iB;sF zjF@NxLHS$$;zM60ad!iI5_^RA3t>-5EO9#jO4NbRG;pS{^|E;5#rt*nEP<*p266q^ zKQZCy0#~l-nPS%UUwW621=6M~Tl$X{Ld#cn#4)a_a%?Tal!f;v%{F)HU}%9B=oij% z{Sz#agWF(s1XyG}KJW`^m*LR$i26Ou`{?*Z@`GOF_kG^Uc`J|^;WAWo><`A<(LyMO zyqgaIC_t|nt5wad2u1GK0zIwbb*=iRhwC@YpYHLclQ+oJV4(Q2MPDHsH0axpnzOkNXB9w+OWO*fd3=Vxi znyYQ@cNwuQc|A?-$j-O!mD~B7h|pJ5F@{o6j(ySTwaC_sPOQBx0=9Zpc zd6KDkj95=%5o91tRxWuvy}xPCFLX~Fit2&Bl_5-Z>ao9voTjMSivKs;>BB;jt-Zn9 zd=6dD7`mM$s9)JkaJAdfo}Qv4jhQrd|3S>%$Rb1bgkvRhWM2BY=xIl&MPtR~dg#vQ z+=h!1R|_atZF-2JFPaR#>T&fAGzt(fr=xJQSqa6*Rm2|Po3<|Y7C%Bhhq(OU)0G9w4PgBD8jLnn=Om2fvFC|~)?1&O@! zeCRA%8c`s~-*274>)?!o{56C8CdH4~ewh}MMDkZry!KlU`7NSMkK&2q@-7^!Ler|d zYzBpx#jNxr;fC+mbp-_b@j@FD@`#~YF6UR6sA?uzngLcFaI&E-foX5B0Aj*%WQ06h zlJ7ijq8tdI6n~4q75`g}z!Tev5I=wm z2=mhjldCnPovk|Y7Em%?^8?|VSIIf8XA2A(CRb)DnD?S{5b+dbgVjf8%#a*D*_IJ7A9xGbNDL|VBr%!xC8|95Jw$pqzd`oYHR z(Zg8(o3}A%sZANEC87QB1lRa6nfSpf?l0A?+fH4ZAKCcr?dJX3F0E}*&+d0l(`iNH z_;@a#HjD=AJ3B7Kzd=A{#JMk?6Dw{{XTMe(y)j&@R=$_02(}sVX9tW-x~xYqOf*?Vjy!cv^vr~ku}}TrD2F1Su~W3I*fkQaMH`dQ*N6I;~1GnE$LUqiT@0#E@pm2Lvc&B?Imrr6|Y_S zP1gQA5G>{9IkC<7@vPZrg^43fc|1(V)+G?A3C3V>;N|%8nnY%8X@GN-zK#Hmv5NXv z8K^iu+uc*EK^H($h=zi5?o*PX>K3k9l=P|j2m{e?;DAtXR{O^{A9S95|EwYrg40l% zLJi^>>fnv1svgrjE>Xw6k4;N{FwNj6*Q~wW<*qM{iXjq?>SMyOT5JAFz%TM-q#VlH zmr2p>8T_EFu8atM0v&}%&}IE_O7!uDuFK~|AUUpQRHJ`Gaoq|6UCN#O?inbo$I9#8 z5f1;sZq2W3oNe^W{{%4%^8a(Q0lQ?~55Y6mjYZjSHl^~}5hG%W_2Uhfi^v#8Y3evI zxnnAW64}L;)j4~|F-~Qo*=G}qLI$c}6;wZF+v1z;UwWI9v;+mQjW@8#Y zblAVPD872QV6N=}7BDB4205DB+M1wT!Ye?{c9Sz`x7uD{SVwP^gbA~1>d{i;)CB!=VamB%V>s&TM~qd4-O}s& zYd<#{3fs^|Zh9u?q>{Km>lgv$g|U|=-XY?wNYcY~XETIZbmuX&=HcJq-z%QuK%-Bl zoKJ4?WLGe#ISL+zb;xE{iiAx0xL6#UF`Z&0Lq~mo(@?KHf(u=1%ZY8*Wn3QVpPVuJ zN>Ot1lv29&;I1$S5`)!-`ZLWxM zdKxB;N*Xi=vz_5o(@*c$IV0UWoBPL}j-I@8yA0wt2f z)xQ;P=S}1m%hq;)1PB@kGPt`A?u6hj!QI{62>}Kh+})kv z?(XjH?(Xt&?z#6}-yi7JU8{Om?fqEqzRO>chJ7AwZm%SNK6)}KhK_;OJz&%|roq+Q zz1ykMEbsre+q;k8KO=~aW3nPJmT<50o>zcuDw+NvY4#-tO-}$#fYMSCDFPeJi3rr; z_+ZXh$n_`q?vRG^pb@GQ;$QCF6t4mbwb+|>6AdY05*hB4Xk9EY)OP5d0!;CFw55O& zQuINg88Xxec^%C_ri7T8GL|crp(x#N+b9?fNtTpk-_zo~uH>(>LODVLL=^m$N|Eqo z!{-fY!9|432Rw79HCn^teD|k=#3X)l9TB->QX$Il-K#1Z8o-)Gf8_Z5<;zPboXL$k z-Ii@y?{|X03b$7gODb9Y!c(}l#)*)>$UNcw=cId8wwkO%+!HE)u~jS}Aa)m|TiD5n32w88BzX$Yiz!;3Drv zLcYmy{oEp}uOAutyXk)%U(d|{^j>_nYp#EnDli5s`EZXe^*RUw1N3Rxn(=n=r{b!Z z=w#At5D_Jl1B}0)B*`R8R+>35r=tD*It7p!dDsk<`&p9<=b`d9!1q*jnps=w5fZjL zsIQx2CGvk>0P#)>;zM(XmndMVFIiEk*GksRys~@Qk}EQ2^ZH*9+m#Z!79Kvgd<9hu z&T6mLz-ffiYO?qP2iNYvb3y9xv#UaFv9tFgpaPOLAUF`!Hh$LN-5rx@@{`*-j9Doi z%Wp}`pB5$TSy^tZNlV$ZE7w$;S0&+jCaK~eT?T4>dEL)zxnGrC$h@CbEc6f%w=HLa z!eEfM)*=b?rnZx-^&Y0kY-4A)T=>K}XN$aRp6C`H2mBJ<-;5lAPkMSc21KJJLYy}u zG;>z1P|gm}CbD>)BLe`IUL}@|=$47>ydX>aMh;K|znFR}MKnX-uG)>swx^nAK_~yi(v=W zyy5(hq4SmJ{5*dGougIK1MJ925ZAa(BIzu;KtO8!z zY29P_oUm6fMp#6=V&%1F|A?xnG0r%Au_8@ctoC3{f9ctF-Ht|X8~h4>W*O?*Be|LJ zD6h%#VFK|s&uxf%ORm4aF`JUSgTu7zMuex}zgFEW4r5oCoLkc}F!;_U_6E#n^k<|> zY$9XL>4+C=G3swtnA`2n=)Lsn;CGhkcp)I4stTasP;p2xD_udi-Ok9P(Ook_cKm5U z?sF&^Q}|!IhXTp|%_1(F{Zg2O<8ll*6%A{lNuKESc_i*0|JRj?JuKJ+=!LhQ0-i33ZzzFWo$vHQzX(95?!dhRtV;R>*k#&!6YjZ_ol$6!itgw3HXs?c zQ^-s$;3>}Q@~0d(^I=Ybc7zoj`o&~5zR_`dZBMTw2%tImDk+n?#;JC;)k%fR{oxC7 z<4!|@gy9;b^D(`o%7IWqqFY+y^)34iF-kM9w|=T&dtY{2@$h^(l2v_S97ah`-Y8An z(c8a*SNwnS3cla}K;Q|@Bk#B8r)J#%!5zE3+-=%DeN3)XRHs3Y@lDhKMS7%&4Z~$Z z1zH3RLF-!%VfnW!oAh4T>#eWRC32K_(zybs=Pmx_{I8IIidYWSnJZ>vs~Tj+FKj`) zyC1m1ok2+IG1+XdCiBRC)V1c>PZ&x1`#SiCqjgULsL}?^u*ZnY+3kC{` z!i03aeQu{^0|A7Z3=x>;#`V*K96s*nrZ5b8p%V$C#+#sLa?y!pc9F|OeKPFI35&SY zTF__CrU}5?mh3yE&TAhtV5~_us}e(lzrFHrn1Qf3*LH5#@>)E#;m@1~MjpSxN}`(x z5Am*;AIrl&5$sRmRllbHw2tBnd3HB&bQy@i0L8v8pgC;pYroMW-Gbx|jdgf~9a?5G zG3BwTwuV1OX%fqJFFUI!4}zs+k>X<9c)uX5_GLC@-#5)}er<@{OqI;BXDvi`Z6>7m zBC7}NkPn}Oc&<}x%*XfJId9|sMI~WSd~sL~9yMx{=uWQLx_)|{v)<-P8HL7ChE}HF zh$uIIjcA<6mY{KC5`e@~*5-da&gkoRuE`whm17I7@4BR2nPq)=U4KQrqb>KB%;@ge zAZ_Vnj4omv%dqM04NU`NMvBLBS`n$rpXBTNCJr0JrV4NA+GfPq(wg}PN=eeQ%WKf}fXfqG&vDtWWB(10c1zmuXuDrDp*{$|A3| z8rNF#;`P}X+0$+3Hr`*32)4%CUT6x3Wr&Ax`A+Xw$QhVNwz-3Y14!B2^9l4F@2!jx zb3S<;kh-+^e)-K>>qM!C-8rJqMi=^Ahz!NOJNdfJdw_M__48+H@{u`4LodoulHGeh zUl{+}$+oHmJV_7sC%p6Z&0--e3&fo#do3e;P2I#n+WQ@!2OeiOwZq%{Z5Gyb2U;G@ z+Gp*TdD*kRVkU|1d^HY=Y%T|8mH)#uJ-?weWZ}ARidfN3CF?>gDQZ#8SuMhr+rW|J z#8iAh(%`HM4l-#2c|>T_kufB&-u#&KLX8)lXZGzWnV*J!YF{-TO#Q4LR+tP(y9TZC za0zKMZ2Pvs?+!-SkHGnm)B zVBY--(mY{S7ao58WV4X?0re(O)oh&FMR^=1+I|czZk!2Ll)`T33U&z0Jz3?=tzNjz z$21Y#eTl|mtQQ>vemEhwvM$|82>4-VM#WgVf zg$)`GYET%o%22)ko07u7q$%oZtTTsx~vk7gq!&f!TW*e&6(P6I;CKg!Z#HTiLtETp}nBNvSGj}VP2^VZ2Yd# zhXSl;H;IV4DXF3^3m~ZXz1#^UhNX1!5CRR$d}4J{2HES=v^a$_kPL`B*)<5~BbbbR z!@v{qo&0J{Hl{iK@h*Fb^roK6$QP&Qotot?jXk}|ay^6UT$V{uENokYbB@ag`rV98Usv}f z-`&oUW3<@yDDKyTu>I7$^$5gtbwNpyXS!aNhB9DYEGpUHgSruJW{OCjN5MCg?h4d| z(?g^nQ#zQErRPV4t}D!IHEm@n-g&V)DQ6G88jQv{XGrKdkRu?0a|aEV6I5Yv7m<;q zS9@Zy_zJvSB(c>s9O};P{-|WRTi}kn@vlj2q)s4VUkoeoc8%|1fi^ESvE9kVAd`WC zeLS$%4Gnq!KHNnI?hb2Y5&@-KbPlki)ES#9lSD#`1Q z6zXm7R&QhAQP&bVx!Ttxnk-}$LYgUMXPJZ;&0u(_|6c9MY6Jd zpP1tg{e{Q{zN#jLzA%h#3H#-sN%QdaL-vNY`YAen2Q~4C4BgwmE_2?w8NLi7@7byz zxjJS1dm{e@b&TTNqzFm<9CZ#1ecWi7Z~WYRD6PGzbMM$YQGwr~tT{Hv!~Nn5D^;o; z@%*RsYi19XM@uuPg^|&)%(ABM%ec;%5<;OW=Vex7BuY2E{2$U#xZ@98$2tM}6f^Oc zNn%n=h7sW2)MQ?{el8 z0~@$+xDCKR5I!b+zJ_ib7@)(UUElAh&AU^EClvCS4D9;9waUcPZUN2D12N|!X$ zrON^|p-*>OW5)1HF@E=w$<;TTaKx1rC7EB2>qr-6+a4q5ZTY(oOxMGMaCi#1Xmgzt z08JqCT%c5K{v~d;h_P#;F<&uM@_>TJN}RUVKfT9;C? zo6Za}&6o9a&(E*pF*ODCCZ9&1@w+=ut#d`6CxKYx!QpYPh3HQN6*^c>P5&(2yTm`R zGbV$y=y25iBH%DD3e}G!YvWOlL9)@?=%Wv;^?OZ z6Tz8WyPdrNm`sT%o+Swc2bb+p1KfgOng(cMAsbmDs+U40CJuz;jaVfHH{z-5^gKyN zhF(9H(!S8JS51tc=Qx@t$5;z!sWZu55jY z*g4vcBE+q2ww=F=V-yX%7$v~f-*pEz@BBQe9Ivon^)C(~He5L7?=JN9g=FHwSQH+# z(b4Sr#us3Z+OoGJ6f5N&XKF^>-80BR-akr7gjW`H(zDpFqekDaKsGjf26csW;K&3b z=Z9W?-by|HtntkSqZ-dzjkU#ODv_}MN2L(#l}^#suTQZ*d3vNR8x45K8NuCw>%F$B zf_6!EGtIOu<1AB#m^ZP>k%s+3nq4rY)FJuyloo{rE2Tk?7oi)N9TXF0oGdo z=yNFo@=B{ClsS+y17l0N0`PTH78YD7+he*&5H0bTr-rd{4^5sG*RaiphbmG}EX5TH z?+|4e?b7*Iv{azjX}0{{sKDW0uDKWSRdjm07_Pb_z({htrM3dd$&!mLao{N$yaM?V z0&R5-sEAQ92!MTIOtSK#s+x|9mW)y@u1G%&$_+aG!5%>7&bnXhj*0x$dPrGQBg{VK zD-ql<82oU}t@fxr3@j}jU;sE#tyMSGBAs>%qzw4&4Zj=e4yVK&wCqx71;IZ_)-uohVB|o zt!9W2JU+bNIb!R0y22D6VrkI6$Y%7Jh3gfng`MJn;1sb36|**0vPAwoT6n8eio5mvd84BbotWjbYpAh8-pafwTqe2{VT!gVXGXs zCw$NTi~$6c#P^~P@+UOCBq#F9ut{BkC2dU@Jrgo8qC&vN&_qJ=O;BX>;>3b$TtMwi z=Zgl6^0w2C(HhaOpOcioJ)Cr&beV2cn;1Ik{T{b*oV-rix?UcJmDWSZ!gIdnMvS!3 zv$VW(`RzKd;t}*XJ6_(my?Neoa?Rbb?{XJKyLqi4Qk5n5!xhii2PVix>mwLu{OVr+ zcRN9KJCrq6cUi8%RlC}whvK`^hZ?rw_Me-Xw)`}>wb_}9&SVi`_XkXqT|UKcy86{% zkbS}yRh~XXO|4F+;R+~%r^e6gz>+7y7KlD3Q|Fvh_F?en|kQADR0G$30{m-lLS`{j_y6OXho^N}{ATNW>s$KIx|sy4tc>?DZjxv;O#yy<-MvsBf{- zi@{&L#B^boEv~WWL@}cx(|+sUro=%sTJq5YGhM>tE&Lh*9(SjGRa*#auBUjeY^Qzk z%jX>zJDf8!blps$1m~%TqNh!>J1#om%J%ciiO`Iuh-h_05qy}R)aa$|&euYra2DU@ z+`bHcXgI9K@i?YEP-kz4DUY$cCV%l3YBoa;tNi_eg-OST0fh}%bCJWSPb_weMozeB z1f9AB^hPKEI|8&o@vSw^WcY8YRL;-&gWK{EiG7?6XU_@c9u(We)&!AD=JIB z{WKAzYtnkr4S4HVF1cRPKg`nhyiKrHb=CFz$C~Ai?I_2!nT|x4cWDyyLsmrzRs&G! z(RQEVM!;J;0r-lnrM;^#)QhN;S#P8ckDhl;FAH@B{Ex_~4&&!WZg*S4t~Xg}p59cl z!@$`61cTVQ%g0rp1mgCTT?b|^((!c6l=}5xkzJSH7D9J#I-Aw(XnWVs8%Rc#R6x)- zOr!$!X5H;;kBu>?iXk43z6V4GCih*N z6xjJ_K`BjAo0$T%k-`nk6X~qXaFSJ6awe_z0cui+X0~@HUp}xB)n<3}5H;y^@m}4r zk&Q-|ep?2_E>JwSyNV(?e3XoHDLk)y_~Z)M=!VA#e27BVI(Qudq1_FXILI=ZvU47S1IkmQ2ENs1{J#S=ir1RnE&NT4f_=i;StgG>W%tA`)b4V`?&UJ$x}Cp77_pz@sv1+5#_Y#oxJ1kKxK9829oE4j zw_e_)S|a_xax#yozyi0g_(tA-V=Iy=dTa8&s;n7yNv;ry)ic%+YDiE zVITY3jmCxN=CJCo{XJp_%eujBy#FwZ;eA+!qx~Q2OSw`zD>FHz@iSI~&r?-!1U#RHLqt({6q#*Wfgr5BYoJciNjV-td z6^kTv5MpEG(BW}EVLa>wDHn^1>GIJFv;=`Xcl}5fSIN_k8kdB1Dx~u>eI4DD)`$jX zpP#eGc!f!NI897)fUy8uN_YljdtIq1&o4@W#FzF zN*|3b9UUc~F0V%UAF%m96dJ6XuJx(5F?c}MN)f<%qB=;Zi`H^zYaxo=_DyRqDA+6+ znoVfb0a4`QMOMdOeAC^;hsB{8t4`+DCB6Gzge#8UvnDr4NDv`#&vt7e#gvzs8`_~k zZ>m0e0qrC5YPzIP?0^n%X4ZQ@=tb|t<4|qD(p1ag_F`3&MyAp{;wQo-)hI8?21?L& z3+|zhejW#=;$>OmE*`iuY{A5MA&lEII5f)lnH;Y`r}DWaD(yW2cOtA3kL;|mUw`H` z@vtelf+k_7VZ_}HIKjW9`hImYvR%*MefK_*PMMgR@E_$i8=yIXjkxW?!Ia0sNc-YB zq3(Ckz~Ya8EYj=2x@_fowVlz?iO3SY2(0^X2g~^_-i z^W>RoYBpulWH^;Qv8O56Qzl(cXaC0Z^;kYHFE~NMs${L^>j!v zVv3!HIAmwi=aO4L+8~mWbzMvuWD|LVPy@zO-9ql}MoH~IkX$3R$1&M%2?X7w2Bqu% zbm5e=gQU0nUQ#^c%J5ag6(;H@wVx_rZHeq0$h!sH@*Ofg>kpe6T-&NWgoc-b48g%Lhez)Q8VH#&s_}p ze?p!jK04NpkA4*q>jqM+h{K~iXH6}G@I6o+E}9sDA109^PP#buR-XsU{5C4S=0a37 z#P4P#!I)BvNmx+hVl8(-25u!Dp9F@#pYkStzdzGNmV~Xb2OvL{23jbfGZ-H?C<28^g{lE5s|f`{zmYIGFkayWHaF@XHHPi+7^-`WvF_)^&RsV5Urx;$rUy z!tL58x8uQh6WPlp?Ymsji4Hp$nDWedQ5&aqQ8~=Sp5yYC@NQ9=%trsL=h|htR^qU4 zYR@vrvbuf8+W`HE=?k~kiOJ&xpa_V2g85gNk_UmvZJ#)<_ci6yGsVJ~Ne*J1i7&@) z&@a2_FV4(CDy|jp>7u5of~LHZb1lC!43;A^y_?fsZkU<9_kv$J);+#h6xVO0d)!Sh zN}{aS5Sv-V%lKL#B#Jziy})Pi0@F3^T?-2KGkE!2-1&TpToGb6ZSht3>bcGm^v7V^ z&l^8VTQ)Auc)5#lC*Wmlx3SF_;Vi?$+vIv>-sjG^f8)C31!;#sag5}h`MPJIJd|76?a9&M#PW*7%p|tg>*`RHEzc*a^5K^Cnb$qv2Y>dyLkd}FN9_4`t1ZTz>EYL{@v5RYo%u=$X*U~v$hjwAQ-`I)^4o0B6DQm@XVAi z>h$4JS&C)+(SJe>4%7nh6Y;wD%KEv&vt)r=9l(6Ehgt-veL7?OzqCq+xH1$xGcNTh zRQ1CaveL4DsxBz=Oz`u8VNtvlH9-z}qSTWh^1Y{$G?9=CDZ(D-M%b_lvGyT{YFCYi zw0EZTR-Y7LnYZ%py>MCch4v2L`niiP5aY<>gTdvi@xk6=JNW9pa76CosrJ%SVVX*` z%cFr?J2-f4oijO9xnaJVLeij6AlPrJ zdMCF&+4LbEGO6Dp>H8hCB|knnciLKrd4wbu1L~DQ5Xz^VJXltibZ9fRP%=Ohrnbi% zRE4P4W)^!?VEUY3S9|x((li(MF>Xj~c01`bydWRH!!$NpW!FmgpNh||;&j({Z=0RKb4q5(|#RTF`B{r?=%S)k{#W?eRsk=0w?~C zHD*v^n>@=%PuXaeD`Gr|3&-JPH{CokRw-Cnti1Kx;DRf7$1x7l87pN@)?ZUXf?7_! z>z-vH+C_U{mp*XRibor4U(^hVk6hkYDO4x|H)%OjsB;=C&~usacJy+Kb{?^xv z-&`4Enc7o{N0G8%7iH)a9IM(Z6ZuK}+owrxM$_r%m3wYKA~>R6BK9_%OI*Gl-Lcfi zaefBxjpz2ewrTG?IchJOr}FDN5uU+b(Y|kkYQV!rqmqibVm+T5#y>T&lJp4_EQJDl z-4=5!n^`c`QMw*#`+vQqqV_f6@|gNh?Gg|o*LW!BZTWyQ65~94lA{<{hmKx;nhy5{ zhQ>q@sCFBDfnH}N?5ACNb#=Xd+BbKO20a;yaPP|Lfu46?N|n=xdCFdB<=yX~F+%BH zX+!t3yvzSX1it7L{K0x~|G%L-FhDP0)6wg2ifw6#FX`TNfjO@8 zgJ^M!|bKbM`zM z)$&$r?twhjJ|tC(-MIN2!zm{P-n*U*RaJj2m$T>TM3Vb#2VY71#z|`yUN|x8|7tg* zYfz^hG+ZF5x0FI`z*ikc@;EIy>;pXQ`vJHr?mMl%u*E9u2BKDMP4u|^yK111Fg1>W zY{8>9&+4z1-nInkUbZAv3-5S@IZKT*faTG?N{^2eF3q&iGf4_ty^tX%V$*J-o_HEF zIBS@XZ$pw%?0UVz@*5e%RI%<^s|`4?;0(Bq*&)>p)ihp{Tr1%F*WT;lH<7I@wARaC zgoNf7HT2qw8aoM`Pmj|yK2p;@-~@Za0*5Ly!F&K`;~jl}WcveL!t;9_kOT88I}ONr zcii3s?_!Ngxz+-_^J9FB%p(O}El+6xd4w=2;mbISMvv)5t-FMGl|3z*G!;`NIW~KH zhCf}@=MmykROU=t{*+Dos)I@=+CyL^<;aL<^$iXKk`;V7wh)y-@$hPp=sg>eEW6)% zyDRqBy_y2bI^x*UZOg~0s#mJPpS&c`dBW*4`}g`>Leh>Hn`D$K8e&V6Q4q*==QN_z zO^^>7ZN8Wk4)Q7+JG_hWd&n{N@w|7mN0R2!w)XT>@TYocKc9MHXya*gJ6A6zJ|{cd zgKP6(YrT=jBaY=YgyQ*k_oD(G$X5x3Rcu%k|o;FD;!zW<+#aDkt8c`_O0Pu^P3p!<^>evI_?y#83XIbKP zub5bVawFO$a?=+V2kCcJ|JPls27)H6)NrRl1B3^*W|Xsd|CErGJ4DM zDiue3KM9$E_jK%oLH7|Sb2-CyRTd*X!p`}d-TQ)PiFMZX?6O~eWQ#$A{&91&JB6VQ z?9+nXJI-^DrI3n|nMp}N^-kE;wVPh#uVO5HB;Sra>M<|RukCl-uhYHmwa;Sj+G<;4 zqQt%#gM3Cvk`%V^dBXh&wr$p`s~~+rY)Ky8;fg-FmvAhN<4-;O@r0_5m@fuX7Vky% zLtI$3sf|TWpp;S#@_DcNRrhg>fTJcC$fw1ur+{Extfkbp@^+*&c%!Q*$F({W8fP8@ zNd1GYgO{MYyfj4shDyZ-Y1E#%azQXZm=x1Zojg7&ELg^Ke-$PA0xkQn!_U;5au47< zbK;5JuFmgQc89}ZPXmtNyQSp4NB!b*KJ%^Z`W7>?`4~b3{lP71ZeVvMP+abYf#Rvs ziG<3QGveqp@Uo;Ne{yv(xGr5hUtp@H{4hg(={UlUB(t=YBNT~gJ4K4`uFD~ocJ|+9ZCcZ z{Kge=kK_5dtwq1(%^T#bJerY5_N@y+Z*bd!;NT=;ArQvS>bKXiTNPH-c2Ymv_5}v$ zq}fJK&O{_jILM8OR(Fe;+M5Jx<^aeo1()El?1VgIA+~NVlf@7n5y9{H31@gD7roWD zbV=mI?SKgEUY=Ff2H|9A*Sy3BXCh68&0Z=nZo~lRpjjaw_P4MG*Bv`>4M%IC-GLu} zSw66`O`CL}pzS?Nbb`$}>E#?zbvu0H=$441xP+rm-7!7wC(827i82kG||;xt^QV5; z$AZa4?sjh+_UHhaJrtEWZTHu*ZX}~uCb6zsc8-BtoT(hQ>K7!#zC>Y_bxH&^Vbj># zl3cEZp@AS#3U)>GSqqzT9V`Ra#izIou=_uz3!WbgRT@8fpMxDr>heB_wvu~+7;h&#{;%pUibqW$IuA?ep0SVj zZ&)PhJgUAMJ)gYKk=wvp?RRcG+9ryzbI}O144iu!P5!+j*~oe!^-N>n4uv-4Su!=l zzs(^2hwE~^`|9_v?e>M(#}u&ddg!RUxWG_GicEpl9M z)!TZK|GDFY_kN5*y_$_lkDo+Cq5mopGl1#&y=U*}%gYo&dY8@np^3Z*{&Ss5+c+Ed zP>MBG$0KHYSbgIATu*jvjMmUDecZ8(du~AlU&Q3#SDwcW8OzLXA*=d*HeQ>{1Jjs< zCMHz$tuJ0JoJ;|gVivc83+mtcN*Fdg2?=oQ zw;Lv>hMWcLXU@xel+t~ST#>NrE*Bd(RW)ZBNcjZZ$HO#^E;iWg8)yfwF zlT&rtyLM%)JccguJxro;pt$R-mqFN*%o}}O%qs$IPcm?5R()^0(wgnKerxV3%WAl- z93fDFd-Dwaunw>3T)^QlwNGRp=fhyKLdHM;!b_mYMj3)TxhDI9u=e4)Tu?Q@c~_ z+^47OFH_0;)q8-Wd4f!k2ymw36;>Dtca3CH)Z2&hxEv#RA*neo-pmffMCg|nB5yK2Q!^i~c4Osb@L!Vm51Y(PD%(eqN=DK{h@7u2NE+)tOu0jq*1bb0Rjwie~OYd zVKJ;5sVLsn%!m|RP#7;{7wj4jm_{&deIvy}ov};sNehoxH-I<8OF zJflk()2p!XMkq^>KN?F}Sfa#fmQ1>pWZ)NK$^@#l6NxZ$AYV=xfs^%LU!Ks-6zx$a zh6!-)yN3{GFSjWserg)Nf?j$EjRb5fzL&RgcCY6=0vo)CL&2uaUAN1_x5GevTmyam zyYSnTPT_xVClO&kmfTl%O<*H^JX|X>IQfd!$PECY4MJUZp01y~T7hqk;*+0plg0*U zKxbu0ppd+GINA}WPJNb&Avf&#KGCG@@6@vHDK`(K{``DAV)VA*ovYoaKobf&3!iz+~Jaq$TE^`3^*~09&0;g7(NqeSP`%1V&@IbA}TgTbou4=H>B}g zEw#}xIO~PlQoSBt=UwaK)mxKeF+`?4IGaX~Y50(`aY*~N6izir5Jy;js6KvsnqZh> z7?*dDYN{2*~gCy4j7EgHUk(uh$y zx*T%EiW8}VBI@e=DM2J@KQ9U_p`R!ksd?c&_e1f@16k>yPY~VI`-b8|rJ0;c#vbWB z^}gfCm?eN8Gg!wWMsEabb)mwEg70ZZ5TWyUV+wk*cj5`QpECKVpbzo-GLSF4+_He( z?S)5Oy-B{Y03+k!vOhDgH?&Glwq{wd)c4{SEDXq!gO>cQv}Ry`N zyx!e*^F+AC&J$AEytaUI*Nudj>Ufr-7HykkXiuuedDmpjiJ5CALR(>knqU2GB%nxk z&SsuYVlbp9tyHIs7hdfJ(qY=vNVe7T!Vn<_jfwg=p&d%IU9xZE>2$1geYqV9*YCJK z?pS4!)P6fkyIs?R#BbFVynWDOD- z5*`UO9*0Nk_pcg6treQ2FEIycH#FLX-=<6v)lApA^x5~i14Sv!YW}Q{f~o$HVu|gx z{jrH&ThW{Xd1>HOhJVrT+Vwsg5v~ant#p%Qo>SQ&{xItrPGHE+I5M@6us2Jjn3QF$ z9fAYdZ;v2PH-|BLYAH|umaffRyvVM~M;W~}vP=lAjBdrmSnNC* zFZb-2yItGgG#t3CjG)X4bG-h-jg`F#`$ojm80?evS`=ZVzY3v50rAY;fha=w3fs4x8@8~BJ%*r235bxq!$1(8JU#9-5??xTH1jh^fss`027I>EGh5s@OA zF&_5XWtsyzbF8@xWA6C$o8sv1JUR&+Gwj@`ug*w}7-c5sO))bi3a0Gsyy}oORc2cp z1_pjR!uyg4t?>!F-9xrFHGy1f`00lC0&YgY(xsbMDcteC+|mqTPrJWZGAT)i->wRo zU$|L_AzVp@ibHi{%x&^npaTbgP{4%FnJ4kzJ#v^R)Gs|YWyIY9!%*l`gt15lh|2|x z5b8GMY5UwiT%hC&5{G9-J}*CVun!VXbf}>10JVsrlUOlv4RrnQNnb70SocSl$}cNX zu4eo7M(wDN>^OIPXHllrFjC>$x%tmdrQI7Ecjm*Y!r?kn_C% zJCxe^r!(~G204XHh(L!+5j@%>vt2($JOS~@BD-pD(x!JPU$!$if&5utB1Gw>QpUjb zcQ#4Y12*PKB~pxkGxgR~hM#-lSUOrLD3vpcz7QqKyQiTuaIc=HH%6rD&<0XDpxa|6 zRgIh=S-Q2l77UqeeUTXFN8COI?%?i|M5%Hn9F`|UR`2LC*M6F+P7m%eKBL%A6cAtk z#RtE-&D|gQ2t*ha>_Zb(L*lH*-M^tpY83YeovVR-nLtwhMbmyS3hG;FPp zv@)!4sNH}^hS2`Vd1jRC-uc4ye?1sIC%!cl;JQa{>e?`h`4PuW&{oIeGMmZvEL?jM}hiPo_HoiYdJZwB)zk- zL@SkC@M;C&kP^Ol(?CWXYsf(gfMe*y8Cr}zH$ymI+)H;9Ixa7{LhrRoBV}%6;~D_} zj?7g%^|te#d06!8zgrhMphFAbh}t?qrrGQOpZ+{h&EiiE5*eHj@xxC&=#HA#>9DBJ zHA$MEyb9V+L>kNwb?&*yZLBxrSfoaq+tZz&V`UscjCRe#B&y3YJ9H{DtYI1m0m=lH zowrDwB^cs!{U-K&n9v4LG+jpMJkrxjKVQN=c2g{FKdY>Je%~`k&1BrS8Y=4AjyO?( zn-fwc>kV;&c`l%MD%&_N*UmSQVo(nzxz--G>Gv44NPixrs726;N>LScbS}qY$!f&rrnoD~2uXkbBy%smMlg-Zt{!^QoW8HwO+*z_Q!yCi z2kef(xHqw~zn=7otjDjSBZncC+%yLtQ<5hFSf^poAm?m4mksy}r|;f{G>NPbM4 znLQ>G83+WjD3COcjlk7Dq-yo^7-5uw2 z@nOhIkK1?TRFc`s1iJe(>)MnBy;ypJB$V{dYNW^RF*=OnDyy6%TUF3rVb1D&@g#wH z+zVzqxVGOkDsN=R?QDb6(1Sy$5`CgJA>M^FzBZ_IeSg3;sVp{4VVdon&l>YSI;X;IeF=aDxQshLDy_C#Qz%i|)m7HO$$84E( zq%iYkE|e)SegRDzCpa#RF$Y+uCVv`(wul3Q4kQO%F}g12xflA-g{cIul77}adqI?B z==@i(N*MO>o8EjmC|(Fm9lj$Q^jfx58yK$pRL1IhHvuuzXwa}LuK)Z7B?f}x7-zKG zg~E|nzItYv%VkVC>vF3yWSvool3alZE5g+f%W@ALv1TuKgi@~iS*icxteOqS!lrKf=e7>(kINtwR2zjW!Wp4czt<1&I=yH;$^c^4}`QYhA#?=X3A8; zL|*KG?D!`5wEjBhVz>4b^DramMEa1~=90l!loSjjZ1yvTvC`yeZ}EGBTQ*+%!*NEB zc}WCXDTSQeuduR``O9XXJ02FcvF6OL(xh6G(Z00HX_BB;l$#0;SvEPO1oYk=n(}I` zK1Bt8dDS2JpcTybjoI`6?n#T!XM>rN`5IjDfLrCM;b}w3<(D61)FIcput=3xDOU0b zdixyJwl_FF5uSHA?27`(QZU1tpf_JweiO_&||-0?)!ml*pX>o`i<<9=Te z`^D*}Yg>?e9re(8zLxkv(Y4z0Q|nQYAXyAvkadXy5sf z>Qaq|Z@Y`L9>K#5vZ!A9SJmEe_U-o`)W?g9HNu0L>sJQ#f%d`es&DHM=78_sGZ5bC-HwSQWs^XqiXN|vcmA3Q_I z2|EsL{G$b+G9Ot6LLE#+Q91%r?VRok9H*|{eNB}2+PfmnFjDf}A67S0S;`GaNW==C z2+l^Z{mGw1N{8stkX*b6uc2L`JrQ1R$eR4!_HW+nV5)9+MhZ@6%WYqdhSWSiHB!5ZZ)Qa@ zjS>JXdIJT^xBgKBSU>#R0b634r|TGD$)jAgcY{F*L0^Rs?FT1t!4od5j z&+s>8%g>#ScGY!9qS%tcn!$6ka030fDS+5zxlX*pxf(D7q7k*`XG1pfxtX48Qp`_>Z`&!2uZV1Q`IaGUd38j~Ra={s zwsn9wnav4S$&7%&d!^5EwjASAgx&dc*X2L>2(zqh!mn%(Pkma5z%%%P9Go*X73v4L z0~sr_&!*SE+xTL?@$X8+Z#YM5 zYDbv-*tbsmQ!m=X`Xi@OS38+ zgOu{GX{_l%!S<9>2MMQiqkqsG4G%3}XbX9Jv(;m4NVrd)X=*b}50iHoa@c1WkawVh=0+|!3^JNm-wZja zow*3&r1nkF@sSmIE5X(i;fLmySewIDNZ zt1nLLn52C6wV`uvR+$FTW8f=d1v!JGqM;rt;mG@qQi1_d#_vIaXT=ruOXRzMJRIea zhCgeO`Rb@BOC-JTPmfYxTKAsWW(!rGCy$7>j*;XiZsnEK!$Dbd$qh{Al~MUo(ga1P zIIQ-KDH^em5WuFT{SnA=a}62Qoc$H`b;jC1?n$EBAycGe;S5(30;!7eL?|=by!oGT zphD8m=+xqMGTJsnMxCXX)zrUmwGI?&=v-9ec@0%8`OzU*N%GQH~NT3C^LW!PVe}N?IsZso73MyHd zDD&MOeTx4hj;>Ezey#}QY}mpUd`qfaUp5;q?M3s=W<34tW8_1ThOJf&U{TL5qg;s6et0@$-9*8Kwrxg)b;rT8` z8HIiQxquWtYOHjF=$hrC&@UpP){1X(r7pw9;}DGl`#3FI*ibO+FbZ_aXX1-659I1Q zJA#>wuA6QIvHB4Goq=LP?R6@CiqL4kaFW@F^WP_zyv zUbeK9HJBNs3mvx3~8fsp*#TCd>Im-pJHmtc&AWW6=*jq*l1ht1|y!-~%W;7D;KiFNLQ=Fupm^ zx1B=nZ7<)feO<;|Q9B%!58qWF^{v#mOshGjOxqi64ET08K?C13U|-+oX+A7<$R?h` z!yL{;C50StIE=-Zc&mO_{+}&wzwn>ff6dV~RPrN!t3~QGN6%M-V>|H{qO{Lr(n4rT zZN2E$Ucz6kCab#c zTHJg%^Z+n-4i*BiTEHCIZi&%NnzhmMQWj%a8$8ND$y7KEdozbvv5{KTzN#t6*1QVe zwf?hK?j7?Ne>F5y4O_3ed}+g$L{qnG=*V{=Pbrk` z%;nJN^!;+k(SWffj4=5^0atsx+ChM2oq18?;dU@AvoLZ$6E`NSt1ZLCm-@bP^zOFClw> zt2c@9lYu*;r#8+h%VTqC0WH2aLCO?KrQ`vAvH*fXLw-PjmHB3*9@QD^uE6m2_p4X% z3(ttfMOH47O2y6fy4QTHbTsSsrBt-Rtl%KWs;2hF7D(W#g zfxI+!#RNiW_1Q>=G{~yEhn-b82x1gPhJ&?Pc`&NZJNR0+D5pxR1W|c)FqU^DOqk}~ z?n!A(Ue?g1No~=AGO83|f~0gn6;4O!8g5Av?o$_bvY4;c{|lDxE(nlMAMXKr^m?ca z_ZNtid5skhWk7s&M^KkV&?ne6SGSb&nn<>Dh$QC8zO;w6$ss6 zm1*&y{r$Lb#*NwKWlxNrqA{IR8VC5x@2kl$m}%9DK3M_}RAKn*9t7vz@h2F}r33wo zK3P51r>S7g4d&%A#mdafI4fa=Wf&7}C|EH>!nbUm^WM7+-1gyD&DUYOqO^gy+)ua>H4gzRf!6fg7H-m??XFXpgf!kulPe0MMe z0o2^lu3J1&z!q&vm-w8Ze-WsEtI|)dt^}zCCa{x1nD%B=WpMEh))5EO2b@? zj8~L+%t}Xm63tZIOH|Q!OvM7EKvXw15vBt^1R)-PE8iM139$Qz6Y%NKOVQ*~3R`Q_ zb{OeW7TJ4L*n*SBlBey@p(DSaOxNUoee%Iso#Kv}Oo&JNQiPckKhZCVyXX;Ru4+_Tf{JC8nt{Tj;g3eqPTl#(CPdi-Se|4?<*43i(A?|hF z!(^sqyu79bF)>g0e#-apz3ClzI3u=^)V^U^+w>dtei^bChZ|wNeMWIYA{S@umU7R4 zp9NDOR@)lg<8<@NMGNn;FB!AHvD~|)35#J;=WfgpA2vp+S4#urZ5>j_=lz9Y;0;rZ z;kY|W7*J_*BsFjPzw`R>4!N!<>A21n$pKe1D~KPz=lCo4j1xo?Ep;D-U!8$5w3Vn8}A%UweyG$l` z1kT28=#$6gMzZeE(LIt9t4*J*&#QO^iG4&&l3K$k27y9x5h}2DTc+JaULjska!ONS zJDiIi1Iz?CS)YIMjOBH*?>fzs**h7CuuGopjmaNAka3I~7&BXv^*NRL+^jp$$VeYa znk8OCKgE7HbV?JfWHyq#p<|PS|G(?wWBOMk{uasJ7~_lD<=NNFPYZesaGz(QILq6Vo8g;Pn*?)y4)I z?nz8gsRzdR?l3`w|G6^3ltXEq*2vW?qMOE*ZXi=nf<-2EW<9zfpfUQ5K# z&whhKWQr-GZFWa=6BM783yR>m!dG?z4|08}INDzKMq++AC*}=Pd2tl{{qrS`F~;2a*J^L@^o5@n~+jMj1_Q+m_fMV z86hO;qY?yoDaG!B;i5oS7xcL~*a;l7=RYHsI8D2U1gjwcV(PmgxZz2r{N^)luYFDO zBX7%*i}O!k5-LmLPsQ>!I)G+i1q1o_a^9UnIdOC_?F@6}rg72(g6|=`>^y*4sHT<) z0(ax@!$s@n;WYO7G(I=tNrYXH&MW9a6hl8a&V&8KEg83H9InG-4Gkr6<8OSnU;%Hq z&Nwf2ylgR1vORz%v$Z?hbFZG09iG58P(dtf>Z1k z(97nNL!{{oixnCJJ*50u`Rm_HW9QbP(osi@_Yy#iqnNWFh!nN(hl+->f#I$#4z+`cY)b-EB#yHVK2;T3Mk9{zA4`#~u?H1yG@iD< zQ)H`*W&>3{N@Q-3SeWQJzD)(A$Fz(h9n3+q+0wgUvH7)#7! z_}u+lOAg0DP#DkYjyO=QXc{#q^ZZh+0s8?n(`ZolCA8h)p|w6^9j$wcL5&?* ztl-&=WeWGl@`CmUn008R>VAd%o^2&~@4WEce~Ic?PU-rffT<3Di;_FDjvidelQl4+ z>mT*Oz!ln@QsJ!JlxS4~+y|p%k2>oEuFq&dSTx<>=HPYeu7nT6{=}~bxxMKGHJa?L zR93LdO+16l9=rbgL_e_qeILEOW8UL>V5U<~xV;Q4+1XD+kUP#BEbez1d>Pl$@7w^eQ5Y|tvNqufRb ze(`>X3m2u`4cC(##Ju(p?vP&IQ{zs?H{}(GwNFmovU_ipDOPkiy-Mu+GOFd(Ns7<$ z%8_OX?MC2otQiSe-%Z~w;X&TGO%C{R^@<>4z+&=qZZUINOMhVHuf`f)8l$ywSO#;6(H2=|?w@}q9+WUm2LX?+teZz!=))}_1 zFYwmEcuDWm#rmt${C9#pwjaMT(xcJYkOlSKzpwr2&f`HIl5!idITUi&mswS-dYmf) znu>X~bYbWyvb`MEqf%)Ye~WL;!hwMEJSzU?Qc+grN5U3JDTse;zDy2yp60?ZaP*|_p}Ws2XY|La^x#5VV4m>o#~ zPR+IYcE!}D{C}N-?7y9Yt}{==wa!2a$6D-9D;|om&^jE~D)HuEQpi|%L`qJ3&x?Fh1HZE>)Z+a4#zuwZcEq^G~Sn~*_5 ziOlVHrxm&MO$|NQ?r>6w4Kw}qZw5rPxlQBE(j{fRgvKPiaRh)2x6!z$#Ugecj-UhX zek&Q9T0+E>YSt^uALHbR_NINt6TR=>Lge|DBOI3m`lTaM!#Mw_S?Y-?PS0I$Wy7ex z&Hocvl7De59ngtUQ)CYG9-OoSYdKVg3HIa8iJiP%Ucw_V0AHvqdZ@ajc7ds}$rJ;*8pxEUOxmKoq2~Zfe zC<|G;{?Yk#Pm3y#NBdpa0XF^Q7tyW7=+#jNLT>A5@RyspCK`xEr4~D&Ys~hDE>~nA zoN#EcqMdR2w8t}XgK*=roGQpS;{{B$;(>+TVn~vPG-QN?YU1Vw+zf1I!(tHTC#%8nt_Upk?l=V4bRkM%b{8V)VQMC z=cAx0HNSTIYo>7F1ekLI0--;^o*YU#R9N#NxlhQ#v9Q>b-&Ay!m^;L`GqNy6n=5Ys2p5EBD6R%Vd*N zW~3Kh+QDVF4zL8 zx4iIp#*-zfbCT@CS_Y#`d0$bnEn(u~(<1qSSh%t!T2o;Q77=I)oSDEnmcGS1qc09a%ILO@aKGDB&{p%?$YXkMoL$a!Tbkb{-v^72@{8VUFl~SZ zG68((vY{l-XA;u zV_xtA>F>GYU~8ro@g>S&YZ>&mK$KQrUNfN5yfcBH(jj7|Z9a~8AzN>XwHcmLo^3^CCxvpJy|KPA9kLwELK9$a)8Z1ZG~X zxiSS)B8ECd`$?jnM2B_bM4~L^2(b_MW}*I6aVeoSZo=SvvnhhZWrwtH#fmzg?Dsj<|- z2O|?GizXcLW^992g7Vo^Mc*z#Y6BXUc9BidA1f;NG2bh)d-s_ydb4LqB5*+C5)zMH z_50fxeuOfx^SR3~>-gSrrR1&XW|EuPvv}+$KXxK=fjCr*=iXE#4g|BZ>>;n}60WL0 zO1Eolcry5s z;X;yxXy=L9mmN@Td5MTAVbxE}m-p3^$u< zgAH<7i*#-y1KfK)0ok|$JNXP}lvDHc{{Wu{uD=z;Kts?-1A1P&dD2?kJ@*#G%y&SH z2$gXDxe-3+V3wV^;g~%Jh4Oi-&iVJHuBn!bhuJP`*sI@Lwhe{VZw!VJZ+BDD26kyQ zE<2M`Ga9Dq`rog6S_#KFgDDPgP#v#x?Lu?kG41W@c(Q~8*CQai+6rdO7lBu>JNUsnBLH@m`45`m3QaP6cC8zt!Sw3uEVQ1; zeHc3&-ce$dfDXk&m6wGmV(!vP^Zja2;u2}`THNOQ!r!ASFFPZImD*L@heku}`l)@m zs}rRGLHTIaNmCcw4#`+El1V21HBy!jWt&UEUwTq)4rbT?xkc7DAOA{eoE&FVj&LQ#ehgsyGV8B~F zW?HJCl%WuRQba;Anb~p?+iqrH2!44w=QYg=Ma3Up@|CU6W)N1XRv&+~^z#ZXyVdN6 z^r!H`XdokU^PdS7)LJvyvGoS}{*#osCT3WC)9-B&LM&`ewZY#UQ!bf`Z5v3kBOM15 zJ;o9X`6X!$>s#o>j#s>jqtqXa$&^>L`WZP*2cDfR<@6!zBi4hZou5*0j|H>Yqq&bu zF}R#t-1hLa2wZ^OKq{7s+T5E$%0J?7X(#ZG@R2$-p;Z*@1b3(6^fiod{K3CjS=~dy z+aE`%&nkRO8T0B;e%mfqKJ)(*5lKXL7~nj+Yame*>EbUx04NtyIkt2lDAZLOoSY@4 z4RMUo;J<827LE9gEI>O*?Z0|9Be2l<)vooocKYS2ZDUnQ1<{!&rwgInL1qDDrFz(&ePfSEU zM`_wKj0t=W(E?UrvKV4-GI5}ogVh5nIx%A0T^cYtn2}Ibss`=_Fk07FuooAiS`)$w zSjP}iva<$p3#_cy+fkBI5Z?MoPUCgwN%%g{p+?fxw2JlhvuxL4U|z;a3X&EyDEoim zihlk;gu`;OjWM0JnJy)bVPk9ULw>dZOSUuEJ;(hiSLAA(zLxb_&lQR&qsKi5bk-xT z&;H89@Wh13v}7(;W&9rNQE1=wO4+{_VgE+kIl^DwQ!+)PT^`2b7{^}khDxst#rLi& zYpC{w2-oBJEAFzI=mqypVCr9ckzDtTe9IGXons*NC-E5F2BZt?xcTEQM9C zEMF_!fD{$Z2rB!GE1vG_D~#J-GJ@e$8c07%1*xou{prNg)tjUtgX^ZI;!YjdXRFZqg zEnFlL1Py0_$C_IM2!Oh)Fu{qM<(=$F+-gn9RO1D`KYi=Aegoe{ms4i_6D3 zS)#42K;OqU`W=A`rA9AXvJd(((eP*FT*wvk#^EZe-M4@gxYW3TDb7_+KcF8@D;V3V zLv+>WAh_V6Q7&`adT5+eF<*{xc6&UmhvIY)H-~p_#JGF;6_=$1;#Fi`TN?xgRUV`7 zg;W1qZRCRNKWJ$K{MQ&p{EO@? zvUuE%NkNDix#Qlbc-!sZ2=CAuh;=i{-dzMM{#MFJl22=~WI)GhbrZ3xBZ`ZyMvOsI zWt22noTg61Agg7puq-S8Zi-9VcLcg0C)gb8t;1~Oc6Z}Y4Gb|CR8;+gc$$~pNgkww zKQ8YsGW+!izebS2JkhZ&3>+|^GZM;x|CS^C;wt|gf4LFugrjTw7B$S=p|(n&LYdj)&b1VCuk~Q`?xh#w?_W^Q7I!!~8>r9yYEvYaZSY&nbPu zS}2U@%x*5z7fP2to#%&PplMOXf3dyS<-b}>Uq*-R*ttoa!x)Be;6M2*yXYZ?6;Cug zl>C;S>DJgh(iDB24k`p9rcUpD99y}!^d}d2%zPrc`~ovwSMvAgh5YcLj2uR0j21PD zVt;nTKmgHM^t}vh{KL9(lHhLQRie4(_giT?S8J-E^rf}SVB7YeJ7|1@Z;VQn)WS_X z!OY}agO=V7qPhMvgy`1>HThsX;~%=`ScE65uq^9ZEhP`w&;uMk0o*4YW?h`!PW)_J zwev5D48KKWC!hR2T?zNAx4YhUks`laoyKDzcz#VEcZKq}ZMdtL&(}ZH%C9hbn6Z3_ zE9Rw=u)3{k6_t-h)tq4&zal4*cR8|@|6K;2ek>UW%iK)Rw7Z+_1)EMq!|`?<@z~40 zCBPkXlh3FNY)V}#|1ZV=@Y#7cnx?IgSvroY;k=n{_#IY2L1Tha<%Hghl`6|FXVouM zY5PrFO-O!Rr1B#BV^tjEDm+XqOp5nz^7 zT<@I;yN3rj<2ix@Nq2_JV0U;hdf+6lBaiv&j>Lx>9rY00Xh$HbU>NzQiu^9p>s9fC zK9BR{8SYxQ4g;eAPPrTot#_C7M_OanoLM=?c00YRHF8HP+z;5^g= z$v$zn`TY;V<-YDS1C?SvBtr##5Pbv!R4z^et_N~H`)~W_J!zk4(28+jA6HOxy5U}o zsf2$vESRvGa@MztOE|Cht`FMxJ;{%Nbdvf{o$E)b>5yJP<;w8s{USAyPKaP|ws zBBM7F++2LJgU5eIS6Zr(#D+#LkU_Z0XGGQf7PD6bVMqjUA>*Z7qGdHr*77UDA)h>P77=l?b3Our$1tRtrkae{SU z%-!3}`pl?jgGIrgFn}do=i|$*k^}RULp~DrzzB}_@Z!bKg=6UwDFEfms((&U2jynn zZO+srv=<4OUL+}i@jIz=jwtbPd6IPu%W1uA%{A|&^iT0Vi$5^MBOB*Eh^@B{Dy%uN z1NQclh8|)e1TUYWNAafpcPKm*R3k*Ho|IDSxRix983Dno7jNF*hFRC9$DKeGd_c(u z?Rdrw1YHm-F!9xX*x#l8Got{3>F>Gcpxejb;pc9RcRHIS^2;8|b;x|>R$*IsyWo&Z z9K4BRic6c5=5kiwCGVt7X0GVXh9VjodF4DzOh{rf zzfsV#nEZ9KM3!HnMBZqjPG`9*h?$*MxRZ7}Q|-jCB)zr4FRMAG;X&VbcrO)S(p530GZ5NVZwiqQj3zsWlrg-5U&<+XvT<8ug7OO%hlcG|=e zzs18HuuI!9nvu`A__ao-XWU)#51&Z;ZiE7&kiZ2^@sGG7?)ID>ZHg{{^n&9;%dmDuwKEu>xk}up^dD6Qe1wbmq0; zkZe!3;urG1KXKcb8n%PE`B(L6Db%_|4K!q`lD6vbBl;2TrO`1zRAx{9h$FxvP+d$J zhUzM;?1|f%Fj~x&pmkjLSi=su6^B%?7=2xj}9jt zj;2GM%I+>bwZj~Oj8{}Tr?wp}yE{z1C2A>&r1i`J9`d~Wa^{!b>PqRuTz8=*4_?TK z0z_jpq{cIsasJdOWU8>2xWbNV+Zgm}9FMToVwf@y9L8`{fz4}AcHBAW)t3!fPMjkC z)_K@7HGvJn*nm}amq?dLWK~7e5*qKo?w;^;DUNP#tJp8yvR-+Qt0d`@rCJE{F}!cn zSnr{e$~$F=_RR)85xX^fz|&p?Ytt4m8hniLPqp^~@^?bWKqFvWe9A45LeESy*8Wjt^$XT*|QsAP`^La|EBSAKAmTi5C1fqgVp z-2{KmQG-dvWch*I-t@3+`; zi23Z1Nn6G&efPwSLAXZv66}MYG}tJRj$Rml#hA^!(7e2p6 zVQ?*OclgXKM4AewWWmTcYejJqYMlzVn^E6=)-06j^e5*lp}7H@aoghEol(eU_pQUN zsd#GqRQrA5*6MX?>l7?(Q!$Onk+`b@jDuL->=iReq)1E^PNu`zDV6uMFjxv9c51CW z%p);qOSZG#df7u}G(yZ!iL{0xd5uK#;E|cH8LjIhuRJh^R5&%o-I1EfbiL~}5b5C! z9FA3Bfu{rPDK}z9^#rWKbQZisAn?FWDIDl@+uQuU8BfQ-M1+=WZPZcaz9uY}fqq~+=PCa?iC}Dw1 z#RskVrEw!Y#w(5MT1wnAe)KqXnor9=ZdSOR%#h34`X5>8-zbqI>;v@-%QLcomb4vj zb`(K`ha~Q95#rB#SUV=wo&ifoProtUzX=|KJG7G-=!5pk->0T8zl*T71=Ef|H%m`o zfF5(2eyi5@85RlPIh!N%YHx+I%*@HlKs%vw#EQfG*~K2#dy3mHX5x5r%GnTOtiROb zajItB_eYXm@Iw!YDuSdX;o86t%zL2`POZy@l}e1%u(;xQ@Y+gc_yZ<7vQVy{;dSTz zb)Q*2`=6oJzvxLaFpI51*;yI$#A@J%T>#VgCHdA5$E>9Cwq=6GA!6FW@(vt1{}G4) zj%1Lo?rw~93d{cD(hlVLYvRC`l&5V{^2;) zb2n&o=N)*o%X6IJ9KBsD`70)a(yn97If=C;`t9ps4bHUto%ZXDF8;vg=ij1molt_4 z7%@X>@p?mzv{SJxCU#>Z)B_{Uy;P=}@t){9mn6xW5YF^;(h_&mFm1GXqHH_uqpS^B zj#;)-m;IDx$OGd;_gH|3yicgt!~5@3Td&A;abrB`*{S`u%?MD{5vv&t^ZN^nHN`x^ zoC?#cc<@s3KTXV%02{QGwhiy#P4!n38rUxZb)UP3uDp2DMAan;^ujaFN8BDxjbxVc;pm$v)tX-v9DpxJRfj> zm$V)a+Y@wUBg{E37n|r{WjgnZgl&|4oJoRF8va#$ier^7qqn@6 z-cadKz+9LX{*>s@OBjC+HPWPpoi91kHR2vI!nX21`fNGGb_9Rv5AAW$)qws^MS=!4~h2zUnVJhq}>TF$Swxy_Aj@8irT zj0Amn&6R}D6FUw&kL+RNxHc^&6vl6R@#gfMqGrH9C(z#4J|$4R-XpfisI$`RDq&OU zJLSm4Q-o%u;Zcl@Hmr2#;wKmBanChig4Ji0ns!np9lZi@AilBF$Si*0$gru{n)WNQ zV1E`RPyIceb8_tNb#|iLm)+%tbae`Sy4i(S^sduyYwIxkpwRVif1A%a6JN-6;bHHu zq{)HU2Q&utD|jW;RXy&vbCZDScaOBw~_Jd)a%2Ej&NEoxau^Rp8{Lh@JyLr_mZK*)#H-{@dC3 zNJ!$kM|7SM8TU05^q|==uWG#y7w?u3qb-w281?@4PB@O6@w@RUMgz_y)U5=W={*!j z($-{rgNpbMOHB2X4bseV z6jfukm!BkXttz^6As*yZH)3E82e*qK=+3Mgj9Eru?JccHt>UKH1s@f8ms15Fq@?sB z!QAjLR_zL#B3BPjfY8%p7kB{M#UY6oQi07c?O{-Vig+MvD`|cP`qUZ1J`GlutkuAk zQ_M2`SPqUaC`O}uc+xCVh3WXCL<7oGstyAk5jRwehkmd-vTviPwuZj$1aydrALkYC zO{*L9_!DuM6Q^^7g+qlS%$Brz`Bj7f+)prjIXLRO%WdX`e^qzbtN=UALlB;<*zQ42 z26XS;J7GTf|SXmkJx*shw&fz(Kx}S$#`A z(#=b5J-PbK8yR?8nY^}{@GyID7C&?;2Mx4g#x)8GNm0Ihlg3@amdjY0-ry^=t&)^o;)J zGy#=SM;Q_l$hs66HmvX)zAmYtTxmlWk^x5Dryc}7sb@x1+5p9&&-GW$s&?_L1LH!9 zG6$HH`5FhG0OhxKc8K|3tkpF&h(#QZm+s}YBZYl-t~fef({SknUuoI-1K-{fG&1!! zJ22n9i3|N8}o6;{C_%4jb);;ffrexLsvj_cII3XamxY{Qn-T?P79tIkR zU49JP4IaBN92gXck+$e^GXxocZv73_9J|{W8kJ(T=uMT7-#?EQnWZFtRT_nS z2D?p#lp47)Hi1F`)ztwocG{N;v@+^)BnZKkNT5x(fr)tdiX0Mik?FeiFxl=n<2R@PSAQ6`Ov0$5UiY6sZ%vl{ecrpH7iPzF3 z&=@}G&yQ`j3M4gE=Gp#qxkqG_5rS@Ek>)%s$ECP)sx<>W{~0=8muf-V?qnGuhJsT> zc71bw1Z0M;K`g$CuG^>xb9WMy<3=~u;fX)F<`mS=cG{{SQ0ym(FAW(rKt~$|{qEdU zJ9>9V7v(4NlOzX8jR3M@L=YpC2~&nm(<=75HYm@XL>=~_7+XhQ6r(MEh;6Z zo+T)ek$jWq4L)MWLVqOO(CrT$xVW`N;-ocqaY+fL33^i)OI*kAGh{mVd;LR#U{bPp zokmQdD~&>+1X^3;cUdV`A8rTx1QBK|PE}Z6Z)1PxT9~ub5Rc9b+~G9)5o4SJx?TxW zEs3(7eGP>WdP5BO7YCf=t}y3AA0LMI-l_18Xue%2qW+P5SpC*r^L3`+*pQ(~n5rZ7 z8Vw0KE7o_i>!>UH>;AB4E%BF;An)o9~L{EDT6xt=~6c- zx;PFAo!d9md$zuikbcmBtE#a$WFmOKOfdsi0?QUD6_=0?n=E@!v)wM5^oe|h!1%Ur z3b$*4<_=8!+aw>2b%qc_@V1MzzD0PjGwH2)301BrJxX|CAU-fqO2-ZJqAvxLyO$CH z_u7of4a#A0${_6yJr^<^hR*E+y&w=Y8z7p zJp`jQV%k`DmG_=oH8Gmia>SbJ^T;Z>zPowrsP&bH!@%C1QS+;GlrM5}-bT|)Ed4PF3mn=NG_aWk2r*nl`OOOnPS zcEVoGtS_PrTdn&2b-d~{-@l*hv+(xEM$TBe=ZNDQEHA{-$GPLOeDf}Yj#YI)9}rNf z&zzB|&A>WO%s3Z9?VT(?;&aLf=wlYgD(5&?7SoNaKqAAq;K)=_#_lvC4)46;$Z~V% z%UVqd%f7ucpz2wy8o!~g*i*w6aO^s|EuR;ijaE%+J! zUf2JEkzrmlP(oJV#_3)szlu0Q!9Xn*Nk&|}?pDh{{OZ*%0P&nhSs}VQVczwwI4~KM`PEEZYO(GJw zqIF`mvSYn`{iro)Mjmk;57RGDnn+m3IW5PAShFbr$yG6!6Vv(D*s%}v7E<~seGkf% zn<;xZE&pJx^F9AV6yyp8b}ZAN*PEhI7jD-QG+}!PpT`4FwPE_8Ev$mWF%T}7p<47k z62_rKh+C5zF#{CxCs{u$A7L=7rP1&1P}qAT_5@iR8i9*NOf6g{3_$k$k)$chx;XeD z6GMAF?BpZ&7VfEj0IR*q7KB=9wNVY0j2G{>XiEBfyiyTOMK}=l&A}FWI86yRe25OK zSz}}Ye;_WZ=D5}iU+@F{rXNqs7mVZ|i|D_!V<`cgNy=%`>bRDuH|i@H>*LhKS$Z-= z(AUE-Im8HFyrq5xUhifbyR8|^G(4JUX|evJouUg{##nhT-Vo@{QoT$F!(!1F z`9{Mv-xsbJSQPwb2tMQ5e+b{770U@|L15CtG9GP4BP@#679vi^!g12mGE}YeE7eG| zys@Us)dNK4kR_wuC?P+NHC<9}(%8)Y*H~nmmXT}zkSJCnX&hyqKg@&&WnVF@C3tf4 zf<}bc+z*80h?7mzJ}(9%CFZr|*kB!OxLwetgio{dly(*E@o}0h#&| zYypM%DR63;E`lB*HVf)U*J!@3vdE1EViuKrw1zFU&mtLe!o!fl`3QC&zRh_q%x}BaS zbH$$D#g7N-*GE-Vd3nX28h1=IO@!SO(KUJPeyCmnR9BxD%hw#PZ`Ho;)xBC&C&B&~ zqrvqYx@~A}n$-G~l-*5J-rsCbZ*p#)S)E!WuU1FMYfBqqMOdSAs~)bVGP_U6A9B;O zYQw<1ipDXk-VV5BKDDcLHQ`E~KY5s2*7n-9zTcrXPH>!I!bu(gkmTM-Htj6Y=?f9x zDbJSilRZ%$3TqE+as+nbmZb+zo$VwCH8n4D2}cs_uyWMF z9TK%?qLy)R?v!l_umkv5>5cLxhkfC+>2sMrTGTczRy{_H{K)!pOy{X{2Ll<6ZzgFa zT`Gm1Uym<9on?)T_TwB>M^ebqE?BfOmc@K}X?{1CbQ#X4*ZhjBFX-wKeoIWBEI3~X zeP;^aDR?it@SEK-5cDne+{F!XLKg!3p^xBCe1C?0OWbG;mhg34RvI2KjJo)lHoN7p z86m{@>qjeS=zGp*9;u)PT{N1Oq&luOU6MKAeWEg!PYE3CaOL)^tlTpwcBPW>$Pl7( zg#ZAf(RYU9GHdFd!rDDdI+*_);{+BOkiehwiIIq7-9i`R?zZsk2;SWDaEQ>$>MY?J z{QU9-URzv!-Q;ThG&mo zaf}X^q_BKgOehc&6SsHI3LTzc)qe*>*)s-lsm1jnny|P4|K;IKRYbMj=x`qNH@Nol zdIQSP=tKmQ0Oro>rMzhJBo)(UBx6y4uAHPh`l~tdp*(KnuPo|o+yPUjt*}f zjCvKnRwv%h-8kE`^|MV~Mb&3K$eu%`I{Y>5gEl>q$NMASk;$trr+DCt5bfK>2pEA2XvIHot= z3+I*dEiUca5d6OYWel40UbM9CS^f^Nf4%756!rJWlgrLA zLx1Dc-=U#l*aMkLhlQq4m6bHt75LHksjRY?moxak|@$=QlTDZ&NirYRd3A5OR;fK5wRsHf$&@;G2tH*Jv;9+`dgp z_!_kDZR2t`8WA>4>FEsN)Qu?|-@FCw%{9vS&iSV>=NZRHq!6ubZP-*sOUZDqYoZVR zcY0thuci!67Nl_sL(F%(BRJLJz_I7H&=amj4&UyPzzh;(mFt=apq$23jDum&Nf|p6 zfG^DT_UzO)G(5%r%hwgs@V5D6R$pB1OMbOzWF!*h~N3v8z|etWq@iK`u(r!I1L!t^Vzx1LZ-TrPz?3t zmp3(TMtwyACnR0??mztq`@dwyw_j{TQv*FxGVa~#xPRMl;?!^;7cL zZ$$Af8!r6&zu@Q2D8^%@`12Pk=-JAoC7oe=vfI%pS)_tr@V#*b-~Q_hc;j#X2z9*v z^)o-Chra; z+S#}8SG}9?{Xc#ZtSZE=`g%qwrtlAc`8}9k|5I!zFI6=N#stUELrIHB=s6nCz~<%_ z>>`;ESMnj~9*1vo2)?KlJ9q9x9dq>aT<A;1=Gp571!JG%}y+_qowvj^oPZ-=MEMm*g_^uA?D1JrS-Gx8wBLGxXfD z_&GsJSRWE>iZV)ew6~n2Mujtbh5NajslmE{jw=_@f7=Kp%5o)Pnv*u7XU?8AWY8Fk zj0nA2`_OItCylju&GQN7j~ULbw`JfOjo08EuI=WFSwj168jsvW80XHP!)1;`4Eh|6 zYLK1b<~YIl={t5MV?ksvbX#ARiJR9hVYp8?~N+h(t+M6)em*_s{rnB%Xzh^&8N#o8en_g$vCDX=K=@mBuCHnc^^9=(#?CdqsQk z3eyqU?2rD+mrmmNjtwZqBqHG$vjDlgl5FB1rqhULV0>f}(F61lpZy$e-1#}?8{06; z5W9Ca%I8pu=i92WsilHP({uDLpgbdvX_c;!PIu(MCm9g^ah}8Fb_^dEH&npNP`ruR z65nh9a~z{%d;r(R@1iDujugHOzca)?%}RcD)*+z|CmXSJcti%h)2srKQH~N~Y@yMU zzVynn^6#>VAtxmu>jGFaKswuj{yq!_SpvvLHPWMgfs-M-ld_ot5h5aqti<>)lRN{v zzHova@HUfRC`6+t41ZFOVaSz9m84H{vctH1@dEDLAkh!^#5f6YdSZOaR@?oBAd_#9T@gLK}inl;5JEYz;mMq}P2N%%SnX6Wo-fPxt{Xu6ZgoiUxn6V zCsEB%^807s#l=fkSsZr=bxk`M9*-eR5A*7ni}b!;1m~pkJ)vY|((B(u8B>lyjQDD? z_31C*n>%N4>B41tj?*w%q`*#|q7-@&Cu?aX|hcy@hpATK5{n%Eu11Da1irhM^f0%KD%l(Zy24%=8dU2DGzH8b62SfdG#SH3R zj?%pt>4ry`rjW@Hb&vaUIH?Hpnga~^O9~)We_hkmUoJ&dy0@giG35yxGFa|G-4p$t zql`hyxL^0=JFuGmPK=L!4E>#cWc^K5$s`{7r$#^{u)YvjGxcjs$Wzp2grDUdDb&~ ztxw}78}{zlj+&x$*!z3YF*t#Yd>blRM3$hJHtnBN9;dM2B#_InYzxYA7ua=<-0wmg z>!JY^TvIM8_aNscv#n<^1yTA`z(3w_gJG`H=q=@zr-t4jLP zvx+~B?PMK}F^qD#TouFF9!|n$7jjU=>qPusOu3`jx^pWFD|28UcaUg@{o+~Z7?M>1 zNf-S-T$c8)(7lx&y)mZ$JKalq&!2|wtu7-41pQGXpb=P?2&~zl8-38%C3Y)rT5L-+ z5~laab=(Y@#~6B#u^_C7%f%KF5ll>vgBb!AQB|VcOgEl|cR_mfX{_uQPIk445QeT@ zu1UE3X>1!?$f!pSmundzFY3k4aJh?2aWm4Xg(-~s+EP{67hsNh!ok=%dGj0S z4d*gK;%Ak27Td+;3i;ZA}N1p9xLnOdq+gir^QCD4tJmyj6Xt;-EAD#N_ z@^aLhb6NF2$MAm+O!9Zih_hE8X9On3 zC2Qp8WiGpdIcTn{XB|LZexB+F5Lg;37!{bpv^&l!dNaLZa_4jT+KMR2{lMtoH3Av| zjleoYKpXT=@u5rDR)P&ufvs}9G+x5lth7<#-;zEuCx9nJrPr z3-JsutH!YuJ>iZxW78igL$1lq;NCZ68+(@jmuoBj0=0|xM?6%BoZuy~G01l$x+9_U zMemxQC1`FOvn)@4(gw}vXNd@M#`}d`)J6$?_xYSkpz!M z+h}-WNO}vfyG$w`UODWxkf-Epb^jrXapVy1hhea9G;@S2aSM6 zKqH_LSoa8MgTC%nKm(u=&mC7Z(AT{RXaF<<8Uc-fM&NNkKpXVO;VJ5S&00DXk1^@s6?`*0f000U>X+uL$Nkc;* zP;zf(X>4Tx07wm;mUmQB*%pV-y*Itk5+Wca^cs2zAksTX6$DXM^`x7XQc?|s+0 z08spb1j2M!0f022SQPH-!CVp(%f$Br7!UytSOLJ{W@ZFO_(THK{JlMynW#v{v-a*T zfMmPdEWc1DbJqWVks>!kBnAKqMb$PuekK>?0+ds;#ThdH1j_W4DKdsJG8Ul;qO2n0 z#IJ1jr{*iW$(WZWsE0n`c;fQ!l&-AnmjxZO1uWyz`0VP>&nP`#itsL#`S=Q!g`M=rU9)45( zJ;-|dRq-b5&z?byo>|{)?5r=n76A4nTALlSzLiw~v~31J<>9PP?;rs31pu_(obw)r zY+jPY;tVGXi|p)da{-@gE-UCa`=5eu%D;v=_nFJ?`&K)q7e9d`Nfk3?MdhZarb|T3 z%nS~f&t(1g5dY)AIcd$w!z`Siz!&j_=v7hZlnI21XuE|xfmo0(WD10T)!}~_HYW!e zew}L+XmwuzeT6wtxJd`dZ#@7*BLgIEKY9Xv>st^p3dp{^Xswa2bB{85{^$B13tWnB z;Y>jyQ|9&zk7RNsqAVGs--K+z0uqo1bf5|}fi5rtEMN^BfHQCd-XH*kfJhJnmIE$G z0%<@5vOzxB0181d*a3EfYH$G5fqKvcPJ%XY23!PJzzuK<41h;K3WmW;Fah3yX$XSw z5EY_9s*o0>51B&N5F1(uc|$=^I1~fLLy3?Ol0f;;Ca4%HgQ}rJP(Ab`bQ-z{U4#0d z2hboi2K@njgb|nm(_szR0JebHusa+GN5aeCM0gdP2N%HG;Yzp`J`T6S7vUT504#-H z!jlL<$Or?`Mpy_N@kBz9SR?@vA#0H$qyni$nvf2p8@Y{0k#Xb$28W?xm>3qu8RLgp zjNxKdVb)?wFx8l2m{v>|<~C*!GlBVnrDD~wrdTJeKXwT=5u1%I#8zOBU|X=4u>;s) z>^mF|$G{ol9B_WP7+f-LHLe7=57&&lfa}8z;U@8Tyei%l?}87(bMRt(A-)QK9Dg3) zj~~XrCy)tR1Z#p1A(kK{Y$Q|=8VKhI{e%(1G*N-5Pjn)N5P8I0VkxnX*g?EW941ba z6iJ387g8iCnY4jaNopcpCOsy-A(P2EWJhusSwLP-t|XrzUnLKcKTwn?CKOLf97RIe zPB}`sKzTrUL#0v;sBY9)s+hW+T2H-1eM)^VN0T#`^Oxhvt&^*fYnAJldnHel*Ozyf zUoM{~Um<@={-*r60#U(0!Bc^wuvVc);k3d%g-J!4qLpHZVwz%!VuRu}#Ze`^l7W)9 z5>Kf>>9Eozr6C$Z)1`URxU@~QI@)F0FdauXr2Es8>BaOP=)Lp_WhG@>R;lZ?BJkMlIuMhw8ApiF&yDYW2hFJ?fJhni{?u z85&g@mo&yT8JcdI$(rSw=QPK(Xj%)k1X|@<=e1rim6`6$RAwc!i#egKuI;BS(LSWz zt39n_sIypSqfWEV6J3%nTQ@-4i zi$R;gsG*9XzhRzXqv2yCs*$VFDx+GXJH|L;wsDH_KI2;^u!)^Xl1YupO;gy^-c(?^ z&$Q1BYvyPsG^;hc$D**@Sy`+`)}T4VJji^bd7Jqw3q6Zii=7tT7GEswEK@D(EFW1Z zSp`^awCb?>!`j4}Yh7b~$A)U-W3$et-R8BesV(1jzwLcHnq9En7Q0Tn&-M=XBKs!$ zF$X<|c!#|X_tWYh)GZit z(Q)Cp9CDE^WG;+fcyOWARoj*0TI>4EP1lX*cEoMO-Pk?Z{kZ!p4@(b`M~lalr<3Oz z&kJ6Nm#vN_+kA5{dW4@^Vjg_`q%qU1ULk& z3Fr!>1V#i_2R;ij2@(Z$1jE4r!MlPVFVbHmT+|iPIq0wy5aS{>yK?9ZAjVh%SOwMWgFjair&;wpi!{CU}&@N=Eg#~ zLQ&zpEzVmGY{hI9Z0+4-0xS$$Xe-OToc?Y*V;rTcf_ zb_jRe-RZjXSeas3UfIyD;9afd%<`i0x4T#DzE)vdabOQ=k7SRuGN`h>O0Q~1)u-yD z>VX=Mn&!Rgd$;YK+Q-}1zu#?t(*cbG#Ronf6db&N$oEidtwC+YVcg-Y!_VuY>bk#Y ze_ww@?MU&F&qswvrN_dLb=5o6*Egs)ls3YRlE$&)amR1{;Ppd$6RYV^Go!iq1UMl% z@#4q$AMc(FJlT1QeX8jv{h#)>&{~RGq1N2iiMFIRX?sk2-|2wUogK~{EkB$8eDsX= znVPf8XG_nK&J~=SIiGia@9y}|z3FhX{g&gcj=lwb=lWgyFW&aLedUh- zof`v-2Kw$UzI*>(+&$@i-u=-BsSjR1%z8NeX#HdC`Hh-Z(6xI-`hmHDqv!v)W&&nrf>M(RhcN6(D;jNN*%^u_SYjF;2ng}*8Ow)d6M ztDk;%`@Lsk$;9w$(d(H%O5UixIr`T2ZRcd@b$F| zsYz8;RjJ0tMkU|9|C*bdRZUHeG8hc!y>Z@8*V*4rdygtVx>fz~=IQE(FMXi)?pdwo zjEhtN)c2nLSk)PAs&4OU_5C5>y@~4OwMEM6>{X|Cf2Mx;y`QL=^R7_8dhuR2OPSd(L-|(q<9Yeody{T`SRJdXSEYMC(tb;ye)H}Y)zs0U*1rCzc5m8u z9#RKRw`v2bE?%o{o0zUJYLd$Fg}UQ+@2ggeLzOIhOO3*0_42Acs-??vcJQ8WE)P5` z9i{4*V<)KxUsu>5c87mxl<-FN$3_A^(#^7%e>vShpZzLev?IrlxQj@Nd1dZ3ikYEa7_ zyI(E-qKGwG)ao}LQuqFO3E^f}Rr{8z%TwL&-TmYuRZ&@{mc9Hd_2R01EUQ#c^9l9b zuOC()E?c2qe&80Z{=iG_QLFY;DW}$gOS%7(A7-`rou}38A%Q9@dyaZ*b+PK@U8kj8 zeg5X3)sv4upl&K)TLD+94|kU|V0%_UpZ&#s!Jm7R3|%j#rpyE^gtTWY*#>_2{PjjC^MS6dc8 zqLl%zR7*ZTpth`Btp2uiyXs-5O|?hV^FLUiJcNM9r+)ms zd3=_k{=9rIN2HXoa+mtu@Bg5-lzP`bN9>(g!n0`Yo9c&8ex^FC7PaSt$JMC$KT$i& z+XNt-!gjUnxd+sfuWwLB0@P)!RBt{^c&^^7_HA0Mt{Nw>pRQKyEmd_Dd)1xs?zxzJ z_jBrGRg*f-vComQ4ZB_~-B+O;PP5v#e6hO!?q8{&+%TK(4pT3``=NUE$$Pc&JpAf< z)z%|3CzoB7tbS2_|LONsqm|>X+@XFt@4H+_b?(RfYwajkZ$0@ZwV|X=HJ25s7w=l2 ze){v<)kwBE>aM3%af?|wx~kMW&pe@Sx#>nV_V)YLrh~<5i5;-kNj9&f9196iV;_-d+vW)9jP|56^A;q`tRzYM;5CZqihI^+O^{E>L*VuRh=>) zjfd3(cW`|BYm~9ERK0ZfG_CHGsXtX44pyoopTDVo`-k^by-B*=sW!g)toqyHE$ZNw z73#ag-SE2cmy1dXs(njeQNR7;yQ*0hV0XEC`G+^FmzNw=4z9WNZ$07Z`xN!Y zsvTAqTJYOPXl-hYKw&UfIg>eIcPCx=;W`RgO< zg->=Uqq&pyKCC^T|ND=X4A)e1SUomhV34C$6;-Itj#~BH58ZXdOuw7++NkxjwY*3@ zemBog&g+!x?@;Ua>{G8l^@#fJ9Y0Wa%^Ab{Ta!+>?!ZIvKz|P3-^A9`(}lzZEsbL#6K3h ztR3zlPa&71Q+@o(Pt;XUzNPBrOzk+K{`|As)UzM#*UEV->+P&i@4xn@+IE!tT-M%4 z�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

8Plt_+%?A%c>qVzoN`6U>!+yQHo4` z*Y&;aW{~tZ)Gzuq_He~tcNb^EK@d?7w@akeBQ3;)0hssvX}zD-N|~3^ORKu)A+EAF zM5CTcq7>2C2^Xsgd(P;bOg3A^T~qli(F%mMY^LR_N14l2F(X>T1{LZ^zRNT z&6^4JzF5J5odcmH4ts5lN|8Q3Co}2h&Z@A@NZ*Zm*MEvLs=}M6UV=j8>;+z?izo0! z&SwcR4T`2I6;5C(W8t%cjwhe#*6axZRt+7@;nc}HiKV`{Z0P$-jiL9b@%Qk(vK(zN zuwYij)$M!UeWVXHkYTqaV1GcsyVO&GPs2%{W#LjroHl9~J~2U^sYHisW~4C8b59|O z>Q*z(fj{aGlrhCa(A1nrRc_7B{#DkBEG;&}50xAz57=J`TAK%}LekL(TKmp9^+&e^ z(3Rt`F9ff}`sEO=q>mBx#HrM+X_;)YXnwL_vIh!zC(sY1r@F!T==dHvy6CNVv!}&! zG>2g(JmlRf`U6F51&Ol=Jrq1CiTBB6o6)k)5LC1U=?oTS1=@G1{>)=wec(z(K9y1q zivtbyUIJ*dFwr8B;U%^+iPwUjN)ZA^ubSg8Sd08Dkh_V;;4&aH1b~z=VOx*}`d7>U zNKh37>?xy;&U9_Wh2mh5xrShGhXDys?|SYrh8Dx=+$(0cZ@S;{8&%bY$99*8mK(my z|B*FCB@NcM5OgLxrQ*QHtt7#vd{@E9ZJQ?dP1TPz%g3|f*C(Y8-)}#vNk@z1M{yVt< literal 0 HcmV?d00001 diff --git a/prototype/mr.simple/images/sms.png b/prototype/mr.simple/images/sms.png new file mode 100644 index 0000000000000000000000000000000000000000..a1fc7eb802f547dad700a819ee8f4db8513e539c GIT binary patch literal 78239 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


SE*N<>dEU$JZ^etR4y~u@*w;|Su3{^m z?0j=*3@YlzM`7g=r9F5Xx!aVL-dl0#q8!=cGH(=yOw z6|AdF$gaV+GW%E&>)*>du5f%nn3VX9lhhYgE(_bA^HQVgX=Ue) zP~t4Ji!q*YO&#D;ddDR_si;@|SdOp;mDe8V8~NiVai`_nI*#8NVk@zbms~hC<>md= zp&bPIPLhZ*$2F-zV~O!9(Z`A(vx(GGIZtdQg3Wc0y#ej9bh`QAmo+^hgqn%^X%B2? z52b#&4L^t502ZuA1ZO+K9XpPsFq23myCXgx|_O(k|{?-CyE(Bc)sQ(4u4`)G|H1=Ui?B6 ziX3Xq_)#|YM?EUM^=Cw^@4Z=tASookn4oEpeDs^{9N)i-wbt7#fe_0D0=UrI`@<@o zQ{+gAB3uig@TT#q-@&Im?gWkY))9%`&L0RHRH0F`?@7?fJ>e)CanfiY(%bnZMeb;! za*uNqgfy3?{~GP)_gF>x?1}Y$h_l}(ey>?Kc)5D07a;-Z{}tH}s+W46 z$du|;VjWIM$y2X-waW<6Rv;BfNGbUm0$>nhZVCUUw0A~lr>B%r(~1PB85}Qqoq>lF z2Cz$Xtd}mAFK=-f7uC2YxO&Uo0{~&}8?|xq3)n9UVBqY396xs`^;6@Q)(MaRRY7Z= znVDjyj60It*R)u*_M;6N1w@68SjvzKDk2X5Ts(EkFQ9-y; z@`{POf}3xgvtdiyr#j8mPnT4gQ#Xc-)%L-dDU#Ny7V_$D#caO}Og(OwpIkuw z{h!4T*(?hU@uwWp;C`cV1<0Phk)yknj?-kuJQjl{#*-u@P;-R9doZ{-v|p+7Y-QdU ziY4}Z<9Emn{b2}?oMf1xBnH9~w%WkS=Yb6NpcfHnu#Bl8(d)24JfNS&dP1u+wI)N@ zMa>YtyrFMomL7lQW;< zlD{8`Ia_b+bGzS^)s}iCUn)opBzEK=?VQuv*tCudXLNC}{`C2&dmY=%W@Phsr4K>U`~_WHos z=)9j1%9p>CsV_d#d#K(zWhUfBMbAbda!z$QRq-vdC%o*FA=Sq;aLcVE#}75;w9?ru zxeiZm*oVypk7eu1j}Ir_Z^F}rQ-D&fNzKQeYw2w?3Hm<+ zieyW&D)&t)_;!ENx=tyTsE+@1ud^6$+-DTh+ng4&N{%s40L^Tx=1I5I3lAmo0#y&_ z<9s7}!wwaigboDG0j>O~lZMRP_q|L3a-?6l-}L49-S3-gO>t+zTY3()YXDR_7{|jZ3n~^&KFRWFi%!Nx;`NP9r-O~E zj|G`f0GB|NA2NIn;|LDb%O`CYAEt9$Kg`{YEUdAZQ@MMbV=K5?su56-9&QD?c#*d2(3ydRWb z3Ac^FKM=LE&c=q#`<*ZUlJfQWccsEd8}WxCS8$5%ZnxsewLZuL~ z)Z-BR;rTJ!fKA20UpuPSnVwUxq_5VMMY7<}j7(X}l8~qSRjWB6EsoWo-Zud54>hJt zP12Lebwv0iuJ!ZY?psYaI60Dt*hm#G3AVDNsW+J-p0)5OiBmdUA|4li_+t%+_zAw# z|MXX75*}(yL4^fCN&6$fNM|l^}34f+cAW6>?PIiwa#sy_+~pxh%pn zKWvD+^jx^byJkvzzAnfKKx8D)l+G0SMQ;IduaTE43q$gv61*y?6yl1#E+u2g0;g4z zQF_KcObNL$A*PWqnNRI&>3E`l$yTJhnL#gIsqcO#su=gi2y|g^KNE_bJlbfVR*uDL z7pK~T2$q)xTm?5uJsA-r#^xa7P}oJ^@y3L#y*%H%Q<2pRghP`S?T_kJ%S)Dzxb0>t zSXHaCl*YWvu%Tmj(^=oiE)d4MTg=qQ!G*?=*_*2G!y1n>SDnk>Tk`H6iet zL|PHxdjhd%0u~88)Vl%e@yIWP<=iP)aa_3g&|0S6cN9CaJ#GkYJ3Q|4r{RwZY5qpP z*s<_@4fF~(QAE9h8{O-8I7ya7L|uG*`!#A3;|hJSjWp!_N}xy$g>-8@T%`Dn@D8Ds z#UrrY|DnmhE|lOMbnEBZ(OUnc8%flgaG_X9=YB#BO_3$WX}K94Q-;ntznR%)rR-z| zXBZKgHHSCo!xexRvW2w;luRY2d>4R_gT>7gJcRTapX z*9^l&QdspKZ|6Sj(`t;8(Pg6=iuc5rLTg9b4~f)~!!k;yERwq?Ah^+?MLS8xzT*;) zj7Ef;T$hVC;=KWCsINRf?uzT20s^Nlp2uGv<9&{84C+KCKb(jNF^;H1%5P1FGAK&jc!IwUX9& zgqM?%Tn%un3O~G7TCMNenUU{{WZ$3YSM2uhax1e1uivWf3>> zex&`>@1|8Y#1^YtZOw{@eHQ0HSe+aq^SBlF&Fbqn(Xj4K8o!^(pxz0hjA#tIbT4Ws z+90m}F(%KuH!%+Te9Ma25{C7xOMC;kao5PDQgI2q1M(TNCLtk{@bMFV6ZD!TN?4%z z3@4KiD>P`lFvquQWMYql)11&#O;yZ>E}fmk+v&}^u4S+jL0}>tRWvg;${YoP$;vuT zweHq9E;ceyh16b7~`!lCr9a}j_vd?M91shT0U>I!V&A~kXih(62I`c%)k|H=OrYiob-0!FqD2?mp~59*1F8! zTKB76^;Vodb*DmD&nvrfjefVFC8Q*B_;Ww$>5=DS=NX^;DUa$w)8Sc@QeMEs_r~iV zBI#-g6*nmI?I)kg*1i|!-}p=Ie3>0Fcs@fVEw?Miv|*Qj4=s2OlZ{Iq;2n)S7B>BN zZKsZ7$r+OcfFal$SkCT)-6Ea@<#$mdNh+7InwF@xnVmF{#1f6PaYTxpwUL~ho<&El z70}JvRH6_6Cej-^x>1S zO3;>L#p63Q6Ek?gXRXE_Rs-KeaA3bt8xB5mGFGCq3M!PSCJOfVj>9GPL`jnTFjWL* zIA#7+LPBb{QadY$y^?_X1pF!&tswuyNDQBCBK86Fr+rvDcW*F$M5)6NEOz2W1Yd@u z&C#H(QRjNP@W3fzFkls4N(5J&jy{Mqnj2R@;^g_J;Pc^hr+y~u_};RPzuj0WS<~+p z$(({`Rcb3@i`=ip6iy3xlSG6oeliv+C4WR#6mrtT9?xtzDoi7lh*F7rL*2qLzKXAg zaiRR&Dza*6n(FvjXe37_zFWg5$I$GN)g6B}bK@ZlVuyz94d;2+!^?V{I~L)Y7FIZ} zaaoRWn@(TKNm`Lmm3N`jD^FQrck-IesV8Fuph!x8V83$_$3@+hgntw$nGj^az&~L` zlpyQID;5mGywMR#vS2#$$jCY7fXf-H(25h}e7lUP6&o*eR#fT8QP@V83I)?a(3SIRV8G4Kjuh zmM2wrb+1m_QtD3&ZdNB{Fa&aKUcD`vgeG1SHV__&b>fOsd@FM)@Wsn*QPx?P`?o=X z3Tr69s37#49@R{?fm&lHI}bIA3zkT?kznuNtf&$!P>BVXN+C;}020tZ%xa*D{etco3O z`u9)1`zje3INvnK1<)q209=LO&6#e@iugLJ^Jyid{P`Zz-h*qe1YYkN16*0)5A;60tuJ~rT{cYOYboJPf z6~c}|oIO(REls-U2P}~6=O5hl0vfjiV;xvOTk({~NAMhxu33?UV&Mu(wSD=uKkHBA1_mQL`4p= zw#IQc+REbqm47e9lAGg##jaQ`+mwO&F%sbbT>D(`U}h zOf#!5Z@vlST-g(lr}d7!CHDW!obVayV|ErVQ#YOVDBbL_B+~Zh>oRAE;$P0&he=pv zTZjX(@$!F$s{e3^;Y#KNarUl~ER2Tm0(o(i6^JPY!3becpZTjp;waU^> z&USm=2zVD9EX=s(q^phcL3`>(Etfy zv;@HxAx{&#hUIo{9cQakwA!h6RR((VoHbYDi9H=YtdgQ!`%4>u4$eNXdIC-rE;_Y~ zAPf~BH%PTrGPc#CPHk-`w5_M!l%I2d24MTkou_ITB%&*Pg+JdFQ7wbLbQxxs?NKBODd!#r2t%f9}NuyT8wvd!}0TbH_mr$ zl1HHt--~WYeN8-Sv?EmCdxzB)RZWI$xPmDlJ>DZ8PR!J7o7<5Z`kp_0(V|aT9P{FZ zI`bXE^gDDrFY+C7ca-ZGDg1-l6Vq=xB>mb>Px(8aV|9Jb`?=kY7Q&jO#qVa4uM>;b zUQTZAWiR()JKAtli8-WlefqMhW>Zts7Qfm1`yG!Tn{c(s^J~V22pi3zInN}<(k=?S3gejNy8&h2030ce!p9`_DX(067_a1+qn^qZMV&q2pY#-D1?=k)C ztkfRys5*G>_UG-_c|8kivoOHj?U;MV1*LcYO<}wkL*Dac$+34)TM#)yus{t&VD|yJ z?JT8f@A)iToL3PqI*I=V8n)u#zx(f+#anE(2RzQ%vPTm=j`8L0`+QT!6}#ZkS?>{h zXA#=nTY{aNGJ~g)saz-5ORsZm)_pwK43Pf`*OC#QLAC)mrPBE`lTPYEO(0xqw`O0! zkkE)x-=UmtSjX7nxf)4_{|KMKvhj2LIHKQmU0y>xEv3&{xAUBqg%t-2>qW*vPgx^K zpkr&)9bCP9i;F=7vNEESO2H+g!zeiS@;?bJ;9O&07e>VllxM}I_6)gAU^`zCgv}S@ zv=jCSwlvP)DS2G`7gO?cr#pm~2INOJ8K&w({@tP`Z6L~Onk4*FG2rR$l~frS#Z zfreso(jG%^1%?tpT+b)4sVv_eSnYrmf$j8t>S6-2wd(XG*dIXLImkh_8l;$k%i-7A z-~xz1jzGpBTEO+_JHxyFGs*m^c)?x1s`J^a`+jR{8dIibg5(4Wx_0o{B2T;I^gG88 zmQvUB@)^7hrhd%V^6Rz^o&iejyg1@AVf$}N)+Xp??=_nea=Vq;5#qT zeF;sU^00A_9n(W_Dk8m&7@rq)bYfK>vf`VMrhB8ypuE-)IM5%7m?7z`qS!p)*XiB! zwT?pyt)cyn6!^P=W9YNZo;J}#Y0ghj^4x<><#yTjFw1;3#M_?am9(pW)@I#tyn-y9 zpUrU=3NTCaYNz{CJMQlJIHL20=+IX;*9_sIIeKDkaePDW3N?^w^vr2mrM&NA-1#qX ziyzziJ90*XP)~5_JNK=z#Gpg8*YZ-2&4c_ppx@2NfXKIFSaTFNB&%<7Pb;{`QQ?j0 z!^RE5LWwq!%MwMF|BEQlgcw51XlWY~pV1YvzG>N+_0#vYo)t{ftr_A!IL6!CwuG5_ zTAaz@#qzl)nX78robgp3((%Fb!!aN$YdbTWmV0^ehL$%JWaAC}F6Ar{$cNEJ?7hl6 z`_(55D!I1QGzN{fnRn8LxCCH867@NdBWys^C4qd6ou0CBw2$&8gE-_8C_Y6dJp#mGit62{!81)XF=u1d5)ZG1)6RCfLE~8h(_OO*Y$4B;&Nm@4%)U)B zEl~!4Q%tho`+;SZIxlNgS!IX6SeXV4VHyElDM(zk408#+J7HhuNlo)5xfZ)wc5&{- z;vX9Ke|G8KG=ZT$rhhsM-?{CUcxeTPFp{EMMcKFsV}1Sd9wChEBy?y_%Gm;wxtBl@ zPbp^&y|1YvXI+TqS4PKwGI_v$(BwQ4G~-C_%TS5V%O9M>%KR&IgH+zOy+q%dG5t

m5y!?w83`+SV)3$F8UfQQ#cr^FW`&F$cuNygg7XqlB%t4$4O;X9ZTgL zJBUs`54V$GYCfr!%_!Ef`0CWuFJ2#ZVzJBE9)bLuu@r(+Qw$$+v6BtdSg}XBF~8Pa zid~he3~z)}+eb5q5cZh3^+^*&#HX73mGi!wxOXN;CNnJgm{tps)1UFYjvx*sp$`Fa zBy8Q-a-%_Vf!cnHXE?=1!jbjA*+BSgRjI5RBYg9^v@QnUSYN3+9-;aoOw_b=2@DBt zL%}kqb(u~?O2Z{3qKhWo8i?l!!rtc@1eDegq9{rEgv}-}++<=vvZ>34 z*s_4+RzPApik@#0&x5b%hBDAiC*VvQD5N)yn_B`<2|9~G6hEosHJr<#BBybrav||s z9B}2b43aUq`R9$kD8W+x7e=Dq%DyYV+#I}U6No@fPyfa!Qy67SPx2AnX)un`W;ekS z*vvxCqEjD6xV5=yEF3O?rszXqWyHsQLsEGjjZcNa8-nA+mjB`e3vhdI{tA-iABvqR z9P0MIN6KBaK{=;3ZP&$-2wOAHx~vCDvMGpWzSl}B|7Fv@m4^U)ADU8FE34fnRlp*`7`hPb@Efs zA8QnT^?eM&IEn%*Qvyq>1eH3;e@CQ@-*A~TU9&Kx7d)Ehdir`pMS9+T$mkxAhk@3K z2VBbw3Pat?`xfic%3rEml^itzWjOaG8Y5d6b=#Z#;Gu{k^tcm7#=K!{Xc@Hj zt?`RFMGEV0PsA~y7<~s^6{B&Nuq^fuL?@)nzW+lWERcju;otq?qmk%9Xfo2tOxZ_2 z$dJ5CN~{=f%L)b59B*YbT7~&-|3@ZDfD>p)3rykmGL3hwEnag0ATf8?7s1v|eIy}X zBzt*Ebw5u^Kb^2P_8%M1|J`vVMu?3UaQztf!7m4?h;a*6j$WKZ3BF;v;t?r~pupNg z9$?zom{*YuJv05UPJ5{UQ`vtiUO#L(Qeb7n9*B})z`1ILO?&WQAR*omrUAdA%(k8d zY$(gwAzdneI9hc1AGUJ<%6ADUEvdITdaW-U;PxF!6)Nl<3AF$L_+s11*3H*SA?OOH12Z%oXNI4kMYW#RwSK2oA}4Um(X z`eW^^BDtl7thBtG$T#h;82zxjTe3j~VdoCwCN6be3?25o4>0>sAhEHC%?f$bmRU*X ziS~_y4-&&O=_tf|xQ{X&fmujF*0tV~SR29IXA%hGd?k3OyG z>FE|N>*F}aBO2nHZ%`=DapLNwT8i*boW}nCwQnBueAKsrCV+LROaV^aLP_*0+x98+ z%kiVh*%rD~Q%<{pA{qp{S~x3J-oC6XGS8E{UC6S_I3d{|n0FzT0Oq=4cy+)~z)S!N zG260HxWrDD%VuU~P*}QQl++>{)aG~CPi&A9&DpUam%wZF69PX;k8cF*>W?N?e0hGt zpTjGfzE5cV-9v{1f%(zG+pgwx(q3-Qx6GECor=kekTW?otGjwIsYEo3KjbV)wDkF# ztcqwg+2;&94}ronj$ASKT42^4twx_r$o9@K%nnlIu+}lhoWSU`>bXmaZv)FVbGzGxFL9sXdKn8TGo{60W;?P1m3YavtN{+ea)7`j#8jL|L0WelNZ=O#1hAw)kpC=%J zDfQRIz(S$sdwn9*zY;>8;Gc@%jx?q74}KV8Lhnkdh!J7nvM^X!t~y}(RpX*N~u>T$v+0)jVfF5CEdw;|ciBg_aONo#|bf%)wo3{Kv|^DLXn z#8;~a2aGKKemH6Ua}Udoi`#4_W1A|FMAUuQ{oHxeE9(g(pW?$Yq&($yo{$YNn;j&i zs{>|N8hJZNVUjb7Oss2o_a8PwZY?iYVrFJe?0hGGn3E=i?=(=-B4LX!HV|n^1eL^fhi8wMmqJ>YEyGMP zJ(I5&w?ZXP?41b3Tc40blsPIQm=7n+nYT-;&KwQW!-YFlWOPB!W!Od4%SA?mmE?2# zwGZS_ZJ3Da+&yJ_`$v^evmBT1If45Q#d&}_X^<==f+P)_{N0$VX1iAd9+f(WwDA-j zmRuBwp-3fH2`2$t{O_92g>vg)b!N4UFO8>MZ~?cpKHDK}oInqhMkVamm?F$(ICt4? zyaUckQ4IM~bXX#G#VmMyIbBrTGBAP`o%UdO-od(Nfh4Cb31$;_kCXTXn()I=#rs~f zVabatVWm~7#X3eSNx;j(uvqg94CuuXUoPk0Dafb~pRkO0ltY}dwBI9)i2f}*6@*Jd zWNxu*Np?*B3z-JXC8eM{nP1u#WdVBCXl zP8HAlo46Xpd6Jr%&bK!tx@r8wsp@+zO^XIT9M4D47y{%@Xz@ zSR1{bk3vP{CpAog7)BGF{oav|8)BZ}E{b$%A0TTP_SFcHy~fyc8!cCdkbi5>jXp3W z{PvK%r`VPWr`q&G`aW_sOyMjdLpY|9AS0p+2t_cO%s{~=vFvS<#u1%i*d~2`J4n29 zNMb&z8kznr-3F3Tp!1F-sWzgk+Wm5GGL2}?2r!yx#B&iIBD|aJ62p{v`#Q<~SxfZK zN{U9YtE1I}4ubHV&qn_Yr&@gVJCjs?(P+W#IeUx|v=|x`yM9aSIYbw-8xhPahcoC3 zw;#f_yp{EkR-%te^G7azM_77ULJVZz72^tG)oligf%Jjk@=n9l@am$#)SKBVzb_xe z?o1yfT_uT#EMVE;8<-^}ZQ1S6&iUzTo?Hz@kq2Uw`9KX`hm*LdJ~>f%B$~cY#8lre_pcd8s=W2& zo3IC59-|42oP_8Nrf8I+$khH{ycfBz_R@NQiY_!@8EsTF>||&(-UUYGmnru9wn=#{ z6aLU9y}NM?p?9ceW9tXGO{*c7D!WhvvO^|NxLn- z6ni+TYm{@^iuF&g8yEXG6y?bSeNWuDvJBJe%rle3AsAM5GGVjEY-(&q#c)6gbyEje ziuND0SAoZ~x;bzg5Ln0ZFhK6G5Hu0Xzsh8h>sh>FBFVskQ`A55mJYlG=|*Swtli#T z55{Q}^-dsc{!W~xU-1`&LMcciT-N2vW~=7)v1yx&Sgr)w-qsflcD8qc=6}vV~b!VAbeP%j^)SiT_0eQr}1Dy_^-`W1pcjln50&=WxT$(PpbUJcClO5oVc{`GG0Fr^% zzDxtnX`PYCMI;2VGzmvX14t1zzt`7Dv_qdrycrNu?N_tB`mlOK#{3;88mL(;Qj=6Q z2l>65Yw^!4A-$f;`{=Ew)H%XY@>e-@BE#Sg&6z%AM0H=#w4sc&He?uGpsWiLX{Hb! zFbg1B2gsWo&oaxJS@TH+j8(j0P|`5me|3`-GZsZx_A#n(0aZpyDss@hV95O10%=J( zfR}`fuUDYaMB)t_(L}SQEiQ6dqpd)30k=i}CmLQhGUjt9Uhc*K+&mB?1Rs#FLDCDB ziwvtQ;A@lNVGS3ozl?DuA9$-G;BkgapVZE;D~EfRfM1p>Vs$x$5SSzm@MM8=)vEK9o5B(k>bY9Bi6*pqNg-i6Php%ieFt z-k!F(ehQ0LdZeX#^lXKI=E_%gB=pLTK4`TTzn+8y;2XXH`t8FQRB15m_#mah<~183 z5Bn1X{AT+9!2_lzcD=SAJvv=qncI4RBrqBE_*G?wy(J1@${>!P6$Nbm`+AxMFomic z{tuai(Spq3s-FrnxVryQJY^&wJUYJ7l?GS>3tpzHsoR6k5hf6%$aJA`nMJP>y2CCr zN>m}fmh*qh^RnSSHSXy-!I-5Z!llqF`DBiUwZRBcJL{{O^&vnX^_7I0!EP%pes}MG zCE{okhp!yChz)j|S?98{`IYv;dr|)XO8)nT{DD7;E=BeV(okLl2_UGV?uG6qQU|9f=7hWr2N zND3T7{BkkZcyo4Z(7Z+(j}TVh#Vsg$LjQm~Cfx>kV809Z@PkcBfqx~t_@z#1yWJ>*>E*PW z+uGW~VEec)&ctDnF~JO=P?a_uLi+x*vNA24%1dr%JdaaGMg|M%lbRan$B!S-=bO&8 z6H%C%9;UQEzUSuVj$w-=j|i*J67aQ(TeUkw_q2oUlsV~q@ms97N={rrW6TCV%DME0 zVf{zoUkP$&f_cLEN$cr5=eDyR4E8m>R=43-tDRPxN6oMcjAoDQm*jEW-Q6hz-hhA( zQ><(-q+m>iG#2=(7rmv zwL&biox)!Cv~WAFOVDDGi5WR*T7tyrx;>Ngk_>?Hj{Y|%E6|I)m*t_o*L_gQDq>oG zkK*EKs8l{(Q_H_yN?=|~gM`DXPJMu)S2s&PLi^>E;xiew8c z2~f{w(4mVh{&a$=}oJLwA2+V5BB>uFo65DqEIHJ)(1M7t$ zASzWt))LuWH;x~Wv+XQsB^tkP9TZH@$Pdo-I$&mIWvzRtGyjuR_1sy7{$Bgb7qj<| zu>Vf5iB?YYOxamt!uvh^TWb`QqLIoU19Kw{IMY!N9fQU16Y$c4Od;vG41q!AtOa{TB= zKWgOrz3+X`WWV5o3*?YP4w2vd<~Mf45=QqYo_InaJV^M%AO5fm88XD?7PoENCSUyG z7fqLV9;Sf*aRd%<1P;g{aJH*PYBBjGVyVnH*Xfg6aSre-Z7G60SJE_ z!*H%Izx;9=5<}cLFsQAmZCI%`Pygcxq!0oJJOQ$D8%QHwuJ~aMK?0B*WP$~R<9z1K znYLg;7%VjA$HF{cNN4@J^-^6^Z3GA5@q^%QxZwt21(!KDR%>xsdw1P+my8-cN=kN@ znC1BT>#sLhb_~O}C|P1r5|aGg4{TCfYh*1u|AO*(qvvU z+$Rh!kfvSepS1Lde8aUL9f4Fr;DDV2426gV7$=S3&oK~4IENgVyMx4-XJg2G#1Tgr z88Kvp(Bf{<;zjbUZ+*+=5Q9G?$#xdfB46ejnNwtbkNtk%`1&_w_DQpiOd+Zu1J>H- zKmU2NHbYvFE*2uzUb2f@fGm*kE9z5Z`5-e^C-HI2Ws(;J{EJ`w!iN6%hkb})B^*C@ zjzB6QaKIBFBVZN`k|+5g7W{*Quvk!ltRN6peZQ^KqmMrNs4bA(d+)t_SWj4d%(wmL zfBvVf;4*i|VhVF?%-@j~3k;+U`C$dJddm?9DKT$|W5I*P3JCJfJMT2I`sO#kDOX%^ zg%L7g;?^1jcg;1|*d9czzt4T{bGG=xLJnJ7Shyi=hVB<#bde2znIA-NhW0q-7hiq# zRk`V=n~by}>|h030RQ6%9N-8XkWYfd%M9{iV{yNJ{cMgeO!S9&KDK~hg)szOvu2GA zJFx;8y0Q%hQe-GOZQ3+jI0)8cNC!e;>k0FOY(*g)WJWj$76Kv<<_=liUAK0fOq?{) ztVtFn@C#dZkd-++ehgU|0#BJbMY1v*pA?Db%gQvwe$q)NS>D7$7A#frBwchO4~QB| zk39JyC*fXu?KRVpVLl5uA^kXpe(neys0bYJ1Q;*4(73}felLC=<^|(^oF~UizK(}a zzSrLC*3ydKYtMPI4DE^QVI6@35rLE-KnM+sELd+8BxHaKe$8Dc6GjMY5fgt16A#CE znAZ#U;@9oTGo;&6zCn&~Kj?{nkfS*nlJAB1;TY2Oqa$#jBajjVc%T=e>*okK0v$u( zz+VLE7%m>m5pV=j0D-3aI`%V#SpZ<~99vWvW-_$XZGY|@0Y{*#5TJ?abQ04oJn6)~ zQ+7D)uWr94Kvqq8IwQ=n`5e~%S`A(9{RV-AfkB(2?S(B~`;Gibg6`J@NFlJ7j-JRY zz!n~ROVZgd9RWvR9}wW_DlEYGM*e+Bu1BNp*NY$wdBY}WtiP6?`|VMLJ#$Ck07C!* zr0p^EW$)>L3{ zAVOe&w*JsyzbC-`y#Tx+IRcJA&mpki6JXCl=Q%q9jzF(OfbDR}PS*(ba2n3%0QW$} zJsbf?AXN~^+`4^ds_5!^Is%Ts0geFQ+|fNc`sQDKhi09=F(?JS zvTH=cWR_P%9|=0ZadGt=0Y~5fMIgNNxJDn0s9C>K(zmUbwCZw6tJ5z(_UR`X#e*cH zsGp?eP3<{cwqkn6c$&@5pV=j27$D6sVpmzy4Ab%%ZpVaefmq* z=*g1NPal)b&4cgMD6E&-stP?;b17+q21{mDGp}1u8PHr&N5By{KoCfiO8vlBTDn?y znK_a@VY*2F!BSgSFO|D?O2x)^rDoSwsjn>8p>LIBCtHc9x_=d@P3OF?+yp$?iAQ&Ta97hh~)k zYb(lhNyMEa;0QPZ`-DIsKN5+b?^B}fip)YthOX|W=M_lVw#`yevP%~{venvCt53hF zlcwM65w#HO^}9H16RgocwK`NzD=Dk&8HwAao(FaW9D&}9Ks1%6G}MD^Qm@utxe{N+ zl6g{BUnjYPM(BdClAM}{SbTLXfaunj?1952E5Ar;tE(il2j%U}<>|6H0**i%5a3yS zzBX7=TE^&73i9%le0qje^r;RV{^m-Kt^mv0#Zp(c-7Gx@<$O{$Ejvfji-&MwGS=y_ z%N~Vm=_LhW(ZwKY2B>hq4cPa1kf38YA`tTLPdfBCh%P{tSi~kbp%MS zum=%nDb+GD$#`AaH$5{$&ts*QxF07Jlp?@z@ zq_Z&Y%{m6SDI*#uI@2_R%)HIGvv3G`b@eg1UWImsKl%ih94`2G#gV+yY0rjnSLD$4 zG~tz+ynHFEPm`MTY{?ruO6qmrALY)IA9dxrSFm)q)NkJ)nY%Z2%@7zMD)mjxe6u4| zHbCM-+&N4{>V0-?m#f)Kl?*RffLl#%fg6TiD6$HSk$PFy|S!SHhbhrk1xIYhP=CG zgB0ZFnyi8NPMmqP^y}BxbO`lyU-0Pixag#9$A*}CP8lv*vRvlBy;zPse5#BeJ1U`z zKJH~?q$Q)ru5?k^M|p&L5RP4$Z%b+O*jpMa!8!R-zWi;e-nL1bpZe9+=+hyUl2KD( zKZe9oG*B(TPL!4gk(HGx>o;ze+wOi?wr<}c*-8|+YGvPo{Cs);d(V}jLk7wNk3KE0 zy!N(LN(z($tEjA!vrai)W*#%$EUA{1>?wcrW2qg;7A#sOFTXZl7A{#So44&!La&p& z+-w;&Y>*sr$RwFD{ZJV)c!0h(Tpu;m2)(6&p+lxx-n&c6WZ8;UQl*^~9TsK45f{pX z%R1diiZ2zW@m%LnRNrAk2g}IeL!~}p)%PZ*S9SDF9}2ymEL^xmZocPf89s8LR8^`K zpnm9f)ZvH7fd2h$;y%*c)bF)_AUqu74U7fcytfv~N51t}`RjjuR3?lcEjhZ{8Cimn z#aqYouwB^$(-;&_aJGExT2Fhxk+n58IaOF z+5&wvuAsQH_W?%3!i^g@$$d}1CZh-UwaSH9%o8kLyF}*9K1TZYEs*D5c~dSq=Oh_7 zW~7vrSE}Wgtv&U8dFA!Do9i?6*UAH3uonKWUXhU0nbL<;IYvsz*r^@1GtK{*gUy{ia#>$qh+hp~+jdHvi62*OVwNpo1 zUDpA}vEw}aItC-Uwnf&K!qE;hwQiQ{^S_y650!Ma{OWZjxDG>%MG&`TQp?mxFX@ zf+g4+)XC6&QJc1`muIyD8aK4RTC9VW+$v=IjuM$NeuT~CY}&d*`V{6%ffC+UwQjNM zi;D^be=69Z0ez*ktX$?TSuJn9vs4ZmH@Z!gwy|Kl_Ke06EF?C=_E#$}O9>=j2@hf) zG-!|vSG{*b_!<_=if}D8s;-rG@2OL7m?nDe#nG0gs{Lmp9K?%SazxeXMCj}vLRBjnKoBenKnxst?iedcC9uVi5^Z>;IwUD6 zEmab%lk$oxlZE&ulm6*!**cOQLnh|@mgtc2wg;Y+ep=y9JbIdZ?6Nau_>lfO-&t*Q zn)$i8@}Y}Qm(x#}E`60SAdfrme_VF%Dv=CrfTYur{5w64Cdf0ALkA6z&tCO@dGEQW z$(qeO!BEoVzvv=A+9hDx>)^4O6MsDxGd9k8-_7@5C@E_;otw zp-y+;s6{2%vJ)qak@IFumYusxW$lKoGN^Bn6lzDzbOZ*)@Il%!m6luQL^wJoi`xzL zPQ^2)S#`LMGgPhC=Xog$IXVN;-eDFSVnC^6!D8RnzDXB(ZyUiFP~{YOUu;sm=?Ql$2Px zq3^EUyG>>mvv%#;O}}O3vRls?Mr%+=_ASbbtZR}rx?_P}i)Iyf~M*6vo7<> zJL|T~ZnY4!ewjbR#AjA*kuSpB>a}U>PI*!1GuCeyVU3B^-&bCL+k~W2MqC|5C+VJY z=#{Ajv3dJ8S+a7CRXi4J*6VP+Z*d=4tH%r~nhu56Z`dsBHf`5AnC-H&q*QX5S5s11 zqVqG;rcSm-$WV)d>gHW{@h6{w5zMi63RLW5+J}<1G)!H$RsyM;ta)8(U)Wr>B&ORSv{VXA)ok zE!2g#Wve&HfIbCgDKUgUVfs`#Oc&i&tyw3JJ^#AlkgFuQdgC@-WPD3Tj~H(Ahm69y zLLKA-OO7l$*}@Zk>e`wgap|Dwux@(r1sO5mEqis=%S5I#0Te>1e%+3c@g*p)9>C^4)UxBhu&b z=Va~1twsh|i7(AtB&*kNHuD@ykzvVhwJ27v->4R3h0Q^+Di^KabxfXpixri2LzyS= zoqq6GomB5H^A|3+9`&@Dhs%o9>t($XLhx(4LLB=kr~3`#<#<8}9*MfE2!W9hu*i=Q4PRmT2 zGD+@v^aX2!EL`ocoBw+nTpeyl`0HalA@I*IT@{Px!angfPGw!Xz>&Z)Ds zoz=?C_dY2%-0_Gtl~YbUPUbCmNB-~Tdt`%>-#I58B^RH6hOTfICKeYvu2Yxn1Kgyh zEORg$H*eKBi!8J7VDRlaU-99~&(UT4(ek%j?v{;Pwo9RIvw&D|RZ5;`oqD_+eZ--n zFRSSYmX=Ou|DkbEILxn<=rC|l|6*GuUAJkQWGl&G6^3DZRf61xF(IuhrOeCp)yj$a z9xUMw)RE3nDb!6phEp2YO11WKwc{yO-I#KDTjwn|Y1!Burdk~v)dK0O#JEU@@~os1 zjyapkYAqui0EGl2pKkpN_BD$0!2W&Z6CZf56yN=j-2c?8CYCh~BSSF>=|3XX(QRMQUKN2&dzz4&)bv>eQDZAO~al zbvop`?O!kIKEPs|Pa!kr0GF)aCRb?B1re-Xw^8y-f1gqtUTsuyq!7+g^P6GC(-sjvf@gkFDxvO z%Pu-wigX(f6X%g^QTc>S8X!;)toQzEMScD1D`ooO({!VB<4%MSzQ>NL6Z=k!`}C3X z&pJ&RR{&D|P^7sp{>v}?^PRGoUOD{ZI zMb*}Sx_d6SFDyT+e>Vi7|NAO-&-6QS87A2vw<*}c3=V>|9DHG14eH<>Tvi(o%3VC zioKd)t3_|oiH5*qqv@*0WZhIhQuq0>%FX^$T7LLrH5TOO*yC}u zJF}FOEV|k?)~$}`guJXHFjaQWoRh8WZn*1lIcwGtMt;S`Sbl88?;L$PodARCHENQx z@V;wGN>e?^D1uB(4cheKkkaaGvn$i32Ji)3HY#Zo`m8E7r;_ z_dII76}#=njT>WnF^9>*&h5Gi`J%39qwkrsXUOPL!!;})V(A6SD1Z!eAq6@kDx4LI zQo=>&o}rJn4K`UD3qi}y#7>v%Z@x>GubC@D`uDMNVviMsK{53f$NVhyiM@dQv-xBS zFELVz%2G>$p_92ZTRdPd9eNm9Chqi>LnLdxb-H2CX}P|}GcPAw`WF{QLr2}T4k>V- zGRfC_RrVlP_5m=A4NJGh6w~4U0 zbH#;c%Aan$Q{L5$sDHctL3!nkw`HPkIK_h4rr%hew_vGGT5pf$GiM(qC!Kh#Ed8iVz6vg^m2d(Pn9qbH*+yOGDic$v0a9} zT9ID(g_P`e5B`a!E#N(5qQNjMWE#e{EUErr5b7G8bqJeKtp{aqE^A$6Q+U_t<87}k zUL&&(8*jz}b#Op&fz7j1p6o?se;~y8`qH)X)bn%IYCOnRQJH7&3UUv1%1S?~7TSKB z)1ke7(VSqWa>&8DI*c(DJx$fQZAjUtQ>0C3r}U=D0l*ragMi3F>JZ@aO*^9=Nkg-k zuzK@OQ_SW7l`vOs+#$!Pr4+dkGaM7%J#?UfFq~pF?dp$QDi1#PjJ!O5u{<;P9eMEi z`Kp($aBHI~*157VI!rljmXhBI$LKT8c{V{GRlc6qMc>|{b1Zxc^~~8v%k2+6qeQ45 zj!{RMU3>jKvRmf>d6tp}hl?mJx)`a`8gx>`q0Ek&I#&0fO|-~OEcYmCkN!n&h?^St zhHi4+pi>q+H=Ct%%}>8DSLgkf$q|PhtXoL>=#bI6WR20&<(zX_{0XehPYI zymU@Jw7ELfr6Msx?20y&wry8g=ST~@3Ih94O`lwu2SVx_W ziCMAL=IH!$rp*EJk_Xx%BQP-NDrfbHHm@&gVCdRU z9}bA#`Po%Dc5b?9y3@bY(V?JNIAAh1v?t1dUW;e+EJO9MRnde#_|aoSE`ZwULUkf; zR_F|=^v5b4df-Q;WTP-E;k*IH2%{H~9}rL;pi3Ds{XoO-2-c(n@r5$(NE*n~l`ho1 zQr*N(83l{bhV*)~Kp(+`FetnI!69eRL4`JgTfKIjF2XIBsgoz_3m%55o_q>2YHL`2 zUG0#GdbA}Fpjy;nTU%G>-5Ke32?5fg*Z{ppuc}~$Il*S{t47^XXq^FEXfzN>Tue^}boySA>mo^M8ow^Y^4m7K3&AHHE_IAIyxV_2GDwhh>oE{7X z%u!i;soUqq5s0%F>lmOnt0-K=j-f7g$OMk1)9t4T%qc^33;LNpv3n+0SC@~b&t`Hu zeYJU_{_os>g6$I5P`O%2eQ)<$h}P@84-`Fm9k87!(1Bb=y+JqTgQGX;bnXgm zCsu(LlSlXF!8;*b@&|?TN9N0f;B0QdL0 z=khxOy#WC@a6jb1E?WfY4Q1joI0BA9HzTm0kzl934W^r+_Us%1N5B!-Cj@*5yif3X zWJkae*q;&5J&e)EmiK2RTy{sm5pV=Lf!->8=!(Me{F`AFNM`AtV zp&CNeEavbQ3M2F&uicB@2yAcuh|uT}F?%FaeIEtSit^3d2pg3mh7B*N#e=u)nhW=$ zs{{M5s*L`8=9CwRHql?(0B^bm6??T)D&ayKQO6szSsrb8w;vcJ?u9oX_3oF}p+)4N zX?UUGEj6+7Y_bs=g(&z+eL-aDuATZ_0exSbR+3hX#E?gi9U(tH1-P@OUi$RyXB9eF zwKRSTaQn8clAEcOop%u?3bDro?#7J4h8KU<=u3Z!`5?Vj;;7nEiJO$O22LSptkdKR zcxjnAQluZes^{H#3P5NBC1qt&RaT-Oz1R0sHuM_ZSa>~{71d;SMYUw-7wX5A@~jQn zo8Hx*dQ)CrCS@fhTA%ilU3B_!to*`4{q$?Tks!JR*JL9!%GtLfDt6196Q|3tp~Dj2 ze;@|1^fuQh*Yf4dZ^>ILHcD~70oD^@`S3>Q+KOE=N58f;bl7n7kGlBYSk9e`40`fC+472V{j}*D z^6r+MicMds)y^VAU+!6=FHkMYtd&`FPS6jJ_f1$1selVONA+gsj_vZyi*u#4T=ZMe zdG>00Ui4dDR%%}cEF7S(<=4+w_U<|pwe?zU1Dm(5k%9g6t@KLj4VIuv-*gD9m7-+V z4w-f2!7_2uBq^=X&s9Qvy}9g_Boz3+w~(wlSdD=dzJc8 zqTcw1W)rlF{$L5`=V!=_88c+lw#Q^!X_K+@`aR%k`)F5bssO z0dhj!XP!vEKdNn@PjO#u6!rE!QRV`o5EiW0{h`S+Pm`9GtHjq&YShvR4(q4ifPVUg zwt6+&D{Wq*H|rAQ?zE#8a+SWaKPM|kEtz83w0pBAoo5wUKWJ%F29O`$#NZ{a-GvQh zW_ej9L|dJuQO|D8U-M>OI5Rs(zxiA!TT3hT16D;+URhyZRm&|XQ0u4G8aX4Q?v)Kp z5;-a`4S3<*#m@3lZ20_3K~Z0=JDJwLGISofo=+g?=WWxKHYydT{o-xfsz+U2h1Pcc zR*I4!UqaMxS0qr>w^=vEGpdDrP?`$KPzhoLl-}&9pvYT`+)2_#<_whD$anS z4r;T>eA-mvGo$p3(OZ1ALQ}@wT+T>luc=3*1QB+3J+lQ6?I0Q^`V}8!s7-uGD60R_ zCl9()Hi|8Lx47r9i5AZ66R1{i6c}|3A9(?4rj8ct(h`ej(XHP3SFvQeqo!WVIV|?Y zByF+?V*V(*-?>O=Ud^qosiE_1I5#hy-rg^D+t=`Kf?{|dZ~+~Z>j@&*iR2;0dgG_f!)K+UaC`zVo@OUNeOlB7!?zq z>Py#}axNecP-%)!<5l+nLlICEYu9bi&!_INi(>tz?eO74YzKlhut{UV; zg9HU2H>VA&zzKbNmEau}CMeg@_y<}%3ObZ8M_f2YSKad$LcyY0y=J|`m{4SspL1 zy+ui>`#n?6R`0ZtGw)blQ6Zy84VPiVhA8rB_F;Ke>_-kCX5-=Nc`*pd-gU zoW>3OMpLIQ)r@JX0BJ%|mfuQaku-E_Qe{YJA0CyXE4K*l{{ z{TVh|GT~^2)V&}X392brs^rHU>5d({q@W;Q=Ku#rPh(&vcC#}CY;jRDPQYOVsTUl3 zq^#P3L0r~`vW*q1z6>EsEy6a@58|gkiyQ(3?c0%g_XG`AOk>>*`bDCLtL~Ae_vR8= zHpmwhF9qB)(qiR7e%p0Z?TS^aW#afT_OwAwV&$`YrAmwt62LT6cN3y}3CGAp8)8;g zmJWFbN}r-a*|=$o;WThS|8AWFY$$_7HHqpBoDhJDLckHd-X&xXI#8-X>;?&=mwAi zF4ejS^5%j?vU$rk+Y(c)&ufDf&){~07)`(@zkrRgMr2axU%i9C`{S>PhS5cX1!&xk z)(r~?&4k_`yeOCk7e8+Jo)Dl5o%O1g zT^Ax3bkJjD&ZAJITi0sWg}`+*X)SDYj;t9wOF$8wC+>E2v77WXbhdWzT=F4#xzWm| zmQkiYZD=GW zUArVFCr74E9-<2&1@_!B={CsPu}s<+OJy-k!qGC0;^H5EhFu$zObSL>>tH}#M|eQX zO#4X6u1!wmHQYjQj{LMfHY|eR5f*#elxPP6(R(q$OK;ck63Pyw(^{0E8)2*r6M?PF zI)Zg;ne7kv43MY-G;9f?(rIBEK9sxux}zr#<L*V9JXUl0h zp}+pCvk5@XBRs44797(Q!Q0_z{1ncY_nl93>3bNiljNU4Q79^nvm z0*z9D1o|=eM~B3D)G;-NX~0NtHpttMTjNP`yv93iJtOtTe8WpLEH=07mlUQANmFc9 z+R^c{Z_35jA_ez4Aw#iBcd*%}(KyIS&o`HzE zFOD88FE39PEPO{!xctj<`!D}P&YW|qy>6?aK=&nsCUI5%Sh;a4G$PY2sM#b=Ctrj- z^hn`m>6Q-~Y_&e;iHj;{C+FEra!~`Kp+x^w8V!YT{N<@{&J#ZlNw^ViuPzY}jM>PG zh0i&!B8&2mQoxT@O}4+_8VMN*>aEdJPa5ijrVDoZ;p&DoEe{Hf@C5rd4qp=6H;4cZVU%DT-l$*k#qg&4ZD{(GOf`TM;r*BH|txdv!~gX2NSHTn1IBsGK7MRhI^JLI-zD4JKmK>Ma|32l~w5{6pQP(u zSEW1k-kWVnmMvRyH{f2uiNO$X0LPHfA&^j#Kp-T+0c`lu0>;E(3>e#hd+(NQSyu1$ zB;DzHRr!BD@6CMoyQ@8E?{0T>^8M#-ztd;ld-LW^pV_ff_U_#$b7sxZijb}y{X|i5 zR(t`EqlqJq`q5v*_~P#aU5G0MTMM>qyt?8A-PSU7>SQF$AuZE4|6RLw%eoDl)b8(+ zqfo5IR+w>P$Ecv=aWJw4<8V7jE6&5Nc)zc&hrNhHOxby;c zg-Z$KBYCC(og9N0?1aUKNl-_4HU<>ZudaAQx3Ul)uQ&o4J9-puT(1I&4(t3Laotn9 zPu8qmuQ-KygrblOMFj=3gbChq9Qtme*{DSbUZ>_Mfja0h%t ziu1?j({xU&B%&CKX*IQX%SES-jVt_ozG1Nt>&7%#-nnQf4zi9RU1-Np5m>b#88!eJ ze5omfqaQP|aKOaPWCk94nmToo-1t}5N^^6QwTQ$njBVmc_8ii~58Vn!4J<7>^c*kA zKBO^wy$u-h|G%HyiR-vaWbW*lmJ4TaBc+h!oMV#%B#JxSJ+p?%kPNzjuDm#R{f3Ql z#m)aBAG-Do`RqS@R7&vH275VF?8$B4xl=yy<=f=1mn}fUkfo;^*eiZx{dT$hqO;`c z%ikqAnE2&aX&AaEmOh8B2im%1 z(UdA#GH0v;2lu|T-p2wdgqxNj@n$<=e_;|HE0zBHk)hXb+$6vF)xGka z`=6EDZhf~Fnig#TlTR=OD^SDTcv=@i5L@{HAMcl7f=2~o*%H?dY}drw3MHYUIP8|E5etFYt^di*!|( zmm~c5_kSu?WkvE||MofD_FamUSSb$6(r2EN3qSM~x&QWDIepPWTTt`0=O_r{J1AU) zjx?afDK(m>!fo{F9p6|Qti*=)rem@Ms_S}mv%g4U_UETh({H!wp zi4A!dj;@rC|Lyx^4E9GdydE3$up!~jZrsX@_!Nrg&6_Nr`uNRKf(NhI(1dxb`w*rH zu!oTKOX2YdCZIDsCrCVDT=97;d@V)NM(^M}Mw$%CR|%Wj4$9<_#d7Yc6JfV$jM%#0 z)?sJEb8#UAd%zqrci=oU_eU1yWyj<~;yO?aoEU$z62?Hm7_zBz)JAA_5HvvV$~#E^ zSOyl@I_&(PJaN2Cn#k4=*RaDa6)Hed@t`dQ2=xFsD?5iXue|n#-17Nv$ijKk<(q$V z86Mif{cgZFfUSr4$#pioBYDCUB8Be|_9stm+%V6ztF~5Ndi71Y;GDB$(W!Ifu_vCx zwN8A7z&7!E-Xbgqj|{^PLqv2|4h&aJ!iRm>F;ikJMU%>v0i&|yosH?AJT@uZiEm2Fm%;>DAtFh5%xmRR9O#GZL= ztNijWEAb8sH-8U--X*_&^i6r<)y;}Gk_)LG@{EBffYHGkNPOHIyy=#?9Mg9w+9cazNNVX?%4b4(Z_u&T-7<;);t%p4#*JdzG7C3pzfJ{ysq-vbzr z2>nU-C>V(!=O&P6fGW+&=<*~0C?~9^W1^n;Hnn!3``;1VcC7FydqltK=K^q!{g{RDu8Plh#Amoz*b(l;1!vlZO4b%R;3kuoO z5N;AiS~SNBn`6Q4{XD*khoNAEQ8PY{VDyg`Wj+PyWHAKoK)3W=izmp`ah2*B4<51} z(;8V`BsX6=Uw-rWYWePOUzUpET=_8UBg!IzlWBUTaMB^{=slgT!8HsVeEp}ROJ}Gz zt4=_AMkyxg-dp|V=XgZueQNPzMDXx9dJN--PlYS-YsdUnV{;4W$@x#tdH9?HgLg=w z9?A>GfDe!(eL}u{hJnM?Em)0YWt=l-mI|;u-0gSv(#7(`^DpDt`+A+z(>W#N!k$_- z9;wgG9IASL_Ar@HU4ePP4YD4`;#jc>nLbp`@ssl8(crP?7@_IW{=IWCN_cvBooR&4 zy-U-DMgk@dp$CbX!33i9?0jB8R}Ob~%HghdIRgDiH(oU35B9?t?rS)g4(n4(Q=_yt z9nfD}^8tMa`w&*2`>RyAAQ5JzeB;W&><%MX)b7KDbb4rS7V(NO?4@Fv9Z%(BuCExw ze6lV?n&;PX&=e|I=SZ$f7XP#;=8Y|US8j@1M|KcWbvX?wOQo~Wobd4TzloEy7i?4jRY6RTJaG1 z?LYjP{MYw>DqsKdr|~{-mgGQ)HZ`^CbOME@;bKL}vgJ^cZaTycp_8zYX%cr$g|Uod ztOEdd`h|Z9C(I;WT%WdPV{U5XkR5)!^1ijb3-e<6nmUKA1)%BmS6_y0KBI6?Vpp&T z!r?y~)iylunuD!X#D8S@aQVP{-=ptf>!k?@!{X%}8fmNbO>yiE@D6@z9)2I4Bq9RT zkS_mvS_I*AB~ZaeWsyf$Y?1Pkd@N{1dUBeG`!Gqu+5+6}ef%w{ZD^CvUbR3Td1Z_I z{J|A+-T8BL5yVijaw3ft20A*J!fAT5La7lM$W5YpPv`(IqBv^gc>QEniUV;~qUcAB z-YH!=X-IN=Fw&K8I3L15yTReO*9V}F{c9NS+#6koVd&vK`N9hM(A5{nDYK`_%*o?q z+Jw<^-kA&K(xnUJspnqOIj>>pDRLOxjk%--ENIj>wqiR-tL&|7#Fm#lISVVHn|AHh z3sUp3-)-8oiSqhe>vSQ7`A|6c=PEO?$n?zfFUrsEyjwaUfVsHD-bQa=XIQF8{V^Av zOQgI0wE5_Dx&a(8_zFn)6h;TBQguh8A5E zfVaZKntBk!Xofw|)P@D3HaUP_JXoq74(EHS147f&?eM||S^h|poI z{$!&u+_Aq^?t5mfP6tuYY0pqovX7TIPeV|y-Ps`5pF2}#Oc){8pEpZ(*0&2cJu_zt z_W&N6976H(_immD8kW&x6wU%0Qr=x7Cb+l9#~CQP(Zf-NKmj+a79PTAT)k_mbYnrb zghO=>(DDhvm#U1T(q)t8=zy%bjYRt&G~+JQvA#8$vLzbR-x(q`_B5!hDb=U4a@;^VlN3J+;G4@)bHw58m%Hxv&_yO(+OFm&# z)ty}Ze&pIs}LFPnwO*3qCL9rkL&YR=>lGH1$2sm5F&^QjnKARoSL0U9|x5gHEY z%mht;ar^=&1mK_kL(>Qzc37i^z_wL^p-x`q&{YH!6XH%H=r0}_Q-iC|j|J3;SH9ZY zTNQ?&AX1ZUoK&^=jRE5MDqZ4u9K(sYap>97(jxag@Q9qTXfDoo_X?e)SE#_DQ!wq0(>Lwp0G|NB77--TGHjRZ$^LNOvM8 z@&EpV*J5Mv_v9aMuG3BAJXW@6?_T-wo%hPD3Dt7tW$!?m=uu!UjQ0$Z)`=>HB_2u` z_l>f_PwmwGgB?QOD_9HSJLhyxkwNivRzKfPjQ{l(-b(rp8sIDkhlXqvn zm8AvFH(FB|t%LvwbBV9Qu+khGGD-jjNyLT)pbyKP*e#qhRfXC8 z4?KjF>4x*c=($~T?&)&&nMc+OP)66r-45L5u(eUv;0lb!ER1gS2xYC0_SQjuVz)5ET zQEVQ^QH=J0KyfILA_Q4TB<$hC2jv1(WLmp0XG7)v)ROX#7A$fh?yjuW=A3)M+0L*3bMYvCY`c`D(aq@AH zHxmVXU7%xYTdOR_6v3H`Pf@z^b{(U6;xHZ`6PFe>jY)O~>Jp_nq) zlT?K;C9e8|o3$2>dTB=SH>6ZXgF4F-iIj!?59-ZJ%DjiP%pyja4`eF z>J~Kwreid7noFEy2cVO|%3%^)2BRn4VsT18=v?We>eo=MUtog{_HT8|$f9n2P1Xw| z_VS2VJO*YN_)`!bce@fSn%No7`+Il@BGY6@Zt3X2mJqdo;Te{~FDXhhGE&g!e@t7= z_!uwsJ~!6Q4)p9yLPc<9dc-Xj2X1DLM<2_X(D0ZbXo9%hY|piiVGt%pnBK#8tQe6d zAwmbG2dRPzMj>g9MFg*7rRV*+fg=SV&otlj)H!SJRjen^E%i2T*i2UE4xOkHJb8hc`4|m!m16oD`zbi7&?VLEwnu>WilfbyX@!ServniX$qYqu^5RMpy=q zA0;aO+sSe?x{eM+GJdUpJE4DUTu6!#IRd_+!MQ^-o>9ZGlY3kFdVHySa|l6eOyR+Q z9R`Oy2bxjAG>C&T4#9|7NQWVOb;rB6hXQ#c1y67lwRb!LdhDcf6bM`bRvd_s{zEgN z?J$iBJ{T;DH$R>LPWMjUc`(qz;~0%IY&x+;o&V;`umAaYgF!zE=detGnO3eq>j*6V zaBD!3$zZj?j{>F$5KGPhs)i4das}_5;_1f}KJg-?*-d3VaM8t)03TxMe`yA2Kx9YU zefhdlHYas8+GvnL^zrl0PA=ebqs{)XSSdYm98qxzDv!jYe z9attR=oEZ>LIhC1_|e|hu2Fag7Blc0IK8c@5RIJ2TXByf04)4BO(R8lM8w|ULMB2KEhOc7jP^WpIsz|AL_^In9ni%{K zWXRJ=QQ!TyVT@z&|DQTq1f&T`5vCD6PUM1LI(gk~y#oLMKmbWZK~y7NUaVEDI}w_g zgYge*nECrJtOHgVtZpR$Wo-*L&>_6h1EhDf3Zoa#KRWb@w)vufZX#Ym=8-rmy>pDS zprImDk3sTLk^uk6X%s`8)ZqaOf0x`KAx8*JRsiD*(#Eq61L#%tpbalH7@T~=v&MML z2s8-K`D;VL9+dJ8=?9_W>RE`e1Ip+HxBp&RX$Q)qcY~BrYB|uP6EwgFLV?VZzNu^ z@+}!VW~@|HR%xp?xI`c?85km)HmsL*o3_h{QRDTVKHlPzm6Ingzp?^!sRW(ut%mfJ z)&R-{jI(;xD%p*TT*pl)S7DcpYq|LL@N2KVE=!l5rT6qj_ZkKe{3!&byQ@=PeRYMt zOU(1kY%qCkS6=22*;%_yGDl59gUP!H0mMLUH~||QbspYm0L(Q-X!;?{kKkG&1si_B zmH0M7X16wlR82$D9(-P#l$Vz)P0hLT%e(K9sguUzT6MfQ@4EJB0Of>c!E$78rX9VT zwVQC={D{$L)$t%XF4jB(W-cuqE?c*4l{@dcTgHzaZJfeL1C^PRNKK;2H%bm1sMq(1 zM~|BXzUQzHmrbEZSb+;iUwLbTUcEmO*VWsNBZGi8K#>xI(?+}T?7;2=t!Nk~=@n%3 z;>!bN6;*hrd9CbTyC3hn=YejVMi{t?$7T=WMZFR{E>~88Cq)6Si9hS$#T^0@*^^Nj z+#KLpE#{`}D)jssvUB9EEqhh!pNx3*8Diydh{5n!|QD; zH|#P2*yoH+qKIS?5&?Q<7Ow3dKgHhFC2dggDFk`l|G4p!aO3rU*}HDXAf(L^^n7!b z2BZZW2PGMVT^4Sxo;Z1$G&R(rXJzjWlcY*e)d$Xpa)7XBWE4nINttBg2yLvuj=7J9 zr~p~RXy9OyAS4DifHyQW770*__ZUh`h9{WH+bkF=HQ(4h`UH2rhQ` zM$;;~3Bl@-BL^#4w2?TByZbob7o||2va+(JylNDjWBj554kQao73F*sE&vfdKsO#% zcv<`>ukyuV7@3V ztt?|NhkS}LbAZ5{*e6>dNmfK|xiDhds!}X4Ny#<@KJ#p8X_fqpgR*GGXzc|u&w*ZK z$)E$tpo<`QbZ716UDBPIr*G5xp)esyJKbO&+U5z`;hFhQ=mYzpYks3W{~! zkBc3CPhe9+y^I@Cf;r?G9YG8Ro+00PzNy_?C!6=wNl|fR>PY9*K%<66JjXdS3yUCF zSwQbRG0Ytj+z=k>8#! zqyvWjQ?c6nhX)^*ZkRLB6C~YP`6ty3mkZBZt`pvzCmcMqA+H$6ufjH%KRy1E6qi-N zg+1h9(okO~i|0<1C5smYjpksZ4Trx^Kl8l2uyUgeFD=!#m$`Gkx#55e$tjiLBgP%o zn;NKWZm zBNN6}%bS~Pu^3dWua9+gw8^ZQOC%#FUmE!$n-S+E!LEN`k~ZuK^J&Tn6DLd6%C)i| z+l5LB3#1jBpz&-i9&(>1htbR7!{!`GL^!N}c@Om1o;JC;IWlAB3|X;iy}tTK8gO$s z_ed6x7y7Z@|OIuq$yx-O=8p@56eC38&A~o9M>3NYh=pJ#1l} ztI&S_E$p6Zv&Ws~poOUfv$LMIDg4ARFX<7k*tQ)dQi7?b3)A=cA4X+YvN#Uneo4+% zd;fI6;`1OJ?4huMV#!b#5}tG`;%@Z^J1Bz6#YF^25~Yp7mTtKElAkX}t$&IO@vxM1 z8;nm>UwnrpS!~FRnQ11D7cD(=u{?}k->TK?@SaDuoOjMyIv2%vWj%l%j{fLm7({q@kfvh7T`MW>2>8 zi>7`GkcrM9AsYqWjvc#XGv+_%&zT{7SB1y)(#p_;lm)L!`xVZdUX9Gho?kl}gVk%+ zYtM#_BQG4Nsjk9rgfVEEz*3564Pk~So?j^Z$QzrsY{Tw_Hk}?Ky(W$uBUv1#LolY3 zZ&Xr**~XPiKr-09xAPj1nuj-lHB<%MNf3B}_*zMVijq8Byb$CK6C+1d>A~uh2|vZw zqpFtVA<~PKw6f#uEg5?CQyQCEWX{Z~+DYi@>ay))fbB%^4n-XA z*3?s0q>ugpu{Q_I<*^uGx)!a$t?z}yXm^Fu1NQ-PW<%4o$!VY6~Ku(3$$;q`cU-Mc4K zPnqD00n#Ifc1wL|XF;Y!=*HwtEA!$4&(2+Y^ggxm7{YKBoI@C8s5HW2@EDLv2hhY= z+c8Bd3*52|zQi2_z}yy2=CroTI?#lBHQ7Ln#okcA;+Vcpg`-3i4WfA_eSCwPXs}et z{79R%>o!RB;LH~aHvsDnZtUd31cM}JstLLI0ayfAnEJr zC`M%7fD|ymqQVHC0m=H0`f*cW14J;GcMfjmsH!Yi^ZJdOu_b4y&UJaXj+2wyn5kSzKm@30Kbep0*( z?D*aDRxktxKL+;!+D$6fJ1{d5B$grFYy<1-OG-R~Z72@vygLXY%O59elqT$sR;G6Nfe5tSAC8;Utn zHVR!B>g}%GC*7lLF3=|XQwD-d*wf!p0~#r#f66!B-@_4W_wLEkk+b91ks~UlybPx= zVCU|E{kXEM2E9P;yVI>p$;$E=>5vXoTAyfEzVWW1h^Zz^D69S$6--6La4>t!5SWhY z;SkmgU7_?R^OVL_pbcskQdpT68Os%9%3rYJFng$8G2em7Yj&?TZP}`m{M_2GW7lp7 z#G%UEhp+(|fy3aYz-;vJWKnupSKrE+bm5-{NHr{m-Vn5|P1tli48o7|T%0Gh1rXj^ zgH74kXsb}AxU4)+D61YIJT^XAhaZKrVb7;(H{>Ur(Vxw{yxK zmK2wj!2h%BLD{`$FE+;Kqc?~fyU|cY!A&$$s1$vCBJ_Yo9W7HDLsU!|B;*^O zn&K9*ox5>l5jqun#+(PtK!d@}?CF?uGxUkIqXjghk2Ma2%Y=!Aq&*diRfIg#Uqx8G z@MCEb7oTo$7C3@Z1U2TJg#7yp|8e7o;Z#%|cF~x)WayVt;X`PKXhr9I9~qbLDR47u z4)${KS}Jb)NXLSVw$#c+#9b*9umb&}%hup_R7#P?V|j;lzh5VMIcwH!(0qoWS3DYX zUJ4W7N(XJ2vC>DW0JumQr3vW}{watl|1fX%@g~RVBKi6R#V(LA9eAkC0p?QGpV_K08_hGxwx3_)&RiDEDFf zqcVvEVEPfU4R_#RCqa&pN+i93ZHhsGv>^fPXAG_g7}ZmVi{(W^cX!*0@bqbu z^d=SxKPvjAMIj&iL!O!;i9{EJ!5Eu1bJrj#{7?Y$)W;O`kXtb)N=Wka^0Z;F-d}oX z6I24A9xe)q7)P5}`lOI3E@|S=(Zi$(<3O8Mg^L2vFOD!+I{3!ZhFfoxPnfTR(en#w zrhKJS72emlsJ-*BUY6hmlcz66_ZSuN7$(maqbKI-YZe;7JUmapROqDmA`BNR{CQ)> zp`u{zMo+jKE9P05m_tT~f@#KA#?yMj4e{*{Zt84tjv4|pA9fKL=A=`A+tDdfVktx- zU`8b_Xr_f4pgwN3Kun!PIc0KPP~AC&6iEV*dmIC*B}PFb_N zMT!xJg0Zf-Q|6B=k;OA>o9_h~LcX8IU@|aI&Aw!2%8|4vAT8 z+WVnD($d?Tk-lg8aQI%CiLT~n6_Q`VsXDy8YlKF~x|0TU^YlD!X1xyJs6hH4Pvsj>gw=>85>X@~e~BxWA@5ye4=V0O21t%P zLwfiy#Ff(}BcsuDtk;GS4r*1g+6GclT8~fPEWE`q+)s8}r zyY}gR5W`$DKAD=#%sqi*?x91`;f?{K6NOJ-lW$Uhb`Psv(rMxgpu39!-n%leNXTNw_E?+uDZa9CoJo3^8d1X^Q;$&bb zjU$yIc-5k8=3TvRfsPV@^o|Y^NsWaIibfnxkSSJ(craq&w!r{=V?BI?KIv?!Gh{3F z`91ddv-0NZ^++DAHiTh0Zq7Y-*%FyQZ?;xyR_wa^dil}MeuZ19&zBj~r{R5)$mOFH znvXy66y9L1m8-A1Tp4%unssvTeSel4uDu-3R@Nv}v%>USxms*AF~;mo#qLf1Wa=C& z`fS*+Mjm?j5xM4?t7QyudFiEB&y2$6>#d0d`-;Z?cu-B-%g zDN{g~M`X*kopQtVS8AoE;7ke~LWq#6+F=Nh*Bg~Kz2qAc*jch3CtU9O&3#z)ua>JW zf2R)hDWnKL)93e@XI_wp9(zVEf7bRY>||vmvZ`JJ4nf zh3j!~@ur=1GGqJ**}1ntcI|^(Q=3d3Ss<64H3Qe`<;bHiu9I>Mu~%){Bg;;iC|931 zS7yQd!s?x}y{_GQ-y!B^{<_HJGbF%70xGf*8WuxL-Q#|^m(9hC>z^J+76>q4pE`~* z9Ps78=VI#q7bi}lPR8Jwvg)nX^2Kj_PtH1Jn%sEpJ9KLcdpErD{~x~k-|~f9Zj=ko zIa}vGc+<&mAAMfVgJ9GSoi7-mz~NynwmGbPYn@zm1%@oJx3{;+A0B^EuDsh~a3&>(+; zK>YYWenY}_b1XWrZa0a%5% zY-;5f&uo_E(<|hvb7o=a+#-$5ZF1_&F|q``M&`@Kkky-ZW4K%*Q{lI6SF;rIN^g34 zr2xVL7!?(M)BpjfVQBYK(RrAABp~grxE`D>8KpVXOt&J4>{k0b(tN=vG9GS4E(94- zfYtv(KD{zBFZNdU?XQ!s-}Ym<=Axx?;|*OoJ;@AgfUu~OW+QJ(uTT9;ONltY(WYr-uEn?rBfnrtz9qE zr%!b>u;Koet=n~e?7bgY8k95Bn>fBkcI~Z~U*CJb+;a0xSO_W5X#>JRo-cx(y=w~5 z&Ddc7umAlcx#gxS74f&Kud7%*=*Vd5|qxIg{*|H-$&r~m$yPfJ-@nWmFy51M$` zFZ5N$fjgYMznLP$$$(s_Yw42lmHBekf{A!>uuCs;pb(_Y;1IPEjRJ)q8$V7Hm6a68 zmYwzTp8n(Sb;GK%4E-2~_m1n7}fU}B}HIXx;7x`{rM7eUwD()~3sfm9s$ ztabw;4MaT#c?H&c_5yN5A>J&+S5~}%8*&fHWtUupZuKzPSKp{i%pn>tJe@apuH5&X ze~^4!`l>6Nh}eqxEY5@F!i`F4h#nFJs_qly))<{xCdfzh8Baxz0ck+k2vSTT5rsHG zT!bguOiB|rFE!F#RbcQAebf~@1)0?6e5g;E_6{_n?7`6Ofj>VYcl_dBx$E0skU4W^ zqi2L`>EWZ7BA_C$u~i%#%!WiC!HSAzFlyRxS28&ut$y@@Z#TGzQxg8H6M*#Hag%(KBbi>d#L!e{yerdp$EoApq1-)OLJ?d!kmT0jb*3i z$U?W@rY^Z}*Wrl-U zp~lB;gtlRZIw~rLklD?wNHR74PLxuNkhuy31HwB+prXla#>Ox^0;t{>*b$$H^*JPY zu#@R1#PTrbMFR7hr*~d_K3285Z2k`U<)Of8aWTSHwESEU@pD0} z=sXocK}c@Wel^>!0#zx{M-Rh%DKV;q2384*WCzpzd-d z9PX!1$IDa0^0bENoYv&Y6XhAqYi`-P4fDfuxs)sW>gq7JxkIi(1G)oqzZ?QGKgMY| z&@AJ}jFI=1@=4F(XUS>&sWc&JIEuR)#lY&W~{qBH=>x?)d)5F_S7f0 zAT(pnXBW=-Dg%H%WVGVqBAtY0%Ux8MC%?Goe#yW8VH7gASx`)HUL;d?;QiGzPn!+q zCNlw62q~gSfByAXF@@mA^qrmQsyT+9bnmOu78dwxx&~VUApS243+iE0Q&v_o%?^ zKFA)iZ8xG$p!~*Xk0WKY$0Y7=Obg&u1RNGli>X?DfPo2F zVjO~S!GpaS(u*x!Jyv>u@{?am7ly$(Il1!E>P_;uH(VyyU45ChyxjNn(HpPON?<)e zBnJj%tNpt_{#ka^?spXdd1yA4SCqLAP&10rh3UC8ovtOV&SAekX5yl8V=H;k=cNKs zZO9F+JA1sZd{z0>}EWt1BD1pE}ZCX%VfMnDr%95u|sJn;8^e3x8_1)vf<2&TdiJ-b}+30FQjt)l!1 z7`PhB;WJaY8mq^j{KD7eFIXLa_qA7m&rs3Ha}FMsAA3w%jtUxMnIi0@J=5ai1M{%5 zh=lQBMvWMb-dm22sI&)I zQYf2t)ZyJ6^xP1x6TQOcHq^cVZsE^q(VM(!+G+ZAN;TU%Rl~uuBLM}l<+tbsNf9Bl)zIV(Z15e z62KQpX>x>>R$6E_N4U8F>KVl9(O_w4LYg-5rT`i{W;9?uBD;2@j1g!nc;^}jH`0QQ z0+r$iPcHCLXtE(F$6MC7eCP)Gn=k&SEWi{&9*zqVG=^bMvT|glULwIw;|4d$!ns6S zT|Wr^+=GU-qP!GCPs~R%oMvX)F~0_u=4VliE~JSg4|Jtal(6B}or3IPx(fW{tLs&u zv!uA#k%eiZVvL09FwEbuV;>ePY!!IJ)_n+%i(hjyRKS&BL-RRvYox3wS4NE}#r$Bd zTz7T{=ygzgl}(rfI6khW_jdRi-inDw zvoAU;99v(m_@268j{N@77i9HY+7w>Zq;8q1SnVVJY0+uTfMzsZ*`wP<7wfV!OGb&uniBKlZ6UkNhCk5 zaOl}JG&Rcq{rXiiLFuE^$~$GL3&IGHu6TE>kmlW{d=GGSD?jHxcw5zp|Ve3^{Jo3YjKgWH5r zWwQL#i860Ox$MVqIUfRa4yHz`aMFW4!mT^^$?u=ph&+Z!aY3%`G31F7o|NH;gNrTN z7&D96>#B1X$~XV} zhq%&xgH}uqgFC^PoF9Dp`IqF^*aMaeVQFn7T5R~UpzO#JcmC6CN8Z#8mBj0|k_GJsFDH}mU1KCU;saLWd{Z~dmt5CHkQB6|3+ZJ**s zUG{K@e>-}~W#wh^xsSbHKKG;F%kwY3q{C#UN0kA(aH@g59{brbF*_xZymB?MKqM?* z)5Dft=7pp>QYO*{6>#_juL%dY*{;<8`u+i;qL+rSQ>;ak5A z3xd0_7=*=-&Cu6k#kUr{z>=H{+1J!5KmXGk^3A)R!~Ep|X=rYjr?)gp4yFgT!~VhB zpOiP&?$8aQ2|s$MWfOu@R_e=YOLTB zQF!Rnk33j`JAqp{_L_YZd(yss$6Zo?pi!T`yyO4=B;WY-2e3i6NLK^9u{yYN{mw{! z$d~)QX3v@}cYNXox$-?Qi@TGbUE)O0fC>UY4EimO!IdTAU}7rCd7$Oq1zx7sZIOLTP+% zqtv(Id@$zv+PV(w5SmhTc(&_2fB`O_GeX9rS6N%vBn>!MJRiNqiDN1-v~E%1%Yq}Q z#K9EHkQq@AoV;h`RXB~L&OTHSrr!pFq&xaS3>Kg#9=o`#G-w!8N1(?UG|%v0sozj?PZJg@9wMc}#2KmNzZ@utH_ofA@& z9Z;MHI%ClSnLA^$_6pfj^8uVce*IQ#58%pQ-z&If5sj;s15j6nP&NruCpv7{=eTBY z)*)1i^KtyD3Uf}cy#6K*uV=_l{{55K1dQW<5CUYr3FAl0e|+(8rGRgwz)dIiA?Ujg z4U>0Xbe`OIR~aU`y0tM`bn0CB-M^M<)&?)z47)A40;{4n+#}3XeJf9Lh*wG*@~OH- z+`a$tb?XUJD32dAO1|^i59*VjoYUm|-7W9G9>T3l8v_b3ZV9>Ny;n&I=72lV6E49} z`L?fo1n*~Kcnm>8T&dcz#besEsq*L(-vnefYM>W;(PemA;B%k+sJ!{+Tk;l;Q0~C? z8VbQLec}U3_aoRw(uOTFoQmkZVs559Z8$vCKahvz$zQM!5M~ZZ_cyic@ioo|`UE&U zW;~whrLf}&$I1^mAQAFG3*hWReLxbD4gZ5!5#EpaLN0vdVOU(>*oySqW!e~Q>IUz; zh+}VDNuEBT3Jt~t%$*-{^3Bq%a<)FZ+PbLW%`U6 zGIQn(6KqIk7=|zuYMk$*PMQ`JsRAc`hrB!%Odh$lBZb5ZB?(-+I4MW-3> zqv8<{4h7jDj2cxVlW`AV6XrkJGvf3h@$16*=xnTto`2qXI3dxky<+a6n~l}dSVdmq zyeZ2ds9{Rc*pSDuE8YwP+>JyQLCrvjdf?&t#)9K`yY2rBSTWeF^V3~8H zH(_t$g%6kxApe|k#_2lm*^GM;xozs4bCzk3khh~~=Ku*ZEPIHH7cbHgg~exYc!<3* zgU$B~7oIAop+`)9A`epFG=n}}cu#~qFW-P5p#+uDgj~ZvB?Dr5o>9^`M|E?la>e=8 zO$X$u)q54!NM?+I`8vQ%!N+M36N*-XgpX51yz+|o1d>;H*WZILZPg^kl;+E$ukFwr zIrsPIYumAuf&I5g@AluX&@hJ}yK)f6tt+Wp1UALOqY>q2N8#Y4fpv96{R5<^>$3qbf2~=!UT>|SP?!n^A2)Wa7Er<)G~;D#rD5=DSpivxx$1ONcZXxVGT^>DOPyGzdFSIn*^Yq4#GeJt*Wn9`Hux?$nl^^g#^>^5zhi z!oI!ZfXB|KBp*-5mf@W3`Gpotb$zW7463C0`kPdAaC9p^1 z%ara1u<*r<$SXvibDH}>D+&UJYyse>WwOmTyBCfo=Y&kyr2i__*Y@MuEnjP&6b=6!=Nv=LeZD^D2! z{F=!p(>tA+`NDeS@u%dDJMWcc3+L((kGFjM@UHvhL+`mvE$PxymQ9Gq;vI`?I4{H7E&c#R&pY8T$v2ZeRMEQH`azd?WvD{mG7G+8H)a>M z2Z3N0(v?GuIT@!(-VnO$tF( z$QzPhM~<|6cP}_CQ0S{5oA6UtP10i(+6YY|Gi@r>e17KC>o3z_cl`A?-jpx>$B!`g z^LKLkVhoL#5!B4-Q{-#^{S#b$G)ad=JXY4%Ry~3a6807tU3oc2dW1Y-ONJsg4kedd z^7H63oCHOQ5W#&2C#}7e1+IlohvX^GtEr%O@}MN{OwH+@1l08x7@Pyc4qQbZ^mVKM zbO-K4-w5H%=y56U1WjioNQ%f37HSlNf%1Zi5QfZwe~dxfe7gA}Wu>JVdax1N&;KQm z9+Nt*Vr$Q#?P{Dwyy0DE%OcEEP{8pHI6e?GADcU;kE@m~xYdI5LXpBdZqo4s5Gh40 zBJD{W;-h#wiQwI~_1ylEXoL~(55aJJ#5@`-&w2~q>0LXE{>qK~qN z;|Jvrbsz`G{`uU=HlI zxAVd015H>V<7VO{<{L_i=&DkKCxCYx96C|ApHaiUaAWnOc1Ogl$f9FofR4l@umo5xwMHmfQSC)X6 zAUm9b>##g-hI1HWqDOn*5cL~7nF_Z_?AcSRSH$yf>03VZUhID=(w<@8hQMLC3}!_Z zMqMLv1xO$NBOHTKkrYY;Zen$Rq{CpP3-P83bXF84lDV+SaO@L=u^4avukr*wrt23L z$2D|UTA68w6ZgKQb4IlbAr*Y0=h+AAOb=m&6=Ctoja>}h#F28G0}4o{5$Gp(k=9^UQkuUknP6}SSd zCO5gSHgkCU6XGZgL;PUmu@HeX4C)>@9F@Y`*MYdBu~htlrRtQ3j(<*O#L4@t6b?5x z1cn=N_O3LCe*MQ6E5g_-$6erOoxVVOemwre#SrGxU!}0R8*Ye$Ptu!gXoFn5M}IRs ziQ+5DN@PbFI4E7AvqxLaMkwsaQ=)m2 zXuUcq<^Ww$5)J$X+hTwtR)G~m{d&YA*sH1EAI|UbT$)t8wz%uJnaT1AruF~sBjua6oOW=*pcGR#7}XgUtmcdQarxIw{-a+j6dwHEl9Gm z@Guj8uV6M*!;ao_FzAsvKUcaS2nYpo=!R&LV6c)#iyz2qz zo!qbC93q4_f_F$MPaftPcnwf9VWbLRCjWZ}IAREFUV)H|1hs%k`tq31(|8Q}3A|MG z?SKEGzK~{Dd?zUbmkjYS!OC8r9U3S4hxIv1k8N`E9O$WWt&2=edRxnF_qTDgI#+phK!+`^MPq)%|NzeABgj+q= z4k(?1jklfe+Ob1#FR#iUt_^_R%h=r^-5u?cQ-Z6?aC1-Jwy&iRT{c|9!1t}K^|)yb zk8g3%8cOWX0H=S}|=US;L&&N$dxH3z7t}IiGjVSs| znI5qxA06IzM}qkqERvst6(FCMJdDT7x$(NByh`r5|4|wK(#buV7oa?dL=(jchmM3X$&g!fsF zWaOY1JO&Me-K4@BRfd?sLg{deR7)Tpx#(c*olKzly$*bU^)VS<9`}d(GXai zTi-Rx9qTeDFHM8SrRS5?iB8*k!~KSnrcTq#Bkfk|zQcbq#iSf#oh{5Sm63Q^i^}jf z3CC?orRd!h;sK{t2+6^uj5bH4qOcri(Q{mnAVLAobybfXDeVx1ya9YLGzuPj&o`sS zSLx`0^TT1qhNE)iC_DgGp=bS#o5CRmmYE`fcO_~WI@q>irP8JUz6bm!f1K`&>J5s0+m(9YI2qmgHi zFb7XJ=3%~iFe(lc`6NR;+E6}ZX5~m0d`||Yqgpg-@mew)0;5uJKM(5$zo9yEGT>)0 z0%(PucqlFrEclcnui2*i$x&p)IAp}m&Lhn1BNC{r1 z$!UUvxh(&y(AysL3;0IqM4>Y96-S+{`5Xbo z7G~rq9I@t)3OaZ|e`@va>N&7J+HobU3aEpP7XGx5ME32g$I7QY!V}==g1)Ua;NOi$ zWrkt0x)_&E=s|FYFekd{*U(sxE9`CJ`)y5&SmZ#PPCTZQlUsn7=kj!Jh`k+F5(>X| zJWJ5r+$7nVe0LUs2bt;sZxrJ3FWs@Biv~sj?&m#-H(WZ}@stBA-^rjL%yM$`Bm=`> z+qx40I%*Cua1P-`K{$|A6nr7LSvC~-Z7of5!ID{e?Uv3zs$gWm0ghOIi4OFLFBhI( zdS!*IShHP4c*!6JJQ`IS6{S5#$pjb`~6Cr{$@PT<8xBnu2^rzwQNs5^P+6p z-G~OFK(A%vlmH(kFUiH5ycb-ckC+Fy5r_C|pkvu5_*|8sklVj+pFH%$bJB!4(A=CX zTL~xMU;%_LwUv#YCRy1z)~o7MX6cE<5e~P3)$Q6O*(i6;1+x6T3RZ#XWIuc({yyBv zp)2S*5Y~rt8V@wc;@J~q`MKu+B|aE~0F;b_K&glay10Y~iyftSR`B<-bzd_cl+IV| z57ZryE6-md3l}YtZayr-GDjq8Z+B(1IU-fnL-25WvHbYwzt)%Laxv$}_e{DwTIJ$P z->J`0c6MX%1fCfTbYZ!ZHmoKit4HdtiJ#r`AOziTtv1|Q(T<*9<%D^XS5kp(fOxfV zfY&DqyL>Em4avxsy_;UcXo!abxEIh$)Ovt46LYGQy`&W}AOW54u#Or%3eWHj#YV_> zxBcd1N6?BX(J$vda&rr1RLw|PyM3P&LjWEGhi5|KRo9HhW7c@kx)Zb+;EbFozKMoo z1?cF?K;tGc)hK(IA6-jE2OpK5Vi{8iAwZ{PX3CKC}mi6_`p(@ zl#i&E;`|)+_zvQc@=V<*eq>m-49O~xcD#Cb1OhQ4I1*1ky&)+FFpmqE2|J(V)f=ds z%nRNH_HyG`0?_J+mz3#6Bb=L;-eI@E?9RGccZTnh5K}u6$4T9RUtj?yNi(odtaR|S z(KY~^q_Hx_GUY;mP7fq4$Kxl&GW2VVv)XH5#c||i;uJQVgEOI=wCs+b5MUq~lpY98 zohNaWG|qnfM3NhV3k_k#RqAvq7Zg){+xY)Bh@*_m{q5L7mXPKLoxZ-Aj$DU?3A`ka%8Sp~Y`paqQtBa0xukQFgz z#cCX_+Auk+`=(fvefa1gDYubPvv6D~Cp#-H2%fPOK;okK>c=Ed${|FhLB4zT?A3># zCw#V0MJ!CI0Hg=Ig+$A|6iu~TFxrRcu6eVc*sqm` z!4!tXV5f`W5wV9urPFLZPYxHFTUuq`{(33F(JBf6B{WH%W@R+t7eD5ohRW?xq)^Go z7$&uQ_sjZCTcu`1mBO)h-6lMZI!-Dp%5)`G>Ek1%MUUnbUklQbwaY|{0p+n}%XTyj zjWVhLY(SI0dW6(BG|BI-V+yR;+|4iivwwFn|-V zD!2|}gPamC<}9%Hpl--T>p}181XNrF$%7MAT7%SJjX>{Y4u3lBtjBn z7|dbBYB2J|@uRWbq7c34G%~Vci~=JQD8rhrW>3DfP=&JA=42@VE3h(6p-0B#Wx0E5 z_e*(sS^6q?49*d%kSOV8aMmkM3AD7fN-g%RPMz%#YVmZQH&RtBIX5W#Tv;;-nJ}gVeDsX`(+6ku;$-&2-@~ zk3+kzu5SGiK3>KmSJeR4Oe4#og$j#9)R-6wrmVF$hv!UQC~rl;@5!GKS*n zwrrTYR45i;Wtvk@>4HT`fXs|9j2>3y?CaefX&mv4P6PEzSh3R!iiK*LFK?aSRX68B zO;tGH$zlfJ$|xQQ54S@pof;WMPZYGZ%ig`#f)B&+&*uKp2Z@rv*B;H*7+H;UkMc_` zTv~aM#hB66(v7?1R<2qjZ@#rghrOfWW|hkqUTR@s>OoH4z}fz=J37h-3us0Y9yx~C{IQS*x{JDLAFro=E2JBCE zCpfMmXNW1n(Iu8v;5gjl0?2-BIL^RXGY);zI)~%1W#zGzPSAz)!AJjC`m9>)dZbDD zoZ8SR@U%f;Ava|Y(QB#N+S()wCsoq1FyzrCJT~`jJQJY{LwIO?=+x;tHGpXmUQxz* z(2bk7V&7_;_6S=+tKlU)#;66BIv|dbvht0J3uPc>Bn5|7bw5Vr0pO+Z8xjr+hX;5+ zvJFNtVzC>c?Q777%>w|RC=fiGdKe>1^gbAUP)x4G9Gc!UWjdLfw`nvsHQ`FCe4YFc zKN6p^jN>M3G*Ai1@>OfZ&1gb{%(Cla! z2V43806+jqL_t(Ryj3PpcjThx*(ezha9YIIV{c&g$(jxcrYVso<%7-#Dh`;UQe+Gt z#fA2;n>VZH0Q|(l8wSz)k(g9oH(TnzoCoAdf)ey>e1)T6Os691Ju#B?cs!L-3zrHI zWW^}}UOLK~mwoSnX71Lf-_Rr2fkq}x1DzD}Sf)@izz6QW%oO%C6dDCTr%guT7#e%X zBci?7oyOcF;bWz+*4v-wAlkXZC&FE${Qh{XwG*m(#O%xyeQ}}fqJgn!7J)g4d zvoUJQ!hERGp6OGH^(h}jLtGX!qr3gwK~fk3M^e=QA$vl|46s1lxM~@z%4Tf$Fu^iJD|uyQxo-6!&C((K zNE?<2O3DPCQiXQ@otU!XNu>kW8`+LIKrV!EKVSw9b5~+@oYN<1RgMH+Ch#tC&ojX& zv9EQD@w8huL|WRrq&PQ2rd1b9X;F?+zOl7aw(M<@`j#%-$7m0F#kNxk(E|A}9#Juv zor6Y(87i_0OdH+Iowk!wS-BBWfX|l9{dwe+AbsI)rWY?>9Czly)|?f&dPJq<7e9L7lq9^#7!YtjtT}6Bfl{FMqJh3fT@#QtN>30 z|3vlxGDn6;wIUsq5Kaeduxcj^?(_<1=N69o0#Q450xXzNDvM^0mdY~s^ngpKzOhAK zd~>_Jv~fRrgAjtuvoDz-7GX7XTp~=!B^EUVj?N&q=JhG}s7Rax;!iKHL9Pu*u8YWX{2th4`pW11_q^*`_es8#fxYg z+qz}R)N;9C@l+l5uiLUmHt#xsJ+io@qr5=oOsSCzmrTQ%b+8wo2m6E(L7?q zvH!{%=;1clbrskfElR`|8#Fe_-r0xYG{mM&TV&&wEppl^^RBM@eW^{{gukPQSC=Sscu;b`|^ybJU&&#z z_xH5XXBzczyaDau@cwa7iE<)dR0<2t{->_au8!Uzah+-N<-PF5284^s<3Tg&#vX7M z&TrF99F#8T-7qvst#oIl$FPWLQaIWxg67Y3!ivK}@+#jq_C*!;KfW0hL45wHQVk#b zchTwSf6mGKz?qeqWokHCFU^M{e8f?ofYs>`mlWKx9UT}pGn0G&x&xZfO&7sAUy5*4 zhtNP|!c4k(p{O3AkI#=Zi!BpH0W|hy!$w(o+3|5G8D}IB9Ny4_U;!zdKf?r`N2e0k z1yMS16ZeA2qp&*yZx8Q1AdkGZUGjlnPL?ft6k^`**){uQV)bsBIk`sWPp*>9&u*4H z+|F&~5jW-djtaAW98N9?IzhQ1Fqwh#56;#6lK#!j&5??#5!$sk0w*~O7KX=FjSeHY zv8=RA<77$3U?py7Y|={%d@??09_C^yD)53B9*ZX9Fb~Edqmh}mU>nD-U3+xjRuT65 zjm8~>73Fw>4~)ypBUriH@$%Y+jaxLnXGEsYqjE)fnXMA(Q`l+xaQ8xG$IjhIdp9=3 zc496uSKn6VkumlZw6}1a+OOpB_-hHPOF$3r?{V#o&I(TWIC0N2zN9aO0_o#d^oajR zocSf}>o#n}Twf)&cNDt{=xfgq*}i=jgjpBx8>J^_cq(EnwuF!lQS?Hdv~SqBS?OAX z71OYPqVN+|#T^j>oo>!T&e1U5EtD|xBV63OxMSxg@J1O%G$ksaD7fjrW$SkMw`+Nk z?|@7{#ro!H+6)*bvDC{;Rg^Qvo=7 zL}K$r0=CwkRFT1C+KzN}{`E5-L8DM3U;N6qVzxXLs_FeMHfBU}t^0u#H4s{f+H0Me>!Q_?ZS*YOqX|{ zt7II6M<;}3xX0Nu#33J~rTf8@4E#8HupY!yVH&~A%FHtQ*8luJx%RS)#>e1@hN7 zT&s5vb|XzTwA>r{sek;2-1?#SXhU%SgAdC-@Y@$ZeJgJDF3^)S1Tz~~yzf8*dCTYi zO+NIVOJwHssq*TIH{|x8-y`FyDJ*S!k-tIdSI@4J?|tfha``0}gRYUOhoev?zWVR$ z6X{|<3Lv{8jDEfX9+kpT4lE;Hr$4GR4>;J3NZa={slekMgT4$X2Pp*i9B7kP)V)G1 zB3599c+37aDa6(o@+%=ZzB1U@x%03`bjA*!1y`;YFF+kWtK`KQm^ zibs}9aeARye)O}uWFzJ^zx}0;p%ovay#lt_&%gMJeBx{0m#=)HOO`KNN^x&+pdx?p zZ?2aG^XF)fj&v9Xrr5k?oBYF<|5M-Sz3!?@b*T8_ORvgze{#2c{c|6Y*|TTjLVr{^ z43Q})F8j(=*20GZtStgcUu)Kr~4cM}Ok2w4q0+OyVaN<;u|PiJZIa z3|V%@X(-nW-SYFT+kPaICybWsuDnEV-(?T50FUeJ+Otpcv9*IMyh?B8i$ql3z|1qS z?8)%a8dl;N)n)SLs@1xP#6Sd1+I2`PQ|8W^p+jruWdRcWGLEL{4NjJpAaB za^w%<)ZVK>t4!p&N^MrS$Z0Bv)(cr7+wQ^_iyi$jp%95 znK2cOJ9=;+K)i;-mk+3*|B5+`R#qW8_(BOe9n*;Lyp(i!el~`?8QNGjw03J9&~ZP@ zKoxq}fVrgu2ML?zi zPG$#lWa!*TPZc&cQt$1aK7`+9m|!619aj-R0R!Ti^r8|eC@z)4;u6WpFO;$4#>spC z>KZKKY{!sirwXX&A)p?8ZiRgL^B|B{Uf3AG=y;sQ-&%L4yO**Ywy-v1pBFAucCy@&Ww&jhXpD^Ff(bD%IYZ=VjB1C33l_Kb@$oIL-W zCGzz1ujsH&S3?n#L&$bKaPth@FF0$F6ypv-_L%yrv>l*u1suNr!E!RnMD(N52duhj z8Su`4;NqS}4nNtrGw!+#n`HXr@pAp;7wLKD77Ud$Fv92ptm|>&W%i6oc%Z6Cns7zh zOz_TseDZzrPv8Eb?ApCY8b!&RTZ<$dz4AKWc#*Kg3d z$DzoNeE7&SugLq~_a4d0$n$l zPlHfvx->9lQcHDpu#a~O{ORn%LgS-29q6fb;8{e@yYbhdg_I%L5MW&N=)gwRC!c&y zZn$*0j2u}lb@fd;x5IfJw*1X_e`MagxiW1`rL4dZkuXuja88g+$DSWsWa5txDo?xY z#xS@T!vgh(TMe$$dj8cl^6KkvN((9qhnt*l96B^ZZu#&{a?aUHvQQe9&5AgG+6ZIGhw_(ncwBT7*9swk#`XnK;(4GYB9D-7rpE3Pm zw-7Xc?rhnxWrys*O*$MoFfLzg+l4vDmFqUjf_ZZgkAlc=obCobRn`#$AsX+Vb8<4#(MeO`0$k*IG?R1Gq>1xJc24k;FRf5l+&c9(&L{ z0dxMj%Vg>7iSpauKOm1i`Lx{grzhm&A9)|n2IK7wT!z3=0yjr5UUZsVchO?`@h^U( zL+bswChI%5|3W@{%Z-?891VIy2!pqH(+=Oj;dx^AxL(JVTFY+vs(k3iE98^~3v^1S zN4&g;;~i@#i8B>A8SeU1oBPC&CJw2Td<@2hki9=DE@1J!ZYr&}2;j0+17YXYapVwo zOlbGvV)N+99)RZ3)(jY!9{3FP8B(`I)Q7%FSL}-C<>cs4LGw#`4xWDokx}DePp$|Tb-mQ z(rD4AQ%ry9#TVGyuD!_K|CztB|NhPYt@0nR6)(PIyS0;YmCmxQ*7wCUz`&3xoE(>k z4+I9k=*hdBUO_teCvjtxe%%#WNHgqC>m# z;)QeV`4?Ui<7)yz`O$cmuXxGM6kVq&96O>r$Hh?stv>t`7?fB~e)XH4qWmKyol&=Z z6_*2cnzXOsj7d$Z%Pn5_%`MHgUP5}RCTE&7S;hCfYo+zU7t~!#Yr9W+_(FN*!IwfD zFZqd&{i&_nu*v@Ro443kKmT!?J$sI8m0|cQnn+k;W_bU*Z_-k-O>PRg>z)Vf>NlNb zmtA_X?U&$;3dQIw@+UFz-aX$qm{hx5OKo z_+LVhkVisK!V3J-X($)?a51ijd;Zz7DTDf^7+i!m#4TJ-%rAY<#1Gkceqq8lRBsT) zNeM9^#7&?~5+2VjRtSqb(WqeN3~`Sq;{s{pP^Lgotj?UEguWgIv$acjVZa_O0S2QW zWY(_RB8_IBed*tQ#Aol;$Yys)IE;`s<}M)>6^26?k{7dZd!+%nzv5JluCkx~@&SA3 z(I?%$xNZAx8=;}m6&IXgzxzL5u?43s@R=^kt9f!4{Mz5y_kMhr z)kyHY^X=E#HCJAife~R-%%$;zsd$e+(!}s$>HFdz^YbBPl4r)RKmlnlj|cer!MNap zeGU3we#r%P$GwlZhBQt`2{7CI^s?pl_8XRX2ZM$QozwaC1>P7ZrgIo{q5Axnk3&q5 zcgMb2qa9pM({T57?Qng)5^vhP&4+kRnz60aM9|r%&$pLeU1`@}ca?43zTKJ{8+-%ln|VoI^YpK$1o4*?UE#jLNOoS(1IN!a_?8x zy%n7bXQjVZxyz<@^%WR(k8f3XD&y2+AXJ(>InCX1EP|iot=LkrD@5?q=gsnUim2$7 zQrF*l?d3Lm_DoGuH24sQ%{v>aWYf`39bR6N9wzn5lg4sTKZdrcm@il3p^H>@3JiB~_efgU| z@I3#`4cB;mGCYjTlp;v#F^xCR@jZDy-g=L;P4b~xhv981e}y@}dmQ=e9t57iVQ7=! z;KO-^(FrVCxWIn+vwLlgwB#xJB#e89hIxxLt4g@@tLK+OwXct)OJK;5BR+T-8HG4r zPF}un8!%Hx^G}^)cR%=;j?`>ZXSv=^lZIL=J1Cv!g86f8nQ&;)_Vz6GStw!2wpR>O z$sd!-Q32Z{AGa_PlS+aQF!6l%y${-R%U`l@{lk~7wyxeM^RTB9)}wR$v$%(jjnPr!JUOjP zezDh!VLjcG4ED*qgkxAsd+U^aJGK!Ipt-0FWM745gE5Qj7j1-9aJ_&Zqj7f_bm6$ z)^st{eesnw_Qy9~?*a{cY4COG>BlrSdGGut*$=;<@^1X(U)%pu^)9*m61O8^G+(Nj zXb#GF%LYGXY>@TF6h)KPmxxFwnG^7qJDgKTb&~Yan=gL6Ermh#CWY$yX3qxY`N^9 z=V_woISqd=Jm(Cpi)(V*W3VNMGW&bYfCs#k=>;uvsBkdyK}3d70ml#$agKNS3Pzahh?t~Rn%bV$ z{W_GUUB5Qlr9)~EeyHONU0}Yemt11E-}9K3K&;kqb+rFpUAfAB@Z+EP!sw;XESKOq zXy-0I!y7vw^Ti0m7$yeT?`^m8Mf3ZI|L+6##sBsl+aQ}Dc~ddB-T5o~^%GCJw#?2T zG?=|Igm)d(WI#owjaFVG#30%Fi@4<8ok0^C1lq)KAQIjgqgV7lmb)^d4CRIP!6Z-2 zMI?3D>vbUe_z8`+N(-3rtJdOR1Osc{I;BZJ|KduUHGPT?8)@(e7doE{&RcBjC0L;I zTJg{MdS^DBVP0^tr2gLnlz}+mThS~vJ?{`yq#T5ZaMN&oTw|lnn5s!D2{IOQvvv_2 z==9ji>a zsOmDxgAkhH9xpbb6~*@Dr!0}ZXnZ?cHT&Cn&}wB88ds+;VOaP_9*V;cW;!U`8nj@# zQDyx zbkQvP(d~CyvxZ81Rq*kf-(|P_z{!YtlZhXsCHl{v& zJwToTzwUSHJm80q+W+|O z9robEkNJcEvz8k+ZnB?fecDDHige-mi#-kSLT9$k$Mi5xi@^W)Ew|caeO)tK>n$Ta zv-NsBI0P6eFY*q8k-vyn;c`f)4pG7dVa``8fBXM_?sh!B+(2t*$XX>6$lN)z?Vo>q zkF@n#KmL=iK~M-<_2m)kORqftG`m(j(4`RvOJf+~e&^r+iT%|-{2ybZSZ0tjb?7ub zYMm0a@N1wkyi3Peq2m{J+Bd%aU2P^XOCyG<_VTN%l*c-C%Ikf2zIx3X|M~>jaE0p> z++$!6*2H!CC_$u0k;KI^br`F(-g8THhwa?c?h41ONir*mhO`OtBX2b~;djVpOsI1c z)Xv>)wxhMfNb9!I!ax@(H+pC5Gr$dg638G1uI@4qyzvr$9(v3dddh>UFc!G}^Edul zGhOq(u3&-C0JMG+8*8M=g-_iaZt*Nj zt9I)M29DKisHw95u0`qlWlF$ogJ9wFx?Q_l>^iNXe5bxTVv;T{JBqNzyVE1Sa8KwG ziVuP+w2*Y9o}bCHLT!xC;a*(5)lStiu|;zy+pnMBXwCb(e8(4Z=r|BQAzeJ5b7GFz zir2Rq%I+!BN)Mq%_SdOk7uuxri@E#N}A-j}6{ zm!FvD$e{zS!BuGC@d&s56^X0#lu6Hw8sFN|;x<3lUX5!UW7DTkRrpc6?}0~r2z}EZ zzTGv-gB^Q)q4X&u8G?koVIn3CD#e@~`?a1>L)^;IVGDg0jPBDS*zG%ZNLy%^aH;fd zq{eE-_J!B6*^@0TUc%Ox9*}cO)`Qi84RIMM2pPF^2 zOZOZL`y_NyogV7ac^_!ZTC^Q_EWuNZ%;Xm~o#y6d|K^&n7#bStgwqsXP|adu*di<3 zFiT)1l&0LdPs3wPEF{MMV}~_h;F^ZuJSr{fCqKK>US7Myrb>g~BRbd1y!N3FyvJu| z(e`_80|7t2a5<=z0xVjWvC|uFC@D0yLtQL}*5(G(y^^qmrgMM0PnJ|_F*%xZz+2dg zRt#m2sI%C+Z?6{3OW3In>68^o=~Y(OK8>REWtGzz7;tpl`t^x^X&5T=G$v)w%T{^e?gOpYz%=Q3nb{dq->~{ zDWOYS*|GW=YgFZ)GE%fmG+>_u@#x8Hj+2s0{1ND$9_zR+0HINh^Dd2kKpfd5uyzMC z5DX#&fg9fQ5rU^+$V&Cjm72idLwpuQW3UbB@*xdFWQHsZ$Iwz1E?np}15<>hJ|pc9 zZ+xp5yHhqUCVWn@G2_O2d@7#~hrGRPr8%Gv8tV1+3AQgUU&DeHefP_{z&UeHMLs*& z*mGKB&<5w2M}V$7_7Q5wfnYI~3iXWq8XglIBOzm|{@w#F_0sMU{s=d(XwQbQFtNde z4PPfL8rPJBgkf`Q+g`_qc#-BnbmVB*Orl}zcwaMj1flP|1MtW0C<9U?PZ%kD zJ4)UOfe0y5oY$WkQ-wOr22F0k4_?0ncn;xv@&e&S>oR4gD5c!v~- ze0Zx`>jTI8VrZQUBL0lDA#3tuWkptSl9pkxI%Q4L6?5c4Uer$(r+nlRd?We*oDeHR zrG#+VJc^Z=>yPmBS#2@&&!2eJ-lbXIvoxbUWx`n7wyVwQF`==}-`8y1Za;hcRi~A> z!rKP9^|#DyU8`_MmAgNLA+Up(AVfhqF7Gubte-E=xPdSFnX-rIDfnpLVa6(W@}5Sg z7~$}TF_`IP2!@uLWyr#1lLi5VLvsl(G~OVX!pt$l4jfF^DuG5A8byR9mW|*<2v9DK zgFB81lf5RbN`Ik&VnZZ6Q->a}*u^QKOSttcxp<&uZJkesX zbKxRR>G)}Q0<;LuL*A)?ccghb?_+&VsNuB9@V$Em0pROm^`3?)zbwZ~m|zQRMJtQ- zn~4|%PP*<1V)mH&R#G3LW}@o>5UBtC((;dJb{rdYnjaA&&>2CJtDTBg>L3t`Jvn#> z9xLV?U#Ej&_+1w~dG=p;2pv`6(_(oQ@;|J+sw#9EpftW)?pt9O&Yx&!Xec~sT%8xd zHu-ly_JaLx<#r8yIUfYuA7vhkqw^(gGHK>`Wb?|}0KtRFm?SJ4ZmIoA%*DehMZYvY#)T!H9RiOd?4A4Hr94Xsg z&klTh!YPe+j0Y@EDNjrCkVOpdxy1ZXY=Gb7ws|?j(;(i;c*f|2c--2 z(Um;#kL|pVc@`@x`a8V5^pIZ;PL5PeUHsk~?TV)?9ugY{F#_K^r(_dk2$=Qi>8U3e zgZ(Zyb#Jut;<*%{Wv^xB7S;W&K%O~~s2BZ`Ti_dBf_D&tdhRV7Pf+B7CdlmX*jjBC zqITz6p311Ju5_gV)QNLEWjOrGgS>G59S?f(VGu@t%s@r@Zsi_4c01KmU=WnKF5BkKmbkBoQwI>3Ykrx9|e6 zWbh~u)?cq~dC~Df1O+5dfh57J&)Ij&H=VK=&c*y=+9KgSmKD<$yBEom=;TXq$e$N~ z!zYC49UoqTc=9)V`t7iJ<4_b>BZ$KX`(|{tX=Qj?vlU}l;>{XwOe&QcIhag>?7r;BA4dTz$V!X2SAk+opNw2s! zvcQBcXhS@@9DzQ-3v?ujOt@)KUWM1$QkAkP)&Z!Q=U zqQrm@JT$He>X9#kMJS-|&rTCva$5e-AWcTnA?Sp1{N<~AP9hI2Rk{QSoz?vk;SBz~ zrM?770;%wfOFwH-t`=tc*|nMQlm7sCd`Mo+r$ITzCvR!^c@F=Xn7L^(-h=l6grR{W zo;)~R=)DOWdM5r@*-nx`9=~RryOS)rWNtCppucBW#W4*$GlDfcVi+GK;+0{l9LZ9G zv=OAP!Gcx5#Th>|h&&C@8wT-`$dLdES~dFawG>?Up*rxUDkVYAD=YyxjZxw?G;ZS0 zh?9~y+n#WHYAmS@5jM2h1?(Z&Bm=TPcRJQuTpd2{+iS|mK=w29mlNR*jS z7?@HAJ{M4Mz6V}j@?2&Xm@p3)vJ7=IcC=Ii|A4qaCaEYV=dpkt5_tXF-E^4n2;cL@ z)xLmN3J9DWGC8)6ZuoYY$M~a?eUY}W#vNKT3DifM32V*xQU{ZY^SvnK8%&6I!Yc6) zd+70vXoD=^vrWh(;sldY=oDN7ly^CB4zN0$;NUQG50GbVfV?ZhL4C6t4xwQu+F&SF zNNKq|QO?8%-$b&@3=1m*YOEp;d&>E@w~C|rtJ1>b1VaPH2swW2K^N(wSKl4uh&J*n2K59(R65zyVTO%ckN74FG<0|e;m4*02uJ9~w)c^4r33wmg~XK!?c4(m*xX?R z=BA|0@y&W52($^ip`Tc2jx%@aRG(4ejvV0#RYtMd8qL@MseCq6WILu8brRQ%>9e#| zPpuL0boAy9Te)(jz3EMt`2K@Kh%8Pj7l5M8Yp=bk-O$^_BV)WHV2AFbUG3JkXPb?m zGTS={X-$R5TS9(xbUIsk$0otfjzbMWm?ttKGXw@=b}Zq%g$IALOdEUdvjqzlc)M^- zqJ&V2pdjYhAb_o`o?E`$URtxw&tUKqw-m;9+wrQ*R z7T=9I;F6>*4Ma{H6hf1_o;YEG1YT3<`I6EY-g!OiybX^0M2q&`t{VYQ9C&YJ&cQrz zicQmjMs$?v{r1=@iX%5S>Wmi7b%9o;*#-uZf=QbIRhdLaYV+2a+R3^`oANSp$~v9m zrj1rfH(I`FcT`#zo@d^Z)tlxju?Qg|m%z*n_KEaLJ(yy!;NU z2hWF=`e7J|S|9BgC5ON<1Jo1ufv@UPf{j>cH~G%%S+wzU7V-lJ`@3j^(1#}wexc`t zV4{}%==eF{iQPzWfr|cE;1c2#2q;@G@JG9In_nIl@C_896DbGh@Cwv8>6L~#I|-8V z1?ht@fp41FQzJ_ydIKNfQBLQAnM37df$>QZHGV(d(km_-R?bf@&@n<6aG*&C1`~Tc z#bJx}Tt~eI7UqDaA)@%@l0f`|K?GXmY6hWkLm}*?vN6^d6*esq|H z+LQB)=m2k(3(gFAsl!6>=GXvZ1&t6xU{^b!p^>|!SB&8$bB}Q8&S5hnMsWB`c6<+< z;DTSL&SY>7j%i8;iT(hhCaHfIvqEP}aQn zwm@ppSI1ZC9FsBiObCV(($WnHLBOeZhYrV~GW08yVHwahwvE`HnDmg~NINDJ%A!3* zTm*c@D9!=tjth8YW`QG;^k!Y1I-EuoUt2de@h;&C6{1HtSbJ}?&h*e(vrOM7l?E<{ zG_!Z$fDYZRYZMVm)t(ut-}{}KV5vsOJ{_Q>LvyN`sZa1_NQc>CuMQnrIA@AAHICJL zVJ)%ul7?eI0k+}a-P~fYuH9;NI^mBEJn4XN@K=WpE#i=&n%c207?7uB?FLnQ3bnCs zZ;P9Ps&rsgY%8&ja)!V(tb;nlha>uCpMHTFm!^zqT%}yA;zby-ea{YC|H?8~bK`jj z*aR_R&pqQ!R^K?W^l^!`($hUiKtG{t!)wcJU)ydMffQ_8}+mzTM08>NG$(n2tA2z*qhQFYq1nWx*R+Hv~!SBLRc+T#myS|woIKZR6}Dd|y$u$J<*Kr>#>US)&03#-!iT{K{Z<{6 zbLxzVcK(GIO1B^FhvP5_GVG3>0*r(z)o7sUvgcp2)mvIM9Io++6AnV64vvnh(fPYw z(h~*?t&do3lV-=gJ*`!H;;d{P@>PcINmE=_Em<~h+C1B`>RBBzT9sp<2pV9bRiHv( z6h3-NrGHi7l9C2QcnLd(Bz{PE1ylA}n}t8i?|=^2#->>w!n}7vQym<(bYz68Pj*k& zJmkl+mWKLzDJK>Fb%WQY8t||?b_zhfE~=5R@g~ zQ2Iy)+7oT&Xo2>GU)i)Li7srooRo)5bIE{~PDjOEx2z2if1Cser^S0`rU;T6y2L;t zl$uN6(+yjogBrorJ+oG+EO6-?Z38N@ea5BEWSb^5q zj`fMCKA-V-=PwCB(Vs7C=vd2QpwuVS!7wlrN`ngu$2WMppA$jvr7j!1UczUd$TaVy zz{Q229`v6X0*4AjXGpLmQs$>bCF=qr0c>DT;ozS6;U$Ymp8@ka^15+!y&?nFx+duI z5RLVH&UiRt5ej68ns8U-sq7tE4~`*l#3_;@a8`Iz7>=7iChzW9iWk9`(+(2ACG2P? zxXdI-8kHnkdEh7{0=%*DQ(?imzb@%2OoGb(7I02*SC1TVb`^yesf7Fujz;;$Rac;4 zpmwCOza=yeApyP^{>DK&FeL|^gt;E_@e6)Xr3_pO{s?axA27(;0C}TQNfa)QBuhd| z-#O3%lY4%XPlc5}B7K68`U%=yQa8!XtBSgFmrsX2Wj!1zj{=PLf^i`PWXK!IETYHy z2&1SFue`59&JpFF!rpOCg_Qx40pwUm3BY*rQ{{HE0fq{X_#^3~Pw8SyUFE>(SSLvO zEvxdDE*AZVEbu7E3wy_z`oeM7U*gyQoKH>)Y-d4`pPcfJxs*WMKxfg_U!Cb9y+h7{ z-p5=@$s}~t)b0Z>39QURc%-eB4Xy$-2Uc)#4?XC=n+*_OXG+PvfOoi-Ozji|1Q-*z zxhIgP{rtIL+A{QXbaU$^gSEUvg$H_+>dZGh7PluWRT$w6;EcOPLsut#hQEm5kpj)5 zpd?{gyMSdtD#KaA2m&NwdgiIrox_MM%fKy&{XIb5%?213k$3_Uq1TrJfLe*2p+Y7d2M%e0;t^{YJt}O+ zo(iYo_T2?LlEdoo0&|ku^NIK*1!MyIUIK6lZ1L>`v5;byyV@Bdx7%pFQ~KllIE0HFox*`F72f zmuScC@O4E=X@ZfCkT-b_9So$#Gw~zeEL^vPqFjc zlj25j{5}Bfsi)!xG%U2r1mb`QI5>Uvp#K6kz$9Fup&}gXK7&OA=YxFq9k}xJiMFGq z!&YuO9cq*|NQSYyww*=-#Mj<`Q?A!zvc1lPBc6^n>U92p0MqjNtp z_W!JZ4Dam@KBR5$JZO~_r-(_}Vk)E}jNksQL)N90^Dg1_UZr>leRoM*gd}+Hm*5X@ zj__W;rm7vWUe0x6P!J7w?)a5;8L+m0j5Br!9V-_i}w9HAGWFE z8|=AP*W2WYjkM${|0gVJ6$`G8mJ7)e6o|7;~*CP_AR2?`7;0!JS&a_UKwE==y z(q{6J?kjp^Q6bw->)r!);oNa{`8jj!*Gpgb71*j{Cn#~c^l8eaXHB>InkrkiYKQh* zLxWOA?gGBLCKa2;lhj`4k&^vvl)aaJY%zcpda}>l&Ru(~siDRuHH{Vh4p?hj zn`p^aQ^%I~iA^P-62P3^D$MDfcn7~wBUE*74!((wVef%M+HOmY zA2mguj&V;WZDQHkdw|06cD{lJ{cBGVkK?&RI$-Fp1J(d>a!s`f>D%e-RD|9kcKn5& zE*+=%Gn(5$^=K$Rix*7RK5CVA;TbdS{L^RHC~1Hd(wR^E@?S8e z)^50Hp4Hcmw)VXpJ`}w4oGM$hahKhWL)BKh>@Zf(UM5mvsf}nNd=g zMg?8kQ~_H!J9BsHeYAKh%?Ch$l91mP@u&QOcI4^x;12`So(2L&U~)3(lBQ2jd6Opo zoLG5vC=C!S<)9|cV{_+Gmm_^6vnQAKx3jIo{@}dnHeCnsJoEAf8zXI}T6T?98>HGx z&~4t;W>+kp;k&cEvSz!@o6%%DcDLG|_AZ_1rW4He><`0XF+|@4ph`|K4DrDy!AW<5 z{6c;%6k?eCi#XR*6n}T?e!FWF(zHq)z z2>kf5Rq8mjYqP-X6W&ZLMciVYfiK?b0sPOAchKL^i<4at(fFOV9LFgt(kViS@clBo zE{nb)@*4_ox57nFhQN$Z01@Xq4n1{dlDlMvEklmoGp3aq`Nzm?nCp<43>jJ;_Xo3b!YfK!*Kj zPuaY?Kl%QO@^*n1floz?Hd5LaIMGQkUSzb@dpijomlK7&ok)5hBY#fY0P*v`c=r_U zt4psAK(TLKFuT#NJa4Y8mS*$Mzk1o;cJ5TW_QF$b+wM*F)1{m3<}2seyqS~i?k8Th z2bOQP&)rmOwbGjIc=C1I)^^aftD4H7DfC*XM*!*oGp`Zq_?*VZ8JK_`9C*+x^O5^I zE}E&K$uw(i-{(65vvdQ(bxDwotF7>`%{yA`2ftpaVM~P!*duMj?hcs%R@$H4SZ}A# znPk6ucC(#5cY=0lsj(m4`>Z{)uEi!bXh#i|aqlx5ZSJ%tn=xgaO=zgHJu-xoN76ou zLh1D+I3fdtPL2134iJI5ln3~{kq#I*j-X51MLqQBQ+DwM=h&o{cR z%Z#$*{5h`ik|sLps8;5n1+y#dbCVl0bw-p54Uc#1X|rFbeeCO!aFp8U9f??ReElem z91c4_Qu0AD&fJNk9f~zOI=nM!7(LRaj;ppc+xI(PV}s8Xj}eM^2a|-4{LXW5*?Wl7 zm-dt-&AE{eP$2xUog@4z=?wFn%M^{C&Y0O~7o9%M>B3Gl&#l~MuWo9Vi79K3&r6!T zModEe#5YQhxMXdBN)oHj(ep|rpBOdCv%rmXG+K6wIB(%(+ugF)?t1EVo7GfnE&IA` zm)>Vi9AoE9YqQJFo@MJc@3LoJ-)R%ajJ79V++>%_9yo7GgB?2BZZ#4B45Rz!RJi|l zhc)0rZlTh8$`?lM)Ua$?W3}CQ*#aBeP-{=ESZA9gU9IIdGTTe0sAQg)+R{iy(YdV_XZ3MbE|Z?_V(?&>^beJciq*O*}uQ} zMtkYCHTLeeU1O&&oNssi>R}zx+2O*ET~kItYPi-i4hGrdQjj z)ryBPbv3qn!wzfR*Xbi7MirwZ$mB^&Aqpeovu5B&*C9rd&qcIimf&LOLh$1_sIWob(`>1>>q{=Dw2$JcF$%&VQ5htRT z6Q1`14CCvoTrfTI%vy(g$>|fkHzf}QJrf%kuOD2#)m8BtX)+9NM^)&6cJ;_(M{Do6 zx@s4C#9y~_zrDVFuhnUYzfb3MAmBU2+;hdiv!*n9hp}A@P^A;ve0ZcZeR05(Q%St* z7c`PUlcH_1F9i%xoWn;BNdQ*abyry@+?rHMa^n@hEQk=kFo$`4C?aw9cgQUA>^gg9eXC6p zpEd74XcN^*ep)7@4O^QvYI;TQ+Fe?1hs;8seDgw$m?n595(?uKI|(`owJxom=s0lL zI=T+qZk_v#uoyK;FbEDzO0Hq4qpg$> zVdVJyx@JeTwrZs9(zHKIVHV7uQgukP001V`Nklsi zFyjGjRC>dei=_Qk+pi_~yCf*b)-tT+tA`_Y#*8u20;;{7(`HSOcD&CXTDC@JB+Uei zeqPZD*hO!k8vqLE1hCS`>N(V9j8-(SlMuk<2XvV=bGm)#-EXy9ZokK#{QYv9JA1ml z`uaL+)&Wi*dH;<%gnY7Z#OsaVB*4}8B2qk-qIIkT?*3e~x5@Gk4Y)zPF|F}{%stY~ z)G3assqix^DmD6Fq!Tx)zg98QB%#hLU;mq2MG4fW}^{ zFp(l^-S6125NtPHJlm$KSNqYgp0)YY8tvMP=Bvk&@f#QtfG7t$5RLWiS1hs{g<-Q6 z$^Q6}S6stF)un=ac8b8i@`}PEO^_@u-cSanK|??E}{?v@=efVo$GFV@p@QgXf`sDJ} zwp!~X;{w=78)e&r%hpf8$RSgF-GfK!IpfhoekVQ%D6s3DdHQMg*MB)vL*WceFn7kQ_q^F4&+gSY&_xBtPc~r#)QK-9?@ugl8tlFo*C7VDtV% zx`)Nj40*T6q!LX)JEgTTQ||4S;`PTw(P;IQ44V;v@DO5PeBCHpFs;Gc3mq-PO5)T= zP?BcOq&nNyyx-Q!7D#@vtrURPQ3TEqhf={57yJS~;oZG^xu7ht5`tVVJAH~>eAY}G zKc+U53ixP04A+AO7=mb5%`zuJms}@^;=~isMeuSX5fbVq;^Gk%nQBTBWfnrmw4RqP zAn6c?OAPM$E&;|^{;D%3*~N?JI^Ya#4@>I4yn3qy;9>P>>g^IfVH^8NvVYB-I?6V0 zZ`Ok1!#?y3s=A2XM^j*?LL6krz~O`d{?ASLB*pfK1F2yu;=_npI*?2`I^jJ-&xanh zS$58uS_}9`OBPwR8pT&dx)mhwpWIRGjdVXo}#zTdA^MQ?B#%$+jEEES z^fi^Gb%WSt0HO!y!HN`NAx;HwMtL6l#l$4xHSLeT)JcRD=1Q7=`SYxumh4lgv~m1?ZoSbV38ip-PZSXuzxRDSXIpojOxAJ|@-B5;to^ zc1R6r{?rB^c^y#PDrw|BIp-gTxj-zy@L%8B6YK{(Q#BuO?Rm59wAm8{vqUzT$RY41 zj;phe+;E2br%OamARHUDX4GXyNaAz|FeWfW|8(N`?6B&Ed${>M24^Ngq6c?xMBKer z1w~JeTonZX`MmAwGbh{C7tHemc}UJOm?vJ{AuY+Y__fNu_v;O=^|APKi`4RWT{Ocr z#a}O9Z@*vLVpGRdYa#?836VnHJrz$_KrBL?8$0-N?Ynb^Q}oCt>9n4oJn)0z_Ut=g z=W6ErrmN1BfIn!rJ@CA((2^g9$It`~mi2)=kCwK(O}0@N@OuCKnmumMx%T4I?7WS; z?Qz*j$JOcV0um{_s1so*pI?uT2%b-`F?-CW|A7>mE;BGZjh_+41HXRKUe*Liy*_{Y z!B6hCvrnII*I#qFuXW3AjF3(b1o?UPAFBSRP?=6cU7U`}Aq|$Ed37)9gi6kLNgNme zjS2`bB#rbnvTbIxNPHzfd*$~g+&4)Af9&mC_&oOI;(PQGDieKyz zYGCWTRHL3Hvi0%d0}iV3M#_1m?sZ_TFNcG-FJTmn>Ta$t&jfU7QCpx&*@?p?NC z%Sd#FuLKASo=HDOvsN=SL)xHsjJX-g_n~~JfKwq0Q_fQcpDfXH!VA1GtN;e@1iIxd zJB+eohWmVd@$$#lF7~AgKfM11+a>11_5wZ7U`aoFeCWZpYS@E`fV>f&;$2&<)&JKh z&a??*6n~qib8vdV+ribhT~T zwbwPk4h?bZ#q)n~*&^Grv&DX`36j_*SZlgOwlXv%((|jXIz{H0k+xGdzvwqt>rAI< z1j5?5bF|b3LCEKIj5_L)Z|%9`&Yd&D)^6Kt`z4rYe+5|tPycz6+>3%j7!Ntb$cYz1 z5X?th2}%pUp3>!Hl6pb#MWH#8VUoKD1Mn7yCBjSWd>7VkL|+OK;zabHQ>Rd}m>}Fe zn$nJvhC>BXx#!KBC}!8e%~h@a;Z5`tPdJrXDD8>&ivlb%Y%DQiRa;vdm>IZ5DB}BK=om5YUM#=7XeZ`XGz4x)>F}p$ z4VCe8f1blbH#p#JhNG`+YSCoGi|X{+ZLiEd2&^`JN;y&XyBlO5-79<7(zVT6Iu$e} z+C%5kH5yG+xfTacvEl&1)w1`XccK)DHn>F}5V*-kJf~)7r)pUl-o^6?&4O!fztEbv*&AKs?}$|dy1N{j8(Fc?SWqSfpbb8gz+ zYFC`EVcxkj?9QjxC{DgkM-mFkYq;I?+(B*&YeHZ88Fxjw)g>&GGH;twHSb`r#MPZE17o=Ke!NWzQUAPRy{b>$K| zMnlu9tUkqU7QguIdjAfTux*+kVF;Az36gTjXGA~Bg(&_@V-^c{9AbF?a3RlNxYlr0 zUnih?lLIqWSDiUYUvM;8rxr55_xiJ4`z0=pE6mJ-@Si@m((YFe*r>&vSI8tVcY2fU zYToNT+4M<`ZWDTR*(z;{u+Oyw)_A!~Zs8^O3Vi~~JcaW7F5o<`Q?}sjl7`6e;FIs*3pB$Go9H+X*o^5@wSQn$4sYeB8Sr;# zsbAzAz|8q2;nYM=Jj*x-&86UcbtdMe}rwz5rhW zZd`q()|wtPCNpaBSDFS1#o6O4#bZ@ARyJhT)xNBChAraLMbjJX^qFHd3w+4hBoz7W zl3kE=vE6l}Szs=eos1T{rEr*N;cq43Cw+P%ne(Y841+d$eoIBfQ=&KhT zw)0muHoJ{{glH1@rBL3KsZR$P-Xrb9tNRtd0Ixz521BfPvLtPG9UwU*Wr8?=qLI9k zn8i!T388XhWnuKjk%OzOq69Nui#2I5b%MV9kgf0R1=F1X*wbJT485`PJ#k+yD!?Hw z0BX!D-useWi~}qXyIIQ-o_l$nZPC!3Pm}2AoA-9wGcT=GuPbA-gk73UfB|!}z!MU% zh~{<)!gaFu@$K_C%@i}c_4>x0wtSU7>)Fz#UOBAP2hQFdk-#{(wBnI|E~b(6o`3&i zz_cSrR$6;oyM6VW-?ulNHP1f!fj@Eqn4Q>2=NqBNuRF7c{Pb0j)(`&jzQ^qMFT8I5 z_*b8@I^Q?&K=H<#E@B{_9kc+SL!5vb=^U_tXS4NDtXSgGrlRA~UzI0(RE zX-F4}M3C^20H&8_hO`I@`SJPNRIMkRJ-N>IYB;@WbDM2x?odeBmhI(DZMIcA6HOgA z+65&1yggYn=se^Ac=YT=en3I_UPuhVKNS`rje*7Qq+#-lWjSLjD((5TyQB@a+LE)U z+hym>b>#uAm`TE@nI>c|m?^ZTZT7`w;B`bC_<&QAyxS0%c%H~3aOnw@To8yIQn2lj zY;xFkT3N#YlX z&>u_!1i->tK!zZ#8e#yCbcKwue@1 zu}4;HmQZD3^ikJ{(U`FhIjpHXdVEab<@gdA5b*befqC=5@{kjCp)6tVHDNqa@Ec}UGk6|@h9d3MkU)r@hOqWm9qw(OF1$|UP;P)(YOAPd477s^7oX=qXrX4Z-^0%?h_ zzCboE4PRv6p^_1P^!ByYK`ivU;=w1vlEGI#?hmdJq6j^ZpLnO@9p7rLe}oTq?bcU6 z8VXbQMTc8Oz=Cd=5jr*WB`@*}`4>rW!n^|wxe7a{G54ef9ACnYg}+$SC;8;-U+>Z8 zAZT!mkX#UYdEGAv3S7E8zBYoVm~>Qs>R|}K5D#7r+9Pq;RRud>Pma7}{&8m^&nr=T z)8RekQ!I?nNKp7NF zVIR9+?2@X^WCx8uB1Z+XAbPLt6ZGixNSUu7`dd&EKNrc|OnM5-joI@XEYpn=iAOj8 zB&)PP49PHne3&eP&KY}O&qa3+g+ZOem1(FXhmG>cKMQFZ0uMNW7lb-Pyddn>Zrozu zzU3zYyvTI@EnR|~JUcr1R0{J*m|f4}*WV0}B|bC^zwA@UC$sB zU-? zO||kal=R~@U&?{0%Rsg1JSTKc#M5<#0kW?6O3%Q=c3dQfuucuxq9hOG1w>(Qd+`Ei? z`U*irP?qXEog}QKp)sj7c1(l)+Yi6T$=BauZ!wxXFDkI1zSf7st`-)HJmCI;h8ddX zlT&pN>VkqZvHArCsfx9geq}U3k<)D^Kg)DjJ}L6!mc+Y=o2{P&A^=aSDk}g}b>|6) zO9NvJQU)#sezzu{4l4sxdIvEPeBhOXo4-UK-FZCL;b-qqbc?}IkTrV~CuH|->lW!a zJbbY~4+n#c9b<~}) zgmam+C$BNV>Q$o)Bor+5jhx=Q?vBw{%p>H7wPJT7I$Q3A|sd|qo= z1Od}4De*6T9Qr}nq>@5Ut#nj$Oz!w*UgE>>{kSL)g<#0UY3+>*9*exEu&90?S6QWy zIO0Tm%Hr;mY7yTo$CU!Wg<*&@Q%Rek-r_GN$Oypb;ddo)iAlmTKr{m@;AZP9m@nm* z2~P*+AY5)QFeZrQ!5wk;piqZ71j&m&{Mr`^K;$sBRu5+08+=)U8w84c7f#t_iqjJF|fxMSnwC#n)nZa2| zvc?i@z1JILSocDd6Bc~b7k5KjEk=y|W}Pcv$Q5PUM6{pW!Xzi15uwebcP@ZPB*N zY3ywVL7=mvsS0l^zC6b(qKvT(pl90?+nIr2Y)_i)c77|L_T-&cBFp?sB2`#|jU$`= z6i(i%YJGsNGcLAou=>VHTGLfs7J`E{{fJ87m> zkFH5RA4>wu`lc#WTWj92QM}0~h1ywJ!mw7mY`?Nt+b`(OU zv60D9)!R`idC`sd^S}I?AP}iOv?%pzJGO4N5!K_ZVSKVrKiym@)-8~u-KqC&-oDPN zPdQ-YCJN@zEqmCW9b2vQi1tdGG+R8&5T-C9bv zI(AQKZfUjABM#UN*DSHIjg9)wl*%r}%Igi$QV3^*0nxO%*&cl4aqBob${NRx@jVLB zun$Tj+_6n(LywzbwGB?l9*}YxD@Feb0*nbrI zmqPqh(@T5Wul9uUQRAuA zG!FO{nV>=t>NgTQ)v!Bm3LpsRRoM-^m>Zn@RSesxaug3QrI4Q5O2w9q>q-gMVOWMK zFie4A3Y;_wxTbs3N*gX{m;%ET7^Xl8QJ`YX*l;pa3BfcB$}k0nDKJcdlR|+C7IO}} zVG0aWV3-0!kpdNN;2nyX592&cfnf>^c?uMt)*AAp879Cm1%@dw*eNh900(;w592pX zfnf?1rNFQNEJ~W;fME&@Q(&-DV8{!=a`@D5pqUVy`DD(wcN*x-%RE15G8B2D%&YB~ z!4Dgv9&_^YPFSh$X<_(7hYtCU5rdWS!{>n`416oJvkBj`#>uZJ1lciz-(aOdPn-%Z zMvWTfKTe*DH0kQT27$b7zJw zW5&c?K9UbTGa=>u0KN#ls;Vm6zI}U9WWc|srp7utI$SsomPTI`;Us|0VD#wG*4EaR z?4_7Z(bUxBog+fAoaq7V@WJj~yA8e{J9eyfc6PcTjKV&P_0W16QD0x5`ZRcOBOird zZEdY>+qTW#@s4-cv}x1q{`>E@HEY&5W1tNV78e^go21gf7c5v{XPtGH&6qL6aYf_X zv2%y5Tf5F4eDFa>d*Z~2hUQc5jlM5+2z~16>bzq>Fx+(0O*UuF9NV{VpDka$+#Y-E zG3~Kfo6(y4l4q&KLHNPbXt;|OEwXj%);aGZ-02t*ghQdOi`C1J(Et&C^mZ`(mMvTC z?Qeg(z4^^=c0oYcx4->u*OCT{0HkrF(M2uyqaXdKopa7P*3i%phCt#7@ILj_Q|;1A zF0~~~me}KuKW+~^@PLgQH_kO4Xi?6ZPcf#)ANr{CcVRGp{(Sr32R~?2rc80+hp4YpY#*?X@n@fBW0t+Ff_u<)|PC86D6`4(9qU zR&PT>0K&L10lhiG@5UQ%w70zFEiU|a?b_wq9|VE{*g2xyZ6n|thxiD*&wlo^uKghl zpLpU4+puAS_xv;thC^tEH28PF``tEa(j@!-_rGs641`2EHu_@B9{s@!x@_IL)wQAz zfB3`xP6zP&-~Zm9868}F@x``s8%cU}p1KmF4`*>8UH8(Y14wXI*j-hZ#X_L@EQ)Kk9e@!Yv{jRt~7 zuypBC*L=_n1_MnZ@1%v_>8GD=ANj~fTob(Ko_p-4KmDl-edq(ughR*Yo_o&Ylp`(R zfB1o6{mdCN{l|Ng1p29}@AJ+(&jsI$FTUt;sCxtY>t8n}I?(LE6Z;Pi8xYzenjw=UpZ@fx zeK?HfLpn4c;tU4bq=ny^XP#*{-+Z(4#+`TG>2_fFgyAlhyU&NqXo(0z>K+;lhWam5kAqeNjKU8_ zj=~R{9}Ld07p8yYkwUX~Lo!+Y>{4fEa&CHxR(|dMI z0SJAxK6-i@`=(8s+-`XGS!X-*GxURggqOR6HgVX?M9_ym^dT31x8Hudz4X#c_Wt+3 z-%)(wg%|An^UrrP2^t@o;f@_Uypt$LVTj=33>ii@IEKF1KB-e^0#DExBJk)e7oWY@ z>GJ%F=bd+;8G;hri9gufpcQ~LczQ6Hmtk+5@W>H8)>ltJ}Aj z&3y97CtUzubImpOp7*@R?S1(3{=WCU&l&%fS6=bPuyNBy9~Pl0q6Kc-y3J~8Ysy*( z(r^*v%={w&{`61()CK)de)1E0^wCG{%U}Mo&;By(2XAbGH2S;mzT548_#q6-*`eL; z*|WzkyzoLd_dpZc2m+F41R{cP;)IEI>bz5Z!VF$ov0{bo-@o7KL44v4CT(!g4uR2x z5Oz`c(UbAcuoumb4hTEw^=E(fXO8cWe)J=^ zjY2Pmf#vL=K^y^W-n`jow_|Z`rtT3T8%!(N7gyLa#Q%1jfZ+@Jj*BsF3j!yFt!4aX!8lN|^@Gyx_- zVk2P4ylT}dj{}{UJb{J?NgQeTm74=U?3;`N5a?*Xj0$eM?RFP_fA@EP=faPf(6wvV z+9y8o3FnC){_uw`^sc}DdZ!tU9{kC#9361e0YZy=@4eTxI_j5qerS4Vi1IXmgfop&t``E_}ZHW~EXv*bo1EWr{_c63b!=ruhjL_pwJ2;}VrAHjm zy1|js3U#0s^dk*3$P9xcFO_RY5cxcPACv-+hKu&Xke7w5ACkeF1;3YEa*0>=x4!i) zXX?Qw1Zku&Ee^rY(WXp>JoC&mzR(w@|L%9c>peJ3k3gW2v)=8Zi!QRKpMKhxzd$=W z2k3{3jXyR3_bl-Xjg-dCQYS_M4Ck2Oc<7;r>?>dSigy4kdm$XnkNCITa*Gd_v5TSw zqcJlq1aD|it`7LAZ-g1EAgFKf#UFl&Kk#D>?8u5B_@E7TV3tlnJK77pLHjBvUg)Xb z29f%cMU%>5)(iU$LmLS~IWu<_>+lqD0dEGatn0&}1z&mP zl`aSw0<+`=;m0x;7KRfKp@+c4_J{Ti(<3BlIOWFhz#FxDaN-?&m;_MwL4%h%6mEEgpTvOQ(_rRSI0YVU3paIf3#33(X2sL=;;NgS5YJz1^v>U#V zf^OK98AX*NFL(neav8Lme8aPLx z&eD#H-gJ>`K4^n1_h8ZM;>C-7CXhwG2t+1{FmBV>SrdssfKF&XtOKOSM;j_fM}ueh z2ClPb&vv^fUwg33WzL*AP6vb?U%o&CY=pf3_{TqXO?dL;$%A5XJRLtgfEG-h)9J(S z2!3=v=!BzVeD2xj?B_rKxqlK#CyC(0MhIP^*65K3$z{+AKjf z&g1Io&=e4Y^n|1-XBPz^HXDXEEcj*k&ulREF7ReTgvO0_ho;BkSHhSfz5MdaZR5s` z-t(go!Sv-w7vKhe=zst?`|Pv5Gepq8{`%`aI$(&8NdT?rUGI9AH}YF=y)`5J2E*cb z=m2j+2WY?u2)e-M2tL@Ip)Q>rGvjoEOc25&2tL}+U{DTY# zl}xYqumAe5-bi4S!BF97wfq?Ru*m@v0j!5Z>tRhCHd4Y75ZJ`f_E;K&7QlC*XaLZH zIOXipbl}rKG$1-TG$J%38auPV2t>>V2+G021JoP544%~c7r*#LHwW+)5V&IIKpRFQ z#9of3SFRo2vGVAU5r7Z~VaM_hgdp}17QMpo^nT0;(&%XzgFyh&$m!|91tEy>A0aqv z<}4dsGujQ>bPCvZSpI^x2n~22Y;>T3<5>8P4GdZ!@WGY!kH7roFFhO~K>e4y(062# z3%DTI!0S_=`jp$nF?Ylneze^v_((Dsct4GQZ_h(Y0748JJFyqB=uiS^f z`IQYmG=7FaaUEb~b){W;@uis_pP}&c&p+=;p-VJ)52l6?I|GCPL;QTl$N)_cfjF4( zj(A4=vG+zt$Ipx|6NQ8iM!X}gJ>7?#0E8HEq5#c@-jA8iXz%EWSmhjs5JUhp?`ifO zLDIM&{G-8puq|^)<4Gfj4&144=)p5WU@+qi4G?nRi=YQr_+oKhajLq40Zt!>o?K?!N+rakKu#)jsT?dA9h&^3|RpP31EI4 zjbW&`h;zE(4<-DEN<9zb**6Ld%1`0?hWgMFe32$m*u{JFAHEM$U?@_cyw^Ak#TpyN zd6)vj6c{iH3=6;kBjs>L!xR{%K)F$1SOAt=jSa&)Oo3qv3>XE51>k^@ayX-53Jg=A z+$b~aKK18oY61^hAB{P6!`xErmwtq0h@!E00000NkvXX Hu0mjf%D$SR literal 0 HcmV?d00001 From b5b9eae3d6b07ccdaaf3e6f387246e5bbaf967f2 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Sun, 15 Mar 2015 23:05:34 +0800 Subject: [PATCH 26/56] update schedule --- README.md | 5 +- prototype/.DS_Store | Bin 0 -> 6148 bytes prototype/mr.simple/.DS_Store | Bin 0 -> 6148 bytes prototype/mr.simple/readme.md | 255 ++++++++++++++++++++++++++++++++++ 4 files changed, 258 insertions(+), 2 deletions(-) create mode 100644 prototype/.DS_Store create mode 100644 prototype/mr.simple/.DS_Store create mode 100644 prototype/mr.simple/readme.md diff --git a/README.md b/README.md index 752120e..39a754c 100644 --- a/README.md +++ b/README.md @@ -34,19 +34,20 @@ | [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | -| [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 待校对 | +| [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 完成 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 完成 | | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | | [命令模式](Command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 匍匐前进ing | | [桥接模式](bridge/shen0834) | [shen0834](https://github.com/shen0834)| 撒丫子赶稿中 | +| [原型模式](prototype/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 待审核 | + ## 目前无人认领的模式 | 模式名 | | ------------- | -| 桥接模式 | | 中介者模式 | | 备忘录模式 | | 原型模式 | diff --git a/prototype/.DS_Store b/prototype/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2b359bc4a2f76bc56b7f3d54a046a11ecaaabd04 GIT binary patch literal 6148 zcmeHKPfO!K6n|6eno!Uzc+lJ2yp*L~MUNY*p1cSVJ*a3x$~F))rAfDkTFBAAH$Q~v z7xLhT@x7U;D0OclQr?3%zc=sC4D*{XlK}wH>c>q04*(og!itN{2SRbu38`2Qq0nO_ za0XpSp&bn-vf1$+8KAv$ao2kA3vzg~e|a}bRfN&!sGBBv(P%u0%1m|k$DHH3HMcgu zP&*DfY7i7*(a&39?~r=CVbO`Ky{AGd!X#_=ba4{5G3DqW$znBV zseTscM}cu3ByrKvgIb5Z1c2`hBE$m5>B&dP@*Wi@wFuAVyGxDMd7;!agyCDM!Dw zdA`NcpeYBTXU1{t%)-7d6SQs3?Z}`=z4T*(;4k&WmkrZfzeN2lDpr{^9ZI z`Snec&EdaPvSx4$?_f;r`^M|VT^YB*Kh7D)5)uQ%05LFc448AyD$Lu)Xg|aNG4N{! z@O%)Uh_1m*qdGdE!RsTA=MhoB# 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 原型模式 分析 +> Android系统版本: 2.3 +> 分析者:[Mr.Simple](https://github.com/bboyfeiyu),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:完成 + +## 1. 模式介绍 + +### 模式的定义 +用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 + + +### 模式的使用场景 +1. 类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗; +2. 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式; +3. 一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模式拷贝多个对象供调用者使用,即保护性拷贝。 + + +## 2. UML类图 +![uml](images/prototype-uml.png) + +### 角色介绍 +* Client : 客户端用户。 +* Prototype : 抽象类或者接口,声明具备clone能力。 +* ConcretePrototype : 具体的原型类. + + +## 3. 模式的简单实现 +### 简单实现的介绍 + +下面我们以简单的文档拷贝为例来演示一下简单的原型模式模式。 + +### 实现源码 + +```java +package com.dp.example.builder; + + +package com.dp.example.prototype; + +import java.util.ArrayList; +import java.util.List; + +/** + * 文档类型, 扮演的是ConcretePrototype角色,而cloneable是代表prototype角色 + * + * @author mrsimple + */ +public class WordDocument implements Cloneable { + /** + * 文本 + */ + private String mText; + /** + * 图片名列表 + */ + private ArrayList mImages = new ArrayList(); + + public WordDocument() { + System.out.println("----------- WordDocument构造函数 -----------"); + } + + /** + * 克隆对象 + */ + @Override + protected WordDocument clone() { + try { + WordDocument doc = (WordDocument) super.clone(); + doc.mText = this.mText; + doc.mImages = this.mImages; + return doc; + } catch (Exception e) { + } + + return null; + } + + public String getText() { + return mText; + } + + public void setText(String mText) { + this.mText = mText; + } + + public List getImages() { + return mImages; + } + + /** + * @param img + */ + public void addImage(String img) { + this.mImages.add(img); + } + + /** + * 打印文档内容 + */ + public void showDocument() { + System.out.println("----------- Word Content Start -----------"); + System.out.println("Text : " + mText); + System.out.println("Images List: "); + for (String imgName : mImages) { + System.out.println("image name : " + imgName); + } + System.out.println("----------- Word Content End -----------"); + } +} +``` + +通过WordDocument类模拟了word文档中的基本元素,即文字和图片。WordDocument的在该原型模式示例中扮演的角色为ConcretePrototype, 而Cloneable的角色则为Prototype。WordDocument实现了clone方法以实现对象克隆。下面我们看看Client端的使用 : + +```java +public class Client { + public static void main(String[] args) { + WordDocument originDoc = new WordDocument(); + originDoc.setText("这是一篇文档"); + originDoc.addImage("图片1"); + originDoc.addImage("图片2"); + originDoc.addImage("图片3"); + originDoc.showDocument(); + + WordDocument doc2 = originDoc.clone(); + doc2.showDocument(); + + doc2.setText("这是修改过的Doc2文本"); + doc2.showDocument(); + + originDoc.showDocument(); + } + +} +``` +输出结果如下 : +![result](images/result.png) + +可以看到,doc2是通过originDoc.clone()创建的,并且doc2第一次输出的时候和originDoc输出是一样的。即doc2是originDoc的一份拷贝,他们的内容是一样的,而doc2修改了文本内容以后并不会影响originDoc的文本内容。需要注意的是通过clone拷贝对象的时候并不会执行构造函数! + + +### 浅拷贝和深拷贝 +将main函数的内容修改为如下 : + +```java + public static void main(String[] args) { + WordDocument originDoc = new WordDocument(); + originDoc.setText("这是一篇文档"); + originDoc.addImage("图片1"); + originDoc.addImage("图片2"); + originDoc.addImage("图片3"); + originDoc.showDocument(); + + WordDocument doc2 = originDoc.clone(); + + doc2.showDocument(); + + doc2.setText("这是修改过的Doc2文本"); + doc2.addImage("哈哈.jpg"); + doc2.showDocument(); + + originDoc.showDocument(); + } +``` + +输出结果如下 : +![result](images/result-2.png) +细心的朋友可能发现了,在doc2添加了一张名为"哈哈.jpg"的照片,但是却也显示在originDoc中?这是怎么回事呢? 其实学习过C++的朋友都知道,这是因为上文中WordDocument的clone方法中只是简单的进行浅拷贝,引用类型的新对象doc2的mImages只是单纯的指向了this.mImages引用,而并没有进行拷贝。doc2的mImages添加了新的图片,实际上也就是往originDoc里添加了新的图片,所以originDoc里面也有"哈哈.jpg" 。那如何解决这个问题呢? 那就是采用深拷贝,即在拷贝对象时,对于引用型的字段也要采用拷贝的形式,而不是单纯引用的形式。示例如下 : + +```java + /** + * 克隆对象 + */ + @Override + protected WordDocument clone() { + try { + WordDocument doc = (WordDocument) super.clone(); + doc.mText = this.mText; +// doc.mImages = this.mImages; + doc.mImages = (ArrayList) this.mImages.clone(); + return doc; + } catch (Exception e) { + } + + return null; + } +``` + +如上代码所示,将doc.mImages指向this.mImages的一份拷贝, 而不是this.mImages本身,这样在doc2添加图片时并不会影响originDoc,如图所示 : +![result](images/result-3.png) + + +## Android源码中的模式实现 +在Android源码中,我们以熟悉的Intent来分析源码中的原型模式。简单示例如下 : + +```java + Uri uri = Uri.parse("smsto:0800000123"); + Intent shareIntent = new Intent(Intent.ACTION_SENDTO, uri); + shareIntent.putExtra("sms_body", "The SMS text"); + + Intent intent = (Intent)shareIntent.clone() ; + startActivity(intent); +``` + +结果如下 : + +![result](images/sms.png) + +可以看到,我们通过shareIntent.clone方法拷贝了一个对象intent, 然后执行startActivity(intent), 随即就进入了短信页面,号码为0800000123,文本内容为The SMS text,即这些内容都与shareIntent一致。 + +```java + @Override + public Object clone() { + return new Intent(this); + } + + /** + * Copy constructor. + */ + public Intent(Intent o) { + this.mAction = o.mAction; + this.mData = o.mData; + this.mType = o.mType; + this.mPackage = o.mPackage; + this.mComponent = o.mComponent; + this.mFlags = o.mFlags; + if (o.mCategories != null) { + this.mCategories = new ArraySet(o.mCategories); + } + if (o.mExtras != null) { + this.mExtras = new Bundle(o.mExtras); + } + if (o.mSourceBounds != null) { + this.mSourceBounds = new Rect(o.mSourceBounds); + } + if (o.mSelector != null) { + this.mSelector = new Intent(o.mSelector); + } + if (o.mClipData != null) { + this.mClipData = new ClipData(o.mClipData); + } + } +``` + + 可以看到,clone方法实际上在内部调用了new Intent(this); 这就和C++中的拷贝构造函数完全一致了,而且是深拷贝。由于该模式比较简单,就不做太多说明。 + + +## 4. 杂谈 +### 优点与缺点 +* 优点 +原型模式是在内存二进制流的拷贝,要比直接 new 一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模式可以更好地体现其优点。 + +* 缺点 +这既是它的优点也是缺点,直接在内存中拷贝,构造函数是不会执行的,在实际开发当中应该注意这个潜在的问题。优点就是减少了约束,缺点也是减少了约束,需要大家在实际应用时考虑。 + From 2f04adfe615bd3812ea8b452df59ff9f44f29001 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Sun, 15 Mar 2015 23:07:41 +0800 Subject: [PATCH 27/56] remove prototype --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 39a754c..af4a9a1 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,6 @@ | ------------- | | 中介者模式 | | 备忘录模式 | -| 原型模式 | | 解释器模式 | | 访问者模式 | From 4e50138557c548bc793014fefcd649af680ef909 Mon Sep 17 00:00:00 2001 From: lijunhuayc Date: Mon, 16 Mar 2015 09:35:44 +0800 Subject: [PATCH 28/56] =?UTF-8?q?=E6=8F=90=E4=BA=A4command=E5=AD=90?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- command/README.md | 6 ++--- command/lijunhuayc/readme.md | 52 ++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 command/lijunhuayc/readme.md diff --git a/command/README.md b/command/README.md index 0154882..fe87a56 100644 --- a/command/README.md +++ b/command/README.md @@ -1,7 +1,7 @@ # 任务表 -| 作者 | 预计完成时间 | -| ------------- |:-------------:| -| [用户名](git地址) | 完成时间 | +| 模式名称 | 作者 | 预计完成时间 | +| ------------- |:-------------:| ------------- | +| 命令模式 | [lijunhuayc](https://github.com/lijunhuayc) | 2015.3.18 | diff --git a/command/lijunhuayc/readme.md b/command/lijunhuayc/readme.md new file mode 100644 index 0000000..59eaf0d --- /dev/null +++ b/command/lijunhuayc/readme.md @@ -0,0 +1,52 @@ +Android设计模式源码解析之命令模式 +==================================== +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 命令模式 分析 +> Android系统版本: 2.3 +> 分析者:[lijunhuayc](https://github.com/lijunhuayc),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 + +## 1. 模式介绍 + +### 模式的定义 +`模式的一句话定义` + + +### 模式的使用场景 + + + +## 2. UML类图 +`这里是该设计模式的经典UML图` + +### 角色介绍 +`对UML图中的各个角色进行介绍` + + + + +## 3. 模式的简单实现 +### 简单实现的介绍 +`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` + +### 实现源码 +`上述案例的源码实现` + + +### 总结 +`对上述的简单示例进行总结说明` + + + + +## Android源码中的模式实现 +`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` + + + + +## 4. 杂谈 +该模式的优缺点以及自己的一些感悟,非所有项目必须。 + + + +`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` + From 104145777ba47b5009b70358e1199f3aa2a9fb8a Mon Sep 17 00:00:00 2001 From: lvtea0105 Date: Mon, 16 Mar 2015 11:46:25 +0800 Subject: [PATCH 29/56] Update readme.md --- flyweight/lvtea0105/readme.md | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/flyweight/lvtea0105/readme.md b/flyweight/lvtea0105/readme.md index b9915ac..a3841f4 100644 --- a/flyweight/lvtea0105/readme.md +++ b/flyweight/lvtea0105/readme.md @@ -6,4 +6,83 @@ Android系统版本: 4.0 分析者:lvtea0105,分析状态:未完成,校对者:Mr.Simple,校对状态:未开始 +1. 模式介绍 +模式的定义 + + 通过共享有效支持大量的细粒度对象,节省系统中重复创建相同内容对象的性能消耗,进而提高应用程序的性能。 + + 享元模式可分为单纯享元模式和复合享元模式。 + +模式的使用场景 + + 面向对象编程在某些情况下会创建大量的细粒度对象,它们的产生,存储,销毁都会造成资源和性能上的损耗,可能会在程序运行时形成 +效率瓶颈,在遇到以下情况时,即可考虑使用享元模式: + + (1)一个应用程序使用了大量的对象,耗费大量的内存,降低了系统的效率。 + + (2)这些对象的状态可以分离出内外两部分。 + + (3)这些对象按照状态分成很多的组,当把删除对象的外部状态时,可以用相对较少的共享对象取代很多组对象。 + + (4)应用程序不依赖这些对象的身份,即这些对象是不可分辨的。 + + 在一般的开发中享元模式并不常用,其常常应用于系统底层的开发,以便解决系统的性能问题。 + +2. UML类图 + +3. 模式的简单实现 + +简单实现的介绍 + +(1)享元模式如何实现共享 + + 将事物的共性共享,同时又保留它的个性。为了做到这点,享元模式中区分了内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态就是共性,外蕴状态就是个性了。 + + 内蕴状态存储在享元内部,不会随环境改变而变化,是可以共享的; + + 外蕴状态是不可以共享的,它随环境的改变而变化,通常外蕴状态是由客户端来保持的(因为环境的变化是由客户端引起的)。 + + +单纯享元模式 + +————所有的享元对象都是可以共享的 + + 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 + + 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 + + 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。当客户端调用一个享元对象的时候 ,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个 合适的享元对象。 + + 客户端角色:维护所有享元对象的引用,同时还需要存储享元对象所对应的外蕴状态。 + + +复合享元模式 + +————将一些单纯享元使用合成模式加以复合,形成复合享元对象。复合享元对象本身是不能共享的,但是它们可以分解成能够进行共享的单纯享元对象。 + + 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 + + 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 + + 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的,但是一个复合享元对象可以分解成能够进行 共享的单纯享元对象。 + + 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。当客户端调用一个享元对象的时候 ,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个 合适的享元对象。 + + 客户端角色:维护所有享元对象的引用,同时还需要存储享元对象所对应的外蕴状态。 + +实现源码 + +Android源码中的模式实现 + +4. 优点与缺点 + +优点 + +大幅度地降低内存中对象的数量,节省系统资源的开销 + +缺点 + +1、为了使对象可以共享,享元模式需要将部分状态外部化,使得系统的逻辑变得复杂。 + +2、读取状态外部化的享元对象,影响了系统速度,使运行时间有所加长。 From eb5a8e8f6988c867b950fd4b6ed1ea9822e5cae8 Mon Sep 17 00:00:00 2001 From: lvtea0105 Date: Mon, 16 Mar 2015 11:49:24 +0800 Subject: [PATCH 30/56] Update readme.md --- flyweight/lvtea0105/readme.md | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/flyweight/lvtea0105/readme.md b/flyweight/lvtea0105/readme.md index a3841f4..96bcd15 100644 --- a/flyweight/lvtea0105/readme.md +++ b/flyweight/lvtea0105/readme.md @@ -11,22 +11,15 @@ Android系统版本: 4.0 模式的定义 通过共享有效支持大量的细粒度对象,节省系统中重复创建相同内容对象的性能消耗,进而提高应用程序的性能。 - 享元模式可分为单纯享元模式和复合享元模式。 模式的使用场景 - 面向对象编程在某些情况下会创建大量的细粒度对象,它们的产生,存储,销毁都会造成资源和性能上的损耗,可能会在程序运行时形成 -效率瓶颈,在遇到以下情况时,即可考虑使用享元模式: - + 面向对象编程在某些情况下会创建大量的细粒度对象,它们的产生,存储,销毁都会造成资源和性能上的损耗,可能会在程序运行时形成效率瓶颈,在遇到以下情况时,即可考虑使用享元模式: (1)一个应用程序使用了大量的对象,耗费大量的内存,降低了系统的效率。 - (2)这些对象的状态可以分离出内外两部分。 - (3)这些对象按照状态分成很多的组,当把删除对象的外部状态时,可以用相对较少的共享对象取代很多组对象。 - (4)应用程序不依赖这些对象的身份,即这些对象是不可分辨的。 - 在一般的开发中享元模式并不常用,其常常应用于系统底层的开发,以便解决系统的性能问题。 2. UML类图 @@ -38,9 +31,7 @@ Android系统版本: 4.0 (1)享元模式如何实现共享 将事物的共性共享,同时又保留它的个性。为了做到这点,享元模式中区分了内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态就是共性,外蕴状态就是个性了。 - 内蕴状态存储在享元内部,不会随环境改变而变化,是可以共享的; - 外蕴状态是不可以共享的,它随环境的改变而变化,通常外蕴状态是由客户端来保持的(因为环境的变化是由客户端引起的)。 @@ -49,11 +40,8 @@ Android系统版本: 4.0 ————所有的享元对象都是可以共享的 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 - 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 - 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。当客户端调用一个享元对象的时候 ,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个 合适的享元对象。 - 客户端角色:维护所有享元对象的引用,同时还需要存储享元对象所对应的外蕴状态。 @@ -62,13 +50,9 @@ Android系统版本: 4.0 ————将一些单纯享元使用合成模式加以复合,形成复合享元对象。复合享元对象本身是不能共享的,但是它们可以分解成能够进行共享的单纯享元对象。 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 - 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 - - 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的,但是一个复合享元对象可以分解成能够进行 共享的单纯享元对象。 - + 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的,但是一个复合享元对象可以分解成能够进行 共享的单纯享元对象。 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。当客户端调用一个享元对象的时候 ,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个 合适的享元对象。 - 客户端角色:维护所有享元对象的引用,同时还需要存储享元对象所对应的外蕴状态。 实现源码 @@ -76,13 +60,7 @@ Android系统版本: 4.0 Android源码中的模式实现 4. 优点与缺点 + 优点————大幅度地降低内存中对象的数量,节省系统资源的开销 -优点 - -大幅度地降低内存中对象的数量,节省系统资源的开销 - -缺点 - -1、为了使对象可以共享,享元模式需要将部分状态外部化,使得系统的逻辑变得复杂。 - -2、读取状态外部化的享元对象,影响了系统速度,使运行时间有所加长。 + 缺点————1、为了使对象可以共享,享元模式需要将部分状态外部化,使得系统的逻辑变得复杂。 + 2、读取状态外部化的享元对象,影响了系统速度,使运行时间有所加长。 From 7de9a0f81fa3e0f9a60c227bfefd82cf4757b201 Mon Sep 17 00:00:00 2001 From: lvtea0105 Date: Mon, 16 Mar 2015 11:50:22 +0800 Subject: [PATCH 31/56] Update readme.md --- flyweight/lvtea0105/readme.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/flyweight/lvtea0105/readme.md b/flyweight/lvtea0105/readme.md index 96bcd15..f05c2e4 100644 --- a/flyweight/lvtea0105/readme.md +++ b/flyweight/lvtea0105/readme.md @@ -15,7 +15,8 @@ Android系统版本: 4.0 模式的使用场景 - 面向对象编程在某些情况下会创建大量的细粒度对象,它们的产生,存储,销毁都会造成资源和性能上的损耗,可能会在程序运行时形成效率瓶颈,在遇到以下情况时,即可考虑使用享元模式: + 面向对象编程在某些情况下会创建大量的细粒度对象,它们的产生,存储,销毁都会造成资源和性能上的损耗, + 可能会在程序运行时形成效率瓶颈,在遇到以下情况时,即可考虑使用享元模式: (1)一个应用程序使用了大量的对象,耗费大量的内存,降低了系统的效率。 (2)这些对象的状态可以分离出内外两部分。 (3)这些对象按照状态分成很多的组,当把删除对象的外部状态时,可以用相对较少的共享对象取代很多组对象。 @@ -30,7 +31,8 @@ Android系统版本: 4.0 (1)享元模式如何实现共享 - 将事物的共性共享,同时又保留它的个性。为了做到这点,享元模式中区分了内蕴状态(Internal State)和外蕴状态(External State)。内蕴状态就是共性,外蕴状态就是个性了。 + 将事物的共性共享,同时又保留它的个性。为了做到这点,享元模式中区分了内蕴状态(Internal State)和 + 外蕴状态(External State)。内蕴状态就是共性,外蕴状态就是个性了。 内蕴状态存储在享元内部,不会随环境改变而变化,是可以共享的; 外蕴状态是不可以共享的,它随环境的改变而变化,通常外蕴状态是由客户端来保持的(因为环境的变化是由客户端引起的)。 @@ -47,7 +49,8 @@ Android系统版本: 4.0 复合享元模式 -————将一些单纯享元使用合成模式加以复合,形成复合享元对象。复合享元对象本身是不能共享的,但是它们可以分解成能够进行共享的单纯享元对象。 +————将一些单纯享元使用合成模式加以复合,形成复合享元对象。复合享元对象本身是不能共享的, + 但是它们可以分解成能够进行共享的单纯享元对象。 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 From 30b4cfeee65a2295432566b10fceb9545f92cc7b Mon Sep 17 00:00:00 2001 From: lvtea0105 Date: Mon, 16 Mar 2015 11:51:41 +0800 Subject: [PATCH 32/56] Update readme.md --- flyweight/lvtea0105/readme.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/flyweight/lvtea0105/readme.md b/flyweight/lvtea0105/readme.md index f05c2e4..1f1c33d 100644 --- a/flyweight/lvtea0105/readme.md +++ b/flyweight/lvtea0105/readme.md @@ -43,7 +43,9 @@ Android系统版本: 4.0 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 - 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。当客户端调用一个享元对象的时候 ,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个 合适的享元对象。 + 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。 + 当客户端调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。 + 如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个合适的享元对象。 客户端角色:维护所有享元对象的引用,同时还需要存储享元对象所对应的外蕴状态。 @@ -54,8 +56,10 @@ Android系统版本: 4.0 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 - 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的,但是一个复合享元对象可以分解成能够进行 共享的单纯享元对象。 - 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。当客户端调用一个享元对象的时候 ,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个 合适的享元对象。 + 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的,但是一个复合享元对象可以分解成能够进行 共享的单纯享元对象。 + 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。 + 当客户端调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。 + 如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个合适的享元对象。 客户端角色:维护所有享元对象的引用,同时还需要存储享元对象所对应的外蕴状态。 实现源码 From 0ce8ff177218b8f2042a41c9fff1f91f657e13d9 Mon Sep 17 00:00:00 2001 From: lvtea0105 Date: Mon, 16 Mar 2015 11:52:10 +0800 Subject: [PATCH 33/56] Update readme.md --- flyweight/lvtea0105/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/flyweight/lvtea0105/readme.md b/flyweight/lvtea0105/readme.md index 1f1c33d..4cc9705 100644 --- a/flyweight/lvtea0105/readme.md +++ b/flyweight/lvtea0105/readme.md @@ -56,7 +56,8 @@ Android系统版本: 4.0 抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法,外蕴状态以参数形式传入此方法。 具体享元(ConcreteFlyweight)角色:实现抽象享元角色定义的接口。如果有内蕴状态的话,则必须为内蕴状态提供存储空间。 - 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的,但是一个复合享元对象可以分解成能够进行 共享的单纯享元对象。 + 复合享元(ConcreteCompositeFlyweight)角色:复合享元角色所代表的对象是不可以共享的, + 但是一个复合享元对象可以分解成能够进行共享的单纯享元对象。 享元工厂(FlyweightFactory)角色:负责创建和管理享元角色,保证享元对象可以被系统适当地共享。 当客户端调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。 如果已经有了,就提供这个已有的享元对象;如果没有,就创建一个合适的享元对象。 From dc646535f81d7daee079b179f543aa977b67b8fc Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Mon, 16 Mar 2015 15:16:09 +0800 Subject: [PATCH 34/56] update singleton --- singleton/mr.simple/readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/singleton/mr.simple/readme.md b/singleton/mr.simple/readme.md index 1ac7c4e..58398c9 100644 --- a/singleton/mr.simple/readme.md +++ b/singleton/mr.simple/readme.md @@ -220,7 +220,8 @@ public class Singleton { } } -``` +``` +不管以哪种形式实现单例模式,它们的核心原理都是将构造函数私有化,并且通过静态方法获取一个唯一的实例,在这个获取的过程中你必须保证线程安全、反序列化导致重新生成实例对象等问题,该模式简单,但使用率较高。 ## Android源码中的模式实现 在Android系统中,我们经常会通过Context获取系统级别的服务,比如WindowsManagerService, ActivityManagerService等,更常用的是一个叫LayoutInflater的类。这些服务会在合适的时候以单例的形式注册在系统中,在我们需要的时候就通过Context的getSystemService(String name)获取。我们以LayoutInflater为例来说明, 平时我们使用LayoutInflater较为常见的地方是在ListView的getView方法中。 @@ -491,5 +492,4 @@ class ContextImpl extends Context { * 单例模式可以在系统设置全局的访问点,优化和共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理。 #### 缺点 -* 单例模式一般没有接口,扩展很困难,若要扩展,除了修改代码基本上没有第二种途径可以实现。 -* 单例模式与单一职责原则有冲突。 +* 单例模式一般没有接口,扩展很困难,若要扩展,除了修改代码基本上没有第二种途径可以实现。 From b3293e074ac34dca45ef450a946a7b174311b743 Mon Sep 17 00:00:00 2001 From: lijunhuayc Date: Mon, 16 Mar 2015 16:01:56 +0800 Subject: [PATCH 35/56] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lijunhuayc/images/lijunhuayc_resule.png | Bin 0 -> 19154 bytes command/lijunhuayc/images/lijunhuayc_uml.jpg | Bin 0 -> 33857 bytes command/lijunhuayc/readme.md | 527 +++++++++++++++++- .../resource/command/ClientRole.java | 37 ++ .../lijunhuayc/resource/command/Command.java | 14 + .../command/ConcreteCommandImpl1.java | 35 ++ .../command/ConcreteCommandImpl2.java | 35 ++ .../command/ConcreteCommandImpl3.java | 35 ++ .../resource/command/InvokerRole.java | 33 ++ .../lijunhuayc/resource/command/MainTest.java | 12 + .../resource/command/PeopleBean.java | 47 ++ .../resource/command/ReceiverRole.java | 42 ++ 12 files changed, 803 insertions(+), 14 deletions(-) create mode 100644 command/lijunhuayc/images/lijunhuayc_resule.png create mode 100644 command/lijunhuayc/images/lijunhuayc_uml.jpg create mode 100644 command/lijunhuayc/resource/command/ClientRole.java create mode 100644 command/lijunhuayc/resource/command/Command.java create mode 100644 command/lijunhuayc/resource/command/ConcreteCommandImpl1.java create mode 100644 command/lijunhuayc/resource/command/ConcreteCommandImpl2.java create mode 100644 command/lijunhuayc/resource/command/ConcreteCommandImpl3.java create mode 100644 command/lijunhuayc/resource/command/InvokerRole.java create mode 100644 command/lijunhuayc/resource/command/MainTest.java create mode 100644 command/lijunhuayc/resource/command/PeopleBean.java create mode 100644 command/lijunhuayc/resource/command/ReceiverRole.java diff --git a/command/lijunhuayc/images/lijunhuayc_resule.png b/command/lijunhuayc/images/lijunhuayc_resule.png new file mode 100644 index 0000000000000000000000000000000000000000..ca053f4ae1727686504b7753147c68f5f2bff193 GIT binary patch literal 19154 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 |UKfu! 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 Fe*lBAa$o=e literal 0 HcmV?d00001 diff --git a/command/lijunhuayc/readme.md b/command/lijunhuayc/readme.md index 59eaf0d..4a78546 100644 --- a/command/lijunhuayc/readme.md +++ b/command/lijunhuayc/readme.md @@ -7,46 +7,545 @@ Android设计模式源码解析之命令模式 ## 1. 模式介绍 ### 模式的定义 -`模式的一句话定义` +命令模式(Command Pattern)又叫遥控器模式,在面向对象程式设计的范畴中,命令模式是一种设计模式,它尝试以物件来代表实际行动。 +命令模式的官方定义:将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 +对命令模式的理解关键有两点: +1.使用接口 +2.主要的用途是使用参数回调模式 ### 模式的使用场景 - - +1.系统需要将请求调用者和请求接收者解耦,使得调用者和接收者不直接交互。 +2.系统需要在不同的时间指定请求、将请求排队和执行请求。 +3.系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作。 +4.系统需要将一组操作组合在一起,即支持宏命令。 ## 2. UML类图 -`这里是该设计模式的经典UML图` +![url](images/lijunhuayc_uml.png) ### 角色介绍 -`对UML图中的各个角色进行介绍` +*命令角色(Command):定义命令的接口,声明具体命令类需要执行的方法。这是一个抽象角色。 +*具体命令角色(ConcreteCommand):命令接口的具体实现对象,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作。 +*调用者角色(Invoker):负责调用命令对象执行请求,通常会持有命令对象(可以持有多个命令对象)。Invoker是Client真正触发命令并要求命令执行相应操作的地方(使用命令对象的入口)。 +*接受者角色(Receiver):Receiver是真正执行命令的对象。任何类都可能成为一个接收者,只要它能够实现命令要求实现的相应功能。 + +*客户角色(Client):Client可以创建具体的命令对象,并且设置命令对象的接收者。Tips:不能把Clinet理解为我们平常说的客户端,这里的Client是一个组装命令对象和接受者对象的角色,或者你把它理解为一个装配者。 ## 3. 模式的简单实现 ### 简单实现的介绍 -`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` +命令模式其实就是对命令进行封装,将命令请求者和命令执行者的责任分离开来实现松耦合。 ### 实现源码 -`上述案例的源码实现` +``` + package com.command; + /** + * @Desc: 命令接口[命令角色] + * ps:你也可以定义成abstract class类型 *_* + * @author ljh + * @date 2015-3-16 上午11:01:01 + */ + public interface Command { + public void execute(); + public void undo(); + public void redo(); + } + + package com.command; + /** + * @Desc: 更新年龄的命令类[具体命令角色] + * @author ljh + * @date 2015-3-16 上午11:04:51 + */ + public class ConcreteCommandImpl1 implements Command{ + private ReceiverRole receiverRole1; + + public ConcreteCommandImpl1(ReceiverRole receiverRole1) { + this.receiverRole1 = receiverRole1; + } + + @Override + public void execute() { + /* + * 可以加入命令排队等等,未执行的命令支持redo操作 + */ + receiverRole1.opActionUpdateAge(1001);//执行具体的命令操作 + } + + @Override + public void undo() { + receiverRole1.rollBackAge();//执行具体的撤销回滚操作 + } + + @Override + public void redo() { + //在命令执行前可以修改命令的执行 + } + } +``` +``` + package com.command; + /** + * @Desc: 更新姓名的命令类[具体命令角色] + * @author ljh + * @date 2015-3-16 上午11:04:51 + */ + public class ConcreteCommandImpl2 implements Command{ + private ReceiverRole receiverRole1; + + public ConcreteCommandImpl2(ReceiverRole receiverRole1) { + this.receiverRole1 = receiverRole1; + } + + @Override + public void execute() { + /* + * 可以加入命令排队等等,未执行的命令支持redo操作 + */ + receiverRole1.opActionUpdateName("lijunhuayc");//执行具体的命令操作 + } + + @Override + public void undo() { + receiverRole1.rollBackName();//执行具体的撤销回滚操作 + } + + @Override + public void redo() { + //在命令执行前可以修改命令的执行 + } + + } +``` +``` + package com.command; + /** + * @Desc: 命令调用[调用者角色] + * ps:使用命令对象的入口,扶着调用命令对象执行请求 + * @author ljh + * @date 2015-3-16 上午11:16:15 + */ + public class InvokerRole { + private Command command1; + private Command command2; + //持有多个命令对象[实际的情况也可能是一个命令对象的集合来保存命令对象] + + public void setCommand1(Command command1) { + this.command1 = command1; + } + public void setCommand2(Command command2) { + this.command2 = command2; + } + + /** + * @Description: + * @author (ljh) @date 2015-3-16 下午1:40:54 + * @param args 0执行正常命令,1执行回滚命令 + * @return void + */ + public void invoke(int args) { + //可以根据具体情况选择执行某些命令 + if(args == 0){ + command1.execute(); + command2.execute(); + }else if(args == 1){ + command1.undo(); + command2.undo(); + } + } + + } +``` +``` + package com.command; + /** + * @Desc: 命令的具体执行类[接收者角色] + * ps:命令接收者可以是任意的类,只要实现了命令要求实现的相应功能即可。 + * @author ljh + * @date 2015-3-16 上午11:06:14 + */ + public class ReceiverRole { + private PeopleBean people; + private PeopleBean peopleCache = new PeopleBean(); //具体命令操作的缓存栈,用于回滚。这里为了方便就用一个PeopleBean来代替//[实际的使用情况可能是需要回滚多个命令,这里只回滚一次] + + public ReceiverRole() { + this.people = new PeopleBean(-1, "NULL");//初始化年龄为-1,姓名为NULL + } + + public ReceiverRole(PeopleBean people) { + this.people = people; + } + + /** + * @Description: 具体操作方法[修改年龄和姓名] + * @author (ljh) @date 2015-3-16 上午11:07:32 + * @return void + */ + //修改年龄 + public void opActionUpdateAge(int age) { + System.out.println("执行命令前:"+people.toString()); + this.people.update(age); + System.out.println("执行命令后:"+people.toString()+"\n"); + } + //修改姓名 + public void opActionUpdateName(String name) { + System.out.println("执行命令前:"+people.toString()); + this.people.update(name); + System.out.println("执行命令后:"+people.toString()+"\n"); + } + + /** + * @Description: 回滚操作,用于撤销opAction执行的改变 + * @author (ljh) @date 2015-3-16 上午11:34:41 + * @return void + */ + public void rollBackAge() { + people.setAge(peopleCache.getAge()); + System.out.println("命令回滚后:"+people.toString()+"\n"); + } + public void rollBackName() { + people.setName(peopleCache.getName()); + System.out.println("命令回滚后:"+people.toString()+"\n"); + } +} +``` +``` + package com.command; + /** + * @Desc: 辅助类,作为接收者Receiver的成员,包含两个属性,用来观察命令的执行情况 + * @author ljh + * @date 2015-3-16 上午11:29:11 + */ + public class PeopleBean { + private int age = -1; //年龄 + private String name = "NULL"; //姓名 + public PeopleBean() { + } + public PeopleBean(int age, String name) { + this.age = age; + this.name = name; + } + public void update(int age, String name) { + this.age = age; + this.name = name; + } + public void update(int age) { + this.age = age; + } + public void update(String name) { + this.name = name; + } + /** + * @return 返回一个PeopleBean的克隆对象 + */ + protected PeopleBean clone(){ + return new PeopleBean(age, name); + } + @Override + public String toString() { + return " 【年龄:" + age + "\t姓名:" + name + "】"; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + } +``` +``` + package com.command; + /** + * @Desc: 命令对象和接受者对象的组装类[客户角色] + * ps:我这把类名定义成ClientRole更方便读者理解这只是命令模式中的一个客户角色,而不是我们常规意义上说的客户端 + * @author ljh + * @date 2015-3-16 上午11:08:03 + */ + public class ClientRole { + /** + * @Description: 组装操作 + * @author (ljh) @date 2015-3-16 上午11:13:06 + * @return void + */ + public void assembleAction() { + ReceiverRole receiverRole1 = new ReceiverRole();//创建一个命令接收者 + Command command1 = new ConcreteCommandImpl1(receiverRole1);//创建一个命令的具体实现对象,并指定命令接收者 + Command command2 = new ConcreteCommandImpl2(receiverRole1); + + //PS:command1 修改people 年龄 + //PS:command2 修改people 姓名 + //PS:command23修改people 年龄和姓名 + + InvokerRole invokerRole = new InvokerRole();//创建一个命令调用者 + invokerRole.setCommand1(command1);//为调用者指定命令对象1 + invokerRole.setCommand2(command2);//为调用者指定命令对象2 + invokerRole.invoke(0);//发起调用命令请求 + invokerRole.invoke(1);//发起调用命令请求 + } + } +``` +``` + package com.command; + /** + * + */ + public class MainTest { + public static void main(String[] args) { + ClientRole client = new ClientRole(); + client.assembleAction(); + } + } +``` +输出结果如下: + ![result](images/lijunhuayc_result.png) ### 总结 -`对上述的简单示例进行总结说明` + *每一个命令都是一个操作:请求的一方发出请求,要求执行一个操作;接收的一方收到请求,并执行操作。 + *命令模式允许请求的一方和接收的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否被执行、何时被执行,以及是怎么被执行的。 + *命令模式使请求本身成为一个对象,这个对象和其他对象一样可以被存储和传递。 + *命令模式的关键在于引入了抽象命令接口,且发送者针对抽象命令接口编程,只有实现了抽象命令接口的具体命令才能与接收者相关联。 - +## Android源码中的模式实现 +Command接口中定义了一个execute方法,客户端通过Invoker调用命令操作再来调用Recriver执行命令;把对Receiver的操作请求封装在具体的命令中,使得命令发起者和命令接收者解耦。 +以Android中大家常见的Runnable为例:客户端只需要new Thread(new Runnable(){}).start()就开始执行一系列相关的请求,这些请求大部分都是实现Runnable接口的匿名类。 +【O_o 模式就在我们身边~】 +命令接口Runnable接口定义如下: +``` +package java.lang; +/** + * Represents a command that can be executed. Often used to run code in a + * different {@link Thread}. + */ +public interface Runnable { -## Android源码中的模式实现 -`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` + /** + * Starts executing the active part of the class' code. This method is + * called when a thread is started that has been created with a class which + * implements {@code Runnable}. + */ + public void run(); +} +``` +调用者Thread源码如下(省略部分代码): +Tips:命令模式在这里本来不需要继承Runnable接口,但为了方便性等,继承了Runnable接口实现了run方法,这个run是Thread自身的运行run的方法,而不是命令Runnable的run。 +``` +public class Thread implements Runnable { + //省略部分无关代码... + /* some of these are accessed directly by the VM; do not rename them */ + volatile VMThread vmThread; + volatile ThreadGroup group; + volatile boolean daemon; + volatile String name; + volatile int priority; + volatile long stackSize; + Runnable target; + private static int count = 0; + + /** + * Starts the new Thread of execution. The run() method of + * the receiver will be called by the receiver Thread itself (and not the + * Thread calling start()). + * @throws IllegalThreadStateException if the Thread has been started before + * @see Thread#run + */ + public synchronized void start() { + if (hasBeenStarted) { + throw new IllegalThreadStateException("Thread already started."); // TODO Externalize? + } + + hasBeenStarted = true; + + VMThread.create(this, stackSize); + } + //省略部分代码... +} +``` +上面可以看到执行start()方法的时候实际执行了VMThread.create(this, stackSize)方法;create是VMThread的本地方法,其JNI实现在 android/dalvik/vm/native/java_lang_VMThread.cpp 中的 Dalvik_java_lang_VMThread_create方法,如下: +``` +static void Dalvik_java_lang_VMThread_create(const u4* args, JValue* pResult) +{ + Object* threadObj = (Object*) args[0]; + s8 stackSize = GET_ARG_LONG(args, 1); + + /* copying collector will pin threadObj for us since it was an argument */ + dvmCreateInterpThread(threadObj, (int) stackSize); + RETURN_VOID(); +} +``` +而dvmCreateInterpThread的实现在Thread.app中,如下: +``` +bool dvmCreateInterpThread(Object* threadObj, int reqStackSize){ + Thread* self = dvmThreadSelf(); + + Thread* newThread = allocThread(stackSize); + newThread->threadObj = threadObj; + + Object* vmThreadObj = dvmAllocObject(gDvm.classJavaLangVMThread, ALLOC_DEFAULT); + dvmSetFieldInt(vmThreadObj, gDvm.offJavaLangVMThread_vmData, (u4)newThread); + dvmSetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread, vmThreadObj); + + pthread_t threadHandle; + int cc = pthread_create(&threadHandle, &threadAttr, interpThreadStart, newThread); + + /* + * Tell the new thread to start. + * We must hold the thread list lock before messing with another thread. + * In the general case we would also need to verify that newThread was + * still in the thread list, but in our case the thread has not started + * executing user code and therefore has not had a chance to exit. + * + * We move it to VMWAIT, and it then shifts itself to RUNNING, which + * comes with a suspend-pending check. + */ + dvmLockThreadList(self); + + assert(newThread->status == THREAD_STARTING); + newThread->status = THREAD_VMWAIT; + pthread_cond_broadcast(&gDvm.threadStartCond); + + dvmUnlockThreadList(); + +} + +/* + * Alloc and initialize a Thread struct. + * Does not create any objects, just stuff on the system (malloc) heap. + */ +static Thread* allocThread(int interpStackSize) +{ + Thread* thread; + thread = (Thread*) calloc(1, sizeof(Thread)); + + thread->status = THREAD_INITIALIZING; +} +``` +这里是底层代码,简单介绍下就行了: +第4行通过调用 allocThread 创建一个名为newThread的dalvik Thread并设置一些属性,第5行设置其成员变量threadObj为传入的Android Thread,这样dalvik Thread就与Android Thread对象关联起来了;第7行然后创建一个名为vmThreadObj的VMThread对象,设置其成员变量vmData为前面创建的newThread,设置 Android Thread threadObj的成员变量vmThread为这个vmThreadObj,这样Android Thread通过VMThread的成员变量vmData就和dalvik Thread关联起来了。 +接下来在12行通过pthread_create创建pthread线程,并让这个线程start,这样就会进入该线程的thread entry运行,下来我们来看新线程的thread entry方法 interpThreadStart,同样只列出关键的地方: + +``` +/* + * pthread entry function for threads started from interpreted code. + */ +static void* interpThreadStart(void* arg){ + Thread* self = (Thread*) arg; + std::string threadName(dvmGetThreadName(self)); + setThreadName(threadName.c_str()); + + /* + * Finish initializing the Thread struct. + */ + dvmLockThreadList(self); + prepareThread(self); + + while (self->status != THREAD_VMWAIT) + pthread_cond_wait(&gDvm.threadStartCond, &gDvm.threadListLock); + + dvmUnlockThreadList(); + + /* + * Add a JNI context. + */ + self->jniEnv = dvmCreateJNIEnv(self); + + /* + * Change our state so the GC will wait for us from now on. If a GC is + * in progress this call will suspend us. + */ + dvmChangeStatus(self, THREAD_RUNNING); + + /* + * Execute the "run" method. + * At this point our stack is empty, so somebody who comes looking for + * stack traces right now won't have much to look at. This is normal. + */ + Method* run = self->threadObj->clazz->vtable[gDvm.voffJavaLangThread_run]; + JValue unused; + ALOGV("threadid=%d: calling run()", self->threadId); + assert(strcmp(run->name, "run") == 0); + dvmCallMethod(self, run, self->threadObj, &unused); + ALOGV("threadid=%d: exiting", self->threadId); + /* + * Remove the thread from various lists, report its death, and free + * its resources. + */ + dvmDetachCurrentThread(); + return NULL; +} + +/* + * Finish initialization of a Thread struct. + * This must be called while executing in the new thread, but before the + * thread is added to the thread list. + * NOTE: The threadListLock must be held by the caller (needed for + * assignThreadId()). + */ +static bool prepareThread(Thread* thread){ + assignThreadId(thread); + thread->handle = pthread_self(); + thread->systemTid = dvmGetSysThreadId(); + setThreadSelf(thread); + return true; +} +/* + * Explore our sense of self. Stuffs the thread pointer into TLS. + */ +static void setThreadSelf(Thread* thread){ + int cc; + cc = pthread_setspecific(gDvm.pthreadKeySelf, thread); +} +``` +在新线程的interpThreadStart方法中,首先设置线程的名字,然后调用prepareThread设置线程id以及其它一些属性,其中调用了setThreadSelf将新dalvik Thread自身保存在TLS中,这样之后就能通过dvmThreadSelf方法从TLS中获取它。然后在29行处修改状态为THREAD_RUNNING,并在36行调用对应Android Thread的run()方法,其中调用了Runnable的run方法,运行我们自己的代码。 +绕这么深才执行到我们的run方法,累不累? v_v +``` + /** + * Calls the run() method of the Runnable object the receiver + * holds. If no Runnable is set, does nothing. + * @see Thread#start + */ + public void run() { + if (target != null) { + target.run(); + } + } +``` +到此我们已经完成一次命令调用,至于底层run调用完毕后续执行代码,读者可以自行跟进看看~~~ - ## 4. 杂谈 -该模式的优缺点以及自己的一些感悟,非所有项目必须。 +###优点与缺点 +####优点 + 1.降低对象之间的耦合度。 + 2.新的命令可以很容易地加入到系统中。 + 3.可以比较容易地设计一个组合命令。 + 4.调用同一方法实现不同的功能 + +####缺点 + 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。 + + 比如上面的PeopleBean的属性增加,Receiver针对PeopleBean一个属性一个执行方法,一个Command的实现可以调用Receiver的一个执行方法,由此得需要设计多少个具体命令类呀呀呀呀呀呀呀呀!! + + + + + + -by 西北狼 -`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` diff --git a/command/lijunhuayc/resource/command/ClientRole.java b/command/lijunhuayc/resource/command/ClientRole.java new file mode 100644 index 0000000..74b61bf --- /dev/null +++ b/command/lijunhuayc/resource/command/ClientRole.java @@ -0,0 +1,37 @@ +package com.command; + +/** + * @Desc: 命令对象和接受者对象的组装类[客户角色] + * ps:我这把类名定义成ClientRole更方便读者理解这只是命令模式中的一个客户角色,而不是我们常规意义上说的客户端 + * @author ljh + * @date 2015-3-16 上午11:08:03 + */ +public class ClientRole { + + /** + * @Description: 组装操作 + * @author (ljh) @date 2015-3-16 上午11:13:06 + * @return void + */ + public void assembleAction() { + ReceiverRole receiverRole1 = new ReceiverRole();//创建一个命令接收者 + Command command1 = new ConcreteCommandImpl1(receiverRole1);//创建一个命令的具体实现对象,并指定命令接收者 + + ReceiverRole receiverRole2 = new ReceiverRole(new PeopleBean(9999, "神仙")); + Command command2 = new ConcreteCommandImpl2(receiverRole2); + + //PS:command1 修改people为(18, "西北狼") + //PS:command2 修改people为(35, "lijunhuayc") + + InvokerRole invokerRole = new InvokerRole();//创建一个命令调用者 + invokerRole.setCommand1(command1);//为调用者指定命令对象1 + invokerRole.setCommand2(command2);//为调用者指定命令对象2 + invokerRole.invoke(null);//发起调用命令请求 + + ReceiverRole receiverRole3 = new ReceiverRole(new PeopleBean(9999, "神仙")); + Command command3 = new ConcreteCommandImpl3(receiverRole2); + invokerRole.invoke(command3);//发起调用命令请求 + + } + +} diff --git a/command/lijunhuayc/resource/command/Command.java b/command/lijunhuayc/resource/command/Command.java new file mode 100644 index 0000000..bf92500 --- /dev/null +++ b/command/lijunhuayc/resource/command/Command.java @@ -0,0 +1,14 @@ +package com.command; + +/** + * @Desc: 命令接口[命令角色] + * ps:你也可以定义成abstract class类型 *_* + * @author ljh + * @date 2015-3-16 上午11:01:01 + */ +public interface Command { + public void execute(); + public void undo(); + public void redo(); + +} diff --git a/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java b/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java new file mode 100644 index 0000000..d07cc1c --- /dev/null +++ b/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java @@ -0,0 +1,35 @@ +package com.command; + +/** + * @Desc: 命令接口的实现类[具体命令角色] + * @author ljh + * @date 2015-3-16 上午11:04:51 + */ +public class ConcreteCommandImpl1 implements Command{ + private ReceiverRole receiverRole1; + + public ConcreteCommandImpl1(ReceiverRole receiverRole1) { + this.receiverRole1 = receiverRole1; + } + + @Override + public void execute() { + /* + * 可以加入命令排队等等,未执行的命令支持redo操作 + */ + receiverRole1.opAction(18, "西北狼");//执行具体的命令操作 + } + + @Override + public void undo() { + receiverRole1.rollBack();//执行具体的撤销回滚操作 + } + + @Override + public void redo() { + //在命令执行前可以修改命令的执行 + } + + + +} diff --git a/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java b/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java new file mode 100644 index 0000000..433ec3a --- /dev/null +++ b/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java @@ -0,0 +1,35 @@ +package com.command; + +/** + * @Desc: 命令接口的实现类[具体命令角色] + * @author ljh + * @date 2015-3-16 上午11:04:51 + */ +public class ConcreteCommandImpl2 implements Command{ + private ReceiverRole receiverRole1; + + public ConcreteCommandImpl2(ReceiverRole receiverRole1) { + this.receiverRole1 = receiverRole1; + } + + @Override + public void execute() { + /* + * 可以加入命令排队等等,未执行的命令支持redo操作 + */ + receiverRole1.opAction(35, "lijunhuayc");//执行具体的命令操作 + } + + @Override + public void undo() { + receiverRole1.rollBack();//执行具体的撤销回滚操作 + } + + @Override + public void redo() { + //在命令执行前可以修改命令的执行 + } + + + +} diff --git a/command/lijunhuayc/resource/command/ConcreteCommandImpl3.java b/command/lijunhuayc/resource/command/ConcreteCommandImpl3.java new file mode 100644 index 0000000..5f10ee5 --- /dev/null +++ b/command/lijunhuayc/resource/command/ConcreteCommandImpl3.java @@ -0,0 +1,35 @@ +package com.command; + +/** + * @Desc: 命令接口的实现类[具体命令角色] + * @author ljh + * @date 2015-3-16 上午11:04:51 + */ +public class ConcreteCommandImpl3 implements Command{ + private ReceiverRole receiverRole1; + + public ConcreteCommandImpl3(ReceiverRole receiverRole1) { + this.receiverRole1 = receiverRole1; + } + + @Override + public void execute() { + /* + * 可以加入命令排队等等,未执行的命令支持redo操作 + */ + receiverRole1.opAction(9999, "神仙");//执行具体的命令操作 + } + + @Override + public void undo() { + receiverRole1.rollBack();//执行具体的撤销回滚操作 + } + + @Override + public void redo() { + //在命令执行前可以修改命令的执行 + } + + + +} diff --git a/command/lijunhuayc/resource/command/InvokerRole.java b/command/lijunhuayc/resource/command/InvokerRole.java new file mode 100644 index 0000000..d43e32c --- /dev/null +++ b/command/lijunhuayc/resource/command/InvokerRole.java @@ -0,0 +1,33 @@ +package com.command; + +/** + * @Desc: 命令调用[调用者角色] + * ps:使用命令对象的入口,扶着调用命令对象执行请求 + * @author ljh + * @date 2015-3-16 上午11:16:15 + */ +public class InvokerRole { + private Command command1; + private Command command2; + //持有多个命令对象[实际的情况也可能是一个命令对象的集合来保存命令对象] + + public void setCommand1(Command command1) { + this.command1 = command1; + } + public void setCommand2(Command command2) { + this.command2 = command2; + } + + public void invoke(Command command) { + //根据具体情况选择执行某些命令 + if(null != command){ + command.execute(); + return; + } + command1.execute(); + command2.execute(); + } + + + +} diff --git a/command/lijunhuayc/resource/command/MainTest.java b/command/lijunhuayc/resource/command/MainTest.java new file mode 100644 index 0000000..9a34cf6 --- /dev/null +++ b/command/lijunhuayc/resource/command/MainTest.java @@ -0,0 +1,12 @@ +package com.command; + + +public class MainTest { + + public static void main(String[] args) { + ClientRole client = new ClientRole(); + client.assembleAction(); + + } + +} diff --git a/command/lijunhuayc/resource/command/PeopleBean.java b/command/lijunhuayc/resource/command/PeopleBean.java new file mode 100644 index 0000000..81a6c33 --- /dev/null +++ b/command/lijunhuayc/resource/command/PeopleBean.java @@ -0,0 +1,47 @@ +package com.command; + +/** + * @Desc: 辅助类,作为接收者Receiver的成员,包含两个属性,用来观察命令的执行情况 + * @author ljh + * @date 2015-3-16 上午11:29:11 + */ +public class PeopleBean { + private int age = -1; //年龄 + private String name = "NULL"; //姓名 + + public PeopleBean() { + } + public PeopleBean(int age, String name) { + this.age = age; + this.name = name; + } + + public void update(int age, String name) { + this.age = age; + this.name = name; + } + + /** + * @return 返回一个PeopleBean的克隆对象 + */ + protected PeopleBean clone(){ + return new PeopleBean(age, name); + } + + /** + * @Description: 还原操作 + * @author (ljh) @date 2015-3-16 上午11:45:23 + * @param cache + * @return void + */ + protected void undo(PeopleBean cache) { + this.age = cache.age; + this.name = cache.name; + } + + @Override + public String toString() { + return " 【姓名:" + name + "\t年龄:" + age + "】\n"; + } + +} diff --git a/command/lijunhuayc/resource/command/ReceiverRole.java b/command/lijunhuayc/resource/command/ReceiverRole.java new file mode 100644 index 0000000..a21f346 --- /dev/null +++ b/command/lijunhuayc/resource/command/ReceiverRole.java @@ -0,0 +1,42 @@ +package com.command; + +/** + * @Desc: 命令的具体执行类[接受者角色] + * ps:命令接收者可以是任意的类,只要实现了命令要求实现的相应功能即可。 + * @author ljh + * @date 2015-3-16 上午11:06:14 + */ +public class ReceiverRole { + private PeopleBean people; + private PeopleBean peopleCache = new PeopleBean(); //具体命令操作的缓存栈,用于回滚。这里为了方便就用一个PeopleBean来代替[实际的使用情况可能是需要回滚多个命令,这里只回滚一次] + + public ReceiverRole() { + this.people = new PeopleBean(-1, "NULL");//初始化年龄为-1,姓名为NULL + } + + public ReceiverRole(PeopleBean people) { + this.people = people; + } + + /** + * @Description: 具体操作方法[修改年龄和姓名] + * @author (ljh) @date 2015-3-16 上午11:07:32 + * @return void + */ + public void opAction(int age, String name) { + peopleCache = people.clone();//缓存people + people.update(age, name); + System.out.println("执行命令后:"+people.toString()); + } + + /** + * @Description: 回滚操作,用于撤销opAction执行的改变 + * @author (ljh) @date 2015-3-16 上午11:34:41 + * @return void + */ + public void rollBack() { + people.undo(peopleCache); + System.out.println("命令回滚后:"+people.toString()); + } + +} From 69f5a54275f04fade0bcec6e20b87f4155a9c465 Mon Sep 17 00:00:00 2001 From: lijunhuayc Date: Mon, 16 Mar 2015 16:09:54 +0800 Subject: [PATCH 36/56] =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- command/lijunhuayc/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command/lijunhuayc/readme.md b/command/lijunhuayc/readme.md index 4a78546..cab9aec 100644 --- a/command/lijunhuayc/readme.md +++ b/command/lijunhuayc/readme.md @@ -2,7 +2,7 @@ Android设计模式源码解析之命令模式 ==================================== > 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 命令模式 分析 > Android系统版本: 2.3 -> 分析者:[lijunhuayc](https://github.com/lijunhuayc),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 +> 分析者:[lijunhuayc](https://github.com/lijunhuayc),分析状态:完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 ## 1. 模式介绍 From 82dd09e4df50ede1b9c97ed9485cc8e72a6a3908 Mon Sep 17 00:00:00 2001 From: lijunhuayc Date: Mon, 16 Mar 2015 16:36:54 +0800 Subject: [PATCH 37/56] ~~~ --- README.md | 2 +- ...{lijunhuayc_resule.png => lijunhuayc_result.png} | Bin .../{lijunhuayc_uml.jpg => lijunhuayc_uml.png} | Bin command/lijunhuayc/readme.md | 5 +++-- 4 files changed, 4 insertions(+), 3 deletions(-) rename command/lijunhuayc/images/{lijunhuayc_resule.png => lijunhuayc_result.png} (100%) rename command/lijunhuayc/images/{lijunhuayc_uml.jpg => lijunhuayc_uml.png} (100%) diff --git a/README.md b/README.md index af4a9a1..1edbaa3 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ | [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | -| [命令模式](Command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 匍匐前进ing | +| [命令模式](command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 待审核 | | [桥接模式](bridge/shen0834) | [shen0834](https://github.com/shen0834)| 撒丫子赶稿中 | | [原型模式](prototype/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 待审核 | diff --git a/command/lijunhuayc/images/lijunhuayc_resule.png b/command/lijunhuayc/images/lijunhuayc_result.png similarity index 100% rename from command/lijunhuayc/images/lijunhuayc_resule.png rename to command/lijunhuayc/images/lijunhuayc_result.png diff --git a/command/lijunhuayc/images/lijunhuayc_uml.jpg b/command/lijunhuayc/images/lijunhuayc_uml.png similarity index 100% rename from command/lijunhuayc/images/lijunhuayc_uml.jpg rename to command/lijunhuayc/images/lijunhuayc_uml.png diff --git a/command/lijunhuayc/readme.md b/command/lijunhuayc/readme.md index cab9aec..872a5cc 100644 --- a/command/lijunhuayc/readme.md +++ b/command/lijunhuayc/readme.md @@ -21,7 +21,8 @@ Android设计模式源码解析之命令模式 4.系统需要将一组操作组合在一起,即支持宏命令。 ## 2. UML类图 -![url](images/lijunhuayc_uml.png) +![UML类图](images/lijunhuayc_uml.png) + ### 角色介绍 *命令角色(Command):定义命令的接口,声明具体命令类需要执行的方法。这是一个抽象角色。 @@ -310,7 +311,7 @@ Android设计模式源码解析之命令模式 ``` 输出结果如下: - ![result](images/lijunhuayc_result.png) + ![运行结果图](images/lijunhuayc_result.png) ### 总结 *每一个命令都是一个操作:请求的一方发出请求,要求执行一个操作;接收的一方收到请求,并执行操作。 From 5bb785db9d6778d1586b9ae8a1e30195f4109308 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Mon, 16 Mar 2015 17:17:29 +0800 Subject: [PATCH 38/56] review command --- command/.DS_Store | Bin 0 -> 6148 bytes command/lijunhuayc/.DS_Store | Bin 0 -> 6148 bytes command/lijunhuayc/images/.DS_Store | Bin 0 -> 6148 bytes .../lijunhuayc/images/lijunhuayc_result.png | Bin 19154 -> 49954 bytes command/lijunhuayc/readme.md | 234 ++++++++---------- singleton/.DS_Store | Bin 6148 -> 6148 bytes 6 files changed, 101 insertions(+), 133 deletions(-) create mode 100644 command/.DS_Store create mode 100644 command/lijunhuayc/.DS_Store create mode 100644 command/lijunhuayc/images/.DS_Store diff --git a/command/.DS_Store b/command/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..feff2a0044fbf34c63ef2a0bc1555688c2a9b4fc GIT binary patch literal 6148 zcmeHK%}T>S5T3176AKzaP;a?;@zA2EH$$x_FG55QDw>#LBOxnoYLQyV(chczAo@gt zFXPPaR+Q>ZL}dnMzuEcOWxox(SpX2#c2ogy0Kh^eEZEq5A`~Ybkb?0L3N=Ow4QN9E z=WsNT&5qy50PWovBoM<1?%ccm3p=gTFp(j~U&7NQZe`{2vnUJ|het*&+b-Fq@rlyD z-;fvQw;5!O(AZm2CU15SZpZb`fitxx(=3S7dQ%n0Q5{qEcH%UWovLi7 zQESiF&Yd{Q8fsAEuq@lM51i?4w^E*WD@!ZAdAGZ~jP~MExz}^T)K*9P?ezHB?Hkjm}^823jYWw8n|Hwew2Y% DfBIXS literal 0 HcmV?d00001 diff --git a/command/lijunhuayc/.DS_Store b/command/lijunhuayc/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3f90c761c9d9915122f5f0974ed6c33b6d8fe431 GIT binary patch literal 6148 zcmeHK%}T>S5Z-NTO(2}4) zO}u0n*Sx_6_D;Q|>udW=h~CWh{PVCqYFV2{B1*h4Y7b;`7_=dz*$AURjA~*S1##0= z&PEs{T{)?C7=~$>Eo*B$E|-dSxpFWm+T&^!?EOk zm`AV7^$Uf|)xmGeaK;^l)Di>4z&rz4)wQtxAOHORpHHG5F+dC~6$3n1ck4CSlCG@_ xo5NabgI#Sn|7cpFp-_-!-*9gV3%@PN=oK+-@BG4Q7hd;!2TS+W2C literal 0 HcmV?d00001 diff --git a/command/lijunhuayc/images/.DS_Store b/command/lijunhuayc/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 b{i#pkc)rta@~kr8kyH$xu6{1-oD!Mstatus == THREAD_STARTING); @@ -434,9 +408,11 @@ static Thread* allocThread(int interpStackSize) thread->status = THREAD_INITIALIZING; } -``` +``` + 这里是底层代码,简单介绍下就行了: -第4行通过调用 allocThread 创建一个名为newThread的dalvik Thread并设置一些属性,第5行设置其成员变量threadObj为传入的Android Thread,这样dalvik Thread就与Android Thread对象关联起来了;第7行然后创建一个名为vmThreadObj的VMThread对象,设置其成员变量vmData为前面创建的newThread,设置 Android Thread threadObj的成员变量vmThread为这个vmThreadObj,这样Android Thread通过VMThread的成员变量vmData就和dalvik Thread关联起来了。 +第4行通过调用 allocThread 创建一个名为newThread的dalvik Thread并设置一些属性,第5行设置其成员变量threadObj为传入的Android Thread,这样dalvik Thread就与Android Thread对象关联起来了;第7行然后创建一个名为vmThreadObj的VMThread对象,设置其成员变量vmData为前面创建的newThread,设置 Android Thread threadObj的成员变量vmThread为这个vmThreadObj,这样Android Thread通过VMThread的成员变量vmData就和dalvik Thread关联起来了。 + 接下来在12行通过pthread_create创建pthread线程,并让这个线程start,这样就会进入该线程的thread entry运行,下来我们来看新线程的thread entry方法 interpThreadStart,同样只列出关键的地方: ``` @@ -510,9 +486,11 @@ static void setThreadSelf(Thread* thread){ int cc; cc = pthread_setspecific(gDvm.pthreadKeySelf, thread); } -``` +``` + 在新线程的interpThreadStart方法中,首先设置线程的名字,然后调用prepareThread设置线程id以及其它一些属性,其中调用了setThreadSelf将新dalvik Thread自身保存在TLS中,这样之后就能通过dvmThreadSelf方法从TLS中获取它。然后在29行处修改状态为THREAD_RUNNING,并在36行调用对应Android Thread的run()方法,其中调用了Runnable的run方法,运行我们自己的代码。 -绕这么深才执行到我们的run方法,累不累? v_v +绕这么深才执行到我们的run方法,累不累? v_v + ``` /** * Calls the run() method of the Runnable object the receiver @@ -524,29 +502,19 @@ static void setThreadSelf(Thread* thread){ target.run(); } } -``` +``` + 到此我们已经完成一次命令调用,至于底层run调用完毕后续执行代码,读者可以自行跟进看看~~~ ## 4. 杂谈 ###优点与缺点 ####优点 - 1.降低对象之间的耦合度。 - 2.新的命令可以很容易地加入到系统中。 - 3.可以比较容易地设计一个组合命令。 - 4.调用同一方法实现不同的功能 +1. 降低对象之间的耦合度。 +2. 新的命令可以很容易地加入到系统中。 +3. 可以比较容易地设计一个组合命令。 +4. 调用同一方法实现不同的功能 ####缺点 - 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。 - - 比如上面的PeopleBean的属性增加,Receiver针对PeopleBean一个属性一个执行方法,一个Command的实现可以调用Receiver的一个执行方法,由此得需要设计多少个具体命令类呀呀呀呀呀呀呀呀!! - - - - - - - -by 西北狼 - - - +使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。 +比如上面的PeopleBean的属性增加,Receiver针对PeopleBean一个属性一个执行方法,一个Command的实现可以调用Receiver的一个执行方法,由此得需要设计多少个具体命令类呀呀呀呀呀呀呀呀!! diff --git a/singleton/.DS_Store b/singleton/.DS_Store index 230323f41a5d1a11b2a5d9957f2e23dc6379d4dc..b9ad64317fe1987e6725c7726ded89a66fb3c2da 100644 GIT binary patch delta 21 ccmZoMXffFEiHXC)+(1Xc$iQ;*FD5Qg08LW{X#fBK delta 21 ccmZoMXffFEiHXC+$XG|g$k=%EFD5Qg08I4;U;qFB From 11a133aee2cbb886442aac00a85c6a55155bc6a1 Mon Sep 17 00:00:00 2001 From: lijunhuayc Date: Mon, 16 Mar 2015 18:01:01 +0800 Subject: [PATCH 39/56] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=EF=BC=81~~?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- command/lijunhuayc/readme.md | 53 +++++-------------- .../resource/command/ClientRole.java | 20 +++---- .../command/ConcreteCommandImpl1.java | 8 ++- .../command/ConcreteCommandImpl2.java | 8 ++- .../resource/command/InvokerRole.java | 23 ++++---- .../lijunhuayc/resource/command/MainTest.java | 4 -- .../resource/command/PeopleBean.java | 37 +++++++------ .../resource/command/ReceiverRole.java | 25 ++++++--- 8 files changed, 80 insertions(+), 98 deletions(-) diff --git a/command/lijunhuayc/readme.md b/command/lijunhuayc/readme.md index 963f8cb..5d90db2 100644 --- a/command/lijunhuayc/readme.md +++ b/command/lijunhuayc/readme.md @@ -33,7 +33,8 @@ Android设计模式源码解析之命令模式 ## 3. 模式的简单实现 ### 简单实现的介绍 命令模式其实就是对命令进行封装,将命令请求者和命令执行者的责任分离开来实现松耦合。 -`阐述一下你的示例要实现的功能` +这里我们通过一个简单的实例来剖析一下命令模式:命令接收者ReceiverRole拥有一个PeopleBean类型成员,通过Invoker发出不同的命令来修改PeopleBean的相对应的属性,具体命令实现类ConcreteCommandImpl1执行修改年龄命令,ConcreteCommandImpl2执行修改姓名的命令等等,ClientRole负责组装各个部分。 +例子代码如下(resource目录下也可以查看)。 ### 实现源码 @@ -337,13 +338,6 @@ public class Thread implements Runnable { Runnable target; private static int count = 0; - /** - * Starts the new Thread of execution. The run() method of - * the receiver will be called by the receiver Thread itself (and not the - * Thread calling start()). - * @throws IllegalThreadStateException if the Thread has been started before - * @see Thread#run - */ public synchronized void start() { if (hasBeenStarted) { throw new IllegalThreadStateException("Thread already started."); // TODO Externalize? @@ -397,10 +391,6 @@ bool dvmCreateInterpThread(Object* threadObj, int reqStackSize){ } -/* - * Alloc and initialize a Thread struct. - * Does not create any objects, just stuff on the system (malloc) heap. - */ static Thread* allocThread(int interpStackSize) { Thread* thread; @@ -416,17 +406,13 @@ static Thread* allocThread(int interpStackSize) 接下来在12行通过pthread_create创建pthread线程,并让这个线程start,这样就会进入该线程的thread entry运行,下来我们来看新线程的thread entry方法 interpThreadStart,同样只列出关键的地方: ``` -/* - * pthread entry function for threads started from interpreted code. - */ +//pthread entry function for threads started from interpreted code. static void* interpThreadStart(void* arg){ Thread* self = (Thread*) arg; std::string threadName(dvmGetThreadName(self)); setThreadName(threadName.c_str()); - /* - * Finish initializing the Thread struct. - */ + //Finish initializing the Thread struct. dvmLockThreadList(self); prepareThread(self); @@ -440,38 +426,24 @@ static void* interpThreadStart(void* arg){ */ self->jniEnv = dvmCreateJNIEnv(self); - /* - * Change our state so the GC will wait for us from now on. If a GC is - * in progress this call will suspend us. - */ + //修改状态为THREAD_RUNNING dvmChangeStatus(self, THREAD_RUNNING); - /* - * Execute the "run" method. - * At this point our stack is empty, so somebody who comes looking for - * stack traces right now won't have much to look at. This is normal. - */ + //执行run方法 Method* run = self->threadObj->clazz->vtable[gDvm.voffJavaLangThread_run]; + JValue unused; ALOGV("threadid=%d: calling run()", self->threadId); assert(strcmp(run->name, "run") == 0); dvmCallMethod(self, run, self->threadObj, &unused); ALOGV("threadid=%d: exiting", self->threadId); - /* - * Remove the thread from various lists, report its death, and free - * its resources. - */ + + //移出线程并释放资源 dvmDetachCurrentThread(); return NULL; } -/* - * Finish initialization of a Thread struct. - * This must be called while executing in the new thread, but before the - * thread is added to the thread list. - * NOTE: The threadListLock must be held by the caller (needed for - * assignThreadId()). - */ +//Finish initialization of a Thread struct. static bool prepareThread(Thread* thread){ assignThreadId(thread); thread->handle = pthread_self(); @@ -479,9 +451,8 @@ static bool prepareThread(Thread* thread){ setThreadSelf(thread); return true; } -/* - * Explore our sense of self. Stuffs the thread pointer into TLS. - */ + +//Explore our sense of self. Stuffs the thread pointer into TLS. static void setThreadSelf(Thread* thread){ int cc; cc = pthread_setspecific(gDvm.pthreadKeySelf, thread); diff --git a/command/lijunhuayc/resource/command/ClientRole.java b/command/lijunhuayc/resource/command/ClientRole.java index 74b61bf..a942154 100644 --- a/command/lijunhuayc/resource/command/ClientRole.java +++ b/command/lijunhuayc/resource/command/ClientRole.java @@ -9,28 +9,24 @@ public class ClientRole { /** - * @Description: 组装操作 + * @Description: * @author (ljh) @date 2015-3-16 上午11:13:06 * @return void */ public void assembleAction() { ReceiverRole receiverRole1 = new ReceiverRole();//创建一个命令接收者 Command command1 = new ConcreteCommandImpl1(receiverRole1);//创建一个命令的具体实现对象,并指定命令接收者 + Command command2 = new ConcreteCommandImpl2(receiverRole1); - ReceiverRole receiverRole2 = new ReceiverRole(new PeopleBean(9999, "神仙")); - Command command2 = new ConcreteCommandImpl2(receiverRole2); - - //PS:command1 修改people为(18, "西北狼") - //PS:command2 修改people为(35, "lijunhuayc") - + //PS:command1 修改people 年龄 + //PS:command2 修改people 姓名 + //PS:command23修改people 年龄和姓名 + InvokerRole invokerRole = new InvokerRole();//创建一个命令调用者 invokerRole.setCommand1(command1);//为调用者指定命令对象1 invokerRole.setCommand2(command2);//为调用者指定命令对象2 - invokerRole.invoke(null);//发起调用命令请求 - - ReceiverRole receiverRole3 = new ReceiverRole(new PeopleBean(9999, "神仙")); - Command command3 = new ConcreteCommandImpl3(receiverRole2); - invokerRole.invoke(command3);//发起调用命令请求 + invokerRole.invoke(0);//发起调用命令请求 + invokerRole.invoke(1);//发起调用命令请求 } diff --git a/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java b/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java index d07cc1c..e7e894e 100644 --- a/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java +++ b/command/lijunhuayc/resource/command/ConcreteCommandImpl1.java @@ -1,7 +1,7 @@ package com.command; /** - * @Desc: 命令接口的实现类[具体命令角色] + * @Desc: 更新年龄的命令类[具体命令角色] * @author ljh * @date 2015-3-16 上午11:04:51 */ @@ -17,12 +17,12 @@ public void execute() { /* * 可以加入命令排队等等,未执行的命令支持redo操作 */ - receiverRole1.opAction(18, "西北狼");//执行具体的命令操作 + receiverRole1.opActionUpdateAge(1001);//执行具体的命令操作 } @Override public void undo() { - receiverRole1.rollBack();//执行具体的撤销回滚操作 + receiverRole1.rollBackAge();//执行具体的撤销回滚操作 } @Override @@ -30,6 +30,4 @@ public void redo() { //在命令执行前可以修改命令的执行 } - - } diff --git a/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java b/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java index 433ec3a..ec8aee8 100644 --- a/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java +++ b/command/lijunhuayc/resource/command/ConcreteCommandImpl2.java @@ -1,7 +1,7 @@ package com.command; /** - * @Desc: 命令接口的实现类[具体命令角色] + * @Desc: 更新姓名的命令类[具体命令角色] * @author ljh * @date 2015-3-16 上午11:04:51 */ @@ -17,12 +17,12 @@ public void execute() { /* * 可以加入命令排队等等,未执行的命令支持redo操作 */ - receiverRole1.opAction(35, "lijunhuayc");//执行具体的命令操作 + receiverRole1.opActionUpdateName("lijunhuayc");//执行具体的命令操作 } @Override public void undo() { - receiverRole1.rollBack();//执行具体的撤销回滚操作 + receiverRole1.rollBackName();//执行具体的撤销回滚操作 } @Override @@ -30,6 +30,4 @@ public void redo() { //在命令执行前可以修改命令的执行 } - - } diff --git a/command/lijunhuayc/resource/command/InvokerRole.java b/command/lijunhuayc/resource/command/InvokerRole.java index d43e32c..67c9576 100644 --- a/command/lijunhuayc/resource/command/InvokerRole.java +++ b/command/lijunhuayc/resource/command/InvokerRole.java @@ -18,16 +18,21 @@ public void setCommand2(Command command2) { this.command2 = command2; } - public void invoke(Command command) { - //根据具体情况选择执行某些命令 - if(null != command){ - command.execute(); - return; + /** + * @Description: + * @author (ljh) @date 2015-3-16 下午1:40:54 + * @param args 0执行正常命令,1执行回滚命令 + * @return void + */ + public void invoke(int args) { + //可以根据具体情况选择执行某些命令 + if(args == 0){ + command1.execute(); + command2.execute(); + }else if(args == 1){ + command1.undo(); + command2.undo(); } - command1.execute(); - command2.execute(); } - - } diff --git a/command/lijunhuayc/resource/command/MainTest.java b/command/lijunhuayc/resource/command/MainTest.java index 9a34cf6..8f258eb 100644 --- a/command/lijunhuayc/resource/command/MainTest.java +++ b/command/lijunhuayc/resource/command/MainTest.java @@ -1,12 +1,8 @@ package com.command; - public class MainTest { - public static void main(String[] args) { ClientRole client = new ClientRole(); client.assembleAction(); - } - } diff --git a/command/lijunhuayc/resource/command/PeopleBean.java b/command/lijunhuayc/resource/command/PeopleBean.java index 81a6c33..e0ae8e5 100644 --- a/command/lijunhuayc/resource/command/PeopleBean.java +++ b/command/lijunhuayc/resource/command/PeopleBean.java @@ -8,40 +8,47 @@ public class PeopleBean { private int age = -1; //年龄 private String name = "NULL"; //姓名 - public PeopleBean() { } public PeopleBean(int age, String name) { this.age = age; this.name = name; } - public void update(int age, String name) { this.age = age; this.name = name; } - + public void update(int age) { + this.age = age; + } + public void update(String name) { + this.name = name; + } /** * @return 返回一个PeopleBean的克隆对象 */ protected PeopleBean clone(){ return new PeopleBean(age, name); } + @Override + public String toString() { + return " 【年龄:" + age + "\t姓名:" + name + "】"; + } - /** - * @Description: 还原操作 - * @author (ljh) @date 2015-3-16 上午11:45:23 - * @param cache - * @return void - */ - protected void undo(PeopleBean cache) { - this.age = cache.age; - this.name = cache.name; + public int getAge() { + return age; } - @Override - public String toString() { - return " 【姓名:" + name + "\t年龄:" + age + "】\n"; + public void setAge(int age) { + this.age = age; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; } } diff --git a/command/lijunhuayc/resource/command/ReceiverRole.java b/command/lijunhuayc/resource/command/ReceiverRole.java index a21f346..b9bbad5 100644 --- a/command/lijunhuayc/resource/command/ReceiverRole.java +++ b/command/lijunhuayc/resource/command/ReceiverRole.java @@ -23,10 +23,17 @@ public ReceiverRole(PeopleBean people) { * @author (ljh) @date 2015-3-16 上午11:07:32 * @return void */ - public void opAction(int age, String name) { - peopleCache = people.clone();//缓存people - people.update(age, name); - System.out.println("执行命令后:"+people.toString()); + //修改年龄 + public void opActionUpdateAge(int age) { + System.out.println("执行命令前:"+people.toString()); + this.people.update(age); + System.out.println("执行命令后:"+people.toString()+"\n"); + } + //修改姓名 + public void opActionUpdateName(String name) { + System.out.println("执行命令前:"+people.toString()); + this.people.update(name); + System.out.println("执行命令后:"+people.toString()+"\n"); } /** @@ -34,9 +41,13 @@ public void opAction(int age, String name) { * @author (ljh) @date 2015-3-16 上午11:34:41 * @return void */ - public void rollBack() { - people.undo(peopleCache); - System.out.println("命令回滚后:"+people.toString()); + public void rollBackAge() { + people.setAge(peopleCache.getAge()); + System.out.println("命令回滚后:"+people.toString()+"\n"); + } + public void rollBackName() { + people.setName(peopleCache.getName()); + System.out.println("命令回滚后:"+people.toString()+"\n"); } } From 1d9fae64eae9ae1a45ac2883f1b83af825665f07 Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Mon, 16 Mar 2015 18:04:41 +0800 Subject: [PATCH 40/56] review command, again --- command/lijunhuayc/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/command/lijunhuayc/readme.md b/command/lijunhuayc/readme.md index 5d90db2..1246960 100644 --- a/command/lijunhuayc/readme.md +++ b/command/lijunhuayc/readme.md @@ -264,7 +264,7 @@ ClientRole.java public void assembleAction() { //创建一个命令接收者 ReceiverRole receiverRole1 = new ReceiverRole(); //创建一个命令的具体实现对象,并指定命令接收者 - Command command1 = new ConcreteCommandImpl1(receiverRole1); Command command2 = new ConcreteCommandImpl2(receiverRole1); + Command command1 = new ConcreteCommandImpl1(receiverRole1); Command command2 = new ConcreteCommandImpl2(receiverRole1); InvokerRole invokerRole = new InvokerRole();//创建一个命令调用者 invokerRole.setCommand1(command1);//为调用者指定命令对象1 @@ -488,4 +488,4 @@ static void setThreadSelf(Thread* thread){ ####缺点 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。 -比如上面的PeopleBean的属性增加,Receiver针对PeopleBean一个属性一个执行方法,一个Command的实现可以调用Receiver的一个执行方法,由此得需要设计多少个具体命令类呀呀呀呀呀呀呀呀!! +比如上面的PeopleBean的属性增加,Receiver针对PeopleBean一个属性一个执行方法,一个Command的实现可以调用Receiver的一个执行方法,由此得需要设计多少个具体命令类呀!! From 97e10bc7ddc7ddfa93d186703d9d90e9bebc438d Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Sun, 22 Mar 2015 12:10:32 +0800 Subject: [PATCH 41/56] update --- README.md | 6 +- bridge/shen0834/readme.md | 250 ++++++++++++++++++++++++++++++++++---- 2 files changed, 226 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 1edbaa3..022985a 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,10 @@ | [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | | [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 完成 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 完成 | -| [工厂方法模式](factory-method/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | -| [抽象工厂模式](abstract-factory/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 撒丫子赶稿中 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | | [命令模式](command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 待审核 | -| [桥接模式](bridge/shen0834) | [shen0834](https://github.com/shen0834)| 撒丫子赶稿中 | -| [原型模式](prototype/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 待审核 | +| [桥接模式](bridge/shen0834) | [shen0834](https://github.com/shen0834)| 完成 | +| [原型模式](prototype/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | diff --git a/bridge/shen0834/readme.md b/bridge/shen0834/readme.md index 4bd38b2..9942db3 100644 --- a/bridge/shen0834/readme.md +++ b/bridge/shen0834/readme.md @@ -4,55 +4,253 @@ Android设计模式源码解析之${模式名} > Android系统版本: ${系统版本号,例如 4.2.1} > 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 +## 模式介绍 -`复制一份到自己的项目文件夹下,然后根据自己项目替换掉 ${} 内容,删掉本行及上面两行。` - -该任务不仅要用java写出该模式的一个简单示例,还有分析该模式在Android源码中的应用,可以参考[Mr.Simple的单例模式](singleton/mr.simple/readme.md)、[Mr.Simple的观察者模式](observer/mr.simple/readme.md)。 - - -## 1. 模式介绍 - -### 模式的定义 -`模式的一句话定义` +### 模式的定义 +将抽象部分与实现部分分离,使它们都可以独立的变化。 ### 模式的使用场景 - - +* 如果一个系统需要在构件的抽象化角色和具体化角色之间添加更多的灵活性,避免在两个层次之间建立静态的联系。 +* 设计要求实现化角色的任何改变不应当影响客户端,或者实现化角色的改变对客户端是完全透明的。 +* 需要跨越多个平台的图形和窗口系统上。 +* 一个类存在两个独立变化的维度,且两个维度都需要进行扩展。 -## 2. UML类图 -`这里是该设计模式的经典UML图` +### UML类图 + +![uml](http://img.blog.csdn.net/20150322120730408) ### 角色介绍 -`对UML图中的各个角色进行介绍` +* 抽象化(Abstraction)角色:抽象化给出的定义,并保存一个对实现化对象的引用。 +修正抽象化(Refined Abstraction)角色:扩展抽象化角色,改变和修正父类对抽象化的定义。 +* 实现化(Implementor)角色:这个角色给出实现化角色的接口,但不给出具体的实现。必须指出的是,这个接 口不一定和抽象化角色的接口定义相同,实际上,这两个接口可以非常不一样。实现化角色应当只给出底层操作,而抽象化角色应当只给出基于底层操作的更高一层的操作。 +* 具体实现化(ConcreteImplementor)角色:这个角色给出实现化角色接口的具体实现。 +## 模式的简单实现 +### 简单实现的介绍 -## 3. 模式的简单实现 -### 简单实现的介绍 -`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` +其实Java的虚拟机就是一个很好的例子,在不同平台平台上,用不同的虚拟机进行实现,这样只需把Java程序编译成符合虚拟机规范的文件,且只用编译一次,便在不同平台上都能工作。 但是这样说比较抽象,用一个简单的例子来实现bridge模式。 -### 实现源码 -`上述案例的源码实现` + 编写一个程序,使用两个绘图的程序的其中一个来绘制矩形或者原型,同时,在实例化矩形的时候,它要知道使用绘图程序1(DP1)还是绘图程序2(DP2)。 +(ps:假设dp1和dp2的绘制方式不一样,它们是用不同方式进行绘制,示例代码,不讨论过多细节) -### 总结 -`对上述的简单示例进行总结说明` +### 实现源码 +```java + 首先是两个绘图程序dp1,dp2 +//具体的绘图程序类dp1 +public class DP1 { + + public void draw_1_Rantanle(){ + System.out.println("使用DP1的程序画矩形"); + } + + public void draw_1_Circle(){ + System.out.println("使用DP1的程序画圆形"); + } +} +//具体的绘图程序类dp2 +public class DP2 { + public void drawRantanle(){ + System.out.println("使用DP2的程序画矩形"); + } + + public void drawCircle(){ + System.out.println("使用DP2的程序画圆形"); + } + +} +接着​抽象的形状Shape和两个派生类:矩形Rantanle和圆形Circle +//抽象化角色Abstraction +abstract class Shape { + //持有实现的角色Implementor(作图类) + protected Drawing myDrawing; + + public Shape(Drawing drawing) { + this.myDrawing = drawing; + } + + abstract public void draw(); + + //保护方法drawRectangle + protected void drawRectangle(){ + //this.impl.implmentation() + myDrawing.drawRantangle(); + } + + //保护方法drawCircle + protected void drawCircle(){ + //this.impl.implmentation() + myDrawing.drawCircle(); + } +} +//修正抽象化角色Refined Abstraction(矩形) +public class Rantangle extends Shape{ + public Rantangle(Drawing drawing) { + super(drawing); + } + + @Override + public void draw() { + drawRectangle(); + } +} +//修正抽象化角色Refined Abstraction(圆形) +public class Circle extends Shape { + public Circle(Drawing drawing) { + super(drawing); + } + @Override + public void draw() { + drawCircle(); + } +} +最后,我们的实现绘图的Drawing和分别实现dp1的V1Drawing和dp2的V2Drawing +//实现化角色Implementor +//implmentation两个方法,画圆和画矩形 +public interface Drawing { + public void drawRantangle(); + public void drawCircle(); +} +//具体实现化逻辑ConcreteImplementor +//实现了接口方法,使用DP1进行绘图 +public class V1Drawing implements Drawing{ + + DP1 dp1; + + public V1Drawing() { + dp1 = new DP1(); + } + @Override + public void drawRantangle() { + dp1.draw_1_Rantanle(); + } + @Override + public void drawCircle() { + dp1.draw_1_Circle(); + } +} +//具体实现化逻辑ConcreteImplementor +//实现了接口方法,使用DP2进行绘图 +public class V2Drawing implements Drawing{ + DP2 dp2; + + public V2Drawing() { + dp2 = new DP2(); + } + + @Override + public void drawRantangle() { + dp2.drawRantanle(); + } + @Override + public void drawCircle() { + dp2.drawCircle(); + } +} +``` + ​在这个示例中,图形Shape类有两种类型,圆形和矩形,为了使用不同的绘图程序绘制图形,把实现的部分进行了分离,构成了Drawing类层次结构,包括V1Drawing和V2Drawing。在具体实现类中,V1Drawing控制着DP1程序进行绘图,V2Drawing控制着DP2程序进行绘图,以及保护的方法drawRantangle,drawCircle(Shape类中) 。 ## Android源码中的模式实现 -`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` +在Android中也运用到了Bridge模式,我们使用很多的ListView和BaseAdpater其实就是Bridge模式的运行,很多人会问这个不是Adapter模式,接下来根据源码来分析。 - +首先ListAdapter.java: + +```java +public interface ListAdapter extends Adapter{ + //继承自Adapter,扩展了自己的两个实现方法 + public boolean areAllItemsEnabled(); + boolean isEnabled(int position); +} +``` + +这里先来看一下父类AdapterView。 + +```java +public abstract class AdapterView extends ViewGroup { + //这里需要一个泛型的Adapter + public abstract T getAdapter(); + public abstract void setAdapter(T adapter); +} +``` + +接着来看ListView的父类AbsListView,继承自AdapterView + +```java +public abstract class AbsListView extends AdapterView + //继承自AdapterView,并且指明了T为ListAdapter + /** + * The adapter containing the data to be displayed by this view + */ + ListAdapter mAdapter; + //代码省略 + //这里实现了setAdapter的方法,实例了对实现化对象的引用 + public void setAdapter(ListAdapter adapter) { + //这的adapter是从子类传入上来,也就是listview,拿到了具体实现化的对象 + if (adapter != null) { + mAdapterHasStableIds = mAdapter.hasStableIds(); + if (mChoiceMode != CHOICE_MODE_NONE && mAdapterHasStableIds && + mCheckedIdStates == null) { + mCheckedIdStates = new LongSparseArray(); + } + } + if (mCheckStates != null) { + mCheckStates.clear(); + } + if (mCheckedIdStates != null) { + mCheckedIdStates.clear(); + } + } +``` + +大家都知道,构建一个listview,adapter中最重要的两个方法,getCount()告知数量,getview()告知具体的view类型,接下来看看AbsListView作为一个视图的集合是如何来根据实现化对象adapter来实现的具体的view呢? + +```java + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + + //省略代码, + //这里在加入window的时候,getCount()确定了集合的个数 + mDataChanged = true; + mOldItemCount = mItemCount; + mItemCount = mAdapter.getCount(); + } + } +``` + +接着来看 + +```java + View obtainView(int position, boolean[] isScrap) { + //代码省略 + ​//这里根据位置显示具体的view,return的child是从持有的实现对象mAdapter里面的具体实现的 + ​//方法getview来得到的。 + final View child = mAdapter.getView(position, scrapView, this); + //代码省略 + return child; + } +``` + + 接下来在ListView中,onMeasure调用了obtainView来确定宽高,在扩展自己的方法来排列这些view。知道了 + +这些以后,我们来画一个简易的UML图来看下: + +![uml](http://img.blog.csdn.net/20150322120809221) + +对比下GOF的上图,是不是发现很像呢?实际上最开始研究Adapter模式的时候,越看越不对啊,于是整理结构,画了UML发现这更像是一个bridge模式,那时候对设计模式也是模模糊糊的,于是静下来研究。抽象化的角色一个视图的集合AdapterView,它扩展了AbsListView,AbsSpinner,接下来他们分别扩展了ListView,GridView,Spinner,Gallery,用不同方式来展现这些ItemViews,我们继续扩展类似ListView的PulltoRefreshView等等。而实现化角色Adapter扩展了ListAdpater,SpinnerAdapter,接着具体的实现化角色BaseAdapter实现了他们,我们通过继承BaseAdapter又实现了我们各式各样的ItemView。 -## 4. 杂谈 -该模式的优缺点以及自己的一些感悟,非所有项目必须。 +## 杂谈 +这里就是Android工程师的牛X之处了,用一个bridge和adapter来解决了一个大的难题。试想一下,视图的排列方式是无穷尽,是人们每个人开发的视图也是无穷尽的。如果你正常开发,你需要多少类来完成呢?而Android把最常用用的展现方式全部都封装了出来,而在实现角色通过Adapter模式来应变无穷无尽的视图需要。抽象化了一个容器使用适配器来给容器里面添加视图,容器的形状(或理解为展现的方式)以及怎么样来绘制容器内的视图,你都可以独自的变化,双双不会干扰,真正的脱耦,就要最开始说的那样:“将抽象部分与实现部分分离,使它们都可以独立的变化。” -`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` +从上面的两个案例,我们可以看出,我们在两个解决方案中都用到bridge和adapter模式,那是因为我们必须使用给定的绘图程序(adapter适配器),绘图程序(adapter适配器)有已经存在的接口必须要遵循,因此需要使用Adapter进行适配,然后才能用同样的方式处理他们,他们经常一起使用,并且相似,但是Adapter并不是Bridge的一部分。 +### 优点与缺点 +实现与使用实现的对象解耦,提供了可扩展性,客户对象无需担心操作的实现问题。 如果你采用了bridge模式,在处理新的实现将会非常容易。你只需定义一个新的具体实现类,并且实现它就好了,不需要修改任何其他的东西。但是如果你出现了一个新的具体情况,需要对实现进行修改时,就得先修改抽象的接口,再对其派生类进行修改,但是这种修改只会存在于局部,并且这种修改将变化的英雄控制在局部,并且降低了出现副作用的风险,而且类之间的关系十分清晰,如何实现一目了然。 From c2da642832de4a377ed776839a5ac13cd42157ae Mon Sep 17 00:00:00 2001 From: "mr.simple" Date: Sun, 22 Mar 2015 12:13:21 +0800 Subject: [PATCH 42/56] update --- bridge/shen0834/readme.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bridge/shen0834/readme.md b/bridge/shen0834/readme.md index 9942db3..a83ee7c 100644 --- a/bridge/shen0834/readme.md +++ b/bridge/shen0834/readme.md @@ -1,8 +1,8 @@ -Android设计模式源码解析之${模式名} +Android设计模式源码解析之桥接模式 ==================================== -> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 ${模式名} 分析 -> Android系统版本: ${系统版本号,例如 4.2.1} -> 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 +> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 桥接模式 分析 +> Android系统版本: 4.2 +> 分析者:[shen0834](https://github.com/shen0834),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:完成 ## 模式介绍 @@ -29,7 +29,7 @@ Android设计模式源码解析之${模式名} ## 模式的简单实现 -### 简单实现的介绍 +### 介绍 其实Java的虚拟机就是一个很好的例子,在不同平台平台上,用不同的虚拟机进行实现,这样只需把Java程序编译成符合虚拟机规范的文件,且只用编译一次,便在不同平台上都能工作。 但是这样说比较抽象,用一个简单的例子来实现bridge模式。 From 46709c0a225a561369f7caa933c8cbe7f0f1b4fa Mon Sep 17 00:00:00 2001 From: tiny-times <3845845@qq.com> Date: Sun, 22 Mar 2015 14:38:27 +0800 Subject: [PATCH 43/56] Signed-off-by: tiny-times <3845845@qq.com> --- composite/tiny-times/readme.md | 210 +++++++++++++++++++++++++-------- 1 file changed, 158 insertions(+), 52 deletions(-) diff --git a/composite/tiny-times/readme.md b/composite/tiny-times/readme.md index 4bd38b2..0bbb3fd 100644 --- a/composite/tiny-times/readme.md +++ b/composite/tiny-times/readme.md @@ -1,58 +1,164 @@ -Android设计模式源码解析之${模式名} -==================================== -> 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 ${模式名} 分析 -> Android系统版本: ${系统版本号,例如 4.2.1} -> 分析者:[${分析者}](${分析者 Github 地址}),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 +本文为 Android设计模式源码中 组合模式 分析 +Android系统版本: 5.0 +分析者:Tiny-Times,分析状态:未完成,校对者:无,校对状态:未开始 +## 1\. 模式介绍 -`复制一份到自己的项目文件夹下,然后根据自己项目替换掉 ${} 内容,删掉本行及上面两行。` - -该任务不仅要用java写出该模式的一个简单示例,还有分析该模式在Android源码中的应用,可以参考[Mr.Simple的单例模式](singleton/mr.simple/readme.md)、[Mr.Simple的观察者模式](observer/mr.simple/readme.md)。 - - -## 1. 模式介绍 - -### 模式的定义 -`模式的一句话定义` +### 模式的定义 +        组合模式(Composite Pattern)又叫作部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。 GoF在《设计模式》一书中这样定义组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。使得用户对单个对象和组合对象的使用具有一致性。 ### 模式的使用场景 - - - -## 2. UML类图 -`这里是该设计模式的经典UML图` - -### 角色介绍 -`对UML图中的各个角色进行介绍` - - - - -## 3. 模式的简单实现 -### 简单实现的介绍 -`自己实现一个小型模式案例,通过这个案例让读者了解这个模式的一般应用` - -### 实现源码 -`上述案例的源码实现` - - -### 总结 -`对上述的简单示例进行总结说明` - - - - -## Android源码中的模式实现 -`分析源码中的模式实现,列出相关源码,以及使用该模式原因等` - - - - -## 4. 杂谈 -该模式的优缺点以及自己的一些感悟,非所有项目必须。 - - - -`写完相关内容之后到开发群告知管理员,管理员安排相关人员进行审核,审核通过之后即可。` +* 表示对象的部分-整体层次结构。 +* 从一个整体中能够独立出部分模块或功能的场景。 + +## 2\. UML类图 + +* * * + +![组合模式通用类图][1] + +### 角色分析 + +* Component抽象构件角色 :定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性。 +* Leaf叶子构件 : 叶子对象,其下再也没有其他的分支。 +* Composite树枝构件 :树枝对象,它的作用是组合树枝节点和叶子节点形成一个树形结构。 + +## 3\. 该模式的实现实例 + +* * * + +抽象构件 Component.java: + + public abstract class Component { + //个体和整体都具有的共享 + public void doSomething(){ + //业务逻辑 + } + } + + +树枝构件 Composite.java + + public class Composite extends Component { + //构件容器 + private ArrayList componentArrayList = new ArrayList(); + //增加一个叶子构件或树枝构件 + public void add(Component component){ + this.componentArrayList.add(component); + } + //删除一个叶子构件或树枝构件 + public void remove(Component component){ + this.componentArrayList.remove(component); + } + //获得分支下的所有叶子构件和树枝构件 + public ArrayList getChildren(){ + return this.componentArrayList; + } + } + + +树叶构件 Leaf.java + + public class Leaf extends Component { + + //可以覆写父类方法 + public void doSomething(){ + } + + } + + +场景类 Client.java + + public class Client { + public static void main(String[] args) { + //创建一个根节点 + Composite root = new Composite(); + root.doSomething(); + //创建一个树枝构件 + Composite branch = new Composite(); + //创建一个叶子节点 + Leaf leaf = new Leaf(); + //建立整体 + root.add(branch); + branch.add(leaf); + } + //通过递归遍历树 + public static void display(Composite root){ + for(Component c:root.getChildren()){ + if(c instanceof Leaf){ //叶子节点 + c.doSomething(); + }else{ //树枝节点 + display((Composite)c); + } + } + } + } + + +### 组合模式在Android源码中的应用 + +* * * + +**Adnroid系统中采用组合模式的组合视图类图:** + +![enter image description here][2] + +**具体实现代码** + +View.java + + public class View ....{ + //此处省略无关代码... + } + + +ViewGroup.java + + public abstract class ViewGroup extends View ...{ + + //增加子节点 + public void addView(View child, int index) { + + } + //删除子节点 + public void removeView(View view) { + + } + //查找子节点 + public View getChildAt(int index) { + try { + return mChildren[index]; + } catch (IndexOutOfBoundsException ex) { + return null; + } + } + } + + +## 4\. 注意事项 + +* * * + +使用组合模式组织起来的对象具有出色的层次结构,每当对顶层组合对象执行一个操作的时候,实际上是在对整个结构进行深度优先的节点搜索。但是这些优点都是用操作的代价换取的,比如顶级每执行一次 store.show 实际的操作就是整一颗树形结构的节点均遍历执行一次。 + +## 5\. 杂谈 + +* * * + +**优点** + +* 不破坏封装,整体类与局部类之间松耦合,彼此相对独立 。 +* 具有较好的可扩展性。 +* 支持动态组合。在运行时,整体对象可以选择不同类型的局部对象。 +* 整体类可以对局部类进行包装,封装局部类的接口,提供新的接口。 + +**缺点** + +* 整体类不能自动获得和局部类同样的接口。 +* 创建整体类的对象时,需要创建所有局部类的对象 。 + + [1]: http://belial.me/wp-content/uploads/2015/03/QQ截图20150318225518.png + [2]: http://belial.me/wp-content/uploads/2015/03/QQ截图20150315115212.png \ No newline at end of file From 872633bfb26cff5e8d1a4c94efb9db698fa55054 Mon Sep 17 00:00:00 2001 From: lvtea0105 Date: Sun, 22 Mar 2015 22:43:01 +0800 Subject: [PATCH 44/56] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 022985a..ad6d3ab 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,6 @@ | [代理模式](proxy/singwhatiwanna) | [singwhatiwanna](https://github.com/singwhatiwanna) | 完成 | | [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | -| [享元模式](flyweight/lvtea0105) | [lvtea0105](https://github.com/lvtea0105) | 撒丫子赶稿中 | | [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 完成 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 完成 | | [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | @@ -64,7 +63,6 @@ | 装饰模式 | [decorator](decorator) | | 外观模式 | [facade](facade) | | 工厂方法模式 | [factory-method](factory-method) | -| 享元模式 | [flyweight](flyweight) | | 解释器模式 | [interpreter](interpreter) | | 迭代器模式 | [iterator](iterator) | | 中介者模式 | [mediator](mediator) | From bf23b2e3002cfe8befbc52280ff63f063c3e5607 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Mon, 23 Mar 2015 11:05:34 +0800 Subject: [PATCH 45/56] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index ad6d3ab..6e83ba8 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ 样例大家可以参考[Mr.Simple的单例模式分析](singleton/mr.simple)。 +## 提示 +该开源库已经停止维护,该系列文章我们会根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,完善后的文稿将会编撰成书出版,以便帮助大家更系统的学习,此时更真心地希望大家能够给出完善建议,以便本书更贴近您的需求,联系邮箱为 : simplecoder.h@gmail.com,谢谢。 ## 任务表 ( 一期截止 2015.3.20 ) From 4b486a6e2d4bb711a7b60ae9a88e462b2879662f Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Mon, 23 Mar 2015 17:18:50 +0800 Subject: [PATCH 46/56] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6e83ba8..2c8ca7a 100644 --- a/README.md +++ b/README.md @@ -79,8 +79,8 @@ | 访问者模式 | [visitor](visitor) | ## 参考资料 -* [GOF的设计模式:可复用面向对象软件的基础](http://pan.baidu.com/s/1i3zjaIx) -* [设计模式之禅](http://pan.baidu.com/s/1sjjZCvj) -* [Java与模式](http://pan.baidu.com/s/1i3sxzyH) +* [GOF的设计模式:可复用面向对象软件的基础](http://item.jd.com/10057319.html) +* [设计模式之禅](http://item.jd.com/11414555.html) +* [Java与模式](http://item.jd.com/10094286.html) * [java-design-patterns](https://github.com/iluwatar/java-design-patterns) * [Java之美[从菜鸟到高手演变]之设计模式](http://blog.csdn.net/zhangerqing/article/details/8194653) From 6ac3eaab0b9aad92a1975b55544a66d7084f85ed Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Tue, 24 Mar 2015 16:47:32 +0800 Subject: [PATCH 47/56] Update readme.md --- chain-of-responsibility/AigeStudio/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chain-of-responsibility/AigeStudio/readme.md b/chain-of-responsibility/AigeStudio/readme.md index b5c6a49..453005e 100644 --- a/chain-of-responsibility/AigeStudio/readme.md +++ b/chain-of-responsibility/AigeStudio/readme.md @@ -50,7 +50,7 @@ public class SimpleResponsibility { } } ``` -谁敢说没用过上面这种结构体的站出来我保证不打屎他,没用过swith至少if-eles用过吧,if-eles都没用过你怎么知道github的……上面的这段代码其实就是一种最最简单的责任链模式,其根据request的值进行不同的处理。当然这只是个不恰当的例子来让大家尽快对责任链模式有个简单的理解,因为可能很多童鞋第一次听说这个模式,而人对未知事物总是恐惧的,为了消除大家的这种恐惧,我将大家最常见的code搬出来相信熟悉的代码对大家来说有一种亲切的感觉,当然我们实际应用中的责任链模式绝逼不是这么Mr.Simple,但是也不会复杂不到哪去。责任链模式,顾名思义,必定与责任Responsibility相关,其实质呢就像上面定义中说的那样一个请求(比如上面代码中的request值)沿着一条“链”(比如上面代码中我们的switch分支语句)传递,当某个处于“链”上的处理者(case定义的条件)处理它时完成处理。其实现实生活中关于责任者模式的例子数不胜数,最常见的就是工作中上下级之间的责任请求关系了。比如: +谁敢说没用过上面这种结构体的站出来我保证不打屎他,没用过swith至少if-else用过吧,if-else都没用过你怎么知道github的……上面的这段代码其实就是一种最最简单的责任链模式,其根据request的值进行不同的处理。当然这只是个不恰当的例子来让大家尽快对责任链模式有个简单的理解,因为可能很多童鞋第一次听说这个模式,而人对未知事物总是恐惧的,为了消除大家的这种恐惧,我将大家最常见的code搬出来相信熟悉的代码对大家来说有一种亲切的感觉,当然我们实际应用中的责任链模式绝逼不是这么Mr.Simple,但是也不会复杂不到哪去。责任链模式,顾名思义,必定与责任Responsibility相关,其实质呢就像上面定义中说的那样一个请求(比如上面代码中的request值)沿着一条“链”(比如上面代码中我们的switch分支语句)传递,当某个处于“链”上的处理者(case定义的条件)处理它时完成处理。其实现实生活中关于责任者模式的例子数不胜数,最常见的就是工作中上下级之间的责任请求关系了。比如: >程序猿狗屎运被派出去异国出差一周,这时候就要去申请一定的差旅费了,你心里小算一笔加上各种车马费估计大概要个两三万,于是先向小组长汇报申请,可是大于一千块小组长没权利批复,于是只好去找项目主管,项目主管一看妈蛋这么狠要这么多我只能批小于五千块的,于是你只能再跑去找部门经理,部门经理看了下一阵淫笑后说没法批我只能批小于一万的,于是你只能狗血地去跪求老总,老总一看哟!小伙子心忒黑啊!老总话虽如此但还是把钱批给你了毕竟是给公司办事,到此申请处理完毕,你也可以屁颠屁颠地滚了。 如果把上面的场景应用到责任链模式,那么我们的request请求就是申请经费,组长主管经理老总们就是一个个具体的责任人他们可以对请求做出处理但是他们只能在自己的责任范围内处理该处理的请求,而程序猿只是个底层狗请求者向责任人们发起请求…………苦逼的猿。 From 2374b1e67649d3b332cafc5d5baf7073c9c4dbb6 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Fri, 27 Mar 2015 16:02:12 +0800 Subject: [PATCH 48/56] Update README.md --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2c8ca7a..9e8605d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # Android源码设计模式分析开源项目 +## 提示 +**该开源库已经停止维护**,该系列文章我们会根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,**完善后的文稿将会编撰成书出版**,以便帮助大家更系统的学习,此时更真心地希望大家能够给出完善建议,以便本书更贴近您的需求,联系邮箱为 : simplecoder.h@gmail.com,谢谢。 + + ## 简述 该项目通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实际运用以及它适用的场景,避免在实际开发中的生搬硬套。如果你对面向对象的六大开发原则还不太熟悉,那么在学习模式之前先学习一下[面向对象的六大原则](oop-principles/oop-principles.md)是非常有必要的。 @@ -18,9 +22,6 @@ 样例大家可以参考[Mr.Simple的单例模式分析](singleton/mr.simple)。 -## 提示 -该开源库已经停止维护,该系列文章我们会根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,完善后的文稿将会编撰成书出版,以便帮助大家更系统的学习,此时更真心地希望大家能够给出完善建议,以便本书更贴近您的需求,联系邮箱为 : simplecoder.h@gmail.com,谢谢。 - ## 任务表 ( 一期截止 2015.3.20 ) | 模式名 | 分析者 | 状态 | From 32ca929421399d65e3aa7f0d847548a85b93d553 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Tue, 7 Apr 2015 11:17:21 +0800 Subject: [PATCH 49/56] Update README.md --- README.md | 56 +------------------------------------------------------ 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/README.md b/README.md index 9e8605d..34d85f8 100644 --- a/README.md +++ b/README.md @@ -7,21 +7,6 @@ ## 简述 该项目通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实际运用以及它适用的场景,避免在实际开发中的生搬硬套。如果你对面向对象的六大开发原则还不太熟悉,那么在学习模式之前先学习一下[面向对象的六大原则](oop-principles/oop-principles.md)是非常有必要的。 -**每一个模式在Android源码中可能有很多个实现,因此我们为每个模式创建一个文件夹,就是为了同一个模式可以有多个人分析,这样我们就可以从更多的源码中学习对应的模式,具体请参考[编写步骤](#steps)。我们的原则是通过分析这些源码不仅要学会设计模式本身,而且要通过学习该模式深入到Android源码层的实现,这样不仅学了设计模式,也增加了我们对于Android源码的了解。** - -**QQ交流群: 413864859,希望大家踊跃参与进来。** - - -## 编写步骤 -1. 填写[任务表](#schedule); -2. 在模式对应的文件夹下以你的用户名建立一个文件夹,例如我分析的是适配器模式,那么我在adapter目录下建立一个mr.simple文件夹; -3. 将template.md拷贝一份到adapter/mr.simple目录下,并且重命名为readme.md; -4. 所需图片统一放到你的用户名文件夹的images目录下,例如adapter/mr.simple/images; -5. 按照[template.md](template.md)的格式将模式分析的markdown文件编写完毕; -6. 提交本地修改,将本地的提交push线上。 - -样例大家可以参考[Mr.Simple的单例模式分析](singleton/mr.simple)。 - ## 任务表 ( 一期截止 2015.3.20 ) | 模式名 | 分析者 | 状态 | @@ -34,51 +19,12 @@ | [观察者模式](observer/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [策略模式](strategy/gkerison) | [GKerison](https://github.com/GKerison) | 完成 | | [代理模式](proxy/singwhatiwanna) | [singwhatiwanna](https://github.com/singwhatiwanna) | 完成 | -| [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | -| [装饰模式](decorator/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | | [迭代器模式](iterator/haoxiqiang) | [Haoxiqiang](https://github.com/Haoxiqiang)| 完成 | | [责任链模式](chain-of-responsibility/AigeStudio) | [AigeStudio](https://github.com/AigeStudio)| 完成 | -| [状态模式](state/Thinan) | [Thinan](https://www.github.com/Thinan)| 撒丫子赶稿中 | -| [命令模式](command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 待审核 | +| [命令模式](command/lijunhuayc) | [lijunhuayc](https://github.com/lijunhuayc)| 完成 | | [桥接模式](bridge/shen0834) | [shen0834](https://github.com/shen0834)| 完成 | | [原型模式](prototype/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | - - -## 目前无人认领的模式 -| 模式名 | -| ------------- | -| 中介者模式 | -| 备忘录模式 | -| 解释器模式 | -| 访问者模式 | - -## 模式与文件夹对应列表 -| 模式名 | 文件夹 | -| ------------- |:-------------:| -| 适配器模式 | [adapter](adapter) | -| 抽象工厂模式 | [abstract-factory](abstract-factory) | -| 桥接模式 | [bridge](bridge) | -| Builder模式 | [builder](builder) | -| 责任链模式 | [chain-of-responsibility](chain-of-responsibility) | -| 命令模式 | [command](command) | -| 组合模式 | [composite](composite) | -| 装饰模式 | [decorator](decorator) | -| 外观模式 | [facade](facade) | -| 工厂方法模式 | [factory-method](factory-method) | -| 解释器模式 | [interpreter](interpreter) | -| 迭代器模式 | [iterator](iterator) | -| 中介者模式 | [mediator](mediator) | -| 备忘录模式 | [memento](memento) | -| 观察者模式 | [observer](observer) | -| 原型模式 | [prototype](prototype) | -| 代理模式 | [proxy](proxy) | -| 单例模式 | [singleton](singleton) | -| 状态模式 | [state](state) | -| 策略模式 | [strategy](strategy) | -| 模板方法模式 | [template-method](template-method) | -| 访问者模式 | [visitor](visitor) | - ## 参考资料 * [GOF的设计模式:可复用面向对象软件的基础](http://item.jd.com/10057319.html) * [设计模式之禅](http://item.jd.com/11414555.html) From c252118eed90d3a2de7a46573f7fa62e014283b3 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Tue, 7 Apr 2015 12:31:59 +0800 Subject: [PATCH 50/56] Update readme.md --- builder/mr.simple/readme.md | 54 ------------------------------------- 1 file changed, 54 deletions(-) diff --git a/builder/mr.simple/readme.md b/builder/mr.simple/readme.md index 7a219d5..bb6f7ca 100644 --- a/builder/mr.simple/readme.md +++ b/builder/mr.simple/readme.md @@ -73,8 +73,6 @@ package com.dp.example.builder; /** * Apple电脑 - * @author mrsimple - * */ public class AppleComputer extends Computer { @@ -101,63 +99,11 @@ public class AppleComputer extends Computer { package com.dp.example.builder; -/** - * builder抽象类 - * - * @author mrsimple - * - */ -public abstract class Builder { - // 设置CPU核心数 - public abstract void buildCPU(int core); - - // 设置内存 - public abstract void buildRAM(int gb); - - // 设置操作系统 - public abstract void buildOs(String os); - - // 创建Computer - public abstract Computer create(); - -} - -package com.dp.example.builder; - -/** - * Apple电脑 - * @author mrsimple - * - */ -public class AppleComputer extends Computer { - - protected AppleComputer() { - - } - - @Override - public void setCPU(int core) { - mCpuCore = core; - } - - @Override - public void setRAM(int gb) { - mRamSize = gb; - } - - @Override - public void setOs(String os) { - mOs = os; - } - -} package com.dp.example.builder; /** * builder抽象类 - * - * @author mrsimple * */ public abstract class Builder { From 43eacc961e31d524ac714640f74de63dc15bc9d3 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Wed, 8 Apr 2015 08:48:07 +0800 Subject: [PATCH 51/56] Update readme.md --- adapter/mr.simple/readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/adapter/mr.simple/readme.md b/adapter/mr.simple/readme.md index 4250337..6a8835a 100644 --- a/adapter/mr.simple/readme.md +++ b/adapter/mr.simple/readme.md @@ -131,7 +131,7 @@ public class ObjectAdapter implements FiveVolt { ```java public class Test { public static void main(String[] args) { - ClassAdapter adapter = new ClassAdapter(); + ObjectAdapter adapter = new ObjectAdapter(new Volt220()); System.out.println("输出电压 : " + adapter.getVolt5()); } } @@ -388,4 +388,4 @@ ListView覆写了AbsListView中的layoutChilden函数,在该函数中根据布   在实现适配器功能的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。 ### 缺点 -* 过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。 \ No newline at end of file +* 过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。 From b4bfe48ae6e409b5617f7be330f288d772010dae Mon Sep 17 00:00:00 2001 From: bboyfeiyu Date: Tue, 21 Apr 2015 14:38:27 +0800 Subject: [PATCH 52/56] update --- .DS_Store | Bin 21508 -> 21508 bytes README.md | 2 - adapter/.DS_Store | Bin 6148 -> 6148 bytes adapter/mr.simple/.DS_Store | Bin 6148 -> 0 bytes adapter/mr.simple/readme.md | 391 ------------------ observer/.DS_Store | Bin 6148 -> 6148 bytes observer/mr.simple/.DS_Store | Bin 6148 -> 0 bytes observer/mr.simple/images/.DS_Store | Bin 6148 -> 0 bytes observer/mr.simple/images/image-1.png | Bin 100278 -> 0 bytes observer/mr.simple/images/image-2.png | Bin 84215 -> 0 bytes observer/mr.simple/images/subscriber.png | Bin 70649 -> 0 bytes observer/mr.simple/images/uml.png | Bin 11866 -> 0 bytes observer/mr.simple/readme.md | 306 -------------- prototype/.DS_Store | Bin 6148 -> 6148 bytes singleton/.DS_Store | Bin 6148 -> 6148 bytes singleton/mr.simple/.DS_Store | Bin 6148 -> 6148 bytes .../images/singleton-mr.simple-uml.png | Bin 31555 -> 46839 bytes 17 files changed, 699 deletions(-) delete mode 100644 adapter/mr.simple/.DS_Store delete mode 100644 adapter/mr.simple/readme.md delete mode 100644 observer/mr.simple/.DS_Store delete mode 100644 observer/mr.simple/images/.DS_Store delete mode 100644 observer/mr.simple/images/image-1.png delete mode 100644 observer/mr.simple/images/image-2.png delete mode 100644 observer/mr.simple/images/subscriber.png delete mode 100644 observer/mr.simple/images/uml.png delete mode 100644 observer/mr.simple/readme.md diff --git a/.DS_Store b/.DS_Store index 03e360c21bb79d85e5b1bf614e134166d987933b..73c28954995c755c8bfa17d56c46947abb03d1ed 100644 GIT binary patch delta 94 zcmZo!!Pv5baYK_Bhmoa;j)I}3;p75Q*Ujg}iWnJhPhKF@&m~@6ZDMYwqhM(Olu=+> szH;(E33?Uo6n0CF;13Me>7QDLU6OO;LMZe}<5s|)}oxER?0 diff --git a/README.md b/README.md index 022985a..6f439f3 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,6 @@ | [Builder模式](builder/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu)| 完成 | | [外观模式](facade/elsdnwn) | [elsdnwn](https://github.com/elsdnwn)、[Mr.Simple](https://github.com/bboyfeiyu)| 完成 | | [模板方法](template-method/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | -| [适配器模式](adapter/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | -| [观察者模式](observer/mr.simple) | [Mr.Simple](https://github.com/bboyfeiyu) | 完成 | | [策略模式](strategy/gkerison) | [GKerison](https://github.com/GKerison) | 完成 | | [代理模式](proxy/singwhatiwanna) | [singwhatiwanna](https://github.com/singwhatiwanna) | 完成 | | [组合模式](composite/tiny-times) | [tiny-times](https://github.com/tiny-times) | 撒丫子赶稿中 | diff --git a/adapter/.DS_Store b/adapter/.DS_Store index 1615c38a9356f11b3c7f95f3fa3be43bfae96b3d..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 100644 GIT binary patch delta 70 zcmZoMXfc=|#>AjHu~2NHo+1YW5HK<@2y8ZFzQ(fIf%z8GW_AvK4xj>{$am(+{342+ UKzW7)kiy9(Jj$D6L{=~Z03S{czyJUM delta 372 zcmZoMXfc=|#>B)qF;Q%yo}wrd0|Nsi1A_nqLncEmLjgk$Luyj_#>C}}^&lBepjZ)u z9z!v*Y;i$SPJR+l_D)hkPG)h5fx!(%CT12^Hg*n9PHs+aK7Q`l;Eeq8;F83W(qgB? zqG%8=Ah9GP3Ca%1&(DFg6O+O+Q_JH8M4a>UN)j{kQj5Tv>oZeQfofvHGxJjN%boH| z^HPdqf+2$8nJFb1U{j$292}e+obdt@)zv0O#ySc{#>TZe3f1Q32098RW(Kvj0#i6S zB-M@Wy_525Iy$?$dwN%_0(t-l7=fM#13@Saqm)+zSy=pE7F?8H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework-exchange/android_design_patterns_analysis) 中 适配器模式 分析 -> Android系统版本: 2.3 -> 分析者:[Mr.Simple](https://github.com/bboyfeiyu),分析状态:完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:完成 - - - -## 1. 模式介绍 -### 模式的定义 -适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 - -### 使用场景 -  用电源接口做例子,笔记本电脑的电源一般都是接受5V的电压,但是我们生活中的电线电压一般都是220V的输出。这个时候就出现了不匹配的状况,在软件开发中我们称之为接口不兼容,此时就需要适配器来进行一个接口转换。在软件开发中有一句话正好体现了这点:任何问题都可以加一个中间层来解决。这个层我们可以理解为这里的Adapter层,通过这层来进行一个接口转换就达到了兼容的目的。 - -## 2. UML类图 -   -  适配器模式也分两种,即类适配器模式、对象适配器模式,结构图如图1、图2。 -   - - - - - - - - -
图1图2
- -   如图所示,类适配器是通过实现Target接口以及继承Adaptee类来实现接口转换,而对象适配器模式则是通过实现Target接口和代理Adaptee的某个方法来实现。结构上略有不同。 - -### 角色介绍   -* 目标(Target)角色:这就是所期待得到的接口。注意:由于这里讨论的是类适配器模式,因此目标不可以是类。 -* 源(Adapee)角色:现在需要适配的接口。 -* 适配器(Adaper)角色:适配器类是本模式的核心。适配器把源接口转换成目标接口。显然,这一角色不可以是接口,而必须是具体类。 - - -## 3. 模式的简单实现 - - 在上述电源接口这个示例中,5V电压就是Target接口,220v电压就是Adaptee类,而将电压从220V转换到5V就是Adapter。 - -### 类适配器模式 - -```java -/** - * Target角色 - */ -public interface FiveVolt { - public int getVolt5(); -} - -/** - * Adaptee角色,需要被转换的对象 - */ -public class Volt220 { - public int getVolt220() { - return 220; - } -} - -// adapter角色 -public class ClassAdapter extends Volt220 implements FiveVolt { - - @Override - public int getVolt5() { - return 5; - } - -} -``` -  Target角色给出了需要的目标接口,而Adaptee类则是需要被转换的对象。Adapter则是将Volt220转换成Target的接口。对应的是Target的目标是要获取5V的输出电压,而Adaptee即正常输出电压是220V,此时我们就需要电源适配器类将220V的电压转换为5V电压,解决接口不兼容的问题。 - -```java -public class Test { - public static void main(String[] args) { - ClassAdapter adapter = new ClassAdapter(); - System.out.println("输出电压 : " + adapter.getVolt5()); - } -} -``` -  - -### 对象适配器模式 -  与类的适配器模式一样,对象的适配器模式把被适配的类的API转换成为目标类的API,与类的适配器模式不同的是,对象的适配器模式不是使用继承关系连接到Adaptee类,而是使用代理关系连接到Adaptee类。 -   -  从图2可以看出,Adaptee类 ( Volt220 ) 并没有getVolt5()方法,而客户端则期待这个方法。为使客户端能够使用Adaptee类,需要提供一个包装类Adapter。这个包装类包装了一个Adaptee的实例,从而此包装类能够把Adaptee的API与Target类的API衔接起来。Adapter与Adaptee是委派关系,这决定了适配器模式是对象的。 - -示例代码如下 : - -```java -/** - * Target角色 - */ -public interface FiveVolt { - public int getVolt5(); -} - -/** - * Adaptee角色,需要被转换的对象 - */ -public class Volt220 { - public int getVolt220() { - return 220; - } -} - -// 对象适配器模式 -public class ObjectAdapter implements FiveVolt { - - Volt220 mVolt220; - - public ObjectAdapter(Volt220 adaptee) { - mVolt220 = adaptee; - } - - public int getVolt220() { - return mVolt220.getVolt220(); - } - - @Override - public int getVolt5() { - return 5; - } - -} -``` -注意,这里为了节省代码,我们并没有遵循一些面向对象的基本原则。 - -使用示例 : - -```java -public class Test { - public static void main(String[] args) { - ClassAdapter adapter = new ClassAdapter(); - System.out.println("输出电压 : " + adapter.getVolt5()); - } -} -``` - -### 类适配器和对象适配器的权衡 - -  *  类适配器使用对象继承的方式,是静态的定义方式;而对象适配器使用对象组合的方式,是动态组合的方式。 - -  *  对于类适配器,由于适配器直接继承了Adaptee,使得适配器不能和Adaptee的子类一起工作,因为继承是静态的关系,当适配器继承了Adaptee后,就不可能再去处理Adaptee的子类了。对于对象适配器,一个适配器可以把多种不同的源适配到同一个目标。换言之,同一个适配器可以把源类和它的子类都适配到目标接口。因为对象适配器采用的是对象组合的关系,只要对象类型正确,是不是子类都无所谓。 - -  *  对于类适配器,适配器可以重定义Adaptee的部分行为,相当于子类覆盖父类的部分实现方法。对于对象适配器,要重定义Adaptee的行为比较困难,这种情况下,需要定义Adaptee的子类来实现重定义,然后让适配器组合子类。虽然重定义Adaptee的行为比较困难,但是想要增加一些新的行为则方便的很,而且新增加的行为可同时适用于所有的源。 - -  *  对于类适配器,仅仅引入了一个对象,并不需要额外的引用来间接得到Adaptee。对于对象适配器,需要额外的引用来间接得到Adaptee。 - -  建议尽量使用对象适配器的实现方式,多用合成/聚合、少用继承。当然,具体问题具体分析,根据需要来选用实现方式,最适合的才是最好的。 -   - -## Android ListView中的Adapter模式 -在开发过程中,ListView的Adapter是我们最为常见的类型之一。一般的用法大致如下: - -```java -// 代码省略 - ListView myListView = (ListView)findViewById(listview_id); - // 设置适配器 - myListView.setAdapter(new MyAdapter(context, myDatas)); - -// 适配器 -public class MyAdapter extends BaseAdapter{ - - private LayoutInflater mInflater; - List mDatas ; - - public MyAdapter(Context context, List datas){ - this.mInflater = LayoutInflater.from(context); - mDatas = datas ; - } - @Override - public int getCount() { - return mDatas.size(); - } - - @Override - public String getItem(int pos) { - return mDatas.get(pos); - } - - @Override - public long getItemId(int pos) { - return pos; - } - - // 解析、设置、缓存convertView以及相关内容 - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder = null; - // Item View的复用 - if (convertView == null) { - holder = new ViewHolder(); - convertView = mInflater.inflate(R.layout.my_listview_item, null); - // 获取title - holder.title = (TextView)convertView.findViewById(R.id.title); - convertView.setTag(holder); - } else { - holder = (ViewHolder)convertView.getTag(); - } - holder.title.setText(mDatas.get(position)); - return convertView; - } - - } -``` -这看起来似乎还挺麻烦的,看到这里我们不禁要问,ListView为什么要使用Adapter模式呢? -我们知道,作为最重要的View,ListView需要能够显示各式各样的视图,每个人需要的显示效果各不相同,显示的数据类型、数量等也千变万化。那么如何隔离这种变化尤为重要。 - -Android的做法是增加一个Adapter层来应对变化,将ListView需要的接口抽象到Adapter对象中,这样只要用户实现了Adapter的接口,ListView就可以按照用户设定的显示效果、数量、数据来显示特定的Item View。 -通过代理数据集来告知ListView数据的个数( getCount函数 )以及每个数据的类型( getItem函数 ),最重要的是要解决Item View的输出。Item View千变万化,但终究它都是View类型,Adapter统一将Item View输出为View ( getView函数 ),这样就很好的应对了Item View的可变性。 - -那么ListView是如何通过Adapter模式 ( 不止Adapter模式 )来运作的呢 ?我们一起来看一看。 -ListView继承自AbsListView,Adapter定义在AbsListView中,我们看一看这个类。 - -```java -public abstract class AbsListView extends AdapterView implements TextWatcher, - ViewTreeObserver.OnGlobalLayoutListener, Filter.FilterListener, - ViewTreeObserver.OnTouchModeChangeListener, - RemoteViewsAdapter.RemoteAdapterConnectionCallback { - - ListAdapter mAdapter ; - - // 关联到Window时调用的函数 - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - // 代码省略 - // 给适配器注册一个观察者,该模式下一篇介绍。 - if (mAdapter != null && mDataSetObserver == null) { - mDataSetObserver = new AdapterDataSetObserver(); - mAdapter.registerDataSetObserver(mDataSetObserver); - - // Data may have changed while we were detached. Refresh. - mDataChanged = true; - mOldItemCount = mItemCount - // 获取Item的数量,调用的是mAdapter的getCount方法 - mItemCount = mAdapter.getCount(); - } - mIsAttached = true; - } - - /** - * 子类需要覆写layoutChildren()函数来布局child view,也就是Item View - */ - @Override - protected void onLayout(boolean changed, int l, int t, int r, int b) { - super.onLayout(changed, l, t, r, b); - mInLayout = true; - if (changed) { - int childCount = getChildCount(); - for (int i = 0; i < childCount; i++) { - getChildAt(i).forceLayout(); - } - mRecycler.markChildrenDirty(); - } - - if (mFastScroller != null && mItemCount != mOldItemCount) { - mFastScroller.onItemCountChanged(mOldItemCount, mItemCount); - } - // 布局Child View - layoutChildren(); - mInLayout = false; - - mOverscrollMax = (b - t) / OVERSCROLL_LIMIT_DIVISOR; - } - - // 获取一个Item View - View obtainView(int position, boolean[] isScrap) { - isScrap[0] = false; - View scrapView; - // 从缓存的Item View中获取,ListView的复用机制就在这里 - scrapView = mRecycler.getScrapView(position); - - View child; - if (scrapView != null) { - // 代码省略 - child = mAdapter.getView(position, scrapView, this); - // 代码省略 - } else { - child = mAdapter.getView(position, null, this); - // 代码省略 - } - - return child; - } - } -``` -AbsListView定义了集合视图的框架,比如Adapter模式的应用、复用Item View的逻辑、布局Item View的逻辑等。子类只需要覆写特定的方法即可实现集合视图的功能,例如ListView。 - -ListView中的相关方法。 - -```java - @Override - protected void layoutChildren() { - // 代码省略 - - try { - super.layoutChildren(); - invalidate(); - // 代码省略 - // 根据布局模式来布局Item View - switch (mLayoutMode) { - case LAYOUT_SET_SELECTION: - if (newSel != null) { - sel = fillFromSelection(newSel.getTop(), childrenTop, childrenBottom); - } else { - sel = fillFromMiddle(childrenTop, childrenBottom); - } - break; - case LAYOUT_SYNC: - sel = fillSpecific(mSyncPosition, mSpecificTop); - break; - case LAYOUT_FORCE_BOTTOM: - sel = fillUp(mItemCount - 1, childrenBottom); - adjustViewsUpOrDown(); - break; - case LAYOUT_FORCE_TOP: - mFirstPosition = 0; - sel = fillFromTop(childrenTop); - adjustViewsUpOrDown(); - break; - case LAYOUT_SPECIFIC: - sel = fillSpecific(reconcileSelectedPosition(), mSpecificTop); - break; - case LAYOUT_MOVE_SELECTION: - sel = moveSelection(oldSel, newSel, delta, childrenTop, childrenBottom); - break; - default: - // 代码省略 - break; - } - - } - - // 从上到下填充Item View [ 只是其中一种填充方式 ] - private View fillDown(int pos, int nextTop) { - View selectedView = null; - - int end = (mBottom - mTop); - if ((mGroupFlags & CLIP_TO_PADDING_MASK) == CLIP_TO_PADDING_MASK) { - end -= mListPadding.bottom; - } - - while (nextTop < end && pos < mItemCount) { - // is this the selected item? - boolean selected = pos == mSelectedPosition; - View child = makeAndAddView(pos, nextTop, true, mListPadding.left, selected); - - nextTop = child.getBottom() + mDividerHeight; - if (selected) { - selectedView = child; - } - pos++; - } - - return selectedView; - } - - // 添加Item View - private View makeAndAddView(int position, int y, boolean flow, int childrenLeft, - boolean selected) { - View child; - - // 代码省略 - // Make a new view for this position, or convert an unused view if possible - child = obtainView(position, mIsScrap); - - // This needs to be positioned and measured - setupChild(child, position, y, flow, childrenLeft, selected, mIsScrap[0]); - - return child; - } - -``` -ListView覆写了AbsListView中的layoutChilden函数,在该函数中根据布局模式来布局Item View。Item View的个数、样式都通过Adapter对应的方法来获取,获取个数、Item View之后,将这些Item View布局到ListView对应的坐标上,再加上Item View的复用机制,整个ListView就基本运转起来了。 - -当然这里的Adapter并不是经典的适配器模式,但是却是对象适配器模式的优秀示例,也很好的体现了面向对象的一些基本原则。这里的Target角色和Adapter角色融合在一起,Adapter中的方法就是目标方法;而Adaptee角色就是ListView的数据集与Item View,Adapter代理数据集,从而获取到数据集的个数、元素。 - -通过增加Adapter一层来将Item View的操作抽象起来,ListView等集合视图通过Adapter对象获得Item的个数、数据元素、Item View等,从而达到适配各种数据、各种Item视图的效果。因为Item View和数据类型千变万化,Android的架构师们将这些变化的部分交给用户来处理,通过getCount、getItem、getView等几个方法抽象出来,也就是将Item View的构造过程交给用户来处理,灵活地运用了适配器模式,达到了无限适配、拥抱变化的目的。 - -## 杂谈 -### 优点 -* 更好的复用性 -  系统需要使用现有的类,而此类的接口不符合系统的需要。那么通过适配器模式就可以让这些功能得到更好的复用。 - -* 更好的扩展性 -  在实现适配器功能的时候,可以调用自己开发的功能,从而自然地扩展系统的功能。 - -### 缺点 -* 过多的使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是A接口,其实内部被适配成了B接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。 \ No newline at end of file diff --git a/observer/.DS_Store b/observer/.DS_Store index 1615c38a9356f11b3c7f95f3fa3be43bfae96b3d..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 100644 GIT binary patch delta 70 zcmZoMXfc=|#>AjHu~2NHo+1YW5HK<@2y8ZFzQ(fIf%z8GW_AvK4xj>{$am(+{342+ UKzW7)kiy9(Jj$D6L{=~Z03S{czyJUM delta 372 zcmZoMXfc=|#>B)qF;Q%yo}wrd0|Nsi1A_nqLncEmLjgk$Luyj_#>C}}^&lBepjZ)u z9z!v*Y;i$SPJR+l_D)hkPG)h5fx!(%CT12^Hg*n9PHs+aK7Q`l;Eeq8;F83W(qgB? zqG%8=Ah9GP3Ca%1&(DFg6O+O+Q_JH8M4a>UN)j{kQj5Tv>oZeQfofvHGxJjN%boH| z^HPdqf+2$8nJFb1U{j$292}e+obdt@)zv0O#ySc{#>TZe3f1Q32098RW(Kvj0#i6S zB-M@Wy_525Iy$?$dwN%_0(t-l7=fM#13@Saqm)+zSy=pE7F?8Wpeuv9Xmb2V2JqXhu!vnVpIx!p@Anz>x>1srN*_G8lwV$1wQRd!7uMDb7hXpW zz0^+!NzLz{WADUIJAtuJrR+{^KRAop!raObvpQkiE|BR8g)A3 zYGs(mtjx^|g{#%UFH|_=u10E!0b*d5fhFB_u>K$Y{QjR!q8>3o3@j7_JYVP55LzQBP#ZtTlss#K34M5jmrV%_KbP-TAP(uv-DFa_C8(HW8 diff --git a/observer/mr.simple/images/.DS_Store b/observer/mr.simple/images/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 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�KG+j2v8kZ7*IrDDkS*P7?^+R1k)zdC`(!x z80fb+6_EmeY`aM@mDKFUN_z=ud+S@x6 zd4qAzQovLYpWQloefW-BBQEoiW5*gZA{QYdm$c$Uf`(okyHhV|_KePTQ_uU|)2qg>k|LPHwT$Vh9wysaqi@ zzS3|-2uwf@4B{xn@DQA5I(gBdq0w6vMpxR{Ymv`^d3$VZ6qFFnI$w{93RlEsU7;bt zkT9B5dLXbrh_c~YwEfDieQT>&Cl`BGEc9oQdK)bxa8QPUJ^YUt$OlrdgIQNZ&=DDe01IsuGTI)JXUB_epSY5awZB8qfI+#iWa+l@f!G#Widyj|>sGMopYVv7DddTqke= zA0NVhL^S1CBD}c@;2O+9Tdr{*_PrUb^rsjV0eb)(XVQc7v_imbFW|tjUu-)r>*goQ zryp1<^JXRKocIf8O66D2pOAu@4veKiNs0`RNakfgM@JJXEBeFuWxbpp^6z?t4~W3# zQ-FeS#7qz-PBB3NSMhZZjyx?buLNRtsDi{OA*h8eudI=fpdcI!9*#MFpepC6g(ea^ z+uN}Q8I5y>V?NN_<%4v^z?x){(t@wAQxVz3vusKZ{Nra)@`)>vnbQF3F0N-_I}P#U zIk|Ubgvr@Tr_7ASx+qSxf4i(rX5hHk*&tw*%wpyxD3oBa=W^IFSl2de*8cPJPDi~)ezI*%gr~ckgN1yDITmfUMdmH2OuJ| zowRTwGIQ?R-rlKkemD}cr>9R9aiq9Z;F*DVm6~rDCL_xH=p7+SmeND_|z&R%l~dHD zh|TqEek2-97^^c5C@!4^i8WVt&--CMli-9v*~Y-NcD9WcK5-ZrkrClacs|VbOtvn< zlH-gYv|; zR>^`nGpwrcZ46_WY~5EQof*B9YB;V*I7xgs-X{vg6B^TSTyg!_NPiRM^Ys3T5ZD(J zcLI&(hjk5&7Reb87l(Rl&4jUrj6rujk(YoYuqhsMJ^K=}iM|kl{eir+F5_|%$tsm5 zu9js4==B&pt{;+pVH?;k-bX})$+YAISSwj#vU%^CXR6$@-E3b%T)6z@7dJ`}mW%%P zD@Ee%@D?A$f8(D|%DUz0YSi)ep40Np|2ibU{_SZ^Lh?$*LF>Gk0F6z5us)n zaO^&iC+{CFmfXTd9o&!Hm90h{r4@~G*DZ6@cta&2WSmOypQxYL>iuOQ@U?1$UGCL| zz>R{urq>n@k04}Yb2}tEr<&eU)C>u6$c*G@NEMbH`c&*6+jQ9hj9_y7dhC)v(g-{e z$PI8kr8Dow2Ce<(av?AgVj3i|IqwK$Khg+10tWkTDnWpVN`?jorNP|Wh{ep|a| z9{~vXjy6*G2=v(Qq78wY2m-#`<7x*R0yYG0ObB>^1ADSlxG{TUx7volM+^e?I`BvA zgWKJ`xgcOGv2L#KY4_$M1_2v^KVl!;?(WS6feAMw8UymF)@|D^cB*|5yFJ$f0uv(e z&4MUuAP)%BKK@$tX(B>*E$aNR2aM^XdtbOuTsL=LBiMTCr)dk{xwpqt`kOUwTqPDa ziF29BhwcNhC4?LD%^r9H&D!9vAjHqeM`S!VU32q(pE_3?fCmitof>k*L$xIGMI-X1AY-%0dOB>mB+Igaz|5 zu-&frZdK?z0|S%JTt~r_8MVw2U(!rx(t3iAdtFoY*`o+e@bQz9`<_3aCw&dYGBYVr zYN}c#G8i5M!vf`e34AF7vAW?GuCd!&F17$kab`_&6b?J{4-mSGo1W}Yhh%*~_LJwF z@T%`Cy`Amy-u^tPcESY=h=HTO2Z!^*17yd5)HHNSD9}0(E@4i>IU8DlXD@N$E(K^_ zi=#F=<*0n)Yu}Rl{@^~ujvx4e_;Kiv?#$WqlAm8F(a}+|bjd=A2)A64nh(vA%m;Oi zGx0oPg}$Qsjt=qY?2b<18Tfqo=yCNiO$T#4#EtdN%uGkUc`|=~wxp+8PS{Kxu7k$3 z(=|>D#t-8dOg`7P4aYH!OFC1I$!qePXV?0)@FBTJ^D)AuEbGxCZikPa(9;C6=gb;K z$O}ra#Q_hVOBXM|Nf$9%tP+MX%F+b*ac_%x=6lzB*XL&V@jiO|Bu@EglB~=$ znVUUF-3T$wa39GW_z(3f1c%z;T8>G}xEnS2{5^uF#j%-bf1%=W%9NrDU z5ngSJG;Xc%fbb7^+*dM z8xh?2xMErK>`1>~20<$-tK`L(cPR2Z;D`CS7hYB3mYkfZpko>36;)DIT`SvOd_$)k zbQc;D5-RWSJ&0pi<|4%oATKvy5T*3 z@-(JJzA|Ha@-T88JDw{~J^PZRrA^mkXkOj13ka13L=SO z!9-j}D+0J%6de;ohyl&Q37TE-=a- z48p`fA0T`W#9trqN&vze?l!vzCBLv;ya&T^1Y?kt)zr$F{7P_9e6aRjiGquxK_qSK zMj`k(y#VR}d?5AVtSip7y?O_wqZho~zaI`gmeALQKm0`;7~ zeA!~9EL3Bsg*M zl(YhoIG~p;U8KIE59AzHq-$<&k#zKp@T#h=kpl;h0Lgu%qOw}!33-D|JKlO%)~#74 zcipj7iQ2QzzoM`sqVGR=7%o@Q7r;0Nl^hD{ch<@bw8Tns-^jVdpk`fc7uC87Q-wCA6Idn|F z$EFQyW!khPIfSy=2TDmKN_XFRs}kln-`a(IjS6?ddd=$P8c$@ukr3JAIKYq-I|s1`Wx>;1U@I}=`&=_lG&01il2djotZI1W@TmQKyhscryS%S{WzM1fd|0R zDSQGr@Z9WKvh$sNa`9rBikrK3@0Tr`)~PS&H+H@Yg6Nb3Imc8{xCCP86VJS&aVvma zue`ns1fx>+9XJHh@igkrRN_!q-ypm9?3c2#3J`{kN+b^C9KpLz*}mf)J$!v8M9i08 z-Km4zw6z1ApWK;!XvCRNM%BpJp2FXCM=U&<&#l@vkSX3g9Kly^fFaW1RP{(rW^f`Iu zwYMdEPL`ZKS0Fog?N)Ao5Qs=(%4-`4jgd%*Y+w1p!}7w*Z^*BI`wR$9j}n>-g~hV% z`PXC}2nC()KmXEedfpYMFc(WJWErMSIfqY5enFv7YB+rKl&oB_R0-yL?;pfB8_z?j zf!x%)dPHEb2yJN}I@MI&DGfMSD!~Eq1EQtV*@XuIGLn^-=Hz&RKZilXjUzVsPckB`fbwf*(C5 zfEHoCmI`l+4N_cEDl3;QlG(Fng8QzMW^nt4rY03lmt&wUoIh6^t+VT)9jo57tdZmI>rke71ytiz|0QM@XNlr?TcX#j8syN+Y zpxDd5<>=E_|Ktnmp7`14UzH=rP6!b=JvCVt%*zHm)@wQv5w>IL;(35qmMok%TZtm! zf6Io|GH>o|eETIhWs{EMCpV_FAyepQWVCr`6!D}VAJ-QgC4dOTlNg}5iU49oK>Q8z z!`uRgQgKepJrSJa_2SA?*IU}V#M#lSK79vzx-by>q`s+B+Mu+m1-I_U+&CDVm>=H< zhc|$eS&m$W^UR{+i^?(RubLm8`75hxAjSsioVcd8K}A;%bRry2Gh`Um z66E0_=fi^>&z+DOhy>(%6wA2;M$wpJ9Ruqk-007lVjkzkJQ0H4{y7(>uV;$9lu(E& zMDECl2>JCB+oS^XZgM0d8bcYlH0S7aR?m56XIH28lXaWGdEmM8`4BBnfS{y9gpbz# zkwUVaL_orW^FwoVOg)YcVc=1#L?9Ewp$LovaXESFtVU79|K(#(N?~D%yt`)~2-QU( zZ4z(;D;4~vkf_qrQY9lJRd&4jE;#>5Yp#rM&N=<^r3-cHkpxHS)EoTsFSp_Fvv7$8 zF<~Hwr#|AhPi~VC958qPy?07xdJ6OmIXVSs#L+TrUo~J$BIW>`*%wMd46RP*@HeI; z#BW&-DM0&l1I~Zhr*Y@N>{Eb0mUQ~C9t^+$xj;t0q$Gs{p>XJR7r1P9oj5!DB?u*S zLFBD&?vXI)vj&ka&<_f*9%ziAv?7NUaOrkvpG#{RBpN5t)nSnL3_vjk1nTn(fF>Ja z=O8rFcI44@0+7fDcge+aoV<_-ju@-+?+xo$K?L22f!M5^?Ngt?@*0Q`>msoj zfCxkws781QN<8pE$qI2B&`yVtNJ;rMjkGWp;5YlsLfC;we=7Y!6(Q8Fb%8)f>!`p{jj{$iuK!qe4PJU#KA(2O9bBxQ8pqxTsZh5F^3|eZGvbT7aOYz zoD>X}U`PZB@$ouvB9WH)$nh9hpEvr=bQJ$o>kdSm4n+!)J`hMW4e`9ENS>B51IoHS zh{^L+BTfY6iHGq_3*;q|QjBH$c+Wo$QX0fiqsn>wwB#gJ0wpEJse*{}KlYP@lp0zp zh=^pIyT<|Hi3kiNIw7G!(h7-yh>`)07zQMcN16yA6^TeR&g@}369EsNU&Q_`T{2&i zfE4C*L&gyXnNYH^FRX`3G!lelq;p{9fpA{CYN_^{ZDSuf@21jlZuV^Dz!crvq3mLv zY4|?ua}}hY=H_Nq)EUv5Z6~o^Fn3T zkszFcAxXtRTHthwb7T@KD%wa8Nzl0bMFPUWe%&a+qag>WD?3;NZuPSt{alW`m?N7v zXUM#1fjH99Ast?RQsW&cM=v_%ctMK2$!rG;TRY} z(&Oxa#xY-h_AKTrX~B{jA0XB3Jy1$vAYe}1kF4Fuk0oJ{OD>%ZN*oS#4#qMTl-3e3 z=p(y!VIBBy|4@GTy>BX#7$hAF;A6e_6z@4s8R=NX4-*OZ1fI$=X~uhJ(p-z{)vDK& z!|9JFX~?{vOdmX@<<#ZzC!W>0E4B7SD3i`y-OKhA?WnF5ZL=5)GiDDdS2_)_!;$toq z2(iuEXF%qrgv#tB91iB!3rj9PnLclxtXe%!mMuRiPrr0Ra?9H!2J6RtJy3W-DF!Ai zy}DLFhs$+IYsxldn(|Cq5?Q`8W$?;4 z*L1G;O|D2IP;#@SV&dWN>ib@99n)#8CE{4EPc2^e#S*$0vJGSE6@@7~cfy2gu14l;&NuCqR4v2GJUj2$>UwWlW8&P~;Ql;TIumcM?)gkTypGow3)~jWS(YhpE*J?7n1zK)B)q>?l`Xz%Nk`Zlb_LR(meWu&_j zr_0R1V0j0ps(V9A92)K;r?K1wtrX_Nu>66-%4-nTNmXT1e6m6YQ{$wqu~r;|y|UtC zpOf&kC6d&+Uv68GCT*=<@>E`(tb+AbXjl-muf5V(2Lpp%oPY?#?LZ@fyn(nN7Bmhy zSaC+SQe1Z(0aF>mSE+3rUfGee*w`WA zm<-b@s|`va7;{M{xU)YHINIM=l3^X)j%RB)Pt?7e<2?tP8DJQCfcDg;UZ%anZFXt@ zSYO1wU#?p7vGQDL{EdvT?tS)%z(xe|#m(}>aPhr0MW#muNk)8#v|wKPZfT1&VS|Dr zB3Mq9)=O?tvqS<3Y3tmGKWsXb2+Wsbu|VDi#giitOG}BE1J6hY7si>wT}}yc1c?)x z*Qi(^^r;Hz1d`X*JAtf&5(q@?;~2%-uosY(yOIKdzzLxa$yhyK;$hrzIT-9pZ3zI^ zfn@;VDbBnzSEg|<%e>>&V;SfN5zbS-QRxYE40ID*>*77vt62^;#je4%+)?GZBr@@g z()6xva;ukV-0L=VxW=O?+MeMuc{3E4j_ba(52q0d4M$jpX@@D#HN7E9?(dk!j(rqBCsL{J`nXceOL>vt80~#%4P|LVyYWr?f$}MDJp|yRj{9&E2)*PwtktD5DHbj zL&fY6%wL^QC7;Bh%nevvhr(Whu^w9g_WN?8FI=Kvv)fU4M!Y)8q#70)`PhY&=-+|$ zy*`OW8EV)7?&}W@?*nagJeH6G(HO>;UTl)-SbiEA>LZ=;bmuy7+~0c|7@p!xKIIY| z@Z*HB>hn}C*FL#q!i^5ZUDq`3<($WwDwk^F<2P#UW~IPW9@jV~Hb}vE^KMl6Zhdln z=X%ewOn%-oxWBhzEd!dj-rfUc)UArZ%xBWNmqAId7;Csuukw*Xw zKdK;7=TtRdUW_e)L4J~2UN5JxAy8g{1=Fe-^6mK|$qsB>XdjR*84<95?UH(k;0fM- zy8EdYoR_xP{y<=Vplco0k&9bJj#i$PR3PwVg8A^g(kiI7wqDHy>t~~bzl+>_MO&L zTqDiPzn}&XnJ^KJii}iiGg@$QUAzr8&ulN(Pic%n%Pg*E)5e?qrA;)q_%*>Clz~e! z#&-Dvtg^Uyffi#di-D$~+(<$t()4LC#=v)Y;^`M;8P>$_zSG(i!S>LKYIfF4%g{t~ z+CT0P@My?EcEAtQgTdB(>KLr8+N1>^uLfdKKg{#GFu(1BQB*{@KkT9%uz!XrB}^(g zGv#iico=4+2K7pEbcp1)_Q)0}w?6m9hh^!)g;IX>X?g6&UzU5s706AOSAh&E@14D+j z!-K?~qPupI?`XV!3j0-Q1i;-q$w0hX>|o(W01n{eCr-mK0DFC*Eq@FK^0X4F#Nd8o z=We0F22B+y4yMeQF7NH$3sb}bwZr939PWf6g6xKkb#iio8V7K5LJ$l$F2a112t@;d zC!TsV0j=2G%-wt z0f-5w&z#fUH{8iY%Q3Y%##H8a&%TJ2f(SKfY-ns08b=Tg?f_nxD9g8zC-96j9_4Bu@}3tYGC!n_Of3y zfaElcG0RP+|MqnZ4y^1K(D4Nl#fHE<1KQ*BjoeYx3UL^s5Ik~l59S~&ue!l?eer?( zu(T5k1W69Z0uXGP6Tu~yM@P#N*lqRWqoqeWBsDQY0_QB0#h~yr5)!0l_8h4%+#><7 zW(vc0L?3WmA9(br#C#Z5A(9#yBHpmAu7{1TACTD_jsheB%L|n4CkTf75`nlSZxxKz zxxqdS)<6{5xNB!QHWYAkdJGVjgK6m!Y(~eNjaE)Xw1UEmvTEfrFrVO%x#QBe9m*pY024Xea4L;#NzN>-5NBwH8`ny3vzZc>^m;NW6UAIlD%Uh(s-7@G%OAnK2=`c!9aDa=#-Z=m}lQ3SopheE@_mQ@~E@^`mRl6?+ zKx`!Jnz6>qeZvsdPURk#mv-)vz6tS`^T3R>8Q3g-MtALS!+j#SALpzz$S0z5 z-s;4>yAPWyIH))uBTeYyc1aK%2D;gyT{43ch)beD(U$|4iYd-ZStd0Kt*x+DLtweq z?ikC{1i2)!g?7>uCuvVif$1(c;Ph+{(^7B1xiR$&gg@(K zc}3VqOnY)l9M$l6VhA%8igtjY`u7O#fG}bTxyk!`_F@Og8MxAkm&i~rNu3@hF|ono z05=W^BWD8l3E-AMa33I@S0J{=IR+)Cv{$kqf=2}a8T$O8km{GP$V6GNbguY@21sFD zvy|g6G&~4{4!dA54{{=nVB-TtTqnfo9{dGiyHg-Id>};ZASlc_I_qUw)&h7?7~iFi zne&mGa*$GqMMRAOVsI~Qa#9lJV`Ydtqw`SO!+Iet2Pci<$r%RG9-8xU4>O;+Ih{yM zu0SN?W)E5nQR%}0$vAG3C+#?jdADx&gTjo4_vFrL;QlO!h)7YF-0@`YS>32GdsZfP z#+2&3nD0|D-=>0xJ9_d9igasSMnul!b4A> zhN!R&ga@SqZi?WpC~`eY8fVVtt0Id#trjhu4`Si~0dvX;5IJr!%*sqfU*YQt$~~GM zazg{h3Cp9{d>*^2NFa%HoPtnk#b@@xDyvOWFnvh}aVW(UgLCajw3$;B5-#ouK6mbd zWC4B@^N*rW+W-CXH2X*FvD97I7a3C$*-$@OYth^i$IbqL z9^UiHKOzK!m3QQxamL>j2PgBeY~%Zi1d4SqaPKd-4^jkY8;M+OkJ%a1M{PW~82f61 zYdhEm?tSHa(!EWt?dCfMy3yH%IXJb=bTnWBiAE3pSdIy7CpjN?G-=!U!ma=8`%!o~ z;e4H5K`8n%j)7AHP78+Hg?m1;T#D&TYud&1+=EPo7W>Y<(99nMLc*Yg2}sL!xaQH9 zAK@R*>%c<*@dgJC1_F6Q?CoiTsEBQVeGqHwAx?F{J&q5IGzQ_f3bRs)bofJr!zKr8 zMDWG_-@qVXEgaYN=fcjpyGa~LzEW3xQT(wbamo6%5}J`E>pxQ?dFS%L6@$g6yHWf@ z!Z6v z`e8X%o4rT+rG2oFhsl_Rf3AU>`AJl=GBY%q1b}JCiTTICav6wh)L5IKCApMm%BHxF zLUg*oIK$};kooyG-Mkz^VQX-iL2A;Cb>$#qTK?($%)$YEW*+l? ztb5Jp(l4!-Wx2<>G{9pX)`frCAH5&y7Vl9O{cUk$I|H9x36DnNN9!JXZ{jTQux}&f znRHy*;u0H!dzmH;<9W|N-kae1o^h9?;b%b}2G@RRg#9zVM-HBzK*f_6khHT4N*ahg z0shzz3m^spuQ5QI3d{93WE%0oB=YFqXIaAUu``#&&KUzBtoEO^yf!r}c&;o~q zOJ_y3lw$7V8=Efmz|RDjTt-L4z->yrgaC2NiY`dq`)^4EMD~H85b1(5`M?l*ihu$L z#vWm?2J}sP{vIm~rm$ zrfhR{eQ)Aiub$ppEwWO%HiKzhk=He^>%A%8W1M;EcJ-JR^_k%M-u2$od&YT8b2%T~ z6nv9k$K}8zw_#oZGTRZ)9R(1*g5caPRFVUrq4jSCXZ4j(|1fE4trc(I7MF}5?+l!*LD@57Ec(OCMiS<+yRl}B$tLEqP}cYa z$rfK|9Cb;lt27zHS}PAF~`1XEFN>T{)2gTzo+@e0#I;*$PfZ?!2-a<7Na49sWpnly|z_pa~U)AO0ZQ(BYHN@4#_B?x##U^BkCMAY1b zIWY7_y}td>Ja@yrEc^-sG3mRiwFA42YGdFxx>>wi>Ld}KDjU48BMIw9v}q={%L)#F zH(1y-Lp%*i1h)kux5IAQ0qd%Y!V)=o>>U`a&&Afm7&wZ@&LwAyYP8ncsvr8hYE%Cs-Z9m^iZ`ehJ^5BkJ^81UqJN6zn& z?Z^HNWm$!qK}@8f18`bS5m9q-LIdw<%#mMEqHCk{YDf#CIatSKdCbe8%T`!|35FpD zwYfCpu)IqS9pyHZmU*~T!=)9Y@#R{v(YhKf@foaMTZ zn_Ii8CEO7s$#E$jlgC9&gCv3NjoRyxB$PmC4V3}o2AU;S zRMo;Bx*3Sm4daUhb+t<5rO)WBOzc}m8X`)5L9rqW-*G90OI6HA6T_vje>TX#9XzzB zCeqW=X^U=a{g%C<6j5;DqP5NnqnTM)1Eyc)+*9XaY1NA58|&<<`EzHXoEB_uxBw}m zUwtyqo|U1?ONOY8K*zqD3J{6%9Z9{_#6N+KffI<|B zO0e^Y+;`#p*|1D`;8M0wQ=aID90`7)#W2k%y#_3zC2oLVTwoMKZP> zrcAfYEptzuQw~Xsr3=__Q4DdOCWo~+>t|M0nrfP96k$Ry_F0p7Oq<4Ygc^m!fc~J% zu_BN?CsR4?MYNMfEkx=F5N2}vO6)o!fw9BXg}}H7jPVMj#6jJ_mkzql!5@qo!8N@l zewr8D&f?&+TAT~)0~fO3zLc`OAa8pC$rZ)0&Z;6M5XB2fG6;*I+M;qPJX0XOVBt~0 z*h&UIed5?|se=d}3OnKu44xirTIhgXZh0Zh^IG9NK4A_{X~0GT2Tq89qPP!4Ma!QQ zTzO;*2?`_%aAO9FoO&wY&@<(Y-u|Xx@prh`A%x~JmUP5Ub3$&zqxfpLHLa+Wqq;PR zh7#Q8%TooWVGCeV63kF>PcfWG;sbpG2>|o)6hrz-<`zdvJUqCKqO`UV%ViYVX|Y66 zncSA~RX{9W$yvDziT5;7jEW4?T|Z%fp{pT@zt%-NW}Xy?jRvr|;;||zn9tLUlK!#T zJ`xnZ%bJ<4&uN&WbDqy&q=sSG*f&!G0^=eu$7EcHL(-$eB@tq6bXb(sm*bcYAay7{ z_yFu_Y32vk1U3fCEMN%-6PIPkfr-!eZ z!MmVP?Cyc~8P*_J^X-sYaEczBj5y#0A0NJv;E-)PA14RBoY1cv7Os5IHVr`LQ3Dds zz)4E|qXN@#Bf*)o1u_eRn)`7X$dNgpWZ?Xj=6z;;m2sT^63H1TMsrTfpoot$DHTu= zMnxMrH#vJJ=C7m|+z3DmmI!Qqh!63`k)$0mEg?hNv0G&jh)LHwt##FyZ#PSGO*JgH zaOwj@b}yey3{rTl1pVm6Jb8#YP6$xiAcqD{m!hh(^2VN*6t zr4W0$@tuKE!ukAS<)S14{4;?&muPcMF`I}?yJvD&P9gT^9Mk>MJba91ob1bqljn4= zaT7KpWM-slF)B%!0`2RRfq+LP*3j4kGI~o=JdWB}zDWjPuyM4oRN&)XX5o01J{VIB z^!rIT4(N6S!bk%9O8qd<2K~TQ2B5v^6CVjBo}k| zhD%Lzk^J);56BlbJf?eKUwHR7aTreQ}-qHZ`K z=i{aW+WvCOAia8|;Y2*{ykX!VC*m$zfTKQ!HXm>5EspC&SrgHs&lywte6As1aR z&tH*u{=8W_KV^M0p+F-SOokY~Y+$bD=bV}64%4kqbaaH;Li5RO8VS5DL}Rbb6PadxIYjRiH96~^{u7w*OiBZ z)#l6b!rgM{+}l#n_!LY$XG;%=Og|JxHO`~pfPZBbIh2oFkz4jW1#U~^p9#9|JVg13 zj3z`!SsU)z9L_V{1Lw;OL@0ykoWD|JcMsG+o4`3U|4i_PPqMVsY35O{hV%15#ebLd z-1St0ebFRvyyyJhEG6lQg03YQitZX`-%kk$c-&5CD6X@)Uf%xw6LL5&PiD=)0b5wl zJyG5$&=W)C43c{IafU#v{L0FMc^eSMy2pGM=^5x8o&%g$VigA)#Y`_;X`wX$$MOAe zk{299PKP5}ni`N7+!@9qtJkfOqyQY>lJ~w0V538KR~vjuFO!em|3&3Ermb3$%a4g~ zZEKOY_P;Fo<+<>w6$#sI9&QbBKOh)wUFTbh`|8!f~6PjvWJyYV^nMgeNS&UL`%%0F+jCe7sO*$rlTFS17iAE!9rQ~ zdL)?gM`Ett9SPn;v0xt|s1GUGuu$oA>s0>Oo*!1fF`$wOe#GAz+Y{ zR|dneuVx)~S=SZ<6CyA_?pPH2+BR+c(l2MQnE^U}iFgb4G!fUEunaqa4S^340uv(e zhu9XoDjNbe1TGT-&@}VCHUw-0w#R@Cfg2bCHUi(kAJ1;O4FMa0?J;0O;0A`k zxZ4TYFK#!RieaLS3{$bqcAIPnTx|$^q)jP}jr8T%RbTB7aHE%ZtzhWM{{C|6x}3B( z@;4Y4f$58hXT;Lg3pt(w#dSa3huCwo$$%089kYePf7a!2VYb~M>Qw)@Q@wrWvwK1^ z^Uhpvl)jku-e^~kBDC4m-PqVDk3II7(NmnEZekv`EvQ<7qOv# z=#c60+GG&dHI2Ea>s58RGvpP+#G66KKAJe*j}^~%?!naS8b4P4;rOB5P^L~(hIwz| zS*ClO`?JS1+*d}d8w#%FnYi)FVH%T%>3GjEL5F(uCc;)e=^3+Ok>2Ei@tgvl7U)Ytxs+O|teoq91I5f~6-ui)js zM|SRfTXyYwdrGyO9C$KwbJvemSX6>j7LKde#WkyzNm^@$Mh`#L3fAhLh(vtX~Dsk71g&4nDK?9XKot=4Zq0Ys#4UUCU)d z=<(7YKCe6-VD71n%wx)MZP%zcd{32PTqGz{7V|SGM~1%1Z7DTmR+<*RD|k;=+y zIF!FAgelw0I;yH_g_TCht@4wvQXU#nfgq5<{34Nl#BX#^vn@_tEEd8slPFk z{=mV*>M(KB#&z04jsYSky>%YUISOa{iISe4s_zO5i{YK~ygYEeI%J8{t>DeYk@fIf)+v!aW!uxyO(9%sfQg zef##|n3dQ`wZnXb{DMMxdfQ8~Waw0cfBlcg<*&Z_WjJ!{P_L4_(jy0*%rOsLtJ2>y zDLARUaSO}#(akLVEC+)7yM|L|&dcXM{Rli&=E#a=OZ3&DqbKCS`#&k~?cSjX%*Yma zdJKZ!XZFQ}R!mdqERP7#1!r>GUwcdaJg-{0O#8`pFrL!}!hus8Ug-+f_?M<@96Hi- zJvK#sP~#i2T!ud6qn|Gx$>NLSaoAr511F+x2Vl|L+Xvs@AVPRHgpx4whvP!yW|nQB zd)#Jt6D7j+0cIvtR#(g8PrWRkefS=!s;!g9pLkY2{qTbl2V`cj`peTG0@Up;UHH)1 zA6@PG;2!^RJPeMYMH~bBNiQ(fHMQzYP$ThUhE@$cgMR8Se=I-zi%$(BFyUMPB&L%; z10&`mELj&3pM53q;P=qZ;)zp6ej5Wb=9$W2Tm+kn?b&+(PTSJt-n(ztY(&r|cyuHZR^f29XPleyx_dWz%|ziHVk+oFj1SdI9AO3d`hx zd+z18;M6V!E?v`gFzgJ)_9E`Ifan{#50F z2jMc7NP6q$^)hp2h8%%3aj~odgR~v65qaR=J0vQ~@`Xisoj!YB&YdgJKGC`R!Uc2T z6FU#5KNKtS6Jc+^?G_bF-$tA02%g8o&=syhHfAQ`FPNJtciyoTF!q;6fBqk`|KJh1 z>y9n5Z~q~6lF#F2)~{Wmezi-{raNxiEO~ha_#QPlT_RKANB?Lf5HGy=8W|)`t|*ob z$YTOs7c=BvD3Z_Iy#_GuP>CQ3{<8V)>Bz4N5>^hRfpu$E>NnUAiRhM%Yv8cHUfy|c zpEh>OE$bBVkAmRx`;s`VT)r5R(_B;4l)X;44r~yQ03i}x&L6o!FkF<)_vu!NtSAcD{E&PfM6R zYo_Go7vglnQXLpiKliGhS}j+og{_n@4ANWHEYYJ^ z$hqlWcRi4_5+Y_U5RRheQ`=tEgVC}<49H>VqITV?MY3wyA`q-VdEw>P)ydpeApDze z@4>lCg;G&bC8u$I(aIG|l%xOlsTX81kc~)3f7JyT(67Jwj@-Isz3^H{Jah^innb-*Vz z@9-Oq&uIuy2mxjWlqX}nMj|wQf}?mG-QTl*wIj&~A8z-418G3qLr0G5C?B2RA!5SR z11`GxgRL%#Qx-?QL}i7N%-ehX#A*9C|I@F!3*deG5Bf*);K&>1zy~EAF&-z?FSz2x zxAu!7(o5v>7iakN55(iS7hZEoY02URs!#op+4+<48(x%H=OS$>_fyc%7}Aq#8JdaIP0v6QVslUA<%Nw9XN2<_8mCn2!(@nkOM-- zl%%S&2Z#ltA_z*|=jg|QXdzG*5>AcI zOoEUQKo(Abz@2TOB$IMEgNJ+9%N^~a1(ot-S>Q*jl5Y^TLw@lqeM5jCflxIfKscuF z)oC8gTS21DA8yludEK@|b!IA%B?teE(^>V`J?qzaofpVwb(~O;=Q$zf9y#By7lD8% z?bEqY1jKWWo+;9}EnB)!^Wh`v%PL#FYMH~rNjb>}N%4u@Eo2@R678MsRD+_9=>1H{DQsl)_YfR z12{0;9zyWS8}CV!KH>;QzT~-I2)$c}x~*KX)XL;29xmfK}ip5YDl0{?Zp6kb6{4Kp42=%)#EYFnp-lh+gf0>KUluNyx_$eO(N=-y^#Nrmsxd}Z&GV*d+-`_-O=x5S5 ztNiyr*shZo=Q|gC_09Km9L#(_Q4wOmT)RR9;_tuvyw`WejOpHw{r%B$A;h6kk^ted zIC5w=&y;}_F-_-7F(n!=38%iX$;)Bf{VXWGLy~&qoe%t=Hk6lqL#ji>UM=b18((|c z-!Xl9^r8Et=eX=#IZPjKn8{G7+Z@K61Ao%G1O#5OVukTT`9jA7%+2C7r%#`@GiT2D z{bxnp$TtuP<~ZM%665 z>-OD#U>WH-)H{BB34;s*mzGTTqenRme5$x9$j00e;DFkLV4PjFdgWs45;sL#%P9?T z8#p)s%VB5FKL4t?>n!`?lMmb5?|tCFjiPNv@ia&5aDEaJ!+V=P@`K0W&KzvERO0l} z<0tLE|IK$i-&HFX>wAf9k~lhXBF^+9VqAUC@%Q?m%avR zr|SGIG}aJx+6MRMEaSWHT4UdN=3m4u8*J;&{Vr{UauCb+OVj*6|Hik5=FQ*x=Vxut z-UEJM8;8ho>LgN4f#&HP8^b|yB`WXkbt@I`pr3?MB7!Ymk;^ZAmZv@33&-nIptuI z5c9MS7DLH{2+I7iMO=jAO3;h~NX#>jCi0vsqQZN)3CmuywIsr64y5Bm!ZPJeT{+SP zf$y4-Q1Wh@*(foJfe`2u=i{34u8$bpdhUj80gjRHKcE z%ajYJEz&(AInx2^m#=f1XkVC8AevJaM2S->B4QWu3ZxhMmvrMKwwJ08K(rdwhcTf{ zwC5K!9@8}jh~2aUF&xQ)QyQlw>P&qZH>Lz|R07H=;zEq52Yp7pSmI;6AdUp|AB-hj zcCN;~zENqDoy|r{S89jE96b@?D4>f6qO? zc)pI>dS3efM1#rxCFcd!U?j;Ab7; zgBBmq(aNPhh{N#^(u6?{&+$0no;cxq$ZO~szz_h1!26MThId^3p2)F0Lt3t0Pi1$l zJUmXKym-Chd4&5=Zahu+7QaTdPt=<_#y=+RFY6$oF}VYvgRWiH(;8|J#YI=`or_@Ue)giiac zJA?Z1yIvRxCXkm<#~aBbUIuxE_EN5=A5npLp7FS$Ou(5C6m7%rqm06HC^zI0eOH(r;~V+_CbxWkWE-Hnw`NH^9<#K(YmAFXA)ijv#1dWu=rjlU(7%`wbg5_&ptkQVX#fB?I@@Q;>by?gFqWHy&<;f_sXQ z=|;_v3wf#%AFl_9Ef7xBEu;_6loP+_d9*NET}F$Se0S&dz%55$ z00!+QKh}LgXiPBS$SAQu>N#`f_&tUlh|wUfufr-WKzOS|$dkH_yua2v>M*F~A8;d% z1S8Xjx>9S_RWSm$a;}a=$mi_ z(NQKQ!=2Luw-kZnK!E5BS8b4*zqzGZfY~kJZWM5}I!6w`3Sy&`=J~S-0Wm_}p`7^p z(cTe1I!0C2KIbp^vJJ~2Auivqy61&Lt>PX#cFLEN0-~_2#AX8!_^LFCHix>jX&2Jl zvX?$BlgDqWY3;mHSqDo{d-D?YFk@VFsJt+jva01DCEXz1g%J!JR zdM1REHPk&aSXr}bx!XBoc{EE)Qz67T`e^kcUU<*-(}=5~%;fdf_P{MgV5$Z%g1jK* zsZ*yMVe|6xWF&voxl4Y2zMVL6!o_B|4O{_W1K3G>s{?@7sP$X86n3zz^HylxkoT;? zvc}5J6W0B>`ud>kVzDk-Ft5_rD1Z9uTdHTD{pPQIQ)}82w8mNE>!=_!1`-6!7vYp= z&QxptFntK{X%p+fa7~O8SWCsy2crw@v-7p?30Gwrv0vtpuf4U|{^CFWzOO<5?ce{S zn^3YtW{r#?zV*$osy=Ckjd9$_0K{iqH6B<8#%gM2d8r#OP)3f77`Rr6KxAo+o3-vL zDH&O_EiWtexa<_VAPIoARMx4P;v775#M^`EChNn2;Ka*I-v4ZR;FilnEDd4zeD>^F zM^2grCtkdGvCW@9-;ovZ8qV7y&WxROScJcoT@WV*A8p+sE2M3{(cr~b-n41~EMo4f zZ@g=D4NZ3F=!wV{SB4yKYnRRGsv2#1>#!ZW_X^qCp-Mu&K3^6CQMYW{?HqZtHa}F? z)Cy_O+G{eO#6}ncgvg33k|-b)7)_iy9T{=_^N(H-Ql8h2oKxBj^MMnFU;u&1XW`^L zam@q1E9u|-*00%I8D_ZXtU7?G{OIG*XXKB4F}sXTs~&7*I3?qeTp=2UDcfW{2Jyl) zk~BNDDnHe?pG`QQtxW?HwZ-re-=F%!XI~UYyy!qaptqYvC;kI43#ZI8S59#-AQJ15*IrvY%ocwl!@p_b;@m%C4< znzOY*0B+kL{R2`C)*Jio$z`5Rw$ zv(q=<-lTUkL`W(uEj?{WvWS8wIe<4IB7D zMDiMtDdWZs>wJU58`|cF2_ONp(R6XT82-8_Oa5q<5Sbxz^wUJeg`0&yx%Acl^6!4j z=iPttU;ZyQ$K?Cn>y~TY`;?_CAMz)Cm}5gK9^Sa#*e2<#0EvwYI3>uHNg;c6>0|a9 z=S_?ZY{(Olo_RiE^Tzw`lG))5=kSgQ)m)ujL)h=Km5>eJo#If4pKSRfp9;+>QRZO$&V1PIX0;D@`_8>?lgwrS zIC2ax)eqf1=LNa2x8+K^(N2RT1dtJX-M{>+zw+SD>Tgrg}CV&S3W!_s{TrA|xac(zN0K#`TGs{Xi z$wP?+Cx$Bn$e$H82RP451B+J(kQd{AI2|4*wn}5mPMQZc-tFA9PD@+ccI6j*G@i?;=35lW^Bl1!G# zKUS)C>wx%6wQ(HjAO!aAGEd#2c`KXizx>5VZSkT7KBvaeAEe@Yyss!{*|NpX%|kvj zw8??@w3|);q-Dns)^BWQgmAFiXzkino;SXuibSx8&(58D*01t$L^5H+1e$C%cKqhA zecg!`2LIF4CM1+(_}TWrE!oTfViLGA#|6Nus;ca_fBUxuT+1R$EO7uh7#daPz=+N} zcI=R6iv2>IsgCfWE8@T(e+Sat=x!wH67pf|8@q&7EL$S+b(|wX$QK84>DmoL-XXwc z*gK2Hl|WvIo6KujTZKR&cA`82=n3o&LbAv}S)`5Nh^C=@;u9cla5%~fYr2Tj#EaJ# zO*kBvt#1VO^&*n9%V=aE9c3df2e&qqr`O(Ake)J#hjPvLKr8RwzFwaeFjjDTxH_De zwA2kPcc?$#2}m3S`eI~1`iJD7+uj2ohlrc3LLBfwUIv{jz`(qhT}fqSWsWo~pMbb5 zC1F;{mO?l&zzT2^04RRpIaKFn*B}G%k$#T0i?MtZxE*yS5QjM;A^wheYzU!!L2RXN zAVj{b%R(Ry01u}dEf7BhpC9W11dq3ox`eVI3?c9?qzUih*QmdvVWd^esIMwdV-Z3? zWXfhvPu|oaUT@-r>W2CR#0~kx`!U|n;d}CW`+DG0A#eZy29Y0wAGi%%b@%Swaw)pf z%_(_?%fW@28y`M=*ts#tj3^BtksbtzxIi>FBwxz8k`f`^C+Qk@PNqEIs&URpzJpgJ zy6ayYnWzIHw2OP*@l3oZojAPS^E^~XL2oyS zu{<0Am8F-L0(S(Q`9>P-$uFMA$mbE!Z^`2@ zdATLoB{TUs>46(Y-~iYFE8Ga~8$v*kI8gHqjVbfV%^z%*W4S_4^ZM(r`+ZP$1+hCI z0oS;=8pP^QMkw=Ut|RN!KhR?}b#mv^*(k+NwoRHi)uv9akal?3MNT~bIAVu-@|}9p z7vvv*Pkd+S@k|o;!*x+Cure0Hx6$$%`7Pcb@oyo!@Gd-$8h=DRLzd9-fH<=R|3B>f|ZgyLYd1VYJdL9T9IN5eRcn@(pEh4M@!U zn+;K&NhK$DR|c%PwZV2Ce%*GQ{IAl=UX)h3&p(v&m42+sY%0J43YV~>h0uq53wdFL!97w5h#!wL zRBlYvjT0TuC-#l!kVaWv6`a$@;ts{TDpvC0PU(RgN8m(_17d{+07(3T@+tsUeBdkO z@0jHxmX=Utv89mj;TJe=JWuZV{%JzI4yS7l*va$n+L4p{ZOh?ri?EpGPgr1iC6leW z?H${FVzCwF&l5K;Qn?@q92RMVearp!!IoYAjHC2JI=uiVbBhwjAb4wBDx(P69_oz3 z3=1wyCkYsHfP4@mq>o^MMjDo72tm8ca!+viN`CbDk)x+P@8wGu_%n41`SYE?bfZ`A zaZ2ZPiA@RUW9q=_0LxLKt{8G4Df#9IwHYEo-Yi`W<)b`?&U*Pw6s(d0ZS|F$N+5=47uC5+gPEFF5 z!#R$uw1u5d$45oq{2Gk=NZha5jlqn?x2nPY-!jCGA9Nd6_#1DhcJJJM$38+4Kh40}?Ui?D7q$7my z{%`|-uCP3$@>|;*?al4qw&Ul1V);1_T6!u7G)`Lb9?Q-dXBRKkTT|N+ao)L>IevKk zHxzL}XBi>x;@g<|Vzq^J66Tid48k2e7Ov+2A`-u^lQtlOk!J!um5h?5RnHp`N zsP!}}#G$DJHrpX^kD29?MU}pvn7E|7AZx5OE0(xTc+I&wuMfyORsN~huhDTR+Fb>K zNrpSO2W}XF<47v_xGIc9I-Wt+kOq-?*REYUs`O1a;vg~KMh4ymg z=a7AOZ>Q})`Ldn8__}~zdu9hg-gKEkW{HbVw&KDmmYK5B&Ys_Ar)nan=A@-e5N^-D z!(I>8O6vsht!yt;Kz!Y$-AEu-@Xs8|#^{5M5+GZ#OgAy#gu~@)UvRfLBz+TERi${m z0{L_12Z6v+3$YuK7K<$`y%4Q2yvP$LCQuK~dtzRWkq1^$6*EiS0_>!=5@M%K*&%Q$ zgBsySi6E{c{jl}1bjCD~J3~8@*hR&;PJQCM9Cd|i$aAtScpTqp>HGZ`8H-q5Si2z?J{bwuzhD_ z?%4CZw%6&j1%11cqRs3Vj%!zuS&gUsb7Z6h=B@M{^G-}6F^436f1i$O zN$vN|2L4@J5lN#Ck%RjT_2)$2STVi0NKy^X0(v4*`f{5#XXvEDl_|z4eFQjrOx$3Sx*0bAsNj(3Fk zIxXKpx-iG(JNE!;up8zbaYB9}O?VFJN4}5eNgiVbd^eH4Fn^l;%2U5*dG8i!v;9Sz zns!A;nh1+858A>R%WN>S$68ZfwW*WVS<&Qj&oa~vWBz;ZS?!#W)A+`ZPt!()QWsZ` z9k22^>w!bZokQa8CP*D1A@gT~->a?R-lrg{8*x)~<(YtJPJQv-fq5rlGX2FCN4~Kc zV&|TN;)*2_x##$%edpLhyb8T*kYj>|#%7=Y=IE%?bRlC1%Il+OG`~!?h9R_Z>Lu+IfNxA8d{Qsn%G9<2tW5oRgh8Aq{8R z;yfU5uBA)nyV8le%@?=kghG(IK#C@~F~~;R$$DOzInR-I$)b5aS4M1}D{&SPxxH%<%K zl)(~Jv^gQw{cW*pih2LK)yrILr_9j4YxQyR{m-Tc#zbI{rnQFGiZXM2wv|t>9Fg+sNAduP z!ZHtY(J&v4$0Q!gCA8E85GeSn;#)jT*sg%GivU9LBR~+~vLgdtHbP*FBEJwoz;YpW zJjBW142je6uOKLjG!UD*&7Ku)I3ayJAHF4#H{Ppv*8S)RoZx_PI{Y}Z;eb86aDc!; z8Q3tm@%#8-6PLLeN-WGN|KJb)z&9|!#jh2}ixAI;=TH{=i5D(hI8+b5T`!R1pu~6x z5@I-uLuK=p`Zl`M^bF5yq*gqhrxOBRB!Jo5tH(Hk5GT~x+n|rk=i}`O_nuId@_b_m z!uRlQWcg9?o+wJ5=qKKLnkWK)J%qZ1=b^F_FId`|t$oY*%R=E64*eP#Z)83pzvT7K z=z&r91Ba@Cu&fKl5jT7rdG&z@h+`i>9G>~c92kOdBLET7#j+Z@4Wcw6eIO=7AFpu} z2TBlGq(^C^oloQu>J+Zm$mZw%HU0F9-UpwzK^_xdfOitlNI$^ks$iwS?Uivcl9PwMJ|!I z$;h|zP}&gv8rMX%LN-IOuJwK>LhMGn4n1f$qPIKt$#2Qa^V3zwIeD9Jw0F$u zUI&vYPTs_9A^U(f@^@K}9JO_HcIzslAb?6u8|V1~6gY9~Q_tg)CRH7bM@IY=Qx{yU zPLO9sWPwI)K+nw1w|R?J`u<`DZmhuf_`m|l1Sdp^!He>s?%|t0C?Noyo+24 zMaV$CNfUtDlPe26{|pYQP3jLq$d`B_O?XG%!GG3pc>q(4xOpza^%?r60x2Qn72fk4 z{c!e<69$e9jeKu~`Vbet3IOkD$Q|;eZnO(Yj6j=kzQ>_+sX7Nal*u)eOFZ8#Hu4<< zkqGg)ArC%<_ml=K#NTlr_JD_Y9zl`ufyTad95$rONrQ@39o0C6c>dgn`lqGIiQfP{ z$U7JnZj*63h-Vc~I9wm4BW*my>ky6M)!*ZBKdbvu5tzbg0G)BJq0#DuG`T{iesu^8 zSMJwrQckAd%d@Fvj~^$Gi#p)CmxHATZBkZ>P0AL4m`(#|i+n%<1e`kGAqV8mtsU}$ z7@Y&$ug;mOOH-6h&m-2faw0?e*w}X zM~+y1eZ8$(wPxth?E3l!offfA-aQuS^!j3zLD>Zfr+l%k?3?lmMcGt1kRnHd41=#a{ZkRcEdxJ5wp@#%7QCp?Rg zD!Rs7G+zA-9s+BmArBu9hqmZ_AW+%actbJUx^=fZ(w{S@T+a|2kRSrIojZ5?2@&%b zEEMRfZi%trdwP1*7xKg4W#VENATOMfV>@>ou?rW@+oO*@DwjOC-;D?c0G^Q%J8BI9NvSYypIqmiqE&uM)IJKc}KtW^^KmMd``%D{fUz&?6F55Q~XrbE$T1o z;{Bq&&&ZVD?z0!|Y}FZCzG8)3Mx9gt6zMGM3+{Ac*|McxKgNYLlpC*4XbbHK^N@4NbRgT#x5%HeJV18KnfgFVnq_3kpOjqmJ=@BfbZzhBlh&;k7&@U z92gnw?c2B8FFpOM^09nT?E!!W?UJ0tb#!zmfF<%G(%s$fZh`9RE?7f-oySGm;7Af5 zL=lMgj&}Rub1#ZW)VZXvY10Sx#v5-600tCaebUmdUz-pIZUDdzD9?Voe7PgRA))-Z zu~i@HT~7}#WFdx88zNxggoSRE(d5z&@!>G!MLumh9fAOW@$2a5RhdmfvQ4F8jVtxWw>9mhPEL%}Cf;AV)T%bh8>gN_JLy02 z0hyFMk-pE%q93SdTU)En;X3Wa2q~yte!rTUE>jH=I`tRQp$K44Pq%zzUl73>a6e~A zC(R@-74SyJ((L~h^<<+%IgDgU${`G zbCr*HKAAeAX0^TnbbEDtE8GUxM=O@Ew7Hct74Nj9jzj()A7aZ_Ecbo_@G>$4tj%rq z(MMZsP`+wOkTDmgRi&{03Q9Vu+}>a~(=rrUe(y=P~uYvhi%!tS~I9{IGEcT6Ge7WH?B z2w!V!i`rUl8#mtPNV{w24xKAqYXx$+zkdCC)i={N>p0r8)m3tiKhZYcf4}=^#rDV}k9b_prA7*>t*sN0-sZ?Uf8GL(`(hy(?Lz`dbw;EHJ1q3e=QeJ5 zC&)u+V?(oT-L})#u3M+L1Ktl^ogM0@d|SL^Nt90GjYM+j&>^*@#bKawUZs_klqwC- zaQlK#@H#>DK@pX}V_l%45d|V8RNFu5i&IxcW&V?<&hlpo++E_-HO+l?u4TY3wDw!| zr9M52Gk1)$wt-CR9XG+!vhr+lVSxsHij~hOkcb|+uuajNq~UU})i!oHFqi22JURtrWp-Y`vvu26iN&q<=G&We z%*YfuNT2Rv{n4W*?Uh$w_fr-)`xr6HTd(%^_VwDX-TQ3Ufm60+>khkX-AbLp&}l#X zmuKZdHqZSv|MS26$m%Yhw?l^yTX$!>tzEmycJAD3CypJmy?b`K2he-&zRNCNylDIO zAM`dt*$JJ>Yf@gW*YUvqLjurh5r;NAcI>#VT)D!gOqr_tL(UDhZQCwFQEsbNu5_S< zn-iD<5O(d@WeXNm+LMnz! z?j0Br1ntnF!|JnEA!deEovF6Xn?DdiD026{+eCOTHR=#M9bC8nz+T(GZ6o(VM6dAZTz3$9?#DR7dDYv_gCt zP-hAC)uoy=08(_-d! zs)Ms_} zQHrJx1HzEf(h|Mv^;0SqFIlMLR_9rzd_~s_VJ~P7wn1ero>yVa!zRkla|pl#PUg}4 zH#N72YiEfA^g5@RC(c)@BVtNQN~H8tzscn;)0`#Z7NwE~%FD}LnFt{RfRQ|2dG#%? zbCZbKnKNf4vR?9b(3YCBr!8M6Ppn_F)b0}ZohYu(%!J+^PyNC14tV+G&!vf#YYNe^m$B)ruf4b20hUsWWmt zoT}qxn$(UW&7ZR+MSAs}+mn{Ftelc4H;0EYF)EDct-Fq0oC7DV4GpKsQ2-eUPR;nP zd%=C;7hdpHBL>G-han2mQSL-s+84y)3@NKviV{v+bN7IqZtS-GH63=mK^*(C0OL}> z5Lm~5D8l}lcH45a#m>|-|BT9X7UDG-{SS4*2Qt)nsW|RSKYdlyxY}mVst{nxH?-^hK@Y2gJiXoo%B<8m`N#|rg;i)@7|KI=PFZ&^9@4WM#M7JKzZ_!vr^JnJ8k34d} z{n9Ue$-eaT)8dGe959$?30fpsl-Qcpt3)U!S*uPimDh@3f7Wi6e9 zI%T2Jfsqzbe~8fL&6~wp+J*3y>c2=+iqffF2c&5_9o18sl*}w4oa&FH(b>frNDU5* zE2ha@ZDcV#v;&`{(%Q?#( z>bnjpuMnYor7c6O21!z-*)5Ssy#B6rmZK9PT6MZZr|PJg)^Jc|aI#N+bxmC^apdc; zxJ)4*qUnU}91);pQUuP^m=t;)n>(ausj2a40e!{PhJI?i+$U+|oKFRSwJwbpN2rb$ zQqtBbMbqr=d)7NaNeCk9+r*JJiq8}cPo=m&{_@igi=&p?haYZNpGg@j|KH=KFsP`Q zDWqolQ{k`x7p^*W%s%+w1AQx38Aa|KANaoA;o5WHL`|Gh34q3F(jJf&V9+@FpNNj> zUX_OuLlFjrumQomNlF0Wjs7YZz2rOZXf)}_CrxD_k_#@K>vL`D;24+aTd$C~T|kp3 zkvxvRUWVR`7AOafMEv6EGsFdF=wR*H4yftlwcH@=$eWaJ({#cC+=)ZH3knJ~$XCRT zCpf{OzKEa8moJkzwZQ)2JOAkO9|l#~>RXC)$aD=h$`rKNU0o>>zl-gO#~*e@5(t|w zSGc7*x`g_$guy8h%rhs5>sKyVY%jg^nht<_%ei8)xCZ?~{q8CvKS+@f$62#x+E0G+Q)#BB+Pb^ex+q^&bwMW2Y{0<4P3LdiSO^)W0y2h&s0O{oCutvDu&8(^)HDV1{Cg~{_;S_c~U+3 zy_8u{IB%<`1yJ=2RS1dvV(KEC+3PP=4lXW6|cbo4>1e?y?nXV3JWDV31I8$>K$OG>0BWcN{CCv#l2jbHwaPHjzGwx_!JCqj+KNNbiMeK64WZ2%`Bf@e<;(wkW2ZK~I zRm!7QNf0QbkT94R9zA+Y*FL42r8?${yIyc581;pKu%yO0PT&3R51bgHUzn_ZW8O)) zc(LA2OA_Hki?XtEjZdcf{*sqXTPo+yR$q48-~8?0`8mg>rDaNAAmTh#bMDKM2rheF zXcx%KG@)FF3KUJ9=7>tW>8nmj5afphG$Ch#OA+)>VPU>=cC_L2Wpz!hofC(L7^0-& zI2^#7e9oP_;KX^dqzA^G{2-+C<1iq5vp%ywViG`^enfWVsMi_-c$R+VEa3=mLF zez4<+TL=+()*n>%%y+%D2{96G*XQD?6ejA3C@RPs{YXa+-hN#{I?qo9a?f16Q=(3p z5a;m?cgvteT!;GT-?ajHv!+R44Kb{5O1cu|S3OmCL@Q+_DMOJ|AkVxVHPRBRi@s0d==AIw-l8CkZQDX-W9#FZ14pbX9Y_N)o znI4BWkdN>w>UY(VvIqbYc~aNtemJgoi{kPf;6zgJ9@aZ$sj}5`dKK1I$&a!?V(LX4 z%Hex>7cZCgQzyy|_dHWBLmqD{{Yl#*1a7wHpMOD9j)!fb=EgXch}ObWd`xHyWs{zz z8v2{DArFW=OJ?8u{txV-2k*0Gi{}a^BB_Tuk~Xa4GrqKsbmSGmSwvW=Gi{;1j04XE z>Jeas_v8`!QMxzJD}Wn)6w-w%}v8T-KT=L%E;)o3C|fRA4n2rSX`F(EM4 zVb|lpWbO6SmGsxTj{rQ18_FUs_aDoHw(52G7QRPOLwh`#mlx$j-V8W(h`x~?pk@hY zV6b1(L4%ODRiby1b0vVnBgg6;%A#LY0neX&Mr+qlT$Sk+=0z;T)5Km!c@0-`sNaY` zvi|WrxR0JGkGRo^i{u^kRn(uH($U=9ed${kRzIvl@&{CT_^#^D^GiNsCHgxEW$gFt*NlPE63=tL&KB`-V-e-Cf2f4z1Z z%KvyB$nn}~qVlfyJzlHP;*R$2TIGH`Zh#f&wa*dhEQQd&(VRJ?3)fGMxSqNGjNVt_ z>o3lAR0IyqM^wqrn`BKbGRp7QZleAkM<{G|ujJ%ffi#6#sS=rmY$*deZ}wuHbzaW# zr2}kGpZ%vF*~*F(Te5t;^=aL&tEa=JR;;%En&bA?kH06|>J*z^QequKY!H;)N-dfr z56Z#?tIluPR1>66!kEHE`P~PNd{P`-oX)aj~qd)Xo5i zBjb_=U;)_?`K~TEszV%@JRcDW{)c;}9K#_Z7NH!{#_vPC@Xj+DA~1=miz3C-g*t_L zkQQR7tevxmJVRbw`8HfeydA@3#Pc03E-MWzFQN&ru5NHmEoU1eMPVP@-QDGL`9xuf zYK%rKhijO;ySW}16M-S7%sR)7OVa{2Dkts36-H_K+uAf}ArBNhlq84(g<l}Rq16lsdBpPqpe%)(T5+>l2Mk3 zJcci=T8?S(rIpMK2xQckq0eq$=#o)xpa-sl!0i6%vdbOXCMOXW;Les2!bBYo-K$X? zFU1QB{D`}(0d{IVv|WhZBXhd0u0CIX)Q&EF>sQ=yR*;ut%|c-A`=tBFtPt}>I67;N zleJz6H)Jm`%T}Tk0>%t&ddQNPu78560X=7laD)J$jTQLL+ArGO)|O_QEF+D|%9%or zbgc(=_?AMHBxPk4s&9_gG<#$YdCVn^*|RJ4ZldkoyIWQ_TkKc9^>u9)n4`77Mwt$t z60lCPnKNfAuV`%$+gR2H3kwTf3aPC<@1~hKGJ`yP__(htmzU3ymbp*_;gZVGTC$Wm zSU%BztT}@~ASP?6r%uW;OFN26%VzqTWNT}i6CUDHH~Rhf@uP0cF>Cf*5ee2HvC8Uo zLw+o+zWL2xaw(&x=A6tmYrXxYr89-3snX=OT2<94*XCkOg83s>UPq3c@O4rQ_*p|P zD9HD?r%oOBb#vOBm6fJ7+eSOma8Y$^mW0OCDneB1!0t7y&Lm%`PcHh}Yinzh+CELD zjV00Q!Sx1jtbt8_^Bxd-T|2<_#tWJ7Jqxm8Swmnc=d#S>YQ!;*pRKZkCy$GB)?0@} zCe~@|E;ZWe+A0~bx4GDvEtAQqvY|yul`SBflr048YqKVCh$hWx8=AG}SV)HQYnpbU z@MDghtHtq20xaLvBt*m`->u?+fy+@hBqj)B ziU==8DA<4_F;UJ*jaQFs8`<)RF$abzKYsp25#0_MVjPkw;a0V8KpO&HmodaCmDOqN z{<)&@Ij!dd2lmNmqSfAc=N+q)@k?8KmlMNiDiW=&HZ*AW)RE)f4{yHlx|iQ2V*lD} zZ)n$7gZgxM>M;8FCEwmi4~)ryL6Q_rJ~L#To*@nMpw=qc?$@g=fLCM>3&8a0ifGuE z*cQkjvxgWX_RIN`g}^d}Ows0lMQRpzyCP%t{@ym5Ub)C}^K;}Rpx@095$XCQL$Zf6 zP1w*T0s-O3l|5~bI8L9qTbA}Aw@M>EWtt|V0`lvHK;W6bEn2k5HmqOjTn{THHgV6L zGh18M?s99I9ou(`Q`88c>+Bof_=eV)$J+}pyx{i0m6daCtvKd%nK$m(u}hXq1@_Pb z>oxDI^W909;7y-iBxFgGndVHZsjimPknY@zWwOH}5KlezxXLWBci-uk!Nwu2Uq)-; z-UhWL-W*N!Wluaq(uev=eS#?3EF#y}*P~rdYqaTMtsOpeLY(rLefdjI>3yH9xQ@EL zZmy;mxw)CzJTTYWFl9=S=P`SBh3d!t)*j!yfTbOr{{H(P@IFCWz>108P50inK^qlj zNeph6Vyai|IV(%3v)Zn>Sf-}UR(t&Y=($nYskVddC#=?$r z*Q{A#r6n`$yf!Sr`HPFExY&QaF-(3Ry9dTbV5Pkx3eKi_Mx|dO+Z7>VmUd<2N{nVb z7jDeFm%th@qA)hW1rooyTQs*lC4iqiQ53&l>DhKCgZuHRmMb$g`2=uxJ(@sk6aRn% z654D6qQMo-eOo)(2+v$n7E0D8fa-9799F7$^lScs$WSNDC&eT+x0ZRIHu0l)Lp%p{ z(5kZ^)b}3C9ZObLWYf$ZU<~yURS^&Qfh-^&9p`&b6Yr>iqS>4|b0yZEvJbcHv=z%1 zs|ZeV2r!$>$;q?(wB3$r0d+v?pw0w#Ae}o`XGe}6)2^Szu2f`d`d z)qMG~wdxzc25EQCNt~|NUeGH-gn_I)->K1|T_Qc=Al;p<^5!AMjQ~bwAimYFO}4Z> zQeue&IQIszvIOAS5~Bg`99ip3k}YkPcEtcFH#*=TFTf7c)z;QX*zBG>dCJb7zodP=N43Q)OGuF~ z0t3i4f#!PF^g%z<$|@H%QE{_9ek0*`DW#vro>?Raw)V zD9x;x>4fO`iE44=YL(S6JT7Vj&Jerd!1~8tX2t-b((Th9d9rA1_bCj-IT=2A52XIl zpZ?jOjZ6*@pmk)c+SXkk+Uax0B}%8+Wg#w#q#iBtbacxgoH?%$uUiPfU_owiV24>C z2$C-a$OHjzcZ)Uxhzbu%gPkg|aGc&vFPkO*O4=wOphGc+7Y_EjB8CB|Jq)-A2%`6Z zls)7R;i$QI)}~FV5O-Va$PAKR8=>K@+WMtA>G|_@+R)$Vh=ZpKI6CP7WPpuwXV0GF zNW5o{09YdBk|m49QD=)=q+7ETHLco*x@6H}r5k74ckc2uh~Ow|f-P^BG{9^@6pOc& zt5&*ViOm8hPM+3ggww`G`z1@4x+f0y;T{#Df^4&At3NdN$2S*q$;sNyb4vwl+IqVrLS2 zZ7XKYb_oPA{8CeslxmH(LY_NHN@fV5Ys9tBE8jYsB8A*iZLnu9y-PcX8YL>{Yid-k zc4)Y5_nv*ewXa;>NlHpe5<~>IHCm0(*g`DX_`${pq!E;Ji1jTZ{%m<<*AHv?SIr?t z0%Y>}nmsV8Ei}NLA=N*7N&m+)e{K7Y@3a|(CC(+&B}$DGfWZl`h@ygA1jOk~0XiED z+=3D|p;75>YqZOCwVKoRYAYafXKkVum&!=j`h%28nG(fw1fb&tm;*v6ww^hq*1Q)Z z4_`x7A~^I5ZshJJEcX3NZ~k5v_>IXd%Y~KwrTVG&SlwD&o}by zlV%<+lr06Gvi3k75Zhg>9I8{qk%ZH#hi9zsShuO;5+M*R;;<8n=PYT%LcTmxM z6FLc3Y^i*v5-Lgv)+Z_Bl!!%|BXEt7_USJ^B_h@0$jnyDy?ge^JH}#Lx@@898I=Xc zq`pxds3X3k5TUVArjAklL!Yt?i6)x(d>eWnz0f;6x9}|)K1mP6CN3XO4kv~)!Bw%k z>h6)>Dv3jAt;P#sCke1J z$16Sb1}!HDYF4goX_F>tf2!t#VhoN9An`EZMEAsHjh2o2gn*dbGe-px08)@XAY!zW zhZs>FXRFV+k^Y=Hl?jBR4_Sl7)24`&=vokSL57eIWyc8-938|ZM7TQ)<wK=_;F)jIINfU`Zvz%=UaRHKSX*cn&L}2;p(&c8My8uLDR64*e z2v3#98|^gQBUf{+3?W00=GyEf)=TT84k8XW8UQS(F}i_sUK3taX9*h~0&vF5;2l60 zf!i?0jyTM4I_8Q1ec(_bk9eMd?MTiP;>EA=H1YTG`?2E0zs2vP^tjE9Bn#RVNfHr~ z5*NiC?+77nxJK!tzoWg2e^11Uy^4D9 z5P>C43+>S0c8fw|fKepCmG3HPNwc$L4-Kc5X0=}HszCIBu!FhMIL(uL_3Q;}TVT4L zHStx2WsIrih-iBuE>}4H0RkZIECRqBI79QS91(_eF!BZh;D?eEAIumw#DOh<5ph5^ zj6|?x8Y_@j6d#~w-mhBg1)P;R;szdb!LCISQ4C_z9tw8ChLbLD~t5%#jgWZbc`ov>IYcoU>yWZ{3@ z1RzX^&0JU9G)0=ozWz=d(0sPPT^v^PKxwDM6{YNwA}du!B3A^_D8_Jz#xX7|{uj#i z3~Q%oExQF{V$iM?Z*Ds8Zc48Q$J8AkTdi%~wq?%+tJOR^Q|5yp9BD;sJU|N&4dsH` zHmsa#rNwgn5)*xi1mX~nbZ}`G284hTF8n=+%==*^j%pVWj`uD;>k9IE+0-M7=Jklj z<(|NI?)g!s=$n@r(#7*6euzs&DQ9Hx_9`E~mbXtMlrOUbdL~T9Hl46Sa7E4A0hrPbL#V&QHSbml?#vrFs`g~Vcki16-e5t)xQbdN8P0th1 z5+e%a1L9O&F!`o7TU9B;1R;RjKif&Yn>4{}*=#B0 zCqG^C2fliqHb01P5GN1;;&M;9yr&JcTU{)oN&7?1WG7CZdX%ZT-+-9t-yjeWm(UFI z;vTyd?)k=*KzzP|+`J<#^`_0VC$uSwo&0;J^?-)y+JPmU{()YJv2D^G>u3upv<7ut zN{);MrpoA{040==4Etw*2is*tUbx?Yu9#iAk-O%`D6K#YEU^X#dn_$O%O@;B$UG7R z?h}Uwsq$o;;9exf8JM#op0ixlCPM_w8(Xza?XqlduNx9L2%P3+r`kjz??heEq&IgC z*e`D^vbyFTdu?~KY_sJVQc5$FTk!x;gJ2Z*z0KMbAp}|}1U_=s?8iII9$RX5s7AY~ z^!^KXMTiG-D4DQATk52+2N6It`3LlSDS90#1L6iGk)Jh>2l9ffAQgx!0mReQ)|vqT(q;IfKoK~in;-Z)^`c^g}OqaxPyxL=0hfOq`yGxo+b|Os_ zF#wUVE@BPSeKfP4p)y#Dz0n{X@H#dLXw0);qN+7`!~!|D9#-B$-WL6eWife=^4zQZCTf{{$!xPN`=Wd=30Yr1ZdNMf zEmXWCRr=LNd99f%q*fWEJJ%E;l@V;#sPr)D!RS7qW{p zGp@@jwB$C;Y?Iy*caji&{Q_BisZ0q*-Ztfs40liuTnB*#plK3c)ANKhc|u~iBn$6C zG$B)`%nkwmboTj5X2!@PbzHXA4aKP?688*nP?&Zz!QG^tg`ww8Iv-tyhtY(wD;SW?vsh5 zjznEDS8htn^KA3(I{SyWg(1SKc&@6pBZ>qC`_~)H4pv9_JzvNHf}a<%Y!}k35u(Xz z)PWpshiKi@ZuZm~vu8gN2N&IWXt~)7+suwC54hZcvt|`Smffd?s6w<^y8nr|`mACh z`z5o<5|x)JFF5?nDf$)Zd8%x!r_1%K%6)OC*%K=wvHmR~`Q1Xa7x#!jhycKWDHCxR zjt+6r>_zQ2J9AM^;t!h~1Dbts&}1nmsbY@VGw+#A$&HA~DIxY#A~ZWhFy2<)-?&eN zLUjSjZ=&08aCDNw};ji+o_t%R#bq@Y4RwNrN5CiR0qc!khucL$=nc; z^OapfG$9a6&nE@^i-lZ8lO=izL0;M_?keuIYF<2otBosWs-5}~ zp4$>lAtnpCbsA1G++jU%9RwEjmN7*~*F}l68A3d5-WNn50;UMqQCOt{C1N}JEAf); zXDkQFYDyxoK1fsD?R!~S*PWm>WeoJuW|K(<8fgI-4)Ji8!}-IV(quPlpRgbB&CVMk zI0y`&vM0HtqsgY13Y$bAt{12i1+>XDGDEiAx#GHL4$-@@^EhG;aaJd{)*UsI=ikLf+!9>mNM(oW5f?r9U8eNClA-~*9#@HHVP z^WC#T$~Pnye|^3BPz0u0LSjL|(f1jtgTV zFtugJ5SBQcB`SedTobDuZ86lVbRm|sRF2GIp~7Q9hgcU#eo08!Ey&~u$aHNV%uJPc ze=R#HneUwGmoY|fI`dvM+Ja6&GjnG&+w5NHm$HjBW7cMIXfGh1mO`#PNIQnjNlDUy25niz|bu2UW)cabLP-s_H^LXa|U1Bo2C@ zDteYlx=RW7FOi5W#I6-WpJ`OvW<+!2=RY$0$2X($?^_Vfk;#Yhli|+lfiV%70ZW(h zMJAeJAXA_L$3?RooVK%97(IAQU^02pDppFoPo_s$*=AJ@25Fe>&ve=WN~SXt$5YzRn-jAF;eNFV%J*YjBr3 zjXLpgpR_;Y#gPe3?K&SwC)Z06?PbPu1kvD9Ai~UPW?vI>fGDK=uV0M-8ZJp36hR=e z=$LI-BwSP)w72&xj1ZRldlyFtOZ@4D5n`cL2Ei!f8}|rNCAc8IgP4T1;;4wzIy=mM z^*+3RiuULmgyr=4C{BqGnB^rDWDuA6B@(rZqB>AN2+P;*7BLW#Qh#)S{0j4=h*SL- z+I`hgeCqWT#jO=*<~z@{D;e(09vBmWQR$>eyPPUT7EqclE}AwDQJ2l+Ah%q~3Sr0V zn9gx2^03cxkhp1fy3Q8LDHL+bE?WCf@uJbJBOfCLm;iMAWcR``Nor2E3AW0l5>dTR zN~})#-%82UK36%lV;#AFkVBw33GcEv@_0MG_kwla->%+N?IIi;y=M~~8lH;b$;;>Z zE&BwBl41=y1+iXGiE+r%329cSwdER}Hs~7lL~i6w7SI)t56(DMb6@V^hC1@sMc_~e zn7Y$ArI{kJ7V#La1@eUZqQrah1yNDpvn1q*ua_Vq@A!@e*_)?7yptl{=fAw8ED(I@ z96cydZYV31K^pRfkZ`5G)Qil?pENpn-W6`NY2kFU%F<}sK%Hr;*IVDXhIUe3GTb>m zFe(D05oXZPD$gvNr@g1Lijp!4cRA@&Cb_~2RwEE&zbR|K1ph9@6Iy4Gfdjn|i}3{o zBB2x`UtE!*W#$I~;2WHtIj)zjyxd_tk@Z7MO(8_y)Jt_F~VIC`cdFgAmUrdXxNnr}V(6`+-B{Frw%cXLKaeC^DYFKs-27 z@+I++wOmJ5&4c+C5Mc;%JckG}h5;m6Mj~z$KSJ~f*m)NLQ$zqjXl-Yd0&F<%c#Ved ziH~teL}X%^G91P4h{yIiT-<~@jfnEOc^qwwMyovWSi?qir=Ok6CkVo5@sscF%pMpM zfvK|KI)-wiHzH1<0|GdrkHq%Tll$9{Zj31Yi7Wv=0PaQuVkAFLc#T9io98vM`CPpo z+2`?b{9HBU7r3&ciqP@?2zx-|@9u>A>v7+B9TA&v1mSNc&v^cy*ZU;GeqKjzxZc-A z;GYMe{&{G_@Q@|%l07io0|=JMknDkE4}4C0Ac?@A(}7D?JJ|#DKpI9?$&l=UWDk5k zdjM~s$&l=UWDk5!dmu#`+9VJDoDN>H+Q}Z!rlKSQC&3`u1E1F(ND9!O*O5!sJJ|#3 zfg}Pa!64ZKpW_}#BJk&U@RC(e_P}*5v7#D;c(s_lJ*HJcN57Vnj?wfXzy+!%VgBs*aKrCFasIi0nWz_--k>4 z`MnGM_>0u$u|_l5A5rg&DMEu#ms^_T4T4hzb-1*AQn3M_!^%K3T*ZQDIIMGL>|v9A zqUYgK>?!7_UA-=aBL)Y=1sF;1hl#hh*}0mtc1b5ZG|L?%PTd(K&PVE!V}LdtuH7v! zat)W7blTt?`{l2H&E3)x=hFc7NI+mObJ%tm&v!VUK6@L630C+N_k8Q<=#(4Z4Ef)VKmiv-xJ1gzlJi0BB@JbT_*_Tk zG4dVHgiv-oe)MJdn?E~fMEyCk?IYup7jZ(K@%j;WwDh4KBg^vmBl}h_sYyJ|Xk~?R zM=Q_ExlMnrfxw`inxV$waE>ESIy(mKOkItf)OG5__qkS3nCmAmq@>{U*`s>Hsdw-! z%RO#%l#L^CKn(Ks61?;9>;Vx-wRR!##fukpKCN8vv|N^RyDs^^67tG1Ub{|Y=iVY6q=^g8X>xkuhg#@Wi{ORvh4 zyr_Gd&W)NhDbIa{kyj`qUS@d5_jtKH6XJ2n^PTrUu)EX_-k-l%Zxu7k?1K-t+Pbx? zY)WClP#L5RdB^jJzYF)FoUxwc-$MMMGD80YI10p#$A=lT$$M#rGZlFpOoXBK#?p^W zOVpuwx)1q=cO(t>#3h915SMr1p1KSHJ|Av#7+VWX$4NAvsPlT8bk@dS{^eiUum8sH z*^i$6u^l>c!hKEQj1EqX>sK|^+d`v4$8n8(VMXu4Jr3&#bPl31CpV1O2@r7K4k2!r zd}VdYC2gNLJ*UM_o-)M>iVEzjkF2zLb7y;=p21E0;mqO>KH4E7Ak`pB!gp3&Y$FGIPu&gpIa?0tyc|nug*GdYSQtk;%MZJ6cXaT z_{ux-19n+J*kQl-r~jv&I(6E=ZTfJVH8wPPe4OKxKBTKUTW#O_!E@HoAkTCPUQd0; zr&y>v@7r|}M!OK5!27<0w8XofL|p%?fD@Ge-KdO5t^G@ zoS=sC@alO<5)r<`c}ECwd4`koop(HkZ$T=<LT@wQ>Z23xy!ZKA`5#Tz24kNkafBD{PrCkB&mp(F8il_3!h@0FJXB$sv82u|EM zcNlSr3BM;qYr6tpa^xN#j$toW(-sR=x3IW@kh%~9bFaGp(tE<0cvnxvNu}2@U z7EJ@*e)j`MjA=SB`@sh`xD!9hgsWA~F0=DOoSd8q?iZ{}9@@{HyWsZ~6=i<^+MDkR z0eVENX4%RWOKiukefHmdaXO&W9hk*XGQwu-$w1+k2b0sFW0Y z;J)>?bm=17x^1VOsj6{g;&|6DKmCLi#QJYSmX5rU?=z4aWTH+GCkQPP0f4$z9D2{* z{dV-&Deu4a>mu&FMR}h)U+4Y8yIB?GKBlzu_=%IY@4#UZf-6QJtiNlGy9nkR2#@3e z7lnwG%$Q~mJ$RoV!?Wpwt?J80`4!K$`|iEV3Uvn8*6q7QR4zDj-E-G!_hkCkds{RH z?KZQ#O#a5Ry<7;whZ?II^=+15>4E$2@v(aIt@nK_IG$(j?3rE{Klwv-*|}?v<*Ppy z&abrHYGbC-m6lGoci;QaS~SL!MbsWv-5_2E4gw$H$uqWM*z7X;xJBoKg%#C2j;lXCV7PX=N~<1|L%AHtxYePX-k%^u;LlzwsrH{ z_7{Kt7xu@0{Kxj4?|j!TUZ~Tc2gHvkHWdfK!Y_Omc3jmaT*wkQ{lR@|>6vSq#L09y zV&~tW=HUzG&$5LJX3I&t{QQi_!!x+XpJ8qf^`)HgcItGMz4qoNyI(*uX;QBJ^p!US zbf@emFTH7NRxVXpb97v4o7J8>Z_oYYbz8D{zAafa-{9Cjn1_z~_1*V2d#T_2`WJ-& ztyU#ufkVtJFA?A`w|6&hwUejL4AqQdVaoN5^6Tmw?BD+C6PBs@=86ww`o_D?eU>g+U{61|+Ey%IV)aV*y&t}4YgezZ1@q>(Xbk~){-xLLAp!0E z_pYkk!+n#vrLEYEdk)y|l>H?s_o$xV+L~!E786PV+%ST&xSXFhc zEnYZZ`PAC>o%q0Z27W9wr%HL zpE`tsdnLLbQ2#NNfpDHYeb(!>UkDFEfBkD;^uE}qX$n)09ZJ7wVWq8Jxy+@q>BZCR z?zJmy$-;SZT`WJjiE!ZHVMqS2fAx!2Qc^7B-0Kp{S=E2x{JA1(ciVx3Mj#XBFdzce)yYq^5C!f8QZgTe z^L+8ihis>~8*}dBX;W>QeqVUv0S){SYiPWrx$}&K7Cgrh_>8zU06ep-)PDV6ebeU7 zndJn6vy#tNpHr!5*rWcWVknDBXH2(Udk?#)y7At-o!h;;X{)&O1j`k7=kyAWYppqV zQ7&Y49IL#17HY0Nr7+*77EKXxD77ybJp0@ z>dM0sNhWu%TP<@^?oSG1j&>O8+9EO%Dz-4)ebCPf%pDHc)fX?onIkVVS zEnldkN3)$1rvyK*o>P>c-^Ts~BE-DshtIv}oRoQGt&oCcC@5^ElprAFeG-2jm*~r3 z;?t%T*+UXZkBe)*_x^`c-gVkk0okJu-*43dz{Lz=0EFeg4JQ+(Ra!^8|6{F#m!m zK>b^!;47Et2w)!**VrVn8PONc)+%De91^0Go15clnb#4R@A&}vQ}l;=G8WNz$o;JP z07CZrzw@t@_em)fFIj$mzRj3E)fS1%Jo(rIw&Cuzesac?DFycUBlmkdKH9p|xp^q( zt#>vHL5oC8mU>?&Xtfv0nBza3GqMOwL#7rL`gkz!Cot!Q*bxU}^yotyoy#L4a}*B* z7qLGCrf3k2`h<=EJqGQ%N-lnqJ^SDUOu zbux64S5tGlZQ8WOe*E0CHb)xO+}vCZ&~Qh^+k-d^)u$s_D)PXRk&u?t3Zcx|nwO2& z;XQC-xW&ab+M+1R?3csrkGAe|kru-A{8YTM#ljTj?WF*taw{P0?|s1qC@?cAhv1A`IGUjw3CYGS!x@ zSml5g@*V9;`IHBRJgGS+9C+@WiXnv(%Q7dWoMP#QIVT6QF)uxRrdp!ZWEUan2e=UP zG=OGazp)7$ejW+-GxgS0{3 z+@ozK4Z)`p_4VSo`92^IRbtB5XAM zsaD&|ynj5R{vdtOcZDK~ASPoG+Jp4hpmEBdJjvS;;N!%J)3#sp=ck@{#K(lZ=qnJl zv}A^)51p%{z%+&Tj8XoiNsiP=c=Rb_G&(Esq@UTJF%cLg$Upr3ceF0K$SOp2(N^XN zh#_NrqPi)m=|W(g1KiUoAQ|uTA-j@hU-{~nHTWD_HsFK+K=1$}>y|ko4&w*4zRX}S z@P4+E?hhO|WdHO}5+{o$+cM29=@>dbZG4t%#4#{{D(B|qd*0XUnJ`H4cpwu0LGGV* z7+JrO&o^4X(bA3f?nd+bEaC;^M$CWt)wg`=f;2?9nYxaQ`$-TdHK8rpandg`yG>F&M-f0&^wPq9-TWWfAST`IP5fcPV)qE5&5Cad^i{Va) znps(?&Z)(~oYFIw85A|_&{@N6(s-hxZ@8rOI-NwwQb1+pJQqt4OCQm^YQ{8CX083E zs7#i9#_PPLG-<_IZ>H=U4T0kaWDNrcAsMxJzV{Bf~#{+U|^L|B$14` zMxUZ@+{Z)6b7Z})Szjd%Y2sy)=g|9D-NL(gnV;rc6E1Jht}3EUTBmeg9ZIAS8g#-G`PE`%bJ@c z{%E}tF_t9=L|}{x&;r*tv`D16WN*ImzJ2*?PuV?E^B0Lw@XHW420IYby|Y9t`g(QP zc-#Na-g|)Od0ls&2fg=3qL2Uquv6?sq$rA%Ra_FcG~06Dadu`l+1Z(7vYTY=xLcNFOQJ-IMHD*;R6G zIqBiJJj?9!^W8xz)GwcBx-8N};7J?8d1t33olon(&3=-fEsPJd%bWdsx*ZQtHf55Z zaKCoAL_g%8dm=DpPEL;5uq3hQBXe8efRK~}__WkCw|BYI(xEfFYue|fOArtvmN$4_ zy>`uxpFU+B+P{pCj5$F=y7IsRqfx`2F+ukmZP>8JQPgYKYOQEtz624vXjdaS9ub0Z zKe0uScW@xkCL-Va0ZJH<;dlBMt(^PC`S0NY_HmR+aFa23z3*Q?aY;y-zTDYuyD!tX-~aaM zXa9bXvVB<(lGfMr4|(1bfdk2Kk`xWnbc7-SimnLF%*vGjMUqjeraiTNo35-Zu;vVo zW)dXaSfqPuGaS_k+RH9ut zTO$pc6kA%Y+Xs~%)kj!#jzKt+hJ6keHGQ2;w(bE1KM-NyhLeZcv1n<+-^2N4mm4*2 zWTJ-i&Gqi{`*M9cAJ6abyZ;{T=@1Pd{tzKtN4PEF_i(YZHK@N?@{ACx8XC+ zdPd7LE6D@>oZWsh%{AutD==DF_sjDS`F>9XMnebnx|rA|#~PzWG%(OBWR21BPO*#& z`mMMq*EVln>yRrgCBuo{Z|Mktqt8`KW%Q6&=#Fe)w}*xFc~Xr-Dw&v{Y&W$iT)i%J zK<#O>CH+KldHURC`?X*F62@_hZi9DWlxuS9~+wgV|Q5>6zk z=qRHhh5`mX`|(z9XD4w;r@}vx6wam$MM^j?eqGy{s~0UtLA8oxNx5Ed$=6t720@6 z@|hc)W%C^w52pzqM2N1)p-KrU+Ow`)wMr(11MWIcG>BG9#c;#g)wZa#R2P58+Tiej zOV`oa?es&h>j*~Omf$H_lRH-vsl=+Ps`Rhg3X2vv&7w=SS8VT_Z|My1JUA--(L`%$ z$82%R&dW&Rt6%@N6XDaiHd!b22^hS`kXVQ&i0VfGR7KAjJm67>yrJU`0uz!W93T7u zx_x`3-{C>=-~AI+M3g6nrFRQ5JLL!!<^?pQ1A6@Rd0gDAvZ)`=;^e6sd-b)qr1p2# zAt^@{FTL`*tK*F~4>({~W!u|b2`ZsKijd$$i$r?vdxwtx8XJjW%o^Xod zI%0KaZVa%u;7ChLw^*^v0>_S?GvX`tn7K9D*h4{E&0drp8;AsAsBF z>R1s`;)vsSdWO@Nj@EYKJb=+$`tJ8$m!kSPr>}}co1-gMM3fA!>CBMhvN+XuOB})F z%U9LjM0Zrhq(_hWOwD=6MW8UiVxYopk@R>889LJH?&*=*WTVbt>ok$I-`5HZQjrz~ z`2iF$MDcqid2iIYD%w9t@(L9}39zJrymgtO{3(wD- zJ+HIhdPni0)Nm8GL~%L$?Uis3EiTGMLkdLx{u^&QHAT)~8BZuX=cgIU%h@W*|C|vw z3l3~o2&jzG5451*lt5hIMf(5x|9wsKAjVM?zC&?Pe0fPnLX|RPfbsyt(`U~)VI$|u zw8xJH@I(h39cS|904KEzg$dMGImf097AsUBfn85epG(Jia=4sJ8m9|7m&T+pNlFzg zrl?R7c*jPabMBL;&$>2I7iD18#h7Dd)h_`oDv{Jzf8(ZuD{~Y$*K5H~(|7r~k;U9Oe&$~ims?tUAYjL|`O zskE!o9e~lCL0ysqc2xhE=mQc?b&7)bcK106C5YOkm3~6!$msr}1%tM|?2<6_8>L2IJo}#Rf+8~q7>&RZbR4cYQ z+YLIC814k?A9QmMOGBrwzR?Xf2v;S9>(}ucmO&i&qZq=3#b^QjWRw?}0Mt$Yilr#P z6U7LW67Yy|w?aTO3ZFKBol_Euys!;Vw$I7-U5! zn4>vDL*p%nJSbwkA#*(HLfL^ugGuQYgovu?S?M^#adm48by0O^Y0S_zD^`C|SYdHx zQNAv1tvh$x9c($@eRJPIOVa{zT}mdL7@!E@xf3S)VVQFl7cX>*HE5uLNc#@F3OFd+^FmV;_H+odB%Pg#MKPN;jY zIHUw=rnO4(#UZxphhxD=0|gVWq~hD{pRSP)>CZhe0ONz6PV8kz^lwzF(rtCVN6Hpg z?C`&LIJhNTqVmsX=dve=GNBKZ@*lY~%`=v68NgIX*tlUrm zCM2sn=~z%0>}^}tyK>mKVh(pf2+tG5;0W!IR3Fi%!t4&jCD2C70vQNsXodGmlnY{~ z3h|kcqUVzh$h9;-)j7lX)cUBw^s*o%^z@$cU5j61#?8i}4r5|ua z*Cazhs0z}ct%W8RW5Dn5UHuDQAn0!83NpLS#e;AktjurWSt4e#7Ku$5@Xm;j(Ipz`t-*?s#P>q z-%}!K6WtL~TT6!&(xs50vagCdb@j-tix!LgoJ^M%7CBLi!Km2L38m3AcVJ-fp}L$w zKL}iCKY@iKo|Rnzpu%eM2{x3#WJYz535Mc(Mn;-LbdWtgEyWEGW_qyASjC|K4NJ=a zGeA&dR166y)KfM`Ww5{kgO0{lxc+-YbqPa%=ob{3@|XlD>zh>2L2lSYbhI%Sg!)2d z3L|Hi^aWjS0xT^Er4hA57ES=+m2RjXt^p+ukmimohd^ZV=ZeE(zlj+q zYL%yj42%tNEWXS$xGn;1fO7-+Q6PF=_Su+jPG~`XO*YglVsIfW`1C(XX;M{Yr6?ls zir3h)B_OPlIpRS%Q2=pYcy71TF61-?m0<#U`HUlNW{X9@6qS0(lPTCUZft*6t*91( z$Z}?ja1I22z%%D%`*JoYR`V?Y5Tcf_=NrXuYS({$*=sf{qAr4n*HWy zK4~9+;TcWFWZ7n3kdl6`J*RZ6WX;XD#g57fM}UlxdS<3p*AxL1B)MOJP7|PN7^Aa# zGqHJ6HbMvb#tI9yWO6Xk?#P@BWMEZi5SUC18UxQnhAk&Qds_C6u;8q`gbwYC2<&6g z5ohp0Zt}Nl8-f=J>Ierv$WU7*@V>VXJ8FTlK6^tb?U}O|)D}@_O)d~%T$32e4%H&i zCSc?PeTE`=fgSxIupK%0?kR_)<(hae{b0X)2U(6wpvIz=Dhk`saNA925RiVl#Z7hi z_Jgnl`i9^V%7;Gr${;2O49muu?FsEhZ5Q?yuHfXE^NtIETPc*zH}eEa9VNhMsvIN@2Vgk2H+gMQP55W@< z_u~WlbI(064L>gv!S3!Zu^t7QJZX07#CfgCGW`=3f+bCsv>C;ER^L1!d28DpJN)*` zwtdGA8C)-SHmYps*)!mAgAOxTnVD&ptyLO|!Y02$cC=8h^t5DWSp)0I>Y1l!qE^LZ zAwo_;uBaWWF>0Dn(R*XDW3-iq6}(9-F;4_Yu+Cl(fucGHL|Gi!IN^sTZMjx#)a%&O zpr}G9)!q$91FXEP&aBE%Ze@0e2cm-jMTLc0l^3~*0_)Z<#9}`L!m&6|Zn*8dgVeNx z{V?(X>|+tA;OPOIWcJ@zwI@dkyh!`9#bWuOhUsdHH=tm#fLarPB|` zR3;A?)s;)!UbR3%Ni3H@#6rOrhXmLIyS=XZ06R?{SYz4;9O*OTNdUpv>d;nn*Hxi2 z)@O`h?U~TDfj$xkQeY>%T&(C5YgUP)%Xicg>#Kpm0f$Jyjy%Af1(7}l`&-J1Rhj~o z(c+9b*uMf>U;)A}UR0vr#g1zLaWSZXEe64XAq&xh1qH6%AR59y*x;2bmbt|P4KbV* zuua(@=Lx_DL1VTSJ_M2U6K*BoCQ_VyfH7rzf)EmuQ|bjSgzz}Kh==?qsxgBHcw1YW z{q5g<)tv<|C|W3Ko=n38j8Umbj*Hb=w|eVZZTP|AYP9 z&wNtsQKmCJOG^tRp{P=hOS=oLt_i)fx51^(;Lw;8_E0CTPY^mRmNm*UO|-?DJcU{v z6E#4zEkWKfQ>FR!et?61wq}=`jKGk*VHPLaJ84*l#{ZYR9EFhYrBU#bwEv_qG6U5A5-LGArv4eUOmz&oF*c9i1L(? zZ!9LnQ--gPI(#6`|MuVEP6!~h`$ig-0rHWRMTkWhr1tHFO7jm2O2F(7$uMj^!KdRL z7_gv0tti6>;KbG@ybS;bEE+5#1dugYvIEvU@SYizvc~Uz@jX=Cu9?f~!7Kz2q zs3JjWSp8yj{_JLMFq)y3&;1GuJ3IJ6AU@hVa3J3AGnqi)fx+oOkawmb9)UazVXu6k ztZ+R(-akD;QO9(hY6F39epQb|xCeh`x68-*z20;}z4(dk>=$`BQSeFJC^Y}l=)PO(%4 zHa0RTv3{di=WHty8dP*#CmL=dnTE|Jr zQlWHv837Mn=Qeq|yrR8ETx@~_SzVHt7D^hLFJwKgGIAur9JU+vx8#KENwKJfTK!NK zU}a;+*5#W8_cxJMa7>_%gzAzHL5ky8VI=KDPWK z=i@17I*;Z9`NHMi^-i6$U`$?L7iE3W;l2o5AjFYufJInd4p%ya2Kbp7SyrsQ$D&2W zj@?741IKoiRaI79U1@*(um4cUS?^rGAQXv@lT=h?jEx1X#h_TV`kOcHW|KT74&u=v zSHcu|UFaRq0+DVh8KT%itP2+}NO17HsLvwDzQL+_AU-H?7++5r$>Y%{GVU&B=6wbU zTv~nbl-B>|NnoJD&uH&H&FpV3;~am;6Ry+c)gPq7bA@m{KFw^z_3`1f;dj2zm4|Pn zot=Jm9=^|RJ867i?x+y|(>F0zk+7Y(j6r&OMCX`^GBn6WyGDDP7-2N&kTNF3Cy7!v$aTp{tzM({%$_~= z*O61C<3KF+q}0aR{?RKo?Zb z><{z5A9)CPPQlOjN3lau5!iQxy+Dar=j5a~C*7;B7b1y$W>0`H1DCIpvJW1V&!=nG zu2@6ed6^qZHBibIxiVrnql5f*X=xz<>uhgzhv^0R*@nP?y#oRZj%5(}BOn?Zm+Gbj zLYeXnb^BI_oSe%)u=Y9cNDBsE%TGPE-LjQOwfZK``2;B$nBKl&d+nVjyVg8nsYwW- zf_Mgxz!~PK*!i@iDf{RSNq0-K9fkLUdN0I9xPhDiVGZneuwVo^!dwDn&9xBtbiO{{ zAs^3g|1D}92_k)AwYpb(Nje{9AmF%xnV*m3+dUB&bHYKXqDfRO;Z?ac+>{z(Ydbqe zA*K}E$1|OHpL5XEv@Cn^qdzOe9+lf!v}i^}Npq~}R=X`K8FmQ2VZ$nU-l(!HNd(!; zvL}X(xhYnf`wcDy;;*|J)?1!lQJcT1VSaSNi&_vo*=>6nACt*HNRBLz;!`3mNr zk2M7Djli0CJ>7Cs+SMY2DzFOOJh1Q35dkC+u%OZ z<DXt%CTYNYDtp=PaAzbeGYLsP)8bwiQ(~Mr>yq!+qPIX#lMHcz2I0SSY6Nv!f^|AMb;VVf}>;Mv@OUn%jl#M&sV<&1H(yd#w-2Dd0aU_m*6aK~W^@*_k`APwbOwS+H-6*KtylDABm{ zrjakLma>J#QnwRQ_4f)X6Qrq9pvj&ile{{sm)1~5X11ehOxz9`MVvl+S$7Y;Yd3YK zoRpgG)Zqes(*d#1Y4!`B{j{9jb=e{L#o6(;u`<;*E>5;j>=IIDB-)y)9Q%XMSKIcLazxNG>X0g29*7KU><{T@ zV+IR@inrC$gI!i#AuXc@XNy~NzE&!NrMkIbz0*2^inGmt+v{>m0&UR=c(xm#@_6ij^m1byThQdZ#%?9lk8y z=fmR*fqNn_-GG=y+MV%%caM}F7G;H zg?aflAZpGYZa3W**yDwn{8t2&SycqMs+gYGW_IL6xykyqHZXyH%#T`!%q$b z?uo$8lYppDOkASX$~N-gkt3Rr#j+7@(sYbQvLZ$kvR!(<(gps)XFg>eVk5gd+GW^K zXoruTlR&G%?J-4LruUHd9Hsyl93>ji5ti^k2ox_iKDdk6=k4j2)AyzUwGE5oIi%Yv z3-;R|+WWjvIjAM9J^SGivC*gqk{0LX1oXr~WOS&#nj&mBc~}5olgUe9PYbtl;?y}u z?3YUq7u{VJ5A0;2xCE#nEt^G=QzUWDvn)~Z0ofHhL68oCy%6X@ zM<+?W>>nHvdp@XhW-NFHgiOKx!*^QcgrHmcy&$g;>h3_p6hI)IiF=_@5GjNcQhGgO z-uaGQ?cznn^5St>xAL7;J)_!}E|O2F0;iS=ayH%8MPw0^L=ZDli(70cqfljV{}KD> zZVCKIvs5g4vlcb1cp7xoCL9e$1(-e_Id(=?I2YWzGp_IroPR#{5V*GxE7E;DE98lt zUA=m>yGnz7;h=Pur(~1>>j)*`QY4Gj(0`qfoJ?h#Qo>A;EvrpOA3i@OgU zIcm@D-X%ZL>9TXZEd>$TnCf^ZQwkg@qE^BTIR}tUv6ME3L_OK>p*(^pncE?}km*52 z2SbUH%y_H0+8H>MADpz)mu|V^BdB@bAXjWkLY){GBKR^vW!PE*`mJkqRK&3t!6P!J zdF!57?$}`{-)0%MV-dqumKhn%@|!i{>_j>9hFWgk_=NKi!QME-x!;X-M)zSoZThxW z0xj;tCA_d_M{sl{7$dksV$D{9MUV66Eh-Z)A4tGUWMvfANp=Oy|9Pw-a8CqgmB+vw zpFdE>QE4<`Ny6SNGb_(hGvqx($cK;%%a<;h9S(}p_4bd-r0@sRfZN#foK;nn%TQrR zEO@EZBd=RucfURN>~6>QjdpcdS#hbevcZi`bITo3DG7cCbi8!poSl-tEhruKuoI&A z!KL4`spWKacfG`jV)tqf{x{cUWKk}QhUq?VL75Le57bd6sCNaQpGaRWNQjYmI6!@|Nrf8Y zWPq&<0k~9YZ|sAw%m1E#KHdg|6l2?VEUhatH_=roM1Y?m~h{LBv7!JoR_T#tPt~gVMtJTzXepfSA7ANR)ecg!N?- z>EnDls)ZB4;5zxYi$9QUQA-hW{T^8EP!`o8`6TQc8*A14IviNHV3 zhCQshg_{w?eOM*__{srkeShw^c>VZVIbZXS5(4){U?$D%;9?X%*CdLT$CV)x7|`Dc z>lgYxyAJ=`mqlGrP~V)n>h}4KFmX49s-Xj1mdMLF(2k3Fb{!86aw*_tci!a9;$*6%EMpUXAE~ zV5@)F0@WC@${6Z_Ls*|WoQZfZ17M+=OTT)q{Nb|h_3rY!MQ3K&iB@K`xNy1dyV{9^ zgg`fZro3>v@H@V}-GZl%2Kik_=j>}ZZ?yMt8^iCU^}l^STBq7vUH;n)jJ;t-&f6(Cj=wb7q`J$zZ zN`a{W&#hfU$bWKR_Y3kkn^d}H(s`bGp$<6oo?97P5{9b)6T1s6&B{N zzY(GHkPvrRSCn>->cZ-naa*jL8R9j8gJGH7gPGsp$cvynGbNJ4gVqmX;Pf zaNvMkWquU+; zJ`{&R1L=t)KPxOAB)|Xt*W|eb_p@1UAaRm^^ys_tNYX4gH``VeVrZBwXIjKT(PdMZg+6(BnN^9Ez??g~@+)alEQclU<{?WPSuAI$3OuiL?chi%1*Whx`iwVQmt z-L8=j@COp{o)C0V-4ejkbs<>3t}n>e#Ltmi)-3(YOqP$R$b0ZiP#p2Wzx2d7%T&G$ zrOOaNGSsbzkC zw=P)6m3QsN$=9s)$`OrBz*o(Uz`++5?<-fY*r$K`IZe2FO+;2e)5JPzpZ%GivbNS% zx$;R6(#gYzK7jCjeS_|GUt_7Ub9{; z21Dxm?|<=6wHRD>^&C2UMCqHI7ZyCFsCM-SPG(RDJ1Us9+gHBwHMOPAEl#wltFv8R zM@Lld*mS#TI|~mkeDCP;`L6E12>j*m9RF^*61Po#1!jKX8<3mfPF+IK(soDf4O{~U zaG11%2lhFbZr!rM-9Ylyul~Kfjt&WNO^aoh8+ULAyK=_B`G@Q2cXNXJXag>mNk6QG zr>?F}cVKt9d$1u8;G2iH1Mma<0Xk7bFl?eOZpH`5%*w}qtXKplJdLGd$2PP7<#*(t zKJb6AswhrfbKfbOiH^@KyiMZWvh`M-4eAc2snJ1Qf23Or1Q=G~$&r4WkQ-W?9J1_8 z9G7=l(aKfo=r)z5GN6X8Y`sSbOuS6xd-}!C+0`pooo7vu<=XXn`}F62%iRDmA<6;* zP|VGnO`^E_-O9dd)hb)FW{uqFX6tgbi_WVQovFJEkzY8!QfMV&3FSSSR$Z7r?s_H!S3 zN>m|H6Qajn-}|QZ$l+gMQL#Pu+-~ReZ_AeT_Tr1X<(F*K{`AZLUevf&e#_*>RvgBQ zFTP+64N%2vx}76rlC-l;QZtyNC;C`Y>k>yp2@8i%#Rd3xov|0Ma$I{J4=>S=uYWoImgeHTks@Dp_`jpL@DFs#<%uCVTtY9^^6u`Zj5AM z9CBO(UQ~hmisdUUUlg6OtzGNdz`VfOA~%zy z%CqV!U3*(1Kj_!ho)OK{D_TtJuIuU@mA`!X3Q^S+Zjob5$`_T`ri~kQHP2<;Gu9aoq6H{05^PuS!==CT9ctUv1F+<~${K(63q6~d=goCXxv zu5kiTyr>h7(&OE?fQ{29O;#bO{^8A$wDFqsO#B#FMgA!dgUYuQQQ?l;m+a*0e{I*_ z{f^zfaL~GL)>wbbWkJ8i(&8sAGfk9V`?ieqY|GLOhHV8g0|Z0ufHLLD6(BoKc#eyiU7AjNWW`Sk_qRye%sb9 z4w38XbnlTSISU$h5uHAD(y_nX*!Zn)za$^f`ML-#-TwA(zoNlu7fY7lC>rfmx1A$* zCic@iHmOZrLR>t5-qB^~i&b8QCf$J8`-5)cKL7mlj+!@%f&qX0d-aJEz@h%il`GVr zPU}=1=XK)+ed*TSQOAy-5R06pi`JLODPXRUagiM1Eq0Fas;Vm8s{fU*enV_$ktT1t zsM*(@gTXi6c+_#StC%ylh@ z<+@HLK0Z;%c0_G%cZ*iArwn{~LuCjIU6Ssa<}!dAHygFEwAg1qxknT?)h=DW>h5Xg zvH-Ri=gwUatVismZt6%^ealxYw+g{%<+3VUrbP-k;yHDhZUb4rex1Gf)&WtvW-Wq( zh8oO5!rr*5s=`KvuxD$|3h4%fp!M=OUSv;gf6^{pyeLlWww)3i&lNY@wr$lyl;h?N zi@>-RFSZ6B{m93J$W!)5fAnW=!C1O%xm^Bc3h_JK^}FB!oYlZUkGQUDPWG^N-FlaQ zTsM&{(OhB6aq7fzn^L=g%?5EtrE(Yi#@>C73xhj(KU8>53hW@QKXJm~1T_qgh`6>x zxa3^V2)mh#;!s=&kR8m8&}jEPNKXR3TMW+Xm}Ue4MeNb-`dX`b^Ba~WL`}+BV3Tge z)v7zJ+Y5vwX<7tEMh5MAU8BXR)9r0dmiOF8T?r9JAb6kSF9U$5%*DF+i-~yl>^ZTB z?ee|6%#I0ZVXqJ{6)!Au>}Zczy3L>Zl$9>frD{u;JLHB{=4#aC%PTZcWg4J}qL97k1f>CpQWyF6;KlM%%h=i_*u7qGmZRf+2x| zGb1R2C+!A-S=>v@O0;cwP2AR)?R;vRbA11U*ALpJbxYN+bfr;QT8IQSx8Ux6W|vi# z=2>$`s#}=2Y#=2yO+-YF?}f}Dc%i&^GTv^U3El{al9H0O(CJ<(I70m!73`s)ESSZD z%>rE>(BIeNF5G)^#||sjKD z+Wp{r;d@eG00)&!6o8n7jsgo~p{@+9qs;mpCyI*Hk$r@O)efokS>h)KjtxB0JZ>>S z=mXW&UN=2K2rR(#>dKV??K#BaojJJIE*yEwt{r{L8c!avQ?I^ix6YrnvaD3giXFA? zTh}bkNdQyS(dm`I0eP-JB;$4oR{u3?R@(Po{=Q=smn>Q05E1IkipM2miAhOr!m)3= z-PSLlUJ#P7$JFhH+Ryb5D4ixg6NZ)iT?uFw$n7o@4aDVI6!_{uGCS0nh5dxexNdwO#I1*)L;Mte4 zN57!^rOuqG(G8H5&QD&S%IQz3Nea%f$;CS_FtzE0TA$P)oTi%|Y z9@k$dA=Uy0d`GlJp-sSm#en$(l|6C#taCA3v82+;BEI}@|5lf}XNgsfa}`Wl*hYcq z!xGdE=pHJN9Av+9=Z
(S6Z^C+(*k4X+mBLHo{kzUAa8Ti379%^@4zrS`Q~E@|)o zy4$aF^JZ|R4p-)Ad!egt#;rMxD_y))Ya^nU8;{ zE-5XwFZ|jLD=8}zCC`-$U)@k4s$K({D1x7v5V^Rfgo z-S&|WKd*^dt~7007?bR~-+ft>rb}%ra+3jn+~i>#p!5a#dG2V3`>S4fevcE*b*r81 z(_ulMe{Q$i!(YB!8-dxBoj7?y)T%`L^ioZ>Nx>vmtazb);kTdDWokLPVIoCss1Vi7 zaqKJ;lRZChh0>-A_6&BaZmtN9kOCM0i;RqP+xg@MTdqR8Aci%nc1dA;aIIUh?=*EnND@EVSwAk(4yWeh#*xc3)n@>IUl$BRh z3XyMUyK&Raby#}eMlL;|4V*O4hKm<#o#3oU*UG{Tz+EsGka=(#;sz}M&jbIBs>ng5 z30fh$bf@m#`VngtCy^!!io7URf-0yV|Ae~w9fH5r;n_A6>Y+Ng( zX%90#Dj|X{?M~4u&%H#~bsb2zBz>`xMowvU?eDy8`3n|VW{y}?u{e|Cqn2pH_VJIu zXxaG-?3>?u)vjGWV|~N@_K|0Q+J5^tzaUDUq*e0X?1q}@gcG!v>tVXOx`0+i6Dr}y(G5sl*a%f?ao&_xqFHU*QQ$=*~1nT=1S74 zGkN9XE~+fC$?W0i9}|XlQ4Rt-CMSX+_V%=+NH-V4LU(s}IwXPZ=4`sIuFg>~%4hG# z7UPEG1MKP8Dt?cAxU(3n3DfzEf!@9DG6G*47rs z!n13Jy1_PfNf?(;*g>!W06+jqL_t)TnC$xLCEQTr&dxT6*jyG*n`k4)GZ`7FZtoBE z=l*H(bAIh%$lf1mG!pe8aX*>5$`*t~st?kVj(Xq<89$DMvIR31jZ}?2+n}_x42L}A zA%Bwkazhers697MrV43UjC^~cTg@tqQ;AF=+#)TyX=w-?y9_}gWdnQa2SzMd!MN&% z%!UTX4dqH8nxuKlWeIRd%sH+hf>UD4!*w~p@IjIJo(SAMG->-9MyzFcN_$bQiJC2f zM^FLp5$X$am;^crIw~3)>9%w4ylM>>4@>z%tg{Abu(jEmYIVLTVbsF%m6niEX#ee% z{W=<|V?JA9*$Pp`60Hsi0zig|R_iE5$4C<+_Nh;QT*nL}_BF9D396%4fdAx2KWhK{ z_x_~-%zoqE2n;YdpCh33z&r3^RfWZ3U&n9QB+Ye)5X93Z((q663k~8-9^T1EI(5#j@Y`$l@|q%C3qICN0`caIlo>8o#J7*?F6QZD@u#}mgl+Dm_Yzo>5}UC;;O!mtU( zA;=SkKkpvquB&Pjag99$~PsL1#uIuVe zL2gu%>+Xgdt}n4^IT9e1TfNHrXTS6r``!Qf4^&68lkm9(S5+4OHef{G8v1uHxys(m0NOT9`a-UnDM^7wqjQy>3k z(gyE7-lz3xm{7rcP{039S>f_YgEB-Q^9Uv!X?zIU;TMd%VM>~Cx%{R)ALr{Qo^W@( z`X?l3{?5*Gce~I4B;NMe_S^J}*zw`Ld_;MB@4G)A*-PLs@fu_whk}f!v2U zg0IV!r{Bbe%k|BSD|YS7LG2~Q+QsQ+K^=$m=sazSSeE2v1(qiv)(%PeQVJJZ?%vn!YJI)^ z?QLB*DiWaGf|gJ1Nmz<;CndjOnbt0P+nw? zyDW3H)93MOj!=u)A;>!u>+|@S*}sX87WdwGwUPN13E@29cRtVlJ)Orbe*RbR^lAN* z*l6#>`FQ^fmo(S+aJ)|+&L93hGde!y-EEnPeXzIa2&}xU7>Qz2#@g%cU;URqwr3ZX z+vZ)LvefKCJ9*$G>u;;I4SPOq70Wj3cqi6Q9sHhMI{ljVL8zWhS%;2$T5jF8N>S4M zqHG(|UZ_BMOG*}6w)R|it`%!f*J^8*NX_p2O{>!F@`I8l!WMC(AZM&v<0YA#l3**x zDwaz4B;m`rE(*7<-T-Z)K_g1PXRn4N0jSgQ`t4W7nK*sde@yzwVmdvzQL1=kqUc|M z$TPqT;%0tF>&!Gg!*#Z(KiaYo6F+XOADy{`F03sr!K~TmM;0%PqCK#>?81W?FAYpEcjQ zV>g?-EO(;cvb48t*CBcAYpRko9z1DoY(K>bPku1Gt@!mq!I7`&(86Yoe zWnvj6L=mHIxfwd^)P|!^f{5OW=dCPv!2=-^g9deDzZC2{0v%O4&fbK*918|}M!%0D zjzIcE?d|*?i#Wf3^OHf-mgq=e(Fqm?B7!t?fA_g&o}Qn$f1YUd2X#kEb3b^WDa*Hq z{i=tBrxLT{W|z-z-~y5cd%|FW1+Knco-=#=nZEe%GyUZ4Zdmzmv+H&7t^nR<`ob^Y zCid2>zO-wm{#o$XclyXU6Q=t?MionI)jRhs_(KdK92dj{f1|bk?mSWZ5-#E)y+<`> zpzK%;&aiY>CmSwm@4DJ{KL4}UBzE{e{U3i~+n@iKjt~}G=dGL8(tJgT*k^H5@z&MU zZjD#!Y(Nr11W;A^nPQt0tV<&KHQRRDq|QYD=0E&zwte?bi_!l0yRYxp*`2QaoEWh9 z@j*+}emY@lRPV!<6gOdUlf#xO%*v2tqT#|7YnS9YRg#h=Yu4H7E!*6&0(&Mu5$}dc zfV>=AA$dljAW@1VXzh$?w2=ZLZA6-i-fFXy7?2>|64$`F9EvMfuhl7CqRZ2-Gd-^K z^g^S6LkRX%3>G0w)q}wge-GHRU|{c_7&CDJS1?n~d-Fs~%OXSwni14V{XQ*E7BVE# zoGo+2lcLMYNsmGS3LG4x5kHe>2Cn2qV#?Vm#vV?kR$V}H%DH!sU>fLa^X=~X!4?Vj zU0r-5&_CZto}dt)f;g9C*7upd@Rf2{P*60ve!bpFt2wIU=n*6)`0{Bx8c+0_IQr1m z)~@3(9S1@rrt6&lxG&5*^kj|GMqz%5!yx$E2A5U2iJ48ib8p`V0r%8M9 z;5$0jNVQVwkm}^j@{=a4uB+9$dTvWIWwFI2>2SQQ+q&v*ib6_pU3=jPAzu9CfbEdh zQeH~BO-gTfjTFGk%f*IoT4!5#Y_+)lVH>)1!Fpm6Wc4Hk_>@Eqbi9rwQY2!Gk{?*?_7U1e)JFNt?!E$>JiT|-B;N zDB}b$;0fY!Y=>$pm$aj4cjd}e9T6_k;;cEQH1ro(QNABL4`0Ru_>7DU>AYN)YqB=- zV@W${e^6f_ZbzdJ-$BPnKF(^=v8=!m80F!*}SyY~FnO;#u>`{g&^ zvBav?R;_cmuDD67>*%zM+zdy(QUrB$rD20J(^IThS~b^C9k-$aDFiIewPY!9BY^hy%K}H{gK23}i_U6~=i`;~{tt~=%`4VY573 z;tHqX0_-BJxS;3OU3P^M5wm|`$PQ`VZNf2DL`R> z5GN&y@Ba1Q+n@jM|IQBWf5T3nJZ~jBQ2(D^`~_Pe>2mKthqcOzC`rdWdHJPQQMpoz z^VNDUwpLkQbc-b(O&GOC9qykvdD`uVCpCCo0^n(_jE8TxT7P@5l<}{sEGZsn5*IG0 zuo-Qf(@3VJ~9MdJ^Lox?^O$gF4 zy-K&Yx7bTBy)0F|Q6c6nJ9y}z7R+&31)b33s@1u0vJ~ClvNjYov%Q@tz+Fs+3 z6Z_mFM~-4#?jorWhZBg4q!S$eBzI@Rk z!=XcmoN8x>6iW^tKJ2ytP-M0|EwYAMDZ>V+A<7SX_UsYzEEBbCwzuATOYzAn=ZfQ~ zP%r|S2tr}E5P)n44<2-j4_b5Y$T|sbjW}R5CAhLqbO_E}Qbzf^|MoSd9a7(V?A2GlFZs=+IJb5!oHc?61d#<(K!3;~DgwJ|_#*^v z6$|@cFPyT*uG@CCeagNnW%EOtpbMqd^4#k6Vwus8Ew=J9DcsALKVHW8u{t-7pOmq+ z{tZicHC2=~H8IUH#EKV6A9QeV!oIWrsQu-4_F8pXy4bT?DU!EZT2{WT+qld2Jo`yo zwS2P`e3-l(<&N zH}2FOInVA#afGP{kRyQh`Pn<7tC}XY#8p!FEEIJ>8NXFpQlru`V}*T2iuND=@CzF3 zWLdLpvQK>SV{Rg_NW=?M@J@lz`OckBx(Pw^K_C?0ix=eEmdzX0?>$au_|gR#TnJ&e zZQX2pp4#ZxR`iWE_Z;#v8=hFR%Brd>otD<>RZ@hhTq2}x6Q#c>q{X&Yq* z$hKgfF6}jYB^``S%Ca0$?Tzc6uq>&}bx9SlS4b>-8mG|zJHPY0 z_9y@DKie~Ve$KLUWn|DjW@Dm;Y0|Y#Dp(>GT0#=7erZDBZ31q*R@Y!Hy+1f$dtpDD zb^Nsdz!9;qi^O`C+sohI>o5p4NLI)sO@`S3CZ51{0O3uWxQJt-YV3=g1roDcSjB`u zjSqG^u*A_`QrHP=#+G2y=1rOm8=Ri;i4&*Xs?R64PACt$u%yR`0cygkPu?Ug1_UM_ z6an4Y=bn4k32!i@VDdvGd!RN4-Ew7Ng`yBekdr;P->o3Sgxp+oF1`+JJ z(;XtSfU*b@;zeSq8!jS7URj2R$ECuWX?u3>R$o%JNU%@Vs-a4tl-dC)9!CSWojx*f zgJKfc99o&Q z`M?xz0Ob+dKj!+8YR^Catm;mawc9Z*LFTR&AGA z+s>Vq($*~gWz5Q?Z+ou3$^QB;ziPKSW9;I!F1uXUV_8K@ZRxt*w(-dq?CCwvT3NZ= z#mLJ>lKxG^YVV^}@9eP?l0YZhKl;M2*q{Gj|BwChKl&%K+WC+M3Ddh6r$RY4Asy<; zfU@Nkm0GOW@NDTJrzYSKd?7&I(PCRGso(VI6#6|`y(iz4^RG6`=J>|*0 z2*%joE?>S(hW8i64Ri{&ZVoymxzpNV4T23;N2Fh|YKT(C>O%s z5tX>C{aU3Klw_xK4JXhi3#I1fCPzt_bO>@5irRyKi)0v&!0G(?^G+B8n;r%meTKWB zpRm)Iv@uUXASez2mU~QWG<(GS{2cqv%dcCG+$n|1h-2K%V@>Q66#-C?*aI zu%yBy5@8lf|F`6I17uquW&g{femAAm)7aSPkOEV?Oi|u!xgx?u5Cp*{m$I>JTOs!O zw5+kNi)Ds-zOnZWH)l)53D#bzwfd$G_4$GjFjPf-zg5y()7|`uiAB)YsK(ags+FaRiimt)ay^g(%ZDg72JeAgF`gXZuj5 zxmqOs^-C8o3wFcSaPwAVVRj&WXn&$gp~YvYQIhnj(=SN?vH$P^4Oph7EiTq*%CbSr zaqnQCjimQmY4x+R;~ddSbI0z;Y1a5us$2bcJh@G*>MGgwN+q(bQ9z%tmd-&-%3osJ zc7Moni^|k#t)ktdGTj@rmiB(v(PSxZ#3#fly|l1Ifg00t*U1`%iN&4}Mg1i0k4j2PH5s+nQ&Y;z%T=fL(kiREx>~Ty zcfvFFM7wuACDylE6A?iQzMZ;-SoK;g2AxSGM(L#*eC%%7XI{K?MTYBDwtVGkA#I9N z%)h8ff!*n*O`Ft?Y$5%S5crPzv%)Pz7yx&(k{YtFevszMwHlN|Fo zU<2Z^SQQmfBtpuNNKP)I`&R)=B*yHSBK>)0EIwUK=fFGj(+KqP#%3=%9 zcy+Nv1dCb|PD_QG(M6%qgv zf9~9Q=k^C1>Qb@ZIU4sG!3vvk_S7gI!3kWwTCXk8LR+e_L%4YD+I6>`TE1eLjB`fa z*kgT`B5ny}K6n12;4)>~cWhT&s>bn>$_{*J0r!U$qUu63s5tk+FVXM)FaOvEwK3oE z?2C4@NoTy$S+2iy!;Ty~?b`5%U;J}tj@ByQQWmFuMr^9xxYc4sc_|VIWy$|ljOEAo z3z0i)EH1-}B)KbGen1fQPYTBk%=1D1-(OFEte{~msdn7DZM ztsL1v4gApq?*w1Y^t)cPKx;x{#62!bk|4HG`$Y+q($ZqB=3K2^)}HtI=bp1vS=}(U zw21{2?+>F|EK}sK%a>0Z@U;ZRU;z-}b9Ex!Wx}#pjf~*!K`wBVkMHyq#{;nVP%kw@ z{RsN4H{}l&I^TA_c|n)&KmBoev_gr{O!pmx@^B#yWzbgQ2)tAOn2xYuZ?OS~Eq3o} z3+1yFVE$mpgk{z&vU%Z1A>EW(awHBo~SKjnk60HUSLtsul^cOo{#)I_0 z+hul3I`0oJM5n-NsbibOKEzD4NSGv1pBh;wsbpJMiv%5M^1hI7`Gr$fQMy^|P?qe6 z@NA(Ci4;2e`-be=%~p9%=(ZHG9qFPb6G}4{gXvYDy>q5c0uo7=Gm~wSJOWOV1ZH$H zCQf^hcnK#Yab6-8ysENH1DjzDSVWaBmdRm~EnBzMR;}IO2FMTQy+GmzY$h#}0E}fY z1B{J4<}SufOwfzH9c*Ec)K7k&F)9xfW2BaO78)=1W6W^Fbl*2#TNIsslIhbUT9McUA`X4FCJv>bKF`dl4 z2We>sfpp>TLG0amd>r-rHp5+!cY1LVa$`u}EH)c28E_ID9pQ$Cv^bOS@TLs%(l7G! zo&BlPl2Z*HMv02|^@aQ6+Y^RMG+6mEgY+76)xn|@9!rPQs?eA3+r>E0E}x!wpT^h! zu%66>C?Q}|5=A z7J7Qx?DZeKZ0)60Rw84Hw#pJK`Os$VgC%g##Edq9qI5`6Gn1WxogEm^_s07;JvAtP zfEYN!%%J#mOrZC^lMciR^0>e59m;@UXo2i?nHT}32uK(GB9FT0`WUV&SkY(d_meqD zGlSUt_W3-r2k@HR|Cu(shCReTL47lv5A6xJg}&f!_sJ)>xOjw4z&D^~0m9H6-w)q3 z|9hsapijPM__2zX?_T-mDw90a!*~A8jO7e`?=Cl3T!`~!hUbM(`!Jq!AaF2gX!PK) zq_bA2JxGzI7367xp0nF^FWK^{e{AJ)epXnpK{ ztsql|)ly`L(>{v5RHGbArwP#uCHVtcr((6r%5rH`2LGJ3;UECkC|jO7jvPH~|L324 z(e<-pb-Oj(%CgqXbM}eOk6BEWC<+6uuYS<(4Um~s0WfEP8|0h$K2uH*=cqOH=%*hL zp9abh46Kg{moxJ|J0Gcu3n<2W%k|%VsWVR|&CIW8>E^2I?p)ztvkDAhjpOPCI zX$}o`$j7g!GG>NTVuyv&D746xsHie88Z(XtV3{Vh7hbh|vCI?)RrX^0r@!}y_MN}{ zYgs?l=?JRQT90>HZ@rFBHi9`p-Uoq&M_SUtqJjhvMQ1-6DIh?My8#V?v8Uo+z%ntp zf($&x2sm~(LSQ2$%|G4`1Uy18M*jW%W&J!g*n+AmR8`qWF%IadNvz@cWk_g5x9JTt^e#_mp#D;RTU;gPm zR$j7L)K_~#wf=5&d+$&(DFVSlkP?Ip&hE5lM^dcwON0&-#J&@@+!v~(YG)9KfJAGM z*e4+}YlqT<&^jV?LLCsCIFH=a!#^KKS;3w=i03EYTsqz(zuiI*%11gMW|v8PIF8@G ze!pj=U5`!x3iILpKp;8-YgS-bJ|+e3mYNgRa{i3Pt=(iJlfzcqIcc~1Wz3&aVG|vN zcJTGn*7DMSwiUngUo0iP*m~s6QNl$l&rFco+zGi$)h!KrpU@t+qv@n{qhoYk#b!wf zwdWP)#Kp4D6DG*00m}F?)KA`nyoq!)O=bDKU~~76uSs>zFG`YlTC8q_|W=THZl2 z5Kh8vld#ntMG0K)yGKY6b-GM--S5MxgSL>LG%PLzxpz_}?$~~MA#oq(|2$R@h>pO% zi<%uV3xt$%u{kKuhdR%&*wlq~X0QAh>nfD|;#4_c|E3lF#y_(K8<$zb`8FZG*kf&C zvozZZWVxgxej6RqA^O;$_P)|ClJ4b{lr*L^a}kn_BfL^QoF(SuWmvKtt|jRRYgqf? z#_N|XSBLA>Rh8Cw`K<0ninnunPg(oIC(X8t4OTlr0zb)pvw1>!5s08di4Jp$#Q8m4 zZO;5GMhYD`q{ljE`Kr}U=*CqgMba#)URv#t4r(hEX?yvo5Jw22b;Vwn9R>UI)fGWa ztRZy*%M(Im8BDnVl4;E_TndvvQ%)JlucKzyR^D}@|q(Z(+=ihM$l*gh2QcDHeAuja;BM>|qoLr;l|2(n~h>pM-X;{fP zv6%Tws%=V#`#PA_Rl ziO;|IqLeL`+JXHCZO!_%wsg6aHE5#>;3BhSqPifg420}Vy_v4famWUxgYu;d2FI`J z9->;QY-XE1yHV$wGKbzLWS8vD7RcG;p7o|9HM2{NW*^?7OU!P|7(mD7tIL)5iY~g+ zBCvb4Jbwy-FDp&2D7n@$dvcZH0-m*Q;Ki6 zW%jPx!=kWeu@;!h09^A(JjY~tgrlP)uyCB>)N z$b`Jwmo(YJ{7Gw+IbEL=-O;NZ5}Vr5-)SRqjWZ;lTCs^!R=Vg38x+MGNy)Pg>Gh@y zfzhOaN=}OUCQDT^Lo+y8$cg@GWm%z&7i8QYmu$ChWZCC`=`(iz!eve3(=uV>h$>=? z?c4gEr?vt54;|{i|NFm_Hk8a5MOM$tS^K&@AF+j{Wp?t&A^X4o{4Z?fnzhodxnirO zP)`7XVP|EcY}=1^U)twsnbFnOr%4?La_5cdQV?YY~8rmNllMq)_ET zEe5d0FP$`#Cn86E$^VPH%r4vz@;8|+Ryq6C)+d(*?S5Hlb<2xYmjw$-q}i_R^M4+F z2*gJ1f~XJsHSVOjdHsT2IQ_OYT&=N&x*Dne-O=80u~;%uD0E%NOXV>`$SNCNiHqb~ zcGB8p-+EnMC`VI@?1pS5J9JFYHKsdkVlwTT?g83=;)MKP4LHfPFievY>K-G75U#%H{P#Bu#tLK~YjDEFtm;enk1pVLHO9=9YGMxmm0B z(YZ2_Tv%K#mR;9ks*iQ`buyE@D8voea$gKc3d<|SGkZrA?FCU%84fwbf&qXvRgiKkv(8Bg+kDl zL8rrHhD9d){U0iD-Ev%$88Su+lxyX&%7mp9w z)$8?IINs8kvM#x5yD1B&A?doVu;ZsM==Q%WI&$J_5Mjgpf-oJU1dPqIbw1syBdr@X za#GMSWwkPB7}ElR-mVx|{kwZPK)`ghQIz$l*{+pBHX#dwDvt;(BJ5w0M1$|ej7I)7aVDZLf9pN1s| zx%qzdYS0E9vD<}Pa$GMKxXMIi7pTv34nfTP-$xw+Q4ttQ z#LABfTUlADD5VtBb$%PG^W9{rJ~rOT)Wk`#vI1RoVr8<-$k(&aTAPP0F*(yRHIp`0 zSK2Bm`?vN=OG|s+WNBTb%Y_O1(qt)d;C*9Q3jFA}iqX{_!O2pN*Cr60)J#j0QhHut zslFsy_JUPXvez}0N!oZSAW>$I`XG~0-O&CpR+p9O>JM!wV~@65eNC-(HFj9d;dgau z*#f7VU3*HBayE$yOmrwERPOL4A+eC5Qvc4sAxc*wiYfNgBQfS|P-Bpt_JCBopD_Eu zsQ|gqG}^t6LIVl$*AMD0Ss~k^+#o&dIr*UUNW8D!4p{dpvBK<$VdW{mO6)es8h1?y zt#(P{(n-Wg|E)tpdTwA<9k9@{>$h*b6SQfCxC2;q7Mcfvmjl53pGO7)Q4yHd2a`D7 zit@{}57u5)M=VnIbEbS(TjiL&C&jisyVH(cyJ-jh=DIzzQ+~5#UM6*ChbVm#jpmA? z=4Q%HQrb0%Dg%lx>rf$WvW%d$zm?z$GchF4xsnoL$PL1Ag=U8&Ib(6@ikHb(fv`jp z=yy*Yae(E@Ocoj1I9Grf<~uf|KmVD}%VmzPO%W!nT(w?aBVG}!dDC|7-e8~o>}RZ^ zqQZ7Q^MXvpWK5tuOmr{sc}{HeGi!q1AT&~4zC-PJ|Jm)LaC(Bkzx+%P2aEhk{X;Un zP*hmXEZlyTy()+XMI;Su@kb@p0#Ol)JuSo+(;|*Q2rfj_RkRNA5JqiZrMSW%-6pZd zd;4nDs|5n^NR%Kc``!C?MbC%F1Ojs+u;z>l6CC+W;jdW| zXw9;O$z*wf9g*jSV$0W+oM$i8*nzhPZQaUotIkWb+j0muC0kZPV`HC?QkEpCI*V0- z6Jxs6OA_Y(eqG!>E^02Jm}#$zu{WlJSRf(L;-@nK9)dzpp9Cov2mvXJ%G^1wzLN$7=cuVjh{8E9h`&(#SiXUbB?V@sLLSn2 z>PK0mAwVtphLDQ%*dXsew$6EE0C3fRR zopp2%T5(~Hm1~Cfbjw4b;FF;JsZ%HyLZVYWHX#9**kz0txST6a`p*ciP#EC?FuWud z6=llngl;R8f&7)L7i?JmurP3#6#LCR#jx*_T1?Wi3az4gy`$hv*0}=x@M@Dj9f$x+ z>M&n<)jWqt*icZEQ(6x#3qGGuKN}JF?&JKs&qKVAqmAyJCqERTeUBDToG;V8>kn%R zfpcN@&rs{^j36D0ga1w%-#*^w!{Y^ks0i%42m;`aWoF6+Z-EiGj+V5yYhM(AO&AA8m5D6&W-K#o#zK0#c zl#sH$&1JYA){$unGe1)uXy(BXo*_SZ@ApMuNU$fs9z3&u`}l|XoQswHQPlk~`!QeE zJOn;S2n3tY53+{&vgaW%4}lL10`my`fq{0u;CTpq@DPaS$YDOrLtq{Pk0t~HXMvAq z+vi(74}qU}2*gZqS4*?)BkHGWu zU>*XGFa+ii_z@nw`KHf9;J%tz7%u!U0TsU)=~#H99f{@PqQl>)X(pGe*Z&M9LpN+L zO)Zya{?9xFenKD+BMTglB0nKr{_nS&56c?rVU-gNQhvIG7tm;N(enQH7WYBI=||Pq zdm=EdYdUnPH8;P<%8(W!i2be)e&G1+Vk3XB!NofzhQWSya95a!EaSE&My7)Nj+Mnc z7eM>q%F}w{^Z5Abr#_H|Ya_EV}Cy;tM^N8P#~uD+-&G;A}-0rGzN%YSOePaJpGK2FF!H&I?AW914K zj0G8|9E*+NJQr5S%a3uId{D`|q~0gxxCyh~L?K*;T<0Xn1BXmjt$%#j`gL177eJ@y zWy@Vpg1Z+9*E(aPBYGc|H4<&m%?*?z*Ax@7I|k`H3QCjF4RU}C*OUT zZex@a2!yDNfmij+0`yKisg^9TBf ziom``DDR1rCvD%G`+ZdKlz(D}iSqB{g51g!$Q4YR+`AOTXIoZGl8rRA*v-i2O1X`x zd}6(omseO}p?u1SIuFE**eQ91OiN0)@|DZwsy0r(uyl{o@PH;@k8^pGlAPvzT1`xh z>D#coW&N8qFWJAy`j-yCk>cdJE4v3;vJ z47u01N8o;^{Ra+Ng>JpCmIJ|-);3*LTA)R@%f9!@>-MQne8lo~i~a22>kPNa$4$>j zWf~e9veReJt36BHnECXVuUxfW`8#{&X*mOngv0M1x8enbwr2IpX=LY<%QFiWK94WY zr}J&_U=M%in@{KS`}F=d={@o@e&O$D)Q|M^G~G2_Vcp&GPMV$Np3I96?b+p!*q7s< zzW#7I;dj#c-##sI;dg$2(BZwaH&i1m?xM0X7qfHslUk{!EENxI0@bM8x{k`r8><=s zna~aNx8piQabqoAUd&@Fs%@DlF|0Q%b&e)|TuO$u$*UWFpi38(SVDQSU8`%bw3uW$ zuFI8Qr+@;FjO4g-xo$KLUtDrI%bi9{s-GJ9h#a@2Yl!?%hZ-Du^}r?Sf*iubc5mIX z!KJu!r^U{kyJTB71;4wxy4~RC=ICk#1y<(?sJ=J?@@ZJ)9thq+3sphBbA8J@Tms04 zOCVNqKX{avActA$il-f8kqdnX<vJ(u~Gqd+cNTcx)fpo^w3M>kqrL z$9r}@*xubUBhQ=(5~(z#NJ?TR5eSe(AaYKPM(3P!^8Z(FSL5N!w;O=M7|?W)=;wLs zsk#+!-CMVA-P>co`PJveVZ=L%H=+7usgLP{VZq4G&Jwp1BLvO1G$DGkJV1WurN6ar ze&eg+UZ&h{CTdz*n(L)_d?^Qzz}Gub6f-SVeW@|@aS7s*(ghQ4Do^lnK28`>-%rcH zR(E%=qg*a>?oVIefZV;LIL{Z6P?7TdG$BYWn_U534GvCuc4tK8`YTQs9wx#($TfpbpsCn$mi#Ruj8-k zxhMitvoU!iBn-+v6}IYTqbJ4EPAguvt%Pu}YCRp@cI8}yS}rzPK8VJ(KTS(ZmtWvf z$NnbBd}6dH==JNe?=0^PNwSS~L+@2p6|$a~WvvY|#V7-FG4h=>E+0zHl#V)ON@dT8 zGEd9m+t}Eso6P-#y>4Lcq(c}S0t3p#WTj5mg2F%@IeOfVe0tKwZCt;`wr<(v;@)_B zkMX-^<#IbH>NqGi@tLO{)5IFKDIp-N2q!} zJpIHj#g*9`Z@=#*cb6tVNcW{LKIN!5bz%ZE+-SCSYin$!DCs}@$G>B}eSLBX(=PwW zpSp5!2~$y4;!GEvId|Eflr_-%RZr^B+0|_=Lf}98^Pebxm942==@yf>-q|azWkPUQ z*{(+(aub^JK!Q&We=3UIC8Qj)hj(nXWin2<|G+0IS61@WIXkv*agN7HlOwN`AkFKd z>afVvbwgb(pyore;y*oc#+p=*QNjG;7j_G2Q*FPvmG;hVXKi$c9C#NL$kLwzT*9#v zr|q#v9u&MLyL#=qJ-Pc)JALN78=nlh*kN3-PMVvOWjh~wz`_0S;30?DAl0Kgx4Xp@ zcpzp|Q;R+H;5KoLCma$zux*QddhDe9T8FrhR`q9x>hkIvd#t*$+$t){#OaNQi}_f6 zGGQy1SJ*b?!Ez~EwU0kJDkt>?Zu}1)J*N4R=D4DLAAaJtb0y0P?NRmXm8;jSwXMzd zadUI4)i>O*?SkVL6X8#gZKtlk>~K?pv;bsJ>EeW7*o?&<@gzp-WSEY9sm$D2x9pjY z$*Or)cDj`mmB=|+n(GwoKKJ+aI0JXu(OP3`yB$4s+728!W+c`XglKgu=);;gpFVq0M*Fhui_h$~lcM}r zuhqNSvw*;kf8)2lB185K_J97D|7z!Dw0_0%Dm8spbv|UNlpCD$^3l{PPoL|XYxNEG@!{h_t}Y=$yPH!W5q+>t z9Mg$Y=Uji+U%w#_8aM1gwQKqEN=F5OMS!D$3xV37)Z%&J(pC4)A_xc3tah*nuC7^O zPl=PP7U75&7f4;{+g(}=Sab&m2OT^peyr+z{=#Kf&l`=+u0L4#>a-xTJ!#gsUc7YK zQRK!Z?Hv{17;w4kr~wgoI8VuPr(tml?4X5M)ftdhtZcLz=P05mYMgu|O^nHHitL*v zBuTiXederK&1A7R>xX*Hs*Q0M~501)~RV6!N%N)+Lr|Nb|PN&2H7 z|ID$gWumyNYeIRLSar44Zc=BYr#rZC6Y<)jz`7F$`(G%ZQBYVGEcSa$P>=<|7J+&f z78Gd0?r_wO{@k!`jcYe7a?h1|N0l7=sd}-v0K-jwQFi)gnJ5n)AA*qjWz8X z)1uHRgk(Zrx_nIwgxuL=WjT%q*s$nO!Q-OZl(Fr;4aPnd?x?J^#BoZEqNvGpf->4v zyK1FFN*13|^=*zgHy`qHb46*h91Qv$0oze=RhcR?Ut69_m#?}qVdbIjl+OZ1pV1y> zI4nL3st>h7_O}}MN)B+^&4YC1gX@GNgA-xQSTul{o}TKm!PY0Kk8ZKM^F{npp0}jH zz7%JpN>pJ+`vF*+XqkJBiHfx@IRokz8^_U5tp16EmO=MKE0Ra8_=#aFh?%qFK#B${Q41_Rzb<^0OU4kaPaxWl^^VC**@V0TcL?$)1+|9rYy8HogY~zbCad zB2d3rEsQMOMe3i;TKFE{^^k27m*ciCEXG1&gqd&RrdAf}Y4_XjA8=d|2=U$rA3CJi zDxqVR_OB2O>bxry@Q(@kzZEWV)}1L zduzr5qQG-fW6o9s8Aov6N+01Z^VOfe>o~6hEd;RKecIj-=#NZ&r*GKG5JvPJZszYY z+=2o#jG+M28lwejOe@!zY&$1foRGJ}TADj_bQG^n4heJ;XEc!VXjq_Cu~sYV^2$o9 zTfforE2=C(?owb)z`gXDJlmF@DZ$mGy|w3$?Tla-Xl2WlyOu(E5K9-*>aL?r$N7$x z{ph4*Hz?^siusz&zxbNYJp=I!aNuWXrBx+Z{n?|k|ATGPn7YM@i3U|6_%m(3x!;v_Nn(D&I z$_dAYL#Y`@^21sAKw8?vVip(sksBk*Tf2Itz02aFc>~g}7FWU|dHCoFdrgAK2C>?O zD&O~ohxe;|MpWeR4QSEc^xysaZ`n&Pe$Uozsk2y}&*rETCe$NMH`=WJYNM!Ryv3`r z{c;bmt|Zs)TUBM{8jPy)Dl4m8X__q!le%R32*23eWj6(!k_1d$gY2}A?h8=}slP*UB6xc`pL2apjn-(pOp4ihOfhI5M%Ej{X zok@39)C@Luh4yL$_SCRzNM~Ebl0#)!y`chL$N|d;Y}odS@=`~sJ0*>#jvz9U>19QQ zT42WAJM1#TAXqjKm}4ZUBl%&6;Zm5K#MACXaWj5gk&<5%yAF3yEyQBa$^Nsot;0=L z(q?L$k~S4oR?cK^_D%j?a8Q%}s}F6o zt!q|_qAat*W#yJzTxs#5y3s;Zs9G%4M-4;DJj*|=hW)+W_O7IrFTN?kk_I&~KG7a~ zYKt73iFJ}xJ4X9#gk}?3Jecqk<0Fz7uCeEy{RbMHJ6GiJ1AaR_b|-0pcc}P4el&osLG2WN)TS~eWAwsG?%Yjv-kHLu&17QLuzgN znjuTiEU;PmP+~tgB0(e&WvOQ`2ap{|@}%JHH9RxL`lb!%-Ud9-tsT zkAFHqbANn2`03w0ES{lw>h{@i6V}Z--^@qaoALbe>3yAvBhY4o{~mnz$54b zwo~#~lq_mFDFMT*5OkTOfO%qHQZsUNo|`H~Eu9A|U0kf3fQx;hkH-i5ZJ?{e#5#>Jgr2Zo%^X?eln;{&#r&U0M40 zx%jXJ(C1$a-tD9b){lNbMi3rcJC!ifIEBZB=lxavUL1inSc%Cg@`|^`QstDJN~UO^ zGL<+e3fv)zJmDmV__@rHD1B&r#?D@Ev6=cdvA?sH8W(L9+N)$amA)vO7#X%JmoM3= z^B1%rq*;#k$F*x#hZcd+ezDgjmLm^@$w?FXr#+U~Z1#U4$7(Y+IxMZ3$>GmQL4Q@9 z6P!H03xL@QMEZ4(v^`EOdE#ddA>gDqWC%KRN z3_M^-AQWuJV(s-X!k@n0s#y4^Mf=Yu{#>1I(eFN=e^O^(he-7gwr@U9VBzv{e;3b1 z5g4+`WrB>fOgY>}KR3@hT5i~x^JlGHXTVjp8>Ok$XM-KhQoT&G0=WTgLr|lYFD^mH z5b_rso0#Fe&5w&+AJOrP2)B?~PP)YzP`5h`3`+Qb_?12gD^fbX`*>IK+~o3cpUE%8 z2oAC@Gnkflg8#;Qq`D9v3_%#dc;3Um1!4QN#0BGn?>`sZSKd>WoUzpsmb`uK(5g!jGA7leH`zK70A7Oa_?D+)L*$tOsYkSIM~ z?N#GNg;PawvvQHb&C2I(j-->>ZlCPVfrYH4Yag-96?Jyy_z5eluC**+> zj_`rO178>v_db`#4Qk+>S0s(3Lppu#{6!~`4#snQa7O2lCS2@$oL5N_OQ6rqAb}pGhZps2rY>))7J) z+Hm^JIj6RX6r6Z>1}r!}pMQFIt^oZZ-q)q!Mx#@WM3PJ(-u0vUf#6~IC;h{B|INpH zm`HW6tDpRNvx}eW(@1&3^V1hd%|AVU%1MaHvrwIUJ*cUNL;8CqEKY&N29IeXcXu?& zVRezsM$LrIOSLEEs6R$RDMCp>t`+6!$VGeJ`uZjtnI4ijJ=Zp`-DH{ft+#R=d1U1l z*lOKK`r5zxeNj~%BTP#DuDVK;SjSUh!8tdstSr{?Ly}WGpOJ%YlpdzpCF@g-3Lw!P}(?j-YBpzlYYHu&V-fA@6_e&?vDM@K&hkU0MFX~LhuJRmJ69P}mUyax^* zwnQn3w6%9h81+R%-p-I*-ecf`ZfylVT<08XdMlNtg2ritN#+p0-h49)Zoy z6uX=%Y2QG<&JG24>+(FE_r<#J(^Ao#njMwywN&|rb(K)ZRCq<4oQ#!XM2JG&s*^op zaE^<%6z7Co7(l0)v(WaAE;mt7h~O$5h>G59gOn)-q`t`DGJ$+R|9P);i~rLf{wsIx z_ucRRScm(o+?g;dIcYg(gmQD{i~1$nQGfm7%kF&hU+6rRbI#trK|3U63j8XsU0v(W zLecDj0#b)f8`in=NOYz-SLK=@Du$OXUvX!lC>T^%SGx0Cke7C%(2v?8XP>kMts#^z z3beR>?S<#vSu9A7qCG05-}~W@ohs&+bjHb9D+>FAIv+jw@ev`+tn{u|xwBmQ>BOm! zn&Y~UYvIk%On-E^Y%u35UsP^dHD5+QD- zRaR7J-;3tWr1YfIEvux$Vs#CWfzOaePF`uHB}(IGN)qRR-Yy%{AQo$~^-YgihX#6P zR(FQSr)_v_(t3KOVmY8&KtkO1jz+1}ZIWu<4pHvV`r}vT@OJokl+L@QG=PG_(PJl7 zw^F-tquFWI6fY}s6D>|$07@J$zxsyL!FBq)U0qJIi2)~2USD6YL&_E*YDIamLtxqj zvbT%%`>rlbkPgLrls1^8=gwbp6O0Q4AjHw*XPmatyYGJ}giCS=geDJ@7FHJBXSA07 z@;g7YV<*qL$$mmQxhM2qR9K*!Kc}roT#Z*GVAAppg^4yP6fm*TLP9+ln-CtSS_96X|Nn|8X@um0psjnRxQrS#iXQFN43yt2c| zQ)fl0O=qRM+_;u&E5vq)W5a_V9d>QLEQJh^gazntwV;65C|6KEiX^YR_NHTVnRD;& zIVfaYDK*pWpaZ zI|)%yqC`@tn9_cDM(UCiQPLxgp0VdQZ?__?icPvI*Q-nNv7#yk`kf%E)^PQj4fYN@ z)w*#_{25&dL_P1~kt5b}`K(Qk4C=@zq|aNka;2@^u-W>gDtx86$J#natfgI4Qo7Lt zLf#o6FWaX65p;iVuSek%2wW*c;|Bz3Y3&da4mjP{<<;f3t&;muhUH`kbtX! z+oXrf{u_N`9~fAW6Qtr+5!A&mBBWt)VBo*{mFMh*FMmP5PfI`_ZCkaCSiNewQ@0!& zm16#iN_+O{-S(i$ZfI!M?U^frcfo1!fJ}RI#jQh&M}o@xo!|Phtrg{=Z1&%1JZ;`k zr+dI51$xS5VM1dI}Vo4~U*{m5`6K&qs8F z2x?xhE1!psoD!@IhoEo2cfj?N1E4?jZ?YB$zgI;Q3Dr^VD5ELm`A;HFdP z55n_m`pk|YhRdUx{Rt$YBF8)~R$UaN0(G6`Vax2aAVQqSm8 zM5zoRG`cF$HWr8Hp4Dxz&Fk!ySKqY1_{;CPixphC{8(EDIDvTe;p@6q*e|4pTR>fu zMflPc)Hg#HO?*H3w%)DJMOkRrvp7wTG<9~8F5|~c>5}w}q|DQ!HZe199b>IlUHYt5 z6qeel`pc3?_gPnGhfV9&MsstUV`0n_zu|x=XCZfcfSopC*D<5$RcL!Y~Iz^Kij_^?BI$T@woh zB67nAJzMrlG1`-|ZzF&-38G3&Xjo7Jzu7;!3b+{4?U~a;j%NFh|Naj&DLU={|Fgdl zH?YF7fBS{`x|4@GHi}yEovwoAN2QSa#g`-`W4lsPQe;yN(h3lQ zz`jH2QIkZ?lAAp#smb$w4svn10FDPm3Mk{*a~HJ@$af0@oP`@JAt2P7z?KBq1loYw zBto^F5A87SLBI5aR~%QxLbgnbMySxTxcsAUepL(4l&G$_8MTdns8XUxE_J9}8SVMEY zq|fCRm6>b}iaT=Rs3>Z?WfbID-OinsA~nnN=T2I0d!r=X6L#qQDf{;OFKc3 z)4;lwYLaJbFXwI(N#`31!8O5VaSPmVA;8`tokiF8-Mt?>Snh-V^vk{&caB*QLU&SI z9ji!xojrHSONDs$Amji+d;rw|BJTGQv`<=P#64ZBL;)3*2be&qT+BnUg?u3}!eRPR`D@=-VT z@%s-R)%&2MjF)A-g>mcG82Gw_uuyd$Xy=MBDM6yuA zt+1+nu>X*&+wky^7M%u1{gGodF!q9Vw}(adz_1es4u5D3ZB15?ovW3WYi%-hqVwBP zT@{qsG`rGMZ#`mhqi1wBEF_PThL%XG%hnOoglt^( z4-L4>3TSU}ZSa)JxG>aVg;Ma43bd{&>K4x2e<5tuFZE| z5~EdfLwidmWrZ%JbA1q23*k*(UXG*AAR_Upnp_|Q69GzCEChri5%R=}7ij_Fk~tIc zi%&o9B&B|(=18nS@Xkw`3o>EB1B7G3PH5|a00t_WEg=nv4f_hESzout!G-l@F+q?+ zI$*G>$&eyLjjF3Fv?vsZ76DOglBEnODcmrEFj@DHTs_6}`^gF*0wFp%Rh*jlV-IKoGj0JZ<`P;T^kT7hu>sz=K?&MZV&TvhOF6Mu@4TMCU ztpya5{-z$hb6P-vli}tQrhm?89J#cB{Vw{Ov1pZqo5cjyyrP1ur6r=+&2B!dm!%Q* z@Z@EoxEBOkQR)Et?=ykHW#YGYwAugl-~QM>IR1&%7OxVu=+NrdX??>|hn$gpr#SIV z(za@dowCQ1s%%r{GEw4qP2y~uiBGl5*P1Oxh*G^q52FeX`22XO9(?R9j7j zu8>K1l#rHTA6&a=?>C&Yg2Z$Uija32tCl)fmFO9*E}b2@fj)EPlzsin->`r8Z~lX0 zwWz+Il%HvYeuQM@!g>YneDcOszz{=8Y-mCQgMYM{05#$rVU36HpL~akQl>{Bx7St` zeLX;KSTWDqk;m^7f$PiS>EB5MWuR^>E(8z>Wbtshn~YTwZ*z*g1iteQdkE6|b`T$4 zSC>J5*jiAQPaCWY?;Oi`b`lu;c2vvdQkfo*gM|&LDUC;{-u@Fv5UV~^<>t$wZ>IE* z{V}(>{@*|SEA6`=l#12aldahj;fk{ZQo(#A@Pq)Wk5!Yoc^H7b@OMBOAI!?+M}KpmDk zrG1t5R@0JHH#Ia{tk}aW!Rgnfh3Nt9F~{QU@kf5sa!X|4pjYgyF2*C7z1q<#)lBWL zrQ8uE33Rj&RtC7-MB{!Z(~UBr-VR}0%;Mb%1t%>}KlwsAZVo8F894s=3FM{D{+oaL z?_LV~8N{W!a}$f}bOe4AfE}C+exihz3-SenKN|6HK&T+{dN{sZs84v9uj^dh{C5@x zdejGB7k={|GuI#d_Aq$&{psH4+6SU}xud1@=pL^QcPiv2SPRAOO zyk;cpZg6Ibr4%Gdf<0sdZMw7|3frRd$9nB$W=1DX<^m+SP1HY?E!a?sc?4FyrX&ap zQIFf}Sddp0brggg;S+%G^MkH38SLPIGpT&=6U={iljr8=&>{ddN8N5tE=TJ`JtM(# zb($-~ul#;e`f_|e|DE4H&gY-6H{TTLzmq3CJ$b@m2Y(0ONxN9N3w`(X@%8X^2*N_T zylv}!t}elP2Fs5GC;U5gm@kLc>;GUr|1DBoeL4Y{@3$a)^4!fKG6ILlo$9U0s4Z=j zF4ZT9<%!l_Fixvxy#9?24@!72EaPHAIqlnErJIyPjIt=Oj&AaV%;{3E%$L--TWKU1 zn22e!&iHA|Hyt%d*IE3PF8ZfhZbG_cB9#*99cT%75w88SjzforRcVCa-Gg3ajhu1Yy zx*+@@%)9YDG6MU_tjWk_hPXI+RnXoMb2#w{x|lCc&q?m3S~)3}c1QxLiBVa2jF!U1 zj1XM{sH@Uus;Q9FIC<7O2Kww`W4(?H(ydNP1(`x#7J}gknS&7m7l^{gh^lw#rcv=s zwr)CU&ts~ZC?dx6+2Zbv-CB*2ZD=Z__w9sx9)++2<-D|cCu&SupVlRhXgdM z*gt{Hn6yE9OMGw7C7HaD)ydp^n~Zc=uksX?B6Y4pVs~stfdcDqdTK9V;!RBww)k5JF9m7Xc1+aDo(->0u)| zMX3NI?(9!}Jk|0OlXqZ*svFvmhu-I^Kv_P`-1}U_XBLytC!aF}lXSsys57;W6z5>x zg@1yJ<6T(2yS_@15tw=6W`fvPA=0Rh5JriZU32T);Tn8tIDNTsbi=~of~(wHCwwhp*lJ{tteBsn?#AD1#8<% znQfJ3(;M%+WO3q~W8-8jK+;MkF490kWO)$;26-u1PtIvCT)gIVv6oksYB4IAFPU!`p~KL5 z%$x+)BXMwI`nXW1`oAGC!F0j*`9kJis8TSehZ&y7#|QIAiVJ>UdcSvjATk2awTFRc ze|x3zqNU6vN#Hc<_P3hdZZ5@0@|>EIBjtuqq%8g)Y~$uftZUy7EmOj-nV1AS-_T<3 z9_q5gr!QJ@c82z~ak8B?E>+7ct1ieC`z%ITM^Q6c5D;KJ{m5fBIX-0n`CI?VUXW`M z*{O90>jAmEb^IVJ(pk4@) zQGWu*6~QAV(x83B87Y!#loWWT>RgxL>%u!q2&Cs+*h{rJI-;H!w_|@tJb6&|r!HtJ zQGO5(u$IEFM-MEDz%+3}nn6v?%~qNqR}@07Bnh(;#Zo8e$bu_=z5R{WuetfaeY>n& zUKyf_N^Q17Hj{ItI3NjFimr1(aW7r(v0P2OiozUQQ6wABQg}#kgl<;wq^>E00HqZx z?CIUl+TT9*m-h0HUb9X2)#KWC(doDPvXN`(-I?U(-gCr>b!!rB8IWQIu&*-uO z=0!1OitS=tj9j>Q)o~65`8m2pQ{(i3smE%`0HE6JyYqEk{?Q?B$HcjEP`GcAjcnRk zB?SX6U3dzMQUq$8ECi?=Zdh0AY(eAFgl!J6tEITlLWA}dT3jGAM)QdaA+g#t*EZjV zrRTlf1B)ZD1{)=EW_FaQZE{Sy6!>LJSC<$DhkLAdL?%OJg#D|#{~xO?TW-nP7ng3{ zX}w1WY_z}2S>cG21IjfrWl7UIRh2B54;bD-w%67aS`un0RhL?eFy2OYZj3 z89i%js+^|L!H+++`qUC`vs4(?LV zHFN247x%y|5Li-ZNu7&I%Vp+Oc8L2stZlSj!YbX>)a|6lxBerk&ONImqhe_YP3Qu` zh{em2WK#A07Ip4@ixO)%D{6uM^oRsru+UL>8-xs?NH3#!({j-glUr(WnT5LPBn1&o z(Dij& z6+|ca{USyLF6)X}wb;-V%PVxzp+yGBWhp|G(4|wGQQU{EWpB#OBd99EHw0WzM-Uoi zdgs3c}L{Piay6Lz=y=Zk3%qf7x9{U{M5yYIU_YS!3gMd-|C_um?8pl4ANAQAu56 z5TaoUXGjVi=(Zx=nv$*OT&?t}+A9u>$f`n;tkfrnO>Vwq!xCOa$4j6h=`wCuVlf6# zw!$WgYIT+@BX$y0MG3h*6~tG~;K-CD-dY%xr%LE-d1w>vSIVXA z?}KxWCbKQn0cuO1Za?d*AOT1{9>Tc_-bCAr0=Nmn^PI&@6J zu_?!D-*hnoPqGw#oq8bhWd>0OCQ)l^i`<_4wH1g8Zrid$lQ>h9azguGnRXS@!n(z2 z;!X(0qQL*l0qk%sp46y8au; zjpYugE~Q^MhA$`K%IOcwZ)2xW!Vb3Vxbfcgc9R*dr6BzzbJT; zgl5>MLO?XFiHop@n=xp9>8CTT6AyKES{<&Mk^h96U`YisB)6;9#_M&gB6bx-NfG5E zg!a6WIE#WMrY2b0%8-(VM<$S$_h9e{?Y_ANhlEU|@%jAwJQqLLpL}=F^v6ZvFyISzHE~FI`h61e!Y4iA_ewMWHL-@{|GXnDhSKR zg!2Lu(sIwzDPRcUW`(>6lh_mDKb8yQ9BE)MjXVPD0_iv|EF5l2K*n&b;+P&$86V^Mf_`A7O@30d#*LHZ?EZ&3vPC6^Te z9H@FLER2xtPNL?J_)fCiOKII=I)}JR$a^o1+%KoDw?ts(e~8ZN;YelRw?n=l61v1B zPyjK5zvq6j1_J+OqpOLJhU2kzk>SVG`?c<`30zSILt2)r~0mU`eG?tvu)zJ~{Isp?BTu!O)% zb6}|l?%^JYd>bjypj&Am29kdEHKc?2*|-INaU18R;-y!cTrm04hov4^>H*gSf3H+2 z{Y|DwI?s!JyVJP>tRTEd<$0LFbisH3{pWe!3eK&*|2$=e=Ls(({C9ZzU)Jxxt8#u> z_5DTREQ-K%2KRAqmkL8U{q;XAM_^%MTwV!v@z348#bBLtVx@F3GHRzwz0P4Y7aL|| z)x%v`(EHpy2Zsb9YV2vUzb+R_vlwFhq8;}+JeN;y1@m^k z|2p;IV(pE{Li+9%{yRsGI3UY}2~+mW%CWnU{&y<^OnH=*P;$v_onP>*>P3>M%Vu?krly z#V0r`i(K^oMT5VNhtWA~VB@r!yT(B;dLR>R3n|7*#wc1c)(zg zfQ5@ij?Dv>CP(F&o~L)e3CLi%!13kI*F|yuW|uG1`M}j3Zf^w>I6j2nar26QpKX_K zhlfL+h-E6?^^qFF2zWR?y>Gv3JCSn%Gr0uv`aJX~^^erfNcC_4=Kcip0F&Qi>O%}M zViGu*-?uG1PY~X{_#P2~eM6XNT}C7k|K$I(H5)cqURIV>$t3F7 zgseBtPRXd74B&}=$IEZg^yH|lf(*&_7FIH49ppC6q%vSk76$XfgP%BW^>u4kQ(G73 z23FrYI=k$xcRsLx@YOHL%RWY;W>tujQ6kC+mP5YqIN%aI?55^cd7W>RXZjs3 z&V2`t(oCtW!-tPqiOk;OCMFzK5DxD?L`*l=AHWaRk$3t4n_&-Z+v2{RJatBkc%ST5 z?{L3;9ygcf@&{p1u5XX8gU`cn{~pYPWA+0d9hP;HDz#1SbA;5v5Gjw33#Pl5-ap&I zu$nVIu|hH^Vw@0|fAM0C`IjIAbo`5#fjJkaZ)u`l12QqY_thU-!-2OgT2yvaFw)YZ z?WspA?ZM3zR#q$zg)8%|tRPFy!DH-^9S_^ypS)s!_%HsYGvq!Z^E^0Bn;0LlvC(du z7?9V4;Vuoj>`1G&vWg``bX1$6zja`M2tD#Y{KtRtKkSv)-gE}yh+}~9v@ke0B%8|} zcJv9-Pi)A+ z!8l&4Y*{h63EhIxCDXHTCJi^5Rfb%(DqvWiazVH@)s1vMVE-96E7T98c%8osNV^|3Dsl7^)qcI z9r66*ox0K1n|b7QLuPip0e$)iBZ0oYzD)WPmpB9u)BU&y|13&@X^$8{n^9+lJi7bU zKdhzd&=~D!M<&PZ(z!F%dSt&{ly`#j6AiX;nLGl-C)p>1vc4$RH$xT|^M$zenn1}I zB$uT}ygv+IJZB&6*<+j6ud_8(<#OXPZev5&E!nQgBx}AUq;HZzx;{BV>y@jO^VYr=-S7tAW{1v_!_jLU~xlKb!9Y{yQV zl1GGdj=jaDYFSCKn;heU@ulaVaTY6G2K~WW=Z1BwZPUi}nr!AgJMhvggYrFiO-o10^=|5S^w7Pl5n{?+pO z@Zk1sGOhcmvx^PFVr2e_-H)n|PRqVoiftE_eMkM6mzQhX)K`Rcb*t^+9h;T!m@}V* zMNc?_Q>V_V-&*YpPw$qmsngaipU_V|@t9oETvi{ScJ{NkZrLcSoJH!Z1J2%8uPAqM zagjaw#G{rd1Be8+8}to*K;LXwFN>mTGtTlz!y2g>07M3>#{6j$^g0?qTNpL)N@2s?X3J4ec|cH z?18PDgotNd_RCkV+1>+(?D1U>%c5hAENY5P7sZ1@6wA{AzL0+M#{1SON(aTl>%s2F zcWRaIwhNc8+LOBU1k*?T@QUmXwyB>edBar@!Rui4+c^orfTdA&@}riw-1BX=k_ z+~j`ug9AdIqe>fcMn*oUI!_w1=4zUlJ?Or?6t35yKb+%{VLa1J6RK8RQv*Up+ z_V)W9%A9SBUAcPQ)eZQk<$I|?iy({4X)Sg)8k_9o>GN*kqVB+_yvHAX*bd0G%y+;4 zs_owOklUBu5SMZB@-^2)`m|A|a-pJs`{Os9A$(lfyr}fo>Kn8`oRfQ=9NVdOQV+N! zAK)Y~n_F34s(zccPq2e6L}fpXPwS?pW;=51lx$}&mzRuU*S@0~rvY(WUwHZnE6C5a zz573M$WQ-J=X)_MPJtPCA*&O(cvNSC1u>kTq!9}}Ed-!_&zyi zBPBVurKUnwDG^M`W#{me4anT=WOBMS_YT=%QS0c0OlN);yU7ehT56^xr)D|B?&GqE zIWr-a4oYPcmNqtEG8wP_mVMbpf=7l{QIg}QF1Ue&Ej)epqJ80+-3~F=uU%!!HG!do z$Bv(NY$w#IPsoZvbsU>vm=D{{>*YqYL=zjTlq$+oQXFz-22~0Md=TNUX!ow2j#8gI zeNKqm;E)~a083X}Q|%}r<$%O=X~-6~?_7j;+Nx-h!m8u7fpNf-A=W6Xt12C3V;{>F zpj(S4R0z)uWu+yWm{*+>IAFqlGT~_#f-NT$6e70@A$X@gxQ9s;=P*7o?(9oL?Wt6j zj1R)*;{K)5`FbvK-)ZwY$r3ILvEO-bpXyUCM{1R>8+^axUIyoC*t1@-qS}3fLSnR@ zfJX_p6_FPUY-)oU7m7Kv96&6@wevanF&3>j`)SZ1b&sU#G1ce|RId;;j74JC37JM$tP(k$?rO2C@}5ozoQY#6jD((dsHUuz`%e*au$?^ z8%?en9op04HPHw5d*A=jt9IqeHP^mNqToonK}zS6MU#7_1ZNvJ)Hx|U?qHzw%4B}{Cqg{x4w4bz4BFc}U4J%;0#gQyBjd<; zRcMhw=;z(i&{mMUSN@&6*AC#Y4chnNC!(;`T4b}-uUH+GkWPy~1OQKu`C{p5(}9nV z2w5+<_QFjN;996B{;clhus8))%NPpS63%kne~JhVPiUYto}mHb*kZifmZi%7Z+W#t zuxYWo*kYcT5PPUjofbldgd&2(Ik5JUX_8V`S1-3#*`AI`O_!I3I7zBAoxk0YVfomV zMEY8jJnW^2rIoX;lUF{H!T8Izn?;4d!&k^fg#Iw;7$6W51L)5^`-FT8N%E}#MLn-Q z*KV=Su%a*h;1#8f)*dd~O~P$kHi(70q5WNw^G=9s7ABcL-bt4)U{-Vji$b{XAt=nD zqbD6@0~x;Z+!IzK3Y4I>y|?Fp_I_s^EcSKyGot=b6nrQ_fqY;R7s~k=`$iUzBvDt| zL>{O!6Fy#Y1*jSn<(1dous7d+UqY`=N2Qh21=53PFH3-j?dbLLzf>w0F?fD>9A|D&H-bYx#zY)SlKOzT08)CEe2pmDllRv+sW$0-zw=I@&*&?tEA>S} z{HgZ3FTeUT=PYhTb-6?SXP$UOEd34FPAGl07C-ut{-CX}yiivkKwA2S?GWx<-I1B* z0$wm^16;$W$4@y)dyZg%%&C>BwrB4F*GCBX*lWA~7f`?Gc=-3qb5TVO&VdKS(n9SR zID&7e`$gOwqD1NJt@Gqw8$R}`Rc?O9rsaZVTCP;^Av`T_2vc&@J2f^cR#@(}`K|b= zSWUj15^I&@@!$~&7sO((*?hmP-~N!LXUMmbCN-<+k>mT7KiVowR@&+FAKTbuyZytj z{aaCDTLGf677aWCB3ULs!WEC0NPH)8v{J7c8*OqzAd#t0S4t6s0E}|NMAC*{?U;a6%yvgf!^>7x;6X_dqgkPjD zPD`@?vV>1BeCZjhTU+bkMJmgE(4U3AEfnwb1)tRV_If;+EA$?zoJet>&w2O8EXqPN zxN%}zSXJ3_g0LbsbBG&iRLEhpB(GwR66J6!red8W$GJAp(`>V%wn66NxS_wp22q(SLYu~@xESsU#O2f%zN#*C>C&Z zl$I(Maymimprm}l;#sl6>IWA>-5c5?!|LMtvM9U6x^6Vs=?~ttD{Zh}8FpVyrC8H^ z>k@l+S%R69E#21K*<;m`;?`|_*j8`aVyo`kZn-Bexczgn;>YBJDLr2KQ_>|xm9VL+ zO^e5;HagU1g+;=qD^&%gyk@VDCk zPx#h_tig1__eg1dQKSo|_3;a}-+zykhd7V|w%7-cB>uO5hUe#ZcpPaX#w)E4k@EO` zc<`HlS1C?v?_qm5i}jIDb1yv?MPU2`PmRGsixn2-7?Ho;uAwO#6|yGCAz6lmJUAMI zN)L@r+SU3dn@Sbied(-yqC@%v%_A1q*KP^VKW2!J8rr(;t)r*y+k4Jhc1E(TFKDoq z2JOF+QY=Ax-uV1wR+d?81sPTHSePpbWseQ%tT;Ma9_b~N=#mhuDlf_k;w7b4eGrP= z9O8Sa+wZ)to@)6Cdgl;6o8wmS7D7l5g?f<2r(39Az8s&A=YnbZILBQC^DUH~RrmVy5lrhaXs4MU8D( zwcL`goV7_g+%BkFYguE z%W)M!)-6K5a9Dn_1!3PRj&i~mpK!R;DI89CeSMl>**=bEc)b4>DL(kke|P0m(XhUA z{WJ%kwBhvx7Qw>_{R;gJwjl&x1(OkmfUWm;(?# z9xhKPXCh4vm3rzR=WVXY1RoFgslr38V}l$~&Yp$b?zB6cy!7loWAB z66nOlBwL*<>9Y2-xivMGFw$?i6Dc-PxWkfi^Q?BoT1iK{ZReV6mLV6STpui}EU?7P zLYq!Vw;E|;4fS-`%AHm|H_*4+ zbFfsO!x-8b2FDFzATCnA@VIao)ajOSEE0ioT%HJZ^l;F2BA}!}0NGtV^zPHR4|9Ja z#qr5494eQyZzR)R+5w#dV*Kn7at?_&d%bk|sv)gL3LKp5zKqZHQ&?Mkx{#7dNT)hk zGLrnfJaCWNq*!S-|ITOc6nBKBIw_>(+E%oLNl|=H&a@;+jH8Bo#qLU3U4pEl z%4%Dwv)4`1Z;nq$w$zMVdu01VR$g2zzrzIQ9uH&gaXbe zW95f<%v!n|t*xg~#|z^YGn=5ZzydpaqtzWRQN=~Zlg|+YlOTK|g#V71@iroF8;)ki zxeJ%v(GFn4^YJ?vcTuXF=Pz8IuR&0$!AAzu`#7FHK7{n4FR%aX9sAS&@i+4dDQuDa z1m_I(N3Z-;M@XRy6h1x(D+DF-UtbIH-a$zJ8G$K z>qZtwXP@ZC6vs*p4RX*fWcI%_P{(r^qh!ogYL^3Qnu%EJCX-1)L##v~J?pY3q0_VvgHfv!Bu_a{|wTxM{(Q@0* z>)PL>rAmuwdRXd+33A}ARa{C&HXExmKb=u##uQqDj)|gUuYPW1Sx~W zZhO?aZPemBn{7ygaOmtIA@z)v=9OF7GEwgFF6$ZKTA>yZU(p4gbT|XWe)-DPdUyU< zD`f?LCWtoAwfgH;RZ(te0HIQdUM_>r-Qb#)E2K5luDA}{xW3M*F7ll-WX@bmON-sv zCszjxvftVn0lk+Pg>4XQD*SLPh{#}FTo&J5TVXcJkrtz&RRL%Nli_iM`DOP zI>i@7VNajCCM6fCIVvv#ArSVu&cC_X!TGgU<~XPJaf65Up+3qDBiaaj)EiOj z!X*#J=G5ts4m)iMo|QAs=yfxmD5G#e0cDvt-r8fo^Ys^O?V45Y{Fe(YX*$QQTT|<9 zFrj~4BgK-ZpWNm83}p`#LeOZVT+Wr5H*h~ImRCE@z_;sedHzoauA61DinCMz0000< KMNUMnLSTZ++X7wy diff --git a/observer/mr.simple/images/image-2.png b/observer/mr.simple/images/image-2.png deleted file mode 100644 index 7213edec541318dfe73b4b6fb143603e6169f4f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84215 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ðMV-YD_lQVRBnYn*sI9Os#>d%(nw*651X#!a97~6 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 diff --git a/observer/mr.simple/images/uml.png b/observer/mr.simple/images/uml.png deleted file mode 100644 index 33d4f8f7b1fe32d08740ab0ce6f2376855463f2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11866 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 本文为 [Android 设计模式源码解析](https://github.com/simple-android-framework/android_design_patterns_analysis) 中 观察者模式 分析 -> Android系统版本: 2.3 -> 分析者:[Mr.Simple](https://github.com/bboyfeiyu),分析状态:未完成,校对者:[Mr.Simple](https://github.com/bboyfeiyu),校对状态:未开始 - - -## 1. 模式介绍 - -### 模式的定义 -定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 - - -### 模式的使用场景 -* 关联行为场景。需要注意的是,关联行为是可拆分的,而不是“组合”关系; -* 事件多级触发场景; -* 跨系统的消息交换场景,如消息队列、事件总线的处理机制。 - - -## 2. UML类图 -![uml](images/uml.png) - -### 角色介绍 -* 抽象主题 (Subject) 角色 -抽象主题角色把所有观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主题角色又叫做抽象被观察者(Observable)角色。 - -* 具体主题 (ConcreteSubject) 角色 -将有关状态存入具体观察者对象;在具体主题的内部状态改变时,给所有登记过的观察者发出通知。具体主题角色又叫做具体被观察者(Concrete Observable)角色。 - -* 抽象观察者 (Observer) 角色 -为所有的具体观察者定义一个接口,在得到主题的通知时更新自己,这个接口叫做更新接口。 - -* 具体观察者 (ConcreteObserver) 角色 -存储与主题的状态自恰的状态。具体观察者角色实现抽象观察者角色所要求的更新接口,以便使本身的状态与主题的状态 像协调。如果需要,具体观察者角色可以保持一个指向具体主题对象的引用。 - - -## 3. 模式的简单实现 -### 简单实现的介绍 -[AndroidWeekly](http://androidweekly.net/)是一个每周都会发布关于Android新技术、开源库、招聘信息等内容的网站,在这里我们可以看到最新的技术,最牛X的工程师,经常逛逛这类网站不仅能够开阔我们的眼界,也能让我们接触到最前言的科技信息。这其实就是一个RSS系统,用户订阅Android Weekly的文章,每当有更新的时候将新的内容推送给订阅用户。这不就是观察者模式吗?观察者模式的另一个名字叫做发布-订阅模式,下图就是我订阅AndroidWeekly之后他们发来的确认邮件。下面让我们来简单模拟一下AndroidWeekly的发布过程吧! - -![android-weekly](images/subscriber.png) -### 实现源码 - -```java -/** - * 程序员是观察者 - * - * @author mrsimple - */ -public class Coder implements Observer { - public String name ; - - public Coder(String aName) { - name = aName ; - } - - @Override - public void update(Observable o, Object arg) { - System.out.println( "Hi, " + name + ", AndroidWeekly更新啦, 内容 : " + arg); - } - - @Override - public String toString() { - return "码农 : " + name; - } - -} - - -/** - * AndroidWeekly这个网站是被观察者,它有更新所有的观察者 (这里是程序员) 都会接到相应的通知. - * - * @author mrsimple - */ -public class AndroidWeekly extends Observable { - - public void postNewPublication(String content) { - // 标识状态或者内容发生改变 - setChanged(); - // 通知所有观察者 - notifyObservers(content); - } -} - -// 测试代码 -public class Test { - public static void main(String[] args) { - // 被观察的角色 - AndroidWeekly androidWeekly = new AndroidWeekly(); - // 观察者 - Coder mrsimple = new Coder("mr.simple"); - Coder coder1 = new Coder("coder-1"); - Coder coder2 = new Coder("coder-2"); - Coder coder3 = new Coder("coder-3"); - - // 将观察者注册到可观察对象的观察者列表中 - androidWeekly.addObserver(mrsimple); - androidWeekly.addObserver(coder1); - androidWeekly.addObserver(coder2); - androidWeekly.addObserver(coder3); - - // 发布消息 - androidWeekly.postNewPublication("新的一期AndroidWeekly来啦!"); - } - -} - -``` - -输出结果: - -``` -Hi, coder-3, AndroidWeekly更新啦, 内容 : 新的一期AndroidWeekly来啦! -Hi, coder-2, AndroidWeekly更新啦, 内容 : 新的一期AndroidWeekly来啦! -Hi, coder-1, AndroidWeekly更新啦, 内容 : 新的一期AndroidWeekly来啦! -Hi, mr.simple, AndroidWeekly更新啦, 内容 : 新的一期AndroidWeekly来啦! -``` - -可以看到所有订阅了AndroidWeekly的用户都受到了更新消息,一对多的订阅-发布系统这么简单就完成了。 - -这里Observer是抽象的观察者角色,Coder扮演的是具体观察者的角色;Observable对应的是抽象主题角色,AndroidWeekly则是具体的主题角色。Coder是具体的观察者,他们订阅了AndroidWeekly这个具体的可观察对象,当AndroidWeekly有更新时,会遍历所有观察者 ( 这里是Coder码农 ),然后给这些观察者发布一个更新的消息,即调用Coder中的update方法,这样就达到了1对多的通知功能。Observer和Observable都已经内置在jdk中,可见观察者模式在java中的重要性。 - - - -## Android源码中的模式实现 -ListView是Android中最重要的控件,没有之一。而ListView最重要的一个点就是Adapter,在[Android设计模式源码解析之适配器(Adapter)模式](../../adapter/mr.simple)中我们分析了Adapter模式,在我们往ListView添加数据后,我们都会调用一个方法: notifyDataSetChanged(), 这是为什么呢? 今天我们就来揭开它的神秘面纱。 - -第一步我们就跟进这个方法notifyDataSetChanged方法,这个方法定义在BaseAdapter中,代码如下: - -```java -public abstract class BaseAdapter implements ListAdapter, SpinnerAdapter { - // 数据集观察者 - private final DataSetObservable mDataSetObservable = new DataSetObservable(); - - // 代码省略 - - public void registerDataSetObserver(DataSetObserver observer) { - mDataSetObservable.registerObserver(observer); - } - - public void unregisterDataSetObserver(DataSetObserver observer) { - mDataSetObservable.unregisterObserver(observer); - } - - /** - * Notifies the attached observers that the underlying data has been changed - * and any View reflecting the data set should refresh itself. - * 当数据集用变化时通知所有观察者 - */ - public void notifyDataSetChanged() { - mDataSetObservable.notifyChanged(); - } -} - -``` - -我们一看BaseAdapter上述代码,大体有了这么一个了解,原来BaseAdapter是一个观察者模式! -那么BaseAdapter是如何运作的? 这些观察者又是什么呢?我们一步一步来分析。 - -我们先跟到mDataSetObservable.notifyChanged()函数中看看。 - -```java -/** - * A specialization of Observable for DataSetObserver that provides methods for - * invoking the various callback methods of DataSetObserver. - */ -public class DataSetObservable extends Observable { - /** - * Invokes onChanged on each observer. Called when the data set being observed has - * changed, and which when read contains the new state of the data. - */ - public void notifyChanged() { - synchronized(mObservers) { - // 调用所有观察者的onChanged方式 - for (int i = mObservers.size() - 1; i >= 0; i--) { - mObservers.get(i).onChanged(); - } - } - } - // 代码省略 -} -``` -恩,代码很简单,就是在mDataSetObservable.notifyChanged()中遍历所有观察者,并且调用它们的onChanged方法。 - -那么这些观察者是从哪里来的呢?首先ListView通过setAdapter方法来设置Adapter,我们看看相关代码。 - -```java - @Override - public void setAdapter(ListAdapter adapter) { - // 如果已经有了一个adapter,那么先注销该Adapter对应的观察者 - if (mAdapter != null && mDataSetObserver != null) { - mAdapter.unregisterDataSetObserver(mDataSetObserver); - } - - // 代码省略 - - super.setAdapter(adapter); - - if (mAdapter != null) { - mAreAllItemsSelectable = mAdapter.areAllItemsEnabled(); - mOldItemCount = mItemCount; - // 获取数据的数量 - mItemCount = mAdapter.getCount(); - checkFocus(); - // 注意这里 : 创建一个一个数据集观察者 - mDataSetObserver = new AdapterDataSetObserver(); - // 将这个观察者注册到Adapter中,实际上是注册到DataSetObservable中 - mAdapter.registerDataSetObserver(mDataSetObserver); - - // 代码省略 - } else { - // 代码省略 - } - - requestLayout(); - } -``` -可以看到在设置Adapter时会构建一个AdapterDataSetObserver,这不就是我们上面所说的观察者么,最后将这个观察者注册到adapter中,这样我们的被观察者、观察者都有了。一般来说我们的数据集会放到Adapter中,例如 : - -```java -public abstract class UserAdapter extends BaseAdapter { - // 数据集 - protected List mDataSet = new LinkedList(); - protected Context mContext = null; - - public CommonAdapter(Context context, List dataSet) { - this.mDataSet = dataSet; - this.mContext = context; - } -} -``` -这个时候可能你就有点晕了? AdapterDataSetObserver是什么?它是如何运作的?那么我就先来看看AdapterDataSetObserver吧。 - -AdapterDataSetObserver定义在ListView的父类AbsListView中,代码如下 : - -```java - class AdapterDataSetObserver extends AdapterView.AdapterDataSetObserver { - @Override - public void onChanged() { - super.onChanged(); - if (mFastScroller != null) { - mFastScroller.onSectionsChanged(); - } - } - - @Override - public void onInvalidated() { - super.onInvalidated(); - if (mFastScroller != null) { - mFastScroller.onSectionsChanged(); - } - } - } -``` -它由继承自AbsListView的父类AdapterView的AdapterDataSetObserver, 代码如下 : - -```java - class AdapterDataSetObserver extends DataSetObserver { - - private Parcelable mInstanceState = null; - // 上文有说道,调用Adapter的notifyDataSetChanged的时候会调用所有观察者的onChanged方法,核心实现就在这里 - @Override - public void onChanged() { - mDataChanged = true; - mOldItemCount = mItemCount; - // 获取Adapter中数据的数量 - mItemCount = getAdapter().getCount(); - - // Detect the case where a cursor that was previously invalidated has - // been repopulated with new data. - if (AdapterView.this.getAdapter().hasStableIds() && mInstanceState != null - && mOldItemCount == 0 && mItemCount > 0) { - AdapterView.this.onRestoreInstanceState(mInstanceState); - mInstanceState = null; - } else { - rememberSyncState(); - } - checkFocus(); - // 重新布局ListView、GridView等AdapterView组件 - requestLayout(); - } - - // 代码省略 - - public void clearSavedState() { - mInstanceState = null; - } - } -``` -到这里我们就知道了,当ListView的数据发生变化时,调用Adapter的notifyDataSetChanged函数,这个函数又会调用DataSetObservable的notifyChanged函数,这个函数会调用所有观察者 (AdapterDataSetObserver) 的onChanged方法。这就是一个观察者模式! - -**最后我们再捋一捋,AdapterView中有一个内部类AdapterDataSetObserver,在ListView设置Adapter时会构建一个AdapterDataSetObserver,并且注册到Adapter中,这个就是一个观察者。而Adapter中包含一个数据集可观察者DataSetObservable,在数据数量发生变更时开发者手动调用AdapternotifyDataSetChanged,而notifyDataSetChanged实际上会调用DataSetObservable的notifyChanged函数,该函数会遍历所有观察者的onChanged函数。在AdapterDataSetObserver的onChanged函数中会获取Adapter中数据集的新数量,然后调用ListView的requestLayout()方法重新进行布局,更新用户界面。** - -| ![img1](images/image-1.png)| ![img1](images/image-2.png) | -|----------------------------|-----------------------------| -| 图1 | 图2 | - - -## 4. 杂谈 -ListView主要运用了Adapter和观察者模式使得可扩展性、灵活性非常强,而耦合度却很低,这是我认为设计模式在Android源码中优秀运用的典范。那么为什么Android架构师们会这么设计ListView,它们如何达到低耦合、高灵活性呢?这个留给大家思考吧,如果有时间我再分享我的看法。 - -### 优点 -* 观察者和被观察者之间是抽象耦合 - -### 缺点 -* 观察者模式需要考虑一下开发效率和运行效率问题,一个被观察者,多个观察者,开发和调试就会比较复杂,而且在 Java 中消息的通知默认是顺序执行,一个观察者卡壳,会影响整体的执行效率。在这种情况下,一般考虑采用异步的方式。 diff --git a/prototype/.DS_Store b/prototype/.DS_Store index 2b359bc4a2f76bc56b7f3d54a046a11ecaaabd04..b4dd642d70ccab93111c090f40b390591bb101a7 100644 GIT binary patch delta 47 zcmZoMXffEJ%fxtlvK~`Emw0uxiMg4Mf~CRa6HE$B%U4c*#U#(TYBLw}UzW{m9RK(M DYOD{6 delta 48 zcmZoMXffEJ%fxtRvK~`Ew?uWdk%^&>f}ye5>Pjj E0d-&xv;Y7A diff --git a/singleton/.DS_Store b/singleton/.DS_Store index b9ad64317fe1987e6725c7726ded89a66fb3c2da..230323f41a5d1a11b2a5d9957f2e23dc6379d4dc 100644 GIT binary patch delta 21 ccmZoMXffFEiHXC+$XG|g$k=%EFD5Qg08I4;U;qFB delta 21 ccmZoMXffFEiHXC)+(1Xc$iQ;*FD5Qg08LW{X#fBK diff --git a/singleton/mr.simple/.DS_Store b/singleton/mr.simple/.DS_Store index 8320c41c9397ead8c2617ac3c5c8c1730f2b83a5..b52ada2f40631b3973b32cd3323511396e648a74 100644 GIT binary patch delta 48 zcmZoMXffCj%*1$SatKpDw?uWdiIK66f|0TDv%Vt)N|NH=7 Cbq?PE diff --git a/singleton/mr.simple/images/singleton-mr.simple-uml.png b/singleton/mr.simple/images/singleton-mr.simple-uml.png index 3ad8df2f8831fd0c6b30c6ccc0a6cd92ff70d917..571e5f30ffd1491ef6699534d72a9424ecf76188 100644 GIT binary patch literal 46839 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 literal 31555 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 MNGOVb6EzC_e<>;ZaR2}S From d1729a732dc88530333ef5104f5298189c9625c6 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Sun, 3 May 2015 17:17:18 +0800 Subject: [PATCH 53/56] Update oop-principles.md --- oop-principles/oop-principles.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oop-principles/oop-principles.md b/oop-principles/oop-principles.md index af07c77..af9333d 100644 --- a/oop-principles/oop-principles.md +++ b/oop-principles/oop-principles.md @@ -142,7 +142,7 @@ public class BasicNetwork implements Network { ### 3.2 示例 采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。 -第二章节中的BasicNetwork实现类依赖于HttpStack接口( 抽象 ),而不依赖于HttpClientStack与HurlStack实现类 ( 细节 ),这就是典型的依赖倒置原则的体现。加入BasicNetwork直接依赖了HttpClientStack,那么HurlStack就不能传递给了,除非HurlStack继承自HttpClientStack。但这么设计明显不符合逻辑,HurlStack与HttpClientStack并没有任何的is-a的关系,而且即使有也不能这么设计,因为HttpClientStack是一个具体类而不是抽象,如果HttpClientStack作为BasicNetwork构造函数的参数,那么以为这后续的扩展都需要继承自HttpClientStack。这简直是一件不可忍受的事了! +第二章节中的BasicNetwork实现类依赖于HttpStack接口( 抽象 ),而不依赖于HttpClientStack与HurlStack实现类 ( 细节 ),这就是典型的依赖倒置原则的体现。假如BasicNetwork直接依赖了HttpClientStack,那么HurlStack就不能传递给了,除非HurlStack继承自HttpClientStack。但这么设计明显不符合逻辑,HurlStack与HttpClientStack并没有任何的is-a的关系,而且即使有也不能这么设计,因为HttpClientStack是一个具体类而不是抽象,如果HttpClientStack作为BasicNetwork构造函数的参数,那么以为这后续的扩展都需要继承自HttpClientStack。这简直是一件不可忍受的事了! ### 3.3 优点 @@ -443,4 +443,4 @@ public class DiskBasedCache implements Cache { ## 杂谈 -面向对象六大原则在开发过程中极为重要,如果能够很好地将这些原则运用到项目中,再在一些合适的场景运用一些前人验证过的模式,那么开发出来的软件在一定程度上能够得到质量保证。其实稍微一想,这几大原则最终就化为这么几个关键词: 抽象、单一职责、最小化。那么在实际开发过程中如何权衡、实践这些原则,笔者也在不断地学习、摸索。我想学习任何的事物莫过于实践、经验与领悟,在这个过程中希望能够与大家分享知识、共同进步。 \ No newline at end of file +面向对象六大原则在开发过程中极为重要,如果能够很好地将这些原则运用到项目中,再在一些合适的场景运用一些前人验证过的模式,那么开发出来的软件在一定程度上能够得到质量保证。其实稍微一想,这几大原则最终就化为这么几个关键词: 抽象、单一职责、最小化。那么在实际开发过程中如何权衡、实践这些原则,笔者也在不断地学习、摸索。我想学习任何的事物莫过于实践、经验与领悟,在这个过程中希望能够与大家分享知识、共同进步。 From ce0b52ef93eba17c7fe15d4a18163b68414848b9 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Wed, 20 Jul 2016 11:36:36 +0800 Subject: [PATCH 54/56] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 34948f4..a5ca70e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ # Android源码设计模式分析开源项目 -## 提示 -**该开源库已经停止维护**,该系列文章我们会根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,**完善后的文稿将会编撰成书出版**,以便帮助大家更系统的学习,此时更真心地希望大家能够给出完善建议,以便本书更贴近您的需求,联系邮箱为 : simplecoder.h@gmail.com,谢谢。 +## 该系列文章已经重新深度整理并出版 + +该系列文章已经根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,以便帮助大家更系统的学习。书籍已经出版,购买地址在为 [《Android源码设计模式解析与实战》](http://item.jd.com/11793928.html)。另外,我们的联系邮箱为 : simplecoder.h@gmail.com,谢谢。 ## 简述 From b13842beb83714296bc38eca7e6351894a2f03a1 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Wed, 20 Jul 2016 11:41:33 +0800 Subject: [PATCH 55/56] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a5ca70e..81b2f39 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ ## 该系列文章已经重新深度整理并出版 +![](http://img3x5.ddimg.cn/73/12/23802445-1_w_3.jpg) + 该系列文章已经根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,以便帮助大家更系统的学习。书籍已经出版,购买地址在为 [《Android源码设计模式解析与实战》](http://item.jd.com/11793928.html)。另外,我们的联系邮箱为 : simplecoder.h@gmail.com,谢谢。 From 0c9bd8752090b327354e751425f1c61098145043 Mon Sep 17 00:00:00 2001 From: "Mr.Simple" Date: Tue, 26 Sep 2023 17:35:20 +0800 Subject: [PATCH 56/56] Update README.md --- README.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/README.md b/README.md index 81b2f39..28ed445 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,5 @@ # Android源码设计模式分析开源项目 -## 该系列文章已经重新深度整理并出版 - -![](http://img3x5.ddimg.cn/73/12/23802445-1_w_3.jpg) - -该系列文章已经根据技术发展、实战需求以及读者您的反馈重写所有章节,并且加入更加深入的核心机制分析以及模式在Android开发中的实战,以便帮助大家更系统的学习。书籍已经出版,购买地址在为 [《Android源码设计模式解析与实战》](http://item.jd.com/11793928.html)。另外,我们的联系邮箱为 : simplecoder.h@gmail.com,谢谢。 - - ## 简述 该项目通过分析Android系统中的设计模式来提升大家对设计模式的理解,从源码的角度来剖析既增加了对Android系统本身的了解,也从优秀的设计中领悟模式的实际运用以及它适用的场景,避免在实际开发中的生搬硬套。如果你对面向对象的六大开发原则还不太熟悉,那么在学习模式之前先学习一下[面向对象的六大原则](oop-principles/oop-principles.md)是非常有必要的。