From 99927be2b89e100901823f87896dee7b34836420 Mon Sep 17 00:00:00 2001
From: Matt Welsh Get faster, safer, and cheaper mobile web browsing with data compression. Get faster, safer, and cheaper web browsing with data compression.
-The latest Chrome browser for Android and Chrome browser for iOS can significantly reduce cellular data usage by using proxy servers hosted at Google to optimize website content. This feature has been shown to reduce the size of web pages by 50%. To enable it, visit Settings > Bandwidth Management > Reduce data usage and toggle the option.
+The latest Chrome browser for Android and Chrome browser for iOS can significantly reduce cellular data usage by using proxy servers hosted at Google to optimize website content. This feature has been shown to reduce the size of web pages by 50%. To enable it, visit Settings > Data Saver and toggle the option.
-Starting with the Android L Developer Preview, developers can preview bandwidth savings of WebViews inside Android apps. On a development-enabled device, users can enable this feature by going to Settings > Developer Options > Reduce WebView network usage.
-
-Note that WebView bandwidth management is under development and may change in the future. The Safe Browsing feature in not yet supported in WebView.
+Data Saver is also available as an extension for Chrome desktop and ChromeOS. Get the Data Saver extension here.
-The core optimizations that allow us to reduce overall data usage are performed by Google servers. When the Data Compression Proxy feature is enabled, Chrome Mobile opens a connection between your phone and one of the optimization servers running in Google's datacenters and relays all non-encrypted HTTP requests over this connection.
+The core optimizations that allow us to reduce overall data usage are performed by Google servers. When Data Saver is enabled, Chrome opens a connection between your phone and one of the optimization servers running in Google's datacenters and relays all non-encrypted HTTP requests over this connection.
-The proxy server receives the request initiated on the mobile device, initiates a request for the required resource on your behalf, and then optimizes each response before delivering it back to the client. The content optimization is performed by our open-source PageSpeed libraries, which are specifically tuned for Chrome Mobile. The rendering of the page, and all JavaScript execution, is performed by the client’s browser.
+The proxy server receives the request initiated on your device, initiates a request for the required resource on your behalf, and then optimizes each response before delivering it back to the client. The content optimization is performed by our open-source PageSpeed libraries, which are specifically tuned for Chrome. The rendering of the page, and all JavaScript execution, is performed by the client’s browser.
For your security and privacy:
diff --git a/data-compression.html b/data-compression.html
index 0170e0c..ac591c0 100644
--- a/data-compression.html
+++ b/data-compression.html
@@ -1,44 +1,39 @@
{{+bindTo:partials.standard_multidevice_article}}
-Data Compression Proxy
+Data Saver
-Reduce data usage
Features and implementation

-
@@ -53,16 +48,16 @@ Features and implementation
Let’s take a closer look at some of the specific optimizations enabled by the data compression proxy.
-Where possible the connection from the mobile device to the proxy runs over SPDY, an optimized protocol for the Web that is supported by Chrome, Firefox and Opera, and is also the basis for the forthcoming HTTP/2.0 standard being developed in the IETF. If a SPDY connection cannot be made, a regular HTTP/1.1 proxy connection is established. +Where possible the connection from the browser to the proxy runs over HTTP/2, an optimized protocol for the Web that is supported by Chrome, Firefox and Opera. If an HTTP/2 connection cannot be made, a regular HTTP/1.1 proxy connection is established.
-

-By using SPDY, the proxy is able to multiplex multiple request and response streams in parallel over a single TCP connection, which has numerous performance benefits: it amortizes TCP handshake overhead for multiple requests, enables higher throughput by removing the TCP slow-start phase incurred by each new connection, and enables intelligent request and response prioritization between the streams. In fact, our studies show that just the use of SPDY alone can reduce page load times by 23% on cellular networks, and this is before we have even talked about optimizing any of the content! +By using HTTP/2, the proxy is able to multiplex multiple request and response streams in parallel over a single TCP connection, which has numerous performance benefits: it amortizes TCP handshake overhead for multiple requests, enables higher throughput by removing the TCP slow-start phase incurred by each new connection, and enables intelligent request and response prioritization between the streams.
@@ -110,11 +105,11 @@
X-Forwarded-For header. Site owners should check for this header to correctly determine the location of the user based on client's IP address.X-Forwarded-For header. Site owners should check for this header to correctly determine the location of the user based on client's IP address.
Cache-Control: no-transform directive. Site owners can mark individual resources with this directive and the proxy will pass them through directly to the mobile browser.Cache-Control: no-transform directive. Site owners can mark individual resources with this directive and the proxy will pass them through directly to the browser.
-Where possible the connection from the browser to the proxy runs over HTTP/2, an optimized protocol for the Web that is supported by Chrome, Firefox and Opera. If an HTTP/2 connection cannot be made, a regular HTTP/1.1 proxy connection is established. +Where possible the connection from the browser to the proxy runs over HTTP/2. If an HTTP/2 connection cannot be made, a regular HTTP/1.1 proxy connection is established.

WebView UA in Lollipop and Above
-In the newer versions of WebView you can differentiate the WebView by looking for the wv field as highlighted below.
- -Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile Safari/537.36+
In the newer versions of WebView, +you can differentiate the WebView by looking for the wv field as highlighted below.
+Mozilla/5.0 (Linux; Android 5.1.1; Nexus 5 Build/LMY48B; wv) +AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/43.0.2357.65 Mobile +Safari/537.36From 672af5546e66b99c0687b7840c884b28dfa62249 Mon Sep 17 00:00:00 2001 From: Meggin Kearney
Since Android 4.4 (KitKat) the WebView component is based on the Chromium -open source project. These WebView's include an updated version of the V8 -JavaScript engine and support for modern web standards that were missing in -the old WebView. It also shares the same rendering engine as Chrome for Android, +
Since Android 4.4 (KitKat), the WebView component is based on the Chromium +open source project. WebViews now include an updated version of the V8 +JavaScript engine and support for modern web standards +previously missing in old WebViews. +New Webviews also share the same rendering engine as Chrome for Android, so rendering should be much more consistent between the WebView and Chrome.
-In Android 5.0 (Lollipop) the WebView was moved to an APK, meaning it -could be updated seperately to the Android platform. To see what version -of Chrome is currently used on a Lollipop device, simply go to Settings < -Apps < Android System WebView and look at the version.
+In Android 5.0 (Lollipop), the WebView has moved to an APK +so it can be updated seperately to the Android platform. +To see what version of Chrome is currently used on a Lollipop device, +simply go to Settings < Apps < Android System WebView +and look at the version.
If you're a web developer looking to start developing a WebView-based Android application, see Getting Started: WebView-based Applications for Web Developers.
@@ -44,9 +46,10 @@For future proofing you app you can use the Beta WebView to test -versions of the WebView before it's launched. Checkout this [Android Developer -blog post for more details](http://android-developers.blogspot.com/2015/02/beta-channel-for-android-webview.html).
+For future proofing you app, you can use the Beta WebView to test +versions of the WebView before it's launched. +Checkout this +[Android Developer blog post for more details](http://android-developers.blogspot.com/2015/02/beta-channel-for-android-webview.html).
App developers face a choice when a user clicks a URL to either launch a +browser, or build their own in-app browser using webviews.
+ +Both options present challenges — launching the browser is a heavy context +switch that isn't customizable, while webviews don't share state with the +browser and add overhead to maintain.
+ +Chrome Custom Tabs give apps more control over their web experience, and making +transitions between native and web content more seamless without having to +resort to a webview.
+ +Chrome Custom Tabs allow an app to customize how Chrome looks and feels. An app +can change things like:
+ +Chrome Custom Tabs also allow the developer to pre-start Chrome and pre-fetch +content for faster loading.
+ ++ You can test this now with our Chrome custom tab sample on Github. +
+ +The WebView is good solution if you are hosting your own content inside your +app. If your app directs people to URLs outside your domain we recommend +that you use Chrome Custom Tabs because:
+ +As of Chome 44, Chrome Custom Tabs are available in + Chrome Dev Channel on +all of Chrome's support Android versions (Jellybean onwards) and the API will +change slightly over the coming weeks.
+ +We are looking for feedback, questions and suggestions on this project so we +encourage you to file issues on crbug.com and ask questions in our forum +Chromium Dev.
+ +If you follow the guidance from this page you will be able to create a great +integration.
+ ++/* + Note: The extra hosted mode will change to the following in the near future. + private static final String EXTRA_HOSTED_MODE = "com.android.chrome.hosted_mode"; +*/ + +private static final String EXTRA_HOSTED_MODE = "com.android.chrome.append_task"; +String url = ¨https://paul.kinlan.me/¨; +Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); +intent.putExtra(EXTRA_HOSTED_MODE, true);+ +
We are using the ACTION_VIEW Intent, this means that by default the page will +open in the system browser, or the user's default browser.
+ +If the user has Chrome installed and it is the default browser, it will +automatically pick up the EXTRAS and present a customized UI. It is also +possible for another browser to use the intent extras to provide a similar +customized interface.
+ +One of the most important (and simplest to implement) aspects of Chrome Custom +Tabs is the ability for you to change the colour of the address bar to be +consistent with your theme. +
+ ++// Extra that changes the background color for the omnibox. colorRes is an int +// that specifies a +Color. + +private static final String EXTRA_HOSTED_TOOLBAR_COLOR = "hosted:toolbar_color"; +intent.putExtra(EXTRA_HOSTED_TOOLBAR_COLOR, colorRes); ++ +
Many Android applications use custom View Entrance and Exit animations when +transition between Activities on Android. Chrome Custom Tabs is no different, +you can change the entrance and exit (when the user presses Back) animations to +keep them consistent with the rest of your application.
+ +// Bundle constructed out of +ActivityOptions +that Chrome will be running when +// it finishes HostedActivity. A similar ActivityOptions for starting +// Chrome should be constructed and given to the +startActivity() +call that +// launches Chrome. +private static final String EXTRA_HOSTED_EXIT_ANIMATION_BUNDLE = "hosted:exit_animation_bundle"; + +Bundle finishBundle = ActivityOptions.makeCustomAnimation(context, R.anim.clientEnterAnimResId, R.anim.ChromeExitAnimResId).toBundle; +intent.putExtra(EXTRA_HOSTED_EXIT_ANIMATION_BUNDLE, finishBundle); +Bundle startBundle = ActivityOptions.makeCustomAnimation(context, R.anim.ChromeEnterAnimResId, R.anim.clientExitAnimResId).toBundle; + +startActivity(intent, startBundle);+ + +
+
+As the developer of your app you have full control over the Action Button that +is presented to your users inside the Chrome tab.
+ +In most cases this will be a primary action such as Share, or another common +activity that your users will perform.
+ +The Action Button is represented as a Bundle with an icon of the action button +and a pendingIntent that will be called by Chrome when your user hits the action +button.
+ +// Key that specifies the +Bitmap to +be used as the image +source for the +// action button. + +private static final String KEY_HOSTED_ICON = "hosted:icon"; ++ +// Key that specifies the PendingIntent to launch when the action button +// or menu item was clicked. Chrome will be calling +PendingIntent#send() on +// clicks after adding the url as data. The client app can call +// +Intent#getDataString() +to get the url. +private static final String KEY_HOSTED_PENDING_INTENT = "hosted:pending_intent"; +// Use a bundle for the action button parameters. +private static final String EXTRA_HOSTED_ACTION_BUTTON_BUNDLE = "hosted:action_button_bundle" + +Bundle actionButtonBundle = new Bundle(); +actionButtonBundle.putParcelable(KEY_HOSTED_ICON, icon); +actionButtonBundle.putParcelable(KEY_HOSTED_PENDING_INTENT, pendingIntent); + +// Associate the action button bundle with the VIEW Intent +intent.putExtra(EXTRA_HOSTED_ACTION_BUTTON_BUNDLE, actionButtonBundle);
Configure a custom menu
+ +
+The Chrome browser has a comprehensive menu of actions that users will perform +frequently inside a browser, however they may not be relevant to your +application context.
+ +Chrome Custom tabs will have a three icon row with "Forward","Page Info" and +"Refresh" on top at all times, with "Find in Page" and "Open in Browser" on the +footer of the menu.
+ +As the developer you can add and customized up to menu items that will appear +between the icon row and foot items.
+ +The menu is represented as an Array of Bundles (currently without an icon), menu +text and a pendingIntent that Chrome will call on your behalf when the user taps +the item.
+ +// Key for the title string for a given custom menu item +private static final String KEY_HOSTED_MENU_TITLE = "hosted:menu_title"; +// Use an ArrayList<Bundle> for specifying menu related params. There +should be +//a separate Bundle for each custom menu item. +private static final String EXTRA_HOSTED_MENU_ITEMS = "hosted:menu_items"; +ArrayList<Bundle> menuItemBundleList = new ArrayList<>(); + +// For each menu item do: +Bundle menuItem = new Bundle(); +menuItem.putString(KEY_HOSTED_TITLE, menuItemTitle); +menuItem.putParcelable(KEY_HOSTED_PENDING_INTENT, pendingIntent); +menuItemBundleList.add(menuItem); +intent.putParcelableArrayList(EXTRA_HOSTED_MENU_ITEMS, menuItemBundleList);+ + +
By default when startActivity is called with the correctly configured +ACTION_VIEW intent it will spin up Chrome and launch the URL. This can take up +precious time and impact on the perception of smoothness.
+ +We believe that users demand a near instantaneous experience and we have +provided a Service in Chrome that your App can connect to and tell Chrome to +warm up the browser and the native components. We are also experimenting with +the ability for you, the developer to tell Chrome the likely set of web pages +the user will visit. Chrome will then be able to:
+ +The process for warming up Chrome is as follows:
+If you are not familiar with Connecting to Android the interface is created with +AIDL and +automatically creates a proxy service class for you.
+ ++// Package name for the Chrome channel, the client wants to connect to. This +// depends on the channel name. +// Stable = com.android.chrome +// Beta = com.chrome.beta +// Dev = com.chrome.dev +private static final String CHROME_PACKAGE_NAME; +private static final String SERVICE_CLASS_NAME = "org.chromium.chrome.browser.hosted.ChromeConnectionService"; +Intent serviceIntent = new Intent(); +serviceIntent.setClassName(CHROME_PACKAGE_NAME, SERVICE_CLASS_NAME); +context.bindService(serviceIntent, mServiceConnection, flags); ++ +
long finishSetup(IBrowserConnectionCallback callback)
+Set the callback triggered on an external navigation. This method must be called +right after the service connection, and must be called again if the service gets +disconnected. Only one call to this method is allowed, following ones will +return an error.
+If you are plan to warm up Chrome this must also be called before the VIEW +intent is sent to the browser, otherwise it won't be possible to link the tab +created to the provided callback and you will not recieve notifications of +navigation.
+Returns 0 for success.
+ +long warmup(long flags)
+Warm up the browser process and loads the native libraries so that the Chome +Custom Tabl lauches instantly. The Warmup process is asynchronous, the return +value indicates that the request has been accepted.
+Returns 0 for success.
+ +long newSession()
+Session ID is used in subsequent calls to link mayLaunchUrl call, the VIEW +intent and the tab generated to each other. Using this ID, it is possible to +send mayLunchUrl calls and intents to an already created tab as well.
+Returns the sessionID. A negative number to signal an error, or a positive new +session ID.
+ +long mayLaunchUrl(long sessionId, String url, Bundle extras, List<Bundle> +otherLikelyBundles)
+Indicate to the browser of a likely future navigation to a URL so that it can +pre-cache and prepare the connection and the page before it is shown to the +user. The most likely URL must be specified first. Optionally, a list of other +likely URLs can be provided. They are treated as less likely than the first one, +and have to be sorted in decreasing priority order. These additional URLs may be +ignored.
+Note: The method warmup() has to be called first. Each bundle inside +otherLikelyBundles has to provide a url string value. All previous calls to this +method will be deprioritized.
+Returns the sessionId if it is known by the service, a number < 0 to signal +an error.
+ +H~ZF?)#7*?5bw0nqJSji3BrZE(_ai8-z`zLDKV)wmdCQVA+MbY#D zJt|;!n+lL5OEnhsh5uFlw{$LSN>^=!d*0#bvvY6a8&Lk_fRBLkL;24#LtOFJ%{7M| z3~t_e+POPhuM0mY)b`8{Pyv>}r;93fY^_B*3$BlRo)rzpE*jKt(UPERO;JB&X}MH? zg1`$YRSIw2fXb`kPV?Y-`r*$`e=|IxbUmOf-jI2kPy!doIpybS?p=*dlFQsqYZes6 zQ7n>{tFxC%bf*d4;`xad64y4qxJHrBTvIm4Op9cE9vp*HgvH7t-=bTinLlgM(W3KS zEG^{9+nYImCs06=st3p1==x+%bcM4H{)CZg*R+XqTf{l_xr=WE%7py%5E$fV@@;82 zV=)ZX6Jk-h)ow=6b0+a(nH=8NhY5CwTebDbB()c2NZ`&*J7|+b;iAj zR|hJ|OML;ge2La_`NW?imn>Q41q%HQUYYG&IeYjSH^-g5X*#xs3q)7=qSmkSCRv#w zY? rX9*wM&NAemaS~D$u6C0xcI>sw0eT+A`xE&6y{vmB-Im6C_=oY6WD)dHo-= z`u4xZLi GSSPU5KFX*POqb6afjNO`m9O`pwmYjqBe6LXTN z5NEHK%nH3o+a5QP=m=*#$7ugiUUK)FcC%+E0K4ZQ+$R;XDH+y^=66=`os(kOGxwIN zOPv9L-|G=yyo87*gA_ZzuEV}jLbQgHLbDc20yDPkxdX6Si)78$rhpG!GTfXYqoq7! z@7W<_nOvoVLB*PeXEMJ%KEc>Pqiv`1>3DzRL9zI|+B)hRt`SSL x-*51<5B!iz8&PcK3-U*YVcAu+Gkjb{w?97UggXZ7 zwN_-dOy9eKPB2GiR(DsP!jIyg^&2#?#2+y!r!4GRM4#lH%W9~-*IuGGUs^FRVeQO3 zW%5xAcLjA+GM2!hNRbQ~UdxJOu0R`Oz!}fIok5jGq6yOvA34~tGnT}R#tr1NkF;&C zqTg9J461bcq&VK(+{`F^9SK`OLacEsWu%DHGF3Dl(3jzF;!baay1vw8Ng8s0T;_%K zOB*|`yQbX0D-+SZD30@ !<|KMfBxNsyAHZLGd2nHSP)Sw6Mck1uhKqm$dc{#~ugY7qrNFNUzd(p;m0}Hu`Zp zGV>^JjM*bDKkjS2KN| ;WbIn&>_LwCjUM!rZ*>pCAMjejj@TG1Tk!3t5NSw7a^KA^wUBh4{Z zSutSTFe-T^KiKsoC+Cwb(fX5p3 %2lHmx+krLBZK%mKo`Zj+wyn+)q3 zAo$FiqNXP&OnNt4zEvfbBn(6{MGQL+%965QvZR5SZT)AR36d&Kp|CYGnME7VvZ~R* z@@vX0fP*e&zxbcKm5cc%PQn=_GG!f&R<~`jX7^VE;aEvpnwb?OJ?ghLv{zLC^D%%2 z;WYs`vQFa4EGrN9{_2g0xZ!Tk|Ajn!UV#d*r#Q)VAXEQuv%`MG!|F^)_TA~G+~<=I zm{eBYcwaKQe&VjQ%Dz<+ZlO)NR9` zZBVxrz?5Z5Z@V@(X5E2aooSW?QC!eKa>kf~C+imCMi-L9A$}P->>QCCtz1QDX;7 zpt0vb%b)_KlX
pTw z3Yb51hfX3UHlG36!TQ$~D@!Zc{d&K=&w$;g9i>@ib*ZD#vWbkymMxI`RCy7Y8?K-& z7921Nih$P?KzXh3kr>wQF*B11Gc^ldmCDxjfR>(s^lR6Y6|&Q^=6&)rDcl9+9VTT; z>#cXr*ef|(mCbgp8T =1{W@0~M)W5-*rWQH);lrmd~3l>OK_p%(FhR! N=4n zE3;_n7^^;{HvtS%M;~(rvTFFobVso+lrAquyf-@|95j0743mG9XU32j7avwR+CD9X z*w=C7b-l8wme+x)*lMLFHR#TY2Cr{uO;S~P;|=E4SLizjf+N$SOqY9#lSy4u)fJAO zqpd^xW@4+JV?}iOo9pP9X>z8|Qb~duQ$(GIvX!H*XX>j2O&EdI(O(-YERyh`Vwpp# zjlOp-vXq%uweVfbQY3E7KSVjMyr+Jo&Oja~5A#V934O-8QXR?8?7$B_eHr9+>zC^T z?GhsgZL5ND%jYvU3%{xfJE=F2fiIc)6OXlU?=UXSi&)3}@+l0k@A{Sqnm6EK&b4Op zmul+^3LDD2+Ec!V&6Yb__wmXIntRR$=rW%&cdDxxB^Vk#@ t6qMH$T >JCq+g2S;gHK0 zYS(a>2G%n~+0m$4$`m*~H9ifsxM*%N?l3(D{6i6_+F?e%Tk%GqtcOlDOR&vO)CC@< z-BZt8lbZ|On)ANI(EVp^>mUC|-#*wl&hDiGwi7Ma`~J0SaU}+=-*U zwa+KcY|- qdXHTy;C)}I_}em52^= ~>BKm6$oj5M*a4kyBK zsOv-sK?!wCb0+D(^A&9et
!cR`UT!?XjEp%ecn`ZN zPLXUjD?sPGCTDMZ_MFTp$I2FD9G_jbRc%NxaIR14DX$(auyn$Cal #X#9?i-k5njltASL3%`3sh<`-@v& 6A)X>a~s@YgTPgYeLWY_;^(y!%PiPwu0wY`kzpryU9 zo6pZl1*(s}i7@_cfOc}MDqL0NCwi{YJToS=T+_fz+9@vDibGK~{+tw=)x#}Kgjnor z>`5N5khiD+S_ ghXO>6yqi(uscA Uo0MyIoByfdVG{)%g-q( MBCfxvU?*FATMfa z9AYqzUfi 1&rMCuI4f2DTp@e&N$;lJc?P&=8IZH&rtEI3;X# zGBqzEa(cAi!|QRt?GseM_q6xBo7sGI4K0RhHXlnO#@N7<@~v0dB6=gR_H->h0vATh zHlZ!Fd}J9*5JemtFfRF(LqUA=X4R#LLaask++~(;NBmhjd-Ty|EuHPs3LLn5FxfZd zc`;aV<}06?AD6G9gLnH%BYhc{QzoX8&xJp5gVzS0v6EKKIM1VS=jWYugJxOi6l&RA zY6n7h@G$)+c4CKe*H51CI0USFAQLs=O7Vzq9uJ(-6tVhkDK|Os+4^U>(xHE+5HV_~ zYa?unDX@m-u*Vsxt*9Kh!qmJ39lq-M4{azAl2d3}B fB!Z3&FN6HF}4R|wP4 zFn_DUpYfrcrIV9F>zz4iE~|*)O9$-srx@Pj5p7o6)dG(aDvHgd;w^g|2P$r}Bn{~C zon`rqz3G_u8Rv*ytO)u#YkJes>D#(}{|T0GP%zmfnS$~l$wVVnf7VOQA3Cz9Qvsq- zAHSP7V;68MSG$DM@PXLcrV54Xd}vQYzY6eFNNI833vuD%J ?b@4nS26GakzxG*v#EgHvhXj&XYD*e&*SJ@SIGlN!uD0yf;hq`nfIDCV2IH zPyF)N2wX;_LdoakkN8(BwUcLAViC_|euKoZ;g3P3FSbQOxoeb)G}Q!DkD;f*eJ!*8 z&hmq}4~HMElG4|>_=!2-yBJdZc059?YqYA1clprYT}|&2tfF}|Y62;Yy#|h+H;;35 zRt^q4lPA9ICh`2RYhuy50MT2(G|ON9YM*|2gyHQ5CR Y(!V`MBcQ7J4<| znAjxXrv0RV;6n}Ljd8T#=0JOv%(CKUp+s00=V*`IPV_uq8DZ @`Y~tuKgY?gqgPG(biGw)RmQc^B^)hZ^Vxp# zIXn5rtG+IP)n|+VJ5<6rC4jL@Qh6~`yJL^ 4(26sQtTdofT zE!GBde+hafw|QlgW#kLnr)yx;vAR_;UL}g7OUy9e@K_on&o#v*+T-$#iH-rg%5mYG z&yVi0c#bg{f9syTt3e?C+uTrt6MF8)dGZ3-V)^yfS (V@-R`|FAwzYSBoE>E9IhjVM| zm3L+5<<*M->k4`fX3EhBT1=txa#C9&gb|bew(HK0@MxMlleFAyAHW-0Oa4j)tlhNR z+a)oEfb6~mq)qLq?Dx-hzi2ZoE;W;v(Gr ^FpKk|9mj;w6eCqfp}T zRuIC~1;>B?N% Fm_MX9-*O7EF9s4G=80fn- zug`drqv?#>HAfssLB(HqqQ-t9oH^ru>!ao74V{oH^-q735LcR{D|L#4csG%GmCwc= z(MT+dfm?pdex!iu(<$KTePiOn&~OSQcHvahmq1%QC@Nx7@B=+gh^RK4PNa{fc}lA& zj2TDTZ=YK(@fC6hr)j7$E&Ysb|8Witkno(uM_)V3lIMs7&vQJx+{wrvgSNM-YZs2$ z2I#jEf DiuqR@Y%M&238yIFqLQ*8Ct(z3ADM`m793J^UkvW4!Z{jQMUC zNw#m=6(P4{kQ2J-I;r}4)AdLXhH}sWE!h-L2hzB-y(hmz5c6X9RyyqCIw}-xbu5pe zh(=n>TYFfy>0Ajx?dQHW_K&h^aA$=$1VC3TUKFv_HqrC@xy<$qUf{F1#)Rq()ZZLw zJE>TgAQbl@b_?p@xJYr9y!ghCk3dJc!90v+k$WG^9#Y@Ycii*gys3&;$VW5X_z q1Yx+`z(L}IhL|nf)+-4^3i;kaFOqsZ!;SbO9->FJx{q*2zue(z1SQ2;> z%F`xBIhma@sv>r)nuJ&Yz}I>LrszoDvCiz?z2tVa4VzFz9@YwY+e$WZmY~U8|3hdK z9OwI}ZP(OukP5hN$-ZTam+zC=GMqSh8CqRjT$tkk(+xQgow&;l{z81%hNu!tEUsXk zu+3j|kB^-yF7}ChUKl52Pxo_%PARGi{nl5b(^-)UP;6@-i*Y~-J8oME-s?{MneQrC z 9t2aoJ DfPeao6i{s*pz^^y>04`pexlaVI`@U|oTukY@9`x!x9Cq!Nv)pBn;e_ECY^M1M z=84tpEEU%}^D)SW(%?(cjd?{!J&wgqT&^&B u-D!z;lba(1z8%(eA;Ais>!wTZ>C`#+qZLMKza2VD-O&EOEf0 zYk%ia{tuV`g|KydQGHcWLuEsSXIHY3k&5JoM(gjD^c0b*YQ*M7@`gu4UK_sQb0@~T zFsC7ENn+*W8F457jrg-?oVI>DAl!HLRJ${_9W2zGvWSqheRnUUWNkqep#maCbLws! z8w%P!csf$a+R&~o+|5a_=$IG%aZ;$b*M3vNHM9Pw-G=TOEl~0VuZ_Q2I$Lw(7G)vr zmC%r7{W;wwsH13VvUnz(O>QY_O0`$44=>>v5JpxWktLS&ktcG&?{>M5IF*Y7hIS0A zxshI1Co6F}%#kt^M;d4SzGthaRL~+=s>km$H?V(X&t#z%sesIS--C|ixBHZ>Nrj+U zn~;*%sb8bWhp#D-nak$A @mUZfXZ HNJc>KlkPrEzEWLyxFwOROV&KazQ!_{%DV88w(beP#)8wdra>)_qz5Hr}^*- zo;zw0zwW{9>_o)H5!3WxVe6VX&z;=YU)CUz*z}HhD&P?r+>q8$R)MXr$VBQNOo3XC z-c*_1%g^uTDAw4$`dg*37Zv`>cqP ({8<@;X`lS2-M z*rGd#e(qCOYcwXc`G<>T9 R<+FOf0Ft=OS8xL^ zKWoM}l)30leAGVIf 9Nu znG)ib-v*u8Gc+-Ube5Ks kELax|0u^83odUn@4JMc zdGazm%9Z?%emf)D?(=Nn+}(}>9FujhK6}e%p`X_9aFOO*VmoN;=8t6;zQBzOaWSP9 zQ$7Li;eKBn_JkcHGE;bT-!2vdN7CY{0Iw9(QHnj-^&t7Urx*1l?C^9yl79_O@M)t0 z5?j#@(C&Z%!I^E!F>uzG>B43o&B0^Sn8-43j9&d9$c|tkRw|Gv8;5p6$6_or(PBvR za)pszp%al`A*&{WSk1 G_@vNc9IL$tw8B^LM|A)&QOhr(Rom|62I$54 zx{BoK!*+r5emr_Q$iGt!<>pES$=j(EILnbUbpI?%Bw3fTQw`jk2q3cLc~_EULMS$H z(gi)2^s+Yc!*>*G)LS>E?agiSEETX_N?s9KYX>VIK#qSc3HI3>uY!vg=JtDqkK!74 z9zwe*G!0-sUgqeK!f=;odm@TLp!o+Cf=QJ^MB0}d0
5C=*Q-+Lav(j2ixPC;MPo253g(aJ_07Fn2aUo z`iK_ 9?Q 1dH3{O91yrK3^_2!kuOp`cEW`tQ{rTKQy0T@$eT<8 z`>f`lF@o*YqtA%qgVNgQQ<)l}#VwkdlfVr$3_7WYH28H$@<)X(-ogTuMj0wz$TAps zfA#7loDXzhC|rMw+S!ZNFZ|gtRFjl(G&CS7Nd;WIm1Z|E<9eS`J8v^Z&_mkN x^+UnT(ytV6cNi?jXy_at^xQNMz=IW^jOoC*`? z@sEH*X|xE9r;+4-{9IEp?R#b_C~qf<9fS&y0}ic%bq?B&2YdeTIMcp(Mx>{0Z(C!h zD6i*!)zgo%Y>g>XUN` _PSOilT1_tI7z9W4V&E z-^V_-&$zw% ij`ud)c%UNE@kqDREJ)Md&!6c9P1jI_ zk;MkuvYq}&v7|{m+;l_Nq2c@@=)upE5B=Q5+q@E-fBe=s9ISRH)*P1aHI5+h_>Hkc zSOKb%3TTS;9ZBO(e}o$>rr6ZyCfhmtC7;fGh4)GB+#_I9bN5k878VP{ny#&*#zQKA zq|`QnI{o~IjWkZ3zEIThme!;Z>#qJp{hX^WxS&Biz>91!m)7H+u-{Duz&`j+eFQ=D zWh5MfG@V3jQXb~3fd%B-gf(a>fh=Nua}}NeXc9VekywMFZ7c^U*s8_d|BJo%j%#Y$ z)`n4#;HCsDfV6;ss0av1lM*8eA|lx6MG4i=Lx&I{2uc@_-c%6W(n}z;Nbeo#5D2|X zfKU_Pwf8yao_)%D-}`>w_xtX-zu(CpteHhtvesO4jy2{O&+`oVycXVR_9BxT#T%53 znlzCcWt~!GA99^;4oZITxp`yu>sI_!3lUYo39+MyM_z|%}!<+YcYA9}oC zyS`3*;rlu;{uS3)Ium?Df@O5vdb1W=iE=E+9c#-k_QF%p=kBh*pAR35i;t?ES~!c< zw>VW`n`HxADzf71Qk0o;8CrN2X!n2P7@eRma9&1d4|6mh8lV4~&scslOdxRgOBmaQ z14E2e$Yo-9(VaRTyA!$aTg-@C88j@f_`m!q7)+-v5!KYV?IO1 fio4MH-;EveVl<2e}ZJ)Ok4%Om2ul6qA%^K$6o+M-mM#L{jGgHoC7I`|yTEE@Z9- zAF|Qob{m{458(b>jPEEIKb^9#u2jfYZ{FJZ^bQ{afHebceiyO$)6dg~uOh|Gmg6jp zhB9s~)2z;8iBg-m;So%Lw@iA&^uc`Af&r1+xLifdX`Qt|W0 zMi2`}2NJf(h<@XYSEu6ZtFkm2&dRU&51@k%8n$f;`Pwp8EmA}CTW?f%ob4o~_=$>g zUTz=3*)`XkR8prIWFYi)*`7I<|Hh$k$EyK4pIkLW`QtnB&SMr^eGJ0b)b$sh)*6E1 zpQqJ5v@0>9-_0KX@D!KvLfHD8Z?+ E zhNhNj0$5*{TjTK*&U8VWVR`E1 $daOcqmg93VVJIZ`Zsd7Up zywSaAYK(Ix$vQ~7(=OcUg?O)nz3r3Hhl3D}QHyI5pIotek|uXr?0jZ?ENq-;)`c@y z)oJfQF8qJsg{`t&KQYT0br)7#P6yf1f|1mvW{0aa<4tCBmcnzV?8ET+fmN;&bVpar z>~Dj!JR!fPAYzCazU5J)^O##zMTzU-Q_uNC)GNZ*l<%rMy>Og87$MlaW>HbydiUB) zW`iZ|xKKaeH?DqLvteFV^FzlKQ_-Xm<-Y4 ;4wn@xDaEcqtq%eGE3L!W`ngKVsW z6sF%5H;Aed-v=t>BVHRWRM-HRJa821S >29J Lh@TpU~OKa`&spxezk(&=-WWfBkjoO6Tl*U&3{6&Vhg^KE<=up$&|Rq=;y5xxNE zKn{MYj|2g>8_5o==A9v(K!73OB{%_PL)_yO_dp4}VE0n5B= hg%QbrDUTQAx^LYZ;ur+N21BZh%ATx+(ijr_D#j=araa{o>R211d)C(Glu>C zGncgsZ!2pYfiT}2o|%k%9!P$wCBC&eh-&1H9Nl}r)w=(wuz2z=A|}AgGWvq?NM|03 z!RNG~8zAU&S1~65`5paeA1fDXu@zn&vMCZ(meen5 v<7YdwVR1K3LB*M;@B# zKsy+A`VxkCrN9gR3bxbp1-b(gpuTWEz5pX-)AtxnD>z6 *% Cf11`0usqt=kf={LK zEgw~0tXc>aS4NX@H~{Y4$C}o~4=E^m@%yMoEOWIKe=POkQB6{JhPBn0?WQ3R9d?c^ zZT>>1y74uE>OvMt^vx~u%K4wO8hw;= # zh^MDUI%|#G-x^f 82R+N5)$M(ju>%}exkNuU|7E;n6wunt09}tXf$kE z^G3yQ=Tn%m3yX7vf7qq5e%;9_C09G0ikrdYjZc10c{hjCH#&r=(c}B>{Buz2$W3N^ zC*XrDWE`SEZBrEhU%&uQ8K#~&2f5`9rHoDEdlmQfGQ8_3V~glsxqV&!85MuDm#*28 zI5gn0O7 R?^Qd(1ndV{BgRnno$SBp-g_qYPK6}VI$v4Tu`t--? z$=BsoVB^{Exsyo+Xupx~$9u<^k7Nq23?R}`^nTJ5ESg;k!RXvmY1$@HBi-UhwO(q7 zj0Fy 2X+5Yiv9wr&~K;>VQ ~;=Hgv$x~8MU7Sbz>7J?Sy2W_IE@3Vm;kQ{JI|k TfKhuD#SFLS z*P~m*i{xsHFpDohA9}g6Fm@JA^n{Ji!AE&Yin^+b?ff_2PRHT$$5jg+4cxA>tsb-7 zs@)qPth!H1%=nrS7xm;fAJjnhkGsk`3J#douC 5_c^L5Gb5}IGyWW~ eOLo1IDW~_6Fodc*#zU#LM>;jWv(`{ ziM_(+y?AWadf1?Y;74#W<*%>}ZY_Mq-i2=A;I3)$QQq&9Uxg}5E5(^4ludZTS+dZE z>g^bo;kD%+%hcR7O;OLc-1AbnLEch?zQ$!mbarj3xxA_55IJ9tWB8n0c@MXVfa9&9 z!F4zy<5%W5Qui3SAEB7jI5f=U`sB`xE-sSWcwqAssOLC-Z89Zfm*l+KDsE@0VIlWW zvhy37{X;%tnUIa67l*77I;^V@F6Hi6UHD#0 !! z)bH>N41!e^94{_hxc2@1WT1O_B>baA|ASE)JNp+C+>9-{dl{=r(u{6_#ENRI@r0vf zQTGN>qEI2O#yy@s$*2BwEZZ>#1W&D>GM7lM93n~c#I7hBE(~uaP4g({sQ9!|QoJ(d zqNVDI{Tu!G=)@jZZ81tRqZYU#me;Xw<9q^<$9$Iey{kAbZEH`9Rlep!M93u?q9Nft zT$vTAv^Tn#WFei%z3=Fp7qqcrJByf4k(V`K{N}{UX2|OXBjoa ENS9@k2hYSsfm3 z#@DDOkVAt(2Ryi_IJT^RY`lpn!ctT7({tO48C*|2_yZPeQ=faKhQ7elbGM5ADBn7< zpl+Hc)7Pn-2Nh;@eh@j@kW}YnWa(z@1tQ)v-A|=T^YnvSi2>Dmqg4soPV{P|{`Rq2 zxuTvl?Ja$-=3{`_70)!osUjH4&RNlAs+#YR`615QU#my3s*w3415~eq&n)rz+L|QN zs6nQtH+2Jt9P97n9=!!z@ym@lHkC+klU8{X^8MK>&bHDL7bE0ff1UF>6(O{-Ef`q? zdIYQUip)r9kZE^GL>P7Yh!r?MZaj$7XlO8gNsD>mR8WzzK7vrNb0W(=j;k~>^8E0w z^NX#k9kb9=+WQf6T#H})(hQNtqGAw<1~bEoHcPj1Cq&BS1$noz!(Rp}&hgwOSUc+6 zd7Uw;kTKACw#r^{*V2y&{ ubi E!)11M2a+<2QxOq#w;Q#GdpWvE zo>l0+7NlEKmm$5(I?3v~`QO_+Y{&SZ=>scaAYpU26XbffI6y!BzGHYJB$gNal7&0* zNS2f%4*o7TRF2I|4SKvJOiR}KG`_7suN*nrlA@(( a17( zRYk;G=CbuK$h88lUSj=>x=dGpuG^`*J||g(oyo3?eVq$;g=4ocGw(_i%J>$qvtq1? zXsa!5Gv~H~3qn~DtfOP`c8FGi{OH?UCgu6PDvtx8k%zQBP6rcy&*DewSGnKh%f59` zx-A#XPTd+i#R?=|AETF8RFCUt_oXoNezbwb-K1lyi$@;yQ}>qUB~$Zh;cvult}wuA z7F4= uw}^1xLY^N zy_gXvHqWcf@siuy` uogbbgWsiLkl;TctV^;hREM$&-9bG+QV;zc z; >xqI)ohu`Xz=Q`?jF{tgX&5+WQk~6sf&GlW0 z{7J>7g_9UK5o)#S@5bA6r8;c9aKr8O2WN?FV(nvYfF^UE9LU>0G&I&fCTe6e&Ror8 z=hRrIRu+Da2K*cb?)0=e8%Hz=Z*RT_Le(_fh`Vw{tMle@#*&Uxb@^yje4WcoSaoSl znaH;To+XRywFE=*arfmb&8QTGl)V$>d+zSKKWV~6jhEA@qO^wK_GwIolOHHxW~9M7 z?1gV})aqB 0D$MvckQV zrslXLvi!nHe!}fRM#65EVuj_=ym6%aiyNpbpNL^k9`5jlgV=T egiQ;QIy{DjQvZ1hUERGZmp d zJy;eMWV}mDe7?R38~baZ@t?G8_-fFu2LxapBz3-J%`fB#y1aQb2?ZjEpKEWKDNt?z zYPy0g5@Ks!EK=l|ar^cB=_G3!4W Sx@N0dp8*B4u5g=?V1cW>&<$Ak*H8lXSyiZSLjFpWe ztEM)Ny-uvN_!i;Q*)(F`2Hn?o9HK817j0?XbVvj_2|p-zja7^1ufUa~6CI^zqGJi% zp<0Ti8cxj=?@dW7Q_UL#_m-{R^|x>9wUUg9K5bWCE@uvzdqzG74vFb1PyBK3#&3rx z&j{DMyRB9?B|f=U+$9ia%X=;2P}@sfWF9zRSSBH4ePd%i#l&7IN})bNvZhPO_qBnY zbxF1f0OE*0ICvx!eQ#T+z%`mLA2??5@laVmf_O!(k&X^xcF0H>n8xoF?6<}D9sZ>G z2u(!ipf^2!(!^5}2*cLRf4K)Q)3Uctds(wqHjP(E?dIE&Et|uoTKY1{4z^+imO8#A z&h=iXnytckMsM*3?3=(d@-atedR2o MHanznC>;`fNRp#<5?1{F^dWwf}ADAN=KiXhMX%yC@5b(Ehu}bT%px zJLN~!0GOn67FPOK|M))~<^Mxth@t@i4iv!KjFHpr;6%zrD(O138~noowo3#Q{M}a6 zb9E;~CD_IGTL@Y*UmX(pW7Ya_n_)NhP0?hOjxQyq)kQ)F7ZuZS#==EPR@C!?$-6?E zA#zl+oF2prwwujeH~zd(R^A6*$$i;~)vLF{pXim1NPVoM@qak8zyJ4tK~>?^8~%$x zZtIV){~LDiUw<)VzUYEyz7>GUEyCF-kAHCb3rY9Sp!C1nU> 46iUIfs?`ho#s-R?sX7-UC^-($>`KOoWn zYfXAtO V$}8BnkyMBc#`5tQ0QU-D)rW?)U_K2w_F`8m_ED&I55 zcRR?HfqIB} V)0L_a0b1b@J!z7?Pa6HC(f19Ye#rYK zWo4qVe$76Dy~+9VxNyhBvar~VADdo6at|?gxPPxC_0Kbq|8y_2$k12D&`r(lUZc`l zwI-hVPfxH@o(o J%dQV>Ass(ydK51KHKU4qW<|&v+?6W_7ysdm7}AW%Eltwe zUSrMr#<-RW2IKp}ntwlb{y2{Q|7 _2apYX9%T{$@tSQxKK`Tu db!SK+{>_8-Hpx}FaEI ixH3JmeOjuW4s5Z8&zKe*raXO%M{O=fGjfIK1TX<$oXk z@2>mzu=)3t`M0_FFPlnli9eZA22(es$mxkUte2hRU;U){v3c*k{8Haj&M2i!@D G(& z67zBJk<>PoccsVn$^XP_U`*$7GF9^_^2k0^>_30=U%k)&@%#d42PF @)bNYGC8x)UnnNYS^yC zhr+)t^q>HgKi}Q#_Y+IO)h!~^L9r!b9026{w9lo k*h zFnYwhj&aMy{f51kT=StFnO=~8mQSC78DoI0{N8^I6ZlKB2{tCOW>;(@-v;EP2Dj=# z8xw=)w(=jnnj0y4|7}X@Ck@ZC(A#*)V0wiu`Jy8a`auxOC)JUFM<-6u^QlV*H{V_+ z=?#%}3ZL~)w6`YFY$7{uGf*YE< RPneE) z@)wabMo*!NG_@u=G1usJ64y}C$9&}5UK;uw8M9;4o$T!v#-B8kjE>ZB+MhHWHCK+e z>VdL|x5oj7`7NL(>gIj4k`tcN3&2*FdhgBR2n=nkk`uufyiIzIreIf~6<#oT27cC; zEE$1+jsJ1^A-@BH<=2g0r+A39irGtp#cZ)&&LgHLY~s{PTiEz9vre#zlMFe7e6RnQ zsG-N9SG2SBSKD%3c(U27eH@5w>(+Q|i2lUQvNd1-E|q##ec+rTHK9s{Xi9$xRg%8L z*2~rh!91U`H8Ex^Sv)>*d!dczUG=j9_?V{gFs;sQ#vBF)Ns_`fcd2%x TZCs<5J8j!W#MDxP-}q${fP@i J$7dwQ-x00d?(pi})@r~lysft$jveC?Q22i%nVJ^PK|zdiWgj6wl( zkFkb5rUzbJ&L-U%$IV?KZaVZ-4w-y*LiOdXUzs}Nkc^?P2P{bJL)S~6^&5Bbh|ze& z#|3iwnk8=eJ+pUnYjKgZSkGOQEk9dV(R>NPEr2k+g*cYF@jWx}?B%~nUdgCvuC!$H zSgnm(;Z9|h{m5`jHnvL9%X$&0!Cz3y-&}wAec8%tH%`_#WVF1PRS;Ww#-NqxO BXY&J zlZ!shJ2MCr0tutnfNGt73ZMD72+Eo>Zbec3pbO53MF@)Wdbm6MdV1%tgO84m-C;8~ zcUEe0;;tj-V69$RI7IXfj2W|dECG$fHBN7{k18I?Hx54 scEPPNWV+1G){qCya!eK1cZFA*v*U z?9< UC_o&`*FkX^oIYr5oG}DpqKbGDerxL(lG5_PXBW_ z*T%1Mt~i09ad2wtD$(dcR0wCDxY(Sl6jmc&@NJclt*x!_4p7J*;AID;+okXQhI-#& zLz}={2mpZtd!wY~Tq4i+D!%DqZ4rK3_=#g{hK;F1@JMMa#AM4@rkNuGUZkftFt?FA zZQ*f&@eAa}K>H~(!E^y+#G>x|o6M~DGx+&G+6bhH+`VBRClaC}_i7=^hv6pw@!~E% zau%Qve&vZj8}YVKzrn4Rf%Ec^tmn9Fb3}7_X9jPp%F2%8(Px12GD0@{CUc4}>rlJV zi+YCGB5Hlsv4iJYaqe>tRt;@N%(n?6v&@DMu&wf}+F~R`Q{hpQ>4b)xKNjbfZ^W|4 zQIsrn?Hzgd5Nu1gd}||k1mZhBp^9`o-v~YfljatB%n|{AZKz&-j^nq$vgblsml%NM zy{ulCalp9#YzYsVIYx7|?svUwt|jj1PmUFB`brR(qRXc5Eyl$i2zhET>$vq4Tkl;7 zr6K{RkadptEl}MVa1(7M?x3KUSBqXj(p=ZPPL+mL$E{ou%Ir>?$xH5pr!06@*RQ-{ zM!mUCZG`S*3scb?KQ61p-h$ov0duB{(&n}duu7PJJFSopf6X&|V+qE4o5j8d#kA9K zrLh=GK6d1dsNOd)v-PsHKVMqZ+03Cfy_D4cYWgZmApgEkKe-IheY;cvk{Qi)LO#p@ zie$V7EnjGYGkhp{6}e+~%pg#bmg2;-!xAjfQnVNDF OK3i6Cp(KP#E)ceGmTsNSjg!XvpJIG0;J3Cw%+oJ ?tnDNyI-UB|dmCG|cJyeJ(zT zOtdd3KU-b1=4;{T^g>9^(lz@IL~q8Kp!;G?vKEoOFY1|By+{!`c)&EViNJoRH~+(g zU@%T+m`OB~pDUC<8a95~y}bV7U605YWJ*6`9ri=+t6vH<%;nn7{(kE>Lo2K1TURyS zBqX|>a}ddcM+H#_zk~YGaDt9s<%}GU?uORzvDYqk!p$vq4wveE;Nsv|Xb;-~ehr*j zJ6s(=oek}1c8)j>kG;O2K-&UySj}0t7f=}$iEVqh)a&F}V#d_qLU?9phrBMk$%~*H zE-}1!we5ixGu%|ssAl@z_ f1~X%F$# Py-?ntH1#lGslXr6b!f2M?9i^M6v^G9dG1ws7dAwJ`_cVk z{juS~BSRgh0@yxJHSIb_yJz#FhSh{py! $sb$$ErepjBWwD*F5kHhp)s*E`yDVfr z_tU#Z4mQ?Sd~I<_RnKnX;n48LV8+M+2m5SF4BxSz53gf%Nt8~L)3-w(L+!WuystA^ zG4p1nJW6~1&-3<`Jo+s>SqxVcisJPYGb_vOSitfJ!Xi!FW@TIP2-w4V%<3EuX4ve` zKJ?P8Z*a5*e2( %)YTR@)w zWnTQgol~hi6sbFaa?b%22MLjw@sSQUmWK*LEXZ~KTst2*&WZk!2JN8I @qbn& SmXgAYv7-8a_eC&7Q?s|*DkF~!{6Ce9j0b~9)&gb-@-TA$ zA12&CX#!86dpw}%m|pV&1i&O$zAy6U 7sax z^K;rY0KJw-X*d5#lQM;FQ~;R+pXjOuBo8LiuTUL1jvw4p$Q}u%#?Ik;h}2V{{x^Wz z=kl?l3OKeOKqB&I98d0)9CZ^R >k~W6b ^j28qe{S z;CBawD6uT^PyHpq`FC5Vs_xTZ`4(?{OQ?F2R)R&vUaG9g-4_n~T0SS7#x`GERx#T# zO3_~4`!cfjeridKF2As|ai%oX%lN{jX>^x7XrLwsdS`3__n}Lm3wXrI(DC(R2H71Y z#By^Nt1F{a5%$~*X?iw8>fD+svuiZZKwZ?2qZ3n x!k291ykYmY14K&Il^{VsEvD z&6R77r_AQpypaX)kcn&5Eh9=Hlo;igz|a2*&D2zt+R{Zk=kQnwzQyu u_mCugZ7AL HgSO=>-BUDHt+CJymY}!<}Nx2V1GXxfXSAN$BMna<-g70Uk@by zG>89YRxyYJuAHii#99Yo-y`F|aZU9njV?)hfep=sS^KTB4TKGqj^CCR*$yi|ILm+J z_WK$L)Zv?c4m_^+3jkv)Q)eC}C)f#{2ZYBMR5D@RsF#b2q2@oZx*lfWgdWRWyLDAt zeA|A)q{|AViF8ay?c`r-{d3>_(+z-mdIYVaYEfcPzqy&fO8L+A$P^;SxE5B%1NFP? zt!0kiEfhr`^HynQMX9=sh8luwNlO8rmbDfo$~mS!%{k;-S8xaO7FNa$^V$r*ym;&% zz6W+xzqj|&n}!t``9zt$`_S!ea-#Q>q*i!xh;6z+pzmfH$E_|?vaD9!45o469`B=^ zL7iaO&e@@_W{>xG($6&;k{&n=&8_SEf)TahjkluRRbmCV9;P-1KmN@K9PE-4sK;LF zhnkN2@;WHdWqdw0aRwzbtIKh~7-uqSzW$;jJYjXuU&yH}|D@VCxcjHCCU@8-;@8i4 zxy9~-A0#tM>G}8abQ^9A@U?QysB18ty)Q20x%R`x?ZZ+)`dxs?n=gSzv?(ah8Kg9x zDlss+b-E-7_SIrynpb+v%{GH(^|s9|6g>tcm)tmABxhh(GjMHd$WF?5qSa=o6h(UY zidmzVe@@BgJLEA+rwWJ89UHxq=XQJrN_uoiCC&?OKk7C$xvG;u?K`bz_?x>n?Wa ztW0DMJB|^%BId&Bd9mCpyN_T;Zm(P4I>%-#G3=q)0jX2I)gl+ZO|MWijw>L*J&mun zzy!-26Zc=mn7*H!feixyTJjKebqhM~gswN?Pd~bZc1gf5%B63yz($1Q _K>5_fs$z)iBGzx5dCDqkv}|P zA~hz}Ikd*-Quv0Q%M)KId)tc&ZW$|pWGgWG@4J{SZlO 2v2G z$+dB4uL;#71mLZ3aDn?9fw>`qswm0@L{QGOm3{K Ng%Yb=!E-T`ut-B1B?Zh+BIXc)}aR?Cb?yhvm+s=33aDN2chw@X4*1 z!VYCh-C4Aif#$;{@JT(sl0S 46I<0V!oK-_ 5aoad?3MS!G(Et_4~ccx^0jlU^5AVvizmiYQv0 C0EtzwjUjs0x>m3W8XN-!#`gBoWO|vo)XQ{Vue0lEvrS_Egzn zau^^XcCpRSDNVs;k;#~KOqNQr8Pj|aiE3jD+Th|%+It)r1cEM_mU(N>SxKKYK&l7} zg@-K613{(}UX1BGs?{I&$H2GNGtYib;*a*op?*A!Y!)x3#>x)x!e7=8xWzC>lYFqv zLa5T~V5!Sw2WEmqzcM}H45MEp;Gr1eKy;nj@pZ+18WEKi?DUlU=HmHGu$(8;=cTH# zZ_KtM_gS8;fXAK;tH^W&aZAH31Kcu;G?nv8wNknq?zzX@Urt(R?NwW#Q7;UH+@3#J z@DY7iQSXg{)88le9(eJ5-=5@?>b@;Hf0k3q_`!)Gc`D$wyTU$`Ce+6;=U=G6&$l}# zS{q&OxWumH>$HKmtN8-i80k~x?^#fDicqpS#^fEj1&9}v>KaG4OF&6 N7%6KzCw!fLbZp!taG`Y(6sFRUE;V$x$is6yoAz;C;c}E@B TY$K>-b zrsZpjTg=p`lzQ1sd`9kmO0ZelVvmj6{SLs-nFPs87i$N$?t(L_LpT#IoHMU`SM8 z&z@32!!ph4yGfR(?paVfaMUwG5GVeRwjTmGx}?X?N#3Z{;8QgmDt(G;T%uu+uTplH zJKl_*bS7x5i7l2D@>}3cwb6CWrv*vZOAvG7A4Z=Pth(<<*#T?T-jU8vgEl5^!>#V@ z!!utGCxy-ojMvatf%3h&dD}CHwYeikv+16q;d3LT?a0(B?Dw_kf{^zonk)G- A~yl4v7)fP`Srd+IJw=597(Ncee+sXC)QZpb+Q8H2bXi zYPo^{o7LO;i^fIYZTq_T*){|~#yjYDhvjWWamK;#)dR}wEY?po#c~c!GPbvsHd{!w z3Bjs7o_);DF6Cdor-I%!`mSxZFOG!RvPeYEi%FMD8NKl1;~wrd=Am=GKi~|RXEc?u z86W=0g0C~{$*g;;&>&f4Wf6rdG`~~NIU{Dzxh*{>9;N6`94OCH?6p-|9QvA|;A>3l zuYWgn;mK3uT5AQYtk}tXw}wQb^Yiarw{jrp}#F4?gS=!>0h1#>@kbLync?L*Z7u z!;bSj%dKnqTN|((=X5ja1XJHlZPcSuY+*ZY%`(WL2Wc;IhPq=q9BnAH#K$aWqpIU^ zhbO5a83}!)z;50WXd(8)7*6YC=TJg2!jcwN)+=k``tBK>6|`QRVt&a0(-WTO%REGc zS9DotMJ8_Lz@5_;#zx}|7!9r*$Z2r%yolpa2}dSz85s5ka_eOtr;D_sZq|{QKKDen zezU9~B^M=^<7(Lldv!cA#&v%4ko~Mnj+z|F0CzhCcK96d<)SEG@i?C0LxjYBPA?K& zjF&E-r6!sg)*&wGDMxp8@rf`y+=}y%?H{SxKvqkta>_)j+YoH|Syv1mLdhZRcO2{w zOd*loz7LwmMv_0v;UaN3Ff!67nUhS%vwDIYx>yZON4NRqjv3iYSfGu@$~#7cDI3W9 z>O$h{0(oM?rGVtxWq`8#6s0pemFnD(*y-?|gl{V<3Q4mg^;a30aP`U{BehW{n6)t$ zH7|B)PdK(^bsB74)4g*+vf@Zlc4{I4p;l{~Z!#aS@|3=%KlLVm*e+OL6`!qd>m`%# z-4j2P8*28hq`EL-h$#P-rY67a8q3Mb)GI@Q&*-<7Ier~+eC*jW%+6Lhv@uClQ|H^p z^>*D~nx wbQBLHJLXFumqKT#guX3K69bS#ue-+J`iqa2+u5^Czp{Y7;s^^FSq z5iC+?X7>^|pJhDe%Da%umZj`@uI^DS(r=j}q`1`bw)nDvK%k)))TU=IABa3RSp1}k zgw>j>J%x*@ne-}NzUbIo*{h6QF!VhBAb@NT9dQ1Ysg#aqZwOG)&!uP(S(<~f1WBt| z=QmX-_hQ3GeYNjZj4|p@J_i?p>J@6CT@;nM0H#1W{RiJal^ab+c84X|F2JOj`34Rb zVtJDX2w3&2O$@mQ;mOE2`%hXs+%KwaHl6yfpx4q!nB{KT6+GQy+-FmTXp8Nl4+A5b z2ckK_Yee@_O3X{bOJ>~P`QqVZ^|_HWx%cx550WQFj4T~_beac*2DF5Z;6a?t1;7{? z3WTUmj(hL6&dBK+Fgc#aM(K{Vk!MAGxx9VvL|mNAr-X8?_*G=gPs9vG8r2BRk=>Q3 ziYn@uny(*P4V%Zkgu*jH2M*7}!`~&p)+f7%`{ @j1q;4x?L!jzWost6!d}K=(m(Rs|n?-YFPhz(v z2wrR)3AS%3*q@BS94DGr%k|aYbJ***A)-!i*?&%bBU#%;EhVKtfzPq@7> ?s3lE*!@n*Ia*%o3O~ON{mT!)NPKpTz5yCl9sWh z1~+2Pu|%gCS&q*7M&yihyKP?l_#ymt9p%gRb@g}cE@5U|t{KV|3AyH#*XZ=@vbx*{ zjtqD=Vb`W?S6Uc75__C=M{92m9GKpHWfx>*WqY9cRpk5pr^kzTchtSXseaw%*G*8F zce|<@qqM~z-^=9XX=xEn0wT~5Ym#OJ%<*+aa^z?oI^Ka0RECQkZ#=99IYi0KJ$f&w z_3(|#<6Y=FWVMH5F8g#$Vc|DzaJ+m7LsL&OV?>~qXci)glKCu;&gU0!hKt{a1*!7L z1}7e0g9j;EFIp`&`Ife@Ebl&aMd%fBbjdLL=Ilbk3^7mU<)LM#!ed8`f%!CN?H{BX z7z*JLnEoa1&H-HkvI>(nwwF;x_B&E-TVd{M;p-V|fw$SirPY>blbIVI2o!wcGd2*s zdUdk7M*TLc`wrKspEQ|2CJ)=fcQ4Pm<9VO2vW1dFaou*E+rB{5>qM>;WoO$DZd) zO5VN~cavptFc7c0Y8)dRJt0+l6MJUZ0SNvwAHEmKd9XW0;BAxYwe&jw8Ymz%5LAPG zAnm2cTJ(;lMOHRZZCd8$s)-KDc8>B1I#q!Na?mkUWe}`*zXyYv4YS(oux{d14K#J= z!*{TJ#ct$@=CPXo78m;GF95W~#anl9R$Cn|apJ&!D)!-j1n0_~9htkTvD<|jOr5SS zg*!;&%hRaojD6K!rtqF~yVMTubHS}iE305vXt(5eLi uw!uIOABxRoz z3FvSBaLPD((udzj4*p34A4Ss)p5ZAOnBwTL%PgJa3`H#5V>qk)>OuWoIdy4ULEZx0 zSO}j>N-*>Y>izDL2yI-F@40Zx`S OqHf+?~ZkUlUXX(7Hi`2I2=C$~8O)sZyb z3m$b*LO#$+;oQhGez_zr*njVBf9VPsaqqH<{gDlFyse~S (r2OSIdpZ-bn$J_}U8nNN%;lH!NBo-Sanx?Lpx8QWcqyF~fw*Qg& z!VPL;EGHiR@CqVwhqU>Qofef; &`dzRUh*12odYoYU!PmLUf(cqA1*$kQWVKHVnK*nOxKkc6YA$d2`a5Qw+wJ^B zV!FV#?<46%2uEF8VY>9^**o0$ CF+dXkL{SxXgU;s`td}}e!SvazpF4PVY+2=Nbr5w!_Lq30=21bfY@|}} z_L{xU?L$#=2JwQgSP(eQL=K!*_BIY+=0St{7oRgDjtQT*Tlx48f7wxfbF)BtdZha~ zRl(1J``idq7S^ ZS8bnWK`pQU?d{x6slDv54I&Tu8`qfVx>O&V*Tw;8Z#&8BhZMiDs9L&=M)E# z^R)K4_8D+^c#Vc2GG+FAH}Wkq#Z8#59{fg`!K?I0=lBLBCP=fh@l<%PorNBld5@M8 zM*adAN$~H|o1M>_ z2nM&DUXsL0T+}dH!&L&EIaZb Uop9FQ|;gOr}+G|zmGZ$fdC&6ic zqdbS(%#F^+ruC}ls{Khf57uu$Pdj3ZhD$nq#y6P-%ji4EI *s`yR-DQfs (^jElSbJd{_R* z3z8phHp>l^mhum&G*dGuh{ghW)Ld18llFElCL+HiwJ}PR>hKs<*Ttan7S^?v_i=uz zz}RxmCWfuf++C6HVV=9;Rvu~sL!sj{_G^*f<4@W}B;bR+k*RZ!SjBVKJM8v;iF}h- z&-qgER )+K+BhpA<- zo%Fw(XrbQ2OXXjwpGiIsmg;AnHp+@E-vwIu3E?e@@9~+ }SOoU$++>2Wx-Dbm^8nwiur M1I~Rt~GAg(&`V?YF+)hzV-a42JtHE~8Y?}LWT;vEYE!K^zRN&r8(tMcbbm|lj z?OW+LPHSddmVMP$Qi6;Q#y!`n9g+UmSWqhOZ)S}Ao+J3rmq4~?b7MZqYIVg_60EHw zN>*)p ?dMMS3O1XjiYVR$|4ZR+eXNSa*>_aIQSMYYiT1#e7DxZtY#E zN8F_CqdVL|g6ChnX)+)dZ86x{2}Fzy3FO#4x*-{mT|vjQJuL3k;Cu{@dG0`Zq$uqZ zQWHYBz-(PHvCqe~*uv`b>G{q0+Hl%3(1jzG`&;kli)g1^*&iZ(t`2ve0IaeO$_7IO zmu2rwa%_uAkkT;gzau! #z%kbVBY)>M?^jG|#DND!Ew;`)7lJBKwVdoH;%q$jNya8%S14Z8%WH*4!q$&xr z*3t7@_+Db|g?|%ad*ZX&2AfRx)lLm_ldte-y#t3R@G$+e4D!>Aqu-&W_Q^Jr%Vd^0 z|Ao78cJ>}Nc5wp=4L@n}0=dzn<_iWC)^BfljLlJV_99P8P1 W0dINNp d1bE`;k}nZgG(xUN5~sq zzG9OZbHUwW=#wmjCC5EjBf5ki&|{}t{NKCgyAYMRF5-l!T&t$)WLQa@XM*=l-O>Yl zC>C`R{I0g0Q$xY*>u`09)U20^)M*!Rk{O%ZdZT~1PnD>8O+&>i%(^Q}j*7sMicH?o z1LeFEd3FcShr(%2#MrQ+sxd?W-%@SQmo+m5dOKp{4=t;#$Og1j(b*$R4?(YIwkp25 zkB_M%&XObYqt!rdf<1c58$uPa+`oW>Ypyz%9T`+!2FF8&72dd)!%8e$#~-e {W}LE!1*s2HkznY4`1=`bM&oRyFf}! zZ!Yv+5O6nKyl6UkD@0Ierg4w!1S#Wa8TdG8ad-@V^kW_Z)a{v`fswO6p(o|Q)RtoE zi5$6e5CK&Aar!}e*yA*Goi-ltm?TS?Y?bXPVguxqV{n{qe&;OUk{(_`Cl*j$ZxlGj zrn-I5h7$8}RpRSnmjdv)Z2yb8_Y7-l-TMY{BLt)bML-A;5E0!psi6iVDk37NTj?N# zDg+3j6F>=yNC)XvX}YD?(2*8;mzK~%?>+SFS^J#xoO$1w>&%yVuJ@g}Kjq5Gm#lTK z``> yPP^Z8JFNM*jII*}q~2P@Jwts8OC!7o_}qoz%#@ zxK!UNu}wZMa2*Y>`TdzD$M|;~7bA9Xe0u^bP%B1q`~a`=HH0hsl!mY}uVa>91G!dU zZCSB$LhUqW!R&7v-{4@7>?s>CqfLoFJ~L~~IQbj!D4|DP1E?1Wkz+d0;#PJ}TFwqT zVCI$Qab|3*rUjgvSQw>xQFqB#=h_d0i*dEylNC-v&vqnlYA*Z6+JnmhLoa`;G)8o* zuVf{@F0?hO@3D)_!&wb!kurJubZXAzUo>+9v(qRotq |!Mr@LI==KE)*gYh3u@f%oND4%MGMo3@B{e1!7Bi~eu}R`zIw+OUqVBl>ww z_q*-*XG7zf&--Ubn{2%m^fG)~?L3^k>{upCTjCBc18U|#dHHq`@ADI}qeoOe9V?|0 z00EwlcmyR)?L2^Z&aT$Mpa`AN7_g7fJvy(WT!T@qnuC({N$N&ure(7W=zgVqy1*5~ zFj3vBCn9TH(Bu#UwBJiFeo*}D>(=m7XpCn?6jdFt+52FU9FlOsdCkm ?1xO+0WQoTX_e0<)ek1*S-M}9S00~-*1x~g20F`*6|5ux1LHc{Z zOL-Ll6&R_Nm6~lIK7!8z^&O(OPSRPWc{ttLUG0d;m5&3olv_xmJL4KYd!PM-S%Em} ziwwrNvV5{(FV1?N_Q$(!{zf)mIpk{VmgK$`%YkvD3sqZ4VZmtsYpoD!vV%4woTTI* z`%RgjiOC$-G&WnjbL_6LEL2fxgSl>NTUe>Bi}5d)Jml!`rKnMhDiM2yV{@mIF{cts zXZT3pM%=tpC0*7=AKJbN93`CJEv}k87ZvV7iWJyPw+YUSA8@>N)Gp2$Zl1fAC^NQo zs(nl8ch;Ab%xHOU?he|6>1}OW%9$(ZfX&6fXd#u5+Eu9asFG;K;9>4-jfRpxVVB`~ zKHNe;M#fJF7?o?vz {z&5gJAGhELC{Iq`|y6c-go)EiH;GqKet5c2L4>gMe zpkKEb7!(`+oWeP$KTD8sVRrlABJU6+X^*%$Fi=u-WMxZPRc1i!j*9LlkANSznC;!< z-`OJEo1wSoecCwaiXyQVjNmB>ifMojvNzXirmx2A<%Qg^BCGrx@`?IF-)vGwf*83? z+#ikp1~UJ)j_B|IJ2~>Rk@>ql45;`5?O}`mYkSz<%pziQNb0;)@=UxMoY9YcM*$M= zKk=h`+yJWPfa^D)bA;cbSf!sSvl%Q+WuVg-2@Ab0Oc6IHb1m75K-wxWXFf)Zd$&@O8-}PR*_+?Y4){?bd}m#SjRreU3?jED=}S_Oz{PNA5u2kA8vm zTMUX$6B;;jm0EUUNOD5*!3WkU<2d*#&WEK2+o2C$vkc45@&PKWc6hT>`rNS(9X8_k zmRfhGN%(YC6=<+_iwdaNj>o5OZy|Q40gTL#`G)T6RBq510~~t_Ab#9E{Wrcf%sT2i zG+2Q*HCU)ght%Ki^N0`wdOdci;+_*{Dlm^b9h3F8V~f7+#yHp08=Zs`@d$fwf`|L) z=^1&eb_Q3HF?enl6}lf2Uv z>0%v}94=mdX%iY`V@Bx9SQNJ+DfcmV94Q|NDHH>gRF<@tlRa ztPnx5gwAKAEH(U}#5Qmo0Kq(Px %XHNiARv%hG} z--8%V*^HZ}v^zF}`Ca35AGJ|7!k>@&j`QHwhW`b}koz|r1JtI5ir9iOorm`weed`6 zC8({eo9#VP3wXnL5z2Z3+_7XJLv&n(9}I%=kw7$3Uelo3XHkcmfKK{^z$pMC{m<*7 zh=SuLM>~&F3JM6QYhZ-@Kd@VGaq}d#@1|e2b;@2&iKHw@m=SglUGBA!+UIPEUQ>Ro zWRmhvh@pEq(GG!E*2S#}AUJq%{TT~pwvw-QQXoMl<3F88cd=!Xm967NI3bmOeMer< zfWzxw<*Tc#C-h$^&-X2W7ilhcffPU@E|wHC {sfoQ3GFZT4Q+z02wyzY7P5!tC6aClSH&fhKx+?ZjZWFvFb(Bunek^s zbf|V`UGBZHSE_~OuYYWc^Li+T@@dU^1m|!32r?8%J%xFPg)Q)>A&YeqWFpZ=+~(26 zk%O xd*-C9PS_CaWf vWx-y?O+qSU$A|ROr7P3MwpO YLbZ^DbEi2B1A!eMrKBz4S=qmKEyzLsI=`z_4JbYPG2k7 ztry=nw-bm>l+Gu+zEHVS`4U0$8S*Y0P?z%NzXg0rjB=4q^*5P57)8@ga))(G*ly5N z8oDC(fz}Ja&0*F0G>27|jO#F#o?;NU7Mq$GJXR?!k*D2HIn?2yL83ME*KU;ZW7!lZ97#P*b|7+bEXRpS zi{jx|f2*@iEh#Rs1AY;8#~VlAwhuvWt=+A}!^x2v?waS#WRE#rH*o%28X7v9ei~f( zd5)@3%@XMzq*le^sX7j`SQ_*tjhkjK19U(@8u!`ezF{$2k6(2QOmRK&N{pG=8v}f{ z YL7FUiK94?4 zz>0gETG~(S3Py0cxL2o-_Z%9S=SWD^(70Dh(~(Blm$f<=x>kIEhbCwgS9`?PeM*Hd2z zlIurNEGf@;WB8`g->MvBJ)7XQU8_d-0q=gigFiJ=OgH?seRqsxzx4(jN*yzRi1z70 z_{zEyNA!t4K9Nm)CC_e@a4MxTID`#=CQ^KatfCv|w$^j3TC;mYmvAK5ZSG`R0wGIERT)N{=ikpk3heHHu< zJNJIIX`p0oy2VLPP0im4a`>z%_C7rK9z;l+%{QCiB5xo@uSD$xW@E<02RCFMswXX0 zy&Y!5DS6EXaP_H#eY%!pcB4=*-~R4*2{iD~XQ2;d5(X&o#hviksIkd;7t=qs1oPE6 zSegZgsda<0U~h1(E*qPM3+scxxv}rNRX^JE9K@4M#P$?qZIxi rpX?0Fb zmZ}dH<;U&DBWy$(PMVolNY^GRia+v_-M6F|R;CaXffFp-13>&*as$0`c-FkKJkJ@m z*@4dGCf(gp>U}JarV2wus&eb-gDH};Tryozi(EB5u`%g3LBTEST q-d`tW`}8+L_aFrQG% z^ D2UA$98jPz8rrSPs(zG}Eb);0G{oq!QsK($aiht&d(DR_5*fAKxh1t>Z}PZW zk(aEo_DFRZ{sFNUG|`Zd(o?TI#40;#dCdB7Rk1K%JSbs#E<8seUFYkPN>I`{XGPB2 zj8*=R-j;nj3Va1T&&Q=>@RJKU*7-1L8YV*@BZ%P$>xo`DJry8{SHN RRAf&ViHg%M?8NU!A3_KKs3Uw(D%mk=JMwe4*# zJhfdm ilW-&QmPxjk7J6J2 zo}@UI`rVg3zH;A`kB$hoH=NZ7&u5ie#%+k&C;R;H+(cztQubuww= _Sydy8W{$DtEl!_?B)x}T zL%(2Ot&2&6&3!`rTM_%e1MPEW=1mWdfR;(Cl1izGv5AK()=3)lZ+S!!rdbr$VQAuI zD}EADx&UQLjB;J19S&CMd $iQw`u@y`6#wzS% zR%LLQ-&C1ISW|rq^r67f=tlnM;;JQmt!p _f-$mPFxtNi3Nawj+PB&Ce0xD-h;ZPQOTh{mlTw}Dw)-#>a7ya)Rl8R zQzFJu4le=kz5c0p*4yJckB&Op9uq=Duc0J`>>!!=ckiNuD!&QO)R<=cx@hx5 z)l2d!Ij+Rz$?y>oFPUs%h+5B#29@{W@#pI*vZ+zOna*W{{@^uQSNB3eZ_bZ6Mdjnu zdKs^WM)EGUisIV&%J%4VeIK+QqauW2B)2c)C&*6I;YTHia4$h5pXgViANq$0YXEWr zdc(IA4Xa4YL6)=z8crj>I sj5WvwQ{|K z=o?iLN!pOo%pXJLbiIo0#n_O`tVqs7t%xegBd;`q#-dz=*xohX3u1l~<&$6EUyS|@ z{MpxZ_G~oTH*2kVsvUF9;br}E?kvFXIln{9%I `&OOzuOnU$vM+? zLsxq?vM%pCiSjGd>4o7w!%e@Qso2SF)=Ng8t-C1}2#=_cd*&BvEZ#;97ne(%$9!TT z{9;axlNn0W^70Wif1l7*5v1@=uO1{9%CWkn@D}6^j)%7@ii-MSl1q}T323hfyNa+D zTES1R;^{}fU-*^l0xpTfE>OnX$6>hFJ2}=^*D5LJF5hOaPoiG>OB-u )Xipd^eMjtF#xh3u|R7s-)LUbi4sZi=(uy#F=eZ-`EXYJRBzs8q}%II-c~r zs|~udNU}^~fWI(g06dD;7J{y9jVn+DNOjtcle=IYMSh;1nnKCq!^?)H2ZIS6VGW{h z8Q?ajTrS4eB2l|fm7^0Y5}7kmsaDL>F_O^(L-P6`Ry_e&A?s8%|2)*dYEL0g9_|qS zYEu-# gLt=g8{TGM_TaaU5D4}KTnHXrK7ME6rI z#%>gOK^1_ r_?+PxA5Ri}~o(WrJGAYQ*}+w?>FwyTzI?Uc9tX#c}=(W8~uX z0+j5YpffV9mvYFa>zg0kMc%u%EUo|JTcLx5A(XD06^u;s`G{ceI<6N9GivLgEyQrS zSxYjaG$tpz#>U3S299=>n+Cq$g3Is21f-yL3e;NHS1{JP4ntDFHqxqVTn1aTch_F> zU2ZvO@)2C*)Ovn>^ZZ$HWo2wh2lCS=(a0v&4il9@2R9{UWRl$m;^6R7hk+&j1LsMn zwGK)(wk9)9nio8u{4Cd2i7miFQ|J>+QxqrkTEd5P*OvCVrs{8C+__vYIcUO
d#1Z}s1$mK iU0WDD`>v8h2lL%ohL7sr5zpo@O|CuGU>uSjz z)}BHJ>7%}{rm5(&?>*`fei}-~{4U3uS@l&@bhNld3BbfQ=>noI1AuWkc0p7w8?-Y^F7?C- aXQJK`|3XIS&mcMlyQn( zz^31}*nlE2pD`8~f5X3M1S9L3DZRJkr^K5T3a=8*%?Rj7q_{Q{k=Ax8D#I0kVoz?M zg)e4L=E2-c4SNTdC9W-J+X`nD&y+V~9y#|P(1B#}r_v|FnA=Hn5pX+`{j3 =dWjqs5Q#+Ic zy@O23kHp1^B~w%KtxSv(f`B^g!=)>88LN+(zKL0iiMw!e0fmiZc}?)Pu~dPpB|%h+ zpLWcU@+ vB@AR{6)h=RzbhV z^UB4^cnrGbU2a+O8}GT$d;FO3^Tmrik_!7eL*aI=lBL&*x_{UjeJ=CKFL*Qk)%a+o zwzAYy7Qtn|42Fh!>D9)^EQmb~f_fz2 (LTBb-;M!gn zdYGl6LtS&hQgChwn>sS2kbFlVaUlg3;nMBuxqeU^FOPmKVu?03HiAm!V=hQmM2kd~ zFEwei+2*cSEkBb}vCcYB T*a`1#xP0KDV_Qeu3B;POo6%R6>}k z(zB`IDaLpGtToi85dm;QeF<`Mhf`6^AhqE>(S+3Y7fn=efLeXP77KvA?t64xUdVsI zc=%%0#>WUvx1Y{tz%*G&7I$RyHSEp)(pvZ6!ZOs V EZ4E`iP?KX$@cH*?7PqA 5CTt? zY~*lp%KmTsB80c1P^B5{Po;&3spPlwZ|F&=uHG z*lYvTLUtTL98E?u+niy=trMHO;uA~t?>8mUl2Ls=!I Kh~I@H=f(NN&Y5I4M_{6I{ZcR z^zU1$+IG&lKOJV7@1k$)FjD!-r~X><=`qrAF%H_HrA&r%@#iCIGJaJ> `UFW`vDKZ)e#{FdrA}*40;J^BPQEfy z`Bn-UW_u!c&i;5+$v#SUGO4!z{^kv~V?i?Zm(q|Mn?pN;l=RUL-umD7IQ*|AwNbgn z3oKOsP8yt#Ke6}^nQ412<)(P7id|09@_2F@Tp*D`=(`b-@naHl-ELy!!zWk x Vg_^J O zoNS*o?42OUP>&-+n(rI86kqAB=dL`UcpZN<@D0NP)+2`cB!<_*f6+Xm(O)X!Nxe3s z9O=fdN+=?Eu-JcSnkealSog$Hfc%5w`;DY{g_!4>-<3XJGad@qakL9^7m6AyIq9y! zx(SzP2wVk!dKkH=Y}&l8B(Q{smNaDJgS%1>!XI|G3!juw*4(~e+#p|ri$Q~_P_s9z zbyuIMvtJJm3%@nN4Y*zB+Z*1Zp}k9kc>Wu+LeW@4N$CQ)EI3gsVVtgY+4f5Ptqw6{ z`fz#HGTXh~Ep1OTG3<-Q;{527>GNb^rgSGS4kZVCV2Q43@;978dVkIBpwF9jUG?nG zw$qI@7y2nz^eu(Pj02GGy%kqRS*qMN*{}SJ@k0AOUFfT-7M^|-Y$YK+Nvw!PR15SU z>wHOz->uCXH${B(JvjJjpXF2Nlxbzy__N~Hk|k=p%$GCpGV`hA$u&ax`rLy;JD_7s zz0am`j{%S9-x=dIRc7S8GAJSgVZJ$~kSbQ9@DOoTx~?}e)jR$r2o5Aq-a`LV@`Q<~ zO^(*Jw4nByhFcU`)Dd2r*}E|%9nAxHQvo@1Ru1T8jZ5J{_xXhBYr0icW>eb6BVAPf zfKm0f*zue?Tu$?gp%o9Y;fMm*fW7VbywM*2OD9WNPKQo>5$xd0R@mN!&8Uln%lkh9 z(8`ID#n;--?d6^v8|Buo?kr3{F6}nmG3_7xjivkoNOsBJ#_5S-+Jj@QQ*JSrlGGuy zxvbqAJ`Ki{$RpC$IH%qOZc34Y-QNRyIr+E}rx0GY>iJeZ#??E;3a*&zf|0{7)JvbX zu-9jLo43~8YcoW8G2L`4k8Q6GnVsKFF}}9Q8UJjG3$*r_kN(?rd_;y{+>TgXJ(BKI z^t1@7rV|hIa5{M+rkv@T1M@WX2AT=l%R1R9nYZCDRD+@^l-ViELbr`Q?&^2t4(Q%? zV#e94z{^km!?W<*;%z~9-&Y8|uk)daRNKlMqwPFnN )8y1+9V1u&VBuF)dBZH7h2t zCorWD1e#M(gWgn&FsvW!HBcFCISmO(=j@;4L*FQ{&3yQF;Nt3UEcU4 >KwVJiEFc)zi?0xSHlF&kaeJ|5ZY(yLDZ@ z6|!=AXP(ai7=2u&y$ibg_ay#5t$TZK__@ az8K)uv7qvG^8 zn~s=YikLTMI2k=78!xlkQEkDDp;C`>&;SDi-09THfN14__v7ppM0Ys3fFq!ejm$Z> zuU*@j;#qm(4=V=sA9d+XAW`D{8(Wnh6jG?WZS*m_1N4u9F6RH91(+thX!2s aoxSDFXa&aONbPS7I%IDc;z_^`ATy#V5*@qm| za1LBF$P*EKS1pYV%cH< _tQ-ew_qxBYtgQ2SFInB*1@5C z5AKrTQ5Md}$BM74Pv)X`kBy2JohT8)pL4qOuU&M8z1VjfUi*%y|2LK5fBgsC60ozP zj#-q>4ZL)ye9I#LX)FGJ_ @rHHQ5Tu ZLNsuO5F85gdL^GJ8eA!%U137%_WC?T;u$SZEg>)|3n z6&Z1|FG{{CCH?Dw0SIXx!Usd2=A^N>aAg(|NC}IV-3J@X>!BaY``izY!58LJ>BH8Q zGJe%}P%|;6_6ZB|D(T|#5BeWiZSOSLUk~xgom^ 6`XVxg*Qd6A2w1Z z=L?tzp8Tw 0l8zAJqgrQ2-{p44RV z_hC?uQy)|rGROR_y%#mNMFW3PP+$;=^DxI^N-^~sfxIqj8| )ofs z3%MxWsM=j(ZDa>oj5)YjeHO#><~AO{`Fz? v-3z+0H-0fu{tW( z7)0Bj5%+IO7s7%HNz8K;EKi?xv pf$aTOA_`lx|&WSi(T!iPdz;?4|xdHGk01RwFR(^ob7|R5D1EI7X8%7HRkZo zO>J#fk@2d;yO5N*=b9VBbi)^UL8CPd#z(KN@5R4XOh{%RM&4|#fmra_G4G;6916qr z9*